diff --git a/.dockerignore b/.dockerignore index 832cd95b..014ec521 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,4 +1,4 @@ node_modules .git -/modules/server/website +/modules/dashboard/website /dashboard-ui/.env*.local diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d09a9079..8c4e54d8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -12,7 +12,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: - go-version: '1.22.7' + go-version: '1.23.4' cache: false - name: Run linter working-directory: ./modules @@ -25,7 +25,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: - go-version: '1.22.7' + go-version: '1.23.4' cache: false - name: Run tests working-directory: ./modules @@ -38,7 +38,7 @@ jobs: - uses: actions/checkout@v4 - uses: actions/setup-go@v5 with: - go-version: '1.22.7' + go-version: '1.23.4' cache: false - name: Run code vetter working-directory: ./modules @@ -93,7 +93,7 @@ jobs: pnpm install pnpm build - build-server-amd64: + build-dashboard-amd64: needs: - modules-lint - modules-test @@ -109,11 +109,11 @@ jobs: uses: docker/build-push-action@v5 with: context: . - file: build/package/Dockerfile.server + file: build/package/Dockerfile.dashboard push: false - tags: kubetail-server:latest + tags: kubetail-dashboard:latest - build-server-arm64: + build-dashboard-arm64: needs: - modules-lint - modules-test @@ -129,11 +129,51 @@ jobs: uses: docker/build-push-action@v5 with: context: . - file: build/package/Dockerfile.server + file: build/package/Dockerfile.dashboard push: false - tags: kubetail-server:latest + tags: kubetail-dashboard:latest + + build-cluster-api-amd64: + needs: + - modules-lint + - modules-test + - modules-vet + - dashboard-ui-lint + - dashboard-ui-test + - dashboard-ui-build + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Build + uses: docker/build-push-action@v5 + with: + context: . + file: build/package/Dockerfile.cluster-api + push: false + tags: kubetail-cluster-api:latest + + build-cluster-api-arm64: + needs: + - modules-lint + - modules-test + - modules-vet + - dashboard-ui-lint + - dashboard-ui-test + - dashboard-ui-build + runs-on: arm64-ubuntu-22 + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Build + uses: docker/build-push-action@v5 + with: + context: . + file: build/package/Dockerfile.cluster-api + push: false + tags: kubetail-cluster-api:latest - build-agent-amd64: + build-cluster-agent-amd64: needs: - modules-lint - modules-test @@ -149,11 +189,11 @@ jobs: uses: docker/build-push-action@v5 with: context: . - file: build/package/Dockerfile.agent + file: build/package/Dockerfile.cluster-agent push: false - tags: kubetail-agent:latest + tags: kubetail-cluster-agent:latest - build-agent-arm64: + build-cluster-agent-arm64: needs: - modules-lint - modules-test @@ -169,9 +209,9 @@ jobs: uses: docker/build-push-action@v5 with: context: . - file: build/package/Dockerfile.agent + file: build/package/Dockerfile.cluster-agent push: false - tags: kubetail-agent:latest + tags: kubetail-cluster-agent:latest build-cli-linux-amd64: needs: @@ -192,7 +232,7 @@ jobs: version: 9 - uses: actions/setup-go@v5 with: - go-version: '1.22.7' + go-version: '1.23.4' cache: false - name: Run build script run: make build @@ -216,7 +256,7 @@ jobs: version: 9 - uses: actions/setup-go@v5 with: - go-version: '1.22.7' + go-version: '1.23.4' cache: false - name: Run build script run: make build @@ -240,7 +280,7 @@ jobs: version: 9 - uses: actions/setup-go@v5 with: - go-version: '1.22.7' + go-version: '1.23.4' cache: false - name: Run build script run: make build @@ -264,7 +304,7 @@ jobs: version: 9 - uses: actions/setup-go@v5 with: - go-version: '1.22.7' + go-version: '1.23.4' cache: false - name: Run build script run: make build @@ -288,7 +328,7 @@ jobs: version: 9 - uses: actions/setup-go@v5 with: - go-version: '1.22.7' + go-version: '1.23.4' cache: false - name: Run build script run: make build @@ -312,7 +352,7 @@ jobs: version: 9 - uses: actions/setup-go@v5 with: - go-version: '1.22.7' + go-version: '1.23.4' cache: false - name: Run build script run: make build diff --git a/.github/workflows/release-cli.yml b/.github/workflows/release-cli.yml index 8d235503..c3c0d4d4 100644 --- a/.github/workflows/release-cli.yml +++ b/.github/workflows/release-cli.yml @@ -43,7 +43,7 @@ jobs: version: 9 - uses: actions/setup-go@v5 with: - go-version: '1.22.7' + go-version: '1.23.4' cache: false - name: Run build script run: make build VERSION=${{ steps.tagName.outputs.tag }} diff --git a/.github/workflows/release-cluster-agent.yml b/.github/workflows/release-cluster-agent.yml new file mode 100644 index 00000000..176692f7 --- /dev/null +++ b/.github/workflows/release-cluster-agent.yml @@ -0,0 +1,99 @@ +name: release-cluster-agent + +on: + push: + tags: + - 'cluster-agent/v*' + +jobs: + build-and-publish-amd64: + runs-on: ubuntu-latest + steps: + - name: Get tag name + uses: olegtarasov/get-tag@2.1.3 + id: tagName + with: + tagRegex: "cluster-agent/v(.*)" + - name: Checkout + uses: actions/checkout@v4 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build and push + uses: docker/build-push-action@v5 + with: + context: . + file: build/package/Dockerfile.cluster-agent + push: true + tags: kubetail/kubetail-cluster-agent:${{ steps.tagName.outputs.tag }}-amd64 + + build-and-publish-arm64: + runs-on: arm64-ubuntu-22 + steps: + - name: Get tag name + uses: olegtarasov/get-tag@2.1.3 + id: tagName + with: + tagRegex: "cluster-agent/v(.*)" + - name: Checkout + uses: actions/checkout@v4 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build and push + uses: docker/build-push-action@v5 + with: + context: . + file: build/package/Dockerfile.cluster-agent + push: true + tags: kubetail/kubetail-cluster-agent:${{ steps.tagName.outputs.tag }}-arm64 + + create-and-publish-manifest: + runs-on: ubuntu-latest + needs: [build-and-publish-amd64, build-and-publish-arm64] + steps: + - name: Get tag name + uses: olegtarasov/get-tag@2.1.3 + id: tagName + with: + tagRegex: "cluster-agent/v(.*)" + - name: 'Setup jq' + uses: dcarbone/install-jq-action@v2 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Create and push manifest + run: | + docker buildx imagetools create -t kubetail/kubetail-cluster-agent:${{ steps.tagName.outputs.tag }} \ + kubetail/kubetail-cluster-agent:${{ steps.tagName.outputs.tag }}-amd64 \ + kubetail/kubetail-cluster-agent:${{ steps.tagName.outputs.tag }}-arm64 + - name: Fetch docker token + run: | + TOKEN=$(curl -X POST "https://hub.docker.com/v2/users/login" -H "Content-Type: application/json" -d '{"username": "${{ secrets.DOCKERHUB_USERNAME }}", "password": "${{ secrets.DOCKERHUB_TOKEN }}"}' | jq -r '.token') + echo "TOKEN=$TOKEN" >> $GITHUB_ENV + - name: Delete extra arch manifests + run: | + declare -a archs=("amd64" "arm64") + for arch in "${archs[@]}" + do + RESPONSE=$(curl -s -w "%{http_code}" \ + -X DELETE \ + -H "Authorization: Bearer $TOKEN" \ + "https://hub.docker.com/v2/repositories/kubetail/kubetail-cluster-agent/tags/${{ steps.tagName.outputs.tag }}-$arch") + if [ "$RESPONSE" -ne 204 ]; then + echo "DELETE for $arch failed with status $RESPONSE" + exit 1 + fi + done diff --git a/.github/workflows/release-server.yml b/.github/workflows/release-cluster-api.yml similarity index 77% rename from .github/workflows/release-server.yml rename to .github/workflows/release-cluster-api.yml index 0586e160..a5e332fa 100644 --- a/.github/workflows/release-server.yml +++ b/.github/workflows/release-cluster-api.yml @@ -1,9 +1,9 @@ -name: release-server +name: release-cluster-api on: push: tags: - - 'server/v*' + - 'cluster-api/v*' jobs: build-and-publish-amd64: @@ -13,7 +13,7 @@ jobs: uses: olegtarasov/get-tag@2.1.3 id: tagName with: - tagRegex: "server/v(.*)" + tagRegex: "cluster-api/v(.*)" - name: Checkout uses: actions/checkout@v4 - name: Set up Docker Buildx @@ -27,9 +27,9 @@ jobs: uses: docker/build-push-action@v5 with: context: . - file: build/package/Dockerfile.server + file: build/package/Dockerfile.cluster-api push: true - tags: kubetail/kubetail-server:${{ steps.tagName.outputs.tag }}-amd64 + tags: kubetail/kubetail-cluster-api:${{ steps.tagName.outputs.tag }}-amd64 build-and-publish-arm64: runs-on: arm64-ubuntu-22 @@ -38,7 +38,7 @@ jobs: uses: olegtarasov/get-tag@2.1.3 id: tagName with: - tagRegex: "server/v(.*)" + tagRegex: "cluster-api/v(.*)" - name: Checkout uses: actions/checkout@v4 - name: Set up Docker Buildx @@ -52,9 +52,9 @@ jobs: uses: docker/build-push-action@v5 with: context: . - file: build/package/Dockerfile.server + file: build/package/Dockerfile.cluster-api push: true - tags: kubetail/kubetail-server:${{ steps.tagName.outputs.tag }}-arm64 + tags: kubetail/kubetail-cluster-api:${{ steps.tagName.outputs.tag }}-arm64 create-and-publish-manifest: runs-on: ubuntu-latest @@ -64,7 +64,7 @@ jobs: uses: olegtarasov/get-tag@2.1.3 id: tagName with: - tagRegex: "server/v(.*)" + tagRegex: "cluster-api/v(.*)" - name: 'Setup jq' uses: dcarbone/install-jq-action@v2 - name: Set up Docker Buildx @@ -76,9 +76,9 @@ jobs: password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Create and push manifest run: | - docker buildx imagetools create -t kubetail/kubetail-server:${{ steps.tagName.outputs.tag }} \ - kubetail/kubetail-server:${{ steps.tagName.outputs.tag }}-amd64 \ - kubetail/kubetail-server:${{ steps.tagName.outputs.tag }}-arm64 + docker buildx imagetools create -t kubetail/kubetail-cluster-api:${{ steps.tagName.outputs.tag }} \ + kubetail/kubetail-cluster-api:${{ steps.tagName.outputs.tag }}-amd64 \ + kubetail/kubetail-cluster-api:${{ steps.tagName.outputs.tag }}-arm64 - name: Fetch docker token run: | TOKEN=$(curl -X POST "https://hub.docker.com/v2/users/login" -H "Content-Type: application/json" -d '{"username": "${{ secrets.DOCKERHUB_USERNAME }}", "password": "${{ secrets.DOCKERHUB_TOKEN }}"}' | jq -r '.token') @@ -91,7 +91,7 @@ jobs: RESPONSE=$(curl -s -w "%{http_code}" \ -X DELETE \ -H "Authorization: Bearer $TOKEN" \ - "https://hub.docker.com/v2/repositories/kubetail/kubetail-server/tags/${{ steps.tagName.outputs.tag }}-$arch") + "https://hub.docker.com/v2/repositories/kubetail/kubetail-cluster-api/tags/${{ steps.tagName.outputs.tag }}-$arch") if [ "$RESPONSE" -ne 204 ]; then echo "DELETE for $arch failed with status $RESPONSE" exit 1 diff --git a/.github/workflows/release-agent.yml b/.github/workflows/release-dashboard.yml similarity index 78% rename from .github/workflows/release-agent.yml rename to .github/workflows/release-dashboard.yml index 9abf1b7c..a8ce4e78 100644 --- a/.github/workflows/release-agent.yml +++ b/.github/workflows/release-dashboard.yml @@ -1,9 +1,9 @@ -name: release-agent +name: release-dashboard on: push: tags: - - 'agent/v*' + - 'dashboard/v*' jobs: build-and-publish-amd64: @@ -13,7 +13,7 @@ jobs: uses: olegtarasov/get-tag@2.1.3 id: tagName with: - tagRegex: "agent/v(.*)" + tagRegex: "dashboard/v(.*)" - name: Checkout uses: actions/checkout@v4 - name: Set up Docker Buildx @@ -27,9 +27,9 @@ jobs: uses: docker/build-push-action@v5 with: context: . - file: build/package/Dockerfile.agent + file: build/package/Dockerfile.dashboard push: true - tags: kubetail/kubetail-agent:${{ steps.tagName.outputs.tag }}-amd64 + tags: kubetail/kubetail-dashboard:${{ steps.tagName.outputs.tag }}-amd64 build-and-publish-arm64: runs-on: arm64-ubuntu-22 @@ -38,7 +38,7 @@ jobs: uses: olegtarasov/get-tag@2.1.3 id: tagName with: - tagRegex: "agent/v(.*)" + tagRegex: "dashboard/v(.*)" - name: Checkout uses: actions/checkout@v4 - name: Set up Docker Buildx @@ -52,9 +52,9 @@ jobs: uses: docker/build-push-action@v5 with: context: . - file: build/package/Dockerfile.agent + file: build/package/Dockerfile.dashboard push: true - tags: kubetail/kubetail-agent:${{ steps.tagName.outputs.tag }}-arm64 + tags: kubetail/kubetail-dashboard:${{ steps.tagName.outputs.tag }}-arm64 create-and-publish-manifest: runs-on: ubuntu-latest @@ -64,7 +64,7 @@ jobs: uses: olegtarasov/get-tag@2.1.3 id: tagName with: - tagRegex: "agent/v(.*)" + tagRegex: "dashboard/v(.*)" - name: 'Setup jq' uses: dcarbone/install-jq-action@v2 - name: Set up Docker Buildx @@ -76,9 +76,9 @@ jobs: password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Create and push manifest run: | - docker buildx imagetools create -t kubetail/kubetail-agent:${{ steps.tagName.outputs.tag }} \ - kubetail/kubetail-agent:${{ steps.tagName.outputs.tag }}-amd64 \ - kubetail/kubetail-agent:${{ steps.tagName.outputs.tag }}-arm64 + docker buildx imagetools create -t kubetail/kubetail-dashboard:${{ steps.tagName.outputs.tag }} \ + kubetail/kubetail-dashboard:${{ steps.tagName.outputs.tag }}-amd64 \ + kubetail/kubetail-dashboard:${{ steps.tagName.outputs.tag }}-arm64 - name: Fetch docker token run: | TOKEN=$(curl -X POST "https://hub.docker.com/v2/users/login" -H "Content-Type: application/json" -d '{"username": "${{ secrets.DOCKERHUB_USERNAME }}", "password": "${{ secrets.DOCKERHUB_TOKEN }}"}' | jq -r '.token') @@ -91,7 +91,7 @@ jobs: RESPONSE=$(curl -s -w "%{http_code}" \ -X DELETE \ -H "Authorization: Bearer $TOKEN" \ - "https://hub.docker.com/v2/repositories/kubetail/kubetail-agent/tags/${{ steps.tagName.outputs.tag }}-$arch") + "https://hub.docker.com/v2/repositories/kubetail/kubetail-dashboard/tags/${{ steps.tagName.outputs.tag }}-$arch") if [ "$RESPONSE" -ne 204 ]; then echo "DELETE for $arch failed with status $RESPONSE" exit 1 diff --git a/.gitignore b/.gitignore index eaf667fa..be3c2841 100644 --- a/.gitignore +++ b/.gitignore @@ -26,9 +26,9 @@ lerna-debug.log* /dashboard-ui/dist-ssr # build artifacts -/modules/server/website/* -!/modules/server/website/ -!/modules/server/website/.gitkeep +/modules/dashboard/website/* +!/modules/dashboard/website/ +!/modules/dashboard/website/.gitkeep # vite .vite diff --git a/Makefile b/Makefile index 337583ab..195dd787 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ OUTPUT_DIR := ./bin CLI_BINARY := kubetail DASHBOARD_UI_DIR := ./dashboard-ui -DASHBOARD_SERVER_DIR := ./modules/server +DASHBOARD_SERVER_DIR := ./modules/dashboard # Detect the operating system OS := $(shell uname -s | tr '[:upper:]' '[:lower:]') diff --git a/README.md b/README.md index 6e7d9b43..4efa3267 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Kubetail -Kubetail is a web dashboard for Kubernetes logs that lets you view multiple log streams simultaneously, in real-time (runs on desktop or in cluster) +Kubetail is a logging dashboard for Kubernetes that lets you view multiple log streams simultaneously, in real-time (runs on desktop or in cluster) demo-light-thumbnail @@ -68,7 +68,7 @@ For more information on how to configure the helm chart, see the chart's [values To access the web dashboard you can expose it as an ingress using the chart or you can use your usual access methods such as `kubectl port-forward`: ```console -kubectl port-forward -n kubetail-system svc/kubetail-server 7500:7500 +kubectl port-forward -n kubetail-system svc/kubetail-dashboard 7500:80 ``` Visit [http://localhost:7500](http://localhost:7500). Have fun viewing your Kubernetes logs in realtime! @@ -94,7 +94,7 @@ kubectl apply -f https://github.com/kubetail-org/helm-charts/releases/latest/dow To access the web dashboard you can use your usual access methods such as `kubectl port-forward`: ```console -kubectl port-forward -n kubetail-system svc/kubetail-server 7500:7500 +kubectl port-forward -n kubetail-system svc/kubetail-dashboard 7500:80 ``` Visit [http://localhost:7500](http://localhost:7500). Have fun viewing your Kubernetes logs in realtime! @@ -125,9 +125,10 @@ Visit the [Kubetail documentation](https://www.kubetail.com/) This monorepo contains: -* CLI Tool ([modules/cli](modules/cli)) -* Backend Server ([modules/server](modules/server)) -* Backend Agent ([modules/agent](modules/agent)) +* CLI ([modules/cli](modules/cli)) +* Cluster API ([modules/cluster-api](modules/cluster-api)) +* Cluster Agent ([modules/cluster-agent](modules/cluster-agent)) +* Dashboard Server ([modules/dashboard](modules/dashboard)) * Dashboard UI ([dashboard-ui](dashbord-ui)) ### Setting up the Development Environment @@ -166,20 +167,28 @@ make When the build process finishes you can find the executable in the local `bin/` directory. -### Backend Server +### Dashboard -To build a docker image for a production deployment of the backend server, run the following command: +To build a docker image for a production deployment of the Kubetail Dashboard server, run the following command: ```console -docker build -f build/package/Dockerfile.server -t kubetail-server:latest . +docker build -f build/package/Dockerfile.dashboard -t kubetail-dashboard:latest . ``` -### Backend Agent +### Cluster API -To build a docker image for a production deployment of the backend agent, run the following command: +To build a docker image for a production deployment of the Kubetail Cluster API server, run the following command: ```console -docker build -f build/package/Dockerfile.agent -t kubetail-agent:latest . +docker build -f build/package/Dockerfile.cluster-api -t kubetail-cluster-api:latest . +``` + +### Cluster Agent + +To build a docker image for a production deployment of the Kubetail Cluster Agent, run the following command: + +```console +docker build -f build/package/Dockerfile.cluster-agent -t kubetail-cluster-agent:latest . ``` ## Get Involved diff --git a/Tiltfile b/Tiltfile index 90b31327..5a23e0b1 100644 --- a/Tiltfile +++ b/Tiltfile @@ -1,48 +1,95 @@ load('ext://restart_process', 'docker_build_with_restart') +load('ext://namespace', 'namespace_create') -# kubetail-agent +namespace_create('kubetail-system') + +# kubetail-cluster-api local_resource( - 'kubetail-agent-compile', - 'cd modules && CGO_ENABLED=0 GOOS=linux go build -o ../.tilt/agent ./agent/cmd/main.go', + 'kubetail-cluster-api-compile', + 'cd modules && CGO_ENABLED=0 GOOS=linux go build -o ../.tilt/cluster-api ./cluster-api/cmd/main.go', deps=[ - './modules/agent', - './modules/common' + './modules/cluster-api', + './modules/shared' ] ) docker_build_with_restart( - 'kubetail-agent', - dockerfile='hack/tilt/Dockerfile.kubetail-agent', + 'kubetail-cluster-api', + dockerfile='hack/tilt/Dockerfile.kubetail-cluster-api', context='.', - entrypoint="/agent/agent -c /etc/kubetail/config.yaml", + entrypoint="/cluster-api/cluster-api -c /etc/kubetail/config.yaml", only=[ - './.tilt/agent', + './.tilt/cluster-api', ], live_update=[ - sync('./.tilt/agent', '/agent/agent'), + sync('./.tilt/cluster-api', '/cluster-api/cluster-api'), ] ) -# kubetail-server +# kubetail-cluster-agent local_resource( - 'kubetail-server-compile', - 'cd modules && CGO_ENABLED=0 GOOS=linux go build -o ../.tilt/server ./server/cmd/main.go', + 'kubetail-cluster-agent-compile', + 'cd modules && CGO_ENABLED=0 GOOS=linux go build -o ../.tilt/cluster-agent ./cluster-agent/cmd/main.go', deps=[ - './modules/server', - './modules/common' + './modules/cluster-agent', + './modules/shared' ] ) docker_build_with_restart( - 'kubetail-server', - dockerfile='hack/tilt/Dockerfile.kubetail-server', + 'kubetail-cluster-agent', + dockerfile='hack/tilt/Dockerfile.kubetail-cluster-agent', context='.', - entrypoint="/server/server -c /etc/kubetail/config.yaml", + entrypoint="/cluster-agent/cluster-agent -c /etc/kubetail/config.yaml", only=[ - './.tilt/server', + './.tilt/cluster-agent', ], live_update=[ - sync('./.tilt/server', '/server/server'), + sync('./.tilt/cluster-agent', '/cluster-agent/cluster-agent'), + ] +) + +# kubetail-dashboard + +local_resource( + 'kubetail-dashboard-compile', + ''' + # Check if the dashboard-ui/dist directory exists + if [ -d dashboard-ui/dist ]; then + rm -rf modules/dashboard/website && + cp -r dashboard-ui/dist modules/dashboard/website + fi + + # Build the Go binary + cd modules && + CGO_ENABLED=0 GOOS=linux go build -o ../.tilt/dashboard ./dashboard/cmd/main.go + + # Reset dashboard/website directory + if [ ! -f dashboard/website/.gitkeep ]; then + rm -rf dashboard/website && + git checkout dashboard/website + fi + ''', + deps=[ + './dashboard-ui/dist', + './modules/dashboard', + './modules/shared' + ], + ignore=[ + './modules/dashboard/website' + ] +) + +docker_build_with_restart( + 'kubetail-dashboard', + dockerfile='hack/tilt/Dockerfile.kubetail-dashboard', + context='.', + entrypoint="/dashboard/dashboard -c /etc/kubetail/config.yaml", + only=[ + './.tilt/dashboard', + ], + live_update=[ + sync('./.tilt/dashboard', '/dashboard/dashboard'), ] ) @@ -57,6 +104,7 @@ k8s_yaml('hack/tilt/chaoskube.yaml') # define resources k8s_resource( objects=[ + 'kubetail-system:namespace', 'kubetail:configmap', 'kubetail-testuser:serviceaccount', 'kubetail-testuser:role', @@ -68,29 +116,47 @@ k8s_resource( ) k8s_resource( - 'kubetail-server', - port_forwards='7500:4000', + 'kubetail-dashboard', + port_forwards='4500:80', + objects=[ + 'kubetail-dashboard:clusterrole', + 'kubetail-dashboard:clusterrolebinding', + 'kubetail-dashboard:serviceaccount', + ], + resource_deps=['kubetail-shared'], +) + +k8s_resource( + 'kubetail-cluster-api', + port_forwards='4501:80', objects=[ - 'kubetail-server:clusterrole', - 'kubetail-server:clusterrolebinding', - 'kubetail-server:role', - 'kubetail-server:rolebinding', - 'kubetail-server:serviceaccount', + 'kubetail-cluster-api:serviceaccount', + 'kubetail-cluster-api:role', + 'kubetail-cluster-api:rolebinding', ], resource_deps=['kubetail-shared'], ) k8s_resource( - 'kubetail-agent', + 'kubetail-cluster-agent', objects=[ - 'kubetail-agent:serviceaccount', - 'kubetail-agent:clusterrole', - 'kubetail-agent:clusterrolebinding', - 'kubetail-agent:networkpolicy', + 'kubetail-cluster-agent:serviceaccount', + 'kubetail-cluster-agent:clusterrole', + 'kubetail-cluster-agent:clusterrolebinding', + 'kubetail-cluster-agent:networkpolicy', ], resource_deps=['kubetail-shared'], ) +k8s_resource( + objects=[ + 'kubetail-cli:serviceaccount', + 'kubetail-cli:clusterrole', + 'kubetail-cli:clusterrolebinding', + ], + new_name='kubetail-cli', +) + k8s_resource( 'chaoskube', objects=[ diff --git a/build/package/Dockerfile.cluster-agent b/build/package/Dockerfile.cluster-agent new file mode 100644 index 00000000..322cedcb --- /dev/null +++ b/build/package/Dockerfile.cluster-agent @@ -0,0 +1,46 @@ +# Copyright 2024-2025 Andres Morey +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +FROM golang:1.23.4 AS builder + +WORKDIR /work + +# install dependencies (for cache) +COPY modules/shared/go.mod ./shared/go.mod +COPY modules/shared/go.sum ./shared/go.sum +COPY modules/cluster-agent/go.mod ./cluster-agent/go.mod +COPY modules/cluster-agent/go.sum ./cluster-agent/go.sum +RUN cd cluster-agent && go mod download all + +# copy code +COPY modules/shared ./shared +COPY modules/cluster-agent ./cluster-agent + +# build cluster-agent +RUN cd cluster-agent && CGO_ENABLED=0 go build -ldflags="-s -w" -o ../bin/cluster-agent ./cmd/main.go + +ENTRYPOINT ["./bin/cluster-agent"] +CMD [] + +# ----------------------------------------------------------- + +FROM scratch AS final + +WORKDIR /cluster-agent + +# copy cluster-agent +COPY --from=builder /work/bin/cluster-agent /cluster-agent/cluster-agent + +ENTRYPOINT ["./cluster-agent"] +CMD [] diff --git a/build/package/Dockerfile.agent b/build/package/Dockerfile.cluster-api similarity index 52% rename from build/package/Dockerfile.agent rename to build/package/Dockerfile.cluster-api index dd49fd0c..3e7dad88 100644 --- a/build/package/Dockerfile.agent +++ b/build/package/Dockerfile.cluster-api @@ -1,4 +1,4 @@ -# Copyright 2024 Andres Morey +# Copyright 2024-2025 Andres Morey # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,35 +12,35 @@ # See the License for the specific language governing permissions and # limitations under the License. -FROM golang:1.22.7 AS builder +FROM golang:1.23.4 AS builder WORKDIR /work # install dependencies (for cache) -COPY modules/common/go.mod ./common/go.mod -COPY modules/common/go.sum ./common/go.sum -COPY modules/agent/go.mod ./agent/go.mod -COPY modules/agent/go.sum ./agent/go.sum -RUN cd agent && go mod download all +COPY modules/shared/go.mod ./shared/go.mod +COPY modules/shared/go.sum ./shared/go.sum +COPY modules/cluster-api/go.mod ./cluster-api/go.mod +COPY modules/cluster-api/go.sum ./cluster-api/go.sum +RUN cd cluster-api && go mod download all # copy code -COPY modules/common ./common -COPY modules/agent ./agent +COPY modules/shared ./shared +COPY modules/cluster-api ./cluster-api -# build agent -RUN cd agent && CGO_ENABLED=0 go build -o ../bin/agent ./cmd/main.go +# build cluster-api +RUN cd cluster-api && CGO_ENABLED=0 go build -ldflags="-s -w" -o ../bin/cluster-api ./cmd/main.go -ENTRYPOINT ["./bin/agent"] +ENTRYPOINT ["./bin/cluster-api"] CMD [] # ----------------------------------------------------------- FROM scratch AS final -WORKDIR /agent +WORKDIR /cluster-api -# copy agent -COPY --from=builder /work/bin/agent /agent/agent +# copy cluster-api +COPY --from=builder /work/bin/cluster-api /cluster-api/cluster-api -ENTRYPOINT ["./agent"] +ENTRYPOINT ["./cluster-api"] CMD [] diff --git a/build/package/Dockerfile.server b/build/package/Dockerfile.dashboard similarity index 57% rename from build/package/Dockerfile.server rename to build/package/Dockerfile.dashboard index f87f48c5..12d61f39 100644 --- a/build/package/Dockerfile.server +++ b/build/package/Dockerfile.dashboard @@ -1,4 +1,4 @@ -# Copyright 2024 Andres Morey +# Copyright 2024-2025 Andres Morey # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -37,56 +37,56 @@ CMD [] # ----------------------------------------------------------- -FROM golang:1.22.7 AS server-builder +FROM golang:1.23.4 AS dashboard-builder WORKDIR /work # install dependencies (for cache) -COPY modules/common/go.mod ./common/go.mod -COPY modules/common/go.sum ./common/go.sum -COPY modules/server/go.mod ./server/go.mod -COPY modules/server/go.sum ./server/go.sum -RUN cd server && go mod download all +COPY modules/shared/go.mod ./shared/go.mod +COPY modules/shared/go.sum ./shared/go.sum +COPY modules/dashboard/go.mod ./dashboard/go.mod +COPY modules/dashboard/go.sum ./dashboard/go.sum +RUN cd dashboard && go mod download all # copy code -COPY modules/common ./common -COPY modules/server ./server +COPY modules/shared ./shared +COPY modules/dashboard ./dashboard # copy frontend -COPY --from=frontend-builder /dashboard-ui/dist ./server/website +COPY --from=frontend-builder /dashboard-ui/dist ./dashboard/website -# build server -RUN cd server && CGO_ENABLED=0 go build -o ../bin/server ./cmd/main.go +# build dashboard +RUN cd dashboard && CGO_ENABLED=0 go build -ldflags="-s -w" -o ../bin/dashboard ./cmd/main.go -ENTRYPOINT ["./server"] +ENTRYPOINT ["./bin/dashboard"] CMD [] # ----------------------------------------------------------- FROM alpine:3.20.0 AS debug -WORKDIR /server +WORKDIR /dashboard # copy certs for tls verification -COPY --from=server-builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ +COPY --from=dashboard-builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ -# copy server -COPY --from=server-builder /work/bin/server /server/server +# copy dashboard +COPY --from=dashboard-builder /work/bin/dashboard /dashboard/dashboard -ENTRYPOINT ["./server"] +ENTRYPOINT ["./dashboard"] CMD [] # ----------------------------------------------------------- FROM scratch AS final -WORKDIR /server +WORKDIR /dashboard # copy certs for tls verification -COPY --from=server-builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ +COPY --from=dashboard-builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ -# copy server -COPY --from=server-builder /work/bin/server /server/server +# copy dashboard +COPY --from=dashboard-builder /work/bin/dashboard /dashboard/dashboard -ENTRYPOINT ["./server"] +ENTRYPOINT ["./dashboard"] CMD [] diff --git a/dashboard-ui/.env b/dashboard-ui/.env new file mode 100644 index 00000000..ee3d4df8 --- /dev/null +++ b/dashboard-ui/.env @@ -0,0 +1 @@ +VITE_DASHBOARD_PROXY_PORT=4500 diff --git a/dashboard-ui/.eslintrc.cjs b/dashboard-ui/.eslintrc.cjs index 4c568d68..637f6d74 100644 --- a/dashboard-ui/.eslintrc.cjs +++ b/dashboard-ui/.eslintrc.cjs @@ -10,15 +10,15 @@ module.exports = { ], ignorePatterns: [ 'dist', - '.eslintrc.cjs', 'codegen.ts', - 'vite.config.ts', - 'vitest.setup.ts', '**/__generated__/*.ts', ], parser: '@typescript-eslint/parser', parserOptions: { - project: './tsconfig.json' + project: [ + './tsconfig.node.json', + './tsconfig.app.json' + ] }, plugins: ['react-refresh'], rules: { diff --git a/dashboard-ui/README.md b/dashboard-ui/README.md index d3fc56bb..b0bdd196 100644 --- a/dashboard-ui/README.md +++ b/dashboard-ui/README.md @@ -1,10 +1,10 @@ -# Kubetail Frontend +# Kubetail Dashboard UI -React-based static website for the Kubetail application +React-based static website for the Kubetail Dashboard ## Overview -The Kubetail frontend website is a React-based static website that's designed to query the Kubetail backend server and display results to the user in a clean, easy-to-use interface. Kubernetes-related requests to the backend server's GraphQL endpoint are made using [Apollo Client](https://www.apollographql.com/docs/react/) and authentication-related requests to the REST API are made using simple `fetch()` requests. The code is written in TypeScript and is generally written to be as type-safe as possible. In development, the application uses [vite](https://vitejs.dev/) and in production, it's deployed as a static website hosted by the backend server. +The Kubetail Dashboard UI is a React-based static website that's designed to query the Kubetail Dashboard server and display results to the user in a clean, easy-to-use interface. Kubernetes-related requests to the server's GraphQL endpoint are made using [Apollo Client](https://www.apollographql.com/docs/react/) and authentication-related requests to the REST API are made using simple `fetch()` requests. The code is written in TypeScript and is generally written to be as type-safe as possible. In development, the application uses [vite](https://vitejs.dev/) and in production, it's deployed as a static website hosted by the server. ## GraphQL diff --git a/dashboard-ui/codegen.ts b/dashboard-ui/codegen.ts index ae7b99be..d8b78766 100644 --- a/dashboard-ui/codegen.ts +++ b/dashboard-ui/codegen.ts @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -15,10 +15,10 @@ import { CodegenConfig } from '@graphql-codegen/cli'; const config: CodegenConfig = { - schema: '../modules/server/graph/schema.graphqls', - documents: ['./src/**/*.{ts,tsx}'], generates: { - './src/lib/graphql/__generated__/': { + './src/lib/graphql/dashboard/__generated__/': { + schema: '../modules/dashboard/graph/schema.graphqls', + documents: './src/lib/graphql/dashboard/*.ts', preset: 'client', plugins: [], presetConfig: { @@ -26,10 +26,30 @@ const config: CodegenConfig = { fragmentMasking: false, } }, - './src/lib/graphql/__generated__/introspection-result.json': { + './src/lib/graphql/dashboard/__generated__/introspection-result.json': { + schema: '../modules/dashboard/graph/schema.graphqls', + documents: './src/lib/graphql/dashboard/*.ts', plugins: ['fragment-matcher'], config: { - module: 'commonjs' + module: 'commonjs', + }, + }, + './src/lib/graphql/cluster-api/__generated__/': { + schema: '../modules/cluster-api/graph/schema.graphqls', + documents: './src/lib/graphql/cluster-api/*.ts', + preset: 'client', + plugins: [], + presetConfig: { + gqlTagName: 'gql', + fragmentMasking: false, + } + }, + './src/lib/graphql/cluster-api/__generated__/introspection-result.json': { + schema: '../modules/cluster-api/graph/schema.graphqls', + documents: './src/lib/graphql/cluster-api/*.ts', + plugins: ['fragment-matcher'], + config: { + module: 'commonjs', }, }, }, diff --git a/dashboard-ui/index.html b/dashboard-ui/index.html index c9020042..57c308dc 100644 --- a/dashboard-ui/index.html +++ b/dashboard-ui/index.html @@ -1,22 +1,19 @@ - - - - - - Kubetail | Log Viewer - - - -
- - - - + + + + + Kubetail | Log Viewer + + +
+ + + diff --git a/dashboard-ui/package.json b/dashboard-ui/package.json index 39ae47cd..f4fb0523 100644 --- a/dashboard-ui/package.json +++ b/dashboard-ui/package.json @@ -5,80 +5,76 @@ "type": "module", "scripts": { "dev": "vite", - "build": "tsc && vite build", + "build": "tsc -b && vite build", + "graphql-codegen": "graphql-codegen", "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", "preview": "vite preview", - "graphql-codegen": "graphql-codegen", - "test": "vitest", - "coverage": "vitest run --coverage" + "test": "vitest" }, "dependencies": { - "@apollo/client": "^3.11.8", - "@headlessui/react": "^1.7.19", - "@heroicons/react": "^2.1.5", - "@kubetail/ui": "0.1.4", - "async-mutex": "^0.5.0", + "@apollo/client": "^3.12.6", + "@headlessui/react": "^2.2.0", + "@heroicons/react": "^2.2.0", + "@kubetail/ui": "^0.1.4", "clsx": "^2.1.1", "date-fns": "^3.6.0", "date-fns-tz": "^3.2.0", "distinct-colors": "^3.0.0", - "fancy-ansi": "^0.1.2", - "graphql": "^16.9.0", - "graphql-ws": "^5.16.0", - "lucide-react": "^0.367.0", + "fancy-ansi": "^0.1.3", + "graphql-ws": "^5.16.2", + "lucide-react": "^0.469.0", "numeral": "^2.0.6", "react": "^18.3.1", - "react-day-picker": "^8.10.1", "react-dom": "^18.3.1", "react-error-boundary": "^4.1.2", - "react-hot-toast": "^2.4.1", + "react-hot-toast": "^2.5.1", + "react-router-dom": "^7.1.2", "react-timeago": "^7.2.0", - "react-virtualized-auto-sizer": "^1.0.24", - "react-window": "^1.8.10", + "react-virtualized-auto-sizer": "^1.0.25", + "react-window": "^1.8.11", "react-window-infinite-loader": "^1.0.9", "recoil": "^0.7.7", - "tailwind-merge": "^2.5.4", + "tailwind-merge": "^2.6.0", "usehooks-ts": "^3.1.0" }, "devDependencies": { "@apollo/react-testing": "^4.0.0", + "@eslint/js": "^9.18.0", "@graphql-codegen/cli": "^5.0.3", "@graphql-codegen/client-preset": "^4.5.1", "@graphql-codegen/fragment-matcher": "^5.0.2", "@graphql-typed-document-node/core": "^3.2.0", - "@testing-library/jest-dom": "^6.6.2", - "@testing-library/react": "^16.0.1", - "@types/node": "^22.7.8", + "@testing-library/jest-dom": "^6.6.3", + "@testing-library/react": "^16.2.0", + "@types/node": "^22.10.7", "@types/numeral": "^2.0.5", - "@types/react": "^18.3.11", - "@types/react-dom": "^18.3.1", + "@types/react": "^18.3.18", + "@types/react-dom": "^18.3.5", "@types/react-timeago": "^4.1.7", "@types/react-window": "^1.8.8", "@types/react-window-infinite-loader": "^1.0.9", - "@types/zen-observable": "^0.8.7", - "@typescript-eslint/eslint-plugin": "^7.16.0", - "@typescript-eslint/parser": "^7.16.0", - "@vitejs/plugin-react": "^4.3.3", - "@vitest/coverage-v8": "1.6.0", - "autoprefixer": "^10.4.19", - "eslint": "^8.57.0", + "@typescript-eslint/eslint-plugin": "^7.18.0", + "@typescript-eslint/parser": "^7.18.0", + "@vitejs/plugin-react-swc": "^3.7.2", + "autoprefixer": "^10.4.20", + "eslint": "^8.57.1", "eslint-config-airbnb": "^19.0.4", "eslint-config-airbnb-typescript": "^18.0.0", - "eslint-plugin-import": "^2.29.1", - "eslint-plugin-jsx-a11y": "^6.9.0", + "eslint-plugin-import": "^2.31.0", + "eslint-plugin-jsx-a11y": "^6.10.2", "eslint-plugin-react-hooks": "^4.6.2", - "eslint-plugin-react-refresh": "^0.4.8", + "eslint-plugin-react-refresh": "^0.4.18", + "globals": "^15.14.0", "history": "^5.3.0", - "jsdom": "^25.0.1", - "postcss": "^8.4.39", - "react-router-dom": "^6.27.0", - "rollup-plugin-visualizer": "^5.12.0", - "tailwindcss": "^3.4.14", + "jsdom": "^26.0.0", + "postcss": "^8.5.1", + "tailwindcss": "^3.4.17", "typescript": "5.5.4", - "vite": "^5.4.9", - "vite-plugin-svgr": "^4.2.0", - "vite-tsconfig-paths": "^5.0.1", - "vitest": "^1.6.0" + "typescript-eslint": "^8.20.0", + "vite": "^5.4.11", + "vite-plugin-svgr": "^4.3.0", + "vite-tsconfig-paths": "^5.1.4", + "vitest": "^2.1.8" }, - "packageManager": "pnpm@9.14.2+sha512.6e2baf77d06b9362294152c851c4f278ede37ab1eba3a55fda317a4a17b209f4dbb973fb250a77abc463a341fcb1f17f17cfa24091c4eb319cda0d9b84278387" + "packageManager": "pnpm@9.15.4+sha512.b2dc20e2fc72b3e18848459b37359a32064663e5627a51e4c74b2c29dd8e8e0491483c3abb40789cfd578bf362fb6ba8261b05f0387d76792ed6e23ea3b1b6a0" } diff --git a/dashboard-ui/pnpm-lock.yaml b/dashboard-ui/pnpm-lock.yaml index bac6f605..5f0ba685 100644 --- a/dashboard-ui/pnpm-lock.yaml +++ b/dashboard-ui/pnpm-lock.yaml @@ -9,20 +9,17 @@ importers: .: dependencies: '@apollo/client': - specifier: ^3.11.8 - version: 3.11.8(@types/react@18.3.11)(graphql-ws@5.16.0(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^3.12.6 + version: 3.12.6(@types/react@18.3.18)(graphql-ws@5.16.2(graphql@16.10.0))(graphql@16.10.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@headlessui/react': - specifier: ^1.7.19 - version: 1.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^2.2.0 + version: 2.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@heroicons/react': - specifier: ^2.1.5 - version: 2.1.5(react@18.3.1) + specifier: ^2.2.0 + version: 2.2.0(react@18.3.1) '@kubetail/ui': - specifier: 0.1.4 - version: 0.1.4(@heroicons/react@2.1.5(react@18.3.1))(@tailwindcss/forms@0.5.7(tailwindcss@3.4.14))(@types/react-dom@18.3.1)(@types/react@18.3.11)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.14) - async-mutex: - specifier: ^0.5.0 - version: 0.5.0 + specifier: ^0.1.4 + version: 0.1.4(@heroicons/react@2.2.0(react@18.3.1))(@tailwindcss/forms@0.5.9(tailwindcss@3.4.17))(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17) clsx: specifier: ^2.1.1 version: 2.1.1 @@ -36,26 +33,20 @@ importers: specifier: ^3.0.0 version: 3.0.0 fancy-ansi: - specifier: ^0.1.2 - version: 0.1.2 - graphql: - specifier: ^16.9.0 - version: 16.9.0 + specifier: ^0.1.3 + version: 0.1.3 graphql-ws: - specifier: ^5.16.0 - version: 5.16.0(graphql@16.9.0) + specifier: ^5.16.2 + version: 5.16.2(graphql@16.10.0) lucide-react: - specifier: ^0.367.0 - version: 0.367.0(react@18.3.1) + specifier: ^0.469.0 + version: 0.469.0(react@18.3.1) numeral: specifier: ^2.0.6 version: 2.0.6 react: specifier: ^18.3.1 version: 18.3.1 - react-day-picker: - specifier: ^8.10.1 - version: 8.10.1(date-fns@3.6.0)(react@18.3.1) react-dom: specifier: ^18.3.1 version: 18.3.1(react@18.3.1) @@ -63,17 +54,20 @@ importers: specifier: ^4.1.2 version: 4.1.2(react@18.3.1) react-hot-toast: - specifier: ^2.4.1 - version: 2.4.1(csstype@3.1.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^2.5.1 + version: 2.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-router-dom: + specifier: ^7.1.2 + version: 7.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-timeago: specifier: ^7.2.0 version: 7.2.0(react@18.3.1) react-virtualized-auto-sizer: - specifier: ^1.0.24 - version: 1.0.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^1.0.25 + version: 1.0.25(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-window: - specifier: ^1.8.10 - version: 1.8.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^1.8.11 + version: 1.8.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react-window-infinite-loader: specifier: ^1.0.9 version: 1.0.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -81,45 +75,48 @@ importers: specifier: ^0.7.7 version: 0.7.7(react-dom@18.3.1(react@18.3.1))(react@18.3.1) tailwind-merge: - specifier: ^2.5.4 - version: 2.5.4 + specifier: ^2.6.0 + version: 2.6.0 usehooks-ts: specifier: ^3.1.0 version: 3.1.0(react@18.3.1) devDependencies: '@apollo/react-testing': specifier: ^4.0.0 - version: 4.0.0(@types/react@18.3.11)(graphql-ws@5.16.0(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + version: 4.0.0(@types/react@18.3.18)(graphql-ws@5.16.2(graphql@16.10.0))(graphql@16.10.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@eslint/js': + specifier: ^9.18.0 + version: 9.18.0 '@graphql-codegen/cli': specifier: ^5.0.3 - version: 5.0.3(@types/node@22.7.8)(graphql@16.9.0)(typescript@5.5.4) + version: 5.0.3(@babel/core@7.26.0)(@types/node@22.10.7)(graphql@16.10.0)(typescript@5.5.4) '@graphql-codegen/client-preset': specifier: ^4.5.1 - version: 4.5.1(graphql@16.9.0) + version: 4.5.1(@babel/core@7.26.0)(graphql@16.10.0) '@graphql-codegen/fragment-matcher': specifier: ^5.0.2 - version: 5.0.2(graphql@16.9.0) + version: 5.0.2(graphql@16.10.0) '@graphql-typed-document-node/core': specifier: ^3.2.0 - version: 3.2.0(graphql@16.9.0) + version: 3.2.0(graphql@16.10.0) '@testing-library/jest-dom': - specifier: ^6.6.2 - version: 6.6.2 + specifier: ^6.6.3 + version: 6.6.3 '@testing-library/react': - specifier: ^16.0.1 - version: 16.0.1(@testing-library/dom@10.3.1)(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^16.2.0 + version: 16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@types/node': - specifier: ^22.7.8 - version: 22.7.8 + specifier: ^22.10.7 + version: 22.10.7 '@types/numeral': specifier: ^2.0.5 version: 2.0.5 '@types/react': - specifier: ^18.3.11 - version: 18.3.11 + specifier: ^18.3.18 + version: 18.3.18 '@types/react-dom': - specifier: ^18.3.1 - version: 18.3.1 + specifier: ^18.3.5 + version: 18.3.5(@types/react@18.3.18) '@types/react-timeago': specifier: ^4.1.7 version: 4.1.7 @@ -129,83 +126,77 @@ importers: '@types/react-window-infinite-loader': specifier: ^1.0.9 version: 1.0.9 - '@types/zen-observable': - specifier: ^0.8.7 - version: 0.8.7 '@typescript-eslint/eslint-plugin': - specifier: ^7.16.0 - version: 7.16.0(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4) + specifier: ^7.18.0 + version: 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4) '@typescript-eslint/parser': - specifier: ^7.16.0 - version: 7.16.0(eslint@8.57.0)(typescript@5.5.4) - '@vitejs/plugin-react': - specifier: ^4.3.3 - version: 4.3.3(vite@5.4.9(@types/node@22.7.8)) - '@vitest/coverage-v8': - specifier: 1.6.0 - version: 1.6.0(vitest@1.6.0(@types/node@22.7.8)(jsdom@25.0.1)) + specifier: ^7.18.0 + version: 7.18.0(eslint@8.57.1)(typescript@5.5.4) + '@vitejs/plugin-react-swc': + specifier: ^3.7.2 + version: 3.7.2(@swc/helpers@0.5.15)(vite@5.4.11(@types/node@22.10.7)) autoprefixer: - specifier: ^10.4.19 - version: 10.4.19(postcss@8.4.39) + specifier: ^10.4.20 + version: 10.4.20(postcss@8.5.1) eslint: - specifier: ^8.57.0 - version: 8.57.0 + specifier: ^8.57.1 + version: 8.57.1 eslint-config-airbnb: specifier: ^19.0.4 - version: 19.0.4(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint-plugin-jsx-a11y@6.9.0(eslint@8.57.0))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.0))(eslint-plugin-react@7.34.1(eslint@8.57.0))(eslint@8.57.0) + version: 19.0.4(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1))(eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.1))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.1))(eslint-plugin-react@7.37.2(eslint@8.57.1))(eslint@8.57.1) eslint-config-airbnb-typescript: specifier: ^18.0.0 - version: 18.0.0(@typescript-eslint/eslint-plugin@7.16.0(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4))(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint@8.57.0) + version: 18.0.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4))(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1))(eslint@8.57.1) eslint-plugin-import: - specifier: ^2.29.1 - version: 2.29.1(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0) + specifier: ^2.31.0 + version: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1) eslint-plugin-jsx-a11y: - specifier: ^6.9.0 - version: 6.9.0(eslint@8.57.0) + specifier: ^6.10.2 + version: 6.10.2(eslint@8.57.1) eslint-plugin-react-hooks: specifier: ^4.6.2 - version: 4.6.2(eslint@8.57.0) + version: 4.6.2(eslint@8.57.1) eslint-plugin-react-refresh: - specifier: ^0.4.8 - version: 0.4.8(eslint@8.57.0) + specifier: ^0.4.18 + version: 0.4.18(eslint@8.57.1) + globals: + specifier: ^15.14.0 + version: 15.14.0 history: specifier: ^5.3.0 version: 5.3.0 jsdom: - specifier: ^25.0.1 - version: 25.0.1 + specifier: ^26.0.0 + version: 26.0.0 postcss: - specifier: ^8.4.39 - version: 8.4.39 - react-router-dom: - specifier: ^6.27.0 - version: 6.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - rollup-plugin-visualizer: - specifier: ^5.12.0 - version: 5.12.0(rollup@4.24.0) + specifier: ^8.5.1 + version: 8.5.1 tailwindcss: - specifier: ^3.4.14 - version: 3.4.14 + specifier: ^3.4.17 + version: 3.4.17 typescript: specifier: 5.5.4 version: 5.5.4 + typescript-eslint: + specifier: ^8.20.0 + version: 8.20.0(eslint@8.57.1)(typescript@5.5.4) vite: - specifier: ^5.4.9 - version: 5.4.9(@types/node@22.7.8) + specifier: ^5.4.11 + version: 5.4.11(@types/node@22.10.7) vite-plugin-svgr: - specifier: ^4.2.0 - version: 4.2.0(rollup@4.24.0)(typescript@5.5.4)(vite@5.4.9(@types/node@22.7.8)) + specifier: ^4.3.0 + version: 4.3.0(rollup@4.30.1)(typescript@5.5.4)(vite@5.4.11(@types/node@22.10.7)) vite-tsconfig-paths: - specifier: ^5.0.1 - version: 5.0.1(typescript@5.5.4)(vite@5.4.9(@types/node@22.7.8)) + specifier: ^5.1.4 + version: 5.1.4(typescript@5.5.4)(vite@5.4.11(@types/node@22.10.7)) vitest: - specifier: ^1.6.0 - version: 1.6.0(@types/node@22.7.8)(jsdom@25.0.1) + specifier: ^2.1.8 + version: 2.1.8(@types/node@22.10.7)(jsdom@26.0.0) packages: - '@adobe/css-tools@4.4.0': - resolution: {integrity: sha512-Ff9+ksdQQB3rMncgqDK78uLznstjyfIf2Arnh22pW8kBpLs6rpKDwgnZT46hin5Hl1WzazzK64DOrhSwYpS7bQ==} + '@adobe/css-tools@4.4.1': + resolution: {integrity: sha512-12WGKBQzjUAI4ayyF4IAtfw2QR/IDoqk6jTddXDhtYTJF9ASmoE1zst7cVtP0aL/F1jUJL5r+JxKXKEgHNbEUQ==} '@alloc/quick-lru@5.2.0': resolution: {integrity: sha512-UrcABB+4bUrFABwbluTIBErXwvbsU/V7TZWfmbgJfbkwiBuziS9gxdODUyuiecfdGQ85jglMW6juS3+z5TsKLw==} @@ -215,31 +206,13 @@ packages: resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==} engines: {node: '>=6.0.0'} - '@apollo/client@3.11.10': - resolution: {integrity: sha512-IfGc+X4il0rDqVQBBWdxIKM+ciDCiDzBq9+Bg9z4tJMi87uF6po4v+ddiac1wP0ARgVPsFwEIGxK7jhN4pW8jg==} - peerDependencies: - graphql: ^15.0.0 || ^16.0.0 - graphql-ws: ^5.5.5 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 - subscriptions-transport-ws: ^0.9.0 || ^0.11.0 - peerDependenciesMeta: - graphql-ws: - optional: true - react: - optional: true - react-dom: - optional: true - subscriptions-transport-ws: - optional: true - - '@apollo/client@3.11.8': - resolution: {integrity: sha512-CgG1wbtMjsV2pRGe/eYITmV5B8lXUCYljB2gB/6jWTFQcrvirUVvKg7qtFdjYkQSFbIffU1IDyxgeaN81eTjbA==} + '@apollo/client@3.12.6': + resolution: {integrity: sha512-MOEtkojZagMKB7nxlwQ426eaBYwEs/Xfn+JeLOd81wv6j7toKo57eEGAbJdZwyXGRgtiqDkX5gx3EzE7qtarXA==} peerDependencies: graphql: ^15.0.0 || ^16.0.0 graphql-ws: ^5.5.5 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc <19.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || >=19.0.0-rc subscriptions-transport-ws: ^0.9.0 || ^0.11.0 peerDependenciesMeta: graphql-ws: @@ -254,179 +227,95 @@ packages: '@apollo/react-testing@4.0.0': resolution: {integrity: sha512-P7Z/flUHpRRZYc3FkIqxZH9XD3FuP2Sgks1IXqGq2Zb7qI0aaTfVeRsLYmZNUcFOh2pTHxs0NXgPnH1VfYOpig==} - '@ardatan/relay-compiler@12.0.0': - resolution: {integrity: sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q==} + '@ardatan/relay-compiler@12.0.1': + resolution: {integrity: sha512-q89DkY9HnvsyBRMu5YiYAJUN+B7cST364iCKLzeNqn0BUG3LWez2KfyKTbxPDdqSzGyUmIfUgTm/ThckIReF4g==} hasBin: true peerDependencies: graphql: '*' - '@ardatan/sync-fetch@0.0.1': - resolution: {integrity: sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA==} - engines: {node: '>=14'} - - '@babel/code-frame@7.24.7': - resolution: {integrity: sha512-BcYH1CVJBO9tvyIZ2jVeXgSIMvGZ2FDRvDdOIVQyuklNKSsx+eppDEBq/g47Ayw+RqNFE+URvOShmf+f/qwAlA==} - engines: {node: '>=6.9.0'} - - '@babel/code-frame@7.25.7': - resolution: {integrity: sha512-0xZJFNE5XMpENsgfHYTw8FbX4kv53mFLn2i3XPoq69LyhYSCBJtitaHx9QnsVTrsogI4Z3+HtEfZ2/GFPOtf5g==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.24.7': - resolution: {integrity: sha512-qJzAIcv03PyaWqxRgO4mSU3lihncDT296vnyuE2O8uA4w3UHWI4S3hgeZd1L8W1Bft40w9JxJ2b412iDUFFRhw==} - engines: {node: '>=6.9.0'} - - '@babel/compat-data@7.25.8': - resolution: {integrity: sha512-ZsysZyXY4Tlx+Q53XdnOFmqwfB9QDTHYxaZYajWRoBLuLEAwI2UIbtxOjWh/cFaa9IKUlcB+DDuoskLuKu56JA==} - engines: {node: '>=6.9.0'} - - '@babel/core@7.24.7': - resolution: {integrity: sha512-nykK+LEK86ahTkX/3TgauT0ikKoNCfKHEaZYTUVupJdTLzGNvrblu4u6fa7DhZONAltdf8e662t/abY8idrd/g==} - engines: {node: '>=6.9.0'} + '@asamuzakjp/css-color@2.8.3': + resolution: {integrity: sha512-GIc76d9UI1hCvOATjZPyHFmE5qhRccp3/zGfMPapK3jBi+yocEzp6BBB0UnfRYP9NP4FANqUZYb0hnfs3TM3hw==} - '@babel/core@7.25.8': - resolution: {integrity: sha512-Oixnb+DzmRT30qu9d3tJSQkxuygWm32DFykT4bRoORPa9hZ/L4KhVB/XiRm6KG+roIEM7DBQlmg27kw2HZkdZg==} + '@babel/code-frame@7.26.2': + resolution: {integrity: sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ==} engines: {node: '>=6.9.0'} - '@babel/generator@7.24.7': - resolution: {integrity: sha512-oipXieGC3i45Y1A41t4tAqpnEZWgB/lC6Ehh6+rOviR5XWpTtMmLN+fGjz9vOiNRt0p6RtO6DtD0pdU3vpqdSA==} + '@babel/compat-data@7.26.5': + resolution: {integrity: sha512-XvcZi1KWf88RVbF9wn8MN6tYFloU5qX8KjuF3E1PVBmJ9eypXfs4GRiJwLuTZL0iSnJUKn1BFPa5BPZZJyFzPg==} engines: {node: '>=6.9.0'} - '@babel/generator@7.25.7': - resolution: {integrity: sha512-5Dqpl5fyV9pIAD62yK9P7fcA768uVPUyrQmqpqstHWgMma4feF1x/oFysBCVZLY5wJ2GkMUCdsNDnGZrPoR6rA==} + '@babel/core@7.26.0': + resolution: {integrity: sha512-i1SLeK+DzNnQ3LL/CswPCa/E5u4lh1k6IAEphON8F+cXt0t9euTshDru0q7/IqMa1PMPz5RnHuHscF8/ZJsStg==} engines: {node: '>=6.9.0'} - '@babel/helper-annotate-as-pure@7.24.7': - resolution: {integrity: sha512-BaDeOonYvhdKw+JoMVkAixAAJzG2jVPIwWoKBPdYuY9b452e2rPuI9QPYh3KpofZ3pW2akOmwZLOiOsHMiqRAg==} + '@babel/generator@7.26.5': + resolution: {integrity: sha512-2caSP6fN9I7HOe6nqhtft7V4g7/V/gfDsC3Ag4W7kEzzvRGKqiv0pu0HogPiZ3KaVSoNDhUws6IJjDjpfmYIXw==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.24.7': - resolution: {integrity: sha512-ctSdRHBi20qWOfy27RUb4Fhp07KSJ3sXcuSvTrXrc4aG8NSYDo1ici3Vhg9bg69y5bj0Mr1lh0aeEgTvc12rMg==} + '@babel/helper-annotate-as-pure@7.25.9': + resolution: {integrity: sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g==} engines: {node: '>=6.9.0'} - '@babel/helper-compilation-targets@7.25.7': - resolution: {integrity: sha512-DniTEax0sv6isaw6qSQSfV4gVRNtw2rte8HHM45t9ZR0xILaufBRNkpMifCRiAPyvL4ACD6v0gfCwCmtOQaV4A==} + '@babel/helper-compilation-targets@7.26.5': + resolution: {integrity: sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA==} engines: {node: '>=6.9.0'} - '@babel/helper-create-class-features-plugin@7.24.7': - resolution: {integrity: sha512-kTkaDl7c9vO80zeX1rJxnuRpEsD5tA81yh11X1gQo+PhSti3JS+7qeZo9U4RHobKRiFPKaGK3svUAeb8D0Q7eg==} + '@babel/helper-create-class-features-plugin@7.25.9': + resolution: {integrity: sha512-UTZQMvt0d/rSz6KI+qdu7GQze5TIajwTS++GUozlw8VBJDEOAqSXwm1WvmYEZwqdqSGQshRocPDqrt4HBZB3fQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-environment-visitor@7.24.7': - resolution: {integrity: sha512-DoiN84+4Gnd0ncbBOM9AZENV4a5ZiL39HYMyZJGZ/AZEykHYdJw0wW3kdcsh9/Kn+BRXHLkkklZ51ecPKmI1CQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-function-name@7.24.7': - resolution: {integrity: sha512-FyoJTsj/PEUWu1/TYRiXTIHc8lbw+TDYkZuoE43opPS5TrI7MyONBE1oNvfguEXAD9yhQRrVBnXdXzSLQl9XnA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-hoist-variables@7.24.7': - resolution: {integrity: sha512-MJJwhkoGy5c4ehfoRyrJ/owKeMl19U54h27YYftT0o2teQ3FJ3nQUf/I3LlJsX4l3qlw7WRXUmiyajvHXoTubQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-member-expression-to-functions@7.24.7': - resolution: {integrity: sha512-LGeMaf5JN4hAT471eJdBs/GK1DoYIJ5GCtZN/EsL6KUiiDZOvO/eKE11AMZJa2zP4zk4qe9V2O/hxAmkRc8p6w==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.24.7': - resolution: {integrity: sha512-8AyH3C+74cgCVVXow/myrynrAGv+nTVg5vKu2nZph9x7RcRwzmh0VFallJuFTZ9mx6u4eSdXZfcOzSqTUm0HCA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-module-imports@7.25.7': - resolution: {integrity: sha512-o0xCgpNmRohmnoWKQ0Ij8IdddjyBFE4T2kagL/x6M3+4zUgc+4qTOUBoNe4XxDskt1HPKO007ZPiMgLDq2s7Kw==} + '@babel/helper-member-expression-to-functions@7.25.9': + resolution: {integrity: sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ==} engines: {node: '>=6.9.0'} - '@babel/helper-module-transforms@7.24.7': - resolution: {integrity: sha512-1fuJEwIrp+97rM4RWdO+qrRsZlAeL1lQJoPqtCYWv0NL115XM93hIH4CSRln2w52SqvmY5hqdtauB6QFCDiZNQ==} + '@babel/helper-module-imports@7.25.9': + resolution: {integrity: sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0 - '@babel/helper-module-transforms@7.25.7': - resolution: {integrity: sha512-k/6f8dKG3yDz/qCwSM+RKovjMix563SLxQFo0UhRNo239SP6n9u5/eLtKD6EAjwta2JHJ49CsD8pms2HdNiMMQ==} + '@babel/helper-module-transforms@7.26.0': + resolution: {integrity: sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-optimise-call-expression@7.24.7': - resolution: {integrity: sha512-jKiTsW2xmWwxT1ixIdfXUZp+P5yURx2suzLZr5Hi64rURpDYdMW0pv+Uf17EYk2Rd428Lx4tLsnjGJzYKDM/6A==} + '@babel/helper-optimise-call-expression@7.25.9': + resolution: {integrity: sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ==} engines: {node: '>=6.9.0'} - '@babel/helper-plugin-utils@7.24.7': - resolution: {integrity: sha512-Rq76wjt7yz9AAc1KnlRKNAi/dMSVWgDRx43FHoJEbcYU6xOWaE2dVPwcdTukJrjxS65GITyfbvEYHvkirZ6uEg==} + '@babel/helper-plugin-utils@7.26.5': + resolution: {integrity: sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg==} engines: {node: '>=6.9.0'} - '@babel/helper-replace-supers@7.24.7': - resolution: {integrity: sha512-qTAxxBM81VEyoAY0TtLrx1oAEJc09ZK67Q9ljQToqCnA+55eNwCORaxlKyu+rNfX86o8OXRUSNUnrtsAZXM9sg==} + '@babel/helper-replace-supers@7.26.5': + resolution: {integrity: sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0 - '@babel/helper-simple-access@7.24.7': - resolution: {integrity: sha512-zBAIvbCMh5Ts+b86r/CjU+4XGYIs+R1j951gxI3KmmxBMhCg4oQMsv6ZXQ64XOm/cvzfU1FmoCyt6+owc5QMYg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-simple-access@7.25.7': - resolution: {integrity: sha512-FPGAkJmyoChQeM+ruBGIDyrT2tKfZJO8NcxdC+CWNJi7N8/rZpSxK7yvBJ5O/nF1gfu5KzN7VKG3YVSLFfRSxQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-skip-transparent-expression-wrappers@7.24.7': - resolution: {integrity: sha512-IO+DLT3LQUElMbpzlatRASEyQtfhSE0+m465v++3jyyXeBTBUjtVZg28/gHeV5mrTJqvEKhKroBGAvhW+qPHiQ==} - engines: {node: '>=6.9.0'} - - '@babel/helper-split-export-declaration@7.24.7': - resolution: {integrity: sha512-oy5V7pD+UvfkEATUKvIjvIAH/xCzfsFVw7ygW2SI6NClZzquT+mwdTfgfdbUiceh6iQO0CHtCPsyze/MZ2YbAA==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.24.7': - resolution: {integrity: sha512-7MbVt6xrwFQbunH2DNQsAP5sTGxfqQtErvBIvIMi6EQnbgUOuVYanvREcmFrOPhoXBrTtjhhP+lW+o5UfK+tDg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-string-parser@7.25.7': - resolution: {integrity: sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.24.7': - resolution: {integrity: sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-identifier@7.25.7': - resolution: {integrity: sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-option@7.24.7': - resolution: {integrity: sha512-yy1/KvjhV/ZCL+SM7hBrvnZJ3ZuT9OuZgIJAGpPEToANvc3iM6iDvBnRjtElWibHU6n8/LPR/EjX9EtIEYO3pw==} - engines: {node: '>=6.9.0'} - - '@babel/helper-validator-option@7.25.7': - resolution: {integrity: sha512-ytbPLsm+GjArDYXJ8Ydr1c/KJuutjF2besPNbIZnZ6MKUxi/uTA22t2ymmA4WFjZFpjiAMO0xuuJPqK2nvDVfQ==} + '@babel/helper-skip-transparent-expression-wrappers@7.25.9': + resolution: {integrity: sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.24.7': - resolution: {integrity: sha512-NlmJJtvcw72yRJRcnCmGvSi+3jDEg8qFu3z0AFoymmzLx5ERVWyzd9kVXr7Th9/8yIJi2Zc6av4Tqz3wFs8QWg==} + '@babel/helper-string-parser@7.25.9': + resolution: {integrity: sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA==} engines: {node: '>=6.9.0'} - '@babel/helpers@7.25.7': - resolution: {integrity: sha512-Sv6pASx7Esm38KQpF/U/OXLwPPrdGHNKoeblRxgZRLXnAtnkEe4ptJPDtAZM7fBLadbc1Q07kQpSiGQ0Jg6tRA==} + '@babel/helper-validator-identifier@7.25.9': + resolution: {integrity: sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ==} engines: {node: '>=6.9.0'} - '@babel/highlight@7.24.7': - resolution: {integrity: sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==} + '@babel/helper-validator-option@7.25.9': + resolution: {integrity: sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw==} engines: {node: '>=6.9.0'} - '@babel/highlight@7.25.7': - resolution: {integrity: sha512-iYyACpW3iW8Fw+ZybQK+drQre+ns/tKpXbNESfrhNnPLIklLbXr7MYJ6gPEd0iETGLOK+SxMjVvKb/ffmk+FEw==} + '@babel/helpers@7.26.0': + resolution: {integrity: sha512-tbhNuIxNcVb21pInl3ZSjksLCvgdZy9KwJ8brv993QtIVKJBBkYXz4q4ZbAv31GdnC+R90np23L5FbEBlthAEw==} engines: {node: '>=6.9.0'} - '@babel/parser@7.24.7': - resolution: {integrity: sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==} - engines: {node: '>=6.0.0'} - hasBin: true - - '@babel/parser@7.25.8': - resolution: {integrity: sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==} + '@babel/parser@7.26.5': + resolution: {integrity: sha512-SRJ4jYmXRqV1/Xc+TIVG84WjHBXKlxO9sHQnA2Pf12QQEAp1LOh6kDzNHXcUnbH1QI0FDoPPVOt+vyUDucxpaw==} engines: {node: '>=6.0.0'} hasBin: true @@ -449,20 +338,20 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-flow@7.24.7': - resolution: {integrity: sha512-9G8GYT/dxn/D1IIKOUBmGX0mnmj46mGH9NnZyJLwtCpgh5f7D2VbuKodb+2s9m1Yavh1s7ASQN8lf0eqrb1LTw==} + '@babel/plugin-syntax-flow@7.26.0': + resolution: {integrity: sha512-B+O2DnPc0iG+YXFqOxv2WNuNU97ToWjOomUQ78DouOENWUaM5sVrmet9mcomUGQFwpJd//gvUagXBSdzO1fRKg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-import-assertions@7.24.7': - resolution: {integrity: sha512-Ec3NRUMoi8gskrkBe3fNmEQfxDvY8bgfQpz6jlk/41kX9eUjvpyqWU7PBP/pLAvMaSQjbMNKJmvX57jP+M6bPg==} + '@babel/plugin-syntax-import-assertions@7.26.0': + resolution: {integrity: sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-syntax-jsx@7.24.7': - resolution: {integrity: sha512-6ddciUPe/mpMnOKv/U+RSd2vvVy+Yw/JfBB0ZHYjEZt9NLHmCUylNYlsbqCCS1Bffjlb0fCwC9Vqz+sBz6PsiQ==} + '@babel/plugin-syntax-jsx@7.25.9': + resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 @@ -472,168 +361,177 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-arrow-functions@7.24.7': - resolution: {integrity: sha512-Dt9LQs6iEY++gXUwY03DNFat5C2NbO48jj+j/bSAz6b3HgPs39qcPiYt77fDObIcFwj3/C2ICX9YMwGflUoSHQ==} + '@babel/plugin-transform-arrow-functions@7.25.9': + resolution: {integrity: sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoped-functions@7.24.7': - resolution: {integrity: sha512-yO7RAz6EsVQDaBH18IDJcMB1HnrUn2FJ/Jslc/WtPPWcjhpUJXU/rjbwmluzp7v/ZzWcEhTMXELnnsz8djWDwQ==} + '@babel/plugin-transform-block-scoped-functions@7.26.5': + resolution: {integrity: sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-block-scoping@7.24.7': - resolution: {integrity: sha512-Nd5CvgMbWc+oWzBsuaMcbwjJWAcp5qzrbg69SZdHSP7AMY0AbWFqFO0WTFCA1jxhMCwodRwvRec8k0QUbZk7RQ==} + '@babel/plugin-transform-block-scoping@7.25.9': + resolution: {integrity: sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-classes@7.24.7': - resolution: {integrity: sha512-CFbbBigp8ln4FU6Bpy6g7sE8B/WmCmzvivzUC6xDAdWVsjYTXijpuuGJmYkAaoWAzcItGKT3IOAbxRItZ5HTjw==} + '@babel/plugin-transform-classes@7.25.9': + resolution: {integrity: sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-computed-properties@7.24.7': - resolution: {integrity: sha512-25cS7v+707Gu6Ds2oY6tCkUwsJ9YIDbggd9+cu9jzzDgiNq7hR/8dkzxWfKWnTic26vsI3EsCXNd4iEB6e8esQ==} + '@babel/plugin-transform-computed-properties@7.25.9': + resolution: {integrity: sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-destructuring@7.24.7': - resolution: {integrity: sha512-19eJO/8kdCQ9zISOf+SEUJM/bAUIsvY3YDnXZTupUCQ8LgrWnsG/gFB9dvXqdXnRXMAM8fvt7b0CBKQHNGy1mw==} + '@babel/plugin-transform-destructuring@7.25.9': + resolution: {integrity: sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-flow-strip-types@7.24.7': - resolution: {integrity: sha512-cjRKJ7FobOH2eakx7Ja+KpJRj8+y+/SiB3ooYm/n2UJfxu0oEaOoxOinitkJcPqv9KxS0kxTGPUaR7L2XcXDXA==} + '@babel/plugin-transform-flow-strip-types@7.26.5': + resolution: {integrity: sha512-eGK26RsbIkYUns3Y8qKl362juDDYK+wEdPGHGrhzUl6CewZFo55VZ7hg+CyMFU4dd5QQakBN86nBMpRsFpRvbQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-for-of@7.24.7': - resolution: {integrity: sha512-wo9ogrDG1ITTTBsy46oGiN1dS9A7MROBTcYsfS8DtsImMkHk9JXJ3EWQM6X2SUw4x80uGPlwj0o00Uoc6nEE3g==} + '@babel/plugin-transform-for-of@7.25.9': + resolution: {integrity: sha512-LqHxduHoaGELJl2uhImHwRQudhCM50pT46rIBNvtT/Oql3nqiS3wOwP+5ten7NpYSXrrVLgtZU3DZmPtWZo16A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-function-name@7.24.7': - resolution: {integrity: sha512-U9FcnA821YoILngSmYkW6FjyQe2TyZD5pHt4EVIhmcTkrJw/3KqcrRSxuOo5tFZJi7TE19iDyI1u+weTI7bn2w==} + '@babel/plugin-transform-function-name@7.25.9': + resolution: {integrity: sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-literals@7.24.7': - resolution: {integrity: sha512-vcwCbb4HDH+hWi8Pqenwnjy+UiklO4Kt1vfspcQYFhJdpthSnW8XvWGyDZWKNVrVbVViI/S7K9PDJZiUmP2fYQ==} + '@babel/plugin-transform-literals@7.25.9': + resolution: {integrity: sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-member-expression-literals@7.24.7': - resolution: {integrity: sha512-T/hRC1uqrzXMKLQ6UCwMT85S3EvqaBXDGf0FaMf4446Qx9vKwlghvee0+uuZcDUCZU5RuNi4781UQ7R308zzBw==} + '@babel/plugin-transform-member-expression-literals@7.25.9': + resolution: {integrity: sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-modules-commonjs@7.24.7': - resolution: {integrity: sha512-iFI8GDxtevHJ/Z22J5xQpVqFLlMNstcLXh994xifFwxxGslr2ZXXLWgtBeLctOD63UFDArdvN6Tg8RFw+aEmjQ==} + '@babel/plugin-transform-modules-commonjs@7.26.3': + resolution: {integrity: sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-object-super@7.24.7': - resolution: {integrity: sha512-A/vVLwN6lBrMFmMDmPPz0jnE6ZGx7Jq7d6sT/Ev4H65RER6pZ+kczlf1DthF5N0qaPHBsI7UXiE8Zy66nmAovg==} + '@babel/plugin-transform-object-super@7.25.9': + resolution: {integrity: sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-parameters@7.24.7': - resolution: {integrity: sha512-yGWW5Rr+sQOhK0Ot8hjDJuxU3XLRQGflvT4lhlSY0DFvdb3TwKaY26CJzHtYllU0vT9j58hc37ndFPsqT1SrzA==} + '@babel/plugin-transform-parameters@7.25.9': + resolution: {integrity: sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-property-literals@7.24.7': - resolution: {integrity: sha512-EMi4MLQSHfd2nrCqQEWxFdha2gBCqU4ZcCng4WBGZ5CJL4bBRW0ptdqqDdeirGZcpALazVVNJqRmsO8/+oNCBA==} + '@babel/plugin-transform-property-literals@7.25.9': + resolution: {integrity: sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-display-name@7.24.7': - resolution: {integrity: sha512-H/Snz9PFxKsS1JLI4dJLtnJgCJRoo0AUm3chP6NYr+9En1JMKloheEiLIhlp5MDVznWo+H3AAC1Mc8lmUEpsgg==} + '@babel/plugin-transform-react-display-name@7.25.9': + resolution: {integrity: sha512-KJfMlYIUxQB1CJfO3e0+h0ZHWOTLCPP115Awhaz8U0Zpq36Gl/cXlpoyMRnUWlhNUBAzldnCiAZNvCDj7CrKxQ==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-self@7.24.7': - resolution: {integrity: sha512-fOPQYbGSgH0HUp4UJO4sMBFjY6DuWq+2i8rixyUMb3CdGixs/gccURvYOAhajBdKDoGajFr3mUq5rH3phtkGzw==} + '@babel/plugin-transform-react-jsx@7.25.9': + resolution: {integrity: sha512-s5XwpQYCqGerXl+Pu6VDL3x0j2d82eiV77UJ8a2mDHAW7j9SWRqQ2y1fNo1Z74CdcYipl5Z41zvjj4Nfzq36rw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx-source@7.24.7': - resolution: {integrity: sha512-J2z+MWzZHVOemyLweMqngXrgGC42jQ//R0KdxqkIz/OrbVIIlhFI3WigZ5fO+nwFvBlncr4MGapd8vTyc7RPNQ==} + '@babel/plugin-transform-shorthand-properties@7.25.9': + resolution: {integrity: sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-react-jsx@7.24.7': - resolution: {integrity: sha512-+Dj06GDZEFRYvclU6k4bme55GKBEWUmByM/eoKuqg4zTNQHiApWRhQph5fxQB2wAEFvRzL1tOEj1RJ19wJrhoA==} + '@babel/plugin-transform-spread@7.25.9': + resolution: {integrity: sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-shorthand-properties@7.24.7': - resolution: {integrity: sha512-KsDsevZMDsigzbA09+vacnLpmPH4aWjcZjXdyFKGzpplxhbeB4wYtury3vglQkg6KM/xEPKt73eCjPPf1PgXBA==} + '@babel/plugin-transform-template-literals@7.25.9': + resolution: {integrity: sha512-o97AE4syN71M/lxrCtQByzphAdlYluKPDBzDVzMmfCobUjjhAryZV0AIpRPrxN0eAkxXO6ZLEScmt+PNhj2OTw==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-spread@7.24.7': - resolution: {integrity: sha512-x96oO0I09dgMDxJaANcRyD4ellXFLLiWhuwDxKZX5g2rWP1bTPkBSwCYv96VDXVT1bD9aPj8tppr5ITIh8hBng==} + '@babel/runtime@7.26.0': + resolution: {integrity: sha512-FDSOghenHTiToteC/QRlv2q3DhPZ/oOXTBoirfWNx1Cx3TMVcGWQtMMmQcSvb/JjpNeGzx8Pq/b4fKEJuWm1sw==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/plugin-transform-template-literals@7.24.7': - resolution: {integrity: sha512-AfDTQmClklHCOLxtGoP7HkeMw56k1/bTQjwsfhL6pppo/M4TOBSq+jjBUBLmV/4oeFg4GWMavIl44ZeCtmmZTw==} + '@babel/template@7.25.9': + resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==} engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - '@babel/runtime@7.24.7': - resolution: {integrity: sha512-UwgBRMjJP+xv857DCngvqXI3Iq6J4v0wXmwc6sapg+zyhbwmQX67LUEFrkK5tbyJ30jGuG3ZvWpBiB9LCy1kWw==} + '@babel/traverse@7.26.5': + resolution: {integrity: sha512-rkOSPOw+AXbgtwUga3U4u8RpoK9FEFWBNAlTpcnkLFjL5CT+oyHNuUUC/xx6XefEJ16r38r8Bc/lfp6rYuHeJQ==} engines: {node: '>=6.9.0'} - '@babel/template@7.24.7': - resolution: {integrity: sha512-jYqfPrU9JTF0PmPy1tLYHW4Mp4KlgxJD9l2nP9fD6yT/ICi554DmrWBAEYpIelzjHf1msDP3PxJIRt/nFNfBig==} + '@babel/types@7.26.5': + resolution: {integrity: sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==} engines: {node: '>=6.9.0'} - '@babel/template@7.25.7': - resolution: {integrity: sha512-wRwtAgI3bAS+JGU2upWNL9lSlDcRCqD05BZ1n3X2ONLH1WilFP6O1otQjeMK/1g0pvYcXC7b/qVUB1keofjtZA==} - engines: {node: '>=6.9.0'} + '@csstools/color-helpers@5.0.1': + resolution: {integrity: sha512-MKtmkA0BX87PKaO1NFRTFH+UnkgnmySQOvNxJubsadusqPEC2aJ9MOQiMceZJJ6oitUl/i0L6u0M1IrmAOmgBA==} + engines: {node: '>=18'} - '@babel/traverse@7.24.7': - resolution: {integrity: sha512-yb65Ed5S/QAcewNPh0nZczy9JdYXkkAbIsEo+P7BE7yO3txAY30Y/oPa3QkQ5It3xVG2kpKMg9MsdxZaO31uKA==} - engines: {node: '>=6.9.0'} + '@csstools/css-calc@2.1.1': + resolution: {integrity: sha512-rL7kaUnTkL9K+Cvo2pnCieqNpTKgQzy5f+N+5Iuko9HAoasP+xgprVh7KN/MaJVvVL1l0EzQq2MoqBHKSrDrag==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-parser-algorithms': ^3.0.4 + '@csstools/css-tokenizer': ^3.0.3 - '@babel/traverse@7.25.7': - resolution: {integrity: sha512-jatJPT1Zjqvh/1FyJs6qAHL+Dzb7sTb+xr7Q+gM1b+1oBsMsQQ4FkVKb6dFlJvLlVssqkRzV05Jzervt9yhnzg==} - engines: {node: '>=6.9.0'} + '@csstools/css-color-parser@3.0.7': + resolution: {integrity: sha512-nkMp2mTICw32uE5NN+EsJ4f5N+IGFeCFu4bGpiKgb2Pq/7J/MpyLBeQ5ry4KKtRFZaYs6sTmcMYrSRIyj5DFKA==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-parser-algorithms': ^3.0.4 + '@csstools/css-tokenizer': ^3.0.3 - '@babel/types@7.24.7': - resolution: {integrity: sha512-XEFXSlxiG5td2EJRe8vOmRbaXVgfcBlszKujvVmWIK/UpywWljQCfzAv3RQCGujWQ1RD4YYWEAqDXfuJiy8f5Q==} - engines: {node: '>=6.9.0'} + '@csstools/css-parser-algorithms@3.0.4': + resolution: {integrity: sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==} + engines: {node: '>=18'} + peerDependencies: + '@csstools/css-tokenizer': ^3.0.3 - '@babel/types@7.25.8': - resolution: {integrity: sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==} - engines: {node: '>=6.9.0'} + '@csstools/css-tokenizer@3.0.3': + resolution: {integrity: sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==} + engines: {node: '>=18'} + + '@envelop/core@5.0.3': + resolution: {integrity: sha512-SE3JxL7odst8igN6x77QWyPpXKXz/Hs5o5Y27r+9Br6WHIhkW90lYYVITWIJQ/qYgn5PkpbaVgeFY9rgqQaZ/A==} + engines: {node: '>=18.0.0'} - '@bcoe/v8-coverage@0.2.3': - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} + '@envelop/types@5.0.0': + resolution: {integrity: sha512-IPjmgSc4KpQRlO4qbEDnBEixvtb06WDmjKfi/7fkZaryh5HuOmTtixe1EupQI5XfXO8joc3d27uUZ0QdC++euA==} + engines: {node: '>=18.0.0'} '@esbuild/aix-ppc64@0.21.5': resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} @@ -773,38 +671,48 @@ packages: cpu: [x64] os: [win32] - '@eslint-community/eslint-utils@4.4.0': - resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + '@eslint-community/eslint-utils@4.4.1': + resolution: {integrity: sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/regexpp@4.11.0': - resolution: {integrity: sha512-G/M/tIiMrTAxEWRfLfQJMmGNX28IxBg4PBz8XqQhqUHLFI6TL2htpIB1iQCj144V5ee/JaKyT9/WZ0MGZWfA7A==} + '@eslint-community/regexpp@4.12.1': + resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} '@eslint/eslintrc@2.1.4': resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@eslint/js@8.57.0': - resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==} + '@eslint/js@8.57.1': + resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - '@floating-ui/core@1.6.4': - resolution: {integrity: sha512-a4IowK4QkXl4SCWTGUR0INAfEOX3wtsYw3rKK5InQEHMGObkR8Xk44qYQD9P4r6HHw0iIfK6GUKECmY8sTkqRA==} + '@eslint/js@9.18.0': + resolution: {integrity: sha512-fK6L7rxcq6/z+AaQMtiFTkvbHkBLNlwyRxHpKawP0x3u9+NC6MQTnFW+AdpwC6gfHTW0051cokQgtTN2FqlxQA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@floating-ui/core@1.6.9': + resolution: {integrity: sha512-uMXCuQ3BItDUbAMhIXw7UPXRfAlOAvZzdK9BWpE60MCn+Svt3aLn9jsPTi/WNGlRUu2uI0v5S7JiIUsbsvh3fw==} + + '@floating-ui/dom@1.6.13': + resolution: {integrity: sha512-umqzocjDgNRGTuO7Q8CU32dkHkECqI8ZdMZ5Swb6QAM0t5rnlrN3lGo1hdpscRd3WS8T6DKYK4ephgIH9iRh3w==} - '@floating-ui/dom@1.6.7': - resolution: {integrity: sha512-wmVfPG5o2xnKDU4jx/m4w5qva9FWHcnZ8BvzEe90D/RpwsJaTAVYPEPdQ8sbr/N8zZTAHlZUTQdqg8ZUbzHmng==} + '@floating-ui/react-dom@2.1.2': + resolution: {integrity: sha512-06okr5cgPzMNBy+Ycse2A6udMi4bqwW/zgBF/rwjcNqWkyr82Mcg8b0vjX8OJpZFy/FKjJmw6wV7t44kK6kW7A==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' - '@floating-ui/react-dom@2.1.1': - resolution: {integrity: sha512-4h84MJt3CHrtG18mGsXuLCHMrug49d7DFkU0RMIyshRveBeyV2hmV/pDaF2Uxtu8kgq5r46llp5E5FQiR0K2Yg==} + '@floating-ui/react@0.26.28': + resolution: {integrity: sha512-yORQuuAtVpiRjpMhdc0wJj06b9JFjrYF4qp96j++v2NBpbi6SEGF7donUJ3TMieerQ6qVkAv1tgr7L4r5roTqw==} peerDependencies: react: '>=16.8.0' react-dom: '>=16.8.0' - '@floating-ui/utils@0.2.4': - resolution: {integrity: sha512-dWO2pw8hhi+WrXq1YJy2yCuWoL20PddgGaqTgVe4cOS9Q6qklXCiA1tJEqX6BEwRNSCP84/afac9hd4MS+zEUA==} + '@floating-ui/utils@0.2.9': + resolution: {integrity: sha512-MDWhGtE+eHw5JW7lq4qhc5yRLS11ERl1c7Z6Xd0a58DozHES6EnNNwUWbMiG4J9Cgj053Bhk8zvlhFYKVhULwg==} '@graphql-codegen/add@5.0.3': resolution: {integrity: sha512-SxXPmramkth8XtBlAHu4H4jYcYXM/o3p01+psU+0NADQowA8jtYkK6MW5rV6T+CxkEaNZItfSmZRPgIuypcqnA==} @@ -844,11 +752,6 @@ packages: peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - '@graphql-codegen/plugin-helpers@5.0.4': - resolution: {integrity: sha512-MOIuHFNWUnFnqVmiXtrI+4UziMTYrcquljaI5f/T/Bc7oO7sXcfkAvgkNWEEi9xWreYwvuer3VHCuPI/lAFWbw==} - peerDependencies: - graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - '@graphql-codegen/plugin-helpers@5.1.0': resolution: {integrity: sha512-Y7cwEAkprbTKzVIe436TIw4w03jorsMruvCvu0HJkavaKMQbWY+lQ1RIuROgszDbxAyM35twB5/sUvYG5oW+yg==} engines: {node: '>=16'} @@ -884,27 +787,33 @@ packages: peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - '@graphql-tools/apollo-engine-loader@8.0.1': - resolution: {integrity: sha512-NaPeVjtrfbPXcl+MLQCJLWtqe2/E4bbAqcauEOQ+3sizw1Fc2CNmhHRF8a6W4D0ekvTRRXAMptXYgA2uConbrA==} + '@graphql-hive/gateway-abort-signal-any@0.0.3': + resolution: {integrity: sha512-TLYXRiK1DxkGXEdVrwbEtQ4JrsxJ4d/zXBeTzNzvuU+doTzot0wreFgrmmOq+bvqg/E6yMs1kOvBYz477gyMjA==} + engines: {node: '>=18.0.0'} + peerDependencies: + graphql: ^15.0.0 || ^16.9.0 || ^17.0.0 + + '@graphql-tools/apollo-engine-loader@8.0.13': + resolution: {integrity: sha512-0FH5Yh/4wO2yBO6nZZUwfOu2Wr7fF/twJ3YjuvURH6QS1jqRBGDdZ25xbQ2/yJ4jG+7Lo3vSdJNArc2dk2Pe3A==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/batch-execute@9.0.4': - resolution: {integrity: sha512-kkebDLXgDrep5Y0gK1RN3DMUlLqNhg60OAz0lTCqrYeja6DshxLtLkj+zV4mVbBA4mQOEoBmw6g1LZs3dA84/w==} - engines: {node: '>=16.0.0'} + '@graphql-tools/batch-execute@9.0.11': + resolution: {integrity: sha512-v9b618cj3hIrRGTDrOotYzpK+ZigvNcKdXK3LNBM4g/uA7pND0d4GOnuOSBQGKKN6kT/1nsz4ZpUxCoUvWPbzg==} + engines: {node: '>=18.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/code-file-loader@8.1.2': - resolution: {integrity: sha512-GrLzwl1QV2PT4X4TEEfuTmZYzIZHLqoTGBjczdUzSqgCCcqwWzLB3qrJxFQfI8e5s1qZ1bhpsO9NoMn7tvpmyA==} + '@graphql-tools/code-file-loader@8.1.13': + resolution: {integrity: sha512-zEj+DJhZ8vInnCDeEcyim+LJiROPERqTCZdwHGQXKZXqab1dpyqTiIU+rjWmNUJFrqrLY15gLzrhNSLmDGDdUA==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/delegate@10.0.13': - resolution: {integrity: sha512-9l7cwrHQFbvR6zhZOKYABa3ffqgyV51gNglammupXhptE3Z94p6A6hP0hLw7GHErkm6MiQINl3VBVpFJDlrZuQ==} - engines: {node: '>=16.0.0'} + '@graphql-tools/delegate@10.2.9': + resolution: {integrity: sha512-JlD/IdC26tyqopYvgXo48XwlDnpYPVs523dq5tg/u8kxJe3PtBmEUoE6EQ4CEMk0mB/r5ck+ZXTHt/wiOCWKhw==} + engines: {node: '>=18.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -914,74 +823,80 @@ packages: peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/executor-graphql-ws@1.2.0': - resolution: {integrity: sha512-tSYC1QdrabWexLrYV0UI3uRGbde9WCY/bRhq6Jc+VXMZcfq6ea6pP5NEAVTfwbhUQ4xZvJABVVbKXtKb9uTg1w==} - engines: {node: '>=16.0.0'} + '@graphql-tools/executor-common@0.0.1': + resolution: {integrity: sha512-Gan7uiQhKvAAl0UM20Oy/n5NGBBDNm+ASHvnYuD8mP+dAH0qY+2QMCHyi5py28WAlhAwr0+CAemEyzY/ZzOjdQ==} + engines: {node: '>=18.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/executor-http@1.1.2': - resolution: {integrity: sha512-Yssoh2+GBcoPcL6Jf9X+G+cp8RhiKz6m5R/BLLN0mdg6t02TYANYZV76dMBRPX93xaoIpjl94JkttC6O6ejwWg==} - engines: {node: '>=16.0.0'} + '@graphql-tools/executor-graphql-ws@1.3.7': + resolution: {integrity: sha512-9KUrlpil5nBgcb+XRUIxNQGI+c237LAfDBqYCdLGuYT+/oZz1b4rRIe6HuRk09vuxrbaMTzm7xHhn/iuwWW4eg==} + engines: {node: '>=18.0.0'} + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + + '@graphql-tools/executor-http@1.2.5': + resolution: {integrity: sha512-pG5YXsF2EhKS4JMhwFwI+0S5RGhPuJ3j3Dg1vWItzeBFiTzr2+VO8yyyahHIncLx7OzSYP/6pBDFp76FC55e+g==} + engines: {node: '>=18.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/executor-legacy-ws@1.1.0': - resolution: {integrity: sha512-k+6ZyiaAd8SmwuzbEOfA/LVkuI1nqidhoMw+CJ7c41QGOjSMzc0VS0UZbJyeitI0n7a+uP/Meln1wjzJ2ReDtQ==} + '@graphql-tools/executor-legacy-ws@1.1.10': + resolution: {integrity: sha512-ENyCAky0PrcP0dR5ZNIsCTww3CdOECBor/VuRtxAA+BffFhofNiOKcgR6MEsAOH2jHh0K2wwK38sgrW+D3GX3w==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/executor@1.2.8': - resolution: {integrity: sha512-0qZs/iuRiYRir7bBkA7oN+21wwmSMPQuFK8WcAcxUYJZRhvnlrJ8Nid++PN4OCzTgHPV70GNFyXOajseVCCffA==} + '@graphql-tools/executor@1.3.12': + resolution: {integrity: sha512-FzLXZQJOZHB75SecYFOIEEHw/qcxkRFViw0lVqHpaL07c+GqDxv6VOto0FZCIiV9RgGdyRj3O8lXDCp9Cw1MbA==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/git-loader@8.0.6': - resolution: {integrity: sha512-FQFO4H5wHAmHVyuUQrjvPE8re3qJXt50TWHuzrK3dEaief7JosmlnkLMDMbMBwtwITz9u1Wpl6doPhT2GwKtlw==} + '@graphql-tools/git-loader@8.0.17': + resolution: {integrity: sha512-UYrZmO0LRQecWQx4jpZdUYBLrP0uBGiQks2RGLDpAokqo60rneBxlivjJS3HfMaohhiYy27nU00Ahy/9iTn79Q==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/github-loader@8.0.1': - resolution: {integrity: sha512-W4dFLQJ5GtKGltvh/u1apWRFKBQOsDzFxO9cJkOYZj1VzHCpRF43uLST4VbCfWve+AwBqOuKr7YgkHoxpRMkcg==} + '@graphql-tools/github-loader@8.0.13': + resolution: {integrity: sha512-1eaRdfLFniIhs+MAHGDwy5Q6KraPRd48XHUV+HDuD63LHi10JtxVBPTWSUgNUkPkW0XoReyISjx9NFgTPK423A==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/graphql-file-loader@8.0.1': - resolution: {integrity: sha512-7gswMqWBabTSmqbaNyWSmRRpStWlcCkBc73E6NZNlh4YNuiyKOwbvSkOUYFOqFMfEL+cFsXgAvr87Vz4XrYSbA==} + '@graphql-tools/graphql-file-loader@8.0.12': + resolution: {integrity: sha512-fhn6IFAgj/LOM3zlr0KDtcYDZnkWacalHOouNVDat4wzpcD4AWyvlh7PoGx3EaDtnwGqmy/l/FMjwWPTjqd9zw==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/graphql-tag-pluck@8.3.1': - resolution: {integrity: sha512-ujits9tMqtWQQq4FI4+qnVPpJvSEn7ogKtyN/gfNT+ErIn6z1e4gyVGQpTK5sgAUXq1lW4gU/5fkFFC5/sL2rQ==} + '@graphql-tools/graphql-tag-pluck@8.3.12': + resolution: {integrity: sha512-C6Ddg5RTz1WM96LYBtMuSEwN4QHfivK/vtbiAq9Soo6SoW1vGE4gzt0QS2FDVnDeB16er3h8YQZJ0xwm4pLnfA==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/import@7.0.1': - resolution: {integrity: sha512-935uAjAS8UAeXThqHfYVr4HEAp6nHJ2sximZKO1RzUTq5WoALMAhhGARl0+ecm6X+cqNUwIChJbjtaa6P/ML0w==} + '@graphql-tools/import@7.0.11': + resolution: {integrity: sha512-zUru+YhjLUpdyNnTKHXLBjV6bh+CpxVhxJr5mgsFT/Lk6fdpjkEyk+hzdgINuo5GbIulFa6KpLZUBoZsDARBpQ==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/json-file-loader@8.0.1': - resolution: {integrity: sha512-lAy2VqxDAHjVyqeJonCP6TUemrpYdDuKt25a10X6zY2Yn3iFYGnuIDQ64cv3ytyGY6KPyPB+Kp+ZfOkNDG3FQA==} + '@graphql-tools/json-file-loader@8.0.11': + resolution: {integrity: sha512-xsfIbPyxyXWnu+GSC5HCw945Gt++b+5NeEvpunw2cK9myGhF2Bkb8N4QTNwWy+7kvOAKzNopBGqGV+x3uaQAZA==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/load@8.0.2': - resolution: {integrity: sha512-S+E/cmyVmJ3CuCNfDuNF2EyovTwdWfQScXv/2gmvJOti2rGD8jTt9GYVzXaxhblLivQR9sBUCNZu/w7j7aXUCA==} + '@graphql-tools/load@8.0.12': + resolution: {integrity: sha512-ZFqerNO7at64N4GHT76k0AkwToHNHVkpAh1iFDRHvvFpESpZ3LDz9Y6cs54Sf6zhATecDuUSwbWZoEE2WIDExA==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/merge@9.0.4': - resolution: {integrity: sha512-MivbDLUQ+4Q8G/Hp/9V72hbn810IJDEZQ57F01sHnlrrijyadibfVhaQfW/pNH+9T/l8ySZpaR/DpL5i+ruZ+g==} + '@graphql-tools/merge@9.0.17': + resolution: {integrity: sha512-3K4g8KKbIqfdmK0L5+VtZsqwAeElPkvT5ejiH+KEhn2wyKNCi4HYHxpQk8xbu+dSwLlm9Lhet1hylpo/mWCkuQ==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -992,39 +907,39 @@ packages: peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/prisma-loader@8.0.4': - resolution: {integrity: sha512-hqKPlw8bOu/GRqtYr0+dINAI13HinTVYBDqhwGAPIFmLr5s+qKskzgCiwbsckdrb5LWVFmVZc+UXn80OGiyBzg==} + '@graphql-tools/prisma-loader@8.0.17': + resolution: {integrity: sha512-fnuTLeQhqRbA156pAyzJYN0KxCjKYRU5bz1q/SKOwElSnAU4k7/G1kyVsWLh7fneY78LoMNH5n+KlFV8iQlnyg==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/relay-operation-optimizer@7.0.1': - resolution: {integrity: sha512-y0ZrQ/iyqWZlsS/xrJfSir3TbVYJTYmMOu4TaSz6F4FRDTQ3ie43BlKkhf04rC28pnUOS4BO9pDcAo1D30l5+A==} + '@graphql-tools/relay-operation-optimizer@7.0.12': + resolution: {integrity: sha512-4gSefj8ZiNAtf7AZyvVMg5RHxyZnMuoDMdjWGAcIyJNOOzQ1aBSc2aFEhk94mGFbQLXdLoBSrsAhYyFGdsej6w==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/schema@10.0.4': - resolution: {integrity: sha512-HuIwqbKxPaJujox25Ra4qwz0uQzlpsaBOzO6CVfzB/MemZdd+Gib8AIvfhQArK0YIN40aDran/yi+E5Xf0mQww==} + '@graphql-tools/schema@10.0.16': + resolution: {integrity: sha512-G2zgb8hNg9Sx6Z2FSXm57ToNcwMls9A9cUm+EsCrnGGDsryzN5cONYePUpSGj5NCFivVp3o1FT5dg19P/1qeqQ==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/url-loader@8.0.2': - resolution: {integrity: sha512-1dKp2K8UuFn7DFo1qX5c1cyazQv2h2ICwA9esHblEqCYrgf69Nk8N7SODmsfWg94OEaI74IqMoM12t7eIGwFzQ==} + '@graphql-tools/url-loader@8.0.24': + resolution: {integrity: sha512-f+Yt6sswiEPrcWsInMbmf+3HNENV2IZK1z3IiGMHuyqb+QsMbJLxzDPHnxMtF2QGJOiRjBQy2sF2en7DPG+jSw==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/utils@10.3.1': - resolution: {integrity: sha512-Yhk1F0MNk4/ctgl3d0DKq++ZPovvZuh1ixWuUEVAxrFloYOAVwJ+rvGI1lsopArdJly8QXClT9lkvOxQszMw/w==} + '@graphql-tools/utils@10.7.2': + resolution: {integrity: sha512-Wn85S+hfkzfVFpXVrQ0hjnePa3p28aB6IdAGCiD1SqBCSMDRzL+OFEtyAyb30nV9Mqflqs9lCqjqlR2puG857Q==} engines: {node: '>=16.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@graphql-tools/wrap@10.0.5': - resolution: {integrity: sha512-Cbr5aYjr3HkwdPvetZp1cpDWTGdD1Owgsb3z/ClzhmrboiK86EnQDxDvOJiQkDCPWE9lNBwj8Y4HfxroY0D9DQ==} - engines: {node: '>=16.0.0'} + '@graphql-tools/wrap@10.0.27': + resolution: {integrity: sha512-UikYBknzYgJKhzIXrzA58EO8IZ+jlX/iPmfUactK6aypc7iKCJzGD31Ha8rDI9GiHPn1F8PUAB4cTlGJ1qRh3w==} + engines: {node: '>=18.0.0'} peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 @@ -1033,20 +948,20 @@ packages: peerDependencies: graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@headlessui/react@1.7.19': - resolution: {integrity: sha512-Ll+8q3OlMJfJbAKM/+/Y2q6PPYbryqNTXDbryx7SXLIDamkF6iQFbriYHga0dY44PvDhvvBWCx1Xj4U5+G4hOw==} + '@headlessui/react@2.2.0': + resolution: {integrity: sha512-RzCEg+LXsuI7mHiSomsu/gBJSjpupm6A1qIZ5sWjd7JhARNlMiSA4kKfJpCKwU9tE+zMRterhhrP74PvfJrpXQ==} engines: {node: '>=10'} peerDependencies: - react: ^16 || ^17 || ^18 - react-dom: ^16 || ^17 || ^18 + react: ^18 || ^19 || ^19.0.0-rc + react-dom: ^18 || ^19 || ^19.0.0-rc - '@heroicons/react@2.1.5': - resolution: {integrity: sha512-FuzFN+BsHa+7OxbvAERtgBTNeZpUjgM/MIizfVkSCL2/edriN0Hx/DWRCR//aPYwO5QX/YlgLGXk+E3PcfZwjA==} + '@heroicons/react@2.2.0': + resolution: {integrity: sha512-LMcepvRaS9LYHJGsF0zzmgKCUim/X3N/DQKc4jepAXJ7l8QxJ1PmxJzqplF2Z3FE4PqBAIGyJAQ/w4B5dsqbtQ==} peerDependencies: - react: '>= 16' + react: '>= 16 || ^19.0.0-rc' - '@humanwhocodes/config-array@0.11.14': - resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} + '@humanwhocodes/config-array@0.13.0': + resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} engines: {node: '>=10.10.0'} deprecated: Use @eslint/config-array instead @@ -1062,16 +977,8 @@ packages: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} - '@istanbuljs/schema@0.1.3': - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} - - '@jest/schemas@29.6.3': - resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - - '@jridgewell/gen-mapping@0.3.5': - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + '@jridgewell/gen-mapping@0.3.8': + resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} '@jridgewell/resolve-uri@3.1.2': @@ -1119,11 +1026,11 @@ packages: '@popperjs/core@2.11.8': resolution: {integrity: sha512-P1st0aksCrn9sGZhp8GMYwBnQsbvAWsZAX44oXNNvLHGqAOcoVxmjZiohstwQ7SqKnbR47akdNi+uleWD8+g6A==} - '@radix-ui/primitive@1.1.0': - resolution: {integrity: sha512-4Z8dn6Upk0qk4P74xBhZ6Hd/w0mPEzOOLxy4xiPXOXqjF7jZS0VAKk7/x/H6FyY2zCkYJqePf1G5KmkmNJ4RBA==} + '@radix-ui/primitive@1.1.1': + resolution: {integrity: sha512-SJ31y+Q/zAyShtXJc8x83i9TYdbAfHZ++tUZnvjJJqFjzsdUnKsxPL6IEtBlxKkU7yzer//GQtZSV4GbldL3YA==} - '@radix-ui/react-arrow@1.1.0': - resolution: {integrity: sha512-FmlW1rCg7hBpEBwFbjHwCW6AmWLQM6g/v0Sn8XbP9NvmSZ2San1FpQeyPtufzOMSIx7Y4dzjlHoifhp+7NkZhw==} + '@radix-ui/react-arrow@1.1.1': + resolution: {integrity: sha512-NaVpZfmv8SKeZbn4ijN2V3jlHA9ngBG16VnIIm22nUR0Yk8KUALyBxT3KYEUnNuch9sTE8UTsS3whzBgKOL30w==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1135,8 +1042,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-collection@1.1.0': - resolution: {integrity: sha512-GZsZslMJEyo1VKm5L1ZJY8tGDxZNPAoUeQUIbKeJfoi7Q4kmig5AsgLMYYuyYbfjd8fBmFORAIwYAkXMnXZgZw==} + '@radix-ui/react-collection@1.1.1': + resolution: {integrity: sha512-LwT3pSho9Dljg+wY2KN2mrrh6y3qELfftINERIzBUO9e0N+t0oMTyn3k9iv+ZqgrwGkRnLpNJrsMv9BZlt2yuA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1148,8 +1055,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-compose-refs@1.1.0': - resolution: {integrity: sha512-b4inOtiaOnYf9KWyO3jAeeCG6FeyfY6ldiEPanbUjWd+xIk5wZeHa8yVwmrJ2vderhu/BQvzCrJI0lHd+wIiqw==} + '@radix-ui/react-compose-refs@1.1.1': + resolution: {integrity: sha512-Y9VzoRDSJtgFMUCoiZBDVo084VQ5hfpXxVE+NgkdNsjiDBByiImMZKKhxMwCbdHvhlENG6a833CbFkOQvTricw==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1157,8 +1064,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-context@1.1.0': - resolution: {integrity: sha512-OKrckBy+sMEgYM/sMmqmErVn0kZqrHPJze+Ql3DzYsDDp0hl0L62nx/2122/Bvps1qz645jlcu2tD9lrRSdf8A==} + '@radix-ui/react-context@1.1.1': + resolution: {integrity: sha512-UASk9zi+crv9WteK/NU4PLvOoL3OuE6BWVKNF6hPRBtYBDXQ2u5iu3O59zUlJiTVvkyuycnqrztsHVJwcK9K+Q==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1175,8 +1082,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-dismissable-layer@1.1.0': - resolution: {integrity: sha512-/UovfmmXGptwGcBQawLzvn2jOfM0t4z3/uKffoBlj724+n3FvBbZ7M0aaBOmkp6pqFYpO4yx8tSVJjx3Fl2jig==} + '@radix-ui/react-dismissable-layer@1.1.3': + resolution: {integrity: sha512-onrWn/72lQoEucDmJnr8uczSNTujT0vJnA/X5+3AkChVPowr8n1yvIKIabhWyMQeMvvmdpsvcyDqx3X1LEXCPg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1188,8 +1095,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-focus-guards@1.1.0': - resolution: {integrity: sha512-w6XZNUPVv6xCpZUqb/yN9DL6auvpGX3C/ee6Hdi16v2UUy25HV2Q5bcflsiDyT/g5RwbPQ/GIT1vLkeRb+ITBw==} + '@radix-ui/react-focus-guards@1.1.1': + resolution: {integrity: sha512-pSIwfrT1a6sIoDASCSpFwOasEwKTZWDw/iBdtnqKO7v6FeOzYJ7U53cPzYFVR3geGGXgVHaH+CdngrrAzqUGxg==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1197,8 +1104,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-focus-scope@1.1.0': - resolution: {integrity: sha512-200UD8zylvEyL8Bx+z76RJnASR2gRMuxlgFCPAe/Q/679a/r0eK3MBVYMb7vZODZcffZBdob1EGnky78xmVvcA==} + '@radix-ui/react-focus-scope@1.1.1': + resolution: {integrity: sha512-01omzJAYRxXdG2/he/+xy+c8a8gCydoQ1yOxnWNcRhrrBW5W+RQJ22EK1SaO8tb3WoUsuEw7mJjBozPzihDFjA==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1219,8 +1126,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-popover@1.1.1': - resolution: {integrity: sha512-3y1A3isulwnWhvTTwmIreiB8CF4L+qRjZnK1wYLO7pplddzXKby/GnZ2M7OZY3qgnl6p9AodUIHRYGXNah8Y7g==} + '@radix-ui/react-popover@1.1.4': + resolution: {integrity: sha512-aUACAkXx8LaFymDma+HQVji7WhvEhpFJ7+qPz17Nf4lLZqtreGOFRiNQWQmhzp7kEWg9cOyyQJpdIMUMPc/CPw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1232,8 +1139,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-popper@1.2.0': - resolution: {integrity: sha512-ZnRMshKF43aBxVWPWvbj21+7TQCvhuULWJ4gNIKYpRlQt5xGRhLx66tMp8pya2UkGHTSlhpXwmjqltDYHhw7Vg==} + '@radix-ui/react-popper@1.2.1': + resolution: {integrity: sha512-3kn5Me69L+jv82EKRuQCXdYyf1DqHwD2U/sxoNgBGCB7K9TRc3bQamQ+5EPM9EvyPdli0W41sROd+ZU1dTCztw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1245,8 +1152,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-portal@1.1.1': - resolution: {integrity: sha512-A3UtLk85UtqhzFqtoC8Q0KvR2GbXF3mtPgACSazajqq6A41mEQgo53iPzY4i6BwDxlIFqWIhiQ2G729n+2aw/g==} + '@radix-ui/react-portal@1.1.3': + resolution: {integrity: sha512-NciRqhXnGojhT93RPyDaMPfLH3ZSl4jjIFbZQ1b/vxvZEdHsBZ49wP9w8L3HzUQwep01LcWtkUvm0OVB5JAHTw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1258,8 +1165,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-presence@1.1.0': - resolution: {integrity: sha512-Gq6wuRN/asf9H/E/VzdKoUtT8GC9PQc9z40/vEr0VCJ4u5XvvhWIrSsCB6vD2/cH7ugTdSfYq9fLJCcM00acrQ==} + '@radix-ui/react-presence@1.1.2': + resolution: {integrity: sha512-18TFr80t5EVgL9x1SwF/YGtfG+l0BS0PRAlCWBDoBEiDQjeKgnNZRVJp/oVBl24sr3Gbfwc/Qpj4OcWTQMsAEg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1271,8 +1178,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-primitive@2.0.0': - resolution: {integrity: sha512-ZSpFm0/uHa8zTvKBDjLFWLo8dkr4MBsiDLz0g3gMUwqgLHz9rTaRRGYDgvZPtBJgYCBKXkS9fzmoySgr8CO6Cw==} + '@radix-ui/react-primitive@2.0.1': + resolution: {integrity: sha512-sHCWTtxwNn3L3fH8qAfnF3WbUZycW93SM1j3NFDzXBiz8D6F5UTTy8G1+WFEaiCdvCVRJWj6N2R4Xq6HdiHmDg==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1284,8 +1191,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-roving-focus@1.1.0': - resolution: {integrity: sha512-EA6AMGeq9AEeQDeSH0aZgG198qkfHSbvWTf1HvoDmOB5bBG/qTxjYMWUKMnYiV6J/iP/J8MEFSuB2zRU2n7ODA==} + '@radix-ui/react-roving-focus@1.1.1': + resolution: {integrity: sha512-QE1RoxPGJ/Nm8Qmk0PxP8ojmoaS67i0s7hVssS7KuI2FQoc/uzVlZsqKfQvxPE6D8hICCPHJ4D88zNhT3OOmkw==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1297,8 +1204,8 @@ packages: '@types/react-dom': optional: true - '@radix-ui/react-slot@1.1.0': - resolution: {integrity: sha512-FUCf5XMfmW4dtYl69pdS4DbxKy8nj4M7SafBgPllysxmdachynNflAdp/gCsnYWNDnge6tI9onzMp5ARYc1KNw==} + '@radix-ui/react-slot@1.1.1': + resolution: {integrity: sha512-RApLLOcINYJA+dMVbOju7MYv1Mb2EBp2nH4HdDzXTSyaR5optlm6Otrz1euW3HbdOR8UmmFK06TD+A9frYWv+g==} peerDependencies: '@types/react': '*' react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc @@ -1306,8 +1213,8 @@ packages: '@types/react': optional: true - '@radix-ui/react-tabs@1.1.0': - resolution: {integrity: sha512-bZgOKB/LtZIij75FSuPzyEti/XBhJH52ExgtdVqjCIh+Nx/FW+LhnbXtbCzIi34ccyMsyOja8T0thCzoHFXNKA==} + '@radix-ui/react-tabs@1.1.2': + resolution: {integrity: sha512-9u/tQJMcC2aGq7KXpGivMm1mgq7oRJKXphDwdypPd/j21j/2znamPU8WkXgnhUaTrSFNIt8XhOyCAupg8/GbwQ==} peerDependencies: '@types/react': '*' '@types/react-dom': '*' @@ -1376,32 +1283,56 @@ packages: '@radix-ui/rect@1.1.0': resolution: {integrity: sha512-A9+lCBZoaMJlVKcRBz2YByCG+Cp2t6nAnMnNba+XiWxnj6r4JUFqfsgwocMBZU9LPtdxC6wB56ySYpc7LQIoJg==} - '@react-aria/ssr@3.9.4': - resolution: {integrity: sha512-4jmAigVq409qcJvQyuorsmBR4+9r3+JEC60wC+Y0MZV0HCtTmm8D9guYXlJMdx0SSkgj0hHAyFm/HvPNFofCoQ==} + '@react-aria/focus@3.19.1': + resolution: {integrity: sha512-bix9Bu1Ue7RPcYmjwcjhB14BMu2qzfJ3tMQLqDc9pweJA66nOw8DThy3IfVr8Z7j2PHktOLf9kcbiZpydKHqzg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/interactions@3.23.0': + resolution: {integrity: sha512-0qR1atBIWrb7FzQ+Tmr3s8uH5mQdyRH78n0krYaG8tng9+u1JlSi8DGRSaC9ezKyNB84m7vHT207xnHXGeJ3Fg==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-aria/ssr@3.9.7': + resolution: {integrity: sha512-GQygZaGlmYjmYM+tiNBA5C6acmiDWF52Nqd40bBp0Znk4M4hP+LTmI0lpI1BuKMw45T8RIhrAsICIfKwZvi2Gg==} engines: {node: '>= 12'} peerDependencies: - react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 - '@remix-run/router@1.20.0': - resolution: {integrity: sha512-mUnk8rPJBI9loFDZ+YzPGdeniYK+FTmRD1TMCz7ev2SNIozyKKpnGgsxO34u6Z4z/t0ITuu7voi/AshfsGsgFg==} - engines: {node: '>=14.0.0'} + '@react-aria/utils@3.27.0': + resolution: {integrity: sha512-p681OtApnKOdbeN8ITfnnYqfdHS0z7GE+4l8EXlfLnr70Rp/9xicBO6d2rU+V/B3JujDw2gPWxYKEnEeh0CGCw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-stately/utils@3.10.5': + resolution: {integrity: sha512-iMQSGcpaecghDIh3mZEpZfoFH3ExBwTtuBEcvZ2XnGzCgQjeYXcMdIUwAfVQLXFTdHUHGF6Gu6/dFrYsCzySBQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 + + '@react-types/shared@3.27.0': + resolution: {integrity: sha512-gvznmLhi6JPEf0bsq7SwRYTHAKKq/wcmKqFez9sRdbED+SPMUmK5omfZ6w3EwUFQHbYUa4zPBYedQ7Knv70RMw==} + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 || ^19.0.0-rc.1 '@repeaterjs/repeater@3.0.6': resolution: {integrity: sha512-Javneu5lsuhwNCryN+pXH93VPQ8g0dBX7wItHFgYiwQmzE1sVdg5tWHiOgHywzL2W21XQopa7IwIEnNbmeUJYA==} - '@restart/hooks@0.4.16': - resolution: {integrity: sha512-f7aCv7c+nU/3mF7NWLtVVr0Ra80RqsO89hO72r+Y/nvQr5+q0UFGkocElTH6MJApvReVh6JHUFYn2cw1WdHF3w==} + '@restart/hooks@0.5.1': + resolution: {integrity: sha512-EMoH04NHS1pbn07iLTjIjgttuqb7qu4+/EyhAx27MHpoENcB2ZdSsLTNxmKD+WEPnZigo62Qc8zjGnNxoSE/5Q==} peerDependencies: react: '>=16.8.0' - '@restart/ui@1.6.9': - resolution: {integrity: sha512-mUbygUsJcRurjZCt1f77gg4DpheD1D+Sc7J3JjAkysUj7t8m4EBJVOqWC9788Qtbc69cJ+HlJc6jBguKwS8Mcw==} + '@restart/ui@1.9.2': + resolution: {integrity: sha512-MWWqJqSyqUWWPBOOiRQrX57CBc/9CoYONg7sE+uag72GCAuYrHGU5c49vU5s4BUSBgiKNY6rL7TULqGDrouUaA==} peerDependencies: react: '>=16.14.0' react-dom: '>=16.14.0' - '@rollup/pluginutils@5.1.0': - resolution: {integrity: sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==} + '@rollup/pluginutils@5.1.4': + resolution: {integrity: sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ==} engines: {node: '>=14.0.0'} peerDependencies: rollup: ^1.20.0||^2.0.0||^3.0.0||^4.0.0 @@ -1409,88 +1340,103 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.24.0': - resolution: {integrity: sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==} + '@rollup/rollup-android-arm-eabi@4.30.1': + resolution: {integrity: sha512-pSWY+EVt3rJ9fQ3IqlrEUtXh3cGqGtPDH1FQlNZehO2yYxCHEX1SPsz1M//NXwYfbTlcKr9WObLnJX9FsS9K1Q==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.24.0': - resolution: {integrity: sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==} + '@rollup/rollup-android-arm64@4.30.1': + resolution: {integrity: sha512-/NA2qXxE3D/BRjOJM8wQblmArQq1YoBVJjrjoTSBS09jgUisq7bqxNHJ8kjCHeV21W/9WDGwJEWSN0KQ2mtD/w==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.24.0': - resolution: {integrity: sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==} + '@rollup/rollup-darwin-arm64@4.30.1': + resolution: {integrity: sha512-r7FQIXD7gB0WJ5mokTUgUWPl0eYIH0wnxqeSAhuIwvnnpjdVB8cRRClyKLQr7lgzjctkbp5KmswWszlwYln03Q==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.24.0': - resolution: {integrity: sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==} + '@rollup/rollup-darwin-x64@4.30.1': + resolution: {integrity: sha512-x78BavIwSH6sqfP2xeI1hd1GpHL8J4W2BXcVM/5KYKoAD3nNsfitQhvWSw+TFtQTLZ9OmlF+FEInEHyubut2OA==} cpu: [x64] os: [darwin] - '@rollup/rollup-linux-arm-gnueabihf@4.24.0': - resolution: {integrity: sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==} + '@rollup/rollup-freebsd-arm64@4.30.1': + resolution: {integrity: sha512-HYTlUAjbO1z8ywxsDFWADfTRfTIIy/oUlfIDmlHYmjUP2QRDTzBuWXc9O4CXM+bo9qfiCclmHk1x4ogBjOUpUQ==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.30.1': + resolution: {integrity: sha512-1MEdGqogQLccphhX5myCJqeGNYTNcmTyaic9S7CG3JhwuIByJ7J05vGbZxsizQthP1xpVx7kd3o31eOogfEirw==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.30.1': + resolution: {integrity: sha512-PaMRNBSqCx7K3Wc9QZkFx5+CX27WFpAMxJNiYGAXfmMIKC7jstlr32UhTgK6T07OtqR+wYlWm9IxzennjnvdJg==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.24.0': - resolution: {integrity: sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==} + '@rollup/rollup-linux-arm-musleabihf@4.30.1': + resolution: {integrity: sha512-B8Rcyj9AV7ZlEFqvB5BubG5iO6ANDsRKlhIxySXcF1axXYUyqwBok+XZPgIYGBgs7LDXfWfifxhw0Ik57T0Yug==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.24.0': - resolution: {integrity: sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==} + '@rollup/rollup-linux-arm64-gnu@4.30.1': + resolution: {integrity: sha512-hqVyueGxAj3cBKrAI4aFHLV+h0Lv5VgWZs9CUGqr1z0fZtlADVV1YPOij6AhcK5An33EXaxnDLmJdQikcn5NEw==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.24.0': - resolution: {integrity: sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==} + '@rollup/rollup-linux-arm64-musl@4.30.1': + resolution: {integrity: sha512-i4Ab2vnvS1AE1PyOIGp2kXni69gU2DAUVt6FSXeIqUCPIR3ZlheMW3oP2JkukDfu3PsexYRbOiJrY+yVNSk9oA==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': - resolution: {integrity: sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==} + '@rollup/rollup-linux-loongarch64-gnu@4.30.1': + resolution: {integrity: sha512-fARcF5g296snX0oLGkVxPmysetwUk2zmHcca+e9ObOovBR++9ZPOhqFUM61UUZ2EYpXVPN1redgqVoBB34nTpQ==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-powerpc64le-gnu@4.30.1': + resolution: {integrity: sha512-GLrZraoO3wVT4uFXh67ElpwQY0DIygxdv0BNW9Hkm3X34wu+BkqrDrkcsIapAY+N2ATEbvak0XQ9gxZtCIA5Rw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.24.0': - resolution: {integrity: sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==} + '@rollup/rollup-linux-riscv64-gnu@4.30.1': + resolution: {integrity: sha512-0WKLaAUUHKBtll0wvOmh6yh3S0wSU9+yas923JIChfxOaaBarmb/lBKPF0w/+jTVozFnOXJeRGZ8NvOxvk/jcw==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.24.0': - resolution: {integrity: sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==} + '@rollup/rollup-linux-s390x-gnu@4.30.1': + resolution: {integrity: sha512-GWFs97Ruxo5Bt+cvVTQkOJ6TIx0xJDD/bMAOXWJg8TCSTEK8RnFeOeiFTxKniTc4vMIaWvCplMAFBt9miGxgkA==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.24.0': - resolution: {integrity: sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==} + '@rollup/rollup-linux-x64-gnu@4.30.1': + resolution: {integrity: sha512-UtgGb7QGgXDIO+tqqJ5oZRGHsDLO8SlpE4MhqpY9Llpzi5rJMvrK6ZGhsRCST2abZdBqIBeXW6WPD5fGK5SDwg==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.24.0': - resolution: {integrity: sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==} + '@rollup/rollup-linux-x64-musl@4.30.1': + resolution: {integrity: sha512-V9U8Ey2UqmQsBT+xTOeMzPzwDzyXmnAoO4edZhL7INkwQcaW1Ckv3WJX3qrrp/VHaDkEWIBWhRwP47r8cdrOow==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.24.0': - resolution: {integrity: sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==} + '@rollup/rollup-win32-arm64-msvc@4.30.1': + resolution: {integrity: sha512-WabtHWiPaFF47W3PkHnjbmWawnX/aE57K47ZDT1BXTS5GgrBUEpvOzq0FI0V/UYzQJgdb8XlhVNH8/fwV8xDjw==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.24.0': - resolution: {integrity: sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==} + '@rollup/rollup-win32-ia32-msvc@4.30.1': + resolution: {integrity: sha512-pxHAU+Zv39hLUTdQQHUVHf4P+0C47y/ZloorHpzs2SXMRqeAWmGghzAhfOlzFHHwjvgokdFAhC4V+6kC1lRRfw==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.24.0': - resolution: {integrity: sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==} + '@rollup/rollup-win32-x64-msvc@4.30.1': + resolution: {integrity: sha512-D6qjsXGcvhTjv0kI4fU8tUuBDF/Ueee4SVX79VfNDXZa64TfCW1Slkb6Z7O1p7vflqZjcmOVdZlqf8gvJxc6og==} cpu: [x64] os: [win32] - '@sinclair/typebox@0.27.8': - resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@rtsao/scc@1.1.0': + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} '@svgr/babel-plugin-add-jsx-attribute@8.0.0': resolution: {integrity: sha512-b9MIk7yhdS1pMCZM8VeNfUlSKVRhsHZNMl5O9SfaX0l0t5wjdgu4IDzGB8bpnGBBOjGST3rRFVsaaEtI4W6f7g==} @@ -1560,40 +1506,115 @@ packages: peerDependencies: '@svgr/core': '*' - '@swc/helpers@0.5.11': - resolution: {integrity: sha512-YNlnKRWF2sVojTpIyzwou9XoTNbzbzONwRhOoniEioF1AtaitTvVZblaQRrAzChWQ1bLYyYSWzM18y4WwgzJ+A==} + '@swc/core-darwin-arm64@1.10.7': + resolution: {integrity: sha512-SI0OFg987P6hcyT0Dbng3YRISPS9uhLX1dzW4qRrfqQdb0i75lPJ2YWe9CN47HBazrIA5COuTzrD2Dc0TcVsSQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [darwin] + + '@swc/core-darwin-x64@1.10.7': + resolution: {integrity: sha512-RFIAmWVicD/l3RzxgHW0R/G1ya/6nyMspE2cAeDcTbjHi0I5qgdhBWd6ieXOaqwEwiCd0Mot1g2VZrLGoBLsjQ==} + engines: {node: '>=10'} + cpu: [x64] + os: [darwin] + + '@swc/core-linux-arm-gnueabihf@1.10.7': + resolution: {integrity: sha512-QP8vz7yELWfop5mM5foN6KkLylVO7ZUgWSF2cA0owwIaziactB2hCPZY5QU690coJouk9KmdFsPWDnaCFUP8tg==} + engines: {node: '>=10'} + cpu: [arm] + os: [linux] + + '@swc/core-linux-arm64-gnu@1.10.7': + resolution: {integrity: sha512-NgUDBGQcOeLNR+EOpmUvSDIP/F7i/OVOKxst4wOvT5FTxhnkWrW+StJGKj+DcUVSK5eWOYboSXr1y+Hlywwokw==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-arm64-musl@1.10.7': + resolution: {integrity: sha512-gp5Un3EbeSThBIh6oac5ZArV/CsSmTKj5jNuuUAuEsML3VF9vqPO+25VuxCvsRf/z3py+xOWRaN2HY/rjMeZog==} + engines: {node: '>=10'} + cpu: [arm64] + os: [linux] + + '@swc/core-linux-x64-gnu@1.10.7': + resolution: {integrity: sha512-k/OxLLMl/edYqbZyUNg6/bqEHTXJT15l9WGqsl/2QaIGwWGvles8YjruQYQ9d4h/thSXLT9gd8bExU2D0N+bUA==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-linux-x64-musl@1.10.7': + resolution: {integrity: sha512-XeDoURdWt/ybYmXLCEE8aSiTOzEn0o3Dx5l9hgt0IZEmTts7HgHHVeRgzGXbR4yDo0MfRuX5nE1dYpTmCz0uyA==} + engines: {node: '>=10'} + cpu: [x64] + os: [linux] + + '@swc/core-win32-arm64-msvc@1.10.7': + resolution: {integrity: sha512-nYAbi/uLS+CU0wFtBx8TquJw2uIMKBnl04LBmiVoFrsIhqSl+0MklaA9FVMGA35NcxSJfcm92Prl2W2LfSnTqQ==} + engines: {node: '>=10'} + cpu: [arm64] + os: [win32] + + '@swc/core-win32-ia32-msvc@1.10.7': + resolution: {integrity: sha512-+aGAbsDsIxeLxw0IzyQLtvtAcI1ctlXVvVcXZMNXIXtTURM876yNrufRo4ngoXB3jnb1MLjIIjgXfFs/eZTUSw==} + engines: {node: '>=10'} + cpu: [ia32] + os: [win32] + + '@swc/core-win32-x64-msvc@1.10.7': + resolution: {integrity: sha512-TBf4clpDBjF/UUnkKrT0/th76/zwvudk5wwobiTFqDywMApHip5O0VpBgZ+4raY2TM8k5+ujoy7bfHb22zu17Q==} + engines: {node: '>=10'} + cpu: [x64] + os: [win32] - '@tailwindcss/forms@0.5.7': - resolution: {integrity: sha512-QE7X69iQI+ZXwldE+rzasvbJiyV/ju1FGHH0Qn2W3FKbuYtqp8LKcy6iSw79fVUT5/Vvf+0XgLCeYVG+UV6hOw==} + '@swc/core@1.10.7': + resolution: {integrity: sha512-py91kjI1jV5D5W/Q+PurBdGsdU5TFbrzamP7zSCqLdMcHkKi3rQEM5jkQcZr0MXXSJTaayLxS3MWYTBIkzPDrg==} + engines: {node: '>=10'} peerDependencies: - tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1' + '@swc/helpers': '*' + peerDependenciesMeta: + '@swc/helpers': + optional: true + + '@swc/counter@0.1.3': + resolution: {integrity: sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==} - '@tanstack/react-virtual@3.8.2': - resolution: {integrity: sha512-g78+DA29K0ByAfDkuibfLQqDshf8Aha/zcyEZ+huAX/yS/TWj/CUiEY4IJfDrFacdxIFmsLm0u4VtsLSKTngRw==} + '@swc/helpers@0.5.15': + resolution: {integrity: sha512-JQ5TuMi45Owi4/BIMAJBoSQoOJu12oOk/gADqlcUL9JEdHB8vyjUSsxqeNXnmXHjYKMi2WcYtezGEEhqUI/E2g==} + + '@swc/types@0.1.17': + resolution: {integrity: sha512-V5gRru+aD8YVyCOMAjMpWR1Ui577DD5KSJsHP8RAxopAH22jFz6GZd/qxqjO6MJHQhcsjvjOFXyDhyLQUnMveQ==} + + '@tailwindcss/forms@0.5.9': + resolution: {integrity: sha512-tM4XVr2+UVTxXJzey9Twx48c1gcxFStqn1pQz0tRsX8o3DvxhN5oY5pvyAbUx7VTaZxpej4Zzvc6h+1RJBzpIg==} peerDependencies: - react: ^16.8.0 || ^17.0.0 || ^18.0.0 - react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + tailwindcss: '>=3.0.0 || >= 3.0.0-alpha.1 || >= 4.0.0-alpha.20' + + '@tanstack/react-virtual@3.11.2': + resolution: {integrity: sha512-OuFzMXPF4+xZgx8UzJha0AieuMihhhaWG0tCqpp6tDzlFwOmNBPYMuLOtMJ1Tr4pXLHmgjcWhG6RlknY2oNTdQ==} + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 - '@tanstack/virtual-core@3.8.2': - resolution: {integrity: sha512-ffpN6kTaPGwQPoWMcBAHbdv2ZCpj1SugldoYAcY0C4xH+Pej1KCOEUisNeEgbUnXOp8Y/4q6wGPu2tFHthOIQw==} + '@tanstack/virtual-core@3.11.2': + resolution: {integrity: sha512-vTtpNt7mKCiZ1pwU9hfKPhpdVO2sVzFQsxoVBGtOSHxlrRRzYr8iQ2TlwbAcRYCcEiZ9ECAM8kBzH0v2+VzfKw==} - '@testing-library/dom@10.3.1': - resolution: {integrity: sha512-q/WL+vlXMpC0uXDyfsMtc1rmotzLV8Y0gq6q1gfrrDjQeHoeLrqHbxdPvPNAh1i+xuJl7+BezywcXArz7vLqKQ==} + '@testing-library/dom@10.4.0': + resolution: {integrity: sha512-pemlzrSESWbdAloYml3bAJMEfNh1Z7EduzqPKprCH5S341frlpYnUEW0H72dLxa6IsYr+mPno20GiSm+h9dEdQ==} engines: {node: '>=18'} - '@testing-library/jest-dom@6.6.2': - resolution: {integrity: sha512-P6GJD4yqc9jZLbe98j/EkyQDTPgqftohZF5FBkHY5BUERZmcf4HeO2k0XaefEg329ux2p21i1A1DmyQ1kKw2Jw==} + '@testing-library/jest-dom@6.6.3': + resolution: {integrity: sha512-IteBhl4XqYNkM54f4ejhLRJiZNqcSCoXUOG2CPK7qbD322KjQozM4kHQOfkG2oln9b9HTYqs+Sae8vBATubxxA==} engines: {node: '>=14', npm: '>=6', yarn: '>=1'} - '@testing-library/react@16.0.1': - resolution: {integrity: sha512-dSmwJVtJXmku+iocRhWOUFbrERC76TX2Mnf0ATODz8brzAZrMBbzLwQixlBSanZxR6LddK3eiwpSFZgDET1URg==} + '@testing-library/react@16.2.0': + resolution: {integrity: sha512-2cSskAvA1QNtKc8Y9VJQRv0tm3hLVgxRGDB+KYhIaPQJ1I+RHbhIXcM+zClKXzMes/wshsMVzf4B9vS4IZpqDQ==} engines: {node: '>=18'} peerDependencies: '@testing-library/dom': ^10.0.0 - '@types/react': ^18.0.0 - '@types/react-dom': ^18.0.0 - react: ^18.0.0 - react-dom: ^18.0.0 + '@types/react': ^18.0.0 || ^19.0.0 + '@types/react-dom': ^18.0.0 || ^19.0.0 + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 peerDependenciesMeta: '@types/react': optional: true @@ -1603,23 +1624,11 @@ packages: '@types/aria-query@5.0.4': resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} - '@types/babel__core@7.20.5': - resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} - - '@types/babel__generator@7.6.8': - resolution: {integrity: sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==} - - '@types/babel__template@7.4.4': - resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} + '@types/chroma-js@2.4.5': + resolution: {integrity: sha512-6ISjhzJViaPCy2q2e6PgK+8HcHQDQ0V2LDiKmYAh+jJlLqDa6HbwDh0wOevHY0kHHUx0iZwjSRbVD47WOUx5EQ==} - '@types/babel__traverse@7.20.6': - resolution: {integrity: sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==} - - '@types/chroma-js@2.4.4': - resolution: {integrity: sha512-/DTccpHTaKomqussrn+ciEvfW4k6NAHzNzs/sts1TCqg333qNxOhy8TNIoQCmbGG3Tl8KdEhkGAssb1n3mTXiQ==} - - '@types/estree@1.0.5': - resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} + '@types/cookie@0.6.0': + resolution: {integrity: sha512-4Kh9a6B2bQciAhf7FSuMRRkUWecJgJu9nPnx3yzpsfXX/c50REIqpHY4C82bXP90qrLtXtkDxTZosYO3UpOwlA==} '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} @@ -1630,17 +1639,19 @@ packages: '@types/json5@0.0.29': resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} - '@types/node@22.7.8': - resolution: {integrity: sha512-a922jJy31vqR5sk+kAdIENJjHblqcZ4RmERviFsER4WJcEONqxKcjNOlk0q7OUfrF5sddT+vng070cdfMlrPLg==} + '@types/node@22.10.7': + resolution: {integrity: sha512-V09KvXxFiutGp6B7XkpaDXlNadZxrzajcY50EuoLIpQ6WWYCSvf19lVIazzfIzQvhUN2HjX12spLojTnhuKlGg==} '@types/numeral@2.0.5': resolution: {integrity: sha512-kH8I7OSSwQu9DS9JYdFWbuvhVzvFRoCPCkGxNwoGgaPeDfEPJlcxNvEOypZhQ3XXHsGbfIuYcxcJxKUfJHnRfw==} - '@types/prop-types@15.7.12': - resolution: {integrity: sha512-5zvhXYtRNRluoE/jAp4GVsSduVUzNWKkOZrCDBWYtE7biZywwdC2AcEzg+cSMLFRfVgeAFqpfNabiPjxFddV1Q==} + '@types/prop-types@15.7.14': + resolution: {integrity: sha512-gNMvNH49DJ7OJYv+KAKn0Xp45p8PLl6zo2YnvDIbTd4J6MER2BmWN49TG7n9LvkyihINxeKW8+3bfS2yDC9dzQ==} - '@types/react-dom@18.3.1': - resolution: {integrity: sha512-qW1Mfv8taImTthu4KoXgDfLuk4bydU6Q/TkADnDWWHwi4NX4BR+LWfTp2sVmTqRrsHvyDDTelgelxJ+SsejKKQ==} + '@types/react-dom@18.3.5': + resolution: {integrity: sha512-P4t6saawp+b/dFrUr2cvkVsfvPguwsxtH6dNIYRllMsefqFzkZk5UIjzyDOv5g1dXIPdG4Sp1yCR4Z6RCUsG/Q==} + peerDependencies: + '@types/react': ^18.0.0 '@types/react-timeago@4.1.7': resolution: {integrity: sha512-ogD4Ror/hDG+pQggCX+TgPgJ8W2jeeUxsgNU485Qpm0Ma+E2TND2EJuKwK5+sxlkDXDEgsHradO0zWBkTgLzNg==} @@ -1651,20 +1662,17 @@ packages: '@types/react-window@1.8.8': resolution: {integrity: sha512-8Ls660bHR1AUA2kuRvVG9D/4XpRC6wjAaPT9dil7Ckc76eP9TKWZwwmgfq8Q1LANX3QNDnoU4Zp48A3w+zK69Q==} - '@types/react@18.3.11': - resolution: {integrity: sha512-r6QZ069rFTjrEYgFdOck1gK7FLVsgJE7tTz0pQBczlBNUhBNk0MQH4UbnFSwjpQLMkLzgqvBBa+qGpLje16eTQ==} + '@types/react@18.3.18': + resolution: {integrity: sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==} '@types/warning@3.0.3': resolution: {integrity: sha512-D1XC7WK8K+zZEveUPY+cf4+kgauk8N4eHr/XIHXGlGYkHLud6hK9lYfZk1ry1TNh798cZUCgb6MqGEG8DkJt6Q==} - '@types/ws@8.5.10': - resolution: {integrity: sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==} + '@types/ws@8.5.13': + resolution: {integrity: sha512-osM/gWBTPKgHV8XkTunnegTRIsvF6owmf5w+JtAfOw472dptdm0dlGv4xCt6GwQRcC2XVOvvRE/0bAoQcL2QkA==} - '@types/zen-observable@0.8.7': - resolution: {integrity: sha512-LKzNTjj+2j09wAo/vvVjzgw5qckJJzhdGgWHW7j69QIGdq/KnZrMAMIHQiWGl3Ccflh5/CudBAntTPYdprPltA==} - - '@typescript-eslint/eslint-plugin@7.16.0': - resolution: {integrity: sha512-py1miT6iQpJcs1BiJjm54AMzeuMPBSPuKPlnT8HlfudbcS5rYeX5jajpLf3mrdRh9dA/Ec2FVUY0ifeVNDIhZw==} + '@typescript-eslint/eslint-plugin@7.18.0': + resolution: {integrity: sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: '@typescript-eslint/parser': ^7.0.0 @@ -1674,8 +1682,16 @@ packages: typescript: optional: true - '@typescript-eslint/parser@7.16.0': - resolution: {integrity: sha512-ar9E+k7CU8rWi2e5ErzQiC93KKEFAXA2Kky0scAlPcxYblLt8+XZuHUZwlyfXILyQa95P6lQg+eZgh/dDs3+Vw==} + '@typescript-eslint/eslint-plugin@8.20.0': + resolution: {integrity: sha512-naduuphVw5StFfqp4Gq4WhIBE2gN1GEmMUExpJYknZJdRnc+2gDzB8Z3+5+/Kv33hPQRDGzQO/0opHE72lZZ6A==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.8.0' + + '@typescript-eslint/parser@7.18.0': + resolution: {integrity: sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -1684,12 +1700,23 @@ packages: typescript: optional: true - '@typescript-eslint/scope-manager@7.16.0': - resolution: {integrity: sha512-8gVv3kW6n01Q6TrI1cmTZ9YMFi3ucDT7i7aI5lEikk2ebk1AEjrwX8MDTdaX5D7fPXMBLvnsaa0IFTAu+jcfOw==} + '@typescript-eslint/parser@8.20.0': + resolution: {integrity: sha512-gKXG7A5HMyjDIedBi6bUrDcun8GIjnI8qOwVLiY3rx6T/sHP/19XLJOnIq/FgQvWLHja5JN/LSE7eklNBr612g==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.8.0' + + '@typescript-eslint/scope-manager@7.18.0': + resolution: {integrity: sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/type-utils@7.16.0': - resolution: {integrity: sha512-j0fuUswUjDHfqV/UdW6mLtOQQseORqfdmoBNDFOqs9rvNVR2e+cmu6zJu/Ku4SDuqiJko6YnhwcL8x45r8Oqxg==} + '@typescript-eslint/scope-manager@8.20.0': + resolution: {integrity: sha512-J7+VkpeGzhOt3FeG1+SzhiMj9NzGD/M6KoGn9f4dbz3YzK9hvbhVTmLj/HiTp9DazIzJ8B4XcM80LrR9Dm1rJw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/type-utils@7.18.0': + resolution: {integrity: sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 @@ -1698,12 +1725,23 @@ packages: typescript: optional: true - '@typescript-eslint/types@7.16.0': - resolution: {integrity: sha512-fecuH15Y+TzlUutvUl9Cc2XJxqdLr7+93SQIbcZfd4XRGGKoxyljK27b+kxKamjRkU7FYC6RrbSCg0ALcZn/xw==} + '@typescript-eslint/type-utils@8.20.0': + resolution: {integrity: sha512-bPC+j71GGvA7rVNAHAtOjbVXbLN5PkwqMvy1cwGeaxUoRQXVuKCebRoLzm+IPW/NtFFpstn1ummSIasD5t60GA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.8.0' + + '@typescript-eslint/types@7.18.0': + resolution: {integrity: sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/typescript-estree@7.16.0': - resolution: {integrity: sha512-a5NTvk51ZndFuOLCh5OaJBELYc2O3Zqxfl3Js78VFE1zE46J2AaVuW+rEbVkQznjkmlzWsUI15BG5tQMixzZLw==} + '@typescript-eslint/types@8.20.0': + resolution: {integrity: sha512-cqaMiY72CkP+2xZRrFt3ExRBu0WmVitN/rYPZErA80mHjHx/Svgp8yfbzkJmDoQ/whcytOPO9/IZXnOc+wigRA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@7.18.0': + resolution: {integrity: sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: typescript: '*' @@ -1711,51 +1749,88 @@ packages: typescript: optional: true - '@typescript-eslint/utils@7.16.0': - resolution: {integrity: sha512-PqP4kP3hb4r7Jav+NiRCntlVzhxBNWq6ZQ+zQwII1y/G/1gdIPeYDCKr2+dH6049yJQsWZiHU6RlwvIFBXXGNA==} + '@typescript-eslint/typescript-estree@8.20.0': + resolution: {integrity: sha512-Y7ncuy78bJqHI35NwzWol8E0X7XkRVS4K4P4TCyzWkOJih5NDvtoRDW4Ba9YJJoB2igm9yXDdYI/+fkiiAxPzA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.8.0' + + '@typescript-eslint/utils@7.18.0': + resolution: {integrity: sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/visitor-keys@7.16.0': - resolution: {integrity: sha512-rMo01uPy9C7XxG7AFsxa8zLnWXTF8N3PYclekWSrurvhwiw1eW88mrKiAYe6s53AUY57nTRz8dJsuuXdkAhzCg==} + '@typescript-eslint/utils@8.20.0': + resolution: {integrity: sha512-dq70RUw6UK9ei7vxc4KQtBRk7qkHZv447OUZ6RPQMQl71I3NZxQJX/f32Smr+iqWrB02pHKn2yAdHBb0KNrRMA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.8.0' + + '@typescript-eslint/visitor-keys@7.18.0': + resolution: {integrity: sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==} engines: {node: ^18.18.0 || >=20.0.0} - '@ungap/structured-clone@1.2.0': - resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} + '@typescript-eslint/visitor-keys@8.20.0': + resolution: {integrity: sha512-v/BpkeeYAsPkKCkR8BDwcno0llhzWVqPOamQrAEMdpZav2Y9OVjd9dwJyBLJWwf335B5DmlifECIkZRJCaGaHA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@ungap/structured-clone@1.2.1': + resolution: {integrity: sha512-fEzPV3hSkSMltkw152tJKNARhOupqbH96MZWyRjNaYZOMIzbrTeQDG+MTc6Mr2pgzFQzFxAfmhGDNP5QK++2ZA==} - '@vitejs/plugin-react@4.3.3': - resolution: {integrity: sha512-NooDe9GpHGqNns1i8XDERg0Vsg5SSYRhRxxyTGogUdkdNt47jal+fbuYi+Yfq6pzRCKXyoPcWisfxE6RIM3GKA==} - engines: {node: ^14.18.0 || >=16.0.0} + '@vitejs/plugin-react-swc@3.7.2': + resolution: {integrity: sha512-y0byko2b2tSVVf5Gpng1eEhX1OvPC7x8yns1Fx8jDzlJp4LS6CMkCPfLw47cjyoMrshQDoQw4qcgjsU9VvlCew==} peerDependencies: - vite: ^4.2.0 || ^5.0.0 + vite: ^4 || ^5 || ^6 - '@vitest/coverage-v8@1.6.0': - resolution: {integrity: sha512-KvapcbMY/8GYIG0rlwwOKCVNRc0OL20rrhFkg/CHNzncV03TE2XWvO5w9uZYoxNiMEBacAJt3unSOiZ7svePew==} + '@vitest/expect@2.1.8': + resolution: {integrity: sha512-8ytZ/fFHq2g4PJVAtDX57mayemKgDR6X3Oa2Foro+EygiOJHUXhCqBAAKQYYajZpFoIfvBCF1j6R6IYRSIUFuw==} + + '@vitest/mocker@2.1.8': + resolution: {integrity: sha512-7guJ/47I6uqfttp33mgo6ga5Gr1VnL58rcqYKyShoRK9ebu8T5Rs6HN3s1NABiBeVTdWNrwUMcHH54uXZBN4zA==} peerDependencies: - vitest: 1.6.0 + msw: ^2.4.9 + vite: ^5.0.0 + peerDependenciesMeta: + msw: + optional: true + vite: + optional: true + + '@vitest/pretty-format@2.1.8': + resolution: {integrity: sha512-9HiSZ9zpqNLKlbIDRWOnAWqgcA7xu+8YxXSekhr0Ykab7PAYFkhkwoqVArPOtJhPmYeE2YHgKZlj3CP36z2AJQ==} - '@vitest/expect@1.6.0': - resolution: {integrity: sha512-ixEvFVQjycy/oNgHjqsL6AZCDduC+tflRluaHIzKIsdbzkLn2U/iBnVeJwB6HsIjQBdfMR8Z0tRxKUsvFJEeWQ==} + '@vitest/runner@2.1.8': + resolution: {integrity: sha512-17ub8vQstRnRlIU5k50bG+QOMLHRhYPAna5tw8tYbj+jzjcspnwnwtPtiOlkuKC4+ixDPTuLZiqiWWQ2PSXHVg==} - '@vitest/runner@1.6.0': - resolution: {integrity: sha512-P4xgwPjwesuBiHisAVz/LSSZtDjOTPYZVmNAnpHHSR6ONrf8eCJOFRvUwdHn30F5M1fxhqtl7QZQUk2dprIXAg==} + '@vitest/snapshot@2.1.8': + resolution: {integrity: sha512-20T7xRFbmnkfcmgVEz+z3AU/3b0cEzZOt/zmnvZEctg64/QZbSDJEVm9fLnnlSi74KibmRsO9/Qabi+t0vCRPg==} - '@vitest/snapshot@1.6.0': - resolution: {integrity: sha512-+Hx43f8Chus+DCmygqqfetcAZrDJwvTj0ymqjQq4CvmpKFSTVteEOBzCusu1x2tt4OJcvBflyHUE0DZSLgEMtQ==} + '@vitest/spy@2.1.8': + resolution: {integrity: sha512-5swjf2q95gXeYPevtW0BLk6H8+bPlMb4Vw/9Em4hFxDcaOxS+e0LOX4yqNxoHzMR2akEB2xfpnWUzkZokmgWDg==} - '@vitest/spy@1.6.0': - resolution: {integrity: sha512-leUTap6B/cqi/bQkXUu6bQV5TZPx7pmMBKBQiI0rJA8c3pB56ZsaTbREnF7CJfmvAS4V2cXIBAh/3rVwrrCYgw==} + '@vitest/utils@2.1.8': + resolution: {integrity: sha512-dwSoui6djdwbfFmIgbIjX2ZhIoG7Ex/+xpxyiEgIGzjliY8xGkcpITKTlp6B4MgtGkF2ilvm97cPM96XZaAgcA==} + + '@whatwg-node/disposablestack@0.0.5': + resolution: {integrity: sha512-9lXugdknoIequO4OYvIjhygvfSEgnO8oASLqLelnDhkRjgBZhc39shC3QSlZuyDO9bgYSIVa2cHAiN+St3ty4w==} + engines: {node: '>=18.0.0'} + + '@whatwg-node/fetch@0.10.3': + resolution: {integrity: sha512-jCTL/qYcIW2GihbBRHypQ/Us7saWMNZ5fsumsta+qPY0Pmi1ccba/KRQvgctmQsbP69FWemJSs8zVcFaNwdL0w==} + engines: {node: '>=18.0.0'} - '@vitest/utils@1.6.0': - resolution: {integrity: sha512-21cPiuGMoMZwiOHa2i4LXkMkMkCGzA+MVFV70jRwHo95dL4x/ts5GZhML1QWuy7yfp3WzK3lRvZi3JnXTYqrBw==} + '@whatwg-node/fetch@0.9.23': + resolution: {integrity: sha512-7xlqWel9JsmxahJnYVUj/LLxWcnA93DR4c9xlw3U814jWTiYalryiH1qToik1hOxweKKRLi4haXHM5ycRksPBA==} + engines: {node: '>=18.0.0'} - '@whatwg-node/fetch@0.9.22': - resolution: {integrity: sha512-+RIBffgoaRlWV9cKV6wAX71sbeoU2APOI3G13ZRMkabYHwkvDMeZDTyxJcsMXA5CpieJ7NFXF9Xyu72jwvdzqA==} + '@whatwg-node/node-fetch@0.6.0': + resolution: {integrity: sha512-tcZAhrpx6oVlkEsRngeTEEE7I5/QdLjeEz4IlekabGaESP7+Dkm/6a9KcF1KdCBB7mO9PXtBkwCuTCt8+UPg8Q==} engines: {node: '>=18.0.0'} - '@whatwg-node/node-fetch@0.5.27': - resolution: {integrity: sha512-0OaMj5W4fzWimRSFq07qFiWfquaUMNB+695GwE76LYKVuah+jwCdzSgsIOtwPkiyJ35w0XGhXmJPiIJCdLwopg==} + '@whatwg-node/node-fetch@0.7.7': + resolution: {integrity: sha512-BDbIMOenThOTFDBLh1WscgBNAxfDAdAdd9sMG8Ff83hYxApJVbqEct38bUAj+zn8bTsfBx/lyfnVOTyq5xUlvg==} engines: {node: '>=18.0.0'} '@wry/caches@1.0.1': @@ -1770,10 +1845,6 @@ packages: resolution: {integrity: sha512-BRFORjsTuQv5gxcXsuDXx6oGRhuVsEGwZy6LOzRRfgu+eSfxbhUQ9L9YtSEIuIjY/o7g3iWFjrc5eSY1GXP2Dw==} engines: {node: '>=8'} - '@wry/trie@0.4.3': - resolution: {integrity: sha512-I6bHwH0fSf6RqQcnnXLJKhkSXG45MFral3GxPaY4uAl0LYDZM+YDVDAiU9bYwjTuysy1S0IeecWtmq1SZA3M1w==} - engines: {node: '>=8'} - '@wry/trie@0.5.0': resolution: {integrity: sha512-FNoYzHawTMk/6KMQoEG5O4PuioX19UbwdQKF44yw0nLfOypfQdjtfZzo/UIJWAJ23sNIFbD1Ug9lbaDGMwbqQA==} engines: {node: '>=8'} @@ -1783,17 +1854,13 @@ packages: peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 - acorn-walk@8.3.3: - resolution: {integrity: sha512-MxXdReSRhGO7VlFe1bRG/oI7/mdLV9B9JJT0N8vZOhF7gFRR5l3M8W9G8JxmKV+JC5mGqJ0QvqfSOLsCPa4nUw==} - engines: {node: '>=0.4.0'} - - acorn@8.12.1: - resolution: {integrity: sha512-tcpGyI9zbizT9JbV6oYE477V6mTlXvvi0T0G3SNIYE2apm/G5huBa1+K89VGeovbg+jycCrfhl3ADxErOuO6Jg==} + acorn@8.14.0: + resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} engines: {node: '>=0.4.0'} hasBin: true - agent-base@7.1.1: - resolution: {integrity: sha512-H0TSyFNDMomMNJQBn8wFV5YC/2eJ+VXECwOadZJT554xP6cODZHPX3H9QMQECxvrgiSOP1pHjy1sMWQVYJOUOA==} + agent-base@7.1.3: + resolution: {integrity: sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==} engines: {node: '>= 14'} aggregate-error@3.1.0: @@ -1811,14 +1878,10 @@ packages: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} - ansi-regex@6.0.1: - resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==} + ansi-regex@6.1.0: + resolution: {integrity: sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==} engines: {node: '>=12'} - ansi-styles@3.2.1: - resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} - engines: {node: '>=4'} - ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} @@ -1848,14 +1911,15 @@ packages: resolution: {integrity: sha512-y+CcFFwelSXpLZk/7fMB2mUbGtX9lKycf1MWJ7CaTIERyitVlyQx6C+sxcROU2BAJ24OiZyK+8wj2i8AlBoS3A==} engines: {node: '>=10'} - aria-query@5.1.3: - resolution: {integrity: sha512-R5iJ5lkuHybztUfuOAznmboyjWq8O6sqNqtK7CLOqdydi54VNbORp49mb14KbWgG1QD3JFO9hJdZ+y4KutfdOQ==} - aria-query@5.3.0: resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} - array-buffer-byte-length@1.0.1: - resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + aria-query@5.3.2: + resolution: {integrity: sha512-COROpnaoap1E2F000S62r6A60uHZnmlvomhfyT2DlTcrY1OrBKn2UhH7qn5wTC9zMvD0AY7csdPSNwKP+7WiQw==} + engines: {node: '>= 0.4'} + + array-buffer-byte-length@1.0.2: + resolution: {integrity: sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==} engines: {node: '>= 0.4'} array-includes@3.1.8: @@ -1874,30 +1938,28 @@ packages: resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} engines: {node: '>= 0.4'} - array.prototype.flat@1.3.2: - resolution: {integrity: sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==} + array.prototype.flat@1.3.3: + resolution: {integrity: sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==} engines: {node: '>= 0.4'} - array.prototype.flatmap@1.3.2: - resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} + array.prototype.flatmap@1.3.3: + resolution: {integrity: sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==} engines: {node: '>= 0.4'} - array.prototype.toreversed@1.1.2: - resolution: {integrity: sha512-wwDCoT4Ck4Cz7sLtgUmzR5UV3YF5mFHUlbChCzZBQZ+0m2cl/DH3tKgvphv1nKgFsJ48oCSg6p91q2Vm0I/ZMA==} - array.prototype.tosorted@1.1.4: resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} engines: {node: '>= 0.4'} - arraybuffer.prototype.slice@1.0.3: - resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + arraybuffer.prototype.slice@1.0.4: + resolution: {integrity: sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==} engines: {node: '>= 0.4'} asap@2.0.6: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} - assertion-error@1.1.0: - resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + assertion-error@2.0.1: + resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} + engines: {node: '>=12'} ast-types-flow@0.0.8: resolution: {integrity: sha512-OH/2E5Fg20h2aPrbe+QL8JZQFko0YZaF+j4mnQ7BGhfavO7OpSLa8a0y9sBwomHdSbkhTS8TQNayBfnW5DwbvQ==} @@ -1906,9 +1968,6 @@ packages: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} - async-mutex@0.5.0: - resolution: {integrity: sha512-1A94B18jkJ3DYq284ohPxoXbfTA5HsQ7/Mf4DEhcyLx3Bz27Rh59iScbB6EPiP+B+joue6YCxcMXSbFC1tZKwA==} - asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} @@ -1916,8 +1975,8 @@ packages: resolution: {integrity: sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==} engines: {node: '>=8'} - autoprefixer@10.4.19: - resolution: {integrity: sha512-BaENR2+zBZ8xXhM4pUaKUxlVdxZ0EZhjvbopwnXmxRUfqDmwSpC2lAi/QXvx7NRdPCo1WKEcEF6mV64si1z4Ew==} + autoprefixer@10.4.20: + resolution: {integrity: sha512-XY25y5xSv/wEoqzDyXXME4AFfkZI0P23z6Fs3YgymDnKJkCGOnkL0iTxCa85UTqaSgfcqyf3UA6+c7wUvx/16g==} engines: {node: ^10 || ^12 || >=14} hasBin: true peerDependencies: @@ -1927,12 +1986,13 @@ packages: resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} engines: {node: '>= 0.4'} - axe-core@4.9.1: - resolution: {integrity: sha512-QbUdXJVTpvUTHU7871ppZkdOLBeGUKBQWHkHrvN2V9IQWGMt61zf3B45BtzjxEJzYuj0JBjBZP/hmYS/R9pmAw==} + axe-core@4.10.2: + resolution: {integrity: sha512-RE3mdQ7P3FRSe7eqCWoeQ/Z9QXrtniSjp1wUjt5nRC3WIpz5rSCve6o3fsZ2aCpJtrZjSZgjwXAoTO5k4tEI0w==} engines: {node: '>=4'} - axobject-query@3.1.1: - resolution: {integrity: sha512-goKlv8DZrK9hUh975fnHzhNIO4jUnFCfv/dszV5VwUGDFjI6vQ2VwoyjYjYNEbBE8AH87TduWP5uyDR1D+Iteg==} + axobject-query@4.1.0: + resolution: {integrity: sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==} + engines: {node: '>= 0.4'} babel-plugin-syntax-trailing-function-commas@7.0.0-beta.0: resolution: {integrity: sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==} @@ -1965,13 +2025,8 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} - browserslist@4.23.2: - resolution: {integrity: sha512-qkqSyistMYdxAcw+CzbZwlBy8AGmS/eEWs+sEV5TnLRGDOL+C5M2EnH6tlZyg0YoAxGJAFKh61En9BR941GnHA==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - - browserslist@4.24.2: - resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} + browserslist@4.24.4: + resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -1989,8 +2044,16 @@ packages: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} - call-bind@1.0.7: - resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==} + call-bind-apply-helpers@1.0.1: + resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} + engines: {node: '>= 0.4'} + + call-bind@1.0.8: + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + engines: {node: '>= 0.4'} + + call-bound@1.0.3: + resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} engines: {node: '>= 0.4'} callsites@3.1.0: @@ -2004,30 +2067,19 @@ packages: resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} engines: {node: '>= 6'} - camelcase@5.3.1: - resolution: {integrity: sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==} - engines: {node: '>=6'} - camelcase@6.3.0: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001641: - resolution: {integrity: sha512-Phv5thgl67bHYo1TtMY/MurjkHhV4EDaCosezRXgZ8jzA/Ub+wjxAvbGvjoFENStinwi5kCyOYV3mi5tOGykwA==} - - caniuse-lite@1.0.30001669: - resolution: {integrity: sha512-DlWzFDJqstqtIVx1zeSpIMLjunf5SmwOw0N2Ck/QSQdS8PLS4+9HrLaYei4w8BIAL7IB/UEDu889d8vhCTPA0w==} + caniuse-lite@1.0.30001692: + resolution: {integrity: sha512-A95VKan0kdtrsnMubMKxEKUKImOPSuCpYgxSQBo036P5YYgVIcOYJEgt/txJWqObiRQeISNCfef9nvlQ0vbV7A==} capital-case@1.0.4: resolution: {integrity: sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==} - chai@4.4.1: - resolution: {integrity: sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g==} - engines: {node: '>=4'} - - chalk@2.4.2: - resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} - engines: {node: '>=4'} + chai@5.1.2: + resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==} + engines: {node: '>=12'} chalk@3.0.0: resolution: {integrity: sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==} @@ -2046,18 +2098,19 @@ packages: chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} - check-error@1.0.3: - resolution: {integrity: sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg==} + check-error@2.1.1: + resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} + engines: {node: '>= 16'} chokidar@3.6.0: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} - chroma-js@2.4.2: - resolution: {integrity: sha512-U9eDw6+wt7V8z5NncY2jJfZa+hUH8XEj8FQHgFJTrUFnJfXYf4Ml4adI2vXZOjqRDpFWtYVWypDfZwnJ+HIR4A==} + chroma-js@2.6.0: + resolution: {integrity: sha512-BLHvCB9s8Z1EV4ethr6xnkl/P2YRFOGqfgvuMG/MyCbZPrTA+NeiByY6XvgF0zP4/2deU2CXnWyMa3zu1LqQ3A==} - class-variance-authority@0.7.0: - resolution: {integrity: sha512-jFI8IQw4hczaL4ALINxqLEXQbWcNjoSkloa4IaufXCJr6QawJyw7tuRysRsrE8w2p/4gGaxKIt/hX3qz/IbD1A==} + class-variance-authority@0.7.1: + resolution: {integrity: sha512-Ka+9Trutv7G8M6WT6SeiRWz792K5qEqIGEGzXKhAE6xOWAY6pPH8U+9IY3oCMv6kqTmLsv7Xh/2w2RigkePMsg==} clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} @@ -2079,12 +2132,6 @@ packages: resolution: {integrity: sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==} engines: {node: '>= 10'} - client-only@0.0.1: - resolution: {integrity: sha512-IV3Ou0jSMzZrd3pZ48nLkT9DA7Ag1pnPzaiQhpW7c3RbcqqzvzzVu+L8gfqMp/8IM2MQtSiqaCxrrcfu8I8rMA==} - - cliui@6.0.0: - resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} - cliui@8.0.1: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==} engines: {node: '>=12'} @@ -2093,24 +2140,14 @@ packages: resolution: {integrity: sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==} engines: {node: '>=0.8'} - clsx@2.0.0: - resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==} - engines: {node: '>=6'} - clsx@2.1.1: resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==} engines: {node: '>=6'} - color-convert@1.9.3: - resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} - color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} - color-name@1.1.3: - resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==} - color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} @@ -2132,9 +2169,6 @@ packages: concat-map@0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - confbox@0.1.7: - resolution: {integrity: sha512-uJcB/FKZtBMCJpK8MQji6bJHgu1tixKPxRLeGkNzBoOZzpnZUJm0jm2/sBDWcuBx1dYgxV4JU+g5hmNxCyAmdA==} - confusing-browser-globals@1.0.11: resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} @@ -2144,6 +2178,13 @@ packages: convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} + cookie@1.0.2: + resolution: {integrity: sha512-9Kr/j4O16ISv8zBBhJoi4bXOYNTkFLOqSL3UDB0njXxCXNezjeyVrJyGOWtgfs/q2km1gwBcfH8q1yEGoMYunA==} + engines: {node: '>=18'} + + core-util-is@1.0.3: + resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} + cosmiconfig@8.3.6: resolution: {integrity: sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA==} engines: {node: '>=14'} @@ -2153,11 +2194,11 @@ packages: typescript: optional: true - cross-fetch@3.1.8: - resolution: {integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==} + cross-fetch@3.2.0: + resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==} - cross-inspect@1.0.0: - resolution: {integrity: sha512-4PFfn4b5ZN6FMNGSZlyb7wUhuN8wvj8t/VQHZdM4JsDcruGJ8L2kf9zao98QIrBPFCpdk27qst/AGTl7pL3ypQ==} + cross-inspect@1.0.1: + resolution: {integrity: sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A==} engines: {node: '>=16.0.0'} cross-spawn@7.0.6: @@ -2172,8 +2213,8 @@ packages: engines: {node: '>=4'} hasBin: true - cssstyle@4.1.0: - resolution: {integrity: sha512-h66W1URKpBS5YMI/V8PyXvTMFT8SupJ1IzoIV8IeBC/ji8WVmrO8dGlTi+2dh6whmdk6BiKJLD/ZBkhWbcg6nA==} + cssstyle@4.2.1: + resolution: {integrity: sha512-9+vem03dMXG7gDmZ62uqmRiMRNtinIZ9ZyuF6BdxzfOD+FdN5hretzynkn0ReS2DO2GSw76RWHs0UmJPI2zUjw==} engines: {node: '>=18'} csstype@3.1.3: @@ -2182,24 +2223,28 @@ packages: damerau-levenshtein@1.0.8: resolution: {integrity: sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==} + data-uri-to-buffer@4.0.1: + resolution: {integrity: sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==} + engines: {node: '>= 12'} + data-urls@5.0.0: resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} engines: {node: '>=18'} - data-view-buffer@1.0.1: - resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + data-view-buffer@1.0.2: + resolution: {integrity: sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==} engines: {node: '>= 0.4'} - data-view-byte-length@1.0.1: - resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + data-view-byte-length@1.0.2: + resolution: {integrity: sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==} engines: {node: '>= 0.4'} - data-view-byte-offset@1.0.0: - resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + data-view-byte-offset@1.0.1: + resolution: {integrity: sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==} engines: {node: '>= 0.4'} - dataloader@2.2.2: - resolution: {integrity: sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==} + dataloader@2.2.3: + resolution: {integrity: sha512-y2krtASINtPFS1rSDjacrFgn1dcUuoREVabwlOGOe4SdxenREqwjwjElAdwvbGM7kgZz9a3KVicWR7vcz8rnzA==} date-fns-tz@3.2.0: resolution: {integrity: sha512-sg8HqoTEulcbbbVXeg84u5UnlsQa8GS5QXMqjjYIhS4abEVVKIUwe0/l/UhrZdKaL/W5eWZNlbTeEIiOXTcsBQ==} @@ -2220,8 +2265,8 @@ packages: supports-color: optional: true - debug@4.3.5: - resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==} + debug@4.4.0: + resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} engines: {node: '>=6.0'} peerDependencies: supports-color: '*' @@ -2229,30 +2274,13 @@ packages: supports-color: optional: true - debug@4.3.7: - resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true + decimal.js@10.4.3: + resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} - decamelize@1.2.0: - resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} - engines: {node: '>=0.10.0'} - - decimal.js@10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} - - deep-eql@4.1.4: - resolution: {integrity: sha512-SUwdGfqdKOwxCPeVYjwSyRpJ7Z+fhpwIAtmCUdZIWZ/YP5R9WAsyuSgpLVDi9bjWoN2LXHNss/dk3urXtdQxGg==} + deep-eql@5.0.2: + resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} engines: {node: '>=6'} - deep-equal@2.2.3: - resolution: {integrity: sha512-ZIwpnevOurS8bpT4192sqAowWM76JDKSHYzMLty3BZGSswgq6pBaH3DhCSW5xVAZICZyKdOBPjwww5wfgT/6PA==} - engines: {node: '>= 0.4'} - deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} @@ -2263,10 +2291,6 @@ packages: resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} engines: {node: '>= 0.4'} - define-lazy-prop@2.0.0: - resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} - engines: {node: '>=8'} - define-properties@1.2.1: resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} engines: {node: '>= 0.4'} @@ -2293,10 +2317,6 @@ packages: didyoumean@1.2.2: resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} - diff-sequences@29.6.3: - resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} @@ -2327,22 +2347,23 @@ packages: dot-case@3.0.4: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==} - dotenv@16.4.5: - resolution: {integrity: sha512-ZmdL2rui+eB2YwhsWzjInR8LldtZHGDoQ1ugH85ppHKwpUHL7j7rN0Ti9NCnGiQbhaZ11FpR+7ao1dNsmduNUg==} + dotenv@16.4.7: + resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} engines: {node: '>=12'} dset@3.1.4: resolution: {integrity: sha512-2QF/g9/zTaPDc3BjNcVTGoBbXBgYfMTTceLaYcFJ/W9kggFUkhxD/hMEeuLKbugyef9SqAx8cpgwlIP/jinUTA==} engines: {node: '>=4'} + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} - electron-to-chromium@1.4.823: - resolution: {integrity: sha512-4h+oPeAiGQOHFyUJOqpoEcPj/xxlicxBzOErVeYVMMmAiXUXsGpsFd0QXBMaUUbnD8hhSfLf9uw+MlsoIA7j5w==} - - electron-to-chromium@1.5.42: - resolution: {integrity: sha512-gIfKavKDw1mhvic9nbzA5lZw8QSHpdMwLwXc0cWidQz9B15pDoDdDH4boIatuFfeoCatb3a/NGL6CYRVFxGZ9g==} + electron-to-chromium@1.5.83: + resolution: {integrity: sha512-LcUDPqSt+V0QmI47XLzZrz5OqILSMGsPFkDYus22rIbgorSvBYEFqq854ltTmUdHkY92FSdAAvsh4jWEULMdfQ==} emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -2357,38 +2378,38 @@ packages: error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} - es-abstract@1.23.3: - resolution: {integrity: sha512-e+HfNH61Bj1X9/jLc5v1owaLYuHdeHHSQlkhCBiTK8rBvKaULl/beGMxwrMXjpYrv4pz22BlY570vVePA2ho4A==} + es-abstract@1.23.9: + resolution: {integrity: sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==} engines: {node: '>= 0.4'} - es-define-property@1.0.0: - resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==} + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} engines: {node: '>= 0.4'} es-errors@1.3.0: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} - es-get-iterator@1.1.3: - resolution: {integrity: sha512-sPZmqHBe6JIiTfN5q2pEi//TwxmAFHwj/XEuYjTuse78i8KxaqMTTzxPoFKuzRpDpTJ+0NAbpfenkmH2rePtuw==} - - es-iterator-helpers@1.0.19: - resolution: {integrity: sha512-zoMwbCcH5hwUkKJkT8kDIBZSz9I6mVG//+lDCinLCGov4+r7NIy0ld8o03M0cJxl2spVf6ESYVS6/gpIfq1FFw==} + es-iterator-helpers@1.2.1: + resolution: {integrity: sha512-uDn+FE1yrDzyC0pCo961B2IHbdM8y/ACZsKD4dG6WqrjV53BADjwa7D+1aom2rsNVfLyDgU/eigvlJGJ08OQ4w==} engines: {node: '>= 0.4'} - es-object-atoms@1.0.0: - resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + es-module-lexer@1.6.0: + resolution: {integrity: sha512-qqnD1yMU6tk/jnaMosogGySTZP8YtUgAffA9nMN+E/rjxcfRQ6IEk7IiozUjgxKoFHBGjTLnrHB/YC45r/59EQ==} + + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} engines: {node: '>= 0.4'} - es-set-tostringtag@2.0.3: - resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} engines: {node: '>= 0.4'} es-shim-unscopables@1.0.2: resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} - es-to-primitive@1.2.1: - resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} + es-to-primitive@1.3.0: + resolution: {integrity: sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==} engines: {node: '>= 0.4'} esbuild@0.21.5: @@ -2396,10 +2417,6 @@ packages: engines: {node: '>=12'} hasBin: true - escalade@3.1.2: - resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} - engines: {node: '>=6'} - escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -2442,8 +2459,8 @@ packages: eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - eslint-module-utils@2.8.1: - resolution: {integrity: sha512-rXDXR3h7cs7dy9RNpUlQf80nX31XWJEyGq1tRMo+6GsO5VmTe4UTwtmonAD4ZkAsrfMVDA2wlGJ3790Ys+D49Q==} + eslint-module-utils@2.12.0: + resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -2463,21 +2480,21 @@ packages: eslint-import-resolver-webpack: optional: true - eslint-plugin-import@2.29.1: - resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} + eslint-plugin-import@2.31.0: + resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 peerDependenciesMeta: '@typescript-eslint/parser': optional: true - eslint-plugin-jsx-a11y@6.9.0: - resolution: {integrity: sha512-nOFOCaJG2pYqORjK19lqPqxMO/JpvdCZdPtNdxY3kvom3jTvkAbOvQvD8wuD0G8BYR0IGAGYDlzqWJOh/ybn2g==} + eslint-plugin-jsx-a11y@6.10.2: + resolution: {integrity: sha512-scB3nz4WmG75pV8+3eRUQOHZlNSUhFNq37xnpgRkCCELU3XMvXAxLk1eqWWyE22Ki4Q01Fnsw9BA3cJHDPgn2Q==} engines: {node: '>=4.0'} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 eslint-plugin-react-hooks@4.6.2: resolution: {integrity: sha512-QzliNJq4GinDBcD8gPB5v0wh6g8q3SUi6EFF0x8N/BL9PoVs0atuGc47ozMRyOWAKdwaZ5OnbOEa3WR+dSGKuQ==} @@ -2485,16 +2502,16 @@ packages: peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - eslint-plugin-react-refresh@0.4.8: - resolution: {integrity: sha512-MIKAclwaDFIiYtVBLzDdm16E+Ty4GwhB6wZlCAG1R3Ur+F9Qbo6PRxpA5DK7XtDgm+WlCoAY2WxAwqhmIDHg6Q==} + eslint-plugin-react-refresh@0.4.18: + resolution: {integrity: sha512-IRGEoFn3OKalm3hjfolEWGqoF/jPqeEYFp+C8B0WMzwGwBMvlRDQd06kghDhF0C61uJ6WfSDhEZE/sAQjduKgw==} peerDependencies: - eslint: '>=7' + eslint: '>=8.40' - eslint-plugin-react@7.34.1: - resolution: {integrity: sha512-N97CxlouPT1AHt8Jn0mhhN2RrADlUAsk1/atcT2KyA/l9Q/E6ll7OIGwNumFmWfZ9skV3XXccYS19h80rHtgkw==} + eslint-plugin-react@7.37.2: + resolution: {integrity: sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==} engines: {node: '>=4'} peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 eslint-scope@7.2.2: resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} @@ -2504,8 +2521,12 @@ packages: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint@8.57.0: - resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==} + eslint-visitor-keys@4.2.0: + resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + eslint@8.57.1: + resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. hasBin: true @@ -2536,9 +2557,9 @@ packages: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} - execa@8.0.1: - resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} - engines: {node: '>=16.17'} + expect-type@1.1.0: + resolution: {integrity: sha512-bFi65yM+xZgk+u/KRIpekdSYkTB5W1pEf0Lt8Q8Msh7b+eQ7LXVtIB1Bkm4fvclDEL1b2CZkMhv2mOeF8tMdkA==} + engines: {node: '>=12.0.0'} external-editor@3.1.0: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} @@ -2548,8 +2569,8 @@ packages: resolution: {integrity: sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ==} engines: {node: ^12.20 || >= 14.13} - fancy-ansi@0.1.2: - resolution: {integrity: sha512-gVS03k+9y76Nn6EdfMFuJVM6MDC80YlOHpQM2vVqwIhdAa3GZP4dC0O4b8KJmrZdlsOhyHwfZ+Zmr52rWr4lkg==} + fancy-ansi@0.1.3: + resolution: {integrity: sha512-tRQVTo5jjdSIiydqgzIIEZpKddzSsfGLsSVt6vWdjVm7fbvDTiQkyoPu6Z3dIPlAM4OZk0jP5jmTCX4G8WGgBw==} fast-decode-uri-component@1.0.1: resolution: {integrity: sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==} @@ -2557,8 +2578,8 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} fast-json-stable-stringify@2.1.0: @@ -2570,8 +2591,8 @@ packages: fast-querystring@1.1.2: resolution: {integrity: sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==} - fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + fastq@1.18.0: + resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==} fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} @@ -2582,6 +2603,10 @@ packages: fbjs@3.0.5: resolution: {integrity: sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==} + fetch-blob@3.2.0: + resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==} + engines: {node: ^12.20 || >= 14.13} + figures@3.2.0: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} @@ -2594,10 +2619,6 @@ packages: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} - find-up@4.1.0: - resolution: {integrity: sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==} - engines: {node: '>=8'} - find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} @@ -2606,20 +2627,24 @@ packages: resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} engines: {node: ^10.12.0 || >=12.0.0} - flatted@3.3.1: - resolution: {integrity: sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==} + flatted@3.3.2: + resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} for-each@0.3.3: resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} - foreground-child@3.2.1: - resolution: {integrity: sha512-PXUUyLqrR2XCWICfv6ukppP96sdFwWbNEnfEMt7jNsISjMsvaLNinAHNDYyvkyU+SZG2BTSbT5NjG+vZslfGTA==} + foreground-child@3.3.0: + resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} engines: {node: '>=14'} - form-data@4.0.0: - resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} + form-data@4.0.1: + resolution: {integrity: sha512-tzN8e4TX8+kkxGPK8D5u0FNmjPUjw3lwC9lSLxxoB/+GtsJG91CO8bSWy73APlgAZzZbXEYZJuxjkHH2w+Ezhw==} engines: {node: '>= 6'} + formdata-polyfill@4.0.10: + resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==} + engines: {node: '>=12.20.0'} + fraction.js@4.3.7: resolution: {integrity: sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==} @@ -2634,8 +2659,8 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} - function.prototype.name@1.1.6: - resolution: {integrity: sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==} + function.prototype.name@1.1.8: + resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} engines: {node: '>= 0.4'} functions-have-names@1.2.3: @@ -2649,23 +2674,20 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-func-name@2.0.2: - resolution: {integrity: sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ==} - - get-intrinsic@1.2.4: - resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==} + get-intrinsic@1.2.7: + resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} engines: {node: '>= 0.4'} get-nonce@1.0.1: resolution: {integrity: sha512-FJhYRoDaiatfEkUK8HKlicmu/3SGFD51q3itKDGoSTysQJBnfOcxU5GxnhE1E6soB76MbT0MBtnKJuXyAx+96Q==} engines: {node: '>=6'} - get-stream@8.0.1: - resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} - engines: {node: '>=16'} + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} - get-symbol-description@1.0.2: - resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + get-symbol-description@1.1.0: + resolution: {integrity: sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==} engines: {node: '>= 0.4'} glob-parent@5.1.2: @@ -2692,6 +2714,10 @@ packages: resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} engines: {node: '>=8'} + globals@15.14.0: + resolution: {integrity: sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==} + engines: {node: '>=18'} + globalthis@1.0.4: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} @@ -2703,13 +2729,14 @@ packages: globrex@0.1.2: resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} - goober@2.1.14: - resolution: {integrity: sha512-4UpC0NdGyAFqLNPnhCT2iHpza2q+RAY3GV85a/mRPdzyPQMsj0KmMMuetdIkzWRbJ+Hgau1EZztq8ImmiMGhsg==} + goober@2.1.16: + resolution: {integrity: sha512-erjk19y1U33+XAMe1VTvIONHYoSqE4iS7BYUZfHaqeohLmnC0FdxEh7rQU+6MZ4OajItzjZFSRtVANrQwNq6/g==} peerDependencies: csstype: ^3.0.10 - gopd@1.0.1: - resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} graphemer@1.4.0: resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} @@ -2735,25 +2762,22 @@ packages: peerDependencies: graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 - graphql-ws@5.16.0: - resolution: {integrity: sha512-Ju2RCU2dQMgSKtArPbEtsK5gNLnsQyTNIo/T7cZNp96niC1x0KdJNZV0TIoilceBPQwfb5itrGl8pkFeOUMl4A==} + graphql-ws@5.16.2: + resolution: {integrity: sha512-E1uccsZxt/96jH/OwmLPuXMACILs76pKF2i3W861LpKBCYtGIyPQGtWLuBLkND4ox1KHns70e83PS4te50nvPQ==} engines: {node: '>=10'} peerDependencies: graphql: '>=0.11 <=16' - graphql@16.9.0: - resolution: {integrity: sha512-GGTKBX4SD7Wdb8mqeDLni2oaRGYQWjWHGKPQ24ZMnUtKfcsVoiv4uX8+LJr1K6U5VW2Lu1BwJnj7uiori0YtRw==} + graphql@16.10.0: + resolution: {integrity: sha512-AjqGKbDGUFRKIRCP9tCKiIGHyriz2oHEbPIbEtcSLSs4YjReZOIPQQWek4+6hjw62H9QShXHyaGivGiYVLeYFQ==} engines: {node: ^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0} hamt_plus@1.0.2: resolution: {integrity: sha512-t2JXKaehnMb9paaYA7J0BX8QQAY8lwfQ9Gjf4pg/mk4krt+cmwmU652HOoWonf+7+EQV97ARPMhhVgU1ra2GhA==} - has-bigints@1.0.2: - resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} - - has-flag@3.0.0: - resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==} - engines: {node: '>=4'} + has-bigints@1.1.0: + resolution: {integrity: sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==} + engines: {node: '>= 0.4'} has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} @@ -2762,12 +2786,12 @@ packages: has-property-descriptors@1.0.2: resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} - has-proto@1.0.3: - resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==} + has-proto@1.2.0: + resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} engines: {node: '>= 0.4'} - has-symbols@1.0.3: - resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} engines: {node: '>= 0.4'} has-tostringtag@1.0.2: @@ -2791,21 +2815,14 @@ packages: resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} engines: {node: '>=18'} - html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - http-proxy-agent@7.0.2: resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} engines: {node: '>= 14'} - https-proxy-agent@7.0.5: - resolution: {integrity: sha512-1e4Wqeblerz+tMKPIq2EMGiiWW1dIjZOksyHWSUm1rmuvw/how9hBHZ38lAGj5ID4Ik6EdkOw7NmWPy6LAwalw==} + https-proxy-agent@7.0.6: + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} engines: {node: '>= 14'} - human-signals@5.0.0: - resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} - engines: {node: '>=16.17.0'} - iconv-lite@0.4.24: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} @@ -2817,8 +2834,8 @@ packages: ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - ignore@5.3.1: - resolution: {integrity: sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==} + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} immutable@3.7.6: @@ -2852,8 +2869,8 @@ packages: resolution: {integrity: sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==} engines: {node: '>=12.0.0'} - internal-slot@1.0.7: - resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + internal-slot@1.1.0: + resolution: {integrity: sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==} engines: {node: '>= 0.4'} invariant@2.2.4: @@ -2863,66 +2880,59 @@ packages: resolution: {integrity: sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==} engines: {node: '>=0.10.0'} - is-arguments@1.1.1: - resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} - engines: {node: '>= 0.4'} - - is-array-buffer@3.0.4: - resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + is-array-buffer@3.0.5: + resolution: {integrity: sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==} engines: {node: '>= 0.4'} is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - is-async-function@2.0.0: - resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + is-async-function@2.1.0: + resolution: {integrity: sha512-GExz9MtyhlZyXYLxzlJRj5WUCE661zhDa1Yna52CN57AJsymh+DvXXjyveSioqSRdxvUrdKdvqB1b5cVKsNpWQ==} engines: {node: '>= 0.4'} - is-bigint@1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + is-bigint@1.1.0: + resolution: {integrity: sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==} + engines: {node: '>= 0.4'} is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} - is-boolean-object@1.1.2: - resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} + is-boolean-object@1.2.1: + resolution: {integrity: sha512-l9qO6eFlUETHtuihLcYOaLKByJ1f+N4kthcU9YjHy3N+B3hWv0y/2Nd0mu/7lTFnRQHTrSdXF50HQ3bl5fEnng==} engines: {node: '>= 0.4'} is-callable@1.2.7: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - is-core-module@2.14.0: - resolution: {integrity: sha512-a5dFJih5ZLYlRtDc0dZWP7RiKr6xIKzmn/oAYCDvdLThadVgyJwlaoQPmRtMSpz+rk0OGAgIu+TcM9HUF0fk1A==} + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} - is-data-view@1.0.1: - resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + is-data-view@1.0.2: + resolution: {integrity: sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==} engines: {node: '>= 0.4'} - is-date-object@1.0.5: - resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} + is-date-object@1.1.0: + resolution: {integrity: sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==} engines: {node: '>= 0.4'} - is-docker@2.2.1: - resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} - engines: {node: '>=8'} - hasBin: true - is-extglob@2.1.1: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} - is-finalizationregistry@1.0.2: - resolution: {integrity: sha512-0by5vtUJs8iFQb5TYUHHPudOR+qXYIMKtiUzvLIZITZUjknFmziyBJuLhVRc+Ds0dREFlskDNJKYIdIzu/9pfw==} + is-finalizationregistry@1.1.1: + resolution: {integrity: sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==} + engines: {node: '>= 0.4'} is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} - is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + is-generator-function@1.1.0: + resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} engines: {node: '>= 0.4'} is-glob@4.0.3: @@ -2940,12 +2950,8 @@ packages: resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} engines: {node: '>= 0.4'} - is-negative-zero@2.0.3: - resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} - engines: {node: '>= 0.4'} - - is-number-object@1.0.7: - resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} + is-number-object@1.1.1: + resolution: {integrity: sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==} engines: {node: '>= 0.4'} is-number@7.0.0: @@ -2959,8 +2965,8 @@ packages: is-potential-custom-element-name@1.0.1: resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - is-regex@1.1.4: - resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} engines: {node: '>= 0.4'} is-relative@1.0.0: @@ -2971,24 +2977,20 @@ packages: resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} engines: {node: '>= 0.4'} - is-shared-array-buffer@1.0.3: - resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + is-shared-array-buffer@1.0.4: + resolution: {integrity: sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==} engines: {node: '>= 0.4'} - is-stream@3.0.0: - resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - - is-string@1.0.7: - resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} + is-string@1.1.1: + resolution: {integrity: sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==} engines: {node: '>= 0.4'} - is-symbol@1.0.4: - resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} + is-symbol@1.1.1: + resolution: {integrity: sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==} engines: {node: '>= 0.4'} - is-typed-array@1.1.13: - resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + is-typed-array@1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} engines: {node: '>= 0.4'} is-unc-path@1.0.0: @@ -3006,20 +3008,20 @@ packages: resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} engines: {node: '>= 0.4'} - is-weakref@1.0.2: - resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + is-weakref@1.1.0: + resolution: {integrity: sha512-SXM8Nwyys6nT5WP6pltOwKytLV7FqQ4UiibxVmW+EIosHcmCqkkjViTb5SNssDlkCiEYRP1/pdWUKVvZBmsR2Q==} + engines: {node: '>= 0.4'} - is-weakset@2.0.3: - resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} + is-weakset@2.0.4: + resolution: {integrity: sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==} engines: {node: '>= 0.4'} is-windows@1.0.2: resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==} engines: {node: '>=0.10.0'} - is-wsl@2.2.0: - resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} - engines: {node: '>=8'} + isarray@1.0.0: + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} @@ -3032,65 +3034,42 @@ packages: peerDependencies: ws: '*' - istanbul-lib-coverage@3.2.2: - resolution: {integrity: sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==} - engines: {node: '>=8'} - - istanbul-lib-report@3.0.1: - resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} - engines: {node: '>=10'} - - istanbul-lib-source-maps@5.0.6: - resolution: {integrity: sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==} - engines: {node: '>=10'} - - istanbul-reports@3.1.7: - resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} - engines: {node: '>=8'} - - iterator.prototype@1.1.2: - resolution: {integrity: sha512-DR33HMMr8EzwuRL8Y9D3u2BMj8+RqSE850jfGu59kS7tbmPLzGkZmVSfyCFSDxuZiEY6Rzt3T2NA/qU+NwVj1w==} + iterator.prototype@1.1.5: + resolution: {integrity: sha512-H0dkQoCa3b2VEeKQBOxFph+JAbcrQdE7KC0UkqwpLmv2EC4P41QXP+rqo9wYodACiG5/WM5s9oDApTU8utwj9g==} + engines: {node: '>= 0.4'} jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} - jiti@1.21.6: - resolution: {integrity: sha512-2yTgeWTWzMWkHu6Jp9NKgePDaYHbntiwvYuuJLbbN9vl7DC9DvXKOB2BC3ZZ92D3cvV/aflH0osDfwpHepQ53w==} + jiti@1.21.7: + resolution: {integrity: sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==} hasBin: true - jiti@2.3.3: - resolution: {integrity: sha512-EX4oNDwcXSivPrw2qKH2LB5PoFxEvgtv2JgwW0bU858HoLQ+kutSvjLMUqBd0PeJYEinLWhoI9Ol0eYMqj/wNQ==} + jiti@2.4.2: + resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==} hasBin: true - jose@5.6.3: - resolution: {integrity: sha512-1Jh//hEEwMhNYPDDLwXHa2ePWgWiFNNUadVmguAAw2IJ6sj9mNxV5tGXJNqlMkJAybF6Lgw1mISDxTePP/187g==} + jose@5.9.6: + resolution: {integrity: sha512-AMlnetc9+CV9asI19zHmrgS/WYsWUwCn2R7RzlbJWD7F9eWYUTGyBmU9o6PxngtLGOiDGPRu+Uc4fhKzbpteZQ==} js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - js-tokens@9.0.0: - resolution: {integrity: sha512-WriZw1luRMlmV3LGJaR6QOJjWwgLUTf89OwT2lUOyjX2dJGBwgmIkbcz+7WFZjrZM635JOIR517++e/67CP9dQ==} - js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true - jsdom@25.0.1: - resolution: {integrity: sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==} + jsdom@26.0.0: + resolution: {integrity: sha512-BZYDGVAIriBWTpIxYzrXjv3E/4u8+/pSG5bQdIYCbNCGOvsPkDQfTVLAIXAf9ETdCpduCVTkDe2NNZ8NIwUVzw==} engines: {node: '>=18'} peerDependencies: - canvas: ^2.11.2 + canvas: ^3.0.0 peerDependenciesMeta: canvas: optional: true - jsesc@2.5.2: - resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} - engines: {node: '>=4'} - hasBin: true - - jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} engines: {node: '>=6'} hasBin: true @@ -3137,12 +3116,8 @@ packages: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} - lilconfig@2.1.0: - resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==} - engines: {node: '>=10'} - - lilconfig@3.1.2: - resolution: {integrity: sha512-eop+wDAvpItUys0FWkHIKeC9ybYrTGbU41U5K7+bttZZeohvnY7M9dZ5kB21GNWiFT2q1OoPTvncPCgSOVO5ow==} + lilconfig@3.1.3: + resolution: {integrity: sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==} engines: {node: '>=14'} lines-and-columns@1.2.4: @@ -3157,14 +3132,6 @@ packages: enquirer: optional: true - local-pkg@0.5.0: - resolution: {integrity: sha512-ok6z3qlYyCDS4ZEU27HaU6x/xZa9Whf8jD4ptH5UZTQYZVYeb9bnZ3ojVhiJNLiXK1Hfc0GNbLXcmZ5plLDDBg==} - engines: {node: '>=14'} - - locate-path@5.0.0: - resolution: {integrity: sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==} - engines: {node: '>=8'} - locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} @@ -3193,8 +3160,8 @@ packages: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true - loupe@2.3.7: - resolution: {integrity: sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA==} + loupe@3.1.2: + resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==} lower-case-first@2.0.2: resolution: {integrity: sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg==} @@ -3213,38 +3180,29 @@ packages: peerDependencies: react: ^16.5.1 || ^17.0.0 || ^18.0.0 - lucide-react@0.367.0: - resolution: {integrity: sha512-3FWiBaJiqMrx5a1sjH3CVdPqWnw/Z/PTVeeTDmOeILSs+8Ah+VhCd4FQMeHo6Z0WxHcm9piIOtilQwvceiCCKQ==} + lucide-react@0.469.0: + resolution: {integrity: sha512-28vvUnnKQ/dBwiCQtwJw7QauYnE7yd2Cyp4tTTJpvglX4EMpbflcdBgrgToX2j71B3YvugK/NH3BGUk+E/p/Fw==} peerDependencies: - react: ^16.5.1 || ^17.0.0 || ^18.0.0 + react: ^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0 lz-string@1.5.0: resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} hasBin: true - magic-string@0.30.10: - resolution: {integrity: sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==} - - magic-string@0.30.12: - resolution: {integrity: sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==} - - magicast@0.3.4: - resolution: {integrity: sha512-TyDF/Pn36bBji9rWKHlZe+PZb6Mx5V8IHCSxk7X4aljM4e/vyDvZZYwHewdVaqiA0nb3ghfHU/6AUpDxWoER2Q==} - - make-dir@4.0.0: - resolution: {integrity: sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==} - engines: {node: '>=10'} + magic-string@0.30.17: + resolution: {integrity: sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==} map-cache@0.2.2: resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==} engines: {node: '>=0.10.0'} + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + memoize-one@5.2.1: resolution: {integrity: sha512-zYiwtZUcYyXKo/np96AGZAckk+FWWsUdJ3cHGGmld7+AhvcWmQyGCYUh1hc4Q/pkOhb65dQR/pqCyK0cOaHz4Q==} - merge-stream@2.0.0: - resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} - merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -3274,10 +3232,6 @@ packages: resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} engines: {node: '>=6'} - mimic-fn@4.0.0: - resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} - engines: {node: '>=12'} - min-indent@1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} @@ -3300,15 +3254,9 @@ packages: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==} engines: {node: '>=16 || 14 >=14.17'} - mlly@1.7.1: - resolution: {integrity: sha512-rrVRZRELyQzrIUAVMHxP97kv+G786pHmOKzuFII8zDYahFBS7qnHh2AlYSl1GAHhaMPCz6/oHjVMcfFYgFYHgA==} - mout@1.2.4: resolution: {integrity: sha512-mZb9uOruMWgn/fw28DG4/yE3Kehfk1zKCLhuDU2O3vlKdnBBr4XaOCqVTflJ5aODavGUPqFHZgrFX3NJVuxGhQ==} - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -3318,8 +3266,8 @@ packages: mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} - nanoid@3.3.7: - resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==} + nanoid@3.3.8: + resolution: {integrity: sha512-WNLf5Sd8oZxOm+TzppcYk8gVOgP+l58xNy58D0nbUnOxOWRWvlcCV4kUF7ltmI6PsrLl/BgKEyS4mqsGChFN0w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true @@ -3329,6 +3277,10 @@ packages: no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==} + node-domexception@1.0.0: + resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==} + engines: {node: '>=10.5.0'} + node-fetch@2.7.0: resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==} engines: {node: 4.x || >=6.0.0} @@ -3338,14 +3290,15 @@ packages: encoding: optional: true + node-fetch@3.3.2: + resolution: {integrity: sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - node-releases@2.0.14: - resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} - - node-releases@2.0.18: - resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + node-releases@2.0.19: + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} normalize-path@2.1.1: resolution: {integrity: sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==} @@ -3359,18 +3312,14 @@ packages: resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==} engines: {node: '>=0.10.0'} - npm-run-path@5.3.0: - resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} - engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} - nullthrows@1.1.1: resolution: {integrity: sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==} numeral@2.0.6: resolution: {integrity: sha512-qaKRmtYPZ5qdw4jWJD6bxEf1FJEqllJrwxCLIm0sQU/A7v2/czigzOb+C2uSiFsa9lBUzeH7M1oK+Q+OLxL3kA==} - nwsapi@2.2.12: - resolution: {integrity: sha512-qXDmcVlZV4XRtKFzddidpfVP4oMSGhga+xdMc25mv8kaLUHtgzCDhUxkrN8exkGdTlLNaXj7CV3GtON7zuGZ+w==} + nwsapi@2.2.16: + resolution: {integrity: sha512-F1I/bimDpj3ncaNDhfyMWuFqmQDBwDB0Fogc2qpL3BWvkQteFD/8BzWuIRl83rq0DXfm8SGt/HFhLXZyljTXcQ==} object-assign@4.1.1: resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} @@ -3380,20 +3329,16 @@ packages: resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} engines: {node: '>= 6'} - object-inspect@1.13.2: - resolution: {integrity: sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==} - engines: {node: '>= 0.4'} - - object-is@1.1.6: - resolution: {integrity: sha512-F8cZ+KfGlSGi09lJT7/Nd6KJZ9ygtvYC0/UYYLI9nmQKLMnydpB9yvbv9K1uSkEu7FU9vYPmVwLg328tX+ot3Q==} + object-inspect@1.13.3: + resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} engines: {node: '>= 0.4'} object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} - object.assign@4.1.5: - resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} + object.assign@4.1.7: + resolution: {integrity: sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==} engines: {node: '>= 0.4'} object.entries@1.1.8: @@ -3408,12 +3353,8 @@ packages: resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} engines: {node: '>= 0.4'} - object.hasown@1.1.4: - resolution: {integrity: sha512-FZ9LZt9/RHzGySlBARE3VF+gE26TxR38SdmqOqliuTnl9wrKulaQs+4dee1V+Io8VfxqzAfHu6YuRgUy8OHoTg==} - engines: {node: '>= 0.4'} - - object.values@1.2.0: - resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} + object.values@1.2.1: + resolution: {integrity: sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==} engines: {node: '>= 0.4'} once@1.4.0: @@ -3423,16 +3364,8 @@ packages: resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} engines: {node: '>=6'} - onetime@6.0.0: - resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} - engines: {node: '>=12'} - - open@8.4.2: - resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} - engines: {node: '>=12'} - - optimism@0.18.0: - resolution: {integrity: sha512-tGn8+REwLRNFnb9WmcY5IfpOqeX2kpaYJ1s6Ae3mn12AeydLkR3j+jSCmVQFoXqU8D41PAJ1RG1rCRNWmNZVmQ==} + optimism@0.18.1: + resolution: {integrity: sha512-mLXNwWPa9dgFyDqkNi54sjDyNJ9/fTI6WGBLgnXku1vdKY/jovHfZT5r+aiVeFFLOz+foPNOm5YJ4mqgld2GBQ==} optionator@0.9.4: resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} @@ -3446,22 +3379,14 @@ packages: resolution: {integrity: sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==} engines: {node: '>=0.10.0'} - p-limit@2.3.0: - resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} - engines: {node: '>=6'} + own-keys@1.0.1: + resolution: {integrity: sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==} + engines: {node: '>= 0.4'} p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} - p-limit@5.0.0: - resolution: {integrity: sha512-/Eaoq+QyLSiXQ4lyYV23f14mZRQcXnxfHrN0vCai+ak9G0pp9iEQukIIZq5NccEvwRB8PUnZT0KsOoDCINS1qQ==} - engines: {node: '>=18'} - - p-locate@4.1.0: - resolution: {integrity: sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==} - engines: {node: '>=8'} - p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} @@ -3470,12 +3395,8 @@ packages: resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==} engines: {node: '>=10'} - p-try@2.2.0: - resolution: {integrity: sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==} - engines: {node: '>=6'} - - package-json-from-dist@1.0.0: - resolution: {integrity: sha512-dATvCeZN/8wQsGywez1mzHtTlP22H8OEfPrVMLNr4/eGa+ijtLn/6M5f0dY8UKNrC2O9UCU6SSoG3qRKnt7STw==} + package-json-from-dist@1.0.1: + resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==} param-case@3.0.4: resolution: {integrity: sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==} @@ -3492,8 +3413,8 @@ packages: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} - parse5@7.1.2: - resolution: {integrity: sha512-Czj1WaSVpaoj0wbhMzLmWD69anp2WH7FXMB9n1Sy8/ZFF9jolSQVMu1Ij5WIyGmcBmhk7EOndpO4mIpihVqAXw==} + parse5@7.2.1: + resolution: {integrity: sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==} pascal-case@3.1.2: resolution: {integrity: sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==} @@ -3513,10 +3434,6 @@ packages: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} - path-key@4.0.0: - resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==} - engines: {node: '>=12'} - path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} @@ -3539,11 +3456,9 @@ packages: pathe@1.1.2: resolution: {integrity: sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==} - pathval@1.1.1: - resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} - - picocolors@1.0.1: - resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + pathval@2.0.0: + resolution: {integrity: sha512-vE7JKRyES09KiunauX7nd2Q9/L7lhok4smP9RZTDeD4MVs72Dp2qNFVz39Nz5a0FVEW0BJR6C0DYrq6unoziZA==} + engines: {node: '>= 14.16'} picocolors@1.1.1: resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} @@ -3552,6 +3467,10 @@ packages: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} + picomatch@4.0.2: + resolution: {integrity: sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==} + engines: {node: '>=12'} + pify@2.3.0: resolution: {integrity: sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==} engines: {node: '>=0.10.0'} @@ -3560,9 +3479,6 @@ packages: resolution: {integrity: sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==} engines: {node: '>= 6'} - pkg-types@1.1.3: - resolution: {integrity: sha512-+JrgthZG6m3ckicaOB74TwQ+tBWsFl3qVQg7mN8ulwSOElJ7gBhKzj2VkCPnZ4NlF6kEquYU+RIYNVAvzd54UA==} - possible-typed-array-names@1.0.0: resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} engines: {node: '>= 0.4'} @@ -3591,25 +3507,21 @@ packages: ts-node: optional: true - postcss-nested@6.0.1: - resolution: {integrity: sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==} + postcss-nested@6.2.0: + resolution: {integrity: sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==} engines: {node: '>=12.0'} peerDependencies: postcss: ^8.2.14 - postcss-selector-parser@6.1.0: - resolution: {integrity: sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==} + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} engines: {node: '>=4'} postcss-value-parser@4.2.0: resolution: {integrity: sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==} - postcss@8.4.39: - resolution: {integrity: sha512-0vzE+lAiG7hZl1/9I8yzKLx3aR9Xbof3fBHKunvMfOCYAtMhrsnccJY2iTURb9EZd5+pLuiNV9/c/GZJOHsgIw==} - engines: {node: ^10 || ^12 || >=14} - - postcss@8.4.47: - resolution: {integrity: sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==} + postcss@8.5.1: + resolution: {integrity: sha512-6oz2beyjc5VMn/KV1pPw8fliQkhBXrVn1Z3TVyqZxU8kZpzEKhBdmCFqI6ZbmGtamQvQGuU1sgPTk8ZrXDD7jQ==} engines: {node: ^10 || ^12 || >=14} prelude-ls@1.2.1: @@ -3620,9 +3532,8 @@ packages: resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - pretty-format@29.7.0: - resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + process-nextick-args@2.0.1: + resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} promise@7.3.1: resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==} @@ -3653,8 +3564,8 @@ packages: peerDependencies: react: '>=16.13.1' - react-hot-toast@2.4.1: - resolution: {integrity: sha512-j8z+cQbWIM5LY37pR6uZR6D4LfseplqnuAO4co4u8917hBUvXlEqyP1ZzqVLcqoyUesZZv/ImreoCeHVDpE5pQ==} + react-hot-toast@2.5.1: + resolution: {integrity: sha512-54Gq1ZD1JbmAb4psp9bvFHjS7lje+8ubboUmvKZkCsQBLH6AOpZ9JemfRvIdHcfb9AZXRaFLrb3qUobGYDJhFQ==} engines: {node: '>=10'} peerDependencies: react: '>=16' @@ -3666,52 +3577,49 @@ packages: react-is@17.0.2: resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} - react-is@18.3.1: - resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==} - - react-refresh@0.14.2: - resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==} - engines: {node: '>=0.10.0'} - - react-remove-scroll-bar@2.3.6: - resolution: {integrity: sha512-DtSYaao4mBmX+HDo5YWYdBWQwYIQQshUV/dVxFxK+KM26Wjwp1gZ6rv6OC3oujI6Bfu6Xyg3TwK533AQutsn/g==} + react-remove-scroll-bar@2.3.8: + resolution: {integrity: sha512-9r+yi9+mgU33AKcj6IbT9oRCO78WriSj6t/cF8DWBZJ9aOGPOTEDvdUDz1FwKim7QXWwmHqtdHnRJfhAxEG46Q==} engines: {node: '>=10'} peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 peerDependenciesMeta: '@types/react': optional: true - react-remove-scroll@2.5.7: - resolution: {integrity: sha512-FnrTWO4L7/Bhhf3CYBNArEG/yROV0tKmTv7/3h9QCFvH6sndeFf1wPqOcbFVu5VAulS5dV1wGT3GZZ/1GawqiA==} + react-remove-scroll@2.6.2: + resolution: {integrity: sha512-KmONPx5fnlXYJQqC62Q+lwIeAk64ws/cUw6omIumRzMRPqgnYqhSSti99nbj0Ry13bv7dF+BKn7NB+OqkdZGTw==} engines: {node: '>=10'} peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true - react-router-dom@6.27.0: - resolution: {integrity: sha512-+bvtFWMC0DgAFrfKXKG9Fc+BcXWRUO1aJIihbB79xaeq0v5UzfvnM5houGUm1Y461WVRcgAQ+Clh5rdb1eCx4g==} - engines: {node: '>=14.0.0'} + react-router-dom@7.1.2: + resolution: {integrity: sha512-kE7JdrDfeWO/2d6RPucLmqp2UL8Isv1VWtI5MQyYNA99KtncqxWDL6550+0rH4fboJKJbXRcyjRnIRT/gkxTcA==} + engines: {node: '>=20.0.0'} peerDependencies: - react: '>=16.8' - react-dom: '>=16.8' + react: '>=18' + react-dom: '>=18' - react-router@6.27.0: - resolution: {integrity: sha512-YA+HGZXz4jaAkVoYBE98VQl+nVzI+cVI2Oj/06F5ZM+0u3TgedN9Y9kmMRo2mnkSK2nCpNQn0DVob4HCsY/WLw==} - engines: {node: '>=14.0.0'} + react-router@7.1.2: + resolution: {integrity: sha512-KeallSO30KLpIe/ZZqfk6pCJ1c+5JhMxl3SCS3Zx1LgaGuQbgLDmjuNi6KZ5LnAV9sWjbmBWGRw8Um/Pw6BExg==} + engines: {node: '>=20.0.0'} peerDependencies: - react: '>=16.8' + react: '>=18' + react-dom: '>=18' + peerDependenciesMeta: + react-dom: + optional: true - react-style-singleton@2.2.1: - resolution: {integrity: sha512-ZWj0fHEMyWkHzKYUr2Bs/4zU6XLmq9HsgBURm7g5pAVfyn49DgUiNgY2d4lXRlYSiCif9YBGpQleewkcqddc7g==} + react-style-singleton@2.2.3: + resolution: {integrity: sha512-b6jSvxvVnyptAiLjbkWLE/lOnR4lfTtDAl+eUC7RZy+QQWc6wRzIV2CE6xBuMmDxc2qIihtDCZD5NPOFl7fRBQ==} engines: {node: '>=10'} peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true @@ -3721,11 +3629,11 @@ packages: peerDependencies: react: ^16.0.0 || ^17.0.0 || ^18.0.0 - react-virtualized-auto-sizer@1.0.24: - resolution: {integrity: sha512-3kCn7N9NEb3FlvJrSHWGQ4iVl+ydQObq2fHMn12i5wbtm74zHOPhz/i64OL3c1S1vi9i2GXtZqNqUJTQ+BnNfg==} + react-virtualized-auto-sizer@1.0.25: + resolution: {integrity: sha512-YHsksEGDfsHbHuaBVDYwJmcktblcHGafz4ZVuYPQYuSHMUGjpwmUCrAOcvMSGMwwk1eFWj1M/1GwYpNPuyhaBg==} peerDependencies: - react: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0 - react-dom: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0 + react: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0 || ^19.0.0 react-window-infinite-loader@1.0.9: resolution: {integrity: sha512-5Hg89IdU4Vrp0RT8kZYKeTIxWZYhNkVXeI1HbKo01Vm/Z7qztDvXljwx16sMzsa9yapRJQW3ODZfMUw38SOWHw==} @@ -3734,12 +3642,12 @@ packages: react: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0 react-dom: ^15.3.0 || ^16.0.0-alpha || ^17.0.0 || ^18.0.0 - react-window@1.8.10: - resolution: {integrity: sha512-Y0Cx+dnU6NLa5/EvoHukUD0BklJ8qITCtVEPY1C/nL8wwoZ0b5aEw8Ff1dOVHw7fCzMt55XfJDd8S8W8LCaUCg==} + react-window@1.8.11: + resolution: {integrity: sha512-+SRbUVT2scadgFSWx+R1P754xHPEqvcfSfVX10QYg6POOz+WNgkN48pS+BtZNIMGiL1HYrSEiCkwsMS15QogEQ==} engines: {node: '>8.0.0'} peerDependencies: - react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 - react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 + react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 react@18.3.1: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} @@ -3748,6 +3656,9 @@ packages: read-cache@1.0.0: resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + readable-stream@2.3.8: + resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} + readable-stream@3.6.2: resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} engines: {node: '>= 6'} @@ -3772,15 +3683,15 @@ packages: resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} engines: {node: '>=8'} - reflect.getprototypeof@1.0.6: - resolution: {integrity: sha512-fmfw4XgoDke3kdI6h4xcUz1dG8uaiv5q9gcEwLS4Pnth2kxT+GZ7YehS1JTMGBQmtV7Y4GFGbs2re2NqhdozUg==} + reflect.getprototypeof@1.0.10: + resolution: {integrity: sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==} engines: {node: '>= 0.4'} regenerator-runtime@0.14.1: resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==} - regexp.prototype.flags@1.5.2: - resolution: {integrity: sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==} + regexp.prototype.flags@1.5.4: + resolution: {integrity: sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==} engines: {node: '>= 0.4'} rehackt@0.1.0: @@ -3810,9 +3721,6 @@ packages: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} - require-main-filename@2.0.0: - resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} - resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} @@ -3821,16 +3729,17 @@ packages: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + resolve@1.22.10: + resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} + engines: {node: '>= 0.4'} hasBin: true resolve@2.0.0-next.5: resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} hasBin: true - response-iterator@0.2.6: - resolution: {integrity: sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==} + response-iterator@0.2.16: + resolution: {integrity: sha512-QmLnoE4cJXjCoYjEtYu5zmBMs/1ytHU1RhbBm9/DUKTR641k46qCinzPiOzJJk9r71rxYbuMwM+dExPxlFTrzA==} engines: {node: '>=0.8'} restore-cursor@3.1.0: @@ -3849,23 +3758,13 @@ packages: deprecated: Rimraf versions prior to v4 are no longer supported hasBin: true - rollup-plugin-visualizer@5.12.0: - resolution: {integrity: sha512-8/NU9jXcHRs7Nnj07PF2o4gjxmm9lXIrZ8r175bT9dK8qoLlvKTwRMArRCMgpMGlq8CTLugRvEmyMeMXIU2pNQ==} - engines: {node: '>=14'} - hasBin: true - peerDependencies: - rollup: 2.x || 3.x || 4.x - peerDependenciesMeta: - rollup: - optional: true - - rollup@4.24.0: - resolution: {integrity: sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==} + rollup@4.30.1: + resolution: {integrity: sha512-mlJ4glW020fPuLi7DkM/lN97mYEZGWeqBnrljzN0gs7GLctqX3lNWxKQ7Gl712UAX+6fog/L3jh4gb7R6aVi3w==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - rrweb-cssom@0.7.1: - resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} + rrweb-cssom@0.8.0: + resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} run-async@2.4.1: resolution: {integrity: sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==} @@ -3877,15 +3776,22 @@ packages: rxjs@7.8.1: resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} - safe-array-concat@1.1.2: - resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + safe-array-concat@1.1.3: + resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} engines: {node: '>=0.4'} + safe-buffer@5.1.2: + resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} + safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} - safe-regex-test@1.0.3: - resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + safe-push-apply@1.0.0: + resolution: {integrity: sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==} + engines: {node: '>= 0.4'} + + safe-regex-test@1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} engines: {node: '>= 0.4'} safer-buffer@2.1.2: @@ -3905,16 +3811,16 @@ packages: resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} hasBin: true - semver@7.6.2: - resolution: {integrity: sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==} + semver@7.6.3: + resolution: {integrity: sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==} engines: {node: '>=10'} hasBin: true sentence-case@3.0.4: resolution: {integrity: sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==} - set-blocking@2.0.0: - resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==} + set-cookie-parser@2.7.1: + resolution: {integrity: sha512-IOc8uWeOZgnb3ptbCURJWNjWUPcO3ZnTTdzsurqERrP6nPyv+paC55vJM0LpOlT2ne+Ix+9+CRG1MNLlyZ4GjQ==} set-function-length@1.2.2: resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} @@ -3924,6 +3830,10 @@ packages: resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} engines: {node: '>= 0.4'} + set-proto@1.0.0: + resolution: {integrity: sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==} + engines: {node: '>= 0.4'} + setimmediate@1.0.5: resolution: {integrity: sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==} @@ -3935,11 +3845,24 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - shell-quote@1.8.1: - resolution: {integrity: sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==} + shell-quote@1.8.2: + resolution: {integrity: sha512-AzqKpGKjrj7EM6rKVQEPpB288oCfnrEIuyoT9cyF4nmGa7V8Zk6f7RRqYisX8X9m+Q7bd632aZW4ky7EhbQztA==} + engines: {node: '>= 0.4'} + + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} - side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} engines: {node: '>= 0.4'} siginfo@2.0.0: @@ -3970,30 +3893,18 @@ packages: snake-case@3.0.4: resolution: {integrity: sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==} - source-map-js@1.2.0: - resolution: {integrity: sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==} - engines: {node: '>=0.10.0'} - source-map-js@1.2.1: resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} engines: {node: '>=0.10.0'} - source-map@0.7.4: - resolution: {integrity: sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==} - engines: {node: '>= 8'} - sponge-case@1.0.1: resolution: {integrity: sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA==} stackback@0.0.2: resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} - std-env@3.7.0: - resolution: {integrity: sha512-JPbdCEQLj1w5GilpiHAx3qJvFndqybBysA3qUOnznweH4QbNYUsW/ea8QzSrnh0vNsezMMw5bcVool8lM0gwzg==} - - stop-iteration-iterator@1.0.0: - resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==} - engines: {node: '>= 0.4'} + std-env@3.8.0: + resolution: {integrity: sha512-Bc3YwwCB+OzldMxOXJIIvC6cPRWr/LxOp48CdQTOkPyk/t4JWWJbrilwBd7RJzKV8QW7tJkcgAmeuLLJugl5/w==} streamsearch@1.1.0: resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==} @@ -4010,24 +3921,32 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} - string.prototype.includes@2.0.0: - resolution: {integrity: sha512-E34CkBgyeqNDcrbU76cDjL5JLcVrtSdYq0MEh/B10r17pRP4ciHLwTgnuLV8Ay6cgEMLkcBkFCKyFZ43YldYzg==} + string.prototype.includes@2.0.1: + resolution: {integrity: sha512-o7+c9bW6zpAdJHTtujeePODAhkuicdAryFsfVKwA+wGw89wJ4GTY484WTucM9hLtDEOpOvI+aHnzqnC5lHp4Rg==} + engines: {node: '>= 0.4'} - string.prototype.matchall@4.0.11: - resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} + string.prototype.matchall@4.0.12: + resolution: {integrity: sha512-6CC9uyBL+/48dYizRf7H7VAYCMCNTBeM78x/VTUe9bFEaxBepPJDa1Ow99LqI/1yF7kuy7Q3cQsYMrcjGUcskA==} engines: {node: '>= 0.4'} - string.prototype.trim@1.2.9: - resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + string.prototype.repeat@1.0.0: + resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} + + string.prototype.trim@1.2.10: + resolution: {integrity: sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==} engines: {node: '>= 0.4'} - string.prototype.trimend@1.0.8: - resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} + string.prototype.trimend@1.0.9: + resolution: {integrity: sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==} + engines: {node: '>= 0.4'} string.prototype.trimstart@1.0.8: resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} engines: {node: '>= 0.4'} + string_decoder@1.1.1: + resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} + string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} @@ -4043,10 +3962,6 @@ packages: resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} - strip-final-newline@3.0.0: - resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} - engines: {node: '>=12'} - strip-indent@3.0.0: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} engines: {node: '>=8'} @@ -4055,18 +3970,11 @@ packages: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} - strip-literal@2.1.0: - resolution: {integrity: sha512-Op+UycaUt/8FbN/Z2TWPBLge3jWrP3xj10f3fnYxf052bKuS3EKs1ZQcVGjnEMdsNVAM+plXRdmjrZ/KgG3Skw==} - sucrase@3.35.0: resolution: {integrity: sha512-8EbVDiu9iN/nESwxeSxDKe0dunta1GOlHufmSSXxMD2z2/tMZpDMpvXQGsc+ajGo8y2uYUmixaSRUc/QPoQ0GA==} engines: {node: '>=16 || 14 >=14.17'} hasBin: true - supports-color@5.5.0: - resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} - engines: {node: '>=4'} - supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} @@ -4088,18 +3996,21 @@ packages: symbol-tree@3.2.4: resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - tailwind-merge@2.5.4: - resolution: {integrity: sha512-0q8cfZHMu9nuYP/b5Shb7Y7Sh1B7Nnl5GqNr1U+n2p6+mybvRtayrQ+0042Z5byvTA8ihjlP8Odo8/VnHbZu4Q==} + sync-fetch@0.6.0-2: + resolution: {integrity: sha512-c7AfkZ9udatCuAy9RSfiGPpeOKKUAUK5e1cXadLOGUjasdxqYqAK0jTNkM/FSEyJ3a5Ra27j/tw/PS0qLmaF/A==} + engines: {node: '>=18'} + + tabbable@6.2.0: + resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==} - tailwindcss@3.4.14: - resolution: {integrity: sha512-IcSvOcTRcUtQQ7ILQL5quRDg7Xs93PdJEk1ZLbhhvJc7uj/OAhYOnruEiwnGgBvUtaUAJ8/mhSw1o8L2jCiENA==} + tailwind-merge@2.6.0: + resolution: {integrity: sha512-P+Vu1qXfzediirmHOC3xKGAYeZtPcV9g76X+xg2FD4tYgR71ewMA35Y3sCz3zhiN/dwefRpJX0yBcgwi1fXNQA==} + + tailwindcss@3.4.17: + resolution: {integrity: sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==} engines: {node: '>=14.0.0'} hasBin: true - test-exclude@6.0.0: - resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} - engines: {node: '>=8'} - text-table@0.2.0: resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} @@ -4113,41 +4024,48 @@ packages: through@2.3.8: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} - tinybench@2.8.0: - resolution: {integrity: sha512-1/eK7zUnIklz4JUUlL+658n58XO2hHLQfSk1Zf2LKieUjxidN16eKFEoDEfjHc3ohofSSqK3X5yO6VGb6iW8Lw==} + timeout-signal@2.0.0: + resolution: {integrity: sha512-YBGpG4bWsHoPvofT6y/5iqulfXIiIErl5B0LdtHT1mGXDFTAhhRrbUpTvBgYbovr+3cKblya2WAOcpoy90XguA==} + engines: {node: '>=16'} + + tinybench@2.9.0: + resolution: {integrity: sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==} + + tinyexec@0.3.2: + resolution: {integrity: sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==} + + tinypool@1.0.2: + resolution: {integrity: sha512-al6n+QEANGFOMf/dmUMsuS5/r9B06uwlyNjZZql/zv8J7ybHCgoihBNORZCY2mzUuAnomQa2JdhyHKzZxPCrFA==} + engines: {node: ^18.0.0 || >=20.0.0} - tinypool@0.8.4: - resolution: {integrity: sha512-i11VH5gS6IFeLY3gMBQ00/MmLncVP7JLXOw1vlgkytLmJK7QnEr7NXf0LBdxfmNPAeyetukOk0bOYrJrFGjYJQ==} + tinyrainbow@1.2.0: + resolution: {integrity: sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==} engines: {node: '>=14.0.0'} - tinyspy@2.2.1: - resolution: {integrity: sha512-KYad6Vy5VDWV4GH3fjpseMQ/XU2BhIYP7Vzd0LG44qRWm/Yt2WCOTicFdvmgo6gWaqooMQCawTtILVQJupKu7A==} + tinyspy@3.0.2: + resolution: {integrity: sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==} engines: {node: '>=14.0.0'} title-case@3.0.3: resolution: {integrity: sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==} - tldts-core@6.1.53: - resolution: {integrity: sha512-IleS872aGdTB/UtocD2dSZBnQi/nqMIZxxezVgfcKKjw6+G2hJGzFw9buIDJO2MVJyEJe3rCAdyMTl2yvGMMrQ==} + tldts-core@6.1.72: + resolution: {integrity: sha512-FW3H9aCaGTJ8l8RVCR3EX8GxsxDbQXuwetwwgXA2chYdsX+NY1ytCBl61narjjehWmCw92tc1AxlcY3668CU8g==} - tldts@6.1.53: - resolution: {integrity: sha512-4uCStuOjPFaY2/LUjTSwdnJTC82W/gvSFL6FoTC9ehNOHboA9cyO3wX1erh2yGofVls37OdXr5sQLEfL5hS1TA==} + tldts@6.1.72: + resolution: {integrity: sha512-QNtgIqSUb9o2CoUjX9T5TwaIvUUJFU1+12PJkgt42DFV2yf9J6549yTF2uGloQsJ/JOC8X+gIB81ind97hRiIQ==} hasBin: true tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} - to-fast-properties@2.0.0: - resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} - engines: {node: '>=4'} - to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} - tough-cookie@5.0.0: - resolution: {integrity: sha512-FRKsF7cz96xIIeMZ82ehjC3xW2E+O2+v11udrDYewUbszngYhsGa8z6YUMMzO9QJZzzyd0nGGXnML/TReX6W8Q==} + tough-cookie@5.1.0: + resolution: {integrity: sha512-rvZUv+7MoBYTiDmFPBrhL7Ujx9Sk+q9wwm22x8c8T5IJaR+Wsyc7TNxbVxo84kZoRJZZMazowFLqpankBEQrGg==} engines: {node: '>=16'} tr46@0.0.3: @@ -4157,12 +4075,18 @@ packages: resolution: {integrity: sha512-tk2G5R2KRwBd+ZN0zaEXpmzdKyOYksXwywulIX95MBODjSzMIuQnQ3m8JxgbhnL1LeVo7lqQKsYa1O3Htl7K5g==} engines: {node: '>=18'} - ts-api-utils@1.3.0: - resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==} + ts-api-utils@1.4.3: + resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} engines: {node: '>=16'} peerDependencies: typescript: '>=4.2.0' + ts-api-utils@2.0.0: + resolution: {integrity: sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==} + engines: {node: '>=18.12'} + peerDependencies: + typescript: '>=4.8.4' + ts-interface-checker@0.1.13: resolution: {integrity: sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA==} @@ -4170,11 +4094,11 @@ packages: resolution: {integrity: sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==} engines: {node: '>=8'} - ts-log@2.2.5: - resolution: {integrity: sha512-PGcnJoTBnVGy6yYNFxWVNkdcAuAMstvutN9MgDJIV6L0oG8fB+ZNNy1T+wJzah8RPGor1mZuPQkVfXNDpy9eHA==} + ts-log@2.2.7: + resolution: {integrity: sha512-320x5Ggei84AxzlXp91QkIGSw5wgaLT6GeAH0KsqDmRZdVWW2OiSeVvElVoatk3f7nicwXlElXsoFkARiGE2yg==} - tsconfck@3.1.1: - resolution: {integrity: sha512-00eoI6WY57SvZEVjm13stEVE90VkEdJAFGgpFLTsZbJyW/LwFQ7uQxJHWpZ2hzSWgCPKc9AnBnNP+0X7o3hAmQ==} + tsconfck@3.1.4: + resolution: {integrity: sha512-kdqWFGVJqe+KGYvlSO9NIaWn9jT1Ny4oKVzAJsKii5eoE9snzTJzL4+MMVOMn+fikWGFmKEylcXL710V/kIPJQ==} engines: {node: ^18 || >=20} hasBin: true peerDependencies: @@ -4189,14 +4113,16 @@ packages: tslib@2.6.3: resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==} + tslib@2.8.1: + resolution: {integrity: sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==} + + turbo-stream@2.4.0: + resolution: {integrity: sha512-FHncC10WpBd2eOmGwpmQsWLDoK4cqsA/UT/GqNoaKOQnT8uzhtCbg3EoUDMvqpOSAI0S26mr0rkjzbOO6S3v1g==} + type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - type-detect@4.0.8: - resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} - engines: {node: '>=4'} - type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} @@ -4205,35 +4131,41 @@ packages: resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==} engines: {node: '>=10'} - typed-array-buffer@1.0.2: - resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + typed-array-buffer@1.0.3: + resolution: {integrity: sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==} engines: {node: '>= 0.4'} - typed-array-byte-length@1.0.1: - resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + typed-array-byte-length@1.0.3: + resolution: {integrity: sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==} engines: {node: '>= 0.4'} - typed-array-byte-offset@1.0.2: - resolution: {integrity: sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==} + typed-array-byte-offset@1.0.4: + resolution: {integrity: sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==} engines: {node: '>= 0.4'} - typed-array-length@1.0.6: - resolution: {integrity: sha512-/OxDN6OtAk5KBpGb28T+HZc2M+ADtvRxXrKKbUwtsLgdoxgX13hyy7ek6bFRl5+aBs2yZzB0c4CnQfAtVypW/g==} + typed-array-length@1.0.7: + resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} engines: {node: '>= 0.4'} + typescript-eslint@8.20.0: + resolution: {integrity: sha512-Kxz2QRFsgbWj6Xcftlw3Dd154b3cEPFqQC+qMZrMypSijPd4UanKKvoKDrJ4o8AIfZFKAF+7sMaEIR8mTElozA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.8.0' + typescript@5.5.4: resolution: {integrity: sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q==} engines: {node: '>=14.17'} hasBin: true - ua-parser-js@1.0.38: - resolution: {integrity: sha512-Aq5ppTOfvrCMgAPneW1HfWj66Xi7XL+/mIy996R1/CLS/rcyJQm6QZdsKrUeivDFQ+Oc9Wyuwor8Ze8peEoUoQ==} - - ufo@1.5.3: - resolution: {integrity: sha512-Y7HYmWaFwPUmkoQCUIAYpKqkOf+SbVj/2fJJZ4RJMCfZp0rTGwRbzQD+HghfnhKOjL9E01okqz+ncJskGYfBNw==} + ua-parser-js@1.0.40: + resolution: {integrity: sha512-z6PJ8Lml+v3ichVojCiB8toQJBuwR42ySM4ezjXIqXK3M0HczmKQ3LF4rhU55PfD99KEEXQG6yb7iOMyvYuHew==} + hasBin: true - unbox-primitive@1.0.2: - resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} + unbox-primitive@1.1.0: + resolution: {integrity: sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==} + engines: {node: '>= 0.4'} unc-path-regex@0.1.2: resolution: {integrity: sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==} @@ -4244,21 +4176,15 @@ packages: peerDependencies: react: '>=16.14.0' - undici-types@6.19.8: - resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + undici-types@6.20.0: + resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} unixify@1.0.0: resolution: {integrity: sha512-6bc58dPYhCMHHuwxldQxO3RRNZ4eCogZ/st++0+fcC1nr0jiGUtAdBJ2qzmLQWSxbtz42pWt4QQMiZ9HvZf5cg==} engines: {node: '>=0.10.0'} - update-browserslist-db@1.1.0: - resolution: {integrity: sha512-EdRAaAyk2cUE1wOf2DkEhzxqOQvFOoRJFNS6NeyJ01Gp2beMRpBAINjM2iDXE3KCuKhwnvHIQCJm6ThL2Z+HzQ==} - hasBin: true - peerDependencies: - browserslist: '>= 4.21.0' - - update-browserslist-db@1.1.1: - resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} + update-browserslist-db@1.1.2: + resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -4275,22 +4201,22 @@ packages: urlpattern-polyfill@10.0.0: resolution: {integrity: sha512-H/A06tKD7sS1O1X2SshBVeA5FLycRpjqiBeqGKmBwBDBy28EnRjORxTNe269KSSr5un5qyWi1iL61wLxpd+ZOg==} - use-callback-ref@1.3.2: - resolution: {integrity: sha512-elOQwe6Q8gqZgDA8mrh44qRTQqpIHDcZ3hXTLjBe1i4ph8XpNJnO+aQf3NaG+lriLopI4HMx9VjQLfPQ6vhnoA==} + use-callback-ref@1.3.3: + resolution: {integrity: sha512-jQL3lRnocaFtu3V00JToYz/4QkNWswxijDaCVNZRiRTO3HQDLsdu1ZtmIUvV4yPp+rvWm5j0y0TG/S61cuijTg==} engines: {node: '>=10'} peerDependencies: - '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true - use-sidecar@1.1.2: - resolution: {integrity: sha512-epTbsLuzZ7lPClpz2TyryBfztm7m+28DlEv2ZCQ3MDr5ssiwyOwGH/e5F9CkfWjJ1t4clvI58yF822/GUkjjhw==} + use-sidecar@1.1.3: + resolution: {integrity: sha512-Fedw0aZvkhynoPYlA5WXrMCAMm+nSWdZt6lzJQ7Ok8S6Q+VsHmHpRWndVRJ8Be0ZbkfPc5LRYH+5XrzXcEeLRQ==} engines: {node: '>=10'} peerDependencies: - '@types/react': ^16.9.0 || ^17.0.0 || ^18.0.0 - react: ^16.8.0 || ^17.0.0 || ^18.0.0 + '@types/react': '*' + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 || ^19.0.0-rc peerDependenciesMeta: '@types/react': optional: true @@ -4308,26 +4234,26 @@ packages: resolution: {integrity: sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==} engines: {node: '>=12'} - vite-node@1.6.0: - resolution: {integrity: sha512-de6HJgzC+TFzOu0NTC4RAIsyf/DY/ibWDYQUcuEA84EMHhcefTUGkjFHKKEJhQN4A+6I0u++kr3l36ZF2d7XRw==} + vite-node@2.1.8: + resolution: {integrity: sha512-uPAwSr57kYjAUux+8E2j0q0Fxpn8M9VoyfGiRI8Kfktz9NcYMCenwY5RnZxnF1WTu3TGiYipirIzacLL3VVGFg==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true - vite-plugin-svgr@4.2.0: - resolution: {integrity: sha512-SC7+FfVtNQk7So0XMjrrtLAbEC8qjFPifyD7+fs/E6aaNdVde6umlVVh0QuwDLdOMu7vp5RiGFsB70nj5yo0XA==} + vite-plugin-svgr@4.3.0: + resolution: {integrity: sha512-Jy9qLB2/PyWklpYy0xk0UU3TlU0t2UMpJXZvf+hWII1lAmRHrOUKi11Uw8N3rxoNk7atZNYO3pR3vI1f7oi+6w==} peerDependencies: - vite: ^2.6.0 || 3 || 4 || 5 + vite: '>=2.6.0' - vite-tsconfig-paths@5.0.1: - resolution: {integrity: sha512-yqwv+LstU7NwPeNqajZzLEBVpUFU6Dugtb2P84FXuvaoYA+/70l9MHE+GYfYAycVyPSDYZ7mjOFuYBRqlEpTig==} + vite-tsconfig-paths@5.1.4: + resolution: {integrity: sha512-cYj0LRuLV2c2sMqhqhGpaO3LretdtMn/BVX4cPLanIZuwwrkVl+lK84E/miEXkCHWXuq65rhNN4rXsBcOB3S4w==} peerDependencies: vite: '*' peerDependenciesMeta: vite: optional: true - vite@5.4.9: - resolution: {integrity: sha512-20OVpJHh0PAM0oSOELa5GaZNWeDjcAvQjGXy2Uyr+Tp+/D2/Hdz6NLgpJLsarPTA2QJ6v8mX2P1ZfbsSKvdMkg==} + vite@5.4.11: + resolution: {integrity: sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: @@ -4357,15 +4283,15 @@ packages: terser: optional: true - vitest@1.6.0: - resolution: {integrity: sha512-H5r/dN06swuFnzNFhq/dnz37bPXnq8xB2xB5JOVk8K09rUtoeNN+LHWkoQ0A/i3hvbUKKcCei9KpbxqHMLhLLA==} + vitest@2.1.8: + resolution: {integrity: sha512-1vBKTZskHw/aosXqQUlVWWlGUxSJR8YtiyZDJAFeW2kPAeX6S3Sool0mjspO+kXLuxVWlEDDowBAeqeAQefqLQ==} engines: {node: ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@edge-runtime/vm': '*' '@types/node': ^18.0.0 || >=20.0.0 - '@vitest/browser': 1.6.0 - '@vitest/ui': 1.6.0 + '@vitest/browser': 2.1.8 + '@vitest/ui': 2.1.8 happy-dom: '*' jsdom: '*' peerDependenciesMeta: @@ -4392,6 +4318,10 @@ packages: wcwidth@1.0.1: resolution: {integrity: sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==} + web-streams-polyfill@3.3.3: + resolution: {integrity: sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==} + engines: {node: '>= 8'} + webidl-conversions@3.0.1: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} @@ -4407,29 +4337,27 @@ packages: resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} engines: {node: '>=18'} - whatwg-url@14.0.0: - resolution: {integrity: sha512-1lfMEm2IEr7RIV+f4lUNPOqfFL+pO+Xw3fJSqmjX9AbXcXcYOkCe1P6+9VBZB6n94af16NfZf+sSk0JCBZC9aw==} + whatwg-url@14.1.0: + resolution: {integrity: sha512-jlf/foYIKywAt3x/XWKZ/3rz8OSJPiWktjmk891alJUEjiVxKX9LEO92qH3hv4aJ0mN3MWPvGMCy8jQi95xK4w==} engines: {node: '>=18'} whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - which-boxed-primitive@1.0.2: - resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + which-boxed-primitive@1.1.1: + resolution: {integrity: sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==} + engines: {node: '>= 0.4'} - which-builtin-type@1.1.3: - resolution: {integrity: sha512-YmjsSMDBYsM1CaFiayOVT06+KJeXf0o5M/CAd4o1lTadFAtacTUM49zoYxr/oroopFDfhvN6iEcBxUyc3gvKmw==} + which-builtin-type@1.2.1: + resolution: {integrity: sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==} engines: {node: '>= 0.4'} which-collection@1.0.2: resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} engines: {node: '>= 0.4'} - which-module@2.0.1: - resolution: {integrity: sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==} - - which-typed-array@1.1.15: - resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==} + which-typed-array@1.1.18: + resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==} engines: {node: '>= 0.4'} which@2.0.2: @@ -4480,9 +4408,6 @@ packages: xmlchars@2.2.0: resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - y18n@4.0.3: - resolution: {integrity: sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==} - y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} @@ -4493,23 +4418,15 @@ packages: yaml-ast-parser@0.0.43: resolution: {integrity: sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==} - yaml@2.4.5: - resolution: {integrity: sha512-aBx2bnqDzVOyNKfsysjA2ms5ZlnjSAW2eG3/L5G/CSujfjLJTJsEw1bGw8kCf04KodQWk1pxlGnZ56CRxiawmg==} + yaml@2.7.0: + resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} engines: {node: '>= 14'} hasBin: true - yargs-parser@18.1.3: - resolution: {integrity: sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==} - engines: {node: '>=6'} - yargs-parser@21.1.1: resolution: {integrity: sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==} engines: {node: '>=12'} - yargs@15.4.1: - resolution: {integrity: sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==} - engines: {node: '>=8'} - yargs@17.7.2: resolution: {integrity: sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==} engines: {node: '>=12'} @@ -4518,10 +4435,6 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} - yocto-queue@1.1.1: - resolution: {integrity: sha512-b4JR1PFR10y1mKjhHY9LaGo6tmrgjit7hxVIeAmyMw3jegXR4dhYqLaQF5zMXZxY7tLpMyJeLjr1C4rLmkVe8g==} - engines: {node: '>=12.20'} - zen-observable-ts@1.2.5: resolution: {integrity: sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==} @@ -4530,66 +4443,42 @@ packages: snapshots: - '@adobe/css-tools@4.4.0': {} + '@adobe/css-tools@4.4.1': {} '@alloc/quick-lru@5.2.0': {} '@ampproject/remapping@2.3.0': dependencies: - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 - '@apollo/client@3.11.10(@types/react@18.3.11)(graphql-ws@5.16.0(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.9.0) - '@wry/caches': 1.0.1 - '@wry/equality': 0.5.7 - '@wry/trie': 0.5.0 - graphql: 16.9.0 - graphql-tag: 2.12.6(graphql@16.9.0) - hoist-non-react-statics: 3.3.2 - optimism: 0.18.0 - prop-types: 15.8.1 - rehackt: 0.1.0(@types/react@18.3.11)(react@18.3.1) - response-iterator: 0.2.6 - symbol-observable: 4.0.0 - ts-invariant: 0.10.3 - tslib: 2.6.3 - zen-observable-ts: 1.2.5 - optionalDependencies: - graphql-ws: 5.16.0(graphql@16.9.0) - react: 18.3.1 - react-dom: 18.3.1(react@18.3.1) - transitivePeerDependencies: - - '@types/react' - - '@apollo/client@3.11.8(@types/react@18.3.11)(graphql-ws@5.16.0(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@apollo/client@3.12.6(@types/react@18.3.18)(graphql-ws@5.16.2(graphql@16.10.0))(graphql@16.10.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.9.0) + '@graphql-typed-document-node/core': 3.2.0(graphql@16.10.0) '@wry/caches': 1.0.1 '@wry/equality': 0.5.7 '@wry/trie': 0.5.0 - graphql: 16.9.0 - graphql-tag: 2.12.6(graphql@16.9.0) + graphql: 16.10.0 + graphql-tag: 2.12.6(graphql@16.10.0) hoist-non-react-statics: 3.3.2 - optimism: 0.18.0 + optimism: 0.18.1 prop-types: 15.8.1 - rehackt: 0.1.0(@types/react@18.3.11)(react@18.3.1) - response-iterator: 0.2.6 + rehackt: 0.1.0(@types/react@18.3.18)(react@18.3.1) + response-iterator: 0.2.16 symbol-observable: 4.0.0 ts-invariant: 0.10.3 - tslib: 2.6.3 + tslib: 2.8.1 zen-observable-ts: 1.2.5 optionalDependencies: - graphql-ws: 5.16.0(graphql@16.9.0) + graphql-ws: 5.16.2(graphql@16.10.0) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) transitivePeerDependencies: - '@types/react' - '@apollo/react-testing@4.0.0(@types/react@18.3.11)(graphql-ws@5.16.0(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@apollo/react-testing@4.0.0(@types/react@18.3.18)(graphql-ws@5.16.2(graphql@16.10.0))(graphql@16.10.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@apollo/client': 3.11.10(@types/react@18.3.11)(graphql-ws@5.16.0(graphql@16.9.0))(graphql@16.9.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@apollo/client': 3.12.6(@types/react@18.3.18)(graphql-ws@5.16.2(graphql@16.10.0))(graphql@16.10.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) transitivePeerDependencies: - '@types/react' - graphql @@ -4598,518 +4487,383 @@ snapshots: - react-dom - subscriptions-transport-ws - '@ardatan/relay-compiler@12.0.0(graphql@16.9.0)': + '@ardatan/relay-compiler@12.0.1(@babel/core@7.26.0)(graphql@16.10.0)': dependencies: - '@babel/core': 7.25.8 - '@babel/generator': 7.25.7 - '@babel/parser': 7.25.8 - '@babel/runtime': 7.24.7 - '@babel/traverse': 7.25.7 - '@babel/types': 7.25.8 - babel-preset-fbjs: 3.4.0(@babel/core@7.25.8) + '@babel/generator': 7.26.5 + '@babel/parser': 7.26.5 + '@babel/runtime': 7.26.0 + babel-preset-fbjs: 3.4.0(@babel/core@7.26.0) chalk: 4.1.2 fb-watchman: 2.0.2 fbjs: 3.0.5 - glob: 7.2.3 - graphql: 16.9.0 + graphql: 16.10.0 immutable: 3.7.6 invariant: 2.2.4 nullthrows: 1.1.1 relay-runtime: 12.0.0 signedsource: 1.0.0 - yargs: 15.4.1 transitivePeerDependencies: + - '@babel/core' - encoding - supports-color - '@ardatan/sync-fetch@0.0.1': - dependencies: - node-fetch: 2.7.0 - transitivePeerDependencies: - - encoding - - '@babel/code-frame@7.24.7': + '@asamuzakjp/css-color@2.8.3': dependencies: - '@babel/highlight': 7.24.7 - picocolors: 1.0.1 + '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-color-parser': 3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + lru-cache: 10.4.3 - '@babel/code-frame@7.25.7': + '@babel/code-frame@7.26.2': dependencies: - '@babel/highlight': 7.25.7 + '@babel/helper-validator-identifier': 7.25.9 + js-tokens: 4.0.0 picocolors: 1.1.1 - '@babel/compat-data@7.24.7': {} - - '@babel/compat-data@7.25.8': {} - - '@babel/core@7.24.7': - dependencies: - '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.7 - '@babel/helper-compilation-targets': 7.24.7 - '@babel/helper-module-transforms': 7.24.7(@babel/core@7.24.7) - '@babel/helpers': 7.24.7 - '@babel/parser': 7.24.7 - '@babel/template': 7.24.7 - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 - convert-source-map: 2.0.0 - debug: 4.3.7 - gensync: 1.0.0-beta.2 - json5: 2.2.3 - semver: 6.3.1 - transitivePeerDependencies: - - supports-color + '@babel/compat-data@7.26.5': {} - '@babel/core@7.25.8': + '@babel/core@7.26.0': dependencies: '@ampproject/remapping': 2.3.0 - '@babel/code-frame': 7.25.7 - '@babel/generator': 7.25.7 - '@babel/helper-compilation-targets': 7.25.7 - '@babel/helper-module-transforms': 7.25.7(@babel/core@7.25.8) - '@babel/helpers': 7.25.7 - '@babel/parser': 7.25.8 - '@babel/template': 7.25.7 - '@babel/traverse': 7.25.7 - '@babel/types': 7.25.8 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.5 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helpers': 7.26.0 + '@babel/parser': 7.26.5 + '@babel/template': 7.25.9 + '@babel/traverse': 7.26.5 + '@babel/types': 7.26.5 convert-source-map: 2.0.0 - debug: 4.3.5 + debug: 4.4.0 gensync: 1.0.0-beta.2 json5: 2.2.3 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/generator@7.24.7': - dependencies: - '@babel/types': 7.24.7 - '@jridgewell/gen-mapping': 0.3.5 - '@jridgewell/trace-mapping': 0.3.25 - jsesc: 2.5.2 - - '@babel/generator@7.25.7': + '@babel/generator@7.26.5': dependencies: - '@babel/types': 7.25.8 - '@jridgewell/gen-mapping': 0.3.5 + '@babel/parser': 7.26.5 + '@babel/types': 7.26.5 + '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 - jsesc: 3.0.2 + jsesc: 3.1.0 - '@babel/helper-annotate-as-pure@7.24.7': + '@babel/helper-annotate-as-pure@7.25.9': dependencies: - '@babel/types': 7.25.8 + '@babel/types': 7.26.5 - '@babel/helper-compilation-targets@7.24.7': + '@babel/helper-compilation-targets@7.26.5': dependencies: - '@babel/compat-data': 7.24.7 - '@babel/helper-validator-option': 7.24.7 - browserslist: 4.23.2 + '@babel/compat-data': 7.26.5 + '@babel/helper-validator-option': 7.25.9 + browserslist: 4.24.4 lru-cache: 5.1.1 semver: 6.3.1 - '@babel/helper-compilation-targets@7.25.7': + '@babel/helper-create-class-features-plugin@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/compat-data': 7.25.8 - '@babel/helper-validator-option': 7.25.7 - browserslist: 4.24.2 - lru-cache: 5.1.1 - semver: 6.3.1 - - '@babel/helper-create-class-features-plugin@7.24.7(@babel/core@7.25.8)': - dependencies: - '@babel/core': 7.25.8 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-function-name': 7.24.7 - '@babel/helper-member-expression-to-functions': 7.24.7 - '@babel/helper-optimise-call-expression': 7.24.7 - '@babel/helper-replace-supers': 7.24.7(@babel/core@7.25.8) - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-member-expression-to-functions': 7.25.9 + '@babel/helper-optimise-call-expression': 7.25.9 + '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.0) + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 + '@babel/traverse': 7.26.5 semver: 6.3.1 transitivePeerDependencies: - supports-color - '@babel/helper-environment-visitor@7.24.7': - dependencies: - '@babel/types': 7.24.7 - - '@babel/helper-function-name@7.24.7': - dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.7 - - '@babel/helper-hoist-variables@7.24.7': + '@babel/helper-member-expression-to-functions@7.25.9': dependencies: - '@babel/types': 7.24.7 - - '@babel/helper-member-expression-to-functions@7.24.7': - dependencies: - '@babel/traverse': 7.25.7 - '@babel/types': 7.25.8 + '@babel/traverse': 7.26.5 + '@babel/types': 7.26.5 transitivePeerDependencies: - supports-color - '@babel/helper-module-imports@7.24.7': + '@babel/helper-module-imports@7.25.9': dependencies: - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 + '@babel/traverse': 7.26.5 + '@babel/types': 7.26.5 transitivePeerDependencies: - supports-color - '@babel/helper-module-imports@7.25.7': + '@babel/helper-module-transforms@7.26.0(@babel/core@7.26.0)': dependencies: - '@babel/traverse': 7.25.7 - '@babel/types': 7.25.8 + '@babel/core': 7.26.0 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + '@babel/traverse': 7.26.5 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.24.7(@babel/core@7.24.7)': + '@babel/helper-optimise-call-expression@7.25.9': + dependencies: + '@babel/types': 7.26.5 + + '@babel/helper-plugin-utils@7.26.5': {} + + '@babel/helper-replace-supers@7.26.5(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-module-imports': 7.24.7 - '@babel/helper-simple-access': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-member-expression-to-functions': 7.25.9 + '@babel/helper-optimise-call-expression': 7.25.9 + '@babel/traverse': 7.26.5 transitivePeerDependencies: - supports-color - '@babel/helper-module-transforms@7.25.7(@babel/core@7.25.8)': + '@babel/helper-skip-transparent-expression-wrappers@7.25.9': dependencies: - '@babel/core': 7.25.8 - '@babel/helper-module-imports': 7.25.7 - '@babel/helper-simple-access': 7.25.7 - '@babel/helper-validator-identifier': 7.25.7 - '@babel/traverse': 7.25.7 + '@babel/traverse': 7.26.5 + '@babel/types': 7.26.5 transitivePeerDependencies: - supports-color - '@babel/helper-optimise-call-expression@7.24.7': - dependencies: - '@babel/types': 7.25.8 + '@babel/helper-string-parser@7.25.9': {} - '@babel/helper-plugin-utils@7.24.7': {} + '@babel/helper-validator-identifier@7.25.9': {} - '@babel/helper-replace-supers@7.24.7(@babel/core@7.25.8)': + '@babel/helper-validator-option@7.25.9': {} + + '@babel/helpers@7.26.0': dependencies: - '@babel/core': 7.25.8 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-member-expression-to-functions': 7.24.7 - '@babel/helper-optimise-call-expression': 7.24.7 - transitivePeerDependencies: - - supports-color - - '@babel/helper-simple-access@7.24.7': - dependencies: - '@babel/traverse': 7.24.7 - '@babel/types': 7.24.7 - transitivePeerDependencies: - - supports-color - - '@babel/helper-simple-access@7.25.7': - dependencies: - '@babel/traverse': 7.25.7 - '@babel/types': 7.25.8 - transitivePeerDependencies: - - supports-color - - '@babel/helper-skip-transparent-expression-wrappers@7.24.7': - dependencies: - '@babel/traverse': 7.25.7 - '@babel/types': 7.25.8 - transitivePeerDependencies: - - supports-color - - '@babel/helper-split-export-declaration@7.24.7': - dependencies: - '@babel/types': 7.24.7 - - '@babel/helper-string-parser@7.24.7': {} - - '@babel/helper-string-parser@7.25.7': {} - - '@babel/helper-validator-identifier@7.24.7': {} - - '@babel/helper-validator-identifier@7.25.7': {} - - '@babel/helper-validator-option@7.24.7': {} - - '@babel/helper-validator-option@7.25.7': {} - - '@babel/helpers@7.24.7': - dependencies: - '@babel/template': 7.24.7 - '@babel/types': 7.24.7 - - '@babel/helpers@7.25.7': - dependencies: - '@babel/template': 7.25.7 - '@babel/types': 7.25.8 - - '@babel/highlight@7.24.7': - dependencies: - '@babel/helper-validator-identifier': 7.24.7 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.1.1 - - '@babel/highlight@7.25.7': - dependencies: - '@babel/helper-validator-identifier': 7.25.7 - chalk: 2.4.2 - js-tokens: 4.0.0 - picocolors: 1.1.1 - - '@babel/parser@7.24.7': - dependencies: - '@babel/types': 7.24.7 + '@babel/template': 7.25.9 + '@babel/types': 7.26.5 - '@babel/parser@7.25.8': + '@babel/parser@7.26.5': dependencies: - '@babel/types': 7.25.8 + '@babel/types': 7.26.5 - '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.25.8)': + '@babel/plugin-proposal-class-properties@7.18.6(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.25.8 - '@babel/helper-create-class-features-plugin': 7.24.7(@babel/core@7.25.8) - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-create-class-features-plugin': 7.25.9(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.26.5 transitivePeerDependencies: - supports-color - '@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.25.8)': + '@babel/plugin-proposal-object-rest-spread@7.20.7(@babel/core@7.26.0)': dependencies: - '@babel/compat-data': 7.25.8 - '@babel/core': 7.25.8 - '@babel/helper-compilation-targets': 7.25.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.8) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.8) + '@babel/compat-data': 7.26.5 + '@babel/core': 7.26.0 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) - '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.25.8)': + '@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-flow@7.24.7(@babel/core@7.25.8)': + '@babel/plugin-syntax-flow@7.26.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-import-assertions@7.24.7(@babel/core@7.25.8)': + '@babel/plugin-syntax-import-assertions@7.26.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-jsx@7.24.7(@babel/core@7.25.8)': + '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.25.8)': + '@babel/plugin-syntax-object-rest-spread@7.8.3(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-arrow-functions@7.24.7(@babel/core@7.25.8)': + '@babel/plugin-transform-arrow-functions@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-block-scoped-functions@7.24.7(@babel/core@7.25.8)': + '@babel/plugin-transform-block-scoped-functions@7.26.5(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-block-scoping@7.24.7(@babel/core@7.25.8)': + '@babel/plugin-transform-block-scoping@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-classes@7.24.7(@babel/core@7.25.8)': + '@babel/plugin-transform-classes@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.25.8 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-compilation-targets': 7.25.7 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-function-name': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-replace-supers': 7.24.7(@babel/core@7.25.8) - '@babel/helper-split-export-declaration': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.0) + '@babel/traverse': 7.26.5 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-computed-properties@7.24.7(@babel/core@7.25.8)': + '@babel/plugin-transform-computed-properties@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/template': 7.25.7 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/template': 7.25.9 - '@babel/plugin-transform-destructuring@7.24.7(@babel/core@7.25.8)': + '@babel/plugin-transform-destructuring@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-flow-strip-types@7.24.7(@babel/core@7.25.8)': + '@babel/plugin-transform-flow-strip-types@7.26.5(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.25.8) + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-syntax-flow': 7.26.0(@babel/core@7.26.0) - '@babel/plugin-transform-for-of@7.24.7(@babel/core@7.25.8)': + '@babel/plugin-transform-for-of@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-function-name@7.24.7(@babel/core@7.25.8)': + '@babel/plugin-transform-function-name@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.25.8 - '@babel/helper-compilation-targets': 7.25.7 - '@babel/helper-function-name': 7.24.7 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-compilation-targets': 7.26.5 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/traverse': 7.26.5 + transitivePeerDependencies: + - supports-color - '@babel/plugin-transform-literals@7.24.7(@babel/core@7.25.8)': + '@babel/plugin-transform-literals@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-member-expression-literals@7.24.7(@babel/core@7.25.8)': + '@babel/plugin-transform-member-expression-literals@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-modules-commonjs@7.24.7(@babel/core@7.25.8)': + '@babel/plugin-transform-modules-commonjs@7.26.3(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.25.8 - '@babel/helper-module-transforms': 7.25.7(@babel/core@7.25.8) - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-simple-access': 7.25.7 + '@babel/core': 7.26.0 + '@babel/helper-module-transforms': 7.26.0(@babel/core@7.26.0) + '@babel/helper-plugin-utils': 7.26.5 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-object-super@7.24.7(@babel/core@7.25.8)': + '@babel/plugin-transform-object-super@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-replace-supers': 7.24.7(@babel/core@7.25.8) + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-replace-supers': 7.26.5(@babel/core@7.26.0) transitivePeerDependencies: - supports-color - '@babel/plugin-transform-parameters@7.24.7(@babel/core@7.25.8)': - dependencies: - '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-transform-property-literals@7.24.7(@babel/core@7.25.8)': + '@babel/plugin-transform-parameters@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-react-display-name@7.24.7(@babel/core@7.25.8)': + '@babel/plugin-transform-property-literals@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-react-jsx-self@7.24.7(@babel/core@7.25.8)': + '@babel/plugin-transform-react-display-name@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-react-jsx-source@7.24.7(@babel/core@7.25.8)': + '@babel/plugin-transform-react-jsx@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.24.7 - - '@babel/plugin-transform-react-jsx@7.24.7(@babel/core@7.25.8)': - dependencies: - '@babel/core': 7.25.8 - '@babel/helper-annotate-as-pure': 7.24.7 - '@babel/helper-module-imports': 7.25.7 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.8) - '@babel/types': 7.25.8 + '@babel/core': 7.26.0 + '@babel/helper-annotate-as-pure': 7.25.9 + '@babel/helper-module-imports': 7.25.9 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) + '@babel/types': 7.26.5 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-shorthand-properties@7.24.7(@babel/core@7.25.8)': + '@babel/plugin-transform-shorthand-properties@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/plugin-transform-spread@7.24.7(@babel/core@7.25.8)': + '@babel/plugin-transform-spread@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.24.7 - '@babel/helper-skip-transparent-expression-wrappers': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.26.5 + '@babel/helper-skip-transparent-expression-wrappers': 7.25.9 transitivePeerDependencies: - supports-color - '@babel/plugin-transform-template-literals@7.24.7(@babel/core@7.25.8)': + '@babel/plugin-transform-template-literals@7.25.9(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.25.8 - '@babel/helper-plugin-utils': 7.24.7 + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.26.5 - '@babel/runtime@7.24.7': + '@babel/runtime@7.26.0': dependencies: regenerator-runtime: 0.14.1 - '@babel/template@7.24.7': - dependencies: - '@babel/code-frame': 7.24.7 - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 - - '@babel/template@7.25.7': + '@babel/template@7.25.9': dependencies: - '@babel/code-frame': 7.25.7 - '@babel/parser': 7.25.8 - '@babel/types': 7.25.8 + '@babel/code-frame': 7.26.2 + '@babel/parser': 7.26.5 + '@babel/types': 7.26.5 - '@babel/traverse@7.24.7': + '@babel/traverse@7.26.5': dependencies: - '@babel/code-frame': 7.24.7 - '@babel/generator': 7.24.7 - '@babel/helper-environment-visitor': 7.24.7 - '@babel/helper-function-name': 7.24.7 - '@babel/helper-hoist-variables': 7.24.7 - '@babel/helper-split-export-declaration': 7.24.7 - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 - debug: 4.3.7 + '@babel/code-frame': 7.26.2 + '@babel/generator': 7.26.5 + '@babel/parser': 7.26.5 + '@babel/template': 7.25.9 + '@babel/types': 7.26.5 + debug: 4.4.0 globals: 11.12.0 transitivePeerDependencies: - supports-color - '@babel/traverse@7.25.7': + '@babel/types@7.26.5': dependencies: - '@babel/code-frame': 7.25.7 - '@babel/generator': 7.25.7 - '@babel/parser': 7.25.8 - '@babel/template': 7.25.7 - '@babel/types': 7.25.8 - debug: 4.3.5 - globals: 11.12.0 - transitivePeerDependencies: - - supports-color + '@babel/helper-string-parser': 7.25.9 + '@babel/helper-validator-identifier': 7.25.9 + + '@csstools/color-helpers@5.0.1': {} + + '@csstools/css-calc@2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': + dependencies: + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 + + '@csstools/css-color-parser@3.0.7(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3)': + dependencies: + '@csstools/color-helpers': 5.0.1 + '@csstools/css-calc': 2.1.1(@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3))(@csstools/css-tokenizer@3.0.3) + '@csstools/css-parser-algorithms': 3.0.4(@csstools/css-tokenizer@3.0.3) + '@csstools/css-tokenizer': 3.0.3 - '@babel/types@7.24.7': + '@csstools/css-parser-algorithms@3.0.4(@csstools/css-tokenizer@3.0.3)': dependencies: - '@babel/helper-string-parser': 7.24.7 - '@babel/helper-validator-identifier': 7.24.7 - to-fast-properties: 2.0.0 + '@csstools/css-tokenizer': 3.0.3 - '@babel/types@7.25.8': + '@csstools/css-tokenizer@3.0.3': {} + + '@envelop/core@5.0.3': dependencies: - '@babel/helper-string-parser': 7.25.7 - '@babel/helper-validator-identifier': 7.25.7 - to-fast-properties: 2.0.0 + '@envelop/types': 5.0.0 + tslib: 2.8.1 - '@bcoe/v8-coverage@0.2.3': {} + '@envelop/types@5.0.0': + dependencies: + tslib: 2.8.1 '@esbuild/aix-ppc64@0.21.5': optional: true @@ -5180,20 +4934,20 @@ snapshots: '@esbuild/win32-x64@0.21.5': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@8.57.0)': + '@eslint-community/eslint-utils@4.4.1(eslint@8.57.1)': dependencies: - eslint: 8.57.0 + eslint: 8.57.1 eslint-visitor-keys: 3.4.3 - '@eslint-community/regexpp@4.11.0': {} + '@eslint-community/regexpp@4.12.1': {} '@eslint/eslintrc@2.1.4': dependencies: ajv: 6.12.6 - debug: 4.3.5 + debug: 4.4.0 espree: 9.6.1 globals: 13.24.0 - ignore: 5.3.1 + ignore: 5.3.2 import-fresh: 3.3.0 js-yaml: 4.1.0 minimatch: 3.1.2 @@ -5201,70 +4955,81 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@8.57.0': {} + '@eslint/js@8.57.1': {} + + '@eslint/js@9.18.0': {} - '@floating-ui/core@1.6.4': + '@floating-ui/core@1.6.9': dependencies: - '@floating-ui/utils': 0.2.4 + '@floating-ui/utils': 0.2.9 - '@floating-ui/dom@1.6.7': + '@floating-ui/dom@1.6.13': dependencies: - '@floating-ui/core': 1.6.4 - '@floating-ui/utils': 0.2.4 + '@floating-ui/core': 1.6.9 + '@floating-ui/utils': 0.2.9 - '@floating-ui/react-dom@2.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@floating-ui/react-dom@2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@floating-ui/dom': 1.6.7 + '@floating-ui/dom': 1.6.13 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@floating-ui/utils@0.2.4': {} + '@floating-ui/react@0.26.28(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@floating-ui/utils': 0.2.9 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tabbable: 6.2.0 + + '@floating-ui/utils@0.2.9': {} - '@graphql-codegen/add@5.0.3(graphql@16.9.0)': + '@graphql-codegen/add@5.0.3(graphql@16.10.0)': dependencies: - '@graphql-codegen/plugin-helpers': 5.1.0(graphql@16.9.0) - graphql: 16.9.0 + '@graphql-codegen/plugin-helpers': 5.1.0(graphql@16.10.0) + graphql: 16.10.0 tslib: 2.6.3 - '@graphql-codegen/cli@5.0.3(@types/node@22.7.8)(graphql@16.9.0)(typescript@5.5.4)': - dependencies: - '@babel/generator': 7.25.7 - '@babel/template': 7.25.7 - '@babel/types': 7.25.8 - '@graphql-codegen/client-preset': 4.5.1(graphql@16.9.0) - '@graphql-codegen/core': 4.0.2(graphql@16.9.0) - '@graphql-codegen/plugin-helpers': 5.1.0(graphql@16.9.0) - '@graphql-tools/apollo-engine-loader': 8.0.1(graphql@16.9.0) - '@graphql-tools/code-file-loader': 8.1.2(graphql@16.9.0) - '@graphql-tools/git-loader': 8.0.6(graphql@16.9.0) - '@graphql-tools/github-loader': 8.0.1(@types/node@22.7.8)(graphql@16.9.0) - '@graphql-tools/graphql-file-loader': 8.0.1(graphql@16.9.0) - '@graphql-tools/json-file-loader': 8.0.1(graphql@16.9.0) - '@graphql-tools/load': 8.0.2(graphql@16.9.0) - '@graphql-tools/prisma-loader': 8.0.4(@types/node@22.7.8)(graphql@16.9.0) - '@graphql-tools/url-loader': 8.0.2(@types/node@22.7.8)(graphql@16.9.0) - '@graphql-tools/utils': 10.3.1(graphql@16.9.0) - '@whatwg-node/fetch': 0.9.22 + '@graphql-codegen/cli@5.0.3(@babel/core@7.26.0)(@types/node@22.10.7)(graphql@16.10.0)(typescript@5.5.4)': + dependencies: + '@babel/generator': 7.26.5 + '@babel/template': 7.25.9 + '@babel/types': 7.26.5 + '@graphql-codegen/client-preset': 4.5.1(@babel/core@7.26.0)(graphql@16.10.0) + '@graphql-codegen/core': 4.0.2(graphql@16.10.0) + '@graphql-codegen/plugin-helpers': 5.1.0(graphql@16.10.0) + '@graphql-tools/apollo-engine-loader': 8.0.13(graphql@16.10.0) + '@graphql-tools/code-file-loader': 8.1.13(graphql@16.10.0) + '@graphql-tools/git-loader': 8.0.17(graphql@16.10.0) + '@graphql-tools/github-loader': 8.0.13(@types/node@22.10.7)(graphql@16.10.0) + '@graphql-tools/graphql-file-loader': 8.0.12(graphql@16.10.0) + '@graphql-tools/json-file-loader': 8.0.11(graphql@16.10.0) + '@graphql-tools/load': 8.0.12(graphql@16.10.0) + '@graphql-tools/prisma-loader': 8.0.17(@types/node@22.10.7)(graphql@16.10.0) + '@graphql-tools/url-loader': 8.0.24(@types/node@22.10.7)(graphql@16.10.0) + '@graphql-tools/utils': 10.7.2(graphql@16.10.0) + '@whatwg-node/fetch': 0.9.23 chalk: 4.1.2 cosmiconfig: 8.3.6(typescript@5.5.4) debounce: 1.2.1 detect-indent: 6.1.0 - graphql: 16.9.0 - graphql-config: 5.1.3(@types/node@22.7.8)(graphql@16.9.0)(typescript@5.5.4) + graphql: 16.10.0 + graphql-config: 5.1.3(@types/node@22.10.7)(graphql@16.10.0)(typescript@5.5.4) inquirer: 8.2.6 is-glob: 4.0.3 - jiti: 1.21.6 + jiti: 1.21.7 json-to-pretty-yaml: 1.2.2 listr2: 4.0.5 log-symbols: 4.1.0 micromatch: 4.0.8 - shell-quote: 1.8.1 + shell-quote: 1.8.2 string-env-interpolation: 1.0.1 - ts-log: 2.2.5 - tslib: 2.6.3 - yaml: 2.4.5 + ts-log: 2.2.7 + tslib: 2.8.1 + yaml: 2.7.0 yargs: 17.7.2 transitivePeerDependencies: + - '@babel/core' - '@types/node' - bufferutil - cosmiconfig-toml-loader @@ -5274,325 +5039,336 @@ snapshots: - typescript - utf-8-validate - '@graphql-codegen/client-preset@4.5.1(graphql@16.9.0)': - dependencies: - '@babel/helper-plugin-utils': 7.24.7 - '@babel/template': 7.25.7 - '@graphql-codegen/add': 5.0.3(graphql@16.9.0) - '@graphql-codegen/gql-tag-operations': 4.0.12(graphql@16.9.0) - '@graphql-codegen/plugin-helpers': 5.1.0(graphql@16.9.0) - '@graphql-codegen/typed-document-node': 5.0.12(graphql@16.9.0) - '@graphql-codegen/typescript': 4.1.2(graphql@16.9.0) - '@graphql-codegen/typescript-operations': 4.4.0(graphql@16.9.0) - '@graphql-codegen/visitor-plugin-common': 5.6.0(graphql@16.9.0) - '@graphql-tools/documents': 1.0.1(graphql@16.9.0) - '@graphql-tools/utils': 10.3.1(graphql@16.9.0) - '@graphql-typed-document-node/core': 3.2.0(graphql@16.9.0) - graphql: 16.9.0 + '@graphql-codegen/client-preset@4.5.1(@babel/core@7.26.0)(graphql@16.10.0)': + dependencies: + '@babel/helper-plugin-utils': 7.26.5 + '@babel/template': 7.25.9 + '@graphql-codegen/add': 5.0.3(graphql@16.10.0) + '@graphql-codegen/gql-tag-operations': 4.0.12(@babel/core@7.26.0)(graphql@16.10.0) + '@graphql-codegen/plugin-helpers': 5.1.0(graphql@16.10.0) + '@graphql-codegen/typed-document-node': 5.0.12(@babel/core@7.26.0)(graphql@16.10.0) + '@graphql-codegen/typescript': 4.1.2(@babel/core@7.26.0)(graphql@16.10.0) + '@graphql-codegen/typescript-operations': 4.4.0(@babel/core@7.26.0)(graphql@16.10.0) + '@graphql-codegen/visitor-plugin-common': 5.6.0(@babel/core@7.26.0)(graphql@16.10.0) + '@graphql-tools/documents': 1.0.1(graphql@16.10.0) + '@graphql-tools/utils': 10.7.2(graphql@16.10.0) + '@graphql-typed-document-node/core': 3.2.0(graphql@16.10.0) + graphql: 16.10.0 tslib: 2.6.3 transitivePeerDependencies: + - '@babel/core' - encoding - supports-color - '@graphql-codegen/core@4.0.2(graphql@16.9.0)': + '@graphql-codegen/core@4.0.2(graphql@16.10.0)': dependencies: - '@graphql-codegen/plugin-helpers': 5.1.0(graphql@16.9.0) - '@graphql-tools/schema': 10.0.4(graphql@16.9.0) - '@graphql-tools/utils': 10.3.1(graphql@16.9.0) - graphql: 16.9.0 + '@graphql-codegen/plugin-helpers': 5.1.0(graphql@16.10.0) + '@graphql-tools/schema': 10.0.16(graphql@16.10.0) + '@graphql-tools/utils': 10.7.2(graphql@16.10.0) + graphql: 16.10.0 tslib: 2.6.3 - '@graphql-codegen/fragment-matcher@5.0.2(graphql@16.9.0)': + '@graphql-codegen/fragment-matcher@5.0.2(graphql@16.10.0)': dependencies: - '@graphql-codegen/plugin-helpers': 5.0.4(graphql@16.9.0) - graphql: 16.9.0 + '@graphql-codegen/plugin-helpers': 5.1.0(graphql@16.10.0) + graphql: 16.10.0 tslib: 2.6.3 - '@graphql-codegen/gql-tag-operations@4.0.12(graphql@16.9.0)': + '@graphql-codegen/gql-tag-operations@4.0.12(@babel/core@7.26.0)(graphql@16.10.0)': dependencies: - '@graphql-codegen/plugin-helpers': 5.1.0(graphql@16.9.0) - '@graphql-codegen/visitor-plugin-common': 5.6.0(graphql@16.9.0) - '@graphql-tools/utils': 10.3.1(graphql@16.9.0) + '@graphql-codegen/plugin-helpers': 5.1.0(graphql@16.10.0) + '@graphql-codegen/visitor-plugin-common': 5.6.0(@babel/core@7.26.0)(graphql@16.10.0) + '@graphql-tools/utils': 10.7.2(graphql@16.10.0) auto-bind: 4.0.0 - graphql: 16.9.0 + graphql: 16.10.0 tslib: 2.6.3 transitivePeerDependencies: + - '@babel/core' - encoding - supports-color - '@graphql-codegen/plugin-helpers@5.0.4(graphql@16.9.0)': + '@graphql-codegen/plugin-helpers@5.1.0(graphql@16.10.0)': dependencies: - '@graphql-tools/utils': 10.3.1(graphql@16.9.0) + '@graphql-tools/utils': 10.7.2(graphql@16.10.0) change-case-all: 1.0.15 common-tags: 1.8.2 - graphql: 16.9.0 + graphql: 16.10.0 import-from: 4.0.0 lodash: 4.17.21 tslib: 2.6.3 - '@graphql-codegen/plugin-helpers@5.1.0(graphql@16.9.0)': + '@graphql-codegen/schema-ast@4.1.0(graphql@16.10.0)': dependencies: - '@graphql-tools/utils': 10.3.1(graphql@16.9.0) - change-case-all: 1.0.15 - common-tags: 1.8.2 - graphql: 16.9.0 - import-from: 4.0.0 - lodash: 4.17.21 - tslib: 2.6.3 - - '@graphql-codegen/schema-ast@4.1.0(graphql@16.9.0)': - dependencies: - '@graphql-codegen/plugin-helpers': 5.1.0(graphql@16.9.0) - '@graphql-tools/utils': 10.3.1(graphql@16.9.0) - graphql: 16.9.0 + '@graphql-codegen/plugin-helpers': 5.1.0(graphql@16.10.0) + '@graphql-tools/utils': 10.7.2(graphql@16.10.0) + graphql: 16.10.0 tslib: 2.6.3 - '@graphql-codegen/typed-document-node@5.0.12(graphql@16.9.0)': + '@graphql-codegen/typed-document-node@5.0.12(@babel/core@7.26.0)(graphql@16.10.0)': dependencies: - '@graphql-codegen/plugin-helpers': 5.1.0(graphql@16.9.0) - '@graphql-codegen/visitor-plugin-common': 5.6.0(graphql@16.9.0) + '@graphql-codegen/plugin-helpers': 5.1.0(graphql@16.10.0) + '@graphql-codegen/visitor-plugin-common': 5.6.0(@babel/core@7.26.0)(graphql@16.10.0) auto-bind: 4.0.0 change-case-all: 1.0.15 - graphql: 16.9.0 + graphql: 16.10.0 tslib: 2.6.3 transitivePeerDependencies: + - '@babel/core' - encoding - supports-color - '@graphql-codegen/typescript-operations@4.4.0(graphql@16.9.0)': + '@graphql-codegen/typescript-operations@4.4.0(@babel/core@7.26.0)(graphql@16.10.0)': dependencies: - '@graphql-codegen/plugin-helpers': 5.1.0(graphql@16.9.0) - '@graphql-codegen/typescript': 4.1.2(graphql@16.9.0) - '@graphql-codegen/visitor-plugin-common': 5.6.0(graphql@16.9.0) + '@graphql-codegen/plugin-helpers': 5.1.0(graphql@16.10.0) + '@graphql-codegen/typescript': 4.1.2(@babel/core@7.26.0)(graphql@16.10.0) + '@graphql-codegen/visitor-plugin-common': 5.6.0(@babel/core@7.26.0)(graphql@16.10.0) auto-bind: 4.0.0 - graphql: 16.9.0 + graphql: 16.10.0 tslib: 2.6.3 transitivePeerDependencies: + - '@babel/core' - encoding - supports-color - '@graphql-codegen/typescript@4.1.2(graphql@16.9.0)': + '@graphql-codegen/typescript@4.1.2(@babel/core@7.26.0)(graphql@16.10.0)': dependencies: - '@graphql-codegen/plugin-helpers': 5.1.0(graphql@16.9.0) - '@graphql-codegen/schema-ast': 4.1.0(graphql@16.9.0) - '@graphql-codegen/visitor-plugin-common': 5.6.0(graphql@16.9.0) + '@graphql-codegen/plugin-helpers': 5.1.0(graphql@16.10.0) + '@graphql-codegen/schema-ast': 4.1.0(graphql@16.10.0) + '@graphql-codegen/visitor-plugin-common': 5.6.0(@babel/core@7.26.0)(graphql@16.10.0) auto-bind: 4.0.0 - graphql: 16.9.0 + graphql: 16.10.0 tslib: 2.6.3 transitivePeerDependencies: + - '@babel/core' - encoding - supports-color - '@graphql-codegen/visitor-plugin-common@5.6.0(graphql@16.9.0)': + '@graphql-codegen/visitor-plugin-common@5.6.0(@babel/core@7.26.0)(graphql@16.10.0)': dependencies: - '@graphql-codegen/plugin-helpers': 5.1.0(graphql@16.9.0) - '@graphql-tools/optimize': 2.0.0(graphql@16.9.0) - '@graphql-tools/relay-operation-optimizer': 7.0.1(graphql@16.9.0) - '@graphql-tools/utils': 10.3.1(graphql@16.9.0) + '@graphql-codegen/plugin-helpers': 5.1.0(graphql@16.10.0) + '@graphql-tools/optimize': 2.0.0(graphql@16.10.0) + '@graphql-tools/relay-operation-optimizer': 7.0.12(@babel/core@7.26.0)(graphql@16.10.0) + '@graphql-tools/utils': 10.7.2(graphql@16.10.0) auto-bind: 4.0.0 change-case-all: 1.0.15 dependency-graph: 0.11.0 - graphql: 16.9.0 - graphql-tag: 2.12.6(graphql@16.9.0) + graphql: 16.10.0 + graphql-tag: 2.12.6(graphql@16.10.0) parse-filepath: 1.0.2 tslib: 2.6.3 transitivePeerDependencies: + - '@babel/core' - encoding - supports-color - '@graphql-tools/apollo-engine-loader@8.0.1(graphql@16.9.0)': + '@graphql-hive/gateway-abort-signal-any@0.0.3(graphql@16.10.0)': dependencies: - '@ardatan/sync-fetch': 0.0.1 - '@graphql-tools/utils': 10.3.1(graphql@16.9.0) - '@whatwg-node/fetch': 0.9.22 - graphql: 16.9.0 - tslib: 2.6.3 - transitivePeerDependencies: - - encoding + '@graphql-tools/utils': 10.7.2(graphql@16.10.0) + graphql: 16.10.0 + tslib: 2.8.1 - '@graphql-tools/batch-execute@9.0.4(graphql@16.9.0)': + '@graphql-tools/apollo-engine-loader@8.0.13(graphql@16.10.0)': dependencies: - '@graphql-tools/utils': 10.3.1(graphql@16.9.0) - dataloader: 2.2.2 - graphql: 16.9.0 - tslib: 2.6.3 - value-or-promise: 1.0.12 + '@graphql-tools/utils': 10.7.2(graphql@16.10.0) + '@whatwg-node/fetch': 0.10.3 + graphql: 16.10.0 + sync-fetch: 0.6.0-2 + tslib: 2.8.1 + + '@graphql-tools/batch-execute@9.0.11(graphql@16.10.0)': + dependencies: + '@graphql-tools/utils': 10.7.2(graphql@16.10.0) + dataloader: 2.2.3 + graphql: 16.10.0 + tslib: 2.8.1 - '@graphql-tools/code-file-loader@8.1.2(graphql@16.9.0)': + '@graphql-tools/code-file-loader@8.1.13(graphql@16.10.0)': dependencies: - '@graphql-tools/graphql-tag-pluck': 8.3.1(graphql@16.9.0) - '@graphql-tools/utils': 10.3.1(graphql@16.9.0) + '@graphql-tools/graphql-tag-pluck': 8.3.12(graphql@16.10.0) + '@graphql-tools/utils': 10.7.2(graphql@16.10.0) globby: 11.1.0 - graphql: 16.9.0 - tslib: 2.6.3 + graphql: 16.10.0 + tslib: 2.8.1 unixify: 1.0.0 transitivePeerDependencies: - supports-color - '@graphql-tools/delegate@10.0.13(graphql@16.9.0)': + '@graphql-tools/delegate@10.2.9(graphql@16.10.0)': dependencies: - '@graphql-tools/batch-execute': 9.0.4(graphql@16.9.0) - '@graphql-tools/executor': 1.2.8(graphql@16.9.0) - '@graphql-tools/schema': 10.0.4(graphql@16.9.0) - '@graphql-tools/utils': 10.3.1(graphql@16.9.0) - dataloader: 2.2.2 - graphql: 16.9.0 - tslib: 2.6.3 + '@graphql-tools/batch-execute': 9.0.11(graphql@16.10.0) + '@graphql-tools/executor': 1.3.12(graphql@16.10.0) + '@graphql-tools/schema': 10.0.16(graphql@16.10.0) + '@graphql-tools/utils': 10.7.2(graphql@16.10.0) + '@repeaterjs/repeater': 3.0.6 + dataloader: 2.2.3 + dset: 3.1.4 + graphql: 16.10.0 + tslib: 2.8.1 - '@graphql-tools/documents@1.0.1(graphql@16.9.0)': + '@graphql-tools/documents@1.0.1(graphql@16.10.0)': dependencies: - graphql: 16.9.0 + graphql: 16.10.0 lodash.sortby: 4.7.0 tslib: 2.6.3 - '@graphql-tools/executor-graphql-ws@1.2.0(graphql@16.9.0)': + '@graphql-tools/executor-common@0.0.1(graphql@16.10.0)': dependencies: - '@graphql-tools/utils': 10.3.1(graphql@16.9.0) - '@types/ws': 8.5.10 - graphql: 16.9.0 - graphql-ws: 5.16.0(graphql@16.9.0) + '@envelop/core': 5.0.3 + '@graphql-tools/utils': 10.7.2(graphql@16.10.0) + graphql: 16.10.0 + + '@graphql-tools/executor-graphql-ws@1.3.7(graphql@16.10.0)': + dependencies: + '@graphql-tools/executor-common': 0.0.1(graphql@16.10.0) + '@graphql-tools/utils': 10.7.2(graphql@16.10.0) + '@whatwg-node/disposablestack': 0.0.5 + graphql: 16.10.0 + graphql-ws: 5.16.2(graphql@16.10.0) isomorphic-ws: 5.0.0(ws@8.18.0) - tslib: 2.6.3 + tslib: 2.8.1 ws: 8.18.0 transitivePeerDependencies: - bufferutil - utf-8-validate - '@graphql-tools/executor-http@1.1.2(@types/node@22.7.8)(graphql@16.9.0)': + '@graphql-tools/executor-http@1.2.5(@types/node@22.10.7)(graphql@16.10.0)': dependencies: - '@graphql-tools/utils': 10.3.1(graphql@16.9.0) + '@graphql-hive/gateway-abort-signal-any': 0.0.3(graphql@16.10.0) + '@graphql-tools/executor-common': 0.0.1(graphql@16.10.0) + '@graphql-tools/utils': 10.7.2(graphql@16.10.0) '@repeaterjs/repeater': 3.0.6 - '@whatwg-node/fetch': 0.9.22 + '@whatwg-node/disposablestack': 0.0.5 + '@whatwg-node/fetch': 0.10.3 extract-files: 11.0.0 - graphql: 16.9.0 - meros: 1.3.0(@types/node@22.7.8) - tslib: 2.6.3 + graphql: 16.10.0 + meros: 1.3.0(@types/node@22.10.7) + tslib: 2.8.1 value-or-promise: 1.0.12 transitivePeerDependencies: - '@types/node' - '@graphql-tools/executor-legacy-ws@1.1.0(graphql@16.9.0)': + '@graphql-tools/executor-legacy-ws@1.1.10(graphql@16.10.0)': dependencies: - '@graphql-tools/utils': 10.3.1(graphql@16.9.0) - '@types/ws': 8.5.10 - graphql: 16.9.0 + '@graphql-tools/utils': 10.7.2(graphql@16.10.0) + '@types/ws': 8.5.13 + graphql: 16.10.0 isomorphic-ws: 5.0.0(ws@8.18.0) - tslib: 2.6.3 + tslib: 2.8.1 ws: 8.18.0 transitivePeerDependencies: - bufferutil - utf-8-validate - '@graphql-tools/executor@1.2.8(graphql@16.9.0)': + '@graphql-tools/executor@1.3.12(graphql@16.10.0)': dependencies: - '@graphql-tools/utils': 10.3.1(graphql@16.9.0) - '@graphql-typed-document-node/core': 3.2.0(graphql@16.9.0) + '@graphql-tools/utils': 10.7.2(graphql@16.10.0) + '@graphql-typed-document-node/core': 3.2.0(graphql@16.10.0) '@repeaterjs/repeater': 3.0.6 - graphql: 16.9.0 - tslib: 2.6.3 + '@whatwg-node/disposablestack': 0.0.5 + graphql: 16.10.0 + tslib: 2.8.1 value-or-promise: 1.0.12 - '@graphql-tools/git-loader@8.0.6(graphql@16.9.0)': + '@graphql-tools/git-loader@8.0.17(graphql@16.10.0)': dependencies: - '@graphql-tools/graphql-tag-pluck': 8.3.1(graphql@16.9.0) - '@graphql-tools/utils': 10.3.1(graphql@16.9.0) - graphql: 16.9.0 + '@graphql-tools/graphql-tag-pluck': 8.3.12(graphql@16.10.0) + '@graphql-tools/utils': 10.7.2(graphql@16.10.0) + graphql: 16.10.0 is-glob: 4.0.3 micromatch: 4.0.8 - tslib: 2.6.3 + tslib: 2.8.1 unixify: 1.0.0 transitivePeerDependencies: - supports-color - '@graphql-tools/github-loader@8.0.1(@types/node@22.7.8)(graphql@16.9.0)': + '@graphql-tools/github-loader@8.0.13(@types/node@22.10.7)(graphql@16.10.0)': dependencies: - '@ardatan/sync-fetch': 0.0.1 - '@graphql-tools/executor-http': 1.1.2(@types/node@22.7.8)(graphql@16.9.0) - '@graphql-tools/graphql-tag-pluck': 8.3.1(graphql@16.9.0) - '@graphql-tools/utils': 10.3.1(graphql@16.9.0) - '@whatwg-node/fetch': 0.9.22 - graphql: 16.9.0 - tslib: 2.6.3 + '@graphql-tools/executor-http': 1.2.5(@types/node@22.10.7)(graphql@16.10.0) + '@graphql-tools/graphql-tag-pluck': 8.3.12(graphql@16.10.0) + '@graphql-tools/utils': 10.7.2(graphql@16.10.0) + '@whatwg-node/fetch': 0.10.3 + graphql: 16.10.0 + sync-fetch: 0.6.0-2 + tslib: 2.8.1 value-or-promise: 1.0.12 transitivePeerDependencies: - '@types/node' - - encoding - supports-color - '@graphql-tools/graphql-file-loader@8.0.1(graphql@16.9.0)': + '@graphql-tools/graphql-file-loader@8.0.12(graphql@16.10.0)': dependencies: - '@graphql-tools/import': 7.0.1(graphql@16.9.0) - '@graphql-tools/utils': 10.3.1(graphql@16.9.0) + '@graphql-tools/import': 7.0.11(graphql@16.10.0) + '@graphql-tools/utils': 10.7.2(graphql@16.10.0) globby: 11.1.0 - graphql: 16.9.0 - tslib: 2.6.3 + graphql: 16.10.0 + tslib: 2.8.1 unixify: 1.0.0 - '@graphql-tools/graphql-tag-pluck@8.3.1(graphql@16.9.0)': + '@graphql-tools/graphql-tag-pluck@8.3.12(graphql@16.10.0)': dependencies: - '@babel/core': 7.25.8 - '@babel/parser': 7.25.8 - '@babel/plugin-syntax-import-assertions': 7.24.7(@babel/core@7.25.8) - '@babel/traverse': 7.25.7 - '@babel/types': 7.25.8 - '@graphql-tools/utils': 10.3.1(graphql@16.9.0) - graphql: 16.9.0 - tslib: 2.6.3 + '@babel/core': 7.26.0 + '@babel/parser': 7.26.5 + '@babel/plugin-syntax-import-assertions': 7.26.0(@babel/core@7.26.0) + '@babel/traverse': 7.26.5 + '@babel/types': 7.26.5 + '@graphql-tools/utils': 10.7.2(graphql@16.10.0) + graphql: 16.10.0 + tslib: 2.8.1 transitivePeerDependencies: - supports-color - '@graphql-tools/import@7.0.1(graphql@16.9.0)': + '@graphql-tools/import@7.0.11(graphql@16.10.0)': dependencies: - '@graphql-tools/utils': 10.3.1(graphql@16.9.0) - graphql: 16.9.0 + '@graphql-tools/utils': 10.7.2(graphql@16.10.0) + graphql: 16.10.0 resolve-from: 5.0.0 - tslib: 2.6.3 + tslib: 2.8.1 - '@graphql-tools/json-file-loader@8.0.1(graphql@16.9.0)': + '@graphql-tools/json-file-loader@8.0.11(graphql@16.10.0)': dependencies: - '@graphql-tools/utils': 10.3.1(graphql@16.9.0) + '@graphql-tools/utils': 10.7.2(graphql@16.10.0) globby: 11.1.0 - graphql: 16.9.0 - tslib: 2.6.3 + graphql: 16.10.0 + tslib: 2.8.1 unixify: 1.0.0 - '@graphql-tools/load@8.0.2(graphql@16.9.0)': + '@graphql-tools/load@8.0.12(graphql@16.10.0)': dependencies: - '@graphql-tools/schema': 10.0.4(graphql@16.9.0) - '@graphql-tools/utils': 10.3.1(graphql@16.9.0) - graphql: 16.9.0 + '@graphql-tools/schema': 10.0.16(graphql@16.10.0) + '@graphql-tools/utils': 10.7.2(graphql@16.10.0) + graphql: 16.10.0 p-limit: 3.1.0 - tslib: 2.6.3 + tslib: 2.8.1 - '@graphql-tools/merge@9.0.4(graphql@16.9.0)': + '@graphql-tools/merge@9.0.17(graphql@16.10.0)': dependencies: - '@graphql-tools/utils': 10.3.1(graphql@16.9.0) - graphql: 16.9.0 - tslib: 2.6.3 + '@graphql-tools/utils': 10.7.2(graphql@16.10.0) + graphql: 16.10.0 + tslib: 2.8.1 - '@graphql-tools/optimize@2.0.0(graphql@16.9.0)': + '@graphql-tools/optimize@2.0.0(graphql@16.10.0)': dependencies: - graphql: 16.9.0 + graphql: 16.10.0 tslib: 2.6.3 - '@graphql-tools/prisma-loader@8.0.4(@types/node@22.7.8)(graphql@16.9.0)': + '@graphql-tools/prisma-loader@8.0.17(@types/node@22.10.7)(graphql@16.10.0)': dependencies: - '@graphql-tools/url-loader': 8.0.2(@types/node@22.7.8)(graphql@16.9.0) - '@graphql-tools/utils': 10.3.1(graphql@16.9.0) + '@graphql-tools/url-loader': 8.0.24(@types/node@22.10.7)(graphql@16.10.0) + '@graphql-tools/utils': 10.7.2(graphql@16.10.0) '@types/js-yaml': 4.0.9 - '@whatwg-node/fetch': 0.9.22 + '@whatwg-node/fetch': 0.10.3 chalk: 4.1.2 - debug: 4.3.7 - dotenv: 16.4.5 - graphql: 16.9.0 - graphql-request: 6.1.0(graphql@16.9.0) + debug: 4.4.0 + dotenv: 16.4.7 + graphql: 16.10.0 + graphql-request: 6.1.0(graphql@16.10.0) http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.5 - jose: 5.6.3 + https-proxy-agent: 7.0.6 + jose: 5.9.6 js-yaml: 4.1.0 lodash: 4.17.21 scuid: 1.1.0 - tslib: 2.6.3 + tslib: 2.8.1 yaml-ast-parser: 0.0.43 transitivePeerDependencies: - '@types/node' @@ -5601,82 +5377,82 @@ snapshots: - supports-color - utf-8-validate - '@graphql-tools/relay-operation-optimizer@7.0.1(graphql@16.9.0)': + '@graphql-tools/relay-operation-optimizer@7.0.12(@babel/core@7.26.0)(graphql@16.10.0)': dependencies: - '@ardatan/relay-compiler': 12.0.0(graphql@16.9.0) - '@graphql-tools/utils': 10.3.1(graphql@16.9.0) - graphql: 16.9.0 + '@ardatan/relay-compiler': 12.0.1(@babel/core@7.26.0)(graphql@16.10.0) + '@graphql-tools/utils': 10.7.2(graphql@16.10.0) + graphql: 16.10.0 tslib: 2.6.3 transitivePeerDependencies: + - '@babel/core' - encoding - supports-color - '@graphql-tools/schema@10.0.4(graphql@16.9.0)': + '@graphql-tools/schema@10.0.16(graphql@16.10.0)': dependencies: - '@graphql-tools/merge': 9.0.4(graphql@16.9.0) - '@graphql-tools/utils': 10.3.1(graphql@16.9.0) - graphql: 16.9.0 - tslib: 2.6.3 + '@graphql-tools/merge': 9.0.17(graphql@16.10.0) + '@graphql-tools/utils': 10.7.2(graphql@16.10.0) + graphql: 16.10.0 + tslib: 2.8.1 value-or-promise: 1.0.12 - '@graphql-tools/url-loader@8.0.2(@types/node@22.7.8)(graphql@16.9.0)': - dependencies: - '@ardatan/sync-fetch': 0.0.1 - '@graphql-tools/delegate': 10.0.13(graphql@16.9.0) - '@graphql-tools/executor-graphql-ws': 1.2.0(graphql@16.9.0) - '@graphql-tools/executor-http': 1.1.2(@types/node@22.7.8)(graphql@16.9.0) - '@graphql-tools/executor-legacy-ws': 1.1.0(graphql@16.9.0) - '@graphql-tools/utils': 10.3.1(graphql@16.9.0) - '@graphql-tools/wrap': 10.0.5(graphql@16.9.0) - '@types/ws': 8.5.10 - '@whatwg-node/fetch': 0.9.22 - graphql: 16.9.0 + '@graphql-tools/url-loader@8.0.24(@types/node@22.10.7)(graphql@16.10.0)': + dependencies: + '@graphql-tools/executor-graphql-ws': 1.3.7(graphql@16.10.0) + '@graphql-tools/executor-http': 1.2.5(@types/node@22.10.7)(graphql@16.10.0) + '@graphql-tools/executor-legacy-ws': 1.1.10(graphql@16.10.0) + '@graphql-tools/utils': 10.7.2(graphql@16.10.0) + '@graphql-tools/wrap': 10.0.27(graphql@16.10.0) + '@types/ws': 8.5.13 + '@whatwg-node/fetch': 0.10.3 + graphql: 16.10.0 isomorphic-ws: 5.0.0(ws@8.18.0) - tslib: 2.6.3 + sync-fetch: 0.6.0-2 + tslib: 2.8.1 value-or-promise: 1.0.12 ws: 8.18.0 transitivePeerDependencies: - '@types/node' - bufferutil - - encoding - utf-8-validate - '@graphql-tools/utils@10.3.1(graphql@16.9.0)': + '@graphql-tools/utils@10.7.2(graphql@16.10.0)': dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.9.0) - cross-inspect: 1.0.0 + '@graphql-typed-document-node/core': 3.2.0(graphql@16.10.0) + cross-inspect: 1.0.1 dset: 3.1.4 - graphql: 16.9.0 - tslib: 2.6.3 + graphql: 16.10.0 + tslib: 2.8.1 - '@graphql-tools/wrap@10.0.5(graphql@16.9.0)': + '@graphql-tools/wrap@10.0.27(graphql@16.10.0)': dependencies: - '@graphql-tools/delegate': 10.0.13(graphql@16.9.0) - '@graphql-tools/schema': 10.0.4(graphql@16.9.0) - '@graphql-tools/utils': 10.3.1(graphql@16.9.0) - graphql: 16.9.0 - tslib: 2.6.3 - value-or-promise: 1.0.12 + '@graphql-tools/delegate': 10.2.9(graphql@16.10.0) + '@graphql-tools/schema': 10.0.16(graphql@16.10.0) + '@graphql-tools/utils': 10.7.2(graphql@16.10.0) + graphql: 16.10.0 + tslib: 2.8.1 - '@graphql-typed-document-node/core@3.2.0(graphql@16.9.0)': + '@graphql-typed-document-node/core@3.2.0(graphql@16.10.0)': dependencies: - graphql: 16.9.0 + graphql: 16.10.0 - '@headlessui/react@1.7.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@headlessui/react@2.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@tanstack/react-virtual': 3.8.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - client-only: 0.0.1 + '@floating-ui/react': 0.26.28(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/focus': 3.19.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/interactions': 3.23.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tanstack/react-virtual': 3.11.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@heroicons/react@2.1.5(react@18.3.1)': + '@heroicons/react@2.2.0(react@18.3.1)': dependencies: react: 18.3.1 - '@humanwhocodes/config-array@0.11.14': + '@humanwhocodes/config-array@0.13.0': dependencies: '@humanwhocodes/object-schema': 2.0.3 - debug: 4.3.5 + debug: 4.4.0 minimatch: 3.1.2 transitivePeerDependencies: - supports-color @@ -5694,13 +5470,7 @@ snapshots: wrap-ansi: 8.1.0 wrap-ansi-cjs: wrap-ansi@7.0.0 - '@istanbuljs/schema@0.1.3': {} - - '@jest/schemas@29.6.3': - dependencies: - '@sinclair/typebox': 0.27.8 - - '@jridgewell/gen-mapping@0.3.5': + '@jridgewell/gen-mapping@0.3.8': dependencies: '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.5.0 @@ -5719,21 +5489,21 @@ snapshots: '@kamilkisiela/fast-url-parser@1.1.4': {} - '@kubetail/ui@0.1.4(@heroicons/react@2.1.5(react@18.3.1))(@tailwindcss/forms@0.5.7(tailwindcss@3.4.14))(@types/react-dom@18.3.1)(@types/react@18.3.11)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.14)': + '@kubetail/ui@0.1.4(@heroicons/react@2.2.0(react@18.3.1))(@tailwindcss/forms@0.5.9(tailwindcss@3.4.17))(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(date-fns@3.6.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(tailwindcss@3.4.17)': dependencies: - '@heroicons/react': 2.1.5(react@18.3.1) - '@radix-ui/react-popover': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-tabs': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@restart/ui': 1.6.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@tailwindcss/forms': 0.5.7(tailwindcss@3.4.14) - class-variance-authority: 0.7.0 + '@heroicons/react': 2.2.0(react@18.3.1) + '@radix-ui/react-popover': 1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-tabs': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@restart/ui': 1.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@tailwindcss/forms': 0.5.9(tailwindcss@3.4.17) + class-variance-authority: 0.7.1 clsx: 2.1.1 lucide-react: 0.364.0(react@18.3.1) react: 18.3.1 react-day-picker: 8.10.1(date-fns@3.6.0)(react@18.3.1) react-dom: 18.3.1(react@18.3.1) - tailwind-merge: 2.5.4 - tailwindcss: 3.4.14 + tailwind-merge: 2.6.0 + tailwindcss: 3.4.17 transitivePeerDependencies: - '@types/react' - '@types/react-dom' @@ -5749,263 +5519,299 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 + fastq: 1.18.0 '@pkgjs/parseargs@0.11.0': optional: true '@popperjs/core@2.11.8': {} - '@radix-ui/primitive@1.1.0': {} + '@radix-ui/primitive@1.1.1': {} - '@radix-ui/react-arrow@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-arrow@1.1.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.11 - '@types/react-dom': 18.3.1 + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-collection@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-collection@1.1.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-context': 1.1.0(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.1(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.11 - '@types/react-dom': 18.3.1 + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-compose-refs@1.1.0(@types/react@18.3.11)(react@18.3.1)': + '@radix-ui/react-compose-refs@1.1.1(@types/react@18.3.18)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.11 + '@types/react': 18.3.18 - '@radix-ui/react-context@1.1.0(@types/react@18.3.11)(react@18.3.1)': + '@radix-ui/react-context@1.1.1(@types/react@18.3.18)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.11 + '@types/react': 18.3.18 - '@radix-ui/react-direction@1.1.0(@types/react@18.3.11)(react@18.3.1)': + '@radix-ui/react-direction@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.11 + '@types/react': 18.3.18 - '@radix-ui/react-dismissable-layer@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-dismissable-layer@1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-escape-keydown': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.11 - '@types/react-dom': 18.3.1 + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-focus-guards@1.1.0(@types/react@18.3.11)(react@18.3.1)': + '@radix-ui/react-focus-guards@1.1.1(@types/react@18.3.18)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.11 + '@types/react': 18.3.18 - '@radix-ui/react-focus-scope@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-focus-scope@1.1.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.11 - '@types/react-dom': 18.3.1 + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-id@1.1.0(@types/react@18.3.11)(react@18.3.1)': + '@radix-ui/react-id@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.11 - - '@radix-ui/react-popover@1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-context': 1.1.0(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-dismissable-layer': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-focus-guards': 1.1.0(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-focus-scope': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-popper': 1.2.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-portal': 1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-slot': 1.1.0(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@types/react': 18.3.18 + + '@radix-ui/react-popover@1.1.4(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-dismissable-layer': 1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-focus-guards': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-focus-scope': 1.1.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-popper': 1.2.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-portal': 1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-slot': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) aria-hidden: 1.2.4 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-remove-scroll: 2.5.7(@types/react@18.3.11)(react@18.3.1) + react-remove-scroll: 2.6.2(@types/react@18.3.18)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.11 - '@types/react-dom': 18.3.1 - - '@radix-ui/react-popper@1.2.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@floating-ui/react-dom': 2.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-arrow': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-context': 1.1.0(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-popper@1.2.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@floating-ui/react-dom': 2.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-arrow': 1.1.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-rect': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-size': 1.1.0(@types/react@18.3.18)(react@18.3.1) '@radix-ui/rect': 1.1.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.11 - '@types/react-dom': 18.3.1 + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-portal@1.1.1(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-portal@1.1.3(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.11 - '@types/react-dom': 18.3.1 + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-presence@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-presence@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.11 - '@types/react-dom': 18.3.1 + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-primitive@2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@radix-ui/react-primitive@2.0.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@radix-ui/react-slot': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-slot': 1.1.1(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.11 - '@types/react-dom': 18.3.1 - - '@radix-ui/react-roving-focus@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-collection': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-context': 1.1.0(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) + + '@radix-ui/react-roving-focus@1.1.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-collection': 1.1.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.11 - '@types/react-dom': 18.3.1 + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-slot@1.1.0(@types/react@18.3.11)(react@18.3.1)': + '@radix-ui/react-slot@1.1.1(@types/react@18.3.18)(react@18.3.1)': dependencies: - '@radix-ui/react-compose-refs': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-compose-refs': 1.1.1(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.11 - - '@radix-ui/react-tabs@1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': - dependencies: - '@radix-ui/primitive': 1.1.0 - '@radix-ui/react-context': 1.1.0(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-direction': 1.1.0(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-id': 1.1.0(@types/react@18.3.11)(react@18.3.1) - '@radix-ui/react-presence': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-primitive': 2.0.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-roving-focus': 1.1.0(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@types/react': 18.3.18 + + '@radix-ui/react-tabs@1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@radix-ui/primitive': 1.1.1 + '@radix-ui/react-context': 1.1.1(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-direction': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-id': 1.1.0(@types/react@18.3.18)(react@18.3.1) + '@radix-ui/react-presence': 1.1.2(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-primitive': 2.0.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-roving-focus': 1.1.1(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@radix-ui/react-use-controllable-state': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.11 - '@types/react-dom': 18.3.1 + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) - '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.11)(react@18.3.1)': + '@radix-ui/react-use-callback-ref@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.11 + '@types/react': 18.3.18 - '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.11)(react@18.3.1)': + '@radix-ui/react-use-controllable-state@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.11 + '@types/react': 18.3.18 - '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.11)(react@18.3.1)': + '@radix-ui/react-use-escape-keydown@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: - '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-callback-ref': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.11 + '@types/react': 18.3.18 - '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.11)(react@18.3.1)': + '@radix-ui/react-use-layout-effect@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: react: 18.3.1 optionalDependencies: - '@types/react': 18.3.11 + '@types/react': 18.3.18 - '@radix-ui/react-use-rect@1.1.0(@types/react@18.3.11)(react@18.3.1)': + '@radix-ui/react-use-rect@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: '@radix-ui/rect': 1.1.0 react: 18.3.1 optionalDependencies: - '@types/react': 18.3.11 + '@types/react': 18.3.18 - '@radix-ui/react-use-size@1.1.0(@types/react@18.3.11)(react@18.3.1)': + '@radix-ui/react-use-size@1.1.0(@types/react@18.3.18)(react@18.3.1)': dependencies: - '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.11)(react@18.3.1) + '@radix-ui/react-use-layout-effect': 1.1.0(@types/react@18.3.18)(react@18.3.1) react: 18.3.1 optionalDependencies: - '@types/react': 18.3.11 + '@types/react': 18.3.18 '@radix-ui/rect@1.1.0': {} - '@react-aria/ssr@3.9.4(react@18.3.1)': + '@react-aria/focus@3.19.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@swc/helpers': 0.5.11 + '@react-aria/interactions': 3.23.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-aria/utils': 3.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-types/shared': 3.27.0(react@18.3.1) + '@swc/helpers': 0.5.15 + clsx: 2.1.1 react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) - '@remix-run/router@1.20.0': {} + '@react-aria/interactions@3.23.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/ssr': 3.9.7(react@18.3.1) + '@react-aria/utils': 3.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@react-types/shared': 3.27.0(react@18.3.1) + '@swc/helpers': 0.5.15 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@react-aria/ssr@3.9.7(react@18.3.1)': + dependencies: + '@swc/helpers': 0.5.15 + react: 18.3.1 + + '@react-aria/utils@3.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + dependencies: + '@react-aria/ssr': 3.9.7(react@18.3.1) + '@react-stately/utils': 3.10.5(react@18.3.1) + '@react-types/shared': 3.27.0(react@18.3.1) + '@swc/helpers': 0.5.15 + clsx: 2.1.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + '@react-stately/utils@3.10.5(react@18.3.1)': + dependencies: + '@swc/helpers': 0.5.15 + react: 18.3.1 + + '@react-types/shared@3.27.0(react@18.3.1)': + dependencies: + react: 18.3.1 '@repeaterjs/repeater@3.0.6': {} - '@restart/hooks@0.4.16(react@18.3.1)': + '@restart/hooks@0.5.1(react@18.3.1)': dependencies: dequal: 2.0.3 react: 18.3.1 - '@restart/ui@1.6.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@restart/ui@1.9.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.7 + '@babel/runtime': 7.26.0 '@popperjs/core': 2.11.8 - '@react-aria/ssr': 3.9.4(react@18.3.1) - '@restart/hooks': 0.4.16(react@18.3.1) + '@react-aria/ssr': 3.9.7(react@18.3.1) + '@restart/hooks': 0.5.1(react@18.3.1) '@types/warning': 3.0.3 dequal: 2.0.3 dom-helpers: 5.2.1 @@ -6014,112 +5820,121 @@ snapshots: uncontrollable: 8.0.4(react@18.3.1) warning: 4.0.3 - '@rollup/pluginutils@5.1.0(rollup@4.24.0)': + '@rollup/pluginutils@5.1.4(rollup@4.30.1)': dependencies: - '@types/estree': 1.0.5 + '@types/estree': 1.0.6 estree-walker: 2.0.2 - picomatch: 2.3.1 + picomatch: 4.0.2 optionalDependencies: - rollup: 4.24.0 + rollup: 4.30.1 + + '@rollup/rollup-android-arm-eabi@4.30.1': + optional: true + + '@rollup/rollup-android-arm64@4.30.1': + optional: true + + '@rollup/rollup-darwin-arm64@4.30.1': + optional: true - '@rollup/rollup-android-arm-eabi@4.24.0': + '@rollup/rollup-darwin-x64@4.30.1': optional: true - '@rollup/rollup-android-arm64@4.24.0': + '@rollup/rollup-freebsd-arm64@4.30.1': optional: true - '@rollup/rollup-darwin-arm64@4.24.0': + '@rollup/rollup-freebsd-x64@4.30.1': optional: true - '@rollup/rollup-darwin-x64@4.24.0': + '@rollup/rollup-linux-arm-gnueabihf@4.30.1': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.24.0': + '@rollup/rollup-linux-arm-musleabihf@4.30.1': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.24.0': + '@rollup/rollup-linux-arm64-gnu@4.30.1': optional: true - '@rollup/rollup-linux-arm64-gnu@4.24.0': + '@rollup/rollup-linux-arm64-musl@4.30.1': optional: true - '@rollup/rollup-linux-arm64-musl@4.24.0': + '@rollup/rollup-linux-loongarch64-gnu@4.30.1': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.24.0': + '@rollup/rollup-linux-powerpc64le-gnu@4.30.1': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.24.0': + '@rollup/rollup-linux-riscv64-gnu@4.30.1': optional: true - '@rollup/rollup-linux-s390x-gnu@4.24.0': + '@rollup/rollup-linux-s390x-gnu@4.30.1': optional: true - '@rollup/rollup-linux-x64-gnu@4.24.0': + '@rollup/rollup-linux-x64-gnu@4.30.1': optional: true - '@rollup/rollup-linux-x64-musl@4.24.0': + '@rollup/rollup-linux-x64-musl@4.30.1': optional: true - '@rollup/rollup-win32-arm64-msvc@4.24.0': + '@rollup/rollup-win32-arm64-msvc@4.30.1': optional: true - '@rollup/rollup-win32-ia32-msvc@4.24.0': + '@rollup/rollup-win32-ia32-msvc@4.30.1': optional: true - '@rollup/rollup-win32-x64-msvc@4.24.0': + '@rollup/rollup-win32-x64-msvc@4.30.1': optional: true - '@sinclair/typebox@0.27.8': {} + '@rtsao/scc@1.1.0': {} - '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.24.7)': + '@svgr/babel-plugin-add-jsx-attribute@8.0.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.26.0 - '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.24.7)': + '@svgr/babel-plugin-remove-jsx-attribute@8.0.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.26.0 - '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.24.7)': + '@svgr/babel-plugin-remove-jsx-empty-expression@8.0.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.26.0 - '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.24.7)': + '@svgr/babel-plugin-replace-jsx-attribute-value@8.0.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.26.0 - '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.24.7)': + '@svgr/babel-plugin-svg-dynamic-title@8.0.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.26.0 - '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.24.7)': + '@svgr/babel-plugin-svg-em-dimensions@8.0.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.26.0 - '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.24.7)': + '@svgr/babel-plugin-transform-react-native-svg@8.1.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.26.0 - '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.24.7)': + '@svgr/babel-plugin-transform-svg-component@8.0.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.7 + '@babel/core': 7.26.0 - '@svgr/babel-preset@8.1.0(@babel/core@7.24.7)': + '@svgr/babel-preset@8.1.0(@babel/core@7.26.0)': dependencies: - '@babel/core': 7.24.7 - '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.24.7) - '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.24.7) - '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.24.7) - '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.24.7) - '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.24.7) - '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.24.7) - '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.24.7) - '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.24.7) + '@babel/core': 7.26.0 + '@svgr/babel-plugin-add-jsx-attribute': 8.0.0(@babel/core@7.26.0) + '@svgr/babel-plugin-remove-jsx-attribute': 8.0.0(@babel/core@7.26.0) + '@svgr/babel-plugin-remove-jsx-empty-expression': 8.0.0(@babel/core@7.26.0) + '@svgr/babel-plugin-replace-jsx-attribute-value': 8.0.0(@babel/core@7.26.0) + '@svgr/babel-plugin-svg-dynamic-title': 8.0.0(@babel/core@7.26.0) + '@svgr/babel-plugin-svg-em-dimensions': 8.0.0(@babel/core@7.26.0) + '@svgr/babel-plugin-transform-react-native-svg': 8.1.0(@babel/core@7.26.0) + '@svgr/babel-plugin-transform-svg-component': 8.0.0(@babel/core@7.26.0) '@svgr/core@8.1.0(typescript@5.5.4)': dependencies: - '@babel/core': 7.24.7 - '@svgr/babel-preset': 8.1.0(@babel/core@7.24.7) + '@babel/core': 7.26.0 + '@svgr/babel-preset': 8.1.0(@babel/core@7.26.0) camelcase: 6.3.0 cosmiconfig: 8.3.6(typescript@5.5.4) snake-case: 3.0.4 @@ -6129,40 +5944,93 @@ snapshots: '@svgr/hast-util-to-babel-ast@8.0.0': dependencies: - '@babel/types': 7.24.7 + '@babel/types': 7.26.5 entities: 4.5.0 '@svgr/plugin-jsx@8.1.0(@svgr/core@8.1.0(typescript@5.5.4))': dependencies: - '@babel/core': 7.24.7 - '@svgr/babel-preset': 8.1.0(@babel/core@7.24.7) + '@babel/core': 7.26.0 + '@svgr/babel-preset': 8.1.0(@babel/core@7.26.0) '@svgr/core': 8.1.0(typescript@5.5.4) '@svgr/hast-util-to-babel-ast': 8.0.0 svg-parser: 2.0.4 transitivePeerDependencies: - supports-color - '@swc/helpers@0.5.11': + '@swc/core-darwin-arm64@1.10.7': + optional: true + + '@swc/core-darwin-x64@1.10.7': + optional: true + + '@swc/core-linux-arm-gnueabihf@1.10.7': + optional: true + + '@swc/core-linux-arm64-gnu@1.10.7': + optional: true + + '@swc/core-linux-arm64-musl@1.10.7': + optional: true + + '@swc/core-linux-x64-gnu@1.10.7': + optional: true + + '@swc/core-linux-x64-musl@1.10.7': + optional: true + + '@swc/core-win32-arm64-msvc@1.10.7': + optional: true + + '@swc/core-win32-ia32-msvc@1.10.7': + optional: true + + '@swc/core-win32-x64-msvc@1.10.7': + optional: true + + '@swc/core@1.10.7(@swc/helpers@0.5.15)': dependencies: - tslib: 2.6.3 + '@swc/counter': 0.1.3 + '@swc/types': 0.1.17 + optionalDependencies: + '@swc/core-darwin-arm64': 1.10.7 + '@swc/core-darwin-x64': 1.10.7 + '@swc/core-linux-arm-gnueabihf': 1.10.7 + '@swc/core-linux-arm64-gnu': 1.10.7 + '@swc/core-linux-arm64-musl': 1.10.7 + '@swc/core-linux-x64-gnu': 1.10.7 + '@swc/core-linux-x64-musl': 1.10.7 + '@swc/core-win32-arm64-msvc': 1.10.7 + '@swc/core-win32-ia32-msvc': 1.10.7 + '@swc/core-win32-x64-msvc': 1.10.7 + '@swc/helpers': 0.5.15 - '@tailwindcss/forms@0.5.7(tailwindcss@3.4.14)': + '@swc/counter@0.1.3': {} + + '@swc/helpers@0.5.15': + dependencies: + tslib: 2.8.1 + + '@swc/types@0.1.17': + dependencies: + '@swc/counter': 0.1.3 + + '@tailwindcss/forms@0.5.9(tailwindcss@3.4.17)': dependencies: mini-svg-data-uri: 1.4.4 - tailwindcss: 3.4.14 + tailwindcss: 3.4.17 - '@tanstack/react-virtual@3.8.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@tanstack/react-virtual@3.11.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@tanstack/virtual-core': 3.8.2 + '@tanstack/virtual-core': 3.11.2 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - '@tanstack/virtual-core@3.8.2': {} + '@tanstack/virtual-core@3.11.2': {} - '@testing-library/dom@10.3.1': + '@testing-library/dom@10.4.0': dependencies: - '@babel/code-frame': 7.25.7 - '@babel/runtime': 7.24.7 + '@babel/code-frame': 7.26.2 + '@babel/runtime': 7.26.0 '@types/aria-query': 5.0.4 aria-query: 5.3.0 chalk: 4.1.2 @@ -6170,52 +6038,31 @@ snapshots: lz-string: 1.5.0 pretty-format: 27.5.1 - '@testing-library/jest-dom@6.6.2': + '@testing-library/jest-dom@6.6.3': dependencies: - '@adobe/css-tools': 4.4.0 - aria-query: 5.3.0 + '@adobe/css-tools': 4.4.1 + aria-query: 5.3.2 chalk: 3.0.0 css.escape: 1.5.1 dom-accessibility-api: 0.6.3 lodash: 4.17.21 redent: 3.0.0 - '@testing-library/react@16.0.1(@testing-library/dom@10.3.1)(@types/react-dom@18.3.1)(@types/react@18.3.11)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': + '@testing-library/react@16.2.0(@testing-library/dom@10.4.0)(@types/react-dom@18.3.5(@types/react@18.3.18))(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.24.7 - '@testing-library/dom': 10.3.1 + '@babel/runtime': 7.26.0 + '@testing-library/dom': 10.4.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) optionalDependencies: - '@types/react': 18.3.11 - '@types/react-dom': 18.3.1 + '@types/react': 18.3.18 + '@types/react-dom': 18.3.5(@types/react@18.3.18) '@types/aria-query@5.0.4': {} - '@types/babel__core@7.20.5': - dependencies: - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 - '@types/babel__generator': 7.6.8 - '@types/babel__template': 7.4.4 - '@types/babel__traverse': 7.20.6 + '@types/chroma-js@2.4.5': {} - '@types/babel__generator@7.6.8': - dependencies: - '@babel/types': 7.24.7 - - '@types/babel__template@7.4.4': - dependencies: - '@babel/parser': 7.24.7 - '@babel/types': 7.24.7 - - '@types/babel__traverse@7.20.6': - dependencies: - '@babel/types': 7.24.7 - - '@types/chroma-js@2.4.4': {} - - '@types/estree@1.0.5': {} + '@types/cookie@0.6.0': {} '@types/estree@1.0.6': {} @@ -6223,233 +6070,299 @@ snapshots: '@types/json5@0.0.29': {} - '@types/node@22.7.8': + '@types/node@22.10.7': dependencies: - undici-types: 6.19.8 + undici-types: 6.20.0 '@types/numeral@2.0.5': {} - '@types/prop-types@15.7.12': {} + '@types/prop-types@15.7.14': {} - '@types/react-dom@18.3.1': + '@types/react-dom@18.3.5(@types/react@18.3.18)': dependencies: - '@types/react': 18.3.11 + '@types/react': 18.3.18 '@types/react-timeago@4.1.7': dependencies: - '@types/react': 18.3.11 + '@types/react': 18.3.18 '@types/react-window-infinite-loader@1.0.9': dependencies: - '@types/react': 18.3.11 + '@types/react': 18.3.18 '@types/react-window': 1.8.8 '@types/react-window@1.8.8': dependencies: - '@types/react': 18.3.11 + '@types/react': 18.3.18 - '@types/react@18.3.11': + '@types/react@18.3.18': dependencies: - '@types/prop-types': 15.7.12 + '@types/prop-types': 15.7.14 csstype: 3.1.3 '@types/warning@3.0.3': {} - '@types/ws@8.5.10': + '@types/ws@8.5.13': dependencies: - '@types/node': 22.7.8 - - '@types/zen-observable@0.8.7': {} + '@types/node': 22.10.7 - '@typescript-eslint/eslint-plugin@7.16.0(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4)': + '@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4)': dependencies: - '@eslint-community/regexpp': 4.11.0 - '@typescript-eslint/parser': 7.16.0(eslint@8.57.0)(typescript@5.5.4) - '@typescript-eslint/scope-manager': 7.16.0 - '@typescript-eslint/type-utils': 7.16.0(eslint@8.57.0)(typescript@5.5.4) - '@typescript-eslint/utils': 7.16.0(eslint@8.57.0)(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 7.16.0 - eslint: 8.57.0 + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.5.4) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/type-utils': 7.18.0(eslint@8.57.1)(typescript@5.5.4) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 7.18.0 + eslint: 8.57.1 graphemer: 1.4.0 - ignore: 5.3.1 + ignore: 5.3.2 natural-compare: 1.4.0 - ts-api-utils: 1.3.0(typescript@5.5.4) + ts-api-utils: 1.4.3(typescript@5.5.4) optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.5.4)': + '@typescript-eslint/eslint-plugin@8.20.0(@typescript-eslint/parser@8.20.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4)': + dependencies: + '@eslint-community/regexpp': 4.12.1 + '@typescript-eslint/parser': 8.20.0(eslint@8.57.1)(typescript@5.5.4) + '@typescript-eslint/scope-manager': 8.20.0 + '@typescript-eslint/type-utils': 8.20.0(eslint@8.57.1)(typescript@5.5.4) + '@typescript-eslint/utils': 8.20.0(eslint@8.57.1)(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.20.0 + eslint: 8.57.1 + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + ts-api-utils: 2.0.0(typescript@5.5.4) + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4)': dependencies: - '@typescript-eslint/scope-manager': 7.16.0 - '@typescript-eslint/types': 7.16.0 - '@typescript-eslint/typescript-estree': 7.16.0(typescript@5.5.4) - '@typescript-eslint/visitor-keys': 7.16.0 - debug: 4.3.5 - eslint: 8.57.0 + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.4.0 + eslint: 8.57.1 optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@7.16.0': + '@typescript-eslint/parser@8.20.0(eslint@8.57.1)(typescript@5.5.4)': dependencies: - '@typescript-eslint/types': 7.16.0 - '@typescript-eslint/visitor-keys': 7.16.0 + '@typescript-eslint/scope-manager': 8.20.0 + '@typescript-eslint/types': 8.20.0 + '@typescript-eslint/typescript-estree': 8.20.0(typescript@5.5.4) + '@typescript-eslint/visitor-keys': 8.20.0 + debug: 4.4.0 + eslint: 8.57.1 + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color - '@typescript-eslint/type-utils@7.16.0(eslint@8.57.0)(typescript@5.5.4)': + '@typescript-eslint/scope-manager@7.18.0': dependencies: - '@typescript-eslint/typescript-estree': 7.16.0(typescript@5.5.4) - '@typescript-eslint/utils': 7.16.0(eslint@8.57.0)(typescript@5.5.4) - debug: 4.3.5 - eslint: 8.57.0 - ts-api-utils: 1.3.0(typescript@5.5.4) + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 + + '@typescript-eslint/scope-manager@8.20.0': + dependencies: + '@typescript-eslint/types': 8.20.0 + '@typescript-eslint/visitor-keys': 8.20.0 + + '@typescript-eslint/type-utils@7.18.0(eslint@8.57.1)(typescript@5.5.4)': + dependencies: + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4) + '@typescript-eslint/utils': 7.18.0(eslint@8.57.1)(typescript@5.5.4) + debug: 4.4.0 + eslint: 8.57.1 + ts-api-utils: 1.4.3(typescript@5.5.4) optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@7.16.0': {} + '@typescript-eslint/type-utils@8.20.0(eslint@8.57.1)(typescript@5.5.4)': + dependencies: + '@typescript-eslint/typescript-estree': 8.20.0(typescript@5.5.4) + '@typescript-eslint/utils': 8.20.0(eslint@8.57.1)(typescript@5.5.4) + debug: 4.4.0 + eslint: 8.57.1 + ts-api-utils: 2.0.0(typescript@5.5.4) + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@7.18.0': {} - '@typescript-eslint/typescript-estree@7.16.0(typescript@5.5.4)': + '@typescript-eslint/types@8.20.0': {} + + '@typescript-eslint/typescript-estree@7.18.0(typescript@5.5.4)': dependencies: - '@typescript-eslint/types': 7.16.0 - '@typescript-eslint/visitor-keys': 7.16.0 - debug: 4.3.5 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/visitor-keys': 7.18.0 + debug: 4.4.0 globby: 11.1.0 is-glob: 4.0.3 minimatch: 9.0.5 - semver: 7.6.2 - ts-api-utils: 1.3.0(typescript@5.5.4) + semver: 7.6.3 + ts-api-utils: 1.4.3(typescript@5.5.4) optionalDependencies: typescript: 5.5.4 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.16.0(eslint@8.57.0)(typescript@5.5.4)': + '@typescript-eslint/typescript-estree@8.20.0(typescript@5.5.4)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@typescript-eslint/scope-manager': 7.16.0 - '@typescript-eslint/types': 7.16.0 - '@typescript-eslint/typescript-estree': 7.16.0(typescript@5.5.4) - eslint: 8.57.0 + '@typescript-eslint/types': 8.20.0 + '@typescript-eslint/visitor-keys': 8.20.0 + debug: 4.4.0 + fast-glob: 3.3.3 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 2.0.0(typescript@5.5.4) + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@7.18.0(eslint@8.57.1)(typescript@5.5.4)': + dependencies: + '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) + '@typescript-eslint/scope-manager': 7.18.0 + '@typescript-eslint/types': 7.18.0 + '@typescript-eslint/typescript-estree': 7.18.0(typescript@5.5.4) + eslint: 8.57.1 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/visitor-keys@7.16.0': + '@typescript-eslint/utils@8.20.0(eslint@8.57.1)(typescript@5.5.4)': dependencies: - '@typescript-eslint/types': 7.16.0 + '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) + '@typescript-eslint/scope-manager': 8.20.0 + '@typescript-eslint/types': 8.20.0 + '@typescript-eslint/typescript-estree': 8.20.0(typescript@5.5.4) + eslint: 8.57.1 + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/visitor-keys@7.18.0': + dependencies: + '@typescript-eslint/types': 7.18.0 eslint-visitor-keys: 3.4.3 - '@ungap/structured-clone@1.2.0': {} + '@typescript-eslint/visitor-keys@8.20.0': + dependencies: + '@typescript-eslint/types': 8.20.0 + eslint-visitor-keys: 4.2.0 + + '@ungap/structured-clone@1.2.1': {} - '@vitejs/plugin-react@4.3.3(vite@5.4.9(@types/node@22.7.8))': + '@vitejs/plugin-react-swc@3.7.2(@swc/helpers@0.5.15)(vite@5.4.11(@types/node@22.10.7))': dependencies: - '@babel/core': 7.25.8 - '@babel/plugin-transform-react-jsx-self': 7.24.7(@babel/core@7.25.8) - '@babel/plugin-transform-react-jsx-source': 7.24.7(@babel/core@7.25.8) - '@types/babel__core': 7.20.5 - react-refresh: 0.14.2 - vite: 5.4.9(@types/node@22.7.8) + '@swc/core': 1.10.7(@swc/helpers@0.5.15) + vite: 5.4.11(@types/node@22.10.7) transitivePeerDependencies: - - supports-color + - '@swc/helpers' - '@vitest/coverage-v8@1.6.0(vitest@1.6.0(@types/node@22.7.8)(jsdom@25.0.1))': + '@vitest/expect@2.1.8': dependencies: - '@ampproject/remapping': 2.3.0 - '@bcoe/v8-coverage': 0.2.3 - debug: 4.3.7 - istanbul-lib-coverage: 3.2.2 - istanbul-lib-report: 3.0.1 - istanbul-lib-source-maps: 5.0.6 - istanbul-reports: 3.1.7 - magic-string: 0.30.12 - magicast: 0.3.4 - picocolors: 1.1.1 - std-env: 3.7.0 - strip-literal: 2.1.0 - test-exclude: 6.0.0 - vitest: 1.6.0(@types/node@22.7.8)(jsdom@25.0.1) - transitivePeerDependencies: - - supports-color + '@vitest/spy': 2.1.8 + '@vitest/utils': 2.1.8 + chai: 5.1.2 + tinyrainbow: 1.2.0 - '@vitest/expect@1.6.0': + '@vitest/mocker@2.1.8(vite@5.4.11(@types/node@22.10.7))': dependencies: - '@vitest/spy': 1.6.0 - '@vitest/utils': 1.6.0 - chai: 4.4.1 + '@vitest/spy': 2.1.8 + estree-walker: 3.0.3 + magic-string: 0.30.17 + optionalDependencies: + vite: 5.4.11(@types/node@22.10.7) - '@vitest/runner@1.6.0': + '@vitest/pretty-format@2.1.8': dependencies: - '@vitest/utils': 1.6.0 - p-limit: 5.0.0 + tinyrainbow: 1.2.0 + + '@vitest/runner@2.1.8': + dependencies: + '@vitest/utils': 2.1.8 pathe: 1.1.2 - '@vitest/snapshot@1.6.0': + '@vitest/snapshot@2.1.8': dependencies: - magic-string: 0.30.10 + '@vitest/pretty-format': 2.1.8 + magic-string: 0.30.17 pathe: 1.1.2 - pretty-format: 29.7.0 - '@vitest/spy@1.6.0': + '@vitest/spy@2.1.8': dependencies: - tinyspy: 2.2.1 + tinyspy: 3.0.2 - '@vitest/utils@1.6.0': + '@vitest/utils@2.1.8': dependencies: - diff-sequences: 29.6.3 - estree-walker: 3.0.3 - loupe: 2.3.7 - pretty-format: 29.7.0 + '@vitest/pretty-format': 2.1.8 + loupe: 3.1.2 + tinyrainbow: 1.2.0 - '@whatwg-node/fetch@0.9.22': + '@whatwg-node/disposablestack@0.0.5': dependencies: - '@whatwg-node/node-fetch': 0.5.27 + tslib: 2.8.1 + + '@whatwg-node/fetch@0.10.3': + dependencies: + '@whatwg-node/node-fetch': 0.7.7 + urlpattern-polyfill: 10.0.0 + + '@whatwg-node/fetch@0.9.23': + dependencies: + '@whatwg-node/node-fetch': 0.6.0 urlpattern-polyfill: 10.0.0 - '@whatwg-node/node-fetch@0.5.27': + '@whatwg-node/node-fetch@0.6.0': dependencies: '@kamilkisiela/fast-url-parser': 1.1.4 busboy: 1.6.0 fast-querystring: 1.1.2 - tslib: 2.6.3 + tslib: 2.8.1 + + '@whatwg-node/node-fetch@0.7.7': + dependencies: + '@whatwg-node/disposablestack': 0.0.5 + busboy: 1.6.0 + tslib: 2.8.1 '@wry/caches@1.0.1': dependencies: - tslib: 2.6.3 + tslib: 2.8.1 '@wry/context@0.7.4': dependencies: - tslib: 2.6.3 + tslib: 2.8.1 '@wry/equality@0.5.7': dependencies: - tslib: 2.6.3 - - '@wry/trie@0.4.3': - dependencies: - tslib: 2.6.3 + tslib: 2.8.1 '@wry/trie@0.5.0': dependencies: - tslib: 2.6.3 + tslib: 2.8.1 - acorn-jsx@5.3.2(acorn@8.12.1): + acorn-jsx@5.3.2(acorn@8.14.0): dependencies: - acorn: 8.12.1 + acorn: 8.14.0 - acorn-walk@8.3.3: - dependencies: - acorn: 8.12.1 + acorn@8.14.0: {} - acorn@8.12.1: {} - - agent-base@7.1.1: - dependencies: - debug: 4.3.7 - transitivePeerDependencies: - - supports-color + agent-base@7.1.3: {} aggregate-error@3.1.0: dependencies: @@ -6469,11 +6382,7 @@ snapshots: ansi-regex@5.0.1: {} - ansi-regex@6.0.1: {} - - ansi-styles@3.2.1: - dependencies: - color-convert: 1.9.3 + ansi-regex@6.1.0: {} ansi-styles@4.3.0: dependencies: @@ -6496,157 +6405,141 @@ snapshots: aria-hidden@1.2.4: dependencies: - tslib: 2.6.3 - - aria-query@5.1.3: - dependencies: - deep-equal: 2.2.3 + tslib: 2.8.1 aria-query@5.3.0: dependencies: dequal: 2.0.3 - array-buffer-byte-length@1.0.1: + aria-query@5.3.2: {} + + array-buffer-byte-length@1.0.2: dependencies: - call-bind: 1.0.7 - is-array-buffer: 3.0.4 + call-bound: 1.0.3 + is-array-buffer: 3.0.5 array-includes@3.1.8: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.4 - is-string: 1.0.7 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 + get-intrinsic: 1.2.7 + is-string: 1.1.1 array-union@2.1.0: {} array.prototype.findlast@1.2.5: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.9 es-errors: 1.3.0 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 es-shim-unscopables: 1.0.2 array.prototype.findlastindex@1.2.5: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.9 es-errors: 1.3.0 - es-object-atoms: 1.0.0 - es-shim-unscopables: 1.0.2 - - array.prototype.flat@1.3.2: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-abstract: 1.23.3 + es-object-atoms: 1.1.1 es-shim-unscopables: 1.0.2 - array.prototype.flatmap@1.3.2: + array.prototype.flat@1.3.3: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.9 es-shim-unscopables: 1.0.2 - array.prototype.toreversed@1.1.2: + array.prototype.flatmap@1.3.3: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.9 es-shim-unscopables: 1.0.2 array.prototype.tosorted@1.1.4: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.9 es-errors: 1.3.0 es-shim-unscopables: 1.0.2 - arraybuffer.prototype.slice@1.0.3: + arraybuffer.prototype.slice@1.0.4: dependencies: - array-buffer-byte-length: 1.0.1 - call-bind: 1.0.7 + array-buffer-byte-length: 1.0.2 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.9 es-errors: 1.3.0 - get-intrinsic: 1.2.4 - is-array-buffer: 3.0.4 - is-shared-array-buffer: 1.0.3 + get-intrinsic: 1.2.7 + is-array-buffer: 3.0.5 asap@2.0.6: {} - assertion-error@1.1.0: {} + assertion-error@2.0.1: {} ast-types-flow@0.0.8: {} astral-regex@2.0.0: {} - async-mutex@0.5.0: - dependencies: - tslib: 2.6.3 - asynckit@0.4.0: {} auto-bind@4.0.0: {} - autoprefixer@10.4.19(postcss@8.4.39): + autoprefixer@10.4.20(postcss@8.5.1): dependencies: - browserslist: 4.23.2 - caniuse-lite: 1.0.30001641 + browserslist: 4.24.4 + caniuse-lite: 1.0.30001692 fraction.js: 4.3.7 normalize-range: 0.1.2 - picocolors: 1.0.1 - postcss: 8.4.39 + picocolors: 1.1.1 + postcss: 8.5.1 postcss-value-parser: 4.2.0 available-typed-arrays@1.0.7: dependencies: possible-typed-array-names: 1.0.0 - axe-core@4.9.1: {} + axe-core@4.10.2: {} - axobject-query@3.1.1: - dependencies: - deep-equal: 2.2.3 + axobject-query@4.1.0: {} babel-plugin-syntax-trailing-function-commas@7.0.0-beta.0: {} - babel-preset-fbjs@3.4.0(@babel/core@7.25.8): - dependencies: - '@babel/core': 7.25.8 - '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.25.8) - '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.25.8) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.25.8) - '@babel/plugin-syntax-flow': 7.24.7(@babel/core@7.25.8) - '@babel/plugin-syntax-jsx': 7.24.7(@babel/core@7.25.8) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.25.8) - '@babel/plugin-transform-arrow-functions': 7.24.7(@babel/core@7.25.8) - '@babel/plugin-transform-block-scoped-functions': 7.24.7(@babel/core@7.25.8) - '@babel/plugin-transform-block-scoping': 7.24.7(@babel/core@7.25.8) - '@babel/plugin-transform-classes': 7.24.7(@babel/core@7.25.8) - '@babel/plugin-transform-computed-properties': 7.24.7(@babel/core@7.25.8) - '@babel/plugin-transform-destructuring': 7.24.7(@babel/core@7.25.8) - '@babel/plugin-transform-flow-strip-types': 7.24.7(@babel/core@7.25.8) - '@babel/plugin-transform-for-of': 7.24.7(@babel/core@7.25.8) - '@babel/plugin-transform-function-name': 7.24.7(@babel/core@7.25.8) - '@babel/plugin-transform-literals': 7.24.7(@babel/core@7.25.8) - '@babel/plugin-transform-member-expression-literals': 7.24.7(@babel/core@7.25.8) - '@babel/plugin-transform-modules-commonjs': 7.24.7(@babel/core@7.25.8) - '@babel/plugin-transform-object-super': 7.24.7(@babel/core@7.25.8) - '@babel/plugin-transform-parameters': 7.24.7(@babel/core@7.25.8) - '@babel/plugin-transform-property-literals': 7.24.7(@babel/core@7.25.8) - '@babel/plugin-transform-react-display-name': 7.24.7(@babel/core@7.25.8) - '@babel/plugin-transform-react-jsx': 7.24.7(@babel/core@7.25.8) - '@babel/plugin-transform-shorthand-properties': 7.24.7(@babel/core@7.25.8) - '@babel/plugin-transform-spread': 7.24.7(@babel/core@7.25.8) - '@babel/plugin-transform-template-literals': 7.24.7(@babel/core@7.25.8) + babel-preset-fbjs@3.4.0(@babel/core@7.26.0): + dependencies: + '@babel/core': 7.26.0 + '@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.26.0) + '@babel/plugin-proposal-object-rest-spread': 7.20.7(@babel/core@7.26.0) + '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.26.0) + '@babel/plugin-syntax-flow': 7.26.0(@babel/core@7.26.0) + '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.26.0) + '@babel/plugin-transform-arrow-functions': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-block-scoped-functions': 7.26.5(@babel/core@7.26.0) + '@babel/plugin-transform-block-scoping': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-classes': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-computed-properties': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-destructuring': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-flow-strip-types': 7.26.5(@babel/core@7.26.0) + '@babel/plugin-transform-for-of': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-function-name': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-literals': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-member-expression-literals': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-modules-commonjs': 7.26.3(@babel/core@7.26.0) + '@babel/plugin-transform-object-super': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-parameters': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-property-literals': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-react-display-name': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-react-jsx': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-shorthand-properties': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-spread': 7.25.9(@babel/core@7.26.0) + '@babel/plugin-transform-template-literals': 7.25.9(@babel/core@7.26.0) babel-plugin-syntax-trailing-function-commas: 7.0.0-beta.0 transitivePeerDependencies: - supports-color @@ -6676,19 +6569,12 @@ snapshots: dependencies: fill-range: 7.1.1 - browserslist@4.23.2: - dependencies: - caniuse-lite: 1.0.30001641 - electron-to-chromium: 1.4.823 - node-releases: 2.0.14 - update-browserslist-db: 1.1.0(browserslist@4.23.2) - - browserslist@4.24.2: + browserslist@4.24.4: dependencies: - caniuse-lite: 1.0.30001669 - electron-to-chromium: 1.5.42 - node-releases: 2.0.18 - update-browserslist-db: 1.1.1(browserslist@4.24.2) + caniuse-lite: 1.0.30001692 + electron-to-chromium: 1.5.83 + node-releases: 2.0.19 + update-browserslist-db: 1.1.2(browserslist@4.24.4) bser@2.1.1: dependencies: @@ -6705,52 +6591,49 @@ snapshots: cac@6.7.14: {} - call-bind@1.0.7: + call-bind-apply-helpers@1.0.1: dependencies: - es-define-property: 1.0.0 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.4 + + call-bind@1.0.8: + dependencies: + call-bind-apply-helpers: 1.0.1 + es-define-property: 1.0.1 + get-intrinsic: 1.2.7 set-function-length: 1.2.2 + call-bound@1.0.3: + dependencies: + call-bind-apply-helpers: 1.0.1 + get-intrinsic: 1.2.7 + callsites@3.1.0: {} camel-case@4.1.2: dependencies: pascal-case: 3.1.2 - tslib: 2.6.3 + tslib: 2.8.1 camelcase-css@2.0.1: {} - camelcase@5.3.1: {} - camelcase@6.3.0: {} - caniuse-lite@1.0.30001641: {} - - caniuse-lite@1.0.30001669: {} + caniuse-lite@1.0.30001692: {} capital-case@1.0.4: dependencies: no-case: 3.0.4 - tslib: 2.6.3 + tslib: 2.8.1 upper-case-first: 2.0.2 - chai@4.4.1: - dependencies: - assertion-error: 1.1.0 - check-error: 1.0.3 - deep-eql: 4.1.4 - get-func-name: 2.0.2 - loupe: 2.3.7 - pathval: 1.1.1 - type-detect: 4.0.8 - - chalk@2.4.2: + chai@5.1.2: dependencies: - ansi-styles: 3.2.1 - escape-string-regexp: 1.0.5 - supports-color: 5.5.0 + assertion-error: 2.0.1 + check-error: 2.1.1 + deep-eql: 5.0.2 + loupe: 3.1.2 + pathval: 2.0.0 chalk@3.0.0: dependencies: @@ -6788,13 +6671,11 @@ snapshots: path-case: 3.0.4 sentence-case: 3.0.4 snake-case: 3.0.4 - tslib: 2.6.3 + tslib: 2.8.1 chardet@0.7.0: {} - check-error@1.0.3: - dependencies: - get-func-name: 2.0.2 + check-error@2.1.1: {} chokidar@3.6.0: dependencies: @@ -6808,11 +6689,11 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - chroma-js@2.4.2: {} + chroma-js@2.6.0: {} - class-variance-authority@0.7.0: + class-variance-authority@0.7.1: dependencies: - clsx: 2.0.0 + clsx: 2.1.1 clean-stack@2.2.0: {} @@ -6824,18 +6705,10 @@ snapshots: cli-truncate@2.1.0: dependencies: - slice-ansi: 3.0.0 - string-width: 4.2.3 - - cli-width@3.0.0: {} - - client-only@0.0.1: {} - - cliui@6.0.0: - dependencies: + slice-ansi: 3.0.0 string-width: 4.2.3 - strip-ansi: 6.0.1 - wrap-ansi: 6.2.0 + + cli-width@3.0.0: {} cliui@8.0.1: dependencies: @@ -6845,20 +6718,12 @@ snapshots: clone@1.0.4: {} - clsx@2.0.0: {} - clsx@2.1.1: {} - color-convert@1.9.3: - dependencies: - color-name: 1.1.3 - color-convert@2.0.1: dependencies: color-name: 1.1.4 - color-name@1.1.3: {} - color-name@1.1.4: {} colorette@2.0.20: {} @@ -6873,18 +6738,20 @@ snapshots: concat-map@0.0.1: {} - confbox@0.1.7: {} - confusing-browser-globals@1.0.11: {} constant-case@3.0.4: dependencies: no-case: 3.0.4 - tslib: 2.6.3 + tslib: 2.8.1 upper-case: 2.0.2 convert-source-map@2.0.0: {} + cookie@1.0.2: {} + + core-util-is@1.0.3: {} + cosmiconfig@8.3.6(typescript@5.5.4): dependencies: import-fresh: 3.3.0 @@ -6894,15 +6761,15 @@ snapshots: optionalDependencies: typescript: 5.5.4 - cross-fetch@3.1.8: + cross-fetch@3.2.0: dependencies: node-fetch: 2.7.0 transitivePeerDependencies: - encoding - cross-inspect@1.0.0: + cross-inspect@1.0.1: dependencies: - tslib: 2.6.3 + tslib: 2.8.1 cross-spawn@7.0.6: dependencies: @@ -6914,38 +6781,41 @@ snapshots: cssesc@3.0.0: {} - cssstyle@4.1.0: + cssstyle@4.2.1: dependencies: - rrweb-cssom: 0.7.1 + '@asamuzakjp/css-color': 2.8.3 + rrweb-cssom: 0.8.0 csstype@3.1.3: {} damerau-levenshtein@1.0.8: {} + data-uri-to-buffer@4.0.1: {} + data-urls@5.0.0: dependencies: whatwg-mimetype: 4.0.0 - whatwg-url: 14.0.0 + whatwg-url: 14.1.0 - data-view-buffer@1.0.1: + data-view-buffer@1.0.2: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.3 es-errors: 1.3.0 - is-data-view: 1.0.1 + is-data-view: 1.0.2 - data-view-byte-length@1.0.1: + data-view-byte-length@1.0.2: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.3 es-errors: 1.3.0 - is-data-view: 1.0.1 + is-data-view: 1.0.2 - data-view-byte-offset@1.0.0: + data-view-byte-offset@1.0.1: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.3 es-errors: 1.3.0 - is-data-view: 1.0.1 + is-data-view: 1.0.2 - dataloader@2.2.2: {} + dataloader@2.2.3: {} date-fns-tz@3.2.0(date-fns@3.6.0): dependencies: @@ -6959,42 +6829,13 @@ snapshots: dependencies: ms: 2.1.3 - debug@4.3.5: - dependencies: - ms: 2.1.2 - - debug@4.3.7: + debug@4.4.0: dependencies: ms: 2.1.3 - decamelize@1.2.0: {} - decimal.js@10.4.3: {} - deep-eql@4.1.4: - dependencies: - type-detect: 4.0.8 - - deep-equal@2.2.3: - dependencies: - array-buffer-byte-length: 1.0.1 - call-bind: 1.0.7 - es-get-iterator: 1.1.3 - get-intrinsic: 1.2.4 - is-arguments: 1.1.1 - is-array-buffer: 3.0.4 - is-date-object: 1.0.5 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.3 - isarray: 2.0.5 - object-is: 1.1.6 - object-keys: 1.1.1 - object.assign: 4.1.5 - regexp.prototype.flags: 1.5.2 - side-channel: 1.0.6 - which-boxed-primitive: 1.0.2 - which-collection: 1.0.2 - which-typed-array: 1.1.15 + deep-eql@5.0.2: {} deep-is@0.1.4: {} @@ -7004,11 +6845,9 @@ snapshots: define-data-property@1.1.4: dependencies: - es-define-property: 1.0.0 + es-define-property: 1.0.1 es-errors: 1.3.0 - gopd: 1.0.1 - - define-lazy-prop@2.0.0: {} + gopd: 1.2.0 define-properties@1.2.1: dependencies: @@ -7028,16 +6867,14 @@ snapshots: didyoumean@1.2.2: {} - diff-sequences@29.6.3: {} - dir-glob@3.0.1: dependencies: path-type: 4.0.0 distinct-colors@3.0.0: dependencies: - '@types/chroma-js': 2.4.4 - chroma-js: 2.4.2 + '@types/chroma-js': 2.4.5 + chroma-js: 2.6.0 mout: 1.2.4 dlv@1.1.3: {} @@ -7056,23 +6893,27 @@ snapshots: dom-helpers@5.2.1: dependencies: - '@babel/runtime': 7.24.7 + '@babel/runtime': 7.26.0 csstype: 3.1.3 dot-case@3.0.4: dependencies: no-case: 3.0.4 - tslib: 2.6.3 + tslib: 2.8.1 - dotenv@16.4.5: {} + dotenv@16.4.7: {} dset@3.1.4: {} - eastasianwidth@0.2.0: {} + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 - electron-to-chromium@1.4.823: {} + eastasianwidth@0.2.0: {} - electron-to-chromium@1.5.42: {} + electron-to-chromium@1.5.83: {} emoji-regex@8.0.0: {} @@ -7084,97 +6925,93 @@ snapshots: dependencies: is-arrayish: 0.2.1 - es-abstract@1.23.3: + es-abstract@1.23.9: dependencies: - array-buffer-byte-length: 1.0.1 - arraybuffer.prototype.slice: 1.0.3 + array-buffer-byte-length: 1.0.2 + arraybuffer.prototype.slice: 1.0.4 available-typed-arrays: 1.0.7 - call-bind: 1.0.7 - data-view-buffer: 1.0.1 - data-view-byte-length: 1.0.1 - data-view-byte-offset: 1.0.0 - es-define-property: 1.0.0 + call-bind: 1.0.8 + call-bound: 1.0.3 + data-view-buffer: 1.0.2 + data-view-byte-length: 1.0.2 + data-view-byte-offset: 1.0.1 + es-define-property: 1.0.1 es-errors: 1.3.0 - es-object-atoms: 1.0.0 - es-set-tostringtag: 2.0.3 - es-to-primitive: 1.2.1 - function.prototype.name: 1.1.6 - get-intrinsic: 1.2.4 - get-symbol-description: 1.0.2 + es-object-atoms: 1.1.1 + es-set-tostringtag: 2.1.0 + es-to-primitive: 1.3.0 + function.prototype.name: 1.1.8 + get-intrinsic: 1.2.7 + get-proto: 1.0.1 + get-symbol-description: 1.1.0 globalthis: 1.0.4 - gopd: 1.0.1 + gopd: 1.2.0 has-property-descriptors: 1.0.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 + has-proto: 1.2.0 + has-symbols: 1.1.0 hasown: 2.0.2 - internal-slot: 1.0.7 - is-array-buffer: 3.0.4 + internal-slot: 1.1.0 + is-array-buffer: 3.0.5 is-callable: 1.2.7 - is-data-view: 1.0.1 - is-negative-zero: 2.0.3 - is-regex: 1.1.4 - is-shared-array-buffer: 1.0.3 - is-string: 1.0.7 - is-typed-array: 1.1.13 - is-weakref: 1.0.2 - object-inspect: 1.13.2 + is-data-view: 1.0.2 + is-regex: 1.2.1 + is-shared-array-buffer: 1.0.4 + is-string: 1.1.1 + is-typed-array: 1.1.15 + is-weakref: 1.1.0 + math-intrinsics: 1.1.0 + object-inspect: 1.13.3 object-keys: 1.1.1 - object.assign: 4.1.5 - regexp.prototype.flags: 1.5.2 - safe-array-concat: 1.1.2 - safe-regex-test: 1.0.3 - string.prototype.trim: 1.2.9 - string.prototype.trimend: 1.0.8 + object.assign: 4.1.7 + own-keys: 1.0.1 + regexp.prototype.flags: 1.5.4 + safe-array-concat: 1.1.3 + safe-push-apply: 1.0.0 + safe-regex-test: 1.1.0 + set-proto: 1.0.0 + string.prototype.trim: 1.2.10 + string.prototype.trimend: 1.0.9 string.prototype.trimstart: 1.0.8 - typed-array-buffer: 1.0.2 - typed-array-byte-length: 1.0.1 - typed-array-byte-offset: 1.0.2 - typed-array-length: 1.0.6 - unbox-primitive: 1.0.2 - which-typed-array: 1.1.15 + typed-array-buffer: 1.0.3 + typed-array-byte-length: 1.0.3 + typed-array-byte-offset: 1.0.4 + typed-array-length: 1.0.7 + unbox-primitive: 1.1.0 + which-typed-array: 1.1.18 - es-define-property@1.0.0: - dependencies: - get-intrinsic: 1.2.4 + es-define-property@1.0.1: {} es-errors@1.3.0: {} - es-get-iterator@1.1.3: + es-iterator-helpers@1.2.1: dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 - is-arguments: 1.1.1 - is-map: 2.0.3 - is-set: 2.0.3 - is-string: 1.0.7 - isarray: 2.0.5 - stop-iteration-iterator: 1.0.0 - - es-iterator-helpers@1.0.19: - dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.9 es-errors: 1.3.0 - es-set-tostringtag: 2.0.3 + es-set-tostringtag: 2.1.0 function-bind: 1.1.2 - get-intrinsic: 1.2.4 + get-intrinsic: 1.2.7 globalthis: 1.0.4 + gopd: 1.2.0 has-property-descriptors: 1.0.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 - internal-slot: 1.0.7 - iterator.prototype: 1.1.2 - safe-array-concat: 1.1.2 + has-proto: 1.2.0 + has-symbols: 1.1.0 + internal-slot: 1.1.0 + iterator.prototype: 1.1.5 + safe-array-concat: 1.1.3 + + es-module-lexer@1.6.0: {} - es-object-atoms@1.0.0: + es-object-atoms@1.1.1: dependencies: es-errors: 1.3.0 - es-set-tostringtag@2.0.3: + es-set-tostringtag@2.1.0: dependencies: - get-intrinsic: 1.2.4 + es-errors: 1.3.0 + get-intrinsic: 1.2.7 has-tostringtag: 1.0.2 hasown: 2.0.2 @@ -7182,11 +7019,11 @@ snapshots: dependencies: hasown: 2.0.2 - es-to-primitive@1.2.1: + es-to-primitive@1.3.0: dependencies: is-callable: 1.2.7 - is-date-object: 1.0.5 - is-symbol: 1.0.4 + is-date-object: 1.1.0 + is-symbol: 1.1.1 esbuild@0.21.5: optionalDependencies: @@ -7214,8 +7051,6 @@ snapshots: '@esbuild/win32-ia32': 0.21.5 '@esbuild/win32-x64': 0.21.5 - escalade@3.1.2: {} - escalade@3.2.0: {} escape-html@1.0.3: {} @@ -7224,129 +7059,130 @@ snapshots: escape-string-regexp@4.0.0: {} - eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint@8.57.0): + eslint-config-airbnb-base@15.0.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1))(eslint@8.57.1): dependencies: confusing-browser-globals: 1.0.11 - eslint: 8.57.0 - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0) - object.assign: 4.1.5 + eslint: 8.57.1 + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1) + object.assign: 4.1.7 object.entries: 1.1.8 semver: 6.3.1 - eslint-config-airbnb-typescript@18.0.0(@typescript-eslint/eslint-plugin@7.16.0(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4))(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.5.4))(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint@8.57.0): + eslint-config-airbnb-typescript@18.0.0(@typescript-eslint/eslint-plugin@7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4))(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1))(eslint@8.57.1): dependencies: - '@typescript-eslint/eslint-plugin': 7.16.0(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0)(typescript@5.5.4) - '@typescript-eslint/parser': 7.16.0(eslint@8.57.0)(typescript@5.5.4) - eslint: 8.57.0 - eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint@8.57.0) + '@typescript-eslint/eslint-plugin': 7.18.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4) + '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.5.4) + eslint: 8.57.1 + eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1))(eslint@8.57.1) transitivePeerDependencies: - eslint-plugin-import - eslint-config-airbnb@19.0.4(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint-plugin-jsx-a11y@6.9.0(eslint@8.57.0))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.0))(eslint-plugin-react@7.34.1(eslint@8.57.0))(eslint@8.57.0): + eslint-config-airbnb@19.0.4(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1))(eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.1))(eslint-plugin-react-hooks@4.6.2(eslint@8.57.1))(eslint-plugin-react@7.37.2(eslint@8.57.1))(eslint@8.57.1): dependencies: - eslint: 8.57.0 - eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0))(eslint@8.57.0) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0) - eslint-plugin-jsx-a11y: 6.9.0(eslint@8.57.0) - eslint-plugin-react: 7.34.1(eslint@8.57.0) - eslint-plugin-react-hooks: 4.6.2(eslint@8.57.0) - object.assign: 4.1.5 + eslint: 8.57.1 + eslint-config-airbnb-base: 15.0.0(eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1))(eslint@8.57.1) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1) + eslint-plugin-jsx-a11y: 6.10.2(eslint@8.57.1) + eslint-plugin-react: 7.37.2(eslint@8.57.1) + eslint-plugin-react-hooks: 4.6.2(eslint@8.57.1) + object.assign: 4.1.7 object.entries: 1.1.8 eslint-import-resolver-node@0.3.9: dependencies: debug: 3.2.7 - is-core-module: 2.14.0 - resolve: 1.22.8 + is-core-module: 2.16.1 + resolve: 1.22.10 transitivePeerDependencies: - supports-color - eslint-module-utils@2.8.1(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0): + eslint-module-utils@2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 7.16.0(eslint@8.57.0)(typescript@5.5.4) - eslint: 8.57.0 + '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.5.4) + eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-import@2.29.1(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.5.4))(eslint@8.57.0): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1): dependencies: + '@rtsao/scc': 1.1.0 array-includes: 3.1.8 array.prototype.findlastindex: 1.2.5 - array.prototype.flat: 1.3.2 - array.prototype.flatmap: 1.3.2 + array.prototype.flat: 1.3.3 + array.prototype.flatmap: 1.3.3 debug: 3.2.7 doctrine: 2.1.0 - eslint: 8.57.0 + eslint: 8.57.1 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.1(@typescript-eslint/parser@7.16.0(eslint@8.57.0)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@8.57.0) + eslint-module-utils: 2.12.0(@typescript-eslint/parser@7.18.0(eslint@8.57.1)(typescript@5.5.4))(eslint-import-resolver-node@0.3.9)(eslint@8.57.1) hasown: 2.0.2 - is-core-module: 2.14.0 + is-core-module: 2.16.1 is-glob: 4.0.3 minimatch: 3.1.2 object.fromentries: 2.0.8 object.groupby: 1.0.3 - object.values: 1.2.0 + object.values: 1.2.1 semver: 6.3.1 + string.prototype.trimend: 1.0.9 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 7.16.0(eslint@8.57.0)(typescript@5.5.4) + '@typescript-eslint/parser': 7.18.0(eslint@8.57.1)(typescript@5.5.4) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsx-a11y@6.9.0(eslint@8.57.0): + eslint-plugin-jsx-a11y@6.10.2(eslint@8.57.1): dependencies: - aria-query: 5.1.3 + aria-query: 5.3.2 array-includes: 3.1.8 - array.prototype.flatmap: 1.3.2 + array.prototype.flatmap: 1.3.3 ast-types-flow: 0.0.8 - axe-core: 4.9.1 - axobject-query: 3.1.1 + axe-core: 4.10.2 + axobject-query: 4.1.0 damerau-levenshtein: 1.0.8 emoji-regex: 9.2.2 - es-iterator-helpers: 1.0.19 - eslint: 8.57.0 + eslint: 8.57.1 hasown: 2.0.2 jsx-ast-utils: 3.3.5 language-tags: 1.0.9 minimatch: 3.1.2 object.fromentries: 2.0.8 - safe-regex-test: 1.0.3 - string.prototype.includes: 2.0.0 + safe-regex-test: 1.1.0 + string.prototype.includes: 2.0.1 - eslint-plugin-react-hooks@4.6.2(eslint@8.57.0): + eslint-plugin-react-hooks@4.6.2(eslint@8.57.1): dependencies: - eslint: 8.57.0 + eslint: 8.57.1 - eslint-plugin-react-refresh@0.4.8(eslint@8.57.0): + eslint-plugin-react-refresh@0.4.18(eslint@8.57.1): dependencies: - eslint: 8.57.0 + eslint: 8.57.1 - eslint-plugin-react@7.34.1(eslint@8.57.0): + eslint-plugin-react@7.37.2(eslint@8.57.1): dependencies: array-includes: 3.1.8 array.prototype.findlast: 1.2.5 - array.prototype.flatmap: 1.3.2 - array.prototype.toreversed: 1.1.2 + array.prototype.flatmap: 1.3.3 array.prototype.tosorted: 1.1.4 doctrine: 2.1.0 - es-iterator-helpers: 1.0.19 - eslint: 8.57.0 + es-iterator-helpers: 1.2.1 + eslint: 8.57.1 estraverse: 5.3.0 + hasown: 2.0.2 jsx-ast-utils: 3.3.5 minimatch: 3.1.2 object.entries: 1.1.8 object.fromentries: 2.0.8 - object.hasown: 1.1.4 - object.values: 1.2.0 + object.values: 1.2.1 prop-types: 15.8.1 resolve: 2.0.0-next.5 semver: 6.3.1 - string.prototype.matchall: 4.0.11 + string.prototype.matchall: 4.0.12 + string.prototype.repeat: 1.0.0 eslint-scope@7.2.2: dependencies: @@ -7355,20 +7191,22 @@ snapshots: eslint-visitor-keys@3.4.3: {} - eslint@8.57.0: + eslint-visitor-keys@4.2.0: {} + + eslint@8.57.1: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0) - '@eslint-community/regexpp': 4.11.0 + '@eslint-community/eslint-utils': 4.4.1(eslint@8.57.1) + '@eslint-community/regexpp': 4.12.1 '@eslint/eslintrc': 2.1.4 - '@eslint/js': 8.57.0 - '@humanwhocodes/config-array': 0.11.14 + '@eslint/js': 8.57.1 + '@humanwhocodes/config-array': 0.13.0 '@humanwhocodes/module-importer': 1.0.1 '@nodelib/fs.walk': 1.2.8 - '@ungap/structured-clone': 1.2.0 + '@ungap/structured-clone': 1.2.1 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.3.5 + debug: 4.4.0 doctrine: 3.0.0 escape-string-regexp: 4.0.0 eslint-scope: 7.2.2 @@ -7382,7 +7220,7 @@ snapshots: glob-parent: 6.0.2 globals: 13.24.0 graphemer: 1.4.0 - ignore: 5.3.1 + ignore: 5.3.2 imurmurhash: 0.1.4 is-glob: 4.0.3 is-path-inside: 3.0.3 @@ -7400,8 +7238,8 @@ snapshots: espree@9.6.1: dependencies: - acorn: 8.12.1 - acorn-jsx: 5.3.2(acorn@8.12.1) + acorn: 8.14.0 + acorn-jsx: 5.3.2(acorn@8.14.0) eslint-visitor-keys: 3.4.3 esquery@1.6.0: @@ -7422,17 +7260,7 @@ snapshots: esutils@2.0.3: {} - execa@8.0.1: - dependencies: - cross-spawn: 7.0.6 - get-stream: 8.0.1 - human-signals: 5.0.0 - is-stream: 3.0.0 - merge-stream: 2.0.0 - npm-run-path: 5.3.0 - onetime: 6.0.0 - signal-exit: 4.1.0 - strip-final-newline: 3.0.0 + expect-type@1.1.0: {} external-editor@3.1.0: dependencies: @@ -7442,7 +7270,7 @@ snapshots: extract-files@11.0.0: {} - fancy-ansi@0.1.2: + fancy-ansi@0.1.3: dependencies: escape-html: 1.0.3 @@ -7450,7 +7278,7 @@ snapshots: fast-deep-equal@3.1.3: {} - fast-glob@3.3.2: + fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 @@ -7466,7 +7294,7 @@ snapshots: dependencies: fast-decode-uri-component: 1.0.1 - fastq@1.17.1: + fastq@1.18.0: dependencies: reusify: 1.0.4 @@ -7478,16 +7306,21 @@ snapshots: fbjs@3.0.5: dependencies: - cross-fetch: 3.1.8 + cross-fetch: 3.2.0 fbjs-css-vars: 1.0.2 loose-envify: 1.4.0 object-assign: 4.1.1 promise: 7.3.1 setimmediate: 1.0.5 - ua-parser-js: 1.0.38 + ua-parser-js: 1.0.40 transitivePeerDependencies: - encoding + fetch-blob@3.2.0: + dependencies: + node-domexception: 1.0.0 + web-streams-polyfill: 3.3.3 + figures@3.2.0: dependencies: escape-string-regexp: 1.0.5 @@ -7500,11 +7333,6 @@ snapshots: dependencies: to-regex-range: 5.0.1 - find-up@4.1.0: - dependencies: - locate-path: 5.0.0 - path-exists: 4.0.0 - find-up@5.0.0: dependencies: locate-path: 6.0.0 @@ -7512,27 +7340,31 @@ snapshots: flat-cache@3.2.0: dependencies: - flatted: 3.3.1 + flatted: 3.3.2 keyv: 4.5.4 rimraf: 3.0.2 - flatted@3.3.1: {} + flatted@3.3.2: {} for-each@0.3.3: dependencies: is-callable: 1.2.7 - foreground-child@3.2.1: + foreground-child@3.3.0: dependencies: cross-spawn: 7.0.6 signal-exit: 4.1.0 - form-data@4.0.0: + form-data@4.0.1: dependencies: asynckit: 0.4.0 combined-stream: 1.0.8 mime-types: 2.1.35 + formdata-polyfill@4.0.10: + dependencies: + fetch-blob: 3.2.0 + fraction.js@4.3.7: {} fs.realpath@1.0.0: {} @@ -7542,12 +7374,14 @@ snapshots: function-bind@1.1.2: {} - function.prototype.name@1.1.6: + function.prototype.name@1.1.8: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 define-properties: 1.2.1 - es-abstract: 1.23.3 functions-have-names: 1.2.3 + hasown: 2.0.2 + is-callable: 1.2.7 functions-have-names@1.2.3: {} @@ -7555,25 +7389,31 @@ snapshots: get-caller-file@2.0.5: {} - get-func-name@2.0.2: {} - - get-intrinsic@1.2.4: + get-intrinsic@1.2.7: dependencies: + call-bind-apply-helpers: 1.0.1 + es-define-property: 1.0.1 es-errors: 1.3.0 + es-object-atoms: 1.1.1 function-bind: 1.1.2 - has-proto: 1.0.3 - has-symbols: 1.0.3 + get-proto: 1.0.1 + gopd: 1.2.0 + has-symbols: 1.1.0 hasown: 2.0.2 + math-intrinsics: 1.1.0 get-nonce@1.0.1: {} - get-stream@8.0.1: {} + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 - get-symbol-description@1.0.2: + get-symbol-description@1.1.0: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.3 es-errors: 1.3.0 - get-intrinsic: 1.2.4 + get-intrinsic: 1.2.7 glob-parent@5.1.2: dependencies: @@ -7585,11 +7425,11 @@ snapshots: glob@10.4.5: dependencies: - foreground-child: 3.2.1 + foreground-child: 3.3.0 jackspeak: 3.4.3 minimatch: 9.0.5 minipass: 7.1.2 - package-json-from-dist: 1.0.0 + package-json-from-dist: 1.0.1 path-scurry: 1.11.1 glob@7.2.3: @@ -7607,91 +7447,90 @@ snapshots: dependencies: type-fest: 0.20.2 + globals@15.14.0: {} + globalthis@1.0.4: dependencies: define-properties: 1.2.1 - gopd: 1.0.1 + gopd: 1.2.0 globby@11.1.0: dependencies: array-union: 2.1.0 dir-glob: 3.0.1 - fast-glob: 3.3.2 - ignore: 5.3.1 + fast-glob: 3.3.3 + ignore: 5.3.2 merge2: 1.4.1 slash: 3.0.0 globrex@0.1.2: {} - goober@2.1.14(csstype@3.1.3): + goober@2.1.16(csstype@3.1.3): dependencies: csstype: 3.1.3 - gopd@1.0.1: - dependencies: - get-intrinsic: 1.2.4 + gopd@1.2.0: {} graphemer@1.4.0: {} - graphql-config@5.1.3(@types/node@22.7.8)(graphql@16.9.0)(typescript@5.5.4): + graphql-config@5.1.3(@types/node@22.10.7)(graphql@16.10.0)(typescript@5.5.4): dependencies: - '@graphql-tools/graphql-file-loader': 8.0.1(graphql@16.9.0) - '@graphql-tools/json-file-loader': 8.0.1(graphql@16.9.0) - '@graphql-tools/load': 8.0.2(graphql@16.9.0) - '@graphql-tools/merge': 9.0.4(graphql@16.9.0) - '@graphql-tools/url-loader': 8.0.2(@types/node@22.7.8)(graphql@16.9.0) - '@graphql-tools/utils': 10.3.1(graphql@16.9.0) + '@graphql-tools/graphql-file-loader': 8.0.12(graphql@16.10.0) + '@graphql-tools/json-file-loader': 8.0.11(graphql@16.10.0) + '@graphql-tools/load': 8.0.12(graphql@16.10.0) + '@graphql-tools/merge': 9.0.17(graphql@16.10.0) + '@graphql-tools/url-loader': 8.0.24(@types/node@22.10.7)(graphql@16.10.0) + '@graphql-tools/utils': 10.7.2(graphql@16.10.0) cosmiconfig: 8.3.6(typescript@5.5.4) - graphql: 16.9.0 - jiti: 2.3.3 + graphql: 16.10.0 + jiti: 2.4.2 minimatch: 9.0.5 string-env-interpolation: 1.0.1 - tslib: 2.6.3 + tslib: 2.8.1 transitivePeerDependencies: - '@types/node' - bufferutil - - encoding - typescript - utf-8-validate - graphql-request@6.1.0(graphql@16.9.0): + graphql-request@6.1.0(graphql@16.10.0): dependencies: - '@graphql-typed-document-node/core': 3.2.0(graphql@16.9.0) - cross-fetch: 3.1.8 - graphql: 16.9.0 + '@graphql-typed-document-node/core': 3.2.0(graphql@16.10.0) + cross-fetch: 3.2.0 + graphql: 16.10.0 transitivePeerDependencies: - encoding - graphql-tag@2.12.6(graphql@16.9.0): + graphql-tag@2.12.6(graphql@16.10.0): dependencies: - graphql: 16.9.0 - tslib: 2.6.3 + graphql: 16.10.0 + tslib: 2.8.1 - graphql-ws@5.16.0(graphql@16.9.0): + graphql-ws@5.16.2(graphql@16.10.0): dependencies: - graphql: 16.9.0 + graphql: 16.10.0 - graphql@16.9.0: {} + graphql@16.10.0: {} hamt_plus@1.0.2: {} - has-bigints@1.0.2: {} - - has-flag@3.0.0: {} + has-bigints@1.1.0: {} has-flag@4.0.0: {} has-property-descriptors@1.0.2: dependencies: - es-define-property: 1.0.0 + es-define-property: 1.0.1 - has-proto@1.0.3: {} + has-proto@1.2.0: + dependencies: + dunder-proto: 1.0.1 - has-symbols@1.0.3: {} + has-symbols@1.1.0: {} has-tostringtag@1.0.2: dependencies: - has-symbols: 1.0.3 + has-symbols: 1.1.0 hasown@2.0.2: dependencies: @@ -7700,11 +7539,11 @@ snapshots: header-case@2.0.4: dependencies: capital-case: 1.0.4 - tslib: 2.6.3 + tslib: 2.8.1 history@5.3.0: dependencies: - '@babel/runtime': 7.24.7 + '@babel/runtime': 7.26.0 hoist-non-react-statics@3.3.2: dependencies: @@ -7714,24 +7553,20 @@ snapshots: dependencies: whatwg-encoding: 3.1.1 - html-escaper@2.0.2: {} - http-proxy-agent@7.0.2: dependencies: - agent-base: 7.1.1 - debug: 4.3.5 + agent-base: 7.1.3 + debug: 4.4.0 transitivePeerDependencies: - supports-color - https-proxy-agent@7.0.5: + https-proxy-agent@7.0.6: dependencies: - agent-base: 7.1.1 - debug: 4.3.5 + agent-base: 7.1.3 + debug: 4.4.0 transitivePeerDependencies: - supports-color - human-signals@5.0.0: {} - iconv-lite@0.4.24: dependencies: safer-buffer: 2.1.2 @@ -7742,7 +7577,7 @@ snapshots: ieee754@1.2.1: {} - ignore@5.3.1: {} + ignore@5.3.2: {} immutable@3.7.6: {} @@ -7782,11 +7617,11 @@ snapshots: through: 2.3.8 wrap-ansi: 6.2.0 - internal-slot@1.0.7: + internal-slot@1.1.0: dependencies: es-errors: 1.3.0 hasown: 2.0.2 - side-channel: 1.0.6 + side-channel: 1.1.0 invariant@2.2.4: dependencies: @@ -7797,62 +7632,65 @@ snapshots: is-relative: 1.0.0 is-windows: 1.0.2 - is-arguments@1.1.1: - dependencies: - call-bind: 1.0.7 - has-tostringtag: 1.0.2 - - is-array-buffer@3.0.4: + is-array-buffer@3.0.5: dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 + call-bind: 1.0.8 + call-bound: 1.0.3 + get-intrinsic: 1.2.7 is-arrayish@0.2.1: {} - is-async-function@2.0.0: + is-async-function@2.1.0: dependencies: + call-bound: 1.0.3 + get-proto: 1.0.1 has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 - is-bigint@1.0.4: + is-bigint@1.1.0: dependencies: - has-bigints: 1.0.2 + has-bigints: 1.1.0 is-binary-path@2.1.0: dependencies: binary-extensions: 2.3.0 - is-boolean-object@1.1.2: + is-boolean-object@1.2.1: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.3 has-tostringtag: 1.0.2 is-callable@1.2.7: {} - is-core-module@2.14.0: + is-core-module@2.16.1: dependencies: hasown: 2.0.2 - is-data-view@1.0.1: + is-data-view@1.0.2: dependencies: - is-typed-array: 1.1.13 + call-bound: 1.0.3 + get-intrinsic: 1.2.7 + is-typed-array: 1.1.15 - is-date-object@1.0.5: + is-date-object@1.1.0: dependencies: + call-bound: 1.0.3 has-tostringtag: 1.0.2 - is-docker@2.2.1: {} - is-extglob@2.1.1: {} - is-finalizationregistry@1.0.2: + is-finalizationregistry@1.1.1: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.3 is-fullwidth-code-point@3.0.0: {} - is-generator-function@1.0.10: + is-generator-function@1.1.0: dependencies: + call-bound: 1.0.3 + get-proto: 1.0.1 has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 is-glob@4.0.3: dependencies: @@ -7862,14 +7700,13 @@ snapshots: is-lower-case@2.0.2: dependencies: - tslib: 2.6.3 + tslib: 2.8.1 is-map@2.0.3: {} - is-negative-zero@2.0.3: {} - - is-number-object@1.0.7: + is-number-object@1.1.1: dependencies: + call-bound: 1.0.3 has-tostringtag: 1.0.2 is-number@7.0.0: {} @@ -7878,10 +7715,12 @@ snapshots: is-potential-custom-element-name@1.0.1: {} - is-regex@1.1.4: + is-regex@1.2.1: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.3 + gopd: 1.2.0 has-tostringtag: 1.0.2 + hasown: 2.0.2 is-relative@1.0.0: dependencies: @@ -7889,23 +7728,24 @@ snapshots: is-set@2.0.3: {} - is-shared-array-buffer@1.0.3: + is-shared-array-buffer@1.0.4: dependencies: - call-bind: 1.0.7 - - is-stream@3.0.0: {} + call-bound: 1.0.3 - is-string@1.0.7: + is-string@1.1.1: dependencies: + call-bound: 1.0.3 has-tostringtag: 1.0.2 - is-symbol@1.0.4: + is-symbol@1.1.1: dependencies: - has-symbols: 1.0.3 + call-bound: 1.0.3 + has-symbols: 1.1.0 + safe-regex-test: 1.1.0 - is-typed-array@1.1.13: + is-typed-array@1.1.15: dependencies: - which-typed-array: 1.1.15 + which-typed-array: 1.1.18 is-unc-path@1.0.0: dependencies: @@ -7915,24 +7755,22 @@ snapshots: is-upper-case@2.0.2: dependencies: - tslib: 2.6.3 + tslib: 2.8.1 is-weakmap@2.0.2: {} - is-weakref@1.0.2: + is-weakref@1.1.0: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.3 - is-weakset@2.0.3: + is-weakset@2.0.4: dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 + call-bound: 1.0.3 + get-intrinsic: 1.2.7 is-windows@1.0.2: {} - is-wsl@2.2.0: - dependencies: - is-docker: 2.2.1 + isarray@1.0.0: {} isarray@2.0.5: {} @@ -7942,33 +7780,13 @@ snapshots: dependencies: ws: 8.18.0 - istanbul-lib-coverage@3.2.2: {} - - istanbul-lib-report@3.0.1: - dependencies: - istanbul-lib-coverage: 3.2.2 - make-dir: 4.0.0 - supports-color: 7.2.0 - - istanbul-lib-source-maps@5.0.6: + iterator.prototype@1.1.5: dependencies: - '@jridgewell/trace-mapping': 0.3.25 - debug: 4.3.7 - istanbul-lib-coverage: 3.2.2 - transitivePeerDependencies: - - supports-color - - istanbul-reports@3.1.7: - dependencies: - html-escaper: 2.0.2 - istanbul-lib-report: 3.0.1 - - iterator.prototype@1.1.2: - dependencies: - define-properties: 1.2.1 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 - reflect.getprototypeof: 1.0.6 + define-data-property: 1.1.4 + es-object-atoms: 1.1.1 + get-intrinsic: 1.2.7 + get-proto: 1.0.1 + has-symbols: 1.1.0 set-function-name: 2.0.2 jackspeak@3.4.3: @@ -7977,41 +7795,39 @@ snapshots: optionalDependencies: '@pkgjs/parseargs': 0.11.0 - jiti@1.21.6: {} + jiti@1.21.7: {} - jiti@2.3.3: {} + jiti@2.4.2: {} - jose@5.6.3: {} + jose@5.9.6: {} js-tokens@4.0.0: {} - js-tokens@9.0.0: {} - js-yaml@4.1.0: dependencies: argparse: 2.0.1 - jsdom@25.0.1: + jsdom@26.0.0: dependencies: - cssstyle: 4.1.0 + cssstyle: 4.2.1 data-urls: 5.0.0 decimal.js: 10.4.3 - form-data: 4.0.0 + form-data: 4.0.1 html-encoding-sniffer: 4.0.0 http-proxy-agent: 7.0.2 - https-proxy-agent: 7.0.5 + https-proxy-agent: 7.0.6 is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.12 - parse5: 7.1.2 - rrweb-cssom: 0.7.1 + nwsapi: 2.2.16 + parse5: 7.2.1 + rrweb-cssom: 0.8.0 saxes: 6.0.0 symbol-tree: 3.2.4 - tough-cookie: 5.0.0 + tough-cookie: 5.1.0 w3c-xmlserializer: 5.0.0 webidl-conversions: 7.0.0 whatwg-encoding: 3.1.1 whatwg-mimetype: 4.0.0 - whatwg-url: 14.0.0 + whatwg-url: 14.1.0 ws: 8.18.0 xml-name-validator: 5.0.0 transitivePeerDependencies: @@ -8019,9 +7835,7 @@ snapshots: - supports-color - utf-8-validate - jsesc@2.5.2: {} - - jsesc@3.0.2: {} + jsesc@3.1.0: {} json-buffer@3.0.1: {} @@ -8045,9 +7859,9 @@ snapshots: jsx-ast-utils@3.3.5: dependencies: array-includes: 3.1.8 - array.prototype.flat: 1.3.2 - object.assign: 4.1.5 - object.values: 1.2.0 + array.prototype.flat: 1.3.3 + object.assign: 4.1.7 + object.values: 1.2.1 keyv@4.5.4: dependencies: @@ -8064,9 +7878,7 @@ snapshots: prelude-ls: 1.2.1 type-check: 0.4.0 - lilconfig@2.1.0: {} - - lilconfig@3.1.2: {} + lilconfig@3.1.3: {} lines-and-columns@1.2.4: {} @@ -8081,15 +7893,6 @@ snapshots: through: 2.3.8 wrap-ansi: 7.0.0 - local-pkg@0.5.0: - dependencies: - mlly: 1.7.1 - pkg-types: 1.1.3 - - locate-path@5.0.0: - dependencies: - p-locate: 4.1.0 - locate-path@6.0.0: dependencies: p-locate: 5.0.0 @@ -8118,17 +7921,15 @@ snapshots: dependencies: js-tokens: 4.0.0 - loupe@2.3.7: - dependencies: - get-func-name: 2.0.2 + loupe@3.1.2: {} lower-case-first@2.0.2: dependencies: - tslib: 2.6.3 + tslib: 2.8.1 lower-case@2.0.2: dependencies: - tslib: 2.6.3 + tslib: 2.8.1 lru-cache@10.4.3: {} @@ -8140,41 +7941,27 @@ snapshots: dependencies: react: 18.3.1 - lucide-react@0.367.0(react@18.3.1): + lucide-react@0.469.0(react@18.3.1): dependencies: react: 18.3.1 lz-string@1.5.0: {} - magic-string@0.30.10: - dependencies: - '@jridgewell/sourcemap-codec': 1.5.0 - - magic-string@0.30.12: + magic-string@0.30.17: dependencies: '@jridgewell/sourcemap-codec': 1.5.0 - magicast@0.3.4: - dependencies: - '@babel/parser': 7.25.8 - '@babel/types': 7.25.8 - source-map-js: 1.2.1 - - make-dir@4.0.0: - dependencies: - semver: 7.6.2 - map-cache@0.2.2: {} - memoize-one@5.2.1: {} + math-intrinsics@1.1.0: {} - merge-stream@2.0.0: {} + memoize-one@5.2.1: {} merge2@1.4.1: {} - meros@1.3.0(@types/node@22.7.8): + meros@1.3.0(@types/node@22.10.7): optionalDependencies: - '@types/node': 22.7.8 + '@types/node': 22.10.7 micromatch@4.0.8: dependencies: @@ -8189,8 +7976,6 @@ snapshots: mimic-fn@2.1.0: {} - mimic-fn@4.0.0: {} - min-indent@1.0.1: {} mini-svg-data-uri@1.4.4: {} @@ -8207,17 +7992,8 @@ snapshots: minipass@7.1.2: {} - mlly@1.7.1: - dependencies: - acorn: 8.12.1 - pathe: 1.1.2 - pkg-types: 1.1.3 - ufo: 1.5.3 - mout@1.2.4: {} - ms@2.1.2: {} - ms@2.1.3: {} mute-stream@0.0.8: {} @@ -8228,24 +8004,30 @@ snapshots: object-assign: 4.1.1 thenify-all: 1.6.0 - nanoid@3.3.7: {} + nanoid@3.3.8: {} natural-compare@1.4.0: {} no-case@3.0.4: dependencies: lower-case: 2.0.2 - tslib: 2.6.3 + tslib: 2.8.1 + + node-domexception@1.0.0: {} node-fetch@2.7.0: dependencies: whatwg-url: 5.0.0 - node-int64@0.4.0: {} + node-fetch@3.3.2: + dependencies: + data-uri-to-buffer: 4.0.1 + fetch-blob: 3.2.0 + formdata-polyfill: 4.0.10 - node-releases@2.0.14: {} + node-int64@0.4.0: {} - node-releases@2.0.18: {} + node-releases@2.0.19: {} normalize-path@2.1.1: dependencies: @@ -8255,66 +8037,54 @@ snapshots: normalize-range@0.1.2: {} - npm-run-path@5.3.0: - dependencies: - path-key: 4.0.0 - nullthrows@1.1.1: {} numeral@2.0.6: {} - nwsapi@2.2.12: {} + nwsapi@2.2.16: {} object-assign@4.1.1: {} object-hash@3.0.0: {} - object-inspect@1.13.2: {} - - object-is@1.1.6: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 + object-inspect@1.13.3: {} object-keys@1.1.1: {} - object.assign@4.1.5: + object.assign@4.1.7: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 define-properties: 1.2.1 - has-symbols: 1.0.3 + es-object-atoms: 1.1.1 + has-symbols: 1.1.0 object-keys: 1.1.1 object.entries@1.1.8: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 object.fromentries@2.0.8: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 object.groupby@1.0.3: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.9 - object.hasown@1.1.4: + object.values@1.2.1: dependencies: + call-bind: 1.0.8 + call-bound: 1.0.3 define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 - - object.values@1.2.0: - dependencies: - call-bind: 1.0.7 - define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 once@1.4.0: dependencies: @@ -8324,22 +8094,12 @@ snapshots: dependencies: mimic-fn: 2.1.0 - onetime@6.0.0: - dependencies: - mimic-fn: 4.0.0 - - open@8.4.2: - dependencies: - define-lazy-prop: 2.0.0 - is-docker: 2.2.1 - is-wsl: 2.2.0 - - optimism@0.18.0: + optimism@0.18.1: dependencies: '@wry/caches': 1.0.1 '@wry/context': 0.7.4 - '@wry/trie': 0.4.3 - tslib: 2.6.3 + '@wry/trie': 0.5.0 + tslib: 2.8.1 optionator@0.9.4: dependencies: @@ -8364,22 +8124,16 @@ snapshots: os-tmpdir@1.0.2: {} - p-limit@2.3.0: + own-keys@1.0.1: dependencies: - p-try: 2.2.0 + get-intrinsic: 1.2.7 + object-keys: 1.1.1 + safe-push-apply: 1.0.0 p-limit@3.1.0: dependencies: yocto-queue: 0.1.0 - p-limit@5.0.0: - dependencies: - yocto-queue: 1.1.1 - - p-locate@4.1.0: - dependencies: - p-limit: 2.3.0 - p-locate@5.0.0: dependencies: p-limit: 3.1.0 @@ -8388,14 +8142,12 @@ snapshots: dependencies: aggregate-error: 3.1.0 - p-try@2.2.0: {} - - package-json-from-dist@1.0.0: {} + package-json-from-dist@1.0.1: {} param-case@3.0.4: dependencies: dot-case: 3.0.4 - tslib: 2.6.3 + tslib: 2.8.1 parent-module@1.0.1: dependencies: @@ -8409,24 +8161,24 @@ snapshots: parse-json@5.2.0: dependencies: - '@babel/code-frame': 7.24.7 + '@babel/code-frame': 7.26.2 error-ex: 1.3.2 json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - parse5@7.1.2: + parse5@7.2.1: dependencies: entities: 4.5.0 pascal-case@3.1.2: dependencies: no-case: 3.0.4 - tslib: 2.6.3 + tslib: 2.8.1 path-case@3.0.4: dependencies: dot-case: 3.0.4 - tslib: 2.6.3 + tslib: 2.8.1 path-exists@4.0.0: {} @@ -8434,8 +8186,6 @@ snapshots: path-key@3.1.1: {} - path-key@4.0.0: {} - path-parse@1.0.7: {} path-root-regex@0.1.2: {} @@ -8453,66 +8203,54 @@ snapshots: pathe@1.1.2: {} - pathval@1.1.1: {} - - picocolors@1.0.1: {} + pathval@2.0.0: {} picocolors@1.1.1: {} picomatch@2.3.1: {} + picomatch@4.0.2: {} + pify@2.3.0: {} pirates@4.0.6: {} - pkg-types@1.1.3: - dependencies: - confbox: 0.1.7 - mlly: 1.7.1 - pathe: 1.1.2 - possible-typed-array-names@1.0.0: {} - postcss-import@15.1.0(postcss@8.4.47): + postcss-import@15.1.0(postcss@8.5.1): dependencies: - postcss: 8.4.47 + postcss: 8.5.1 postcss-value-parser: 4.2.0 read-cache: 1.0.0 - resolve: 1.22.8 + resolve: 1.22.10 - postcss-js@4.0.1(postcss@8.4.47): + postcss-js@4.0.1(postcss@8.5.1): dependencies: camelcase-css: 2.0.1 - postcss: 8.4.47 + postcss: 8.5.1 - postcss-load-config@4.0.2(postcss@8.4.47): + postcss-load-config@4.0.2(postcss@8.5.1): dependencies: - lilconfig: 3.1.2 - yaml: 2.4.5 + lilconfig: 3.1.3 + yaml: 2.7.0 optionalDependencies: - postcss: 8.4.47 + postcss: 8.5.1 - postcss-nested@6.0.1(postcss@8.4.47): + postcss-nested@6.2.0(postcss@8.5.1): dependencies: - postcss: 8.4.47 - postcss-selector-parser: 6.1.0 + postcss: 8.5.1 + postcss-selector-parser: 6.1.2 - postcss-selector-parser@6.1.0: + postcss-selector-parser@6.1.2: dependencies: cssesc: 3.0.0 util-deprecate: 1.0.2 postcss-value-parser@4.2.0: {} - postcss@8.4.39: + postcss@8.5.1: dependencies: - nanoid: 3.3.7 - picocolors: 1.0.1 - source-map-js: 1.2.0 - - postcss@8.4.47: - dependencies: - nanoid: 3.3.7 + nanoid: 3.3.8 picocolors: 1.1.1 source-map-js: 1.2.1 @@ -8524,11 +8262,7 @@ snapshots: ansi-styles: 5.2.0 react-is: 17.0.2 - pretty-format@29.7.0: - dependencies: - '@jest/schemas': 29.6.3 - ansi-styles: 5.2.0 - react-is: 18.3.1 + process-nextick-args@2.0.1: {} promise@7.3.1: dependencies: @@ -8557,70 +8291,68 @@ snapshots: react-error-boundary@4.1.2(react@18.3.1): dependencies: - '@babel/runtime': 7.24.7 + '@babel/runtime': 7.26.0 react: 18.3.1 - react-hot-toast@2.4.1(csstype@3.1.3)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-hot-toast@2.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - goober: 2.1.14(csstype@3.1.3) + csstype: 3.1.3 + goober: 2.1.16(csstype@3.1.3) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - transitivePeerDependencies: - - csstype react-is@16.13.1: {} react-is@17.0.2: {} - react-is@18.3.1: {} - - react-refresh@0.14.2: {} - - react-remove-scroll-bar@2.3.6(@types/react@18.3.11)(react@18.3.1): + react-remove-scroll-bar@2.3.8(@types/react@18.3.18)(react@18.3.1): dependencies: react: 18.3.1 - react-style-singleton: 2.2.1(@types/react@18.3.11)(react@18.3.1) - tslib: 2.6.3 + react-style-singleton: 2.2.3(@types/react@18.3.18)(react@18.3.1) + tslib: 2.8.1 optionalDependencies: - '@types/react': 18.3.11 + '@types/react': 18.3.18 - react-remove-scroll@2.5.7(@types/react@18.3.11)(react@18.3.1): + react-remove-scroll@2.6.2(@types/react@18.3.18)(react@18.3.1): dependencies: react: 18.3.1 - react-remove-scroll-bar: 2.3.6(@types/react@18.3.11)(react@18.3.1) - react-style-singleton: 2.2.1(@types/react@18.3.11)(react@18.3.1) - tslib: 2.6.3 - use-callback-ref: 1.3.2(@types/react@18.3.11)(react@18.3.1) - use-sidecar: 1.1.2(@types/react@18.3.11)(react@18.3.1) + react-remove-scroll-bar: 2.3.8(@types/react@18.3.18)(react@18.3.1) + react-style-singleton: 2.2.3(@types/react@18.3.18)(react@18.3.1) + tslib: 2.8.1 + use-callback-ref: 1.3.3(@types/react@18.3.18)(react@18.3.1) + use-sidecar: 1.1.3(@types/react@18.3.18)(react@18.3.1) optionalDependencies: - '@types/react': 18.3.11 + '@types/react': 18.3.18 - react-router-dom@6.27.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-router-dom@7.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@remix-run/router': 1.20.0 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-router: 6.27.0(react@18.3.1) + react-router: 7.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - react-router@6.27.0(react@18.3.1): + react-router@7.1.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@remix-run/router': 1.20.0 + '@types/cookie': 0.6.0 + cookie: 1.0.2 react: 18.3.1 + set-cookie-parser: 2.7.1 + turbo-stream: 2.4.0 + optionalDependencies: + react-dom: 18.3.1(react@18.3.1) - react-style-singleton@2.2.1(@types/react@18.3.11)(react@18.3.1): + react-style-singleton@2.2.3(@types/react@18.3.18)(react@18.3.1): dependencies: get-nonce: 1.0.1 - invariant: 2.2.4 react: 18.3.1 - tslib: 2.6.3 + tslib: 2.8.1 optionalDependencies: - '@types/react': 18.3.11 + '@types/react': 18.3.18 react-timeago@7.2.0(react@18.3.1): dependencies: react: 18.3.1 - react-virtualized-auto-sizer@1.0.24(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-virtualized-auto-sizer@1.0.25(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -8630,9 +8362,9 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - react-window@1.8.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + react-window@1.8.11(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.24.7 + '@babel/runtime': 7.26.0 memoize-one: 5.2.1 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -8645,6 +8377,16 @@ snapshots: dependencies: pify: 2.3.0 + readable-stream@2.3.8: + dependencies: + core-util-is: 1.0.3 + inherits: 2.0.4 + isarray: 1.0.0 + process-nextick-args: 2.0.1 + safe-buffer: 5.1.2 + string_decoder: 1.1.1 + util-deprecate: 1.0.2 + readable-stream@3.6.2: dependencies: inherits: 2.0.4 @@ -8667,33 +8409,36 @@ snapshots: indent-string: 4.0.0 strip-indent: 3.0.0 - reflect.getprototypeof@1.0.6: + reflect.getprototypeof@1.0.10: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.9 es-errors: 1.3.0 - get-intrinsic: 1.2.4 - globalthis: 1.0.4 - which-builtin-type: 1.1.3 + es-object-atoms: 1.1.1 + get-intrinsic: 1.2.7 + get-proto: 1.0.1 + which-builtin-type: 1.2.1 regenerator-runtime@0.14.1: {} - regexp.prototype.flags@1.5.2: + regexp.prototype.flags@1.5.4: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 es-errors: 1.3.0 + get-proto: 1.0.1 + gopd: 1.2.0 set-function-name: 2.0.2 - rehackt@0.1.0(@types/react@18.3.11)(react@18.3.1): + rehackt@0.1.0(@types/react@18.3.18)(react@18.3.1): optionalDependencies: - '@types/react': 18.3.11 + '@types/react': 18.3.18 react: 18.3.1 relay-runtime@12.0.0: dependencies: - '@babel/runtime': 7.24.7 + '@babel/runtime': 7.26.0 fbjs: 3.0.5 invariant: 2.2.4 transitivePeerDependencies: @@ -8707,25 +8452,25 @@ snapshots: require-directory@2.1.1: {} - require-main-filename@2.0.0: {} - resolve-from@4.0.0: {} resolve-from@5.0.0: {} - resolve@1.22.8: + resolve@1.22.10: dependencies: - is-core-module: 2.14.0 + is-core-module: 2.16.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 resolve@2.0.0-next.5: dependencies: - is-core-module: 2.14.0 + is-core-module: 2.16.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - response-iterator@0.2.6: {} + response-iterator@0.2.16: + dependencies: + readable-stream: 2.3.8 restore-cursor@3.1.0: dependencies: @@ -8740,38 +8485,32 @@ snapshots: dependencies: glob: 7.2.3 - rollup-plugin-visualizer@5.12.0(rollup@4.24.0): - dependencies: - open: 8.4.2 - picomatch: 2.3.1 - source-map: 0.7.4 - yargs: 17.7.2 - optionalDependencies: - rollup: 4.24.0 - - rollup@4.24.0: + rollup@4.30.1: dependencies: '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.24.0 - '@rollup/rollup-android-arm64': 4.24.0 - '@rollup/rollup-darwin-arm64': 4.24.0 - '@rollup/rollup-darwin-x64': 4.24.0 - '@rollup/rollup-linux-arm-gnueabihf': 4.24.0 - '@rollup/rollup-linux-arm-musleabihf': 4.24.0 - '@rollup/rollup-linux-arm64-gnu': 4.24.0 - '@rollup/rollup-linux-arm64-musl': 4.24.0 - '@rollup/rollup-linux-powerpc64le-gnu': 4.24.0 - '@rollup/rollup-linux-riscv64-gnu': 4.24.0 - '@rollup/rollup-linux-s390x-gnu': 4.24.0 - '@rollup/rollup-linux-x64-gnu': 4.24.0 - '@rollup/rollup-linux-x64-musl': 4.24.0 - '@rollup/rollup-win32-arm64-msvc': 4.24.0 - '@rollup/rollup-win32-ia32-msvc': 4.24.0 - '@rollup/rollup-win32-x64-msvc': 4.24.0 + '@rollup/rollup-android-arm-eabi': 4.30.1 + '@rollup/rollup-android-arm64': 4.30.1 + '@rollup/rollup-darwin-arm64': 4.30.1 + '@rollup/rollup-darwin-x64': 4.30.1 + '@rollup/rollup-freebsd-arm64': 4.30.1 + '@rollup/rollup-freebsd-x64': 4.30.1 + '@rollup/rollup-linux-arm-gnueabihf': 4.30.1 + '@rollup/rollup-linux-arm-musleabihf': 4.30.1 + '@rollup/rollup-linux-arm64-gnu': 4.30.1 + '@rollup/rollup-linux-arm64-musl': 4.30.1 + '@rollup/rollup-linux-loongarch64-gnu': 4.30.1 + '@rollup/rollup-linux-powerpc64le-gnu': 4.30.1 + '@rollup/rollup-linux-riscv64-gnu': 4.30.1 + '@rollup/rollup-linux-s390x-gnu': 4.30.1 + '@rollup/rollup-linux-x64-gnu': 4.30.1 + '@rollup/rollup-linux-x64-musl': 4.30.1 + '@rollup/rollup-win32-arm64-msvc': 4.30.1 + '@rollup/rollup-win32-ia32-msvc': 4.30.1 + '@rollup/rollup-win32-x64-msvc': 4.30.1 fsevents: 2.3.3 - rrweb-cssom@0.7.1: {} + rrweb-cssom@0.8.0: {} run-async@2.4.1: {} @@ -8781,22 +8520,30 @@ snapshots: rxjs@7.8.1: dependencies: - tslib: 2.6.3 + tslib: 2.8.1 - safe-array-concat@1.1.2: + safe-array-concat@1.1.3: dependencies: - call-bind: 1.0.7 - get-intrinsic: 1.2.4 - has-symbols: 1.0.3 + call-bind: 1.0.8 + call-bound: 1.0.3 + get-intrinsic: 1.2.7 + has-symbols: 1.1.0 isarray: 2.0.5 + safe-buffer@5.1.2: {} + safe-buffer@5.2.1: {} - safe-regex-test@1.0.3: + safe-push-apply@1.0.0: dependencies: - call-bind: 1.0.7 es-errors: 1.3.0 - is-regex: 1.1.4 + isarray: 2.0.5 + + safe-regex-test@1.1.0: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-regex: 1.2.1 safer-buffer@2.1.2: {} @@ -8812,23 +8559,23 @@ snapshots: semver@6.3.1: {} - semver@7.6.2: {} + semver@7.6.3: {} sentence-case@3.0.4: dependencies: no-case: 3.0.4 - tslib: 2.6.3 + tslib: 2.8.1 upper-case-first: 2.0.2 - set-blocking@2.0.0: {} + set-cookie-parser@2.7.1: {} set-function-length@1.2.2: dependencies: define-data-property: 1.1.4 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.4 - gopd: 1.0.1 + get-intrinsic: 1.2.7 + gopd: 1.2.0 has-property-descriptors: 1.0.2 set-function-name@2.0.2: @@ -8838,6 +8585,12 @@ snapshots: functions-have-names: 1.2.3 has-property-descriptors: 1.0.2 + set-proto@1.0.0: + dependencies: + dunder-proto: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.1.1 + setimmediate@1.0.5: {} shebang-command@2.0.0: @@ -8846,14 +8599,35 @@ snapshots: shebang-regex@3.0.0: {} - shell-quote@1.8.1: {} + shell-quote@1.8.2: {} + + side-channel-list@1.0.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.3 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.7 + object-inspect: 1.13.3 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.7 + object-inspect: 1.13.3 + side-channel-map: 1.0.1 - side-channel@1.0.6: + side-channel@1.1.0: dependencies: - call-bind: 1.0.7 es-errors: 1.3.0 - get-intrinsic: 1.2.4 - object-inspect: 1.13.2 + object-inspect: 1.13.3 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 siginfo@2.0.0: {} @@ -8880,25 +8654,17 @@ snapshots: snake-case@3.0.4: dependencies: dot-case: 3.0.4 - tslib: 2.6.3 - - source-map-js@1.2.0: {} + tslib: 2.8.1 source-map-js@1.2.1: {} - source-map@0.7.4: {} - sponge-case@1.0.1: dependencies: - tslib: 2.6.3 + tslib: 2.8.1 stackback@0.0.2: {} - std-env@3.7.0: {} - - stop-iteration-iterator@1.0.0: - dependencies: - internal-slot: 1.0.7 + std-env@3.8.0: {} streamsearch@1.1.0: {} @@ -8916,44 +8682,59 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.1.0 - string.prototype.includes@2.0.0: + string.prototype.includes@2.0.1: dependencies: + call-bind: 1.0.8 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.9 - string.prototype.matchall@4.0.11: + string.prototype.matchall@4.0.12: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 define-properties: 1.2.1 - es-abstract: 1.23.3 + es-abstract: 1.23.9 es-errors: 1.3.0 - es-object-atoms: 1.0.0 - get-intrinsic: 1.2.4 - gopd: 1.0.1 - has-symbols: 1.0.3 - internal-slot: 1.0.7 - regexp.prototype.flags: 1.5.2 + es-object-atoms: 1.1.1 + get-intrinsic: 1.2.7 + gopd: 1.2.0 + has-symbols: 1.1.0 + internal-slot: 1.1.0 + regexp.prototype.flags: 1.5.4 set-function-name: 2.0.2 - side-channel: 1.0.6 + side-channel: 1.1.0 + + string.prototype.repeat@1.0.0: + dependencies: + define-properties: 1.2.1 + es-abstract: 1.23.9 - string.prototype.trim@1.2.9: + string.prototype.trim@1.2.10: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 + define-data-property: 1.1.4 define-properties: 1.2.1 - es-abstract: 1.23.3 - es-object-atoms: 1.0.0 + es-abstract: 1.23.9 + es-object-atoms: 1.1.1 + has-property-descriptors: 1.0.2 - string.prototype.trimend@1.0.8: + string.prototype.trimend@1.0.9: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 string.prototype.trimstart@1.0.8: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 define-properties: 1.2.1 - es-object-atoms: 1.0.0 + es-object-atoms: 1.1.1 + + string_decoder@1.1.1: + dependencies: + safe-buffer: 5.1.2 string_decoder@1.3.0: dependencies: @@ -8965,25 +8746,19 @@ snapshots: strip-ansi@7.1.0: dependencies: - ansi-regex: 6.0.1 + ansi-regex: 6.1.0 strip-bom@3.0.0: {} - strip-final-newline@3.0.0: {} - strip-indent@3.0.0: dependencies: min-indent: 1.0.1 strip-json-comments@3.1.1: {} - strip-literal@2.1.0: - dependencies: - js-tokens: 9.0.0 - sucrase@3.35.0: dependencies: - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.8 commander: 4.1.1 glob: 10.4.5 lines-and-columns: 1.2.4 @@ -8991,10 +8766,6 @@ snapshots: pirates: 4.0.6 ts-interface-checker: 0.1.13 - supports-color@5.5.0: - dependencies: - has-flag: 3.0.0 - supports-color@7.2.0: dependencies: has-flag: 4.0.0 @@ -9005,47 +8776,49 @@ snapshots: swap-case@2.0.2: dependencies: - tslib: 2.6.3 + tslib: 2.8.1 symbol-observable@4.0.0: {} symbol-tree@3.2.4: {} - tailwind-merge@2.5.4: {} + sync-fetch@0.6.0-2: + dependencies: + node-fetch: 3.3.2 + timeout-signal: 2.0.0 + whatwg-mimetype: 4.0.0 + + tabbable@6.2.0: {} + + tailwind-merge@2.6.0: {} - tailwindcss@3.4.14: + tailwindcss@3.4.17: dependencies: '@alloc/quick-lru': 5.2.0 arg: 5.0.2 chokidar: 3.6.0 didyoumean: 1.2.2 dlv: 1.1.3 - fast-glob: 3.3.2 + fast-glob: 3.3.3 glob-parent: 6.0.2 is-glob: 4.0.3 - jiti: 1.21.6 - lilconfig: 2.1.0 + jiti: 1.21.7 + lilconfig: 3.1.3 micromatch: 4.0.8 normalize-path: 3.0.0 object-hash: 3.0.0 picocolors: 1.1.1 - postcss: 8.4.47 - postcss-import: 15.1.0(postcss@8.4.47) - postcss-js: 4.0.1(postcss@8.4.47) - postcss-load-config: 4.0.2(postcss@8.4.47) - postcss-nested: 6.0.1(postcss@8.4.47) - postcss-selector-parser: 6.1.0 - resolve: 1.22.8 + postcss: 8.5.1 + postcss-import: 15.1.0(postcss@8.5.1) + postcss-js: 4.0.1(postcss@8.5.1) + postcss-load-config: 4.0.2(postcss@8.5.1) + postcss-nested: 6.2.0(postcss@8.5.1) + postcss-selector-parser: 6.1.2 + resolve: 1.22.10 sucrase: 3.35.0 transitivePeerDependencies: - ts-node - test-exclude@6.0.0: - dependencies: - '@istanbuljs/schema': 0.1.3 - glob: 7.2.3 - minimatch: 3.1.2 - text-table@0.2.0: {} thenify-all@1.6.0: @@ -9058,35 +8831,39 @@ snapshots: through@2.3.8: {} - tinybench@2.8.0: {} + timeout-signal@2.0.0: {} - tinypool@0.8.4: {} + tinybench@2.9.0: {} - tinyspy@2.2.1: {} + tinyexec@0.3.2: {} + + tinypool@1.0.2: {} + + tinyrainbow@1.2.0: {} + + tinyspy@3.0.2: {} title-case@3.0.3: dependencies: - tslib: 2.6.3 + tslib: 2.8.1 - tldts-core@6.1.53: {} + tldts-core@6.1.72: {} - tldts@6.1.53: + tldts@6.1.72: dependencies: - tldts-core: 6.1.53 + tldts-core: 6.1.72 tmp@0.0.33: dependencies: os-tmpdir: 1.0.2 - to-fast-properties@2.0.0: {} - to-regex-range@5.0.1: dependencies: is-number: 7.0.0 - tough-cookie@5.0.0: + tough-cookie@5.1.0: dependencies: - tldts: 6.1.53 + tldts: 6.1.72 tr46@0.0.3: {} @@ -9094,7 +8871,11 @@ snapshots: dependencies: punycode: 2.3.1 - ts-api-utils@1.3.0(typescript@5.5.4): + ts-api-utils@1.4.3(typescript@5.5.4): + dependencies: + typescript: 5.5.4 + + ts-api-utils@2.0.0(typescript@5.5.4): dependencies: typescript: 5.5.4 @@ -9102,11 +8883,11 @@ snapshots: ts-invariant@0.10.3: dependencies: - tslib: 2.6.3 + tslib: 2.8.1 - ts-log@2.2.5: {} + ts-log@2.2.7: {} - tsconfck@3.1.1(typescript@5.5.4): + tsconfck@3.1.4(typescript@5.5.4): optionalDependencies: typescript: 5.5.4 @@ -9119,60 +8900,71 @@ snapshots: tslib@2.6.3: {} + tslib@2.8.1: {} + + turbo-stream@2.4.0: {} + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 - type-detect@4.0.8: {} - type-fest@0.20.2: {} type-fest@0.21.3: {} - typed-array-buffer@1.0.2: + typed-array-buffer@1.0.3: dependencies: - call-bind: 1.0.7 + call-bound: 1.0.3 es-errors: 1.3.0 - is-typed-array: 1.1.13 + is-typed-array: 1.1.15 - typed-array-byte-length@1.0.1: + typed-array-byte-length@1.0.3: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 - is-typed-array: 1.1.13 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 - typed-array-byte-offset@1.0.2: + typed-array-byte-offset@1.0.4: dependencies: available-typed-arrays: 1.0.7 - call-bind: 1.0.7 + call-bind: 1.0.8 for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 - is-typed-array: 1.1.13 + gopd: 1.2.0 + has-proto: 1.2.0 + is-typed-array: 1.1.15 + reflect.getprototypeof: 1.0.10 - typed-array-length@1.0.6: + typed-array-length@1.0.7: dependencies: - call-bind: 1.0.7 + call-bind: 1.0.8 for-each: 0.3.3 - gopd: 1.0.1 - has-proto: 1.0.3 - is-typed-array: 1.1.13 + gopd: 1.2.0 + is-typed-array: 1.1.15 possible-typed-array-names: 1.0.0 + reflect.getprototypeof: 1.0.10 - typescript@5.5.4: {} + typescript-eslint@8.20.0(eslint@8.57.1)(typescript@5.5.4): + dependencies: + '@typescript-eslint/eslint-plugin': 8.20.0(@typescript-eslint/parser@8.20.0(eslint@8.57.1)(typescript@5.5.4))(eslint@8.57.1)(typescript@5.5.4) + '@typescript-eslint/parser': 8.20.0(eslint@8.57.1)(typescript@5.5.4) + '@typescript-eslint/utils': 8.20.0(eslint@8.57.1)(typescript@5.5.4) + eslint: 8.57.1 + typescript: 5.5.4 + transitivePeerDependencies: + - supports-color - ua-parser-js@1.0.38: {} + typescript@5.5.4: {} - ufo@1.5.3: {} + ua-parser-js@1.0.40: {} - unbox-primitive@1.0.2: + unbox-primitive@1.1.0: dependencies: - call-bind: 1.0.7 - has-bigints: 1.0.2 - has-symbols: 1.0.3 - which-boxed-primitive: 1.0.2 + call-bound: 1.0.3 + has-bigints: 1.1.0 + has-symbols: 1.1.0 + which-boxed-primitive: 1.1.1 unc-path-regex@0.1.2: {} @@ -9180,31 +8972,25 @@ snapshots: dependencies: react: 18.3.1 - undici-types@6.19.8: {} + undici-types@6.20.0: {} unixify@1.0.0: dependencies: normalize-path: 2.1.1 - update-browserslist-db@1.1.0(browserslist@4.23.2): - dependencies: - browserslist: 4.23.2 - escalade: 3.1.2 - picocolors: 1.0.1 - - update-browserslist-db@1.1.1(browserslist@4.24.2): + update-browserslist-db@1.1.2(browserslist@4.24.4): dependencies: - browserslist: 4.24.2 + browserslist: 4.24.4 escalade: 3.2.0 picocolors: 1.1.1 upper-case-first@2.0.2: dependencies: - tslib: 2.6.3 + tslib: 2.8.1 upper-case@2.0.2: dependencies: - tslib: 2.6.3 + tslib: 2.8.1 uri-js@4.4.1: dependencies: @@ -9212,20 +8998,20 @@ snapshots: urlpattern-polyfill@10.0.0: {} - use-callback-ref@1.3.2(@types/react@18.3.11)(react@18.3.1): + use-callback-ref@1.3.3(@types/react@18.3.18)(react@18.3.1): dependencies: react: 18.3.1 - tslib: 2.6.3 + tslib: 2.8.1 optionalDependencies: - '@types/react': 18.3.11 + '@types/react': 18.3.18 - use-sidecar@1.1.2(@types/react@18.3.11)(react@18.3.1): + use-sidecar@1.1.3(@types/react@18.3.18)(react@18.3.1): dependencies: detect-node-es: 1.1.0 react: 18.3.1 - tslib: 2.6.3 + tslib: 2.8.1 optionalDependencies: - '@types/react': 18.3.11 + '@types/react': 18.3.18 usehooks-ts@3.1.0(react@18.3.1): dependencies: @@ -9236,13 +9022,13 @@ snapshots: value-or-promise@1.0.12: {} - vite-node@1.6.0(@types/node@22.7.8): + vite-node@2.1.8(@types/node@22.10.7): dependencies: cac: 6.7.14 - debug: 4.3.5 + debug: 4.4.0 + es-module-lexer: 1.6.0 pathe: 1.1.2 - picocolors: 1.0.1 - vite: 5.4.9(@types/node@22.7.8) + vite: 5.4.11(@types/node@22.10.7) transitivePeerDependencies: - '@types/node' - less @@ -9254,65 +9040,66 @@ snapshots: - supports-color - terser - vite-plugin-svgr@4.2.0(rollup@4.24.0)(typescript@5.5.4)(vite@5.4.9(@types/node@22.7.8)): + vite-plugin-svgr@4.3.0(rollup@4.30.1)(typescript@5.5.4)(vite@5.4.11(@types/node@22.10.7)): dependencies: - '@rollup/pluginutils': 5.1.0(rollup@4.24.0) + '@rollup/pluginutils': 5.1.4(rollup@4.30.1) '@svgr/core': 8.1.0(typescript@5.5.4) '@svgr/plugin-jsx': 8.1.0(@svgr/core@8.1.0(typescript@5.5.4)) - vite: 5.4.9(@types/node@22.7.8) + vite: 5.4.11(@types/node@22.10.7) transitivePeerDependencies: - rollup - supports-color - typescript - vite-tsconfig-paths@5.0.1(typescript@5.5.4)(vite@5.4.9(@types/node@22.7.8)): + vite-tsconfig-paths@5.1.4(typescript@5.5.4)(vite@5.4.11(@types/node@22.10.7)): dependencies: - debug: 4.3.5 + debug: 4.4.0 globrex: 0.1.2 - tsconfck: 3.1.1(typescript@5.5.4) + tsconfck: 3.1.4(typescript@5.5.4) optionalDependencies: - vite: 5.4.9(@types/node@22.7.8) + vite: 5.4.11(@types/node@22.10.7) transitivePeerDependencies: - supports-color - typescript - vite@5.4.9(@types/node@22.7.8): + vite@5.4.11(@types/node@22.10.7): dependencies: esbuild: 0.21.5 - postcss: 8.4.47 - rollup: 4.24.0 + postcss: 8.5.1 + rollup: 4.30.1 optionalDependencies: - '@types/node': 22.7.8 + '@types/node': 22.10.7 fsevents: 2.3.3 - vitest@1.6.0(@types/node@22.7.8)(jsdom@25.0.1): - dependencies: - '@vitest/expect': 1.6.0 - '@vitest/runner': 1.6.0 - '@vitest/snapshot': 1.6.0 - '@vitest/spy': 1.6.0 - '@vitest/utils': 1.6.0 - acorn-walk: 8.3.3 - chai: 4.4.1 - debug: 4.3.5 - execa: 8.0.1 - local-pkg: 0.5.0 - magic-string: 0.30.10 + vitest@2.1.8(@types/node@22.10.7)(jsdom@26.0.0): + dependencies: + '@vitest/expect': 2.1.8 + '@vitest/mocker': 2.1.8(vite@5.4.11(@types/node@22.10.7)) + '@vitest/pretty-format': 2.1.8 + '@vitest/runner': 2.1.8 + '@vitest/snapshot': 2.1.8 + '@vitest/spy': 2.1.8 + '@vitest/utils': 2.1.8 + chai: 5.1.2 + debug: 4.4.0 + expect-type: 1.1.0 + magic-string: 0.30.17 pathe: 1.1.2 - picocolors: 1.0.1 - std-env: 3.7.0 - strip-literal: 2.1.0 - tinybench: 2.8.0 - tinypool: 0.8.4 - vite: 5.4.9(@types/node@22.7.8) - vite-node: 1.6.0(@types/node@22.7.8) + std-env: 3.8.0 + tinybench: 2.9.0 + tinyexec: 0.3.2 + tinypool: 1.0.2 + tinyrainbow: 1.2.0 + vite: 5.4.11(@types/node@22.10.7) + vite-node: 2.1.8(@types/node@22.10.7) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.7.8 - jsdom: 25.0.1 + '@types/node': 22.10.7 + jsdom: 26.0.0 transitivePeerDependencies: - less - lightningcss + - msw - sass - sass-embedded - stylus @@ -9332,6 +9119,8 @@ snapshots: dependencies: defaults: 1.0.4 + web-streams-polyfill@3.3.3: {} + webidl-conversions@3.0.1: {} webidl-conversions@7.0.0: {} @@ -9342,7 +9131,7 @@ snapshots: whatwg-mimetype@4.0.0: {} - whatwg-url@14.0.0: + whatwg-url@14.1.0: dependencies: tr46: 5.0.0 webidl-conversions: 7.0.0 @@ -9352,44 +9141,44 @@ snapshots: tr46: 0.0.3 webidl-conversions: 3.0.1 - which-boxed-primitive@1.0.2: + which-boxed-primitive@1.1.1: dependencies: - is-bigint: 1.0.4 - is-boolean-object: 1.1.2 - is-number-object: 1.0.7 - is-string: 1.0.7 - is-symbol: 1.0.4 + is-bigint: 1.1.0 + is-boolean-object: 1.2.1 + is-number-object: 1.1.1 + is-string: 1.1.1 + is-symbol: 1.1.1 - which-builtin-type@1.1.3: + which-builtin-type@1.2.1: dependencies: - function.prototype.name: 1.1.6 + call-bound: 1.0.3 + function.prototype.name: 1.1.8 has-tostringtag: 1.0.2 - is-async-function: 2.0.0 - is-date-object: 1.0.5 - is-finalizationregistry: 1.0.2 - is-generator-function: 1.0.10 - is-regex: 1.1.4 - is-weakref: 1.0.2 + is-async-function: 2.1.0 + is-date-object: 1.1.0 + is-finalizationregistry: 1.1.1 + is-generator-function: 1.1.0 + is-regex: 1.2.1 + is-weakref: 1.1.0 isarray: 2.0.5 - which-boxed-primitive: 1.0.2 + which-boxed-primitive: 1.1.1 which-collection: 1.0.2 - which-typed-array: 1.1.15 + which-typed-array: 1.1.18 which-collection@1.0.2: dependencies: is-map: 2.0.3 is-set: 2.0.3 is-weakmap: 2.0.2 - is-weakset: 2.0.3 - - which-module@2.0.1: {} + is-weakset: 2.0.4 - which-typed-array@1.1.15: + which-typed-array@1.1.18: dependencies: available-typed-arrays: 1.0.7 - call-bind: 1.0.7 + call-bind: 1.0.8 + call-bound: 1.0.3 for-each: 0.3.3 - gopd: 1.0.1 + gopd: 1.2.0 has-tostringtag: 1.0.2 which@2.0.2: @@ -9429,41 +9218,20 @@ snapshots: xmlchars@2.2.0: {} - y18n@4.0.3: {} - y18n@5.0.8: {} yallist@3.1.1: {} yaml-ast-parser@0.0.43: {} - yaml@2.4.5: {} - - yargs-parser@18.1.3: - dependencies: - camelcase: 5.3.1 - decamelize: 1.2.0 + yaml@2.7.0: {} yargs-parser@21.1.1: {} - yargs@15.4.1: - dependencies: - cliui: 6.0.0 - decamelize: 1.2.0 - find-up: 4.1.0 - get-caller-file: 2.0.5 - require-directory: 2.1.1 - require-main-filename: 2.0.0 - set-blocking: 2.0.0 - string-width: 4.2.3 - which-module: 2.0.1 - y18n: 4.0.3 - yargs-parser: 18.1.3 - yargs@17.7.2: dependencies: cliui: 8.0.1 - escalade: 3.1.2 + escalade: 3.2.0 get-caller-file: 2.0.5 require-directory: 2.1.1 string-width: 4.2.3 @@ -9472,8 +9240,6 @@ snapshots: yocto-queue@0.1.0: {} - yocto-queue@1.1.1: {} - zen-observable-ts@1.2.5: dependencies: zen-observable: 0.8.15 diff --git a/dashboard-ui/src/apollo-client.ts b/dashboard-ui/src/apollo-client.ts index d0f2bcb9..040d4b77 100644 --- a/dashboard-ui/src/apollo-client.ts +++ b/dashboard-ui/src/apollo-client.ts @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -15,11 +15,11 @@ import { ApolloClient, InMemoryCache, + NormalizedCacheObject, createHttpLink, split, from, } from '@apollo/client'; -import type { HttpOptions } from '@apollo/client'; import type { Operation } from '@apollo/client/link/core'; import { onError } from '@apollo/client/link/error'; import { RetryLink } from '@apollo/client/link/retry'; @@ -28,23 +28,20 @@ import { getMainDefinition } from '@apollo/client/utilities'; import { ClientOptions, createClient } from 'graphql-ws'; import toast from 'react-hot-toast'; -import generatedIntrospection from '@/lib/graphql/__generated__/introspection-result.json'; -import { getBasename, getCSRFToken, joinPaths } from './lib/helpers'; +import appConfig from '@/app-config'; +import clusterAPI from '@/lib/graphql/cluster-api/__generated__/introspection-result.json'; +import dashboard from '@/lib/graphql/dashboard/__generated__/introspection-result.json'; +import { getBasename, getCSRFToken, joinPaths } from '@/lib/util'; -const graphqlEndpoint = (new URL(joinPaths(getBasename(), '/graphql'), window.location.origin)).toString(); +/** + * Shared items + */ -// http client options -const httpClientOptions: HttpOptions = { - uri: graphqlEndpoint, -}; +const basename = getBasename(); -// init websocket client const wsClientOptions: ClientOptions = { - url: graphqlEndpoint.replace(/^(http)/, 'ws'), + url: '', connectionAckWaitTimeout: 3000, - connectionParams: async () => ({ - authorization: `${await getCSRFToken()}`, - }), keepAlive: 3000, retryAttempts: Infinity, shouldRetry: () => true, @@ -53,13 +50,6 @@ const wsClientOptions: ClientOptions = { }), }; -export const wsClient = createClient(wsClientOptions); - -// init links -const httpLink = createHttpLink(httpClientOptions); - -const wsLink = new GraphQLWsLink(wsClient); - const errorLink = onError(({ graphQLErrors, networkError }) => { if (networkError) { const msg = `[Network Error] ${networkError.message}`; @@ -91,14 +81,40 @@ const retryLink = new RetryLink({ }, }); -const splitLink = split( - ({ query }) => { - const definition = getMainDefinition(query); - return definition.kind === 'OperationDefinition' && definition.operation === 'subscription'; - }, - wsLink, - from([errorLink, retryLink, httpLink]), -); +const createLink = (basepath: string) => { + const uri = new URL(joinPaths(basepath, 'graphql'), window.location.origin).toString(); + + // Create http link + const httpLink = createHttpLink({ uri }); + + // Create wsClient + const wsClient = createClient({ + ...wsClientOptions, + url: uri.replace(/^(http)/, 'ws'), + connectionParams: async () => ({ + authorization: `${await getCSRFToken(basepath)}`, + }), + }); + + // Create websocket link + const wsLink = new GraphQLWsLink(wsClient); + + // Combine using split link + const link = split( + ({ query }) => { + const definition = getMainDefinition(query); + return definition.kind === 'OperationDefinition' && definition.operation === 'subscription'; + }, + wsLink, + from([errorLink, retryLink, httpLink]), + ); + + return { link, wsClient }; +}; + +/** + * Dashboard client + */ const bigIntField = { read(value?: string | null): bigint | undefined | null { @@ -114,10 +130,9 @@ const dateField = { }, }; -// pagination helper function k8sPagination() { return { - keyArgs: ['namespace', 'options', ['labelSelector'], '@connection', ['key']], + keyArgs: ['kubeContext', 'namespace', 'options', ['labelSelector'], '@connection', ['key']], merge(existing: any, incoming: any, x: any) { // first call if (existing === undefined) return incoming; @@ -136,11 +151,10 @@ function k8sPagination() { }; } -// define CustomCache -export class CustomCache extends InMemoryCache { +export class DashboardCustomCache extends InMemoryCache { constructor() { super({ - possibleTypes: generatedIntrospection.possibleTypes, + possibleTypes: dashboard.possibleTypes, typePolicies: { BatchV1CronJobStatus: { fields: { @@ -148,11 +162,6 @@ export class CustomCache extends InMemoryCache { lastSuccessfulTime: dateField, }, }, - LogMetadataFileInfo: { - fields: { - lastModifiedAt: dateField, - }, - }, MetaV1ListMeta: { fields: { remainingItemCount: bigIntField, @@ -189,12 +198,74 @@ export class CustomCache extends InMemoryCache { } } -// init client -const client = new ApolloClient({ - cache: new CustomCache(), - link: splitLink, - name: 'kubetail', +const { link: dashboardLink, wsClient: dashboardWSClient } = createLink(basename); + +export const dashboardClient = new ApolloClient({ + cache: new DashboardCustomCache(), + link: dashboardLink, + name: 'kubetail/dashboard', version: '0.1.0', }); -export default client; +export { dashboardWSClient }; + +/** + * Cluster API client + */ + +type ClusterAPIContext = { + kubeContext: string; + namespace: string; + serviceName: string; +}; + +const clusterAPIClientCache = new Map>(); + +export class ClusterAPICustomCache extends InMemoryCache { + constructor() { + super({ + possibleTypes: clusterAPI.possibleTypes, + typePolicies: { + LogMetadataFileInfo: { + fields: { + lastModifiedAt: dateField, + }, + }, + }, + }); + } +} + +export const getClusterAPIClient = (context: ClusterAPIContext) => { + // Build cache key + let k = context.kubeContext; + if (appConfig.environment === 'desktop') { + k += `::${context.namespace}::${context.serviceName}`; + } + + // Check cache + let client = clusterAPIClientCache.get(k); + + if (!client) { + // Build basepath + let basepath = joinPaths(basename, 'cluster-api-proxy'); + if (appConfig.environment === 'desktop') { + basepath = joinPaths(basepath, context.kubeContext, context.namespace, context.serviceName); + } + + const { link } = createLink(basepath); + + // Init new client + client = new ApolloClient({ + cache: new ClusterAPICustomCache(), + link, + name: 'kubetail/dashboard', + version: '0.1.0', + }); + + // Add to cache + clusterAPIClientCache.set(k, client); + } + + return client; +}; diff --git a/dashboard-ui/src/app-config.ts b/dashboard-ui/src/app-config.ts index 24ad438a..d92e1e5a 100644 --- a/dashboard-ui/src/app-config.ts +++ b/dashboard-ui/src/app-config.ts @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -25,9 +25,13 @@ function camelCaseToUpperCaseWithUnderscores(input: string) { */ class Config { + authMode: string = 'auto'; + basePath: string = '/'; - extensionsEnabled: boolean = false; + clusterAPIEnabled: boolean = true; + + environment: string = 'desktop'; constructor() { const runtimeConfig = ('runtimeConfig' in window ? window.runtimeConfig : {}) as { [key: string]: string }; diff --git a/dashboard-ui/src/app-env.d.ts b/dashboard-ui/src/app-env.d.ts index d6a773a2..715ec00c 100644 --- a/dashboard-ui/src/app-env.d.ts +++ b/dashboard-ui/src/app-env.d.ts @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/dashboard-ui/src/components/elements/Modal.tsx b/dashboard-ui/src/components/elements/Modal.tsx index d4e3e052..67e36e53 100644 --- a/dashboard-ui/src/components/elements/Modal.tsx +++ b/dashboard-ui/src/components/elements/Modal.tsx @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -15,7 +15,7 @@ import { Dialog, DialogProps, DialogTitleProps } from '@headlessui/react'; import React, { useRef } from 'react'; -import { cn } from '@/lib/utils'; +import { cn } from '@/lib/util'; type ModalProps = DialogProps & { className?: string; diff --git a/dashboard-ui/src/components/layouts/AppLayout.tsx b/dashboard-ui/src/components/layouts/AppLayout.tsx index 3b0fa2ba..17fb689a 100644 --- a/dashboard-ui/src/components/layouts/AppLayout.tsx +++ b/dashboard-ui/src/components/layouts/AppLayout.tsx @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/dashboard-ui/src/components/layouts/ModalLayout.tsx b/dashboard-ui/src/components/layouts/ModalLayout.tsx index 0875c9f9..261bea63 100644 --- a/dashboard-ui/src/components/layouts/ModalLayout.tsx +++ b/dashboard-ui/src/components/layouts/ModalLayout.tsx @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,7 +16,7 @@ import { useEffect } from 'react'; import { Link } from 'react-router-dom'; import logo from '@/assets/logo.svg'; -import { cn } from '@/lib/utils'; +import { cn } from '@/lib/util'; interface ModalLayoutProps extends React.PropsWithChildren { innerClassName?: string; diff --git a/dashboard-ui/src/components/utils/AuthRequired.tsx b/dashboard-ui/src/components/utils/AuthRequired.tsx index ea75a720..b2288671 100644 --- a/dashboard-ui/src/components/utils/AuthRequired.tsx +++ b/dashboard-ui/src/components/utils/AuthRequired.tsx @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/dashboard-ui/src/components/utils/LoadingPage.test.tsx b/dashboard-ui/src/components/utils/LoadingPage.test.tsx index 7bbb9118..c0658092 100644 --- a/dashboard-ui/src/components/utils/LoadingPage.test.tsx +++ b/dashboard-ui/src/components/utils/LoadingPage.test.tsx @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/dashboard-ui/src/components/utils/LoadingPage.tsx b/dashboard-ui/src/components/utils/LoadingPage.tsx index 6e871600..4fea7f7d 100644 --- a/dashboard-ui/src/components/utils/LoadingPage.tsx +++ b/dashboard-ui/src/components/utils/LoadingPage.tsx @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/dashboard-ui/src/components/widgets/DateRangeDropdown.tsx b/dashboard-ui/src/components/widgets/DateRangeDropdown.tsx index 4e0677f7..670e9f5a 100644 --- a/dashboard-ui/src/components/widgets/DateRangeDropdown.tsx +++ b/dashboard-ui/src/components/widgets/DateRangeDropdown.tsx @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/dashboard-ui/src/components/widgets/Footer.tsx b/dashboard-ui/src/components/widgets/Footer.tsx index f1c9626e..2fd18b12 100644 --- a/dashboard-ui/src/components/widgets/Footer.tsx +++ b/dashboard-ui/src/components/widgets/Footer.tsx @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/dashboard-ui/src/components/widgets/ProfilePicDropdown.test.tsx b/dashboard-ui/src/components/widgets/ProfilePicDropdown.test.tsx index 08e56302..84f64bc1 100644 --- a/dashboard-ui/src/components/widgets/ProfilePicDropdown.test.tsx +++ b/dashboard-ui/src/components/widgets/ProfilePicDropdown.test.tsx @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/dashboard-ui/src/components/widgets/ProfilePicDropdown.tsx b/dashboard-ui/src/components/widgets/ProfilePicDropdown.tsx index 86058833..0cc1a6af 100644 --- a/dashboard-ui/src/components/widgets/ProfilePicDropdown.tsx +++ b/dashboard-ui/src/components/widgets/ProfilePicDropdown.tsx @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import { Menu, Transition } from '@headlessui/react'; +import { Menu, MenuButton, MenuItems, MenuItem, Transition } from '@headlessui/react'; import { UserCircleIcon } from '@heroicons/react/24/solid'; import { Fragment } from 'react'; import { Link } from 'react-router-dom'; @@ -25,10 +25,10 @@ const ProfilePicDropdown = () => { return (
- + Open user menu +
{ leaveFrom="transform opacity-100 scale-100" leaveTo="transform opacity-0 scale-95" > - - + +
{`User: ${session?.user}`}
-
+ {['cluster', 'local'].includes(session?.user || '') === false && ( - + Sign out - + )} -
+
); diff --git a/dashboard-ui/src/components/widgets/ServerStatus.tsx b/dashboard-ui/src/components/widgets/ServerStatus.tsx index cc26b9ac..d69e96a6 100644 --- a/dashboard-ui/src/components/widgets/ServerStatus.tsx +++ b/dashboard-ui/src/components/widgets/ServerStatus.tsx @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -12,13 +12,28 @@ // See the License for the specific language governing permissions and // limitations under the License. -import { useState } from 'react'; +import { useMutation, useSubscription } from '@apollo/client'; +import { Fragment, useEffect, useState } from 'react'; +import { RecoilRoot, atom, useRecoilValue, useSetRecoilState, type SetterOrUpdater } from 'recoil'; +import Button from '@kubetail/ui/elements/Button'; import DataTable from '@kubetail/ui/elements/DataTable'; +import appConfig from '@/app-config'; import Modal from '@/components/elements/Modal'; -import { Status, useServerStatus, type ServerStatus } from '@/lib/server-status'; -import { cn } from '@/lib/utils'; +import * as dashboardOps from '@/lib/graphql/dashboard/ops'; +import { ServerStatus, Status, useDashboardServerStatus, useKubernetesAPIServerStatus, useKubetailClusterAPIServerStatus } from '@/lib/server-status'; +import { cn } from '@/lib/util'; + +const kubernetesAPIServerStatusMapState = atom({ + key: 'kubernetesAPIServerStatusMap', + default: new Map(), +}); + +const kubetailClusterAPIServerStatusMapState = atom({ + key: 'kubetailClusterAPIServerStatusMap', + default: new Map(), +}); const HealthDot = ({ status }: { status: Status }) => { let color; @@ -29,6 +44,12 @@ const HealthDot = ({ status }: { status: Status }) => { case Status.Unhealthy: color = 'red'; break; + case Status.Degraded: + color = 'yellow'; + break; + case Status.NotFound: + color = 'yellow'; + break; case Status.Unknown: color = 'chrome'; break; @@ -44,6 +65,7 @@ const HealthDot = ({ status }: { status: Status }) => { 'bg-chrome-300': color === 'chrome', 'bg-red-500': color === 'red', 'bg-green-500': color === 'green', + 'bg-yellow-500': color === 'yellow', }, )} /> @@ -56,6 +78,8 @@ const statusMessage = (s: ServerStatus, unknownDefault: string): string => { return s.message || 'Ok'; case Status.Unhealthy: return s.message || 'Error'; + case Status.NotFound: + return s.message || 'Not found'; case Status.Unknown: return s.message || unknownDefault; default: @@ -63,14 +87,147 @@ const statusMessage = (s: ServerStatus, unknownDefault: string): string => { } }; -type ServerStatusProps = { +function useEffectServerStatus(kubeContext: string, setServerStatusMap: SetterOrUpdater>, serverStatus: ServerStatus) { + useEffect(() => { + setServerStatusMap((currVal) => { + const newVal = new Map(currVal); + newVal.set(kubeContext, serverStatus); + return newVal; + }); + + // Clean up + return () => { + setServerStatusMap((currVal) => { + const newVal = new Map(currVal); + newVal.set(kubeContext, new ServerStatus()); + return newVal; + }); + }; + }, [serverStatus.status]); +} + +const KubernetesAPIServerStatusFetcher = ({ kubeContext }: { kubeContext: string }) => { + const serverStatus = useKubernetesAPIServerStatus(kubeContext); + + // Update map + const setServerStatusMap = useSetRecoilState(kubernetesAPIServerStatusMapState); + useEffectServerStatus(kubeContext, setServerStatusMap, serverStatus); + + return null; +}; + +const KubetailClusterAPIServerStatusFetcher = ({ kubeContext }: { kubeContext: string }) => { + const serverStatus = useKubetailClusterAPIServerStatus(kubeContext); + + // Update map + const setServerStatusMap = useSetRecoilState(kubetailClusterAPIServerStatusMapState); + useEffectServerStatus(kubeContext, setServerStatusMap, serverStatus); + + return null; +}; + +type ServerStatusCellsProps = { + serverStatus: ServerStatus; + defaultMessage?: string; +}; + +const ServerStatusCells = ({ serverStatus, defaultMessage }: ServerStatusCellsProps) => ( + <> + + {statusMessage(serverStatus, defaultMessage || 'Uknown')} + +); + +type ServerStatusRowProps = { + kubeContext: string; + dashboardServerStatus: ServerStatus; +}; + +const KubernetesAPIServerStatusRow = ({ kubeContext, dashboardServerStatus }: ServerStatusRowProps) => { + const serverStatusMap = useRecoilValue(kubernetesAPIServerStatusMapState); + const serverStatus = serverStatusMap.get(kubeContext) || new ServerStatus(); + + return ( + + Kubernetes API + {dashboardServerStatus.status === Status.Unhealthy ? ( + + ) : ( + + )} + + ); +}; + +const KubetailClusterAPIServerStatusRow = ({ kubeContext, dashboardServerStatus }: ServerStatusRowProps) => { + const serverStatusMap = useRecoilValue(kubetailClusterAPIServerStatusMapState); + const serverStatus = serverStatusMap.get(kubeContext) || new ServerStatus(); + + const [install, { loading, data }] = useMutation(dashboardOps.KUBETAIL_CLUSTER_API_INSTALL); + + const handleInstall = async () => { + await install({ variables: { kubeContext } }); + }; + + return ( + + Kubetail Cluster API + {dashboardServerStatus.status === Status.Unhealthy ? ( + + ) : ( + <> + + {appConfig.environment === 'desktop' && serverStatus.status === Status.NotFound ? ( + + {statusMessage(serverStatus, 'Uknown')} + {data?.kubetailClusterAPIInstall !== true && ( + + )} + + ) : ( + + {statusMessage(serverStatus, 'Uknown')} + + )} + + )} + + ); +}; + +type ServerStatusWidgetProps = { className?: string; }; -const ServerStatusWidget = ({ className }: ServerStatusProps) => { - const { status, details } = useServerStatus(); +const ServerStatusWidget = ({ className }: ServerStatusWidgetProps) => { + const { data } = useSubscription(dashboardOps.KUBE_CONFIG_WATCH, { skip: appConfig.environment === 'cluster' }); + + const kubeContexts = new Array(); + if (appConfig.environment === 'cluster') { + kubeContexts.push(''); + } else { + data?.kubeConfigWatch?.object?.contexts.map((context) => kubeContexts.push(context.name)); + } + + const dashboardServerStatus = useDashboardServerStatus(); + const kubernetesAPIServertatusMap = useRecoilValue(kubernetesAPIServerStatusMapState); + const kubetailClusterAPIServerStatusMap = useRecoilValue(kubetailClusterAPIServerStatusMapState); + const [modalIsOpen, setModalIsOpen] = useState(false); + // Determine overall status + let overallStatus = Status.Unknown; + if (dashboardServerStatus.status === Status.Unhealthy) { + overallStatus = Status.Unhealthy; + } else { + const all = [dashboardServerStatus]; + for (const val of kubernetesAPIServertatusMap.values()) all.push(val); + for (const val of kubetailClusterAPIServerStatusMap.values()) all.push(val); + + if (all.every((item) => item.status === Status.Healthy)) overallStatus = Status.Healthy; + else overallStatus = Status.Degraded; + } + return (
setModalIsOpen(false)} > - Server Status + Health Status - Kubetail Backend - - {statusMessage(details.backendServer, 'Connecting...')} - - - Kubernetes Livez - - {statusMessage(details.k8sLivez, 'Uknown')} - - - Kubernetes Readyz - - {statusMessage(details.k8sReadyz, 'Unknown')} + Dashboard Backend + + {kubeContexts.map((kubeContext) => ( + +
{kubeContext || 'Cluster'}
+ + + + + + +
+ ))}
+ {kubeContexts.map((kubeContext) => ( + + + + + ))}
); }; -export default ServerStatusWidget; +const ServerStatusWidgetWrapper = (props: ServerStatusWidgetProps) => ( + + + +); + +export default ServerStatusWidgetWrapper; diff --git a/dashboard-ui/src/components/widgets/SourcePickerModal.tsx b/dashboard-ui/src/components/widgets/SourcePickerModal.tsx index 7a2b9de2..0dfaebb3 100644 --- a/dashboard-ui/src/components/widgets/SourcePickerModal.tsx +++ b/dashboard-ui/src/components/widgets/SourcePickerModal.tsx @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -23,10 +23,9 @@ import Form from '@kubetail/ui/elements/Form'; import Spinner from '@kubetail/ui/elements/Spinner'; import Modal from '@/components/elements/Modal'; -import * as ops from '@/lib/graphql/ops'; -import { Counter } from '@/lib/helpers'; +import * as dashboardOps from '@/lib/graphql/dashboard/ops'; import { useCounterQueryWithSubscription, useListQueryWithSubscription } from '@/lib/hooks'; -import { cn } from '@/lib/utils'; +import { Counter, cn } from '@/lib/util'; import { Workload, allWorkloads, iconMap, labelsPMap, typenameMap } from '@/lib/workload'; type ContextType = { @@ -42,61 +41,61 @@ const Context = createContext({} as ContextType); * Workload counter hook */ -function useWorkloadCounter(namespace: string = '') { +function useWorkloadCounter(kubeContext: string, namespace: string = '') { const cronjobs = useCounterQueryWithSubscription({ - query: ops.SOURCE_PICKER_CRONJOBS_COUNT_FETCH, - subscription: ops.SOURCE_PICKER_CRONJOBS_COUNT_WATCH, + query: dashboardOps.SOURCE_PICKER_CRONJOBS_COUNT_FETCH, + subscription: dashboardOps.SOURCE_PICKER_CRONJOBS_COUNT_WATCH, queryDataKey: 'batchV1CronJobsList', subscriptionDataKey: 'batchV1CronJobsWatch', - variables: { namespace }, + variables: { kubeContext, namespace }, }); const daemonsets = useCounterQueryWithSubscription({ - query: ops.SOURCE_PICKER_DAEMONSETS_COUNT_FETCH, - subscription: ops.SOURCE_PICKER_DAEMONSETS_COUNT_WATCH, + query: dashboardOps.SOURCE_PICKER_DAEMONSETS_COUNT_FETCH, + subscription: dashboardOps.SOURCE_PICKER_DAEMONSETS_COUNT_WATCH, queryDataKey: 'appsV1DaemonSetsList', subscriptionDataKey: 'appsV1DaemonSetsWatch', - variables: { namespace }, + variables: { kubeContext, namespace }, }); const deployments = useCounterQueryWithSubscription({ - query: ops.SOURCE_PICKER_DEPLOYMENTS_COUNT_FETCH, - subscription: ops.SOURCE_PICKER_DEPLOYMENTS_COUNT_WATCH, + query: dashboardOps.SOURCE_PICKER_DEPLOYMENTS_COUNT_FETCH, + subscription: dashboardOps.SOURCE_PICKER_DEPLOYMENTS_COUNT_WATCH, queryDataKey: 'appsV1DeploymentsList', subscriptionDataKey: 'appsV1DeploymentsWatch', - variables: { namespace }, + variables: { kubeContext, namespace }, }); const jobs = useCounterQueryWithSubscription({ - query: ops.SOURCE_PICKER_JOBS_COUNT_FETCH, - subscription: ops.SOURCE_PICKER_JOBS_COUNT_WATCH, + query: dashboardOps.SOURCE_PICKER_JOBS_COUNT_FETCH, + subscription: dashboardOps.SOURCE_PICKER_JOBS_COUNT_WATCH, queryDataKey: 'batchV1JobsList', subscriptionDataKey: 'batchV1JobsWatch', - variables: { namespace }, + variables: { kubeContext, namespace }, }); const pods = useCounterQueryWithSubscription({ - query: ops.SOURCE_PICKER_PODS_COUNT_FETCH, - subscription: ops.SOURCE_PICKER_PODS_COUNT_WATCH, + query: dashboardOps.SOURCE_PICKER_PODS_COUNT_FETCH, + subscription: dashboardOps.SOURCE_PICKER_PODS_COUNT_WATCH, queryDataKey: 'coreV1PodsList', subscriptionDataKey: 'coreV1PodsWatch', - variables: { namespace }, + variables: { kubeContext, namespace }, }); const replicasets = useCounterQueryWithSubscription({ - query: ops.SOURCE_PICKER_REPLICASETS_COUNT_FETCH, - subscription: ops.SOURCE_PICKER_REPLICASETS_COUNT_WATCH, + query: dashboardOps.SOURCE_PICKER_REPLICASETS_COUNT_FETCH, + subscription: dashboardOps.SOURCE_PICKER_REPLICASETS_COUNT_WATCH, queryDataKey: 'appsV1ReplicaSetsList', subscriptionDataKey: 'appsV1ReplicaSetsWatch', - variables: { namespace }, + variables: { kubeContext, namespace }, }); const statefulsets = useCounterQueryWithSubscription({ - query: ops.SOURCE_PICKER_STATEFULSETS_COUNT_FETCH, - subscription: ops.SOURCE_PICKER_STATEFULSETS_COUNT_WATCH, + query: dashboardOps.SOURCE_PICKER_STATEFULSETS_COUNT_FETCH, + subscription: dashboardOps.SOURCE_PICKER_STATEFULSETS_COUNT_WATCH, queryDataKey: 'appsV1StatefulSetsList', subscriptionDataKey: 'appsV1StatefulSetsWatch', - variables: { namespace }, + variables: { kubeContext, namespace }, }); const reqs = [cronjobs, daemonsets, deployments, jobs, pods, replicasets, statefulsets]; @@ -130,8 +129,8 @@ const Namespaces = () => { const { namespace, setNamespace } = useContext(Context); const { data } = useListQueryWithSubscription({ - query: ops.SOURCE_PICKER_NAMESPACES_LIST_FETCH, - subscription: ops.SOURCE_PICKER_NAMESPACES_LIST_WATCH, + query: dashboardOps.SOURCE_PICKER_NAMESPACES_LIST_FETCH, + subscription: dashboardOps.SOURCE_PICKER_NAMESPACES_LIST_WATCH, queryDataKey: 'coreV1NamespacesList', subscriptionDataKey: 'coreV1NamespacesWatch', }); @@ -339,8 +338,8 @@ const DisplayItems = ({ items }: DisplayItemsProps) => { const DisplayCronJobs = () => { const { loading, data } = useListQueryWithSubscription({ - query: ops.SOURCE_PICKER_CRONJOBS_LIST_FETCH, - subscription: ops.SOURCE_PICKER_CRONJOBS_LIST_WATCH, + query: dashboardOps.SOURCE_PICKER_CRONJOBS_LIST_FETCH, + subscription: dashboardOps.SOURCE_PICKER_CRONJOBS_LIST_WATCH, queryDataKey: 'batchV1CronJobsList', subscriptionDataKey: 'batchV1CronJobsWatch', }); @@ -353,8 +352,8 @@ const DisplayCronJobs = () => { const DisplayDaemonSets = () => { const { loading, data } = useListQueryWithSubscription({ - query: ops.SOURCE_PICKER_DAEMONSETS_LIST_FETCH, - subscription: ops.SOURCE_PICKER_DAEMONSETS_LIST_WATCH, + query: dashboardOps.SOURCE_PICKER_DAEMONSETS_LIST_FETCH, + subscription: dashboardOps.SOURCE_PICKER_DAEMONSETS_LIST_WATCH, queryDataKey: 'appsV1DaemonSetsList', subscriptionDataKey: 'appsV1DaemonSetsWatch', }); @@ -367,8 +366,8 @@ const DisplayDaemonSets = () => { const DisplayDeployments = () => { const { loading, data } = useListQueryWithSubscription({ - query: ops.SOURCE_PICKER_DEPLOYMENTS_LIST_FETCH, - subscription: ops.SOURCE_PICKER_DEPLOYMENTS_LIST_WATCH, + query: dashboardOps.SOURCE_PICKER_DEPLOYMENTS_LIST_FETCH, + subscription: dashboardOps.SOURCE_PICKER_DEPLOYMENTS_LIST_WATCH, queryDataKey: 'appsV1DeploymentsList', subscriptionDataKey: 'appsV1DeploymentsWatch', }); @@ -381,8 +380,8 @@ const DisplayDeployments = () => { const DisplayJobs = () => { const { loading, data } = useListQueryWithSubscription({ - query: ops.SOURCE_PICKER_JOBS_LIST_FETCH, - subscription: ops.SOURCE_PICKER_JOBS_LIST_WATCH, + query: dashboardOps.SOURCE_PICKER_JOBS_LIST_FETCH, + subscription: dashboardOps.SOURCE_PICKER_JOBS_LIST_WATCH, queryDataKey: 'batchV1JobsList', subscriptionDataKey: 'batchV1JobsWatch', }); @@ -395,8 +394,8 @@ const DisplayJobs = () => { const DisplayPods = () => { const { loading, data } = useListQueryWithSubscription({ - query: ops.SOURCE_PICKER_PODS_LIST_FETCH, - subscription: ops.SOURCE_PICKER_PODS_LIST_WATCH, + query: dashboardOps.SOURCE_PICKER_PODS_LIST_FETCH, + subscription: dashboardOps.SOURCE_PICKER_PODS_LIST_WATCH, queryDataKey: 'coreV1PodsList', subscriptionDataKey: 'coreV1PodsWatch', }); @@ -409,8 +408,8 @@ const DisplayPods = () => { const DisplayReplicaSets = () => { const { loading, data } = useListQueryWithSubscription({ - query: ops.SOURCE_PICKER_REPLICASETS_LIST_FETCH, - subscription: ops.SOURCE_PICKER_REPLICASETS_LIST_WATCH, + query: dashboardOps.SOURCE_PICKER_REPLICASETS_LIST_FETCH, + subscription: dashboardOps.SOURCE_PICKER_REPLICASETS_LIST_WATCH, queryDataKey: 'appsV1ReplicaSetsList', subscriptionDataKey: 'appsV1ReplicaSetsWatch', }); @@ -423,8 +422,8 @@ const DisplayReplicaSets = () => { const DisplayStatefulSets = () => { const { loading, data } = useListQueryWithSubscription({ - query: ops.SOURCE_PICKER_STATEFULSETS_LIST_FETCH, - subscription: ops.SOURCE_PICKER_STATEFULSETS_LIST_WATCH, + query: dashboardOps.SOURCE_PICKER_STATEFULSETS_LIST_FETCH, + subscription: dashboardOps.SOURCE_PICKER_STATEFULSETS_LIST_WATCH, queryDataKey: 'appsV1StatefulSetsList', subscriptionDataKey: 'appsV1StatefulSetsWatch', }); diff --git a/dashboard-ui/src/error-page.tsx b/dashboard-ui/src/error-page.tsx index c4b74c33..8a42345e 100644 --- a/dashboard-ui/src/error-page.tsx +++ b/dashboard-ui/src/error-page.tsx @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/dashboard-ui/src/index.css b/dashboard-ui/src/index.css index b734193a..07c3a1f4 100644 --- a/dashboard-ui/src/index.css +++ b/dashboard-ui/src/index.css @@ -129,4 +129,4 @@ .rounded-tbody tr:last-child td:last-child { @apply rounded-br; } -} \ No newline at end of file +} diff --git a/dashboard-ui/src/lib/auth.tsx b/dashboard-ui/src/lib/auth.tsx index 6ee7edab..16de6c07 100644 --- a/dashboard-ui/src/lib/auth.tsx +++ b/dashboard-ui/src/lib/auth.tsx @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,7 +14,7 @@ import { createContext, useContext, useEffect, useMemo, useState } from 'react'; -import { getBasename, joinPaths } from '@/lib/helpers'; +import { getBasename, joinPaths } from '@/lib/util'; const bcName = 'auth/session'; const bc = new BroadcastChannel(bcName); diff --git a/dashboard-ui/src/lib/console/helpers.tsx b/dashboard-ui/src/lib/console/helpers.tsx index e6b2011e..7aaa5bf4 100644 --- a/dashboard-ui/src/lib/console/helpers.tsx +++ b/dashboard-ui/src/lib/console/helpers.tsx @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import { cssEncode } from '@/lib/helpers'; +import { cssEncode } from '@/lib/util'; import type { Pod } from './logging-resources'; diff --git a/dashboard-ui/src/lib/console/logfeed.tsx b/dashboard-ui/src/lib/console/logfeed.tsx index cb87e1df..efea38a7 100644 --- a/dashboard-ui/src/lib/console/logfeed.tsx +++ b/dashboard-ui/src/lib/console/logfeed.tsx @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -25,17 +25,16 @@ import { useDebounceCallback } from 'usehooks-ts'; import Spinner from '@kubetail/ui/elements/Spinner'; -import { Counter, MapSet, intersectSets } from '@/lib/helpers'; import type { LogRecord as GraphQLLogRecord, PageInfo, PodLogQueryResponse as GraphQLPodLogQueryResponse, -} from '@/lib/graphql/__generated__/graphql'; -import * as ops from '@/lib/graphql/ops'; -import { cn } from '@/lib/utils'; +} from '@/lib/graphql/dashboard/__generated__/graphql'; +import * as dashboardOps from '@/lib/graphql/dashboard/ops'; +import { Counter, MapSet, cn, intersectSets } from '@/lib/util'; import { cssID } from './helpers'; -import { useNodes, usePods } from './logging-resources'; +import { useKubeContext, useNodes, usePods } from './logging-resources'; import type { Node, Pod } from './logging-resources'; /** @@ -838,6 +837,8 @@ const LogFeedRecordFetcherImpl: React.ForwardRefRenderFunction, ) => { + const kubeContext = useKubeContext(); + const { node, pod, container, defaultFollowAfter, onFollowData } = props; const { namespace, name } = pod.metadata; @@ -847,16 +848,16 @@ const LogFeedRecordFetcherImpl: React.ForwardRefRenderFunction ({ ...record, node, pod, container }); // head - const head = useQuery(ops.HEAD_CONTAINER_LOG, { - variables: { namespace, name, container }, + const head = useQuery(dashboardOps.POD_LOG_HEAD, { + variables: { kubeContext, namespace, name, container }, skip: true, fetchPolicy: 'no-cache', onError: console.log, }); // tail - const tail = useQuery(ops.TAIL_CONTAINER_LOG, { - variables: { namespace, name, container }, + const tail = useQuery(dashboardOps.POD_LOG_TAIL, { + variables: { kubeContext, namespace, name, container }, skip: true, fetchPolicy: 'no-cache', onError: console.log, @@ -866,8 +867,8 @@ const LogFeedRecordFetcherImpl: React.ForwardRefRenderFunction { if (!isFollow) return; return tail.subscribeToMore({ - document: ops.FOLLOW_CONTAINER_LOG, - variables: { namespace, name, container, after: followAfterRef.current }, + document: dashboardOps.POD_LOG_FOLLOW, + variables: { kubeContext, namespace, name, container, after: followAfterRef.current }, updateQuery: (_, { subscriptionData }) => { const { data: { podLogFollow: data } } = subscriptionData; if (data) { diff --git a/dashboard-ui/src/lib/console/logging-resources.tsx b/dashboard-ui/src/lib/console/logging-resources.tsx index 641c2205..9e22cea4 100644 --- a/dashboard-ui/src/lib/console/logging-resources.tsx +++ b/dashboard-ui/src/lib/console/logging-resources.tsx @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,13 +14,12 @@ import { ApolloError } from '@apollo/client'; import { useEffect } from 'react'; -import { - RecoilRoot, atom, useRecoilState, useRecoilValue, useSetRecoilState, -} from 'recoil'; +import { useSearchParams } from 'react-router-dom'; +import { RecoilRoot, atom, useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'; import type { ExtractQueryType } from '@/app-env'; -import * as fragments from '@/lib/graphql/fragments'; -import * as ops from '@/lib/graphql/ops'; +import * as dashboardFragments from '@/lib/graphql/dashboard/fragments'; +import * as dashboardOps from '@/lib/graphql/dashboard/ops'; import { useGetQueryWithSubscription, useListQueryWithSubscription } from '@/lib/hooks'; import { Workload as WorkloadType, typenameMap } from '@/lib/workload'; @@ -28,11 +27,12 @@ import { Workload as WorkloadType, typenameMap } from '@/lib/workload'; * Shared types */ -export type Node = ExtractQueryType; -export type Workload = ExtractQueryType; -export type Pod = ExtractQueryType; +export type Node = ExtractQueryType; +export type Workload = ExtractQueryType; +export type Pod = ExtractQueryType; type LoadWorkloadProps = { + kubeContext: string; namespace: string; name: string; sourcePath: string; @@ -72,12 +72,21 @@ const sourceToPodListResponseMapState = atom({ * Hooks */ +export function useKubeContext() { + // TODO: kubeContext should come from LoggingResourceProvider more directly + const [searchParams] = useSearchParams(); + return searchParams.get('kubeContext') || ''; +} + export function useNodes() { + const kubeContext = useKubeContext(); + const { fetching, data } = useListQueryWithSubscription({ - query: ops.CONSOLE_NODES_LIST_FETCH, - subscription: ops.CONSOLE_NODES_LIST_WATCH, + query: dashboardOps.CONSOLE_NODES_LIST_FETCH, + subscription: dashboardOps.CONSOLE_NODES_LIST_WATCH, queryDataKey: 'coreV1NodesList', subscriptionDataKey: 'coreV1NodesWatch', + variables: { kubeContext }, }); const loading = fetching; // treat still-fetching as still-loading @@ -150,10 +159,12 @@ function useWorkloadMapUpdater(sourcePath: string, value: WorkloadResponse) { */ const LoadPodsForLabels = ({ + kubeContext, sourcePath, namespace, matchLabels, }: { + kubeContext: string; sourcePath: string; namespace: string; matchLabels: Record | null | undefined; @@ -162,12 +173,12 @@ const LoadPodsForLabels = ({ if (matchLabels) labelSelector = Object.keys(matchLabels).map((k) => `${k}=${matchLabels[k]}`).join(','); const { loading, error, data } = useListQueryWithSubscription({ - query: ops.CONSOLE_LOGGING_RESOURCES_PODS_FIND, - subscription: ops.CONSOLE_LOGGING_RESOURCES_PODS_WATCH, + query: dashboardOps.CONSOLE_LOGGING_RESOURCES_PODS_FIND, + subscription: dashboardOps.CONSOLE_LOGGING_RESOURCES_PODS_WATCH, queryDataKey: 'coreV1PodsList', subscriptionDataKey: 'coreV1PodsWatch', skip: !namespace || !labelSelector, - variables: { namespace, labelSelector }, + variables: { kubeContext, namespace, labelSelector }, }); const setSourceToPodListResponseMap = useSetRecoilState(sourceToPodListResponseMapState); @@ -188,24 +199,24 @@ const LoadPodsForLabels = ({ * Fetch a CronJob workload and associated streams */ -const LoadCronJobWorkload = ({ namespace, name, sourcePath }: LoadWorkloadProps) => { +const LoadCronJobWorkload = ({ kubeContext, namespace, name, sourcePath }: LoadWorkloadProps) => { const { loading, error, data } = useGetQueryWithSubscription({ - query: ops.CONSOLE_LOGGING_RESOURCES_CRONJOB_GET, - subscription: ops.CONSOLE_LOGGING_RESOURCES_CRONJOB_WATCH, + query: dashboardOps.CONSOLE_LOGGING_RESOURCES_CRONJOB_GET, + subscription: dashboardOps.CONSOLE_LOGGING_RESOURCES_CRONJOB_WATCH, queryDataKey: 'batchV1CronJobsGet', subscriptionDataKey: 'batchV1CronJobsWatch', skip: (!namespace || !name), - variables: { namespace, name }, + variables: { kubeContext, namespace, name }, }); // get all jobs in namespace const jobsReq = useListQueryWithSubscription({ - query: ops.CONSOLE_LOGGING_RESOURCES_JOBS_FIND, - subscription: ops.CONSOLE_LOGGING_RESOURCES_JOBS_WATCH, + query: dashboardOps.CONSOLE_LOGGING_RESOURCES_JOBS_FIND, + subscription: dashboardOps.CONSOLE_LOGGING_RESOURCES_JOBS_WATCH, queryDataKey: 'batchV1JobsList', subscriptionDataKey: 'batchV1JobsWatch', skip: !namespace, - variables: { namespace }, + variables: { kubeContext, namespace }, }); const item = data?.batchV1CronJobsGet; @@ -221,6 +232,7 @@ const LoadCronJobWorkload = ({ namespace, name, sourcePath }: LoadWorkloadProps) return ( { +const LoadDaemonSetWorkload = ({ kubeContext, namespace, name, sourcePath }: LoadWorkloadProps) => { const { loading, error, data } = useGetQueryWithSubscription({ - query: ops.CONSOLE_LOGGING_RESOURCES_DAEMONSET_GET, - subscription: ops.CONSOLE_LOGGING_RESOURCES_DAEMONSET_WATCH, + query: dashboardOps.CONSOLE_LOGGING_RESOURCES_DAEMONSET_GET, + subscription: dashboardOps.CONSOLE_LOGGING_RESOURCES_DAEMONSET_WATCH, skip: (!namespace || !name), - variables: { namespace, name }, + variables: { kubeContext, namespace, name }, queryDataKey: 'appsV1DaemonSetsGet', subscriptionDataKey: 'appsV1DaemonSetsWatch', }); @@ -257,6 +269,7 @@ const LoadDaemonSetWorkload = ({ namespace, name, sourcePath }: LoadWorkloadProp return ( { +const LoadDeploymentWorkload = ({ kubeContext, namespace, name, sourcePath }: LoadWorkloadProps) => { const { loading, error, data } = useGetQueryWithSubscription({ - query: ops.CONSOLE_LOGGING_RESOURCES_DEPLOYMENT_GET, - subscription: ops.CONSOLE_LOGGING_RESOURCES_DEPLOYMENT_WATCH, + query: dashboardOps.CONSOLE_LOGGING_RESOURCES_DEPLOYMENT_GET, + subscription: dashboardOps.CONSOLE_LOGGING_RESOURCES_DEPLOYMENT_WATCH, skip: (!namespace || !name), - variables: { namespace, name }, + variables: { kubeContext, namespace, name }, queryDataKey: 'appsV1DeploymentsGet', subscriptionDataKey: 'appsV1DeploymentsWatch', }); @@ -288,6 +301,7 @@ const LoadDeploymentWorkload = ({ namespace, name, sourcePath }: LoadWorkloadPro return ( { +const LoadJobWorkload = ({ kubeContext, namespace, name, sourcePath }: LoadWorkloadProps) => { const { loading, error, data } = useGetQueryWithSubscription({ - query: ops.CONSOLE_LOGGING_RESOURCES_JOB_GET, - subscription: ops.CONSOLE_LOGGING_RESOURCES_JOB_WATCH, + query: dashboardOps.CONSOLE_LOGGING_RESOURCES_JOB_GET, + subscription: dashboardOps.CONSOLE_LOGGING_RESOURCES_JOB_WATCH, skip: (!namespace || !name), - variables: { namespace, name }, + variables: { kubeContext, namespace, name }, queryDataKey: 'batchV1JobsGet', subscriptionDataKey: 'batchV1JobsWatch', }); @@ -319,6 +333,7 @@ const LoadJobWorkload = ({ namespace, name, sourcePath }: LoadWorkloadProps) => return ( * Fetch a Pod workload and associated streams */ -const LoadPodWorkload = ({ namespace, name, sourcePath }: LoadWorkloadProps) => { +const LoadPodWorkload = ({ kubeContext, namespace, name, sourcePath }: LoadWorkloadProps) => { const { loading, error, data } = useGetQueryWithSubscription({ - query: ops.CONSOLE_LOGGING_RESOURCES_POD_GET, - subscription: ops.CONSOLE_LOGGING_RESOURCES_POD_WATCH, + query: dashboardOps.CONSOLE_LOGGING_RESOURCES_POD_GET, + subscription: dashboardOps.CONSOLE_LOGGING_RESOURCES_POD_WATCH, skip: (!namespace || !name), - variables: { namespace, name }, + variables: { kubeContext, namespace, name }, queryDataKey: 'coreV1PodsGet', subscriptionDataKey: 'coreV1PodsWatch', }); @@ -361,12 +376,12 @@ const LoadPodWorkload = ({ namespace, name, sourcePath }: LoadWorkloadProps) => * Fetch a ReplicaSet workload and associated streams */ -const LoadReplicaSetWorkload = ({ namespace, name, sourcePath }: LoadWorkloadProps) => { +const LoadReplicaSetWorkload = ({ kubeContext, namespace, name, sourcePath }: LoadWorkloadProps) => { const { loading, error, data } = useGetQueryWithSubscription({ - query: ops.CONSOLE_LOGGING_RESOURCES_REPLICASET_GET, - subscription: ops.CONSOLE_LOGGING_RESOURCES_REPLICASET_WATCH, + query: dashboardOps.CONSOLE_LOGGING_RESOURCES_REPLICASET_GET, + subscription: dashboardOps.CONSOLE_LOGGING_RESOURCES_REPLICASET_WATCH, skip: (!namespace || !name), - variables: { namespace, name }, + variables: { kubeContext, namespace, name }, queryDataKey: 'appsV1ReplicaSetsGet', subscriptionDataKey: 'appsV1ReplicaSetsWatch', }); @@ -381,6 +396,7 @@ const LoadReplicaSetWorkload = ({ namespace, name, sourcePath }: LoadWorkloadPro return ( { +const LoadStatefulSetWorkload = ({ kubeContext, namespace, name, sourcePath }: LoadWorkloadProps) => { const { loading, error, data } = useGetQueryWithSubscription({ - query: ops.CONSOLE_LOGGING_RESOURCES_STATEFULSET_GET, - subscription: ops.CONSOLE_LOGGING_RESOURCES_STATEFULSET_WATCH, + query: dashboardOps.CONSOLE_LOGGING_RESOURCES_STATEFULSET_GET, + subscription: dashboardOps.CONSOLE_LOGGING_RESOURCES_STATEFULSET_WATCH, skip: (!namespace || !name), - variables: { namespace, name }, + variables: { kubeContext, namespace, name }, queryDataKey: 'appsV1StatefulSetsGet', subscriptionDataKey: 'appsV1StatefulSetsWatch', }); @@ -412,6 +428,7 @@ const LoadStatefulSetWorkload = ({ namespace, name, sourcePath }: LoadWorkloadPr return ( { +const LoadPodWorkloadWildcard = ({ kubeContext, namespace, sourcePath }: { kubeContext: string; namespace: string; sourcePath: string; }) => { const { loading, error, data } = useListQueryWithSubscription({ - query: ops.CONSOLE_LOGGING_RESOURCES_PODS_LIST_FETCH, - subscription: ops.CONSOLE_LOGGING_RESOURCES_PODS_LIST_WATCH, + query: dashboardOps.CONSOLE_LOGGING_RESOURCES_PODS_LIST_FETCH, + subscription: dashboardOps.CONSOLE_LOGGING_RESOURCES_PODS_LIST_WATCH, skip: !namespace, - variables: { namespace }, + variables: { kubeContext, namespace }, queryDataKey: 'coreV1PodsList', subscriptionDataKey: 'coreV1PodsWatch', }); @@ -479,10 +496,11 @@ const SourceDeletionHandler = ({ sourcePaths }: SourceDeletionHandlerProps) => { */ interface LoggingResourcesProviderProps extends React.PropsWithChildren { + kubeContext: string; sourcePaths: string[]; } -export const LoggingResourcesProvider = ({ sourcePaths, children }: LoggingResourcesProviderProps) => { +export const LoggingResourcesProvider = ({ kubeContext, sourcePaths, children }: LoggingResourcesProviderProps) => { // uniquify sourcePaths const sourcePathsSorted = Array.from(new Set(sourcePaths || [])); sourcePathsSorted.sort(); @@ -503,11 +521,11 @@ export const LoggingResourcesProvider = ({ sourcePaths, children }: LoggingResou {sourcePathsSorted.map((path) => { const [namespace, workloadType, workloadName] = path.split('/'); if (workloadType === WorkloadType.PODS && workloadName === '*') { - return ; + return ; } if (!(workloadType in resourceLoaders)) throw new Error(`not implemented: ${workloadType}`); const Component = resourceLoaders[workloadType as WorkloadType]; - return ; + return ; })} {children} diff --git a/dashboard-ui/src/lib/graphql/__generated__/gql.ts b/dashboard-ui/src/lib/graphql/__generated__/gql.ts deleted file mode 100644 index d531ee93..00000000 --- a/dashboard-ui/src/lib/graphql/__generated__/gql.ts +++ /dev/null @@ -1,773 +0,0 @@ -/* eslint-disable */ -import * as types from './graphql'; -import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core'; - -/** - * Map of all GraphQL operations in the project. - * - * This map has several performance disadvantages: - * 1. It is not tree-shakeable, so it will include all operations in the project. - * 2. It is not minifiable, so the string of a GraphQL query will be multiple times inside the bundle. - * 3. It does not support dead code elimination, so it will add unused operations. - * - * Therefore it is highly recommended to use the babel or swc plugin for production. - * Learn more about it here: https://the-guild.dev/graphql/codegen/plugins/presets/preset-client#reducing-bundle-size - */ -const documents = { - "\n fragment HomeGenericListFragment on List {\n metadata {\n continue\n resourceVersion\n }\n }\n": types.HomeGenericListFragmentFragmentDoc, - "\n fragment HomeGenericListItemFragment on Object {\n id\n metadata {\n namespace\n name\n uid\n creationTimestamp\n deletionTimestamp\n resourceVersion\n ownerReferences {\n name\n uid\n controller\n }\n }\n }\n": types.HomeGenericListItemFragmentFragmentDoc, - "\n fragment HomeCronJobsListItemFragment on BatchV1CronJob {\n ...HomeGenericListItemFragment\n }\n": types.HomeCronJobsListItemFragmentFragmentDoc, - "\n fragment HomeDaemonSetsListItemFragment on AppsV1DaemonSet {\n ...HomeGenericListItemFragment\n }\n": types.HomeDaemonSetsListItemFragmentFragmentDoc, - "\n fragment HomeDeploymentsListItemFragment on AppsV1Deployment {\n ...HomeGenericListItemFragment\n }\n": types.HomeDeploymentsListItemFragmentFragmentDoc, - "\n fragment HomeJobsListItemFragment on BatchV1Job {\n ...HomeGenericListItemFragment\n }\n": types.HomeJobsListItemFragmentFragmentDoc, - "\n fragment HomeNamespacesListItemFragment on CoreV1Namespace {\n ...HomeGenericListItemFragment\n }\n": types.HomeNamespacesListItemFragmentFragmentDoc, - "\n fragment HomePodsListItemFragment on CoreV1Pod {\n ...HomeGenericListItemFragment\n status {\n containerStatuses {\n containerID\n started\n }\n }\n }\n": types.HomePodsListItemFragmentFragmentDoc, - "\n fragment HomeReplicaSetsListItemFragment on AppsV1ReplicaSet {\n ...HomeGenericListItemFragment\n }\n": types.HomeReplicaSetsListItemFragmentFragmentDoc, - "\n fragment HomeStatefulSetsListItemFragment on AppsV1StatefulSet {\n ...HomeGenericListItemFragment\n }\n": types.HomeStatefulSetsListItemFragmentFragmentDoc, - "\n fragment ConsoleLoggingResourcesGenericObjectFragment on Object {\n id\n metadata {\n namespace\n name\n uid\n creationTimestamp\n deletionTimestamp\n resourceVersion\n ownerReferences {\n name\n uid\n controller\n }\n }\n }\n": types.ConsoleLoggingResourcesGenericObjectFragmentFragmentDoc, - "\n fragment ConsoleLoggingResourcesCronJobFragment on BatchV1CronJob {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n jobTemplate {\n spec {\n selector {\n matchLabels\n }\n }\n }\n }\n }\n": types.ConsoleLoggingResourcesCronJobFragmentFragmentDoc, - "\n fragment ConsoleLoggingResourcesDaemonSetFragment on AppsV1DaemonSet {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n selector {\n matchLabels\n }\n }\n }\n": types.ConsoleLoggingResourcesDaemonSetFragmentFragmentDoc, - "\n fragment ConsoleLoggingResourcesDeploymentFragment on AppsV1Deployment {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n selector {\n matchLabels\n }\n }\n }\n": types.ConsoleLoggingResourcesDeploymentFragmentFragmentDoc, - "\n fragment ConsoleLoggingResourcesJobFragment on BatchV1Job {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n selector {\n matchLabels\n }\n }\n }\n": types.ConsoleLoggingResourcesJobFragmentFragmentDoc, - "\n fragment ConsoleLoggingResourcesPodFragment on CoreV1Pod {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n containers {\n name\n }\n nodeName\n }\n status {\n containerStatuses {\n name\n started\n state {\n running {\n startedAt\n }\n terminated {\n exitCode\n }\n }\n }\n }\n }\n": types.ConsoleLoggingResourcesPodFragmentFragmentDoc, - "\n fragment ConsoleLoggingResourcesReplicaSetFragment on AppsV1ReplicaSet {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n selector {\n matchLabels\n }\n }\n }\n": types.ConsoleLoggingResourcesReplicaSetFragmentFragmentDoc, - "\n fragment ConsoleLoggingResourcesStatefulSetFragment on AppsV1StatefulSet {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n selector {\n matchLabels\n }\n }\n }\n": types.ConsoleLoggingResourcesStatefulSetFragmentFragmentDoc, - "\n fragment ConsoleLoggingResourcesJobsFindFragment on BatchV1Job {\n id\n metadata {\n namespace\n name\n uid\n deletionTimestamp\n resourceVersion\n ownerReferences {\n name\n uid\n controller\n }\n }\n spec {\n selector {\n matchLabels\n }\n }\n }\n": types.ConsoleLoggingResourcesJobsFindFragmentFragmentDoc, - "\n fragment ConsoleNodesListItemFragment on CoreV1Node {\n id\n metadata {\n name\n uid\n creationTimestamp\n deletionTimestamp\n resourceVersion\n labels\n annotations\n }\n }\n": types.ConsoleNodesListItemFragmentFragmentDoc, - "\n fragment SourcePickerGenericCounterFragment on List {\n metadata {\n remainingItemCount\n resourceVersion\n }\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n": types.SourcePickerGenericCounterFragmentFragmentDoc, - "\n fragment SourcePickerGenericCounterItemFragment on Object {\n id\n metadata {\n resourceVersion\n }\n }\n": types.SourcePickerGenericCounterItemFragmentFragmentDoc, - "\n fragment SourcePickerGenericListFragment on List {\n metadata {\n continue\n resourceVersion\n }\n }\n": types.SourcePickerGenericListFragmentFragmentDoc, - "\n fragment SourcePickerGenericListItemFragment on Object {\n id\n metadata {\n namespace\n name\n uid\n creationTimestamp\n deletionTimestamp\n resourceVersion\n }\n }\n": types.SourcePickerGenericListItemFragmentFragmentDoc, - "\n fragment ExplorerGenericListFragment on List {\n metadata {\n continue\n resourceVersion\n }\n }\n": types.ExplorerGenericListFragmentFragmentDoc, - "\n fragment ExplorerGenericListItemFragment on Object {\n id\n metadata {\n namespace\n name\n uid\n creationTimestamp\n deletionTimestamp\n resourceVersion\n ownerReferences {\n name\n uid\n controller\n }\n }\n }\n": types.ExplorerGenericListItemFragmentFragmentDoc, - "\n fragment ExplorerCronJobsListItemFragment on BatchV1CronJob {\n ...ExplorerGenericListItemFragment\n spec {\n schedule\n suspend\n }\n status {\n active {\n __typename\n }\n lastScheduleTime\n lastSuccessfulTime\n }\n }\n": types.ExplorerCronJobsListItemFragmentFragmentDoc, - "\n fragment ExplorerDaemonSetsListItemFragment on AppsV1DaemonSet {\n ...ExplorerGenericListItemFragment\n status {\n currentNumberScheduled\n desiredNumberScheduled\n }\n }\n": types.ExplorerDaemonSetsListItemFragmentFragmentDoc, - "\n fragment ExplorerDeploymentsListItemFragment on AppsV1Deployment {\n ...ExplorerGenericListItemFragment\n spec {\n replicas\n paused\n }\n status {\n replicas\n }\n }\n": types.ExplorerDeploymentsListItemFragmentFragmentDoc, - "\n fragment ExplorerJobsListItemFragment on BatchV1Job {\n ...ExplorerGenericListItemFragment\n }\n": types.ExplorerJobsListItemFragmentFragmentDoc, - "\n fragment ExplorerPodsListItemFragment on CoreV1Pod {\n ...ExplorerGenericListItemFragment\n spec {\n containers {\n name\n image\n }\n nodeName\n }\n status {\n phase\n containerStatuses {\n name\n state {\n running {\n startedAt\n }\n terminated {\n exitCode\n }\n }\n ready\n restartCount\n started\n }\n }\n }\n": types.ExplorerPodsListItemFragmentFragmentDoc, - "\n fragment ExplorerReplicaSetsListItemFragment on AppsV1ReplicaSet {\n ...ExplorerGenericListItemFragment\n spec {\n replicas\n }\n status {\n replicas\n }\n }\n": types.ExplorerReplicaSetsListItemFragmentFragmentDoc, - "\n fragment ExplorerStatefulSetsListItemFragment on AppsV1StatefulSet {\n ...ExplorerGenericListItemFragment\n\n }\n": types.ExplorerStatefulSetsListItemFragmentFragmentDoc, - "\n fragment ExplorerGenericObjectFragment on Object {\n id\n metadata {\n creationTimestamp\n deletionTimestamp\n name\n namespace\n labels\n annotations\n ownerReferences {\n apiVersion\n kind\n name\n uid\n controller\n }\n resourceVersion\n uid\n }\n }\n": types.ExplorerGenericObjectFragmentFragmentDoc, - "\n fragment ExplorerCronJobsObjectFragment on BatchV1CronJob {\n ...ExplorerGenericObjectFragment\n }\n": types.ExplorerCronJobsObjectFragmentFragmentDoc, - "\n fragment ExplorerDaemonSetsObjectFragment on AppsV1DaemonSet {\n ...ExplorerGenericObjectFragment\n }\n": types.ExplorerDaemonSetsObjectFragmentFragmentDoc, - "\n fragment ExplorerDeploymentsObjectFragment on AppsV1Deployment {\n ...ExplorerGenericObjectFragment\n spec {\n replicas\n selector {\n matchLabels\n matchExpressions {\n key\n operator\n values\n }\n }\n paused\n }\n status {\n replicas\n }\n }\n": types.ExplorerDeploymentsObjectFragmentFragmentDoc, - "\n fragment ExplorerJobsObjectFragment on BatchV1Job {\n ...ExplorerGenericObjectFragment\n }\n": types.ExplorerJobsObjectFragmentFragmentDoc, - "\n fragment ExplorerPodsObjectFragment on CoreV1Pod {\n ...ExplorerGenericObjectFragment\n spec {\n containers {\n name\n image\n }\n nodeName\n priorityClassName\n }\n status {\n phase\n message\n reason\n containerStatuses {\n name\n state {\n waiting {\n reason\n message\n }\n running {\n startedAt\n }\n terminated {\n exitCode\n signal\n reason\n message\n }\n }\n lastTerminationState {\n waiting {\n reason\n message\n }\n running {\n startedAt\n }\n terminated {\n exitCode\n signal\n reason\n message\n }\n }\n ready\n restartCount\n imageID\n started\n }\n }\n }\n": types.ExplorerPodsObjectFragmentFragmentDoc, - "\n fragment ExplorerReplicaSetsObjectFragment on AppsV1ReplicaSet {\n ...ExplorerGenericObjectFragment\n }\n": types.ExplorerReplicaSetsObjectFragmentFragmentDoc, - "\n fragment ExplorerStatefulSetsObjectFragment on AppsV1StatefulSet {\n ...ExplorerGenericObjectFragment\n }\n": types.ExplorerStatefulSetsObjectFragmentFragmentDoc, - "\n fragment PodLogQueryResponseFragment on PodLogQueryResponse {\n results {\n timestamp\n message\n }\n pageInfo {\n hasPreviousPage\n hasNextPage\n startCursor\n endCursor\n }\n }\n": types.PodLogQueryResponseFragmentFragmentDoc, - "\n fragment LogMetadataListItemFragment on LogMetadata {\n id\n spec {\n nodeName\n namespace\n podName\n containerName\n containerID\n }\n fileInfo {\n size\n lastModifiedAt\n }\n }\n": types.LogMetadataListItemFragmentFragmentDoc, - "\n query HomeCronJobsListFetch($namespace: String = \"\", $continue: String = \"\") {\n batchV1CronJobsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeCronJobsListItemFragment\n }\n }\n }\n": types.HomeCronJobsListFetchDocument, - "\n subscription HomeCronJobsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1CronJobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeCronJobsListItemFragment\n }\n }\n }\n": types.HomeCronJobsListWatchDocument, - "\n query HomeDaemonSetsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1DaemonSetsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeDaemonSetsListItemFragment\n }\n }\n }\n": types.HomeDaemonSetsListFetchDocument, - "\n subscription HomeDaemonSetsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DaemonSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeDaemonSetsListItemFragment\n }\n }\n }\n": types.HomeDaemonSetsListWatchDocument, - "\n query HomeDeploymentsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1DeploymentsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeDeploymentsListItemFragment\n }\n }\n }\n": types.HomeDeploymentsListFetchDocument, - "\n subscription HomeDeploymentsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DeploymentsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeDeploymentsListItemFragment\n }\n }\n }\n": types.HomeDeploymentsListWatchDocument, - "\n query HomeJobsListFetch($namespace: String = \"\", $continue: String = \"\") {\n batchV1JobsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeJobsListItemFragment\n }\n }\n }\n": types.HomeJobsListFetchDocument, - "\n subscription HomeJobsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1JobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeJobsListItemFragment\n }\n }\n }\n": types.HomeJobsListWatchDocument, - "\n query HomeNamespacesListFetch($continue: String = \"\") {\n coreV1NamespacesList(options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeNamespacesListItemFragment\n }\n }\n }\n": types.HomeNamespacesListFetchDocument, - "\n subscription HomeNamespacesListWatch($resourceVersion: String = \"\") {\n coreV1NamespacesWatch(options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeNamespacesListItemFragment\n }\n }\n }\n": types.HomeNamespacesListWatchDocument, - "\n query HomePodsListFetch($namespace: String = \"\", $continue: String = \"\") {\n coreV1PodsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomePodsListItemFragment\n }\n }\n }\n": types.HomePodsListFetchDocument, - "\n subscription HomePodsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n coreV1PodsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomePodsListItemFragment\n }\n }\n }\n": types.HomePodsListWatchDocument, - "\n query HomeReplicaSetsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1ReplicaSetsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeReplicaSetsListItemFragment\n }\n }\n }\n": types.HomeReplicaSetsListFetchDocument, - "\n subscription HomeReplicaSetsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1ReplicaSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeReplicaSetsListItemFragment\n }\n }\n }\n": types.HomeReplicaSetsListWatchDocument, - "\n query HomeStatefulSetsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1StatefulSetsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeStatefulSetsListItemFragment\n }\n }\n }\n": types.HomeStatefulSetsListFetchDocument, - "\n subscription HomeStatefulSetsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1StatefulSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeStatefulSetsListItemFragment\n }\n }\n }\n": types.HomeStatefulSetsListWatchDocument, - "\n query ConsoleLoggingResourcesCronJobGet($namespace: String!, $name: String!) {\n batchV1CronJobsGet(namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesCronJobFragment\n }\n }\n": types.ConsoleLoggingResourcesCronJobGetDocument, - "\n subscription ConsoleLoggingResourcesCronJobWatch($namespace: String!, $fieldSelector: String!) {\n batchV1CronJobsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesCronJobFragment\n }\n }\n }\n": types.ConsoleLoggingResourcesCronJobWatchDocument, - "\n query ConsoleLoggingResourcesDaemonSetGet($namespace: String!, $name: String!) {\n appsV1DaemonSetsGet(namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesDaemonSetFragment\n } \n }\n": types.ConsoleLoggingResourcesDaemonSetGetDocument, - "\n subscription ConsoleLoggingResourcesDaemonSetWatch($namespace: String!, $fieldSelector: String!) {\n appsV1DaemonSetsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesDaemonSetFragment\n }\n }\n }\n": types.ConsoleLoggingResourcesDaemonSetWatchDocument, - "\n query ConsoleLoggingResourcesDeploymentGet($namespace: String!, $name: String!) {\n appsV1DeploymentsGet(namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesDeploymentFragment\n } \n }\n": types.ConsoleLoggingResourcesDeploymentGetDocument, - "\n subscription ConsoleLoggingResourcesDeploymentWatch($namespace: String!, $fieldSelector: String!) {\n appsV1DeploymentsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesDeploymentFragment\n }\n }\n }\n": types.ConsoleLoggingResourcesDeploymentWatchDocument, - "\n query ConsoleLoggingResourcesJobGet($namespace: String!, $name: String!) {\n batchV1JobsGet(namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesJobFragment\n }\n }\n": types.ConsoleLoggingResourcesJobGetDocument, - "\n subscription ConsoleLoggingResourcesJobWatch($namespace: String!, $fieldSelector: String!) {\n batchV1JobsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesJobFragment\n }\n }\n }\n": types.ConsoleLoggingResourcesJobWatchDocument, - "\n query ConsoleLoggingResourcesPodGet($namespace: String!, $name: String!) {\n coreV1PodsGet(namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n": types.ConsoleLoggingResourcesPodGetDocument, - "\n subscription ConsoleLoggingResourcesPodWatch($namespace: String!, $fieldSelector: String!) {\n coreV1PodsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n }\n": types.ConsoleLoggingResourcesPodWatchDocument, - "\n query ConsolePodsListFetch($namespace: String!, $continue: String = \"\") {\n coreV1PodsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n metadata {\n continue\n resourceVersion\n }\n items {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n }\n": types.ConsolePodsListFetchDocument, - "\n subscription ConsolePodsListWatch($namespace: String!, $resourceVersion: String = \"\") {\n coreV1PodsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n }\n": types.ConsolePodsListWatchDocument, - "\n query ConsoleLoggingResourcesReplicaSetGet($namespace: String!, $name: String!) {\n appsV1ReplicaSetsGet(namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesReplicaSetFragment\n }\n }\n": types.ConsoleLoggingResourcesReplicaSetGetDocument, - "\n subscription ConsoleLoggingResourcesReplicaSetWatch($namespace: String!, $fieldSelector: String!) {\n appsV1ReplicaSetsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesReplicaSetFragment\n }\n }\n }\n": types.ConsoleLoggingResourcesReplicaSetWatchDocument, - "\n query ConsoleLoggingResourcesStatefulSetGet($namespace: String!, $name: String!) {\n appsV1StatefulSetsGet(namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesStatefulSetFragment\n } \n }\n": types.ConsoleLoggingResourcesStatefulSetGetDocument, - "\n subscription ConsoleLoggingResourcesStatefulSetWatch($namespace: String!, $fieldSelector: String!) {\n appsV1StatefulSetsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesStatefulSetFragment\n }\n }\n }\n": types.ConsoleLoggingResourcesStatefulSetWatchDocument, - "\n query ConsoleLoggingResourcesJobsFind($namespace: String!, $continue: String = \"\") {\n batchV1JobsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n metadata {\n continue\n resourceVersion\n }\n items {\n ...ConsoleLoggingResourcesJobsFindFragment\n }\n }\n }\n": types.ConsoleLoggingResourcesJobsFindDocument, - "\n subscription ConsoleStreamsJobsWatch($namespace: String!, $resourceVersion: String = \"\") {\n batchV1JobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ConsoleLoggingResourcesJobFragment\n }\n }\n }\n": types.ConsoleStreamsJobsWatchDocument, - "\n query ConsoleLoggingResourcesPodsFind($namespace: String!, $labelSelector: String!, $continue: String = \"\") {\n coreV1PodsList(namespace: $namespace, options: { labelSelector: $labelSelector, continue: $continue }) {\n metadata {\n continue\n resourceVersion\n }\n items {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n }\n": types.ConsoleLoggingResourcesPodsFindDocument, - "\n subscription ConsoleLoggingResourcesPodsWatch($namespace: String!, $labelSelector: String!, $resourceVersion: String = \"\") {\n coreV1PodsWatch(namespace: $namespace, options: { labelSelector: $labelSelector, resourceVersion: $resourceVersion }) {\n type\n object {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n }\n": types.ConsoleLoggingResourcesPodsWatchDocument, - "\n query ConsoleNodesListFetch($continue: String = \"\") {\n coreV1NodesList(options: { limit: \"50\", continue: $continue }) {\n metadata {\n continue\n resourceVersion\n }\n items {\n ...ConsoleNodesListItemFragment\n }\n }\n }\n": types.ConsoleNodesListFetchDocument, - "\n subscription ConsoleNodesListWatch($resourceVersion: String = \"\") {\n coreV1NodesWatch(options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ConsoleNodesListItemFragment\n }\n }\n }\n": types.ConsoleNodesListWatchDocument, - "\n query SourcePickerCronJobsCountFetch($namespace: String = \"\") {\n batchV1CronJobsList(namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerCronJobsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n": types.SourcePickerCronJobsCountFetchDocument, - "\n subscription SourcePickerCronJobsCountWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1CronJobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n": types.SourcePickerCronJobsCountWatchDocument, - "\n query SourcePickerDaemonSetsCountFetch($namespace: String = \"\") {\n appsV1DaemonSetsList(namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerDaemonSetsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n": types.SourcePickerDaemonSetsCountFetchDocument, - "\n subscription SourcePickerDaemonSetsCountWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DaemonSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n": types.SourcePickerDaemonSetsCountWatchDocument, - "\n query SourcePickerDeploymentsCountFetch($namespace: String = \"\") {\n appsV1DeploymentsList(namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerDeploymentsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n": types.SourcePickerDeploymentsCountFetchDocument, - "\n subscription SourcePickerDeploymentsCountWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DeploymentsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n": types.SourcePickerDeploymentsCountWatchDocument, - "\n query SourcePickerJobsCountFetch($namespace: String = \"\") {\n batchV1JobsList(namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerJobsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n": types.SourcePickerJobsCountFetchDocument, - "\n subscription SourcePickerJobsCountWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1JobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n": types.SourcePickerJobsCountWatchDocument, - "\n query SourcePickerPodsCountFetch($namespace: String = \"\") {\n coreV1PodsList(namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerPodsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n": types.SourcePickerPodsCountFetchDocument, - "\n subscription SourcePickerPodsCountWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n coreV1PodsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n": types.SourcePickerPodsCountWatchDocument, - "\n query SourcePickerReplicaSetsCountFetch($namespace: String = \"\") {\n appsV1ReplicaSetsList(namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerReplicaSetsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n": types.SourcePickerReplicaSetsCountFetchDocument, - "\n subscription SourcePickerReplicaSetsCountWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1ReplicaSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n": types.SourcePickerReplicaSetsCountWatchDocument, - "\n query SourcePickerStatefulSetsCountFetch($namespace: String = \"\") {\n appsV1StatefulSetsList(namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerStatefulSetsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n": types.SourcePickerStatefulSetsCountFetchDocument, - "\n subscription SourcePickerStatefulSetsCountWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1StatefulSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n": types.SourcePickerStatefulSetsCountWatchDocument, - "\n query SourcePickerCronJobsListFetch($namespace: String = \"\", $continue: String = \"\") {\n batchV1CronJobsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerCronJobsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n": types.SourcePickerCronJobsListFetchDocument, - "\n subscription SourcePickerCronJobsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1CronJobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n": types.SourcePickerCronJobsListWatchDocument, - "\n query SourcePickerDaemonSetsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1DaemonSetsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerDaemonSetsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n": types.SourcePickerDaemonSetsListFetchDocument, - "\n subscription SourcePickerDaemonSetsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DaemonSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n": types.SourcePickerDaemonSetsListWatchDocument, - "\n query SourcePickerDeploymentsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1DeploymentsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerDeploymentsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n": types.SourcePickerDeploymentsListFetchDocument, - "\n subscription SourcePickerDeploymentsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DeploymentsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n": types.SourcePickerDeploymentsListWatchDocument, - "\n query SourcePickerJobsListFetch($namespace: String = \"\", $continue: String = \"\") {\n batchV1JobsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerJobsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n": types.SourcePickerJobsListFetchDocument, - "\n subscription SourcePickerJobsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1JobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n": types.SourcePickerJobsListWatchDocument, - "\n query SourcePickerNamespacesListFetch($continue: String = \"\") {\n coreV1NamespacesList(options: { limit: \"50\", continue: $continue }) {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n": types.SourcePickerNamespacesListFetchDocument, - "\n subscription SourcePickerNamespacesListWatch($resourceVersion: String = \"\") {\n coreV1NamespacesWatch(options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n": types.SourcePickerNamespacesListWatchDocument, - "\n query SourcePickerPodsListFetch($namespace: String = \"\", $continue: String = \"\") {\n coreV1PodsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerPodsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n": types.SourcePickerPodsListFetchDocument, - "\n subscription SourcePickerPodsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n coreV1PodsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n": types.SourcePickerPodsListWatchDocument, - "\n query SourcePickerReplicaSetsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1ReplicaSetsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerReplicaSetsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n": types.SourcePickerReplicaSetsListFetchDocument, - "\n subscription SourcePickerReplicaSetsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1ReplicaSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n": types.SourcePickerReplicaSetsListWatchDocument, - "\n query SourcePickerStatefulSetsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1StatefulSetsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerStatefulSetsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n": types.SourcePickerStatefulSetsListFetchDocument, - "\n subscription SourcePickerStatefulSetsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1StatefulSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeStatefulSetsListItemFragment\n }\n }\n }\n": types.SourcePickerStatefulSetsListWatchDocument, - "\n query ExplorerCronJobsListFetch($namespace: String = \"\", $continue: String = \"\") {\n batchV1CronJobsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...ExplorerGenericListFragment\n items {\n ...ExplorerCronJobsListItemFragment\n }\n }\n }\n": types.ExplorerCronJobsListFetchDocument, - "\n subscription ExplorerCronJobsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1CronJobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ExplorerCronJobsListItemFragment\n }\n }\n }\n": types.ExplorerCronJobsListWatchDocument, - "\n query ExplorerDaemonSetsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1DaemonSetsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...ExplorerGenericListFragment\n items {\n ...ExplorerDaemonSetsListItemFragment\n }\n }\n }\n": types.ExplorerDaemonSetsListFetchDocument, - "\n subscription ExplorerDaemonSetsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DaemonSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ExplorerDaemonSetsListItemFragment\n }\n }\n }\n": types.ExplorerDaemonSetsListWatchDocument, - "\n query ExplorerDeploymentsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1DeploymentsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...ExplorerGenericListFragment\n items {\n ...ExplorerDeploymentsListItemFragment\n }\n }\n }\n": types.ExplorerDeploymentsListFetchDocument, - "\n subscription ExplorerDeploymentsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DeploymentsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ExplorerDeploymentsListItemFragment\n }\n }\n }\n": types.ExplorerDeploymentsListWatchDocument, - "\n query ExplorerJobsListFetch($namespace: String = \"\", $continue: String = \"\") {\n batchV1JobsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...ExplorerGenericListFragment\n items {\n ...ExplorerJobsListItemFragment\n }\n }\n }\n": types.ExplorerJobsListFetchDocument, - "\n subscription ExplorerJobsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1JobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ExplorerJobsListItemFragment\n }\n }\n }\n": types.ExplorerJobsListWatchDocument, - "\n query ExplorerPodsListFetch($namespace: String = \"\", $continue: String = \"\") {\n coreV1PodsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...ExplorerGenericListFragment\n items {\n ...ExplorerPodsListItemFragment\n }\n }\n }\n": types.ExplorerPodsListFetchDocument, - "\n subscription ExplorerPodsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n coreV1PodsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ExplorerPodsListItemFragment\n }\n }\n }\n": types.ExplorerPodsListWatchDocument, - "\n query ExplorerReplicaSetsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1ReplicaSetsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...ExplorerGenericListFragment\n items {\n ...ExplorerReplicaSetsListItemFragment\n }\n }\n }\n": types.ExplorerReplicaSetsListFetchDocument, - "\n subscription ExplorerReplicaSetsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1ReplicaSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ExplorerReplicaSetsListItemFragment\n }\n }\n }\n": types.ExplorerReplicaSetsListWatchDocument, - "\n query ExplorerStatefulSetsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1StatefulSetsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...ExplorerGenericListFragment\n items {\n ...ExplorerStatefulSetsListItemFragment\n }\n }\n }\n": types.ExplorerStatefulSetsListFetchDocument, - "\n subscription ExplorerStatefulSetsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1StatefulSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ExplorerStatefulSetsListItemFragment\n }\n }\n }\n": types.ExplorerStatefulSetsListWatchDocument, - "\n query ExplorerCronJobsObjectFetch($namespace: String!, $name: String!) {\n batchV1CronJobsGet(namespace: $namespace, name: $name) {\n ...ExplorerCronJobsObjectFragment\n }\n }\n": types.ExplorerCronJobsObjectFetchDocument, - "\n subscription ExplorerCronJobsObjectWatch($namespace: String!, $fieldSelector: String!) {\n batchV1CronJobsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ExplorerCronJobsObjectFragment\n }\n }\n }\n": types.ExplorerCronJobsObjectWatchDocument, - "\n query ExplorerDaemonSetsObjectFetch($namespace: String!, $name: String!) {\n appsV1DaemonSetsGet(namespace: $namespace, name: $name) {\n ...ExplorerDaemonSetsObjectFragment\n }\n }\n": types.ExplorerDaemonSetsObjectFetchDocument, - "\n subscription ExplorerDaemonSetsObjectWatch($namespace: String!, $fieldSelector: String!) {\n appsV1DaemonSetsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ExplorerDaemonSetsObjectFragment\n }\n }\n }\n": types.ExplorerDaemonSetsObjectWatchDocument, - "\n query ExplorerDeploymentsObjectFetch($namespace: String!, $name: String!) {\n appsV1DeploymentsGet(namespace: $namespace, name: $name) {\n ...ExplorerDeploymentsObjectFragment\n }\n }\n": types.ExplorerDeploymentsObjectFetchDocument, - "\n subscription ExplorerDeploymentsObjectWatch($namespace: String!, $fieldSelector: String!) {\n appsV1DeploymentsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ExplorerDeploymentsObjectFragment\n }\n }\n }\n": types.ExplorerDeploymentsObjectWatchDocument, - "\n query ExplorerJobsObjectFetch($namespace: String!, $name: String!) {\n batchV1JobsGet(namespace: $namespace, name: $name) {\n ...ExplorerJobsObjectFragment\n }\n }\n": types.ExplorerJobsObjectFetchDocument, - "\n subscription ExplorerJobsObjectWatch($namespace: String!, $fieldSelector: String!) {\n batchV1JobsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ExplorerJobsObjectFragment\n }\n }\n }\n": types.ExplorerJobsObjectWatchDocument, - "\n query ExplorerPodsObjectFetch($namespace: String!, $name: String!) {\n coreV1PodsGet(namespace: $namespace, name: $name) {\n ...ExplorerPodsObjectFragment\n }\n }\n": types.ExplorerPodsObjectFetchDocument, - "\n subscription ExplorerPodsObjectWatch($namespace: String!, $fieldSelector: String!) {\n coreV1PodsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ExplorerPodsObjectFragment\n }\n }\n }\n": types.ExplorerPodsObjectWatchDocument, - "\n query ExplorerReplicaSetsObjectFetch($namespace: String!, $name: String!) {\n appsV1ReplicaSetsGet(namespace: $namespace, name: $name) {\n ...ExplorerReplicaSetsObjectFragment\n }\n }\n": types.ExplorerReplicaSetsObjectFetchDocument, - "\n subscription ExplorerReplicaSetsObjectWatch($namespace: String!, $fieldSelector: String!) {\n appsV1ReplicaSetsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ExplorerReplicaSetsObjectFragment\n }\n }\n }\n": types.ExplorerReplicaSetsObjectWatchDocument, - "\n query ExplorerStatefulSetsObjectFetch($namespace: String!, $name: String!) {\n appsV1StatefulSetsGet(namespace: $namespace, name: $name) {\n ...ExplorerStatefulSetsObjectFragment\n }\n }\n": types.ExplorerStatefulSetsObjectFetchDocument, - "\n subscription ExplorerStatefulSetsObjectWatch($namespace: String!, $fieldSelector: String!) {\n appsV1StatefulSetsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ExplorerStatefulSetsObjectFragment\n }\n }\n }\n": types.ExplorerStatefulSetsObjectWatchDocument, - "\n query HeadContainerLog($namespace: String!, $name: String!, $container: String, $after: ID, $since: String, $first: Int) {\n podLogHead(namespace: $namespace, name: $name, container: $container, after: $after, since: $since, first: $first) {\n ...PodLogQueryResponseFragment\n }\n }\n": types.HeadContainerLogDocument, - "\n query TailContainerLog($namespace: String!, $name: String!, $container: String, $before: ID, $last: Int) {\n podLogTail(namespace: $namespace, name: $name, container: $container, before: $before, last: $last) {\n ...PodLogQueryResponseFragment\n }\n }\n": types.TailContainerLogDocument, - "\n subscription FollowContainerLog($namespace: String!, $name: String!, $container: String, $after: ID, $since: String) {\n podLogFollow(namespace: $namespace, name: $name, container: $container, after: $after, since: $since) {\n timestamp\n message\n }\n }\n": types.FollowContainerLogDocument, - "\n query LogMetadataListFetch($namespace: String = \"\") {\n logMetadataList(namespace: $namespace) {\n items {\n ...LogMetadataListItemFragment\n }\n }\n }\n": types.LogMetadataListFetchDocument, - "\n subscription LogMetadataListWatch($namespace: String = \"\") {\n logMetadataWatch(namespace: $namespace) {\n type\n object {\n ...LogMetadataListItemFragment\n }\n }\n }\n": types.LogMetadataListWatchDocument, - "\n subscription LivezWatch {\n livezWatch {\n status\n message\n timestamp\n }\n }\n": types.LivezWatchDocument, - "\n subscription ReadyzWatch {\n readyzWatch {\n status\n message\n timestamp\n }\n }\n": types.ReadyzWatchDocument, - "\n query ReadyWait {\n readyWait(timeout: 20)\n }\n": types.ReadyWaitDocument, -}; - -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - * - * - * @example - * ```ts - * const query = gql(`query GetUser($id: ID!) { user(id: $id) { name } }`); - * ``` - * - * The query argument is unknown! - * Please regenerate the types. - */ -export function gql(source: string): unknown; - -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment HomeGenericListFragment on List {\n metadata {\n continue\n resourceVersion\n }\n }\n"): (typeof documents)["\n fragment HomeGenericListFragment on List {\n metadata {\n continue\n resourceVersion\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment HomeGenericListItemFragment on Object {\n id\n metadata {\n namespace\n name\n uid\n creationTimestamp\n deletionTimestamp\n resourceVersion\n ownerReferences {\n name\n uid\n controller\n }\n }\n }\n"): (typeof documents)["\n fragment HomeGenericListItemFragment on Object {\n id\n metadata {\n namespace\n name\n uid\n creationTimestamp\n deletionTimestamp\n resourceVersion\n ownerReferences {\n name\n uid\n controller\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment HomeCronJobsListItemFragment on BatchV1CronJob {\n ...HomeGenericListItemFragment\n }\n"): (typeof documents)["\n fragment HomeCronJobsListItemFragment on BatchV1CronJob {\n ...HomeGenericListItemFragment\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment HomeDaemonSetsListItemFragment on AppsV1DaemonSet {\n ...HomeGenericListItemFragment\n }\n"): (typeof documents)["\n fragment HomeDaemonSetsListItemFragment on AppsV1DaemonSet {\n ...HomeGenericListItemFragment\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment HomeDeploymentsListItemFragment on AppsV1Deployment {\n ...HomeGenericListItemFragment\n }\n"): (typeof documents)["\n fragment HomeDeploymentsListItemFragment on AppsV1Deployment {\n ...HomeGenericListItemFragment\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment HomeJobsListItemFragment on BatchV1Job {\n ...HomeGenericListItemFragment\n }\n"): (typeof documents)["\n fragment HomeJobsListItemFragment on BatchV1Job {\n ...HomeGenericListItemFragment\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment HomeNamespacesListItemFragment on CoreV1Namespace {\n ...HomeGenericListItemFragment\n }\n"): (typeof documents)["\n fragment HomeNamespacesListItemFragment on CoreV1Namespace {\n ...HomeGenericListItemFragment\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment HomePodsListItemFragment on CoreV1Pod {\n ...HomeGenericListItemFragment\n status {\n containerStatuses {\n containerID\n started\n }\n }\n }\n"): (typeof documents)["\n fragment HomePodsListItemFragment on CoreV1Pod {\n ...HomeGenericListItemFragment\n status {\n containerStatuses {\n containerID\n started\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment HomeReplicaSetsListItemFragment on AppsV1ReplicaSet {\n ...HomeGenericListItemFragment\n }\n"): (typeof documents)["\n fragment HomeReplicaSetsListItemFragment on AppsV1ReplicaSet {\n ...HomeGenericListItemFragment\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment HomeStatefulSetsListItemFragment on AppsV1StatefulSet {\n ...HomeGenericListItemFragment\n }\n"): (typeof documents)["\n fragment HomeStatefulSetsListItemFragment on AppsV1StatefulSet {\n ...HomeGenericListItemFragment\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment ConsoleLoggingResourcesGenericObjectFragment on Object {\n id\n metadata {\n namespace\n name\n uid\n creationTimestamp\n deletionTimestamp\n resourceVersion\n ownerReferences {\n name\n uid\n controller\n }\n }\n }\n"): (typeof documents)["\n fragment ConsoleLoggingResourcesGenericObjectFragment on Object {\n id\n metadata {\n namespace\n name\n uid\n creationTimestamp\n deletionTimestamp\n resourceVersion\n ownerReferences {\n name\n uid\n controller\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment ConsoleLoggingResourcesCronJobFragment on BatchV1CronJob {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n jobTemplate {\n spec {\n selector {\n matchLabels\n }\n }\n }\n }\n }\n"): (typeof documents)["\n fragment ConsoleLoggingResourcesCronJobFragment on BatchV1CronJob {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n jobTemplate {\n spec {\n selector {\n matchLabels\n }\n }\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment ConsoleLoggingResourcesDaemonSetFragment on AppsV1DaemonSet {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n selector {\n matchLabels\n }\n }\n }\n"): (typeof documents)["\n fragment ConsoleLoggingResourcesDaemonSetFragment on AppsV1DaemonSet {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n selector {\n matchLabels\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment ConsoleLoggingResourcesDeploymentFragment on AppsV1Deployment {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n selector {\n matchLabels\n }\n }\n }\n"): (typeof documents)["\n fragment ConsoleLoggingResourcesDeploymentFragment on AppsV1Deployment {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n selector {\n matchLabels\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment ConsoleLoggingResourcesJobFragment on BatchV1Job {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n selector {\n matchLabels\n }\n }\n }\n"): (typeof documents)["\n fragment ConsoleLoggingResourcesJobFragment on BatchV1Job {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n selector {\n matchLabels\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment ConsoleLoggingResourcesPodFragment on CoreV1Pod {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n containers {\n name\n }\n nodeName\n }\n status {\n containerStatuses {\n name\n started\n state {\n running {\n startedAt\n }\n terminated {\n exitCode\n }\n }\n }\n }\n }\n"): (typeof documents)["\n fragment ConsoleLoggingResourcesPodFragment on CoreV1Pod {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n containers {\n name\n }\n nodeName\n }\n status {\n containerStatuses {\n name\n started\n state {\n running {\n startedAt\n }\n terminated {\n exitCode\n }\n }\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment ConsoleLoggingResourcesReplicaSetFragment on AppsV1ReplicaSet {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n selector {\n matchLabels\n }\n }\n }\n"): (typeof documents)["\n fragment ConsoleLoggingResourcesReplicaSetFragment on AppsV1ReplicaSet {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n selector {\n matchLabels\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment ConsoleLoggingResourcesStatefulSetFragment on AppsV1StatefulSet {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n selector {\n matchLabels\n }\n }\n }\n"): (typeof documents)["\n fragment ConsoleLoggingResourcesStatefulSetFragment on AppsV1StatefulSet {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n selector {\n matchLabels\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment ConsoleLoggingResourcesJobsFindFragment on BatchV1Job {\n id\n metadata {\n namespace\n name\n uid\n deletionTimestamp\n resourceVersion\n ownerReferences {\n name\n uid\n controller\n }\n }\n spec {\n selector {\n matchLabels\n }\n }\n }\n"): (typeof documents)["\n fragment ConsoleLoggingResourcesJobsFindFragment on BatchV1Job {\n id\n metadata {\n namespace\n name\n uid\n deletionTimestamp\n resourceVersion\n ownerReferences {\n name\n uid\n controller\n }\n }\n spec {\n selector {\n matchLabels\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment ConsoleNodesListItemFragment on CoreV1Node {\n id\n metadata {\n name\n uid\n creationTimestamp\n deletionTimestamp\n resourceVersion\n labels\n annotations\n }\n }\n"): (typeof documents)["\n fragment ConsoleNodesListItemFragment on CoreV1Node {\n id\n metadata {\n name\n uid\n creationTimestamp\n deletionTimestamp\n resourceVersion\n labels\n annotations\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment SourcePickerGenericCounterFragment on List {\n metadata {\n remainingItemCount\n resourceVersion\n }\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n"): (typeof documents)["\n fragment SourcePickerGenericCounterFragment on List {\n metadata {\n remainingItemCount\n resourceVersion\n }\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment SourcePickerGenericCounterItemFragment on Object {\n id\n metadata {\n resourceVersion\n }\n }\n"): (typeof documents)["\n fragment SourcePickerGenericCounterItemFragment on Object {\n id\n metadata {\n resourceVersion\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment SourcePickerGenericListFragment on List {\n metadata {\n continue\n resourceVersion\n }\n }\n"): (typeof documents)["\n fragment SourcePickerGenericListFragment on List {\n metadata {\n continue\n resourceVersion\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment SourcePickerGenericListItemFragment on Object {\n id\n metadata {\n namespace\n name\n uid\n creationTimestamp\n deletionTimestamp\n resourceVersion\n }\n }\n"): (typeof documents)["\n fragment SourcePickerGenericListItemFragment on Object {\n id\n metadata {\n namespace\n name\n uid\n creationTimestamp\n deletionTimestamp\n resourceVersion\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment ExplorerGenericListFragment on List {\n metadata {\n continue\n resourceVersion\n }\n }\n"): (typeof documents)["\n fragment ExplorerGenericListFragment on List {\n metadata {\n continue\n resourceVersion\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment ExplorerGenericListItemFragment on Object {\n id\n metadata {\n namespace\n name\n uid\n creationTimestamp\n deletionTimestamp\n resourceVersion\n ownerReferences {\n name\n uid\n controller\n }\n }\n }\n"): (typeof documents)["\n fragment ExplorerGenericListItemFragment on Object {\n id\n metadata {\n namespace\n name\n uid\n creationTimestamp\n deletionTimestamp\n resourceVersion\n ownerReferences {\n name\n uid\n controller\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment ExplorerCronJobsListItemFragment on BatchV1CronJob {\n ...ExplorerGenericListItemFragment\n spec {\n schedule\n suspend\n }\n status {\n active {\n __typename\n }\n lastScheduleTime\n lastSuccessfulTime\n }\n }\n"): (typeof documents)["\n fragment ExplorerCronJobsListItemFragment on BatchV1CronJob {\n ...ExplorerGenericListItemFragment\n spec {\n schedule\n suspend\n }\n status {\n active {\n __typename\n }\n lastScheduleTime\n lastSuccessfulTime\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment ExplorerDaemonSetsListItemFragment on AppsV1DaemonSet {\n ...ExplorerGenericListItemFragment\n status {\n currentNumberScheduled\n desiredNumberScheduled\n }\n }\n"): (typeof documents)["\n fragment ExplorerDaemonSetsListItemFragment on AppsV1DaemonSet {\n ...ExplorerGenericListItemFragment\n status {\n currentNumberScheduled\n desiredNumberScheduled\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment ExplorerDeploymentsListItemFragment on AppsV1Deployment {\n ...ExplorerGenericListItemFragment\n spec {\n replicas\n paused\n }\n status {\n replicas\n }\n }\n"): (typeof documents)["\n fragment ExplorerDeploymentsListItemFragment on AppsV1Deployment {\n ...ExplorerGenericListItemFragment\n spec {\n replicas\n paused\n }\n status {\n replicas\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment ExplorerJobsListItemFragment on BatchV1Job {\n ...ExplorerGenericListItemFragment\n }\n"): (typeof documents)["\n fragment ExplorerJobsListItemFragment on BatchV1Job {\n ...ExplorerGenericListItemFragment\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment ExplorerPodsListItemFragment on CoreV1Pod {\n ...ExplorerGenericListItemFragment\n spec {\n containers {\n name\n image\n }\n nodeName\n }\n status {\n phase\n containerStatuses {\n name\n state {\n running {\n startedAt\n }\n terminated {\n exitCode\n }\n }\n ready\n restartCount\n started\n }\n }\n }\n"): (typeof documents)["\n fragment ExplorerPodsListItemFragment on CoreV1Pod {\n ...ExplorerGenericListItemFragment\n spec {\n containers {\n name\n image\n }\n nodeName\n }\n status {\n phase\n containerStatuses {\n name\n state {\n running {\n startedAt\n }\n terminated {\n exitCode\n }\n }\n ready\n restartCount\n started\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment ExplorerReplicaSetsListItemFragment on AppsV1ReplicaSet {\n ...ExplorerGenericListItemFragment\n spec {\n replicas\n }\n status {\n replicas\n }\n }\n"): (typeof documents)["\n fragment ExplorerReplicaSetsListItemFragment on AppsV1ReplicaSet {\n ...ExplorerGenericListItemFragment\n spec {\n replicas\n }\n status {\n replicas\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment ExplorerStatefulSetsListItemFragment on AppsV1StatefulSet {\n ...ExplorerGenericListItemFragment\n\n }\n"): (typeof documents)["\n fragment ExplorerStatefulSetsListItemFragment on AppsV1StatefulSet {\n ...ExplorerGenericListItemFragment\n\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment ExplorerGenericObjectFragment on Object {\n id\n metadata {\n creationTimestamp\n deletionTimestamp\n name\n namespace\n labels\n annotations\n ownerReferences {\n apiVersion\n kind\n name\n uid\n controller\n }\n resourceVersion\n uid\n }\n }\n"): (typeof documents)["\n fragment ExplorerGenericObjectFragment on Object {\n id\n metadata {\n creationTimestamp\n deletionTimestamp\n name\n namespace\n labels\n annotations\n ownerReferences {\n apiVersion\n kind\n name\n uid\n controller\n }\n resourceVersion\n uid\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment ExplorerCronJobsObjectFragment on BatchV1CronJob {\n ...ExplorerGenericObjectFragment\n }\n"): (typeof documents)["\n fragment ExplorerCronJobsObjectFragment on BatchV1CronJob {\n ...ExplorerGenericObjectFragment\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment ExplorerDaemonSetsObjectFragment on AppsV1DaemonSet {\n ...ExplorerGenericObjectFragment\n }\n"): (typeof documents)["\n fragment ExplorerDaemonSetsObjectFragment on AppsV1DaemonSet {\n ...ExplorerGenericObjectFragment\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment ExplorerDeploymentsObjectFragment on AppsV1Deployment {\n ...ExplorerGenericObjectFragment\n spec {\n replicas\n selector {\n matchLabels\n matchExpressions {\n key\n operator\n values\n }\n }\n paused\n }\n status {\n replicas\n }\n }\n"): (typeof documents)["\n fragment ExplorerDeploymentsObjectFragment on AppsV1Deployment {\n ...ExplorerGenericObjectFragment\n spec {\n replicas\n selector {\n matchLabels\n matchExpressions {\n key\n operator\n values\n }\n }\n paused\n }\n status {\n replicas\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment ExplorerJobsObjectFragment on BatchV1Job {\n ...ExplorerGenericObjectFragment\n }\n"): (typeof documents)["\n fragment ExplorerJobsObjectFragment on BatchV1Job {\n ...ExplorerGenericObjectFragment\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment ExplorerPodsObjectFragment on CoreV1Pod {\n ...ExplorerGenericObjectFragment\n spec {\n containers {\n name\n image\n }\n nodeName\n priorityClassName\n }\n status {\n phase\n message\n reason\n containerStatuses {\n name\n state {\n waiting {\n reason\n message\n }\n running {\n startedAt\n }\n terminated {\n exitCode\n signal\n reason\n message\n }\n }\n lastTerminationState {\n waiting {\n reason\n message\n }\n running {\n startedAt\n }\n terminated {\n exitCode\n signal\n reason\n message\n }\n }\n ready\n restartCount\n imageID\n started\n }\n }\n }\n"): (typeof documents)["\n fragment ExplorerPodsObjectFragment on CoreV1Pod {\n ...ExplorerGenericObjectFragment\n spec {\n containers {\n name\n image\n }\n nodeName\n priorityClassName\n }\n status {\n phase\n message\n reason\n containerStatuses {\n name\n state {\n waiting {\n reason\n message\n }\n running {\n startedAt\n }\n terminated {\n exitCode\n signal\n reason\n message\n }\n }\n lastTerminationState {\n waiting {\n reason\n message\n }\n running {\n startedAt\n }\n terminated {\n exitCode\n signal\n reason\n message\n }\n }\n ready\n restartCount\n imageID\n started\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment ExplorerReplicaSetsObjectFragment on AppsV1ReplicaSet {\n ...ExplorerGenericObjectFragment\n }\n"): (typeof documents)["\n fragment ExplorerReplicaSetsObjectFragment on AppsV1ReplicaSet {\n ...ExplorerGenericObjectFragment\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment ExplorerStatefulSetsObjectFragment on AppsV1StatefulSet {\n ...ExplorerGenericObjectFragment\n }\n"): (typeof documents)["\n fragment ExplorerStatefulSetsObjectFragment on AppsV1StatefulSet {\n ...ExplorerGenericObjectFragment\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment PodLogQueryResponseFragment on PodLogQueryResponse {\n results {\n timestamp\n message\n }\n pageInfo {\n hasPreviousPage\n hasNextPage\n startCursor\n endCursor\n }\n }\n"): (typeof documents)["\n fragment PodLogQueryResponseFragment on PodLogQueryResponse {\n results {\n timestamp\n message\n }\n pageInfo {\n hasPreviousPage\n hasNextPage\n startCursor\n endCursor\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n fragment LogMetadataListItemFragment on LogMetadata {\n id\n spec {\n nodeName\n namespace\n podName\n containerName\n containerID\n }\n fileInfo {\n size\n lastModifiedAt\n }\n }\n"): (typeof documents)["\n fragment LogMetadataListItemFragment on LogMetadata {\n id\n spec {\n nodeName\n namespace\n podName\n containerName\n containerID\n }\n fileInfo {\n size\n lastModifiedAt\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query HomeCronJobsListFetch($namespace: String = \"\", $continue: String = \"\") {\n batchV1CronJobsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeCronJobsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query HomeCronJobsListFetch($namespace: String = \"\", $continue: String = \"\") {\n batchV1CronJobsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeCronJobsListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription HomeCronJobsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1CronJobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeCronJobsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription HomeCronJobsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1CronJobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeCronJobsListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query HomeDaemonSetsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1DaemonSetsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeDaemonSetsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query HomeDaemonSetsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1DaemonSetsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeDaemonSetsListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription HomeDaemonSetsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DaemonSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeDaemonSetsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription HomeDaemonSetsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DaemonSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeDaemonSetsListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query HomeDeploymentsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1DeploymentsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeDeploymentsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query HomeDeploymentsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1DeploymentsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeDeploymentsListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription HomeDeploymentsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DeploymentsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeDeploymentsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription HomeDeploymentsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DeploymentsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeDeploymentsListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query HomeJobsListFetch($namespace: String = \"\", $continue: String = \"\") {\n batchV1JobsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeJobsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query HomeJobsListFetch($namespace: String = \"\", $continue: String = \"\") {\n batchV1JobsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeJobsListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription HomeJobsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1JobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeJobsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription HomeJobsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1JobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeJobsListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query HomeNamespacesListFetch($continue: String = \"\") {\n coreV1NamespacesList(options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeNamespacesListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query HomeNamespacesListFetch($continue: String = \"\") {\n coreV1NamespacesList(options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeNamespacesListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription HomeNamespacesListWatch($resourceVersion: String = \"\") {\n coreV1NamespacesWatch(options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeNamespacesListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription HomeNamespacesListWatch($resourceVersion: String = \"\") {\n coreV1NamespacesWatch(options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeNamespacesListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query HomePodsListFetch($namespace: String = \"\", $continue: String = \"\") {\n coreV1PodsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomePodsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query HomePodsListFetch($namespace: String = \"\", $continue: String = \"\") {\n coreV1PodsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomePodsListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription HomePodsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n coreV1PodsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomePodsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription HomePodsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n coreV1PodsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomePodsListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query HomeReplicaSetsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1ReplicaSetsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeReplicaSetsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query HomeReplicaSetsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1ReplicaSetsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeReplicaSetsListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription HomeReplicaSetsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1ReplicaSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeReplicaSetsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription HomeReplicaSetsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1ReplicaSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeReplicaSetsListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query HomeStatefulSetsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1StatefulSetsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeStatefulSetsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query HomeStatefulSetsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1StatefulSetsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeStatefulSetsListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription HomeStatefulSetsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1StatefulSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeStatefulSetsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription HomeStatefulSetsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1StatefulSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeStatefulSetsListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query ConsoleLoggingResourcesCronJobGet($namespace: String!, $name: String!) {\n batchV1CronJobsGet(namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesCronJobFragment\n }\n }\n"): (typeof documents)["\n query ConsoleLoggingResourcesCronJobGet($namespace: String!, $name: String!) {\n batchV1CronJobsGet(namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesCronJobFragment\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription ConsoleLoggingResourcesCronJobWatch($namespace: String!, $fieldSelector: String!) {\n batchV1CronJobsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesCronJobFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ConsoleLoggingResourcesCronJobWatch($namespace: String!, $fieldSelector: String!) {\n batchV1CronJobsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesCronJobFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query ConsoleLoggingResourcesDaemonSetGet($namespace: String!, $name: String!) {\n appsV1DaemonSetsGet(namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesDaemonSetFragment\n } \n }\n"): (typeof documents)["\n query ConsoleLoggingResourcesDaemonSetGet($namespace: String!, $name: String!) {\n appsV1DaemonSetsGet(namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesDaemonSetFragment\n } \n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription ConsoleLoggingResourcesDaemonSetWatch($namespace: String!, $fieldSelector: String!) {\n appsV1DaemonSetsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesDaemonSetFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ConsoleLoggingResourcesDaemonSetWatch($namespace: String!, $fieldSelector: String!) {\n appsV1DaemonSetsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesDaemonSetFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query ConsoleLoggingResourcesDeploymentGet($namespace: String!, $name: String!) {\n appsV1DeploymentsGet(namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesDeploymentFragment\n } \n }\n"): (typeof documents)["\n query ConsoleLoggingResourcesDeploymentGet($namespace: String!, $name: String!) {\n appsV1DeploymentsGet(namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesDeploymentFragment\n } \n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription ConsoleLoggingResourcesDeploymentWatch($namespace: String!, $fieldSelector: String!) {\n appsV1DeploymentsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesDeploymentFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ConsoleLoggingResourcesDeploymentWatch($namespace: String!, $fieldSelector: String!) {\n appsV1DeploymentsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesDeploymentFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query ConsoleLoggingResourcesJobGet($namespace: String!, $name: String!) {\n batchV1JobsGet(namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesJobFragment\n }\n }\n"): (typeof documents)["\n query ConsoleLoggingResourcesJobGet($namespace: String!, $name: String!) {\n batchV1JobsGet(namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesJobFragment\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription ConsoleLoggingResourcesJobWatch($namespace: String!, $fieldSelector: String!) {\n batchV1JobsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesJobFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ConsoleLoggingResourcesJobWatch($namespace: String!, $fieldSelector: String!) {\n batchV1JobsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesJobFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query ConsoleLoggingResourcesPodGet($namespace: String!, $name: String!) {\n coreV1PodsGet(namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n"): (typeof documents)["\n query ConsoleLoggingResourcesPodGet($namespace: String!, $name: String!) {\n coreV1PodsGet(namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription ConsoleLoggingResourcesPodWatch($namespace: String!, $fieldSelector: String!) {\n coreV1PodsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ConsoleLoggingResourcesPodWatch($namespace: String!, $fieldSelector: String!) {\n coreV1PodsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query ConsolePodsListFetch($namespace: String!, $continue: String = \"\") {\n coreV1PodsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n metadata {\n continue\n resourceVersion\n }\n items {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n }\n"): (typeof documents)["\n query ConsolePodsListFetch($namespace: String!, $continue: String = \"\") {\n coreV1PodsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n metadata {\n continue\n resourceVersion\n }\n items {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription ConsolePodsListWatch($namespace: String!, $resourceVersion: String = \"\") {\n coreV1PodsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ConsolePodsListWatch($namespace: String!, $resourceVersion: String = \"\") {\n coreV1PodsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query ConsoleLoggingResourcesReplicaSetGet($namespace: String!, $name: String!) {\n appsV1ReplicaSetsGet(namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesReplicaSetFragment\n }\n }\n"): (typeof documents)["\n query ConsoleLoggingResourcesReplicaSetGet($namespace: String!, $name: String!) {\n appsV1ReplicaSetsGet(namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesReplicaSetFragment\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription ConsoleLoggingResourcesReplicaSetWatch($namespace: String!, $fieldSelector: String!) {\n appsV1ReplicaSetsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesReplicaSetFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ConsoleLoggingResourcesReplicaSetWatch($namespace: String!, $fieldSelector: String!) {\n appsV1ReplicaSetsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesReplicaSetFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query ConsoleLoggingResourcesStatefulSetGet($namespace: String!, $name: String!) {\n appsV1StatefulSetsGet(namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesStatefulSetFragment\n } \n }\n"): (typeof documents)["\n query ConsoleLoggingResourcesStatefulSetGet($namespace: String!, $name: String!) {\n appsV1StatefulSetsGet(namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesStatefulSetFragment\n } \n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription ConsoleLoggingResourcesStatefulSetWatch($namespace: String!, $fieldSelector: String!) {\n appsV1StatefulSetsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesStatefulSetFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ConsoleLoggingResourcesStatefulSetWatch($namespace: String!, $fieldSelector: String!) {\n appsV1StatefulSetsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesStatefulSetFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query ConsoleLoggingResourcesJobsFind($namespace: String!, $continue: String = \"\") {\n batchV1JobsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n metadata {\n continue\n resourceVersion\n }\n items {\n ...ConsoleLoggingResourcesJobsFindFragment\n }\n }\n }\n"): (typeof documents)["\n query ConsoleLoggingResourcesJobsFind($namespace: String!, $continue: String = \"\") {\n batchV1JobsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n metadata {\n continue\n resourceVersion\n }\n items {\n ...ConsoleLoggingResourcesJobsFindFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription ConsoleStreamsJobsWatch($namespace: String!, $resourceVersion: String = \"\") {\n batchV1JobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ConsoleLoggingResourcesJobFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ConsoleStreamsJobsWatch($namespace: String!, $resourceVersion: String = \"\") {\n batchV1JobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ConsoleLoggingResourcesJobFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query ConsoleLoggingResourcesPodsFind($namespace: String!, $labelSelector: String!, $continue: String = \"\") {\n coreV1PodsList(namespace: $namespace, options: { labelSelector: $labelSelector, continue: $continue }) {\n metadata {\n continue\n resourceVersion\n }\n items {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n }\n"): (typeof documents)["\n query ConsoleLoggingResourcesPodsFind($namespace: String!, $labelSelector: String!, $continue: String = \"\") {\n coreV1PodsList(namespace: $namespace, options: { labelSelector: $labelSelector, continue: $continue }) {\n metadata {\n continue\n resourceVersion\n }\n items {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription ConsoleLoggingResourcesPodsWatch($namespace: String!, $labelSelector: String!, $resourceVersion: String = \"\") {\n coreV1PodsWatch(namespace: $namespace, options: { labelSelector: $labelSelector, resourceVersion: $resourceVersion }) {\n type\n object {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ConsoleLoggingResourcesPodsWatch($namespace: String!, $labelSelector: String!, $resourceVersion: String = \"\") {\n coreV1PodsWatch(namespace: $namespace, options: { labelSelector: $labelSelector, resourceVersion: $resourceVersion }) {\n type\n object {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query ConsoleNodesListFetch($continue: String = \"\") {\n coreV1NodesList(options: { limit: \"50\", continue: $continue }) {\n metadata {\n continue\n resourceVersion\n }\n items {\n ...ConsoleNodesListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query ConsoleNodesListFetch($continue: String = \"\") {\n coreV1NodesList(options: { limit: \"50\", continue: $continue }) {\n metadata {\n continue\n resourceVersion\n }\n items {\n ...ConsoleNodesListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription ConsoleNodesListWatch($resourceVersion: String = \"\") {\n coreV1NodesWatch(options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ConsoleNodesListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ConsoleNodesListWatch($resourceVersion: String = \"\") {\n coreV1NodesWatch(options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ConsoleNodesListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query SourcePickerCronJobsCountFetch($namespace: String = \"\") {\n batchV1CronJobsList(namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerCronJobsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"): (typeof documents)["\n query SourcePickerCronJobsCountFetch($namespace: String = \"\") {\n batchV1CronJobsList(namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerCronJobsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription SourcePickerCronJobsCountWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1CronJobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription SourcePickerCronJobsCountWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1CronJobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query SourcePickerDaemonSetsCountFetch($namespace: String = \"\") {\n appsV1DaemonSetsList(namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerDaemonSetsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"): (typeof documents)["\n query SourcePickerDaemonSetsCountFetch($namespace: String = \"\") {\n appsV1DaemonSetsList(namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerDaemonSetsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription SourcePickerDaemonSetsCountWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DaemonSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription SourcePickerDaemonSetsCountWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DaemonSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query SourcePickerDeploymentsCountFetch($namespace: String = \"\") {\n appsV1DeploymentsList(namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerDeploymentsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"): (typeof documents)["\n query SourcePickerDeploymentsCountFetch($namespace: String = \"\") {\n appsV1DeploymentsList(namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerDeploymentsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription SourcePickerDeploymentsCountWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DeploymentsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription SourcePickerDeploymentsCountWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DeploymentsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query SourcePickerJobsCountFetch($namespace: String = \"\") {\n batchV1JobsList(namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerJobsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"): (typeof documents)["\n query SourcePickerJobsCountFetch($namespace: String = \"\") {\n batchV1JobsList(namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerJobsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription SourcePickerJobsCountWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1JobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription SourcePickerJobsCountWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1JobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query SourcePickerPodsCountFetch($namespace: String = \"\") {\n coreV1PodsList(namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerPodsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"): (typeof documents)["\n query SourcePickerPodsCountFetch($namespace: String = \"\") {\n coreV1PodsList(namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerPodsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription SourcePickerPodsCountWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n coreV1PodsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription SourcePickerPodsCountWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n coreV1PodsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query SourcePickerReplicaSetsCountFetch($namespace: String = \"\") {\n appsV1ReplicaSetsList(namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerReplicaSetsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"): (typeof documents)["\n query SourcePickerReplicaSetsCountFetch($namespace: String = \"\") {\n appsV1ReplicaSetsList(namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerReplicaSetsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription SourcePickerReplicaSetsCountWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1ReplicaSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription SourcePickerReplicaSetsCountWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1ReplicaSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query SourcePickerStatefulSetsCountFetch($namespace: String = \"\") {\n appsV1StatefulSetsList(namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerStatefulSetsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"): (typeof documents)["\n query SourcePickerStatefulSetsCountFetch($namespace: String = \"\") {\n appsV1StatefulSetsList(namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerStatefulSetsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription SourcePickerStatefulSetsCountWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1StatefulSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription SourcePickerStatefulSetsCountWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1StatefulSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query SourcePickerCronJobsListFetch($namespace: String = \"\", $continue: String = \"\") {\n batchV1CronJobsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerCronJobsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query SourcePickerCronJobsListFetch($namespace: String = \"\", $continue: String = \"\") {\n batchV1CronJobsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerCronJobsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription SourcePickerCronJobsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1CronJobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription SourcePickerCronJobsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1CronJobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query SourcePickerDaemonSetsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1DaemonSetsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerDaemonSetsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query SourcePickerDaemonSetsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1DaemonSetsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerDaemonSetsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription SourcePickerDaemonSetsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DaemonSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription SourcePickerDaemonSetsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DaemonSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query SourcePickerDeploymentsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1DeploymentsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerDeploymentsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query SourcePickerDeploymentsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1DeploymentsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerDeploymentsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription SourcePickerDeploymentsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DeploymentsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription SourcePickerDeploymentsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DeploymentsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query SourcePickerJobsListFetch($namespace: String = \"\", $continue: String = \"\") {\n batchV1JobsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerJobsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query SourcePickerJobsListFetch($namespace: String = \"\", $continue: String = \"\") {\n batchV1JobsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerJobsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription SourcePickerJobsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1JobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription SourcePickerJobsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1JobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query SourcePickerNamespacesListFetch($continue: String = \"\") {\n coreV1NamespacesList(options: { limit: \"50\", continue: $continue }) {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query SourcePickerNamespacesListFetch($continue: String = \"\") {\n coreV1NamespacesList(options: { limit: \"50\", continue: $continue }) {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription SourcePickerNamespacesListWatch($resourceVersion: String = \"\") {\n coreV1NamespacesWatch(options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription SourcePickerNamespacesListWatch($resourceVersion: String = \"\") {\n coreV1NamespacesWatch(options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query SourcePickerPodsListFetch($namespace: String = \"\", $continue: String = \"\") {\n coreV1PodsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerPodsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query SourcePickerPodsListFetch($namespace: String = \"\", $continue: String = \"\") {\n coreV1PodsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerPodsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription SourcePickerPodsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n coreV1PodsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription SourcePickerPodsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n coreV1PodsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query SourcePickerReplicaSetsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1ReplicaSetsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerReplicaSetsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query SourcePickerReplicaSetsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1ReplicaSetsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerReplicaSetsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription SourcePickerReplicaSetsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1ReplicaSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription SourcePickerReplicaSetsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1ReplicaSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query SourcePickerStatefulSetsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1StatefulSetsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerStatefulSetsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query SourcePickerStatefulSetsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1StatefulSetsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerStatefulSetsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription SourcePickerStatefulSetsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1StatefulSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeStatefulSetsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription SourcePickerStatefulSetsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1StatefulSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeStatefulSetsListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query ExplorerCronJobsListFetch($namespace: String = \"\", $continue: String = \"\") {\n batchV1CronJobsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...ExplorerGenericListFragment\n items {\n ...ExplorerCronJobsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query ExplorerCronJobsListFetch($namespace: String = \"\", $continue: String = \"\") {\n batchV1CronJobsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...ExplorerGenericListFragment\n items {\n ...ExplorerCronJobsListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription ExplorerCronJobsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1CronJobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ExplorerCronJobsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ExplorerCronJobsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1CronJobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ExplorerCronJobsListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query ExplorerDaemonSetsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1DaemonSetsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...ExplorerGenericListFragment\n items {\n ...ExplorerDaemonSetsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query ExplorerDaemonSetsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1DaemonSetsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...ExplorerGenericListFragment\n items {\n ...ExplorerDaemonSetsListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription ExplorerDaemonSetsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DaemonSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ExplorerDaemonSetsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ExplorerDaemonSetsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DaemonSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ExplorerDaemonSetsListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query ExplorerDeploymentsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1DeploymentsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...ExplorerGenericListFragment\n items {\n ...ExplorerDeploymentsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query ExplorerDeploymentsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1DeploymentsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...ExplorerGenericListFragment\n items {\n ...ExplorerDeploymentsListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription ExplorerDeploymentsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DeploymentsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ExplorerDeploymentsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ExplorerDeploymentsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DeploymentsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ExplorerDeploymentsListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query ExplorerJobsListFetch($namespace: String = \"\", $continue: String = \"\") {\n batchV1JobsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...ExplorerGenericListFragment\n items {\n ...ExplorerJobsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query ExplorerJobsListFetch($namespace: String = \"\", $continue: String = \"\") {\n batchV1JobsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...ExplorerGenericListFragment\n items {\n ...ExplorerJobsListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription ExplorerJobsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1JobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ExplorerJobsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ExplorerJobsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1JobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ExplorerJobsListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query ExplorerPodsListFetch($namespace: String = \"\", $continue: String = \"\") {\n coreV1PodsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...ExplorerGenericListFragment\n items {\n ...ExplorerPodsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query ExplorerPodsListFetch($namespace: String = \"\", $continue: String = \"\") {\n coreV1PodsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...ExplorerGenericListFragment\n items {\n ...ExplorerPodsListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription ExplorerPodsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n coreV1PodsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ExplorerPodsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ExplorerPodsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n coreV1PodsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ExplorerPodsListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query ExplorerReplicaSetsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1ReplicaSetsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...ExplorerGenericListFragment\n items {\n ...ExplorerReplicaSetsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query ExplorerReplicaSetsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1ReplicaSetsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...ExplorerGenericListFragment\n items {\n ...ExplorerReplicaSetsListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription ExplorerReplicaSetsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1ReplicaSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ExplorerReplicaSetsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ExplorerReplicaSetsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1ReplicaSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ExplorerReplicaSetsListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query ExplorerStatefulSetsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1StatefulSetsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...ExplorerGenericListFragment\n items {\n ...ExplorerStatefulSetsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query ExplorerStatefulSetsListFetch($namespace: String = \"\", $continue: String = \"\") {\n appsV1StatefulSetsList(namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...ExplorerGenericListFragment\n items {\n ...ExplorerStatefulSetsListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription ExplorerStatefulSetsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1StatefulSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ExplorerStatefulSetsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ExplorerStatefulSetsListWatch($namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1StatefulSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ExplorerStatefulSetsListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query ExplorerCronJobsObjectFetch($namespace: String!, $name: String!) {\n batchV1CronJobsGet(namespace: $namespace, name: $name) {\n ...ExplorerCronJobsObjectFragment\n }\n }\n"): (typeof documents)["\n query ExplorerCronJobsObjectFetch($namespace: String!, $name: String!) {\n batchV1CronJobsGet(namespace: $namespace, name: $name) {\n ...ExplorerCronJobsObjectFragment\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription ExplorerCronJobsObjectWatch($namespace: String!, $fieldSelector: String!) {\n batchV1CronJobsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ExplorerCronJobsObjectFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ExplorerCronJobsObjectWatch($namespace: String!, $fieldSelector: String!) {\n batchV1CronJobsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ExplorerCronJobsObjectFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query ExplorerDaemonSetsObjectFetch($namespace: String!, $name: String!) {\n appsV1DaemonSetsGet(namespace: $namespace, name: $name) {\n ...ExplorerDaemonSetsObjectFragment\n }\n }\n"): (typeof documents)["\n query ExplorerDaemonSetsObjectFetch($namespace: String!, $name: String!) {\n appsV1DaemonSetsGet(namespace: $namespace, name: $name) {\n ...ExplorerDaemonSetsObjectFragment\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription ExplorerDaemonSetsObjectWatch($namespace: String!, $fieldSelector: String!) {\n appsV1DaemonSetsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ExplorerDaemonSetsObjectFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ExplorerDaemonSetsObjectWatch($namespace: String!, $fieldSelector: String!) {\n appsV1DaemonSetsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ExplorerDaemonSetsObjectFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query ExplorerDeploymentsObjectFetch($namespace: String!, $name: String!) {\n appsV1DeploymentsGet(namespace: $namespace, name: $name) {\n ...ExplorerDeploymentsObjectFragment\n }\n }\n"): (typeof documents)["\n query ExplorerDeploymentsObjectFetch($namespace: String!, $name: String!) {\n appsV1DeploymentsGet(namespace: $namespace, name: $name) {\n ...ExplorerDeploymentsObjectFragment\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription ExplorerDeploymentsObjectWatch($namespace: String!, $fieldSelector: String!) {\n appsV1DeploymentsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ExplorerDeploymentsObjectFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ExplorerDeploymentsObjectWatch($namespace: String!, $fieldSelector: String!) {\n appsV1DeploymentsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ExplorerDeploymentsObjectFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query ExplorerJobsObjectFetch($namespace: String!, $name: String!) {\n batchV1JobsGet(namespace: $namespace, name: $name) {\n ...ExplorerJobsObjectFragment\n }\n }\n"): (typeof documents)["\n query ExplorerJobsObjectFetch($namespace: String!, $name: String!) {\n batchV1JobsGet(namespace: $namespace, name: $name) {\n ...ExplorerJobsObjectFragment\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription ExplorerJobsObjectWatch($namespace: String!, $fieldSelector: String!) {\n batchV1JobsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ExplorerJobsObjectFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ExplorerJobsObjectWatch($namespace: String!, $fieldSelector: String!) {\n batchV1JobsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ExplorerJobsObjectFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query ExplorerPodsObjectFetch($namespace: String!, $name: String!) {\n coreV1PodsGet(namespace: $namespace, name: $name) {\n ...ExplorerPodsObjectFragment\n }\n }\n"): (typeof documents)["\n query ExplorerPodsObjectFetch($namespace: String!, $name: String!) {\n coreV1PodsGet(namespace: $namespace, name: $name) {\n ...ExplorerPodsObjectFragment\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription ExplorerPodsObjectWatch($namespace: String!, $fieldSelector: String!) {\n coreV1PodsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ExplorerPodsObjectFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ExplorerPodsObjectWatch($namespace: String!, $fieldSelector: String!) {\n coreV1PodsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ExplorerPodsObjectFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query ExplorerReplicaSetsObjectFetch($namespace: String!, $name: String!) {\n appsV1ReplicaSetsGet(namespace: $namespace, name: $name) {\n ...ExplorerReplicaSetsObjectFragment\n }\n }\n"): (typeof documents)["\n query ExplorerReplicaSetsObjectFetch($namespace: String!, $name: String!) {\n appsV1ReplicaSetsGet(namespace: $namespace, name: $name) {\n ...ExplorerReplicaSetsObjectFragment\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription ExplorerReplicaSetsObjectWatch($namespace: String!, $fieldSelector: String!) {\n appsV1ReplicaSetsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ExplorerReplicaSetsObjectFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ExplorerReplicaSetsObjectWatch($namespace: String!, $fieldSelector: String!) {\n appsV1ReplicaSetsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ExplorerReplicaSetsObjectFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query ExplorerStatefulSetsObjectFetch($namespace: String!, $name: String!) {\n appsV1StatefulSetsGet(namespace: $namespace, name: $name) {\n ...ExplorerStatefulSetsObjectFragment\n }\n }\n"): (typeof documents)["\n query ExplorerStatefulSetsObjectFetch($namespace: String!, $name: String!) {\n appsV1StatefulSetsGet(namespace: $namespace, name: $name) {\n ...ExplorerStatefulSetsObjectFragment\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription ExplorerStatefulSetsObjectWatch($namespace: String!, $fieldSelector: String!) {\n appsV1StatefulSetsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ExplorerStatefulSetsObjectFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ExplorerStatefulSetsObjectWatch($namespace: String!, $fieldSelector: String!) {\n appsV1StatefulSetsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ExplorerStatefulSetsObjectFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query HeadContainerLog($namespace: String!, $name: String!, $container: String, $after: ID, $since: String, $first: Int) {\n podLogHead(namespace: $namespace, name: $name, container: $container, after: $after, since: $since, first: $first) {\n ...PodLogQueryResponseFragment\n }\n }\n"): (typeof documents)["\n query HeadContainerLog($namespace: String!, $name: String!, $container: String, $after: ID, $since: String, $first: Int) {\n podLogHead(namespace: $namespace, name: $name, container: $container, after: $after, since: $since, first: $first) {\n ...PodLogQueryResponseFragment\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query TailContainerLog($namespace: String!, $name: String!, $container: String, $before: ID, $last: Int) {\n podLogTail(namespace: $namespace, name: $name, container: $container, before: $before, last: $last) {\n ...PodLogQueryResponseFragment\n }\n }\n"): (typeof documents)["\n query TailContainerLog($namespace: String!, $name: String!, $container: String, $before: ID, $last: Int) {\n podLogTail(namespace: $namespace, name: $name, container: $container, before: $before, last: $last) {\n ...PodLogQueryResponseFragment\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription FollowContainerLog($namespace: String!, $name: String!, $container: String, $after: ID, $since: String) {\n podLogFollow(namespace: $namespace, name: $name, container: $container, after: $after, since: $since) {\n timestamp\n message\n }\n }\n"): (typeof documents)["\n subscription FollowContainerLog($namespace: String!, $name: String!, $container: String, $after: ID, $since: String) {\n podLogFollow(namespace: $namespace, name: $name, container: $container, after: $after, since: $since) {\n timestamp\n message\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query LogMetadataListFetch($namespace: String = \"\") {\n logMetadataList(namespace: $namespace) {\n items {\n ...LogMetadataListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query LogMetadataListFetch($namespace: String = \"\") {\n logMetadataList(namespace: $namespace) {\n items {\n ...LogMetadataListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription LogMetadataListWatch($namespace: String = \"\") {\n logMetadataWatch(namespace: $namespace) {\n type\n object {\n ...LogMetadataListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription LogMetadataListWatch($namespace: String = \"\") {\n logMetadataWatch(namespace: $namespace) {\n type\n object {\n ...LogMetadataListItemFragment\n }\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription LivezWatch {\n livezWatch {\n status\n message\n timestamp\n }\n }\n"): (typeof documents)["\n subscription LivezWatch {\n livezWatch {\n status\n message\n timestamp\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n subscription ReadyzWatch {\n readyzWatch {\n status\n message\n timestamp\n }\n }\n"): (typeof documents)["\n subscription ReadyzWatch {\n readyzWatch {\n status\n message\n timestamp\n }\n }\n"]; -/** - * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. - */ -export function gql(source: "\n query ReadyWait {\n readyWait(timeout: 20)\n }\n"): (typeof documents)["\n query ReadyWait {\n readyWait(timeout: 20)\n }\n"]; - -export function gql(source: string) { - return (documents as any)[source] ?? {}; -} - -export type DocumentType> = TDocumentNode extends DocumentNode< infer TType, any> ? TType : never; \ No newline at end of file diff --git a/dashboard-ui/src/lib/graphql/__generated__/graphql.ts b/dashboard-ui/src/lib/graphql/__generated__/graphql.ts deleted file mode 100644 index 11413dd5..00000000 --- a/dashboard-ui/src/lib/graphql/__generated__/graphql.ts +++ /dev/null @@ -1,2116 +0,0 @@ -/* eslint-disable */ -import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core'; -export type Maybe = T | null; -export type InputMaybe = Maybe; -export type Exact = { [K in keyof T]: T[K] }; -export type MakeOptional = Omit & { [SubKey in K]?: Maybe }; -export type MakeMaybe = Omit & { [SubKey in K]: Maybe }; -export type MakeEmpty = { [_ in K]?: never }; -export type Incremental = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never }; -/** All built-in and custom scalars, mapped to their actual values */ -export type Scalars = { - ID: { input: string; output: string; } - String: { input: string; output: string; } - Boolean: { input: boolean; output: boolean; } - Int: { input: number; output: number; } - Float: { input: number; output: number; } - AppsV1DaemonSetConditionType: { input: any; output: any; } - /** A 64-bit integer. */ - Int64: { input: any; output: any; } - /** An ISO-8601 encoded UTC date string. */ - MetaV1Time: { input: any; output: any; } - /** An arbitrary dictionary with string values */ - StringMap: { input: any; output: any; } - /** An ISO-8601 encoded UTC date string. */ - Time: { input: any; output: any; } - /** An ISO-8601 encoded UTC date string. */ - TimestampPBTimestamp: { input: any; output: any; } -}; - -export type AppsV1DaemonSet = Object & { - __typename?: 'AppsV1DaemonSet'; - apiVersion: Scalars['String']['output']; - id: Scalars['ID']['output']; - kind: Scalars['String']['output']; - metadata: MetaV1ObjectMeta; - spec: AppsV1DaemonSetSpec; - status: AppsV1DaemonSetStatus; -}; - -export type AppsV1DaemonSetCondition = { - __typename?: 'AppsV1DaemonSetCondition'; - lastTransitionTime: Scalars['MetaV1Time']['output']; - message: Scalars['String']['output']; - reason: Scalars['String']['output']; - status: CoreV1ConditionStatus; - type: Scalars['AppsV1DaemonSetConditionType']['output']; -}; - -export type AppsV1DaemonSetList = List & { - __typename?: 'AppsV1DaemonSetList'; - apiVersion: Scalars['String']['output']; - items: Array; - kind: Scalars['String']['output']; - metadata: MetaV1ListMeta; -}; - -export type AppsV1DaemonSetSpec = { - __typename?: 'AppsV1DaemonSetSpec'; - selector?: Maybe; -}; - -export type AppsV1DaemonSetStatus = { - __typename?: 'AppsV1DaemonSetStatus'; - conditions: Array; - currentNumberScheduled: Scalars['Int']['output']; - desiredNumberScheduled: Scalars['Int']['output']; - numberAvailable: Scalars['Int']['output']; - numberMisscheduled: Scalars['Int']['output']; - numberReady: Scalars['Int']['output']; - numberUnavailable: Scalars['Int']['output']; - observedGeneration: Scalars['Int64']['output']; - updatedNumberScheduled: Scalars['Int']['output']; -}; - -export type AppsV1DaemonSetsWatchEvent = { - __typename?: 'AppsV1DaemonSetsWatchEvent'; - object?: Maybe; - type: WatchEventType; -}; - -export type AppsV1Deployment = Object & { - __typename?: 'AppsV1Deployment'; - apiVersion: Scalars['String']['output']; - id: Scalars['ID']['output']; - kind: Scalars['String']['output']; - metadata: MetaV1ObjectMeta; - spec: AppsV1DeploymentSpec; - status: AppsV1DeploymentStatus; -}; - -export type AppsV1DeploymentList = List & { - __typename?: 'AppsV1DeploymentList'; - apiVersion: Scalars['String']['output']; - items: Array; - kind: Scalars['String']['output']; - metadata: MetaV1ListMeta; -}; - -export type AppsV1DeploymentSpec = { - __typename?: 'AppsV1DeploymentSpec'; - paused: Scalars['Boolean']['output']; - replicas?: Maybe; - selector?: Maybe; -}; - -export type AppsV1DeploymentStatus = { - __typename?: 'AppsV1DeploymentStatus'; - replicas: Scalars['Int']['output']; -}; - -export type AppsV1DeploymentsWatchEvent = { - __typename?: 'AppsV1DeploymentsWatchEvent'; - object?: Maybe; - type: WatchEventType; -}; - -export type AppsV1ReplicaSet = Object & { - __typename?: 'AppsV1ReplicaSet'; - apiVersion: Scalars['String']['output']; - id: Scalars['ID']['output']; - kind: Scalars['String']['output']; - metadata: MetaV1ObjectMeta; - spec: AppsV1ReplicaSetSpec; - status: AppsV1ReplicaSetStatus; -}; - -export type AppsV1ReplicaSetList = List & { - __typename?: 'AppsV1ReplicaSetList'; - apiVersion: Scalars['String']['output']; - items: Array; - kind: Scalars['String']['output']; - metadata: MetaV1ListMeta; -}; - -export type AppsV1ReplicaSetSpec = { - __typename?: 'AppsV1ReplicaSetSpec'; - replicas?: Maybe; - selector?: Maybe; -}; - -export type AppsV1ReplicaSetStatus = { - __typename?: 'AppsV1ReplicaSetStatus'; - replicas: Scalars['Int']['output']; -}; - -export type AppsV1ReplicaSetsWatchEvent = { - __typename?: 'AppsV1ReplicaSetsWatchEvent'; - object?: Maybe; - type: WatchEventType; -}; - -export type AppsV1StatefulSet = Object & { - __typename?: 'AppsV1StatefulSet'; - apiVersion: Scalars['String']['output']; - id: Scalars['ID']['output']; - kind: Scalars['String']['output']; - metadata: MetaV1ObjectMeta; - spec: AppsV1StatefulSetSpec; -}; - -export type AppsV1StatefulSetList = List & { - __typename?: 'AppsV1StatefulSetList'; - apiVersion: Scalars['String']['output']; - items: Array; - kind: Scalars['String']['output']; - metadata: MetaV1ListMeta; -}; - -export type AppsV1StatefulSetSpec = { - __typename?: 'AppsV1StatefulSetSpec'; - replicas?: Maybe; - selector?: Maybe; -}; - -export type AppsV1StatefulSetsWatchEvent = { - __typename?: 'AppsV1StatefulSetsWatchEvent'; - object?: Maybe; - type: WatchEventType; -}; - -export type BatchV1CronJob = Object & { - __typename?: 'BatchV1CronJob'; - apiVersion: Scalars['String']['output']; - id: Scalars['ID']['output']; - kind: Scalars['String']['output']; - metadata: MetaV1ObjectMeta; - spec: BatchV1CronJobSpec; - status: BatchV1CronJobStatus; -}; - -export type BatchV1CronJobList = List & { - __typename?: 'BatchV1CronJobList'; - apiVersion: Scalars['String']['output']; - items: Array; - kind: Scalars['String']['output']; - metadata: MetaV1ListMeta; -}; - -export type BatchV1CronJobSpec = { - __typename?: 'BatchV1CronJobSpec'; - failedJobsHistoryLimit?: Maybe; - jobTemplate: BatchV1JobTemplateSpec; - schedule: Scalars['String']['output']; - successfulJobsHistoryLimit?: Maybe; - suspend?: Maybe; - timeZone?: Maybe; -}; - -export type BatchV1CronJobStatus = { - __typename?: 'BatchV1CronJobStatus'; - active: Array; - lastScheduleTime?: Maybe; - lastSuccessfulTime?: Maybe; -}; - -export type BatchV1CronJobsWatchEvent = { - __typename?: 'BatchV1CronJobsWatchEvent'; - object?: Maybe; - type: WatchEventType; -}; - -export type BatchV1Job = Object & { - __typename?: 'BatchV1Job'; - apiVersion: Scalars['String']['output']; - id: Scalars['ID']['output']; - kind: Scalars['String']['output']; - metadata: MetaV1ObjectMeta; - spec: BatchV1JobSpec; - status: BatchV1JobStatus; -}; - -export type BatchV1JobCondition = { - __typename?: 'BatchV1JobCondition'; - lastProbeTime: Scalars['MetaV1Time']['output']; - lastTransitionTime: Scalars['MetaV1Time']['output']; - message: Scalars['String']['output']; - reason: Scalars['String']['output']; - status: CoreV1ConditionStatus; - type: BatchV1JobConditionType; -}; - -export enum BatchV1JobConditionType { - Complete = 'Complete', - Failed = 'Failed', - FailureTarget = 'FailureTarget', - Suspended = 'Suspended' -} - -export type BatchV1JobList = List & { - __typename?: 'BatchV1JobList'; - apiVersion: Scalars['String']['output']; - items: Array; - kind: Scalars['String']['output']; - metadata: MetaV1ListMeta; -}; - -export type BatchV1JobSpec = { - __typename?: 'BatchV1JobSpec'; - backoffLimit?: Maybe; - completions?: Maybe; - manualSelector?: Maybe; - parallelism?: Maybe; - selector?: Maybe; - suspend?: Maybe; - ttlSecondsAfterFinished?: Maybe; -}; - -export type BatchV1JobStatus = { - __typename?: 'BatchV1JobStatus'; - active: Scalars['Int']['output']; - completedIndexes: Scalars['String']['output']; - completionTime?: Maybe; - conditions: Array; - failed: Scalars['Int']['output']; - ready?: Maybe; - startTime?: Maybe; - succeeded: Scalars['Int']['output']; -}; - -export type BatchV1JobTemplateSpec = { - __typename?: 'BatchV1JobTemplateSpec'; - metadata: MetaV1ObjectMeta; - spec: BatchV1JobSpec; -}; - -export type BatchV1JobsWatchEvent = { - __typename?: 'BatchV1JobsWatchEvent'; - object?: Maybe; - type: WatchEventType; -}; - -export enum CoreV1ConditionStatus { - False = 'False', - True = 'True', - Unknown = 'Unknown' -} - -export type CoreV1Container = { - __typename?: 'CoreV1Container'; - image: Scalars['String']['output']; - name: Scalars['String']['output']; -}; - -export type CoreV1ContainerState = { - __typename?: 'CoreV1ContainerState'; - running?: Maybe; - terminated?: Maybe; - waiting?: Maybe; -}; - -export type CoreV1ContainerStateRunning = { - __typename?: 'CoreV1ContainerStateRunning'; - startedAt: Scalars['MetaV1Time']['output']; -}; - -export type CoreV1ContainerStateTerminated = { - __typename?: 'CoreV1ContainerStateTerminated'; - containerID: Scalars['String']['output']; - exitCode: Scalars['Int']['output']; - message: Scalars['String']['output']; - reason: Scalars['String']['output']; - signal: Scalars['Int']['output']; -}; - -export type CoreV1ContainerStateWaiting = { - __typename?: 'CoreV1ContainerStateWaiting'; - message: Scalars['String']['output']; - reason: Scalars['String']['output']; -}; - -export type CoreV1ContainerStatus = { - __typename?: 'CoreV1ContainerStatus'; - containerID: Scalars['String']['output']; - image: Scalars['String']['output']; - imageID: Scalars['String']['output']; - lastTerminationState: CoreV1ContainerState; - name: Scalars['String']['output']; - ready: Scalars['Boolean']['output']; - restartCount: Scalars['Int']['output']; - started?: Maybe; - state: CoreV1ContainerState; -}; - -export type CoreV1Namespace = Object & { - __typename?: 'CoreV1Namespace'; - apiVersion: Scalars['String']['output']; - id: Scalars['ID']['output']; - kind: Scalars['String']['output']; - metadata: MetaV1ObjectMeta; -}; - -export type CoreV1NamespaceList = List & { - __typename?: 'CoreV1NamespaceList'; - apiVersion: Scalars['String']['output']; - items: Array; - kind: Scalars['String']['output']; - metadata: MetaV1ListMeta; -}; - -export type CoreV1NamespacesWatchEvent = { - __typename?: 'CoreV1NamespacesWatchEvent'; - object?: Maybe; - type: WatchEventType; -}; - -export type CoreV1Node = Object & { - __typename?: 'CoreV1Node'; - apiVersion: Scalars['String']['output']; - id: Scalars['ID']['output']; - kind: Scalars['String']['output']; - metadata: MetaV1ObjectMeta; -}; - -export type CoreV1NodeList = List & { - __typename?: 'CoreV1NodeList'; - apiVersion: Scalars['String']['output']; - items: Array; - kind: Scalars['String']['output']; - metadata: MetaV1ListMeta; -}; - -export type CoreV1NodesWatchEvent = { - __typename?: 'CoreV1NodesWatchEvent'; - object?: Maybe; - type: WatchEventType; -}; - -export type CoreV1ObjectReference = { - __typename?: 'CoreV1ObjectReference'; - apiVersion: Scalars['String']['output']; - fieldPath: Scalars['String']['output']; - kind: Scalars['String']['output']; - name: Scalars['String']['output']; - namespace: Scalars['String']['output']; - resourceVersion: Scalars['String']['output']; - uid: Scalars['ID']['output']; -}; - -export type CoreV1Pod = Object & { - __typename?: 'CoreV1Pod'; - apiVersion: Scalars['String']['output']; - id: Scalars['ID']['output']; - kind: Scalars['String']['output']; - metadata: MetaV1ObjectMeta; - spec: CoreV1PodSpec; - status: CoreV1PodStatus; -}; - -export type CoreV1PodList = List & { - __typename?: 'CoreV1PodList'; - apiVersion: Scalars['String']['output']; - items: Array; - kind: Scalars['String']['output']; - metadata: MetaV1ListMeta; -}; - -export type CoreV1PodLogOptions = { - container?: InputMaybe; - limitBytes?: InputMaybe; - previous?: InputMaybe; - sinceSeconds?: InputMaybe; - sinceTime?: InputMaybe; - tailLines?: InputMaybe; -}; - -export enum CoreV1PodPhase { - Failed = 'Failed', - Pending = 'Pending', - Running = 'Running', - Succeeded = 'Succeeded', - Unknown = 'Unknown' -} - -export type CoreV1PodSpec = { - __typename?: 'CoreV1PodSpec'; - containers: Array; - hostname: Scalars['String']['output']; - nodeName: Scalars['String']['output']; - priorityClassName: Scalars['String']['output']; -}; - -export type CoreV1PodStatus = { - __typename?: 'CoreV1PodStatus'; - containerStatuses: Array; - message: Scalars['String']['output']; - phase: CoreV1PodPhase; - reason: Scalars['String']['output']; -}; - -export type CoreV1PodsWatchEvent = { - __typename?: 'CoreV1PodsWatchEvent'; - object?: Maybe; - type: WatchEventType; -}; - -export type HealthCheckResponse = { - __typename?: 'HealthCheckResponse'; - message?: Maybe; - status: HealthCheckStatus; - timestamp: Scalars['Time']['output']; -}; - -export enum HealthCheckStatus { - Failure = 'FAILURE', - Success = 'SUCCESS' -} - -export type List = { - apiVersion: Scalars['String']['output']; - items: Array; - kind: Scalars['String']['output']; - metadata: MetaV1ListMeta; -}; - -export type LogMetadata = { - __typename?: 'LogMetadata'; - fileInfo: LogMetadataFileInfo; - id: Scalars['ID']['output']; - spec: LogMetadataSpec; -}; - -export type LogMetadataFileInfo = { - __typename?: 'LogMetadataFileInfo'; - lastModifiedAt?: Maybe; - size: Scalars['Int64']['output']; -}; - -export type LogMetadataList = { - __typename?: 'LogMetadataList'; - items: Array; -}; - -export type LogMetadataSpec = { - __typename?: 'LogMetadataSpec'; - containerID: Scalars['ID']['output']; - containerName: Scalars['String']['output']; - namespace: Scalars['String']['output']; - nodeName: Scalars['String']['output']; - podName: Scalars['String']['output']; -}; - -export type LogMetadataWatchEvent = { - __typename?: 'LogMetadataWatchEvent'; - object?: Maybe; - type: Scalars['String']['output']; -}; - -export type LogRecord = { - __typename?: 'LogRecord'; - message: Scalars['String']['output']; - timestamp: Scalars['Time']['output']; -}; - -export type MetaV1GetOptions = { - resourceVersion?: InputMaybe; -}; - -export type MetaV1LabelSelector = { - __typename?: 'MetaV1LabelSelector'; - matchExpressions: Array; - matchLabels?: Maybe; -}; - -export enum MetaV1LabelSelectorOperator { - DoesNotExist = 'DoesNotExist', - Exists = 'Exists', - In = 'In', - NotIn = 'NotIn' -} - -export type MetaV1LabelSelectorRequirement = { - __typename?: 'MetaV1LabelSelectorRequirement'; - key: Scalars['String']['output']; - operator: MetaV1LabelSelectorOperator; - values: Array; -}; - -export type MetaV1ListMeta = { - __typename?: 'MetaV1ListMeta'; - continue: Scalars['String']['output']; - remainingItemCount?: Maybe; - resourceVersion: Scalars['String']['output']; -}; - -export type MetaV1ListOptions = { - allowWatchBookmarks?: InputMaybe; - continue?: InputMaybe; - fieldSelector?: InputMaybe; - labelSelector?: InputMaybe; - limit?: InputMaybe; - resourceVersion?: InputMaybe; - resourceVersionMatch?: InputMaybe; - sendInitialEvents?: InputMaybe; -}; - -export type MetaV1ObjectMeta = { - __typename?: 'MetaV1ObjectMeta'; - annotations?: Maybe; - creationTimestamp: Scalars['MetaV1Time']['output']; - deletionTimestamp?: Maybe; - labels?: Maybe; - name: Scalars['String']['output']; - namespace: Scalars['String']['output']; - ownerReferences: Array; - resourceVersion: Scalars['String']['output']; - uid: Scalars['ID']['output']; -}; - -export type MetaV1OwnerReference = { - __typename?: 'MetaV1OwnerReference'; - apiVersion: Scalars['String']['output']; - controller?: Maybe; - kind: Scalars['String']['output']; - name: Scalars['String']['output']; - uid: Scalars['ID']['output']; -}; - -export enum MetaV1ResourceVersionMatch { - Exact = 'Exact', - NotOlderThan = 'NotOlderThan' -} - -export type Object = { - apiVersion: Scalars['String']['output']; - id: Scalars['ID']['output']; - kind: Scalars['String']['output']; - metadata: MetaV1ObjectMeta; -}; - -export type PageInfo = { - __typename?: 'PageInfo'; - /** When paginating forwards, the cursor to continue. */ - endCursor?: Maybe; - /** When paginating forwards, are there more items? */ - hasNextPage: Scalars['Boolean']['output']; - /** When paginating backwards, are there more items? */ - hasPreviousPage: Scalars['Boolean']['output']; - /** When paginating backwards, the cursor to continue. */ - startCursor?: Maybe; -}; - -export type PodLogQueryResponse = { - __typename?: 'PodLogQueryResponse'; - pageInfo: PageInfo; - results: Array; -}; - -export type Query = { - __typename?: 'Query'; - /** AppsV1 API */ - appsV1DaemonSetsGet?: Maybe; - appsV1DaemonSetsList?: Maybe; - appsV1DeploymentsGet?: Maybe; - appsV1DeploymentsList?: Maybe; - appsV1ReplicaSetsGet?: Maybe; - appsV1ReplicaSetsList?: Maybe; - appsV1StatefulSetsGet?: Maybe; - appsV1StatefulSetsList?: Maybe; - /** BatchV1 API */ - batchV1CronJobsGet?: Maybe; - batchV1CronJobsList?: Maybe; - batchV1JobsGet?: Maybe; - batchV1JobsList?: Maybe; - /** CoreV1 API */ - coreV1NamespacesList?: Maybe; - coreV1NodesList?: Maybe; - coreV1PodsGet?: Maybe; - coreV1PodsGetLogs?: Maybe>; - coreV1PodsList?: Maybe; - /** Health endpoints */ - livezGet: HealthCheckResponse; - /** Logs Metadata API */ - logMetadataList?: Maybe; - /** Logs API */ - podLogHead?: Maybe; - podLogTail?: Maybe; - readyWait: Scalars['Boolean']['output']; - readyzGet: HealthCheckResponse; -}; - - -export type QueryAppsV1DaemonSetsGetArgs = { - name: Scalars['String']['input']; - namespace?: InputMaybe; - options?: InputMaybe; -}; - - -export type QueryAppsV1DaemonSetsListArgs = { - namespace?: InputMaybe; - options?: InputMaybe; -}; - - -export type QueryAppsV1DeploymentsGetArgs = { - name: Scalars['String']['input']; - namespace?: InputMaybe; - options?: InputMaybe; -}; - - -export type QueryAppsV1DeploymentsListArgs = { - namespace?: InputMaybe; - options?: InputMaybe; -}; - - -export type QueryAppsV1ReplicaSetsGetArgs = { - name: Scalars['String']['input']; - namespace?: InputMaybe; - options?: InputMaybe; -}; - - -export type QueryAppsV1ReplicaSetsListArgs = { - namespace?: InputMaybe; - options?: InputMaybe; -}; - - -export type QueryAppsV1StatefulSetsGetArgs = { - name: Scalars['String']['input']; - namespace?: InputMaybe; - options?: InputMaybe; -}; - - -export type QueryAppsV1StatefulSetsListArgs = { - namespace?: InputMaybe; - options?: InputMaybe; -}; - - -export type QueryBatchV1CronJobsGetArgs = { - name: Scalars['String']['input']; - namespace?: InputMaybe; - options?: InputMaybe; -}; - - -export type QueryBatchV1CronJobsListArgs = { - namespace?: InputMaybe; - options?: InputMaybe; -}; - - -export type QueryBatchV1JobsGetArgs = { - name: Scalars['String']['input']; - namespace?: InputMaybe; - options?: InputMaybe; -}; - - -export type QueryBatchV1JobsListArgs = { - namespace?: InputMaybe; - options?: InputMaybe; -}; - - -export type QueryCoreV1NamespacesListArgs = { - options?: InputMaybe; -}; - - -export type QueryCoreV1NodesListArgs = { - options?: InputMaybe; -}; - - -export type QueryCoreV1PodsGetArgs = { - name: Scalars['String']['input']; - namespace?: InputMaybe; - options?: InputMaybe; -}; - - -export type QueryCoreV1PodsGetLogsArgs = { - name: Scalars['String']['input']; - namespace?: InputMaybe; - options?: InputMaybe; -}; - - -export type QueryCoreV1PodsListArgs = { - namespace?: InputMaybe; - options?: InputMaybe; -}; - - -export type QueryLogMetadataListArgs = { - namespace?: InputMaybe; -}; - - -export type QueryPodLogHeadArgs = { - after?: InputMaybe; - container?: InputMaybe; - first?: InputMaybe; - name: Scalars['String']['input']; - namespace?: InputMaybe; - since?: InputMaybe; -}; - - -export type QueryPodLogTailArgs = { - before?: InputMaybe; - container?: InputMaybe; - last?: InputMaybe; - name: Scalars['String']['input']; - namespace?: InputMaybe; -}; - - -export type QueryReadyWaitArgs = { - timeout?: InputMaybe; -}; - -export type Subscription = { - __typename?: 'Subscription'; - /** AppsV1 watchers */ - appsV1DaemonSetsWatch?: Maybe; - appsV1DeploymentsWatch?: Maybe; - appsV1ReplicaSetsWatch?: Maybe; - appsV1StatefulSetsWatch?: Maybe; - /** BatchV1 watchers */ - batchV1CronJobsWatch?: Maybe; - batchV1JobsWatch?: Maybe; - /** CoreV1 watchers */ - coreV1NamespacesWatch?: Maybe; - coreV1NodesWatch?: Maybe; - /** CoreV1 PodLog tail */ - coreV1PodLogTail?: Maybe; - coreV1PodsWatch?: Maybe; - /** Health endpoint watchers */ - livezWatch: HealthCheckResponse; - /** Logs Metadata watch */ - logMetadataWatch?: Maybe; - /** Logs API */ - podLogFollow?: Maybe; - readyzWatch: HealthCheckResponse; -}; - - -export type SubscriptionAppsV1DaemonSetsWatchArgs = { - namespace?: InputMaybe; - options?: InputMaybe; -}; - - -export type SubscriptionAppsV1DeploymentsWatchArgs = { - namespace?: InputMaybe; - options?: InputMaybe; -}; - - -export type SubscriptionAppsV1ReplicaSetsWatchArgs = { - namespace?: InputMaybe; - options?: InputMaybe; -}; - - -export type SubscriptionAppsV1StatefulSetsWatchArgs = { - namespace?: InputMaybe; - options?: InputMaybe; -}; - - -export type SubscriptionBatchV1CronJobsWatchArgs = { - namespace?: InputMaybe; - options?: InputMaybe; -}; - - -export type SubscriptionBatchV1JobsWatchArgs = { - namespace?: InputMaybe; - options?: InputMaybe; -}; - - -export type SubscriptionCoreV1NamespacesWatchArgs = { - options?: InputMaybe; -}; - - -export type SubscriptionCoreV1NodesWatchArgs = { - options?: InputMaybe; -}; - - -export type SubscriptionCoreV1PodLogTailArgs = { - name: Scalars['String']['input']; - namespace?: InputMaybe; - options?: InputMaybe; -}; - - -export type SubscriptionCoreV1PodsWatchArgs = { - namespace?: InputMaybe; - options?: InputMaybe; -}; - - -export type SubscriptionLogMetadataWatchArgs = { - namespace?: InputMaybe; -}; - - -export type SubscriptionPodLogFollowArgs = { - after?: InputMaybe; - container?: InputMaybe; - name: Scalars['String']['input']; - namespace?: InputMaybe; - since?: InputMaybe; -}; - -export enum WatchEventType { - Added = 'ADDED', - Bookmark = 'BOOKMARK', - Deleted = 'DELETED', - Error = 'ERROR', - Modified = 'MODIFIED' -} - -type HomeGenericListFragment_AppsV1DaemonSetList_Fragment = { __typename?: 'AppsV1DaemonSetList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; - -type HomeGenericListFragment_AppsV1DeploymentList_Fragment = { __typename?: 'AppsV1DeploymentList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; - -type HomeGenericListFragment_AppsV1ReplicaSetList_Fragment = { __typename?: 'AppsV1ReplicaSetList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; - -type HomeGenericListFragment_AppsV1StatefulSetList_Fragment = { __typename?: 'AppsV1StatefulSetList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; - -type HomeGenericListFragment_BatchV1CronJobList_Fragment = { __typename?: 'BatchV1CronJobList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; - -type HomeGenericListFragment_BatchV1JobList_Fragment = { __typename?: 'BatchV1JobList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; - -type HomeGenericListFragment_CoreV1NamespaceList_Fragment = { __typename?: 'CoreV1NamespaceList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; - -type HomeGenericListFragment_CoreV1NodeList_Fragment = { __typename?: 'CoreV1NodeList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; - -type HomeGenericListFragment_CoreV1PodList_Fragment = { __typename?: 'CoreV1PodList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; - -export type HomeGenericListFragmentFragment = HomeGenericListFragment_AppsV1DaemonSetList_Fragment | HomeGenericListFragment_AppsV1DeploymentList_Fragment | HomeGenericListFragment_AppsV1ReplicaSetList_Fragment | HomeGenericListFragment_AppsV1StatefulSetList_Fragment | HomeGenericListFragment_BatchV1CronJobList_Fragment | HomeGenericListFragment_BatchV1JobList_Fragment | HomeGenericListFragment_CoreV1NamespaceList_Fragment | HomeGenericListFragment_CoreV1NodeList_Fragment | HomeGenericListFragment_CoreV1PodList_Fragment; - -type HomeGenericListItemFragment_AppsV1DaemonSet_Fragment = { __typename?: 'AppsV1DaemonSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -type HomeGenericListItemFragment_AppsV1Deployment_Fragment = { __typename?: 'AppsV1Deployment', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -type HomeGenericListItemFragment_AppsV1ReplicaSet_Fragment = { __typename?: 'AppsV1ReplicaSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -type HomeGenericListItemFragment_AppsV1StatefulSet_Fragment = { __typename?: 'AppsV1StatefulSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -type HomeGenericListItemFragment_BatchV1CronJob_Fragment = { __typename?: 'BatchV1CronJob', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -type HomeGenericListItemFragment_BatchV1Job_Fragment = { __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -type HomeGenericListItemFragment_CoreV1Namespace_Fragment = { __typename?: 'CoreV1Namespace', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -type HomeGenericListItemFragment_CoreV1Node_Fragment = { __typename?: 'CoreV1Node', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -type HomeGenericListItemFragment_CoreV1Pod_Fragment = { __typename?: 'CoreV1Pod', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -export type HomeGenericListItemFragmentFragment = HomeGenericListItemFragment_AppsV1DaemonSet_Fragment | HomeGenericListItemFragment_AppsV1Deployment_Fragment | HomeGenericListItemFragment_AppsV1ReplicaSet_Fragment | HomeGenericListItemFragment_AppsV1StatefulSet_Fragment | HomeGenericListItemFragment_BatchV1CronJob_Fragment | HomeGenericListItemFragment_BatchV1Job_Fragment | HomeGenericListItemFragment_CoreV1Namespace_Fragment | HomeGenericListItemFragment_CoreV1Node_Fragment | HomeGenericListItemFragment_CoreV1Pod_Fragment; - -export type HomeCronJobsListItemFragmentFragment = { __typename?: 'BatchV1CronJob', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -export type HomeDaemonSetsListItemFragmentFragment = { __typename?: 'AppsV1DaemonSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -export type HomeDeploymentsListItemFragmentFragment = { __typename?: 'AppsV1Deployment', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -export type HomeJobsListItemFragmentFragment = { __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -export type HomeNamespacesListItemFragmentFragment = { __typename?: 'CoreV1Namespace', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -export type HomePodsListItemFragmentFragment = { __typename?: 'CoreV1Pod', id: string, status: { __typename?: 'CoreV1PodStatus', containerStatuses: Array<{ __typename?: 'CoreV1ContainerStatus', containerID: string, started?: boolean | null }> }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -export type HomeReplicaSetsListItemFragmentFragment = { __typename?: 'AppsV1ReplicaSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -export type HomeStatefulSetsListItemFragmentFragment = { __typename?: 'AppsV1StatefulSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -type ConsoleLoggingResourcesGenericObjectFragment_AppsV1DaemonSet_Fragment = { __typename?: 'AppsV1DaemonSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -type ConsoleLoggingResourcesGenericObjectFragment_AppsV1Deployment_Fragment = { __typename?: 'AppsV1Deployment', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -type ConsoleLoggingResourcesGenericObjectFragment_AppsV1ReplicaSet_Fragment = { __typename?: 'AppsV1ReplicaSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -type ConsoleLoggingResourcesGenericObjectFragment_AppsV1StatefulSet_Fragment = { __typename?: 'AppsV1StatefulSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -type ConsoleLoggingResourcesGenericObjectFragment_BatchV1CronJob_Fragment = { __typename?: 'BatchV1CronJob', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -type ConsoleLoggingResourcesGenericObjectFragment_BatchV1Job_Fragment = { __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -type ConsoleLoggingResourcesGenericObjectFragment_CoreV1Namespace_Fragment = { __typename?: 'CoreV1Namespace', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -type ConsoleLoggingResourcesGenericObjectFragment_CoreV1Node_Fragment = { __typename?: 'CoreV1Node', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -type ConsoleLoggingResourcesGenericObjectFragment_CoreV1Pod_Fragment = { __typename?: 'CoreV1Pod', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -export type ConsoleLoggingResourcesGenericObjectFragmentFragment = ConsoleLoggingResourcesGenericObjectFragment_AppsV1DaemonSet_Fragment | ConsoleLoggingResourcesGenericObjectFragment_AppsV1Deployment_Fragment | ConsoleLoggingResourcesGenericObjectFragment_AppsV1ReplicaSet_Fragment | ConsoleLoggingResourcesGenericObjectFragment_AppsV1StatefulSet_Fragment | ConsoleLoggingResourcesGenericObjectFragment_BatchV1CronJob_Fragment | ConsoleLoggingResourcesGenericObjectFragment_BatchV1Job_Fragment | ConsoleLoggingResourcesGenericObjectFragment_CoreV1Namespace_Fragment | ConsoleLoggingResourcesGenericObjectFragment_CoreV1Node_Fragment | ConsoleLoggingResourcesGenericObjectFragment_CoreV1Pod_Fragment; - -export type ConsoleLoggingResourcesCronJobFragmentFragment = { __typename?: 'BatchV1CronJob', id: string, spec: { __typename?: 'BatchV1CronJobSpec', jobTemplate: { __typename?: 'BatchV1JobTemplateSpec', spec: { __typename?: 'BatchV1JobSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null } } }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -export type ConsoleLoggingResourcesDaemonSetFragmentFragment = { __typename?: 'AppsV1DaemonSet', id: string, spec: { __typename?: 'AppsV1DaemonSetSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -export type ConsoleLoggingResourcesDeploymentFragmentFragment = { __typename?: 'AppsV1Deployment', id: string, spec: { __typename?: 'AppsV1DeploymentSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -export type ConsoleLoggingResourcesJobFragmentFragment = { __typename?: 'BatchV1Job', id: string, spec: { __typename?: 'BatchV1JobSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -export type ConsoleLoggingResourcesPodFragmentFragment = { __typename?: 'CoreV1Pod', id: string, spec: { __typename?: 'CoreV1PodSpec', nodeName: string, containers: Array<{ __typename?: 'CoreV1Container', name: string }> }, status: { __typename?: 'CoreV1PodStatus', containerStatuses: Array<{ __typename?: 'CoreV1ContainerStatus', name: string, started?: boolean | null, state: { __typename?: 'CoreV1ContainerState', running?: { __typename?: 'CoreV1ContainerStateRunning', startedAt: any } | null, terminated?: { __typename?: 'CoreV1ContainerStateTerminated', exitCode: number } | null } }> }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -export type ConsoleLoggingResourcesReplicaSetFragmentFragment = { __typename?: 'AppsV1ReplicaSet', id: string, spec: { __typename?: 'AppsV1ReplicaSetSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -export type ConsoleLoggingResourcesStatefulSetFragmentFragment = { __typename?: 'AppsV1StatefulSet', id: string, spec: { __typename?: 'AppsV1StatefulSetSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -export type ConsoleLoggingResourcesJobsFindFragmentFragment = { __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> }, spec: { __typename?: 'BatchV1JobSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null } }; - -export type ConsoleNodesListItemFragmentFragment = { __typename?: 'CoreV1Node', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, labels?: any | null, annotations?: any | null } }; - -type SourcePickerGenericCounterFragment_AppsV1DaemonSetList_Fragment = { __typename?: 'AppsV1DaemonSetList', metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string }, items: Array<{ __typename?: 'AppsV1DaemonSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }> }; - -type SourcePickerGenericCounterFragment_AppsV1DeploymentList_Fragment = { __typename?: 'AppsV1DeploymentList', metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string }, items: Array<{ __typename?: 'AppsV1Deployment', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }> }; - -type SourcePickerGenericCounterFragment_AppsV1ReplicaSetList_Fragment = { __typename?: 'AppsV1ReplicaSetList', metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string }, items: Array<{ __typename?: 'AppsV1ReplicaSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }> }; - -type SourcePickerGenericCounterFragment_AppsV1StatefulSetList_Fragment = { __typename?: 'AppsV1StatefulSetList', metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string }, items: Array<{ __typename?: 'AppsV1StatefulSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }> }; - -type SourcePickerGenericCounterFragment_BatchV1CronJobList_Fragment = { __typename?: 'BatchV1CronJobList', metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string }, items: Array<{ __typename?: 'BatchV1CronJob', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }> }; - -type SourcePickerGenericCounterFragment_BatchV1JobList_Fragment = { __typename?: 'BatchV1JobList', metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string }, items: Array<{ __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }> }; - -type SourcePickerGenericCounterFragment_CoreV1NamespaceList_Fragment = { __typename?: 'CoreV1NamespaceList', metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string }, items: Array<{ __typename?: 'CoreV1Namespace', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }> }; - -type SourcePickerGenericCounterFragment_CoreV1NodeList_Fragment = { __typename?: 'CoreV1NodeList', metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string }, items: Array<{ __typename?: 'CoreV1Node', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }> }; - -type SourcePickerGenericCounterFragment_CoreV1PodList_Fragment = { __typename?: 'CoreV1PodList', metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string }, items: Array<{ __typename?: 'CoreV1Pod', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }> }; - -export type SourcePickerGenericCounterFragmentFragment = SourcePickerGenericCounterFragment_AppsV1DaemonSetList_Fragment | SourcePickerGenericCounterFragment_AppsV1DeploymentList_Fragment | SourcePickerGenericCounterFragment_AppsV1ReplicaSetList_Fragment | SourcePickerGenericCounterFragment_AppsV1StatefulSetList_Fragment | SourcePickerGenericCounterFragment_BatchV1CronJobList_Fragment | SourcePickerGenericCounterFragment_BatchV1JobList_Fragment | SourcePickerGenericCounterFragment_CoreV1NamespaceList_Fragment | SourcePickerGenericCounterFragment_CoreV1NodeList_Fragment | SourcePickerGenericCounterFragment_CoreV1PodList_Fragment; - -type SourcePickerGenericCounterItemFragment_AppsV1DaemonSet_Fragment = { __typename?: 'AppsV1DaemonSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }; - -type SourcePickerGenericCounterItemFragment_AppsV1Deployment_Fragment = { __typename?: 'AppsV1Deployment', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }; - -type SourcePickerGenericCounterItemFragment_AppsV1ReplicaSet_Fragment = { __typename?: 'AppsV1ReplicaSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }; - -type SourcePickerGenericCounterItemFragment_AppsV1StatefulSet_Fragment = { __typename?: 'AppsV1StatefulSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }; - -type SourcePickerGenericCounterItemFragment_BatchV1CronJob_Fragment = { __typename?: 'BatchV1CronJob', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }; - -type SourcePickerGenericCounterItemFragment_BatchV1Job_Fragment = { __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }; - -type SourcePickerGenericCounterItemFragment_CoreV1Namespace_Fragment = { __typename?: 'CoreV1Namespace', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }; - -type SourcePickerGenericCounterItemFragment_CoreV1Node_Fragment = { __typename?: 'CoreV1Node', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }; - -type SourcePickerGenericCounterItemFragment_CoreV1Pod_Fragment = { __typename?: 'CoreV1Pod', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }; - -export type SourcePickerGenericCounterItemFragmentFragment = SourcePickerGenericCounterItemFragment_AppsV1DaemonSet_Fragment | SourcePickerGenericCounterItemFragment_AppsV1Deployment_Fragment | SourcePickerGenericCounterItemFragment_AppsV1ReplicaSet_Fragment | SourcePickerGenericCounterItemFragment_AppsV1StatefulSet_Fragment | SourcePickerGenericCounterItemFragment_BatchV1CronJob_Fragment | SourcePickerGenericCounterItemFragment_BatchV1Job_Fragment | SourcePickerGenericCounterItemFragment_CoreV1Namespace_Fragment | SourcePickerGenericCounterItemFragment_CoreV1Node_Fragment | SourcePickerGenericCounterItemFragment_CoreV1Pod_Fragment; - -type SourcePickerGenericListFragment_AppsV1DaemonSetList_Fragment = { __typename?: 'AppsV1DaemonSetList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; - -type SourcePickerGenericListFragment_AppsV1DeploymentList_Fragment = { __typename?: 'AppsV1DeploymentList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; - -type SourcePickerGenericListFragment_AppsV1ReplicaSetList_Fragment = { __typename?: 'AppsV1ReplicaSetList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; - -type SourcePickerGenericListFragment_AppsV1StatefulSetList_Fragment = { __typename?: 'AppsV1StatefulSetList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; - -type SourcePickerGenericListFragment_BatchV1CronJobList_Fragment = { __typename?: 'BatchV1CronJobList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; - -type SourcePickerGenericListFragment_BatchV1JobList_Fragment = { __typename?: 'BatchV1JobList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; - -type SourcePickerGenericListFragment_CoreV1NamespaceList_Fragment = { __typename?: 'CoreV1NamespaceList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; - -type SourcePickerGenericListFragment_CoreV1NodeList_Fragment = { __typename?: 'CoreV1NodeList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; - -type SourcePickerGenericListFragment_CoreV1PodList_Fragment = { __typename?: 'CoreV1PodList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; - -export type SourcePickerGenericListFragmentFragment = SourcePickerGenericListFragment_AppsV1DaemonSetList_Fragment | SourcePickerGenericListFragment_AppsV1DeploymentList_Fragment | SourcePickerGenericListFragment_AppsV1ReplicaSetList_Fragment | SourcePickerGenericListFragment_AppsV1StatefulSetList_Fragment | SourcePickerGenericListFragment_BatchV1CronJobList_Fragment | SourcePickerGenericListFragment_BatchV1JobList_Fragment | SourcePickerGenericListFragment_CoreV1NamespaceList_Fragment | SourcePickerGenericListFragment_CoreV1NodeList_Fragment | SourcePickerGenericListFragment_CoreV1PodList_Fragment; - -type SourcePickerGenericListItemFragment_AppsV1DaemonSet_Fragment = { __typename?: 'AppsV1DaemonSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }; - -type SourcePickerGenericListItemFragment_AppsV1Deployment_Fragment = { __typename?: 'AppsV1Deployment', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }; - -type SourcePickerGenericListItemFragment_AppsV1ReplicaSet_Fragment = { __typename?: 'AppsV1ReplicaSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }; - -type SourcePickerGenericListItemFragment_AppsV1StatefulSet_Fragment = { __typename?: 'AppsV1StatefulSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }; - -type SourcePickerGenericListItemFragment_BatchV1CronJob_Fragment = { __typename?: 'BatchV1CronJob', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }; - -type SourcePickerGenericListItemFragment_BatchV1Job_Fragment = { __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }; - -type SourcePickerGenericListItemFragment_CoreV1Namespace_Fragment = { __typename?: 'CoreV1Namespace', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }; - -type SourcePickerGenericListItemFragment_CoreV1Node_Fragment = { __typename?: 'CoreV1Node', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }; - -type SourcePickerGenericListItemFragment_CoreV1Pod_Fragment = { __typename?: 'CoreV1Pod', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }; - -export type SourcePickerGenericListItemFragmentFragment = SourcePickerGenericListItemFragment_AppsV1DaemonSet_Fragment | SourcePickerGenericListItemFragment_AppsV1Deployment_Fragment | SourcePickerGenericListItemFragment_AppsV1ReplicaSet_Fragment | SourcePickerGenericListItemFragment_AppsV1StatefulSet_Fragment | SourcePickerGenericListItemFragment_BatchV1CronJob_Fragment | SourcePickerGenericListItemFragment_BatchV1Job_Fragment | SourcePickerGenericListItemFragment_CoreV1Namespace_Fragment | SourcePickerGenericListItemFragment_CoreV1Node_Fragment | SourcePickerGenericListItemFragment_CoreV1Pod_Fragment; - -type ExplorerGenericListFragment_AppsV1DaemonSetList_Fragment = { __typename?: 'AppsV1DaemonSetList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; - -type ExplorerGenericListFragment_AppsV1DeploymentList_Fragment = { __typename?: 'AppsV1DeploymentList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; - -type ExplorerGenericListFragment_AppsV1ReplicaSetList_Fragment = { __typename?: 'AppsV1ReplicaSetList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; - -type ExplorerGenericListFragment_AppsV1StatefulSetList_Fragment = { __typename?: 'AppsV1StatefulSetList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; - -type ExplorerGenericListFragment_BatchV1CronJobList_Fragment = { __typename?: 'BatchV1CronJobList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; - -type ExplorerGenericListFragment_BatchV1JobList_Fragment = { __typename?: 'BatchV1JobList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; - -type ExplorerGenericListFragment_CoreV1NamespaceList_Fragment = { __typename?: 'CoreV1NamespaceList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; - -type ExplorerGenericListFragment_CoreV1NodeList_Fragment = { __typename?: 'CoreV1NodeList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; - -type ExplorerGenericListFragment_CoreV1PodList_Fragment = { __typename?: 'CoreV1PodList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; - -export type ExplorerGenericListFragmentFragment = ExplorerGenericListFragment_AppsV1DaemonSetList_Fragment | ExplorerGenericListFragment_AppsV1DeploymentList_Fragment | ExplorerGenericListFragment_AppsV1ReplicaSetList_Fragment | ExplorerGenericListFragment_AppsV1StatefulSetList_Fragment | ExplorerGenericListFragment_BatchV1CronJobList_Fragment | ExplorerGenericListFragment_BatchV1JobList_Fragment | ExplorerGenericListFragment_CoreV1NamespaceList_Fragment | ExplorerGenericListFragment_CoreV1NodeList_Fragment | ExplorerGenericListFragment_CoreV1PodList_Fragment; - -type ExplorerGenericListItemFragment_AppsV1DaemonSet_Fragment = { __typename?: 'AppsV1DaemonSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -type ExplorerGenericListItemFragment_AppsV1Deployment_Fragment = { __typename?: 'AppsV1Deployment', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -type ExplorerGenericListItemFragment_AppsV1ReplicaSet_Fragment = { __typename?: 'AppsV1ReplicaSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -type ExplorerGenericListItemFragment_AppsV1StatefulSet_Fragment = { __typename?: 'AppsV1StatefulSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -type ExplorerGenericListItemFragment_BatchV1CronJob_Fragment = { __typename?: 'BatchV1CronJob', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -type ExplorerGenericListItemFragment_BatchV1Job_Fragment = { __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -type ExplorerGenericListItemFragment_CoreV1Namespace_Fragment = { __typename?: 'CoreV1Namespace', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -type ExplorerGenericListItemFragment_CoreV1Node_Fragment = { __typename?: 'CoreV1Node', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -type ExplorerGenericListItemFragment_CoreV1Pod_Fragment = { __typename?: 'CoreV1Pod', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -export type ExplorerGenericListItemFragmentFragment = ExplorerGenericListItemFragment_AppsV1DaemonSet_Fragment | ExplorerGenericListItemFragment_AppsV1Deployment_Fragment | ExplorerGenericListItemFragment_AppsV1ReplicaSet_Fragment | ExplorerGenericListItemFragment_AppsV1StatefulSet_Fragment | ExplorerGenericListItemFragment_BatchV1CronJob_Fragment | ExplorerGenericListItemFragment_BatchV1Job_Fragment | ExplorerGenericListItemFragment_CoreV1Namespace_Fragment | ExplorerGenericListItemFragment_CoreV1Node_Fragment | ExplorerGenericListItemFragment_CoreV1Pod_Fragment; - -export type ExplorerCronJobsListItemFragmentFragment = { __typename?: 'BatchV1CronJob', id: string, spec: { __typename?: 'BatchV1CronJobSpec', schedule: string, suspend?: boolean | null }, status: { __typename?: 'BatchV1CronJobStatus', lastScheduleTime?: any | null, lastSuccessfulTime?: any | null, active: Array<{ __typename: 'CoreV1ObjectReference' }> }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -export type ExplorerDaemonSetsListItemFragmentFragment = { __typename?: 'AppsV1DaemonSet', id: string, status: { __typename?: 'AppsV1DaemonSetStatus', currentNumberScheduled: number, desiredNumberScheduled: number }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -export type ExplorerDeploymentsListItemFragmentFragment = { __typename?: 'AppsV1Deployment', id: string, spec: { __typename?: 'AppsV1DeploymentSpec', replicas?: number | null, paused: boolean }, status: { __typename?: 'AppsV1DeploymentStatus', replicas: number }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -export type ExplorerJobsListItemFragmentFragment = { __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -export type ExplorerPodsListItemFragmentFragment = { __typename?: 'CoreV1Pod', id: string, spec: { __typename?: 'CoreV1PodSpec', nodeName: string, containers: Array<{ __typename?: 'CoreV1Container', name: string, image: string }> }, status: { __typename?: 'CoreV1PodStatus', phase: CoreV1PodPhase, containerStatuses: Array<{ __typename?: 'CoreV1ContainerStatus', name: string, ready: boolean, restartCount: number, started?: boolean | null, state: { __typename?: 'CoreV1ContainerState', running?: { __typename?: 'CoreV1ContainerStateRunning', startedAt: any } | null, terminated?: { __typename?: 'CoreV1ContainerStateTerminated', exitCode: number } | null } }> }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -export type ExplorerReplicaSetsListItemFragmentFragment = { __typename?: 'AppsV1ReplicaSet', id: string, spec: { __typename?: 'AppsV1ReplicaSetSpec', replicas?: number | null }, status: { __typename?: 'AppsV1ReplicaSetStatus', replicas: number }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -export type ExplorerStatefulSetsListItemFragmentFragment = { __typename?: 'AppsV1StatefulSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; - -type ExplorerGenericObjectFragment_AppsV1DaemonSet_Fragment = { __typename?: 'AppsV1DaemonSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', creationTimestamp: any, deletionTimestamp?: any | null, name: string, namespace: string, labels?: any | null, annotations?: any | null, resourceVersion: string, uid: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', apiVersion: string, kind: string, name: string, uid: string, controller?: boolean | null }> } }; - -type ExplorerGenericObjectFragment_AppsV1Deployment_Fragment = { __typename?: 'AppsV1Deployment', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', creationTimestamp: any, deletionTimestamp?: any | null, name: string, namespace: string, labels?: any | null, annotations?: any | null, resourceVersion: string, uid: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', apiVersion: string, kind: string, name: string, uid: string, controller?: boolean | null }> } }; - -type ExplorerGenericObjectFragment_AppsV1ReplicaSet_Fragment = { __typename?: 'AppsV1ReplicaSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', creationTimestamp: any, deletionTimestamp?: any | null, name: string, namespace: string, labels?: any | null, annotations?: any | null, resourceVersion: string, uid: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', apiVersion: string, kind: string, name: string, uid: string, controller?: boolean | null }> } }; - -type ExplorerGenericObjectFragment_AppsV1StatefulSet_Fragment = { __typename?: 'AppsV1StatefulSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', creationTimestamp: any, deletionTimestamp?: any | null, name: string, namespace: string, labels?: any | null, annotations?: any | null, resourceVersion: string, uid: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', apiVersion: string, kind: string, name: string, uid: string, controller?: boolean | null }> } }; - -type ExplorerGenericObjectFragment_BatchV1CronJob_Fragment = { __typename?: 'BatchV1CronJob', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', creationTimestamp: any, deletionTimestamp?: any | null, name: string, namespace: string, labels?: any | null, annotations?: any | null, resourceVersion: string, uid: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', apiVersion: string, kind: string, name: string, uid: string, controller?: boolean | null }> } }; - -type ExplorerGenericObjectFragment_BatchV1Job_Fragment = { __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', creationTimestamp: any, deletionTimestamp?: any | null, name: string, namespace: string, labels?: any | null, annotations?: any | null, resourceVersion: string, uid: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', apiVersion: string, kind: string, name: string, uid: string, controller?: boolean | null }> } }; - -type ExplorerGenericObjectFragment_CoreV1Namespace_Fragment = { __typename?: 'CoreV1Namespace', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', creationTimestamp: any, deletionTimestamp?: any | null, name: string, namespace: string, labels?: any | null, annotations?: any | null, resourceVersion: string, uid: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', apiVersion: string, kind: string, name: string, uid: string, controller?: boolean | null }> } }; - -type ExplorerGenericObjectFragment_CoreV1Node_Fragment = { __typename?: 'CoreV1Node', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', creationTimestamp: any, deletionTimestamp?: any | null, name: string, namespace: string, labels?: any | null, annotations?: any | null, resourceVersion: string, uid: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', apiVersion: string, kind: string, name: string, uid: string, controller?: boolean | null }> } }; - -type ExplorerGenericObjectFragment_CoreV1Pod_Fragment = { __typename?: 'CoreV1Pod', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', creationTimestamp: any, deletionTimestamp?: any | null, name: string, namespace: string, labels?: any | null, annotations?: any | null, resourceVersion: string, uid: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', apiVersion: string, kind: string, name: string, uid: string, controller?: boolean | null }> } }; - -export type ExplorerGenericObjectFragmentFragment = ExplorerGenericObjectFragment_AppsV1DaemonSet_Fragment | ExplorerGenericObjectFragment_AppsV1Deployment_Fragment | ExplorerGenericObjectFragment_AppsV1ReplicaSet_Fragment | ExplorerGenericObjectFragment_AppsV1StatefulSet_Fragment | ExplorerGenericObjectFragment_BatchV1CronJob_Fragment | ExplorerGenericObjectFragment_BatchV1Job_Fragment | ExplorerGenericObjectFragment_CoreV1Namespace_Fragment | ExplorerGenericObjectFragment_CoreV1Node_Fragment | ExplorerGenericObjectFragment_CoreV1Pod_Fragment; - -export type ExplorerCronJobsObjectFragmentFragment = { __typename?: 'BatchV1CronJob', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', creationTimestamp: any, deletionTimestamp?: any | null, name: string, namespace: string, labels?: any | null, annotations?: any | null, resourceVersion: string, uid: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', apiVersion: string, kind: string, name: string, uid: string, controller?: boolean | null }> } }; - -export type ExplorerDaemonSetsObjectFragmentFragment = { __typename?: 'AppsV1DaemonSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', creationTimestamp: any, deletionTimestamp?: any | null, name: string, namespace: string, labels?: any | null, annotations?: any | null, resourceVersion: string, uid: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', apiVersion: string, kind: string, name: string, uid: string, controller?: boolean | null }> } }; - -export type ExplorerDeploymentsObjectFragmentFragment = { __typename?: 'AppsV1Deployment', id: string, spec: { __typename?: 'AppsV1DeploymentSpec', replicas?: number | null, paused: boolean, selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null, matchExpressions: Array<{ __typename?: 'MetaV1LabelSelectorRequirement', key: string, operator: MetaV1LabelSelectorOperator, values: Array }> } | null }, status: { __typename?: 'AppsV1DeploymentStatus', replicas: number }, metadata: { __typename?: 'MetaV1ObjectMeta', creationTimestamp: any, deletionTimestamp?: any | null, name: string, namespace: string, labels?: any | null, annotations?: any | null, resourceVersion: string, uid: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', apiVersion: string, kind: string, name: string, uid: string, controller?: boolean | null }> } }; - -export type ExplorerJobsObjectFragmentFragment = { __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', creationTimestamp: any, deletionTimestamp?: any | null, name: string, namespace: string, labels?: any | null, annotations?: any | null, resourceVersion: string, uid: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', apiVersion: string, kind: string, name: string, uid: string, controller?: boolean | null }> } }; - -export type ExplorerPodsObjectFragmentFragment = { __typename?: 'CoreV1Pod', id: string, spec: { __typename?: 'CoreV1PodSpec', nodeName: string, priorityClassName: string, containers: Array<{ __typename?: 'CoreV1Container', name: string, image: string }> }, status: { __typename?: 'CoreV1PodStatus', phase: CoreV1PodPhase, message: string, reason: string, containerStatuses: Array<{ __typename?: 'CoreV1ContainerStatus', name: string, ready: boolean, restartCount: number, imageID: string, started?: boolean | null, state: { __typename?: 'CoreV1ContainerState', waiting?: { __typename?: 'CoreV1ContainerStateWaiting', reason: string, message: string } | null, running?: { __typename?: 'CoreV1ContainerStateRunning', startedAt: any } | null, terminated?: { __typename?: 'CoreV1ContainerStateTerminated', exitCode: number, signal: number, reason: string, message: string } | null }, lastTerminationState: { __typename?: 'CoreV1ContainerState', waiting?: { __typename?: 'CoreV1ContainerStateWaiting', reason: string, message: string } | null, running?: { __typename?: 'CoreV1ContainerStateRunning', startedAt: any } | null, terminated?: { __typename?: 'CoreV1ContainerStateTerminated', exitCode: number, signal: number, reason: string, message: string } | null } }> }, metadata: { __typename?: 'MetaV1ObjectMeta', creationTimestamp: any, deletionTimestamp?: any | null, name: string, namespace: string, labels?: any | null, annotations?: any | null, resourceVersion: string, uid: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', apiVersion: string, kind: string, name: string, uid: string, controller?: boolean | null }> } }; - -export type ExplorerReplicaSetsObjectFragmentFragment = { __typename?: 'AppsV1ReplicaSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', creationTimestamp: any, deletionTimestamp?: any | null, name: string, namespace: string, labels?: any | null, annotations?: any | null, resourceVersion: string, uid: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', apiVersion: string, kind: string, name: string, uid: string, controller?: boolean | null }> } }; - -export type ExplorerStatefulSetsObjectFragmentFragment = { __typename?: 'AppsV1StatefulSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', creationTimestamp: any, deletionTimestamp?: any | null, name: string, namespace: string, labels?: any | null, annotations?: any | null, resourceVersion: string, uid: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', apiVersion: string, kind: string, name: string, uid: string, controller?: boolean | null }> } }; - -export type PodLogQueryResponseFragmentFragment = { __typename?: 'PodLogQueryResponse', results: Array<{ __typename?: 'LogRecord', timestamp: any, message: string }>, pageInfo: { __typename?: 'PageInfo', hasPreviousPage: boolean, hasNextPage: boolean, startCursor?: string | null, endCursor?: string | null } }; - -export type LogMetadataListItemFragmentFragment = { __typename?: 'LogMetadata', id: string, spec: { __typename?: 'LogMetadataSpec', nodeName: string, namespace: string, podName: string, containerName: string, containerID: string }, fileInfo: { __typename?: 'LogMetadataFileInfo', size: any, lastModifiedAt?: any | null } }; - -export type HomeCronJobsListFetchQueryVariables = Exact<{ - namespace?: InputMaybe; - continue?: InputMaybe; -}>; - - -export type HomeCronJobsListFetchQuery = { __typename?: 'Query', batchV1CronJobsList?: { __typename?: 'BatchV1CronJobList', items: Array<{ __typename?: 'BatchV1CronJob', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; - -export type HomeCronJobsListWatchSubscriptionVariables = Exact<{ - namespace?: InputMaybe; - resourceVersion?: InputMaybe; -}>; - - -export type HomeCronJobsListWatchSubscription = { __typename?: 'Subscription', batchV1CronJobsWatch?: { __typename?: 'BatchV1CronJobsWatchEvent', type: WatchEventType, object?: { __typename?: 'BatchV1CronJob', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type HomeDaemonSetsListFetchQueryVariables = Exact<{ - namespace?: InputMaybe; - continue?: InputMaybe; -}>; - - -export type HomeDaemonSetsListFetchQuery = { __typename?: 'Query', appsV1DaemonSetsList?: { __typename?: 'AppsV1DaemonSetList', items: Array<{ __typename?: 'AppsV1DaemonSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; - -export type HomeDaemonSetsListWatchSubscriptionVariables = Exact<{ - namespace?: InputMaybe; - resourceVersion?: InputMaybe; -}>; - - -export type HomeDaemonSetsListWatchSubscription = { __typename?: 'Subscription', appsV1DaemonSetsWatch?: { __typename?: 'AppsV1DaemonSetsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1DaemonSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type HomeDeploymentsListFetchQueryVariables = Exact<{ - namespace?: InputMaybe; - continue?: InputMaybe; -}>; - - -export type HomeDeploymentsListFetchQuery = { __typename?: 'Query', appsV1DeploymentsList?: { __typename?: 'AppsV1DeploymentList', items: Array<{ __typename?: 'AppsV1Deployment', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; - -export type HomeDeploymentsListWatchSubscriptionVariables = Exact<{ - namespace?: InputMaybe; - resourceVersion?: InputMaybe; -}>; - - -export type HomeDeploymentsListWatchSubscription = { __typename?: 'Subscription', appsV1DeploymentsWatch?: { __typename?: 'AppsV1DeploymentsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1Deployment', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type HomeJobsListFetchQueryVariables = Exact<{ - namespace?: InputMaybe; - continue?: InputMaybe; -}>; - - -export type HomeJobsListFetchQuery = { __typename?: 'Query', batchV1JobsList?: { __typename?: 'BatchV1JobList', items: Array<{ __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; - -export type HomeJobsListWatchSubscriptionVariables = Exact<{ - namespace?: InputMaybe; - resourceVersion?: InputMaybe; -}>; - - -export type HomeJobsListWatchSubscription = { __typename?: 'Subscription', batchV1JobsWatch?: { __typename?: 'BatchV1JobsWatchEvent', type: WatchEventType, object?: { __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type HomeNamespacesListFetchQueryVariables = Exact<{ - continue?: InputMaybe; -}>; - - -export type HomeNamespacesListFetchQuery = { __typename?: 'Query', coreV1NamespacesList?: { __typename?: 'CoreV1NamespaceList', items: Array<{ __typename?: 'CoreV1Namespace', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; - -export type HomeNamespacesListWatchSubscriptionVariables = Exact<{ - resourceVersion?: InputMaybe; -}>; - - -export type HomeNamespacesListWatchSubscription = { __typename?: 'Subscription', coreV1NamespacesWatch?: { __typename?: 'CoreV1NamespacesWatchEvent', type: WatchEventType, object?: { __typename?: 'CoreV1Namespace', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type HomePodsListFetchQueryVariables = Exact<{ - namespace?: InputMaybe; - continue?: InputMaybe; -}>; - - -export type HomePodsListFetchQuery = { __typename?: 'Query', coreV1PodsList?: { __typename?: 'CoreV1PodList', items: Array<{ __typename?: 'CoreV1Pod', id: string, status: { __typename?: 'CoreV1PodStatus', containerStatuses: Array<{ __typename?: 'CoreV1ContainerStatus', containerID: string, started?: boolean | null }> }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; - -export type HomePodsListWatchSubscriptionVariables = Exact<{ - namespace?: InputMaybe; - resourceVersion?: InputMaybe; -}>; - - -export type HomePodsListWatchSubscription = { __typename?: 'Subscription', coreV1PodsWatch?: { __typename?: 'CoreV1PodsWatchEvent', type: WatchEventType, object?: { __typename?: 'CoreV1Pod', id: string, status: { __typename?: 'CoreV1PodStatus', containerStatuses: Array<{ __typename?: 'CoreV1ContainerStatus', containerID: string, started?: boolean | null }> }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type HomeReplicaSetsListFetchQueryVariables = Exact<{ - namespace?: InputMaybe; - continue?: InputMaybe; -}>; - - -export type HomeReplicaSetsListFetchQuery = { __typename?: 'Query', appsV1ReplicaSetsList?: { __typename?: 'AppsV1ReplicaSetList', items: Array<{ __typename?: 'AppsV1ReplicaSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; - -export type HomeReplicaSetsListWatchSubscriptionVariables = Exact<{ - namespace?: InputMaybe; - resourceVersion?: InputMaybe; -}>; - - -export type HomeReplicaSetsListWatchSubscription = { __typename?: 'Subscription', appsV1ReplicaSetsWatch?: { __typename?: 'AppsV1ReplicaSetsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1ReplicaSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type HomeStatefulSetsListFetchQueryVariables = Exact<{ - namespace?: InputMaybe; - continue?: InputMaybe; -}>; - - -export type HomeStatefulSetsListFetchQuery = { __typename?: 'Query', appsV1StatefulSetsList?: { __typename?: 'AppsV1StatefulSetList', items: Array<{ __typename?: 'AppsV1StatefulSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; - -export type HomeStatefulSetsListWatchSubscriptionVariables = Exact<{ - namespace?: InputMaybe; - resourceVersion?: InputMaybe; -}>; - - -export type HomeStatefulSetsListWatchSubscription = { __typename?: 'Subscription', appsV1StatefulSetsWatch?: { __typename?: 'AppsV1StatefulSetsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1StatefulSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type ConsoleLoggingResourcesCronJobGetQueryVariables = Exact<{ - namespace: Scalars['String']['input']; - name: Scalars['String']['input']; -}>; - - -export type ConsoleLoggingResourcesCronJobGetQuery = { __typename?: 'Query', batchV1CronJobsGet?: { __typename?: 'BatchV1CronJob', id: string, spec: { __typename?: 'BatchV1CronJobSpec', jobTemplate: { __typename?: 'BatchV1JobTemplateSpec', spec: { __typename?: 'BatchV1JobSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null } } }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null }; - -export type ConsoleLoggingResourcesCronJobWatchSubscriptionVariables = Exact<{ - namespace: Scalars['String']['input']; - fieldSelector: Scalars['String']['input']; -}>; - - -export type ConsoleLoggingResourcesCronJobWatchSubscription = { __typename?: 'Subscription', batchV1CronJobsWatch?: { __typename?: 'BatchV1CronJobsWatchEvent', type: WatchEventType, object?: { __typename?: 'BatchV1CronJob', id: string, spec: { __typename?: 'BatchV1CronJobSpec', jobTemplate: { __typename?: 'BatchV1JobTemplateSpec', spec: { __typename?: 'BatchV1JobSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null } } }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type ConsoleLoggingResourcesDaemonSetGetQueryVariables = Exact<{ - namespace: Scalars['String']['input']; - name: Scalars['String']['input']; -}>; - - -export type ConsoleLoggingResourcesDaemonSetGetQuery = { __typename?: 'Query', appsV1DaemonSetsGet?: { __typename?: 'AppsV1DaemonSet', id: string, spec: { __typename?: 'AppsV1DaemonSetSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null }; - -export type ConsoleLoggingResourcesDaemonSetWatchSubscriptionVariables = Exact<{ - namespace: Scalars['String']['input']; - fieldSelector: Scalars['String']['input']; -}>; - - -export type ConsoleLoggingResourcesDaemonSetWatchSubscription = { __typename?: 'Subscription', appsV1DaemonSetsWatch?: { __typename?: 'AppsV1DaemonSetsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1DaemonSet', id: string, spec: { __typename?: 'AppsV1DaemonSetSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type ConsoleLoggingResourcesDeploymentGetQueryVariables = Exact<{ - namespace: Scalars['String']['input']; - name: Scalars['String']['input']; -}>; - - -export type ConsoleLoggingResourcesDeploymentGetQuery = { __typename?: 'Query', appsV1DeploymentsGet?: { __typename?: 'AppsV1Deployment', id: string, spec: { __typename?: 'AppsV1DeploymentSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null }; - -export type ConsoleLoggingResourcesDeploymentWatchSubscriptionVariables = Exact<{ - namespace: Scalars['String']['input']; - fieldSelector: Scalars['String']['input']; -}>; - - -export type ConsoleLoggingResourcesDeploymentWatchSubscription = { __typename?: 'Subscription', appsV1DeploymentsWatch?: { __typename?: 'AppsV1DeploymentsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1Deployment', id: string, spec: { __typename?: 'AppsV1DeploymentSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type ConsoleLoggingResourcesJobGetQueryVariables = Exact<{ - namespace: Scalars['String']['input']; - name: Scalars['String']['input']; -}>; - - -export type ConsoleLoggingResourcesJobGetQuery = { __typename?: 'Query', batchV1JobsGet?: { __typename?: 'BatchV1Job', id: string, spec: { __typename?: 'BatchV1JobSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null }; - -export type ConsoleLoggingResourcesJobWatchSubscriptionVariables = Exact<{ - namespace: Scalars['String']['input']; - fieldSelector: Scalars['String']['input']; -}>; - - -export type ConsoleLoggingResourcesJobWatchSubscription = { __typename?: 'Subscription', batchV1JobsWatch?: { __typename?: 'BatchV1JobsWatchEvent', type: WatchEventType, object?: { __typename?: 'BatchV1Job', id: string, spec: { __typename?: 'BatchV1JobSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type ConsoleLoggingResourcesPodGetQueryVariables = Exact<{ - namespace: Scalars['String']['input']; - name: Scalars['String']['input']; -}>; - - -export type ConsoleLoggingResourcesPodGetQuery = { __typename?: 'Query', coreV1PodsGet?: { __typename?: 'CoreV1Pod', id: string, spec: { __typename?: 'CoreV1PodSpec', nodeName: string, containers: Array<{ __typename?: 'CoreV1Container', name: string }> }, status: { __typename?: 'CoreV1PodStatus', containerStatuses: Array<{ __typename?: 'CoreV1ContainerStatus', name: string, started?: boolean | null, state: { __typename?: 'CoreV1ContainerState', running?: { __typename?: 'CoreV1ContainerStateRunning', startedAt: any } | null, terminated?: { __typename?: 'CoreV1ContainerStateTerminated', exitCode: number } | null } }> }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null }; - -export type ConsoleLoggingResourcesPodWatchSubscriptionVariables = Exact<{ - namespace: Scalars['String']['input']; - fieldSelector: Scalars['String']['input']; -}>; - - -export type ConsoleLoggingResourcesPodWatchSubscription = { __typename?: 'Subscription', coreV1PodsWatch?: { __typename?: 'CoreV1PodsWatchEvent', type: WatchEventType, object?: { __typename?: 'CoreV1Pod', id: string, spec: { __typename?: 'CoreV1PodSpec', nodeName: string, containers: Array<{ __typename?: 'CoreV1Container', name: string }> }, status: { __typename?: 'CoreV1PodStatus', containerStatuses: Array<{ __typename?: 'CoreV1ContainerStatus', name: string, started?: boolean | null, state: { __typename?: 'CoreV1ContainerState', running?: { __typename?: 'CoreV1ContainerStateRunning', startedAt: any } | null, terminated?: { __typename?: 'CoreV1ContainerStateTerminated', exitCode: number } | null } }> }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type ConsolePodsListFetchQueryVariables = Exact<{ - namespace: Scalars['String']['input']; - continue?: InputMaybe; -}>; - - -export type ConsolePodsListFetchQuery = { __typename?: 'Query', coreV1PodsList?: { __typename?: 'CoreV1PodList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string }, items: Array<{ __typename?: 'CoreV1Pod', id: string, spec: { __typename?: 'CoreV1PodSpec', nodeName: string, containers: Array<{ __typename?: 'CoreV1Container', name: string }> }, status: { __typename?: 'CoreV1PodStatus', containerStatuses: Array<{ __typename?: 'CoreV1ContainerStatus', name: string, started?: boolean | null, state: { __typename?: 'CoreV1ContainerState', running?: { __typename?: 'CoreV1ContainerStateRunning', startedAt: any } | null, terminated?: { __typename?: 'CoreV1ContainerStateTerminated', exitCode: number } | null } }> }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }> } | null }; - -export type ConsolePodsListWatchSubscriptionVariables = Exact<{ - namespace: Scalars['String']['input']; - resourceVersion?: InputMaybe; -}>; - - -export type ConsolePodsListWatchSubscription = { __typename?: 'Subscription', coreV1PodsWatch?: { __typename?: 'CoreV1PodsWatchEvent', type: WatchEventType, object?: { __typename?: 'CoreV1Pod', id: string, spec: { __typename?: 'CoreV1PodSpec', nodeName: string, containers: Array<{ __typename?: 'CoreV1Container', name: string }> }, status: { __typename?: 'CoreV1PodStatus', containerStatuses: Array<{ __typename?: 'CoreV1ContainerStatus', name: string, started?: boolean | null, state: { __typename?: 'CoreV1ContainerState', running?: { __typename?: 'CoreV1ContainerStateRunning', startedAt: any } | null, terminated?: { __typename?: 'CoreV1ContainerStateTerminated', exitCode: number } | null } }> }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type ConsoleLoggingResourcesReplicaSetGetQueryVariables = Exact<{ - namespace: Scalars['String']['input']; - name: Scalars['String']['input']; -}>; - - -export type ConsoleLoggingResourcesReplicaSetGetQuery = { __typename?: 'Query', appsV1ReplicaSetsGet?: { __typename?: 'AppsV1ReplicaSet', id: string, spec: { __typename?: 'AppsV1ReplicaSetSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null }; - -export type ConsoleLoggingResourcesReplicaSetWatchSubscriptionVariables = Exact<{ - namespace: Scalars['String']['input']; - fieldSelector: Scalars['String']['input']; -}>; - - -export type ConsoleLoggingResourcesReplicaSetWatchSubscription = { __typename?: 'Subscription', appsV1ReplicaSetsWatch?: { __typename?: 'AppsV1ReplicaSetsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1ReplicaSet', id: string, spec: { __typename?: 'AppsV1ReplicaSetSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type ConsoleLoggingResourcesStatefulSetGetQueryVariables = Exact<{ - namespace: Scalars['String']['input']; - name: Scalars['String']['input']; -}>; - - -export type ConsoleLoggingResourcesStatefulSetGetQuery = { __typename?: 'Query', appsV1StatefulSetsGet?: { __typename?: 'AppsV1StatefulSet', id: string, spec: { __typename?: 'AppsV1StatefulSetSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null }; - -export type ConsoleLoggingResourcesStatefulSetWatchSubscriptionVariables = Exact<{ - namespace: Scalars['String']['input']; - fieldSelector: Scalars['String']['input']; -}>; - - -export type ConsoleLoggingResourcesStatefulSetWatchSubscription = { __typename?: 'Subscription', appsV1StatefulSetsWatch?: { __typename?: 'AppsV1StatefulSetsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1StatefulSet', id: string, spec: { __typename?: 'AppsV1StatefulSetSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type ConsoleLoggingResourcesJobsFindQueryVariables = Exact<{ - namespace: Scalars['String']['input']; - continue?: InputMaybe; -}>; - - -export type ConsoleLoggingResourcesJobsFindQuery = { __typename?: 'Query', batchV1JobsList?: { __typename?: 'BatchV1JobList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string }, items: Array<{ __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> }, spec: { __typename?: 'BatchV1JobSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null } }> } | null }; - -export type ConsoleStreamsJobsWatchSubscriptionVariables = Exact<{ - namespace: Scalars['String']['input']; - resourceVersion?: InputMaybe; -}>; - - -export type ConsoleStreamsJobsWatchSubscription = { __typename?: 'Subscription', batchV1JobsWatch?: { __typename?: 'BatchV1JobsWatchEvent', type: WatchEventType, object?: { __typename?: 'BatchV1Job', id: string, spec: { __typename?: 'BatchV1JobSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type ConsoleLoggingResourcesPodsFindQueryVariables = Exact<{ - namespace: Scalars['String']['input']; - labelSelector: Scalars['String']['input']; - continue?: InputMaybe; -}>; - - -export type ConsoleLoggingResourcesPodsFindQuery = { __typename?: 'Query', coreV1PodsList?: { __typename?: 'CoreV1PodList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string }, items: Array<{ __typename?: 'CoreV1Pod', id: string, spec: { __typename?: 'CoreV1PodSpec', nodeName: string, containers: Array<{ __typename?: 'CoreV1Container', name: string }> }, status: { __typename?: 'CoreV1PodStatus', containerStatuses: Array<{ __typename?: 'CoreV1ContainerStatus', name: string, started?: boolean | null, state: { __typename?: 'CoreV1ContainerState', running?: { __typename?: 'CoreV1ContainerStateRunning', startedAt: any } | null, terminated?: { __typename?: 'CoreV1ContainerStateTerminated', exitCode: number } | null } }> }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }> } | null }; - -export type ConsoleLoggingResourcesPodsWatchSubscriptionVariables = Exact<{ - namespace: Scalars['String']['input']; - labelSelector: Scalars['String']['input']; - resourceVersion?: InputMaybe; -}>; - - -export type ConsoleLoggingResourcesPodsWatchSubscription = { __typename?: 'Subscription', coreV1PodsWatch?: { __typename?: 'CoreV1PodsWatchEvent', type: WatchEventType, object?: { __typename?: 'CoreV1Pod', id: string, spec: { __typename?: 'CoreV1PodSpec', nodeName: string, containers: Array<{ __typename?: 'CoreV1Container', name: string }> }, status: { __typename?: 'CoreV1PodStatus', containerStatuses: Array<{ __typename?: 'CoreV1ContainerStatus', name: string, started?: boolean | null, state: { __typename?: 'CoreV1ContainerState', running?: { __typename?: 'CoreV1ContainerStateRunning', startedAt: any } | null, terminated?: { __typename?: 'CoreV1ContainerStateTerminated', exitCode: number } | null } }> }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type ConsoleNodesListFetchQueryVariables = Exact<{ - continue?: InputMaybe; -}>; - - -export type ConsoleNodesListFetchQuery = { __typename?: 'Query', coreV1NodesList?: { __typename?: 'CoreV1NodeList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string }, items: Array<{ __typename?: 'CoreV1Node', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, labels?: any | null, annotations?: any | null } }> } | null }; - -export type ConsoleNodesListWatchSubscriptionVariables = Exact<{ - resourceVersion?: InputMaybe; -}>; - - -export type ConsoleNodesListWatchSubscription = { __typename?: 'Subscription', coreV1NodesWatch?: { __typename?: 'CoreV1NodesWatchEvent', type: WatchEventType, object?: { __typename?: 'CoreV1Node', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, labels?: any | null, annotations?: any | null } } | null } | null }; - -export type SourcePickerCronJobsCountFetchQueryVariables = Exact<{ - namespace?: InputMaybe; -}>; - - -export type SourcePickerCronJobsCountFetchQuery = { __typename?: 'Query', batchV1CronJobsList?: { __typename?: 'BatchV1CronJobList', items: Array<{ __typename?: 'BatchV1CronJob', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }>, metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string } } | null }; - -export type SourcePickerCronJobsCountWatchSubscriptionVariables = Exact<{ - namespace?: InputMaybe; - resourceVersion?: InputMaybe; -}>; - - -export type SourcePickerCronJobsCountWatchSubscription = { __typename?: 'Subscription', batchV1CronJobsWatch?: { __typename?: 'BatchV1CronJobsWatchEvent', type: WatchEventType, object?: { __typename?: 'BatchV1CronJob', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } } | null } | null }; - -export type SourcePickerDaemonSetsCountFetchQueryVariables = Exact<{ - namespace?: InputMaybe; -}>; - - -export type SourcePickerDaemonSetsCountFetchQuery = { __typename?: 'Query', appsV1DaemonSetsList?: { __typename?: 'AppsV1DaemonSetList', items: Array<{ __typename?: 'AppsV1DaemonSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }>, metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string } } | null }; - -export type SourcePickerDaemonSetsCountWatchSubscriptionVariables = Exact<{ - namespace?: InputMaybe; - resourceVersion?: InputMaybe; -}>; - - -export type SourcePickerDaemonSetsCountWatchSubscription = { __typename?: 'Subscription', appsV1DaemonSetsWatch?: { __typename?: 'AppsV1DaemonSetsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1DaemonSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } } | null } | null }; - -export type SourcePickerDeploymentsCountFetchQueryVariables = Exact<{ - namespace?: InputMaybe; -}>; - - -export type SourcePickerDeploymentsCountFetchQuery = { __typename?: 'Query', appsV1DeploymentsList?: { __typename?: 'AppsV1DeploymentList', items: Array<{ __typename?: 'AppsV1Deployment', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }>, metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string } } | null }; - -export type SourcePickerDeploymentsCountWatchSubscriptionVariables = Exact<{ - namespace?: InputMaybe; - resourceVersion?: InputMaybe; -}>; - - -export type SourcePickerDeploymentsCountWatchSubscription = { __typename?: 'Subscription', appsV1DeploymentsWatch?: { __typename?: 'AppsV1DeploymentsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1Deployment', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } } | null } | null }; - -export type SourcePickerJobsCountFetchQueryVariables = Exact<{ - namespace?: InputMaybe; -}>; - - -export type SourcePickerJobsCountFetchQuery = { __typename?: 'Query', batchV1JobsList?: { __typename?: 'BatchV1JobList', items: Array<{ __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }>, metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string } } | null }; - -export type SourcePickerJobsCountWatchSubscriptionVariables = Exact<{ - namespace?: InputMaybe; - resourceVersion?: InputMaybe; -}>; - - -export type SourcePickerJobsCountWatchSubscription = { __typename?: 'Subscription', batchV1JobsWatch?: { __typename?: 'BatchV1JobsWatchEvent', type: WatchEventType, object?: { __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } } | null } | null }; - -export type SourcePickerPodsCountFetchQueryVariables = Exact<{ - namespace?: InputMaybe; -}>; - - -export type SourcePickerPodsCountFetchQuery = { __typename?: 'Query', coreV1PodsList?: { __typename?: 'CoreV1PodList', items: Array<{ __typename?: 'CoreV1Pod', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }>, metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string } } | null }; - -export type SourcePickerPodsCountWatchSubscriptionVariables = Exact<{ - namespace?: InputMaybe; - resourceVersion?: InputMaybe; -}>; - - -export type SourcePickerPodsCountWatchSubscription = { __typename?: 'Subscription', coreV1PodsWatch?: { __typename?: 'CoreV1PodsWatchEvent', type: WatchEventType, object?: { __typename?: 'CoreV1Pod', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } } | null } | null }; - -export type SourcePickerReplicaSetsCountFetchQueryVariables = Exact<{ - namespace?: InputMaybe; -}>; - - -export type SourcePickerReplicaSetsCountFetchQuery = { __typename?: 'Query', appsV1ReplicaSetsList?: { __typename?: 'AppsV1ReplicaSetList', items: Array<{ __typename?: 'AppsV1ReplicaSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }>, metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string } } | null }; - -export type SourcePickerReplicaSetsCountWatchSubscriptionVariables = Exact<{ - namespace?: InputMaybe; - resourceVersion?: InputMaybe; -}>; - - -export type SourcePickerReplicaSetsCountWatchSubscription = { __typename?: 'Subscription', appsV1ReplicaSetsWatch?: { __typename?: 'AppsV1ReplicaSetsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1ReplicaSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } } | null } | null }; - -export type SourcePickerStatefulSetsCountFetchQueryVariables = Exact<{ - namespace?: InputMaybe; -}>; - - -export type SourcePickerStatefulSetsCountFetchQuery = { __typename?: 'Query', appsV1StatefulSetsList?: { __typename?: 'AppsV1StatefulSetList', items: Array<{ __typename?: 'AppsV1StatefulSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }>, metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string } } | null }; - -export type SourcePickerStatefulSetsCountWatchSubscriptionVariables = Exact<{ - namespace?: InputMaybe; - resourceVersion?: InputMaybe; -}>; - - -export type SourcePickerStatefulSetsCountWatchSubscription = { __typename?: 'Subscription', appsV1StatefulSetsWatch?: { __typename?: 'AppsV1StatefulSetsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1StatefulSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } } | null } | null }; - -export type SourcePickerCronJobsListFetchQueryVariables = Exact<{ - namespace?: InputMaybe; - continue?: InputMaybe; -}>; - - -export type SourcePickerCronJobsListFetchQuery = { __typename?: 'Query', batchV1CronJobsList?: { __typename?: 'BatchV1CronJobList', items: Array<{ __typename?: 'BatchV1CronJob', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; - -export type SourcePickerCronJobsListWatchSubscriptionVariables = Exact<{ - namespace?: InputMaybe; - resourceVersion?: InputMaybe; -}>; - - -export type SourcePickerCronJobsListWatchSubscription = { __typename?: 'Subscription', batchV1CronJobsWatch?: { __typename?: 'BatchV1CronJobsWatchEvent', type: WatchEventType, object?: { __typename?: 'BatchV1CronJob', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } } | null } | null }; - -export type SourcePickerDaemonSetsListFetchQueryVariables = Exact<{ - namespace?: InputMaybe; - continue?: InputMaybe; -}>; - - -export type SourcePickerDaemonSetsListFetchQuery = { __typename?: 'Query', appsV1DaemonSetsList?: { __typename?: 'AppsV1DaemonSetList', items: Array<{ __typename?: 'AppsV1DaemonSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; - -export type SourcePickerDaemonSetsListWatchSubscriptionVariables = Exact<{ - namespace?: InputMaybe; - resourceVersion?: InputMaybe; -}>; - - -export type SourcePickerDaemonSetsListWatchSubscription = { __typename?: 'Subscription', appsV1DaemonSetsWatch?: { __typename?: 'AppsV1DaemonSetsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1DaemonSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } } | null } | null }; - -export type SourcePickerDeploymentsListFetchQueryVariables = Exact<{ - namespace?: InputMaybe; - continue?: InputMaybe; -}>; - - -export type SourcePickerDeploymentsListFetchQuery = { __typename?: 'Query', appsV1DeploymentsList?: { __typename?: 'AppsV1DeploymentList', items: Array<{ __typename?: 'AppsV1Deployment', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; - -export type SourcePickerDeploymentsListWatchSubscriptionVariables = Exact<{ - namespace?: InputMaybe; - resourceVersion?: InputMaybe; -}>; - - -export type SourcePickerDeploymentsListWatchSubscription = { __typename?: 'Subscription', appsV1DeploymentsWatch?: { __typename?: 'AppsV1DeploymentsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1Deployment', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } } | null } | null }; - -export type SourcePickerJobsListFetchQueryVariables = Exact<{ - namespace?: InputMaybe; - continue?: InputMaybe; -}>; - - -export type SourcePickerJobsListFetchQuery = { __typename?: 'Query', batchV1JobsList?: { __typename?: 'BatchV1JobList', items: Array<{ __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; - -export type SourcePickerJobsListWatchSubscriptionVariables = Exact<{ - namespace?: InputMaybe; - resourceVersion?: InputMaybe; -}>; - - -export type SourcePickerJobsListWatchSubscription = { __typename?: 'Subscription', batchV1JobsWatch?: { __typename?: 'BatchV1JobsWatchEvent', type: WatchEventType, object?: { __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } } | null } | null }; - -export type SourcePickerNamespacesListFetchQueryVariables = Exact<{ - continue?: InputMaybe; -}>; - - -export type SourcePickerNamespacesListFetchQuery = { __typename?: 'Query', coreV1NamespacesList?: { __typename?: 'CoreV1NamespaceList', items: Array<{ __typename?: 'CoreV1Namespace', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; - -export type SourcePickerNamespacesListWatchSubscriptionVariables = Exact<{ - resourceVersion?: InputMaybe; -}>; - - -export type SourcePickerNamespacesListWatchSubscription = { __typename?: 'Subscription', coreV1NamespacesWatch?: { __typename?: 'CoreV1NamespacesWatchEvent', type: WatchEventType, object?: { __typename?: 'CoreV1Namespace', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } } | null } | null }; - -export type SourcePickerPodsListFetchQueryVariables = Exact<{ - namespace?: InputMaybe; - continue?: InputMaybe; -}>; - - -export type SourcePickerPodsListFetchQuery = { __typename?: 'Query', coreV1PodsList?: { __typename?: 'CoreV1PodList', items: Array<{ __typename?: 'CoreV1Pod', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; - -export type SourcePickerPodsListWatchSubscriptionVariables = Exact<{ - namespace?: InputMaybe; - resourceVersion?: InputMaybe; -}>; - - -export type SourcePickerPodsListWatchSubscription = { __typename?: 'Subscription', coreV1PodsWatch?: { __typename?: 'CoreV1PodsWatchEvent', type: WatchEventType, object?: { __typename?: 'CoreV1Pod', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } } | null } | null }; - -export type SourcePickerReplicaSetsListFetchQueryVariables = Exact<{ - namespace?: InputMaybe; - continue?: InputMaybe; -}>; - - -export type SourcePickerReplicaSetsListFetchQuery = { __typename?: 'Query', appsV1ReplicaSetsList?: { __typename?: 'AppsV1ReplicaSetList', items: Array<{ __typename?: 'AppsV1ReplicaSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; - -export type SourcePickerReplicaSetsListWatchSubscriptionVariables = Exact<{ - namespace?: InputMaybe; - resourceVersion?: InputMaybe; -}>; - - -export type SourcePickerReplicaSetsListWatchSubscription = { __typename?: 'Subscription', appsV1ReplicaSetsWatch?: { __typename?: 'AppsV1ReplicaSetsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1ReplicaSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } } | null } | null }; - -export type SourcePickerStatefulSetsListFetchQueryVariables = Exact<{ - namespace?: InputMaybe; - continue?: InputMaybe; -}>; - - -export type SourcePickerStatefulSetsListFetchQuery = { __typename?: 'Query', appsV1StatefulSetsList?: { __typename?: 'AppsV1StatefulSetList', items: Array<{ __typename?: 'AppsV1StatefulSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; - -export type SourcePickerStatefulSetsListWatchSubscriptionVariables = Exact<{ - namespace?: InputMaybe; - resourceVersion?: InputMaybe; -}>; - - -export type SourcePickerStatefulSetsListWatchSubscription = { __typename?: 'Subscription', appsV1StatefulSetsWatch?: { __typename?: 'AppsV1StatefulSetsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1StatefulSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type ExplorerCronJobsListFetchQueryVariables = Exact<{ - namespace?: InputMaybe; - continue?: InputMaybe; -}>; - - -export type ExplorerCronJobsListFetchQuery = { __typename?: 'Query', batchV1CronJobsList?: { __typename?: 'BatchV1CronJobList', items: Array<{ __typename?: 'BatchV1CronJob', id: string, spec: { __typename?: 'BatchV1CronJobSpec', schedule: string, suspend?: boolean | null }, status: { __typename?: 'BatchV1CronJobStatus', lastScheduleTime?: any | null, lastSuccessfulTime?: any | null, active: Array<{ __typename: 'CoreV1ObjectReference' }> }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; - -export type ExplorerCronJobsListWatchSubscriptionVariables = Exact<{ - namespace?: InputMaybe; - resourceVersion?: InputMaybe; -}>; - - -export type ExplorerCronJobsListWatchSubscription = { __typename?: 'Subscription', batchV1CronJobsWatch?: { __typename?: 'BatchV1CronJobsWatchEvent', type: WatchEventType, object?: { __typename?: 'BatchV1CronJob', id: string, spec: { __typename?: 'BatchV1CronJobSpec', schedule: string, suspend?: boolean | null }, status: { __typename?: 'BatchV1CronJobStatus', lastScheduleTime?: any | null, lastSuccessfulTime?: any | null, active: Array<{ __typename: 'CoreV1ObjectReference' }> }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type ExplorerDaemonSetsListFetchQueryVariables = Exact<{ - namespace?: InputMaybe; - continue?: InputMaybe; -}>; - - -export type ExplorerDaemonSetsListFetchQuery = { __typename?: 'Query', appsV1DaemonSetsList?: { __typename?: 'AppsV1DaemonSetList', items: Array<{ __typename?: 'AppsV1DaemonSet', id: string, status: { __typename?: 'AppsV1DaemonSetStatus', currentNumberScheduled: number, desiredNumberScheduled: number }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; - -export type ExplorerDaemonSetsListWatchSubscriptionVariables = Exact<{ - namespace?: InputMaybe; - resourceVersion?: InputMaybe; -}>; - - -export type ExplorerDaemonSetsListWatchSubscription = { __typename?: 'Subscription', appsV1DaemonSetsWatch?: { __typename?: 'AppsV1DaemonSetsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1DaemonSet', id: string, status: { __typename?: 'AppsV1DaemonSetStatus', currentNumberScheduled: number, desiredNumberScheduled: number }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type ExplorerDeploymentsListFetchQueryVariables = Exact<{ - namespace?: InputMaybe; - continue?: InputMaybe; -}>; - - -export type ExplorerDeploymentsListFetchQuery = { __typename?: 'Query', appsV1DeploymentsList?: { __typename?: 'AppsV1DeploymentList', items: Array<{ __typename?: 'AppsV1Deployment', id: string, spec: { __typename?: 'AppsV1DeploymentSpec', replicas?: number | null, paused: boolean }, status: { __typename?: 'AppsV1DeploymentStatus', replicas: number }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; - -export type ExplorerDeploymentsListWatchSubscriptionVariables = Exact<{ - namespace?: InputMaybe; - resourceVersion?: InputMaybe; -}>; - - -export type ExplorerDeploymentsListWatchSubscription = { __typename?: 'Subscription', appsV1DeploymentsWatch?: { __typename?: 'AppsV1DeploymentsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1Deployment', id: string, spec: { __typename?: 'AppsV1DeploymentSpec', replicas?: number | null, paused: boolean }, status: { __typename?: 'AppsV1DeploymentStatus', replicas: number }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type ExplorerJobsListFetchQueryVariables = Exact<{ - namespace?: InputMaybe; - continue?: InputMaybe; -}>; - - -export type ExplorerJobsListFetchQuery = { __typename?: 'Query', batchV1JobsList?: { __typename?: 'BatchV1JobList', items: Array<{ __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; - -export type ExplorerJobsListWatchSubscriptionVariables = Exact<{ - namespace?: InputMaybe; - resourceVersion?: InputMaybe; -}>; - - -export type ExplorerJobsListWatchSubscription = { __typename?: 'Subscription', batchV1JobsWatch?: { __typename?: 'BatchV1JobsWatchEvent', type: WatchEventType, object?: { __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type ExplorerPodsListFetchQueryVariables = Exact<{ - namespace?: InputMaybe; - continue?: InputMaybe; -}>; - - -export type ExplorerPodsListFetchQuery = { __typename?: 'Query', coreV1PodsList?: { __typename?: 'CoreV1PodList', items: Array<{ __typename?: 'CoreV1Pod', id: string, spec: { __typename?: 'CoreV1PodSpec', nodeName: string, containers: Array<{ __typename?: 'CoreV1Container', name: string, image: string }> }, status: { __typename?: 'CoreV1PodStatus', phase: CoreV1PodPhase, containerStatuses: Array<{ __typename?: 'CoreV1ContainerStatus', name: string, ready: boolean, restartCount: number, started?: boolean | null, state: { __typename?: 'CoreV1ContainerState', running?: { __typename?: 'CoreV1ContainerStateRunning', startedAt: any } | null, terminated?: { __typename?: 'CoreV1ContainerStateTerminated', exitCode: number } | null } }> }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; - -export type ExplorerPodsListWatchSubscriptionVariables = Exact<{ - namespace?: InputMaybe; - resourceVersion?: InputMaybe; -}>; - - -export type ExplorerPodsListWatchSubscription = { __typename?: 'Subscription', coreV1PodsWatch?: { __typename?: 'CoreV1PodsWatchEvent', type: WatchEventType, object?: { __typename?: 'CoreV1Pod', id: string, spec: { __typename?: 'CoreV1PodSpec', nodeName: string, containers: Array<{ __typename?: 'CoreV1Container', name: string, image: string }> }, status: { __typename?: 'CoreV1PodStatus', phase: CoreV1PodPhase, containerStatuses: Array<{ __typename?: 'CoreV1ContainerStatus', name: string, ready: boolean, restartCount: number, started?: boolean | null, state: { __typename?: 'CoreV1ContainerState', running?: { __typename?: 'CoreV1ContainerStateRunning', startedAt: any } | null, terminated?: { __typename?: 'CoreV1ContainerStateTerminated', exitCode: number } | null } }> }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type ExplorerReplicaSetsListFetchQueryVariables = Exact<{ - namespace?: InputMaybe; - continue?: InputMaybe; -}>; - - -export type ExplorerReplicaSetsListFetchQuery = { __typename?: 'Query', appsV1ReplicaSetsList?: { __typename?: 'AppsV1ReplicaSetList', items: Array<{ __typename?: 'AppsV1ReplicaSet', id: string, spec: { __typename?: 'AppsV1ReplicaSetSpec', replicas?: number | null }, status: { __typename?: 'AppsV1ReplicaSetStatus', replicas: number }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; - -export type ExplorerReplicaSetsListWatchSubscriptionVariables = Exact<{ - namespace?: InputMaybe; - resourceVersion?: InputMaybe; -}>; - - -export type ExplorerReplicaSetsListWatchSubscription = { __typename?: 'Subscription', appsV1ReplicaSetsWatch?: { __typename?: 'AppsV1ReplicaSetsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1ReplicaSet', id: string, spec: { __typename?: 'AppsV1ReplicaSetSpec', replicas?: number | null }, status: { __typename?: 'AppsV1ReplicaSetStatus', replicas: number }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type ExplorerStatefulSetsListFetchQueryVariables = Exact<{ - namespace?: InputMaybe; - continue?: InputMaybe; -}>; - - -export type ExplorerStatefulSetsListFetchQuery = { __typename?: 'Query', appsV1StatefulSetsList?: { __typename?: 'AppsV1StatefulSetList', items: Array<{ __typename?: 'AppsV1StatefulSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; - -export type ExplorerStatefulSetsListWatchSubscriptionVariables = Exact<{ - namespace?: InputMaybe; - resourceVersion?: InputMaybe; -}>; - - -export type ExplorerStatefulSetsListWatchSubscription = { __typename?: 'Subscription', appsV1StatefulSetsWatch?: { __typename?: 'AppsV1StatefulSetsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1StatefulSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type ExplorerCronJobsObjectFetchQueryVariables = Exact<{ - namespace: Scalars['String']['input']; - name: Scalars['String']['input']; -}>; - - -export type ExplorerCronJobsObjectFetchQuery = { __typename?: 'Query', batchV1CronJobsGet?: { __typename?: 'BatchV1CronJob', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', creationTimestamp: any, deletionTimestamp?: any | null, name: string, namespace: string, labels?: any | null, annotations?: any | null, resourceVersion: string, uid: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', apiVersion: string, kind: string, name: string, uid: string, controller?: boolean | null }> } } | null }; - -export type ExplorerCronJobsObjectWatchSubscriptionVariables = Exact<{ - namespace: Scalars['String']['input']; - fieldSelector: Scalars['String']['input']; -}>; - - -export type ExplorerCronJobsObjectWatchSubscription = { __typename?: 'Subscription', batchV1CronJobsWatch?: { __typename?: 'BatchV1CronJobsWatchEvent', type: WatchEventType, object?: { __typename?: 'BatchV1CronJob', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', creationTimestamp: any, deletionTimestamp?: any | null, name: string, namespace: string, labels?: any | null, annotations?: any | null, resourceVersion: string, uid: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', apiVersion: string, kind: string, name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type ExplorerDaemonSetsObjectFetchQueryVariables = Exact<{ - namespace: Scalars['String']['input']; - name: Scalars['String']['input']; -}>; - - -export type ExplorerDaemonSetsObjectFetchQuery = { __typename?: 'Query', appsV1DaemonSetsGet?: { __typename?: 'AppsV1DaemonSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', creationTimestamp: any, deletionTimestamp?: any | null, name: string, namespace: string, labels?: any | null, annotations?: any | null, resourceVersion: string, uid: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', apiVersion: string, kind: string, name: string, uid: string, controller?: boolean | null }> } } | null }; - -export type ExplorerDaemonSetsObjectWatchSubscriptionVariables = Exact<{ - namespace: Scalars['String']['input']; - fieldSelector: Scalars['String']['input']; -}>; - - -export type ExplorerDaemonSetsObjectWatchSubscription = { __typename?: 'Subscription', appsV1DaemonSetsWatch?: { __typename?: 'AppsV1DaemonSetsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1DaemonSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', creationTimestamp: any, deletionTimestamp?: any | null, name: string, namespace: string, labels?: any | null, annotations?: any | null, resourceVersion: string, uid: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', apiVersion: string, kind: string, name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type ExplorerDeploymentsObjectFetchQueryVariables = Exact<{ - namespace: Scalars['String']['input']; - name: Scalars['String']['input']; -}>; - - -export type ExplorerDeploymentsObjectFetchQuery = { __typename?: 'Query', appsV1DeploymentsGet?: { __typename?: 'AppsV1Deployment', id: string, spec: { __typename?: 'AppsV1DeploymentSpec', replicas?: number | null, paused: boolean, selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null, matchExpressions: Array<{ __typename?: 'MetaV1LabelSelectorRequirement', key: string, operator: MetaV1LabelSelectorOperator, values: Array }> } | null }, status: { __typename?: 'AppsV1DeploymentStatus', replicas: number }, metadata: { __typename?: 'MetaV1ObjectMeta', creationTimestamp: any, deletionTimestamp?: any | null, name: string, namespace: string, labels?: any | null, annotations?: any | null, resourceVersion: string, uid: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', apiVersion: string, kind: string, name: string, uid: string, controller?: boolean | null }> } } | null }; - -export type ExplorerDeploymentsObjectWatchSubscriptionVariables = Exact<{ - namespace: Scalars['String']['input']; - fieldSelector: Scalars['String']['input']; -}>; - - -export type ExplorerDeploymentsObjectWatchSubscription = { __typename?: 'Subscription', appsV1DeploymentsWatch?: { __typename?: 'AppsV1DeploymentsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1Deployment', id: string, spec: { __typename?: 'AppsV1DeploymentSpec', replicas?: number | null, paused: boolean, selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null, matchExpressions: Array<{ __typename?: 'MetaV1LabelSelectorRequirement', key: string, operator: MetaV1LabelSelectorOperator, values: Array }> } | null }, status: { __typename?: 'AppsV1DeploymentStatus', replicas: number }, metadata: { __typename?: 'MetaV1ObjectMeta', creationTimestamp: any, deletionTimestamp?: any | null, name: string, namespace: string, labels?: any | null, annotations?: any | null, resourceVersion: string, uid: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', apiVersion: string, kind: string, name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type ExplorerJobsObjectFetchQueryVariables = Exact<{ - namespace: Scalars['String']['input']; - name: Scalars['String']['input']; -}>; - - -export type ExplorerJobsObjectFetchQuery = { __typename?: 'Query', batchV1JobsGet?: { __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', creationTimestamp: any, deletionTimestamp?: any | null, name: string, namespace: string, labels?: any | null, annotations?: any | null, resourceVersion: string, uid: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', apiVersion: string, kind: string, name: string, uid: string, controller?: boolean | null }> } } | null }; - -export type ExplorerJobsObjectWatchSubscriptionVariables = Exact<{ - namespace: Scalars['String']['input']; - fieldSelector: Scalars['String']['input']; -}>; - - -export type ExplorerJobsObjectWatchSubscription = { __typename?: 'Subscription', batchV1JobsWatch?: { __typename?: 'BatchV1JobsWatchEvent', type: WatchEventType, object?: { __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', creationTimestamp: any, deletionTimestamp?: any | null, name: string, namespace: string, labels?: any | null, annotations?: any | null, resourceVersion: string, uid: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', apiVersion: string, kind: string, name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type ExplorerPodsObjectFetchQueryVariables = Exact<{ - namespace: Scalars['String']['input']; - name: Scalars['String']['input']; -}>; - - -export type ExplorerPodsObjectFetchQuery = { __typename?: 'Query', coreV1PodsGet?: { __typename?: 'CoreV1Pod', id: string, spec: { __typename?: 'CoreV1PodSpec', nodeName: string, priorityClassName: string, containers: Array<{ __typename?: 'CoreV1Container', name: string, image: string }> }, status: { __typename?: 'CoreV1PodStatus', phase: CoreV1PodPhase, message: string, reason: string, containerStatuses: Array<{ __typename?: 'CoreV1ContainerStatus', name: string, ready: boolean, restartCount: number, imageID: string, started?: boolean | null, state: { __typename?: 'CoreV1ContainerState', waiting?: { __typename?: 'CoreV1ContainerStateWaiting', reason: string, message: string } | null, running?: { __typename?: 'CoreV1ContainerStateRunning', startedAt: any } | null, terminated?: { __typename?: 'CoreV1ContainerStateTerminated', exitCode: number, signal: number, reason: string, message: string } | null }, lastTerminationState: { __typename?: 'CoreV1ContainerState', waiting?: { __typename?: 'CoreV1ContainerStateWaiting', reason: string, message: string } | null, running?: { __typename?: 'CoreV1ContainerStateRunning', startedAt: any } | null, terminated?: { __typename?: 'CoreV1ContainerStateTerminated', exitCode: number, signal: number, reason: string, message: string } | null } }> }, metadata: { __typename?: 'MetaV1ObjectMeta', creationTimestamp: any, deletionTimestamp?: any | null, name: string, namespace: string, labels?: any | null, annotations?: any | null, resourceVersion: string, uid: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', apiVersion: string, kind: string, name: string, uid: string, controller?: boolean | null }> } } | null }; - -export type ExplorerPodsObjectWatchSubscriptionVariables = Exact<{ - namespace: Scalars['String']['input']; - fieldSelector: Scalars['String']['input']; -}>; - - -export type ExplorerPodsObjectWatchSubscription = { __typename?: 'Subscription', coreV1PodsWatch?: { __typename?: 'CoreV1PodsWatchEvent', type: WatchEventType, object?: { __typename?: 'CoreV1Pod', id: string, spec: { __typename?: 'CoreV1PodSpec', nodeName: string, priorityClassName: string, containers: Array<{ __typename?: 'CoreV1Container', name: string, image: string }> }, status: { __typename?: 'CoreV1PodStatus', phase: CoreV1PodPhase, message: string, reason: string, containerStatuses: Array<{ __typename?: 'CoreV1ContainerStatus', name: string, ready: boolean, restartCount: number, imageID: string, started?: boolean | null, state: { __typename?: 'CoreV1ContainerState', waiting?: { __typename?: 'CoreV1ContainerStateWaiting', reason: string, message: string } | null, running?: { __typename?: 'CoreV1ContainerStateRunning', startedAt: any } | null, terminated?: { __typename?: 'CoreV1ContainerStateTerminated', exitCode: number, signal: number, reason: string, message: string } | null }, lastTerminationState: { __typename?: 'CoreV1ContainerState', waiting?: { __typename?: 'CoreV1ContainerStateWaiting', reason: string, message: string } | null, running?: { __typename?: 'CoreV1ContainerStateRunning', startedAt: any } | null, terminated?: { __typename?: 'CoreV1ContainerStateTerminated', exitCode: number, signal: number, reason: string, message: string } | null } }> }, metadata: { __typename?: 'MetaV1ObjectMeta', creationTimestamp: any, deletionTimestamp?: any | null, name: string, namespace: string, labels?: any | null, annotations?: any | null, resourceVersion: string, uid: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', apiVersion: string, kind: string, name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type ExplorerReplicaSetsObjectFetchQueryVariables = Exact<{ - namespace: Scalars['String']['input']; - name: Scalars['String']['input']; -}>; - - -export type ExplorerReplicaSetsObjectFetchQuery = { __typename?: 'Query', appsV1ReplicaSetsGet?: { __typename?: 'AppsV1ReplicaSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', creationTimestamp: any, deletionTimestamp?: any | null, name: string, namespace: string, labels?: any | null, annotations?: any | null, resourceVersion: string, uid: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', apiVersion: string, kind: string, name: string, uid: string, controller?: boolean | null }> } } | null }; - -export type ExplorerReplicaSetsObjectWatchSubscriptionVariables = Exact<{ - namespace: Scalars['String']['input']; - fieldSelector: Scalars['String']['input']; -}>; - - -export type ExplorerReplicaSetsObjectWatchSubscription = { __typename?: 'Subscription', appsV1ReplicaSetsWatch?: { __typename?: 'AppsV1ReplicaSetsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1ReplicaSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', creationTimestamp: any, deletionTimestamp?: any | null, name: string, namespace: string, labels?: any | null, annotations?: any | null, resourceVersion: string, uid: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', apiVersion: string, kind: string, name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type ExplorerStatefulSetsObjectFetchQueryVariables = Exact<{ - namespace: Scalars['String']['input']; - name: Scalars['String']['input']; -}>; - - -export type ExplorerStatefulSetsObjectFetchQuery = { __typename?: 'Query', appsV1StatefulSetsGet?: { __typename?: 'AppsV1StatefulSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', creationTimestamp: any, deletionTimestamp?: any | null, name: string, namespace: string, labels?: any | null, annotations?: any | null, resourceVersion: string, uid: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', apiVersion: string, kind: string, name: string, uid: string, controller?: boolean | null }> } } | null }; - -export type ExplorerStatefulSetsObjectWatchSubscriptionVariables = Exact<{ - namespace: Scalars['String']['input']; - fieldSelector: Scalars['String']['input']; -}>; - - -export type ExplorerStatefulSetsObjectWatchSubscription = { __typename?: 'Subscription', appsV1StatefulSetsWatch?: { __typename?: 'AppsV1StatefulSetsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1StatefulSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', creationTimestamp: any, deletionTimestamp?: any | null, name: string, namespace: string, labels?: any | null, annotations?: any | null, resourceVersion: string, uid: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', apiVersion: string, kind: string, name: string, uid: string, controller?: boolean | null }> } } | null } | null }; - -export type HeadContainerLogQueryVariables = Exact<{ - namespace: Scalars['String']['input']; - name: Scalars['String']['input']; - container?: InputMaybe; - after?: InputMaybe; - since?: InputMaybe; - first?: InputMaybe; -}>; - - -export type HeadContainerLogQuery = { __typename?: 'Query', podLogHead?: { __typename?: 'PodLogQueryResponse', results: Array<{ __typename?: 'LogRecord', timestamp: any, message: string }>, pageInfo: { __typename?: 'PageInfo', hasPreviousPage: boolean, hasNextPage: boolean, startCursor?: string | null, endCursor?: string | null } } | null }; - -export type TailContainerLogQueryVariables = Exact<{ - namespace: Scalars['String']['input']; - name: Scalars['String']['input']; - container?: InputMaybe; - before?: InputMaybe; - last?: InputMaybe; -}>; - - -export type TailContainerLogQuery = { __typename?: 'Query', podLogTail?: { __typename?: 'PodLogQueryResponse', results: Array<{ __typename?: 'LogRecord', timestamp: any, message: string }>, pageInfo: { __typename?: 'PageInfo', hasPreviousPage: boolean, hasNextPage: boolean, startCursor?: string | null, endCursor?: string | null } } | null }; - -export type FollowContainerLogSubscriptionVariables = Exact<{ - namespace: Scalars['String']['input']; - name: Scalars['String']['input']; - container?: InputMaybe; - after?: InputMaybe; - since?: InputMaybe; -}>; - - -export type FollowContainerLogSubscription = { __typename?: 'Subscription', podLogFollow?: { __typename?: 'LogRecord', timestamp: any, message: string } | null }; - -export type LogMetadataListFetchQueryVariables = Exact<{ - namespace?: InputMaybe; -}>; - - -export type LogMetadataListFetchQuery = { __typename?: 'Query', logMetadataList?: { __typename?: 'LogMetadataList', items: Array<{ __typename?: 'LogMetadata', id: string, spec: { __typename?: 'LogMetadataSpec', nodeName: string, namespace: string, podName: string, containerName: string, containerID: string }, fileInfo: { __typename?: 'LogMetadataFileInfo', size: any, lastModifiedAt?: any | null } }> } | null }; - -export type LogMetadataListWatchSubscriptionVariables = Exact<{ - namespace?: InputMaybe; -}>; - - -export type LogMetadataListWatchSubscription = { __typename?: 'Subscription', logMetadataWatch?: { __typename?: 'LogMetadataWatchEvent', type: string, object?: { __typename?: 'LogMetadata', id: string, spec: { __typename?: 'LogMetadataSpec', nodeName: string, namespace: string, podName: string, containerName: string, containerID: string }, fileInfo: { __typename?: 'LogMetadataFileInfo', size: any, lastModifiedAt?: any | null } } | null } | null }; - -export type LivezWatchSubscriptionVariables = Exact<{ [key: string]: never; }>; - - -export type LivezWatchSubscription = { __typename?: 'Subscription', livezWatch: { __typename?: 'HealthCheckResponse', status: HealthCheckStatus, message?: string | null, timestamp: any } }; - -export type ReadyzWatchSubscriptionVariables = Exact<{ [key: string]: never; }>; - - -export type ReadyzWatchSubscription = { __typename?: 'Subscription', readyzWatch: { __typename?: 'HealthCheckResponse', status: HealthCheckStatus, message?: string | null, timestamp: any } }; - -export type ReadyWaitQueryVariables = Exact<{ [key: string]: never; }>; - - -export type ReadyWaitQuery = { __typename?: 'Query', readyWait: boolean }; - -export const HomeGenericListFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; -export const HomeGenericListItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; -export const HomeCronJobsListItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeCronJobsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1CronJob"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; -export const HomeDaemonSetsListItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeDaemonSetsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1DaemonSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; -export const HomeDeploymentsListItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeDeploymentsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1Deployment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; -export const HomeJobsListItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeJobsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1Job"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; -export const HomeNamespacesListItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeNamespacesListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Namespace"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; -export const HomePodsListItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomePodsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Pod"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containerStatuses"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containerID"}},{"kind":"Field","name":{"kind":"Name","value":"started"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; -export const HomeReplicaSetsListItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeReplicaSetsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1ReplicaSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; -export const HomeStatefulSetsListItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeStatefulSetsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1StatefulSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ConsoleLoggingResourcesGenericObjectFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ConsoleLoggingResourcesCronJobFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesCronJobFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1CronJob"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"jobTemplate"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ConsoleLoggingResourcesDaemonSetFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesDaemonSetFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1DaemonSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ConsoleLoggingResourcesDeploymentFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesDeploymentFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1Deployment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ConsoleLoggingResourcesJobFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesJobFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1Job"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ConsoleLoggingResourcesPodFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Pod"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containers"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"nodeName"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containerStatuses"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"started"}},{"kind":"Field","name":{"kind":"Name","value":"state"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"running"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"terminated"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"exitCode"}}]}}]}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ConsoleLoggingResourcesReplicaSetFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesReplicaSetFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1ReplicaSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ConsoleLoggingResourcesStatefulSetFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesStatefulSetFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1StatefulSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ConsoleLoggingResourcesJobsFindFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesJobsFindFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1Job"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ConsoleNodesListItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleNodesListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Node"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"labels"}},{"kind":"Field","name":{"kind":"Name","value":"annotations"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerGenericCounterItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerGenericCounterFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"remainingItemCount"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerGenericListFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerGenericListItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; -export const ExplorerGenericListFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; -export const ExplorerGenericListItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ExplorerCronJobsListItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerCronJobsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1CronJob"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"schedule"}},{"kind":"Field","name":{"kind":"Name","value":"suspend"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"active"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"__typename"}}]}},{"kind":"Field","name":{"kind":"Name","value":"lastScheduleTime"}},{"kind":"Field","name":{"kind":"Name","value":"lastSuccessfulTime"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ExplorerDaemonSetsListItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerDaemonSetsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1DaemonSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"currentNumberScheduled"}},{"kind":"Field","name":{"kind":"Name","value":"desiredNumberScheduled"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ExplorerDeploymentsListItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerDeploymentsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1Deployment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"replicas"}},{"kind":"Field","name":{"kind":"Name","value":"paused"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"replicas"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ExplorerJobsListItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerJobsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1Job"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ExplorerPodsListItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerPodsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Pod"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containers"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"image"}}]}},{"kind":"Field","name":{"kind":"Name","value":"nodeName"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"phase"}},{"kind":"Field","name":{"kind":"Name","value":"containerStatuses"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"state"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"running"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"terminated"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"exitCode"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"ready"}},{"kind":"Field","name":{"kind":"Name","value":"restartCount"}},{"kind":"Field","name":{"kind":"Name","value":"started"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ExplorerReplicaSetsListItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerReplicaSetsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1ReplicaSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"replicas"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"replicas"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ExplorerStatefulSetsListItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerStatefulSetsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1StatefulSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ExplorerGenericObjectFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"labels"}},{"kind":"Field","name":{"kind":"Name","value":"annotations"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"apiVersion"}},{"kind":"Field","name":{"kind":"Name","value":"kind"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}}]}}]}}]} as unknown as DocumentNode; -export const ExplorerCronJobsObjectFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerCronJobsObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1CronJob"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"labels"}},{"kind":"Field","name":{"kind":"Name","value":"annotations"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"apiVersion"}},{"kind":"Field","name":{"kind":"Name","value":"kind"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}}]}}]}}]} as unknown as DocumentNode; -export const ExplorerDaemonSetsObjectFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerDaemonSetsObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1DaemonSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"labels"}},{"kind":"Field","name":{"kind":"Name","value":"annotations"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"apiVersion"}},{"kind":"Field","name":{"kind":"Name","value":"kind"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}}]}}]}}]} as unknown as DocumentNode; -export const ExplorerDeploymentsObjectFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerDeploymentsObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1Deployment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"replicas"}},{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}},{"kind":"Field","name":{"kind":"Name","value":"matchExpressions"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"key"}},{"kind":"Field","name":{"kind":"Name","value":"operator"}},{"kind":"Field","name":{"kind":"Name","value":"values"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"paused"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"replicas"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"labels"}},{"kind":"Field","name":{"kind":"Name","value":"annotations"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"apiVersion"}},{"kind":"Field","name":{"kind":"Name","value":"kind"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}}]}}]}}]} as unknown as DocumentNode; -export const ExplorerJobsObjectFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerJobsObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1Job"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"labels"}},{"kind":"Field","name":{"kind":"Name","value":"annotations"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"apiVersion"}},{"kind":"Field","name":{"kind":"Name","value":"kind"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}}]}}]}}]} as unknown as DocumentNode; -export const ExplorerPodsObjectFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerPodsObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Pod"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containers"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"image"}}]}},{"kind":"Field","name":{"kind":"Name","value":"nodeName"}},{"kind":"Field","name":{"kind":"Name","value":"priorityClassName"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"phase"}},{"kind":"Field","name":{"kind":"Name","value":"message"}},{"kind":"Field","name":{"kind":"Name","value":"reason"}},{"kind":"Field","name":{"kind":"Name","value":"containerStatuses"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"state"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"waiting"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"reason"}},{"kind":"Field","name":{"kind":"Name","value":"message"}}]}},{"kind":"Field","name":{"kind":"Name","value":"running"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"terminated"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"exitCode"}},{"kind":"Field","name":{"kind":"Name","value":"signal"}},{"kind":"Field","name":{"kind":"Name","value":"reason"}},{"kind":"Field","name":{"kind":"Name","value":"message"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"lastTerminationState"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"waiting"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"reason"}},{"kind":"Field","name":{"kind":"Name","value":"message"}}]}},{"kind":"Field","name":{"kind":"Name","value":"running"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"terminated"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"exitCode"}},{"kind":"Field","name":{"kind":"Name","value":"signal"}},{"kind":"Field","name":{"kind":"Name","value":"reason"}},{"kind":"Field","name":{"kind":"Name","value":"message"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"ready"}},{"kind":"Field","name":{"kind":"Name","value":"restartCount"}},{"kind":"Field","name":{"kind":"Name","value":"imageID"}},{"kind":"Field","name":{"kind":"Name","value":"started"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"labels"}},{"kind":"Field","name":{"kind":"Name","value":"annotations"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"apiVersion"}},{"kind":"Field","name":{"kind":"Name","value":"kind"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}}]}}]}}]} as unknown as DocumentNode; -export const ExplorerReplicaSetsObjectFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerReplicaSetsObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1ReplicaSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"labels"}},{"kind":"Field","name":{"kind":"Name","value":"annotations"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"apiVersion"}},{"kind":"Field","name":{"kind":"Name","value":"kind"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}}]}}]}}]} as unknown as DocumentNode; -export const ExplorerStatefulSetsObjectFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerStatefulSetsObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1StatefulSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"labels"}},{"kind":"Field","name":{"kind":"Name","value":"annotations"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"apiVersion"}},{"kind":"Field","name":{"kind":"Name","value":"kind"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}}]}}]}}]} as unknown as DocumentNode; -export const PodLogQueryResponseFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"PodLogQueryResponseFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"PodLogQueryResponse"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"results"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"timestamp"}},{"kind":"Field","name":{"kind":"Name","value":"message"}}]}},{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}}]}}]}}]} as unknown as DocumentNode; -export const LogMetadataListItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"LogMetadataListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"LogMetadata"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"nodeName"}},{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"podName"}},{"kind":"Field","name":{"kind":"Name","value":"containerName"}},{"kind":"Field","name":{"kind":"Name","value":"containerID"}}]}},{"kind":"Field","name":{"kind":"Name","value":"fileInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"size"}},{"kind":"Field","name":{"kind":"Name","value":"lastModifiedAt"}}]}}]}}]} as unknown as DocumentNode; -export const HomeCronJobsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"HomeCronJobsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1CronJobsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeCronJobsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeCronJobsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1CronJob"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}}]} as unknown as DocumentNode; -export const HomeCronJobsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"HomeCronJobsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1CronJobsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeCronJobsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeCronJobsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1CronJob"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}}]} as unknown as DocumentNode; -export const HomeDaemonSetsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"HomeDaemonSetsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DaemonSetsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeDaemonSetsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeDaemonSetsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1DaemonSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}}]} as unknown as DocumentNode; -export const HomeDaemonSetsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"HomeDaemonSetsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DaemonSetsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeDaemonSetsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeDaemonSetsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1DaemonSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}}]} as unknown as DocumentNode; -export const HomeDeploymentsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"HomeDeploymentsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DeploymentsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeDeploymentsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeDeploymentsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1Deployment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}}]} as unknown as DocumentNode; -export const HomeDeploymentsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"HomeDeploymentsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DeploymentsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeDeploymentsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeDeploymentsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1Deployment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}}]} as unknown as DocumentNode; -export const HomeJobsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"HomeJobsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1JobsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeJobsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeJobsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1Job"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}}]} as unknown as DocumentNode; -export const HomeJobsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"HomeJobsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1JobsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeJobsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeJobsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1Job"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}}]} as unknown as DocumentNode; -export const HomeNamespacesListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"HomeNamespacesListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1NamespacesList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeNamespacesListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeNamespacesListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Namespace"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}}]} as unknown as DocumentNode; -export const HomeNamespacesListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"HomeNamespacesListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1NamespacesWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeNamespacesListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeNamespacesListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Namespace"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}}]} as unknown as DocumentNode; -export const HomePodsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"HomePodsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1PodsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomePodsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomePodsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Pod"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containerStatuses"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containerID"}},{"kind":"Field","name":{"kind":"Name","value":"started"}}]}}]}}]}}]} as unknown as DocumentNode; -export const HomePodsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"HomePodsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1PodsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomePodsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomePodsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Pod"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containerStatuses"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containerID"}},{"kind":"Field","name":{"kind":"Name","value":"started"}}]}}]}}]}}]} as unknown as DocumentNode; -export const HomeReplicaSetsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"HomeReplicaSetsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1ReplicaSetsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeReplicaSetsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeReplicaSetsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1ReplicaSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}}]} as unknown as DocumentNode; -export const HomeReplicaSetsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"HomeReplicaSetsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1ReplicaSetsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeReplicaSetsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeReplicaSetsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1ReplicaSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}}]} as unknown as DocumentNode; -export const HomeStatefulSetsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"HomeStatefulSetsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1StatefulSetsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeStatefulSetsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeStatefulSetsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1StatefulSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}}]} as unknown as DocumentNode; -export const HomeStatefulSetsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"HomeStatefulSetsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1StatefulSetsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeStatefulSetsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeStatefulSetsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1StatefulSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}}]} as unknown as DocumentNode; -export const ConsoleLoggingResourcesCronJobGetDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ConsoleLoggingResourcesCronJobGet"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"name"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1CronJobsGet"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"name"},"value":{"kind":"Variable","name":{"kind":"Name","value":"name"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesCronJobFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesCronJobFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1CronJob"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"jobTemplate"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode; -export const ConsoleLoggingResourcesCronJobWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ConsoleLoggingResourcesCronJobWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1CronJobsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"fieldSelector"},"value":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesCronJobFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesCronJobFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1CronJob"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"jobTemplate"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode; -export const ConsoleLoggingResourcesDaemonSetGetDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ConsoleLoggingResourcesDaemonSetGet"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"name"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DaemonSetsGet"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"name"},"value":{"kind":"Variable","name":{"kind":"Name","value":"name"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesDaemonSetFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesDaemonSetFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1DaemonSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ConsoleLoggingResourcesDaemonSetWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ConsoleLoggingResourcesDaemonSetWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DaemonSetsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"fieldSelector"},"value":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesDaemonSetFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesDaemonSetFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1DaemonSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ConsoleLoggingResourcesDeploymentGetDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ConsoleLoggingResourcesDeploymentGet"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"name"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DeploymentsGet"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"name"},"value":{"kind":"Variable","name":{"kind":"Name","value":"name"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesDeploymentFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesDeploymentFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1Deployment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ConsoleLoggingResourcesDeploymentWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ConsoleLoggingResourcesDeploymentWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DeploymentsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"fieldSelector"},"value":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesDeploymentFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesDeploymentFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1Deployment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ConsoleLoggingResourcesJobGetDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ConsoleLoggingResourcesJobGet"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"name"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1JobsGet"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"name"},"value":{"kind":"Variable","name":{"kind":"Name","value":"name"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesJobFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesJobFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1Job"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ConsoleLoggingResourcesJobWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ConsoleLoggingResourcesJobWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1JobsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"fieldSelector"},"value":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesJobFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesJobFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1Job"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ConsoleLoggingResourcesPodGetDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodGet"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"name"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1PodsGet"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"name"},"value":{"kind":"Variable","name":{"kind":"Name","value":"name"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Pod"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containers"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"nodeName"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containerStatuses"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"started"}},{"kind":"Field","name":{"kind":"Name","value":"state"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"running"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"terminated"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"exitCode"}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode; -export const ConsoleLoggingResourcesPodWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1PodsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"fieldSelector"},"value":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Pod"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containers"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"nodeName"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containerStatuses"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"started"}},{"kind":"Field","name":{"kind":"Name","value":"state"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"running"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"terminated"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"exitCode"}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode; -export const ConsolePodsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ConsolePodsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1PodsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Pod"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containers"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"nodeName"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containerStatuses"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"started"}},{"kind":"Field","name":{"kind":"Name","value":"state"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"running"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"terminated"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"exitCode"}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode; -export const ConsolePodsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ConsolePodsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1PodsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Pod"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containers"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"nodeName"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containerStatuses"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"started"}},{"kind":"Field","name":{"kind":"Name","value":"state"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"running"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"terminated"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"exitCode"}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode; -export const ConsoleLoggingResourcesReplicaSetGetDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ConsoleLoggingResourcesReplicaSetGet"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"name"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1ReplicaSetsGet"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"name"},"value":{"kind":"Variable","name":{"kind":"Name","value":"name"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesReplicaSetFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesReplicaSetFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1ReplicaSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ConsoleLoggingResourcesReplicaSetWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ConsoleLoggingResourcesReplicaSetWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1ReplicaSetsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"fieldSelector"},"value":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesReplicaSetFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesReplicaSetFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1ReplicaSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ConsoleLoggingResourcesStatefulSetGetDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ConsoleLoggingResourcesStatefulSetGet"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"name"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1StatefulSetsGet"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"name"},"value":{"kind":"Variable","name":{"kind":"Name","value":"name"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesStatefulSetFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesStatefulSetFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1StatefulSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ConsoleLoggingResourcesStatefulSetWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ConsoleLoggingResourcesStatefulSetWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1StatefulSetsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"fieldSelector"},"value":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesStatefulSetFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesStatefulSetFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1StatefulSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ConsoleLoggingResourcesJobsFindDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ConsoleLoggingResourcesJobsFind"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1JobsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesJobsFindFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesJobsFindFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1Job"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ConsoleStreamsJobsWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ConsoleStreamsJobsWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1JobsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesJobFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesJobFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1Job"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ConsoleLoggingResourcesPodsFindDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodsFind"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"labelSelector"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1PodsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"labelSelector"},"value":{"kind":"Variable","name":{"kind":"Name","value":"labelSelector"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Pod"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containers"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"nodeName"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containerStatuses"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"started"}},{"kind":"Field","name":{"kind":"Name","value":"state"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"running"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"terminated"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"exitCode"}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode; -export const ConsoleLoggingResourcesPodsWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodsWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"labelSelector"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1PodsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"labelSelector"},"value":{"kind":"Variable","name":{"kind":"Name","value":"labelSelector"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Pod"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containers"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"nodeName"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containerStatuses"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"started"}},{"kind":"Field","name":{"kind":"Name","value":"state"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"running"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"terminated"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"exitCode"}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode; -export const ConsoleNodesListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ConsoleNodesListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1NodesList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleNodesListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleNodesListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Node"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"labels"}},{"kind":"Field","name":{"kind":"Name","value":"annotations"}}]}}]}}]} as unknown as DocumentNode; -export const ConsoleNodesListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ConsoleNodesListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1NodesWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleNodesListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleNodesListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Node"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"labels"}},{"kind":"Field","name":{"kind":"Name","value":"annotations"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerCronJobsCountFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SourcePickerCronJobsCountFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1CronJobsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"1","block":false}}]}}],"directives":[{"kind":"Directive","name":{"kind":"Name","value":"connection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"key"},"value":{"kind":"StringValue","value":"SourcePickerCronJobsCountFetch","block":false}}]}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"remainingItemCount"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerCronJobsCountWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"SourcePickerCronJobsCountWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1CronJobsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerDaemonSetsCountFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SourcePickerDaemonSetsCountFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DaemonSetsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"1","block":false}}]}}],"directives":[{"kind":"Directive","name":{"kind":"Name","value":"connection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"key"},"value":{"kind":"StringValue","value":"SourcePickerDaemonSetsCountFetch","block":false}}]}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"remainingItemCount"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerDaemonSetsCountWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"SourcePickerDaemonSetsCountWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DaemonSetsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerDeploymentsCountFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SourcePickerDeploymentsCountFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DeploymentsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"1","block":false}}]}}],"directives":[{"kind":"Directive","name":{"kind":"Name","value":"connection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"key"},"value":{"kind":"StringValue","value":"SourcePickerDeploymentsCountFetch","block":false}}]}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"remainingItemCount"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerDeploymentsCountWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"SourcePickerDeploymentsCountWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DeploymentsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerJobsCountFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SourcePickerJobsCountFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1JobsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"1","block":false}}]}}],"directives":[{"kind":"Directive","name":{"kind":"Name","value":"connection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"key"},"value":{"kind":"StringValue","value":"SourcePickerJobsCountFetch","block":false}}]}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"remainingItemCount"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerJobsCountWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"SourcePickerJobsCountWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1JobsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerPodsCountFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SourcePickerPodsCountFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1PodsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"1","block":false}}]}}],"directives":[{"kind":"Directive","name":{"kind":"Name","value":"connection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"key"},"value":{"kind":"StringValue","value":"SourcePickerPodsCountFetch","block":false}}]}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"remainingItemCount"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerPodsCountWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"SourcePickerPodsCountWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1PodsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerReplicaSetsCountFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SourcePickerReplicaSetsCountFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1ReplicaSetsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"1","block":false}}]}}],"directives":[{"kind":"Directive","name":{"kind":"Name","value":"connection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"key"},"value":{"kind":"StringValue","value":"SourcePickerReplicaSetsCountFetch","block":false}}]}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"remainingItemCount"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerReplicaSetsCountWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"SourcePickerReplicaSetsCountWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1ReplicaSetsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerStatefulSetsCountFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SourcePickerStatefulSetsCountFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1StatefulSetsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"1","block":false}}]}}],"directives":[{"kind":"Directive","name":{"kind":"Name","value":"connection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"key"},"value":{"kind":"StringValue","value":"SourcePickerStatefulSetsCountFetch","block":false}}]}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"remainingItemCount"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerStatefulSetsCountWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"SourcePickerStatefulSetsCountWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1StatefulSetsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerCronJobsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SourcePickerCronJobsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1CronJobsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"directives":[{"kind":"Directive","name":{"kind":"Name","value":"connection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"key"},"value":{"kind":"StringValue","value":"SourcePickerCronJobsListFetch","block":false}}]}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerCronJobsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"SourcePickerCronJobsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1CronJobsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerDaemonSetsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SourcePickerDaemonSetsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DaemonSetsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"directives":[{"kind":"Directive","name":{"kind":"Name","value":"connection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"key"},"value":{"kind":"StringValue","value":"SourcePickerDaemonSetsListFetch","block":false}}]}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerDaemonSetsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"SourcePickerDaemonSetsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DaemonSetsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerDeploymentsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SourcePickerDeploymentsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DeploymentsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"directives":[{"kind":"Directive","name":{"kind":"Name","value":"connection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"key"},"value":{"kind":"StringValue","value":"SourcePickerDeploymentsListFetch","block":false}}]}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerDeploymentsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"SourcePickerDeploymentsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DeploymentsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerJobsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SourcePickerJobsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1JobsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"directives":[{"kind":"Directive","name":{"kind":"Name","value":"connection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"key"},"value":{"kind":"StringValue","value":"SourcePickerJobsListFetch","block":false}}]}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerJobsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"SourcePickerJobsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1JobsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerNamespacesListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SourcePickerNamespacesListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1NamespacesList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerNamespacesListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"SourcePickerNamespacesListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1NamespacesWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerPodsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SourcePickerPodsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1PodsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"directives":[{"kind":"Directive","name":{"kind":"Name","value":"connection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"key"},"value":{"kind":"StringValue","value":"SourcePickerPodsListFetch","block":false}}]}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerPodsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"SourcePickerPodsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1PodsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerReplicaSetsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SourcePickerReplicaSetsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1ReplicaSetsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"directives":[{"kind":"Directive","name":{"kind":"Name","value":"connection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"key"},"value":{"kind":"StringValue","value":"SourcePickerReplicaSetsListFetch","block":false}}]}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerReplicaSetsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"SourcePickerReplicaSetsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1ReplicaSetsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerStatefulSetsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SourcePickerStatefulSetsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1StatefulSetsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"directives":[{"kind":"Directive","name":{"kind":"Name","value":"connection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"key"},"value":{"kind":"StringValue","value":"SourcePickerStatefulSetsListFetch","block":false}}]}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; -export const SourcePickerStatefulSetsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"SourcePickerStatefulSetsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1StatefulSetsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeStatefulSetsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeStatefulSetsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1StatefulSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}}]} as unknown as DocumentNode; -export const ExplorerCronJobsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ExplorerCronJobsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1CronJobsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerCronJobsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerCronJobsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1CronJob"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"schedule"}},{"kind":"Field","name":{"kind":"Name","value":"suspend"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"active"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"__typename"}}]}},{"kind":"Field","name":{"kind":"Name","value":"lastScheduleTime"}},{"kind":"Field","name":{"kind":"Name","value":"lastSuccessfulTime"}}]}}]}}]} as unknown as DocumentNode; -export const ExplorerCronJobsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ExplorerCronJobsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1CronJobsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerCronJobsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerCronJobsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1CronJob"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"schedule"}},{"kind":"Field","name":{"kind":"Name","value":"suspend"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"active"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"__typename"}}]}},{"kind":"Field","name":{"kind":"Name","value":"lastScheduleTime"}},{"kind":"Field","name":{"kind":"Name","value":"lastSuccessfulTime"}}]}}]}}]} as unknown as DocumentNode; -export const ExplorerDaemonSetsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ExplorerDaemonSetsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DaemonSetsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerDaemonSetsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerDaemonSetsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1DaemonSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"currentNumberScheduled"}},{"kind":"Field","name":{"kind":"Name","value":"desiredNumberScheduled"}}]}}]}}]} as unknown as DocumentNode; -export const ExplorerDaemonSetsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ExplorerDaemonSetsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DaemonSetsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerDaemonSetsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerDaemonSetsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1DaemonSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"currentNumberScheduled"}},{"kind":"Field","name":{"kind":"Name","value":"desiredNumberScheduled"}}]}}]}}]} as unknown as DocumentNode; -export const ExplorerDeploymentsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ExplorerDeploymentsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DeploymentsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerDeploymentsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerDeploymentsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1Deployment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"replicas"}},{"kind":"Field","name":{"kind":"Name","value":"paused"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"replicas"}}]}}]}}]} as unknown as DocumentNode; -export const ExplorerDeploymentsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ExplorerDeploymentsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DeploymentsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerDeploymentsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerDeploymentsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1Deployment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"replicas"}},{"kind":"Field","name":{"kind":"Name","value":"paused"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"replicas"}}]}}]}}]} as unknown as DocumentNode; -export const ExplorerJobsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ExplorerJobsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1JobsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerJobsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerJobsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1Job"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"}}]}}]} as unknown as DocumentNode; -export const ExplorerJobsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ExplorerJobsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1JobsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerJobsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerJobsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1Job"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"}}]}}]} as unknown as DocumentNode; -export const ExplorerPodsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ExplorerPodsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1PodsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerPodsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerPodsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Pod"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containers"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"image"}}]}},{"kind":"Field","name":{"kind":"Name","value":"nodeName"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"phase"}},{"kind":"Field","name":{"kind":"Name","value":"containerStatuses"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"state"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"running"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"terminated"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"exitCode"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"ready"}},{"kind":"Field","name":{"kind":"Name","value":"restartCount"}},{"kind":"Field","name":{"kind":"Name","value":"started"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ExplorerPodsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ExplorerPodsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1PodsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerPodsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerPodsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Pod"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containers"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"image"}}]}},{"kind":"Field","name":{"kind":"Name","value":"nodeName"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"phase"}},{"kind":"Field","name":{"kind":"Name","value":"containerStatuses"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"state"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"running"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"terminated"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"exitCode"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"ready"}},{"kind":"Field","name":{"kind":"Name","value":"restartCount"}},{"kind":"Field","name":{"kind":"Name","value":"started"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ExplorerReplicaSetsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ExplorerReplicaSetsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1ReplicaSetsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerReplicaSetsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerReplicaSetsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1ReplicaSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"replicas"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"replicas"}}]}}]}}]} as unknown as DocumentNode; -export const ExplorerReplicaSetsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ExplorerReplicaSetsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1ReplicaSetsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerReplicaSetsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerReplicaSetsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1ReplicaSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"replicas"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"replicas"}}]}}]}}]} as unknown as DocumentNode; -export const ExplorerStatefulSetsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ExplorerStatefulSetsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1StatefulSetsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerStatefulSetsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerStatefulSetsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1StatefulSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"}}]}}]} as unknown as DocumentNode; -export const ExplorerStatefulSetsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ExplorerStatefulSetsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1StatefulSetsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerStatefulSetsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerStatefulSetsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1StatefulSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericListItemFragment"}}]}}]} as unknown as DocumentNode; -export const ExplorerCronJobsObjectFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ExplorerCronJobsObjectFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"name"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1CronJobsGet"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"name"},"value":{"kind":"Variable","name":{"kind":"Name","value":"name"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerCronJobsObjectFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"labels"}},{"kind":"Field","name":{"kind":"Name","value":"annotations"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"apiVersion"}},{"kind":"Field","name":{"kind":"Name","value":"kind"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerCronJobsObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1CronJob"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"}}]}}]} as unknown as DocumentNode; -export const ExplorerCronJobsObjectWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ExplorerCronJobsObjectWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1CronJobsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"fieldSelector"},"value":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerCronJobsObjectFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"labels"}},{"kind":"Field","name":{"kind":"Name","value":"annotations"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"apiVersion"}},{"kind":"Field","name":{"kind":"Name","value":"kind"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerCronJobsObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1CronJob"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"}}]}}]} as unknown as DocumentNode; -export const ExplorerDaemonSetsObjectFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ExplorerDaemonSetsObjectFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"name"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DaemonSetsGet"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"name"},"value":{"kind":"Variable","name":{"kind":"Name","value":"name"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerDaemonSetsObjectFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"labels"}},{"kind":"Field","name":{"kind":"Name","value":"annotations"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"apiVersion"}},{"kind":"Field","name":{"kind":"Name","value":"kind"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerDaemonSetsObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1DaemonSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"}}]}}]} as unknown as DocumentNode; -export const ExplorerDaemonSetsObjectWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ExplorerDaemonSetsObjectWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DaemonSetsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"fieldSelector"},"value":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerDaemonSetsObjectFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"labels"}},{"kind":"Field","name":{"kind":"Name","value":"annotations"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"apiVersion"}},{"kind":"Field","name":{"kind":"Name","value":"kind"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerDaemonSetsObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1DaemonSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"}}]}}]} as unknown as DocumentNode; -export const ExplorerDeploymentsObjectFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ExplorerDeploymentsObjectFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"name"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DeploymentsGet"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"name"},"value":{"kind":"Variable","name":{"kind":"Name","value":"name"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerDeploymentsObjectFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"labels"}},{"kind":"Field","name":{"kind":"Name","value":"annotations"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"apiVersion"}},{"kind":"Field","name":{"kind":"Name","value":"kind"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerDeploymentsObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1Deployment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"replicas"}},{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}},{"kind":"Field","name":{"kind":"Name","value":"matchExpressions"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"key"}},{"kind":"Field","name":{"kind":"Name","value":"operator"}},{"kind":"Field","name":{"kind":"Name","value":"values"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"paused"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"replicas"}}]}}]}}]} as unknown as DocumentNode; -export const ExplorerDeploymentsObjectWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ExplorerDeploymentsObjectWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DeploymentsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"fieldSelector"},"value":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerDeploymentsObjectFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"labels"}},{"kind":"Field","name":{"kind":"Name","value":"annotations"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"apiVersion"}},{"kind":"Field","name":{"kind":"Name","value":"kind"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerDeploymentsObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1Deployment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"replicas"}},{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}},{"kind":"Field","name":{"kind":"Name","value":"matchExpressions"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"key"}},{"kind":"Field","name":{"kind":"Name","value":"operator"}},{"kind":"Field","name":{"kind":"Name","value":"values"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"paused"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"replicas"}}]}}]}}]} as unknown as DocumentNode; -export const ExplorerJobsObjectFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ExplorerJobsObjectFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"name"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1JobsGet"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"name"},"value":{"kind":"Variable","name":{"kind":"Name","value":"name"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerJobsObjectFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"labels"}},{"kind":"Field","name":{"kind":"Name","value":"annotations"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"apiVersion"}},{"kind":"Field","name":{"kind":"Name","value":"kind"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerJobsObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1Job"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"}}]}}]} as unknown as DocumentNode; -export const ExplorerJobsObjectWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ExplorerJobsObjectWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1JobsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"fieldSelector"},"value":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerJobsObjectFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"labels"}},{"kind":"Field","name":{"kind":"Name","value":"annotations"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"apiVersion"}},{"kind":"Field","name":{"kind":"Name","value":"kind"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerJobsObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1Job"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"}}]}}]} as unknown as DocumentNode; -export const ExplorerPodsObjectFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ExplorerPodsObjectFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"name"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1PodsGet"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"name"},"value":{"kind":"Variable","name":{"kind":"Name","value":"name"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerPodsObjectFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"labels"}},{"kind":"Field","name":{"kind":"Name","value":"annotations"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"apiVersion"}},{"kind":"Field","name":{"kind":"Name","value":"kind"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerPodsObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Pod"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containers"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"image"}}]}},{"kind":"Field","name":{"kind":"Name","value":"nodeName"}},{"kind":"Field","name":{"kind":"Name","value":"priorityClassName"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"phase"}},{"kind":"Field","name":{"kind":"Name","value":"message"}},{"kind":"Field","name":{"kind":"Name","value":"reason"}},{"kind":"Field","name":{"kind":"Name","value":"containerStatuses"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"state"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"waiting"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"reason"}},{"kind":"Field","name":{"kind":"Name","value":"message"}}]}},{"kind":"Field","name":{"kind":"Name","value":"running"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"terminated"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"exitCode"}},{"kind":"Field","name":{"kind":"Name","value":"signal"}},{"kind":"Field","name":{"kind":"Name","value":"reason"}},{"kind":"Field","name":{"kind":"Name","value":"message"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"lastTerminationState"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"waiting"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"reason"}},{"kind":"Field","name":{"kind":"Name","value":"message"}}]}},{"kind":"Field","name":{"kind":"Name","value":"running"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"terminated"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"exitCode"}},{"kind":"Field","name":{"kind":"Name","value":"signal"}},{"kind":"Field","name":{"kind":"Name","value":"reason"}},{"kind":"Field","name":{"kind":"Name","value":"message"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"ready"}},{"kind":"Field","name":{"kind":"Name","value":"restartCount"}},{"kind":"Field","name":{"kind":"Name","value":"imageID"}},{"kind":"Field","name":{"kind":"Name","value":"started"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ExplorerPodsObjectWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ExplorerPodsObjectWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1PodsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"fieldSelector"},"value":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerPodsObjectFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"labels"}},{"kind":"Field","name":{"kind":"Name","value":"annotations"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"apiVersion"}},{"kind":"Field","name":{"kind":"Name","value":"kind"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerPodsObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Pod"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containers"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"image"}}]}},{"kind":"Field","name":{"kind":"Name","value":"nodeName"}},{"kind":"Field","name":{"kind":"Name","value":"priorityClassName"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"phase"}},{"kind":"Field","name":{"kind":"Name","value":"message"}},{"kind":"Field","name":{"kind":"Name","value":"reason"}},{"kind":"Field","name":{"kind":"Name","value":"containerStatuses"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"state"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"waiting"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"reason"}},{"kind":"Field","name":{"kind":"Name","value":"message"}}]}},{"kind":"Field","name":{"kind":"Name","value":"running"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"terminated"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"exitCode"}},{"kind":"Field","name":{"kind":"Name","value":"signal"}},{"kind":"Field","name":{"kind":"Name","value":"reason"}},{"kind":"Field","name":{"kind":"Name","value":"message"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"lastTerminationState"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"waiting"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"reason"}},{"kind":"Field","name":{"kind":"Name","value":"message"}}]}},{"kind":"Field","name":{"kind":"Name","value":"running"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"terminated"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"exitCode"}},{"kind":"Field","name":{"kind":"Name","value":"signal"}},{"kind":"Field","name":{"kind":"Name","value":"reason"}},{"kind":"Field","name":{"kind":"Name","value":"message"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"ready"}},{"kind":"Field","name":{"kind":"Name","value":"restartCount"}},{"kind":"Field","name":{"kind":"Name","value":"imageID"}},{"kind":"Field","name":{"kind":"Name","value":"started"}}]}}]}}]}}]} as unknown as DocumentNode; -export const ExplorerReplicaSetsObjectFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ExplorerReplicaSetsObjectFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"name"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1ReplicaSetsGet"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"name"},"value":{"kind":"Variable","name":{"kind":"Name","value":"name"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerReplicaSetsObjectFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"labels"}},{"kind":"Field","name":{"kind":"Name","value":"annotations"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"apiVersion"}},{"kind":"Field","name":{"kind":"Name","value":"kind"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerReplicaSetsObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1ReplicaSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"}}]}}]} as unknown as DocumentNode; -export const ExplorerReplicaSetsObjectWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ExplorerReplicaSetsObjectWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1ReplicaSetsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"fieldSelector"},"value":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerReplicaSetsObjectFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"labels"}},{"kind":"Field","name":{"kind":"Name","value":"annotations"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"apiVersion"}},{"kind":"Field","name":{"kind":"Name","value":"kind"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerReplicaSetsObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1ReplicaSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"}}]}}]} as unknown as DocumentNode; -export const ExplorerStatefulSetsObjectFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ExplorerStatefulSetsObjectFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"name"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1StatefulSetsGet"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"name"},"value":{"kind":"Variable","name":{"kind":"Name","value":"name"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerStatefulSetsObjectFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"labels"}},{"kind":"Field","name":{"kind":"Name","value":"annotations"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"apiVersion"}},{"kind":"Field","name":{"kind":"Name","value":"kind"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerStatefulSetsObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1StatefulSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"}}]}}]} as unknown as DocumentNode; -export const ExplorerStatefulSetsObjectWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ExplorerStatefulSetsObjectWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1StatefulSetsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"fieldSelector"},"value":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerStatefulSetsObjectFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"labels"}},{"kind":"Field","name":{"kind":"Name","value":"annotations"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"apiVersion"}},{"kind":"Field","name":{"kind":"Name","value":"kind"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ExplorerStatefulSetsObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1StatefulSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ExplorerGenericObjectFragment"}}]}}]} as unknown as DocumentNode; -export const HeadContainerLogDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"HeadContainerLog"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"name"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"container"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"after"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"since"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"first"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"podLogHead"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"name"},"value":{"kind":"Variable","name":{"kind":"Name","value":"name"}}},{"kind":"Argument","name":{"kind":"Name","value":"container"},"value":{"kind":"Variable","name":{"kind":"Name","value":"container"}}},{"kind":"Argument","name":{"kind":"Name","value":"after"},"value":{"kind":"Variable","name":{"kind":"Name","value":"after"}}},{"kind":"Argument","name":{"kind":"Name","value":"since"},"value":{"kind":"Variable","name":{"kind":"Name","value":"since"}}},{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"PodLogQueryResponseFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"PodLogQueryResponseFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"PodLogQueryResponse"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"results"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"timestamp"}},{"kind":"Field","name":{"kind":"Name","value":"message"}}]}},{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}}]}}]}}]} as unknown as DocumentNode; -export const TailContainerLogDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"TailContainerLog"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"name"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"container"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"before"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"last"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"podLogTail"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"name"},"value":{"kind":"Variable","name":{"kind":"Name","value":"name"}}},{"kind":"Argument","name":{"kind":"Name","value":"container"},"value":{"kind":"Variable","name":{"kind":"Name","value":"container"}}},{"kind":"Argument","name":{"kind":"Name","value":"before"},"value":{"kind":"Variable","name":{"kind":"Name","value":"before"}}},{"kind":"Argument","name":{"kind":"Name","value":"last"},"value":{"kind":"Variable","name":{"kind":"Name","value":"last"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"PodLogQueryResponseFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"PodLogQueryResponseFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"PodLogQueryResponse"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"results"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"timestamp"}},{"kind":"Field","name":{"kind":"Name","value":"message"}}]}},{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}}]}}]}}]} as unknown as DocumentNode; -export const FollowContainerLogDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"FollowContainerLog"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"name"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"container"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"after"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"since"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"podLogFollow"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"name"},"value":{"kind":"Variable","name":{"kind":"Name","value":"name"}}},{"kind":"Argument","name":{"kind":"Name","value":"container"},"value":{"kind":"Variable","name":{"kind":"Name","value":"container"}}},{"kind":"Argument","name":{"kind":"Name","value":"after"},"value":{"kind":"Variable","name":{"kind":"Name","value":"after"}}},{"kind":"Argument","name":{"kind":"Name","value":"since"},"value":{"kind":"Variable","name":{"kind":"Name","value":"since"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"timestamp"}},{"kind":"Field","name":{"kind":"Name","value":"message"}}]}}]}}]} as unknown as DocumentNode; -export const LogMetadataListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"LogMetadataListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"logMetadataList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"LogMetadataListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"LogMetadataListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"LogMetadata"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"nodeName"}},{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"podName"}},{"kind":"Field","name":{"kind":"Name","value":"containerName"}},{"kind":"Field","name":{"kind":"Name","value":"containerID"}}]}},{"kind":"Field","name":{"kind":"Name","value":"fileInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"size"}},{"kind":"Field","name":{"kind":"Name","value":"lastModifiedAt"}}]}}]}}]} as unknown as DocumentNode; -export const LogMetadataListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"LogMetadataListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"logMetadataWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"LogMetadataListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"LogMetadataListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"LogMetadata"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"nodeName"}},{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"podName"}},{"kind":"Field","name":{"kind":"Name","value":"containerName"}},{"kind":"Field","name":{"kind":"Name","value":"containerID"}}]}},{"kind":"Field","name":{"kind":"Name","value":"fileInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"size"}},{"kind":"Field","name":{"kind":"Name","value":"lastModifiedAt"}}]}}]}}]} as unknown as DocumentNode; -export const LivezWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"LivezWatch"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"livezWatch"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"status"}},{"kind":"Field","name":{"kind":"Name","value":"message"}},{"kind":"Field","name":{"kind":"Name","value":"timestamp"}}]}}]}}]} as unknown as DocumentNode; -export const ReadyzWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ReadyzWatch"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"readyzWatch"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"status"}},{"kind":"Field","name":{"kind":"Name","value":"message"}},{"kind":"Field","name":{"kind":"Name","value":"timestamp"}}]}}]}}]} as unknown as DocumentNode; -export const ReadyWaitDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ReadyWait"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"readyWait"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"timeout"},"value":{"kind":"IntValue","value":"20"}}]}]}}]} as unknown as DocumentNode; \ No newline at end of file diff --git a/dashboard-ui/src/lib/graphql/cluster-api/__generated__/gql.ts b/dashboard-ui/src/lib/graphql/cluster-api/__generated__/gql.ts new file mode 100644 index 00000000..6663ed2c --- /dev/null +++ b/dashboard-ui/src/lib/graphql/cluster-api/__generated__/gql.ts @@ -0,0 +1,53 @@ +/* eslint-disable */ +import * as types from './graphql'; +import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core'; + +/** + * Map of all GraphQL operations in the project. + * + * This map has several performance disadvantages: + * 1. It is not tree-shakeable, so it will include all operations in the project. + * 2. It is not minifiable, so the string of a GraphQL query will be multiple times inside the bundle. + * 3. It does not support dead code elimination, so it will add unused operations. + * + * Therefore it is highly recommended to use the babel or swc plugin for production. + * Learn more about it here: https://the-guild.dev/graphql/codegen/plugins/presets/preset-client#reducing-bundle-size + */ +const documents = { + "\n fragment LogMetadataListItemFragment on LogMetadata {\n id\n spec {\n nodeName\n namespace\n podName\n containerName\n containerID\n }\n fileInfo {\n size\n lastModifiedAt\n }\n }\n": types.LogMetadataListItemFragmentFragmentDoc, + "\n query LogMetadataListFetch($namespace: String = \"\") {\n logMetadataList(namespace: $namespace) {\n items {\n ...LogMetadataListItemFragment\n }\n }\n }\n": types.LogMetadataListFetchDocument, + "\n subscription LogMetadataListWatch($namespace: String = \"\") {\n logMetadataWatch(namespace: $namespace) {\n type\n object {\n ...LogMetadataListItemFragment\n }\n }\n }\n": types.LogMetadataListWatchDocument, +}; + +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + * + * + * @example + * ```ts + * const query = gql(`query GetUser($id: ID!) { user(id: $id) { name } }`); + * ``` + * + * The query argument is unknown! + * Please regenerate the types. + */ +export function gql(source: string): unknown; + +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n fragment LogMetadataListItemFragment on LogMetadata {\n id\n spec {\n nodeName\n namespace\n podName\n containerName\n containerID\n }\n fileInfo {\n size\n lastModifiedAt\n }\n }\n"): (typeof documents)["\n fragment LogMetadataListItemFragment on LogMetadata {\n id\n spec {\n nodeName\n namespace\n podName\n containerName\n containerID\n }\n fileInfo {\n size\n lastModifiedAt\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query LogMetadataListFetch($namespace: String = \"\") {\n logMetadataList(namespace: $namespace) {\n items {\n ...LogMetadataListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query LogMetadataListFetch($namespace: String = \"\") {\n logMetadataList(namespace: $namespace) {\n items {\n ...LogMetadataListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription LogMetadataListWatch($namespace: String = \"\") {\n logMetadataWatch(namespace: $namespace) {\n type\n object {\n ...LogMetadataListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription LogMetadataListWatch($namespace: String = \"\") {\n logMetadataWatch(namespace: $namespace) {\n type\n object {\n ...LogMetadataListItemFragment\n }\n }\n }\n"]; + +export function gql(source: string) { + return (documents as any)[source] ?? {}; +} + +export type DocumentType> = TDocumentNode extends DocumentNode< infer TType, any> ? TType : never; \ No newline at end of file diff --git a/dashboard-ui/src/lib/graphql/cluster-api/__generated__/graphql.ts b/dashboard-ui/src/lib/graphql/cluster-api/__generated__/graphql.ts new file mode 100644 index 00000000..d8be0b83 --- /dev/null +++ b/dashboard-ui/src/lib/graphql/cluster-api/__generated__/graphql.ts @@ -0,0 +1,94 @@ +/* eslint-disable */ +import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core'; +export type Maybe = T | null; +export type InputMaybe = Maybe; +export type Exact = { [K in keyof T]: T[K] }; +export type MakeOptional = Omit & { [SubKey in K]?: Maybe }; +export type MakeMaybe = Omit & { [SubKey in K]: Maybe }; +export type MakeEmpty = { [_ in K]?: never }; +export type Incremental = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never }; +/** All built-in and custom scalars, mapped to their actual values */ +export type Scalars = { + ID: { input: string; output: string; } + String: { input: string; output: string; } + Boolean: { input: boolean; output: boolean; } + Int: { input: number; output: number; } + Float: { input: number; output: number; } + /** A 64-bit integer. */ + Int64: { input: any; output: any; } + /** An ISO-8601 encoded UTC date string. */ + TimestampPBTimestamp: { input: any; output: any; } +}; + +export type LogMetadata = { + __typename?: 'LogMetadata'; + fileInfo: LogMetadataFileInfo; + id: Scalars['ID']['output']; + spec: LogMetadataSpec; +}; + +export type LogMetadataFileInfo = { + __typename?: 'LogMetadataFileInfo'; + lastModifiedAt?: Maybe; + size: Scalars['Int64']['output']; +}; + +export type LogMetadataList = { + __typename?: 'LogMetadataList'; + items: Array; +}; + +export type LogMetadataSpec = { + __typename?: 'LogMetadataSpec'; + containerID: Scalars['ID']['output']; + containerName: Scalars['String']['output']; + namespace: Scalars['String']['output']; + nodeName: Scalars['String']['output']; + podName: Scalars['String']['output']; +}; + +export type LogMetadataWatchEvent = { + __typename?: 'LogMetadataWatchEvent'; + object?: Maybe; + type: Scalars['String']['output']; +}; + +export type Query = { + __typename?: 'Query'; + logMetadataList?: Maybe; +}; + + +export type QueryLogMetadataListArgs = { + namespace?: InputMaybe; +}; + +export type Subscription = { + __typename?: 'Subscription'; + logMetadataWatch?: Maybe; +}; + + +export type SubscriptionLogMetadataWatchArgs = { + namespace?: InputMaybe; +}; + +export type LogMetadataListItemFragmentFragment = { __typename?: 'LogMetadata', id: string, spec: { __typename?: 'LogMetadataSpec', nodeName: string, namespace: string, podName: string, containerName: string, containerID: string }, fileInfo: { __typename?: 'LogMetadataFileInfo', size: any, lastModifiedAt?: any | null } }; + +export type LogMetadataListFetchQueryVariables = Exact<{ + namespace?: InputMaybe; +}>; + + +export type LogMetadataListFetchQuery = { __typename?: 'Query', logMetadataList?: { __typename?: 'LogMetadataList', items: Array<{ __typename?: 'LogMetadata', id: string, spec: { __typename?: 'LogMetadataSpec', nodeName: string, namespace: string, podName: string, containerName: string, containerID: string }, fileInfo: { __typename?: 'LogMetadataFileInfo', size: any, lastModifiedAt?: any | null } }> } | null }; + +export type LogMetadataListWatchSubscriptionVariables = Exact<{ + namespace?: InputMaybe; +}>; + + +export type LogMetadataListWatchSubscription = { __typename?: 'Subscription', logMetadataWatch?: { __typename?: 'LogMetadataWatchEvent', type: string, object?: { __typename?: 'LogMetadata', id: string, spec: { __typename?: 'LogMetadataSpec', nodeName: string, namespace: string, podName: string, containerName: string, containerID: string }, fileInfo: { __typename?: 'LogMetadataFileInfo', size: any, lastModifiedAt?: any | null } } | null } | null }; + +export const LogMetadataListItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"LogMetadataListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"LogMetadata"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"nodeName"}},{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"podName"}},{"kind":"Field","name":{"kind":"Name","value":"containerName"}},{"kind":"Field","name":{"kind":"Name","value":"containerID"}}]}},{"kind":"Field","name":{"kind":"Name","value":"fileInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"size"}},{"kind":"Field","name":{"kind":"Name","value":"lastModifiedAt"}}]}}]}}]} as unknown as DocumentNode; +export const LogMetadataListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"LogMetadataListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"logMetadataList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"LogMetadataListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"LogMetadataListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"LogMetadata"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"nodeName"}},{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"podName"}},{"kind":"Field","name":{"kind":"Name","value":"containerName"}},{"kind":"Field","name":{"kind":"Name","value":"containerID"}}]}},{"kind":"Field","name":{"kind":"Name","value":"fileInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"size"}},{"kind":"Field","name":{"kind":"Name","value":"lastModifiedAt"}}]}}]}}]} as unknown as DocumentNode; +export const LogMetadataListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"LogMetadataListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"logMetadataWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"LogMetadataListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"LogMetadataListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"LogMetadata"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"nodeName"}},{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"podName"}},{"kind":"Field","name":{"kind":"Name","value":"containerName"}},{"kind":"Field","name":{"kind":"Name","value":"containerID"}}]}},{"kind":"Field","name":{"kind":"Name","value":"fileInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"size"}},{"kind":"Field","name":{"kind":"Name","value":"lastModifiedAt"}}]}}]}}]} as unknown as DocumentNode; \ No newline at end of file diff --git a/dashboard-ui/src/lib/graphql/__generated__/index.ts b/dashboard-ui/src/lib/graphql/cluster-api/__generated__/index.ts similarity index 100% rename from dashboard-ui/src/lib/graphql/__generated__/index.ts rename to dashboard-ui/src/lib/graphql/cluster-api/__generated__/index.ts diff --git a/dashboard-ui/src/lib/graphql/cluster-api/__generated__/introspection-result.json b/dashboard-ui/src/lib/graphql/cluster-api/__generated__/introspection-result.json new file mode 100644 index 00000000..e3371b63 --- /dev/null +++ b/dashboard-ui/src/lib/graphql/cluster-api/__generated__/introspection-result.json @@ -0,0 +1,3 @@ +{ + "possibleTypes": {} +} \ No newline at end of file diff --git a/dashboard-ui/src/lib/graphql/cluster-api/fragments.ts b/dashboard-ui/src/lib/graphql/cluster-api/fragments.ts new file mode 100644 index 00000000..95dcceff --- /dev/null +++ b/dashboard-ui/src/lib/graphql/cluster-api/fragments.ts @@ -0,0 +1,36 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { gql } from '@/lib/graphql/cluster-api/__generated__/gql'; + +/** + * LogMetadata fragments + */ + +export const LOG_METADATA_LIST_ITEM_FRAGMENT = gql(` + fragment LogMetadataListItemFragment on LogMetadata { + id + spec { + nodeName + namespace + podName + containerName + containerID + } + fileInfo { + size + lastModifiedAt + } + } +`); diff --git a/dashboard-ui/src/lib/graphql/cluster-api/ops.ts b/dashboard-ui/src/lib/graphql/cluster-api/ops.ts new file mode 100644 index 00000000..f4ef3e0d --- /dev/null +++ b/dashboard-ui/src/lib/graphql/cluster-api/ops.ts @@ -0,0 +1,40 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { gql } from '@/lib/graphql/cluster-api/__generated__/gql'; + +/** + * Log metadata queries + */ + +export const LOG_METADATA_LIST_FETCH = gql(` + query LogMetadataListFetch($namespace: String = "") { + logMetadataList(namespace: $namespace) { + items { + ...LogMetadataListItemFragment + } + } + } +`); + +export const LOG_METADATA_LIST_WATCH = gql(` + subscription LogMetadataListWatch($namespace: String = "") { + logMetadataWatch(namespace: $namespace) { + type + object { + ...LogMetadataListItemFragment + } + } + } +`); diff --git a/dashboard-ui/src/lib/graphql/dashboard/__generated__/gql.ts b/dashboard-ui/src/lib/graphql/dashboard/__generated__/gql.ts new file mode 100644 index 00000000..4245a030 --- /dev/null +++ b/dashboard-ui/src/lib/graphql/dashboard/__generated__/gql.ts @@ -0,0 +1,573 @@ +/* eslint-disable */ +import * as types from './graphql'; +import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core'; + +/** + * Map of all GraphQL operations in the project. + * + * This map has several performance disadvantages: + * 1. It is not tree-shakeable, so it will include all operations in the project. + * 2. It is not minifiable, so the string of a GraphQL query will be multiple times inside the bundle. + * 3. It does not support dead code elimination, so it will add unused operations. + * + * Therefore it is highly recommended to use the babel or swc plugin for production. + * Learn more about it here: https://the-guild.dev/graphql/codegen/plugins/presets/preset-client#reducing-bundle-size + */ +const documents = { + "\n fragment ConsoleLoggingResourcesGenericObjectFragment on Object {\n id\n metadata {\n namespace\n name\n uid\n creationTimestamp\n deletionTimestamp\n resourceVersion\n ownerReferences {\n name\n uid\n controller\n }\n }\n }\n": types.ConsoleLoggingResourcesGenericObjectFragmentFragmentDoc, + "\n fragment ConsoleLoggingResourcesCronJobFragment on BatchV1CronJob {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n jobTemplate {\n spec {\n selector {\n matchLabels\n }\n }\n }\n }\n }\n": types.ConsoleLoggingResourcesCronJobFragmentFragmentDoc, + "\n fragment ConsoleLoggingResourcesDaemonSetFragment on AppsV1DaemonSet {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n selector {\n matchLabels\n }\n }\n }\n": types.ConsoleLoggingResourcesDaemonSetFragmentFragmentDoc, + "\n fragment ConsoleLoggingResourcesDeploymentFragment on AppsV1Deployment {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n selector {\n matchLabels\n }\n }\n }\n": types.ConsoleLoggingResourcesDeploymentFragmentFragmentDoc, + "\n fragment ConsoleLoggingResourcesJobFragment on BatchV1Job {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n selector {\n matchLabels\n }\n }\n }\n": types.ConsoleLoggingResourcesJobFragmentFragmentDoc, + "\n fragment ConsoleLoggingResourcesPodFragment on CoreV1Pod {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n containers {\n name\n }\n nodeName\n }\n status {\n containerStatuses {\n name\n started\n state {\n running {\n startedAt\n }\n terminated {\n exitCode\n }\n }\n }\n }\n }\n": types.ConsoleLoggingResourcesPodFragmentFragmentDoc, + "\n fragment ConsoleLoggingResourcesReplicaSetFragment on AppsV1ReplicaSet {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n selector {\n matchLabels\n }\n }\n }\n": types.ConsoleLoggingResourcesReplicaSetFragmentFragmentDoc, + "\n fragment ConsoleLoggingResourcesStatefulSetFragment on AppsV1StatefulSet {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n selector {\n matchLabels\n }\n }\n }\n": types.ConsoleLoggingResourcesStatefulSetFragmentFragmentDoc, + "\n fragment ConsoleLoggingResourcesJobsFindFragment on BatchV1Job {\n id\n metadata {\n namespace\n name\n uid\n deletionTimestamp\n resourceVersion\n ownerReferences {\n name\n uid\n controller\n }\n }\n spec {\n selector {\n matchLabels\n }\n }\n }\n": types.ConsoleLoggingResourcesJobsFindFragmentFragmentDoc, + "\n fragment ConsoleNodesListItemFragment on CoreV1Node {\n id\n metadata {\n name\n uid\n creationTimestamp\n deletionTimestamp\n resourceVersion\n labels\n annotations\n }\n }\n": types.ConsoleNodesListItemFragmentFragmentDoc, + "\n fragment HealthCheckResponseFragment on HealthCheckResponse {\n status\n message\n timestamp\n }\n": types.HealthCheckResponseFragmentFragmentDoc, + "\n fragment HomeCronJobsListItemFragment on BatchV1CronJob {\n ...HomeGenericListItemFragment\n }\n": types.HomeCronJobsListItemFragmentFragmentDoc, + "\n fragment HomeDaemonSetsListItemFragment on AppsV1DaemonSet {\n ...HomeGenericListItemFragment\n }\n": types.HomeDaemonSetsListItemFragmentFragmentDoc, + "\n fragment HomeDeploymentsListItemFragment on AppsV1Deployment {\n ...HomeGenericListItemFragment\n }\n": types.HomeDeploymentsListItemFragmentFragmentDoc, + "\n fragment HomeJobsListItemFragment on BatchV1Job {\n ...HomeGenericListItemFragment\n }\n": types.HomeJobsListItemFragmentFragmentDoc, + "\n fragment HomeGenericListFragment on List {\n metadata {\n continue\n resourceVersion\n }\n }\n": types.HomeGenericListFragmentFragmentDoc, + "\n fragment HomeGenericListItemFragment on Object {\n id\n metadata {\n namespace\n name\n uid\n creationTimestamp\n deletionTimestamp\n resourceVersion\n ownerReferences {\n name\n uid\n controller\n }\n }\n }\n": types.HomeGenericListItemFragmentFragmentDoc, + "\n fragment HomeNamespacesListItemFragment on CoreV1Namespace {\n ...HomeGenericListItemFragment\n }\n": types.HomeNamespacesListItemFragmentFragmentDoc, + "\n fragment HomePodsListItemFragment on CoreV1Pod {\n ...HomeGenericListItemFragment\n status {\n containerStatuses {\n containerID\n started\n }\n }\n }\n": types.HomePodsListItemFragmentFragmentDoc, + "\n fragment HomeReplicaSetsListItemFragment on AppsV1ReplicaSet {\n ...HomeGenericListItemFragment\n }\n": types.HomeReplicaSetsListItemFragmentFragmentDoc, + "\n fragment HomeStatefulSetsListItemFragment on AppsV1StatefulSet {\n ...HomeGenericListItemFragment\n }\n": types.HomeStatefulSetsListItemFragmentFragmentDoc, + "\n fragment KubeConfigFragment on KubeConfig {\n currentContext\n contexts {\n name\n cluster\n namespace\n }\n }\n": types.KubeConfigFragmentFragmentDoc, + "\n fragment PodLogQueryResponseFragment on PodLogQueryResponse {\n results {\n timestamp\n message\n }\n pageInfo {\n hasPreviousPage\n hasNextPage\n startCursor\n endCursor\n }\n }\n": types.PodLogQueryResponseFragmentFragmentDoc, + "\n fragment SourcePickerGenericCounterFragment on List {\n metadata {\n remainingItemCount\n resourceVersion\n }\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n": types.SourcePickerGenericCounterFragmentFragmentDoc, + "\n fragment SourcePickerGenericCounterItemFragment on Object {\n id\n metadata {\n resourceVersion\n }\n }\n": types.SourcePickerGenericCounterItemFragmentFragmentDoc, + "\n fragment SourcePickerGenericListFragment on List {\n metadata {\n continue\n resourceVersion\n }\n }\n": types.SourcePickerGenericListFragmentFragmentDoc, + "\n fragment SourcePickerGenericListItemFragment on Object {\n id\n metadata {\n namespace\n name\n uid\n creationTimestamp\n deletionTimestamp\n resourceVersion\n }\n }\n": types.SourcePickerGenericListItemFragmentFragmentDoc, + "\n query ConsoleLoggingResourcesCronJobGet($kubeContext: String!, $namespace: String!, $name: String!) {\n batchV1CronJobsGet(kubeContext: $kubeContext, namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesCronJobFragment\n }\n }\n": types.ConsoleLoggingResourcesCronJobGetDocument, + "\n subscription ConsoleLoggingResourcesCronJobWatch($kubeContext: String!, $namespace: String!, $fieldSelector: String!) {\n batchV1CronJobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesCronJobFragment\n }\n }\n }\n": types.ConsoleLoggingResourcesCronJobWatchDocument, + "\n query ConsoleLoggingResourcesDaemonSetGet($kubeContext: String!, $namespace: String!, $name: String!) {\n appsV1DaemonSetsGet(kubeContext: $kubeContext, namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesDaemonSetFragment\n } \n }\n": types.ConsoleLoggingResourcesDaemonSetGetDocument, + "\n subscription ConsoleLoggingResourcesDaemonSetWatch($kubeContext: String!, $namespace: String!, $fieldSelector: String!) {\n appsV1DaemonSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesDaemonSetFragment\n }\n }\n }\n": types.ConsoleLoggingResourcesDaemonSetWatchDocument, + "\n query ConsoleLoggingResourcesDeploymentGet($kubeContext: String!, $namespace: String!, $name: String!) {\n appsV1DeploymentsGet(kubeContext: $kubeContext, namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesDeploymentFragment\n } \n }\n": types.ConsoleLoggingResourcesDeploymentGetDocument, + "\n subscription ConsoleLoggingResourcesDeploymentWatch($kubeContext: String!, $namespace: String!, $fieldSelector: String!) {\n appsV1DeploymentsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesDeploymentFragment\n }\n }\n }\n": types.ConsoleLoggingResourcesDeploymentWatchDocument, + "\n query ConsoleLoggingResourcesJobGet($kubeContext: String!, $namespace: String!, $name: String!) {\n batchV1JobsGet(kubeContext: $kubeContext, namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesJobFragment\n }\n }\n": types.ConsoleLoggingResourcesJobGetDocument, + "\n subscription ConsoleLoggingResourcesJobWatch($kubeContext: String!, $namespace: String!, $fieldSelector: String!) {\n batchV1JobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesJobFragment\n }\n }\n }\n": types.ConsoleLoggingResourcesJobWatchDocument, + "\n query ConsoleLoggingResourcesPodGet($kubeContext: String!, $namespace: String!, $name: String!) {\n coreV1PodsGet(kubeContext: $kubeContext, namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n": types.ConsoleLoggingResourcesPodGetDocument, + "\n subscription ConsoleLoggingResourcesPodWatch($kubeContext: String!, $namespace: String!, $fieldSelector: String!) {\n coreV1PodsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n }\n": types.ConsoleLoggingResourcesPodWatchDocument, + "\n query ConsolePodsListFetch($kubeContext: String!, $namespace: String!, $continue: String = \"\") {\n coreV1PodsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n metadata {\n continue\n resourceVersion\n }\n items {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n }\n": types.ConsolePodsListFetchDocument, + "\n subscription ConsolePodsListWatch($kubeContext: String!, $namespace: String!, $resourceVersion: String = \"\") {\n coreV1PodsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n }\n": types.ConsolePodsListWatchDocument, + "\n query ConsoleLoggingResourcesReplicaSetGet($kubeContext: String!, $namespace: String!, $name: String!) {\n appsV1ReplicaSetsGet(kubeContext: $kubeContext, namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesReplicaSetFragment\n }\n }\n": types.ConsoleLoggingResourcesReplicaSetGetDocument, + "\n subscription ConsoleLoggingResourcesReplicaSetWatch($kubeContext: String!, $namespace: String!, $fieldSelector: String!) {\n appsV1ReplicaSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesReplicaSetFragment\n }\n }\n }\n": types.ConsoleLoggingResourcesReplicaSetWatchDocument, + "\n query ConsoleLoggingResourcesStatefulSetGet($kubeContext: String!, $namespace: String!, $name: String!) {\n appsV1StatefulSetsGet(kubeContext: $kubeContext, namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesStatefulSetFragment\n } \n }\n": types.ConsoleLoggingResourcesStatefulSetGetDocument, + "\n subscription ConsoleLoggingResourcesStatefulSetWatch($kubeContext: String!, $namespace: String!, $fieldSelector: String!) {\n appsV1StatefulSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesStatefulSetFragment\n }\n }\n }\n": types.ConsoleLoggingResourcesStatefulSetWatchDocument, + "\n query ConsoleLoggingResourcesJobsFind($kubeContext: String!, $namespace: String!, $continue: String = \"\") {\n batchV1JobsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n metadata {\n continue\n resourceVersion\n }\n items {\n ...ConsoleLoggingResourcesJobsFindFragment\n }\n }\n }\n": types.ConsoleLoggingResourcesJobsFindDocument, + "\n subscription ConsoleStreamsJobsWatch($kubeContext: String!, $namespace: String!, $resourceVersion: String = \"\") {\n batchV1JobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ConsoleLoggingResourcesJobFragment\n }\n }\n }\n": types.ConsoleStreamsJobsWatchDocument, + "\n query ConsoleLoggingResourcesPodsFind($kubeContext: String!, $namespace: String!, $labelSelector: String!, $continue: String = \"\") {\n coreV1PodsList(kubeContext: $kubeContext, namespace: $namespace, options: { labelSelector: $labelSelector, continue: $continue }) {\n metadata {\n continue\n resourceVersion\n }\n items {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n }\n": types.ConsoleLoggingResourcesPodsFindDocument, + "\n subscription ConsoleLoggingResourcesPodsWatch($kubeContext: String!, $namespace: String!, $labelSelector: String!, $resourceVersion: String = \"\") {\n coreV1PodsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { labelSelector: $labelSelector, resourceVersion: $resourceVersion }) {\n type\n object {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n }\n": types.ConsoleLoggingResourcesPodsWatchDocument, + "\n query ConsoleNodesListFetch($kubeContext: String!, $continue: String = \"\") {\n coreV1NodesList(kubeContext: $kubeContext, options: { limit: \"50\", continue: $continue }) {\n metadata {\n continue\n resourceVersion\n }\n items {\n ...ConsoleNodesListItemFragment\n }\n }\n }\n": types.ConsoleNodesListFetchDocument, + "\n subscription ConsoleNodesListWatch($kubeContext: String!, $resourceVersion: String = \"\") {\n coreV1NodesWatch(kubeContext: $kubeContext, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ConsoleNodesListItemFragment\n }\n }\n }\n": types.ConsoleNodesListWatchDocument, + "\n query HomeCronJobsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n batchV1CronJobsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeCronJobsListItemFragment\n }\n }\n }\n": types.HomeCronJobsListFetchDocument, + "\n subscription HomeCronJobsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1CronJobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeCronJobsListItemFragment\n }\n }\n }\n": types.HomeCronJobsListWatchDocument, + "\n query HomeDaemonSetsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n appsV1DaemonSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeDaemonSetsListItemFragment\n }\n }\n }\n": types.HomeDaemonSetsListFetchDocument, + "\n subscription HomeDaemonSetsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DaemonSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeDaemonSetsListItemFragment\n }\n }\n }\n": types.HomeDaemonSetsListWatchDocument, + "\n query HomeDeploymentsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n appsV1DeploymentsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeDeploymentsListItemFragment\n }\n }\n }\n": types.HomeDeploymentsListFetchDocument, + "\n subscription HomeDeploymentsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DeploymentsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeDeploymentsListItemFragment\n }\n }\n }\n": types.HomeDeploymentsListWatchDocument, + "\n query HomeJobsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n batchV1JobsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeJobsListItemFragment\n }\n }\n }\n": types.HomeJobsListFetchDocument, + "\n subscription HomeJobsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1JobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeJobsListItemFragment\n }\n }\n }\n": types.HomeJobsListWatchDocument, + "\n query HomeNamespacesListFetch($kubeContext: String!, $continue: String = \"\") {\n coreV1NamespacesList(kubeContext: $kubeContext, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeNamespacesListItemFragment\n }\n }\n }\n": types.HomeNamespacesListFetchDocument, + "\n subscription HomeNamespacesListWatch($kubeContext: String!, $resourceVersion: String = \"\") {\n coreV1NamespacesWatch(kubeContext: $kubeContext, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeNamespacesListItemFragment\n }\n }\n }\n": types.HomeNamespacesListWatchDocument, + "\n query HomePodsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n coreV1PodsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomePodsListItemFragment\n }\n }\n }\n": types.HomePodsListFetchDocument, + "\n subscription HomePodsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n coreV1PodsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomePodsListItemFragment\n }\n }\n }\n": types.HomePodsListWatchDocument, + "\n query HomeReplicaSetsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n appsV1ReplicaSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeReplicaSetsListItemFragment\n }\n }\n }\n": types.HomeReplicaSetsListFetchDocument, + "\n subscription HomeReplicaSetsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1ReplicaSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeReplicaSetsListItemFragment\n }\n }\n }\n": types.HomeReplicaSetsListWatchDocument, + "\n query HomeStatefulSetsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n appsV1StatefulSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeStatefulSetsListItemFragment\n }\n }\n }\n": types.HomeStatefulSetsListFetchDocument, + "\n subscription HomeStatefulSetsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1StatefulSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeStatefulSetsListItemFragment\n }\n }\n }\n": types.HomeStatefulSetsListWatchDocument, + "\n query KubeConfigGet {\n kubeConfigGet {\n ...KubeConfigFragment\n }\n }\n": types.KubeConfigGetDocument, + "\n subscription KubeConfigWatch {\n kubeConfigWatch {\n type\n object {\n ...KubeConfigFragment\n }\n }\n }\n": types.KubeConfigWatchDocument, + "\n query KubernetesAPIReadyWait($kubeContext: String) {\n kubernetesAPIReadyWait(kubeContext: $kubeContext)\n }\n": types.KubernetesApiReadyWaitDocument, + "\n mutation KubetailClusterAPIInstall($kubeContext: String!) {\n kubetailClusterAPIInstall(kubeContext: $kubeContext)\n }\n": types.KubetailClusterApiInstallDocument, + "\n query KubetailClusterAPIReadyWait($kubeContext: String!, $namespace: String!, $serviceName: String!) {\n kubetailClusterAPIReadyWait(kubeContext: $kubeContext, namespace: $namespace, serviceName: $serviceName)\n }\n": types.KubetailClusterApiReadyWaitDocument, + "\n query PodLogHead($kubeContext: String!, $namespace: String!, $name: String!, $container: String, $after: ID, $since: String, $first: Int) {\n podLogHead(kubeContext: $kubeContext, namespace: $namespace, name: $name, container: $container, after: $after, since: $since, first: $first) {\n ...PodLogQueryResponseFragment\n }\n }\n": types.PodLogHeadDocument, + "\n query PodLogTail($kubeContext: String!, $namespace: String!, $name: String!, $container: String, $before: ID, $last: Int) {\n podLogTail(kubeContext: $kubeContext, namespace: $namespace, name: $name, container: $container, before: $before, last: $last) {\n ...PodLogQueryResponseFragment\n }\n }\n": types.PodLogTailDocument, + "\n subscription PodLogFollow($kubeContext: String!, $namespace: String!, $name: String!, $container: String, $after: ID, $since: String) {\n podLogFollow(kubeContext: $kubeContext, namespace: $namespace, name: $name, container: $container, after: $after, since: $since) {\n timestamp\n message\n }\n }\n": types.PodLogFollowDocument, + "\n query ServerStatusKubernetesAPIHealthzGet($kubeContext: String!) {\n kubernetesAPIHealthzGet(kubeContext: $kubeContext) {\n ...HealthCheckResponseFragment\n }\n }\n": types.ServerStatusKubernetesApiHealthzGetDocument, + "\n subscription ServerStatusKubernetesAPIHealthzWatch($kubeContext: String!) {\n kubernetesAPIHealthzWatch(kubeContext: $kubeContext) {\n ...HealthCheckResponseFragment\n }\n }\n": types.ServerStatusKubernetesApiHealthzWatchDocument, + "\n query ServerStatusKubetailClusterAPIHealthzGet($kubeContext: String!, $namespace: String, $serviceName: String) {\n kubetailClusterAPIHealthzGet(kubeContext: $kubeContext, namespace: $namespace, serviceName: $serviceName) {\n ...HealthCheckResponseFragment\n }\n }\n": types.ServerStatusKubetailClusterApiHealthzGetDocument, + "\n subscription ServerStatusKubetailClusterAPIHealthzWatch($kubeContext: String!, $namespace: String, $serviceName: String) {\n kubetailClusterAPIHealthzWatch(kubeContext: $kubeContext, namespace: $namespace, serviceName: $serviceName) {\n ...HealthCheckResponseFragment\n }\n }\n": types.ServerStatusKubetailClusterApiHealthzWatchDocument, + "\n query SourcePickerCronJobsCountFetch($kubeContext: String!, $namespace: String = \"\") {\n batchV1CronJobsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerCronJobsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n": types.SourcePickerCronJobsCountFetchDocument, + "\n subscription SourcePickerCronJobsCountWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1CronJobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n": types.SourcePickerCronJobsCountWatchDocument, + "\n query SourcePickerDaemonSetsCountFetch($kubeContext: String!, $namespace: String = \"\") {\n appsV1DaemonSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerDaemonSetsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n": types.SourcePickerDaemonSetsCountFetchDocument, + "\n subscription SourcePickerDaemonSetsCountWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DaemonSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n": types.SourcePickerDaemonSetsCountWatchDocument, + "\n query SourcePickerDeploymentsCountFetch($kubeContext: String!, $namespace: String = \"\") {\n appsV1DeploymentsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerDeploymentsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n": types.SourcePickerDeploymentsCountFetchDocument, + "\n subscription SourcePickerDeploymentsCountWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DeploymentsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n": types.SourcePickerDeploymentsCountWatchDocument, + "\n query SourcePickerJobsCountFetch($kubeContext: String!, $namespace: String = \"\") {\n batchV1JobsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerJobsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n": types.SourcePickerJobsCountFetchDocument, + "\n subscription SourcePickerJobsCountWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1JobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n": types.SourcePickerJobsCountWatchDocument, + "\n query SourcePickerPodsCountFetch($kubeContext: String!, $namespace: String = \"\") {\n coreV1PodsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerPodsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n": types.SourcePickerPodsCountFetchDocument, + "\n subscription SourcePickerPodsCountWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n coreV1PodsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n": types.SourcePickerPodsCountWatchDocument, + "\n query SourcePickerReplicaSetsCountFetch($kubeContext: String!, $namespace: String = \"\") {\n appsV1ReplicaSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerReplicaSetsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n": types.SourcePickerReplicaSetsCountFetchDocument, + "\n subscription SourcePickerReplicaSetsCountWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1ReplicaSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n": types.SourcePickerReplicaSetsCountWatchDocument, + "\n query SourcePickerStatefulSetsCountFetch($kubeContext: String!, $namespace: String = \"\") {\n appsV1StatefulSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerStatefulSetsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n": types.SourcePickerStatefulSetsCountFetchDocument, + "\n subscription SourcePickerStatefulSetsCountWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1StatefulSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n": types.SourcePickerStatefulSetsCountWatchDocument, + "\n query SourcePickerCronJobsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n batchV1CronJobsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerCronJobsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n": types.SourcePickerCronJobsListFetchDocument, + "\n subscription SourcePickerCronJobsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1CronJobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n": types.SourcePickerCronJobsListWatchDocument, + "\n query SourcePickerDaemonSetsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n appsV1DaemonSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerDaemonSetsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n": types.SourcePickerDaemonSetsListFetchDocument, + "\n subscription SourcePickerDaemonSetsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DaemonSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n": types.SourcePickerDaemonSetsListWatchDocument, + "\n query SourcePickerDeploymentsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n appsV1DeploymentsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerDeploymentsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n": types.SourcePickerDeploymentsListFetchDocument, + "\n subscription SourcePickerDeploymentsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DeploymentsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n": types.SourcePickerDeploymentsListWatchDocument, + "\n query SourcePickerJobsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n batchV1JobsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerJobsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n": types.SourcePickerJobsListFetchDocument, + "\n subscription SourcePickerJobsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1JobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n": types.SourcePickerJobsListWatchDocument, + "\n query SourcePickerNamespacesListFetch($kubeContext: String!, $continue: String = \"\") {\n coreV1NamespacesList(kubeContext: $kubeContext, options: { limit: \"50\", continue: $continue }) {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n": types.SourcePickerNamespacesListFetchDocument, + "\n subscription SourcePickerNamespacesListWatch($kubeContext: String!, $resourceVersion: String = \"\") {\n coreV1NamespacesWatch(kubeContext: $kubeContext, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n": types.SourcePickerNamespacesListWatchDocument, + "\n query SourcePickerPodsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n coreV1PodsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerPodsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n": types.SourcePickerPodsListFetchDocument, + "\n subscription SourcePickerPodsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n coreV1PodsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n": types.SourcePickerPodsListWatchDocument, + "\n query SourcePickerReplicaSetsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n appsV1ReplicaSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerReplicaSetsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n": types.SourcePickerReplicaSetsListFetchDocument, + "\n subscription SourcePickerReplicaSetsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1ReplicaSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n": types.SourcePickerReplicaSetsListWatchDocument, + "\n query SourcePickerStatefulSetsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n appsV1StatefulSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerStatefulSetsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n": types.SourcePickerStatefulSetsListFetchDocument, + "\n subscription SourcePickerStatefulSetsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1StatefulSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeStatefulSetsListItemFragment\n }\n }\n }\n": types.SourcePickerStatefulSetsListWatchDocument, +}; + +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + * + * + * @example + * ```ts + * const query = gql(`query GetUser($id: ID!) { user(id: $id) { name } }`); + * ``` + * + * The query argument is unknown! + * Please regenerate the types. + */ +export function gql(source: string): unknown; + +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n fragment ConsoleLoggingResourcesGenericObjectFragment on Object {\n id\n metadata {\n namespace\n name\n uid\n creationTimestamp\n deletionTimestamp\n resourceVersion\n ownerReferences {\n name\n uid\n controller\n }\n }\n }\n"): (typeof documents)["\n fragment ConsoleLoggingResourcesGenericObjectFragment on Object {\n id\n metadata {\n namespace\n name\n uid\n creationTimestamp\n deletionTimestamp\n resourceVersion\n ownerReferences {\n name\n uid\n controller\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n fragment ConsoleLoggingResourcesCronJobFragment on BatchV1CronJob {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n jobTemplate {\n spec {\n selector {\n matchLabels\n }\n }\n }\n }\n }\n"): (typeof documents)["\n fragment ConsoleLoggingResourcesCronJobFragment on BatchV1CronJob {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n jobTemplate {\n spec {\n selector {\n matchLabels\n }\n }\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n fragment ConsoleLoggingResourcesDaemonSetFragment on AppsV1DaemonSet {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n selector {\n matchLabels\n }\n }\n }\n"): (typeof documents)["\n fragment ConsoleLoggingResourcesDaemonSetFragment on AppsV1DaemonSet {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n selector {\n matchLabels\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n fragment ConsoleLoggingResourcesDeploymentFragment on AppsV1Deployment {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n selector {\n matchLabels\n }\n }\n }\n"): (typeof documents)["\n fragment ConsoleLoggingResourcesDeploymentFragment on AppsV1Deployment {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n selector {\n matchLabels\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n fragment ConsoleLoggingResourcesJobFragment on BatchV1Job {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n selector {\n matchLabels\n }\n }\n }\n"): (typeof documents)["\n fragment ConsoleLoggingResourcesJobFragment on BatchV1Job {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n selector {\n matchLabels\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n fragment ConsoleLoggingResourcesPodFragment on CoreV1Pod {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n containers {\n name\n }\n nodeName\n }\n status {\n containerStatuses {\n name\n started\n state {\n running {\n startedAt\n }\n terminated {\n exitCode\n }\n }\n }\n }\n }\n"): (typeof documents)["\n fragment ConsoleLoggingResourcesPodFragment on CoreV1Pod {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n containers {\n name\n }\n nodeName\n }\n status {\n containerStatuses {\n name\n started\n state {\n running {\n startedAt\n }\n terminated {\n exitCode\n }\n }\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n fragment ConsoleLoggingResourcesReplicaSetFragment on AppsV1ReplicaSet {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n selector {\n matchLabels\n }\n }\n }\n"): (typeof documents)["\n fragment ConsoleLoggingResourcesReplicaSetFragment on AppsV1ReplicaSet {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n selector {\n matchLabels\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n fragment ConsoleLoggingResourcesStatefulSetFragment on AppsV1StatefulSet {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n selector {\n matchLabels\n }\n }\n }\n"): (typeof documents)["\n fragment ConsoleLoggingResourcesStatefulSetFragment on AppsV1StatefulSet {\n ...ConsoleLoggingResourcesGenericObjectFragment\n spec {\n selector {\n matchLabels\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n fragment ConsoleLoggingResourcesJobsFindFragment on BatchV1Job {\n id\n metadata {\n namespace\n name\n uid\n deletionTimestamp\n resourceVersion\n ownerReferences {\n name\n uid\n controller\n }\n }\n spec {\n selector {\n matchLabels\n }\n }\n }\n"): (typeof documents)["\n fragment ConsoleLoggingResourcesJobsFindFragment on BatchV1Job {\n id\n metadata {\n namespace\n name\n uid\n deletionTimestamp\n resourceVersion\n ownerReferences {\n name\n uid\n controller\n }\n }\n spec {\n selector {\n matchLabels\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n fragment ConsoleNodesListItemFragment on CoreV1Node {\n id\n metadata {\n name\n uid\n creationTimestamp\n deletionTimestamp\n resourceVersion\n labels\n annotations\n }\n }\n"): (typeof documents)["\n fragment ConsoleNodesListItemFragment on CoreV1Node {\n id\n metadata {\n name\n uid\n creationTimestamp\n deletionTimestamp\n resourceVersion\n labels\n annotations\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n fragment HealthCheckResponseFragment on HealthCheckResponse {\n status\n message\n timestamp\n }\n"): (typeof documents)["\n fragment HealthCheckResponseFragment on HealthCheckResponse {\n status\n message\n timestamp\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n fragment HomeCronJobsListItemFragment on BatchV1CronJob {\n ...HomeGenericListItemFragment\n }\n"): (typeof documents)["\n fragment HomeCronJobsListItemFragment on BatchV1CronJob {\n ...HomeGenericListItemFragment\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n fragment HomeDaemonSetsListItemFragment on AppsV1DaemonSet {\n ...HomeGenericListItemFragment\n }\n"): (typeof documents)["\n fragment HomeDaemonSetsListItemFragment on AppsV1DaemonSet {\n ...HomeGenericListItemFragment\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n fragment HomeDeploymentsListItemFragment on AppsV1Deployment {\n ...HomeGenericListItemFragment\n }\n"): (typeof documents)["\n fragment HomeDeploymentsListItemFragment on AppsV1Deployment {\n ...HomeGenericListItemFragment\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n fragment HomeJobsListItemFragment on BatchV1Job {\n ...HomeGenericListItemFragment\n }\n"): (typeof documents)["\n fragment HomeJobsListItemFragment on BatchV1Job {\n ...HomeGenericListItemFragment\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n fragment HomeGenericListFragment on List {\n metadata {\n continue\n resourceVersion\n }\n }\n"): (typeof documents)["\n fragment HomeGenericListFragment on List {\n metadata {\n continue\n resourceVersion\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n fragment HomeGenericListItemFragment on Object {\n id\n metadata {\n namespace\n name\n uid\n creationTimestamp\n deletionTimestamp\n resourceVersion\n ownerReferences {\n name\n uid\n controller\n }\n }\n }\n"): (typeof documents)["\n fragment HomeGenericListItemFragment on Object {\n id\n metadata {\n namespace\n name\n uid\n creationTimestamp\n deletionTimestamp\n resourceVersion\n ownerReferences {\n name\n uid\n controller\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n fragment HomeNamespacesListItemFragment on CoreV1Namespace {\n ...HomeGenericListItemFragment\n }\n"): (typeof documents)["\n fragment HomeNamespacesListItemFragment on CoreV1Namespace {\n ...HomeGenericListItemFragment\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n fragment HomePodsListItemFragment on CoreV1Pod {\n ...HomeGenericListItemFragment\n status {\n containerStatuses {\n containerID\n started\n }\n }\n }\n"): (typeof documents)["\n fragment HomePodsListItemFragment on CoreV1Pod {\n ...HomeGenericListItemFragment\n status {\n containerStatuses {\n containerID\n started\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n fragment HomeReplicaSetsListItemFragment on AppsV1ReplicaSet {\n ...HomeGenericListItemFragment\n }\n"): (typeof documents)["\n fragment HomeReplicaSetsListItemFragment on AppsV1ReplicaSet {\n ...HomeGenericListItemFragment\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n fragment HomeStatefulSetsListItemFragment on AppsV1StatefulSet {\n ...HomeGenericListItemFragment\n }\n"): (typeof documents)["\n fragment HomeStatefulSetsListItemFragment on AppsV1StatefulSet {\n ...HomeGenericListItemFragment\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n fragment KubeConfigFragment on KubeConfig {\n currentContext\n contexts {\n name\n cluster\n namespace\n }\n }\n"): (typeof documents)["\n fragment KubeConfigFragment on KubeConfig {\n currentContext\n contexts {\n name\n cluster\n namespace\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n fragment PodLogQueryResponseFragment on PodLogQueryResponse {\n results {\n timestamp\n message\n }\n pageInfo {\n hasPreviousPage\n hasNextPage\n startCursor\n endCursor\n }\n }\n"): (typeof documents)["\n fragment PodLogQueryResponseFragment on PodLogQueryResponse {\n results {\n timestamp\n message\n }\n pageInfo {\n hasPreviousPage\n hasNextPage\n startCursor\n endCursor\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n fragment SourcePickerGenericCounterFragment on List {\n metadata {\n remainingItemCount\n resourceVersion\n }\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n"): (typeof documents)["\n fragment SourcePickerGenericCounterFragment on List {\n metadata {\n remainingItemCount\n resourceVersion\n }\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n fragment SourcePickerGenericCounterItemFragment on Object {\n id\n metadata {\n resourceVersion\n }\n }\n"): (typeof documents)["\n fragment SourcePickerGenericCounterItemFragment on Object {\n id\n metadata {\n resourceVersion\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n fragment SourcePickerGenericListFragment on List {\n metadata {\n continue\n resourceVersion\n }\n }\n"): (typeof documents)["\n fragment SourcePickerGenericListFragment on List {\n metadata {\n continue\n resourceVersion\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n fragment SourcePickerGenericListItemFragment on Object {\n id\n metadata {\n namespace\n name\n uid\n creationTimestamp\n deletionTimestamp\n resourceVersion\n }\n }\n"): (typeof documents)["\n fragment SourcePickerGenericListItemFragment on Object {\n id\n metadata {\n namespace\n name\n uid\n creationTimestamp\n deletionTimestamp\n resourceVersion\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query ConsoleLoggingResourcesCronJobGet($kubeContext: String!, $namespace: String!, $name: String!) {\n batchV1CronJobsGet(kubeContext: $kubeContext, namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesCronJobFragment\n }\n }\n"): (typeof documents)["\n query ConsoleLoggingResourcesCronJobGet($kubeContext: String!, $namespace: String!, $name: String!) {\n batchV1CronJobsGet(kubeContext: $kubeContext, namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesCronJobFragment\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription ConsoleLoggingResourcesCronJobWatch($kubeContext: String!, $namespace: String!, $fieldSelector: String!) {\n batchV1CronJobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesCronJobFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ConsoleLoggingResourcesCronJobWatch($kubeContext: String!, $namespace: String!, $fieldSelector: String!) {\n batchV1CronJobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesCronJobFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query ConsoleLoggingResourcesDaemonSetGet($kubeContext: String!, $namespace: String!, $name: String!) {\n appsV1DaemonSetsGet(kubeContext: $kubeContext, namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesDaemonSetFragment\n } \n }\n"): (typeof documents)["\n query ConsoleLoggingResourcesDaemonSetGet($kubeContext: String!, $namespace: String!, $name: String!) {\n appsV1DaemonSetsGet(kubeContext: $kubeContext, namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesDaemonSetFragment\n } \n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription ConsoleLoggingResourcesDaemonSetWatch($kubeContext: String!, $namespace: String!, $fieldSelector: String!) {\n appsV1DaemonSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesDaemonSetFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ConsoleLoggingResourcesDaemonSetWatch($kubeContext: String!, $namespace: String!, $fieldSelector: String!) {\n appsV1DaemonSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesDaemonSetFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query ConsoleLoggingResourcesDeploymentGet($kubeContext: String!, $namespace: String!, $name: String!) {\n appsV1DeploymentsGet(kubeContext: $kubeContext, namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesDeploymentFragment\n } \n }\n"): (typeof documents)["\n query ConsoleLoggingResourcesDeploymentGet($kubeContext: String!, $namespace: String!, $name: String!) {\n appsV1DeploymentsGet(kubeContext: $kubeContext, namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesDeploymentFragment\n } \n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription ConsoleLoggingResourcesDeploymentWatch($kubeContext: String!, $namespace: String!, $fieldSelector: String!) {\n appsV1DeploymentsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesDeploymentFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ConsoleLoggingResourcesDeploymentWatch($kubeContext: String!, $namespace: String!, $fieldSelector: String!) {\n appsV1DeploymentsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesDeploymentFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query ConsoleLoggingResourcesJobGet($kubeContext: String!, $namespace: String!, $name: String!) {\n batchV1JobsGet(kubeContext: $kubeContext, namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesJobFragment\n }\n }\n"): (typeof documents)["\n query ConsoleLoggingResourcesJobGet($kubeContext: String!, $namespace: String!, $name: String!) {\n batchV1JobsGet(kubeContext: $kubeContext, namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesJobFragment\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription ConsoleLoggingResourcesJobWatch($kubeContext: String!, $namespace: String!, $fieldSelector: String!) {\n batchV1JobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesJobFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ConsoleLoggingResourcesJobWatch($kubeContext: String!, $namespace: String!, $fieldSelector: String!) {\n batchV1JobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesJobFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query ConsoleLoggingResourcesPodGet($kubeContext: String!, $namespace: String!, $name: String!) {\n coreV1PodsGet(kubeContext: $kubeContext, namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n"): (typeof documents)["\n query ConsoleLoggingResourcesPodGet($kubeContext: String!, $namespace: String!, $name: String!) {\n coreV1PodsGet(kubeContext: $kubeContext, namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription ConsoleLoggingResourcesPodWatch($kubeContext: String!, $namespace: String!, $fieldSelector: String!) {\n coreV1PodsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ConsoleLoggingResourcesPodWatch($kubeContext: String!, $namespace: String!, $fieldSelector: String!) {\n coreV1PodsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query ConsolePodsListFetch($kubeContext: String!, $namespace: String!, $continue: String = \"\") {\n coreV1PodsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n metadata {\n continue\n resourceVersion\n }\n items {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n }\n"): (typeof documents)["\n query ConsolePodsListFetch($kubeContext: String!, $namespace: String!, $continue: String = \"\") {\n coreV1PodsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n metadata {\n continue\n resourceVersion\n }\n items {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription ConsolePodsListWatch($kubeContext: String!, $namespace: String!, $resourceVersion: String = \"\") {\n coreV1PodsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ConsolePodsListWatch($kubeContext: String!, $namespace: String!, $resourceVersion: String = \"\") {\n coreV1PodsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query ConsoleLoggingResourcesReplicaSetGet($kubeContext: String!, $namespace: String!, $name: String!) {\n appsV1ReplicaSetsGet(kubeContext: $kubeContext, namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesReplicaSetFragment\n }\n }\n"): (typeof documents)["\n query ConsoleLoggingResourcesReplicaSetGet($kubeContext: String!, $namespace: String!, $name: String!) {\n appsV1ReplicaSetsGet(kubeContext: $kubeContext, namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesReplicaSetFragment\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription ConsoleLoggingResourcesReplicaSetWatch($kubeContext: String!, $namespace: String!, $fieldSelector: String!) {\n appsV1ReplicaSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesReplicaSetFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ConsoleLoggingResourcesReplicaSetWatch($kubeContext: String!, $namespace: String!, $fieldSelector: String!) {\n appsV1ReplicaSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesReplicaSetFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query ConsoleLoggingResourcesStatefulSetGet($kubeContext: String!, $namespace: String!, $name: String!) {\n appsV1StatefulSetsGet(kubeContext: $kubeContext, namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesStatefulSetFragment\n } \n }\n"): (typeof documents)["\n query ConsoleLoggingResourcesStatefulSetGet($kubeContext: String!, $namespace: String!, $name: String!) {\n appsV1StatefulSetsGet(kubeContext: $kubeContext, namespace: $namespace, name: $name) {\n ...ConsoleLoggingResourcesStatefulSetFragment\n } \n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription ConsoleLoggingResourcesStatefulSetWatch($kubeContext: String!, $namespace: String!, $fieldSelector: String!) {\n appsV1StatefulSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesStatefulSetFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ConsoleLoggingResourcesStatefulSetWatch($kubeContext: String!, $namespace: String!, $fieldSelector: String!) {\n appsV1StatefulSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { fieldSelector: $fieldSelector }) {\n type\n object {\n ...ConsoleLoggingResourcesStatefulSetFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query ConsoleLoggingResourcesJobsFind($kubeContext: String!, $namespace: String!, $continue: String = \"\") {\n batchV1JobsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n metadata {\n continue\n resourceVersion\n }\n items {\n ...ConsoleLoggingResourcesJobsFindFragment\n }\n }\n }\n"): (typeof documents)["\n query ConsoleLoggingResourcesJobsFind($kubeContext: String!, $namespace: String!, $continue: String = \"\") {\n batchV1JobsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n metadata {\n continue\n resourceVersion\n }\n items {\n ...ConsoleLoggingResourcesJobsFindFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription ConsoleStreamsJobsWatch($kubeContext: String!, $namespace: String!, $resourceVersion: String = \"\") {\n batchV1JobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ConsoleLoggingResourcesJobFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ConsoleStreamsJobsWatch($kubeContext: String!, $namespace: String!, $resourceVersion: String = \"\") {\n batchV1JobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ConsoleLoggingResourcesJobFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query ConsoleLoggingResourcesPodsFind($kubeContext: String!, $namespace: String!, $labelSelector: String!, $continue: String = \"\") {\n coreV1PodsList(kubeContext: $kubeContext, namespace: $namespace, options: { labelSelector: $labelSelector, continue: $continue }) {\n metadata {\n continue\n resourceVersion\n }\n items {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n }\n"): (typeof documents)["\n query ConsoleLoggingResourcesPodsFind($kubeContext: String!, $namespace: String!, $labelSelector: String!, $continue: String = \"\") {\n coreV1PodsList(kubeContext: $kubeContext, namespace: $namespace, options: { labelSelector: $labelSelector, continue: $continue }) {\n metadata {\n continue\n resourceVersion\n }\n items {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription ConsoleLoggingResourcesPodsWatch($kubeContext: String!, $namespace: String!, $labelSelector: String!, $resourceVersion: String = \"\") {\n coreV1PodsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { labelSelector: $labelSelector, resourceVersion: $resourceVersion }) {\n type\n object {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ConsoleLoggingResourcesPodsWatch($kubeContext: String!, $namespace: String!, $labelSelector: String!, $resourceVersion: String = \"\") {\n coreV1PodsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { labelSelector: $labelSelector, resourceVersion: $resourceVersion }) {\n type\n object {\n ...ConsoleLoggingResourcesPodFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query ConsoleNodesListFetch($kubeContext: String!, $continue: String = \"\") {\n coreV1NodesList(kubeContext: $kubeContext, options: { limit: \"50\", continue: $continue }) {\n metadata {\n continue\n resourceVersion\n }\n items {\n ...ConsoleNodesListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query ConsoleNodesListFetch($kubeContext: String!, $continue: String = \"\") {\n coreV1NodesList(kubeContext: $kubeContext, options: { limit: \"50\", continue: $continue }) {\n metadata {\n continue\n resourceVersion\n }\n items {\n ...ConsoleNodesListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription ConsoleNodesListWatch($kubeContext: String!, $resourceVersion: String = \"\") {\n coreV1NodesWatch(kubeContext: $kubeContext, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ConsoleNodesListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription ConsoleNodesListWatch($kubeContext: String!, $resourceVersion: String = \"\") {\n coreV1NodesWatch(kubeContext: $kubeContext, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...ConsoleNodesListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query HomeCronJobsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n batchV1CronJobsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeCronJobsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query HomeCronJobsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n batchV1CronJobsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeCronJobsListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription HomeCronJobsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1CronJobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeCronJobsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription HomeCronJobsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1CronJobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeCronJobsListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query HomeDaemonSetsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n appsV1DaemonSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeDaemonSetsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query HomeDaemonSetsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n appsV1DaemonSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeDaemonSetsListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription HomeDaemonSetsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DaemonSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeDaemonSetsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription HomeDaemonSetsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DaemonSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeDaemonSetsListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query HomeDeploymentsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n appsV1DeploymentsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeDeploymentsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query HomeDeploymentsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n appsV1DeploymentsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeDeploymentsListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription HomeDeploymentsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DeploymentsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeDeploymentsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription HomeDeploymentsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DeploymentsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeDeploymentsListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query HomeJobsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n batchV1JobsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeJobsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query HomeJobsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n batchV1JobsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeJobsListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription HomeJobsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1JobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeJobsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription HomeJobsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1JobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeJobsListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query HomeNamespacesListFetch($kubeContext: String!, $continue: String = \"\") {\n coreV1NamespacesList(kubeContext: $kubeContext, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeNamespacesListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query HomeNamespacesListFetch($kubeContext: String!, $continue: String = \"\") {\n coreV1NamespacesList(kubeContext: $kubeContext, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeNamespacesListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription HomeNamespacesListWatch($kubeContext: String!, $resourceVersion: String = \"\") {\n coreV1NamespacesWatch(kubeContext: $kubeContext, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeNamespacesListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription HomeNamespacesListWatch($kubeContext: String!, $resourceVersion: String = \"\") {\n coreV1NamespacesWatch(kubeContext: $kubeContext, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeNamespacesListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query HomePodsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n coreV1PodsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomePodsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query HomePodsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n coreV1PodsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomePodsListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription HomePodsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n coreV1PodsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomePodsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription HomePodsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n coreV1PodsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomePodsListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query HomeReplicaSetsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n appsV1ReplicaSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeReplicaSetsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query HomeReplicaSetsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n appsV1ReplicaSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeReplicaSetsListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription HomeReplicaSetsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1ReplicaSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeReplicaSetsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription HomeReplicaSetsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1ReplicaSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeReplicaSetsListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query HomeStatefulSetsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n appsV1StatefulSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeStatefulSetsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query HomeStatefulSetsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n appsV1StatefulSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) {\n ...HomeGenericListFragment\n items {\n ...HomeStatefulSetsListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription HomeStatefulSetsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1StatefulSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeStatefulSetsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription HomeStatefulSetsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1StatefulSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeStatefulSetsListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query KubeConfigGet {\n kubeConfigGet {\n ...KubeConfigFragment\n }\n }\n"): (typeof documents)["\n query KubeConfigGet {\n kubeConfigGet {\n ...KubeConfigFragment\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription KubeConfigWatch {\n kubeConfigWatch {\n type\n object {\n ...KubeConfigFragment\n }\n }\n }\n"): (typeof documents)["\n subscription KubeConfigWatch {\n kubeConfigWatch {\n type\n object {\n ...KubeConfigFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query KubernetesAPIReadyWait($kubeContext: String) {\n kubernetesAPIReadyWait(kubeContext: $kubeContext)\n }\n"): (typeof documents)["\n query KubernetesAPIReadyWait($kubeContext: String) {\n kubernetesAPIReadyWait(kubeContext: $kubeContext)\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n mutation KubetailClusterAPIInstall($kubeContext: String!) {\n kubetailClusterAPIInstall(kubeContext: $kubeContext)\n }\n"): (typeof documents)["\n mutation KubetailClusterAPIInstall($kubeContext: String!) {\n kubetailClusterAPIInstall(kubeContext: $kubeContext)\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query KubetailClusterAPIReadyWait($kubeContext: String!, $namespace: String!, $serviceName: String!) {\n kubetailClusterAPIReadyWait(kubeContext: $kubeContext, namespace: $namespace, serviceName: $serviceName)\n }\n"): (typeof documents)["\n query KubetailClusterAPIReadyWait($kubeContext: String!, $namespace: String!, $serviceName: String!) {\n kubetailClusterAPIReadyWait(kubeContext: $kubeContext, namespace: $namespace, serviceName: $serviceName)\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query PodLogHead($kubeContext: String!, $namespace: String!, $name: String!, $container: String, $after: ID, $since: String, $first: Int) {\n podLogHead(kubeContext: $kubeContext, namespace: $namespace, name: $name, container: $container, after: $after, since: $since, first: $first) {\n ...PodLogQueryResponseFragment\n }\n }\n"): (typeof documents)["\n query PodLogHead($kubeContext: String!, $namespace: String!, $name: String!, $container: String, $after: ID, $since: String, $first: Int) {\n podLogHead(kubeContext: $kubeContext, namespace: $namespace, name: $name, container: $container, after: $after, since: $since, first: $first) {\n ...PodLogQueryResponseFragment\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query PodLogTail($kubeContext: String!, $namespace: String!, $name: String!, $container: String, $before: ID, $last: Int) {\n podLogTail(kubeContext: $kubeContext, namespace: $namespace, name: $name, container: $container, before: $before, last: $last) {\n ...PodLogQueryResponseFragment\n }\n }\n"): (typeof documents)["\n query PodLogTail($kubeContext: String!, $namespace: String!, $name: String!, $container: String, $before: ID, $last: Int) {\n podLogTail(kubeContext: $kubeContext, namespace: $namespace, name: $name, container: $container, before: $before, last: $last) {\n ...PodLogQueryResponseFragment\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription PodLogFollow($kubeContext: String!, $namespace: String!, $name: String!, $container: String, $after: ID, $since: String) {\n podLogFollow(kubeContext: $kubeContext, namespace: $namespace, name: $name, container: $container, after: $after, since: $since) {\n timestamp\n message\n }\n }\n"): (typeof documents)["\n subscription PodLogFollow($kubeContext: String!, $namespace: String!, $name: String!, $container: String, $after: ID, $since: String) {\n podLogFollow(kubeContext: $kubeContext, namespace: $namespace, name: $name, container: $container, after: $after, since: $since) {\n timestamp\n message\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query ServerStatusKubernetesAPIHealthzGet($kubeContext: String!) {\n kubernetesAPIHealthzGet(kubeContext: $kubeContext) {\n ...HealthCheckResponseFragment\n }\n }\n"): (typeof documents)["\n query ServerStatusKubernetesAPIHealthzGet($kubeContext: String!) {\n kubernetesAPIHealthzGet(kubeContext: $kubeContext) {\n ...HealthCheckResponseFragment\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription ServerStatusKubernetesAPIHealthzWatch($kubeContext: String!) {\n kubernetesAPIHealthzWatch(kubeContext: $kubeContext) {\n ...HealthCheckResponseFragment\n }\n }\n"): (typeof documents)["\n subscription ServerStatusKubernetesAPIHealthzWatch($kubeContext: String!) {\n kubernetesAPIHealthzWatch(kubeContext: $kubeContext) {\n ...HealthCheckResponseFragment\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query ServerStatusKubetailClusterAPIHealthzGet($kubeContext: String!, $namespace: String, $serviceName: String) {\n kubetailClusterAPIHealthzGet(kubeContext: $kubeContext, namespace: $namespace, serviceName: $serviceName) {\n ...HealthCheckResponseFragment\n }\n }\n"): (typeof documents)["\n query ServerStatusKubetailClusterAPIHealthzGet($kubeContext: String!, $namespace: String, $serviceName: String) {\n kubetailClusterAPIHealthzGet(kubeContext: $kubeContext, namespace: $namespace, serviceName: $serviceName) {\n ...HealthCheckResponseFragment\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription ServerStatusKubetailClusterAPIHealthzWatch($kubeContext: String!, $namespace: String, $serviceName: String) {\n kubetailClusterAPIHealthzWatch(kubeContext: $kubeContext, namespace: $namespace, serviceName: $serviceName) {\n ...HealthCheckResponseFragment\n }\n }\n"): (typeof documents)["\n subscription ServerStatusKubetailClusterAPIHealthzWatch($kubeContext: String!, $namespace: String, $serviceName: String) {\n kubetailClusterAPIHealthzWatch(kubeContext: $kubeContext, namespace: $namespace, serviceName: $serviceName) {\n ...HealthCheckResponseFragment\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query SourcePickerCronJobsCountFetch($kubeContext: String!, $namespace: String = \"\") {\n batchV1CronJobsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerCronJobsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"): (typeof documents)["\n query SourcePickerCronJobsCountFetch($kubeContext: String!, $namespace: String = \"\") {\n batchV1CronJobsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerCronJobsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription SourcePickerCronJobsCountWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1CronJobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription SourcePickerCronJobsCountWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1CronJobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query SourcePickerDaemonSetsCountFetch($kubeContext: String!, $namespace: String = \"\") {\n appsV1DaemonSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerDaemonSetsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"): (typeof documents)["\n query SourcePickerDaemonSetsCountFetch($kubeContext: String!, $namespace: String = \"\") {\n appsV1DaemonSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerDaemonSetsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription SourcePickerDaemonSetsCountWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DaemonSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription SourcePickerDaemonSetsCountWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DaemonSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query SourcePickerDeploymentsCountFetch($kubeContext: String!, $namespace: String = \"\") {\n appsV1DeploymentsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerDeploymentsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"): (typeof documents)["\n query SourcePickerDeploymentsCountFetch($kubeContext: String!, $namespace: String = \"\") {\n appsV1DeploymentsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerDeploymentsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription SourcePickerDeploymentsCountWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DeploymentsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription SourcePickerDeploymentsCountWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DeploymentsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query SourcePickerJobsCountFetch($kubeContext: String!, $namespace: String = \"\") {\n batchV1JobsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerJobsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"): (typeof documents)["\n query SourcePickerJobsCountFetch($kubeContext: String!, $namespace: String = \"\") {\n batchV1JobsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerJobsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription SourcePickerJobsCountWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1JobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription SourcePickerJobsCountWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1JobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query SourcePickerPodsCountFetch($kubeContext: String!, $namespace: String = \"\") {\n coreV1PodsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerPodsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"): (typeof documents)["\n query SourcePickerPodsCountFetch($kubeContext: String!, $namespace: String = \"\") {\n coreV1PodsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerPodsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription SourcePickerPodsCountWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n coreV1PodsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription SourcePickerPodsCountWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n coreV1PodsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query SourcePickerReplicaSetsCountFetch($kubeContext: String!, $namespace: String = \"\") {\n appsV1ReplicaSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerReplicaSetsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"): (typeof documents)["\n query SourcePickerReplicaSetsCountFetch($kubeContext: String!, $namespace: String = \"\") {\n appsV1ReplicaSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerReplicaSetsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription SourcePickerReplicaSetsCountWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1ReplicaSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription SourcePickerReplicaSetsCountWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1ReplicaSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query SourcePickerStatefulSetsCountFetch($kubeContext: String!, $namespace: String = \"\") {\n appsV1StatefulSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerStatefulSetsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"): (typeof documents)["\n query SourcePickerStatefulSetsCountFetch($kubeContext: String!, $namespace: String = \"\") {\n appsV1StatefulSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"1\" }) @connection(key: \"SourcePickerStatefulSetsCountFetch\") {\n ...SourcePickerGenericCounterFragment\n items {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription SourcePickerStatefulSetsCountWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1StatefulSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription SourcePickerStatefulSetsCountWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1StatefulSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericCounterItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query SourcePickerCronJobsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n batchV1CronJobsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerCronJobsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query SourcePickerCronJobsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n batchV1CronJobsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerCronJobsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription SourcePickerCronJobsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1CronJobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription SourcePickerCronJobsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1CronJobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query SourcePickerDaemonSetsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n appsV1DaemonSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerDaemonSetsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query SourcePickerDaemonSetsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n appsV1DaemonSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerDaemonSetsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription SourcePickerDaemonSetsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DaemonSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription SourcePickerDaemonSetsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DaemonSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query SourcePickerDeploymentsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n appsV1DeploymentsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerDeploymentsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query SourcePickerDeploymentsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n appsV1DeploymentsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerDeploymentsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription SourcePickerDeploymentsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DeploymentsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription SourcePickerDeploymentsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1DeploymentsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query SourcePickerJobsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n batchV1JobsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerJobsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query SourcePickerJobsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n batchV1JobsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerJobsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription SourcePickerJobsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1JobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription SourcePickerJobsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n batchV1JobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query SourcePickerNamespacesListFetch($kubeContext: String!, $continue: String = \"\") {\n coreV1NamespacesList(kubeContext: $kubeContext, options: { limit: \"50\", continue: $continue }) {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query SourcePickerNamespacesListFetch($kubeContext: String!, $continue: String = \"\") {\n coreV1NamespacesList(kubeContext: $kubeContext, options: { limit: \"50\", continue: $continue }) {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription SourcePickerNamespacesListWatch($kubeContext: String!, $resourceVersion: String = \"\") {\n coreV1NamespacesWatch(kubeContext: $kubeContext, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription SourcePickerNamespacesListWatch($kubeContext: String!, $resourceVersion: String = \"\") {\n coreV1NamespacesWatch(kubeContext: $kubeContext, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query SourcePickerPodsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n coreV1PodsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerPodsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query SourcePickerPodsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n coreV1PodsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerPodsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription SourcePickerPodsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n coreV1PodsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription SourcePickerPodsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n coreV1PodsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query SourcePickerReplicaSetsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n appsV1ReplicaSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerReplicaSetsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query SourcePickerReplicaSetsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n appsV1ReplicaSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerReplicaSetsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription SourcePickerReplicaSetsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1ReplicaSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription SourcePickerReplicaSetsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1ReplicaSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n query SourcePickerStatefulSetsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n appsV1StatefulSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerStatefulSetsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"): (typeof documents)["\n query SourcePickerStatefulSetsListFetch($kubeContext: String!, $namespace: String = \"\", $continue: String = \"\") {\n appsV1StatefulSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: \"50\", continue: $continue }) @connection(key: \"SourcePickerStatefulSetsListFetch\") {\n ...SourcePickerGenericListFragment\n items {\n ...SourcePickerGenericListItemFragment\n }\n }\n }\n"]; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql(source: "\n subscription SourcePickerStatefulSetsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1StatefulSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeStatefulSetsListItemFragment\n }\n }\n }\n"): (typeof documents)["\n subscription SourcePickerStatefulSetsListWatch($kubeContext: String!, $namespace: String = \"\", $resourceVersion: String = \"\") {\n appsV1StatefulSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) {\n type\n object {\n ...HomeStatefulSetsListItemFragment\n }\n }\n }\n"]; + +export function gql(source: string) { + return (documents as any)[source] ?? {}; +} + +export type DocumentType> = TDocumentNode extends DocumentNode< infer TType, any> ? TType : never; \ No newline at end of file diff --git a/dashboard-ui/src/lib/graphql/dashboard/__generated__/graphql.ts b/dashboard-ui/src/lib/graphql/dashboard/__generated__/graphql.ts new file mode 100644 index 00000000..737deba7 --- /dev/null +++ b/dashboard-ui/src/lib/graphql/dashboard/__generated__/graphql.ts @@ -0,0 +1,2003 @@ +/* eslint-disable */ +import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core'; +export type Maybe = T | null; +export type InputMaybe = Maybe; +export type Exact = { [K in keyof T]: T[K] }; +export type MakeOptional = Omit & { [SubKey in K]?: Maybe }; +export type MakeMaybe = Omit & { [SubKey in K]: Maybe }; +export type MakeEmpty = { [_ in K]?: never }; +export type Incremental = T | { [P in keyof T]?: P extends ' $fragmentName' | '__typename' ? T[P] : never }; +/** All built-in and custom scalars, mapped to their actual values */ +export type Scalars = { + ID: { input: string; output: string; } + String: { input: string; output: string; } + Boolean: { input: boolean; output: boolean; } + Int: { input: number; output: number; } + Float: { input: number; output: number; } + AppsV1DaemonSetConditionType: { input: any; output: any; } + /** A 64-bit integer. */ + Int64: { input: any; output: any; } + KubeConfigExtensions: { input: any; output: any; } + /** An ISO-8601 encoded UTC date string. */ + MetaV1Time: { input: any; output: any; } + /** An arbitrary dictionary with string values */ + StringMap: { input: any; output: any; } + /** An ISO-8601 encoded UTC date string. */ + Time: { input: any; output: any; } +}; + +export type AppsV1DaemonSet = Object & { + __typename?: 'AppsV1DaemonSet'; + apiVersion: Scalars['String']['output']; + id: Scalars['ID']['output']; + kind: Scalars['String']['output']; + metadata: MetaV1ObjectMeta; + spec: AppsV1DaemonSetSpec; + status: AppsV1DaemonSetStatus; +}; + +export type AppsV1DaemonSetCondition = { + __typename?: 'AppsV1DaemonSetCondition'; + lastTransitionTime: Scalars['MetaV1Time']['output']; + message: Scalars['String']['output']; + reason: Scalars['String']['output']; + status: CoreV1ConditionStatus; + type: Scalars['AppsV1DaemonSetConditionType']['output']; +}; + +export type AppsV1DaemonSetList = List & { + __typename?: 'AppsV1DaemonSetList'; + apiVersion: Scalars['String']['output']; + items: Array; + kind: Scalars['String']['output']; + metadata: MetaV1ListMeta; +}; + +export type AppsV1DaemonSetSpec = { + __typename?: 'AppsV1DaemonSetSpec'; + selector?: Maybe; +}; + +export type AppsV1DaemonSetStatus = { + __typename?: 'AppsV1DaemonSetStatus'; + conditions: Array; + currentNumberScheduled: Scalars['Int']['output']; + desiredNumberScheduled: Scalars['Int']['output']; + numberAvailable: Scalars['Int']['output']; + numberMisscheduled: Scalars['Int']['output']; + numberReady: Scalars['Int']['output']; + numberUnavailable: Scalars['Int']['output']; + observedGeneration: Scalars['Int64']['output']; + updatedNumberScheduled: Scalars['Int']['output']; +}; + +export type AppsV1DaemonSetsWatchEvent = { + __typename?: 'AppsV1DaemonSetsWatchEvent'; + object?: Maybe; + type: WatchEventType; +}; + +export type AppsV1Deployment = Object & { + __typename?: 'AppsV1Deployment'; + apiVersion: Scalars['String']['output']; + id: Scalars['ID']['output']; + kind: Scalars['String']['output']; + metadata: MetaV1ObjectMeta; + spec: AppsV1DeploymentSpec; + status: AppsV1DeploymentStatus; +}; + +export type AppsV1DeploymentList = List & { + __typename?: 'AppsV1DeploymentList'; + apiVersion: Scalars['String']['output']; + items: Array; + kind: Scalars['String']['output']; + metadata: MetaV1ListMeta; +}; + +export type AppsV1DeploymentSpec = { + __typename?: 'AppsV1DeploymentSpec'; + paused: Scalars['Boolean']['output']; + replicas?: Maybe; + selector?: Maybe; +}; + +export type AppsV1DeploymentStatus = { + __typename?: 'AppsV1DeploymentStatus'; + replicas: Scalars['Int']['output']; +}; + +export type AppsV1DeploymentsWatchEvent = { + __typename?: 'AppsV1DeploymentsWatchEvent'; + object?: Maybe; + type: WatchEventType; +}; + +export type AppsV1ReplicaSet = Object & { + __typename?: 'AppsV1ReplicaSet'; + apiVersion: Scalars['String']['output']; + id: Scalars['ID']['output']; + kind: Scalars['String']['output']; + metadata: MetaV1ObjectMeta; + spec: AppsV1ReplicaSetSpec; + status: AppsV1ReplicaSetStatus; +}; + +export type AppsV1ReplicaSetList = List & { + __typename?: 'AppsV1ReplicaSetList'; + apiVersion: Scalars['String']['output']; + items: Array; + kind: Scalars['String']['output']; + metadata: MetaV1ListMeta; +}; + +export type AppsV1ReplicaSetSpec = { + __typename?: 'AppsV1ReplicaSetSpec'; + replicas?: Maybe; + selector?: Maybe; +}; + +export type AppsV1ReplicaSetStatus = { + __typename?: 'AppsV1ReplicaSetStatus'; + replicas: Scalars['Int']['output']; +}; + +export type AppsV1ReplicaSetsWatchEvent = { + __typename?: 'AppsV1ReplicaSetsWatchEvent'; + object?: Maybe; + type: WatchEventType; +}; + +export type AppsV1StatefulSet = Object & { + __typename?: 'AppsV1StatefulSet'; + apiVersion: Scalars['String']['output']; + id: Scalars['ID']['output']; + kind: Scalars['String']['output']; + metadata: MetaV1ObjectMeta; + spec: AppsV1StatefulSetSpec; +}; + +export type AppsV1StatefulSetList = List & { + __typename?: 'AppsV1StatefulSetList'; + apiVersion: Scalars['String']['output']; + items: Array; + kind: Scalars['String']['output']; + metadata: MetaV1ListMeta; +}; + +export type AppsV1StatefulSetSpec = { + __typename?: 'AppsV1StatefulSetSpec'; + replicas?: Maybe; + selector?: Maybe; +}; + +export type AppsV1StatefulSetsWatchEvent = { + __typename?: 'AppsV1StatefulSetsWatchEvent'; + object?: Maybe; + type: WatchEventType; +}; + +export type BatchV1CronJob = Object & { + __typename?: 'BatchV1CronJob'; + apiVersion: Scalars['String']['output']; + id: Scalars['ID']['output']; + kind: Scalars['String']['output']; + metadata: MetaV1ObjectMeta; + spec: BatchV1CronJobSpec; + status: BatchV1CronJobStatus; +}; + +export type BatchV1CronJobList = List & { + __typename?: 'BatchV1CronJobList'; + apiVersion: Scalars['String']['output']; + items: Array; + kind: Scalars['String']['output']; + metadata: MetaV1ListMeta; +}; + +export type BatchV1CronJobSpec = { + __typename?: 'BatchV1CronJobSpec'; + failedJobsHistoryLimit?: Maybe; + jobTemplate: BatchV1JobTemplateSpec; + schedule: Scalars['String']['output']; + successfulJobsHistoryLimit?: Maybe; + suspend?: Maybe; + timeZone?: Maybe; +}; + +export type BatchV1CronJobStatus = { + __typename?: 'BatchV1CronJobStatus'; + active: Array; + lastScheduleTime?: Maybe; + lastSuccessfulTime?: Maybe; +}; + +export type BatchV1CronJobsWatchEvent = { + __typename?: 'BatchV1CronJobsWatchEvent'; + object?: Maybe; + type: WatchEventType; +}; + +export type BatchV1Job = Object & { + __typename?: 'BatchV1Job'; + apiVersion: Scalars['String']['output']; + id: Scalars['ID']['output']; + kind: Scalars['String']['output']; + metadata: MetaV1ObjectMeta; + spec: BatchV1JobSpec; + status: BatchV1JobStatus; +}; + +export type BatchV1JobCondition = { + __typename?: 'BatchV1JobCondition'; + lastProbeTime: Scalars['MetaV1Time']['output']; + lastTransitionTime: Scalars['MetaV1Time']['output']; + message: Scalars['String']['output']; + reason: Scalars['String']['output']; + status: CoreV1ConditionStatus; + type: BatchV1JobConditionType; +}; + +export enum BatchV1JobConditionType { + Complete = 'Complete', + Failed = 'Failed', + FailureTarget = 'FailureTarget', + Suspended = 'Suspended' +} + +export type BatchV1JobList = List & { + __typename?: 'BatchV1JobList'; + apiVersion: Scalars['String']['output']; + items: Array; + kind: Scalars['String']['output']; + metadata: MetaV1ListMeta; +}; + +export type BatchV1JobSpec = { + __typename?: 'BatchV1JobSpec'; + backoffLimit?: Maybe; + completions?: Maybe; + manualSelector?: Maybe; + parallelism?: Maybe; + selector?: Maybe; + suspend?: Maybe; + ttlSecondsAfterFinished?: Maybe; +}; + +export type BatchV1JobStatus = { + __typename?: 'BatchV1JobStatus'; + active: Scalars['Int']['output']; + completedIndexes: Scalars['String']['output']; + completionTime?: Maybe; + conditions: Array; + failed: Scalars['Int']['output']; + ready?: Maybe; + startTime?: Maybe; + succeeded: Scalars['Int']['output']; +}; + +export type BatchV1JobTemplateSpec = { + __typename?: 'BatchV1JobTemplateSpec'; + metadata: MetaV1ObjectMeta; + spec: BatchV1JobSpec; +}; + +export type BatchV1JobsWatchEvent = { + __typename?: 'BatchV1JobsWatchEvent'; + object?: Maybe; + type: WatchEventType; +}; + +export enum CoreV1ConditionStatus { + False = 'False', + True = 'True', + Unknown = 'Unknown' +} + +export type CoreV1Container = { + __typename?: 'CoreV1Container'; + image: Scalars['String']['output']; + name: Scalars['String']['output']; +}; + +export type CoreV1ContainerState = { + __typename?: 'CoreV1ContainerState'; + running?: Maybe; + terminated?: Maybe; + waiting?: Maybe; +}; + +export type CoreV1ContainerStateRunning = { + __typename?: 'CoreV1ContainerStateRunning'; + startedAt: Scalars['MetaV1Time']['output']; +}; + +export type CoreV1ContainerStateTerminated = { + __typename?: 'CoreV1ContainerStateTerminated'; + containerID: Scalars['String']['output']; + exitCode: Scalars['Int']['output']; + message: Scalars['String']['output']; + reason: Scalars['String']['output']; + signal: Scalars['Int']['output']; +}; + +export type CoreV1ContainerStateWaiting = { + __typename?: 'CoreV1ContainerStateWaiting'; + message: Scalars['String']['output']; + reason: Scalars['String']['output']; +}; + +export type CoreV1ContainerStatus = { + __typename?: 'CoreV1ContainerStatus'; + containerID: Scalars['String']['output']; + image: Scalars['String']['output']; + imageID: Scalars['String']['output']; + lastTerminationState: CoreV1ContainerState; + name: Scalars['String']['output']; + ready: Scalars['Boolean']['output']; + restartCount: Scalars['Int']['output']; + started?: Maybe; + state: CoreV1ContainerState; +}; + +export type CoreV1Namespace = Object & { + __typename?: 'CoreV1Namespace'; + apiVersion: Scalars['String']['output']; + id: Scalars['ID']['output']; + kind: Scalars['String']['output']; + metadata: MetaV1ObjectMeta; +}; + +export type CoreV1NamespaceList = List & { + __typename?: 'CoreV1NamespaceList'; + apiVersion: Scalars['String']['output']; + items: Array; + kind: Scalars['String']['output']; + metadata: MetaV1ListMeta; +}; + +export type CoreV1NamespacesWatchEvent = { + __typename?: 'CoreV1NamespacesWatchEvent'; + object?: Maybe; + type: WatchEventType; +}; + +export type CoreV1Node = Object & { + __typename?: 'CoreV1Node'; + apiVersion: Scalars['String']['output']; + id: Scalars['ID']['output']; + kind: Scalars['String']['output']; + metadata: MetaV1ObjectMeta; +}; + +export type CoreV1NodeList = List & { + __typename?: 'CoreV1NodeList'; + apiVersion: Scalars['String']['output']; + items: Array; + kind: Scalars['String']['output']; + metadata: MetaV1ListMeta; +}; + +export type CoreV1NodesWatchEvent = { + __typename?: 'CoreV1NodesWatchEvent'; + object?: Maybe; + type: WatchEventType; +}; + +export type CoreV1ObjectReference = { + __typename?: 'CoreV1ObjectReference'; + apiVersion: Scalars['String']['output']; + fieldPath: Scalars['String']['output']; + kind: Scalars['String']['output']; + name: Scalars['String']['output']; + namespace: Scalars['String']['output']; + resourceVersion: Scalars['String']['output']; + uid: Scalars['ID']['output']; +}; + +export type CoreV1Pod = Object & { + __typename?: 'CoreV1Pod'; + apiVersion: Scalars['String']['output']; + id: Scalars['ID']['output']; + kind: Scalars['String']['output']; + metadata: MetaV1ObjectMeta; + spec: CoreV1PodSpec; + status: CoreV1PodStatus; +}; + +export type CoreV1PodList = List & { + __typename?: 'CoreV1PodList'; + apiVersion: Scalars['String']['output']; + items: Array; + kind: Scalars['String']['output']; + metadata: MetaV1ListMeta; +}; + +export type CoreV1PodLogOptions = { + container?: InputMaybe; + limitBytes?: InputMaybe; + previous?: InputMaybe; + sinceSeconds?: InputMaybe; + sinceTime?: InputMaybe; + tailLines?: InputMaybe; +}; + +export enum CoreV1PodPhase { + Failed = 'Failed', + Pending = 'Pending', + Running = 'Running', + Succeeded = 'Succeeded', + Unknown = 'Unknown' +} + +export type CoreV1PodSpec = { + __typename?: 'CoreV1PodSpec'; + containers: Array; + hostname: Scalars['String']['output']; + nodeName: Scalars['String']['output']; + priorityClassName: Scalars['String']['output']; +}; + +export type CoreV1PodStatus = { + __typename?: 'CoreV1PodStatus'; + containerStatuses: Array; + message: Scalars['String']['output']; + phase: CoreV1PodPhase; + reason: Scalars['String']['output']; +}; + +export type CoreV1PodsWatchEvent = { + __typename?: 'CoreV1PodsWatchEvent'; + object?: Maybe; + type: WatchEventType; +}; + +export type CoreV1Service = Object & { + __typename?: 'CoreV1Service'; + apiVersion: Scalars['String']['output']; + id: Scalars['ID']['output']; + kind: Scalars['String']['output']; + metadata: MetaV1ObjectMeta; + spec: CoreV1ServiceSpec; +}; + +export type CoreV1ServiceList = List & { + __typename?: 'CoreV1ServiceList'; + apiVersion: Scalars['String']['output']; + items: Array; + kind: Scalars['String']['output']; + metadata: MetaV1ListMeta; +}; + +export type CoreV1ServicePort = { + __typename?: 'CoreV1ServicePort'; + name?: Maybe; +}; + +export type CoreV1ServiceSpec = { + __typename?: 'CoreV1ServiceSpec'; + clusterIP?: Maybe; + clusterIPs?: Maybe>; + externalName?: Maybe; + ports: Array; + selector?: Maybe; +}; + +export type CoreV1ServicesWatchEvent = { + __typename?: 'CoreV1ServicesWatchEvent'; + object?: Maybe; + type: WatchEventType; +}; + +export type HealthCheckResponse = { + __typename?: 'HealthCheckResponse'; + message?: Maybe; + status: HealthCheckStatus; + timestamp: Scalars['Time']['output']; +}; + +export enum HealthCheckStatus { + Failure = 'FAILURE', + Notfound = 'NOTFOUND', + Success = 'SUCCESS', + Unknown = 'UNKNOWN' +} + +export type KubeConfig = { + __typename?: 'KubeConfig'; + authInfos: Array; + clusters: Array; + contexts: Array; + currentContext: Scalars['String']['output']; + extensions?: Maybe; +}; + +export type KubeConfigAuthInfo = { + __typename?: 'KubeConfigAuthInfo'; + extensions?: Maybe; + locationOfOrigin: Scalars['String']['output']; + name: Scalars['String']['output']; +}; + +export type KubeConfigCluster = { + __typename?: 'KubeConfigCluster'; + extensions?: Maybe; + locationOfOrigin: Scalars['String']['output']; + name: Scalars['String']['output']; + server: Scalars['String']['output']; +}; + +export type KubeConfigContext = { + __typename?: 'KubeConfigContext'; + authInfo: Scalars['String']['output']; + cluster: Scalars['String']['output']; + extensions?: Maybe; + locationOfOrigin: Scalars['String']['output']; + name: Scalars['String']['output']; + namespace: Scalars['String']['output']; +}; + +export type KubeConfigWatchEvent = { + __typename?: 'KubeConfigWatchEvent'; + object?: Maybe; + type: WatchEventType; +}; + +export type List = { + apiVersion: Scalars['String']['output']; + items: Array; + kind: Scalars['String']['output']; + metadata: MetaV1ListMeta; +}; + +export type LogRecord = { + __typename?: 'LogRecord'; + message: Scalars['String']['output']; + timestamp: Scalars['Time']['output']; +}; + +export type MetaV1GetOptions = { + resourceVersion?: InputMaybe; +}; + +export type MetaV1LabelSelector = { + __typename?: 'MetaV1LabelSelector'; + matchExpressions: Array; + matchLabels?: Maybe; +}; + +export enum MetaV1LabelSelectorOperator { + DoesNotExist = 'DoesNotExist', + Exists = 'Exists', + In = 'In', + NotIn = 'NotIn' +} + +export type MetaV1LabelSelectorRequirement = { + __typename?: 'MetaV1LabelSelectorRequirement'; + key: Scalars['String']['output']; + operator: MetaV1LabelSelectorOperator; + values: Array; +}; + +export type MetaV1ListMeta = { + __typename?: 'MetaV1ListMeta'; + continue: Scalars['String']['output']; + remainingItemCount?: Maybe; + resourceVersion: Scalars['String']['output']; +}; + +export type MetaV1ListOptions = { + allowWatchBookmarks?: InputMaybe; + continue?: InputMaybe; + fieldSelector?: InputMaybe; + labelSelector?: InputMaybe; + limit?: InputMaybe; + resourceVersion?: InputMaybe; + resourceVersionMatch?: InputMaybe; + sendInitialEvents?: InputMaybe; +}; + +export type MetaV1ObjectMeta = { + __typename?: 'MetaV1ObjectMeta'; + annotations?: Maybe; + creationTimestamp: Scalars['MetaV1Time']['output']; + deletionTimestamp?: Maybe; + labels?: Maybe; + name: Scalars['String']['output']; + namespace: Scalars['String']['output']; + ownerReferences: Array; + resourceVersion: Scalars['String']['output']; + uid: Scalars['ID']['output']; +}; + +export type MetaV1OwnerReference = { + __typename?: 'MetaV1OwnerReference'; + apiVersion: Scalars['String']['output']; + controller?: Maybe; + kind: Scalars['String']['output']; + name: Scalars['String']['output']; + uid: Scalars['ID']['output']; +}; + +export enum MetaV1ResourceVersionMatch { + Exact = 'Exact', + NotOlderThan = 'NotOlderThan' +} + +export type Mutation = { + __typename?: 'Mutation'; + /** Kubetail Cluster API */ + kubetailClusterAPIInstall?: Maybe; +}; + + +export type MutationKubetailClusterApiInstallArgs = { + kubeContext?: InputMaybe; +}; + +export type Object = { + apiVersion: Scalars['String']['output']; + id: Scalars['ID']['output']; + kind: Scalars['String']['output']; + metadata: MetaV1ObjectMeta; +}; + +export type PageInfo = { + __typename?: 'PageInfo'; + /** When paginating forwards, the cursor to continue. */ + endCursor?: Maybe; + /** When paginating forwards, are there more items? */ + hasNextPage: Scalars['Boolean']['output']; + /** When paginating backwards, are there more items? */ + hasPreviousPage: Scalars['Boolean']['output']; + /** When paginating backwards, the cursor to continue. */ + startCursor?: Maybe; +}; + +export type PodLogQueryResponse = { + __typename?: 'PodLogQueryResponse'; + pageInfo: PageInfo; + results: Array; +}; + +export type Query = { + __typename?: 'Query'; + /** AppsV1 queries */ + appsV1DaemonSetsGet?: Maybe; + appsV1DaemonSetsList?: Maybe; + appsV1DeploymentsGet?: Maybe; + appsV1DeploymentsList?: Maybe; + appsV1ReplicaSetsGet?: Maybe; + appsV1ReplicaSetsList?: Maybe; + appsV1StatefulSetsGet?: Maybe; + appsV1StatefulSetsList?: Maybe; + /** BatchV1 queries */ + batchV1CronJobsGet?: Maybe; + batchV1CronJobsList?: Maybe; + batchV1JobsGet?: Maybe; + batchV1JobsList?: Maybe; + /** CoreV1 queries */ + coreV1NamespacesList?: Maybe; + coreV1NodesList?: Maybe; + coreV1PodsGet?: Maybe; + coreV1PodsList?: Maybe; + coreV1ServicesGet?: Maybe; + coreV1ServicesList?: Maybe; + /** KubeConfig queries */ + kubeConfigGet?: Maybe; + kubernetesAPIHealthzGet: HealthCheckResponse; + /** Kubernetes API */ + kubernetesAPIReadyWait: Scalars['Boolean']['output']; + kubetailClusterAPIHealthzGet: HealthCheckResponse; + /** Kubetail Cluster API */ + kubetailClusterAPIReadyWait: Scalars['Boolean']['output']; + /** Pod logs API */ + podLogHead?: Maybe; + podLogTail?: Maybe; +}; + + +export type QueryAppsV1DaemonSetsGetArgs = { + kubeContext?: InputMaybe; + name: Scalars['String']['input']; + namespace?: InputMaybe; + options?: InputMaybe; +}; + + +export type QueryAppsV1DaemonSetsListArgs = { + kubeContext?: InputMaybe; + namespace?: InputMaybe; + options?: InputMaybe; +}; + + +export type QueryAppsV1DeploymentsGetArgs = { + kubeContext?: InputMaybe; + name: Scalars['String']['input']; + namespace?: InputMaybe; + options?: InputMaybe; +}; + + +export type QueryAppsV1DeploymentsListArgs = { + kubeContext?: InputMaybe; + namespace?: InputMaybe; + options?: InputMaybe; +}; + + +export type QueryAppsV1ReplicaSetsGetArgs = { + kubeContext?: InputMaybe; + name: Scalars['String']['input']; + namespace?: InputMaybe; + options?: InputMaybe; +}; + + +export type QueryAppsV1ReplicaSetsListArgs = { + kubeContext?: InputMaybe; + namespace?: InputMaybe; + options?: InputMaybe; +}; + + +export type QueryAppsV1StatefulSetsGetArgs = { + kubeContext?: InputMaybe; + name: Scalars['String']['input']; + namespace?: InputMaybe; + options?: InputMaybe; +}; + + +export type QueryAppsV1StatefulSetsListArgs = { + kubeContext?: InputMaybe; + namespace?: InputMaybe; + options?: InputMaybe; +}; + + +export type QueryBatchV1CronJobsGetArgs = { + kubeContext?: InputMaybe; + name: Scalars['String']['input']; + namespace?: InputMaybe; + options?: InputMaybe; +}; + + +export type QueryBatchV1CronJobsListArgs = { + kubeContext?: InputMaybe; + namespace?: InputMaybe; + options?: InputMaybe; +}; + + +export type QueryBatchV1JobsGetArgs = { + kubeContext?: InputMaybe; + name: Scalars['String']['input']; + namespace?: InputMaybe; + options?: InputMaybe; +}; + + +export type QueryBatchV1JobsListArgs = { + kubeContext?: InputMaybe; + namespace?: InputMaybe; + options?: InputMaybe; +}; + + +export type QueryCoreV1NamespacesListArgs = { + kubeContext?: InputMaybe; + options?: InputMaybe; +}; + + +export type QueryCoreV1NodesListArgs = { + kubeContext?: InputMaybe; + options?: InputMaybe; +}; + + +export type QueryCoreV1PodsGetArgs = { + kubeContext?: InputMaybe; + name: Scalars['String']['input']; + namespace?: InputMaybe; + options?: InputMaybe; +}; + + +export type QueryCoreV1PodsListArgs = { + kubeContext?: InputMaybe; + namespace?: InputMaybe; + options?: InputMaybe; +}; + + +export type QueryCoreV1ServicesGetArgs = { + kubeContext?: InputMaybe; + name: Scalars['String']['input']; + namespace?: InputMaybe; + options?: InputMaybe; +}; + + +export type QueryCoreV1ServicesListArgs = { + kubeContext?: InputMaybe; + namespace?: InputMaybe; + options?: InputMaybe; +}; + + +export type QueryKubernetesApiHealthzGetArgs = { + kubeContext?: InputMaybe; +}; + + +export type QueryKubernetesApiReadyWaitArgs = { + kubeContext?: InputMaybe; +}; + + +export type QueryKubetailClusterApiHealthzGetArgs = { + kubeContext?: InputMaybe; + namespace?: InputMaybe; + serviceName?: InputMaybe; +}; + + +export type QueryKubetailClusterApiReadyWaitArgs = { + kubeContext?: InputMaybe; + namespace?: InputMaybe; + serviceName?: InputMaybe; +}; + + +export type QueryPodLogHeadArgs = { + after?: InputMaybe; + container?: InputMaybe; + first?: InputMaybe; + kubeContext?: InputMaybe; + name: Scalars['String']['input']; + namespace?: InputMaybe; + since?: InputMaybe; +}; + + +export type QueryPodLogTailArgs = { + before?: InputMaybe; + container?: InputMaybe; + kubeContext?: InputMaybe; + last?: InputMaybe; + name: Scalars['String']['input']; + namespace?: InputMaybe; +}; + +export type Subscription = { + __typename?: 'Subscription'; + /** AppsV1 watchers */ + appsV1DaemonSetsWatch?: Maybe; + appsV1DeploymentsWatch?: Maybe; + appsV1ReplicaSetsWatch?: Maybe; + appsV1StatefulSetsWatch?: Maybe; + /** BatchV1 watchers */ + batchV1CronJobsWatch?: Maybe; + batchV1JobsWatch?: Maybe; + /** CoreV1 watchers */ + coreV1NamespacesWatch?: Maybe; + coreV1NodesWatch?: Maybe; + coreV1PodsWatch?: Maybe; + coreV1ServicesWatch?: Maybe; + /** KubeConfig watchers */ + kubeConfigWatch?: Maybe; + /** Kubernetes API */ + kubernetesAPIHealthzWatch: HealthCheckResponse; + /** Kubetail API */ + kubetailClusterAPIHealthzWatch: HealthCheckResponse; + /** Pod logs API */ + podLogFollow?: Maybe; +}; + + +export type SubscriptionAppsV1DaemonSetsWatchArgs = { + kubeContext?: InputMaybe; + namespace?: InputMaybe; + options?: InputMaybe; +}; + + +export type SubscriptionAppsV1DeploymentsWatchArgs = { + kubeContext?: InputMaybe; + namespace?: InputMaybe; + options?: InputMaybe; +}; + + +export type SubscriptionAppsV1ReplicaSetsWatchArgs = { + kubeContext?: InputMaybe; + namespace?: InputMaybe; + options?: InputMaybe; +}; + + +export type SubscriptionAppsV1StatefulSetsWatchArgs = { + kubeContext?: InputMaybe; + namespace?: InputMaybe; + options?: InputMaybe; +}; + + +export type SubscriptionBatchV1CronJobsWatchArgs = { + kubeContext?: InputMaybe; + namespace?: InputMaybe; + options?: InputMaybe; +}; + + +export type SubscriptionBatchV1JobsWatchArgs = { + kubeContext?: InputMaybe; + namespace?: InputMaybe; + options?: InputMaybe; +}; + + +export type SubscriptionCoreV1NamespacesWatchArgs = { + kubeContext?: InputMaybe; + options?: InputMaybe; +}; + + +export type SubscriptionCoreV1NodesWatchArgs = { + kubeContext?: InputMaybe; + options?: InputMaybe; +}; + + +export type SubscriptionCoreV1PodsWatchArgs = { + kubeContext?: InputMaybe; + namespace?: InputMaybe; + options?: InputMaybe; +}; + + +export type SubscriptionCoreV1ServicesWatchArgs = { + kubeContext?: InputMaybe; + namespace?: InputMaybe; + options?: InputMaybe; +}; + + +export type SubscriptionKubernetesApiHealthzWatchArgs = { + kubeContext?: InputMaybe; +}; + + +export type SubscriptionKubetailClusterApiHealthzWatchArgs = { + kubeContext?: InputMaybe; + namespace?: InputMaybe; + serviceName?: InputMaybe; +}; + + +export type SubscriptionPodLogFollowArgs = { + after?: InputMaybe; + container?: InputMaybe; + kubeContext?: InputMaybe; + name: Scalars['String']['input']; + namespace?: InputMaybe; + since?: InputMaybe; +}; + +export enum WatchEventType { + Added = 'ADDED', + Bookmark = 'BOOKMARK', + Deleted = 'DELETED', + Error = 'ERROR', + Modified = 'MODIFIED' +} + +type ConsoleLoggingResourcesGenericObjectFragment_AppsV1DaemonSet_Fragment = { __typename?: 'AppsV1DaemonSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +type ConsoleLoggingResourcesGenericObjectFragment_AppsV1Deployment_Fragment = { __typename?: 'AppsV1Deployment', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +type ConsoleLoggingResourcesGenericObjectFragment_AppsV1ReplicaSet_Fragment = { __typename?: 'AppsV1ReplicaSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +type ConsoleLoggingResourcesGenericObjectFragment_AppsV1StatefulSet_Fragment = { __typename?: 'AppsV1StatefulSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +type ConsoleLoggingResourcesGenericObjectFragment_BatchV1CronJob_Fragment = { __typename?: 'BatchV1CronJob', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +type ConsoleLoggingResourcesGenericObjectFragment_BatchV1Job_Fragment = { __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +type ConsoleLoggingResourcesGenericObjectFragment_CoreV1Namespace_Fragment = { __typename?: 'CoreV1Namespace', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +type ConsoleLoggingResourcesGenericObjectFragment_CoreV1Node_Fragment = { __typename?: 'CoreV1Node', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +type ConsoleLoggingResourcesGenericObjectFragment_CoreV1Pod_Fragment = { __typename?: 'CoreV1Pod', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +type ConsoleLoggingResourcesGenericObjectFragment_CoreV1Service_Fragment = { __typename?: 'CoreV1Service', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +export type ConsoleLoggingResourcesGenericObjectFragmentFragment = ConsoleLoggingResourcesGenericObjectFragment_AppsV1DaemonSet_Fragment | ConsoleLoggingResourcesGenericObjectFragment_AppsV1Deployment_Fragment | ConsoleLoggingResourcesGenericObjectFragment_AppsV1ReplicaSet_Fragment | ConsoleLoggingResourcesGenericObjectFragment_AppsV1StatefulSet_Fragment | ConsoleLoggingResourcesGenericObjectFragment_BatchV1CronJob_Fragment | ConsoleLoggingResourcesGenericObjectFragment_BatchV1Job_Fragment | ConsoleLoggingResourcesGenericObjectFragment_CoreV1Namespace_Fragment | ConsoleLoggingResourcesGenericObjectFragment_CoreV1Node_Fragment | ConsoleLoggingResourcesGenericObjectFragment_CoreV1Pod_Fragment | ConsoleLoggingResourcesGenericObjectFragment_CoreV1Service_Fragment; + +export type ConsoleLoggingResourcesCronJobFragmentFragment = { __typename?: 'BatchV1CronJob', id: string, spec: { __typename?: 'BatchV1CronJobSpec', jobTemplate: { __typename?: 'BatchV1JobTemplateSpec', spec: { __typename?: 'BatchV1JobSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null } } }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +export type ConsoleLoggingResourcesDaemonSetFragmentFragment = { __typename?: 'AppsV1DaemonSet', id: string, spec: { __typename?: 'AppsV1DaemonSetSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +export type ConsoleLoggingResourcesDeploymentFragmentFragment = { __typename?: 'AppsV1Deployment', id: string, spec: { __typename?: 'AppsV1DeploymentSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +export type ConsoleLoggingResourcesJobFragmentFragment = { __typename?: 'BatchV1Job', id: string, spec: { __typename?: 'BatchV1JobSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +export type ConsoleLoggingResourcesPodFragmentFragment = { __typename?: 'CoreV1Pod', id: string, spec: { __typename?: 'CoreV1PodSpec', nodeName: string, containers: Array<{ __typename?: 'CoreV1Container', name: string }> }, status: { __typename?: 'CoreV1PodStatus', containerStatuses: Array<{ __typename?: 'CoreV1ContainerStatus', name: string, started?: boolean | null, state: { __typename?: 'CoreV1ContainerState', running?: { __typename?: 'CoreV1ContainerStateRunning', startedAt: any } | null, terminated?: { __typename?: 'CoreV1ContainerStateTerminated', exitCode: number } | null } }> }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +export type ConsoleLoggingResourcesReplicaSetFragmentFragment = { __typename?: 'AppsV1ReplicaSet', id: string, spec: { __typename?: 'AppsV1ReplicaSetSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +export type ConsoleLoggingResourcesStatefulSetFragmentFragment = { __typename?: 'AppsV1StatefulSet', id: string, spec: { __typename?: 'AppsV1StatefulSetSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +export type ConsoleLoggingResourcesJobsFindFragmentFragment = { __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> }, spec: { __typename?: 'BatchV1JobSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null } }; + +export type ConsoleNodesListItemFragmentFragment = { __typename?: 'CoreV1Node', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, labels?: any | null, annotations?: any | null } }; + +export type HealthCheckResponseFragmentFragment = { __typename?: 'HealthCheckResponse', status: HealthCheckStatus, message?: string | null, timestamp: any }; + +export type HomeCronJobsListItemFragmentFragment = { __typename?: 'BatchV1CronJob', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +export type HomeDaemonSetsListItemFragmentFragment = { __typename?: 'AppsV1DaemonSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +export type HomeDeploymentsListItemFragmentFragment = { __typename?: 'AppsV1Deployment', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +export type HomeJobsListItemFragmentFragment = { __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +type HomeGenericListFragment_AppsV1DaemonSetList_Fragment = { __typename?: 'AppsV1DaemonSetList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; + +type HomeGenericListFragment_AppsV1DeploymentList_Fragment = { __typename?: 'AppsV1DeploymentList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; + +type HomeGenericListFragment_AppsV1ReplicaSetList_Fragment = { __typename?: 'AppsV1ReplicaSetList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; + +type HomeGenericListFragment_AppsV1StatefulSetList_Fragment = { __typename?: 'AppsV1StatefulSetList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; + +type HomeGenericListFragment_BatchV1CronJobList_Fragment = { __typename?: 'BatchV1CronJobList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; + +type HomeGenericListFragment_BatchV1JobList_Fragment = { __typename?: 'BatchV1JobList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; + +type HomeGenericListFragment_CoreV1NamespaceList_Fragment = { __typename?: 'CoreV1NamespaceList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; + +type HomeGenericListFragment_CoreV1NodeList_Fragment = { __typename?: 'CoreV1NodeList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; + +type HomeGenericListFragment_CoreV1PodList_Fragment = { __typename?: 'CoreV1PodList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; + +type HomeGenericListFragment_CoreV1ServiceList_Fragment = { __typename?: 'CoreV1ServiceList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; + +export type HomeGenericListFragmentFragment = HomeGenericListFragment_AppsV1DaemonSetList_Fragment | HomeGenericListFragment_AppsV1DeploymentList_Fragment | HomeGenericListFragment_AppsV1ReplicaSetList_Fragment | HomeGenericListFragment_AppsV1StatefulSetList_Fragment | HomeGenericListFragment_BatchV1CronJobList_Fragment | HomeGenericListFragment_BatchV1JobList_Fragment | HomeGenericListFragment_CoreV1NamespaceList_Fragment | HomeGenericListFragment_CoreV1NodeList_Fragment | HomeGenericListFragment_CoreV1PodList_Fragment | HomeGenericListFragment_CoreV1ServiceList_Fragment; + +type HomeGenericListItemFragment_AppsV1DaemonSet_Fragment = { __typename?: 'AppsV1DaemonSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +type HomeGenericListItemFragment_AppsV1Deployment_Fragment = { __typename?: 'AppsV1Deployment', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +type HomeGenericListItemFragment_AppsV1ReplicaSet_Fragment = { __typename?: 'AppsV1ReplicaSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +type HomeGenericListItemFragment_AppsV1StatefulSet_Fragment = { __typename?: 'AppsV1StatefulSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +type HomeGenericListItemFragment_BatchV1CronJob_Fragment = { __typename?: 'BatchV1CronJob', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +type HomeGenericListItemFragment_BatchV1Job_Fragment = { __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +type HomeGenericListItemFragment_CoreV1Namespace_Fragment = { __typename?: 'CoreV1Namespace', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +type HomeGenericListItemFragment_CoreV1Node_Fragment = { __typename?: 'CoreV1Node', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +type HomeGenericListItemFragment_CoreV1Pod_Fragment = { __typename?: 'CoreV1Pod', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +type HomeGenericListItemFragment_CoreV1Service_Fragment = { __typename?: 'CoreV1Service', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +export type HomeGenericListItemFragmentFragment = HomeGenericListItemFragment_AppsV1DaemonSet_Fragment | HomeGenericListItemFragment_AppsV1Deployment_Fragment | HomeGenericListItemFragment_AppsV1ReplicaSet_Fragment | HomeGenericListItemFragment_AppsV1StatefulSet_Fragment | HomeGenericListItemFragment_BatchV1CronJob_Fragment | HomeGenericListItemFragment_BatchV1Job_Fragment | HomeGenericListItemFragment_CoreV1Namespace_Fragment | HomeGenericListItemFragment_CoreV1Node_Fragment | HomeGenericListItemFragment_CoreV1Pod_Fragment | HomeGenericListItemFragment_CoreV1Service_Fragment; + +export type HomeNamespacesListItemFragmentFragment = { __typename?: 'CoreV1Namespace', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +export type HomePodsListItemFragmentFragment = { __typename?: 'CoreV1Pod', id: string, status: { __typename?: 'CoreV1PodStatus', containerStatuses: Array<{ __typename?: 'CoreV1ContainerStatus', containerID: string, started?: boolean | null }> }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +export type HomeReplicaSetsListItemFragmentFragment = { __typename?: 'AppsV1ReplicaSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +export type HomeStatefulSetsListItemFragmentFragment = { __typename?: 'AppsV1StatefulSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }; + +export type KubeConfigFragmentFragment = { __typename?: 'KubeConfig', currentContext: string, contexts: Array<{ __typename?: 'KubeConfigContext', name: string, cluster: string, namespace: string }> }; + +export type PodLogQueryResponseFragmentFragment = { __typename?: 'PodLogQueryResponse', results: Array<{ __typename?: 'LogRecord', timestamp: any, message: string }>, pageInfo: { __typename?: 'PageInfo', hasPreviousPage: boolean, hasNextPage: boolean, startCursor?: string | null, endCursor?: string | null } }; + +type SourcePickerGenericCounterFragment_AppsV1DaemonSetList_Fragment = { __typename?: 'AppsV1DaemonSetList', metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string }, items: Array<{ __typename?: 'AppsV1DaemonSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }> }; + +type SourcePickerGenericCounterFragment_AppsV1DeploymentList_Fragment = { __typename?: 'AppsV1DeploymentList', metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string }, items: Array<{ __typename?: 'AppsV1Deployment', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }> }; + +type SourcePickerGenericCounterFragment_AppsV1ReplicaSetList_Fragment = { __typename?: 'AppsV1ReplicaSetList', metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string }, items: Array<{ __typename?: 'AppsV1ReplicaSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }> }; + +type SourcePickerGenericCounterFragment_AppsV1StatefulSetList_Fragment = { __typename?: 'AppsV1StatefulSetList', metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string }, items: Array<{ __typename?: 'AppsV1StatefulSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }> }; + +type SourcePickerGenericCounterFragment_BatchV1CronJobList_Fragment = { __typename?: 'BatchV1CronJobList', metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string }, items: Array<{ __typename?: 'BatchV1CronJob', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }> }; + +type SourcePickerGenericCounterFragment_BatchV1JobList_Fragment = { __typename?: 'BatchV1JobList', metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string }, items: Array<{ __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }> }; + +type SourcePickerGenericCounterFragment_CoreV1NamespaceList_Fragment = { __typename?: 'CoreV1NamespaceList', metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string }, items: Array<{ __typename?: 'CoreV1Namespace', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }> }; + +type SourcePickerGenericCounterFragment_CoreV1NodeList_Fragment = { __typename?: 'CoreV1NodeList', metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string }, items: Array<{ __typename?: 'CoreV1Node', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }> }; + +type SourcePickerGenericCounterFragment_CoreV1PodList_Fragment = { __typename?: 'CoreV1PodList', metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string }, items: Array<{ __typename?: 'CoreV1Pod', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }> }; + +type SourcePickerGenericCounterFragment_CoreV1ServiceList_Fragment = { __typename?: 'CoreV1ServiceList', metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string }, items: Array<{ __typename?: 'CoreV1Service', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }> }; + +export type SourcePickerGenericCounterFragmentFragment = SourcePickerGenericCounterFragment_AppsV1DaemonSetList_Fragment | SourcePickerGenericCounterFragment_AppsV1DeploymentList_Fragment | SourcePickerGenericCounterFragment_AppsV1ReplicaSetList_Fragment | SourcePickerGenericCounterFragment_AppsV1StatefulSetList_Fragment | SourcePickerGenericCounterFragment_BatchV1CronJobList_Fragment | SourcePickerGenericCounterFragment_BatchV1JobList_Fragment | SourcePickerGenericCounterFragment_CoreV1NamespaceList_Fragment | SourcePickerGenericCounterFragment_CoreV1NodeList_Fragment | SourcePickerGenericCounterFragment_CoreV1PodList_Fragment | SourcePickerGenericCounterFragment_CoreV1ServiceList_Fragment; + +type SourcePickerGenericCounterItemFragment_AppsV1DaemonSet_Fragment = { __typename?: 'AppsV1DaemonSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }; + +type SourcePickerGenericCounterItemFragment_AppsV1Deployment_Fragment = { __typename?: 'AppsV1Deployment', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }; + +type SourcePickerGenericCounterItemFragment_AppsV1ReplicaSet_Fragment = { __typename?: 'AppsV1ReplicaSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }; + +type SourcePickerGenericCounterItemFragment_AppsV1StatefulSet_Fragment = { __typename?: 'AppsV1StatefulSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }; + +type SourcePickerGenericCounterItemFragment_BatchV1CronJob_Fragment = { __typename?: 'BatchV1CronJob', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }; + +type SourcePickerGenericCounterItemFragment_BatchV1Job_Fragment = { __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }; + +type SourcePickerGenericCounterItemFragment_CoreV1Namespace_Fragment = { __typename?: 'CoreV1Namespace', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }; + +type SourcePickerGenericCounterItemFragment_CoreV1Node_Fragment = { __typename?: 'CoreV1Node', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }; + +type SourcePickerGenericCounterItemFragment_CoreV1Pod_Fragment = { __typename?: 'CoreV1Pod', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }; + +type SourcePickerGenericCounterItemFragment_CoreV1Service_Fragment = { __typename?: 'CoreV1Service', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }; + +export type SourcePickerGenericCounterItemFragmentFragment = SourcePickerGenericCounterItemFragment_AppsV1DaemonSet_Fragment | SourcePickerGenericCounterItemFragment_AppsV1Deployment_Fragment | SourcePickerGenericCounterItemFragment_AppsV1ReplicaSet_Fragment | SourcePickerGenericCounterItemFragment_AppsV1StatefulSet_Fragment | SourcePickerGenericCounterItemFragment_BatchV1CronJob_Fragment | SourcePickerGenericCounterItemFragment_BatchV1Job_Fragment | SourcePickerGenericCounterItemFragment_CoreV1Namespace_Fragment | SourcePickerGenericCounterItemFragment_CoreV1Node_Fragment | SourcePickerGenericCounterItemFragment_CoreV1Pod_Fragment | SourcePickerGenericCounterItemFragment_CoreV1Service_Fragment; + +type SourcePickerGenericListFragment_AppsV1DaemonSetList_Fragment = { __typename?: 'AppsV1DaemonSetList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; + +type SourcePickerGenericListFragment_AppsV1DeploymentList_Fragment = { __typename?: 'AppsV1DeploymentList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; + +type SourcePickerGenericListFragment_AppsV1ReplicaSetList_Fragment = { __typename?: 'AppsV1ReplicaSetList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; + +type SourcePickerGenericListFragment_AppsV1StatefulSetList_Fragment = { __typename?: 'AppsV1StatefulSetList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; + +type SourcePickerGenericListFragment_BatchV1CronJobList_Fragment = { __typename?: 'BatchV1CronJobList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; + +type SourcePickerGenericListFragment_BatchV1JobList_Fragment = { __typename?: 'BatchV1JobList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; + +type SourcePickerGenericListFragment_CoreV1NamespaceList_Fragment = { __typename?: 'CoreV1NamespaceList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; + +type SourcePickerGenericListFragment_CoreV1NodeList_Fragment = { __typename?: 'CoreV1NodeList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; + +type SourcePickerGenericListFragment_CoreV1PodList_Fragment = { __typename?: 'CoreV1PodList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; + +type SourcePickerGenericListFragment_CoreV1ServiceList_Fragment = { __typename?: 'CoreV1ServiceList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } }; + +export type SourcePickerGenericListFragmentFragment = SourcePickerGenericListFragment_AppsV1DaemonSetList_Fragment | SourcePickerGenericListFragment_AppsV1DeploymentList_Fragment | SourcePickerGenericListFragment_AppsV1ReplicaSetList_Fragment | SourcePickerGenericListFragment_AppsV1StatefulSetList_Fragment | SourcePickerGenericListFragment_BatchV1CronJobList_Fragment | SourcePickerGenericListFragment_BatchV1JobList_Fragment | SourcePickerGenericListFragment_CoreV1NamespaceList_Fragment | SourcePickerGenericListFragment_CoreV1NodeList_Fragment | SourcePickerGenericListFragment_CoreV1PodList_Fragment | SourcePickerGenericListFragment_CoreV1ServiceList_Fragment; + +type SourcePickerGenericListItemFragment_AppsV1DaemonSet_Fragment = { __typename?: 'AppsV1DaemonSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }; + +type SourcePickerGenericListItemFragment_AppsV1Deployment_Fragment = { __typename?: 'AppsV1Deployment', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }; + +type SourcePickerGenericListItemFragment_AppsV1ReplicaSet_Fragment = { __typename?: 'AppsV1ReplicaSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }; + +type SourcePickerGenericListItemFragment_AppsV1StatefulSet_Fragment = { __typename?: 'AppsV1StatefulSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }; + +type SourcePickerGenericListItemFragment_BatchV1CronJob_Fragment = { __typename?: 'BatchV1CronJob', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }; + +type SourcePickerGenericListItemFragment_BatchV1Job_Fragment = { __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }; + +type SourcePickerGenericListItemFragment_CoreV1Namespace_Fragment = { __typename?: 'CoreV1Namespace', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }; + +type SourcePickerGenericListItemFragment_CoreV1Node_Fragment = { __typename?: 'CoreV1Node', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }; + +type SourcePickerGenericListItemFragment_CoreV1Pod_Fragment = { __typename?: 'CoreV1Pod', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }; + +type SourcePickerGenericListItemFragment_CoreV1Service_Fragment = { __typename?: 'CoreV1Service', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }; + +export type SourcePickerGenericListItemFragmentFragment = SourcePickerGenericListItemFragment_AppsV1DaemonSet_Fragment | SourcePickerGenericListItemFragment_AppsV1Deployment_Fragment | SourcePickerGenericListItemFragment_AppsV1ReplicaSet_Fragment | SourcePickerGenericListItemFragment_AppsV1StatefulSet_Fragment | SourcePickerGenericListItemFragment_BatchV1CronJob_Fragment | SourcePickerGenericListItemFragment_BatchV1Job_Fragment | SourcePickerGenericListItemFragment_CoreV1Namespace_Fragment | SourcePickerGenericListItemFragment_CoreV1Node_Fragment | SourcePickerGenericListItemFragment_CoreV1Pod_Fragment | SourcePickerGenericListItemFragment_CoreV1Service_Fragment; + +export type ConsoleLoggingResourcesCronJobGetQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace: Scalars['String']['input']; + name: Scalars['String']['input']; +}>; + + +export type ConsoleLoggingResourcesCronJobGetQuery = { __typename?: 'Query', batchV1CronJobsGet?: { __typename?: 'BatchV1CronJob', id: string, spec: { __typename?: 'BatchV1CronJobSpec', jobTemplate: { __typename?: 'BatchV1JobTemplateSpec', spec: { __typename?: 'BatchV1JobSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null } } }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null }; + +export type ConsoleLoggingResourcesCronJobWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace: Scalars['String']['input']; + fieldSelector: Scalars['String']['input']; +}>; + + +export type ConsoleLoggingResourcesCronJobWatchSubscription = { __typename?: 'Subscription', batchV1CronJobsWatch?: { __typename?: 'BatchV1CronJobsWatchEvent', type: WatchEventType, object?: { __typename?: 'BatchV1CronJob', id: string, spec: { __typename?: 'BatchV1CronJobSpec', jobTemplate: { __typename?: 'BatchV1JobTemplateSpec', spec: { __typename?: 'BatchV1JobSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null } } }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; + +export type ConsoleLoggingResourcesDaemonSetGetQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace: Scalars['String']['input']; + name: Scalars['String']['input']; +}>; + + +export type ConsoleLoggingResourcesDaemonSetGetQuery = { __typename?: 'Query', appsV1DaemonSetsGet?: { __typename?: 'AppsV1DaemonSet', id: string, spec: { __typename?: 'AppsV1DaemonSetSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null }; + +export type ConsoleLoggingResourcesDaemonSetWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace: Scalars['String']['input']; + fieldSelector: Scalars['String']['input']; +}>; + + +export type ConsoleLoggingResourcesDaemonSetWatchSubscription = { __typename?: 'Subscription', appsV1DaemonSetsWatch?: { __typename?: 'AppsV1DaemonSetsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1DaemonSet', id: string, spec: { __typename?: 'AppsV1DaemonSetSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; + +export type ConsoleLoggingResourcesDeploymentGetQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace: Scalars['String']['input']; + name: Scalars['String']['input']; +}>; + + +export type ConsoleLoggingResourcesDeploymentGetQuery = { __typename?: 'Query', appsV1DeploymentsGet?: { __typename?: 'AppsV1Deployment', id: string, spec: { __typename?: 'AppsV1DeploymentSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null }; + +export type ConsoleLoggingResourcesDeploymentWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace: Scalars['String']['input']; + fieldSelector: Scalars['String']['input']; +}>; + + +export type ConsoleLoggingResourcesDeploymentWatchSubscription = { __typename?: 'Subscription', appsV1DeploymentsWatch?: { __typename?: 'AppsV1DeploymentsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1Deployment', id: string, spec: { __typename?: 'AppsV1DeploymentSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; + +export type ConsoleLoggingResourcesJobGetQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace: Scalars['String']['input']; + name: Scalars['String']['input']; +}>; + + +export type ConsoleLoggingResourcesJobGetQuery = { __typename?: 'Query', batchV1JobsGet?: { __typename?: 'BatchV1Job', id: string, spec: { __typename?: 'BatchV1JobSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null }; + +export type ConsoleLoggingResourcesJobWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace: Scalars['String']['input']; + fieldSelector: Scalars['String']['input']; +}>; + + +export type ConsoleLoggingResourcesJobWatchSubscription = { __typename?: 'Subscription', batchV1JobsWatch?: { __typename?: 'BatchV1JobsWatchEvent', type: WatchEventType, object?: { __typename?: 'BatchV1Job', id: string, spec: { __typename?: 'BatchV1JobSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; + +export type ConsoleLoggingResourcesPodGetQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace: Scalars['String']['input']; + name: Scalars['String']['input']; +}>; + + +export type ConsoleLoggingResourcesPodGetQuery = { __typename?: 'Query', coreV1PodsGet?: { __typename?: 'CoreV1Pod', id: string, spec: { __typename?: 'CoreV1PodSpec', nodeName: string, containers: Array<{ __typename?: 'CoreV1Container', name: string }> }, status: { __typename?: 'CoreV1PodStatus', containerStatuses: Array<{ __typename?: 'CoreV1ContainerStatus', name: string, started?: boolean | null, state: { __typename?: 'CoreV1ContainerState', running?: { __typename?: 'CoreV1ContainerStateRunning', startedAt: any } | null, terminated?: { __typename?: 'CoreV1ContainerStateTerminated', exitCode: number } | null } }> }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null }; + +export type ConsoleLoggingResourcesPodWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace: Scalars['String']['input']; + fieldSelector: Scalars['String']['input']; +}>; + + +export type ConsoleLoggingResourcesPodWatchSubscription = { __typename?: 'Subscription', coreV1PodsWatch?: { __typename?: 'CoreV1PodsWatchEvent', type: WatchEventType, object?: { __typename?: 'CoreV1Pod', id: string, spec: { __typename?: 'CoreV1PodSpec', nodeName: string, containers: Array<{ __typename?: 'CoreV1Container', name: string }> }, status: { __typename?: 'CoreV1PodStatus', containerStatuses: Array<{ __typename?: 'CoreV1ContainerStatus', name: string, started?: boolean | null, state: { __typename?: 'CoreV1ContainerState', running?: { __typename?: 'CoreV1ContainerStateRunning', startedAt: any } | null, terminated?: { __typename?: 'CoreV1ContainerStateTerminated', exitCode: number } | null } }> }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; + +export type ConsolePodsListFetchQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace: Scalars['String']['input']; + continue?: InputMaybe; +}>; + + +export type ConsolePodsListFetchQuery = { __typename?: 'Query', coreV1PodsList?: { __typename?: 'CoreV1PodList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string }, items: Array<{ __typename?: 'CoreV1Pod', id: string, spec: { __typename?: 'CoreV1PodSpec', nodeName: string, containers: Array<{ __typename?: 'CoreV1Container', name: string }> }, status: { __typename?: 'CoreV1PodStatus', containerStatuses: Array<{ __typename?: 'CoreV1ContainerStatus', name: string, started?: boolean | null, state: { __typename?: 'CoreV1ContainerState', running?: { __typename?: 'CoreV1ContainerStateRunning', startedAt: any } | null, terminated?: { __typename?: 'CoreV1ContainerStateTerminated', exitCode: number } | null } }> }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }> } | null }; + +export type ConsolePodsListWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace: Scalars['String']['input']; + resourceVersion?: InputMaybe; +}>; + + +export type ConsolePodsListWatchSubscription = { __typename?: 'Subscription', coreV1PodsWatch?: { __typename?: 'CoreV1PodsWatchEvent', type: WatchEventType, object?: { __typename?: 'CoreV1Pod', id: string, spec: { __typename?: 'CoreV1PodSpec', nodeName: string, containers: Array<{ __typename?: 'CoreV1Container', name: string }> }, status: { __typename?: 'CoreV1PodStatus', containerStatuses: Array<{ __typename?: 'CoreV1ContainerStatus', name: string, started?: boolean | null, state: { __typename?: 'CoreV1ContainerState', running?: { __typename?: 'CoreV1ContainerStateRunning', startedAt: any } | null, terminated?: { __typename?: 'CoreV1ContainerStateTerminated', exitCode: number } | null } }> }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; + +export type ConsoleLoggingResourcesReplicaSetGetQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace: Scalars['String']['input']; + name: Scalars['String']['input']; +}>; + + +export type ConsoleLoggingResourcesReplicaSetGetQuery = { __typename?: 'Query', appsV1ReplicaSetsGet?: { __typename?: 'AppsV1ReplicaSet', id: string, spec: { __typename?: 'AppsV1ReplicaSetSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null }; + +export type ConsoleLoggingResourcesReplicaSetWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace: Scalars['String']['input']; + fieldSelector: Scalars['String']['input']; +}>; + + +export type ConsoleLoggingResourcesReplicaSetWatchSubscription = { __typename?: 'Subscription', appsV1ReplicaSetsWatch?: { __typename?: 'AppsV1ReplicaSetsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1ReplicaSet', id: string, spec: { __typename?: 'AppsV1ReplicaSetSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; + +export type ConsoleLoggingResourcesStatefulSetGetQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace: Scalars['String']['input']; + name: Scalars['String']['input']; +}>; + + +export type ConsoleLoggingResourcesStatefulSetGetQuery = { __typename?: 'Query', appsV1StatefulSetsGet?: { __typename?: 'AppsV1StatefulSet', id: string, spec: { __typename?: 'AppsV1StatefulSetSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null }; + +export type ConsoleLoggingResourcesStatefulSetWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace: Scalars['String']['input']; + fieldSelector: Scalars['String']['input']; +}>; + + +export type ConsoleLoggingResourcesStatefulSetWatchSubscription = { __typename?: 'Subscription', appsV1StatefulSetsWatch?: { __typename?: 'AppsV1StatefulSetsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1StatefulSet', id: string, spec: { __typename?: 'AppsV1StatefulSetSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; + +export type ConsoleLoggingResourcesJobsFindQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace: Scalars['String']['input']; + continue?: InputMaybe; +}>; + + +export type ConsoleLoggingResourcesJobsFindQuery = { __typename?: 'Query', batchV1JobsList?: { __typename?: 'BatchV1JobList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string }, items: Array<{ __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> }, spec: { __typename?: 'BatchV1JobSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null } }> } | null }; + +export type ConsoleStreamsJobsWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace: Scalars['String']['input']; + resourceVersion?: InputMaybe; +}>; + + +export type ConsoleStreamsJobsWatchSubscription = { __typename?: 'Subscription', batchV1JobsWatch?: { __typename?: 'BatchV1JobsWatchEvent', type: WatchEventType, object?: { __typename?: 'BatchV1Job', id: string, spec: { __typename?: 'BatchV1JobSpec', selector?: { __typename?: 'MetaV1LabelSelector', matchLabels?: any | null } | null }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; + +export type ConsoleLoggingResourcesPodsFindQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace: Scalars['String']['input']; + labelSelector: Scalars['String']['input']; + continue?: InputMaybe; +}>; + + +export type ConsoleLoggingResourcesPodsFindQuery = { __typename?: 'Query', coreV1PodsList?: { __typename?: 'CoreV1PodList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string }, items: Array<{ __typename?: 'CoreV1Pod', id: string, spec: { __typename?: 'CoreV1PodSpec', nodeName: string, containers: Array<{ __typename?: 'CoreV1Container', name: string }> }, status: { __typename?: 'CoreV1PodStatus', containerStatuses: Array<{ __typename?: 'CoreV1ContainerStatus', name: string, started?: boolean | null, state: { __typename?: 'CoreV1ContainerState', running?: { __typename?: 'CoreV1ContainerStateRunning', startedAt: any } | null, terminated?: { __typename?: 'CoreV1ContainerStateTerminated', exitCode: number } | null } }> }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }> } | null }; + +export type ConsoleLoggingResourcesPodsWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace: Scalars['String']['input']; + labelSelector: Scalars['String']['input']; + resourceVersion?: InputMaybe; +}>; + + +export type ConsoleLoggingResourcesPodsWatchSubscription = { __typename?: 'Subscription', coreV1PodsWatch?: { __typename?: 'CoreV1PodsWatchEvent', type: WatchEventType, object?: { __typename?: 'CoreV1Pod', id: string, spec: { __typename?: 'CoreV1PodSpec', nodeName: string, containers: Array<{ __typename?: 'CoreV1Container', name: string }> }, status: { __typename?: 'CoreV1PodStatus', containerStatuses: Array<{ __typename?: 'CoreV1ContainerStatus', name: string, started?: boolean | null, state: { __typename?: 'CoreV1ContainerState', running?: { __typename?: 'CoreV1ContainerStateRunning', startedAt: any } | null, terminated?: { __typename?: 'CoreV1ContainerStateTerminated', exitCode: number } | null } }> }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; + +export type ConsoleNodesListFetchQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + continue?: InputMaybe; +}>; + + +export type ConsoleNodesListFetchQuery = { __typename?: 'Query', coreV1NodesList?: { __typename?: 'CoreV1NodeList', metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string }, items: Array<{ __typename?: 'CoreV1Node', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, labels?: any | null, annotations?: any | null } }> } | null }; + +export type ConsoleNodesListWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + resourceVersion?: InputMaybe; +}>; + + +export type ConsoleNodesListWatchSubscription = { __typename?: 'Subscription', coreV1NodesWatch?: { __typename?: 'CoreV1NodesWatchEvent', type: WatchEventType, object?: { __typename?: 'CoreV1Node', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, labels?: any | null, annotations?: any | null } } | null } | null }; + +export type HomeCronJobsListFetchQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + continue?: InputMaybe; +}>; + + +export type HomeCronJobsListFetchQuery = { __typename?: 'Query', batchV1CronJobsList?: { __typename?: 'BatchV1CronJobList', items: Array<{ __typename?: 'BatchV1CronJob', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; + +export type HomeCronJobsListWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + resourceVersion?: InputMaybe; +}>; + + +export type HomeCronJobsListWatchSubscription = { __typename?: 'Subscription', batchV1CronJobsWatch?: { __typename?: 'BatchV1CronJobsWatchEvent', type: WatchEventType, object?: { __typename?: 'BatchV1CronJob', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; + +export type HomeDaemonSetsListFetchQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + continue?: InputMaybe; +}>; + + +export type HomeDaemonSetsListFetchQuery = { __typename?: 'Query', appsV1DaemonSetsList?: { __typename?: 'AppsV1DaemonSetList', items: Array<{ __typename?: 'AppsV1DaemonSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; + +export type HomeDaemonSetsListWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + resourceVersion?: InputMaybe; +}>; + + +export type HomeDaemonSetsListWatchSubscription = { __typename?: 'Subscription', appsV1DaemonSetsWatch?: { __typename?: 'AppsV1DaemonSetsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1DaemonSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; + +export type HomeDeploymentsListFetchQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + continue?: InputMaybe; +}>; + + +export type HomeDeploymentsListFetchQuery = { __typename?: 'Query', appsV1DeploymentsList?: { __typename?: 'AppsV1DeploymentList', items: Array<{ __typename?: 'AppsV1Deployment', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; + +export type HomeDeploymentsListWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + resourceVersion?: InputMaybe; +}>; + + +export type HomeDeploymentsListWatchSubscription = { __typename?: 'Subscription', appsV1DeploymentsWatch?: { __typename?: 'AppsV1DeploymentsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1Deployment', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; + +export type HomeJobsListFetchQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + continue?: InputMaybe; +}>; + + +export type HomeJobsListFetchQuery = { __typename?: 'Query', batchV1JobsList?: { __typename?: 'BatchV1JobList', items: Array<{ __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; + +export type HomeJobsListWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + resourceVersion?: InputMaybe; +}>; + + +export type HomeJobsListWatchSubscription = { __typename?: 'Subscription', batchV1JobsWatch?: { __typename?: 'BatchV1JobsWatchEvent', type: WatchEventType, object?: { __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; + +export type HomeNamespacesListFetchQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + continue?: InputMaybe; +}>; + + +export type HomeNamespacesListFetchQuery = { __typename?: 'Query', coreV1NamespacesList?: { __typename?: 'CoreV1NamespaceList', items: Array<{ __typename?: 'CoreV1Namespace', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; + +export type HomeNamespacesListWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + resourceVersion?: InputMaybe; +}>; + + +export type HomeNamespacesListWatchSubscription = { __typename?: 'Subscription', coreV1NamespacesWatch?: { __typename?: 'CoreV1NamespacesWatchEvent', type: WatchEventType, object?: { __typename?: 'CoreV1Namespace', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; + +export type HomePodsListFetchQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + continue?: InputMaybe; +}>; + + +export type HomePodsListFetchQuery = { __typename?: 'Query', coreV1PodsList?: { __typename?: 'CoreV1PodList', items: Array<{ __typename?: 'CoreV1Pod', id: string, status: { __typename?: 'CoreV1PodStatus', containerStatuses: Array<{ __typename?: 'CoreV1ContainerStatus', containerID: string, started?: boolean | null }> }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; + +export type HomePodsListWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + resourceVersion?: InputMaybe; +}>; + + +export type HomePodsListWatchSubscription = { __typename?: 'Subscription', coreV1PodsWatch?: { __typename?: 'CoreV1PodsWatchEvent', type: WatchEventType, object?: { __typename?: 'CoreV1Pod', id: string, status: { __typename?: 'CoreV1PodStatus', containerStatuses: Array<{ __typename?: 'CoreV1ContainerStatus', containerID: string, started?: boolean | null }> }, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; + +export type HomeReplicaSetsListFetchQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + continue?: InputMaybe; +}>; + + +export type HomeReplicaSetsListFetchQuery = { __typename?: 'Query', appsV1ReplicaSetsList?: { __typename?: 'AppsV1ReplicaSetList', items: Array<{ __typename?: 'AppsV1ReplicaSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; + +export type HomeReplicaSetsListWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + resourceVersion?: InputMaybe; +}>; + + +export type HomeReplicaSetsListWatchSubscription = { __typename?: 'Subscription', appsV1ReplicaSetsWatch?: { __typename?: 'AppsV1ReplicaSetsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1ReplicaSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; + +export type HomeStatefulSetsListFetchQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + continue?: InputMaybe; +}>; + + +export type HomeStatefulSetsListFetchQuery = { __typename?: 'Query', appsV1StatefulSetsList?: { __typename?: 'AppsV1StatefulSetList', items: Array<{ __typename?: 'AppsV1StatefulSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; + +export type HomeStatefulSetsListWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + resourceVersion?: InputMaybe; +}>; + + +export type HomeStatefulSetsListWatchSubscription = { __typename?: 'Subscription', appsV1StatefulSetsWatch?: { __typename?: 'AppsV1StatefulSetsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1StatefulSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; + +export type KubeConfigGetQueryVariables = Exact<{ [key: string]: never; }>; + + +export type KubeConfigGetQuery = { __typename?: 'Query', kubeConfigGet?: { __typename?: 'KubeConfig', currentContext: string, contexts: Array<{ __typename?: 'KubeConfigContext', name: string, cluster: string, namespace: string }> } | null }; + +export type KubeConfigWatchSubscriptionVariables = Exact<{ [key: string]: never; }>; + + +export type KubeConfigWatchSubscription = { __typename?: 'Subscription', kubeConfigWatch?: { __typename?: 'KubeConfigWatchEvent', type: WatchEventType, object?: { __typename?: 'KubeConfig', currentContext: string, contexts: Array<{ __typename?: 'KubeConfigContext', name: string, cluster: string, namespace: string }> } | null } | null }; + +export type KubernetesApiReadyWaitQueryVariables = Exact<{ + kubeContext?: InputMaybe; +}>; + + +export type KubernetesApiReadyWaitQuery = { __typename?: 'Query', kubernetesAPIReadyWait: boolean }; + +export type KubetailClusterApiInstallMutationVariables = Exact<{ + kubeContext: Scalars['String']['input']; +}>; + + +export type KubetailClusterApiInstallMutation = { __typename?: 'Mutation', kubetailClusterAPIInstall?: boolean | null }; + +export type KubetailClusterApiReadyWaitQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace: Scalars['String']['input']; + serviceName: Scalars['String']['input']; +}>; + + +export type KubetailClusterApiReadyWaitQuery = { __typename?: 'Query', kubetailClusterAPIReadyWait: boolean }; + +export type PodLogHeadQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace: Scalars['String']['input']; + name: Scalars['String']['input']; + container?: InputMaybe; + after?: InputMaybe; + since?: InputMaybe; + first?: InputMaybe; +}>; + + +export type PodLogHeadQuery = { __typename?: 'Query', podLogHead?: { __typename?: 'PodLogQueryResponse', results: Array<{ __typename?: 'LogRecord', timestamp: any, message: string }>, pageInfo: { __typename?: 'PageInfo', hasPreviousPage: boolean, hasNextPage: boolean, startCursor?: string | null, endCursor?: string | null } } | null }; + +export type PodLogTailQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace: Scalars['String']['input']; + name: Scalars['String']['input']; + container?: InputMaybe; + before?: InputMaybe; + last?: InputMaybe; +}>; + + +export type PodLogTailQuery = { __typename?: 'Query', podLogTail?: { __typename?: 'PodLogQueryResponse', results: Array<{ __typename?: 'LogRecord', timestamp: any, message: string }>, pageInfo: { __typename?: 'PageInfo', hasPreviousPage: boolean, hasNextPage: boolean, startCursor?: string | null, endCursor?: string | null } } | null }; + +export type PodLogFollowSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace: Scalars['String']['input']; + name: Scalars['String']['input']; + container?: InputMaybe; + after?: InputMaybe; + since?: InputMaybe; +}>; + + +export type PodLogFollowSubscription = { __typename?: 'Subscription', podLogFollow?: { __typename?: 'LogRecord', timestamp: any, message: string } | null }; + +export type ServerStatusKubernetesApiHealthzGetQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; +}>; + + +export type ServerStatusKubernetesApiHealthzGetQuery = { __typename?: 'Query', kubernetesAPIHealthzGet: { __typename?: 'HealthCheckResponse', status: HealthCheckStatus, message?: string | null, timestamp: any } }; + +export type ServerStatusKubernetesApiHealthzWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; +}>; + + +export type ServerStatusKubernetesApiHealthzWatchSubscription = { __typename?: 'Subscription', kubernetesAPIHealthzWatch: { __typename?: 'HealthCheckResponse', status: HealthCheckStatus, message?: string | null, timestamp: any } }; + +export type ServerStatusKubetailClusterApiHealthzGetQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + serviceName?: InputMaybe; +}>; + + +export type ServerStatusKubetailClusterApiHealthzGetQuery = { __typename?: 'Query', kubetailClusterAPIHealthzGet: { __typename?: 'HealthCheckResponse', status: HealthCheckStatus, message?: string | null, timestamp: any } }; + +export type ServerStatusKubetailClusterApiHealthzWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + serviceName?: InputMaybe; +}>; + + +export type ServerStatusKubetailClusterApiHealthzWatchSubscription = { __typename?: 'Subscription', kubetailClusterAPIHealthzWatch: { __typename?: 'HealthCheckResponse', status: HealthCheckStatus, message?: string | null, timestamp: any } }; + +export type SourcePickerCronJobsCountFetchQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; +}>; + + +export type SourcePickerCronJobsCountFetchQuery = { __typename?: 'Query', batchV1CronJobsList?: { __typename?: 'BatchV1CronJobList', items: Array<{ __typename?: 'BatchV1CronJob', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }>, metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string } } | null }; + +export type SourcePickerCronJobsCountWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + resourceVersion?: InputMaybe; +}>; + + +export type SourcePickerCronJobsCountWatchSubscription = { __typename?: 'Subscription', batchV1CronJobsWatch?: { __typename?: 'BatchV1CronJobsWatchEvent', type: WatchEventType, object?: { __typename?: 'BatchV1CronJob', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } } | null } | null }; + +export type SourcePickerDaemonSetsCountFetchQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; +}>; + + +export type SourcePickerDaemonSetsCountFetchQuery = { __typename?: 'Query', appsV1DaemonSetsList?: { __typename?: 'AppsV1DaemonSetList', items: Array<{ __typename?: 'AppsV1DaemonSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }>, metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string } } | null }; + +export type SourcePickerDaemonSetsCountWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + resourceVersion?: InputMaybe; +}>; + + +export type SourcePickerDaemonSetsCountWatchSubscription = { __typename?: 'Subscription', appsV1DaemonSetsWatch?: { __typename?: 'AppsV1DaemonSetsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1DaemonSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } } | null } | null }; + +export type SourcePickerDeploymentsCountFetchQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; +}>; + + +export type SourcePickerDeploymentsCountFetchQuery = { __typename?: 'Query', appsV1DeploymentsList?: { __typename?: 'AppsV1DeploymentList', items: Array<{ __typename?: 'AppsV1Deployment', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }>, metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string } } | null }; + +export type SourcePickerDeploymentsCountWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + resourceVersion?: InputMaybe; +}>; + + +export type SourcePickerDeploymentsCountWatchSubscription = { __typename?: 'Subscription', appsV1DeploymentsWatch?: { __typename?: 'AppsV1DeploymentsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1Deployment', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } } | null } | null }; + +export type SourcePickerJobsCountFetchQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; +}>; + + +export type SourcePickerJobsCountFetchQuery = { __typename?: 'Query', batchV1JobsList?: { __typename?: 'BatchV1JobList', items: Array<{ __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }>, metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string } } | null }; + +export type SourcePickerJobsCountWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + resourceVersion?: InputMaybe; +}>; + + +export type SourcePickerJobsCountWatchSubscription = { __typename?: 'Subscription', batchV1JobsWatch?: { __typename?: 'BatchV1JobsWatchEvent', type: WatchEventType, object?: { __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } } | null } | null }; + +export type SourcePickerPodsCountFetchQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; +}>; + + +export type SourcePickerPodsCountFetchQuery = { __typename?: 'Query', coreV1PodsList?: { __typename?: 'CoreV1PodList', items: Array<{ __typename?: 'CoreV1Pod', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }>, metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string } } | null }; + +export type SourcePickerPodsCountWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + resourceVersion?: InputMaybe; +}>; + + +export type SourcePickerPodsCountWatchSubscription = { __typename?: 'Subscription', coreV1PodsWatch?: { __typename?: 'CoreV1PodsWatchEvent', type: WatchEventType, object?: { __typename?: 'CoreV1Pod', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } } | null } | null }; + +export type SourcePickerReplicaSetsCountFetchQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; +}>; + + +export type SourcePickerReplicaSetsCountFetchQuery = { __typename?: 'Query', appsV1ReplicaSetsList?: { __typename?: 'AppsV1ReplicaSetList', items: Array<{ __typename?: 'AppsV1ReplicaSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }>, metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string } } | null }; + +export type SourcePickerReplicaSetsCountWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + resourceVersion?: InputMaybe; +}>; + + +export type SourcePickerReplicaSetsCountWatchSubscription = { __typename?: 'Subscription', appsV1ReplicaSetsWatch?: { __typename?: 'AppsV1ReplicaSetsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1ReplicaSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } } | null } | null }; + +export type SourcePickerStatefulSetsCountFetchQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; +}>; + + +export type SourcePickerStatefulSetsCountFetchQuery = { __typename?: 'Query', appsV1StatefulSetsList?: { __typename?: 'AppsV1StatefulSetList', items: Array<{ __typename?: 'AppsV1StatefulSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } }>, metadata: { __typename?: 'MetaV1ListMeta', remainingItemCount?: any | null, resourceVersion: string } } | null }; + +export type SourcePickerStatefulSetsCountWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + resourceVersion?: InputMaybe; +}>; + + +export type SourcePickerStatefulSetsCountWatchSubscription = { __typename?: 'Subscription', appsV1StatefulSetsWatch?: { __typename?: 'AppsV1StatefulSetsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1StatefulSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', resourceVersion: string } } | null } | null }; + +export type SourcePickerCronJobsListFetchQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + continue?: InputMaybe; +}>; + + +export type SourcePickerCronJobsListFetchQuery = { __typename?: 'Query', batchV1CronJobsList?: { __typename?: 'BatchV1CronJobList', items: Array<{ __typename?: 'BatchV1CronJob', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; + +export type SourcePickerCronJobsListWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + resourceVersion?: InputMaybe; +}>; + + +export type SourcePickerCronJobsListWatchSubscription = { __typename?: 'Subscription', batchV1CronJobsWatch?: { __typename?: 'BatchV1CronJobsWatchEvent', type: WatchEventType, object?: { __typename?: 'BatchV1CronJob', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } } | null } | null }; + +export type SourcePickerDaemonSetsListFetchQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + continue?: InputMaybe; +}>; + + +export type SourcePickerDaemonSetsListFetchQuery = { __typename?: 'Query', appsV1DaemonSetsList?: { __typename?: 'AppsV1DaemonSetList', items: Array<{ __typename?: 'AppsV1DaemonSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; + +export type SourcePickerDaemonSetsListWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + resourceVersion?: InputMaybe; +}>; + + +export type SourcePickerDaemonSetsListWatchSubscription = { __typename?: 'Subscription', appsV1DaemonSetsWatch?: { __typename?: 'AppsV1DaemonSetsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1DaemonSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } } | null } | null }; + +export type SourcePickerDeploymentsListFetchQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + continue?: InputMaybe; +}>; + + +export type SourcePickerDeploymentsListFetchQuery = { __typename?: 'Query', appsV1DeploymentsList?: { __typename?: 'AppsV1DeploymentList', items: Array<{ __typename?: 'AppsV1Deployment', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; + +export type SourcePickerDeploymentsListWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + resourceVersion?: InputMaybe; +}>; + + +export type SourcePickerDeploymentsListWatchSubscription = { __typename?: 'Subscription', appsV1DeploymentsWatch?: { __typename?: 'AppsV1DeploymentsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1Deployment', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } } | null } | null }; + +export type SourcePickerJobsListFetchQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + continue?: InputMaybe; +}>; + + +export type SourcePickerJobsListFetchQuery = { __typename?: 'Query', batchV1JobsList?: { __typename?: 'BatchV1JobList', items: Array<{ __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; + +export type SourcePickerJobsListWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + resourceVersion?: InputMaybe; +}>; + + +export type SourcePickerJobsListWatchSubscription = { __typename?: 'Subscription', batchV1JobsWatch?: { __typename?: 'BatchV1JobsWatchEvent', type: WatchEventType, object?: { __typename?: 'BatchV1Job', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } } | null } | null }; + +export type SourcePickerNamespacesListFetchQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + continue?: InputMaybe; +}>; + + +export type SourcePickerNamespacesListFetchQuery = { __typename?: 'Query', coreV1NamespacesList?: { __typename?: 'CoreV1NamespaceList', items: Array<{ __typename?: 'CoreV1Namespace', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; + +export type SourcePickerNamespacesListWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + resourceVersion?: InputMaybe; +}>; + + +export type SourcePickerNamespacesListWatchSubscription = { __typename?: 'Subscription', coreV1NamespacesWatch?: { __typename?: 'CoreV1NamespacesWatchEvent', type: WatchEventType, object?: { __typename?: 'CoreV1Namespace', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } } | null } | null }; + +export type SourcePickerPodsListFetchQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + continue?: InputMaybe; +}>; + + +export type SourcePickerPodsListFetchQuery = { __typename?: 'Query', coreV1PodsList?: { __typename?: 'CoreV1PodList', items: Array<{ __typename?: 'CoreV1Pod', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; + +export type SourcePickerPodsListWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + resourceVersion?: InputMaybe; +}>; + + +export type SourcePickerPodsListWatchSubscription = { __typename?: 'Subscription', coreV1PodsWatch?: { __typename?: 'CoreV1PodsWatchEvent', type: WatchEventType, object?: { __typename?: 'CoreV1Pod', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } } | null } | null }; + +export type SourcePickerReplicaSetsListFetchQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + continue?: InputMaybe; +}>; + + +export type SourcePickerReplicaSetsListFetchQuery = { __typename?: 'Query', appsV1ReplicaSetsList?: { __typename?: 'AppsV1ReplicaSetList', items: Array<{ __typename?: 'AppsV1ReplicaSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; + +export type SourcePickerReplicaSetsListWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + resourceVersion?: InputMaybe; +}>; + + +export type SourcePickerReplicaSetsListWatchSubscription = { __typename?: 'Subscription', appsV1ReplicaSetsWatch?: { __typename?: 'AppsV1ReplicaSetsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1ReplicaSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } } | null } | null }; + +export type SourcePickerStatefulSetsListFetchQueryVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + continue?: InputMaybe; +}>; + + +export type SourcePickerStatefulSetsListFetchQuery = { __typename?: 'Query', appsV1StatefulSetsList?: { __typename?: 'AppsV1StatefulSetList', items: Array<{ __typename?: 'AppsV1StatefulSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string } }>, metadata: { __typename?: 'MetaV1ListMeta', continue: string, resourceVersion: string } } | null }; + +export type SourcePickerStatefulSetsListWatchSubscriptionVariables = Exact<{ + kubeContext: Scalars['String']['input']; + namespace?: InputMaybe; + resourceVersion?: InputMaybe; +}>; + + +export type SourcePickerStatefulSetsListWatchSubscription = { __typename?: 'Subscription', appsV1StatefulSetsWatch?: { __typename?: 'AppsV1StatefulSetsWatchEvent', type: WatchEventType, object?: { __typename?: 'AppsV1StatefulSet', id: string, metadata: { __typename?: 'MetaV1ObjectMeta', namespace: string, name: string, uid: string, creationTimestamp: any, deletionTimestamp?: any | null, resourceVersion: string, ownerReferences: Array<{ __typename?: 'MetaV1OwnerReference', name: string, uid: string, controller?: boolean | null }> } } | null } | null }; + +export const ConsoleLoggingResourcesGenericObjectFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; +export const ConsoleLoggingResourcesCronJobFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesCronJobFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1CronJob"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"jobTemplate"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; +export const ConsoleLoggingResourcesDaemonSetFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesDaemonSetFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1DaemonSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; +export const ConsoleLoggingResourcesDeploymentFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesDeploymentFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1Deployment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; +export const ConsoleLoggingResourcesJobFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesJobFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1Job"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; +export const ConsoleLoggingResourcesPodFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Pod"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containers"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"nodeName"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containerStatuses"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"started"}},{"kind":"Field","name":{"kind":"Name","value":"state"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"running"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"terminated"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"exitCode"}}]}}]}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; +export const ConsoleLoggingResourcesReplicaSetFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesReplicaSetFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1ReplicaSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; +export const ConsoleLoggingResourcesStatefulSetFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesStatefulSetFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1StatefulSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; +export const ConsoleLoggingResourcesJobsFindFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesJobsFindFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1Job"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}}]} as unknown as DocumentNode; +export const ConsoleNodesListItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleNodesListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Node"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"labels"}},{"kind":"Field","name":{"kind":"Name","value":"annotations"}}]}}]}}]} as unknown as DocumentNode; +export const HealthCheckResponseFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HealthCheckResponseFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"HealthCheckResponse"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"status"}},{"kind":"Field","name":{"kind":"Name","value":"message"}},{"kind":"Field","name":{"kind":"Name","value":"timestamp"}}]}}]} as unknown as DocumentNode; +export const HomeGenericListItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; +export const HomeCronJobsListItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeCronJobsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1CronJob"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; +export const HomeDaemonSetsListItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeDaemonSetsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1DaemonSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; +export const HomeDeploymentsListItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeDeploymentsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1Deployment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; +export const HomeJobsListItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeJobsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1Job"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; +export const HomeGenericListFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; +export const HomeNamespacesListItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeNamespacesListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Namespace"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; +export const HomePodsListItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomePodsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Pod"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containerStatuses"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containerID"}},{"kind":"Field","name":{"kind":"Name","value":"started"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; +export const HomeReplicaSetsListItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeReplicaSetsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1ReplicaSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; +export const HomeStatefulSetsListItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeStatefulSetsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1StatefulSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}}]} as unknown as DocumentNode; +export const KubeConfigFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"KubeConfigFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"KubeConfig"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"currentContext"}},{"kind":"Field","name":{"kind":"Name","value":"contexts"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"cluster"}},{"kind":"Field","name":{"kind":"Name","value":"namespace"}}]}}]}}]} as unknown as DocumentNode; +export const PodLogQueryResponseFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"PodLogQueryResponseFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"PodLogQueryResponse"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"results"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"timestamp"}},{"kind":"Field","name":{"kind":"Name","value":"message"}}]}},{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerGenericCounterItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerGenericCounterFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"remainingItemCount"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerGenericListFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerGenericListItemFragmentFragmentDoc = {"kind":"Document","definitions":[{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; +export const ConsoleLoggingResourcesCronJobGetDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ConsoleLoggingResourcesCronJobGet"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"name"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1CronJobsGet"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"name"},"value":{"kind":"Variable","name":{"kind":"Name","value":"name"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesCronJobFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesCronJobFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1CronJob"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"jobTemplate"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode; +export const ConsoleLoggingResourcesCronJobWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ConsoleLoggingResourcesCronJobWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1CronJobsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"fieldSelector"},"value":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesCronJobFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesCronJobFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1CronJob"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"jobTemplate"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode; +export const ConsoleLoggingResourcesDaemonSetGetDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ConsoleLoggingResourcesDaemonSetGet"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"name"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DaemonSetsGet"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"name"},"value":{"kind":"Variable","name":{"kind":"Name","value":"name"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesDaemonSetFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesDaemonSetFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1DaemonSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}}]} as unknown as DocumentNode; +export const ConsoleLoggingResourcesDaemonSetWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ConsoleLoggingResourcesDaemonSetWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DaemonSetsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"fieldSelector"},"value":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesDaemonSetFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesDaemonSetFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1DaemonSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}}]} as unknown as DocumentNode; +export const ConsoleLoggingResourcesDeploymentGetDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ConsoleLoggingResourcesDeploymentGet"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"name"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DeploymentsGet"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"name"},"value":{"kind":"Variable","name":{"kind":"Name","value":"name"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesDeploymentFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesDeploymentFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1Deployment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}}]} as unknown as DocumentNode; +export const ConsoleLoggingResourcesDeploymentWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ConsoleLoggingResourcesDeploymentWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DeploymentsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"fieldSelector"},"value":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesDeploymentFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesDeploymentFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1Deployment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}}]} as unknown as DocumentNode; +export const ConsoleLoggingResourcesJobGetDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ConsoleLoggingResourcesJobGet"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"name"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1JobsGet"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"name"},"value":{"kind":"Variable","name":{"kind":"Name","value":"name"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesJobFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesJobFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1Job"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}}]} as unknown as DocumentNode; +export const ConsoleLoggingResourcesJobWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ConsoleLoggingResourcesJobWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1JobsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"fieldSelector"},"value":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesJobFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesJobFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1Job"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}}]} as unknown as DocumentNode; +export const ConsoleLoggingResourcesPodGetDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodGet"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"name"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1PodsGet"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"name"},"value":{"kind":"Variable","name":{"kind":"Name","value":"name"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Pod"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containers"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"nodeName"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containerStatuses"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"started"}},{"kind":"Field","name":{"kind":"Name","value":"state"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"running"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"terminated"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"exitCode"}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode; +export const ConsoleLoggingResourcesPodWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1PodsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"fieldSelector"},"value":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Pod"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containers"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"nodeName"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containerStatuses"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"started"}},{"kind":"Field","name":{"kind":"Name","value":"state"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"running"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"terminated"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"exitCode"}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode; +export const ConsolePodsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ConsolePodsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1PodsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Pod"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containers"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"nodeName"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containerStatuses"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"started"}},{"kind":"Field","name":{"kind":"Name","value":"state"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"running"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"terminated"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"exitCode"}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode; +export const ConsolePodsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ConsolePodsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1PodsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Pod"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containers"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"nodeName"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containerStatuses"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"started"}},{"kind":"Field","name":{"kind":"Name","value":"state"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"running"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"terminated"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"exitCode"}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode; +export const ConsoleLoggingResourcesReplicaSetGetDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ConsoleLoggingResourcesReplicaSetGet"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"name"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1ReplicaSetsGet"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"name"},"value":{"kind":"Variable","name":{"kind":"Name","value":"name"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesReplicaSetFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesReplicaSetFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1ReplicaSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}}]} as unknown as DocumentNode; +export const ConsoleLoggingResourcesReplicaSetWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ConsoleLoggingResourcesReplicaSetWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1ReplicaSetsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"fieldSelector"},"value":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesReplicaSetFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesReplicaSetFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1ReplicaSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}}]} as unknown as DocumentNode; +export const ConsoleLoggingResourcesStatefulSetGetDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ConsoleLoggingResourcesStatefulSetGet"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"name"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1StatefulSetsGet"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"name"},"value":{"kind":"Variable","name":{"kind":"Name","value":"name"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesStatefulSetFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesStatefulSetFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1StatefulSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}}]} as unknown as DocumentNode; +export const ConsoleLoggingResourcesStatefulSetWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ConsoleLoggingResourcesStatefulSetWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1StatefulSetsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"fieldSelector"},"value":{"kind":"Variable","name":{"kind":"Name","value":"fieldSelector"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesStatefulSetFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesStatefulSetFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1StatefulSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}}]} as unknown as DocumentNode; +export const ConsoleLoggingResourcesJobsFindDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ConsoleLoggingResourcesJobsFind"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1JobsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesJobsFindFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesJobsFindFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1Job"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}}]} as unknown as DocumentNode; +export const ConsoleStreamsJobsWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ConsoleStreamsJobsWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1JobsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesJobFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesJobFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1Job"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"selector"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"matchLabels"}}]}}]}}]}}]} as unknown as DocumentNode; +export const ConsoleLoggingResourcesPodsFindDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodsFind"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"labelSelector"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1PodsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"labelSelector"},"value":{"kind":"Variable","name":{"kind":"Name","value":"labelSelector"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Pod"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containers"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"nodeName"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containerStatuses"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"started"}},{"kind":"Field","name":{"kind":"Name","value":"state"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"running"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"terminated"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"exitCode"}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode; +export const ConsoleLoggingResourcesPodsWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodsWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"labelSelector"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1PodsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"labelSelector"},"value":{"kind":"Variable","name":{"kind":"Name","value":"labelSelector"}}},{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleLoggingResourcesPodFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Pod"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleLoggingResourcesGenericObjectFragment"}},{"kind":"Field","name":{"kind":"Name","value":"spec"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containers"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}}]}},{"kind":"Field","name":{"kind":"Name","value":"nodeName"}}]}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containerStatuses"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"started"}},{"kind":"Field","name":{"kind":"Name","value":"state"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"running"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"startedAt"}}]}},{"kind":"Field","name":{"kind":"Name","value":"terminated"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"exitCode"}}]}}]}}]}}]}}]}}]} as unknown as DocumentNode; +export const ConsoleNodesListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ConsoleNodesListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1NodesList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleNodesListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleNodesListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Node"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"labels"}},{"kind":"Field","name":{"kind":"Name","value":"annotations"}}]}}]}}]} as unknown as DocumentNode; +export const ConsoleNodesListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ConsoleNodesListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1NodesWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"ConsoleNodesListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"ConsoleNodesListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Node"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"labels"}},{"kind":"Field","name":{"kind":"Name","value":"annotations"}}]}}]}}]} as unknown as DocumentNode; +export const HomeCronJobsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"HomeCronJobsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1CronJobsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeCronJobsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeCronJobsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1CronJob"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}}]} as unknown as DocumentNode; +export const HomeCronJobsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"HomeCronJobsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1CronJobsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeCronJobsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeCronJobsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1CronJob"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}}]} as unknown as DocumentNode; +export const HomeDaemonSetsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"HomeDaemonSetsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DaemonSetsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeDaemonSetsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeDaemonSetsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1DaemonSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}}]} as unknown as DocumentNode; +export const HomeDaemonSetsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"HomeDaemonSetsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DaemonSetsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeDaemonSetsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeDaemonSetsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1DaemonSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}}]} as unknown as DocumentNode; +export const HomeDeploymentsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"HomeDeploymentsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DeploymentsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeDeploymentsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeDeploymentsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1Deployment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}}]} as unknown as DocumentNode; +export const HomeDeploymentsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"HomeDeploymentsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DeploymentsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeDeploymentsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeDeploymentsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1Deployment"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}}]} as unknown as DocumentNode; +export const HomeJobsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"HomeJobsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1JobsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeJobsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeJobsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1Job"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}}]} as unknown as DocumentNode; +export const HomeJobsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"HomeJobsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1JobsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeJobsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeJobsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"BatchV1Job"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}}]} as unknown as DocumentNode; +export const HomeNamespacesListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"HomeNamespacesListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1NamespacesList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeNamespacesListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeNamespacesListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Namespace"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}}]} as unknown as DocumentNode; +export const HomeNamespacesListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"HomeNamespacesListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1NamespacesWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeNamespacesListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeNamespacesListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Namespace"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}}]} as unknown as DocumentNode; +export const HomePodsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"HomePodsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1PodsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomePodsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomePodsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Pod"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containerStatuses"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containerID"}},{"kind":"Field","name":{"kind":"Name","value":"started"}}]}}]}}]}}]} as unknown as DocumentNode; +export const HomePodsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"HomePodsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1PodsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomePodsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomePodsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"CoreV1Pod"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}},{"kind":"Field","name":{"kind":"Name","value":"status"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containerStatuses"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"containerID"}},{"kind":"Field","name":{"kind":"Name","value":"started"}}]}}]}}]}}]} as unknown as DocumentNode; +export const HomeReplicaSetsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"HomeReplicaSetsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1ReplicaSetsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeReplicaSetsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeReplicaSetsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1ReplicaSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}}]} as unknown as DocumentNode; +export const HomeReplicaSetsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"HomeReplicaSetsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1ReplicaSetsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeReplicaSetsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeReplicaSetsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1ReplicaSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}}]} as unknown as DocumentNode; +export const HomeStatefulSetsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"HomeStatefulSetsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1StatefulSetsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeStatefulSetsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeStatefulSetsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1StatefulSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}}]} as unknown as DocumentNode; +export const HomeStatefulSetsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"HomeStatefulSetsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1StatefulSetsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeStatefulSetsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeStatefulSetsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1StatefulSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}}]} as unknown as DocumentNode; +export const KubeConfigGetDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"KubeConfigGet"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"kubeConfigGet"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"KubeConfigFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"KubeConfigFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"KubeConfig"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"currentContext"}},{"kind":"Field","name":{"kind":"Name","value":"contexts"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"cluster"}},{"kind":"Field","name":{"kind":"Name","value":"namespace"}}]}}]}}]} as unknown as DocumentNode; +export const KubeConfigWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"KubeConfigWatch"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"kubeConfigWatch"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"KubeConfigFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"KubeConfigFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"KubeConfig"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"currentContext"}},{"kind":"Field","name":{"kind":"Name","value":"contexts"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"cluster"}},{"kind":"Field","name":{"kind":"Name","value":"namespace"}}]}}]}}]} as unknown as DocumentNode; +export const KubernetesApiReadyWaitDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"KubernetesAPIReadyWait"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"kubernetesAPIReadyWait"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}}]}]}}]} as unknown as DocumentNode; +export const KubetailClusterApiInstallDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"mutation","name":{"kind":"Name","value":"KubetailClusterAPIInstall"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"kubetailClusterAPIInstall"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}}]}]}}]} as unknown as DocumentNode; +export const KubetailClusterApiReadyWaitDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"KubetailClusterAPIReadyWait"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"serviceName"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"kubetailClusterAPIReadyWait"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"serviceName"},"value":{"kind":"Variable","name":{"kind":"Name","value":"serviceName"}}}]}]}}]} as unknown as DocumentNode; +export const PodLogHeadDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"PodLogHead"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"name"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"container"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"after"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"since"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"first"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"podLogHead"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"name"},"value":{"kind":"Variable","name":{"kind":"Name","value":"name"}}},{"kind":"Argument","name":{"kind":"Name","value":"container"},"value":{"kind":"Variable","name":{"kind":"Name","value":"container"}}},{"kind":"Argument","name":{"kind":"Name","value":"after"},"value":{"kind":"Variable","name":{"kind":"Name","value":"after"}}},{"kind":"Argument","name":{"kind":"Name","value":"since"},"value":{"kind":"Variable","name":{"kind":"Name","value":"since"}}},{"kind":"Argument","name":{"kind":"Name","value":"first"},"value":{"kind":"Variable","name":{"kind":"Name","value":"first"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"PodLogQueryResponseFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"PodLogQueryResponseFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"PodLogQueryResponse"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"results"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"timestamp"}},{"kind":"Field","name":{"kind":"Name","value":"message"}}]}},{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}}]}}]}}]} as unknown as DocumentNode; +export const PodLogTailDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"PodLogTail"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"name"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"container"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"before"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"last"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"Int"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"podLogTail"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"name"},"value":{"kind":"Variable","name":{"kind":"Name","value":"name"}}},{"kind":"Argument","name":{"kind":"Name","value":"container"},"value":{"kind":"Variable","name":{"kind":"Name","value":"container"}}},{"kind":"Argument","name":{"kind":"Name","value":"before"},"value":{"kind":"Variable","name":{"kind":"Name","value":"before"}}},{"kind":"Argument","name":{"kind":"Name","value":"last"},"value":{"kind":"Variable","name":{"kind":"Name","value":"last"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"PodLogQueryResponseFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"PodLogQueryResponseFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"PodLogQueryResponse"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"results"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"timestamp"}},{"kind":"Field","name":{"kind":"Name","value":"message"}}]}},{"kind":"Field","name":{"kind":"Name","value":"pageInfo"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"hasPreviousPage"}},{"kind":"Field","name":{"kind":"Name","value":"hasNextPage"}},{"kind":"Field","name":{"kind":"Name","value":"startCursor"}},{"kind":"Field","name":{"kind":"Name","value":"endCursor"}}]}}]}}]} as unknown as DocumentNode; +export const PodLogFollowDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"PodLogFollow"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"name"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"container"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"after"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"ID"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"since"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"podLogFollow"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"name"},"value":{"kind":"Variable","name":{"kind":"Name","value":"name"}}},{"kind":"Argument","name":{"kind":"Name","value":"container"},"value":{"kind":"Variable","name":{"kind":"Name","value":"container"}}},{"kind":"Argument","name":{"kind":"Name","value":"after"},"value":{"kind":"Variable","name":{"kind":"Name","value":"after"}}},{"kind":"Argument","name":{"kind":"Name","value":"since"},"value":{"kind":"Variable","name":{"kind":"Name","value":"since"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"timestamp"}},{"kind":"Field","name":{"kind":"Name","value":"message"}}]}}]}}]} as unknown as DocumentNode; +export const ServerStatusKubernetesApiHealthzGetDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ServerStatusKubernetesAPIHealthzGet"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"kubernetesAPIHealthzGet"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HealthCheckResponseFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HealthCheckResponseFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"HealthCheckResponse"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"status"}},{"kind":"Field","name":{"kind":"Name","value":"message"}},{"kind":"Field","name":{"kind":"Name","value":"timestamp"}}]}}]} as unknown as DocumentNode; +export const ServerStatusKubernetesApiHealthzWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ServerStatusKubernetesAPIHealthzWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"kubernetesAPIHealthzWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HealthCheckResponseFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HealthCheckResponseFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"HealthCheckResponse"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"status"}},{"kind":"Field","name":{"kind":"Name","value":"message"}},{"kind":"Field","name":{"kind":"Name","value":"timestamp"}}]}}]} as unknown as DocumentNode; +export const ServerStatusKubetailClusterApiHealthzGetDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"ServerStatusKubetailClusterAPIHealthzGet"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"serviceName"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"kubetailClusterAPIHealthzGet"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"serviceName"},"value":{"kind":"Variable","name":{"kind":"Name","value":"serviceName"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HealthCheckResponseFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HealthCheckResponseFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"HealthCheckResponse"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"status"}},{"kind":"Field","name":{"kind":"Name","value":"message"}},{"kind":"Field","name":{"kind":"Name","value":"timestamp"}}]}}]} as unknown as DocumentNode; +export const ServerStatusKubetailClusterApiHealthzWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"ServerStatusKubetailClusterAPIHealthzWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"serviceName"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"kubetailClusterAPIHealthzWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"serviceName"},"value":{"kind":"Variable","name":{"kind":"Name","value":"serviceName"}}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HealthCheckResponseFragment"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HealthCheckResponseFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"HealthCheckResponse"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"status"}},{"kind":"Field","name":{"kind":"Name","value":"message"}},{"kind":"Field","name":{"kind":"Name","value":"timestamp"}}]}}]} as unknown as DocumentNode; +export const SourcePickerCronJobsCountFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SourcePickerCronJobsCountFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1CronJobsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"1","block":false}}]}}],"directives":[{"kind":"Directive","name":{"kind":"Name","value":"connection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"key"},"value":{"kind":"StringValue","value":"SourcePickerCronJobsCountFetch","block":false}}]}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"remainingItemCount"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerCronJobsCountWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"SourcePickerCronJobsCountWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1CronJobsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerDaemonSetsCountFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SourcePickerDaemonSetsCountFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DaemonSetsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"1","block":false}}]}}],"directives":[{"kind":"Directive","name":{"kind":"Name","value":"connection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"key"},"value":{"kind":"StringValue","value":"SourcePickerDaemonSetsCountFetch","block":false}}]}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"remainingItemCount"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerDaemonSetsCountWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"SourcePickerDaemonSetsCountWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DaemonSetsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerDeploymentsCountFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SourcePickerDeploymentsCountFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DeploymentsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"1","block":false}}]}}],"directives":[{"kind":"Directive","name":{"kind":"Name","value":"connection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"key"},"value":{"kind":"StringValue","value":"SourcePickerDeploymentsCountFetch","block":false}}]}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"remainingItemCount"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerDeploymentsCountWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"SourcePickerDeploymentsCountWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DeploymentsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerJobsCountFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SourcePickerJobsCountFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1JobsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"1","block":false}}]}}],"directives":[{"kind":"Directive","name":{"kind":"Name","value":"connection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"key"},"value":{"kind":"StringValue","value":"SourcePickerJobsCountFetch","block":false}}]}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"remainingItemCount"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerJobsCountWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"SourcePickerJobsCountWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1JobsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerPodsCountFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SourcePickerPodsCountFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1PodsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"1","block":false}}]}}],"directives":[{"kind":"Directive","name":{"kind":"Name","value":"connection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"key"},"value":{"kind":"StringValue","value":"SourcePickerPodsCountFetch","block":false}}]}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"remainingItemCount"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerPodsCountWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"SourcePickerPodsCountWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1PodsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerReplicaSetsCountFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SourcePickerReplicaSetsCountFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1ReplicaSetsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"1","block":false}}]}}],"directives":[{"kind":"Directive","name":{"kind":"Name","value":"connection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"key"},"value":{"kind":"StringValue","value":"SourcePickerReplicaSetsCountFetch","block":false}}]}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"remainingItemCount"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerReplicaSetsCountWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"SourcePickerReplicaSetsCountWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1ReplicaSetsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerStatefulSetsCountFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SourcePickerStatefulSetsCountFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1StatefulSetsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"1","block":false}}]}}],"directives":[{"kind":"Directive","name":{"kind":"Name","value":"connection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"key"},"value":{"kind":"StringValue","value":"SourcePickerStatefulSetsCountFetch","block":false}}]}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"remainingItemCount"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerStatefulSetsCountWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"SourcePickerStatefulSetsCountWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1StatefulSetsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericCounterItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerCronJobsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SourcePickerCronJobsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1CronJobsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"directives":[{"kind":"Directive","name":{"kind":"Name","value":"connection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"key"},"value":{"kind":"StringValue","value":"SourcePickerCronJobsListFetch","block":false}}]}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerCronJobsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"SourcePickerCronJobsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1CronJobsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerDaemonSetsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SourcePickerDaemonSetsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DaemonSetsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"directives":[{"kind":"Directive","name":{"kind":"Name","value":"connection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"key"},"value":{"kind":"StringValue","value":"SourcePickerDaemonSetsListFetch","block":false}}]}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerDaemonSetsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"SourcePickerDaemonSetsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DaemonSetsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerDeploymentsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SourcePickerDeploymentsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DeploymentsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"directives":[{"kind":"Directive","name":{"kind":"Name","value":"connection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"key"},"value":{"kind":"StringValue","value":"SourcePickerDeploymentsListFetch","block":false}}]}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerDeploymentsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"SourcePickerDeploymentsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1DeploymentsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerJobsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SourcePickerJobsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1JobsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"directives":[{"kind":"Directive","name":{"kind":"Name","value":"connection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"key"},"value":{"kind":"StringValue","value":"SourcePickerJobsListFetch","block":false}}]}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerJobsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"SourcePickerJobsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"batchV1JobsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerNamespacesListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SourcePickerNamespacesListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1NamespacesList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerNamespacesListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"SourcePickerNamespacesListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1NamespacesWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerPodsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SourcePickerPodsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1PodsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"directives":[{"kind":"Directive","name":{"kind":"Name","value":"connection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"key"},"value":{"kind":"StringValue","value":"SourcePickerPodsListFetch","block":false}}]}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerPodsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"SourcePickerPodsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"coreV1PodsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerReplicaSetsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SourcePickerReplicaSetsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1ReplicaSetsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"directives":[{"kind":"Directive","name":{"kind":"Name","value":"connection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"key"},"value":{"kind":"StringValue","value":"SourcePickerReplicaSetsListFetch","block":false}}]}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerReplicaSetsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"SourcePickerReplicaSetsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1ReplicaSetsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerStatefulSetsListFetchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"query","name":{"kind":"Name","value":"SourcePickerStatefulSetsListFetch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"continue"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1StatefulSetsList"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"limit"},"value":{"kind":"StringValue","value":"50","block":false}},{"kind":"ObjectField","name":{"kind":"Name","value":"continue"},"value":{"kind":"Variable","name":{"kind":"Name","value":"continue"}}}]}}],"directives":[{"kind":"Directive","name":{"kind":"Name","value":"connection"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"key"},"value":{"kind":"StringValue","value":"SourcePickerStatefulSetsListFetch","block":false}}]}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListFragment"}},{"kind":"Field","name":{"kind":"Name","value":"items"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"List"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"continue"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"SourcePickerGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}}]}}]}}]} as unknown as DocumentNode; +export const SourcePickerStatefulSetsListWatchDocument = {"kind":"Document","definitions":[{"kind":"OperationDefinition","operation":"subscription","name":{"kind":"Name","value":"SourcePickerStatefulSetsListWatch"},"variableDefinitions":[{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}},"type":{"kind":"NonNullType","type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}}}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}},{"kind":"VariableDefinition","variable":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}},"type":{"kind":"NamedType","name":{"kind":"Name","value":"String"}},"defaultValue":{"kind":"StringValue","value":"","block":false}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"appsV1StatefulSetsWatch"},"arguments":[{"kind":"Argument","name":{"kind":"Name","value":"kubeContext"},"value":{"kind":"Variable","name":{"kind":"Name","value":"kubeContext"}}},{"kind":"Argument","name":{"kind":"Name","value":"namespace"},"value":{"kind":"Variable","name":{"kind":"Name","value":"namespace"}}},{"kind":"Argument","name":{"kind":"Name","value":"options"},"value":{"kind":"ObjectValue","fields":[{"kind":"ObjectField","name":{"kind":"Name","value":"resourceVersion"},"value":{"kind":"Variable","name":{"kind":"Name","value":"resourceVersion"}}}]}}],"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"type"}},{"kind":"Field","name":{"kind":"Name","value":"object"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeStatefulSetsListItemFragment"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeGenericListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"Object"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"id"}},{"kind":"Field","name":{"kind":"Name","value":"metadata"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"namespace"}},{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"creationTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"deletionTimestamp"}},{"kind":"Field","name":{"kind":"Name","value":"resourceVersion"}},{"kind":"Field","name":{"kind":"Name","value":"ownerReferences"},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"Field","name":{"kind":"Name","value":"name"}},{"kind":"Field","name":{"kind":"Name","value":"uid"}},{"kind":"Field","name":{"kind":"Name","value":"controller"}}]}}]}}]}},{"kind":"FragmentDefinition","name":{"kind":"Name","value":"HomeStatefulSetsListItemFragment"},"typeCondition":{"kind":"NamedType","name":{"kind":"Name","value":"AppsV1StatefulSet"}},"selectionSet":{"kind":"SelectionSet","selections":[{"kind":"FragmentSpread","name":{"kind":"Name","value":"HomeGenericListItemFragment"}}]}}]} as unknown as DocumentNode; \ No newline at end of file diff --git a/dashboard-ui/src/lib/graphql/dashboard/__generated__/index.ts b/dashboard-ui/src/lib/graphql/dashboard/__generated__/index.ts new file mode 100644 index 00000000..af783993 --- /dev/null +++ b/dashboard-ui/src/lib/graphql/dashboard/__generated__/index.ts @@ -0,0 +1 @@ +export * from "./gql"; \ No newline at end of file diff --git a/dashboard-ui/src/lib/graphql/__generated__/introspection-result.json b/dashboard-ui/src/lib/graphql/dashboard/__generated__/introspection-result.json similarity index 84% rename from dashboard-ui/src/lib/graphql/__generated__/introspection-result.json rename to dashboard-ui/src/lib/graphql/dashboard/__generated__/introspection-result.json index f6f99fa5..2becdfc4 100644 --- a/dashboard-ui/src/lib/graphql/__generated__/introspection-result.json +++ b/dashboard-ui/src/lib/graphql/dashboard/__generated__/introspection-result.json @@ -9,7 +9,8 @@ "BatchV1JobList", "CoreV1NamespaceList", "CoreV1NodeList", - "CoreV1PodList" + "CoreV1PodList", + "CoreV1ServiceList" ], "Object": [ "AppsV1DaemonSet", @@ -20,7 +21,8 @@ "BatchV1Job", "CoreV1Namespace", "CoreV1Node", - "CoreV1Pod" + "CoreV1Pod", + "CoreV1Service" ] } } \ No newline at end of file diff --git a/dashboard-ui/src/lib/graphql/fragments.ts b/dashboard-ui/src/lib/graphql/dashboard/fragments.ts similarity index 55% rename from dashboard-ui/src/lib/graphql/fragments.ts rename to dashboard-ui/src/lib/graphql/dashboard/fragments.ts index 46c4e960..20a84bba 100644 --- a/dashboard-ui/src/lib/graphql/fragments.ts +++ b/dashboard-ui/src/lib/graphql/dashboard/fragments.ts @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -12,93 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import { gql } from '@/lib/graphql/__generated__/gql'; - -/** - * Home list-related fragments - */ - -export const HOME_GENERIC_LIST_FRAGMENT = gql(` - fragment HomeGenericListFragment on List { - metadata { - continue - resourceVersion - } - } -`); - -export const HOME_GENERIC_LIST_ITEM_FRAGMENT = gql(` - fragment HomeGenericListItemFragment on Object { - id - metadata { - namespace - name - uid - creationTimestamp - deletionTimestamp - resourceVersion - ownerReferences { - name - uid - controller - } - } - } -`); - -export const HOME_CRONJOBS_LIST_ITEM_FRAGMENT = gql(` - fragment HomeCronJobsListItemFragment on BatchV1CronJob { - ...HomeGenericListItemFragment - } -`); - -export const HOME_DAEMONSETS_LIST_ITEM_FRAGMENT = gql(` - fragment HomeDaemonSetsListItemFragment on AppsV1DaemonSet { - ...HomeGenericListItemFragment - } -`); - -export const HOME_DEPLOYMENTS_LIST_ITEM_FRAGMENT = gql(` - fragment HomeDeploymentsListItemFragment on AppsV1Deployment { - ...HomeGenericListItemFragment - } -`); - -export const HOME_JOBS_LIST_ITEM_FRAGMENT = gql(` - fragment HomeJobsListItemFragment on BatchV1Job { - ...HomeGenericListItemFragment - } -`); - -export const HOME_NAMESPACES_LIST_ITEM_FRAGMENT = gql(` - fragment HomeNamespacesListItemFragment on CoreV1Namespace { - ...HomeGenericListItemFragment - } -`); - -export const HOME_PODS_LIST_ITEM_FRAGMENT = gql(` - fragment HomePodsListItemFragment on CoreV1Pod { - ...HomeGenericListItemFragment - status { - containerStatuses { - containerID - started - } - } - } -`); - -export const HOME_REPLICASETS_LIST_ITEM_FRAGMENT = gql(` - fragment HomeReplicaSetsListItemFragment on AppsV1ReplicaSet { - ...HomeGenericListItemFragment - } -`); - -export const HOME_STATEFULSETS_LIST_ITEM_FRAGMENT = gql(` - fragment HomeStatefulSetsListItemFragment on AppsV1StatefulSet { - ...HomeGenericListItemFragment - } -`); +import { gql } from '@/lib/graphql/dashboard/__generated__/gql'; /** * Console fragments @@ -258,59 +172,47 @@ export const CONSOLE_NODES_LIST_ITEM_FRAGMENT = gql(` `); /** - * Source-Picker fragments + * Health check fragments */ -export const SOURCE_PICKER_GENERIC_COUNTER_FRAGMENT = gql(` - fragment SourcePickerGenericCounterFragment on List { - metadata { - remainingItemCount - resourceVersion - } - items { - ...SourcePickerGenericCounterItemFragment - } +export const HEALTH_CHECK_RESPONSE_FRAGMENT = gql(` + fragment HealthCheckResponseFragment on HealthCheckResponse { + status + message + timestamp } `); -export const SOURCE_PICKER_GENERIC_COUNTER_ITEM_FRAGMENT = gql(` - fragment SourcePickerGenericCounterItemFragment on Object { - id - metadata { - resourceVersion - } +/** + * Home page fragments + */ + +export const HOME_CRONJOBS_LIST_ITEM_FRAGMENT = gql(` + fragment HomeCronJobsListItemFragment on BatchV1CronJob { + ...HomeGenericListItemFragment } `); -export const SOURCE_PICKER_GENERIC_LIST_FRAGMENT = gql(` - fragment SourcePickerGenericListFragment on List { - metadata { - continue - resourceVersion - } +export const HOME_DAEMONSETS_LIST_ITEM_FRAGMENT = gql(` + fragment HomeDaemonSetsListItemFragment on AppsV1DaemonSet { + ...HomeGenericListItemFragment } `); -export const SOURCE_PICKER_GENERIC_LIST_ITEM_FRAGMENT = gql(` - fragment SourcePickerGenericListItemFragment on Object { - id - metadata { - namespace - name - uid - creationTimestamp - deletionTimestamp - resourceVersion - } +export const HOME_DEPLOYMENTS_LIST_ITEM_FRAGMENT = gql(` + fragment HomeDeploymentsListItemFragment on AppsV1Deployment { + ...HomeGenericListItemFragment } `); -/** - * Explorer list-related fragments - */ +export const HOME_JOBS_LIST_ITEM_FRAGMENT = gql(` + fragment HomeJobsListItemFragment on BatchV1Job { + ...HomeGenericListItemFragment + } +`); -export const EXPLORER_GENERIC_LIST_FRAGMENT = gql(` - fragment ExplorerGenericListFragment on List { +export const HOME_GENERIC_LIST_FRAGMENT = gql(` + fragment HomeGenericListFragment on List { metadata { continue resourceVersion @@ -318,8 +220,8 @@ export const EXPLORER_GENERIC_LIST_FRAGMENT = gql(` } `); -export const EXPLORER_GENERIC_LIST_ITEM_FRAGMENT = gql(` - fragment ExplorerGenericListItemFragment on Object { +export const HOME_GENERIC_LIST_ITEM_FRAGMENT = gql(` + fragment HomeGenericListItemFragment on Object { id metadata { namespace @@ -337,237 +239,53 @@ export const EXPLORER_GENERIC_LIST_ITEM_FRAGMENT = gql(` } `); -export const EXPLORER_CRONJOBS_LIST_ITEM_FRAGMENT = gql(` - fragment ExplorerCronJobsListItemFragment on BatchV1CronJob { - ...ExplorerGenericListItemFragment - spec { - schedule - suspend - } - status { - active { - __typename - } - lastScheduleTime - lastSuccessfulTime - } - } -`); - -export const EXPLORER_DAEMONSETS_LIST_ITEM_FRAGMENT = gql(` - fragment ExplorerDaemonSetsListItemFragment on AppsV1DaemonSet { - ...ExplorerGenericListItemFragment - status { - currentNumberScheduled - desiredNumberScheduled - } - } -`); - -export const EXPLORER_DEPLOYMENTS_LIST_ITEM_FRAGMENT = gql(` - fragment ExplorerDeploymentsListItemFragment on AppsV1Deployment { - ...ExplorerGenericListItemFragment - spec { - replicas - paused - } - status { - replicas - } - } -`); - -export const EXPLORER_JOBS_LIST_ITEM_FRAGMENT = gql(` - fragment ExplorerJobsListItemFragment on BatchV1Job { - ...ExplorerGenericListItemFragment +export const HOME_NAMESPACES_LIST_ITEM_FRAGMENT = gql(` + fragment HomeNamespacesListItemFragment on CoreV1Namespace { + ...HomeGenericListItemFragment } `); -export const EXPLORER_PODS_LIST_ITEM_FRAGMENT = gql(` - fragment ExplorerPodsListItemFragment on CoreV1Pod { - ...ExplorerGenericListItemFragment - spec { - containers { - name - image - } - nodeName - } +export const HOME_PODS_LIST_ITEM_FRAGMENT = gql(` + fragment HomePodsListItemFragment on CoreV1Pod { + ...HomeGenericListItemFragment status { - phase containerStatuses { - name - state { - running { - startedAt - } - terminated { - exitCode - } - } - ready - restartCount + containerID started } } } `); -export const EXPLORER_REPLICASETS_LIST_ITEM_FRAGMENT = gql(` - fragment ExplorerReplicaSetsListItemFragment on AppsV1ReplicaSet { - ...ExplorerGenericListItemFragment - spec { - replicas - } - status { - replicas - } +export const HOME_REPLICASETS_LIST_ITEM_FRAGMENT = gql(` + fragment HomeReplicaSetsListItemFragment on AppsV1ReplicaSet { + ...HomeGenericListItemFragment } `); -export const EXPLORER_STATEFULSETS_LIST_ITEM_FRAGMENT = gql(` - fragment ExplorerStatefulSetsListItemFragment on AppsV1StatefulSet { - ...ExplorerGenericListItemFragment - +export const HOME_STATEFULSETS_LIST_ITEM_FRAGMENT = gql(` + fragment HomeStatefulSetsListItemFragment on AppsV1StatefulSet { + ...HomeGenericListItemFragment } `); /** - * Explorer object-related fragments + * KubeConfig fragments */ -export const EXPLORER_GENERIC_OBJECT_FRAGMENT = gql(` - fragment ExplorerGenericObjectFragment on Object { - id - metadata { - creationTimestamp - deletionTimestamp +export const KUBE_CONFIG_FRAGMENT = gql(` + fragment KubeConfigFragment on KubeConfig { + currentContext + contexts { name + cluster namespace - labels - annotations - ownerReferences { - apiVersion - kind - name - uid - controller - } - resourceVersion - uid - } - } -`); - -export const EXPLORER_CRONJOBS_OBJECT_FRAGMENT = gql(` - fragment ExplorerCronJobsObjectFragment on BatchV1CronJob { - ...ExplorerGenericObjectFragment - } -`); - -export const EXPLORER_DAEMONSETS_OBJECT_FRAGMENT = gql(` - fragment ExplorerDaemonSetsObjectFragment on AppsV1DaemonSet { - ...ExplorerGenericObjectFragment - } -`); - -export const EXPLORER_DEPLOYMENTS_OBJECT_FRAGMENT = gql(` - fragment ExplorerDeploymentsObjectFragment on AppsV1Deployment { - ...ExplorerGenericObjectFragment - spec { - replicas - selector { - matchLabels - matchExpressions { - key - operator - values - } - } - paused - } - status { - replicas - } - } -`); - -export const EXPLORER_JOBS_OBJECT_FRAGMENT = gql(` - fragment ExplorerJobsObjectFragment on BatchV1Job { - ...ExplorerGenericObjectFragment - } -`); - -export const EXPLORER_PODS_OBJECT_FRAGMENT = gql(` - fragment ExplorerPodsObjectFragment on CoreV1Pod { - ...ExplorerGenericObjectFragment - spec { - containers { - name - image - } - nodeName - priorityClassName - } - status { - phase - message - reason - containerStatuses { - name - state { - waiting { - reason - message - } - running { - startedAt - } - terminated { - exitCode - signal - reason - message - } - } - lastTerminationState { - waiting { - reason - message - } - running { - startedAt - } - terminated { - exitCode - signal - reason - message - } - } - ready - restartCount - imageID - started - } } } `); -export const EXPLORER_REPLICASETS_OBJECT_FRAGMENT = gql(` - fragment ExplorerReplicaSetsObjectFragment on AppsV1ReplicaSet { - ...ExplorerGenericObjectFragment - } -`); - -export const EXPLORER_STATEFULSETS_OBJECT_FRAGMENT = gql(` - fragment ExplorerStatefulSetsObjectFragment on AppsV1StatefulSet { - ...ExplorerGenericObjectFragment - } -`); - /** - * Logging fragments + * Pod log fragments */ export const POD_LOG_QUERY_RESPONSE_FRAGMENT = gql(` @@ -586,21 +304,49 @@ export const POD_LOG_QUERY_RESPONSE_FRAGMENT = gql(` `); /** - * LogMetadata fragments + * Source-Picker fragments */ -export const LOGMETADATA_LIST_ITEM_FRAGMENT = gql(` - fragment LogMetadataListItemFragment on LogMetadata { + +export const SOURCE_PICKER_GENERIC_COUNTER_FRAGMENT = gql(` + fragment SourcePickerGenericCounterFragment on List { + metadata { + remainingItemCount + resourceVersion + } + items { + ...SourcePickerGenericCounterItemFragment + } + } +`); + +export const SOURCE_PICKER_GENERIC_COUNTER_ITEM_FRAGMENT = gql(` + fragment SourcePickerGenericCounterItemFragment on Object { id - spec { - nodeName - namespace - podName - containerName - containerID + metadata { + resourceVersion + } + } +`); + +export const SOURCE_PICKER_GENERIC_LIST_FRAGMENT = gql(` + fragment SourcePickerGenericListFragment on List { + metadata { + continue + resourceVersion } - fileInfo { - size - lastModifiedAt + } +`); + +export const SOURCE_PICKER_GENERIC_LIST_ITEM_FRAGMENT = gql(` + fragment SourcePickerGenericListItemFragment on Object { + id + metadata { + namespace + name + uid + creationTimestamp + deletionTimestamp + resourceVersion } } `); diff --git a/dashboard-ui/src/lib/graphql/dashboard/ops.ts b/dashboard-ui/src/lib/graphql/dashboard/ops.ts new file mode 100644 index 00000000..d08d445f --- /dev/null +++ b/dashboard-ui/src/lib/graphql/dashboard/ops.ts @@ -0,0 +1,880 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +import { gql } from '@/lib/graphql/dashboard/__generated__/gql'; + +/** + * Console queries + */ + +export const CONSOLE_LOGGING_RESOURCES_CRONJOB_GET = gql(` + query ConsoleLoggingResourcesCronJobGet($kubeContext: String!, $namespace: String!, $name: String!) { + batchV1CronJobsGet(kubeContext: $kubeContext, namespace: $namespace, name: $name) { + ...ConsoleLoggingResourcesCronJobFragment + } + } +`); + +export const CONSOLE_LOGGING_RESOURCES_CRONJOB_WATCH = gql(` + subscription ConsoleLoggingResourcesCronJobWatch($kubeContext: String!, $namespace: String!, $fieldSelector: String!) { + batchV1CronJobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { fieldSelector: $fieldSelector }) { + type + object { + ...ConsoleLoggingResourcesCronJobFragment + } + } + } +`); + +export const CONSOLE_LOGGING_RESOURCES_DAEMONSET_GET = gql(` + query ConsoleLoggingResourcesDaemonSetGet($kubeContext: String!, $namespace: String!, $name: String!) { + appsV1DaemonSetsGet(kubeContext: $kubeContext, namespace: $namespace, name: $name) { + ...ConsoleLoggingResourcesDaemonSetFragment + } + } +`); + +export const CONSOLE_LOGGING_RESOURCES_DAEMONSET_WATCH = gql(` + subscription ConsoleLoggingResourcesDaemonSetWatch($kubeContext: String!, $namespace: String!, $fieldSelector: String!) { + appsV1DaemonSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { fieldSelector: $fieldSelector }) { + type + object { + ...ConsoleLoggingResourcesDaemonSetFragment + } + } + } +`); + +export const CONSOLE_LOGGING_RESOURCES_DEPLOYMENT_GET = gql(` + query ConsoleLoggingResourcesDeploymentGet($kubeContext: String!, $namespace: String!, $name: String!) { + appsV1DeploymentsGet(kubeContext: $kubeContext, namespace: $namespace, name: $name) { + ...ConsoleLoggingResourcesDeploymentFragment + } + } +`); + +export const CONSOLE_LOGGING_RESOURCES_DEPLOYMENT_WATCH = gql(` + subscription ConsoleLoggingResourcesDeploymentWatch($kubeContext: String!, $namespace: String!, $fieldSelector: String!) { + appsV1DeploymentsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { fieldSelector: $fieldSelector }) { + type + object { + ...ConsoleLoggingResourcesDeploymentFragment + } + } + } +`); + +export const CONSOLE_LOGGING_RESOURCES_JOB_GET = gql(` + query ConsoleLoggingResourcesJobGet($kubeContext: String!, $namespace: String!, $name: String!) { + batchV1JobsGet(kubeContext: $kubeContext, namespace: $namespace, name: $name) { + ...ConsoleLoggingResourcesJobFragment + } + } +`); + +export const CONSOLE_LOGGING_RESOURCES_JOB_WATCH = gql(` + subscription ConsoleLoggingResourcesJobWatch($kubeContext: String!, $namespace: String!, $fieldSelector: String!) { + batchV1JobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { fieldSelector: $fieldSelector }) { + type + object { + ...ConsoleLoggingResourcesJobFragment + } + } + } +`); + +export const CONSOLE_LOGGING_RESOURCES_POD_GET = gql(` + query ConsoleLoggingResourcesPodGet($kubeContext: String!, $namespace: String!, $name: String!) { + coreV1PodsGet(kubeContext: $kubeContext, namespace: $namespace, name: $name) { + ...ConsoleLoggingResourcesPodFragment + } + } +`); + +export const CONSOLE_LOGGING_RESOURCES_POD_WATCH = gql(` + subscription ConsoleLoggingResourcesPodWatch($kubeContext: String!, $namespace: String!, $fieldSelector: String!) { + coreV1PodsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { fieldSelector: $fieldSelector }) { + type + object { + ...ConsoleLoggingResourcesPodFragment + } + } + } +`); + +export const CONSOLE_LOGGING_RESOURCES_PODS_LIST_FETCH = gql(` + query ConsolePodsListFetch($kubeContext: String!, $namespace: String!, $continue: String = "") { + coreV1PodsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: "50", continue: $continue }) { + metadata { + continue + resourceVersion + } + items { + ...ConsoleLoggingResourcesPodFragment + } + } + } +`); + +export const CONSOLE_LOGGING_RESOURCES_PODS_LIST_WATCH = gql(` + subscription ConsolePodsListWatch($kubeContext: String!, $namespace: String!, $resourceVersion: String = "") { + coreV1PodsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) { + type + object { + ...ConsoleLoggingResourcesPodFragment + } + } + } +`); + +export const CONSOLE_LOGGING_RESOURCES_REPLICASET_GET = gql(` + query ConsoleLoggingResourcesReplicaSetGet($kubeContext: String!, $namespace: String!, $name: String!) { + appsV1ReplicaSetsGet(kubeContext: $kubeContext, namespace: $namespace, name: $name) { + ...ConsoleLoggingResourcesReplicaSetFragment + } + } +`); + +export const CONSOLE_LOGGING_RESOURCES_REPLICASET_WATCH = gql(` + subscription ConsoleLoggingResourcesReplicaSetWatch($kubeContext: String!, $namespace: String!, $fieldSelector: String!) { + appsV1ReplicaSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { fieldSelector: $fieldSelector }) { + type + object { + ...ConsoleLoggingResourcesReplicaSetFragment + } + } + } +`); + +export const CONSOLE_LOGGING_RESOURCES_STATEFULSET_GET = gql(` + query ConsoleLoggingResourcesStatefulSetGet($kubeContext: String!, $namespace: String!, $name: String!) { + appsV1StatefulSetsGet(kubeContext: $kubeContext, namespace: $namespace, name: $name) { + ...ConsoleLoggingResourcesStatefulSetFragment + } + } +`); + +export const CONSOLE_LOGGING_RESOURCES_STATEFULSET_WATCH = gql(` + subscription ConsoleLoggingResourcesStatefulSetWatch($kubeContext: String!, $namespace: String!, $fieldSelector: String!) { + appsV1StatefulSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { fieldSelector: $fieldSelector }) { + type + object { + ...ConsoleLoggingResourcesStatefulSetFragment + } + } + } +`); + +export const CONSOLE_LOGGING_RESOURCES_JOBS_FIND = gql(` + query ConsoleLoggingResourcesJobsFind($kubeContext: String!, $namespace: String!, $continue: String = "") { + batchV1JobsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: "50", continue: $continue }) { + metadata { + continue + resourceVersion + } + items { + ...ConsoleLoggingResourcesJobsFindFragment + } + } + } +`); + +export const CONSOLE_LOGGING_RESOURCES_JOBS_WATCH = gql(` + subscription ConsoleStreamsJobsWatch($kubeContext: String!, $namespace: String!, $resourceVersion: String = "") { + batchV1JobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) { + type + object { + ...ConsoleLoggingResourcesJobFragment + } + } + } +`); + +export const CONSOLE_LOGGING_RESOURCES_PODS_FIND = gql(` + query ConsoleLoggingResourcesPodsFind($kubeContext: String!, $namespace: String!, $labelSelector: String!, $continue: String = "") { + coreV1PodsList(kubeContext: $kubeContext, namespace: $namespace, options: { labelSelector: $labelSelector, continue: $continue }) { + metadata { + continue + resourceVersion + } + items { + ...ConsoleLoggingResourcesPodFragment + } + } + } +`); + +export const CONSOLE_LOGGING_RESOURCES_PODS_WATCH = gql(` + subscription ConsoleLoggingResourcesPodsWatch($kubeContext: String!, $namespace: String!, $labelSelector: String!, $resourceVersion: String = "") { + coreV1PodsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { labelSelector: $labelSelector, resourceVersion: $resourceVersion }) { + type + object { + ...ConsoleLoggingResourcesPodFragment + } + } + } +`); + +export const CONSOLE_NODES_LIST_FETCH = gql(` + query ConsoleNodesListFetch($kubeContext: String!, $continue: String = "") { + coreV1NodesList(kubeContext: $kubeContext, options: { limit: "50", continue: $continue }) { + metadata { + continue + resourceVersion + } + items { + ...ConsoleNodesListItemFragment + } + } + } +`); + +export const CONSOLE_NODES_LIST_WATCH = gql(` + subscription ConsoleNodesListWatch($kubeContext: String!, $resourceVersion: String = "") { + coreV1NodesWatch(kubeContext: $kubeContext, options: { resourceVersion: $resourceVersion }) { + type + object { + ...ConsoleNodesListItemFragment + } + } + } +`); + +/** + * Home page queries + */ + +export const HOME_CRONJOBS_LIST_FETCH = gql(` + query HomeCronJobsListFetch($kubeContext: String!, $namespace: String = "", $continue: String = "") { + batchV1CronJobsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: "50", continue: $continue }) { + ...HomeGenericListFragment + items { + ...HomeCronJobsListItemFragment + } + } + } +`); + +export const HOME_CRONJOBS_LIST_WATCH = gql(` + subscription HomeCronJobsListWatch($kubeContext: String!, $namespace: String = "", $resourceVersion: String = "") { + batchV1CronJobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) { + type + object { + ...HomeCronJobsListItemFragment + } + } + } +`); + +export const HOME_DAEMONSETS_LIST_FETCH = gql(` + query HomeDaemonSetsListFetch($kubeContext: String!, $namespace: String = "", $continue: String = "") { + appsV1DaemonSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: "50", continue: $continue }) { + ...HomeGenericListFragment + items { + ...HomeDaemonSetsListItemFragment + } + } + } +`); + +export const HOME_DAEMONSETS_LIST_WATCH = gql(` + subscription HomeDaemonSetsListWatch($kubeContext: String!, $namespace: String = "", $resourceVersion: String = "") { + appsV1DaemonSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) { + type + object { + ...HomeDaemonSetsListItemFragment + } + } + } +`); + +export const HOME_DEPLOYMENTS_LIST_FETCH = gql(` + query HomeDeploymentsListFetch($kubeContext: String!, $namespace: String = "", $continue: String = "") { + appsV1DeploymentsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: "50", continue: $continue }) { + ...HomeGenericListFragment + items { + ...HomeDeploymentsListItemFragment + } + } + } +`); + +export const HOME_DEPLOYMENTS_LIST_WATCH = gql(` + subscription HomeDeploymentsListWatch($kubeContext: String!, $namespace: String = "", $resourceVersion: String = "") { + appsV1DeploymentsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) { + type + object { + ...HomeDeploymentsListItemFragment + } + } + } +`); + +export const HOME_JOBS_LIST_FETCH = gql(` + query HomeJobsListFetch($kubeContext: String!, $namespace: String = "", $continue: String = "") { + batchV1JobsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: "50", continue: $continue }) { + ...HomeGenericListFragment + items { + ...HomeJobsListItemFragment + } + } + } +`); + +export const HOME_JOBS_LIST_WATCH = gql(` + subscription HomeJobsListWatch($kubeContext: String!, $namespace: String = "", $resourceVersion: String = "") { + batchV1JobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) { + type + object { + ...HomeJobsListItemFragment + } + } + } +`); + +export const HOME_NAMESPACES_LIST_FETCH = gql(` + query HomeNamespacesListFetch($kubeContext: String!, $continue: String = "") { + coreV1NamespacesList(kubeContext: $kubeContext, options: { limit: "50", continue: $continue }) { + ...HomeGenericListFragment + items { + ...HomeNamespacesListItemFragment + } + } + } +`); + +export const HOME_NAMESPACES_LIST_WATCH = gql(` + subscription HomeNamespacesListWatch($kubeContext: String!, $resourceVersion: String = "") { + coreV1NamespacesWatch(kubeContext: $kubeContext, options: { resourceVersion: $resourceVersion }) { + type + object { + ...HomeNamespacesListItemFragment + } + } + } +`); + +export const HOME_PODS_LIST_FETCH = gql(` + query HomePodsListFetch($kubeContext: String!, $namespace: String = "", $continue: String = "") { + coreV1PodsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: "50", continue: $continue }) { + ...HomeGenericListFragment + items { + ...HomePodsListItemFragment + } + } + } +`); + +export const HOME_PODS_LIST_WATCH = gql(` + subscription HomePodsListWatch($kubeContext: String!, $namespace: String = "", $resourceVersion: String = "") { + coreV1PodsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) { + type + object { + ...HomePodsListItemFragment + } + } + } +`); + +export const HOME_REPLICASETS_LIST_FETCH = gql(` + query HomeReplicaSetsListFetch($kubeContext: String!, $namespace: String = "", $continue: String = "") { + appsV1ReplicaSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: "50", continue: $continue }) { + ...HomeGenericListFragment + items { + ...HomeReplicaSetsListItemFragment + } + } + } +`); + +export const HOME_REPLICASETS_LIST_WATCH = gql(` + subscription HomeReplicaSetsListWatch($kubeContext: String!, $namespace: String = "", $resourceVersion: String = "") { + appsV1ReplicaSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) { + type + object { + ...HomeReplicaSetsListItemFragment + } + } + } +`); + +export const HOME_STATEFULSETS_LIST_FETCH = gql(` + query HomeStatefulSetsListFetch($kubeContext: String!, $namespace: String = "", $continue: String = "") { + appsV1StatefulSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: "50", continue: $continue }) { + ...HomeGenericListFragment + items { + ...HomeStatefulSetsListItemFragment + } + } + } +`); + +export const HOME_STATEFULSETS_LIST_WATCH = gql(` + subscription HomeStatefulSetsListWatch($kubeContext: String!, $namespace: String = "", $resourceVersion: String = "") { + appsV1StatefulSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) { + type + object { + ...HomeStatefulSetsListItemFragment + } + } + } +`); + +/** + * KubeConfig queries + */ + +export const KUBE_CONFIG_GET = gql(` + query KubeConfigGet { + kubeConfigGet { + ...KubeConfigFragment + } + } +`); + +export const KUBE_CONFIG_WATCH = gql(` + subscription KubeConfigWatch { + kubeConfigWatch { + type + object { + ...KubeConfigFragment + } + } + } +`); + +/** + * Kubernetes API + */ + +export const KUBERNETES_API_READY_WAIT = gql(` + query KubernetesAPIReadyWait($kubeContext: String) { + kubernetesAPIReadyWait(kubeContext: $kubeContext) + } +`); + +/** + * Kubetail Cluster API + */ + +export const KUBETAIL_CLUSTER_API_INSTALL = gql(` + mutation KubetailClusterAPIInstall($kubeContext: String!) { + kubetailClusterAPIInstall(kubeContext: $kubeContext) + } +`); + +export const KUBETAIL_CLUSTER_API_READY_WAIT = gql(` + query KubetailClusterAPIReadyWait($kubeContext: String!, $namespace: String!, $serviceName: String!) { + kubetailClusterAPIReadyWait(kubeContext: $kubeContext, namespace: $namespace, serviceName: $serviceName) + } +`); + +/** + * Pod log queries + */ + +export const POD_LOG_HEAD = gql(` + query PodLogHead($kubeContext: String!, $namespace: String!, $name: String!, $container: String, $after: ID, $since: String, $first: Int) { + podLogHead(kubeContext: $kubeContext, namespace: $namespace, name: $name, container: $container, after: $after, since: $since, first: $first) { + ...PodLogQueryResponseFragment + } + } +`); + +export const POD_LOG_TAIL = gql(` + query PodLogTail($kubeContext: String!, $namespace: String!, $name: String!, $container: String, $before: ID, $last: Int) { + podLogTail(kubeContext: $kubeContext, namespace: $namespace, name: $name, container: $container, before: $before, last: $last) { + ...PodLogQueryResponseFragment + } + } +`); + +export const POD_LOG_FOLLOW = gql(` + subscription PodLogFollow($kubeContext: String!, $namespace: String!, $name: String!, $container: String, $after: ID, $since: String) { + podLogFollow(kubeContext: $kubeContext, namespace: $namespace, name: $name, container: $container, after: $after, since: $since) { + timestamp + message + } + } +`); + +/** + * Server status queries + */ + +export const SERVER_STATUS_KUBERNETES_API_HEALTHZ_GET = gql(` + query ServerStatusKubernetesAPIHealthzGet($kubeContext: String!) { + kubernetesAPIHealthzGet(kubeContext: $kubeContext) { + ...HealthCheckResponseFragment + } + } +`); + +export const SERVER_STATUS_KUBERNETES_API_HEALTHZ_WATCH = gql(` + subscription ServerStatusKubernetesAPIHealthzWatch($kubeContext: String!) { + kubernetesAPIHealthzWatch(kubeContext: $kubeContext) { + ...HealthCheckResponseFragment + } + } +`); + +export const SERVER_STATUS_KUBETAIL_CLUSTER_API_HEALTHZ_GET = gql(` + query ServerStatusKubetailClusterAPIHealthzGet($kubeContext: String!, $namespace: String, $serviceName: String) { + kubetailClusterAPIHealthzGet(kubeContext: $kubeContext, namespace: $namespace, serviceName: $serviceName) { + ...HealthCheckResponseFragment + } + } +`); + +export const SERVER_STATUS_KUBETAIL_CLUSTER_API_HEALTHZ_WATCH = gql(` + subscription ServerStatusKubetailClusterAPIHealthzWatch($kubeContext: String!, $namespace: String, $serviceName: String) { + kubetailClusterAPIHealthzWatch(kubeContext: $kubeContext, namespace: $namespace, serviceName: $serviceName) { + ...HealthCheckResponseFragment + } + } +`); + +/** + * Source picker queries + */ + +export const SOURCE_PICKER_CRONJOBS_COUNT_FETCH = gql(` + query SourcePickerCronJobsCountFetch($kubeContext: String!, $namespace: String = "") { + batchV1CronJobsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: "1" }) @connection(key: "SourcePickerCronJobsCountFetch") { + ...SourcePickerGenericCounterFragment + items { + ...SourcePickerGenericCounterItemFragment + } + } + } +`); + +export const SOURCE_PICKER_CRONJOBS_COUNT_WATCH = gql(` + subscription SourcePickerCronJobsCountWatch($kubeContext: String!, $namespace: String = "", $resourceVersion: String = "") { + batchV1CronJobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) { + type + object { + ...SourcePickerGenericCounterItemFragment + } + } + } +`); + +export const SOURCE_PICKER_DAEMONSETS_COUNT_FETCH = gql(` + query SourcePickerDaemonSetsCountFetch($kubeContext: String!, $namespace: String = "") { + appsV1DaemonSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: "1" }) @connection(key: "SourcePickerDaemonSetsCountFetch") { + ...SourcePickerGenericCounterFragment + items { + ...SourcePickerGenericCounterItemFragment + } + } + } +`); + +export const SOURCE_PICKER_DAEMONSETS_COUNT_WATCH = gql(` + subscription SourcePickerDaemonSetsCountWatch($kubeContext: String!, $namespace: String = "", $resourceVersion: String = "") { + appsV1DaemonSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) { + type + object { + ...SourcePickerGenericCounterItemFragment + } + } + } +`); + +export const SOURCE_PICKER_DEPLOYMENTS_COUNT_FETCH = gql(` + query SourcePickerDeploymentsCountFetch($kubeContext: String!, $namespace: String = "") { + appsV1DeploymentsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: "1" }) @connection(key: "SourcePickerDeploymentsCountFetch") { + ...SourcePickerGenericCounterFragment + items { + ...SourcePickerGenericCounterItemFragment + } + } + } +`); + +export const SOURCE_PICKER_DEPLOYMENTS_COUNT_WATCH = gql(` + subscription SourcePickerDeploymentsCountWatch($kubeContext: String!, $namespace: String = "", $resourceVersion: String = "") { + appsV1DeploymentsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) { + type + object { + ...SourcePickerGenericCounterItemFragment + } + } + } +`); + +export const SOURCE_PICKER_JOBS_COUNT_FETCH = gql(` + query SourcePickerJobsCountFetch($kubeContext: String!, $namespace: String = "") { + batchV1JobsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: "1" }) @connection(key: "SourcePickerJobsCountFetch") { + ...SourcePickerGenericCounterFragment + items { + ...SourcePickerGenericCounterItemFragment + } + } + } +`); + +export const SOURCE_PICKER_JOBS_COUNT_WATCH = gql(` + subscription SourcePickerJobsCountWatch($kubeContext: String!, $namespace: String = "", $resourceVersion: String = "") { + batchV1JobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) { + type + object { + ...SourcePickerGenericCounterItemFragment + } + } + } +`); + +export const SOURCE_PICKER_PODS_COUNT_FETCH = gql(` + query SourcePickerPodsCountFetch($kubeContext: String!, $namespace: String = "") { + coreV1PodsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: "1" }) @connection(key: "SourcePickerPodsCountFetch") { + ...SourcePickerGenericCounterFragment + items { + ...SourcePickerGenericCounterItemFragment + } + } + } +`); + +export const SOURCE_PICKER_PODS_COUNT_WATCH = gql(` + subscription SourcePickerPodsCountWatch($kubeContext: String!, $namespace: String = "", $resourceVersion: String = "") { + coreV1PodsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) { + type + object { + ...SourcePickerGenericCounterItemFragment + } + } + } +`); + +export const SOURCE_PICKER_REPLICASETS_COUNT_FETCH = gql(` + query SourcePickerReplicaSetsCountFetch($kubeContext: String!, $namespace: String = "") { + appsV1ReplicaSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: "1" }) @connection(key: "SourcePickerReplicaSetsCountFetch") { + ...SourcePickerGenericCounterFragment + items { + ...SourcePickerGenericCounterItemFragment + } + } + } +`); + +export const SOURCE_PICKER_REPLICASETS_COUNT_WATCH = gql(` + subscription SourcePickerReplicaSetsCountWatch($kubeContext: String!, $namespace: String = "", $resourceVersion: String = "") { + appsV1ReplicaSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) { + type + object { + ...SourcePickerGenericCounterItemFragment + } + } + } +`); + +export const SOURCE_PICKER_STATEFULSETS_COUNT_FETCH = gql(` + query SourcePickerStatefulSetsCountFetch($kubeContext: String!, $namespace: String = "") { + appsV1StatefulSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: "1" }) @connection(key: "SourcePickerStatefulSetsCountFetch") { + ...SourcePickerGenericCounterFragment + items { + ...SourcePickerGenericCounterItemFragment + } + } + } +`); + +export const SOURCE_PICKER_STATEFULSETS_COUNT_WATCH = gql(` + subscription SourcePickerStatefulSetsCountWatch($kubeContext: String!, $namespace: String = "", $resourceVersion: String = "") { + appsV1StatefulSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) { + type + object { + ...SourcePickerGenericCounterItemFragment + } + } + } +`); + +export const SOURCE_PICKER_CRONJOBS_LIST_FETCH = gql(` + query SourcePickerCronJobsListFetch($kubeContext: String!, $namespace: String = "", $continue: String = "") { + batchV1CronJobsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: "50", continue: $continue }) @connection(key: "SourcePickerCronJobsListFetch") { + ...SourcePickerGenericListFragment + items { + ...SourcePickerGenericListItemFragment + } + } + } +`); + +export const SOURCE_PICKER_CRONJOBS_LIST_WATCH = gql(` + subscription SourcePickerCronJobsListWatch($kubeContext: String!, $namespace: String = "", $resourceVersion: String = "") { + batchV1CronJobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) { + type + object { + ...SourcePickerGenericListItemFragment + } + } + } +`); + +export const SOURCE_PICKER_DAEMONSETS_LIST_FETCH = gql(` + query SourcePickerDaemonSetsListFetch($kubeContext: String!, $namespace: String = "", $continue: String = "") { + appsV1DaemonSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: "50", continue: $continue }) @connection(key: "SourcePickerDaemonSetsListFetch") { + ...SourcePickerGenericListFragment + items { + ...SourcePickerGenericListItemFragment + } + } + } +`); + +export const SOURCE_PICKER_DAEMONSETS_LIST_WATCH = gql(` + subscription SourcePickerDaemonSetsListWatch($kubeContext: String!, $namespace: String = "", $resourceVersion: String = "") { + appsV1DaemonSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) { + type + object { + ...SourcePickerGenericListItemFragment + } + } + } +`); + +export const SOURCE_PICKER_DEPLOYMENTS_LIST_FETCH = gql(` + query SourcePickerDeploymentsListFetch($kubeContext: String!, $namespace: String = "", $continue: String = "") { + appsV1DeploymentsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: "50", continue: $continue }) @connection(key: "SourcePickerDeploymentsListFetch") { + ...SourcePickerGenericListFragment + items { + ...SourcePickerGenericListItemFragment + } + } + } +`); + +export const SOURCE_PICKER_DEPLOYMENTS_LIST_WATCH = gql(` + subscription SourcePickerDeploymentsListWatch($kubeContext: String!, $namespace: String = "", $resourceVersion: String = "") { + appsV1DeploymentsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) { + type + object { + ...SourcePickerGenericListItemFragment + } + } + } +`); + +export const SOURCE_PICKER_JOBS_LIST_FETCH = gql(` + query SourcePickerJobsListFetch($kubeContext: String!, $namespace: String = "", $continue: String = "") { + batchV1JobsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: "50", continue: $continue }) @connection(key: "SourcePickerJobsListFetch") { + ...SourcePickerGenericListFragment + items { + ...SourcePickerGenericListItemFragment + } + } + } +`); + +export const SOURCE_PICKER_JOBS_LIST_WATCH = gql(` + subscription SourcePickerJobsListWatch($kubeContext: String!, $namespace: String = "", $resourceVersion: String = "") { + batchV1JobsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) { + type + object { + ...SourcePickerGenericListItemFragment + } + } + } +`); + +export const SOURCE_PICKER_NAMESPACES_LIST_FETCH = gql(` + query SourcePickerNamespacesListFetch($kubeContext: String!, $continue: String = "") { + coreV1NamespacesList(kubeContext: $kubeContext, options: { limit: "50", continue: $continue }) { + ...SourcePickerGenericListFragment + items { + ...SourcePickerGenericListItemFragment + } + } + } +`); + +export const SOURCE_PICKER_NAMESPACES_LIST_WATCH = gql(` + subscription SourcePickerNamespacesListWatch($kubeContext: String!, $resourceVersion: String = "") { + coreV1NamespacesWatch(kubeContext: $kubeContext, options: { resourceVersion: $resourceVersion }) { + type + object { + ...SourcePickerGenericListItemFragment + } + } + } +`); + +export const SOURCE_PICKER_PODS_LIST_FETCH = gql(` + query SourcePickerPodsListFetch($kubeContext: String!, $namespace: String = "", $continue: String = "") { + coreV1PodsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: "50", continue: $continue }) @connection(key: "SourcePickerPodsListFetch") { + ...SourcePickerGenericListFragment + items { + ...SourcePickerGenericListItemFragment + } + } + } +`); + +export const SOURCE_PICKER_PODS_LIST_WATCH = gql(` + subscription SourcePickerPodsListWatch($kubeContext: String!, $namespace: String = "", $resourceVersion: String = "") { + coreV1PodsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) { + type + object { + ...SourcePickerGenericListItemFragment + } + } + } +`); + +export const SOURCE_PICKER_REPLICASETS_LIST_FETCH = gql(` + query SourcePickerReplicaSetsListFetch($kubeContext: String!, $namespace: String = "", $continue: String = "") { + appsV1ReplicaSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: "50", continue: $continue }) @connection(key: "SourcePickerReplicaSetsListFetch") { + ...SourcePickerGenericListFragment + items { + ...SourcePickerGenericListItemFragment + } + } + } +`); + +export const SOURCE_PICKER_REPLICASETS_LIST_WATCH = gql(` + subscription SourcePickerReplicaSetsListWatch($kubeContext: String!, $namespace: String = "", $resourceVersion: String = "") { + appsV1ReplicaSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) { + type + object { + ...SourcePickerGenericListItemFragment + } + } + } +`); + +export const SOURCE_PICKER_STATEFULSETS_LIST_FETCH = gql(` + query SourcePickerStatefulSetsListFetch($kubeContext: String!, $namespace: String = "", $continue: String = "") { + appsV1StatefulSetsList(kubeContext: $kubeContext, namespace: $namespace, options: { limit: "50", continue: $continue }) @connection(key: "SourcePickerStatefulSetsListFetch") { + ...SourcePickerGenericListFragment + items { + ...SourcePickerGenericListItemFragment + } + } + } +`); + +export const SOURCE_PICKER_STATEFULSETS_LIST_WATCH = gql(` + subscription SourcePickerStatefulSetsListWatch($kubeContext: String!, $namespace: String = "", $resourceVersion: String = "") { + appsV1StatefulSetsWatch(kubeContext: $kubeContext, namespace: $namespace, options: { resourceVersion: $resourceVersion }) { + type + object { + ...HomeStatefulSetsListItemFragment + } + } + } +`); diff --git a/dashboard-ui/src/lib/graphql/ops.ts b/dashboard-ui/src/lib/graphql/ops.ts deleted file mode 100644 index cae5ff09..00000000 --- a/dashboard-ui/src/lib/graphql/ops.ts +++ /dev/null @@ -1,1145 +0,0 @@ -// Copyright 2024 Andres Morey -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -import { gql } from '@/lib/graphql/__generated__/gql'; - -/** - * Home list-related queries - */ - -export const HOME_CRONJOBS_LIST_FETCH = gql(` - query HomeCronJobsListFetch($namespace: String = "", $continue: String = "") { - batchV1CronJobsList(namespace: $namespace, options: { limit: "50", continue: $continue }) { - ...HomeGenericListFragment - items { - ...HomeCronJobsListItemFragment - } - } - } -`); - -export const HOME_CRONJOBS_LIST_WATCH = gql(` - subscription HomeCronJobsListWatch($namespace: String = "", $resourceVersion: String = "") { - batchV1CronJobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) { - type - object { - ...HomeCronJobsListItemFragment - } - } - } -`); - -export const HOME_DAEMONSETS_LIST_FETCH = gql(` - query HomeDaemonSetsListFetch($namespace: String = "", $continue: String = "") { - appsV1DaemonSetsList(namespace: $namespace, options: { limit: "50", continue: $continue }) { - ...HomeGenericListFragment - items { - ...HomeDaemonSetsListItemFragment - } - } - } -`); - -export const HOME_DAEMONSETS_LIST_WATCH = gql(` - subscription HomeDaemonSetsListWatch($namespace: String = "", $resourceVersion: String = "") { - appsV1DaemonSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) { - type - object { - ...HomeDaemonSetsListItemFragment - } - } - } -`); - -export const HOME_DEPLOYMENTS_LIST_FETCH = gql(` - query HomeDeploymentsListFetch($namespace: String = "", $continue: String = "") { - appsV1DeploymentsList(namespace: $namespace, options: { limit: "50", continue: $continue }) { - ...HomeGenericListFragment - items { - ...HomeDeploymentsListItemFragment - } - } - } -`); - -export const HOME_DEPLOYMENTS_LIST_WATCH = gql(` - subscription HomeDeploymentsListWatch($namespace: String = "", $resourceVersion: String = "") { - appsV1DeploymentsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) { - type - object { - ...HomeDeploymentsListItemFragment - } - } - } -`); - -export const HOME_JOBS_LIST_FETCH = gql(` - query HomeJobsListFetch($namespace: String = "", $continue: String = "") { - batchV1JobsList(namespace: $namespace, options: { limit: "50", continue: $continue }) { - ...HomeGenericListFragment - items { - ...HomeJobsListItemFragment - } - } - } -`); - -export const HOME_JOBS_LIST_WATCH = gql(` - subscription HomeJobsListWatch($namespace: String = "", $resourceVersion: String = "") { - batchV1JobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) { - type - object { - ...HomeJobsListItemFragment - } - } - } -`); - -export const HOME_NAMESPACES_LIST_FETCH = gql(` - query HomeNamespacesListFetch($continue: String = "") { - coreV1NamespacesList(options: { limit: "50", continue: $continue }) { - ...HomeGenericListFragment - items { - ...HomeNamespacesListItemFragment - } - } - } -`); - -export const HOME_NAMESPACES_LIST_WATCH = gql(` - subscription HomeNamespacesListWatch($resourceVersion: String = "") { - coreV1NamespacesWatch(options: { resourceVersion: $resourceVersion }) { - type - object { - ...HomeNamespacesListItemFragment - } - } - } -`); - -export const HOME_PODS_LIST_FETCH = gql(` - query HomePodsListFetch($namespace: String = "", $continue: String = "") { - coreV1PodsList(namespace: $namespace, options: { limit: "50", continue: $continue }) { - ...HomeGenericListFragment - items { - ...HomePodsListItemFragment - } - } - } -`); - -export const HOME_PODS_LIST_WATCH = gql(` - subscription HomePodsListWatch($namespace: String = "", $resourceVersion: String = "") { - coreV1PodsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) { - type - object { - ...HomePodsListItemFragment - } - } - } -`); - -export const HOME_REPLICASETS_LIST_FETCH = gql(` - query HomeReplicaSetsListFetch($namespace: String = "", $continue: String = "") { - appsV1ReplicaSetsList(namespace: $namespace, options: { limit: "50", continue: $continue }) { - ...HomeGenericListFragment - items { - ...HomeReplicaSetsListItemFragment - } - } - } -`); - -export const HOME_REPLICASETS_LIST_WATCH = gql(` - subscription HomeReplicaSetsListWatch($namespace: String = "", $resourceVersion: String = "") { - appsV1ReplicaSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) { - type - object { - ...HomeReplicaSetsListItemFragment - } - } - } -`); - -export const HOME_STATEFULSETS_LIST_FETCH = gql(` - query HomeStatefulSetsListFetch($namespace: String = "", $continue: String = "") { - appsV1StatefulSetsList(namespace: $namespace, options: { limit: "50", continue: $continue }) { - ...HomeGenericListFragment - items { - ...HomeStatefulSetsListItemFragment - } - } - } -`); - -export const HOME_STATEFULSETS_LIST_WATCH = gql(` - subscription HomeStatefulSetsListWatch($namespace: String = "", $resourceVersion: String = "") { - appsV1StatefulSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) { - type - object { - ...HomeStatefulSetsListItemFragment - } - } - } -`); - -/** - * Console queries - */ - -export const CONSOLE_LOGGING_RESOURCES_CRONJOB_GET = gql(` - query ConsoleLoggingResourcesCronJobGet($namespace: String!, $name: String!) { - batchV1CronJobsGet(namespace: $namespace, name: $name) { - ...ConsoleLoggingResourcesCronJobFragment - } - } -`); - -export const CONSOLE_LOGGING_RESOURCES_CRONJOB_WATCH = gql(` - subscription ConsoleLoggingResourcesCronJobWatch($namespace: String!, $fieldSelector: String!) { - batchV1CronJobsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) { - type - object { - ...ConsoleLoggingResourcesCronJobFragment - } - } - } -`); - -export const CONSOLE_LOGGING_RESOURCES_DAEMONSET_GET = gql(` - query ConsoleLoggingResourcesDaemonSetGet($namespace: String!, $name: String!) { - appsV1DaemonSetsGet(namespace: $namespace, name: $name) { - ...ConsoleLoggingResourcesDaemonSetFragment - } - } -`); - -export const CONSOLE_LOGGING_RESOURCES_DAEMONSET_WATCH = gql(` - subscription ConsoleLoggingResourcesDaemonSetWatch($namespace: String!, $fieldSelector: String!) { - appsV1DaemonSetsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) { - type - object { - ...ConsoleLoggingResourcesDaemonSetFragment - } - } - } -`); - -export const CONSOLE_LOGGING_RESOURCES_DEPLOYMENT_GET = gql(` - query ConsoleLoggingResourcesDeploymentGet($namespace: String!, $name: String!) { - appsV1DeploymentsGet(namespace: $namespace, name: $name) { - ...ConsoleLoggingResourcesDeploymentFragment - } - } -`); - -export const CONSOLE_LOGGING_RESOURCES_DEPLOYMENT_WATCH = gql(` - subscription ConsoleLoggingResourcesDeploymentWatch($namespace: String!, $fieldSelector: String!) { - appsV1DeploymentsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) { - type - object { - ...ConsoleLoggingResourcesDeploymentFragment - } - } - } -`); - -export const CONSOLE_LOGGING_RESOURCES_JOB_GET = gql(` - query ConsoleLoggingResourcesJobGet($namespace: String!, $name: String!) { - batchV1JobsGet(namespace: $namespace, name: $name) { - ...ConsoleLoggingResourcesJobFragment - } - } -`); - -export const CONSOLE_LOGGING_RESOURCES_JOB_WATCH = gql(` - subscription ConsoleLoggingResourcesJobWatch($namespace: String!, $fieldSelector: String!) { - batchV1JobsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) { - type - object { - ...ConsoleLoggingResourcesJobFragment - } - } - } -`); - -export const CONSOLE_LOGGING_RESOURCES_POD_GET = gql(` - query ConsoleLoggingResourcesPodGet($namespace: String!, $name: String!) { - coreV1PodsGet(namespace: $namespace, name: $name) { - ...ConsoleLoggingResourcesPodFragment - } - } -`); - -export const CONSOLE_LOGGING_RESOURCES_POD_WATCH = gql(` - subscription ConsoleLoggingResourcesPodWatch($namespace: String!, $fieldSelector: String!) { - coreV1PodsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) { - type - object { - ...ConsoleLoggingResourcesPodFragment - } - } - } -`); - -export const CONSOLE_LOGGING_RESOURCES_PODS_LIST_FETCH = gql(` - query ConsolePodsListFetch($namespace: String!, $continue: String = "") { - coreV1PodsList(namespace: $namespace, options: { limit: "50", continue: $continue }) { - metadata { - continue - resourceVersion - } - items { - ...ConsoleLoggingResourcesPodFragment - } - } - } -`); - -export const CONSOLE_LOGGING_RESOURCES_PODS_LIST_WATCH = gql(` - subscription ConsolePodsListWatch($namespace: String!, $resourceVersion: String = "") { - coreV1PodsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) { - type - object { - ...ConsoleLoggingResourcesPodFragment - } - } - } -`); - -export const CONSOLE_LOGGING_RESOURCES_REPLICASET_GET = gql(` - query ConsoleLoggingResourcesReplicaSetGet($namespace: String!, $name: String!) { - appsV1ReplicaSetsGet(namespace: $namespace, name: $name) { - ...ConsoleLoggingResourcesReplicaSetFragment - } - } -`); - -export const CONSOLE_LOGGING_RESOURCES_REPLICASET_WATCH = gql(` - subscription ConsoleLoggingResourcesReplicaSetWatch($namespace: String!, $fieldSelector: String!) { - appsV1ReplicaSetsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) { - type - object { - ...ConsoleLoggingResourcesReplicaSetFragment - } - } - } -`); - -export const CONSOLE_LOGGING_RESOURCES_STATEFULSET_GET = gql(` - query ConsoleLoggingResourcesStatefulSetGet($namespace: String!, $name: String!) { - appsV1StatefulSetsGet(namespace: $namespace, name: $name) { - ...ConsoleLoggingResourcesStatefulSetFragment - } - } -`); - -export const CONSOLE_LOGGING_RESOURCES_STATEFULSET_WATCH = gql(` - subscription ConsoleLoggingResourcesStatefulSetWatch($namespace: String!, $fieldSelector: String!) { - appsV1StatefulSetsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) { - type - object { - ...ConsoleLoggingResourcesStatefulSetFragment - } - } - } -`); - -export const CONSOLE_LOGGING_RESOURCES_JOBS_FIND = gql(` - query ConsoleLoggingResourcesJobsFind($namespace: String!, $continue: String = "") { - batchV1JobsList(namespace: $namespace, options: { limit: "50", continue: $continue }) { - metadata { - continue - resourceVersion - } - items { - ...ConsoleLoggingResourcesJobsFindFragment - } - } - } -`); - -export const CONSOLE_LOGGING_RESOURCES_JOBS_WATCH = gql(` - subscription ConsoleStreamsJobsWatch($namespace: String!, $resourceVersion: String = "") { - batchV1JobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) { - type - object { - ...ConsoleLoggingResourcesJobFragment - } - } - } -`); - -export const CONSOLE_LOGGING_RESOURCES_PODS_FIND = gql(` - query ConsoleLoggingResourcesPodsFind($namespace: String!, $labelSelector: String!, $continue: String = "") { - coreV1PodsList(namespace: $namespace, options: { labelSelector: $labelSelector, continue: $continue }) { - metadata { - continue - resourceVersion - } - items { - ...ConsoleLoggingResourcesPodFragment - } - } - } -`); - -export const CONSOLE_LOGGING_RESOURCES_PODS_WATCH = gql(` - subscription ConsoleLoggingResourcesPodsWatch($namespace: String!, $labelSelector: String!, $resourceVersion: String = "") { - coreV1PodsWatch(namespace: $namespace, options: { labelSelector: $labelSelector, resourceVersion: $resourceVersion }) { - type - object { - ...ConsoleLoggingResourcesPodFragment - } - } - } -`); - -export const CONSOLE_NODES_LIST_FETCH = gql(` - query ConsoleNodesListFetch($continue: String = "") { - coreV1NodesList(options: { limit: "50", continue: $continue }) { - metadata { - continue - resourceVersion - } - items { - ...ConsoleNodesListItemFragment - } - } - } -`); - -export const CONSOLE_NODES_LIST_WATCH = gql(` - subscription ConsoleNodesListWatch($resourceVersion: String = "") { - coreV1NodesWatch(options: { resourceVersion: $resourceVersion }) { - type - object { - ...ConsoleNodesListItemFragment - } - } - } -`); - -/** - * Source picker queries - */ - -export const SOURCE_PICKER_CRONJOBS_COUNT_FETCH = gql(` - query SourcePickerCronJobsCountFetch($namespace: String = "") { - batchV1CronJobsList(namespace: $namespace, options: { limit: "1" }) @connection(key: "SourcePickerCronJobsCountFetch") { - ...SourcePickerGenericCounterFragment - items { - ...SourcePickerGenericCounterItemFragment - } - } - } -`); - -export const SOURCE_PICKER_CRONJOBS_COUNT_WATCH = gql(` - subscription SourcePickerCronJobsCountWatch($namespace: String = "", $resourceVersion: String = "") { - batchV1CronJobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) { - type - object { - ...SourcePickerGenericCounterItemFragment - } - } - } -`); - -export const SOURCE_PICKER_DAEMONSETS_COUNT_FETCH = gql(` - query SourcePickerDaemonSetsCountFetch($namespace: String = "") { - appsV1DaemonSetsList(namespace: $namespace, options: { limit: "1" }) @connection(key: "SourcePickerDaemonSetsCountFetch") { - ...SourcePickerGenericCounterFragment - items { - ...SourcePickerGenericCounterItemFragment - } - } - } -`); - -export const SOURCE_PICKER_DAEMONSETS_COUNT_WATCH = gql(` - subscription SourcePickerDaemonSetsCountWatch($namespace: String = "", $resourceVersion: String = "") { - appsV1DaemonSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) { - type - object { - ...SourcePickerGenericCounterItemFragment - } - } - } -`); - -export const SOURCE_PICKER_DEPLOYMENTS_COUNT_FETCH = gql(` - query SourcePickerDeploymentsCountFetch($namespace: String = "") { - appsV1DeploymentsList(namespace: $namespace, options: { limit: "1" }) @connection(key: "SourcePickerDeploymentsCountFetch") { - ...SourcePickerGenericCounterFragment - items { - ...SourcePickerGenericCounterItemFragment - } - } - } -`); - -export const SOURCE_PICKER_DEPLOYMENTS_COUNT_WATCH = gql(` - subscription SourcePickerDeploymentsCountWatch($namespace: String = "", $resourceVersion: String = "") { - appsV1DeploymentsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) { - type - object { - ...SourcePickerGenericCounterItemFragment - } - } - } -`); - -export const SOURCE_PICKER_JOBS_COUNT_FETCH = gql(` - query SourcePickerJobsCountFetch($namespace: String = "") { - batchV1JobsList(namespace: $namespace, options: { limit: "1" }) @connection(key: "SourcePickerJobsCountFetch") { - ...SourcePickerGenericCounterFragment - items { - ...SourcePickerGenericCounterItemFragment - } - } - } -`); - -export const SOURCE_PICKER_JOBS_COUNT_WATCH = gql(` - subscription SourcePickerJobsCountWatch($namespace: String = "", $resourceVersion: String = "") { - batchV1JobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) { - type - object { - ...SourcePickerGenericCounterItemFragment - } - } - } -`); - -export const SOURCE_PICKER_PODS_COUNT_FETCH = gql(` - query SourcePickerPodsCountFetch($namespace: String = "") { - coreV1PodsList(namespace: $namespace, options: { limit: "1" }) @connection(key: "SourcePickerPodsCountFetch") { - ...SourcePickerGenericCounterFragment - items { - ...SourcePickerGenericCounterItemFragment - } - } - } -`); - -export const SOURCE_PICKER_PODS_COUNT_WATCH = gql(` - subscription SourcePickerPodsCountWatch($namespace: String = "", $resourceVersion: String = "") { - coreV1PodsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) { - type - object { - ...SourcePickerGenericCounterItemFragment - } - } - } -`); - -export const SOURCE_PICKER_REPLICASETS_COUNT_FETCH = gql(` - query SourcePickerReplicaSetsCountFetch($namespace: String = "") { - appsV1ReplicaSetsList(namespace: $namespace, options: { limit: "1" }) @connection(key: "SourcePickerReplicaSetsCountFetch") { - ...SourcePickerGenericCounterFragment - items { - ...SourcePickerGenericCounterItemFragment - } - } - } -`); - -export const SOURCE_PICKER_REPLICASETS_COUNT_WATCH = gql(` - subscription SourcePickerReplicaSetsCountWatch($namespace: String = "", $resourceVersion: String = "") { - appsV1ReplicaSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) { - type - object { - ...SourcePickerGenericCounterItemFragment - } - } - } -`); - -export const SOURCE_PICKER_STATEFULSETS_COUNT_FETCH = gql(` - query SourcePickerStatefulSetsCountFetch($namespace: String = "") { - appsV1StatefulSetsList(namespace: $namespace, options: { limit: "1" }) @connection(key: "SourcePickerStatefulSetsCountFetch") { - ...SourcePickerGenericCounterFragment - items { - ...SourcePickerGenericCounterItemFragment - } - } - } -`); - -export const SOURCE_PICKER_STATEFULSETS_COUNT_WATCH = gql(` - subscription SourcePickerStatefulSetsCountWatch($namespace: String = "", $resourceVersion: String = "") { - appsV1StatefulSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) { - type - object { - ...SourcePickerGenericCounterItemFragment - } - } - } -`); - -export const SOURCE_PICKER_CRONJOBS_LIST_FETCH = gql(` - query SourcePickerCronJobsListFetch($namespace: String = "", $continue: String = "") { - batchV1CronJobsList(namespace: $namespace, options: { limit: "50", continue: $continue }) @connection(key: "SourcePickerCronJobsListFetch") { - ...SourcePickerGenericListFragment - items { - ...SourcePickerGenericListItemFragment - } - } - } -`); - -export const SOURCE_PICKER_CRONJOBS_LIST_WATCH = gql(` - subscription SourcePickerCronJobsListWatch($namespace: String = "", $resourceVersion: String = "") { - batchV1CronJobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) { - type - object { - ...SourcePickerGenericListItemFragment - } - } - } -`); - -export const SOURCE_PICKER_DAEMONSETS_LIST_FETCH = gql(` - query SourcePickerDaemonSetsListFetch($namespace: String = "", $continue: String = "") { - appsV1DaemonSetsList(namespace: $namespace, options: { limit: "50", continue: $continue }) @connection(key: "SourcePickerDaemonSetsListFetch") { - ...SourcePickerGenericListFragment - items { - ...SourcePickerGenericListItemFragment - } - } - } -`); - -export const SOURCE_PICKER_DAEMONSETS_LIST_WATCH = gql(` - subscription SourcePickerDaemonSetsListWatch($namespace: String = "", $resourceVersion: String = "") { - appsV1DaemonSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) { - type - object { - ...SourcePickerGenericListItemFragment - } - } - } -`); - -export const SOURCE_PICKER_DEPLOYMENTS_LIST_FETCH = gql(` - query SourcePickerDeploymentsListFetch($namespace: String = "", $continue: String = "") { - appsV1DeploymentsList(namespace: $namespace, options: { limit: "50", continue: $continue }) @connection(key: "SourcePickerDeploymentsListFetch") { - ...SourcePickerGenericListFragment - items { - ...SourcePickerGenericListItemFragment - } - } - } -`); - -export const SOURCE_PICKER_DEPLOYMENTS_LIST_WATCH = gql(` - subscription SourcePickerDeploymentsListWatch($namespace: String = "", $resourceVersion: String = "") { - appsV1DeploymentsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) { - type - object { - ...SourcePickerGenericListItemFragment - } - } - } -`); - -export const SOURCE_PICKER_JOBS_LIST_FETCH = gql(` - query SourcePickerJobsListFetch($namespace: String = "", $continue: String = "") { - batchV1JobsList(namespace: $namespace, options: { limit: "50", continue: $continue }) @connection(key: "SourcePickerJobsListFetch") { - ...SourcePickerGenericListFragment - items { - ...SourcePickerGenericListItemFragment - } - } - } -`); - -export const SOURCE_PICKER_JOBS_LIST_WATCH = gql(` - subscription SourcePickerJobsListWatch($namespace: String = "", $resourceVersion: String = "") { - batchV1JobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) { - type - object { - ...SourcePickerGenericListItemFragment - } - } - } -`); - -export const SOURCE_PICKER_NAMESPACES_LIST_FETCH = gql(` - query SourcePickerNamespacesListFetch($continue: String = "") { - coreV1NamespacesList(options: { limit: "50", continue: $continue }) { - ...SourcePickerGenericListFragment - items { - ...SourcePickerGenericListItemFragment - } - } - } -`); - -export const SOURCE_PICKER_NAMESPACES_LIST_WATCH = gql(` - subscription SourcePickerNamespacesListWatch($resourceVersion: String = "") { - coreV1NamespacesWatch(options: { resourceVersion: $resourceVersion }) { - type - object { - ...SourcePickerGenericListItemFragment - } - } - } -`); - -export const SOURCE_PICKER_PODS_LIST_FETCH = gql(` - query SourcePickerPodsListFetch($namespace: String = "", $continue: String = "") { - coreV1PodsList(namespace: $namespace, options: { limit: "50", continue: $continue }) @connection(key: "SourcePickerPodsListFetch") { - ...SourcePickerGenericListFragment - items { - ...SourcePickerGenericListItemFragment - } - } - } -`); - -export const SOURCE_PICKER_PODS_LIST_WATCH = gql(` - subscription SourcePickerPodsListWatch($namespace: String = "", $resourceVersion: String = "") { - coreV1PodsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) { - type - object { - ...SourcePickerGenericListItemFragment - } - } - } -`); - -export const SOURCE_PICKER_REPLICASETS_LIST_FETCH = gql(` - query SourcePickerReplicaSetsListFetch($namespace: String = "", $continue: String = "") { - appsV1ReplicaSetsList(namespace: $namespace, options: { limit: "50", continue: $continue }) @connection(key: "SourcePickerReplicaSetsListFetch") { - ...SourcePickerGenericListFragment - items { - ...SourcePickerGenericListItemFragment - } - } - } -`); - -export const SOURCE_PICKER_REPLICASETS_LIST_WATCH = gql(` - subscription SourcePickerReplicaSetsListWatch($namespace: String = "", $resourceVersion: String = "") { - appsV1ReplicaSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) { - type - object { - ...SourcePickerGenericListItemFragment - } - } - } -`); - -export const SOURCE_PICKER_STATEFULSETS_LIST_FETCH = gql(` - query SourcePickerStatefulSetsListFetch($namespace: String = "", $continue: String = "") { - appsV1StatefulSetsList(namespace: $namespace, options: { limit: "50", continue: $continue }) @connection(key: "SourcePickerStatefulSetsListFetch") { - ...SourcePickerGenericListFragment - items { - ...SourcePickerGenericListItemFragment - } - } - } -`); - -export const SOURCE_PICKER_STATEFULSETS_LIST_WATCH = gql(` - subscription SourcePickerStatefulSetsListWatch($namespace: String = "", $resourceVersion: String = "") { - appsV1StatefulSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) { - type - object { - ...HomeStatefulSetsListItemFragment - } - } - } -`); - -/** - * Explorer list-related queries - */ - -export const EXPLORER_CRONJOBS_LIST_FETCH = gql(` - query ExplorerCronJobsListFetch($namespace: String = "", $continue: String = "") { - batchV1CronJobsList(namespace: $namespace, options: { limit: "50", continue: $continue }) { - ...ExplorerGenericListFragment - items { - ...ExplorerCronJobsListItemFragment - } - } - } -`); - -export const EXPLORER_CRONJOBS_LIST_WATCH = gql(` - subscription ExplorerCronJobsListWatch($namespace: String = "", $resourceVersion: String = "") { - batchV1CronJobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) { - type - object { - ...ExplorerCronJobsListItemFragment - } - } - } -`); - -export const EXPLORER_DAEMONSETS_LIST_FETCH = gql(` - query ExplorerDaemonSetsListFetch($namespace: String = "", $continue: String = "") { - appsV1DaemonSetsList(namespace: $namespace, options: { limit: "50", continue: $continue }) { - ...ExplorerGenericListFragment - items { - ...ExplorerDaemonSetsListItemFragment - } - } - } -`); - -export const EXPLORER_DAEMONSETS_LIST_WATCH = gql(` - subscription ExplorerDaemonSetsListWatch($namespace: String = "", $resourceVersion: String = "") { - appsV1DaemonSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) { - type - object { - ...ExplorerDaemonSetsListItemFragment - } - } - } -`); - -export const EXPLORER_DEPLOYMENTS_LIST_FETCH = gql(` - query ExplorerDeploymentsListFetch($namespace: String = "", $continue: String = "") { - appsV1DeploymentsList(namespace: $namespace, options: { limit: "50", continue: $continue }) { - ...ExplorerGenericListFragment - items { - ...ExplorerDeploymentsListItemFragment - } - } - } -`); - -export const EXPLORER_DEPLOYMENTS_LIST_WATCH = gql(` - subscription ExplorerDeploymentsListWatch($namespace: String = "", $resourceVersion: String = "") { - appsV1DeploymentsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) { - type - object { - ...ExplorerDeploymentsListItemFragment - } - } - } -`); - -export const EXPLORER_JOBS_LIST_FETCH = gql(` - query ExplorerJobsListFetch($namespace: String = "", $continue: String = "") { - batchV1JobsList(namespace: $namespace, options: { limit: "50", continue: $continue }) { - ...ExplorerGenericListFragment - items { - ...ExplorerJobsListItemFragment - } - } - } -`); - -export const EXPLORER_JOBS_LIST_WATCH = gql(` - subscription ExplorerJobsListWatch($namespace: String = "", $resourceVersion: String = "") { - batchV1JobsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) { - type - object { - ...ExplorerJobsListItemFragment - } - } - } -`); - -export const EXPLORER_PODS_LIST_FETCH = gql(` - query ExplorerPodsListFetch($namespace: String = "", $continue: String = "") { - coreV1PodsList(namespace: $namespace, options: { limit: "50", continue: $continue }) { - ...ExplorerGenericListFragment - items { - ...ExplorerPodsListItemFragment - } - } - } -`); - -export const EXPLORER_PODS_LIST_WATCH = gql(` - subscription ExplorerPodsListWatch($namespace: String = "", $resourceVersion: String = "") { - coreV1PodsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) { - type - object { - ...ExplorerPodsListItemFragment - } - } - } -`); - -export const EXPLORER_REPLICASETS_LIST_FETCH = gql(` - query ExplorerReplicaSetsListFetch($namespace: String = "", $continue: String = "") { - appsV1ReplicaSetsList(namespace: $namespace, options: { limit: "50", continue: $continue }) { - ...ExplorerGenericListFragment - items { - ...ExplorerReplicaSetsListItemFragment - } - } - } -`); - -export const EXPLORER_REPLICASETS_LIST_WATCH = gql(` - subscription ExplorerReplicaSetsListWatch($namespace: String = "", $resourceVersion: String = "") { - appsV1ReplicaSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) { - type - object { - ...ExplorerReplicaSetsListItemFragment - } - } - } -`); - -export const EXPLORER_STATEFULSETS_LIST_FETCH = gql(` - query ExplorerStatefulSetsListFetch($namespace: String = "", $continue: String = "") { - appsV1StatefulSetsList(namespace: $namespace, options: { limit: "50", continue: $continue }) { - ...ExplorerGenericListFragment - items { - ...ExplorerStatefulSetsListItemFragment - } - } - } -`); - -export const EXPLORER_STATEFULSETS_LIST_WATCH = gql(` - subscription ExplorerStatefulSetsListWatch($namespace: String = "", $resourceVersion: String = "") { - appsV1StatefulSetsWatch(namespace: $namespace, options: { resourceVersion: $resourceVersion }) { - type - object { - ...ExplorerStatefulSetsListItemFragment - } - } - } -`); - -/** - * Explorer object-related queries - */ - -export const EXPLORER_CRONJOBS_OBJECT_FETCH = gql(` - query ExplorerCronJobsObjectFetch($namespace: String!, $name: String!) { - batchV1CronJobsGet(namespace: $namespace, name: $name) { - ...ExplorerCronJobsObjectFragment - } - } -`); - -export const EXPLORER_CRONJOBS_OBJECT_WATCH = gql(` - subscription ExplorerCronJobsObjectWatch($namespace: String!, $fieldSelector: String!) { - batchV1CronJobsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) { - type - object { - ...ExplorerCronJobsObjectFragment - } - } - } -`); - -export const EXPLORER_DAEMONSETS_OBJECT_FETCH = gql(` - query ExplorerDaemonSetsObjectFetch($namespace: String!, $name: String!) { - appsV1DaemonSetsGet(namespace: $namespace, name: $name) { - ...ExplorerDaemonSetsObjectFragment - } - } -`); - -export const EXPLORER_DAEMONSETS_OBJECT_WATCH = gql(` - subscription ExplorerDaemonSetsObjectWatch($namespace: String!, $fieldSelector: String!) { - appsV1DaemonSetsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) { - type - object { - ...ExplorerDaemonSetsObjectFragment - } - } - } -`); - -export const EXPLORER_DEPLOYMENTS_OBJECT_FETCH = gql(` - query ExplorerDeploymentsObjectFetch($namespace: String!, $name: String!) { - appsV1DeploymentsGet(namespace: $namespace, name: $name) { - ...ExplorerDeploymentsObjectFragment - } - } -`); - -export const EXPLORER_DEPLOYMENTS_OBJECT_WATCH = gql(` - subscription ExplorerDeploymentsObjectWatch($namespace: String!, $fieldSelector: String!) { - appsV1DeploymentsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) { - type - object { - ...ExplorerDeploymentsObjectFragment - } - } - } -`); - -export const EXPLORER_JOBS_OBJECT_FETCH = gql(` - query ExplorerJobsObjectFetch($namespace: String!, $name: String!) { - batchV1JobsGet(namespace: $namespace, name: $name) { - ...ExplorerJobsObjectFragment - } - } -`); - -export const EXPLORER_JOBS_OBJECT_WATCH = gql(` - subscription ExplorerJobsObjectWatch($namespace: String!, $fieldSelector: String!) { - batchV1JobsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) { - type - object { - ...ExplorerJobsObjectFragment - } - } - } -`); - -export const EXPLORER_PODS_OBJECT_FETCH = gql(` - query ExplorerPodsObjectFetch($namespace: String!, $name: String!) { - coreV1PodsGet(namespace: $namespace, name: $name) { - ...ExplorerPodsObjectFragment - } - } -`); - -export const EXPLORER_PODS_OBJECT_WATCH = gql(` - subscription ExplorerPodsObjectWatch($namespace: String!, $fieldSelector: String!) { - coreV1PodsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) { - type - object { - ...ExplorerPodsObjectFragment - } - } - } -`); - -export const EXPLORER_REPLICASETS_OBJECT_FETCH = gql(` - query ExplorerReplicaSetsObjectFetch($namespace: String!, $name: String!) { - appsV1ReplicaSetsGet(namespace: $namespace, name: $name) { - ...ExplorerReplicaSetsObjectFragment - } - } -`); - -export const EXPLORER_REPLICASETS_OBJECT_WATCH = gql(` - subscription ExplorerReplicaSetsObjectWatch($namespace: String!, $fieldSelector: String!) { - appsV1ReplicaSetsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) { - type - object { - ...ExplorerReplicaSetsObjectFragment - } - } - } -`); - -export const EXPLORER_STATEFULSETS_OBJECT_FETCH = gql(` - query ExplorerStatefulSetsObjectFetch($namespace: String!, $name: String!) { - appsV1StatefulSetsGet(namespace: $namespace, name: $name) { - ...ExplorerStatefulSetsObjectFragment - } - } -`); - -export const EXPLORER_STATEFULSETS_OBJECT_WATCH = gql(` - subscription ExplorerStatefulSetsObjectWatch($namespace: String!, $fieldSelector: String!) { - appsV1StatefulSetsWatch(namespace: $namespace, options: { fieldSelector: $fieldSelector }) { - type - object { - ...ExplorerStatefulSetsObjectFragment - } - } - } -`); - -/** - * Logs - */ - -export const HEAD_CONTAINER_LOG = gql(` - query HeadContainerLog($namespace: String!, $name: String!, $container: String, $after: ID, $since: String, $first: Int) { - podLogHead(namespace: $namespace, name: $name, container: $container, after: $after, since: $since, first: $first) { - ...PodLogQueryResponseFragment - } - } -`); - -export const TAIL_CONTAINER_LOG = gql(` - query TailContainerLog($namespace: String!, $name: String!, $container: String, $before: ID, $last: Int) { - podLogTail(namespace: $namespace, name: $name, container: $container, before: $before, last: $last) { - ...PodLogQueryResponseFragment - } - } -`); - -export const FOLLOW_CONTAINER_LOG = gql(` - subscription FollowContainerLog($namespace: String!, $name: String!, $container: String, $after: ID, $since: String) { - podLogFollow(namespace: $namespace, name: $name, container: $container, after: $after, since: $since) { - timestamp - message - } - } -`); - -/** - * LogMetadata - */ - -export const LOGMETADATA_LIST_FETCH = gql(` - query LogMetadataListFetch($namespace: String = "") { - logMetadataList(namespace: $namespace) { - items { - ...LogMetadataListItemFragment - } - } - } -`); - -export const LOGMETADATA_LIST_WATCH = gql(` - subscription LogMetadataListWatch($namespace: String = "") { - logMetadataWatch(namespace: $namespace) { - type - object { - ...LogMetadataListItemFragment - } - } - } -`); - -/** - * Health checks - */ - -export const LIVEZ_WATCH = gql(` - subscription LivezWatch { - livezWatch { - status - message - timestamp - } - } -`); - -export const READYZ_WATCH = gql(` - subscription ReadyzWatch { - readyzWatch { - status - message - timestamp - } - } -`); - -export const READY_WAIT = gql(` - query ReadyWait { - readyWait(timeout: 20) - } -`); diff --git a/dashboard-ui/src/lib/hooks.ts b/dashboard-ui/src/lib/hooks.ts index 66640e39..22147285 100644 --- a/dashboard-ui/src/lib/hooks.ts +++ b/dashboard-ui/src/lib/hooks.ts @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -13,11 +13,13 @@ // limitations under the License. import { useApolloClient, useQuery } from '@apollo/client'; -import type { TypedDocumentNode, OperationVariables } from '@apollo/client'; +import type { TypedDocumentNode, OperationVariables, Unmasked, MaybeMasked } from '@apollo/client'; import distinctColors from 'distinct-colors'; import { useEffect, useRef, useState } from 'react'; -import * as ops from '@/lib/graphql/ops'; +import { getClusterAPIClient } from '@/apollo-client'; +import * as dashboardOps from '@/lib/graphql/dashboard/ops'; +import * as clusterAPIOps from '@/lib/graphql/cluster-api/ops'; type GenericListFragment = { metadata: { @@ -115,11 +117,13 @@ function useRetryOnError() { */ interface GetQueryWithSubscriptionTQVariables { + kubeContext?: string; namespace: string; name: string; } interface GetQueryWithSubscriptionTSVariables { + kubeContext?: string; namespace: string; fieldSelector: string; } @@ -128,7 +132,7 @@ interface GetQueryWithSubscriptionArgs query: TypedDocumentNode; subscription: TypedDocumentNode; queryDataKey: keyof TQData; - subscriptionDataKey: keyof TSData; + subscriptionDataKey: keyof Unmasked; skip?: boolean; variables: TQVariables; } @@ -139,7 +143,7 @@ export function useGetQueryWithSubscription< TSData = any, TSVariables extends GetQueryWithSubscriptionTSVariables = GetQueryWithSubscriptionTSVariables, >(args: GetQueryWithSubscriptionArgs) { - const { name, namespace } = args.variables; + const { kubeContext, name, namespace } = args.variables; const retryOnError = useRetryOnError(); @@ -156,10 +160,10 @@ export function useGetQueryWithSubscription< useEffect( () => subscribeToMore({ document: args.subscription, - variables: { namespace, fieldSelector: `metadata.name=${name}` } as any, + variables: { kubeContext, namespace, fieldSelector: `metadata.name=${name}` } as any, updateQuery: (prev, { subscriptionData }) => { const ev = subscriptionData.data[args.subscriptionDataKey] as GenericWatchEventFragment; - if (ev?.type === 'ADDED' && ev.object) return { [args.queryDataKey]: ev.object } as TQData; + if (ev?.type === 'ADDED' && ev.object) return { [args.queryDataKey]: ev.object } as Unmasked; return prev; }, onError: (err) => { @@ -179,8 +183,8 @@ export function useGetQueryWithSubscription< interface ListQueryWithSubscriptionArgs { query: TypedDocumentNode; subscription: TypedDocumentNode; - queryDataKey: keyof TQData; - subscriptionDataKey: keyof TSData; + queryDataKey: keyof Unmasked; + subscriptionDataKey: keyof Unmasked; skip?: boolean; variables?: TQVariables; } @@ -204,7 +208,7 @@ export function useListQueryWithSubscription< }); // TODO: tighten `any` - const respData = data ? data[args.queryDataKey] as GenericListFragment : null; + const respData = data ? data[args.queryDataKey as keyof MaybeMasked] as GenericListFragment : null; // fetch rest const fetchMoreRef = useRef(new Set([])); @@ -280,7 +284,7 @@ export function useListQueryWithSubscription< return prev; } - return { [args.queryDataKey]: newResult } as TQData; + return { [args.queryDataKey]: newResult } as Unmasked; }, onError: (err) => { if (isWatchExpiredError(err)) refetch(); @@ -302,8 +306,8 @@ export function useListQueryWithSubscription< interface CounterQueryWithSubscriptionArgs { query: TypedDocumentNode; subscription: TypedDocumentNode; - queryDataKey: keyof TQData; - subscriptionDataKey: keyof TSData; + queryDataKey: keyof Unmasked; + subscriptionDataKey: keyof Unmasked; skip?: boolean; variables?: TQVariables; } @@ -326,7 +330,7 @@ export function useCounterQueryWithSubscription< }); // TODO: tighten `any` - const respData = data ? data[args.queryDataKey] as GenericCounterFragment : null; + const respData = data ? data[args.queryDataKey as keyof MaybeMasked] as GenericCounterFragment : null; // subscribe to changes useEffect(() => { @@ -360,7 +364,7 @@ export function useCounterQueryWithSubscription< if (ev.type === 'ADDED') merged.metadata.remainingItemCount += BigInt(1); else merged.metadata.remainingItemCount -= BigInt(1); - return { [args.queryDataKey]: merged } as TQData; + return { [args.queryDataKey]: merged } as Unmasked; }, onError: (err) => { if (isWatchExpiredError(err)) refetch(); @@ -382,15 +386,28 @@ export function useCounterQueryWithSubscription< type LogMetadataHookOptions = { enabled: boolean; + kubeContext: string; onUpdate?: (containerID: string) => void; }; export function useLogMetadata(options?: LogMetadataHookOptions) { const retryOnError = useRetryOnError(); + const connectArgs = { + kubeContext: options?.kubeContext || '', + namespace: 'kubetail-system', + serviceName: 'kubetail-cluster-api', + }; + + const readyWait = useQuery(dashboardOps.KUBETAIL_CLUSTER_API_READY_WAIT, { + variables: connectArgs, + }); + const ready = readyWait.data?.kubetailClusterAPIReadyWait; + // initial query - const { loading, error, data, subscribeToMore, refetch } = useQuery(ops.LOGMETADATA_LIST_FETCH, { - skip: !options?.enabled, + const { loading, error, data, subscribeToMore, refetch } = useQuery(clusterAPIOps.LOG_METADATA_LIST_FETCH, { + skip: ready !== true || !options?.enabled, + client: getClusterAPIClient(connectArgs), onError: () => { retryOnError(refetch); }, @@ -404,7 +421,7 @@ export function useLogMetadata(options?: LogMetadataHookOptions) { if (loading || error || !options?.enabled) return; return subscribeToMore({ - document: ops.LOGMETADATA_LIST_WATCH, + document: clusterAPIOps.LOG_METADATA_LIST_WATCH, updateQuery: (prev, { subscriptionData }) => { const ev = subscriptionData.data.logMetadataWatch; diff --git a/dashboard-ui/src/lib/server-status.ts b/dashboard-ui/src/lib/server-status.ts index c50b8a8b..137cc2f5 100644 --- a/dashboard-ui/src/lib/server-status.ts +++ b/dashboard-ui/src/lib/server-status.ts @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -15,14 +15,16 @@ import { useSubscription } from '@apollo/client'; import { useEffect, useState } from 'react'; -import { wsClient } from '@/apollo-client'; -import * as ops from '@/lib/graphql/ops'; -import { HealthCheckStatus, type HealthCheckResponse } from '@/lib/graphql/__generated__/graphql'; +import { dashboardWSClient } from '@/apollo-client'; +import * as dashboardOps from '@/lib/graphql/dashboard/ops'; +import { HealthCheckStatus, type HealthCheckResponse } from '@/lib/graphql/dashboard/__generated__/graphql'; export const enum Status { Healthy = 'HEALTHY', Unhealthy = 'UNHEALTHY', + Degraded = 'DEGRADED', Unknown = 'UNKNOWN', + NotFound = 'NOTFOUND', } export class ServerStatus { @@ -36,49 +38,47 @@ export class ServerStatus { Object.assign(this, init); } - static fromK8sHealthCheck(healthCheck: HealthCheckResponse | undefined) { - return new ServerStatus({ - status: healthCheck?.status === HealthCheckStatus.Success ? Status.Healthy : Status.Unhealthy, - message: healthCheck?.message || null, - lastUpdatedAt: healthCheck?.timestamp || null, + static fromHealthCheckResponse(healthCheckResponse: HealthCheckResponse | undefined) { + const ss = new ServerStatus({ + message: healthCheckResponse?.message || null, + lastUpdatedAt: healthCheckResponse?.timestamp || null, }); + + switch (healthCheckResponse?.status) { + case HealthCheckStatus.Success: + ss.status = Status.Healthy; + break; + case HealthCheckStatus.Notfound: + ss.status = Status.NotFound; + break; + default: + ss.status = Status.Unhealthy; + } + + return ss; } } -export function useServerStatus() { - const [backendStatus, setBackendStatus] = useState(new ServerStatus()); - const [k8sLivezStatus, setK8sLivezStatus] = useState(new ServerStatus()); - const [k8sReadyzStatus, setK8sReadyzStatus] = useState(new ServerStatus()); - - useSubscription(ops.LIVEZ_WATCH, { - onData: ({ data }) => setK8sLivezStatus(ServerStatus.fromK8sHealthCheck(data.data?.livezWatch)), - }); - - useSubscription(ops.READYZ_WATCH, { - onData: ({ data }) => setK8sReadyzStatus(ServerStatus.fromK8sHealthCheck(data.data?.readyzWatch)), - }); +export function useDashboardServerStatus() { + const [status, setStatus] = useState(new ServerStatus()); useEffect(() => { const fns = [ - wsClient.on('connected', () => { - setBackendStatus(new ServerStatus({ status: Status.Healthy, lastUpdatedAt: new Date() })); + dashboardWSClient.on('connected', () => { + setStatus(new ServerStatus({ status: Status.Healthy, lastUpdatedAt: new Date() })); }), - wsClient.on('pong', () => { - setBackendStatus(new ServerStatus({ status: Status.Healthy, lastUpdatedAt: new Date() })); + dashboardWSClient.on('pong', () => { + setStatus(new ServerStatus({ status: Status.Healthy, lastUpdatedAt: new Date() })); }), - wsClient.on('closed', () => { - const status = new ServerStatus({ status: Status.Unhealthy, lastUpdatedAt: new Date() }); - status.message = 'Unable to connect'; - setBackendStatus(status); - setK8sLivezStatus(new ServerStatus()); - setK8sReadyzStatus(new ServerStatus()); + dashboardWSClient.on('closed', () => { + const newStatus = new ServerStatus({ status: Status.Unhealthy, lastUpdatedAt: new Date() }); + newStatus.message = 'Unable to connect'; + setStatus(newStatus); }), - wsClient.on('error', () => { - const status = new ServerStatus({ status: Status.Unhealthy, lastUpdatedAt: new Date() }); - status.message = 'Error while establishing connection'; - setBackendStatus(status); - setK8sLivezStatus(new ServerStatus()); - setK8sReadyzStatus(new ServerStatus()); + dashboardWSClient.on('error', () => { + const newStatus = new ServerStatus({ status: Status.Unhealthy, lastUpdatedAt: new Date() }); + newStatus.message = 'Error while establishing connection'; + setStatus(newStatus); }), ]; @@ -86,18 +86,27 @@ export function useServerStatus() { return () => fns.forEach((fn) => fn()); }, []); - const all = [backendStatus, k8sLivezStatus, k8sReadyzStatus]; + return status; +} + +export function useKubernetesAPIServerStatus(kubeContext: string) { + const [status, setStatus] = useState(new ServerStatus()); - let status = Status.Unknown; - if (all.every((item) => item.status === Status.Healthy)) status = Status.Healthy; - else if (all.some((item) => item.status === Status.Unhealthy)) status = Status.Unhealthy; + useSubscription(dashboardOps.SERVER_STATUS_KUBERNETES_API_HEALTHZ_WATCH, { + variables: { kubeContext }, + onData: ({ data }) => setStatus(ServerStatus.fromHealthCheckResponse(data.data?.kubernetesAPIHealthzWatch)), + }); + + return status; +} + +export function useKubetailClusterAPIServerStatus(kubeContext: string) { + const [status, setStatus] = useState(new ServerStatus()); + + useSubscription(dashboardOps.SERVER_STATUS_KUBETAIL_CLUSTER_API_HEALTHZ_WATCH, { + variables: { kubeContext }, + onData: ({ data }) => setStatus(ServerStatus.fromHealthCheckResponse(data.data?.kubetailClusterAPIHealthzWatch)), + }); - return { - status, - details: { - backendServer: backendStatus, - k8sLivez: k8sLivezStatus, - k8sReadyz: k8sReadyzStatus, - }, - }; + return status; } diff --git a/dashboard-ui/src/lib/theme.tsx b/dashboard-ui/src/lib/theme.tsx index a498e6a1..8f429c6a 100644 --- a/dashboard-ui/src/lib/theme.tsx +++ b/dashboard-ui/src/lib/theme.tsx @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/dashboard-ui/src/lib/helpers.tsx b/dashboard-ui/src/lib/util.ts similarity index 82% rename from dashboard-ui/src/lib/helpers.tsx rename to dashboard-ui/src/lib/util.ts index 2c27d5e4..9031b573 100644 --- a/dashboard-ui/src/lib/helpers.tsx +++ b/dashboard-ui/src/lib/util.ts @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -12,21 +12,10 @@ // See the License for the specific language governing permissions and // limitations under the License. -import { config } from '@/app-config'; - -/** - * CSS-safe encoder - */ +import { type ClassValue, clsx } from 'clsx'; +import { twMerge } from 'tailwind-merge'; -export function cssEncode(name: string) { - return name.replace(/[^a-z0-9]/g, (s) => { - const c = s.charCodeAt(0); - if (c === 32) return '-'; - if (c >= 65 && c <= 90) return `_${s.toLowerCase()}`; - const x = `000${c.toString(16)}`; - return `__${x.slice(-4)}`; - }); -} +import { config } from '@/app-config'; /** * Python-like counter class @@ -90,16 +79,38 @@ export class MapSet extends Map> { } } +/** + * Classname merger + */ + +export function cn(...inputs: ClassValue[]) { + return twMerge(clsx(inputs)); +} + +/** + * CSS-safe encoder + */ + +export function cssEncode(name: string) { + return name.replace(/[^a-z0-9]/g, (s) => { + const c = s.charCodeAt(0); + if (c === 32) return '-'; + if (c >= 65 && c <= 90) return `_${s.toLowerCase()}`; + const x = `000${c.toString(16)}`; + return `__${x.slice(-4)}`; + }); +} + /** * Url path helper */ export function joinPaths(...paths: string[]) { return paths.map((part, index) => { - if (index === 0) { - return part.replace(/\/+$/, ''); - } - return part.replace(/^\/+|\/+$/g, ''); + if (index === 0) { + return part.replace(/\/+$/, ''); + } + return part.replace(/^\/+|\/+$/g, ''); }).join('/'); } @@ -128,13 +139,18 @@ export function getBasename() { * Get CSRF token from server */ -let csrfToken: string; +const csrfTokenCache = new Map(); -export async function getCSRFToken() { +export async function getCSRFToken(basepath: string) { + let csrfToken = csrfTokenCache.get(basepath); if (csrfToken === undefined) { - const url = new URL(joinPaths(getBasename(), '/csrf-token'), window.location.origin); + const url = new URL(joinPaths(basepath, 'csrf-token'), window.location.origin); const resp = await fetch(url); csrfToken = (await resp.json()).value; + if (!csrfToken) { + throw new Error(`unable to obtain csrf token from ${url}`); + } + csrfTokenCache.set(basepath, csrfToken); } return csrfToken; } diff --git a/dashboard-ui/src/lib/workload.ts b/dashboard-ui/src/lib/workload.ts index 9ad1041d..7f1b2165 100644 --- a/dashboard-ui/src/lib/workload.ts +++ b/dashboard-ui/src/lib/workload.ts @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/dashboard-ui/src/main.tsx b/dashboard-ui/src/main.tsx index ae1db89a..1e2c99a8 100644 --- a/dashboard-ui/src/main.tsx +++ b/dashboard-ui/src/main.tsx @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -13,28 +13,28 @@ // limitations under the License. import { ApolloProvider } from '@apollo/client'; -import React from 'react'; -import ReactDOM from 'react-dom/client'; +import { StrictMode } from 'react'; +import { createRoot } from 'react-dom/client'; import { createBrowserRouter, createRoutesFromElements, RouterProvider } from 'react-router-dom'; import { routes } from './routes'; -import client from '@/apollo-client'; +import { dashboardClient } from '@/apollo-client'; import { SessionProvider } from '@/lib/auth'; -import { getBasename } from '@/lib/helpers'; +import { getBasename } from '@/lib/util'; import { ThemeProvider } from '@/lib/theme'; import './index.css'; const router = createBrowserRouter(createRoutesFromElements(routes), { basename: getBasename() }); -ReactDOM.createRoot(document.getElementById('root')!).render( - - +createRoot(document.getElementById('root')!).render( + + - , + , ); diff --git a/dashboard-ui/src/mocks/console.ts b/dashboard-ui/src/mocks/console.ts index 686a10bc..bff1823d 100644 --- a/dashboard-ui/src/mocks/console.ts +++ b/dashboard-ui/src/mocks/console.ts @@ -14,14 +14,26 @@ import type { MockedResponse } from '@apollo/client/testing'; -import * as ops from '@/lib/graphql/ops'; +import * as dashboardOps from '@/lib/graphql/dashboard/ops'; export const mocks: MockedResponse[] = [ + // kubeConfig + { + request: { + query: dashboardOps.KUBE_CONFIG_WATCH, + }, + result: { + data: { + kubeConfigWatch: null, + }, + }, + }, + // nodes { request: { - query: ops.CONSOLE_NODES_LIST_FETCH, - variables: { continue: '' }, + query: dashboardOps.CONSOLE_NODES_LIST_FETCH, + variables: { kubeContext: '', continue: '' }, }, result: { data: { @@ -37,7 +49,7 @@ export const mocks: MockedResponse[] = [ }, { request: { - query: ops.CONSOLE_NODES_LIST_WATCH, + query: dashboardOps.CONSOLE_NODES_LIST_WATCH, variables: { resourceVersion: 'v1' }, }, result: { @@ -47,10 +59,10 @@ export const mocks: MockedResponse[] = [ }, }, - // livez + // healthz { request: { - query: ops.LIVEZ_WATCH, + query: dashboardOps.SERVER_STATUS_KUBERNETES_API_HEALTHZ_WATCH, }, result: { data: { @@ -63,21 +75,4 @@ export const mocks: MockedResponse[] = [ }, }, }, - - // readyz - { - request: { - query: ops.READYZ_WATCH, - }, - result: { - data: { - readyzWatch: { - __typename: 'HealthCheckResponse', - status: 'SUCCESS', - message: null, - timestamp: null, - }, - }, - }, - }, ]; diff --git a/dashboard-ui/src/mocks/home.ts b/dashboard-ui/src/mocks/home.ts index 041d13d4..d04359cb 100644 --- a/dashboard-ui/src/mocks/home.ts +++ b/dashboard-ui/src/mocks/home.ts @@ -14,7 +14,7 @@ import type { MockedResponse } from '@apollo/client/testing'; -import * as ops from '@/lib/graphql/ops'; +import * as dashboardOps from '@/lib/graphql/dashboard/ops'; const genericListResponse = (typename: string) => ({ __typename: typename, @@ -29,7 +29,7 @@ export const mocks: MockedResponse[] = [ // cronjobs { request: { - query: ops.HOME_CRONJOBS_LIST_FETCH, + query: dashboardOps.HOME_CRONJOBS_LIST_FETCH, variables: { namespace: '', continue: '' }, }, result: { @@ -40,7 +40,7 @@ export const mocks: MockedResponse[] = [ }, { request: { - query: ops.HOME_CRONJOBS_LIST_WATCH, + query: dashboardOps.HOME_CRONJOBS_LIST_WATCH, variables: { namespace: '', resourceVersion: 'v1' }, }, result: { @@ -53,7 +53,7 @@ export const mocks: MockedResponse[] = [ // daemonsets { request: { - query: ops.HOME_DAEMONSETS_LIST_FETCH, + query: dashboardOps.HOME_DAEMONSETS_LIST_FETCH, variables: { namespace: '', continue: '' }, }, result: { @@ -64,7 +64,7 @@ export const mocks: MockedResponse[] = [ }, { request: { - query: ops.HOME_DAEMONSETS_LIST_WATCH, + query: dashboardOps.HOME_DAEMONSETS_LIST_WATCH, variables: { namespace: '', resourceVersion: 'v1' }, }, result: { @@ -77,7 +77,7 @@ export const mocks: MockedResponse[] = [ // deployments { request: { - query: ops.HOME_DEPLOYMENTS_LIST_FETCH, + query: dashboardOps.HOME_DEPLOYMENTS_LIST_FETCH, variables: { namespace: '', continue: '' }, }, result: { @@ -88,7 +88,7 @@ export const mocks: MockedResponse[] = [ }, { request: { - query: ops.HOME_DEPLOYMENTS_LIST_WATCH, + query: dashboardOps.HOME_DEPLOYMENTS_LIST_WATCH, variables: { namespace: '', resourceVersion: 'v1' }, }, result: { @@ -101,7 +101,7 @@ export const mocks: MockedResponse[] = [ // jobs { request: { - query: ops.HOME_JOBS_LIST_FETCH, + query: dashboardOps.HOME_JOBS_LIST_FETCH, variables: { namespace: '', continue: '' }, }, result: { @@ -112,7 +112,7 @@ export const mocks: MockedResponse[] = [ }, { request: { - query: ops.HOME_JOBS_LIST_WATCH, + query: dashboardOps.HOME_JOBS_LIST_WATCH, variables: { namespace: '', resourceVersion: 'v1' }, }, result: { @@ -125,7 +125,7 @@ export const mocks: MockedResponse[] = [ // namespaces { request: { - query: ops.HOME_NAMESPACES_LIST_FETCH, + query: dashboardOps.HOME_NAMESPACES_LIST_FETCH, variables: { continue: '' }, }, result: { @@ -136,7 +136,7 @@ export const mocks: MockedResponse[] = [ }, { request: { - query: ops.HOME_NAMESPACES_LIST_WATCH, + query: dashboardOps.HOME_NAMESPACES_LIST_WATCH, variables: { resourceVersion: 'v1' }, }, result: { @@ -149,7 +149,7 @@ export const mocks: MockedResponse[] = [ // pods { request: { - query: ops.HOME_PODS_LIST_FETCH, + query: dashboardOps.HOME_PODS_LIST_FETCH, variables: { namespace: '', continue: '' }, }, result: { @@ -160,7 +160,7 @@ export const mocks: MockedResponse[] = [ }, { request: { - query: ops.HOME_PODS_LIST_WATCH, + query: dashboardOps.HOME_PODS_LIST_WATCH, variables: { namespace: '', resourceVersion: 'v1' }, }, result: { @@ -173,7 +173,7 @@ export const mocks: MockedResponse[] = [ // replicasets { request: { - query: ops.HOME_REPLICASETS_LIST_FETCH, + query: dashboardOps.HOME_REPLICASETS_LIST_FETCH, variables: { namespace: '', continue: '' }, }, result: { @@ -184,7 +184,7 @@ export const mocks: MockedResponse[] = [ }, { request: { - query: ops.HOME_REPLICASETS_LIST_WATCH, + query: dashboardOps.HOME_REPLICASETS_LIST_WATCH, variables: { namespace: '', resourceVersion: 'v1' }, }, result: { @@ -197,7 +197,7 @@ export const mocks: MockedResponse[] = [ // statefulsets { request: { - query: ops.HOME_STATEFULSETS_LIST_FETCH, + query: dashboardOps.HOME_STATEFULSETS_LIST_FETCH, variables: { namespace: '', continue: '' }, }, result: { @@ -208,7 +208,7 @@ export const mocks: MockedResponse[] = [ }, { request: { - query: ops.HOME_STATEFULSETS_LIST_WATCH, + query: dashboardOps.HOME_STATEFULSETS_LIST_WATCH, variables: { namespace: '', resourceVersion: 'v1' }, }, result: { @@ -218,10 +218,10 @@ export const mocks: MockedResponse[] = [ }, }, - // livez + // healthz { request: { - query: ops.LIVEZ_WATCH, + query: dashboardOps.SERVER_STATUS_KUBERNETES_API_HEALTHZ_WATCH, }, result: { data: { @@ -234,21 +234,4 @@ export const mocks: MockedResponse[] = [ }, }, }, - - // readyz - { - request: { - query: ops.READYZ_WATCH, - }, - result: { - data: { - readyzWatch: { - __typename: 'HealthCheckResponse', - status: 'SUCCESS', - message: null, - timestamp: null, - }, - }, - }, - }, ]; diff --git a/dashboard-ui/src/pages/_root.tsx b/dashboard-ui/src/pages/_root.tsx index f64b25e8..de0d9ed9 100644 --- a/dashboard-ui/src/pages/_root.tsx +++ b/dashboard-ui/src/pages/_root.tsx @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -12,19 +12,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -import { useSuspenseQuery } from '@apollo/client'; import { XCircleIcon } from '@heroicons/react/24/outline'; -import { Suspense, useEffect, useState } from 'react'; +import { useEffect, useState } from 'react'; import toastlib, { useToaster, resolveValue } from 'react-hot-toast'; import type { Toast } from 'react-hot-toast'; import { Outlet } from 'react-router-dom'; import Button from '@kubetail/ui/elements/Button'; -import Spinner from '@kubetail/ui/elements/Spinner'; import Modal from '@/components/elements/Modal'; -import * as ops from '@/lib/graphql/ops'; -import { joinPaths, getBasename } from '@/lib/helpers'; +import { joinPaths, getBasename } from '@/lib/util'; const QueryError = ({ toast }: { toast: Toast }) => (
@@ -95,30 +92,6 @@ const CustomToaster = () => { ); }; -const LoadingModal = () => ( -
-
-
-
-
-
-
Connecting...
- -
-
-
-
-
-); - -function OutletWrapper() { - useSuspenseQuery(ops.READY_WAIT, { - fetchPolicy: 'no-cache', - }); - - return ; -} - export default function Root() { // update favicon location useEffect(() => { @@ -129,9 +102,7 @@ export default function Root() { return ( <> - }> - - + ); diff --git a/dashboard-ui/src/pages/auth/login.test.tsx b/dashboard-ui/src/pages/auth/login.test.tsx index afdae98d..8f70abf6 100644 --- a/dashboard-ui/src/pages/auth/login.test.tsx +++ b/dashboard-ui/src/pages/auth/login.test.tsx @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/dashboard-ui/src/pages/auth/login.tsx b/dashboard-ui/src/pages/auth/login.tsx index f1adfeb5..92000f7f 100644 --- a/dashboard-ui/src/pages/auth/login.tsx +++ b/dashboard-ui/src/pages/auth/login.tsx @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -22,7 +22,9 @@ import Spinner from '@kubetail/ui/elements/Spinner'; import ModalLayout from '@/components/layouts/ModalLayout'; import LoadingPage from '@/components/utils/LoadingPage'; import { getSession, useSession } from '@/lib/auth'; -import { getCSRFToken } from '@/lib/helpers'; +import { getBasename, getCSRFToken } from '@/lib/util'; + +const basename = getBasename(); type LoginFormElement = HTMLFormElement & { token: HTMLInputElement; @@ -50,7 +52,7 @@ export default function LoginPage() { const url = new URL('/api/auth/login', window.location.origin); const resp = await fetch(url, { method: 'post', - headers: { 'X-CSRF-Token': await getCSRFToken() }, + headers: { 'X-CSRF-Token': await getCSRFToken(basename) }, body: new FormData(formEl), }); diff --git a/dashboard-ui/src/pages/auth/logout.test.tsx b/dashboard-ui/src/pages/auth/logout.test.tsx index 388f0b12..9c4cded7 100644 --- a/dashboard-ui/src/pages/auth/logout.test.tsx +++ b/dashboard-ui/src/pages/auth/logout.test.tsx @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/dashboard-ui/src/pages/auth/logout.tsx b/dashboard-ui/src/pages/auth/logout.tsx index 05caa437..d1ae5079 100644 --- a/dashboard-ui/src/pages/auth/logout.tsx +++ b/dashboard-ui/src/pages/auth/logout.tsx @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -17,7 +17,9 @@ import { useNavigate, useSearchParams } from 'react-router-dom'; import LoadingPage from '@/components/utils/LoadingPage'; import { getSession, useSession } from '@/lib/auth'; -import { getCSRFToken } from '@/lib/helpers'; +import { getBasename, getCSRFToken } from '@/lib/util'; + +const basename = getBasename(); export default function Logout() { const navigate = useNavigate(); @@ -34,7 +36,7 @@ export default function Logout() { const url = new URL('/api/auth/logout', window.location.origin); const resp = await fetch(url, { method: 'post', - headers: { 'X-CSRF-Token': await getCSRFToken() }, + headers: { 'X-CSRF-Token': await getCSRFToken(basename) }, }); // update session diff --git a/dashboard-ui/src/pages/console.tsx b/dashboard-ui/src/pages/console.tsx index 54251371..36dbdd1b 100644 --- a/dashboard-ui/src/pages/console.tsx +++ b/dashboard-ui/src/pages/console.tsx @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -50,7 +50,7 @@ import { } from '@/lib/console/logfeed'; import { Counter, MapSet, getBasename, joinPaths, -} from '@/lib/helpers'; +} from '@/lib/util'; import { allWorkloads, iconMap, labelsPMap } from '@/lib/workload'; /** @@ -153,6 +153,8 @@ const SidebarWorkloads = () => { const [isPickerOpen, setIsPickerOpen] = useState(false); const [searchParams, setSearchParams] = useSearchParams(); + const kubeContext = searchParams.get('kubeContext') || ''; + const deleteSource = (sourcePath: string) => { searchParams.delete('source', sourcePath); setSearchParams(new URLSearchParams(searchParams), { replace: true }); @@ -161,6 +163,15 @@ const SidebarWorkloads = () => { return ( <> {isPickerOpen && setIsPickerOpen(false)} />} + {kubeContext !== '' && ( +
+ Cluster: + {kubeContext} +
+ )}
Sources @@ -511,7 +522,7 @@ export default function Page() { return ( - + , return containerIDs; } -function useCronJobs() { +function useCronJobs(kubeContext: string) { return useListQueryWithSubscription({ - query: ops.HOME_CRONJOBS_LIST_FETCH, - subscription: ops.HOME_CRONJOBS_LIST_WATCH, + query: dashboardOps.HOME_CRONJOBS_LIST_FETCH, + subscription: dashboardOps.HOME_CRONJOBS_LIST_WATCH, queryDataKey: 'batchV1CronJobsList', subscriptionDataKey: 'batchV1CronJobsWatch', + variables: { kubeContext }, }); } -function useDaemonSets() { +function useDaemonSets(kubeContext: string) { return useListQueryWithSubscription({ - query: ops.HOME_DAEMONSETS_LIST_FETCH, - subscription: ops.HOME_DAEMONSETS_LIST_WATCH, + query: dashboardOps.HOME_DAEMONSETS_LIST_FETCH, + subscription: dashboardOps.HOME_DAEMONSETS_LIST_WATCH, queryDataKey: 'appsV1DaemonSetsList', subscriptionDataKey: 'appsV1DaemonSetsWatch', + variables: { kubeContext }, }); } -function useDeployments() { +function useDeployments(kubeContext: string) { return useListQueryWithSubscription({ - query: ops.HOME_DEPLOYMENTS_LIST_FETCH, - subscription: ops.HOME_DEPLOYMENTS_LIST_WATCH, + query: dashboardOps.HOME_DEPLOYMENTS_LIST_FETCH, + subscription: dashboardOps.HOME_DEPLOYMENTS_LIST_WATCH, queryDataKey: 'appsV1DeploymentsList', subscriptionDataKey: 'appsV1DeploymentsWatch', + variables: { kubeContext }, }); } -function useJobs() { +function useJobs(kubeContext: string) { return useListQueryWithSubscription({ - query: ops.HOME_JOBS_LIST_FETCH, - subscription: ops.HOME_JOBS_LIST_WATCH, + query: dashboardOps.HOME_JOBS_LIST_FETCH, + subscription: dashboardOps.HOME_JOBS_LIST_WATCH, queryDataKey: 'batchV1JobsList', subscriptionDataKey: 'batchV1JobsWatch', + variables: { kubeContext }, }); } -function usePods() { +function usePods(kubeContext: string) { return useListQueryWithSubscription({ - query: ops.HOME_PODS_LIST_FETCH, - subscription: ops.HOME_PODS_LIST_WATCH, + query: dashboardOps.HOME_PODS_LIST_FETCH, + subscription: dashboardOps.HOME_PODS_LIST_WATCH, queryDataKey: 'coreV1PodsList', subscriptionDataKey: 'coreV1PodsWatch', + variables: { kubeContext }, }); } -function useReplicaSets() { +function useReplicaSets(kubeContext: string) { return useListQueryWithSubscription({ - query: ops.HOME_REPLICASETS_LIST_FETCH, - subscription: ops.HOME_REPLICASETS_LIST_WATCH, + query: dashboardOps.HOME_REPLICASETS_LIST_FETCH, + subscription: dashboardOps.HOME_REPLICASETS_LIST_WATCH, queryDataKey: 'appsV1ReplicaSetsList', subscriptionDataKey: 'appsV1ReplicaSetsWatch', + variables: { kubeContext }, }); } -function useStatefulSets() { +function useStatefulSets(kubeContext: string) { return useListQueryWithSubscription({ - query: ops.HOME_STATEFULSETS_LIST_FETCH, - subscription: ops.HOME_STATEFULSETS_LIST_WATCH, + query: dashboardOps.HOME_STATEFULSETS_LIST_FETCH, + subscription: dashboardOps.HOME_STATEFULSETS_LIST_WATCH, queryDataKey: 'appsV1StatefulSetsList', subscriptionDataKey: 'appsV1StatefulSetsWatch', + variables: { kubeContext }, }); } @@ -152,28 +164,38 @@ function useLogFileInfo(uids: string[], ownershipMap: Map) { } const Namespaces = ({ + kubeContext, value, setValue, }: { - value: string; + kubeContext: string; + value?: string; setValue: (value: string) => void; }) => { - const { data } = useListQueryWithSubscription({ - query: ops.HOME_NAMESPACES_LIST_FETCH, - subscription: ops.HOME_NAMESPACES_LIST_WATCH, + const { loading, data } = useListQueryWithSubscription({ + query: dashboardOps.HOME_NAMESPACES_LIST_FETCH, + subscription: dashboardOps.HOME_NAMESPACES_LIST_WATCH, queryDataKey: 'coreV1NamespacesList', subscriptionDataKey: 'coreV1NamespacesWatch', + variables: { kubeContext }, }); return ( setValue(ev.target.value)} value={value} + onChange={(ev) => setValue(ev.target.value)} + disabled={loading} > - All namespaces - {data?.coreV1NamespacesList?.items.map((item) => ( - {item.metadata.name} - ))} + {loading ? ( + Loading... + ) : ( + <> + All namespaces + {data?.coreV1NamespacesList?.items.map((item) => ( + {item.metadata.name} + ))} + + )} ); }; @@ -186,6 +208,7 @@ const lastModifiedAtFormatter: Formatter = (value: number, unit: Unit, suffix: S type DisplayItemsProps = { workload: Workload; + kubeContext: string; namespace: string; fetching: boolean; items: { @@ -202,7 +225,7 @@ type DisplayItemsProps = { }; const DisplayItems = ({ - workload, namespace, fetching, items, ownershipMap, + workload, kubeContext, namespace, fetching, items, ownershipMap, }: DisplayItemsProps) => { // filter items const filteredItems = items?.filter((item) => { @@ -354,7 +377,7 @@ const DisplayItems = ({ > Created - {config.extensionsEnabled === true && ( + {appConfig.clusterAPIEnabled === true && ( <> - {config.extensionsEnabled === true && ( + {appConfig.clusterAPIEnabled === true && ( <> {fileInfo?.size === undefined ? ( @@ -426,7 +449,7 @@ const DisplayItems = ({
view
@@ -458,17 +481,24 @@ const DisplayItems = ({ ); }; -const DisplayWorkloads = ({ namespace }: { namespace: string; }) => { - const cronjobs = useCronJobs(); - const daemonsets = useDaemonSets(); - const deployments = useDeployments(); - const jobs = useJobs(); - const pods = usePods(); - const replicasets = useReplicaSets(); - const statefulsets = useStatefulSets(); +const DisplayWorkloads = ({ + kubeContext, + namespace, +}: { + kubeContext: string; + namespace: string; +}) => { + const cronjobs = useCronJobs(kubeContext); + const daemonsets = useDaemonSets(kubeContext); + const deployments = useDeployments(kubeContext); + const jobs = useJobs(kubeContext); + const pods = usePods(kubeContext); + const replicasets = useReplicaSets(kubeContext); + const statefulsets = useStatefulSets(kubeContext); const logMetadata = useLogMetadata({ - enabled: config.extensionsEnabled, + enabled: appConfig.clusterAPIEnabled, + kubeContext, onUpdate: (containerID) => { document.querySelectorAll(`.last_event_${containerID}`).forEach((el) => { const k = 'animate-flash-bg-green'; @@ -529,6 +559,7 @@ const DisplayWorkloads = ({ namespace }: { namespace: string; }) => { { /> { /> { /> { /> { /> { /> { ); }; +const KubeContextPicker = ({ + value, + setValue, +}: { + value?: string; + setValue: (value: string) => void; +}) => { + const { loading, data } = useSubscription(dashboardOps.KUBE_CONFIG_WATCH); + const kubeConfig = data?.kubeConfigWatch?.object; + + // Set default value + useEffect(() => { + const defaultValue = kubeConfig?.currentContext; + if (defaultValue) setValue(defaultValue); + }, [loading]); + + return ( + setValue(ev.target.value)} + disabled={loading} + > + {loading ? ( + Loading... + ) : ( + kubeConfig && kubeConfig.contexts.map((context) => ( + {context.name} + )) + )} + + ); +}; + const Home = () => { - const [namespace, setNamespace] = useState(''); + const [kubeContext, setKubeContext] = useState(defaultKubeContext); + const [namespace, setNamespace] = useState(''); + + const readyWait = useQuery(dashboardOps.KUBERNETES_API_READY_WAIT, { + variables: { kubeContext }, + }); return ( <>
- - logo - - +
+ + logo + + {appConfig.environment === 'desktop' && ( + + + + )} +
+ {appConfig.authMode === 'token' && ( + + )}
-
-
-
- + {(readyWait.loading || kubeContext === undefined) ? ( +
Connecting...
+ ) : ( + + +
+
+ +
+
- -
- - + + + )}
); diff --git a/dashboard-ui/src/routes.test.tsx b/dashboard-ui/src/routes.test.tsx index a5b56ee4..0e35f60c 100644 --- a/dashboard-ui/src/routes.test.tsx +++ b/dashboard-ui/src/routes.test.tsx @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -12,14 +12,11 @@ // See the License for the specific language governing permissions and // limitations under the License. -import { MockedProvider } from '@apollo/client/testing'; -import type { MockedResponse } from '@apollo/client/testing'; import { render, waitFor } from '@testing-library/react'; import { Suspense } from 'react'; import { ErrorBoundary } from 'react-error-boundary'; import { MemoryRouter, Routes } from 'react-router-dom'; -import * as ops from '@/lib/graphql/ops'; import { routes } from './routes'; vi.mock('@/pages/home', () => ({ @@ -38,35 +35,25 @@ vi.mock('@/pages/auth/logout', () => ({ default: () =>
Auth-Logout
, })); -const mocks: MockedResponse[] = [ - { - request: { - query: ops.READY_WAIT, - }, - result: { - data: { - readyWait: true, - }, - }, - }, -]; +vi.mock('@/lib/util', async (importOriginal) => { + const mod = await importOriginal(); + return { + ...mod, + readyWaitFetch: vi.fn().mockResolvedValue({}), + }; +}); const renderPage = (path: string) => ( render( - - error
}> - loading...
}> - - - {routes} - - - - - , + error
}> + loading...
}> + + + {routes} + + + + , ) ); diff --git a/dashboard-ui/src/routes.tsx b/dashboard-ui/src/routes.tsx index 7addd119..e30f0712 100644 --- a/dashboard-ui/src/routes.tsx +++ b/dashboard-ui/src/routes.tsx @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -15,11 +15,11 @@ import { Route } from 'react-router-dom'; import Root from '@/pages/_root'; -import Login from '@/pages/auth/login'; -import Logout from '@/pages/auth/logout'; import Console from '@/pages/console'; -import Home from '@/pages/home'; import ErrorPage from '@/error-page'; +import Home from '@/pages/home'; +import Login from '@/pages/auth/login'; +import Logout from '@/pages/auth/logout'; export const routes = ( } errorElement={}> diff --git a/dashboard-ui/src/test-utils.tsx b/dashboard-ui/src/test-utils.tsx index 163ae0f5..74c2f251 100644 --- a/dashboard-ui/src/test-utils.tsx +++ b/dashboard-ui/src/test-utils.tsx @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -17,14 +17,14 @@ import { render } from '@testing-library/react'; import React from 'react'; import { MemoryRouter } from 'react-router-dom'; -import { CustomCache } from '@/apollo-client'; +import { DashboardCustomCache } from '@/apollo-client'; export const renderElement = (component: React.ReactElement, mocks?: MockedResponse[]) => ( render( -import react from '@vitejs/plugin-react'; -import path from 'path'; -import { visualizer } from 'rollup-plugin-visualizer'; -import { defineConfig, splitVendorChunkPlugin } from 'vite'; +/// +import react from '@vitejs/plugin-react-swc'; +import { defineConfig, loadEnv } from 'vite'; import svgr from 'vite-plugin-svgr'; import tsconfigPaths from 'vite-tsconfig-paths'; -export default defineConfig({ - plugins: [ - tsconfigPaths(), - svgr(), - splitVendorChunkPlugin(), - react(), - visualizer(), - ], - resolve: { - alias: { - '@': path.resolve(__dirname, './src'), +export default ({ mode }: { mode: string; }) => { + const env = loadEnv(mode, process.cwd()); + + const backendTarget = `http://localhost:${env.VITE_DASHBOARD_PROXY_PORT}`; + + return defineConfig({ + plugins: [ + tsconfigPaths(), + svgr(), + react(), + ], + optimizeDeps: { + include: [ + 'react', + 'react-dom', + ], }, - }, - server: { - host: true, - proxy: { - '^/api/auth/.*': { - target: 'http://localhost:7500', - }, - '^/csrf-token': { - target: 'http://localhost:7500', + server: { + host: true, + proxy: { + '^/api/.*': { + target: backendTarget, + }, + '^/cluster-api-proxy/.*': { + target: backendTarget, + ws: true, + }, + '^/csrf-token': { + target: backendTarget, + }, + '^/graphql': { + target: backendTarget, + ws: true, + }, }, - '^/graphql': { - target: 'http://localhost:7500', - ws: true, + }, + build: { + manifest: true, + sourcemap: true, + rollupOptions: { + output: { + manualChunks(id: string) { + if (id.includes('/node_modules/')) return 'vendor'; + }, + }, }, - } - }, - build: { - manifest: true, - sourcemap: true, - }, - test: { - environment: 'jsdom', - globals: true, - setupFiles: ['./vitest.setup.ts'] - } -}); + }, + test: { + environment: 'jsdom', + globals: true, + setupFiles: ['./vitest.setup.ts'], + }, + }); +}; diff --git a/dashboard-ui/vitest.setup.ts b/dashboard-ui/vitest.setup.ts index 3a53e38b..062e2c4e 100644 --- a/dashboard-ui/vitest.setup.ts +++ b/dashboard-ui/vitest.setup.ts @@ -5,10 +5,6 @@ import type { Mock } from 'vitest'; import { getSession, useSession } from '@/lib/auth'; -// display apollo error messages in console -loadDevMessages(); -loadErrorMessages(); - vi.mock('@/lib/auth', async (importOriginal) => { const mod = await importOriginal(); return { @@ -18,14 +14,29 @@ vi.mock('@/lib/auth', async (importOriginal) => { }; }); -vi.mock('@/lib/helpers', async (importOriginal) => { - const mod = await importOriginal(); +vi.mock('@/lib/util', async (importOriginal) => { + const mod = await importOriginal(); return { ...mod, getCSRFToken: vi.fn().mockResolvedValue('testtoken'), }; }); +// Stub the global ResizeObserver +class ResizeObserverMock { + observe = vi.fn(); + + unobserve = vi.fn(); + + disconnect = vi.fn(); +} + +vi.stubGlobal('ResizeObserver', ResizeObserverMock); + +// Display apollo error messages in console +loadDevMessages(); +loadErrorMessages(); + beforeEach(() => { // init auth mocks (getSession as Mock).mockReturnValue({ diff --git a/hack/config.yaml b/hack/config.yaml index 2c4f0a01..b2411668 100644 --- a/hack/config.yaml +++ b/hack/config.yaml @@ -1,19 +1,6 @@ ## Kubetail Configuration # -## auth-mode ## -# -# Sets the authentication method for the app -# -# Default value: token -# -# One of: -# - token -# - cluster -# - local -# -auth-mode: token - ## allowed-namespaces ## # # If non-empty, restricts queries to allowed namespaces @@ -22,18 +9,30 @@ auth-mode: token # allowed-namespaces: [] -## server ## +## dashboard ## # -server: +dashboard: ## addr ## # # Sets the target ip and port to bind the server to # - # Default value: ":4000" + # Default value: ":80" # - addr: :4000 - + addr: :80 + + ## auth-mode (experimental) ## + # + # Sets the authentication method for the app + # + # Default value: auto + # + # One of: + # - auto + # - token + # + auth-mode: auto + ## base-path ## # # Sets the url path prefix (useful for deploying on a sub-path behind a reverse proxy) @@ -41,7 +40,27 @@ server: # Default value: / # base-path: / + + ## cluster-api-endpoint (experimental) ## + # + # Service url for cluster-api + # + # Default value: http://kubetail-cluster-api + # + cluster-api-endpoint: http://kubetail-cluster-api + ## environment (experimental) ## + # + # Sets the authentication method for the app + # + # Default value: auto + # + # One of: + # - desktop + # - cluster + # + environment: desktop + ## gin-mode ## # # Sets the mode for the Gin framework @@ -53,17 +72,17 @@ server: # - debug # gin-mode: release - + ## csrf ## # csrf: - + ## enabled ## # # Default value: true # enabled: true - + ## field-name ## # # Name to use for token in forms @@ -88,9 +107,9 @@ server: ## name ## # - # Default value: csrf + # Default value: kubetail_dashboard_csrf # - name: csrf + name: kubetail_dashboard_csrf ## path ## # @@ -281,9 +300,221 @@ server: # key-file: -## agent ## + ## ui ## + # + ui: + + ## cluster-api-enabled (experimental) ## + # + # Enable features that use cluster-api + # + # Default value: true + # + cluster-api-enabled: true + +## cluster-api ## +# +cluster-api: + + ## addr ## + # + # Sets the target ip and port to bind the server to + # + # Default value: ":80" + # + addr: :80 + + ## base-path ## + # + # Sets the url path prefix (useful for deploying on a sub-path behind a reverse proxy) + # + # Default value: / + # + base-path: / + + ## cluster-agent-dispatch-url ## + # + # Service url for gRPC fanout queries to cluster-agent + # + # Default value: kubernetes://kubetail-cluster-agent:50051 + # + cluster-agent-dispatch-url: kubernetes://kubetail-cluster-agent:50051 + + ## gin-mode ## + # + # Sets the mode for the Gin framework + # + # Default value: release + # + # One of: + # - release + # - debug + # + gin-mode: release + + ## csrf ## + # + csrf: + + ## enabled ## + # + # Default value: true + # + enabled: true + + ## field-name ## + # + # Name to use for token in forms + # + # Default value: csrf_token + # + field-name: csrf_token + + ## secret ## + # + # 32-byte long hash key + # + # Default value: __empty__ + # + secret: + + ## cookie ## + # + # Set csrf cookie options + # + cookie: + + ## name ## + # + # Default value: kubetail_api_csrf + # + name: kubetail_api_csrf + + ## path ## + # + # Default value: / + # + path: / + + ## domain ## + # + # Default value: __empty__ + # + domain: + + ## max-age ## + # + # Cookie max age (in seconds) + # + # Default value: 43200 + # + max-age: 43200 + + ## secure ## + # + # Default value: false + # + secure: false + + ## http-only ## + # + # Default value: true + # + http-only: true + + ## same-site ## + # + # Default value: strict + # + # One of: + # - strict + # - lax + # - none + # + same-site: strict + + ## logging ## + # + logging: + + ## enabled ## + # + # Default value: true + # + enabled: true + + ## level ## + # + # Default value: info + # + # One of: + # - debug + # - info + # - warn + # - error + # - disabled + # + level: info + + ## format ## + # + # Default value: json + # + # One of: + # - json + # - pretty + # + format: json + + ## access-log ## + # + access-log: + + ## enabled ## + # + # Enables web access logs for app + # + # Default value: true + # + enabled: true + + ## hide-health-checks ## + # + # Hides health checks from access log + # + # Default: false + # + hide-health-checks: false + + ## tls ## + # + tls: + + ## enabled ## + # + # Default value: false + # + enabled: false + + ## cert-file ## + # + # Path to tls certificate file + # + # Default value: __empty__ + # + cert-file: + + ## key-file ## + # + # Path to tls key file + # + # Default value: __empty__ + # + key-file: + +## cluster-agent ## # -agent: +cluster-agent: ## addr ## # diff --git a/hack/test-envs/Docker.ubuntu-22.04 b/hack/test-envs/Docker.ubuntu-22.04 index 5e1169ae..0a257a0c 100644 --- a/hack/test-envs/Docker.ubuntu-22.04 +++ b/hack/test-envs/Docker.ubuntu-22.04 @@ -10,7 +10,7 @@ RUN apt-get update && \ rm -rf /var/lib/apt/lists/* # Set Go version -ENV GO_VERSION=1.22.7 +ENV GO_VERSION=1.23.4 # Download and install Go RUN curl -OL https://go.dev/dl/go$GO_VERSION.linux-amd64.tar.gz && \ diff --git a/hack/tilt/Dockerfile.kubetail-agent b/hack/tilt/Dockerfile.kubetail-agent deleted file mode 100644 index b18bd9ce..00000000 --- a/hack/tilt/Dockerfile.kubetail-agent +++ /dev/null @@ -1,9 +0,0 @@ -FROM alpine:3.20.0 - -WORKDIR /agent - -# copy -COPY .tilt/agent . - -ENTRYPOINT ["./agent"] -CMD [] diff --git a/hack/tilt/Dockerfile.kubetail-cluster-agent b/hack/tilt/Dockerfile.kubetail-cluster-agent new file mode 100644 index 00000000..e56c2500 --- /dev/null +++ b/hack/tilt/Dockerfile.kubetail-cluster-agent @@ -0,0 +1,9 @@ +FROM alpine:3.20.0 + +WORKDIR /cluster-agent + +# copy +COPY .tilt/cluster-agent . + +ENTRYPOINT ["./cluster-agent"] +CMD [] diff --git a/hack/tilt/Dockerfile.kubetail-cluster-api b/hack/tilt/Dockerfile.kubetail-cluster-api new file mode 100644 index 00000000..28fa383d --- /dev/null +++ b/hack/tilt/Dockerfile.kubetail-cluster-api @@ -0,0 +1,9 @@ +FROM alpine:3.20.0 + +WORKDIR /cluster-api + +# copy +COPY .tilt/cluster-api . + +ENTRYPOINT ["./cluster-api"] +CMD [] diff --git a/hack/tilt/Dockerfile.kubetail-dashboard b/hack/tilt/Dockerfile.kubetail-dashboard new file mode 100644 index 00000000..3b6a3c07 --- /dev/null +++ b/hack/tilt/Dockerfile.kubetail-dashboard @@ -0,0 +1,9 @@ +FROM alpine:3.20.0 + +WORKDIR /dashboard + +# copy +COPY .tilt/dashboard . + +ENTRYPOINT ["./dashboard"] +CMD [] diff --git a/hack/tilt/Dockerfile.kubetail-server b/hack/tilt/Dockerfile.kubetail-server deleted file mode 100644 index ba3aeb1b..00000000 --- a/hack/tilt/Dockerfile.kubetail-server +++ /dev/null @@ -1,9 +0,0 @@ -FROM alpine:3.20.0 - -WORKDIR /server - -# copy -COPY .tilt/server . - -ENTRYPOINT ["./server"] -CMD [] diff --git a/hack/tilt/kubetail.yaml b/hack/tilt/kubetail.yaml index 8e46f433..b4ad5700 100644 --- a/hack/tilt/kubetail.yaml +++ b/hack/tilt/kubetail.yaml @@ -2,18 +2,21 @@ kind: ConfigMap apiVersion: v1 metadata: name: kubetail - namespace: default + namespace: kubetail-system labels: app.kubernetes.io/name: kubetail data: config.yaml: | - auth-mode: cluster allowed-namespaces: [] - server: - addr: :4000 + dashboard: + addr: :80 + auth-mode: auto base-path: / + cluster-api-endpoint: http://kubetail-cluster-api.kubetail-system.svc:80 + environment: cluster gin-mode: debug - extensions-enabled: true + ui: + cluster-api-enabled: true session: secret: REPLACEME cookie: @@ -28,7 +31,34 @@ data: secret: REPLACEME field-name: csrf_token cookie: - name: csrf + name: kubetail_dashboard_csrf + path: / + max-age: 43200 + secure: false + http-only: true + same-site: strict + logging: + enabled: true + level: debug + format: pretty + access-log: + enabled: true + hide-health-checks: true + tls: + enabled: false + cert-file: + key-file: + api: + addr: :80 + base-path: / + gin-mode: debug + agent-dispatch-url: kubernetes://kubetail-cluster-agent:50051 + csrf: + enabled: true + secret: REPLACEME + field-name: csrf_token + cookie: + name: kubetail_cluster_api_csrf path: / max-age: 43200 secure: false @@ -59,48 +89,143 @@ data: kind: ServiceAccount apiVersion: v1 metadata: - name: kubetail-server - namespace: default + name: kubetail-dashboard + namespace: kubetail-system labels: app.kubernetes.io/name: kubetail - app.kubernetes.io/component: server + app.kubernetes.io/component: dashboard --- kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata: - name: kubetail-server + name: kubetail-dashboard labels: app.kubernetes.io/name: kubetail - app.kubernetes.io/component: server + app.kubernetes.io/component: dashboard rules: - apiGroups: ["", apps, batch] resources: [cronjobs, daemonsets, deployments, jobs, namespaces, nodes, pods, pods/log, replicasets, statefulsets] verbs: [get, list, watch] +- apiGroups: [discovery.k8s.io] + resources: [endpointslices] + verbs: [list, watch] +- apiGroups: [authentication.k8s.io] + resources: [tokenreviews] + verbs: [create] --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: - name: kubetail-server + name: kubetail-dashboard labels: app.kubernetes.io/name: kubetail - app.kubernetes.io/component: server + app.kubernetes.io/component: dashboard roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: kubetail-server + name: kubetail-dashboard subjects: - kind: ServiceAccount - name: kubetail-server - namespace: default + name: kubetail-dashboard + namespace: kubetail-system +--- +kind: Deployment +apiVersion: apps/v1 +metadata: + name: kubetail-dashboard + namespace: kubetail-system + labels: + app.kubernetes.io/name: kubetail + app.kubernetes.io/component: dashboard +spec: + replicas: 1 + revisionHistoryLimit: 5 + selector: + matchLabels: + app.kubernetes.io/name: kubetail + app.kubernetes.io/component: dashboard + strategy: + type: RollingUpdate + template: + metadata: + labels: + app.kubernetes.io/name: kubetail + app.kubernetes.io/component: dashboard + spec: + serviceAccountName: kubetail-dashboard + containers: + - name: kubetail-dashboard + image: kubetail-dashboard + ports: + - name: http + protocol: TCP + containerPort: 80 + args: + - --config=/etc/kubetail/config.yaml + volumeMounts: + - name: config + mountPath: /etc/kubetail + readOnly: true + readinessProbe: + httpGet: + scheme: HTTP + path: /healthz + port: http + initialDelaySeconds: 10 + timeoutSeconds: 30 + periodSeconds: 5 + failureThreshold: 3 + livenessProbe: + httpGet: + scheme: HTTP + path: /healthz + port: http + initialDelaySeconds: 10 + timeoutSeconds: 30 + periodSeconds: 5 + failureThreshold: 3 + resources: {} + volumes: + - name: config + configMap: + name: kubetail +--- +kind: Service +apiVersion: v1 +metadata: + name: kubetail-dashboard + namespace: kubetail-system + labels: + app.kubernetes.io/name: kubetail + app.kubernetes.io/component: dashboard +spec: + selector: + app.kubernetes.io/name: kubetail + app.kubernetes.io/component: dashboard + ports: + - name: http + protocol: TCP + port: 80 + targetPort: http + appProtocol: http +--- +kind: ServiceAccount +apiVersion: v1 +metadata: + name: kubetail-cluster-api + namespace: kubetail-system + labels: + app.kubernetes.io/name: kubetail + app.kubernetes.io/component: cluster-api --- kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: - name: kubetail-server - namespace: default + name: kubetail-cluster-api + namespace: kubetail-system labels: app.kubernetes.io/name: kubetail - app.kubernetes.io/component: server + app.kubernetes.io/component: cluster-api rules: - apiGroups: [discovery.k8s.io] resources: [endpointslices] @@ -109,51 +234,51 @@ rules: kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: - name: kubetail-server - namespace: default + name: kubetail-cluster-api + namespace: kubetail-system labels: app.kubernetes.io/name: kubetail - app.kubernetes.io/component: server + app.kubernetes.io/component: cluster-api roleRef: kind: Role - name: kubetail-server + name: kubetail-cluster-api apiGroup: rbac.authorization.k8s.io subjects: - - kind: ServiceAccount - name: kubetail-server - namespace: default +- kind: ServiceAccount + name: kubetail-cluster-api + namespace: kubetail-system --- kind: Deployment apiVersion: apps/v1 metadata: - name: kubetail-server - namespace: default + name: kubetail-cluster-api + namespace: kubetail-system labels: app.kubernetes.io/name: kubetail - app.kubernetes.io/component: server + app.kubernetes.io/component: cluster-api spec: replicas: 1 revisionHistoryLimit: 5 selector: matchLabels: app.kubernetes.io/name: kubetail - app.kubernetes.io/component: server + app.kubernetes.io/component: cluster-api strategy: type: RollingUpdate template: metadata: labels: app.kubernetes.io/name: kubetail - app.kubernetes.io/component: server + app.kubernetes.io/component: cluster-api spec: - serviceAccountName: kubetail-server + serviceAccountName: kubetail-cluster-api containers: - - name: kubetail-server - image: kubetail-server + - name: kubetail-cluster-api + image: kubetail-cluster-api ports: - name: http protocol: TCP - containerPort: 4000 + containerPort: 80 args: - --config=/etc/kubetail/config.yaml volumeMounts: @@ -187,35 +312,38 @@ spec: kind: Service apiVersion: v1 metadata: - name: kubetail-server - namespace: default + name: kubetail-cluster-api + namespace: kubetail-system + labels: + app.kubernetes.io/name: kubetail + app.kubernetes.io/component: cluster-api spec: selector: app.kubernetes.io/name: kubetail - app.kubernetes.io/component: server + app.kubernetes.io/component: cluster-api ports: - name: http protocol: TCP - port: 4000 + port: 80 targetPort: http appProtocol: http --- kind: ServiceAccount apiVersion: v1 metadata: - name: kubetail-agent - namespace: default + name: kubetail-cluster-agent + namespace: kubetail-system labels: app.kubernetes.io/name: kubetail - app.kubernetes.io/component: agent + app.kubernetes.io/component: cluster-agent --- kind: ClusterRole apiVersion: rbac.authorization.k8s.io/v1 metadata: - name: kubetail-agent + name: kubetail-cluster-agent labels: app.kubernetes.io/name: kubetail - app.kubernetes.io/component: agent + app.kubernetes.io/component: cluster-agent rules: - apiGroups: [""] resources: [pods/log] @@ -224,42 +352,42 @@ rules: kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: - name: kubetail-agent + name: kubetail-cluster-agent labels: app.kubernetes.io/name: kubetail - app.kubernetes.io/component: agent + app.kubernetes.io/component: cluster-agent roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole - name: kubetail-agent + name: kubetail-cluster-agent subjects: - kind: ServiceAccount - name: kubetail-agent - namespace: default + name: kubetail-cluster-agent + namespace: kubetail-system --- kind: DaemonSet apiVersion: apps/v1 metadata: - name: kubetail-agent - namespace: default + name: kubetail-cluster-agent + namespace: kubetail-system labels: app.kubernetes.io/name: kubetail - app.kubernetes.io/component: agent + app.kubernetes.io/component: cluster-agent spec: selector: matchLabels: app.kubernetes.io/name: kubetail - app.kubernetes.io/component: agent + app.kubernetes.io/component: cluster-agent template: metadata: labels: app.kubernetes.io/name: kubetail - app.kubernetes.io/component: agent + app.kubernetes.io/component: cluster-agent spec: - serviceAccountName: kubetail-agent + serviceAccountName: kubetail-cluster-agent containers: - - name: kubetail-agent - image: kubetail-agent + - name: kubetail-cluster-agent + image: kubetail-cluster-agent ports: - name: grpc protocol: TCP @@ -303,30 +431,73 @@ spec: kind: Service apiVersion: v1 metadata: - name: kubetail-agent - namespace: default + name: kubetail-cluster-agent + namespace: kubetail-system + labels: + app.kubernetes.io/name: kubetail + app.kubernetes.io/component: cluster-agent spec: clusterIP: None selector: app.kubernetes.io/name: kubetail - app.kubernetes.io/component: agent + app.kubernetes.io/component: cluster-agent --- kind: NetworkPolicy apiVersion: networking.k8s.io/v1 metadata: - name: kubetail-agent - namespace: default + name: kubetail-cluster-agent + namespace: kubetail-system + labels: + app.kubernetes.io/name: kubetail + app.kubernetes.io/component: cluster-agent spec: podSelector: matchLabels: app.kubernetes.io/name: kubetail - app.kubernetes.io/component: agent + app.kubernetes.io/component: cluster-agent ingress: - from: - podSelector: matchLabels: app.kubernetes.io/name: kubetail - app.kubernetes.io/component: server + app.kubernetes.io/component: cluster-api +--- +kind: ServiceAccount +apiVersion: v1 +metadata: + name: kubetail-cli + namespace: kubetail-system + labels: + app.kubernetes.io/name: kubetail + app.kubernetes.io/component: cli +--- +kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: kubetail-cli + labels: + app.kubernetes.io/name: kubetail + app.kubernetes.io/component: cli +rules: +- apiGroups: [""] + resources: [pods/log] + verbs: [list, watch] +--- +kind: ClusterRoleBinding +apiVersion: rbac.authorization.k8s.io/v1 +metadata: + name: kubetail-cli + labels: + app.kubernetes.io/name: kubetail + app.kubernetes.io/component: cli +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: kubetail-cli +subjects: +- kind: ServiceAccount + name: kubetail-cli + namespace: kubetail-system --- kind: ServiceAccount apiVersion: v1 @@ -360,7 +531,7 @@ kind: Role apiVersion: rbac.authorization.k8s.io/v1 metadata: name: kubetail-testuser - namespace: default + namespace: kubetail-system rules: - apiGroups: [discovery.k8s.io] resources: [endpointslices] @@ -370,12 +541,12 @@ kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: kubetail-testuser - namespace: default + namespace: kubetail-system roleRef: kind: Role name: kubetail-testuser apiGroup: rbac.authorization.k8s.io subjects: - - kind: ServiceAccount - name: kubetail-testuser - namespace: default +- kind: ServiceAccount + name: kubetail-testuser + namespace: default diff --git a/modules/README.md b/modules/README.md index eae7ffcb..2cec544f 100644 --- a/modules/README.md +++ b/modules/README.md @@ -1,17 +1,37 @@ -# Kubetail Backend +# Kubetail Go Modules -Go workspace that contains the modules used by the Kubetail backend +Workspace that contains the Go modules used by Kubetail ## Overview -The Kubetail application's backend consists of a Go-based backend server and a set of small Go-based backend agents that run on each node in your cluster. The backend code is organized as a Go workspace that contains the Go modules for the server, the agent and shared libraries: +This workspace contains the following modules: -* [server](server) - Backend server -* [agent](agent) - Backend agent -* [common](common) - Shared libraries +* [cli](cli) - Kubetail CLI +* [cluster-agent](cluster-agent) - Kubetail Cluster Agent +* [cluster-api](cluster-api) - Kubetail Cluster API +* [dashboard](dashboard) - Kubetail Dashboard +* [shared](shared) - Shared libraries -This workspace also contains the Protocol Buffer definition files for the agent: +Please view the README in each directory for more details. -* [proto](proto) - Protocol Buffer definition files +## Run code generators -Please view the README in each directory for more details. +First install the dependencies: + +```console +brew install protobuf protoc-gen-go protoc-gen-go-grpc +``` + +Next, run the code generators: + +```console +go generate github.com/kubetail-org/kubetail/modules/... +``` + +## Run tests + +To run the tests in all the modules: + +```console +go test github.com/kubetail-org/kubetail/modules/... +``` diff --git a/modules/agent/README.md b/modules/agent/README.md deleted file mode 100644 index c41764bd..00000000 --- a/modules/agent/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# Kubetail Backend Agent - -Go-based gRPC service that runs on every node in a cluster and responds to requests from Kubetail backend server instances - -## Overview - -The Kubetail backend agent is a small Go-based gRPC service that's designed to run on every node in a Kubernetes cluster and respond to node-specific requests from Kubetail backend server instances using gRPC. Currently, the agent returns realtime information about container log files such as file size and when the last event occurred. - -## Configure - -### CLI - -The Kubetail backend agent executable supports the following command line configuration options: - -| Flag | Datatype | Description | Default | -| ------------ | -------- | -------------------------------- | -------- | -| -c, --config | string | Path to Kubetail config file | "" | -| -a, --addr | string | Host address to bind to | ":50051" | -| -p, --param | []string | Config params ("key:val" format) | [] | - -### Config params - -The Kubetail backend agent can be configured using a configuration file written in YAML, JSON, TOML, HCL or envfile format. The application will automatically replace ENV variables written in the format `${NAME}` with their corresponding values. The config file supports the following options (also see [hack/config.yaml](hack/config.yaml)): - -| Name | Datatype | Description | Default | -| --------------------- | -------- | ---------------------------------------- | -------- | -| auth-mode | string | Auth mode (token, cluster, local) | "token" | -| allowed-namespaces | []string | If populated, restricts namespace access | [] | -| agent.addr | string | Host address to bind to | ":50051" | -| agent.logging.enabled | bool | Enable logging | true | -| agent.logging.level | string | Log level | "info" | -| agent.logging.format | string | Log format (json, pretty) | "json" | -| agent.tls.enabled | bool | Enable TLS endpoint termination | false | -| agent.tls.cert-file | string | Path to cert file | "" | -| agent.tls.key-file | string | Path to key file | "" | - -## gRPC - -The Kubetail backend agent implements the gRPC service `LogMetadataService` documented in [agent.proto](../proto/agent.proto). - -## Test - -This project uses the [stretchr/testify](https://github.com/stretchr/testify) library for testing. To run the test suite execute this command: - -```console -go test ./... -``` diff --git a/modules/agent/internal/server/server_test.go b/modules/agent/internal/server/server_test.go deleted file mode 100644 index 21fc9542..00000000 --- a/modules/agent/internal/server/server_test.go +++ /dev/null @@ -1,117 +0,0 @@ -// Copyright 2024 Andres Morey -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package server - -import ( - "context" - "testing" - - "github.com/stretchr/testify/require" - "google.golang.org/grpc" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" - - "github.com/kubetail-org/kubetail/modules/common/config" - "github.com/kubetail-org/kubetail/modules/common/grpchelpers" - "github.com/kubetail-org/kubetail/modules/common/testpb" -) - -func TestAuthModeNotToken(t *testing.T) { - tests := []struct { - name string - setAuthMode config.AuthMode - }{ - {"cluster", config.AuthModeCluster}, - {"local", config.AuthModeLocal}, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - cfg := config.DefaultConfig() - cfg.AuthMode = tt.setAuthMode - - // init server - server := NewTestServer(cfg) - defer server.Stop() - - // init client - client, err := server.NewTestClient() - require.Nil(t, err) - defer client.Close() - - // execute request - resp, err := client.Echo(context.Background(), &testpb.EchoRequest{Message: "xxx"}) - require.Nil(t, err) - require.Equal(t, "xxx", resp.Message) - }) - } -} - -func TestRequestWithoutAuthClientInterceptor(t *testing.T) { - cfg := config.DefaultConfig() - - // init server - server := NewTestServer(cfg) - defer server.Stop() - - // init client - client, err := server.NewTestClient() - require.Nil(t, err) - defer client.Close() - - // execute request - resp, err := client.Echo(context.Background(), &testpb.EchoRequest{}) - require.Nil(t, resp) - require.ErrorIs(t, err, status.Errorf(codes.Unauthenticated, "missing token")) -} - -func TestRequestWithAuthClientInterceptorSuccess(t *testing.T) { - cfg := config.DefaultConfig() - - // init server - server := NewTestServer(cfg) - defer server.Stop() - - // init client - client, err := server.NewTestClient(grpc.WithUnaryInterceptor(grpchelpers.NewUnaryAuthClientInterceptor(cfg))) - require.Nil(t, err) - defer client.Close() - - // add token to context - ctx := context.WithValue(context.Background(), grpchelpers.K8STokenCtxKey, "token-value") - - // execute request - resp, err := client.Echo(ctx, &testpb.EchoRequest{Message: "xxx"}) - require.Nil(t, err) - require.Equal(t, "xxx", resp.Message) -} - -func TestRequestWithAuthClientInterceptorFailure(t *testing.T) { - cfg := config.DefaultConfig() - - // init server - server := NewTestServer(cfg) - defer server.Stop() - - // init client - client, err := server.NewTestClient(grpc.WithUnaryInterceptor(grpchelpers.NewUnaryAuthClientInterceptor(cfg))) - require.Nil(t, err) - defer client.Close() - - // execute request - resp, err := client.Echo(context.Background(), &testpb.EchoRequest{Message: "xxx"}) - require.Nil(t, resp) - require.ErrorIs(t, err, status.Errorf(codes.FailedPrecondition, "missing token in context")) -} diff --git a/modules/agent/internal/server/testutils_test.go b/modules/agent/internal/server/testutils_test.go deleted file mode 100644 index 7575797d..00000000 --- a/modules/agent/internal/server/testutils_test.go +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright 2024 Andres Morey -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package server - -import ( - "context" - "net" - - "google.golang.org/grpc" - "google.golang.org/grpc/credentials/insecure" - "google.golang.org/grpc/test/bufconn" - - "github.com/kubetail-org/kubetail/modules/common/config" - "github.com/kubetail-org/kubetail/modules/common/testpb" -) - -type TestService struct { - testpb.UnimplementedTestServiceServer -} - -func (s *TestService) Echo(ctx context.Context, req *testpb.EchoRequest) (*testpb.EchoResponse, error) { - return &testpb.EchoResponse{Message: req.GetMessage()}, nil -} - -// Test client -type TestClient struct { - testpb.TestServiceClient - grpcConn *grpc.ClientConn -} - -// Close underlying grpc connection -func (tc *TestClient) Close() error { - return tc.grpcConn.Close() -} - -// Test Server -type TestServer struct { - *grpc.Server - lis *bufconn.Listener -} - -// Initialize new TestClient instance -func (ts *TestServer) NewTestClient(opts ...grpc.DialOption) (*TestClient, error) { - // init conn - dialerFunc := func(ctx context.Context, _ string) (net.Conn, error) { - return ts.lis.DialContext(ctx) - } - - opts = append( - opts, - grpc.WithTransportCredentials(insecure.NewCredentials()), - grpc.WithContextDialer(dialerFunc), - ) - - grpcConn, err := grpc.NewClient("passthrough://bufnet", opts...) - if err != nil { - return nil, err - } - - // init client - client := testpb.NewTestServiceClient(grpcConn) - - // return test client - return &TestClient{TestServiceClient: client, grpcConn: grpcConn}, nil -} - -// Initialize new TestServer instance -func NewTestServer(cfg *config.Config) *TestServer { - // init service - svc := &TestService{} - - // init server - server, _ := NewServer(cfg) - testpb.RegisterTestServiceServer(server, svc) - - // init listener - lis := bufconn.Listen(1024 * 1024) - go func() { - if err := server.Serve(lis); err != nil { - panic(err) - } - }() - - return &TestServer{Server: server, lis: lis} -} diff --git a/modules/cli/README.md b/modules/cli/README.md new file mode 100644 index 00000000..bbedd2ed --- /dev/null +++ b/modules/cli/README.md @@ -0,0 +1,4 @@ +# Kubetail CLI + +Go based CLI executable + diff --git a/modules/cli/cmd/cluster.go b/modules/cli/cmd/cluster.go index ce1e5454..a226b4eb 100644 --- a/modules/cli/cmd/cluster.go +++ b/modules/cli/cmd/cluster.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/modules/cli/cmd/cluster_install.go b/modules/cli/cmd/cluster_install.go index 9b285508..d4cfd7dd 100644 --- a/modules/cli/cmd/cluster_install.go +++ b/modules/cli/cmd/cluster_install.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -19,8 +19,9 @@ import ( "github.com/spf13/cobra" + "github.com/kubetail-org/kubetail/modules/shared/helm" + "github.com/kubetail-org/kubetail/modules/cli/internal/cli" - "github.com/kubetail-org/kubetail/modules/cli/internal/helm" ) const clusterInstallHelp = ` diff --git a/modules/cli/cmd/cluster_list.go b/modules/cli/cmd/cluster_list.go index 02d68712..ac906740 100644 --- a/modules/cli/cmd/cluster_list.go +++ b/modules/cli/cmd/cluster_list.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -21,8 +21,9 @@ import ( "github.com/spf13/cobra" + "github.com/kubetail-org/kubetail/modules/shared/helm" + "github.com/kubetail-org/kubetail/modules/cli/internal/cli" - "github.com/kubetail-org/kubetail/modules/cli/internal/helm" ) const clusterListHelp = ` diff --git a/modules/cli/cmd/cluster_repo.go b/modules/cli/cmd/cluster_repo.go index 760715c5..3890d2c3 100644 --- a/modules/cli/cmd/cluster_repo.go +++ b/modules/cli/cmd/cluster_repo.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/modules/cli/cmd/cluster_repo_add.go b/modules/cli/cmd/cluster_repo_add.go index 4b664430..c93548cf 100644 --- a/modules/cli/cmd/cluster_repo_add.go +++ b/modules/cli/cmd/cluster_repo_add.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -19,8 +19,9 @@ import ( "github.com/spf13/cobra" + "github.com/kubetail-org/kubetail/modules/shared/helm" + "github.com/kubetail-org/kubetail/modules/cli/internal/cli" - "github.com/kubetail-org/kubetail/modules/cli/internal/helm" ) const clusterRepoAddHelp = ` diff --git a/modules/cli/cmd/cluster_repo_remove.go b/modules/cli/cmd/cluster_repo_remove.go index a3f9af10..2e34ae45 100644 --- a/modules/cli/cmd/cluster_repo_remove.go +++ b/modules/cli/cmd/cluster_repo_remove.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -19,8 +19,9 @@ import ( "github.com/spf13/cobra" + "github.com/kubetail-org/kubetail/modules/shared/helm" + "github.com/kubetail-org/kubetail/modules/cli/internal/cli" - "github.com/kubetail-org/kubetail/modules/cli/internal/helm" ) const clusterRepoRemoveHelp = ` diff --git a/modules/cli/cmd/cluster_repo_update.go b/modules/cli/cmd/cluster_repo_update.go index 1bd366ca..683969c4 100644 --- a/modules/cli/cmd/cluster_repo_update.go +++ b/modules/cli/cmd/cluster_repo_update.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -19,8 +19,9 @@ import ( "github.com/spf13/cobra" + "github.com/kubetail-org/kubetail/modules/shared/helm" + "github.com/kubetail-org/kubetail/modules/cli/internal/cli" - "github.com/kubetail-org/kubetail/modules/cli/internal/helm" ) const clusterRepoUpdateHelp = ` diff --git a/modules/cli/cmd/cluster_uninstall.go b/modules/cli/cmd/cluster_uninstall.go index 3bf2a7db..b4a4ce8c 100644 --- a/modules/cli/cmd/cluster_uninstall.go +++ b/modules/cli/cmd/cluster_uninstall.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -19,8 +19,9 @@ import ( "github.com/spf13/cobra" + "github.com/kubetail-org/kubetail/modules/shared/helm" + "github.com/kubetail-org/kubetail/modules/cli/internal/cli" - "github.com/kubetail-org/kubetail/modules/cli/internal/helm" ) const clusterUninstallHelp = ` diff --git a/modules/cli/cmd/cluster_upgrade.go b/modules/cli/cmd/cluster_upgrade.go index e5742b56..67de3b90 100644 --- a/modules/cli/cmd/cluster_upgrade.go +++ b/modules/cli/cmd/cluster_upgrade.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -19,8 +19,9 @@ import ( "github.com/spf13/cobra" + "github.com/kubetail-org/kubetail/modules/shared/helm" + "github.com/kubetail-org/kubetail/modules/cli/internal/cli" - "github.com/kubetail-org/kubetail/modules/cli/internal/helm" ) const clusterUpgradeHelp = ` diff --git a/modules/cli/cmd/root.go b/modules/cli/cmd/root.go index b5b10039..d3ce671d 100644 --- a/modules/cli/cmd/root.go +++ b/modules/cli/cmd/root.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/modules/cli/cmd/serve.go b/modules/cli/cmd/serve.go index 77f6f562..7dddbaac 100644 --- a/modules/cli/cmd/serve.go +++ b/modules/cli/cmd/serve.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -31,8 +31,8 @@ import ( "github.com/spf13/cobra" "github.com/spf13/viper" - "github.com/kubetail-org/kubetail/modules/common/config" - "github.com/kubetail-org/kubetail/modules/server/pkg/ginapp" + "github.com/kubetail-org/kubetail/modules/dashboard/pkg/app" + "github.com/kubetail-org/kubetail/modules/shared/config" "github.com/kubetail-org/kubetail/modules/cli/internal/tunnel" ) @@ -68,8 +68,8 @@ var serveCmd = &cobra.Command{ // Init viper v := viper.New() - v.BindPFlag("server.logging.level", cmd.Flags().Lookup("log-level")) - v.Set("server.addr", fmt.Sprintf("%s:%d", host, port)) + v.BindPFlag("dashboard.logging.level", cmd.Flags().Lookup("log-level")) + v.Set("dashboard.addr", fmt.Sprintf("%s:%d", host, port)) // init config cfg, err := config.NewConfig(v, "") @@ -77,14 +77,14 @@ var serveCmd = &cobra.Command{ zlog.Fatal().Caller().Err(err).Send() } - cfg.AuthMode = config.AuthModeLocal - cfg.Server.Logging.AccessLog.Enabled = false + cfg.Dashboard.Environment = config.EnvironmentDesktop + cfg.Dashboard.Logging.AccessLog.Enabled = false secret, err := generateRandomString(32) if err != nil { zlog.Fatal().Caller().Err(err).Send() } - cfg.Server.CSRF.Secret = secret + cfg.Dashboard.CSRF.Secret = secret // set gin mode gin.SetMode("release") @@ -92,7 +92,7 @@ var serveCmd = &cobra.Command{ // configure logger config.ConfigureLogger(config.LoggerOptions{ Enabled: true, - Level: cfg.Server.Logging.Level, + Level: cfg.Dashboard.Logging.Level, Format: "pretty", }) @@ -103,14 +103,14 @@ var serveCmd = &cobra.Command{ } // create app - app, err := ginapp.NewGinApp(cfg) + app, err := app.NewApp(cfg) if err != nil { zlog.Fatal().Caller().Err(err).Send() } // create server server := http.Server{ - Addr: cfg.Server.Addr, + Addr: cfg.Dashboard.Addr, Handler: app, IdleTimeout: 1 * time.Minute, ReadTimeout: 5 * time.Second, @@ -192,7 +192,7 @@ func serveRemote(localPort int, skipOpen bool) { signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM) defer close(quit) - tunnel, err := tunnel.NewTunnel("kubetail-system", "kubetail-server", 7500, localPort) + tunnel, err := tunnel.NewTunnel("kubetail-system", "kubetail-dashboard", 80, localPort) if err != nil { zlog.Fatal().Err(err).Send() } diff --git a/modules/cli/go.mod b/modules/cli/go.mod index 204d63c8..b2c37759 100644 --- a/modules/cli/go.mod +++ b/modules/cli/go.mod @@ -1,74 +1,74 @@ module github.com/kubetail-org/kubetail/modules/cli -go 1.22.7 +go 1.23.0 -replace github.com/kubetail-org/kubetail/modules/server => ../server +toolchain go1.23.4 -replace github.com/kubetail-org/kubetail/modules/common => ../common +replace github.com/kubetail-org/kubetail/modules/dashboard => ../dashboard + +replace github.com/kubetail-org/kubetail/modules/shared => ../shared require ( github.com/gin-gonic/gin v1.10.0 - github.com/kubetail-org/kubetail/modules/common v0.0.0-00010101000000-000000000000 - github.com/kubetail-org/kubetail/modules/server v0.0.0-00010101000000-000000000000 + github.com/kubetail-org/kubetail/modules/dashboard v0.0.0-00010101000000-000000000000 + github.com/kubetail-org/kubetail/modules/shared v0.0.0-00010101000000-000000000000 github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c github.com/rs/zerolog v1.33.0 github.com/spf13/cobra v1.8.1 github.com/spf13/viper v1.19.0 - helm.sh/helm/v3 v3.16.2 - k8s.io/apimachinery v0.31.1 - k8s.io/client-go v0.31.1 + k8s.io/apimachinery v0.32.0 + k8s.io/client-go v0.32.0 ) require ( dario.cat/mergo v1.0.1 // indirect - github.com/99designs/gqlgen v0.17.55 // indirect - github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 // indirect - github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 // indirect - github.com/BurntSushi/toml v1.3.2 // indirect + github.com/99designs/gqlgen v0.17.63 // indirect + github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 // indirect + github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect + github.com/BurntSushi/toml v1.4.0 // indirect github.com/MakeNowJust/heredoc v1.0.0 // indirect github.com/Masterminds/goutils v1.1.1 // indirect - github.com/Masterminds/semver/v3 v3.3.0 // indirect + github.com/Masterminds/semver/v3 v3.3.1 // indirect github.com/Masterminds/sprig/v3 v3.3.0 // indirect github.com/Masterminds/squirrel v1.5.4 // indirect - github.com/Microsoft/hcsshim v0.11.4 // indirect github.com/agnivade/levenshtein v1.2.0 // indirect github.com/asaskevich/EventBus v0.0.0-20200907212545-49d423059eef // indirect github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/blang/semver/v4 v4.0.0 // indirect - github.com/bytedance/sonic v1.12.2 // indirect - github.com/bytedance/sonic/loader v0.2.0 // indirect + github.com/bytedance/sonic v1.12.7 // indirect + github.com/bytedance/sonic/loader v0.2.3 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/chai2010/gettext-go v1.0.2 // indirect + github.com/chai2010/gettext-go v1.0.3 // indirect github.com/cloudwego/base64x v0.1.4 // indirect - github.com/cloudwego/iasm v0.2.0 // indirect - github.com/containerd/containerd v1.7.12 // indirect + github.com/containerd/containerd v1.7.25 // indirect + github.com/containerd/errdefs v1.0.0 // indirect github.com/containerd/log v0.1.0 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect - github.com/cyphar/filepath-securejoin v0.3.1 // indirect + github.com/containerd/platforms v0.2.1 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.6 // indirect + github.com/cyphar/filepath-securejoin v0.4.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/deckarep/golang-set/v2 v2.6.0 // indirect - github.com/distribution/reference v0.5.0 // indirect - github.com/docker/cli v25.0.1+incompatible // indirect + github.com/distribution/reference v0.6.0 // indirect + github.com/docker/cli v27.5.0+incompatible // indirect github.com/docker/distribution v2.8.3+incompatible // indirect - github.com/docker/docker v25.0.6+incompatible // indirect - github.com/docker/docker-credential-helpers v0.7.0 // indirect + github.com/docker/docker v27.5.0+incompatible // indirect + github.com/docker/docker-credential-helpers v0.8.2 // indirect github.com/docker/go-connections v0.5.0 // indirect github.com/docker/go-metrics v0.0.1 // indirect github.com/emicklei/go-restful/v3 v3.12.1 // indirect github.com/evanphx/json-patch v5.9.0+incompatible // indirect - github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d // indirect - github.com/fatih/color v1.14.1 // indirect + github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f // indirect + github.com/fatih/color v1.18.0 // indirect github.com/felixge/httpsnoop v1.0.4 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect github.com/fxamacker/cbor/v2 v2.7.0 // indirect - github.com/gabriel-vasile/mimetype v1.4.5 // indirect - github.com/gin-contrib/gzip v1.0.1 // indirect - github.com/gin-contrib/requestid v1.0.3 // indirect - github.com/gin-contrib/secure v1.1.0 // indirect - github.com/gin-contrib/sessions v1.0.1 // indirect - github.com/gin-contrib/sse v0.1.0 // indirect - github.com/go-errors/errors v1.4.2 // indirect + github.com/gabriel-vasile/mimetype v1.4.8 // indirect + github.com/gin-contrib/gzip v1.2.0 // indirect + github.com/gin-contrib/requestid v1.0.4 // indirect + github.com/gin-contrib/secure v1.1.1 // indirect + github.com/gin-contrib/sessions v1.0.2 // indirect + github.com/gin-contrib/sse v1.0.0 // indirect + github.com/go-errors/errors v1.5.1 // indirect github.com/go-gorp/gorp/v3 v3.1.0 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect @@ -77,56 +77,55 @@ require ( github.com/go-openapi/swag v0.23.0 // indirect github.com/go-playground/locales v0.14.1 // indirect github.com/go-playground/universal-translator v0.18.1 // indirect - github.com/go-playground/validator/v10 v10.22.1 // indirect + github.com/go-playground/validator/v10 v10.24.0 // indirect + github.com/go-viper/mapstructure/v2 v2.2.1 // indirect github.com/gobwas/glob v0.2.3 // indirect - github.com/goccy/go-json v0.10.3 // indirect + github.com/goccy/go-json v0.10.4 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/protobuf v1.5.4 // indirect - github.com/google/btree v1.0.1 // indirect - github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49 // indirect + github.com/google/btree v1.1.3 // indirect + github.com/google/gnostic-models v0.6.9 // indirect github.com/google/go-cmp v0.6.0 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect github.com/google/uuid v1.6.0 // indirect github.com/gorilla/context v1.1.2 // indirect github.com/gorilla/csrf v1.7.2 // indirect - github.com/gorilla/mux v1.8.0 // indirect + github.com/gorilla/mux v1.8.1 // indirect github.com/gorilla/securecookie v1.1.2 // indirect - github.com/gorilla/sessions v1.2.2 // indirect - github.com/gorilla/websocket v1.5.1 // indirect + github.com/gorilla/sessions v1.4.0 // indirect + github.com/gorilla/websocket v1.5.3 // indirect github.com/gosuri/uitable v0.0.4 // indirect - github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 // indirect + github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect github.com/gwatts/gin-adapter v1.0.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect github.com/hashicorp/hcl v1.0.0 // indirect github.com/huandu/xstrings v1.5.0 // indirect - github.com/imdario/mergo v0.3.16 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/jmoiron/sqlx v1.4.0 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect - github.com/klauspost/compress v1.17.7 // indirect - github.com/klauspost/cpuid/v2 v2.2.8 // indirect - github.com/kubetail-org/grpc-dispatcher-go v0.0.2 // indirect + github.com/klauspost/compress v1.17.11 // indirect + github.com/klauspost/cpuid/v2 v2.2.9 // indirect github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 // indirect github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 // indirect github.com/leodido/go-urn v1.4.0 // indirect github.com/lib/pq v1.10.9 // indirect github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect - github.com/magiconair/properties v1.8.7 // indirect - github.com/mailru/easyjson v0.7.7 // indirect - github.com/mattn/go-colorable v0.1.13 // indirect + github.com/magiconair/properties v1.8.9 // indirect + github.com/mailru/easyjson v0.9.0 // indirect + github.com/mattn/go-colorable v0.1.14 // indirect github.com/mattn/go-isatty v0.0.20 // indirect - github.com/mattn/go-runewidth v0.0.9 // indirect + github.com/mattn/go-runewidth v0.0.16 // indirect github.com/mitchellh/copystructure v1.2.0 // indirect github.com/mitchellh/go-wordwrap v1.0.1 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/mitchellh/reflectwalk v1.0.2 // indirect github.com/moby/locker v1.0.1 // indirect - github.com/moby/spdystream v0.4.0 // indirect - github.com/moby/term v0.5.0 // indirect + github.com/moby/spdystream v0.5.0 // indirect + github.com/moby/term v0.5.2 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.2 // indirect github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 // indirect @@ -137,71 +136,72 @@ require ( github.com/pelletier/go-toml/v2 v2.2.3 // indirect github.com/peterbourgon/diskv v2.0.1+incompatible // indirect github.com/pkg/errors v0.9.1 // indirect - github.com/prometheus/client_golang v1.19.1 // indirect + github.com/prometheus/client_golang v1.20.5 // indirect github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.55.0 // indirect + github.com/prometheus/common v0.61.0 // indirect github.com/prometheus/procfs v0.15.1 // indirect - github.com/rubenv/sql-migrate v1.7.0 // indirect + github.com/rivo/uniseg v0.4.7 // indirect + github.com/rubenv/sql-migrate v1.7.1 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect - github.com/sagikazarmark/locafero v0.4.0 // indirect + github.com/sagikazarmark/locafero v0.7.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/shopspring/decimal v1.4.0 // indirect github.com/sirupsen/logrus v1.9.3 // indirect github.com/sosodev/duration v1.3.1 // indirect github.com/sourcegraph/conc v0.3.0 // indirect - github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.7.0 // indirect + github.com/spf13/afero v1.12.0 // indirect + github.com/spf13/cast v1.7.1 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/subosito/gotenv v1.6.0 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect github.com/ugorji/go/codec v1.2.12 // indirect - github.com/urfave/cli/v2 v2.27.4 // indirect - github.com/vektah/gqlparser/v2 v2.5.17 // indirect + github.com/urfave/cli/v2 v2.27.5 // indirect + github.com/vektah/gqlparser/v2 v2.5.21 // indirect github.com/x448/float16 v0.8.4 // indirect github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect github.com/xeipuuv/gojsonschema v1.2.0 // indirect github.com/xlab/treeprint v1.2.0 // indirect github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 // indirect - go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 // indirect - go.opentelemetry.io/otel v1.28.0 // indirect - go.opentelemetry.io/otel/metric v1.28.0 // indirect - go.opentelemetry.io/otel/trace v1.28.0 // indirect - go.starlark.net v0.0.0-20230525235612-a134d8f9ddca // indirect + go.opentelemetry.io/auto/sdk v1.1.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 // indirect + go.opentelemetry.io/otel v1.33.0 // indirect + go.opentelemetry.io/otel/metric v1.33.0 // indirect + go.opentelemetry.io/otel/trace v1.33.0 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/arch v0.9.0 // indirect - golang.org/x/crypto v0.27.0 // indirect - golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8 // indirect - golang.org/x/mod v0.20.0 // indirect - golang.org/x/net v0.29.0 // indirect - golang.org/x/oauth2 v0.23.0 // indirect - golang.org/x/sync v0.8.0 // indirect - golang.org/x/sys v0.25.0 // indirect - golang.org/x/term v0.24.0 // indirect - golang.org/x/text v0.18.0 // indirect - golang.org/x/time v0.6.0 // indirect - golang.org/x/tools v0.24.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240924160255-9d4c2d233b61 // indirect - google.golang.org/grpc v1.67.1 // indirect - google.golang.org/protobuf v1.34.2 // indirect + golang.org/x/arch v0.13.0 // indirect + golang.org/x/crypto v0.32.0 // indirect + golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 // indirect + golang.org/x/mod v0.22.0 // indirect + golang.org/x/net v0.34.0 // indirect + golang.org/x/oauth2 v0.25.0 // indirect + golang.org/x/sync v0.10.0 // indirect + golang.org/x/sys v0.29.0 // indirect + golang.org/x/term v0.28.0 // indirect + golang.org/x/text v0.21.0 // indirect + golang.org/x/time v0.9.0 // indirect + golang.org/x/tools v0.29.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250106144421-5f5ef82da422 // indirect + google.golang.org/grpc v1.69.4 // indirect + google.golang.org/protobuf v1.36.2 // indirect gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect - gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/api v0.31.1 // indirect - k8s.io/apiextensions-apiserver v0.31.1 // indirect - k8s.io/apiserver v0.31.1 // indirect - k8s.io/cli-runtime v0.31.1 // indirect - k8s.io/component-base v0.31.1 // indirect + helm.sh/helm/v3 v3.16.4 // indirect + k8s.io/api v0.32.0 // indirect + k8s.io/apiextensions-apiserver v0.32.0 // indirect + k8s.io/apiserver v0.32.0 // indirect + k8s.io/cli-runtime v0.32.0 // indirect + k8s.io/component-base v0.32.0 // indirect k8s.io/klog/v2 v2.130.1 // indirect - k8s.io/kube-openapi v0.0.0-20240903163716-9e1beecbcb38 // indirect - k8s.io/kubectl v0.31.1 // indirect - k8s.io/utils v0.0.0-20240921022957-49e7df575cb6 // indirect - oras.land/oras-go v1.2.5 // indirect - sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect - sigs.k8s.io/kustomize/api v0.17.2 // indirect - sigs.k8s.io/kustomize/kyaml v0.17.1 // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect + k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7 // indirect + k8s.io/kubectl v0.32.0 // indirect + k8s.io/utils v0.0.0-20241210054802-24370beab758 // indirect + oras.land/oras-go v1.2.6 // indirect + sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect + sigs.k8s.io/kustomize/api v0.19.0 // indirect + sigs.k8s.io/kustomize/kyaml v0.19.0 // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.5.0 // indirect sigs.k8s.io/yaml v1.4.0 // indirect ) diff --git a/modules/cli/go.sum b/modules/cli/go.sum index b51ad0c1..42e2531d 100644 --- a/modules/cli/go.sum +++ b/modules/cli/go.sum @@ -1,35 +1,31 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s= dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= -github.com/99designs/gqlgen v0.17.55 h1:3vzrNWYyzSZjGDFo68e5j9sSauLxfKvLp+6ioRokVtM= -github.com/99designs/gqlgen v0.17.55/go.mod h1:3Bq768f8hgVPGZxL8aY9MaYmbxa6llPM/qu1IGH1EJo= -github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU= -github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= -github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1 h1:UQHMgLO+TxOElx5B5HZ4hJQsoJ/PvUvKRhJHDQXO8P8= -github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/toml v1.3.2 h1:o7IhLm0Msx3BaB+n3Ag7L8EVlByGnpq14C4YWiu/gL8= -github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/99designs/gqlgen v0.17.63 h1:HCdaYDPd9HqUXRchEvmE3EFzELRwLlaJ8DBuyC8Cqto= +github.com/99designs/gqlgen v0.17.63/go.mod h1:sVCM2iwIZisJjTI/DEC3fpH+HFgxY1496ZJ+jbT9IjA= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 h1:He8afgbRMd7mFxO99hRNu+6tazq8nFF9lIwo9JFroBk= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= +github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c h1:udKWzYgxTojEKWjV8V+WSxDXJ4NFATAsZjh8iIbsQIg= +github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= +github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= github.com/DATA-DOG/go-sqlmock v1.5.2 h1:OcvFkGmslmlZibjAjaHm3L//6LiuBgolP7OputlJIzU= github.com/DATA-DOG/go-sqlmock v1.5.2/go.mod h1:88MAG/4G7SMwSE3CeA0ZKzrT5CiOU3OJ+JlNzwDqpNU= github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ= github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= -github.com/Masterminds/semver/v3 v3.3.0 h1:B8LGeaivUe71a5qox1ICM/JLl0NqZSW5CHyL+hmvYS0= -github.com/Masterminds/semver/v3 v3.3.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= +github.com/Masterminds/semver/v3 v3.3.1 h1:QtNSWtVZ3nBfk8mAOu/B6v7FMJ+NHTIgUPi7rj+4nv4= +github.com/Masterminds/semver/v3 v3.3.1/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= github.com/Masterminds/sprig/v3 v3.3.0 h1:mQh0Yrg1XPo6vjYXgtf5OtijNAKJRNcTdOOGZe3tPhs= github.com/Masterminds/sprig/v3 v3.3.0/go.mod h1:Zy1iXRYNqNLUolqCpL4uhk6SHUMAOSCzdgBfDb35Lz0= github.com/Masterminds/squirrel v1.5.4 h1:uUcX/aBc8O7Fg9kaISIUsHXdKuqehiXAMQTYX8afzqM= github.com/Masterminds/squirrel v1.5.4/go.mod h1:NNaOrjSoIDfDA40n7sr2tPNZRfjzjA400rg+riTZj10= -github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= -github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= -github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8= -github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w= -github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d h1:UrqY+r/OJnIp5u0s1SbQ8dVfLCZJsnvazdBP5hS4iRs= -github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= +github.com/Microsoft/hcsshim v0.11.7 h1:vl/nj3Bar/CvJSYo7gIQPyRWc9f3c6IeSNavBTSZNZQ= +github.com/Microsoft/hcsshim v0.11.7/go.mod h1:MV8xMfmECjl5HdO7U/3/hFVnkmSBjAjmA09d4bExKcU= github.com/agnivade/levenshtein v1.2.0 h1:U9L4IOT0Y3i0TIlUIDJ7rVUziKi/zPbrJGaFrtYH3SY= github.com/agnivade/levenshtein v1.2.0/go.mod h1:QVVI16kDrtSuwcpd0p1+xMC6Z/VfhtCyDIjcwga4/DU= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= @@ -52,70 +48,63 @@ github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= github.com/bshuster-repo/logrus-logstash-hook v1.0.0 h1:e+C0SB5R1pu//O4MQ3f9cFuPGoOVeF2fE4Og9otCc70= github.com/bshuster-repo/logrus-logstash-hook v1.0.0/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk= -github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd h1:rFt+Y/IK1aEZkEHchZRSq9OQbsSzIT/OrI8YFFmRIng= -github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8= -github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b h1:otBG+dV+YK+Soembjv71DPz3uX/V/6MMlSyD9JBQ6kQ= -github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b/go.mod h1:obH5gd0BsqsP2LwDJ9aOkm/6J86V6lyAXCoQWGw3K50= -github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0 h1:nvj0OLI3YqYXer/kZD8Ri1aaunCxIEsOst1BVJswV0o= -github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE= -github.com/bytedance/sonic v1.12.2 h1:oaMFuRTpMHYLpCntGca65YWt5ny+wAceDERTkT2L9lg= -github.com/bytedance/sonic v1.12.2/go.mod h1:B8Gt/XvtZ3Fqj+iSKMypzymZxw/FVwgIGKzMzT9r/rk= +github.com/bytedance/sonic v1.12.7 h1:CQU8pxOy9HToxhndH0Kx/S1qU/CuS9GnKYrGioDcU1Q= +github.com/bytedance/sonic v1.12.7/go.mod h1:tnbal4mxOMju17EGfknm2XyYcpyCnIROYOEYuemj13I= github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= -github.com/bytedance/sonic/loader v0.2.0 h1:zNprn+lsIP06C/IqCHs3gPQIvnvpKbbxyXQP1iU4kWM= -github.com/bytedance/sonic/loader v0.2.0/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= +github.com/bytedance/sonic/loader v0.2.3 h1:yctD0Q3v2NOGfSWPLPvG2ggA2kV6TS6s4wioyEqssH0= +github.com/bytedance/sonic/loader v0.2.3/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/chai2010/gettext-go v1.0.2 h1:1Lwwip6Q2QGsAdl/ZKPCwTe9fe0CjlUbqj5bFNSjIRk= -github.com/chai2010/gettext-go v1.0.2/go.mod h1:y+wnP2cHYaVj19NZhYKAwEMH2CI1gNHeQQ+5AjwawxA= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= +github.com/chai2010/gettext-go v1.0.3 h1:9liNh8t+u26xl5ddmWLmsOsdNLwkdRTg5AG+JnTiM80= +github.com/chai2010/gettext-go v1.0.3/go.mod h1:y+wnP2cHYaVj19NZhYKAwEMH2CI1gNHeQQ+5AjwawxA= github.com/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/0Y= github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= -github.com/cloudwego/iasm v0.2.0 h1:1KNIy1I1H9hNNFEEH3DVnI4UujN+1zjpuk6gwHLTssg= github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw= -github.com/containerd/containerd v1.7.12 h1:+KQsnv4VnzyxWcfO9mlxxELaoztsDEjOuCMPAuPqgU0= -github.com/containerd/containerd v1.7.12/go.mod h1:/5OMpE1p0ylxtEUGY8kuCYkDRzJm9NO1TFMWjUpdevk= -github.com/containerd/continuity v0.4.2 h1:v3y/4Yz5jwnvqPKJJ+7Wf93fyWoCB3F5EclWG023MDM= -github.com/containerd/continuity v0.4.2/go.mod h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ/7o4JzpodfroQ= +github.com/containerd/containerd v1.7.25 h1:khEQOAXOEJalRO228yzVsuASLH42vT7DIo9Ss+9SMFQ= +github.com/containerd/containerd v1.7.25/go.mod h1:tWfHzVI0azhw4CT2vaIjsb2CoV4LJ9PrMPaULAr21Ok= +github.com/containerd/continuity v0.4.4 h1:/fNVfTJ7wIl/YPMHjf+5H32uFhl63JucB34PlCpMKII= +github.com/containerd/continuity v0.4.4/go.mod h1:/lNJvtJKUQStBzpVQ1+rasXO1LAWtUQssk28EZvJ3nE= +github.com/containerd/errdefs v1.0.0 h1:tg5yIfIlQIrxYtu9ajqY42W3lpS19XqdxRQeEwYG8PI= +github.com/containerd/errdefs v1.0.0/go.mod h1:+YBYIdtsnF4Iw6nWZhJcqGSg/dwvV7tyJ/kCkyJ2k+M= github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= +github.com/containerd/platforms v0.2.1 h1:zvwtM3rz2YHPQsF2CHYM8+KtB5dvhISiXh5ZpSBQv6A= +github.com/containerd/platforms v0.2.1/go.mod h1:XHCb+2/hzowdiut9rkudds9bE5yJ7npe7dG/wG+uFPw= github.com/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4= github.com/coreos/go-semver v0.3.1/go.mod h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec= github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.6 h1:XJtiaUW6dEEqVuZiMTn1ldk455QWwEIsMIJlo5vtkx0= +github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= -github.com/cyphar/filepath-securejoin v0.3.1 h1:1V7cHiaW+C+39wEfpH6XlLBQo3j/PciWFrgfCLS8XrE= -github.com/cyphar/filepath-securejoin v0.3.1/go.mod h1:F7i41x/9cBF7lzCrVsYs9fuzwRZm4NQsGTBdpp6mETc= +github.com/cyphar/filepath-securejoin v0.4.0 h1:PioTG9TBRSApBpYGnDU8HC+miIsX8vitBH9LGNNMoLQ= +github.com/cyphar/filepath-securejoin v0.4.0/go.mod h1:Sdj7gXlvMcPZsbhwhQ33GguGLDGQL7h7bg04C/+u9jI= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= -github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= github.com/dgryski/trifles v0.0.0-20230903005119-f50d829f2e54 h1:SG7nF6SRlWhcT7cNTs5R6Hk4V2lcmLz2NsG2VnInyNo= github.com/dgryski/trifles v0.0.0-20230903005119-f50d829f2e54/go.mod h1:if7Fbed8SFyPtHLHbg49SI7NAdJiC5WIA09pe59rfAA= -github.com/distribution/distribution/v3 v3.0.0-20221208165359-362910506bc2 h1:aBfCb7iqHmDEIp6fBvC/hQUddQfg+3qdYjwzaiP9Hnc= -github.com/distribution/distribution/v3 v3.0.0-20221208165359-362910506bc2/go.mod h1:WHNsWjnIn2V1LYOrME7e8KxSeKunYHsxEm4am0BUtcI= -github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= -github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/cli v25.0.1+incompatible h1:mFpqnrS6Hsm3v1k7Wa/BO23oz0k121MTbTO1lpcGSkU= -github.com/docker/cli v25.0.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/distribution/distribution/v3 v3.0.0-beta.1 h1:X+ELTxPuZ1Xe5MsD3kp2wfGUhc8I+MPfRis8dZ818Ic= +github.com/distribution/distribution/v3 v3.0.0-beta.1/go.mod h1:O9O8uamhHzWWQVTjuQpyYUVm/ShPHPUDgvQMpHGVBDs= +github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= +github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= +github.com/docker/cli v27.5.0+incompatible h1:aMphQkcGtpHixwwhAXJT1rrK/detk2JIvDaFkLctbGM= +github.com/docker/cli v27.5.0+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk= github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= -github.com/docker/docker v25.0.6+incompatible h1:5cPwbwriIcsua2REJe8HqQV+6WlWc1byg2QSXzBxBGg= -github.com/docker/docker v25.0.6+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= -github.com/docker/docker-credential-helpers v0.7.0 h1:xtCHsjxogADNZcdv1pKUHXryefjlVRqWqIhk/uXJp0A= -github.com/docker/docker-credential-helpers v0.7.0/go.mod h1:rETQfLdHNT3foU5kuNkFR1R1V12OJRRO5lzt2D1b5X0= +github.com/docker/docker v27.5.0+incompatible h1:um++2NcQtGRTz5eEgO6aJimo6/JxrTXC941hd05JO6U= +github.com/docker/docker v27.5.0+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker-credential-helpers v0.8.2 h1:bX3YxiGzFP5sOXWc3bTPEXdEaZSeVMrFgOr3T+zrFAo= +github.com/docker/docker-credential-helpers v0.8.2/go.mod h1:P3ci7E3lwkZg6XiHdRKft1KckHiO9a2rNtyFbZ/ry9M= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c h1:+pKlWGMw7gf6bQ+oDZB4KHQFypsfjYlq/C4rfL7D3g8= @@ -128,40 +117,38 @@ github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkp github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= github.com/emicklei/go-restful/v3 v3.12.1 h1:PJMDIM/ak7btuL8Ex0iYET9hxM3CI2sjZtzpL63nKAU= github.com/emicklei/go-restful/v3 v3.12.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/evanphx/json-patch v5.9.0+incompatible h1:fBXyNpNMuTTDdquAq/uisOr2lShz4oaXpDTX2bLe7ls= github.com/evanphx/json-patch v5.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= -github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d h1:105gxyaGwCFad8crR9dcMQWvV9Hvulu6hwUh4tWPJnM= -github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= -github.com/fatih/color v1.14.1 h1:qfhVLaG5s+nCROl1zJsZRxFeYrHLqWroPOQ8BWiNb4w= -github.com/fatih/color v1.14.1/go.mod h1:2oHN61fhTpgcxD3TSWCgKDiH1+x4OiDVVGH8WlgGZGg= +github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f h1:Wl78ApPPB2Wvf/TIe2xdyJxTlb6obmF18d8QdkxNDu4= +github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f/go.mod h1:OSYXu++VVOHnXeitef/D8n/6y4QV8uLHSFXX4NeXMGc= +github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= +github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= github.com/foxcpp/go-mockdns v1.1.0 h1:jI0rD8M0wuYAxL7r/ynTrCQQq0BVqfB99Vgk7DlmewI= github.com/foxcpp/go-mockdns v1.1.0/go.mod h1:IhLeSFGed3mJIAXPH2aiRQB+kqz7oqu8ld2qVbOu7Wk= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= -github.com/gabriel-vasile/mimetype v1.4.5 h1:J7wGKdGu33ocBOhGy0z653k/lFKLFDPJMG8Gql0kxn4= -github.com/gabriel-vasile/mimetype v1.4.5/go.mod h1:ibHel+/kbxn9x2407k1izTA1S81ku1z/DlgOW2QE0M4= -github.com/gin-contrib/gzip v1.0.1 h1:HQ8ENHODeLY7a4g1Au/46Z92bdGFl74OhxcZble9WJE= -github.com/gin-contrib/gzip v1.0.1/go.mod h1:njt428fdUNRvjuJf16tZMYZ2Yl+WQB53X5wmhDwXvC4= -github.com/gin-contrib/requestid v1.0.3 h1:NB6SF0Te4Ikn8mW2K4tegpm2WGuB3bWj4wnWaM4oSAA= -github.com/gin-contrib/requestid v1.0.3/go.mod h1:VQd5IntEAH79uEt8FRoGpqiDWTKqjbRbSnmpNHXSsKs= -github.com/gin-contrib/secure v1.1.0 h1:wy/psCWbgUBDCLH13KgB/m06NHXb1jczSTRp+H2hK7E= -github.com/gin-contrib/secure v1.1.0/go.mod h1:LtEfyy326NRwgkUq8ac6npf845L0L9B8yfEaLcxMHIc= -github.com/gin-contrib/sessions v1.0.1 h1:3hsJyNs7v7N8OtelFmYXFrulAf6zSR7nW/putcPEHxI= -github.com/gin-contrib/sessions v1.0.1/go.mod h1:ouxSFM24/OgIud5MJYQJLpy6AwxQ5EYO9yLhbtObGkM= -github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= -github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= +github.com/gabriel-vasile/mimetype v1.4.8 h1:FfZ3gj38NjllZIeJAmMhr+qKL8Wu+nOoI3GqacKw1NM= +github.com/gabriel-vasile/mimetype v1.4.8/go.mod h1:ByKUIKGjh1ODkGM1asKUbQZOLGrPjydw3hYPU2YU9t8= +github.com/gin-contrib/gzip v1.2.0 h1:JzN6DT3/xYL5zAdviN1ORNzKeklrwafXCIDKIR+qmUA= +github.com/gin-contrib/gzip v1.2.0/go.mod h1:C1a5cacjlDsS20cKnHlZRCPUu57D3qH6B2pV0rl+Y/s= +github.com/gin-contrib/requestid v1.0.4 h1:h9u+YSCMgrDcn2QlHn9c6P/Zwy4WdXqZLFTmlIAJWpA= +github.com/gin-contrib/requestid v1.0.4/go.mod h1:2/3cAmLKQ9E2Pr1IrSPR7K8AWiJORo0hLvs0keKsMJw= +github.com/gin-contrib/secure v1.1.1 h1:q1AGANrYRhJYYHZCF0VH/NVvP0uOSMXmXbsaqWRgIEQ= +github.com/gin-contrib/secure v1.1.1/go.mod h1:4IhY8OTLEAI3R7qZF1ya4y75WowL8MJ09i2Kunl83HE= +github.com/gin-contrib/sessions v1.0.2 h1:UaIjUvTH1cMeOdj3in6dl+Xb6It8RiKRF9Z1anbUyCA= +github.com/gin-contrib/sessions v1.0.2/go.mod h1:KxKxWqWP5LJVDCInulOl4WbLzK2KSPlLesfZ66wRvMs= +github.com/gin-contrib/sse v1.0.0 h1:y3bT1mUWUxDpW4JLQg/HnTqV4rozuW4tC9eFKTxYI9E= +github.com/gin-contrib/sse v1.0.0/go.mod h1:zNuFdwarAygJBht0NTKiSi3jRf6RbqeILZ9Sp6Slhe0= github.com/gin-gonic/gin v1.10.0 h1:nTuyha1TYqgedzytsKYqna+DfLos46nTv2ygFy86HFU= github.com/gin-gonic/gin v1.10.0/go.mod h1:4PMNQiOhvDRa013RKVbsiNwoyezlm2rm0uX/T7kzp5Y= -github.com/go-errors/errors v1.4.2 h1:J6MZopCL4uSllY1OfXM374weqZFFItUbrImctkmUxIA= -github.com/go-errors/errors v1.4.2/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= +github.com/go-errors/errors v1.5.1 h1:ZwEMSLRCapFLflTpT7NKaAc7ukJ8ZPEjzlxt8rPN8bk= +github.com/go-errors/errors v1.5.1/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= github.com/go-gorp/gorp/v3 v3.1.0 h1:ItKF/Vbuj31dmV4jxA1qblpSwkl9g1typ24xoe70IGs= github.com/go-gorp/gorp/v3 v3.1.0/go.mod h1:dLEjIyyRNiXvNZ8PSmzpt1GsWAUK8kjVhEpjH8TixEw= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= @@ -184,58 +171,45 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.22.1 h1:40JcKH+bBNGFczGuoBYgX4I6m/i27HYW8P9FDk5PbgA= -github.com/go-playground/validator/v10 v10.22.1/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= +github.com/go-playground/validator/v10 v10.24.0 h1:KHQckvo8G6hlWnrPX4NJJ+aBfWNAE/HH+qdL2cBpCmg= +github.com/go-playground/validator/v10 v10.24.0/go.mod h1:GGzBIJMuE98Ic/kJsBXbz1x/7cByt++cQ+YOuDM5wus= github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= +github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss= +github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= -github.com/goccy/go-json v0.10.3 h1:KZ5WoDbxAIgm2HNbYckL0se1fHD6rz5j4ywS6ebzDqA= -github.com/goccy/go-json v0.10.3/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= +github.com/goccy/go-json v0.10.4 h1:JSwxQzIqKfmFX1swYPpUThQZp/Ka4wzJdK0LWVytLPM= +github.com/goccy/go-json v0.10.4/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= -github.com/gomodule/redigo v2.0.0+incompatible h1:K/R+8tc58AaqLkqG2Ol3Qk+DR/TlNuhuh457pBFPtt0= -github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= -github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= -github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= -github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49 h1:0VpGH+cDhbDtdcweoyCVsF3fhN8kejK6rFe/2FFX2nU= -github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49/go.mod h1:BkkQ4L1KS1xMt2aWSPStnn55ChGC0DPOn2FQYj+f25M= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg= +github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= +github.com/google/gnostic-models v0.6.9 h1:MU/8wDLif2qCXZmzncUQ/BOfxWfthHi63KqpoNbWqVw= +github.com/google/gnostic-models v0.6.9/go.mod h1:CiWsm0s6BSQd1hRn8/QmxqB6BesYcbSZxsz9b0KuDBw= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20240727154555-813a5fbdbec8 h1:FKHo8hFI3A+7w0aUQuYXQ+6EN5stWmeY/AZqtM8xk9k= -github.com/google/pprof v0.0.0-20240727154555-813a5fbdbec8/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo= +github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo= +github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= @@ -244,20 +218,20 @@ github.com/gorilla/context v1.1.2 h1:WRkNAv2uoa03QNIc1A6u4O7DAGMUVoopZhkiXWA2V1o github.com/gorilla/context v1.1.2/go.mod h1:KDPwT9i/MeWHiLl90fuTgrt4/wPcv75vFAZLaOOcbxM= github.com/gorilla/csrf v1.7.2 h1:oTUjx0vyf2T+wkrx09Trsev1TE+/EbDAeHtSTbtC2eI= github.com/gorilla/csrf v1.7.2/go.mod h1:F1Fj3KG23WYHE6gozCmBAezKookxbIvUJT+121wTuLk= -github.com/gorilla/handlers v1.5.1 h1:9lRY6j8DEeeBT10CvO9hGW0gmky0BprnvDI5vfhUHH4= -github.com/gorilla/handlers v1.5.1/go.mod h1:t8XrUpc4KVXb7HGyJ4/cEnwQiaxrX/hz1Zv/4g96P1Q= -github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= -github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= +github.com/gorilla/handlers v1.5.2 h1:cLTUSsNkgcwhgRqvCNmdbRWG0A3N4F+M2nWKdScwyEE= +github.com/gorilla/handlers v1.5.2/go.mod h1:dX+xVpaxdSw+q0Qek8SSsl3dfMk3jNddUkMzo0GtH0w= +github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= +github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= github.com/gorilla/securecookie v1.1.2 h1:YCIWL56dvtr73r6715mJs5ZvhtnY73hBvEF8kXD8ePA= github.com/gorilla/securecookie v1.1.2/go.mod h1:NfCASbcHqRSY+3a8tlWJwsQap2VX5pwzwo4h3eOamfo= -github.com/gorilla/sessions v1.2.2 h1:lqzMYz6bOfvn2WriPUjNByzeXIlVzURcPmgMczkmTjY= -github.com/gorilla/sessions v1.2.2/go.mod h1:ePLdVu+jbEgHH+KWw8I1z2wqd0BAdAQh/8LRvBeoNcQ= -github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= -github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= +github.com/gorilla/sessions v1.4.0 h1:kpIYOp/oi6MG/p5PgxApU8srsSw9tuFbt46Lt7auzqQ= +github.com/gorilla/sessions v1.4.0/go.mod h1:FLWm50oby91+hl7p/wRxDth9bWSuk0qVL2emc7lT5ik= +github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= +github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gosuri/uitable v0.0.4 h1:IG2xLKRvErL3uhY6e1BylFzG+aJiwQviDDTfOKeKTpY= github.com/gosuri/uitable v0.0.4/go.mod h1:tKR86bXuXPZazfOTG1FIzvjIdXzd0mo4Vtn16vt0PJo= -github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7 h1:pdN6V1QBWetyv/0+wjACpqVH+eVULgEjkurDLq3goeM= -github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= +github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA= +github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= @@ -274,21 +248,20 @@ github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brv github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc= -github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/hashicorp/golang-lru/arc/v2 v2.0.5 h1:l2zaLDubNhW4XO3LnliVj0GXO3+/CGNJAg1dcN2Fpfw= +github.com/hashicorp/golang-lru/arc/v2 v2.0.5/go.mod h1:ny6zBSQZi2JxIeYcv7kt2sH2PXJtirBN7RDhRpxPkxU= github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/huandu/xstrings v1.5.0 h1:2ag3IFq9ZDANvthTwTiqSSZLjDc+BedvHPAp5tJy2TI= github.com/huandu/xstrings v1.5.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= -github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= -github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/jmoiron/sqlx v1.4.0 h1:1PLqN7S1UYp5t4SrVVnt4nUVNemrDAtxlulVe+Qgm3o= github.com/jmoiron/sqlx v1.4.0/go.mod h1:ZrZ7UsYB/weZdl2Bxg6jCRO9c3YHl8r3ahlKmRT4JLY= -github.com/jonboulle/clockwork v0.2.2 h1:UOGuzwb1PwsrDAObMuhUnj0p5ULPj8V/xJ7Kx9qUBdQ= -github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= +github.com/jonboulle/clockwork v0.4.0 h1:p4Cf1aMWXnXAUh8lVfewRBx1zaTSYKrKMF2g3ST4RZ4= +github.com/jonboulle/clockwork v0.4.0/go.mod h1:xgRqUGwRcjKCO1vbZUEtSLrqKoPSsUpK7fnezOII0kc= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= @@ -298,11 +271,11 @@ github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHm github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.17.7 h1:ehO88t2UGzQK66LMdE8tibEd1ErmzZjNEqWkjLAKQQg= -github.com/klauspost/compress v1.17.7/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.2.8 h1:+StwCXwm9PdpiEkPyzBXIy+M9KUb4ODm0Zarf1kS5BM= -github.com/klauspost/cpuid/v2 v2.2.8/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= +github.com/klauspost/cpuid/v2 v2.2.9 h1:66ze0taIn2H33fBvCkXuv9BmCwDfafmiIVpKV9kKGuY= +github.com/klauspost/cpuid/v2 v2.2.9/go.mod h1:rqkxqrZ1EhYM9G+hXH7YdowN5R5RGN6NK4QwQ3WMXF8= github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= @@ -310,8 +283,8 @@ github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/kubetail-org/grpc-dispatcher-go v0.0.2 h1:ho+RffttK2Wdq99lJG+wUDJe+pmSTLSrrXCOgxQAvlg= -github.com/kubetail-org/grpc-dispatcher-go v0.0.2/go.mod h1:UHbHIp00DcCyOV0P/bd3PUQ77uQEGOICVp2D7Ikk1Fs= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 h1:SOEGU9fKiNWd/HOJuq6+3iTQz8KNCLtVX6idSoTLdUw= github.com/lann/builder v0.0.0-20180802200727-47ae307949d0/go.mod h1:dXGbAdH5GtBTC4WfIxhKZfyBF/HBFgRZSWwZ9g/He9o= github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 h1:P6pPBnrTSX3DEVR4fDembhRWSsG5rVo6hYhAB/ADZrk= @@ -322,18 +295,19 @@ github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0= github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= -github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= -github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= -github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= -github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= -github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/magiconair/properties v1.8.9 h1:nWcCbLq1N2v/cpNsy5WvQ37Fb+YElfq20WJ/a8RkpQM= +github.com/magiconair/properties v1.8.9/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4= +github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= +github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0= -github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI= +github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc= +github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU= github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= @@ -349,12 +323,14 @@ github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zx github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg= github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc= -github.com/moby/spdystream v0.4.0 h1:Vy79D6mHeJJjiPdFEL2yku1kl0chZpJfZcPpb16BRl8= -github.com/moby/spdystream v0.4.0/go.mod h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI= +github.com/moby/spdystream v0.5.0 h1:7r0J1Si3QO/kjRitvSLVVFUjxMEb/YLj6S9FF62JBCU= +github.com/moby/spdystream v0.5.0/go.mod h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI= github.com/moby/sys/mountinfo v0.6.2 h1:BzJjoreD5BMFNmD9Rus6gdd1pLuecOFPt8wC+Vygl78= github.com/moby/sys/mountinfo v0.6.2/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI= -github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= -github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= +github.com/moby/sys/userns v0.1.0 h1:tVLXkFOxVu9A64/yh59slHVv9ahO9UIev4JZusOLG/g= +github.com/moby/sys/userns v0.1.0/go.mod h1:IHUYgu/kao6N8YZlp9Cf444ySSvCmDlmzUcYfDHOl28= +github.com/moby/term v0.5.2 h1:6qk3FJAFDs6i/q3W/pQ97SX192qKfZgGjCQqfCJkgzQ= +github.com/moby/term v0.5.2/go.mod h1:d3djjFCrjnB+fl8NJux+EJzu0msscUP+f8it8hPkFLc= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -369,10 +345,10 @@ github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8m github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus= github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= -github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA= -github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To= -github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= -github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= +github.com/onsi/ginkgo/v2 v2.21.0 h1:7rg/4f3rB88pb5obDgNZrNHrQ4e6WpjonchcpuBRnZM= +github.com/onsi/ginkgo/v2 v2.21.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo= +github.com/onsi/gomega v1.35.1 h1:Cwbd75ZBPxFSuZ6T+rN/WCb/gOc6YgFBXLlZLhC7Ds4= +github.com/onsi/gomega v1.35.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog= github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= @@ -396,33 +372,41 @@ github.com/poy/onpar v1.1.2/go.mod h1:6X8FLNoxyr9kkmnlqpK6LSoiOtrO6MICtWwEuWkLjz github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= -github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= -github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= -github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc= -github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8= +github.com/prometheus/common v0.61.0 h1:3gv/GThfX0cV2lpO7gkTUwZru38mxevy90Bj8YFSRQQ= +github.com/prometheus/common v0.61.0/go.mod h1:zr29OCN/2BsJRaFwG8QOBr41D6kkchKbpeNH7pAjb/s= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= +github.com/redis/go-redis/extra/rediscmd/v9 v9.0.5 h1:EaDatTxkdHG+U3Bk4EUr+DZ7fOGwTfezUiUJMaIcaho= +github.com/redis/go-redis/extra/rediscmd/v9 v9.0.5/go.mod h1:fyalQWdtzDBECAQFBJuQe5bzQ02jGd5Qcbgb97Flm7U= +github.com/redis/go-redis/extra/redisotel/v9 v9.0.5 h1:EfpWLLCyXw8PSM2/XNJLjI3Pb27yVE+gIAfeqp8LUCc= +github.com/redis/go-redis/extra/redisotel/v9 v9.0.5/go.mod h1:WZjPDy7VNzn77AAfnAfVjZNvfJTYfPetfZk5yoSTLaQ= +github.com/redis/go-redis/v9 v9.1.0 h1:137FnGdk+EQdCbye1FW+qOEcY5S+SpY9T0NiuqvtfMY= +github.com/redis/go-redis/v9 v9.1.0/go.mod h1:urWj3He21Dj5k4TK1y59xH8Uj6ATueP8AH1cY3lZl4c= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= +github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= -github.com/rubenv/sql-migrate v1.7.0 h1:HtQq1xyTN2ISmQDggnh0c9U3JlP8apWh8YO2jzlXpTI= -github.com/rubenv/sql-migrate v1.7.0/go.mod h1:S4wtDEG1CKn+0ShpTtzWhFpHHI5PvCUtiGI+C+Z2THE= +github.com/rubenv/sql-migrate v1.7.1 h1:f/o0WgfO/GqNuVg+6801K/KW3WdDSupzSjDYODmiUq4= +github.com/rubenv/sql-migrate v1.7.1/go.mod h1:Ob2Psprc0/3ggbM6wCzyYVFFuc6FyZrb2AS+ezLDFb4= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ= -github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4= +github.com/sagikazarmark/locafero v0.7.0 h1:5MqpDsTGNDhY8sGp0Aowyf0qKsPrhewaLSsFaodPcyo= +github.com/sagikazarmark/locafero v0.7.0/go.mod h1:2za3Cg5rMaTMoG/2Ulr9AwtFaIppKXTRYnozin4aB5k= github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= @@ -438,10 +422,10 @@ github.com/sosodev/duration v1.3.1 h1:qtHBDMQ6lvMQsL15g4aopM4HEfOaYuhWBw3NPTtlqq github.com/sosodev/duration v1.3.1/go.mod h1:RQIBBX0+fMLc/D9+Jb/fwvVmo0eZvDDEERAikUR6SDg= github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= -github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= -github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= -github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= -github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/afero v1.12.0 h1:UcOPyRBYczmFn6yvphxkn9ZEOY65cpwGKb5mL36mrqs= +github.com/spf13/afero v1.12.0/go.mod h1:ZTlWwG4/ahT8W7T0WQ5uYmjI9duaLQGy3Q2OAl4sk/4= +github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y= +github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= @@ -456,12 +440,14 @@ github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75 h1:6fotK7otjonDflCTK0BCfls4SPy3NcCVb5dqqmbRknE= @@ -470,10 +456,10 @@ github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE= github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= -github.com/urfave/cli/v2 v2.27.4 h1:o1owoI+02Eb+K107p27wEX9Bb8eqIoZCfLXloLUSWJ8= -github.com/urfave/cli/v2 v2.27.4/go.mod h1:m4QzxcD2qpra4z7WhzEGn74WZLViBnMpb1ToCAKdGRQ= -github.com/vektah/gqlparser/v2 v2.5.17 h1:9At7WblLV7/36nulgekUgIaqHZWn5hxqluxrxGUhOmI= -github.com/vektah/gqlparser/v2 v2.5.17/go.mod h1:1lz1OeCqgQbQepsGxPVywrjdBHW2T08PUS3pJqepRww= +github.com/urfave/cli/v2 v2.27.5 h1:WoHEJLdsXr6dDWoJgMq/CboDmyY/8HMMH1fTECbih+w= +github.com/urfave/cli/v2 v2.27.5/go.mod h1:3Sevf16NykTbInEnD0yKkjDAeZDS0A6bzhBH5hrMvTQ= +github.com/vektah/gqlparser/v2 v2.5.21 h1:Zw1rG2dr1pRR4wqwbVq4d6+xk2f4ut/yo+hwr4QjE08= +github.com/vektah/gqlparser/v2 v2.5.21/go.mod h1:xMl+ta8a5M1Yo1A1Iwt/k7gSpscwSnHZdw7tfhEGfTM= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= @@ -483,171 +469,147 @@ github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHo github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/xiang90/probing v0.0.0-20221125231312-a49e3df8f510 h1:S2dVYn90KE98chqDkyE9Z4N61UnQd+KOfgp5Iu53llk= +github.com/xiang90/probing v0.0.0-20221125231312-a49e3df8f510/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= github.com/xlab/treeprint v1.2.0 h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ= github.com/xlab/treeprint v1.2.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0= github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4= github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43 h1:+lm10QQTNSBd8DVTNGHx7o/IKu9HYDvLMffDhbyLccI= -github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs= -github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50 h1:hlE8//ciYMztlGpl/VA+Zm1AcTPHYkHJPbHqE6WJUXE= -github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA= -github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f h1:ERexzlUfuTvpE74urLSbIQW0Z/6hF9t8U4NsJLaioAY= -github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg= -go.etcd.io/bbolt v1.3.9 h1:8x7aARPEXiXbHmtUwAIv7eV2fQFHrLLavdiJ3uzJXoI= -go.etcd.io/bbolt v1.3.9/go.mod h1:zaO32+Ti0PK1ivdPtgMESzuzL2VPoIG1PCQNvOdo/dE= -go.etcd.io/etcd/api/v3 v3.5.14 h1:vHObSCxyB9zlF60w7qzAdTcGaglbJOpSj1Xj9+WGxq0= -go.etcd.io/etcd/api/v3 v3.5.14/go.mod h1:BmtWcRlQvwa1h3G2jvKYwIQy4PkHlDej5t7uLMUdJUU= -go.etcd.io/etcd/client/pkg/v3 v3.5.14 h1:SaNH6Y+rVEdxfpA2Jr5wkEvN6Zykme5+YnbCkxvuWxQ= -go.etcd.io/etcd/client/pkg/v3 v3.5.14/go.mod h1:8uMgAokyG1czCtIdsq+AGyYQMvpIKnSvPjFMunkgeZI= -go.etcd.io/etcd/client/v2 v2.305.13 h1:RWfV1SX5jTU0lbCvpVQe3iPQeAHETWdOTb6pxhd77C8= -go.etcd.io/etcd/client/v2 v2.305.13/go.mod h1:iQnL7fepbiomdXMb3om1rHq96htNNGv2sJkEcZGDRRg= -go.etcd.io/etcd/client/v3 v3.5.14 h1:CWfRs4FDaDoSz81giL7zPpZH2Z35tbOrAJkkjMqOupg= -go.etcd.io/etcd/client/v3 v3.5.14/go.mod h1:k3XfdV/VIHy/97rqWjoUzrj9tk7GgJGH9J8L4dNXmAk= -go.etcd.io/etcd/pkg/v3 v3.5.13 h1:st9bDWNsKkBNpP4PR1MvM/9NqUPfvYZx/YXegsYEH8M= -go.etcd.io/etcd/pkg/v3 v3.5.13/go.mod h1:N+4PLrp7agI/Viy+dUYpX7iRtSPvKq+w8Y14d1vX+m0= -go.etcd.io/etcd/raft/v3 v3.5.13 h1:7r/NKAOups1YnKcfro2RvGGo2PTuizF/xh26Z2CTAzA= -go.etcd.io/etcd/raft/v3 v3.5.13/go.mod h1:uUFibGLn2Ksm2URMxN1fICGhk8Wu96EfDQyuLhAcAmw= -go.etcd.io/etcd/server/v3 v3.5.13 h1:V6KG+yMfMSqWt+lGnhFpP5z5dRUj1BDRJ5k1fQ9DFok= -go.etcd.io/etcd/server/v3 v3.5.13/go.mod h1:K/8nbsGupHqmr5MkgaZpLlH1QdX1pcNQLAkODy44XcQ= +go.etcd.io/bbolt v1.3.11 h1:yGEzV1wPz2yVCLsD8ZAiGHhHVlczyC9d1rP43/VCRJ0= +go.etcd.io/bbolt v1.3.11/go.mod h1:dksAq7YMXoljX0xu6VF5DMZGbhYYoLUalEiSySYAS4I= +go.etcd.io/etcd/api/v3 v3.5.16 h1:WvmyJVbjWqK4R1E+B12RRHz3bRGy9XVfh++MgbN+6n0= +go.etcd.io/etcd/api/v3 v3.5.16/go.mod h1:1P4SlIP/VwkDmGo3OlOD7faPeP8KDIFhqvciH5EfN28= +go.etcd.io/etcd/client/pkg/v3 v3.5.16 h1:ZgY48uH6UvB+/7R9Yf4x574uCO3jIx0TRDyetSfId3Q= +go.etcd.io/etcd/client/pkg/v3 v3.5.16/go.mod h1:V8acl8pcEK0Y2g19YlOV9m9ssUe6MgiDSobSoaBAM0E= +go.etcd.io/etcd/client/v2 v2.305.16 h1:kQrn9o5czVNaukf2A2At43cE9ZtWauOtf9vRZuiKXow= +go.etcd.io/etcd/client/v2 v2.305.16/go.mod h1:h9YxWCzcdvZENbfzBTFCnoNumr2ax3F19sKMqHFmXHE= +go.etcd.io/etcd/client/v3 v3.5.16 h1:sSmVYOAHeC9doqi0gv7v86oY/BTld0SEFGaxsU9eRhE= +go.etcd.io/etcd/client/v3 v3.5.16/go.mod h1:X+rExSGkyqxvu276cr2OwPLBaeqFu1cIl4vmRjAD/50= +go.etcd.io/etcd/pkg/v3 v3.5.16 h1:cnavs5WSPWeK4TYwPYfmcr3Joz9BH+TZ6qoUtz6/+mc= +go.etcd.io/etcd/pkg/v3 v3.5.16/go.mod h1:+lutCZHG5MBBFI/U4eYT5yL7sJfnexsoM20Y0t2uNuY= +go.etcd.io/etcd/raft/v3 v3.5.16 h1:zBXA3ZUpYs1AwiLGPafYAKKl/CORn/uaxYDwlNwndAk= +go.etcd.io/etcd/raft/v3 v3.5.16/go.mod h1:P4UP14AxofMJ/54boWilabqqWoW9eLodl6I5GdGzazI= +go.etcd.io/etcd/server/v3 v3.5.16 h1:d0/SAdJ3vVsZvF8IFVb1k8zqMZ+heGcNfft71ul9GWE= +go.etcd.io/etcd/server/v3 v3.5.16/go.mod h1:ynhyZZpdDp1Gq49jkUg5mfkDWZwXnn3eIqCqtJnrD/s= go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0 h1:9G6E0TXzGFVfTnawRzrPl83iHOAV7L8NJiR8RSGYV1g= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0/go.mod h1:azvtTADFQJA8mX80jIH/akaE7h+dbm/sVuaHqN13w74= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 h1:4K4tsIXefpVJtvA/8srF4V4y0akAoPHkIslgAkjixJA= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0/go.mod h1:jjdQuTGVsXV4vSs+CJ2qYDeDPf9yIJV23qlIzBm73Vg= -go.opentelemetry.io/otel v1.28.0 h1:/SqNcYk+idO0CxKEUOtKQClMK/MimZihKYMruSMViUo= -go.opentelemetry.io/otel v1.28.0/go.mod h1:q68ijF8Fc8CnMHKyzqL6akLO46ePnjkgfIMIjUIX9z4= +go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= +go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= +go.opentelemetry.io/contrib/exporters/autoexport v0.46.1 h1:ysCfPZB9AjUlMa1UHYup3c9dAOCMQX/6sxSfPBUoxHw= +go.opentelemetry.io/contrib/exporters/autoexport v0.46.1/go.mod h1:ha0aiYm+DOPsLHjh0zoQ8W8sLT+LJ58J3j47lGpSLrU= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0 h1:r6I7RJCN86bpD/FQwedZ0vSixDpwuWREjW9oRMsmqDc= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0/go.mod h1:B9yO6b04uB80CzjedvewuqDhxJxi11s7/GtiGa8bAjI= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 h1:yd02MEjBdJkG3uabWP9apV+OuWRIXGDuJEUJbOHmCFU= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0/go.mod h1:umTcuxiv1n/s/S6/c2AT/g2CQ7u5C59sHDNmfSwgz7Q= +go.opentelemetry.io/otel v1.33.0 h1:/FerN9bax5LoK51X/sI0SVYrjSE0/yUL7DpxW4K3FWw= +go.opentelemetry.io/otel v1.33.0/go.mod h1:SUUkR6csvUQl+yjReHu5uM3EtVV7MBm5FHKRlNx4I8I= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.44.0 h1:jd0+5t/YynESZqsSyPz+7PAFdEop0dlN0+PkyHYo8oI= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.44.0/go.mod h1:U707O40ee1FpQGyhvqnzmCJm1Wh6OX6GGBVn0E6Uyyk= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.44.0 h1:bflGWrfYyuulcdxf14V6n9+CoQcu5SAAdHmDPAJnlps= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.44.0/go.mod h1:qcTO4xHAxZLaLxPd60TdE88rxtItPHgHWqOhOGRr0as= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.28.0 h1:3Q/xZUyC1BBkualc9ROb4G8qkH90LXEIICcs5zv1OYY= go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.28.0/go.mod h1:s75jGIWA9OfCMzF0xr+ZgfrB5FEbbV7UuYo32ahUiFI= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 h1:qFffATk0X+HD+f1Z8lswGiOQYKHRlzfmdJm0wEaVrFA= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0/go.mod h1:MOiCmryaYtc+V0Ei+Tx9o5S1ZjA7kzLucuVuyzBZloQ= -go.opentelemetry.io/otel/metric v1.28.0 h1:f0HGvSl1KRAU1DLgLGFjrwVyismPlnuU6JD6bOeuA5Q= -go.opentelemetry.io/otel/metric v1.28.0/go.mod h1:Fb1eVBFZmLVTMb6PPohq3TO9IIhUisDsbJoL/+uQW4s= -go.opentelemetry.io/otel/sdk v1.28.0 h1:b9d7hIry8yZsgtbmM0DKyPWMMUMlK9NEKuIG4aBqWyE= -go.opentelemetry.io/otel/sdk v1.28.0/go.mod h1:oYj7ClPUA7Iw3m+r7GeEjz0qckQRJK2B8zjcZEfu7Pg= -go.opentelemetry.io/otel/trace v1.28.0 h1:GhQ9cUuQGmNDd5BTCP2dAvv75RdMxEfTmYejp+lkx9g= -go.opentelemetry.io/otel/trace v1.28.0/go.mod h1:jPyXzNPg6da9+38HEwElrQiHlVMTnVfM3/yv2OlIHaI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.21.0 h1:digkEZCJWobwBqMwC0cwCq8/wkkRy/OowZg5OArWZrM= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.21.0/go.mod h1:/OpE/y70qVkndM0TrxT4KBoN3RsFZP0QaofcfYrj76I= +go.opentelemetry.io/otel/exporters/prometheus v0.44.0 h1:08qeJgaPC0YEBu2PQMbqU3rogTlyzpjhCI2b58Yn00w= +go.opentelemetry.io/otel/exporters/prometheus v0.44.0/go.mod h1:ERL2uIeBtg4TxZdojHUwzZfIFlUIjZtxubT5p4h1Gjg= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.29.0 h1:WDdP9acbMYjbKIyJUhTvtzj601sVJOqgWdUxSdR/Ysc= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.29.0/go.mod h1:BLbf7zbNIONBLPwvFnwNHGj4zge8uTCM/UPIVW1Mq2I= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.21.0 h1:VhlEQAPp9R1ktYfrPk5SOryw1e9LDDTZCbIPFrho0ec= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.21.0/go.mod h1:kB3ufRbfU+CQ4MlUcqtW8Z7YEOBeK2DJ6CmR5rYYF3E= +go.opentelemetry.io/otel/metric v1.33.0 h1:r+JOocAyeRVXD8lZpjdQjzMadVZp2M4WmQ+5WtEnklQ= +go.opentelemetry.io/otel/metric v1.33.0/go.mod h1:L9+Fyctbp6HFTddIxClbQkjtubW6O9QS3Ann/M82u6M= +go.opentelemetry.io/otel/sdk v1.31.0 h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk= +go.opentelemetry.io/otel/sdk v1.31.0/go.mod h1:TfRbMdhvxIIr/B2N2LQW2S5v9m3gOQ/08KsbbO5BPT0= +go.opentelemetry.io/otel/sdk/metric v1.31.0 h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4JjxTeYusH7zMc= +go.opentelemetry.io/otel/sdk/metric v1.31.0/go.mod h1:CRInTMVvNhUKgSAMbKyTMxqOBC0zgyxzW55lZzX43Y8= +go.opentelemetry.io/otel/trace v1.33.0 h1:cCJuF7LRjUFso9LPnEAHJDB2pqzp+hbO8eu1qqW2d/s= +go.opentelemetry.io/otel/trace v1.33.0/go.mod h1:uIcdVUZMpTAmz0tI1z04GoVSezK37CbGV4fr1f2nBck= go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= -go.starlark.net v0.0.0-20230525235612-a134d8f9ddca h1:VdD38733bfYv5tUZwEIskMM93VanwNIi5bIKnDrJdEY= -go.starlark.net v0.0.0-20230525235612-a134d8f9ddca/go.mod h1:jxU+3+j+71eXOW14274+SmmuW82qJzl6iZSeqEtTGds= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo= -go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so= -golang.org/x/arch v0.9.0 h1:ub9TgUInamJ8mrZIGlBG6/4TqWeMszd4N8lNorbrr6k= -golang.org/x/arch v0.9.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= +go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= +go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= +golang.org/x/arch v0.13.0 h1:KCkqVVV1kGg0X87TFysjCJ8MxtZEIU4Ja/yXGeoECdA= +golang.org/x/arch v0.13.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A= -golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8 h1:aAcj0Da7eBAtrTp03QXWvm88pSyOt+UgdZw2BFZ+lEw= -golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8/go.mod h1:CQ1k9gNrJ50XIzaKCRR2hssIjF07kZFEiieALBM/ARQ= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc= +golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= +golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 h1:yqrTHse8TCMW1M1ZCP+VAR/l0kKxwaAIqN/il7x4voA= +golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8/go.mod h1:tujkw807nyEEAamNbDrEGzRav+ilXA7PCRAd6xsmwiU= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.20.0 h1:utOm6MM3R3dnawAiJgn0y+xvuYRsm1RKM/4giyfDgV0= -golang.org/x/mod v0.20.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= +golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo= -golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= -golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= +golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= +golang.org/x/oauth2 v0.25.0 h1:CY4y7XT9v0cRI9oupztF8AgiIu99L/ksR/Xp/6jrZ70= +golang.org/x/oauth2 v0.25.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= -golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= -golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.24.0 h1:Mh5cbb+Zk2hqqXNO7S1iTjEphVL+jb8ZWaqh/g+JWkM= -golang.org/x/term v0.24.0/go.mod h1:lOBK/LVxemqiMij05LGJ0tzNr8xlmwBRJ81PX6wVLH8= +golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= +golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.28.0 h1:/Ts8HFuMR2E6IP/jlo7QVLZHggjKQbhu/7H0LJFr3Gg= +golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= -golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= -golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U= -golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= +golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY= +golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24= -golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ= +golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE= +golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 h1:9+tzLLstTlPTRyJTh+ah5wIMsBW5c4tQwGTN3thOW9Y= -google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:mqHbVIp48Muh7Ywss/AD6I5kNVKZMmAa/QEW58Gxp2s= -google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 h1:wKguEg1hsxI2/L3hUYrpo1RVi48K+uTyzKqprwLXsb8= -google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142/go.mod h1:d6be+8HhtEtucleCbxpPW9PA9XwISACu8nvpPqF0BVo= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240924160255-9d4c2d233b61 h1:N9BgCIAUvn/M+p4NJccWPWb3BWh88+zyL0ll9HgbEeM= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240924160255-9d4c2d233b61/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= -google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= -google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +google.golang.org/genproto v0.0.0-20241118233622-e639e219e697 h1:ToEetK57OidYuqD4Q5w+vfEnPvPpuTwedCNVohYJfNk= +google.golang.org/genproto v0.0.0-20241118233622-e639e219e697/go.mod h1:JJrvXBWRZaFMxBufik1a4RpFw4HhgVtBBWQeQgUj2cc= +google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 h1:CkkIfIt50+lT6NHAVoRYEyAvQGFM7xEwXUUywFvEb3Q= +google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576/go.mod h1:1R3kvZ1dtP3+4p4d3G8uJ8rFk/fWlScl38vanWACI08= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250106144421-5f5ef82da422 h1:3UsHvIr4Wc2aW4brOaSCmcxh9ksica6fHEr8P1XhkYw= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250106144421-5f5ef82da422/go.mod h1:3ENsm/5D1mzDyhpzeRi1NR784I0BcofWBoSc5QqqMK4= +google.golang.org/grpc v1.69.4 h1:MF5TftSMkd8GLw/m0KM6V8CMOCY6NZ1NQDPGFgbTt4A= +google.golang.org/grpc v1.69.4/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4= +google.golang.org/protobuf v1.36.2 h1:R8FeyR1/eLmkutZOM5CWghmo5itiG9z0ktFlTVLuTmU= +google.golang.org/protobuf v1.36.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= @@ -661,52 +623,49 @@ gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gotest.tools/v3 v3.4.0 h1:ZazjZUfuVeZGLAmlKKuyv3IKP5orXcwtOwDQH6YVr6o= -gotest.tools/v3 v3.4.0/go.mod h1:CtbdzLSsqVhDgMtKsx03ird5YTGB3ar27v0u/yKBW5g= -helm.sh/helm/v3 v3.16.2 h1:Y9v7ry+ubQmi+cb5zw1Llx8OKHU9Hk9NQ/+P+LGBe2o= -helm.sh/helm/v3 v3.16.2/go.mod h1:SyTXgKBjNqi2NPsHCW5dDAsHqvGIu0kdNYNH9gQaw70= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -k8s.io/api v0.31.1 h1:Xe1hX/fPW3PXYYv8BlozYqw63ytA92snr96zMW9gWTU= -k8s.io/api v0.31.1/go.mod h1:sbN1g6eY6XVLeqNsZGLnI5FwVseTrZX7Fv3O26rhAaI= -k8s.io/apiextensions-apiserver v0.31.1 h1:L+hwULvXx+nvTYX/MKM3kKMZyei+UiSXQWciX/N6E40= -k8s.io/apiextensions-apiserver v0.31.1/go.mod h1:tWMPR3sgW+jsl2xm9v7lAyRF1rYEK71i9G5dRtkknoQ= -k8s.io/apimachinery v0.31.1 h1:mhcUBbj7KUjaVhyXILglcVjuS4nYXiwC+KKFBgIVy7U= -k8s.io/apimachinery v0.31.1/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= -k8s.io/apiserver v0.31.1 h1:Sars5ejQDCRBY5f7R3QFHdqN3s61nhkpaX8/k1iEw1c= -k8s.io/apiserver v0.31.1/go.mod h1:lzDhpeToamVZJmmFlaLwdYZwd7zB+WYRYIboqA1kGxM= -k8s.io/cli-runtime v0.31.1 h1:/ZmKhmZ6hNqDM+yf9s3Y4KEYakNXUn5sod2LWGGwCuk= -k8s.io/cli-runtime v0.31.1/go.mod h1:pKv1cDIaq7ehWGuXQ+A//1OIF+7DI+xudXtExMCbe9U= -k8s.io/client-go v0.31.1 h1:f0ugtWSbWpxHR7sjVpQwuvw9a3ZKLXX0u0itkFXufb0= -k8s.io/client-go v0.31.1/go.mod h1:sKI8871MJN2OyeqRlmA4W4KM9KBdBUpDLu/43eGemCg= -k8s.io/component-base v0.31.1 h1:UpOepcrX3rQ3ab5NB6g5iP0tvsgJWzxTyAo20sgYSy8= -k8s.io/component-base v0.31.1/go.mod h1:WGeaw7t/kTsqpVTaCoVEtillbqAhF2/JgvO0LDOMa0w= +gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= +helm.sh/helm/v3 v3.16.4 h1:rBn/h9MACw+QlhxQTjpl8Ifx+VTWaYsw3rguGBYBzr0= +helm.sh/helm/v3 v3.16.4/go.mod h1:k8QPotUt57wWbi90w3LNmg3/MWcLPigVv+0/X4B8BzA= +k8s.io/api v0.32.0 h1:OL9JpbvAU5ny9ga2fb24X8H6xQlVp+aJMFlgtQjR9CE= +k8s.io/api v0.32.0/go.mod h1:4LEwHZEf6Q/cG96F3dqR965sYOfmPM7rq81BLgsE0p0= +k8s.io/apiextensions-apiserver v0.32.0 h1:S0Xlqt51qzzqjKPxfgX1xh4HBZE+p8KKBq+k2SWNOE0= +k8s.io/apiextensions-apiserver v0.32.0/go.mod h1:86hblMvN5yxMvZrZFX2OhIHAuFIMJIZ19bTvzkP+Fmw= +k8s.io/apimachinery v0.32.0 h1:cFSE7N3rmEEtv4ei5X6DaJPHHX0C+upp+v5lVPiEwpg= +k8s.io/apimachinery v0.32.0/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= +k8s.io/apiserver v0.32.0 h1:VJ89ZvQZ8p1sLeiWdRJpRD6oLozNZD2+qVSLi+ft5Qs= +k8s.io/apiserver v0.32.0/go.mod h1:HFh+dM1/BE/Hm4bS4nTXHVfN6Z6tFIZPi649n83b4Ag= +k8s.io/cli-runtime v0.32.0 h1:dP+OZqs7zHPpGQMCGAhectbHU2SNCuZtIimRKTv2T1c= +k8s.io/cli-runtime v0.32.0/go.mod h1:Mai8ht2+esoDRK5hr861KRy6z0zHsSTYttNVJXgP3YQ= +k8s.io/client-go v0.32.0 h1:DimtMcnN/JIKZcrSrstiwvvZvLjG0aSxy8PxN8IChp8= +k8s.io/client-go v0.32.0/go.mod h1:boDWvdM1Drk4NJj/VddSLnx59X3OPgwrOo0vGbtq9+8= +k8s.io/component-base v0.32.0 h1:d6cWHZkCiiep41ObYQS6IcgzOUQUNpywm39KVYaUqzU= +k8s.io/component-base v0.32.0/go.mod h1:JLG2W5TUxUu5uDyKiH2R/7NnxJo1HlPoRIIbVLkK5eM= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-openapi v0.0.0-20240903163716-9e1beecbcb38 h1:1dWzkmJrrprYvjGwh9kEUxmcUV/CtNU8QM7h1FLWQOo= -k8s.io/kube-openapi v0.0.0-20240903163716-9e1beecbcb38/go.mod h1:coRQXBK9NxO98XUv3ZD6AK3xzHCxV6+b7lrquKwaKzA= -k8s.io/kubectl v0.31.1 h1:ih4JQJHxsEggFqDJEHSOdJ69ZxZftgeZvYo7M/cpp24= -k8s.io/kubectl v0.31.1/go.mod h1:aNuQoR43W6MLAtXQ/Bu4GDmoHlbhHKuyD49lmTC8eJM= -k8s.io/utils v0.0.0-20240921022957-49e7df575cb6 h1:MDF6h2H/h4tbzmtIKTuctcwZmY0tY9mD9fNT47QO6HI= -k8s.io/utils v0.0.0-20240921022957-49e7df575cb6/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7 h1:hcha5B1kVACrLujCKLbr8XWMxCxzQx42DY8QKYJrDLg= +k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7/go.mod h1:GewRfANuJ70iYzvn+i4lezLDAFzvjxZYK1gn1lWcfas= +k8s.io/kubectl v0.32.0 h1:rpxl+ng9qeG79YA4Em9tLSfX0G8W0vfaiPVrc/WR7Xw= +k8s.io/kubectl v0.32.0/go.mod h1:qIjSX+QgPQUgdy8ps6eKsYNF+YmFOAO3WygfucIqFiE= +k8s.io/utils v0.0.0-20241210054802-24370beab758 h1:sdbE21q2nlQtFh65saZY+rRM6x6aJJI8IUa1AmH/qa0= +k8s.io/utils v0.0.0-20241210054802-24370beab758/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= -oras.land/oras-go v1.2.5 h1:XpYuAwAb0DfQsunIyMfeET92emK8km3W4yEzZvUbsTo= -oras.land/oras-go v1.2.5/go.mod h1:PuAwRShRZCsZb7g8Ar3jKKQR/2A/qN+pkYxIOd/FAoo= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.3 h1:2770sDpzrjjsAtVhSeUFseziht227YAWYHLGNM8QPwY= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.3/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw= -sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= -sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= -sigs.k8s.io/kustomize/api v0.17.2 h1:E7/Fjk7V5fboiuijoZHgs4aHuexi5Y2loXlVOAVAG5g= -sigs.k8s.io/kustomize/api v0.17.2/go.mod h1:UWTz9Ct+MvoeQsHcJ5e+vziRRkwimm3HytpZgIYqye0= -sigs.k8s.io/kustomize/kyaml v0.17.1 h1:TnxYQxFXzbmNG6gOINgGWQt09GghzgTP6mIurOgrLCQ= -sigs.k8s.io/kustomize/kyaml v0.17.1/go.mod h1:9V0mCjIEYjlXuCdYsSXvyoy2BTsLESH7TlGV81S282U= -sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= -sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= +oras.land/oras-go v1.2.6 h1:z8cmxQXBU8yZ4mkytWqXfo6tZcamPwjsuxYU81xJ8Lk= +oras.land/oras-go v1.2.6/go.mod h1:OVPc1PegSEe/K8YiLfosrlqlqTN9PUyFvOw5Y9gwrT8= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.0 h1:CPT0ExVicCzcpeN4baWEV2ko2Z/AsiZgEdwgcfwLgMo= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.0/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw= +sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= +sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= +sigs.k8s.io/kustomize/api v0.19.0 h1:F+2HB2mU1MSiR9Hp1NEgoU2q9ItNOaBJl0I4Dlus5SQ= +sigs.k8s.io/kustomize/api v0.19.0/go.mod h1:/BbwnivGVcBh1r+8m3tH1VNxJmHSk1PzP5fkP6lbL1o= +sigs.k8s.io/kustomize/kyaml v0.19.0 h1:RFge5qsO1uHhwJsu3ipV7RNolC7Uozc0jUBC/61XSlA= +sigs.k8s.io/kustomize/kyaml v0.19.0/go.mod h1:FeKD5jEOH+FbZPpqUghBP8mrLjJ3+zD3/rf9NNu1cwY= +sigs.k8s.io/structured-merge-diff/v4 v4.5.0 h1:nbCitCK2hfnhyiKo6uf2HxUPTCodY6Qaf85SbDIaMBk= +sigs.k8s.io/structured-merge-diff/v4 v4.5.0/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4= sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/modules/cli/internal/cli/cli.go b/modules/cli/internal/cli/cli.go index 83c6255c..70e63839 100644 --- a/modules/cli/internal/cli/cli.go +++ b/modules/cli/internal/cli/cli.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/modules/cli/internal/tunnel/tunnel.go b/modules/cli/internal/tunnel/tunnel.go index 079d8836..153f3cb3 100644 --- a/modules/cli/internal/tunnel/tunnel.go +++ b/modules/cli/internal/tunnel/tunnel.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -24,11 +24,9 @@ import ( zlog "github.com/rs/zerolog/log" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/client-go/kubernetes" + "k8s.io/client-go/tools/clientcmd" "k8s.io/client-go/tools/portforward" "k8s.io/client-go/transport/spdy" - - "github.com/kubetail-org/kubetail/modules/common/config" - "github.com/kubetail-org/kubetail/modules/common/k8shelpers" ) // Represents local tunnel to remote service @@ -59,15 +57,18 @@ func (t *Tunnel) Shutdown(ctx context.Context) error { } func NewTunnel(namespace, serviceName string, remotePort, localPort int) (*Tunnel, error) { - cfg := config.DefaultConfig() - cfg.AuthMode = config.AuthModeLocal + kubeConfig, err := clientcmd.LoadFromFile(clientcmd.RecommendedHomeFile) + if err != nil { + return nil, err + } - k8sCfg, err := k8shelpers.Configure(cfg) + clientConfig := clientcmd.NewDefaultClientConfig(*kubeConfig, &clientcmd.ConfigOverrides{}) + restConfig, err := clientConfig.ClientConfig() if err != nil { return nil, err } - clientset, err := kubernetes.NewForConfig(k8sCfg) + clientset, err := kubernetes.NewForConfig(restConfig) if err != nil { return nil, err } @@ -107,7 +108,7 @@ func NewTunnel(namespace, serviceName string, remotePort, localPort int) (*Tunne SubResource("portforward"). URL() - roundTripper, upgrader, _ := spdy.RoundTripperFor(k8sCfg) + roundTripper, upgrader, _ := spdy.RoundTripperFor(restConfig) dialer := spdy.NewDialer(upgrader, &http.Client{Transport: roundTripper}, "POST", url) ports := []string{fmt.Sprintf("%d:%d", localPort, remotePort)} diff --git a/modules/cli/main.go b/modules/cli/main.go index 37fd55d4..6375368f 100644 --- a/modules/cli/main.go +++ b/modules/cli/main.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/modules/cluster-agent/README.md b/modules/cluster-agent/README.md new file mode 100644 index 00000000..5f4fc72b --- /dev/null +++ b/modules/cluster-agent/README.md @@ -0,0 +1,46 @@ +# Kubetail Cluster Agent + +Go-based gRPC service that runs on every node in a cluster and responds to requests from Kubetail Cluster API instances + +## Overview + +The Kubetail Cluster Agent is a small Go-based gRPC service that's designed to run on every node in a Kubernetes cluster and respond to node-specific requests from Kubetail Cluster API instances using gRPC. Currently, the agent returns real-time information about container log files such as file size and when the last event occurred. + +## Configure + +### CLI + +The Kubetail Cluster Agent executable supports the following command line configuration options: + +| Flag | Datatype | Description | Default | +| ------------ | -------- | -------------------------------- | -------- | +| -c, --config | string | Path to Kubetail config file | "" | +| -a, --addr | string | Host address to bind to | ":50051" | +| -p, --param | []string | Config params ("key:val" format) | [] | + +### Config params + +The Kubetail Cluster Agent can be configured using a configuration file written in YAML, JSON, TOML, HCL or envfile format. The application will automatically replace ENV variables written in the format `${NAME}` with their corresponding values. The config file supports the following options (also see [hack/config.yaml](../../hack/config.yaml)): + +| Name | Datatype | Description | Default | +| ---------------------------- | -------- | ---------------------------------------- | -------- | +| allowed-namespaces | []string | If populated, restricts namespace access | [] | +| cluser-agent.addr | string | Host address to bind to | ":50051" | +| cluser-agent.logging.enabled | bool | Enable logging | true | +| cluser-agent.logging.level | string | Log level | "info" | +| cluser-agent.logging.format | string | Log format (json, pretty) | "json" | +| cluser-agent.tls.enabled | bool | Enable TLS endpoint termination | false | +| cluser-agent.tls.cert-file | string | Path to cert file | "" | +| cluser-agent.tls.key-file | string | Path to key file | "" | + +## gRPC + +The Kubetail Cluster Agent implements the gRPC service `LogMetadataService` documented in [cluster_agent.proto](../../proto/cluster_agent.proto). + +## Test + +To run the test suite execute this command: + +```console +go test ./... +``` diff --git a/modules/agent/cmd/main.go b/modules/cluster-agent/cmd/main.go similarity index 79% rename from modules/agent/cmd/main.go rename to modules/cluster-agent/cmd/main.go index 77371f45..bb395fca 100644 --- a/modules/agent/cmd/main.go +++ b/modules/cluster-agent/cmd/main.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -29,12 +29,12 @@ import ( "github.com/spf13/viper" "google.golang.org/grpc/health" "google.golang.org/grpc/health/grpc_health_v1" + "k8s.io/client-go/rest" - "github.com/kubetail-org/kubetail/modules/agent/internal/server" - "github.com/kubetail-org/kubetail/modules/agent/internal/services/logmetadata" - "github.com/kubetail-org/kubetail/modules/common/agentpb" - "github.com/kubetail-org/kubetail/modules/common/config" - "github.com/kubetail-org/kubetail/modules/common/k8shelpers" + "github.com/kubetail-org/kubetail/modules/cluster-agent/internal/server" + "github.com/kubetail-org/kubetail/modules/cluster-agent/internal/services/logmetadata" + "github.com/kubetail-org/kubetail/modules/shared/clusteragentpb" + "github.com/kubetail-org/kubetail/modules/shared/config" ) type CLI struct { @@ -48,8 +48,8 @@ func main() { // init cobra command cmd := cobra.Command{ - Use: "kubetail-agent", - Short: "Kubetail Backend Agent", + Use: "cluster-agent", + Short: "Kubetail Cluster Agent", PreRunE: func(cmd *cobra.Command, args []string) error { // validate cli flags return validator.New().Struct(cli) @@ -62,7 +62,7 @@ func main() { // init viper v := viper.New() - v.BindPFlag("agent.addr", cmd.Flags().Lookup("addr")) + v.BindPFlag("cluster-agent.addr", cmd.Flags().Lookup("addr")) // override params from cli for _, param := range params { @@ -80,13 +80,13 @@ func main() { // configure logger config.ConfigureLogger(config.LoggerOptions{ - Enabled: cfg.Agent.Logging.Enabled, - Level: cfg.Agent.Logging.Level, - Format: cfg.Agent.Logging.Format, + Enabled: cfg.ClusterAgent.Logging.Enabled, + Level: cfg.ClusterAgent.Logging.Level, + Format: cfg.ClusterAgent.Logging.Format, }) // configure k8s - k8sCfg, err := k8shelpers.Configure(cfg) + k8sCfg, err := rest.InClusterConfig() if err != nil { zlog.Fatal().Caller().Err(err).Send() } @@ -98,13 +98,13 @@ func main() { } // init logmetadata service - svc, err := logmetadata.NewLogMetadataService(k8sCfg, os.Getenv("NODE_NAME"), cfg.Agent.ContainerLogsDir) + svc, err := logmetadata.NewLogMetadataService(k8sCfg, os.Getenv("NODE_NAME"), cfg.ClusterAgent.ContainerLogsDir) if err != nil { zlog.Fatal().Caller().Err(err).Send() } // register logmetadata service - agentpb.RegisterLogMetadataServiceServer(grpcServer, svc) + clusteragentpb.RegisterLogMetadataServiceServer(grpcServer, svc) // create health server healthServer := health.NewServer() @@ -116,14 +116,14 @@ func main() { healthServer.SetServingStatus("", grpc_health_v1.HealthCheckResponse_SERVING) // init listener - lis, err := net.Listen("tcp", cfg.Agent.Addr) + lis, err := net.Listen("tcp", cfg.ClusterAgent.Addr) if err != nil { zlog.Fatal().Caller().Err(err).Send() } // run server in go routine go func() { - zlog.Info().Msg("Starting kubetail-agent on " + cfg.Agent.Addr) + zlog.Info().Msg("Starting cluster-agent on " + cfg.ClusterAgent.Addr) if err := grpcServer.Serve(lis); err != nil { zlog.Fatal().Caller().Err(err).Send() } @@ -163,7 +163,7 @@ func main() { // define flags flagset := cmd.Flags() flagset.SortFlags = false - flagset.StringVarP(&cli.Config, "config", "c", "", "Path to configuration file (e.g. \"/etc/kubetail/config.yaml\")") + flagset.StringVarP(&cli.Config, "config", "c", "", "Path to configuration file (e.g. \"/etc/kubetail/cluster-agent.yaml\")") flagset.StringP("addr", "a", ":50051", "Host address to bind to") flagset.StringArrayVarP(¶ms, "param", "p", []string{}, "Config params") diff --git a/modules/agent/go.mod b/modules/cluster-agent/go.mod similarity index 58% rename from modules/agent/go.mod rename to modules/cluster-agent/go.mod index ec4b891b..9e91ebfc 100644 --- a/modules/agent/go.mod +++ b/modules/cluster-agent/go.mod @@ -1,33 +1,33 @@ -module github.com/kubetail-org/kubetail/modules/agent +module github.com/kubetail-org/kubetail/modules/cluster-agent -go 1.22.0 +go 1.23.0 -toolchain go1.22.7 +toolchain go1.23.4 -replace github.com/kubetail-org/kubetail/modules/common => ../common +replace github.com/kubetail-org/kubetail/modules/shared => ../shared require ( github.com/asaskevich/EventBus v0.0.0-20200907212545-49d423059eef - github.com/fsnotify/fsnotify v1.7.0 - github.com/go-playground/validator/v10 v10.22.1 - github.com/kubetail-org/kubetail/modules/common v0.0.0-00010101000000-000000000000 + github.com/fsnotify/fsnotify v1.8.0 + github.com/go-playground/validator/v10 v10.24.0 + github.com/kubetail-org/kubetail/modules/shared v0.0.0-00010101000000-000000000000 github.com/rs/zerolog v1.33.0 github.com/spf13/cobra v1.8.1 github.com/spf13/viper v1.19.0 - github.com/stretchr/testify v1.9.0 + github.com/stretchr/testify v1.10.0 github.com/zmwangx/debounce v1.0.0 - google.golang.org/grpc v1.67.1 - google.golang.org/protobuf v1.34.2 - k8s.io/api v0.31.1 - k8s.io/apimachinery v0.31.1 - k8s.io/client-go v0.31.1 + google.golang.org/grpc v1.69.4 + google.golang.org/protobuf v1.36.2 + k8s.io/api v0.32.0 + k8s.io/apimachinery v0.32.0 + k8s.io/client-go v0.32.0 ) require ( github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/emicklei/go-restful/v3 v3.12.1 // indirect github.com/fxamacker/cbor/v2 v2.7.0 // indirect - github.com/gabriel-vasile/mimetype v1.4.5 // indirect + github.com/gabriel-vasile/mimetype v1.4.8 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-openapi/jsonpointer v0.21.0 // indirect github.com/go-openapi/jsonreference v0.21.0 // indirect @@ -36,21 +36,20 @@ require ( github.com/go-playground/universal-translator v0.18.1 // indirect github.com/gogo/protobuf v1.3.2 // indirect github.com/golang/protobuf v1.5.4 // indirect - github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49 // indirect + github.com/google/gnostic-models v0.6.9 // indirect github.com/google/go-cmp v0.6.0 // indirect github.com/google/gofuzz v1.2.0 // indirect github.com/google/uuid v1.6.0 // indirect github.com/gorilla/csrf v1.7.2 // indirect github.com/gorilla/securecookie v1.1.2 // indirect github.com/hashicorp/hcl v1.0.0 // indirect - github.com/imdario/mergo v0.3.16 // indirect github.com/inconshreveable/mousetrap v1.1.0 // indirect github.com/josharian/intern v1.0.0 // indirect github.com/json-iterator/go v1.1.12 // indirect github.com/leodido/go-urn v1.4.0 // indirect - github.com/magiconair/properties v1.8.7 // indirect - github.com/mailru/easyjson v0.7.7 // indirect - github.com/mattn/go-colorable v0.1.13 // indirect + github.com/magiconair/properties v1.8.9 // indirect + github.com/mailru/easyjson v0.9.0 // indirect + github.com/mattn/go-colorable v0.1.14 // indirect github.com/mattn/go-isatty v0.0.20 // indirect github.com/mitchellh/mapstructure v1.5.0 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect @@ -59,33 +58,33 @@ require ( github.com/pelletier/go-toml/v2 v2.2.3 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/sagikazarmark/locafero v0.4.0 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect + github.com/sagikazarmark/locafero v0.7.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/sourcegraph/conc v0.3.0 // indirect - github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.7.0 // indirect + github.com/spf13/afero v1.12.0 // indirect + github.com/spf13/cast v1.7.1 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/subosito/gotenv v1.6.0 // indirect github.com/x448/float16 v0.8.4 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.27.0 // indirect - golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8 // indirect - golang.org/x/net v0.29.0 // indirect - golang.org/x/oauth2 v0.23.0 // indirect - golang.org/x/sys v0.25.0 // indirect - golang.org/x/term v0.24.0 // indirect - golang.org/x/text v0.18.0 // indirect - golang.org/x/time v0.6.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240924160255-9d4c2d233b61 // indirect + golang.org/x/crypto v0.32.0 // indirect + golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 // indirect + golang.org/x/net v0.34.0 // indirect + golang.org/x/oauth2 v0.25.0 // indirect + golang.org/x/sys v0.29.0 // indirect + golang.org/x/term v0.28.0 // indirect + golang.org/x/text v0.21.0 // indirect + golang.org/x/time v0.9.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250106144421-5f5ef82da422 // indirect gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/ini.v1 v1.67.0 // indirect - gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect k8s.io/klog/v2 v2.130.1 // indirect - k8s.io/kube-openapi v0.0.0-20240903163716-9e1beecbcb38 // indirect - k8s.io/utils v0.0.0-20240921022957-49e7df575cb6 // indirect - sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect + k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7 // indirect + k8s.io/utils v0.0.0-20241210054802-24370beab758 // indirect + sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.5.0 // indirect sigs.k8s.io/yaml v1.4.0 // indirect ) diff --git a/modules/agent/go.sum b/modules/cluster-agent/go.sum similarity index 67% rename from modules/agent/go.sum rename to modules/cluster-agent/go.sum index 50e20909..c1b64dc2 100644 --- a/modules/agent/go.sum +++ b/modules/cluster-agent/go.sum @@ -10,14 +10,16 @@ github.com/emicklei/go-restful/v3 v3.12.1 h1:PJMDIM/ak7btuL8Ex0iYET9hxM3CI2sjZtz github.com/emicklei/go-restful/v3 v3.12.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= -github.com/gabriel-vasile/mimetype v1.4.5 h1:J7wGKdGu33ocBOhGy0z653k/lFKLFDPJMG8Gql0kxn4= -github.com/gabriel-vasile/mimetype v1.4.5/go.mod h1:ibHel+/kbxn9x2407k1izTA1S81ku1z/DlgOW2QE0M4= +github.com/gabriel-vasile/mimetype v1.4.8 h1:FfZ3gj38NjllZIeJAmMhr+qKL8Wu+nOoI3GqacKw1NM= +github.com/gabriel-vasile/mimetype v1.4.8/go.mod h1:ByKUIKGjh1ODkGM1asKUbQZOLGrPjydw3hYPU2YU9t8= github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ= @@ -30,8 +32,8 @@ github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/o github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.22.1 h1:40JcKH+bBNGFczGuoBYgX4I6m/i27HYW8P9FDk5PbgA= -github.com/go-playground/validator/v10 v10.22.1/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= +github.com/go-playground/validator/v10 v10.24.0 h1:KHQckvo8G6hlWnrPX4NJJ+aBfWNAE/HH+qdL2cBpCmg= +github.com/go-playground/validator/v10 v10.24.0/go.mod h1:GGzBIJMuE98Ic/kJsBXbz1x/7cByt++cQ+YOuDM5wus= github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= @@ -39,16 +41,16 @@ github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= -github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49 h1:0VpGH+cDhbDtdcweoyCVsF3fhN8kejK6rFe/2FFX2nU= -github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49/go.mod h1:BkkQ4L1KS1xMt2aWSPStnn55ChGC0DPOn2FQYj+f25M= +github.com/google/gnostic-models v0.6.9 h1:MU/8wDLif2qCXZmzncUQ/BOfxWfthHi63KqpoNbWqVw= +github.com/google/gnostic-models v0.6.9/go.mod h1:CiWsm0s6BSQd1hRn8/QmxqB6BesYcbSZxsz9b0KuDBw= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20240727154555-813a5fbdbec8 h1:FKHo8hFI3A+7w0aUQuYXQ+6EN5stWmeY/AZqtM8xk9k= -github.com/google/pprof v0.0.0-20240727154555-813a5fbdbec8/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo= +github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo= +github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/gopherjs/gopherjs v1.17.2 h1:fQnZVsXk8uxXIStYb0N4bGk7jeyTalG/wsZjQ25dO0g= @@ -59,8 +61,6 @@ github.com/gorilla/securecookie v1.1.2 h1:YCIWL56dvtr73r6715mJs5ZvhtnY73hBvEF8kX github.com/gorilla/securecookie v1.1.2/go.mod h1:NfCASbcHqRSY+3a8tlWJwsQap2VX5pwzwo4h3eOamfo= github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= -github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= @@ -77,12 +77,13 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= -github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= -github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= -github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= -github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= -github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= +github.com/magiconair/properties v1.8.9 h1:nWcCbLq1N2v/cpNsy5WvQ37Fb+YElfq20WJ/a8RkpQM= +github.com/magiconair/properties v1.8.9/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4= +github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= +github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= @@ -96,10 +97,10 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA= -github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To= -github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= -github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= +github.com/onsi/ginkgo/v2 v2.21.0 h1:7rg/4f3rB88pb5obDgNZrNHrQ4e6WpjonchcpuBRnZM= +github.com/onsi/ginkgo/v2 v2.21.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo= +github.com/onsi/gomega v1.35.1 h1:Cwbd75ZBPxFSuZ6T+rN/WCb/gOc6YgFBXLlZLhC7Ds4= +github.com/onsi/gomega v1.35.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog= github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M= github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= @@ -107,14 +108,14 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ= -github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4= +github.com/sagikazarmark/locafero v0.7.0 h1:5MqpDsTGNDhY8sGp0Aowyf0qKsPrhewaLSsFaodPcyo= +github.com/sagikazarmark/locafero v0.7.0/go.mod h1:2za3Cg5rMaTMoG/2Ulr9AwtFaIppKXTRYnozin4aB5k= github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= github.com/smartystreets/assertions v1.13.1 h1:Ef7KhSmjZcK6AVf9YbJdvPYG9avaF0ZxudX+ThRdWfU= @@ -123,10 +124,10 @@ github.com/smartystreets/goconvey v1.8.0 h1:Oi49ha/2MURE0WexF052Z0m+BNSGirfjg5RL github.com/smartystreets/goconvey v1.8.0/go.mod h1:EdX8jtrTIj26jmjCOVNMVSIYAtgexqXKHOXW2Dx9JLg= github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= -github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= -github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= -github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= -github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/afero v1.12.0 h1:UcOPyRBYczmFn6yvphxkn9ZEOY65cpwGKb5mL36mrqs= +github.com/spf13/afero v1.12.0/go.mod h1:ZTlWwG4/ahT8W7T0WQ5uYmjI9duaLQGy3Q2OAl4sk/4= +github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y= +github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= @@ -135,8 +136,8 @@ github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= @@ -145,25 +146,37 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/zmwangx/debounce v1.0.0 h1:Dyf+WfLESjc2bqFKHgI1dZTW9oh6CJm8SBDkhXrwLB4= github.com/zmwangx/debounce v1.0.0/go.mod h1:U+/QHt+bSMdUh8XKOb6U+MQV5Ew4eS8M3ua5WJ7Ns6I= +go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= +go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= +go.opentelemetry.io/otel v1.33.0 h1:/FerN9bax5LoK51X/sI0SVYrjSE0/yUL7DpxW4K3FWw= +go.opentelemetry.io/otel v1.33.0/go.mod h1:SUUkR6csvUQl+yjReHu5uM3EtVV7MBm5FHKRlNx4I8I= +go.opentelemetry.io/otel/metric v1.33.0 h1:r+JOocAyeRVXD8lZpjdQjzMadVZp2M4WmQ+5WtEnklQ= +go.opentelemetry.io/otel/metric v1.33.0/go.mod h1:L9+Fyctbp6HFTddIxClbQkjtubW6O9QS3Ann/M82u6M= +go.opentelemetry.io/otel/sdk v1.31.0 h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk= +go.opentelemetry.io/otel/sdk v1.31.0/go.mod h1:TfRbMdhvxIIr/B2N2LQW2S5v9m3gOQ/08KsbbO5BPT0= +go.opentelemetry.io/otel/sdk/metric v1.31.0 h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4JjxTeYusH7zMc= +go.opentelemetry.io/otel/sdk/metric v1.31.0/go.mod h1:CRInTMVvNhUKgSAMbKyTMxqOBC0zgyxzW55lZzX43Y8= +go.opentelemetry.io/otel/trace v1.33.0 h1:cCJuF7LRjUFso9LPnEAHJDB2pqzp+hbO8eu1qqW2d/s= +go.opentelemetry.io/otel/trace v1.33.0/go.mod h1:uIcdVUZMpTAmz0tI1z04GoVSezK37CbGV4fr1f2nBck= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A= -golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= -golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8 h1:aAcj0Da7eBAtrTp03QXWvm88pSyOt+UgdZw2BFZ+lEw= -golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8/go.mod h1:CQ1k9gNrJ50XIzaKCRR2hssIjF07kZFEiieALBM/ARQ= +golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc= +golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= +golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 h1:yqrTHse8TCMW1M1ZCP+VAR/l0kKxwaAIqN/il7x4voA= +golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8/go.mod h1:tujkw807nyEEAamNbDrEGzRav+ilXA7PCRAd6xsmwiU= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo= -golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0= -golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= -golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= +golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= +golang.org/x/oauth2 v0.25.0 h1:CY4y7XT9v0cRI9oupztF8AgiIu99L/ksR/Xp/6jrZ70= +golang.org/x/oauth2 v0.25.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -173,32 +186,32 @@ golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= -golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.24.0 h1:Mh5cbb+Zk2hqqXNO7S1iTjEphVL+jb8ZWaqh/g+JWkM= -golang.org/x/term v0.24.0/go.mod h1:lOBK/LVxemqiMij05LGJ0tzNr8xlmwBRJ81PX6wVLH8= +golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= +golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.28.0 h1:/Ts8HFuMR2E6IP/jlo7QVLZHggjKQbhu/7H0LJFr3Gg= +golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= -golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= -golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U= -golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= +golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY= +golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24= -golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ= +golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE= +golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240924160255-9d4c2d233b61 h1:N9BgCIAUvn/M+p4NJccWPWb3BWh88+zyL0ll9HgbEeM= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240924160255-9d4c2d233b61/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= -google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= -google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= -google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= -google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250106144421-5f5ef82da422 h1:3UsHvIr4Wc2aW4brOaSCmcxh9ksica6fHEr8P1XhkYw= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250106144421-5f5ef82da422/go.mod h1:3ENsm/5D1mzDyhpzeRi1NR784I0BcofWBoSc5QqqMK4= +google.golang.org/grpc v1.69.4 h1:MF5TftSMkd8GLw/m0KM6V8CMOCY6NZ1NQDPGFgbTt4A= +google.golang.org/grpc v1.69.4/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4= +google.golang.org/protobuf v1.36.2 h1:R8FeyR1/eLmkutZOM5CWghmo5itiG9z0ktFlTVLuTmU= +google.golang.org/protobuf v1.36.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= @@ -208,26 +221,23 @@ gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.31.1 h1:Xe1hX/fPW3PXYYv8BlozYqw63ytA92snr96zMW9gWTU= -k8s.io/api v0.31.1/go.mod h1:sbN1g6eY6XVLeqNsZGLnI5FwVseTrZX7Fv3O26rhAaI= -k8s.io/apimachinery v0.31.1 h1:mhcUBbj7KUjaVhyXILglcVjuS4nYXiwC+KKFBgIVy7U= -k8s.io/apimachinery v0.31.1/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= -k8s.io/client-go v0.31.1 h1:f0ugtWSbWpxHR7sjVpQwuvw9a3ZKLXX0u0itkFXufb0= -k8s.io/client-go v0.31.1/go.mod h1:sKI8871MJN2OyeqRlmA4W4KM9KBdBUpDLu/43eGemCg= +k8s.io/api v0.32.0 h1:OL9JpbvAU5ny9ga2fb24X8H6xQlVp+aJMFlgtQjR9CE= +k8s.io/api v0.32.0/go.mod h1:4LEwHZEf6Q/cG96F3dqR965sYOfmPM7rq81BLgsE0p0= +k8s.io/apimachinery v0.32.0 h1:cFSE7N3rmEEtv4ei5X6DaJPHHX0C+upp+v5lVPiEwpg= +k8s.io/apimachinery v0.32.0/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= +k8s.io/client-go v0.32.0 h1:DimtMcnN/JIKZcrSrstiwvvZvLjG0aSxy8PxN8IChp8= +k8s.io/client-go v0.32.0/go.mod h1:boDWvdM1Drk4NJj/VddSLnx59X3OPgwrOo0vGbtq9+8= k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-openapi v0.0.0-20240903163716-9e1beecbcb38 h1:1dWzkmJrrprYvjGwh9kEUxmcUV/CtNU8QM7h1FLWQOo= -k8s.io/kube-openapi v0.0.0-20240903163716-9e1beecbcb38/go.mod h1:coRQXBK9NxO98XUv3ZD6AK3xzHCxV6+b7lrquKwaKzA= -k8s.io/utils v0.0.0-20240921022957-49e7df575cb6 h1:MDF6h2H/h4tbzmtIKTuctcwZmY0tY9mD9fNT47QO6HI= -k8s.io/utils v0.0.0-20240921022957-49e7df575cb6/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= -sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= -sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= -sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= +k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7 h1:hcha5B1kVACrLujCKLbr8XWMxCxzQx42DY8QKYJrDLg= +k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7/go.mod h1:GewRfANuJ70iYzvn+i4lezLDAFzvjxZYK1gn1lWcfas= +k8s.io/utils v0.0.0-20241210054802-24370beab758 h1:sdbE21q2nlQtFh65saZY+rRM6x6aJJI8IUa1AmH/qa0= +k8s.io/utils v0.0.0-20241210054802-24370beab758/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= +sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= +sigs.k8s.io/structured-merge-diff/v4 v4.5.0 h1:nbCitCK2hfnhyiKo6uf2HxUPTCodY6Qaf85SbDIaMBk= +sigs.k8s.io/structured-merge-diff/v4 v4.5.0/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4= sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/modules/agent/internal/debounce/debounce.go b/modules/cluster-agent/internal/debounce/debounce.go similarity index 97% rename from modules/agent/internal/debounce/debounce.go rename to modules/cluster-agent/internal/debounce/debounce.go index c48fd4af..0dbc3be5 100644 --- a/modules/agent/internal/debounce/debounce.go +++ b/modules/cluster-agent/internal/debounce/debounce.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/modules/agent/internal/debounce/debounce_test.go b/modules/cluster-agent/internal/debounce/debounce_test.go similarity index 98% rename from modules/agent/internal/debounce/debounce_test.go rename to modules/cluster-agent/internal/debounce/debounce_test.go index 7ccc1749..0783df4e 100644 --- a/modules/agent/internal/debounce/debounce_test.go +++ b/modules/cluster-agent/internal/debounce/debounce_test.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/modules/agent/internal/helpers/helpers.go b/modules/cluster-agent/internal/helpers/helpers.go similarity index 95% rename from modules/agent/internal/helpers/helpers.go rename to modules/cluster-agent/internal/helpers/helpers.go index f3a44550..a3d2ea8e 100644 --- a/modules/agent/internal/helpers/helpers.go +++ b/modules/cluster-agent/internal/helpers/helpers.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/modules/agent/internal/server/server.go b/modules/cluster-agent/internal/server/server.go similarity index 67% rename from modules/agent/internal/server/server.go rename to modules/cluster-agent/internal/server/server.go index d5d0f060..d12d23c6 100644 --- a/modules/agent/internal/server/server.go +++ b/modules/cluster-agent/internal/server/server.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -18,19 +18,20 @@ import ( "google.golang.org/grpc" "google.golang.org/grpc/credentials" - "github.com/kubetail-org/kubetail/modules/common/config" - "github.com/kubetail-org/kubetail/modules/common/grpchelpers" + "github.com/kubetail-org/kubetail/modules/shared/config" + "github.com/kubetail-org/kubetail/modules/shared/grpchelpers" ) func NewServer(cfg *config.Config) (*grpc.Server, error) { // init grpc server opts := []grpc.ServerOption{ - grpc.UnaryInterceptor(grpchelpers.NewUnaryAuthServerInterceptor(cfg)), + grpc.UnaryInterceptor(grpchelpers.AuthUnaryServerInterceptor), + grpc.StreamInterceptor(grpchelpers.AuthStreamServerInterceptor), } // configure tls - if cfg.Agent.TLS.Enabled { - creds, err := credentials.NewServerTLSFromFile(cfg.Agent.TLS.CertFile, cfg.Agent.TLS.KeyFile) + if cfg.ClusterAgent.TLS.Enabled { + creds, err := credentials.NewServerTLSFromFile(cfg.ClusterAgent.TLS.CertFile, cfg.ClusterAgent.TLS.KeyFile) if err != nil { return nil, err } diff --git a/modules/agent/internal/services/logmetadata/helpers.go b/modules/cluster-agent/internal/services/logmetadata/helpers.go similarity index 86% rename from modules/agent/internal/services/logmetadata/helpers.go rename to modules/cluster-agent/internal/services/logmetadata/helpers.go index aeb9c169..f1f2f930 100644 --- a/modules/agent/internal/services/logmetadata/helpers.go +++ b/modules/cluster-agent/internal/services/logmetadata/helpers.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -26,7 +26,8 @@ import ( "sync" "github.com/fsnotify/fsnotify" - "github.com/kubetail-org/kubetail/modules/common/agentpb" + "github.com/kubetail-org/kubetail/modules/shared/clusteragentpb" + "github.com/kubetail-org/kubetail/modules/shared/grpchelpers" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" "google.golang.org/protobuf/types/known/timestamppb" @@ -40,6 +41,11 @@ var logfileRegex = regexp.MustCompile(`^(?P[^_]+)_(?P[^_]+)_ // Check if client has required pods/log permissions for given namespace+verb func checkPermission(ctx context.Context, clientset kubernetes.Interface, namespaces []string, verb string) error { + // Ensure token is present + if _, ok := ctx.Value(grpchelpers.K8STokenCtxKey).(string); !ok { + return status.Errorf(codes.Unauthenticated, "missing token") + } + // ensure namespaces argument is present if len(namespaces) < 1 { return errors.New("namespaces required") @@ -61,8 +67,8 @@ func checkPermission(ctx context.Context, clientset kubernetes.Interface, namesp if result, err := clientset.AuthorizationV1().SelfSubjectAccessReviews().Create(ctx, sar, metav1.CreateOptions{}); err != nil { return err } else if !result.Status.Allowed { - msg := fmt.Sprintf("permission denied: `%s pods/log` in namespace `%s`", verb, namespace) - return status.Errorf(codes.Unauthenticated, msg) + fmt := "permission denied: `%s pods/log` in namespace `%s`" + return status.Errorf(codes.Unauthenticated, fmt, verb, namespace) } } @@ -70,7 +76,7 @@ func checkPermission(ctx context.Context, clientset kubernetes.Interface, namesp } // Get file info for file -func newLogMetadataFileInfo(pathname string) (*agentpb.LogMetadataFileInfo, error) { +func newLogMetadataFileInfo(pathname string) (*clusteragentpb.LogMetadataFileInfo, error) { // do stat fileInfo, err := os.Stat(pathname) if err != nil { @@ -78,7 +84,7 @@ func newLogMetadataFileInfo(pathname string) (*agentpb.LogMetadataFileInfo, erro } // init output - out := &agentpb.LogMetadataFileInfo{ + out := &clusteragentpb.LogMetadataFileInfo{ Size: fileInfo.Size(), LastModifiedAt: timestamppb.New(fileInfo.ModTime()), } @@ -87,14 +93,14 @@ func newLogMetadataFileInfo(pathname string) (*agentpb.LogMetadataFileInfo, erro } // Get log metadata from file -func newLogMetadataSpec(nodeName string, pathname string) (*agentpb.LogMetadataSpec, error) { +func newLogMetadataSpec(nodeName string, pathname string) (*clusteragentpb.LogMetadataSpec, error) { // parse file name matches := logfileRegex.FindStringSubmatch(filepath.Base(pathname)) if matches == nil { return nil, fmt.Errorf("filename format incorrect: %s", pathname) } - spec := &agentpb.LogMetadataSpec{ + spec := &clusteragentpb.LogMetadataSpec{ NodeName: nodeName, PodName: matches[1], Namespace: matches[2], @@ -108,7 +114,7 @@ func newLogMetadataSpec(nodeName string, pathname string) (*agentpb.LogMetadataS var errUnhandledOp = errors.New("unhandled event op") // generate new LogMetadataWatchEvent from an fsnotify event -func newLogMetadataWatchEvent(event fsnotify.Event, nodeName string) (*agentpb.LogMetadataWatchEvent, error) { +func newLogMetadataWatchEvent(event fsnotify.Event, nodeName string) (*clusteragentpb.LogMetadataWatchEvent, error) { // init spec spec, err := newLogMetadataSpec(nodeName, event.Name) if err != nil { @@ -116,11 +122,11 @@ func newLogMetadataWatchEvent(event fsnotify.Event, nodeName string) (*agentpb.L } // init watch event - watchEv := &agentpb.LogMetadataWatchEvent{ - Object: &agentpb.LogMetadata{ + watchEv := &clusteragentpb.LogMetadataWatchEvent{ + Object: &clusteragentpb.LogMetadata{ Id: spec.ContainerId, Spec: spec, - FileInfo: &agentpb.LogMetadataFileInfo{}, + FileInfo: &clusteragentpb.LogMetadataFileInfo{}, }, } @@ -141,7 +147,7 @@ func newLogMetadataWatchEvent(event fsnotify.Event, nodeName string) (*agentpb.L } case event.Op&fsnotify.Remove == fsnotify.Remove: watchEv.Type = "DELETED" - watchEv.Object.FileInfo = &agentpb.LogMetadataFileInfo{} + watchEv.Object.FileInfo = &clusteragentpb.LogMetadataFileInfo{} default: return nil, errUnhandledOp } diff --git a/modules/agent/internal/services/logmetadata/helpers_test.go b/modules/cluster-agent/internal/services/logmetadata/helpers_test.go similarity index 93% rename from modules/agent/internal/services/logmetadata/helpers_test.go rename to modules/cluster-agent/internal/services/logmetadata/helpers_test.go index 75ad4bdf..0698fa7c 100644 --- a/modules/agent/internal/services/logmetadata/helpers_test.go +++ b/modules/cluster-agent/internal/services/logmetadata/helpers_test.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -30,6 +30,8 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/client-go/kubernetes/fake" k8stesting "k8s.io/client-go/testing" + + "github.com/kubetail-org/kubetail/modules/shared/grpchelpers" ) func TestLogfileRegex(t *testing.T) { @@ -76,43 +78,52 @@ func TestLogfileRegex(t *testing.T) { } func TestCheckPermissionFailure(t *testing.T) { - t.Run("namespaces required", func(t *testing.T) { + ctxWithToken := context.WithValue(context.Background(), grpchelpers.K8STokenCtxKey, "xxx") + + t.Run("missing token", func(t *testing.T) { err := checkPermission(context.Background(), nil, []string{}, "x") + require.ErrorContains(t, err, "missing token") + }) + + t.Run("namespaces required", func(t *testing.T) { + err := checkPermission(ctxWithToken, nil, []string{}, "x") require.ErrorContains(t, err, "namespaces required") }) t.Run("single namespace", func(t *testing.T) { clientset := fake.NewSimpleClientset() - err := checkPermission(context.Background(), clientset, []string{"ns1"}, "x") + err := checkPermission(ctxWithToken, clientset, []string{"ns1"}, "x") require.ErrorContains(t, err, "permission denied") }) t.Run("multiple namespaces", func(t *testing.T) { clientset := fake.NewSimpleClientset() - err := checkPermission(context.Background(), clientset, []string{"ns1", "ns2"}, "x") + err := checkPermission(ctxWithToken, clientset, []string{"ns1", "ns2"}, "x") require.ErrorContains(t, err, "permission denied") }) t.Run("one of several not allowed", func(t *testing.T) { clientset := fake.NewSimpleClientset() allowSSAR(clientset, []string{"ns1"}, []string{"x"}) - err := checkPermission(context.Background(), clientset, []string{"ns1", "ns2"}, "x") + err := checkPermission(ctxWithToken, clientset, []string{"ns1", "ns2"}, "x") require.ErrorContains(t, err, "permission denied") }) } func TestCheckPermissionSuccess(t *testing.T) { + ctxWithToken := context.WithValue(context.Background(), grpchelpers.K8STokenCtxKey, "xxx") + t.Run("single namespace", func(t *testing.T) { clientset := fake.NewSimpleClientset() allowSSAR(clientset, []string{"ns1"}, []string{"x"}) - err := checkPermission(context.Background(), clientset, []string{"ns1"}, "x") + err := checkPermission(ctxWithToken, clientset, []string{"ns1"}, "x") require.Nil(t, err) }) t.Run("multiple namespaces", func(t *testing.T) { clientset := fake.NewSimpleClientset() allowSSAR(clientset, []string{"ns1", "ns2"}, []string{"x"}) - err := checkPermission(context.Background(), clientset, []string{"ns1", "ns2"}, "x") + err := checkPermission(ctxWithToken, clientset, []string{"ns1", "ns2"}, "x") require.Nil(t, err) }) } diff --git a/modules/agent/internal/services/logmetadata/logmetadata.go b/modules/cluster-agent/internal/services/logmetadata/logmetadata.go similarity index 85% rename from modules/agent/internal/services/logmetadata/logmetadata.go rename to modules/cluster-agent/internal/services/logmetadata/logmetadata.go index f63148dd..8f6d6c84 100644 --- a/modules/agent/internal/services/logmetadata/logmetadata.go +++ b/modules/cluster-agent/internal/services/logmetadata/logmetadata.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -29,17 +29,17 @@ import ( "k8s.io/client-go/kubernetes/fake" "k8s.io/client-go/rest" - "github.com/kubetail-org/kubetail/modules/agent/internal/debounce" - "github.com/kubetail-org/kubetail/modules/agent/internal/helpers" - "github.com/kubetail-org/kubetail/modules/common/agentpb" - "github.com/kubetail-org/kubetail/modules/common/grpchelpers" + "github.com/kubetail-org/kubetail/modules/cluster-agent/internal/debounce" + "github.com/kubetail-org/kubetail/modules/cluster-agent/internal/helpers" + "github.com/kubetail-org/kubetail/modules/shared/clusteragentpb" + "github.com/kubetail-org/kubetail/modules/shared/grpchelpers" ) // event bus for test events var testEventBus = eventbus.New() type LogMetadataService struct { - agentpb.UnimplementedLogMetadataServiceServer + clusteragentpb.UnimplementedLogMetadataServiceServer k8sCfg *rest.Config nodeName string containerLogsDir string @@ -48,7 +48,7 @@ type LogMetadataService struct { } // Implementation of List() in LogMetadataService -func (s *LogMetadataService) List(ctx context.Context, req *agentpb.LogMetadataListRequest) (*agentpb.LogMetadataList, error) { +func (s *LogMetadataService) List(ctx context.Context, req *clusteragentpb.LogMetadataListRequest) (*clusteragentpb.LogMetadataList, error) { clientset := s.newK8SClientset(ctx) // check permission @@ -61,7 +61,7 @@ func (s *LogMetadataService) List(ctx context.Context, req *agentpb.LogMetadataL return nil, err } - items := []*agentpb.LogMetadata{} + items := []*clusteragentpb.LogMetadata{} // iterate over files for _, file := range files { @@ -89,9 +89,9 @@ func (s *LogMetadataService) List(ctx context.Context, req *agentpb.LogMetadataL } // init item - item := &agentpb.LogMetadata{ + item := &clusteragentpb.LogMetadata{ Id: containerID, - Spec: &agentpb.LogMetadataSpec{ + Spec: &clusteragentpb.LogMetadataSpec{ NodeName: s.nodeName, Namespace: namespace, PodName: podName, @@ -105,11 +105,11 @@ func (s *LogMetadataService) List(ctx context.Context, req *agentpb.LogMetadataL items = append(items, item) } - return &agentpb.LogMetadataList{Items: items}, nil + return &clusteragentpb.LogMetadataList{Items: items}, nil } // Implementation of Watch() in LogMetadataService -func (s *LogMetadataService) Watch(req *agentpb.LogMetadataWatchRequest, stream agentpb.LogMetadataService_WatchServer) error { +func (s *LogMetadataService) Watch(req *clusteragentpb.LogMetadataWatchRequest, stream clusteragentpb.LogMetadataService_WatchServer) error { logger := zlog.With(). Str("component", "watch"). Str("request-id", helpers.RandomString(8)). diff --git a/modules/agent/internal/services/logmetadata/logmetadata_test.go b/modules/cluster-agent/internal/services/logmetadata/logmetadata_test.go similarity index 76% rename from modules/agent/internal/services/logmetadata/logmetadata_test.go rename to modules/cluster-agent/internal/services/logmetadata/logmetadata_test.go index f97c49e7..6e06d0fc 100644 --- a/modules/agent/internal/services/logmetadata/logmetadata_test.go +++ b/modules/cluster-agent/internal/services/logmetadata/logmetadata_test.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -25,8 +25,9 @@ import ( "github.com/stretchr/testify/suite" - "github.com/kubetail-org/kubetail/modules/common/agentpb" - "github.com/kubetail-org/kubetail/modules/common/config" + "github.com/kubetail-org/kubetail/modules/shared/clusteragentpb" + "github.com/kubetail-org/kubetail/modules/shared/config" + "github.com/kubetail-org/kubetail/modules/shared/grpchelpers" ) type LogMetadataTestSuite struct { @@ -36,6 +37,8 @@ type LogMetadataTestSuite struct { testServer *TestServer } +var ctxWithToken = context.WithValue(context.Background(), grpchelpers.K8STokenCtxKey, "xxx") + // Setup suite func (suite *LogMetadataTestSuite) SetupSuite() { // disable logging @@ -51,8 +54,7 @@ func (suite *LogMetadataTestSuite) SetupSuite() { // test config cfg := config.DefaultConfig() - cfg.AuthMode = config.AuthModeCluster - cfg.Agent.ContainerLogsDir = containerLogsDir + cfg.ClusterAgent.ContainerLogsDir = containerLogsDir // init test server testServer, err := NewTestServer(cfg) @@ -106,7 +108,20 @@ func (suite *LogMetadataTestSuite) createContainerLogFile(namespace string, podN return f } -func (suite *LogMetadataTestSuite) TestList() { +func (suite *LogMetadataTestSuite) TestList_Unauthenticated() { + client := suite.testServer.NewTestClient() + _, err := client.List(context.Background(), &clusteragentpb.LogMetadataListRequest{Namespaces: []string{"ns1"}}) + suite.Require().ErrorContains(err, "missing token") +} + +func (suite *LogMetadataTestSuite) TestList_Unauthorized() { + ctx := context.WithValue(context.Background(), grpchelpers.K8STokenCtxKey, "xxx") + client := suite.testServer.NewTestClient() + _, err := client.List(ctx, &clusteragentpb.LogMetadataListRequest{Namespaces: []string{"ns1"}}) + suite.Require().ErrorContains(err, "permission denied") +} + +func (suite *LogMetadataTestSuite) TestList_Authorized() { // add file to namespace ns1 f0 := suite.createContainerLogFile("ns1", "pn1", "cn", "000") f0.Close() @@ -131,7 +146,7 @@ func (suite *LogMetadataTestSuite) TestList() { suite.testServer.AllowSSAR([]string{"ns1"}, []string{"list"}) client := suite.testServer.NewTestClient() - resp, err := client.List(context.Background(), &agentpb.LogMetadataListRequest{Namespaces: []string{"ns1"}}) + resp, err := client.List(ctxWithToken, &clusteragentpb.LogMetadataListRequest{Namespaces: []string{"ns1"}}) suite.Require().Nil(err) // check number of items @@ -159,7 +174,7 @@ func (suite *LogMetadataTestSuite) TestList() { suite.testServer.AllowSSAR([]string{"ns1", "ns2"}, []string{"list"}) client := suite.testServer.NewTestClient() - resp, err := client.List(context.Background(), &agentpb.LogMetadataListRequest{Namespaces: []string{"ns1", "ns2"}}) + resp, err := client.List(ctxWithToken, &clusteragentpb.LogMetadataListRequest{Namespaces: []string{"ns1", "ns2"}}) suite.Require().Nil(err) // check number of items @@ -179,7 +194,7 @@ func (suite *LogMetadataTestSuite) TestList() { suite.testServer.AllowSSAR([]string{""}, []string{"list"}) client := suite.testServer.NewTestClient() - resp, err := client.List(context.Background(), &agentpb.LogMetadataListRequest{Namespaces: []string{""}}) + resp, err := client.List(ctxWithToken, &clusteragentpb.LogMetadataListRequest{Namespaces: []string{""}}) suite.Require().Nil(err) // check number of items @@ -195,6 +210,29 @@ func (suite *LogMetadataTestSuite) TestList() { }) } +func (suite *LogMetadataTestSuite) TestWatch_Unauthenticated() { + // init + client := suite.testServer.NewTestClient() + stream, err := client.Watch(context.Background(), &clusteragentpb.LogMetadataWatchRequest{Namespaces: []string{"ns1"}}) + suite.Require().Nil(err) + + // wait for stream + _, err = stream.Recv() + suite.Require().ErrorContains(err, "missing token") +} + +func (suite *LogMetadataTestSuite) TestWatch_Unauthorized() { + // init + ctx := context.WithValue(context.Background(), grpchelpers.K8STokenCtxKey, "xxx") + client := suite.testServer.NewTestClient() + stream, err := client.Watch(ctx, &clusteragentpb.LogMetadataWatchRequest{Namespaces: []string{"ns1"}}) + suite.Require().Nil(err) + + // wait for stream + _, err = stream.Recv() + suite.Require().ErrorContains(err, "permission denied") +} + func (suite *LogMetadataTestSuite) TestWatch_HandleClientClose() { // init client client := suite.testServer.NewTestClient() @@ -206,7 +244,7 @@ func (suite *LogMetadataTestSuite) TestWatch_HandleClientClose() { }) // init watch - stream, err := client.Watch(context.Background(), &agentpb.LogMetadataWatchRequest{Namespaces: []string{""}}) + stream, err := client.Watch(ctxWithToken, &clusteragentpb.LogMetadataWatchRequest{Namespaces: []string{""}}) suite.Require().Nil(err) // wait for stream @@ -225,7 +263,7 @@ func (suite *LogMetadataTestSuite) TestWatch_HandleShutdown() { }) // init watch - stream, err := client.Watch(context.Background(), &agentpb.LogMetadataWatchRequest{Namespaces: []string{""}}) + stream, err := client.Watch(ctxWithToken, &clusteragentpb.LogMetadataWatchRequest{Namespaces: []string{""}}) suite.Require().Nil(err) // wait for stream @@ -270,7 +308,7 @@ func (suite *LogMetadataTestSuite) TestWatch_Added() { }) // init watch - stream, err := client.Watch(context.Background(), &agentpb.LogMetadataWatchRequest{Namespaces: tt.setNamespaces}) + stream, err := client.Watch(ctxWithToken, &clusteragentpb.LogMetadataWatchRequest{Namespaces: tt.setNamespaces}) suite.Require().Nil(err) // wait for stream @@ -319,7 +357,7 @@ func (suite *LogMetadataTestSuite) TestWatch_Modified() { }) // init watch - stream, err := client.Watch(context.Background(), &agentpb.LogMetadataWatchRequest{Namespaces: tt.setNamespaces}) + stream, err := client.Watch(ctxWithToken, &clusteragentpb.LogMetadataWatchRequest{Namespaces: tt.setNamespaces}) suite.Require().Nil(err) // wait for stream @@ -368,7 +406,7 @@ func (suite *LogMetadataTestSuite) TestWatch_Deleted() { }) // init watch - stream, err := client.Watch(context.Background(), &agentpb.LogMetadataWatchRequest{Namespaces: tt.setNamespaces}) + stream, err := client.Watch(ctxWithToken, &clusteragentpb.LogMetadataWatchRequest{Namespaces: tt.setNamespaces}) suite.Require().Nil(err) // wait for stream diff --git a/modules/agent/internal/services/logmetadata/testutils_test.go b/modules/cluster-agent/internal/services/logmetadata/testutils_test.go similarity index 84% rename from modules/agent/internal/services/logmetadata/testutils_test.go rename to modules/cluster-agent/internal/services/logmetadata/testutils_test.go index f94d3183..5d2cd6dc 100644 --- a/modules/agent/internal/services/logmetadata/testutils_test.go +++ b/modules/cluster-agent/internal/services/logmetadata/testutils_test.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -27,15 +27,15 @@ import ( "k8s.io/client-go/kubernetes/fake" k8stesting "k8s.io/client-go/testing" - "github.com/kubetail-org/kubetail/modules/agent/internal/server" - "github.com/kubetail-org/kubetail/modules/common/agentpb" - "github.com/kubetail-org/kubetail/modules/common/config" - "github.com/kubetail-org/kubetail/modules/common/grpchelpers" + "github.com/kubetail-org/kubetail/modules/cluster-agent/internal/server" + "github.com/kubetail-org/kubetail/modules/shared/clusteragentpb" + "github.com/kubetail-org/kubetail/modules/shared/config" + "github.com/kubetail-org/kubetail/modules/shared/grpchelpers" ) // Test client type TestClient struct { - agentpb.LogMetadataServiceClient + clusteragentpb.LogMetadataServiceClient grpcConn *grpc.ClientConn } @@ -84,7 +84,8 @@ func (ts *TestServer) NewTestClient() *TestClient { opts := []grpc.DialOption{ grpc.WithTransportCredentials(insecure.NewCredentials()), grpc.WithContextDialer(dialerFunc), - grpc.WithUnaryInterceptor(grpchelpers.NewUnaryAuthClientInterceptor(ts.cfg)), + grpc.WithUnaryInterceptor(grpchelpers.AuthUnaryClientInterceptor), + grpc.WithStreamInterceptor(grpchelpers.AuthStreamClientInterceptor), } grpcConn, err := grpc.NewClient("passthrough://bufnet", opts...) @@ -93,7 +94,7 @@ func (ts *TestServer) NewTestClient() *TestClient { } // init client - client := agentpb.NewLogMetadataServiceClient(grpcConn) + client := clusteragentpb.NewLogMetadataServiceClient(grpcConn) // return test client return &TestClient{LogMetadataServiceClient: client, grpcConn: grpcConn} @@ -102,7 +103,7 @@ func (ts *TestServer) NewTestClient() *TestClient { // Initialize new TestServer instance func NewTestServer(cfg *config.Config) (*TestServer, error) { // init service - svc, err := NewLogMetadataService(nil, "node-name", cfg.Agent.ContainerLogsDir) + svc, err := NewLogMetadataService(nil, "node-name", cfg.ClusterAgent.ContainerLogsDir) if err != nil { return nil, err } @@ -112,7 +113,7 @@ func NewTestServer(cfg *config.Config) (*TestServer, error) { // init server grpcServer, _ := server.NewServer(cfg) - agentpb.RegisterLogMetadataServiceServer(grpcServer, svc) + clusteragentpb.RegisterLogMetadataServiceServer(grpcServer, svc) // init listener lis := bufconn.Listen(1024 * 1024) diff --git a/modules/cluster-api/README.md b/modules/cluster-api/README.md new file mode 100644 index 00000000..f9740a31 --- /dev/null +++ b/modules/cluster-api/README.md @@ -0,0 +1,62 @@ +# Kubetail Cluster API + +Go-based HTTP server that handles Kubetail Cluster API requests + +## Configure + +### CLI Flags + +The Kubetail Cluster API executable supports the following command line configuration options: + +| Flag | Datatype | Description | Default | +| ------------ | -------- | -------------------------------- | --------- | +| -c, --config | string | Path to Kubetail config file | "" | +| -a, --addr | string | Host address to bind to | ":80" | +| --gin-mode | string | Gin mode (release, debug) | "release" | +| -p, --param | []string | Config params ("key:val" format) | [] | + +### Config file + +The Kubetail Cluster API executable can be configured using a configuration file written in YAML, JSON, TOML, HCL or envfile format. The application will automatically replace ENV variables written in the format `${NAME}` with their corresponding values. The config file supports the following options (also see [hack/config.yaml](../../hack/config.yaml)): + +| Name | Datatype | Description | Default | +| ------------------------------------------------- | -------- | ---------------------------------------------------- | ------------------------------------------- | +| allowed-namespaces | []string | If populated, restricts namespace access | [] | +| cluster-api.addr | string | Host address to bind to | ":80" | +| cluster-api.base-path | string | URL path prefix | "/" | +| cluster-api.cluster-agent-dispatch-url | string | URL for sending dispatch requests to cluster-agent | "kubernetes://kubetail-cluster-agent:50051" | +| cluster-api.gin-mode | string | Gin mode (release, debug) | "release" | +| cluster-api.csrf.enabled | bool | Enable CSRF protection | true | +| cluster-api.csrf.field-name | string | CSRF token name in forms | "csrf_token" | +| cluster-api.csrf.secret | string | CSRF hash key | "" | +| cluster-api.csrf.cookie.name | string | CSRF cookie name | "csrf" | +| cluster-api.csrf.cookie.path | string | CSRF cookie path | "/" | +| cluster-api.csrf.cookie.domain | string | CSRF cookie domain | "" | +| cluster-api.csrf.cookie.max-age | int | CSRF cookie max age (in seconds) | 43200 | +| cluster-api.csrf.cookie.secure | bool | CSRF cookie secure property | false | +| cluster-api.csrf.cookie.http-only | bool | CSRF cookie HttpOnly property | true | +| cluster-api.csrf.cookie.same-site | string | CSRF cookie SameSite property (strict, lax, none) | "strict" | +| cluster-api.logging.enabled | bool | Enable logging | true | +| cluster-api.logging.level | string | Log level | "info" | +| cluster-api.logging.format | string | Log format (json, pretty) | "json" | +| cluster-api.logging.access-log.enabled | bool | Enable access log | true | +| cluster-api.logging.access-log.hide-health-checks | bool | Hide requests to /healthz from access log | false | +| cluster-api.tls.enabled | bool | Enable TLS endpoint termination | false | +| cluster-api.tls.cert-file | string | Path to cert file | "" | +| cluster-api.tls.key-file | string | Path to key file | "" | + +## GraphQL + +The GraphQL schema can be found here: [GraphQL schema](graph/schema.graphqls). To run the gqlgen GraphQL code generator use the `go generate` command: + +```console +go generate ./... +``` + +## Test + +To run the test suite execute this command: + +```console +go test ./... +``` diff --git a/modules/server/cmd/main.go b/modules/cluster-api/cmd/main.go similarity index 59% rename from modules/server/cmd/main.go rename to modules/cluster-api/cmd/main.go index 328e4b27..a886eec6 100644 --- a/modules/server/cmd/main.go +++ b/modules/cluster-api/cmd/main.go @@ -1,3 +1,17 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + package main import ( @@ -15,72 +29,71 @@ import ( "github.com/spf13/cobra" "github.com/spf13/viper" - "github.com/kubetail-org/kubetail/modules/common/config" - "github.com/kubetail-org/kubetail/modules/server/pkg/ginapp" + "github.com/kubetail-org/kubetail/modules/shared/config" + + "github.com/kubetail-org/kubetail/modules/cluster-api/internal/app" ) type CLI struct { - Addr string `validate:"omitempty,hostname_port"` - Config string `validate:"omitempty,file"` - GinMode string `validate:"omitempty,oneof=release debug"` + Config string `validate:"omitempty,file"` } func main() { var cli CLI var params []string - // init cobra command + // Init cobra command cmd := cobra.Command{ - Use: "kubetail-server", - Short: "Kubetail Backend Server", + Use: "cluster-api", + Short: "Kubetail Cluster API", PreRunE: func(cmd *cobra.Command, args []string) error { - // validate cli flags + // Validate CLI flags return validator.New().Struct(cli) }, Run: func(cmd *cobra.Command, args []string) { - // listen for termination signals as early as possible + // Listen for termination signals as early as possible quit := make(chan os.Signal, 1) signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM) defer close(quit) - // init viper + // Init viper v := viper.New() - v.BindPFlag("server.addr", cmd.Flags().Lookup("addr")) - v.BindPFlag("server.gin-mode", cmd.Flags().Lookup("gin-mode")) - - // override params from cli - for _, param := range params { - split := strings.SplitN(param, ":", 2) - if len(split) == 2 { - v.Set(split[0], split[1]) - } - } + v.BindPFlag("cluster-api.addr", cmd.Flags().Lookup("addr")) + v.BindPFlag("cluster-api.gin-mode", cmd.Flags().Lookup("gin-mode")) - // init config + // Init config cfg, err := config.NewConfig(v, cli.Config) if err != nil { zlog.Fatal().Caller().Err(err).Send() } // set gin mode - gin.SetMode(cfg.Server.GinMode) + gin.SetMode(cfg.ClusterAPI.GinMode) + + // Override params from cli + for _, param := range params { + split := strings.SplitN(param, ":", 2) + if len(split) == 2 { + v.Set(split[0], split[1]) + } + } - // configure logger + // Configure logger config.ConfigureLogger(config.LoggerOptions{ - Enabled: cfg.Server.Logging.Enabled, - Level: cfg.Server.Logging.Level, - Format: cfg.Server.Logging.Format, + Enabled: cfg.ClusterAPI.Logging.Enabled, + Level: cfg.ClusterAPI.Logging.Level, + Format: cfg.ClusterAPI.Logging.Format, }) - // create app - app, err := ginapp.NewGinApp(cfg) + // Create app + app, err := app.NewApp(cfg) if err != nil { zlog.Fatal().Caller().Err(err).Send() } // create server server := http.Server{ - Addr: cfg.Server.Addr, + Addr: cfg.ClusterAPI.Addr, Handler: app, IdleTimeout: 1 * time.Minute, ReadTimeout: 5 * time.Second, @@ -90,10 +103,10 @@ func main() { // run server in go routine go func() { var serverErr error - zlog.Info().Msg("Starting server on " + cfg.Server.Addr) + zlog.Info().Msg("Starting server on " + cfg.ClusterAPI.Addr) - if cfg.Server.TLS.Enabled { - serverErr = server.ListenAndServeTLS(cfg.Server.TLS.CertFile, cfg.Server.TLS.KeyFile) + if cfg.ClusterAPI.TLS.Enabled { + serverErr = server.ListenAndServeTLS(cfg.ClusterAPI.TLS.CertFile, cfg.ClusterAPI.TLS.KeyFile) } else { serverErr = server.ListenAndServe() } @@ -136,15 +149,15 @@ func main() { }, } - // define flags + // Define flags flagset := cmd.Flags() flagset.SortFlags = false - flagset.StringVarP(&cli.Config, "config", "c", "", "Path to configuration file (e.g. \"/etc/kubetail/config.yaml\")") - flagset.StringP("addr", "a", ":4000", "Host address to bind to") + flagset.StringVarP(&cli.Config, "config", "c", "", "Path to configuration file (e.g. \"/etc/kubetail/cluster-api.yaml\")") + flagset.StringP("addr", "a", ":80", "Host address to bind to") flagset.String("gin-mode", "release", "Gin mode (release, debug)") flagset.StringArrayVarP(¶ms, "param", "p", []string{}, "Config params") - // execute command + // Execute command if err := cmd.Execute(); err != nil { zlog.Fatal().Caller().Err(err).Send() } diff --git a/modules/server/internal/k8shelpers/interface.go b/modules/cluster-api/embed.go similarity index 82% rename from modules/server/internal/k8shelpers/interface.go rename to modules/cluster-api/embed.go index dec80906..a2aa061f 100644 --- a/modules/server/internal/k8shelpers/interface.go +++ b/modules/cluster-api/embed.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -12,8 +12,9 @@ // See the License for the specific language governing permissions and // limitations under the License. -package k8shelpers +package clusterapi -type Service interface { - HasAccess(string) (string, error) -} +import "embed" + +//go:embed static/* +var StaticEmbedFS embed.FS diff --git a/modules/cluster-api/go.mod b/modules/cluster-api/go.mod new file mode 100644 index 00000000..8ab2f4cc --- /dev/null +++ b/modules/cluster-api/go.mod @@ -0,0 +1,119 @@ +module github.com/kubetail-org/kubetail/modules/cluster-api + +go 1.23.0 + +toolchain go1.23.4 + +replace github.com/kubetail-org/kubetail/modules/shared => ../shared + +require ( + github.com/99designs/gqlgen v0.17.63 + github.com/gin-contrib/gzip v1.2.0 + github.com/gin-contrib/requestid v1.0.4 + github.com/gin-contrib/secure v1.1.1 + github.com/gin-gonic/gin v1.10.0 + github.com/go-playground/validator/v10 v10.24.0 + github.com/gorilla/csrf v1.7.2 + github.com/gorilla/websocket v1.5.3 + github.com/gwatts/gin-adapter v1.0.0 + github.com/kubetail-org/grpc-dispatcher-go v0.0.2 + github.com/kubetail-org/kubetail/modules/shared v0.0.0-00010101000000-000000000000 + github.com/rs/zerolog v1.33.0 + github.com/spf13/cobra v1.8.1 + github.com/spf13/viper v1.19.0 + github.com/stretchr/testify v1.10.0 + github.com/vektah/gqlparser/v2 v2.5.21 + google.golang.org/grpc v1.69.4 + google.golang.org/protobuf v1.36.2 + k8s.io/apimachinery v0.32.0 +) + +require ( + github.com/agnivade/levenshtein v1.2.0 // indirect + github.com/asaskevich/EventBus v0.0.0-20200907212545-49d423059eef // indirect + github.com/bytedance/sonic v1.12.7 // indirect + github.com/bytedance/sonic/loader v0.2.3 // indirect + github.com/cloudwego/base64x v0.1.4 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.6 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/deckarep/golang-set/v2 v2.7.0 // indirect + github.com/emicklei/go-restful/v3 v3.12.1 // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/fxamacker/cbor/v2 v2.7.0 // indirect + github.com/gabriel-vasile/mimetype v1.4.8 // indirect + github.com/gin-contrib/sse v1.0.0 // indirect + github.com/go-logr/logr v1.4.2 // indirect + github.com/go-openapi/jsonpointer v0.21.0 // indirect + github.com/go-openapi/jsonreference v0.21.0 // indirect + github.com/go-openapi/swag v0.23.0 // indirect + github.com/go-playground/locales v0.14.1 // indirect + github.com/go-playground/universal-translator v0.18.1 // indirect + github.com/go-viper/mapstructure/v2 v2.2.1 // indirect + github.com/goccy/go-json v0.10.4 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/protobuf v1.5.4 // indirect + github.com/google/gnostic-models v0.6.9 // indirect + github.com/google/go-cmp v0.6.0 // indirect + github.com/google/gofuzz v1.2.0 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/gorilla/securecookie v1.1.2 // indirect + github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect + github.com/hashicorp/hcl v1.0.0 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/josharian/intern v1.0.0 // indirect + github.com/json-iterator/go v1.1.12 // indirect + github.com/klauspost/cpuid/v2 v2.2.9 // indirect + github.com/leodido/go-urn v1.4.0 // indirect + github.com/magiconair/properties v1.8.9 // indirect + github.com/mailru/easyjson v0.9.0 // indirect + github.com/mattn/go-colorable v0.1.14 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mitchellh/mapstructure v1.5.0 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/pelletier/go-toml/v2 v2.2.3 // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/rogpeppe/go-internal v1.13.1 // indirect + github.com/russross/blackfriday/v2 v2.1.0 // indirect + github.com/sagikazarmark/locafero v0.7.0 // indirect + github.com/sagikazarmark/slog-shim v0.1.0 // indirect + github.com/sosodev/duration v1.3.1 // indirect + github.com/sourcegraph/conc v0.3.0 // indirect + github.com/spf13/afero v1.12.0 // indirect + github.com/spf13/cast v1.7.1 // indirect + github.com/spf13/pflag v1.0.5 // indirect + github.com/subosito/gotenv v1.6.0 // indirect + github.com/twitchyliquid64/golang-asm v0.15.1 // indirect + github.com/ugorji/go/codec v1.2.12 // indirect + github.com/urfave/cli/v2 v2.27.5 // indirect + github.com/x448/float16 v0.8.4 // indirect + github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 // indirect + go.uber.org/multierr v1.11.0 // indirect + golang.org/x/arch v0.13.0 // indirect + golang.org/x/crypto v0.32.0 // indirect + golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 // indirect + golang.org/x/mod v0.22.0 // indirect + golang.org/x/net v0.34.0 // indirect + golang.org/x/oauth2 v0.25.0 // indirect + golang.org/x/sync v0.10.0 // indirect + golang.org/x/sys v0.29.0 // indirect + golang.org/x/term v0.28.0 // indirect + golang.org/x/text v0.21.0 // indirect + golang.org/x/time v0.9.0 // indirect + golang.org/x/tools v0.29.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250106144421-5f5ef82da422 // indirect + gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect + gopkg.in/inf.v0 v0.9.1 // indirect + gopkg.in/ini.v1 v1.67.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect + k8s.io/api v0.32.0 // indirect + k8s.io/client-go v0.32.0 // indirect + k8s.io/klog/v2 v2.130.1 // indirect + k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7 // indirect + k8s.io/utils v0.0.0-20241210054802-24370beab758 // indirect + sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.5.0 // indirect + sigs.k8s.io/yaml v1.4.0 // indirect +) diff --git a/modules/cluster-api/go.sum b/modules/cluster-api/go.sum new file mode 100644 index 00000000..61dca9ae --- /dev/null +++ b/modules/cluster-api/go.sum @@ -0,0 +1,313 @@ +github.com/99designs/gqlgen v0.17.63 h1:HCdaYDPd9HqUXRchEvmE3EFzELRwLlaJ8DBuyC8Cqto= +github.com/99designs/gqlgen v0.17.63/go.mod h1:sVCM2iwIZisJjTI/DEC3fpH+HFgxY1496ZJ+jbT9IjA= +github.com/agnivade/levenshtein v1.2.0 h1:U9L4IOT0Y3i0TIlUIDJ7rVUziKi/zPbrJGaFrtYH3SY= +github.com/agnivade/levenshtein v1.2.0/go.mod h1:QVVI16kDrtSuwcpd0p1+xMC6Z/VfhtCyDIjcwga4/DU= +github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ= +github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= +github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0 h1:jfIu9sQUG6Ig+0+Ap1h4unLjW6YQJpKZVmUzxsD4E/Q= +github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0/go.mod h1:t2tdKJDJF9BV14lnkjHmOQgcvEKgtqs5a1N3LNdJhGE= +github.com/asaskevich/EventBus v0.0.0-20200907212545-49d423059eef h1:2JGTg6JapxP9/R33ZaagQtAM4EkkSYnIAlOG5EI8gkM= +github.com/asaskevich/EventBus v0.0.0-20200907212545-49d423059eef/go.mod h1:JS7hed4L1fj0hXcyEejnW57/7LCetXggd+vwrRnYeII= +github.com/bytedance/sonic v1.12.7 h1:CQU8pxOy9HToxhndH0Kx/S1qU/CuS9GnKYrGioDcU1Q= +github.com/bytedance/sonic v1.12.7/go.mod h1:tnbal4mxOMju17EGfknm2XyYcpyCnIROYOEYuemj13I= +github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= +github.com/bytedance/sonic/loader v0.2.3 h1:yctD0Q3v2NOGfSWPLPvG2ggA2kV6TS6s4wioyEqssH0= +github.com/bytedance/sonic/loader v0.2.3/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= +github.com/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/0Y= +github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= +github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= +github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.6 h1:XJtiaUW6dEEqVuZiMTn1ldk455QWwEIsMIJlo5vtkx0= +github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/deckarep/golang-set/v2 v2.7.0 h1:gIloKvD7yH2oip4VLhsv3JyLLFnC0Y2mlusgcvJYW5k= +github.com/deckarep/golang-set/v2 v2.7.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= +github.com/dgryski/trifles v0.0.0-20230903005119-f50d829f2e54 h1:SG7nF6SRlWhcT7cNTs5R6Hk4V2lcmLz2NsG2VnInyNo= +github.com/dgryski/trifles v0.0.0-20230903005119-f50d829f2e54/go.mod h1:if7Fbed8SFyPtHLHbg49SI7NAdJiC5WIA09pe59rfAA= +github.com/emicklei/go-restful/v3 v3.12.1 h1:PJMDIM/ak7btuL8Ex0iYET9hxM3CI2sjZtzpL63nKAU= +github.com/emicklei/go-restful/v3 v3.12.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= +github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= +github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= +github.com/gabriel-vasile/mimetype v1.4.8 h1:FfZ3gj38NjllZIeJAmMhr+qKL8Wu+nOoI3GqacKw1NM= +github.com/gabriel-vasile/mimetype v1.4.8/go.mod h1:ByKUIKGjh1ODkGM1asKUbQZOLGrPjydw3hYPU2YU9t8= +github.com/gin-contrib/gzip v1.2.0 h1:JzN6DT3/xYL5zAdviN1ORNzKeklrwafXCIDKIR+qmUA= +github.com/gin-contrib/gzip v1.2.0/go.mod h1:C1a5cacjlDsS20cKnHlZRCPUu57D3qH6B2pV0rl+Y/s= +github.com/gin-contrib/requestid v1.0.4 h1:h9u+YSCMgrDcn2QlHn9c6P/Zwy4WdXqZLFTmlIAJWpA= +github.com/gin-contrib/requestid v1.0.4/go.mod h1:2/3cAmLKQ9E2Pr1IrSPR7K8AWiJORo0hLvs0keKsMJw= +github.com/gin-contrib/secure v1.1.1 h1:q1AGANrYRhJYYHZCF0VH/NVvP0uOSMXmXbsaqWRgIEQ= +github.com/gin-contrib/secure v1.1.1/go.mod h1:4IhY8OTLEAI3R7qZF1ya4y75WowL8MJ09i2Kunl83HE= +github.com/gin-contrib/sse v1.0.0 h1:y3bT1mUWUxDpW4JLQg/HnTqV4rozuW4tC9eFKTxYI9E= +github.com/gin-contrib/sse v1.0.0/go.mod h1:zNuFdwarAygJBht0NTKiSi3jRf6RbqeILZ9Sp6Slhe0= +github.com/gin-gonic/gin v1.10.0 h1:nTuyha1TYqgedzytsKYqna+DfLos46nTv2ygFy86HFU= +github.com/gin-gonic/gin v1.10.0/go.mod h1:4PMNQiOhvDRa013RKVbsiNwoyezlm2rm0uX/T7kzp5Y= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= +github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= +github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ= +github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4= +github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= +github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= +github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= +github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= +github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= +github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= +github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= +github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= +github.com/go-playground/validator/v10 v10.24.0 h1:KHQckvo8G6hlWnrPX4NJJ+aBfWNAE/HH+qdL2cBpCmg= +github.com/go-playground/validator/v10 v10.24.0/go.mod h1:GGzBIJMuE98Ic/kJsBXbz1x/7cByt++cQ+YOuDM5wus= +github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= +github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= +github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss= +github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= +github.com/goccy/go-json v0.10.4 h1:JSwxQzIqKfmFX1swYPpUThQZp/Ka4wzJdK0LWVytLPM= +github.com/goccy/go-json v0.10.4/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/google/gnostic-models v0.6.9 h1:MU/8wDLif2qCXZmzncUQ/BOfxWfthHi63KqpoNbWqVw= +github.com/google/gnostic-models v0.6.9/go.mod h1:CiWsm0s6BSQd1hRn8/QmxqB6BesYcbSZxsz9b0KuDBw= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= +github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo= +github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gorilla/csrf v1.7.2 h1:oTUjx0vyf2T+wkrx09Trsev1TE+/EbDAeHtSTbtC2eI= +github.com/gorilla/csrf v1.7.2/go.mod h1:F1Fj3KG23WYHE6gozCmBAezKookxbIvUJT+121wTuLk= +github.com/gorilla/securecookie v1.1.2 h1:YCIWL56dvtr73r6715mJs5ZvhtnY73hBvEF8kXD8ePA= +github.com/gorilla/securecookie v1.1.2/go.mod h1:NfCASbcHqRSY+3a8tlWJwsQap2VX5pwzwo4h3eOamfo= +github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= +github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gwatts/gin-adapter v1.0.0 h1:TsmmhYTR79/RMTsfYJ2IQvI1F5KZ3ZFJxuQSYEOpyIA= +github.com/gwatts/gin-adapter v1.0.0/go.mod h1:44AEV+938HsS0mjfXtBDCUZS9vONlF2gwvh8wu4sRYc= +github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= +github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= +github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= +github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/klauspost/cpuid/v2 v2.2.9 h1:66ze0taIn2H33fBvCkXuv9BmCwDfafmiIVpKV9kKGuY= +github.com/klauspost/cpuid/v2 v2.2.9/go.mod h1:rqkxqrZ1EhYM9G+hXH7YdowN5R5RGN6NK4QwQ3WMXF8= +github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/kubetail-org/grpc-dispatcher-go v0.0.2 h1:ho+RffttK2Wdq99lJG+wUDJe+pmSTLSrrXCOgxQAvlg= +github.com/kubetail-org/grpc-dispatcher-go v0.0.2/go.mod h1:UHbHIp00DcCyOV0P/bd3PUQ77uQEGOICVp2D7Ikk1Fs= +github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= +github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= +github.com/magiconair/properties v1.8.9 h1:nWcCbLq1N2v/cpNsy5WvQ37Fb+YElfq20WJ/a8RkpQM= +github.com/magiconair/properties v1.8.9/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4= +github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= +github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= +github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/onsi/ginkgo/v2 v2.21.0 h1:7rg/4f3rB88pb5obDgNZrNHrQ4e6WpjonchcpuBRnZM= +github.com/onsi/ginkgo/v2 v2.21.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo= +github.com/onsi/gomega v1.35.1 h1:Cwbd75ZBPxFSuZ6T+rN/WCb/gOc6YgFBXLlZLhC7Ds4= +github.com/onsi/gomega v1.35.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog= +github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M= +github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= +github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= +github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= +github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/sagikazarmark/locafero v0.7.0 h1:5MqpDsTGNDhY8sGp0Aowyf0qKsPrhewaLSsFaodPcyo= +github.com/sagikazarmark/locafero v0.7.0/go.mod h1:2za3Cg5rMaTMoG/2Ulr9AwtFaIppKXTRYnozin4aB5k= +github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= +github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= +github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= +github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= +github.com/sosodev/duration v1.3.1 h1:qtHBDMQ6lvMQsL15g4aopM4HEfOaYuhWBw3NPTtlqq4= +github.com/sosodev/duration v1.3.1/go.mod h1:RQIBBX0+fMLc/D9+Jb/fwvVmo0eZvDDEERAikUR6SDg= +github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= +github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= +github.com/spf13/afero v1.12.0 h1:UcOPyRBYczmFn6yvphxkn9ZEOY65cpwGKb5mL36mrqs= +github.com/spf13/afero v1.12.0/go.mod h1:ZTlWwG4/ahT8W7T0WQ5uYmjI9duaLQGy3Q2OAl4sk/4= +github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y= +github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= +github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= +github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= +github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= +github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= +github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE= +github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= +github.com/urfave/cli/v2 v2.27.5 h1:WoHEJLdsXr6dDWoJgMq/CboDmyY/8HMMH1fTECbih+w= +github.com/urfave/cli/v2 v2.27.5/go.mod h1:3Sevf16NykTbInEnD0yKkjDAeZDS0A6bzhBH5hrMvTQ= +github.com/vektah/gqlparser/v2 v2.5.21 h1:Zw1rG2dr1pRR4wqwbVq4d6+xk2f4ut/yo+hwr4QjE08= +github.com/vektah/gqlparser/v2 v2.5.21/go.mod h1:xMl+ta8a5M1Yo1A1Iwt/k7gSpscwSnHZdw7tfhEGfTM= +github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= +github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= +github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4= +github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= +go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= +go.opentelemetry.io/otel v1.33.0 h1:/FerN9bax5LoK51X/sI0SVYrjSE0/yUL7DpxW4K3FWw= +go.opentelemetry.io/otel v1.33.0/go.mod h1:SUUkR6csvUQl+yjReHu5uM3EtVV7MBm5FHKRlNx4I8I= +go.opentelemetry.io/otel/metric v1.33.0 h1:r+JOocAyeRVXD8lZpjdQjzMadVZp2M4WmQ+5WtEnklQ= +go.opentelemetry.io/otel/metric v1.33.0/go.mod h1:L9+Fyctbp6HFTddIxClbQkjtubW6O9QS3Ann/M82u6M= +go.opentelemetry.io/otel/sdk v1.31.0 h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk= +go.opentelemetry.io/otel/sdk v1.31.0/go.mod h1:TfRbMdhvxIIr/B2N2LQW2S5v9m3gOQ/08KsbbO5BPT0= +go.opentelemetry.io/otel/sdk/metric v1.31.0 h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4JjxTeYusH7zMc= +go.opentelemetry.io/otel/sdk/metric v1.31.0/go.mod h1:CRInTMVvNhUKgSAMbKyTMxqOBC0zgyxzW55lZzX43Y8= +go.opentelemetry.io/otel/trace v1.33.0 h1:cCJuF7LRjUFso9LPnEAHJDB2pqzp+hbO8eu1qqW2d/s= +go.opentelemetry.io/otel/trace v1.33.0/go.mod h1:uIcdVUZMpTAmz0tI1z04GoVSezK37CbGV4fr1f2nBck= +go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= +go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +golang.org/x/arch v0.13.0 h1:KCkqVVV1kGg0X87TFysjCJ8MxtZEIU4Ja/yXGeoECdA= +golang.org/x/arch v0.13.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc= +golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= +golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 h1:yqrTHse8TCMW1M1ZCP+VAR/l0kKxwaAIqN/il7x4voA= +golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8/go.mod h1:tujkw807nyEEAamNbDrEGzRav+ilXA7PCRAd6xsmwiU= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= +golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= +golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= +golang.org/x/oauth2 v0.25.0 h1:CY4y7XT9v0cRI9oupztF8AgiIu99L/ksR/Xp/6jrZ70= +golang.org/x/oauth2 v0.25.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= +golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.28.0 h1:/Ts8HFuMR2E6IP/jlo7QVLZHggjKQbhu/7H0LJFr3Gg= +golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= +golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY= +golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE= +golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250106144421-5f5ef82da422 h1:3UsHvIr4Wc2aW4brOaSCmcxh9ksica6fHEr8P1XhkYw= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250106144421-5f5ef82da422/go.mod h1:3ENsm/5D1mzDyhpzeRi1NR784I0BcofWBoSc5QqqMK4= +google.golang.org/grpc v1.69.4 h1:MF5TftSMkd8GLw/m0KM6V8CMOCY6NZ1NQDPGFgbTt4A= +google.golang.org/grpc v1.69.4/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4= +google.golang.org/protobuf v1.36.2 h1:R8FeyR1/eLmkutZOM5CWghmo5itiG9z0ktFlTVLuTmU= +google.golang.org/protobuf v1.36.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4= +gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= +gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= +gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= +gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= +gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +k8s.io/api v0.32.0 h1:OL9JpbvAU5ny9ga2fb24X8H6xQlVp+aJMFlgtQjR9CE= +k8s.io/api v0.32.0/go.mod h1:4LEwHZEf6Q/cG96F3dqR965sYOfmPM7rq81BLgsE0p0= +k8s.io/apimachinery v0.32.0 h1:cFSE7N3rmEEtv4ei5X6DaJPHHX0C+upp+v5lVPiEwpg= +k8s.io/apimachinery v0.32.0/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= +k8s.io/client-go v0.32.0 h1:DimtMcnN/JIKZcrSrstiwvvZvLjG0aSxy8PxN8IChp8= +k8s.io/client-go v0.32.0/go.mod h1:boDWvdM1Drk4NJj/VddSLnx59X3OPgwrOo0vGbtq9+8= +k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= +k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7 h1:hcha5B1kVACrLujCKLbr8XWMxCxzQx42DY8QKYJrDLg= +k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7/go.mod h1:GewRfANuJ70iYzvn+i4lezLDAFzvjxZYK1gn1lWcfas= +k8s.io/utils v0.0.0-20241210054802-24370beab758 h1:sdbE21q2nlQtFh65saZY+rRM6x6aJJI8IUa1AmH/qa0= +k8s.io/utils v0.0.0-20241210054802-24370beab758/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= +sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= +sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= +sigs.k8s.io/structured-merge-diff/v4 v4.5.0 h1:nbCitCK2hfnhyiKo6uf2HxUPTCodY6Qaf85SbDIaMBk= +sigs.k8s.io/structured-merge-diff/v4 v4.5.0/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4= +sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= +sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/modules/cluster-api/gqlgen.yml b/modules/cluster-api/gqlgen.yml new file mode 100644 index 00000000..af9e12f9 --- /dev/null +++ b/modules/cluster-api/gqlgen.yml @@ -0,0 +1,124 @@ +# Where are all the schema files located? globs are supported eg src/**/*.graphqls +schema: + - graph/*.graphqls + +# Where should the generated server code go? +exec: + filename: graph/generated.go + package: graph + # Optional: Maximum number of goroutines in concurrency to use per child resolvers(default: unlimited) + # worker_limit: 1000 + +# Uncomment to enable federation +# federation: +# filename: graph/federation.go +# package: graph +# version: 2 +# options +# computed_requires: true + +# Where should any generated models go? +model: + filename: graph/model/models_gen.go + package: model + +# Where should the resolver implementations go? +resolver: + layout: follow-schema + dir: graph + package: graph + filename_template: "{name}.resolvers.go" + # Optional: turn on to not generate template comments above resolvers + # omit_template_comment: false + +# Optional: turn on use ` + "`" + `gqlgen:"fieldName"` + "`" + ` tags in your models +# struct_tag: json + +# Optional: turn on to use []Thing instead of []*Thing +# omit_slice_element_pointers: false + +# Optional: turn on to omit Is() methods to interface and unions +# omit_interface_checks : true + +# Optional: turn on to skip generation of ComplexityRoot struct content and Complexity function +# omit_complexity: false + +# Optional: turn on to not generate any file notice comments in generated files +# omit_gqlgen_file_notice: false + +# Optional: turn on to exclude the gqlgen version in the generated file notice. No effect if `omit_gqlgen_file_notice` is true. +# omit_gqlgen_version_in_file_notice: false + +# Optional: turn off to make struct-type struct fields not use pointers +# e.g. type Thing struct { FieldA OtherThing } instead of { FieldA *OtherThing } +# struct_fields_always_pointers: true + +# Optional: turn off to make resolvers return values instead of pointers for structs +# resolvers_always_return_pointers: true + +# Optional: turn on to return pointers instead of values in unmarshalInput +# return_pointers_in_unmarshalinput: false + +# Optional: wrap nullable input fields with Omittable +# nullable_input_omittable: true + +# Optional: set to speed up generation time by not performing a final validation pass. +# skip_validation: true + +# Optional: set to skip running `go mod tidy` when generating server code +# skip_mod_tidy: true + +# Optional: if this is set to true, argument directives that +# decorate a field with a null value will still be called. +# +# This enables argumment directives to not just mutate +# argument values but to set them even if they're null. +call_argument_directives_with_null: true + +# gqlgen will search for any type names in the schema in these go packages +# if they match it will use them, otherwise it will generate them. +autobind: +# - "github.com/kubetail-org/kubetail/modules/cluster-api/graph/model" + +# This section declares type mapping between the GraphQL and go type systems +# +# The first line in each type will be used as defaults for resolver arguments and +# modelgen, the others will be allowed when binding to fields. Configure them to +# your liking +models: + # --- LogMetadata --- + LogMetadata: + model: github.com/kubetail-org/kubetail/modules/shared/clusteragentpb.LogMetadata + + LogMetadataFileInfo: + model: github.com/kubetail-org/kubetail/modules/shared/clusteragentpb.LogMetadataFileInfo + + LogMetadataList: + model: github.com/kubetail-org/kubetail/modules/shared/clusteragentpb.LogMetadataList + + LogMetadataSpec: + model: github.com/kubetail-org/kubetail/modules/shared/clusteragentpb.LogMetadataSpec + + LogMetadataWatchEvent: + model: github.com/kubetail-org/kubetail/modules/shared/clusteragentpb.LogMetadataWatchEvent + + # --- custom scalars --- + Int64: + model: github.com/kubetail-org/kubetail/modules/shared/graphql/model.Int64 + + TimestampPBTimestamp: + model: + - github.com/kubetail-org/kubetail/modules/shared/graphql/model.TimestampPBTimestamp + + # --- gqlgen --- + ID: + model: + - github.com/99designs/gqlgen/graphql.ID + - github.com/99designs/gqlgen/graphql.Int + - github.com/99designs/gqlgen/graphql.Int64 + - github.com/99designs/gqlgen/graphql.Int32 + Int: + model: + - github.com/99designs/gqlgen/graphql.Int + - github.com/99designs/gqlgen/graphql.Int64 + - github.com/99designs/gqlgen/graphql.Int32 diff --git a/modules/server/internal/k8shelpers/mock/service.go b/modules/cluster-api/graph/errors.go similarity index 57% rename from modules/server/internal/k8shelpers/mock/service.go rename to modules/cluster-api/graph/errors.go index c3e7e8b2..2f49f5e7 100644 --- a/modules/server/internal/k8shelpers/mock/service.go +++ b/modules/cluster-api/graph/errors.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -12,27 +12,19 @@ // See the License for the specific language governing permissions and // limitations under the License. -package mock +package graph -import "github.com/stretchr/testify/mock" +import ( + "fmt" -type Service struct { - mock.Mock -} - -// Mock function to authenticate a token -func (s *Service) HasAccess(token string) (string, error) { - ret := s.Called(token) - - var r0 string - if ret.Get(0) != nil { - r0 = ret.Get(0).(string) - } + "github.com/vektah/gqlparser/v2/gqlerror" + "google.golang.org/grpc" - var r1 error - if ret.Get(1) != nil { - r1 = ret.Get(1).(error) - } + "github.com/kubetail-org/kubetail/modules/shared/graphql/errors" +) - return r0, r1 +// New GRPC error +func NewGrpcError(conn *grpc.ClientConn, err error) *gqlerror.Error { + err = fmt.Errorf("%s: %w", conn.CanonicalTarget(), err) + return errors.NewError("INTERNAL_SERVER_ERROR", err.Error()) } diff --git a/modules/cluster-api/graph/generated.go b/modules/cluster-api/graph/generated.go new file mode 100644 index 00000000..68a0f332 --- /dev/null +++ b/modules/cluster-api/graph/generated.go @@ -0,0 +1,4429 @@ +// Code generated by github.com/99designs/gqlgen, DO NOT EDIT. + +package graph + +import ( + "bytes" + "context" + "embed" + "errors" + "fmt" + "io" + "strconv" + "sync" + "sync/atomic" + + "github.com/99designs/gqlgen/graphql" + "github.com/99designs/gqlgen/graphql/introspection" + "github.com/kubetail-org/kubetail/modules/shared/clusteragentpb" + "github.com/kubetail-org/kubetail/modules/shared/graphql/model" + gqlparser "github.com/vektah/gqlparser/v2" + "github.com/vektah/gqlparser/v2/ast" + "google.golang.org/protobuf/types/known/timestamppb" +) + +// region ************************** generated!.gotpl ************************** + +// NewExecutableSchema creates an ExecutableSchema from the ResolverRoot interface. +func NewExecutableSchema(cfg Config) graphql.ExecutableSchema { + return &executableSchema{ + schema: cfg.Schema, + resolvers: cfg.Resolvers, + directives: cfg.Directives, + complexity: cfg.Complexity, + } +} + +type Config struct { + Schema *ast.Schema + Resolvers ResolverRoot + Directives DirectiveRoot + Complexity ComplexityRoot +} + +type ResolverRoot interface { + Query() QueryResolver + Subscription() SubscriptionResolver +} + +type DirectiveRoot struct { +} + +type ComplexityRoot struct { + LogMetadata struct { + FileInfo func(childComplexity int) int + Id func(childComplexity int) int + Spec func(childComplexity int) int + } + + LogMetadataFileInfo struct { + LastModifiedAt func(childComplexity int) int + Size func(childComplexity int) int + } + + LogMetadataList struct { + Items func(childComplexity int) int + } + + LogMetadataSpec struct { + ContainerId func(childComplexity int) int + ContainerName func(childComplexity int) int + Namespace func(childComplexity int) int + NodeName func(childComplexity int) int + PodName func(childComplexity int) int + } + + LogMetadataWatchEvent struct { + Object func(childComplexity int) int + Type func(childComplexity int) int + } + + Query struct { + LogMetadataList func(childComplexity int, namespace *string) int + } + + Subscription struct { + LogMetadataWatch func(childComplexity int, namespace *string) int + } +} + +type QueryResolver interface { + LogMetadataList(ctx context.Context, namespace *string) (*clusteragentpb.LogMetadataList, error) +} +type SubscriptionResolver interface { + LogMetadataWatch(ctx context.Context, namespace *string) (<-chan *clusteragentpb.LogMetadataWatchEvent, error) +} + +type executableSchema struct { + schema *ast.Schema + resolvers ResolverRoot + directives DirectiveRoot + complexity ComplexityRoot +} + +func (e *executableSchema) Schema() *ast.Schema { + if e.schema != nil { + return e.schema + } + return parsedSchema +} + +func (e *executableSchema) Complexity(typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) { + ec := executionContext{nil, e, 0, 0, nil} + _ = ec + switch typeName + "." + field { + + case "LogMetadata.fileInfo": + if e.complexity.LogMetadata.FileInfo == nil { + break + } + + return e.complexity.LogMetadata.FileInfo(childComplexity), true + + case "LogMetadata.id": + if e.complexity.LogMetadata.Id == nil { + break + } + + return e.complexity.LogMetadata.Id(childComplexity), true + + case "LogMetadata.spec": + if e.complexity.LogMetadata.Spec == nil { + break + } + + return e.complexity.LogMetadata.Spec(childComplexity), true + + case "LogMetadataFileInfo.lastModifiedAt": + if e.complexity.LogMetadataFileInfo.LastModifiedAt == nil { + break + } + + return e.complexity.LogMetadataFileInfo.LastModifiedAt(childComplexity), true + + case "LogMetadataFileInfo.size": + if e.complexity.LogMetadataFileInfo.Size == nil { + break + } + + return e.complexity.LogMetadataFileInfo.Size(childComplexity), true + + case "LogMetadataList.items": + if e.complexity.LogMetadataList.Items == nil { + break + } + + return e.complexity.LogMetadataList.Items(childComplexity), true + + case "LogMetadataSpec.containerID": + if e.complexity.LogMetadataSpec.ContainerId == nil { + break + } + + return e.complexity.LogMetadataSpec.ContainerId(childComplexity), true + + case "LogMetadataSpec.containerName": + if e.complexity.LogMetadataSpec.ContainerName == nil { + break + } + + return e.complexity.LogMetadataSpec.ContainerName(childComplexity), true + + case "LogMetadataSpec.namespace": + if e.complexity.LogMetadataSpec.Namespace == nil { + break + } + + return e.complexity.LogMetadataSpec.Namespace(childComplexity), true + + case "LogMetadataSpec.nodeName": + if e.complexity.LogMetadataSpec.NodeName == nil { + break + } + + return e.complexity.LogMetadataSpec.NodeName(childComplexity), true + + case "LogMetadataSpec.podName": + if e.complexity.LogMetadataSpec.PodName == nil { + break + } + + return e.complexity.LogMetadataSpec.PodName(childComplexity), true + + case "LogMetadataWatchEvent.object": + if e.complexity.LogMetadataWatchEvent.Object == nil { + break + } + + return e.complexity.LogMetadataWatchEvent.Object(childComplexity), true + + case "LogMetadataWatchEvent.type": + if e.complexity.LogMetadataWatchEvent.Type == nil { + break + } + + return e.complexity.LogMetadataWatchEvent.Type(childComplexity), true + + case "Query.logMetadataList": + if e.complexity.Query.LogMetadataList == nil { + break + } + + args, err := ec.field_Query_logMetadataList_args(context.TODO(), rawArgs) + if err != nil { + return 0, false + } + + return e.complexity.Query.LogMetadataList(childComplexity, args["namespace"].(*string)), true + + case "Subscription.logMetadataWatch": + if e.complexity.Subscription.LogMetadataWatch == nil { + break + } + + args, err := ec.field_Subscription_logMetadataWatch_args(context.TODO(), rawArgs) + if err != nil { + return 0, false + } + + return e.complexity.Subscription.LogMetadataWatch(childComplexity, args["namespace"].(*string)), true + + } + return 0, false +} + +func (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler { + opCtx := graphql.GetOperationContext(ctx) + ec := executionContext{opCtx, e, 0, 0, make(chan graphql.DeferredResult)} + inputUnmarshalMap := graphql.BuildUnmarshalerMap() + first := true + + switch opCtx.Operation.Operation { + case ast.Query: + return func(ctx context.Context) *graphql.Response { + var response graphql.Response + var data graphql.Marshaler + if first { + first = false + ctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap) + data = ec._Query(ctx, opCtx.Operation.SelectionSet) + } else { + if atomic.LoadInt32(&ec.pendingDeferred) > 0 { + result := <-ec.deferredResults + atomic.AddInt32(&ec.pendingDeferred, -1) + data = result.Result + response.Path = result.Path + response.Label = result.Label + response.Errors = result.Errors + } else { + return nil + } + } + var buf bytes.Buffer + data.MarshalGQL(&buf) + response.Data = buf.Bytes() + if atomic.LoadInt32(&ec.deferred) > 0 { + hasNext := atomic.LoadInt32(&ec.pendingDeferred) > 0 + response.HasNext = &hasNext + } + + return &response + } + case ast.Subscription: + next := ec._Subscription(ctx, opCtx.Operation.SelectionSet) + + var buf bytes.Buffer + return func(ctx context.Context) *graphql.Response { + buf.Reset() + data := next(ctx) + + if data == nil { + return nil + } + data.MarshalGQL(&buf) + + return &graphql.Response{ + Data: buf.Bytes(), + } + } + + default: + return graphql.OneShot(graphql.ErrorResponse(ctx, "unsupported GraphQL operation")) + } +} + +type executionContext struct { + *graphql.OperationContext + *executableSchema + deferred int32 + pendingDeferred int32 + deferredResults chan graphql.DeferredResult +} + +func (ec *executionContext) processDeferredGroup(dg graphql.DeferredGroup) { + atomic.AddInt32(&ec.pendingDeferred, 1) + go func() { + ctx := graphql.WithFreshResponseContext(dg.Context) + dg.FieldSet.Dispatch(ctx) + ds := graphql.DeferredResult{ + Path: dg.Path, + Label: dg.Label, + Result: dg.FieldSet, + Errors: graphql.GetErrors(ctx), + } + // null fields should bubble up + if dg.FieldSet.Invalids > 0 { + ds.Result = graphql.Null + } + ec.deferredResults <- ds + }() +} + +func (ec *executionContext) introspectSchema() (*introspection.Schema, error) { + if ec.DisableIntrospection { + return nil, errors.New("introspection disabled") + } + return introspection.WrapSchema(ec.Schema()), nil +} + +func (ec *executionContext) introspectType(name string) (*introspection.Type, error) { + if ec.DisableIntrospection { + return nil, errors.New("introspection disabled") + } + return introspection.WrapTypeFromDef(ec.Schema(), ec.Schema().Types[name]), nil +} + +//go:embed "schema.graphqls" +var sourcesFS embed.FS + +func sourceData(filename string) string { + data, err := sourcesFS.ReadFile(filename) + if err != nil { + panic(fmt.Sprintf("codegen problem: %s not available", filename)) + } + return string(data) +} + +var sources = []*ast.Source{ + {Name: "schema.graphqls", Input: sourceData("schema.graphqls"), BuiltIn: false}, +} +var parsedSchema = gqlparser.MustLoadSchema(sources...) + +// endregion ************************** generated!.gotpl ************************** + +// region ***************************** args.gotpl ***************************** + +func (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { + var err error + args := map[string]any{} + arg0, err := ec.field_Query___type_argsName(ctx, rawArgs) + if err != nil { + return nil, err + } + args["name"] = arg0 + return args, nil +} +func (ec *executionContext) field_Query___type_argsName( + ctx context.Context, + rawArgs map[string]any, +) (string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("name")) + if tmp, ok := rawArgs["name"]; ok { + return ec.unmarshalNString2string(ctx, tmp) + } + + var zeroVal string + return zeroVal, nil +} + +func (ec *executionContext) field_Query_logMetadataList_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { + var err error + args := map[string]any{} + arg0, err := ec.field_Query_logMetadataList_argsNamespace(ctx, rawArgs) + if err != nil { + return nil, err + } + args["namespace"] = arg0 + return args, nil +} +func (ec *executionContext) field_Query_logMetadataList_argsNamespace( + ctx context.Context, + rawArgs map[string]any, +) (*string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) + if tmp, ok := rawArgs["namespace"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) + } + + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Subscription_logMetadataWatch_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { + var err error + args := map[string]any{} + arg0, err := ec.field_Subscription_logMetadataWatch_argsNamespace(ctx, rawArgs) + if err != nil { + return nil, err + } + args["namespace"] = arg0 + return args, nil +} +func (ec *executionContext) field_Subscription_logMetadataWatch_argsNamespace( + ctx context.Context, + rawArgs map[string]any, +) (*string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) + if tmp, ok := rawArgs["namespace"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) + } + + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { + var err error + args := map[string]any{} + arg0, err := ec.field___Type_enumValues_argsIncludeDeprecated(ctx, rawArgs) + if err != nil { + return nil, err + } + args["includeDeprecated"] = arg0 + return args, nil +} +func (ec *executionContext) field___Type_enumValues_argsIncludeDeprecated( + ctx context.Context, + rawArgs map[string]any, +) (bool, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("includeDeprecated")) + if tmp, ok := rawArgs["includeDeprecated"]; ok { + return ec.unmarshalOBoolean2bool(ctx, tmp) + } + + var zeroVal bool + return zeroVal, nil +} + +func (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { + var err error + args := map[string]any{} + arg0, err := ec.field___Type_fields_argsIncludeDeprecated(ctx, rawArgs) + if err != nil { + return nil, err + } + args["includeDeprecated"] = arg0 + return args, nil +} +func (ec *executionContext) field___Type_fields_argsIncludeDeprecated( + ctx context.Context, + rawArgs map[string]any, +) (bool, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("includeDeprecated")) + if tmp, ok := rawArgs["includeDeprecated"]; ok { + return ec.unmarshalOBoolean2bool(ctx, tmp) + } + + var zeroVal bool + return zeroVal, nil +} + +// endregion ***************************** args.gotpl ***************************** + +// region ************************** directives.gotpl ************************** + +// endregion ************************** directives.gotpl ************************** + +// region **************************** field.gotpl ***************************** + +func (ec *executionContext) _LogMetadata_id(ctx context.Context, field graphql.CollectedField, obj *clusteragentpb.LogMetadata) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_LogMetadata_id(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Id, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNID2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_LogMetadata_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "LogMetadata", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type ID does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _LogMetadata_spec(ctx context.Context, field graphql.CollectedField, obj *clusteragentpb.LogMetadata) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_LogMetadata_spec(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Spec, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(*clusteragentpb.LogMetadataSpec) + fc.Result = res + return ec.marshalNLogMetadataSpec2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋsharedᚋclusteragentpbᚐLogMetadataSpec(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_LogMetadata_spec(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "LogMetadata", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "nodeName": + return ec.fieldContext_LogMetadataSpec_nodeName(ctx, field) + case "namespace": + return ec.fieldContext_LogMetadataSpec_namespace(ctx, field) + case "podName": + return ec.fieldContext_LogMetadataSpec_podName(ctx, field) + case "containerName": + return ec.fieldContext_LogMetadataSpec_containerName(ctx, field) + case "containerID": + return ec.fieldContext_LogMetadataSpec_containerID(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type LogMetadataSpec", field.Name) + }, + } + return fc, nil +} + +func (ec *executionContext) _LogMetadata_fileInfo(ctx context.Context, field graphql.CollectedField, obj *clusteragentpb.LogMetadata) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_LogMetadata_fileInfo(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.FileInfo, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(*clusteragentpb.LogMetadataFileInfo) + fc.Result = res + return ec.marshalNLogMetadataFileInfo2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋsharedᚋclusteragentpbᚐLogMetadataFileInfo(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_LogMetadata_fileInfo(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "LogMetadata", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "size": + return ec.fieldContext_LogMetadataFileInfo_size(ctx, field) + case "lastModifiedAt": + return ec.fieldContext_LogMetadataFileInfo_lastModifiedAt(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type LogMetadataFileInfo", field.Name) + }, + } + return fc, nil +} + +func (ec *executionContext) _LogMetadataFileInfo_size(ctx context.Context, field graphql.CollectedField, obj *clusteragentpb.LogMetadataFileInfo) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_LogMetadataFileInfo_size(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Size, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(int64) + fc.Result = res + return ec.marshalNInt642int64(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_LogMetadataFileInfo_size(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "LogMetadataFileInfo", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type Int64 does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _LogMetadataFileInfo_lastModifiedAt(ctx context.Context, field graphql.CollectedField, obj *clusteragentpb.LogMetadataFileInfo) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_LogMetadataFileInfo_lastModifiedAt(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.LastModifiedAt, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*timestamppb.Timestamp) + fc.Result = res + return ec.marshalOTimestampPBTimestamp2ᚖgoogleᚗgolangᚗorgᚋprotobufᚋtypesᚋknownᚋtimestamppbᚐTimestamp(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_LogMetadataFileInfo_lastModifiedAt(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "LogMetadataFileInfo", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type TimestampPBTimestamp does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _LogMetadataList_items(ctx context.Context, field graphql.CollectedField, obj *clusteragentpb.LogMetadataList) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_LogMetadataList_items(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Items, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.([]*clusteragentpb.LogMetadata) + fc.Result = res + return ec.marshalNLogMetadata2ᚕᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋsharedᚋclusteragentpbᚐLogMetadataᚄ(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_LogMetadataList_items(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "LogMetadataList", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "id": + return ec.fieldContext_LogMetadata_id(ctx, field) + case "spec": + return ec.fieldContext_LogMetadata_spec(ctx, field) + case "fileInfo": + return ec.fieldContext_LogMetadata_fileInfo(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type LogMetadata", field.Name) + }, + } + return fc, nil +} + +func (ec *executionContext) _LogMetadataSpec_nodeName(ctx context.Context, field graphql.CollectedField, obj *clusteragentpb.LogMetadataSpec) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_LogMetadataSpec_nodeName(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.NodeName, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNString2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_LogMetadataSpec_nodeName(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "LogMetadataSpec", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _LogMetadataSpec_namespace(ctx context.Context, field graphql.CollectedField, obj *clusteragentpb.LogMetadataSpec) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_LogMetadataSpec_namespace(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Namespace, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNString2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_LogMetadataSpec_namespace(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "LogMetadataSpec", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _LogMetadataSpec_podName(ctx context.Context, field graphql.CollectedField, obj *clusteragentpb.LogMetadataSpec) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_LogMetadataSpec_podName(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.PodName, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNString2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_LogMetadataSpec_podName(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "LogMetadataSpec", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _LogMetadataSpec_containerName(ctx context.Context, field graphql.CollectedField, obj *clusteragentpb.LogMetadataSpec) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_LogMetadataSpec_containerName(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.ContainerName, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNString2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_LogMetadataSpec_containerName(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "LogMetadataSpec", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _LogMetadataSpec_containerID(ctx context.Context, field graphql.CollectedField, obj *clusteragentpb.LogMetadataSpec) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_LogMetadataSpec_containerID(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.ContainerId, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNID2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_LogMetadataSpec_containerID(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "LogMetadataSpec", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type ID does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _LogMetadataWatchEvent_type(ctx context.Context, field graphql.CollectedField, obj *clusteragentpb.LogMetadataWatchEvent) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_LogMetadataWatchEvent_type(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Type, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNString2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_LogMetadataWatchEvent_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "LogMetadataWatchEvent", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _LogMetadataWatchEvent_object(ctx context.Context, field graphql.CollectedField, obj *clusteragentpb.LogMetadataWatchEvent) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_LogMetadataWatchEvent_object(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Object, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*clusteragentpb.LogMetadata) + fc.Result = res + return ec.marshalOLogMetadata2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋsharedᚋclusteragentpbᚐLogMetadata(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_LogMetadataWatchEvent_object(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "LogMetadataWatchEvent", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "id": + return ec.fieldContext_LogMetadata_id(ctx, field) + case "spec": + return ec.fieldContext_LogMetadata_spec(ctx, field) + case "fileInfo": + return ec.fieldContext_LogMetadata_fileInfo(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type LogMetadata", field.Name) + }, + } + return fc, nil +} + +func (ec *executionContext) _Query_logMetadataList(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Query_logMetadataList(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return ec.resolvers.Query().LogMetadataList(rctx, fc.Args["namespace"].(*string)) + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*clusteragentpb.LogMetadataList) + fc.Result = res + return ec.marshalOLogMetadataList2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋsharedᚋclusteragentpbᚐLogMetadataList(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_Query_logMetadataList(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "Query", + Field: field, + IsMethod: true, + IsResolver: true, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "items": + return ec.fieldContext_LogMetadataList_items(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type LogMetadataList", field.Name) + }, + } + defer func() { + if r := recover(); r != nil { + err = ec.Recover(ctx, r) + ec.Error(ctx, err) + } + }() + ctx = graphql.WithFieldContext(ctx, fc) + if fc.Args, err = ec.field_Query_logMetadataList_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { + ec.Error(ctx, err) + return fc, err + } + return fc, nil +} + +func (ec *executionContext) _Query___type(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Query___type(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return ec.introspectType(fc.Args["name"].(string)) + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) + fc.Result = res + return ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_Query___type(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "Query", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "kind": + return ec.fieldContext___Type_kind(ctx, field) + case "name": + return ec.fieldContext___Type_name(ctx, field) + case "description": + return ec.fieldContext___Type_description(ctx, field) + case "fields": + return ec.fieldContext___Type_fields(ctx, field) + case "interfaces": + return ec.fieldContext___Type_interfaces(ctx, field) + case "possibleTypes": + return ec.fieldContext___Type_possibleTypes(ctx, field) + case "enumValues": + return ec.fieldContext___Type_enumValues(ctx, field) + case "inputFields": + return ec.fieldContext___Type_inputFields(ctx, field) + case "ofType": + return ec.fieldContext___Type_ofType(ctx, field) + case "specifiedByURL": + return ec.fieldContext___Type_specifiedByURL(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type __Type", field.Name) + }, + } + defer func() { + if r := recover(); r != nil { + err = ec.Recover(ctx, r) + ec.Error(ctx, err) + } + }() + ctx = graphql.WithFieldContext(ctx, fc) + if fc.Args, err = ec.field_Query___type_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { + ec.Error(ctx, err) + return fc, err + } + return fc, nil +} + +func (ec *executionContext) _Query___schema(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Query___schema(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return ec.introspectSchema() + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Schema) + fc.Result = res + return ec.marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_Query___schema(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "Query", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "description": + return ec.fieldContext___Schema_description(ctx, field) + case "types": + return ec.fieldContext___Schema_types(ctx, field) + case "queryType": + return ec.fieldContext___Schema_queryType(ctx, field) + case "mutationType": + return ec.fieldContext___Schema_mutationType(ctx, field) + case "subscriptionType": + return ec.fieldContext___Schema_subscriptionType(ctx, field) + case "directives": + return ec.fieldContext___Schema_directives(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type __Schema", field.Name) + }, + } + return fc, nil +} + +func (ec *executionContext) _Subscription_logMetadataWatch(ctx context.Context, field graphql.CollectedField) (ret func(ctx context.Context) graphql.Marshaler) { + fc, err := ec.fieldContext_Subscription_logMetadataWatch(ctx, field) + if err != nil { + return nil + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = nil + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return ec.resolvers.Subscription().LogMetadataWatch(rctx, fc.Args["namespace"].(*string)) + }) + if err != nil { + ec.Error(ctx, err) + return nil + } + if resTmp == nil { + return nil + } + return func(ctx context.Context) graphql.Marshaler { + select { + case res, ok := <-resTmp.(<-chan *clusteragentpb.LogMetadataWatchEvent): + if !ok { + return nil + } + return graphql.WriterFunc(func(w io.Writer) { + w.Write([]byte{'{'}) + graphql.MarshalString(field.Alias).MarshalGQL(w) + w.Write([]byte{':'}) + ec.marshalOLogMetadataWatchEvent2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋsharedᚋclusteragentpbᚐLogMetadataWatchEvent(ctx, field.Selections, res).MarshalGQL(w) + w.Write([]byte{'}'}) + }) + case <-ctx.Done(): + return nil + } + } +} + +func (ec *executionContext) fieldContext_Subscription_logMetadataWatch(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "Subscription", + Field: field, + IsMethod: true, + IsResolver: true, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "type": + return ec.fieldContext_LogMetadataWatchEvent_type(ctx, field) + case "object": + return ec.fieldContext_LogMetadataWatchEvent_object(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type LogMetadataWatchEvent", field.Name) + }, + } + defer func() { + if r := recover(); r != nil { + err = ec.Recover(ctx, r) + ec.Error(ctx, err) + } + }() + ctx = graphql.WithFieldContext(ctx, fc) + if fc.Args, err = ec.field_Subscription_logMetadataWatch_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { + ec.Error(ctx, err) + return fc, err + } + return fc, nil +} + +func (ec *executionContext) ___Directive_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___Directive_name(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNString2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___Directive_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__Directive", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) ___Directive_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___Directive_description(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Description(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*string) + fc.Result = res + return ec.marshalOString2ᚖstring(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___Directive_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__Directive", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) ___Directive_locations(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___Directive_locations(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Locations, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.([]string) + fc.Result = res + return ec.marshalN__DirectiveLocation2ᚕstringᚄ(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___Directive_locations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__Directive", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type __DirectiveLocation does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) ___Directive_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___Directive_args(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Args, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.([]introspection.InputValue) + fc.Result = res + return ec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___Directive_args(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__Directive", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "name": + return ec.fieldContext___InputValue_name(ctx, field) + case "description": + return ec.fieldContext___InputValue_description(ctx, field) + case "type": + return ec.fieldContext___InputValue_type(ctx, field) + case "defaultValue": + return ec.fieldContext___InputValue_defaultValue(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type __InputValue", field.Name) + }, + } + return fc, nil +} + +func (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field graphql.CollectedField, obj *introspection.Directive) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___Directive_isRepeatable(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.IsRepeatable, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(bool) + fc.Result = res + return ec.marshalNBoolean2bool(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___Directive_isRepeatable(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__Directive", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type Boolean does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___EnumValue_name(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNString2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___EnumValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__EnumValue", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) ___EnumValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___EnumValue_description(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Description(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*string) + fc.Result = res + return ec.marshalOString2ᚖstring(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___EnumValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__EnumValue", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___EnumValue_isDeprecated(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.IsDeprecated(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(bool) + fc.Result = res + return ec.marshalNBoolean2bool(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___EnumValue_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__EnumValue", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type Boolean does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.EnumValue) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___EnumValue_deprecationReason(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.DeprecationReason(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*string) + fc.Result = res + return ec.marshalOString2ᚖstring(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___EnumValue_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__EnumValue", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) ___Field_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___Field_name(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNString2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___Field_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__Field", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) ___Field_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___Field_description(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Description(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*string) + fc.Result = res + return ec.marshalOString2ᚖstring(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___Field_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__Field", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) ___Field_args(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___Field_args(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Args, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.([]introspection.InputValue) + fc.Result = res + return ec.marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___Field_args(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__Field", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "name": + return ec.fieldContext___InputValue_name(ctx, field) + case "description": + return ec.fieldContext___InputValue_description(ctx, field) + case "type": + return ec.fieldContext___InputValue_type(ctx, field) + case "defaultValue": + return ec.fieldContext___InputValue_defaultValue(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type __InputValue", field.Name) + }, + } + return fc, nil +} + +func (ec *executionContext) ___Field_type(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___Field_type(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Type, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(*introspection.Type) + fc.Result = res + return ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___Field_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__Field", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "kind": + return ec.fieldContext___Type_kind(ctx, field) + case "name": + return ec.fieldContext___Type_name(ctx, field) + case "description": + return ec.fieldContext___Type_description(ctx, field) + case "fields": + return ec.fieldContext___Type_fields(ctx, field) + case "interfaces": + return ec.fieldContext___Type_interfaces(ctx, field) + case "possibleTypes": + return ec.fieldContext___Type_possibleTypes(ctx, field) + case "enumValues": + return ec.fieldContext___Type_enumValues(ctx, field) + case "inputFields": + return ec.fieldContext___Type_inputFields(ctx, field) + case "ofType": + return ec.fieldContext___Type_ofType(ctx, field) + case "specifiedByURL": + return ec.fieldContext___Type_specifiedByURL(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type __Type", field.Name) + }, + } + return fc, nil +} + +func (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___Field_isDeprecated(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.IsDeprecated(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(bool) + fc.Result = res + return ec.marshalNBoolean2bool(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___Field_isDeprecated(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__Field", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type Boolean does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) ___Field_deprecationReason(ctx context.Context, field graphql.CollectedField, obj *introspection.Field) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___Field_deprecationReason(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.DeprecationReason(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*string) + fc.Result = res + return ec.marshalOString2ᚖstring(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___Field_deprecationReason(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__Field", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) ___InputValue_name(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___InputValue_name(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNString2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___InputValue_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__InputValue", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) ___InputValue_description(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___InputValue_description(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Description(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*string) + fc.Result = res + return ec.marshalOString2ᚖstring(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___InputValue_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__InputValue", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) ___InputValue_type(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___InputValue_type(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Type, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(*introspection.Type) + fc.Result = res + return ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___InputValue_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__InputValue", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "kind": + return ec.fieldContext___Type_kind(ctx, field) + case "name": + return ec.fieldContext___Type_name(ctx, field) + case "description": + return ec.fieldContext___Type_description(ctx, field) + case "fields": + return ec.fieldContext___Type_fields(ctx, field) + case "interfaces": + return ec.fieldContext___Type_interfaces(ctx, field) + case "possibleTypes": + return ec.fieldContext___Type_possibleTypes(ctx, field) + case "enumValues": + return ec.fieldContext___Type_enumValues(ctx, field) + case "inputFields": + return ec.fieldContext___Type_inputFields(ctx, field) + case "ofType": + return ec.fieldContext___Type_ofType(ctx, field) + case "specifiedByURL": + return ec.fieldContext___Type_specifiedByURL(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type __Type", field.Name) + }, + } + return fc, nil +} + +func (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, field graphql.CollectedField, obj *introspection.InputValue) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___InputValue_defaultValue(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.DefaultValue, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*string) + fc.Result = res + return ec.marshalOString2ᚖstring(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___InputValue_defaultValue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__InputValue", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) ___Schema_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___Schema_description(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Description(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*string) + fc.Result = res + return ec.marshalOString2ᚖstring(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___Schema_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__Schema", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___Schema_types(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Types(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.([]introspection.Type) + fc.Result = res + return ec.marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___Schema_types(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__Schema", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "kind": + return ec.fieldContext___Type_kind(ctx, field) + case "name": + return ec.fieldContext___Type_name(ctx, field) + case "description": + return ec.fieldContext___Type_description(ctx, field) + case "fields": + return ec.fieldContext___Type_fields(ctx, field) + case "interfaces": + return ec.fieldContext___Type_interfaces(ctx, field) + case "possibleTypes": + return ec.fieldContext___Type_possibleTypes(ctx, field) + case "enumValues": + return ec.fieldContext___Type_enumValues(ctx, field) + case "inputFields": + return ec.fieldContext___Type_inputFields(ctx, field) + case "ofType": + return ec.fieldContext___Type_ofType(ctx, field) + case "specifiedByURL": + return ec.fieldContext___Type_specifiedByURL(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type __Type", field.Name) + }, + } + return fc, nil +} + +func (ec *executionContext) ___Schema_queryType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___Schema_queryType(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.QueryType(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(*introspection.Type) + fc.Result = res + return ec.marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___Schema_queryType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__Schema", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "kind": + return ec.fieldContext___Type_kind(ctx, field) + case "name": + return ec.fieldContext___Type_name(ctx, field) + case "description": + return ec.fieldContext___Type_description(ctx, field) + case "fields": + return ec.fieldContext___Type_fields(ctx, field) + case "interfaces": + return ec.fieldContext___Type_interfaces(ctx, field) + case "possibleTypes": + return ec.fieldContext___Type_possibleTypes(ctx, field) + case "enumValues": + return ec.fieldContext___Type_enumValues(ctx, field) + case "inputFields": + return ec.fieldContext___Type_inputFields(ctx, field) + case "ofType": + return ec.fieldContext___Type_ofType(ctx, field) + case "specifiedByURL": + return ec.fieldContext___Type_specifiedByURL(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type __Type", field.Name) + }, + } + return fc, nil +} + +func (ec *executionContext) ___Schema_mutationType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___Schema_mutationType(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.MutationType(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) + fc.Result = res + return ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___Schema_mutationType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__Schema", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "kind": + return ec.fieldContext___Type_kind(ctx, field) + case "name": + return ec.fieldContext___Type_name(ctx, field) + case "description": + return ec.fieldContext___Type_description(ctx, field) + case "fields": + return ec.fieldContext___Type_fields(ctx, field) + case "interfaces": + return ec.fieldContext___Type_interfaces(ctx, field) + case "possibleTypes": + return ec.fieldContext___Type_possibleTypes(ctx, field) + case "enumValues": + return ec.fieldContext___Type_enumValues(ctx, field) + case "inputFields": + return ec.fieldContext___Type_inputFields(ctx, field) + case "ofType": + return ec.fieldContext___Type_ofType(ctx, field) + case "specifiedByURL": + return ec.fieldContext___Type_specifiedByURL(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type __Type", field.Name) + }, + } + return fc, nil +} + +func (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___Schema_subscriptionType(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.SubscriptionType(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) + fc.Result = res + return ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___Schema_subscriptionType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__Schema", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "kind": + return ec.fieldContext___Type_kind(ctx, field) + case "name": + return ec.fieldContext___Type_name(ctx, field) + case "description": + return ec.fieldContext___Type_description(ctx, field) + case "fields": + return ec.fieldContext___Type_fields(ctx, field) + case "interfaces": + return ec.fieldContext___Type_interfaces(ctx, field) + case "possibleTypes": + return ec.fieldContext___Type_possibleTypes(ctx, field) + case "enumValues": + return ec.fieldContext___Type_enumValues(ctx, field) + case "inputFields": + return ec.fieldContext___Type_inputFields(ctx, field) + case "ofType": + return ec.fieldContext___Type_ofType(ctx, field) + case "specifiedByURL": + return ec.fieldContext___Type_specifiedByURL(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type __Type", field.Name) + }, + } + return fc, nil +} + +func (ec *executionContext) ___Schema_directives(ctx context.Context, field graphql.CollectedField, obj *introspection.Schema) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___Schema_directives(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Directives(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.([]introspection.Directive) + fc.Result = res + return ec.marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___Schema_directives(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__Schema", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "name": + return ec.fieldContext___Directive_name(ctx, field) + case "description": + return ec.fieldContext___Directive_description(ctx, field) + case "locations": + return ec.fieldContext___Directive_locations(ctx, field) + case "args": + return ec.fieldContext___Directive_args(ctx, field) + case "isRepeatable": + return ec.fieldContext___Directive_isRepeatable(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type __Directive", field.Name) + }, + } + return fc, nil +} + +func (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___Type_kind(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Kind(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalN__TypeKind2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___Type_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__Type", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type __TypeKind does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) ___Type_name(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___Type_name(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Name(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*string) + fc.Result = res + return ec.marshalOString2ᚖstring(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___Type_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__Type", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) ___Type_description(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___Type_description(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Description(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*string) + fc.Result = res + return ec.marshalOString2ᚖstring(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___Type_description(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__Type", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___Type_fields(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Fields(fc.Args["includeDeprecated"].(bool)), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Field) + fc.Result = res + return ec.marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___Type_fields(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__Type", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "name": + return ec.fieldContext___Field_name(ctx, field) + case "description": + return ec.fieldContext___Field_description(ctx, field) + case "args": + return ec.fieldContext___Field_args(ctx, field) + case "type": + return ec.fieldContext___Field_type(ctx, field) + case "isDeprecated": + return ec.fieldContext___Field_isDeprecated(ctx, field) + case "deprecationReason": + return ec.fieldContext___Field_deprecationReason(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type __Field", field.Name) + }, + } + defer func() { + if r := recover(); r != nil { + err = ec.Recover(ctx, r) + ec.Error(ctx, err) + } + }() + ctx = graphql.WithFieldContext(ctx, fc) + if fc.Args, err = ec.field___Type_fields_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { + ec.Error(ctx, err) + return fc, err + } + return fc, nil +} + +func (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___Type_interfaces(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Interfaces(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Type) + fc.Result = res + return ec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___Type_interfaces(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__Type", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "kind": + return ec.fieldContext___Type_kind(ctx, field) + case "name": + return ec.fieldContext___Type_name(ctx, field) + case "description": + return ec.fieldContext___Type_description(ctx, field) + case "fields": + return ec.fieldContext___Type_fields(ctx, field) + case "interfaces": + return ec.fieldContext___Type_interfaces(ctx, field) + case "possibleTypes": + return ec.fieldContext___Type_possibleTypes(ctx, field) + case "enumValues": + return ec.fieldContext___Type_enumValues(ctx, field) + case "inputFields": + return ec.fieldContext___Type_inputFields(ctx, field) + case "ofType": + return ec.fieldContext___Type_ofType(ctx, field) + case "specifiedByURL": + return ec.fieldContext___Type_specifiedByURL(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type __Type", field.Name) + }, + } + return fc, nil +} + +func (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___Type_possibleTypes(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.PossibleTypes(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.Type) + fc.Result = res + return ec.marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___Type_possibleTypes(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__Type", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "kind": + return ec.fieldContext___Type_kind(ctx, field) + case "name": + return ec.fieldContext___Type_name(ctx, field) + case "description": + return ec.fieldContext___Type_description(ctx, field) + case "fields": + return ec.fieldContext___Type_fields(ctx, field) + case "interfaces": + return ec.fieldContext___Type_interfaces(ctx, field) + case "possibleTypes": + return ec.fieldContext___Type_possibleTypes(ctx, field) + case "enumValues": + return ec.fieldContext___Type_enumValues(ctx, field) + case "inputFields": + return ec.fieldContext___Type_inputFields(ctx, field) + case "ofType": + return ec.fieldContext___Type_ofType(ctx, field) + case "specifiedByURL": + return ec.fieldContext___Type_specifiedByURL(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type __Type", field.Name) + }, + } + return fc, nil +} + +func (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___Type_enumValues(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.EnumValues(fc.Args["includeDeprecated"].(bool)), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.EnumValue) + fc.Result = res + return ec.marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___Type_enumValues(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__Type", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "name": + return ec.fieldContext___EnumValue_name(ctx, field) + case "description": + return ec.fieldContext___EnumValue_description(ctx, field) + case "isDeprecated": + return ec.fieldContext___EnumValue_isDeprecated(ctx, field) + case "deprecationReason": + return ec.fieldContext___EnumValue_deprecationReason(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type __EnumValue", field.Name) + }, + } + defer func() { + if r := recover(); r != nil { + err = ec.Recover(ctx, r) + ec.Error(ctx, err) + } + }() + ctx = graphql.WithFieldContext(ctx, fc) + if fc.Args, err = ec.field___Type_enumValues_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { + ec.Error(ctx, err) + return fc, err + } + return fc, nil +} + +func (ec *executionContext) ___Type_inputFields(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___Type_inputFields(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.InputFields(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.([]introspection.InputValue) + fc.Result = res + return ec.marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___Type_inputFields(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__Type", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "name": + return ec.fieldContext___InputValue_name(ctx, field) + case "description": + return ec.fieldContext___InputValue_description(ctx, field) + case "type": + return ec.fieldContext___InputValue_type(ctx, field) + case "defaultValue": + return ec.fieldContext___InputValue_defaultValue(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type __InputValue", field.Name) + }, + } + return fc, nil +} + +func (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___Type_ofType(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.OfType(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*introspection.Type) + fc.Result = res + return ec.marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___Type_ofType(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__Type", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "kind": + return ec.fieldContext___Type_kind(ctx, field) + case "name": + return ec.fieldContext___Type_name(ctx, field) + case "description": + return ec.fieldContext___Type_description(ctx, field) + case "fields": + return ec.fieldContext___Type_fields(ctx, field) + case "interfaces": + return ec.fieldContext___Type_interfaces(ctx, field) + case "possibleTypes": + return ec.fieldContext___Type_possibleTypes(ctx, field) + case "enumValues": + return ec.fieldContext___Type_enumValues(ctx, field) + case "inputFields": + return ec.fieldContext___Type_inputFields(ctx, field) + case "ofType": + return ec.fieldContext___Type_ofType(ctx, field) + case "specifiedByURL": + return ec.fieldContext___Type_specifiedByURL(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type __Type", field.Name) + }, + } + return fc, nil +} + +func (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field graphql.CollectedField, obj *introspection.Type) (ret graphql.Marshaler) { + fc, err := ec.fieldContext___Type_specifiedByURL(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.SpecifiedByURL(), nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*string) + fc.Result = res + return ec.marshalOString2ᚖstring(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "__Type", + Field: field, + IsMethod: true, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +// endregion **************************** field.gotpl ***************************** + +// region **************************** input.gotpl ***************************** + +// endregion **************************** input.gotpl ***************************** + +// region ************************** interface.gotpl *************************** + +// endregion ************************** interface.gotpl *************************** + +// region **************************** object.gotpl **************************** + +var logMetadataImplementors = []string{"LogMetadata"} + +func (ec *executionContext) _LogMetadata(ctx context.Context, sel ast.SelectionSet, obj *clusteragentpb.LogMetadata) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, logMetadataImplementors) + + out := graphql.NewFieldSet(fields) + deferred := make(map[string]*graphql.FieldSet) + for i, field := range fields { + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("LogMetadata") + case "id": + out.Values[i] = ec._LogMetadata_id(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "spec": + out.Values[i] = ec._LogMetadata_spec(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "fileInfo": + out.Values[i] = ec._LogMetadata_fileInfo(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch(ctx) + if out.Invalids > 0 { + return graphql.Null + } + + atomic.AddInt32(&ec.deferred, int32(len(deferred))) + + for label, dfs := range deferred { + ec.processDeferredGroup(graphql.DeferredGroup{ + Label: label, + Path: graphql.GetPath(ctx), + FieldSet: dfs, + Context: ctx, + }) + } + + return out +} + +var logMetadataFileInfoImplementors = []string{"LogMetadataFileInfo"} + +func (ec *executionContext) _LogMetadataFileInfo(ctx context.Context, sel ast.SelectionSet, obj *clusteragentpb.LogMetadataFileInfo) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, logMetadataFileInfoImplementors) + + out := graphql.NewFieldSet(fields) + deferred := make(map[string]*graphql.FieldSet) + for i, field := range fields { + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("LogMetadataFileInfo") + case "size": + out.Values[i] = ec._LogMetadataFileInfo_size(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "lastModifiedAt": + out.Values[i] = ec._LogMetadataFileInfo_lastModifiedAt(ctx, field, obj) + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch(ctx) + if out.Invalids > 0 { + return graphql.Null + } + + atomic.AddInt32(&ec.deferred, int32(len(deferred))) + + for label, dfs := range deferred { + ec.processDeferredGroup(graphql.DeferredGroup{ + Label: label, + Path: graphql.GetPath(ctx), + FieldSet: dfs, + Context: ctx, + }) + } + + return out +} + +var logMetadataListImplementors = []string{"LogMetadataList"} + +func (ec *executionContext) _LogMetadataList(ctx context.Context, sel ast.SelectionSet, obj *clusteragentpb.LogMetadataList) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, logMetadataListImplementors) + + out := graphql.NewFieldSet(fields) + deferred := make(map[string]*graphql.FieldSet) + for i, field := range fields { + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("LogMetadataList") + case "items": + out.Values[i] = ec._LogMetadataList_items(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch(ctx) + if out.Invalids > 0 { + return graphql.Null + } + + atomic.AddInt32(&ec.deferred, int32(len(deferred))) + + for label, dfs := range deferred { + ec.processDeferredGroup(graphql.DeferredGroup{ + Label: label, + Path: graphql.GetPath(ctx), + FieldSet: dfs, + Context: ctx, + }) + } + + return out +} + +var logMetadataSpecImplementors = []string{"LogMetadataSpec"} + +func (ec *executionContext) _LogMetadataSpec(ctx context.Context, sel ast.SelectionSet, obj *clusteragentpb.LogMetadataSpec) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, logMetadataSpecImplementors) + + out := graphql.NewFieldSet(fields) + deferred := make(map[string]*graphql.FieldSet) + for i, field := range fields { + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("LogMetadataSpec") + case "nodeName": + out.Values[i] = ec._LogMetadataSpec_nodeName(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "namespace": + out.Values[i] = ec._LogMetadataSpec_namespace(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "podName": + out.Values[i] = ec._LogMetadataSpec_podName(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "containerName": + out.Values[i] = ec._LogMetadataSpec_containerName(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "containerID": + out.Values[i] = ec._LogMetadataSpec_containerID(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch(ctx) + if out.Invalids > 0 { + return graphql.Null + } + + atomic.AddInt32(&ec.deferred, int32(len(deferred))) + + for label, dfs := range deferred { + ec.processDeferredGroup(graphql.DeferredGroup{ + Label: label, + Path: graphql.GetPath(ctx), + FieldSet: dfs, + Context: ctx, + }) + } + + return out +} + +var logMetadataWatchEventImplementors = []string{"LogMetadataWatchEvent"} + +func (ec *executionContext) _LogMetadataWatchEvent(ctx context.Context, sel ast.SelectionSet, obj *clusteragentpb.LogMetadataWatchEvent) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, logMetadataWatchEventImplementors) + + out := graphql.NewFieldSet(fields) + deferred := make(map[string]*graphql.FieldSet) + for i, field := range fields { + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("LogMetadataWatchEvent") + case "type": + out.Values[i] = ec._LogMetadataWatchEvent_type(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "object": + out.Values[i] = ec._LogMetadataWatchEvent_object(ctx, field, obj) + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch(ctx) + if out.Invalids > 0 { + return graphql.Null + } + + atomic.AddInt32(&ec.deferred, int32(len(deferred))) + + for label, dfs := range deferred { + ec.processDeferredGroup(graphql.DeferredGroup{ + Label: label, + Path: graphql.GetPath(ctx), + FieldSet: dfs, + Context: ctx, + }) + } + + return out +} + +var queryImplementors = []string{"Query"} + +func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, queryImplementors) + ctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{ + Object: "Query", + }) + + out := graphql.NewFieldSet(fields) + deferred := make(map[string]*graphql.FieldSet) + for i, field := range fields { + innerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{ + Object: field.Name, + Field: field, + }) + + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("Query") + case "logMetadataList": + field := field + + innerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + } + }() + res = ec._Query_logMetadataList(ctx, field) + return res + } + + rrm := func(ctx context.Context) graphql.Marshaler { + return ec.OperationContext.RootResolverMiddleware(ctx, + func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) + } + + out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) }) + case "__type": + out.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) { + return ec._Query___type(ctx, field) + }) + case "__schema": + out.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) { + return ec._Query___schema(ctx, field) + }) + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch(ctx) + if out.Invalids > 0 { + return graphql.Null + } + + atomic.AddInt32(&ec.deferred, int32(len(deferred))) + + for label, dfs := range deferred { + ec.processDeferredGroup(graphql.DeferredGroup{ + Label: label, + Path: graphql.GetPath(ctx), + FieldSet: dfs, + Context: ctx, + }) + } + + return out +} + +var subscriptionImplementors = []string{"Subscription"} + +func (ec *executionContext) _Subscription(ctx context.Context, sel ast.SelectionSet) func(ctx context.Context) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, subscriptionImplementors) + ctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{ + Object: "Subscription", + }) + if len(fields) != 1 { + ec.Errorf(ctx, "must subscribe to exactly one stream") + return nil + } + + switch fields[0].Name { + case "logMetadataWatch": + return ec._Subscription_logMetadataWatch(ctx, fields[0]) + default: + panic("unknown field " + strconv.Quote(fields[0].Name)) + } +} + +var __DirectiveImplementors = []string{"__Directive"} + +func (ec *executionContext) ___Directive(ctx context.Context, sel ast.SelectionSet, obj *introspection.Directive) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, __DirectiveImplementors) + + out := graphql.NewFieldSet(fields) + deferred := make(map[string]*graphql.FieldSet) + for i, field := range fields { + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("__Directive") + case "name": + out.Values[i] = ec.___Directive_name(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "description": + out.Values[i] = ec.___Directive_description(ctx, field, obj) + case "locations": + out.Values[i] = ec.___Directive_locations(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "args": + out.Values[i] = ec.___Directive_args(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "isRepeatable": + out.Values[i] = ec.___Directive_isRepeatable(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch(ctx) + if out.Invalids > 0 { + return graphql.Null + } + + atomic.AddInt32(&ec.deferred, int32(len(deferred))) + + for label, dfs := range deferred { + ec.processDeferredGroup(graphql.DeferredGroup{ + Label: label, + Path: graphql.GetPath(ctx), + FieldSet: dfs, + Context: ctx, + }) + } + + return out +} + +var __EnumValueImplementors = []string{"__EnumValue"} + +func (ec *executionContext) ___EnumValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.EnumValue) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, __EnumValueImplementors) + + out := graphql.NewFieldSet(fields) + deferred := make(map[string]*graphql.FieldSet) + for i, field := range fields { + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("__EnumValue") + case "name": + out.Values[i] = ec.___EnumValue_name(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "description": + out.Values[i] = ec.___EnumValue_description(ctx, field, obj) + case "isDeprecated": + out.Values[i] = ec.___EnumValue_isDeprecated(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "deprecationReason": + out.Values[i] = ec.___EnumValue_deprecationReason(ctx, field, obj) + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch(ctx) + if out.Invalids > 0 { + return graphql.Null + } + + atomic.AddInt32(&ec.deferred, int32(len(deferred))) + + for label, dfs := range deferred { + ec.processDeferredGroup(graphql.DeferredGroup{ + Label: label, + Path: graphql.GetPath(ctx), + FieldSet: dfs, + Context: ctx, + }) + } + + return out +} + +var __FieldImplementors = []string{"__Field"} + +func (ec *executionContext) ___Field(ctx context.Context, sel ast.SelectionSet, obj *introspection.Field) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, __FieldImplementors) + + out := graphql.NewFieldSet(fields) + deferred := make(map[string]*graphql.FieldSet) + for i, field := range fields { + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("__Field") + case "name": + out.Values[i] = ec.___Field_name(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "description": + out.Values[i] = ec.___Field_description(ctx, field, obj) + case "args": + out.Values[i] = ec.___Field_args(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "type": + out.Values[i] = ec.___Field_type(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "isDeprecated": + out.Values[i] = ec.___Field_isDeprecated(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "deprecationReason": + out.Values[i] = ec.___Field_deprecationReason(ctx, field, obj) + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch(ctx) + if out.Invalids > 0 { + return graphql.Null + } + + atomic.AddInt32(&ec.deferred, int32(len(deferred))) + + for label, dfs := range deferred { + ec.processDeferredGroup(graphql.DeferredGroup{ + Label: label, + Path: graphql.GetPath(ctx), + FieldSet: dfs, + Context: ctx, + }) + } + + return out +} + +var __InputValueImplementors = []string{"__InputValue"} + +func (ec *executionContext) ___InputValue(ctx context.Context, sel ast.SelectionSet, obj *introspection.InputValue) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, __InputValueImplementors) + + out := graphql.NewFieldSet(fields) + deferred := make(map[string]*graphql.FieldSet) + for i, field := range fields { + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("__InputValue") + case "name": + out.Values[i] = ec.___InputValue_name(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "description": + out.Values[i] = ec.___InputValue_description(ctx, field, obj) + case "type": + out.Values[i] = ec.___InputValue_type(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "defaultValue": + out.Values[i] = ec.___InputValue_defaultValue(ctx, field, obj) + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch(ctx) + if out.Invalids > 0 { + return graphql.Null + } + + atomic.AddInt32(&ec.deferred, int32(len(deferred))) + + for label, dfs := range deferred { + ec.processDeferredGroup(graphql.DeferredGroup{ + Label: label, + Path: graphql.GetPath(ctx), + FieldSet: dfs, + Context: ctx, + }) + } + + return out +} + +var __SchemaImplementors = []string{"__Schema"} + +func (ec *executionContext) ___Schema(ctx context.Context, sel ast.SelectionSet, obj *introspection.Schema) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, __SchemaImplementors) + + out := graphql.NewFieldSet(fields) + deferred := make(map[string]*graphql.FieldSet) + for i, field := range fields { + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("__Schema") + case "description": + out.Values[i] = ec.___Schema_description(ctx, field, obj) + case "types": + out.Values[i] = ec.___Schema_types(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "queryType": + out.Values[i] = ec.___Schema_queryType(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "mutationType": + out.Values[i] = ec.___Schema_mutationType(ctx, field, obj) + case "subscriptionType": + out.Values[i] = ec.___Schema_subscriptionType(ctx, field, obj) + case "directives": + out.Values[i] = ec.___Schema_directives(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch(ctx) + if out.Invalids > 0 { + return graphql.Null + } + + atomic.AddInt32(&ec.deferred, int32(len(deferred))) + + for label, dfs := range deferred { + ec.processDeferredGroup(graphql.DeferredGroup{ + Label: label, + Path: graphql.GetPath(ctx), + FieldSet: dfs, + Context: ctx, + }) + } + + return out +} + +var __TypeImplementors = []string{"__Type"} + +func (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, obj *introspection.Type) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, __TypeImplementors) + + out := graphql.NewFieldSet(fields) + deferred := make(map[string]*graphql.FieldSet) + for i, field := range fields { + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("__Type") + case "kind": + out.Values[i] = ec.___Type_kind(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "name": + out.Values[i] = ec.___Type_name(ctx, field, obj) + case "description": + out.Values[i] = ec.___Type_description(ctx, field, obj) + case "fields": + out.Values[i] = ec.___Type_fields(ctx, field, obj) + case "interfaces": + out.Values[i] = ec.___Type_interfaces(ctx, field, obj) + case "possibleTypes": + out.Values[i] = ec.___Type_possibleTypes(ctx, field, obj) + case "enumValues": + out.Values[i] = ec.___Type_enumValues(ctx, field, obj) + case "inputFields": + out.Values[i] = ec.___Type_inputFields(ctx, field, obj) + case "ofType": + out.Values[i] = ec.___Type_ofType(ctx, field, obj) + case "specifiedByURL": + out.Values[i] = ec.___Type_specifiedByURL(ctx, field, obj) + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch(ctx) + if out.Invalids > 0 { + return graphql.Null + } + + atomic.AddInt32(&ec.deferred, int32(len(deferred))) + + for label, dfs := range deferred { + ec.processDeferredGroup(graphql.DeferredGroup{ + Label: label, + Path: graphql.GetPath(ctx), + FieldSet: dfs, + Context: ctx, + }) + } + + return out +} + +// endregion **************************** object.gotpl **************************** + +// region ***************************** type.gotpl ***************************** + +func (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) { + res, err := graphql.UnmarshalBoolean(v) + return res, graphql.ErrorOnPath(ctx, err) +} + +func (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler { + res := graphql.MarshalBoolean(v) + if res == graphql.Null { + if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { + ec.Errorf(ctx, "the requested element is null which the schema does not allow") + } + } + return res +} + +func (ec *executionContext) unmarshalNID2string(ctx context.Context, v any) (string, error) { + res, err := graphql.UnmarshalID(v) + return res, graphql.ErrorOnPath(ctx, err) +} + +func (ec *executionContext) marshalNID2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler { + res := graphql.MarshalID(v) + if res == graphql.Null { + if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { + ec.Errorf(ctx, "the requested element is null which the schema does not allow") + } + } + return res +} + +func (ec *executionContext) unmarshalNInt642int64(ctx context.Context, v any) (int64, error) { + res, err := model.UnmarshalInt64(v) + return res, graphql.ErrorOnPath(ctx, err) +} + +func (ec *executionContext) marshalNInt642int64(ctx context.Context, sel ast.SelectionSet, v int64) graphql.Marshaler { + res := model.MarshalInt64(v) + if res == graphql.Null { + if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { + ec.Errorf(ctx, "the requested element is null which the schema does not allow") + } + } + return res +} + +func (ec *executionContext) marshalNLogMetadata2ᚕᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋsharedᚋclusteragentpbᚐLogMetadataᚄ(ctx context.Context, sel ast.SelectionSet, v []*clusteragentpb.LogMetadata) graphql.Marshaler { + ret := make(graphql.Array, len(v)) + var wg sync.WaitGroup + isLen1 := len(v) == 1 + if !isLen1 { + wg.Add(len(v)) + } + for i := range v { + i := i + fc := &graphql.FieldContext{ + Index: &i, + Result: &v[i], + } + ctx := graphql.WithFieldContext(ctx, fc) + f := func(i int) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = nil + } + }() + if !isLen1 { + defer wg.Done() + } + ret[i] = ec.marshalNLogMetadata2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋsharedᚋclusteragentpbᚐLogMetadata(ctx, sel, v[i]) + } + if isLen1 { + f(i) + } else { + go f(i) + } + + } + wg.Wait() + + for _, e := range ret { + if e == graphql.Null { + return graphql.Null + } + } + + return ret +} + +func (ec *executionContext) marshalNLogMetadata2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋsharedᚋclusteragentpbᚐLogMetadata(ctx context.Context, sel ast.SelectionSet, v *clusteragentpb.LogMetadata) graphql.Marshaler { + if v == nil { + if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { + ec.Errorf(ctx, "the requested element is null which the schema does not allow") + } + return graphql.Null + } + return ec._LogMetadata(ctx, sel, v) +} + +func (ec *executionContext) marshalNLogMetadataFileInfo2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋsharedᚋclusteragentpbᚐLogMetadataFileInfo(ctx context.Context, sel ast.SelectionSet, v *clusteragentpb.LogMetadataFileInfo) graphql.Marshaler { + if v == nil { + if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { + ec.Errorf(ctx, "the requested element is null which the schema does not allow") + } + return graphql.Null + } + return ec._LogMetadataFileInfo(ctx, sel, v) +} + +func (ec *executionContext) marshalNLogMetadataSpec2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋsharedᚋclusteragentpbᚐLogMetadataSpec(ctx context.Context, sel ast.SelectionSet, v *clusteragentpb.LogMetadataSpec) graphql.Marshaler { + if v == nil { + if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { + ec.Errorf(ctx, "the requested element is null which the schema does not allow") + } + return graphql.Null + } + return ec._LogMetadataSpec(ctx, sel, v) +} + +func (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) { + res, err := graphql.UnmarshalString(v) + return res, graphql.ErrorOnPath(ctx, err) +} + +func (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler { + res := graphql.MarshalString(v) + if res == graphql.Null { + if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { + ec.Errorf(ctx, "the requested element is null which the schema does not allow") + } + } + return res +} + +func (ec *executionContext) marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx context.Context, sel ast.SelectionSet, v introspection.Directive) graphql.Marshaler { + return ec.___Directive(ctx, sel, &v) +} + +func (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirectiveᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Directive) graphql.Marshaler { + ret := make(graphql.Array, len(v)) + var wg sync.WaitGroup + isLen1 := len(v) == 1 + if !isLen1 { + wg.Add(len(v)) + } + for i := range v { + i := i + fc := &graphql.FieldContext{ + Index: &i, + Result: &v[i], + } + ctx := graphql.WithFieldContext(ctx, fc) + f := func(i int) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = nil + } + }() + if !isLen1 { + defer wg.Done() + } + ret[i] = ec.marshalN__Directive2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐDirective(ctx, sel, v[i]) + } + if isLen1 { + f(i) + } else { + go f(i) + } + + } + wg.Wait() + + for _, e := range ret { + if e == graphql.Null { + return graphql.Null + } + } + + return ret +} + +func (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) { + res, err := graphql.UnmarshalString(v) + return res, graphql.ErrorOnPath(ctx, err) +} + +func (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler { + res := graphql.MarshalString(v) + if res == graphql.Null { + if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { + ec.Errorf(ctx, "the requested element is null which the schema does not allow") + } + } + return res +} + +func (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) { + var vSlice []any + if v != nil { + vSlice = graphql.CoerceList(v) + } + var err error + res := make([]string, len(vSlice)) + for i := range vSlice { + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i)) + res[i], err = ec.unmarshalN__DirectiveLocation2string(ctx, vSlice[i]) + if err != nil { + return nil, err + } + } + return res, nil +} + +func (ec *executionContext) marshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler { + ret := make(graphql.Array, len(v)) + var wg sync.WaitGroup + isLen1 := len(v) == 1 + if !isLen1 { + wg.Add(len(v)) + } + for i := range v { + i := i + fc := &graphql.FieldContext{ + Index: &i, + Result: &v[i], + } + ctx := graphql.WithFieldContext(ctx, fc) + f := func(i int) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = nil + } + }() + if !isLen1 { + defer wg.Done() + } + ret[i] = ec.marshalN__DirectiveLocation2string(ctx, sel, v[i]) + } + if isLen1 { + f(i) + } else { + go f(i) + } + + } + wg.Wait() + + for _, e := range ret { + if e == graphql.Null { + return graphql.Null + } + } + + return ret +} + +func (ec *executionContext) marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx context.Context, sel ast.SelectionSet, v introspection.EnumValue) graphql.Marshaler { + return ec.___EnumValue(ctx, sel, &v) +} + +func (ec *executionContext) marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx context.Context, sel ast.SelectionSet, v introspection.Field) graphql.Marshaler { + return ec.___Field(ctx, sel, &v) +} + +func (ec *executionContext) marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx context.Context, sel ast.SelectionSet, v introspection.InputValue) graphql.Marshaler { + return ec.___InputValue(ctx, sel, &v) +} + +func (ec *executionContext) marshalN__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler { + ret := make(graphql.Array, len(v)) + var wg sync.WaitGroup + isLen1 := len(v) == 1 + if !isLen1 { + wg.Add(len(v)) + } + for i := range v { + i := i + fc := &graphql.FieldContext{ + Index: &i, + Result: &v[i], + } + ctx := graphql.WithFieldContext(ctx, fc) + f := func(i int) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = nil + } + }() + if !isLen1 { + defer wg.Done() + } + ret[i] = ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i]) + } + if isLen1 { + f(i) + } else { + go f(i) + } + + } + wg.Wait() + + for _, e := range ret { + if e == graphql.Null { + return graphql.Null + } + } + + return ret +} + +func (ec *executionContext) marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v introspection.Type) graphql.Marshaler { + return ec.___Type(ctx, sel, &v) +} + +func (ec *executionContext) marshalN__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler { + ret := make(graphql.Array, len(v)) + var wg sync.WaitGroup + isLen1 := len(v) == 1 + if !isLen1 { + wg.Add(len(v)) + } + for i := range v { + i := i + fc := &graphql.FieldContext{ + Index: &i, + Result: &v[i], + } + ctx := graphql.WithFieldContext(ctx, fc) + f := func(i int) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = nil + } + }() + if !isLen1 { + defer wg.Done() + } + ret[i] = ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i]) + } + if isLen1 { + f(i) + } else { + go f(i) + } + + } + wg.Wait() + + for _, e := range ret { + if e == graphql.Null { + return graphql.Null + } + } + + return ret +} + +func (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler { + if v == nil { + if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { + ec.Errorf(ctx, "the requested element is null which the schema does not allow") + } + return graphql.Null + } + return ec.___Type(ctx, sel, v) +} + +func (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) { + res, err := graphql.UnmarshalString(v) + return res, graphql.ErrorOnPath(ctx, err) +} + +func (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler { + res := graphql.MarshalString(v) + if res == graphql.Null { + if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { + ec.Errorf(ctx, "the requested element is null which the schema does not allow") + } + } + return res +} + +func (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) { + res, err := graphql.UnmarshalBoolean(v) + return res, graphql.ErrorOnPath(ctx, err) +} + +func (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.SelectionSet, v bool) graphql.Marshaler { + res := graphql.MarshalBoolean(v) + return res +} + +func (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) { + if v == nil { + return nil, nil + } + res, err := graphql.UnmarshalBoolean(v) + return &res, graphql.ErrorOnPath(ctx, err) +} + +func (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast.SelectionSet, v *bool) graphql.Marshaler { + if v == nil { + return graphql.Null + } + res := graphql.MarshalBoolean(*v) + return res +} + +func (ec *executionContext) marshalOLogMetadata2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋsharedᚋclusteragentpbᚐLogMetadata(ctx context.Context, sel ast.SelectionSet, v *clusteragentpb.LogMetadata) graphql.Marshaler { + if v == nil { + return graphql.Null + } + return ec._LogMetadata(ctx, sel, v) +} + +func (ec *executionContext) marshalOLogMetadataList2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋsharedᚋclusteragentpbᚐLogMetadataList(ctx context.Context, sel ast.SelectionSet, v *clusteragentpb.LogMetadataList) graphql.Marshaler { + if v == nil { + return graphql.Null + } + return ec._LogMetadataList(ctx, sel, v) +} + +func (ec *executionContext) marshalOLogMetadataWatchEvent2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋsharedᚋclusteragentpbᚐLogMetadataWatchEvent(ctx context.Context, sel ast.SelectionSet, v *clusteragentpb.LogMetadataWatchEvent) graphql.Marshaler { + if v == nil { + return graphql.Null + } + return ec._LogMetadataWatchEvent(ctx, sel, v) +} + +func (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) { + if v == nil { + return nil, nil + } + res, err := graphql.UnmarshalString(v) + return &res, graphql.ErrorOnPath(ctx, err) +} + +func (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler { + if v == nil { + return graphql.Null + } + res := graphql.MarshalString(*v) + return res +} + +func (ec *executionContext) unmarshalOTimestampPBTimestamp2ᚖgoogleᚗgolangᚗorgᚋprotobufᚋtypesᚋknownᚋtimestamppbᚐTimestamp(ctx context.Context, v any) (*timestamppb.Timestamp, error) { + if v == nil { + return nil, nil + } + res, err := model.UnmarshalTimestampPBTimestamp(v) + return res, graphql.ErrorOnPath(ctx, err) +} + +func (ec *executionContext) marshalOTimestampPBTimestamp2ᚖgoogleᚗgolangᚗorgᚋprotobufᚋtypesᚋknownᚋtimestamppbᚐTimestamp(ctx context.Context, sel ast.SelectionSet, v *timestamppb.Timestamp) graphql.Marshaler { + if v == nil { + return graphql.Null + } + res := model.TimestampPBTimestamp(v) + return res +} + +func (ec *executionContext) marshalO__EnumValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.EnumValue) graphql.Marshaler { + if v == nil { + return graphql.Null + } + ret := make(graphql.Array, len(v)) + var wg sync.WaitGroup + isLen1 := len(v) == 1 + if !isLen1 { + wg.Add(len(v)) + } + for i := range v { + i := i + fc := &graphql.FieldContext{ + Index: &i, + Result: &v[i], + } + ctx := graphql.WithFieldContext(ctx, fc) + f := func(i int) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = nil + } + }() + if !isLen1 { + defer wg.Done() + } + ret[i] = ec.marshalN__EnumValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐEnumValue(ctx, sel, v[i]) + } + if isLen1 { + f(i) + } else { + go f(i) + } + + } + wg.Wait() + + for _, e := range ret { + if e == graphql.Null { + return graphql.Null + } + } + + return ret +} + +func (ec *executionContext) marshalO__Field2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐFieldᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Field) graphql.Marshaler { + if v == nil { + return graphql.Null + } + ret := make(graphql.Array, len(v)) + var wg sync.WaitGroup + isLen1 := len(v) == 1 + if !isLen1 { + wg.Add(len(v)) + } + for i := range v { + i := i + fc := &graphql.FieldContext{ + Index: &i, + Result: &v[i], + } + ctx := graphql.WithFieldContext(ctx, fc) + f := func(i int) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = nil + } + }() + if !isLen1 { + defer wg.Done() + } + ret[i] = ec.marshalN__Field2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐField(ctx, sel, v[i]) + } + if isLen1 { + f(i) + } else { + go f(i) + } + + } + wg.Wait() + + for _, e := range ret { + if e == graphql.Null { + return graphql.Null + } + } + + return ret +} + +func (ec *executionContext) marshalO__InputValue2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValueᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.InputValue) graphql.Marshaler { + if v == nil { + return graphql.Null + } + ret := make(graphql.Array, len(v)) + var wg sync.WaitGroup + isLen1 := len(v) == 1 + if !isLen1 { + wg.Add(len(v)) + } + for i := range v { + i := i + fc := &graphql.FieldContext{ + Index: &i, + Result: &v[i], + } + ctx := graphql.WithFieldContext(ctx, fc) + f := func(i int) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = nil + } + }() + if !isLen1 { + defer wg.Done() + } + ret[i] = ec.marshalN__InputValue2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐInputValue(ctx, sel, v[i]) + } + if isLen1 { + f(i) + } else { + go f(i) + } + + } + wg.Wait() + + for _, e := range ret { + if e == graphql.Null { + return graphql.Null + } + } + + return ret +} + +func (ec *executionContext) marshalO__Schema2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐSchema(ctx context.Context, sel ast.SelectionSet, v *introspection.Schema) graphql.Marshaler { + if v == nil { + return graphql.Null + } + return ec.___Schema(ctx, sel, v) +} + +func (ec *executionContext) marshalO__Type2ᚕgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐTypeᚄ(ctx context.Context, sel ast.SelectionSet, v []introspection.Type) graphql.Marshaler { + if v == nil { + return graphql.Null + } + ret := make(graphql.Array, len(v)) + var wg sync.WaitGroup + isLen1 := len(v) == 1 + if !isLen1 { + wg.Add(len(v)) + } + for i := range v { + i := i + fc := &graphql.FieldContext{ + Index: &i, + Result: &v[i], + } + ctx := graphql.WithFieldContext(ctx, fc) + f := func(i int) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = nil + } + }() + if !isLen1 { + defer wg.Done() + } + ret[i] = ec.marshalN__Type2githubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx, sel, v[i]) + } + if isLen1 { + f(i) + } else { + go f(i) + } + + } + wg.Wait() + + for _, e := range ret { + if e == graphql.Null { + return graphql.Null + } + } + + return ret +} + +func (ec *executionContext) marshalO__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgenᚋgraphqlᚋintrospectionᚐType(ctx context.Context, sel ast.SelectionSet, v *introspection.Type) graphql.Marshaler { + if v == nil { + return graphql.Null + } + return ec.___Type(ctx, sel, v) +} + +// endregion ***************************** type.gotpl ***************************** diff --git a/modules/cluster-api/graph/model/models_gen.go b/modules/cluster-api/graph/model/models_gen.go new file mode 100644 index 00000000..ab54b308 --- /dev/null +++ b/modules/cluster-api/graph/model/models_gen.go @@ -0,0 +1,9 @@ +// Code generated by github.com/99designs/gqlgen, DO NOT EDIT. + +package model + +type Query struct { +} + +type Subscription struct { +} diff --git a/modules/cluster-api/graph/resolver.go b/modules/cluster-api/graph/resolver.go new file mode 100644 index 00000000..c5ffcdbb --- /dev/null +++ b/modules/cluster-api/graph/resolver.go @@ -0,0 +1,30 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package graph + +import ( + grpcdispatcher "github.com/kubetail-org/grpc-dispatcher-go" +) + +// This file will not be regenerated automatically. +// +// It serves as dependency injection for your app, add any dependencies you require here. + +//go:generate go run github.com/99designs/gqlgen generate + +type Resolver struct { + grpcDispatcher *grpcdispatcher.Dispatcher + allowedNamespaces []string +} diff --git a/modules/cluster-api/graph/schema.graphqls b/modules/cluster-api/graph/schema.graphqls new file mode 100644 index 00000000..cd7d6c0e --- /dev/null +++ b/modules/cluster-api/graph/schema.graphqls @@ -0,0 +1,67 @@ +# Copyright 2024-2025 Andres Morey +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +# Kubetail API GraphQL schema + +# --- Log Metadata --- + +type LogMetadata { + id: ID! + spec: LogMetadataSpec! + fileInfo: LogMetadataFileInfo! +} + +type LogMetadataFileInfo { + size: Int64! + lastModifiedAt: TimestampPBTimestamp +} + +type LogMetadataList { + items: [LogMetadata!]! +} + +type LogMetadataSpec { + nodeName: String! + namespace: String! + podName: String! + containerName: String! + containerID: ID! +} + +type LogMetadataWatchEvent { + type: String! + object: LogMetadata +} + +# -- root operations --- + +type Query { + logMetadataList(namespace: String): LogMetadataList +} + +type Subscription { + logMetadataWatch(namespace: String): LogMetadataWatchEvent +} + +# --- helpers --- + +""" +A 64-bit integer. +""" +scalar Int64 + +""" +An ISO-8601 encoded UTC date string. +""" +scalar TimestampPBTimestamp diff --git a/modules/cluster-api/graph/schema.resolvers.go b/modules/cluster-api/graph/schema.resolvers.go new file mode 100644 index 00000000..4a53a6e0 --- /dev/null +++ b/modules/cluster-api/graph/schema.resolvers.go @@ -0,0 +1,142 @@ +package graph + +// This file will be automatically regenerated based on the schema, any resolver implementations +// will be copied through when generating and any unknown code will be moved to the end. +// Code generated by github.com/99designs/gqlgen version v0.17.63 + +import ( + "context" + "io" + "sync" + + "github.com/kubetail-org/kubetail/modules/shared/clusteragentpb" + "github.com/kubetail-org/kubetail/modules/shared/k8shelpers" + zlog "github.com/rs/zerolog/log" + "github.com/vektah/gqlparser/v2/gqlerror" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// LogMetadataList is the resolver for the logMetadataList field. +func (r *queryResolver) LogMetadataList(ctx context.Context, namespace *string) (*clusteragentpb.LogMetadataList, error) { + // Deref namespace + nsList, err := k8shelpers.DerefNamespaceToList(r.allowedNamespaces, namespace, metav1.NamespaceDefault) + if err != nil { + return nil, err + } + + outList := &clusteragentpb.LogMetadataList{} + req := &clusteragentpb.LogMetadataListRequest{Namespaces: nsList} + + // Execute + var mu sync.Mutex + errs := gqlerror.List{} + + r.grpcDispatcher.Fanout(ctx, func(ctx context.Context, conn *grpc.ClientConn) { + // init client + c := clusteragentpb.NewLogMetadataServiceClient(conn) + + // execute + resp, err := c.List(ctx, req) + + // aquire lock + mu.Lock() + defer mu.Unlock() + + // update vars + if err != nil { + errs = append(errs, NewGrpcError(conn, err)) + } else { + // update items + outList.Items = append(outList.Items, resp.GetItems()...) + } + }) + + // throw error if response is missing + if len(errs) != 0 { + return nil, errs + } + + return outList, nil +} + +// LogMetadataWatch is the resolver for the logMetadataWatch field. +func (r *subscriptionResolver) LogMetadataWatch(ctx context.Context, namespace *string) (<-chan *clusteragentpb.LogMetadataWatchEvent, error) { + // Deref namespaces + nsList, err := k8shelpers.DerefNamespaceToList(r.allowedNamespaces, namespace, metav1.NamespaceDefault) + if err != nil { + return nil, err + } + + outCh := make(chan *clusteragentpb.LogMetadataWatchEvent) + + sub, err := r.grpcDispatcher.FanoutSubscribe(ctx, func(ctx context.Context, conn *grpc.ClientConn) { + // init client + c := clusteragentpb.NewLogMetadataServiceClient(conn) + + // init request + req := &clusteragentpb.LogMetadataWatchRequest{Namespaces: nsList} + + // execute + stream, err := c.Watch(ctx, req) + if err != nil { + return + } + + for { + ev, err := stream.Recv() + + // handle errors + if err != nil { + // ignore normal errors + if err == io.EOF { + break + } else if err == context.Canceled { + break + } + + // check for grpc status error + if s, ok := status.FromError(err); ok { + switch s.Code() { + case codes.Unavailable: + // server down (probably restarting) + case codes.Canceled: + // connection closed client-side + default: + zlog.Error().Caller().Err(err).Msgf("Unexpected gRPC error: %v\n", s.Message()) + } + break + } + + zlog.Error().Caller().Err(err).Msg("Unexpected error") + + break + } + + // forward event + outCh <- ev + } + }) + if err != nil { + return nil, err + } + + // unsubscribe when client disconnects + go func() { + <-ctx.Done() + sub.Unsubscribe() + }() + + return outCh, nil +} + +// Query returns QueryResolver implementation. +func (r *Resolver) Query() QueryResolver { return &queryResolver{r} } + +// Subscription returns SubscriptionResolver implementation. +func (r *Resolver) Subscription() SubscriptionResolver { return &subscriptionResolver{r} } + +type queryResolver struct{ *Resolver } +type subscriptionResolver struct{ *Resolver } diff --git a/modules/cluster-api/graph/server.go b/modules/cluster-api/graph/server.go new file mode 100644 index 00000000..19b56792 --- /dev/null +++ b/modules/cluster-api/graph/server.go @@ -0,0 +1,149 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package graph + +import ( + "context" + "errors" + "net/http" + "net/http/httptest" + "time" + + "github.com/99designs/gqlgen/graphql/handler" + "github.com/99designs/gqlgen/graphql/handler/extension" + "github.com/99designs/gqlgen/graphql/handler/lru" + "github.com/99designs/gqlgen/graphql/handler/transport" + "github.com/gorilla/websocket" + "github.com/vektah/gqlparser/v2/ast" + + grpcdispatcher "github.com/kubetail-org/grpc-dispatcher-go" +) + +type ctxKey int + +const cookiesCtxKey ctxKey = iota + +// Represents Server +type Server struct { + r *Resolver + h http.Handler + shutdownCh chan struct{} +} + +// Create new Server instance +func NewServer(grpcDispatcher *grpcdispatcher.Dispatcher, allowedNamespaces []string, csrfProtectMiddleware func(http.Handler) http.Handler) *Server { + // Init resolver + r := &Resolver{grpcDispatcher, allowedNamespaces} + + // Setup csrf query method + var csrfProtect http.Handler + if csrfProtectMiddleware != nil { + csrfProtect = csrfProtectMiddleware(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {})) + } + + // Init config + cfg := Config{Resolvers: r} + + // Init schema + schema := NewExecutableSchema(cfg) + + // Init handler + h := handler.New(schema) + + // Add transports from NewDefaultServer() + h.AddTransport(transport.GET{}) + h.AddTransport(transport.POST{}) + + h.SetQueryCache(lru.New[*ast.QueryDocument](1000)) + + // Configure WebSocket (without CORS) + shutdownCh := make(chan struct{}) + + h.AddTransport(&transport.Websocket{ + Upgrader: websocket.Upgrader{ + CheckOrigin: func(r *http.Request) bool { + // We have to return true here because `kubectl proxy` modifies the Host header + // so requests will fail same-origin tests and unfortunately not all browsers + // have implemented `sec-fetch-site` header. Instead, we will use CSRF token + // validation to ensure requests are coming from the same site. + return true + }, + ReadBufferSize: 1024, + WriteBufferSize: 1024, + }, + KeepAlivePingInterval: 10 * time.Second, + // Because we had to disable same-origin checks in the CheckOrigin() handler + // we will use use CSRF token validation to ensure requests are coming from + // the same site. (See https://dev.to/pssingh21/websockets-bypassing-sop-cors-5ajm) + InitFunc: func(ctx context.Context, initPayload transport.InitPayload) (context.Context, *transport.InitPayload, error) { + // Check if csrf protection is disabled + if csrfProtectMiddleware == nil { + return ctx, &initPayload, nil + } + + csrfToken := initPayload.Authorization() + + cookies, ok := ctx.Value(cookiesCtxKey).([]*http.Cookie) + if !ok { + return ctx, nil, errors.New("AUTHORIZATION_REQUIRED") + } + + // Make mock request + r, _ := http.NewRequest("POST", "/", nil) + for _, cookie := range cookies { + r.AddCookie(cookie) + } + r.Header.Set("X-CSRF-Token", csrfToken) + + // Run request through csrf protect function + rr := httptest.NewRecorder() + csrfProtect.ServeHTTP(rr, r) + + if rr.Code != 200 { + return ctx, nil, errors.New("AUTHORIZATION_REQUIRED") + } + + // Close websockets on shutdown signal + ctx, cancel := context.WithCancel(ctx) + go func() { + defer cancel() + <-shutdownCh + }() + + return ctx, &initPayload, nil + }, + }) + + h.Use(extension.Introspection{}) + h.Use(extension.AutomaticPersistedQuery{ + Cache: lru.New[string](100), + }) + + return &Server{r, h, shutdownCh} +} + +// Shutdown +func (s *Server) Shutdown() { + close(s.shutdownCh) +} + +// ServeHTTP +func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) { + // Add cookies to context for use in WSInitFunc + ctx := context.WithValue(r.Context(), cookiesCtxKey, r.Cookies()) + + // Execute + s.h.ServeHTTP(w, r.WithContext(ctx)) +} diff --git a/modules/cluster-api/graph/server_test.go b/modules/cluster-api/graph/server_test.go new file mode 100644 index 00000000..7e8362e4 --- /dev/null +++ b/modules/cluster-api/graph/server_test.go @@ -0,0 +1,86 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package graph + +import ( + "net/http" + "strings" + "testing" + + "github.com/gorilla/websocket" + "github.com/stretchr/testify/assert" + + "github.com/kubetail-org/kubetail/modules/shared/testutils" +) + +func TestServer(t *testing.T) { + t.Run("cross-origin websocket requests are allowed when csrf protection is disabled", func(t *testing.T) { + graphqlServer := NewServer(nil, []string{}, nil) + + client := testutils.NewWebTestClient(t, graphqlServer) + defer client.Teardown() + + // init websocket connection + u := "ws" + strings.TrimPrefix(client.Server.URL, "http") + "/graphql" + h := http.Header{} + conn, resp, err := websocket.DefaultDialer.Dial(u, h) + + // check that response was ok + assert.Nil(t, err) + assert.NotNil(t, conn) + assert.Equal(t, 101, resp.StatusCode) + defer conn.Close() + + // write + conn.WriteJSON(map[string]string{"type": "connection_init"}) + + // read + _, msg, err := conn.ReadMessage() + assert.Nil(t, err) + assert.Contains(t, string(msg), "connection_ack") + }) + + t.Run("websocket requests require csrf validation when csrf protection is enabled", func(t *testing.T) { + csrfProtect := func(h http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + http.Error(w, "nope", http.StatusUnauthorized) + }) + } + + graphqlServer := NewServer(nil, []string{}, csrfProtect) + + client := testutils.NewWebTestClient(t, graphqlServer) + defer client.Teardown() + + // init websocket connection + u := "ws" + strings.TrimPrefix(client.Server.URL, "http") + "/graphql" + h := http.Header{} + conn, resp, err := websocket.DefaultDialer.Dial(u, h) + + // check that response was ok + assert.Nil(t, err) + assert.NotNil(t, conn) + assert.Equal(t, 101, resp.StatusCode) + defer conn.Close() + + // write + conn.WriteJSON(map[string]string{"type": "connection_init"}) + + // read + _, msg, err := conn.ReadMessage() + assert.Nil(t, err) + assert.Contains(t, string(msg), "connection_error") + }) +} diff --git a/modules/cluster-api/internal/app/app.go b/modules/cluster-api/internal/app/app.go new file mode 100644 index 00000000..f66ab669 --- /dev/null +++ b/modules/cluster-api/internal/app/app.go @@ -0,0 +1,158 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package app + +import ( + "io/fs" + "net/http" + "path" + + "github.com/gin-contrib/gzip" + "github.com/gin-contrib/requestid" + "github.com/gin-contrib/secure" + "github.com/gin-gonic/gin" + "github.com/gorilla/csrf" + adapter "github.com/gwatts/gin-adapter" + + grpcdispatcher "github.com/kubetail-org/grpc-dispatcher-go" + + "github.com/kubetail-org/kubetail/modules/shared/config" + "github.com/kubetail-org/kubetail/modules/shared/middleware" + + clusterapi "github.com/kubetail-org/kubetail/modules/cluster-api" + "github.com/kubetail-org/kubetail/modules/cluster-api/graph" +) + +type App struct { + *gin.Engine + grpcDispatcher *grpcdispatcher.Dispatcher + graphqlServer *graph.Server + + // for testing + dynamicRoutes *gin.RouterGroup +} + +// Shutdown +func (a *App) Shutdown() { + // stop grpc dispatcher + if a.grpcDispatcher != nil { + // TODO: log dispatcher shutdown errors + a.grpcDispatcher.Shutdown() + } + + // Shutdown GraphQL server + a.graphqlServer.Shutdown() +} + +// Create new gin app +func NewApp(cfg *config.Config) (*App, error) { + // Init app + app := &App{Engine: gin.New()} + + // If not in test-mode + if gin.Mode() != gin.TestMode { + app.Use(gin.Recovery()) + + // init grpc dispatcher + app.grpcDispatcher = mustNewGrpcDispatcher(cfg) + } + + // Add request-id middleware + app.Use(requestid.New()) + + // Add logging middleware + if cfg.ClusterAPI.Logging.AccessLog.Enabled { + app.Use(middleware.LoggingMiddleware(cfg.ClusterAPI.Logging.AccessLog.HideHealthChecks)) + } + + // Gzip middleware + app.Use(gzip.Gzip(gzip.DefaultCompression)) + + // Routes + root := app.Group(cfg.ClusterAPI.BasePath) + + // Dynamic routes + dynamicRoutes := root.Group("/") + { + // https://security.stackexchange.com/questions/147554/security-headers-for-a-web-api + // https://observatory.mozilla.org/faq/ + dynamicRoutes.Use(secure.New(secure.Config{ + STSSeconds: 63072000, + FrameDeny: true, + ContentSecurityPolicy: "default-src 'none'; frame-ancestors 'none'", + ContentTypeNosniff: true, + })) + + // Disable csrf protection for graphql endpoint (already rejects simple requests) + dynamicRoutes.Use(func(c *gin.Context) { + if c.Request.URL.Path == path.Join(cfg.ClusterAPI.BasePath, "/graphql") { + c.Request = csrf.UnsafeSkipCheck(c.Request) + } + c.Next() + }) + + var csrfProtect func(http.Handler) http.Handler + + // CSRF middleware + if cfg.ClusterAPI.CSRF.Enabled { + csrfProtect = csrf.Protect( + []byte(cfg.ClusterAPI.CSRF.Secret), + csrf.FieldName(cfg.ClusterAPI.CSRF.FieldName), + csrf.CookieName(cfg.ClusterAPI.CSRF.Cookie.Name), + csrf.Path(cfg.ClusterAPI.CSRF.Cookie.Path), + csrf.Domain(cfg.ClusterAPI.CSRF.Cookie.Domain), + csrf.MaxAge(cfg.ClusterAPI.CSRF.Cookie.MaxAge), + csrf.Secure(cfg.ClusterAPI.CSRF.Cookie.Secure), + csrf.HttpOnly(cfg.ClusterAPI.CSRF.Cookie.HttpOnly), + csrf.SameSite(cfg.ClusterAPI.CSRF.Cookie.SameSite), + ) + + // Add to gin middleware + dynamicRoutes.Use(adapter.Wrap(csrfProtect)) + + // Add token fetcher helper + dynamicRoutes.GET("/csrf-token", func(c *gin.Context) { + c.JSON(http.StatusOK, gin.H{"value": csrf.Token(c.Request)}) + }) + } + + // authentication middleware + dynamicRoutes.Use(authenticationMiddleware) + + // GraphQL endpoint + graphqlServer := graph.NewServer(app.grpcDispatcher, cfg.AllowedNamespaces, csrfProtect) + dynamicRoutes.Any("/graphql", gin.WrapH(graphqlServer)) + } + app.dynamicRoutes = dynamicRoutes // for unit tests + + // Serve GraphQL playground at root + sub, err := fs.Sub(clusterapi.StaticEmbedFS, "static") + if err != nil { + return nil, err + } + staticFS := http.FS(sub) + root.StaticFileFS("/", "/graphiql.html", staticFS) + root.StaticFileFS("/favicon.ico", "/favicon.ico", staticFS) + root.StaticFileFS("/favicon.svg", "/favicon.svg", staticFS) + + // Health endpoint + root.GET("/healthz", func(c *gin.Context) { + c.JSON(http.StatusOK, gin.H{ + "status": "ok", + }) + }) + + return app, nil +} diff --git a/modules/cluster-api/internal/app/app_test.go b/modules/cluster-api/internal/app/app_test.go new file mode 100644 index 00000000..4fe72b65 --- /dev/null +++ b/modules/cluster-api/internal/app/app_test.go @@ -0,0 +1,165 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package app + +import ( + "compress/gzip" + "io" + "net/http" + "net/http/httptest" + "testing" + + "github.com/gin-contrib/requestid" + "github.com/gin-gonic/gin" + "github.com/gorilla/csrf" + "github.com/stretchr/testify/assert" + + "github.com/kubetail-org/kubetail/modules/shared/config" +) + +func TestRequestID(t *testing.T) { + app := NewTestApp(nil) + + // add route for testing + app.GET("/x", func(c *gin.Context) { + c.String(http.StatusOK, requestid.Get(c)) + }) + + // request 1 + w1 := httptest.NewRecorder() + r1 := httptest.NewRequest("GET", "/x", nil) + app.ServeHTTP(w1, r1) + id1 := w1.Body.String() + + // request 2 + w2 := httptest.NewRecorder() + r2 := httptest.NewRequest("GET", "/x", nil) + app.ServeHTTP(w2, r2) + id2 := w2.Body.String() + + // check result + assert.NotEqual(t, "", id1) + assert.NotEqual(t, "", id2) + assert.NotEqual(t, id1, id2) +} + +func TestGzip(t *testing.T) { + app := NewTestApp(nil) + + // add route for testing + app.GET("/x", func(c *gin.Context) { + c.String(http.StatusOK, "ok") + }) + + // request without compression + w1 := httptest.NewRecorder() + r1 := httptest.NewRequest("GET", "/x", nil) + app.ServeHTTP(w1, r1) + assert.Equal(t, w1.Body.String(), "ok") + + // request with compression + w2 := httptest.NewRecorder() + r2 := httptest.NewRequest("GET", "/x", nil) + r2.Header["Accept-Encoding"] = []string{"gzip"} + app.ServeHTTP(w2, r2) + + gzreader, err := gzip.NewReader(w2.Body) + assert.Equal(t, nil, err) + uncompressed, err := io.ReadAll(gzreader) + assert.Equal(t, nil, err) + assert.Equal(t, "ok", string(uncompressed)) +} + +func TestCsrfCookieOptions(t *testing.T) { + cfg1 := NewTestConfig() + cfg1.ClusterAPI.CSRF.Cookie.Path = "/xxx" + + cfg2 := NewTestConfig() + cfg2.ClusterAPI.CSRF.Cookie.Domain = "x.example.com" + + cfg3 := NewTestConfig() + cfg3.ClusterAPI.CSRF.Cookie.MaxAge = 1 + + cfg4 := NewTestConfig() + cfg4.ClusterAPI.CSRF.Cookie.Secure = false + + cfg5 := NewTestConfig() + cfg5.ClusterAPI.CSRF.Cookie.Secure = true + + cfg6 := NewTestConfig() + cfg6.ClusterAPI.CSRF.Cookie.HttpOnly = false + + cfg7 := NewTestConfig() + cfg7.ClusterAPI.CSRF.Cookie.HttpOnly = true + + cfg8 := NewTestConfig() + cfg8.ClusterAPI.CSRF.Cookie.SameSite = csrf.SameSiteNoneMode + + tests := []struct { + name string + setCfg *config.Config + }{ + {"Path", cfg1}, + {"Domain", cfg2}, + {"MaxAge", cfg3}, + {"Secure:false", cfg4}, + {"Secure:true", cfg5}, + {"HttpOnly:false", cfg6}, + {"HttpOnly:true", cfg7}, + {"SameSite", cfg8}, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + tt.setCfg.ClusterAPI.CSRF.Enabled = true + tt.setCfg.ClusterAPI.CSRF.Cookie.Name = "customname" + app := NewTestApp(tt.setCfg) + + // add route for testing + app.dynamicRoutes.GET("/test", func(c *gin.Context) { + c.String(http.StatusOK, "ok") + }) + + // request + w := httptest.NewRecorder() + r := httptest.NewRequest("GET", "/test", nil) + app.ServeHTTP(w, r) + + // check session cookie + cookie := GetCookie(w.Result().Cookies(), tt.setCfg.ClusterAPI.CSRF.Cookie.Name) + assert.NotNil(t, cookie) + assert.Equal(t, tt.setCfg.ClusterAPI.CSRF.Cookie.Path, cookie.Path) + assert.Equal(t, tt.setCfg.ClusterAPI.CSRF.Cookie.Domain, cookie.Domain) + assert.Equal(t, tt.setCfg.ClusterAPI.CSRF.Cookie.MaxAge, cookie.MaxAge) + assert.Equal(t, tt.setCfg.ClusterAPI.CSRF.Cookie.Secure, cookie.Secure) + assert.Equal(t, tt.setCfg.ClusterAPI.CSRF.Cookie.HttpOnly, cookie.HttpOnly) + assert.Equal(t, tt.setCfg.ClusterAPI.CSRF.Cookie.SameSite, csrf.SameSiteMode(cookie.SameSite)) + }) + } +} + +func TestHealthz(t *testing.T) { + app := NewTestApp(nil) + + // make request + w := httptest.NewRecorder() + r := httptest.NewRequest("GET", "/healthz", nil) + app.ServeHTTP(w, r) + + // check response + result := w.Result() + assert.Equal(t, http.StatusOK, result.StatusCode) + assert.Equal(t, "{\"status\":\"ok\"}", w.Body.String()) +} diff --git a/modules/server/pkg/ginapp/helpers.go b/modules/cluster-api/internal/app/helpers.go similarity index 50% rename from modules/server/pkg/ginapp/helpers.go rename to modules/cluster-api/internal/app/helpers.go index 650f99e5..43dfccb5 100644 --- a/modules/server/pkg/ginapp/helpers.go +++ b/modules/cluster-api/internal/app/helpers.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -12,64 +12,28 @@ // See the License for the specific language governing permissions and // limitations under the License. -package ginapp +package app import ( - "html/template" - "path" - grpcdispatcher "github.com/kubetail-org/grpc-dispatcher-go" zlog "github.com/rs/zerolog/log" "google.golang.org/grpc" "google.golang.org/grpc/credentials" "google.golang.org/grpc/credentials/insecure" - "k8s.io/client-go/rest" - "github.com/kubetail-org/kubetail/modules/common/config" - "github.com/kubetail-org/kubetail/modules/common/grpchelpers" - "github.com/kubetail-org/kubetail/modules/server/internal/k8shelpers" + "github.com/kubetail-org/kubetail/modules/shared/config" + "github.com/kubetail-org/kubetail/modules/shared/grpchelpers" ) -const k8sTokenSessionKey = "k8sToken" -const k8sTokenCtxKey = "k8sToken" - -func mustConfigureK8S(cfg *config.Config) *rest.Config { - opts := k8shelpers.Options{KubeConfig: cfg.KubeConfig, Mode: k8shelpers.ModeCluster} - switch cfg.AuthMode { - case config.AuthModeCluster: - opts.Mode = k8shelpers.ModeCluster - case config.AuthModeLocal: - opts.Mode = k8shelpers.ModeLocal - default: - opts.Mode = k8shelpers.ModeToken - } - return k8shelpers.MustConfigure(opts) -} - -func mustLoadTemplatesWithFuncs(glob string) *template.Template { - funcMap := template.FuncMap{ - "pathJoin": path.Join, - } - - tmpl := template.New("").Funcs(funcMap) - - // parse templates from a specified directory or pattern - parsedTemplates, err := tmpl.ParseGlob(glob) - if err != nil { - zlog.Fatal().Err(err).Send() - } - - return parsedTemplates -} - func mustNewGrpcDispatcher(cfg *config.Config) *grpcdispatcher.Dispatcher { dialOpts := []grpc.DialOption{ - grpc.WithUnaryInterceptor(grpchelpers.NewUnaryAuthClientInterceptor(cfg)), + grpc.WithUnaryInterceptor(grpchelpers.AuthUnaryClientInterceptor), + grpc.WithStreamInterceptor(grpchelpers.AuthStreamClientInterceptor), } // configure tls - if cfg.Agent.TLS.Enabled { - creds, err := credentials.NewServerTLSFromFile(cfg.Agent.TLS.CertFile, cfg.Agent.TLS.KeyFile) + if cfg.ClusterAgent.TLS.Enabled { + creds, err := credentials.NewServerTLSFromFile(cfg.ClusterAgent.TLS.CertFile, cfg.ClusterAgent.TLS.KeyFile) if err != nil { zlog.Fatal().Err(err).Send() } @@ -80,7 +44,7 @@ func mustNewGrpcDispatcher(cfg *config.Config) *grpcdispatcher.Dispatcher { // TODO: reuse app clientset d, err := grpcdispatcher.NewDispatcher( - cfg.Server.AgentDispatchUrl, + cfg.ClusterAPI.ClusterAgentDispatchUrl, grpcdispatcher.WithDialOptions(dialOpts...), ) if err != nil { diff --git a/modules/cluster-api/internal/app/middleware.go b/modules/cluster-api/internal/app/middleware.go new file mode 100644 index 00000000..f8415587 --- /dev/null +++ b/modules/cluster-api/internal/app/middleware.go @@ -0,0 +1,47 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package app + +import ( + "context" + "strings" + + "github.com/gin-gonic/gin" + + "github.com/kubetail-org/kubetail/modules/shared/grpchelpers" +) + +// Add user to context if authenticated +func authenticationMiddleware(c *gin.Context) { + var token string + + // Check X-Forwarded-Authorization & Authorization headers + header := c.GetHeader("X-Forwarded-Authorization") + if header == "" { + header = c.GetHeader("Authorization") + } + if strings.HasPrefix(header, "Bearer ") { + token = strings.TrimPrefix(header, "Bearer ") + } + + // Add to context for gRPC requests + if token != "" { + ctx := context.WithValue(c.Request.Context(), grpchelpers.K8STokenCtxKey, token) + c.Request = c.Request.WithContext(ctx) + } + + // Continue + c.Next() +} diff --git a/modules/cluster-api/internal/app/middleware_test.go b/modules/cluster-api/internal/app/middleware_test.go new file mode 100644 index 00000000..94567546 --- /dev/null +++ b/modules/cluster-api/internal/app/middleware_test.go @@ -0,0 +1,104 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package app + +import ( + "net/http" + "net/http/httptest" + "testing" + + "github.com/gin-gonic/gin" + "github.com/kubetail-org/kubetail/modules/shared/grpchelpers" + "github.com/stretchr/testify/assert" +) + +func TestAuthenticationMiddleware(t *testing.T) { + tests := []struct { + name string + setHeaders map[string]string + wantToken interface{} + }{ + { + "authorization header", + map[string]string{ + "Authorization": "Bearer xxx", + }, + "xxx", + }, + { + "x-forwarded-authorization header", + map[string]string{ + "X-Forwarded-Authorization": "Bearer xxx", + }, + "xxx", + }, + { + "prefers x-forwarded-authorization header", + map[string]string{ + "Authorization": "Bearer yyy", + "X-Forwarded-Authorization": "Bearer zzz", + }, + "zzz", + }, + { + "empty token", + map[string]string{ + "Authorization": "", + }, + nil, + }, + { + "malformed token", + map[string]string{ + "Authorization": "xxx", + }, + nil, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + // Init router + router := gin.New() + + // Add middleware + router.Use(authenticationMiddleware) + + // Add route for testing + router.GET("/", func(c *gin.Context) { + // Check token + ctx := c.Request.Context() + val := ctx.Value(grpchelpers.K8STokenCtxKey) + assert.Equal(t, tt.wantToken, val) + + c.String(http.StatusOK, "ok") + }) + + // Build request + w := httptest.NewRecorder() + r := httptest.NewRequest("GET", "/", nil) + + for key, val := range tt.setHeaders { + r.Header.Add(key, val) + } + + // Execute request + router.ServeHTTP(w, r) + + // Check response + assert.Equal(t, http.StatusOK, w.Result().StatusCode) + }) + } +} diff --git a/modules/cluster-api/internal/app/testutils_test.go b/modules/cluster-api/internal/app/testutils_test.go new file mode 100644 index 00000000..ad26bf0e --- /dev/null +++ b/modules/cluster-api/internal/app/testutils_test.go @@ -0,0 +1,61 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package app + +import ( + "net/http" + + "github.com/gin-gonic/gin" + + "github.com/kubetail-org/kubetail/modules/shared/config" +) + +func init() { + gin.SetMode(gin.TestMode) +} + +// Create new base config for testing +func NewTestConfig() *config.Config { + cfg := config.Config{} + cfg.ClusterAPI.BasePath = "/" + cfg.ClusterAPI.Logging.AccessLog.Enabled = false + cfg.ClusterAPI.CSRF.Enabled = false + cfg.ClusterAPI.CSRF.Secret = "TESTCSRFSECRET" + return &cfg +} + +// Create new app for testing +func NewTestApp(cfg *config.Config) *App { + if cfg == nil { + cfg = NewTestConfig() + } + + app, err := NewApp(cfg) + if err != nil { + panic(err) + } + + return app +} + +// Cookie helper method +func GetCookie(cookies []*http.Cookie, name string) *http.Cookie { + for _, cookie := range cookies { + if cookie.Name == name { + return cookie + } + } + return nil +} diff --git a/modules/cluster-api/static/favicon.ico b/modules/cluster-api/static/favicon.ico new file mode 100644 index 00000000..f4edbf3a Binary files /dev/null and b/modules/cluster-api/static/favicon.ico differ diff --git a/modules/cluster-api/static/favicon.svg b/modules/cluster-api/static/favicon.svg new file mode 100644 index 00000000..b74e5630 --- /dev/null +++ b/modules/cluster-api/static/favicon.svg @@ -0,0 +1,4 @@ + + + + diff --git a/modules/cluster-api/static/graphiql.html b/modules/cluster-api/static/graphiql.html new file mode 100644 index 00000000..323dcb16 --- /dev/null +++ b/modules/cluster-api/static/graphiql.html @@ -0,0 +1,78 @@ + + + + + Kubetail API Playground + + + + + + +
Loading...
+ + + + diff --git a/modules/server/tools.go b/modules/cluster-api/tools.go similarity index 100% rename from modules/server/tools.go rename to modules/cluster-api/tools.go diff --git a/modules/common/agentpb/agent.pb.go b/modules/common/agentpb/agent.pb.go deleted file mode 100644 index d7664717..00000000 --- a/modules/common/agentpb/agent.pb.go +++ /dev/null @@ -1,545 +0,0 @@ -// Copyright 2024 Andres Morey -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.35.1 -// protoc v5.28.2 -// source: agent.proto - -package agentpb - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - timestamppb "google.golang.org/protobuf/types/known/timestamppb" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type LogMetadata struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` - Spec *LogMetadataSpec `protobuf:"bytes,2,opt,name=spec,proto3" json:"spec,omitempty"` - FileInfo *LogMetadataFileInfo `protobuf:"bytes,3,opt,name=fileInfo,proto3" json:"fileInfo,omitempty"` -} - -func (x *LogMetadata) Reset() { - *x = LogMetadata{} - mi := &file_agent_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *LogMetadata) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*LogMetadata) ProtoMessage() {} - -func (x *LogMetadata) ProtoReflect() protoreflect.Message { - mi := &file_agent_proto_msgTypes[0] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use LogMetadata.ProtoReflect.Descriptor instead. -func (*LogMetadata) Descriptor() ([]byte, []int) { - return file_agent_proto_rawDescGZIP(), []int{0} -} - -func (x *LogMetadata) GetId() string { - if x != nil { - return x.Id - } - return "" -} - -func (x *LogMetadata) GetSpec() *LogMetadataSpec { - if x != nil { - return x.Spec - } - return nil -} - -func (x *LogMetadata) GetFileInfo() *LogMetadataFileInfo { - if x != nil { - return x.FileInfo - } - return nil -} - -type LogMetadataFileInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Size int64 `protobuf:"varint,1,opt,name=size,proto3" json:"size,omitempty"` - LastModifiedAt *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=last_modified_at,json=lastModifiedAt,proto3" json:"last_modified_at,omitempty"` -} - -func (x *LogMetadataFileInfo) Reset() { - *x = LogMetadataFileInfo{} - mi := &file_agent_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *LogMetadataFileInfo) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*LogMetadataFileInfo) ProtoMessage() {} - -func (x *LogMetadataFileInfo) ProtoReflect() protoreflect.Message { - mi := &file_agent_proto_msgTypes[1] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use LogMetadataFileInfo.ProtoReflect.Descriptor instead. -func (*LogMetadataFileInfo) Descriptor() ([]byte, []int) { - return file_agent_proto_rawDescGZIP(), []int{1} -} - -func (x *LogMetadataFileInfo) GetSize() int64 { - if x != nil { - return x.Size - } - return 0 -} - -func (x *LogMetadataFileInfo) GetLastModifiedAt() *timestamppb.Timestamp { - if x != nil { - return x.LastModifiedAt - } - return nil -} - -type LogMetadataSpec struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - NodeName string `protobuf:"bytes,1,opt,name=node_name,json=nodeName,proto3" json:"node_name,omitempty"` - Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"` - PodName string `protobuf:"bytes,3,opt,name=pod_name,json=podName,proto3" json:"pod_name,omitempty"` - ContainerName string `protobuf:"bytes,4,opt,name=container_name,json=containerName,proto3" json:"container_name,omitempty"` - ContainerId string `protobuf:"bytes,5,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"` -} - -func (x *LogMetadataSpec) Reset() { - *x = LogMetadataSpec{} - mi := &file_agent_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *LogMetadataSpec) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*LogMetadataSpec) ProtoMessage() {} - -func (x *LogMetadataSpec) ProtoReflect() protoreflect.Message { - mi := &file_agent_proto_msgTypes[2] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use LogMetadataSpec.ProtoReflect.Descriptor instead. -func (*LogMetadataSpec) Descriptor() ([]byte, []int) { - return file_agent_proto_rawDescGZIP(), []int{2} -} - -func (x *LogMetadataSpec) GetNodeName() string { - if x != nil { - return x.NodeName - } - return "" -} - -func (x *LogMetadataSpec) GetNamespace() string { - if x != nil { - return x.Namespace - } - return "" -} - -func (x *LogMetadataSpec) GetPodName() string { - if x != nil { - return x.PodName - } - return "" -} - -func (x *LogMetadataSpec) GetContainerName() string { - if x != nil { - return x.ContainerName - } - return "" -} - -func (x *LogMetadataSpec) GetContainerId() string { - if x != nil { - return x.ContainerId - } - return "" -} - -type LogMetadataList struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Items []*LogMetadata `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` -} - -func (x *LogMetadataList) Reset() { - *x = LogMetadataList{} - mi := &file_agent_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *LogMetadataList) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*LogMetadataList) ProtoMessage() {} - -func (x *LogMetadataList) ProtoReflect() protoreflect.Message { - mi := &file_agent_proto_msgTypes[3] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use LogMetadataList.ProtoReflect.Descriptor instead. -func (*LogMetadataList) Descriptor() ([]byte, []int) { - return file_agent_proto_rawDescGZIP(), []int{3} -} - -func (x *LogMetadataList) GetItems() []*LogMetadata { - if x != nil { - return x.Items - } - return nil -} - -type LogMetadataListRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Namespaces []string `protobuf:"bytes,1,rep,name=namespaces,proto3" json:"namespaces,omitempty"` -} - -func (x *LogMetadataListRequest) Reset() { - *x = LogMetadataListRequest{} - mi := &file_agent_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *LogMetadataListRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*LogMetadataListRequest) ProtoMessage() {} - -func (x *LogMetadataListRequest) ProtoReflect() protoreflect.Message { - mi := &file_agent_proto_msgTypes[4] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use LogMetadataListRequest.ProtoReflect.Descriptor instead. -func (*LogMetadataListRequest) Descriptor() ([]byte, []int) { - return file_agent_proto_rawDescGZIP(), []int{4} -} - -func (x *LogMetadataListRequest) GetNamespaces() []string { - if x != nil { - return x.Namespaces - } - return nil -} - -type LogMetadataWatchRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Namespaces []string `protobuf:"bytes,1,rep,name=namespaces,proto3" json:"namespaces,omitempty"` -} - -func (x *LogMetadataWatchRequest) Reset() { - *x = LogMetadataWatchRequest{} - mi := &file_agent_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *LogMetadataWatchRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*LogMetadataWatchRequest) ProtoMessage() {} - -func (x *LogMetadataWatchRequest) ProtoReflect() protoreflect.Message { - mi := &file_agent_proto_msgTypes[5] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use LogMetadataWatchRequest.ProtoReflect.Descriptor instead. -func (*LogMetadataWatchRequest) Descriptor() ([]byte, []int) { - return file_agent_proto_rawDescGZIP(), []int{5} -} - -func (x *LogMetadataWatchRequest) GetNamespaces() []string { - if x != nil { - return x.Namespaces - } - return nil -} - -type LogMetadataWatchEvent struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` - Object *LogMetadata `protobuf:"bytes,2,opt,name=object,proto3" json:"object,omitempty"` -} - -func (x *LogMetadataWatchEvent) Reset() { - *x = LogMetadataWatchEvent{} - mi := &file_agent_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) -} - -func (x *LogMetadataWatchEvent) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*LogMetadataWatchEvent) ProtoMessage() {} - -func (x *LogMetadataWatchEvent) ProtoReflect() protoreflect.Message { - mi := &file_agent_proto_msgTypes[6] - if x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use LogMetadataWatchEvent.ProtoReflect.Descriptor instead. -func (*LogMetadataWatchEvent) Descriptor() ([]byte, []int) { - return file_agent_proto_rawDescGZIP(), []int{6} -} - -func (x *LogMetadataWatchEvent) GetType() string { - if x != nil { - return x.Type - } - return "" -} - -func (x *LogMetadataWatchEvent) GetObject() *LogMetadata { - if x != nil { - return x.Object - } - return nil -} - -var File_agent_proto protoreflect.FileDescriptor - -var file_agent_proto_rawDesc = []byte{ - 0x0a, 0x0b, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x61, - 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x85, 0x01, 0x0a, 0x0b, 0x4c, 0x6f, 0x67, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2c, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, - 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x70, 0x65, 0x63, 0x52, - 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x38, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, - 0x62, 0x2e, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, - 0x6f, 0x0a, 0x13, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x69, - 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x44, 0x0a, 0x10, 0x6c, 0x61, - 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x41, 0x74, - 0x22, 0xb1, 0x01, 0x0a, 0x0f, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x53, 0x70, 0x65, 0x63, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, - 0x19, 0x0a, 0x08, 0x70, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x65, 0x72, 0x49, 0x64, 0x22, 0x3d, 0x0a, 0x0f, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, - 0x2e, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x05, 0x69, 0x74, - 0x65, 0x6d, 0x73, 0x22, 0x38, 0x0a, 0x16, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, - 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x22, 0x39, 0x0a, - 0x17, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x57, 0x61, 0x74, 0x63, - 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x22, 0x59, 0x0a, 0x15, 0x4c, 0x6f, 0x67, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x57, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x2c, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, - 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x06, 0x6f, 0x62, 0x6a, - 0x65, 0x63, 0x74, 0x32, 0xa4, 0x01, 0x0a, 0x12, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x41, 0x0a, 0x04, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x1f, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x4c, 0x6f, 0x67, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x2e, 0x4c, 0x6f, - 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x4b, 0x0a, - 0x05, 0x57, 0x61, 0x74, 0x63, 0x68, 0x12, 0x20, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, - 0x2e, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x57, 0x61, 0x74, 0x63, - 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x61, 0x67, 0x65, 0x6e, 0x74, - 0x70, 0x62, 0x2e, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x57, 0x61, - 0x74, 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x30, 0x01, 0x42, 0x10, 0x5a, 0x0e, 0x63, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x2f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_agent_proto_rawDescOnce sync.Once - file_agent_proto_rawDescData = file_agent_proto_rawDesc -) - -func file_agent_proto_rawDescGZIP() []byte { - file_agent_proto_rawDescOnce.Do(func() { - file_agent_proto_rawDescData = protoimpl.X.CompressGZIP(file_agent_proto_rawDescData) - }) - return file_agent_proto_rawDescData -} - -var file_agent_proto_msgTypes = make([]protoimpl.MessageInfo, 7) -var file_agent_proto_goTypes = []any{ - (*LogMetadata)(nil), // 0: agentpb.LogMetadata - (*LogMetadataFileInfo)(nil), // 1: agentpb.LogMetadataFileInfo - (*LogMetadataSpec)(nil), // 2: agentpb.LogMetadataSpec - (*LogMetadataList)(nil), // 3: agentpb.LogMetadataList - (*LogMetadataListRequest)(nil), // 4: agentpb.LogMetadataListRequest - (*LogMetadataWatchRequest)(nil), // 5: agentpb.LogMetadataWatchRequest - (*LogMetadataWatchEvent)(nil), // 6: agentpb.LogMetadataWatchEvent - (*timestamppb.Timestamp)(nil), // 7: google.protobuf.Timestamp -} -var file_agent_proto_depIdxs = []int32{ - 2, // 0: agentpb.LogMetadata.spec:type_name -> agentpb.LogMetadataSpec - 1, // 1: agentpb.LogMetadata.fileInfo:type_name -> agentpb.LogMetadataFileInfo - 7, // 2: agentpb.LogMetadataFileInfo.last_modified_at:type_name -> google.protobuf.Timestamp - 0, // 3: agentpb.LogMetadataList.items:type_name -> agentpb.LogMetadata - 0, // 4: agentpb.LogMetadataWatchEvent.object:type_name -> agentpb.LogMetadata - 4, // 5: agentpb.LogMetadataService.List:input_type -> agentpb.LogMetadataListRequest - 5, // 6: agentpb.LogMetadataService.Watch:input_type -> agentpb.LogMetadataWatchRequest - 3, // 7: agentpb.LogMetadataService.List:output_type -> agentpb.LogMetadataList - 6, // 8: agentpb.LogMetadataService.Watch:output_type -> agentpb.LogMetadataWatchEvent - 7, // [7:9] is the sub-list for method output_type - 5, // [5:7] is the sub-list for method input_type - 5, // [5:5] is the sub-list for extension type_name - 5, // [5:5] is the sub-list for extension extendee - 0, // [0:5] is the sub-list for field type_name -} - -func init() { file_agent_proto_init() } -func file_agent_proto_init() { - if File_agent_proto != nil { - return - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_agent_proto_rawDesc, - NumEnums: 0, - NumMessages: 7, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_agent_proto_goTypes, - DependencyIndexes: file_agent_proto_depIdxs, - MessageInfos: file_agent_proto_msgTypes, - }.Build() - File_agent_proto = out.File - file_agent_proto_rawDesc = nil - file_agent_proto_goTypes = nil - file_agent_proto_depIdxs = nil -} diff --git a/modules/common/go.mod b/modules/common/go.mod deleted file mode 100644 index 0b418a87..00000000 --- a/modules/common/go.mod +++ /dev/null @@ -1,82 +0,0 @@ -module github.com/kubetail-org/kubetail/modules/common - -go 1.22.0 - -toolchain go1.22.7 - -require ( - github.com/go-playground/validator/v10 v10.22.1 - github.com/gorilla/csrf v1.7.2 - github.com/mitchellh/mapstructure v1.5.0 - github.com/rs/zerolog v1.33.0 - github.com/spf13/viper v1.19.0 - github.com/stretchr/testify v1.9.0 - google.golang.org/grpc v1.67.1 - google.golang.org/protobuf v1.34.2 - k8s.io/api v0.31.1 - k8s.io/apimachinery v0.31.1 - k8s.io/client-go v0.31.1 -) - -require ( - github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/emicklei/go-restful/v3 v3.12.1 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/fxamacker/cbor/v2 v2.7.0 // indirect - github.com/gabriel-vasile/mimetype v1.4.5 // indirect - github.com/go-logr/logr v1.4.2 // indirect - github.com/go-openapi/jsonpointer v0.21.0 // indirect - github.com/go-openapi/jsonreference v0.21.0 // indirect - github.com/go-openapi/swag v0.23.0 // indirect - github.com/go-playground/locales v0.14.1 // indirect - github.com/go-playground/universal-translator v0.18.1 // indirect - github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/protobuf v1.5.4 // indirect - github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49 // indirect - github.com/google/go-cmp v0.6.0 // indirect - github.com/google/gofuzz v1.2.0 // indirect - github.com/google/uuid v1.6.0 // indirect - github.com/gorilla/securecookie v1.1.2 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect - github.com/imdario/mergo v0.3.16 // indirect - github.com/josharian/intern v1.0.0 // indirect - github.com/json-iterator/go v1.1.12 // indirect - github.com/leodido/go-urn v1.4.0 // indirect - github.com/magiconair/properties v1.8.7 // indirect - github.com/mailru/easyjson v0.7.7 // indirect - github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.20 // indirect - github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect - github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect - github.com/pelletier/go-toml/v2 v2.2.3 // indirect - github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/sagikazarmark/locafero v0.4.0 // indirect - github.com/sagikazarmark/slog-shim v0.1.0 // indirect - github.com/sourcegraph/conc v0.3.0 // indirect - github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/pflag v1.0.5 // indirect - github.com/subosito/gotenv v1.6.0 // indirect - github.com/x448/float16 v0.8.4 // indirect - go.uber.org/multierr v1.11.0 // indirect - golang.org/x/crypto v0.27.0 // indirect - golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8 // indirect - golang.org/x/net v0.29.0 // indirect - golang.org/x/oauth2 v0.23.0 // indirect - golang.org/x/sys v0.25.0 // indirect - golang.org/x/term v0.24.0 // indirect - golang.org/x/text v0.18.0 // indirect - golang.org/x/time v0.6.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240924160255-9d4c2d233b61 // indirect - gopkg.in/inf.v0 v0.9.1 // indirect - gopkg.in/ini.v1 v1.67.0 // indirect - gopkg.in/yaml.v2 v2.4.0 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/klog/v2 v2.130.1 // indirect - k8s.io/kube-openapi v0.0.0-20240903163716-9e1beecbcb38 // indirect - k8s.io/utils v0.0.0-20240921022957-49e7df575cb6 // indirect - sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect - sigs.k8s.io/yaml v1.4.0 // indirect -) diff --git a/modules/common/go.sum b/modules/common/go.sum deleted file mode 100644 index d18c308a..00000000 --- a/modules/common/go.sum +++ /dev/null @@ -1,212 +0,0 @@ -github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= -github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/emicklei/go-restful/v3 v3.12.1 h1:PJMDIM/ak7btuL8Ex0iYET9hxM3CI2sjZtzpL63nKAU= -github.com/emicklei/go-restful/v3 v3.12.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= -github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= -github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= -github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= -github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= -github.com/gabriel-vasile/mimetype v1.4.5 h1:J7wGKdGu33ocBOhGy0z653k/lFKLFDPJMG8Gql0kxn4= -github.com/gabriel-vasile/mimetype v1.4.5/go.mod h1:ibHel+/kbxn9x2407k1izTA1S81ku1z/DlgOW2QE0M4= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= -github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= -github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ= -github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4= -github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= -github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= -github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= -github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= -github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= -github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= -github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= -github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.22.1 h1:40JcKH+bBNGFczGuoBYgX4I6m/i27HYW8P9FDk5PbgA= -github.com/go-playground/validator/v10 v10.22.1/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= -github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= -github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= -github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= -github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= -github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= -github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49 h1:0VpGH+cDhbDtdcweoyCVsF3fhN8kejK6rFe/2FFX2nU= -github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49/go.mod h1:BkkQ4L1KS1xMt2aWSPStnn55ChGC0DPOn2FQYj+f25M= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= -github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= -github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20240727154555-813a5fbdbec8 h1:FKHo8hFI3A+7w0aUQuYXQ+6EN5stWmeY/AZqtM8xk9k= -github.com/google/pprof v0.0.0-20240727154555-813a5fbdbec8/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/gorilla/csrf v1.7.2 h1:oTUjx0vyf2T+wkrx09Trsev1TE+/EbDAeHtSTbtC2eI= -github.com/gorilla/csrf v1.7.2/go.mod h1:F1Fj3KG23WYHE6gozCmBAezKookxbIvUJT+121wTuLk= -github.com/gorilla/securecookie v1.1.2 h1:YCIWL56dvtr73r6715mJs5ZvhtnY73hBvEF8kXD8ePA= -github.com/gorilla/securecookie v1.1.2/go.mod h1:NfCASbcHqRSY+3a8tlWJwsQap2VX5pwzwo4h3eOamfo= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= -github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= -github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= -github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= -github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= -github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= -github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= -github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= -github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= -github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= -github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= -github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= -github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= -github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= -github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= -github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= -github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= -github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= -github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= -github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA= -github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To= -github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= -github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= -github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M= -github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= -github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= -github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= -github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= -github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ= -github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4= -github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= -github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= -github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= -github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= -github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= -github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= -github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= -github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= -github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= -github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= -github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= -github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= -github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= -go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A= -golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= -golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8 h1:aAcj0Da7eBAtrTp03QXWvm88pSyOt+UgdZw2BFZ+lEw= -golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8/go.mod h1:CQ1k9gNrJ50XIzaKCRR2hssIjF07kZFEiieALBM/ARQ= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo= -golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0= -golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= -golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= -golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.24.0 h1:Mh5cbb+Zk2hqqXNO7S1iTjEphVL+jb8ZWaqh/g+JWkM= -golang.org/x/term v0.24.0/go.mod h1:lOBK/LVxemqiMij05LGJ0tzNr8xlmwBRJ81PX6wVLH8= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= -golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= -golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U= -golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24= -golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240924160255-9d4c2d233b61 h1:N9BgCIAUvn/M+p4NJccWPWb3BWh88+zyL0ll9HgbEeM= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240924160255-9d4c2d233b61/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= -google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= -google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= -google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= -google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= -gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= -gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= -gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.31.1 h1:Xe1hX/fPW3PXYYv8BlozYqw63ytA92snr96zMW9gWTU= -k8s.io/api v0.31.1/go.mod h1:sbN1g6eY6XVLeqNsZGLnI5FwVseTrZX7Fv3O26rhAaI= -k8s.io/apimachinery v0.31.1 h1:mhcUBbj7KUjaVhyXILglcVjuS4nYXiwC+KKFBgIVy7U= -k8s.io/apimachinery v0.31.1/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= -k8s.io/client-go v0.31.1 h1:f0ugtWSbWpxHR7sjVpQwuvw9a3ZKLXX0u0itkFXufb0= -k8s.io/client-go v0.31.1/go.mod h1:sKI8871MJN2OyeqRlmA4W4KM9KBdBUpDLu/43eGemCg= -k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= -k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-openapi v0.0.0-20240903163716-9e1beecbcb38 h1:1dWzkmJrrprYvjGwh9kEUxmcUV/CtNU8QM7h1FLWQOo= -k8s.io/kube-openapi v0.0.0-20240903163716-9e1beecbcb38/go.mod h1:coRQXBK9NxO98XUv3ZD6AK3xzHCxV6+b7lrquKwaKzA= -k8s.io/utils v0.0.0-20240921022957-49e7df575cb6 h1:MDF6h2H/h4tbzmtIKTuctcwZmY0tY9mD9fNT47QO6HI= -k8s.io/utils v0.0.0-20240921022957-49e7df575cb6/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= -sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= -sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= -sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= -sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= -sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/modules/common/grpchelpers/grpchelpers.go b/modules/common/grpchelpers/grpchelpers.go deleted file mode 100644 index ae86445b..00000000 --- a/modules/common/grpchelpers/grpchelpers.go +++ /dev/null @@ -1,76 +0,0 @@ -// Copyright 2024 Andres Morey -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package grpchelpers - -import ( - "context" - - "google.golang.org/grpc" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/metadata" - "google.golang.org/grpc/status" - - "github.com/kubetail-org/kubetail/modules/common/config" -) - -type ctxKey int - -const K8STokenCtxKey ctxKey = iota - -// Create new auth server interceptor -func NewUnaryAuthServerInterceptor(cfg *config.Config) grpc.UnaryServerInterceptor { - return func(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (interface{}, error) { - // continue if auth-mode is not `token` - if cfg.AuthMode != config.AuthModeToken { - return handler(ctx, req) - } - - md, ok := metadata.FromIncomingContext(ctx) - if !ok { - return nil, status.Errorf(codes.Unauthenticated, "missing metadata") - } - - authorization := md["authorization"] - - if len(authorization) < 1 { - return nil, status.Errorf(codes.Unauthenticated, "missing token") - } - - // add token to context - newCtx := context.WithValue(ctx, K8STokenCtxKey, authorization[0]) - - return handler(newCtx, req) - } -} - -// Create new auth client interceptor -func NewUnaryAuthClientInterceptor(cfg *config.Config) grpc.UnaryClientInterceptor { - return func(ctx context.Context, method string, req, reply interface{}, cc *grpc.ClientConn, invoker grpc.UnaryInvoker, opts ...grpc.CallOption) error { - // continue if auth-mode is not `token` - if cfg.AuthMode != config.AuthModeToken { - return invoker(ctx, method, req, reply, cc, opts...) - } - - // get token from context - token, ok := ctx.Value(K8STokenCtxKey).(string) - if !ok { - return status.Errorf(codes.FailedPrecondition, "missing token in context") - } - - // add to metadata and continue execution - newCtx := metadata.AppendToOutgoingContext(ctx, "authorization", token) - return invoker(newCtx, method, req, reply, cc, opts...) - } -} diff --git a/modules/common/k8shelpers/k8shelpers.go b/modules/common/k8shelpers/k8shelpers.go deleted file mode 100644 index 9ed4cff3..00000000 --- a/modules/common/k8shelpers/k8shelpers.go +++ /dev/null @@ -1,153 +0,0 @@ -// Copyright 2024 Andres Morey -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package k8shelpers - -import ( - "context" - "errors" - "os" - "regexp" - - zlog "github.com/rs/zerolog/log" - authv1 "k8s.io/api/authentication/v1" - k8serrors "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/client-go/kubernetes" - "k8s.io/client-go/rest" - "k8s.io/client-go/tools/clientcmd" - - "github.com/kubetail-org/kubetail/modules/common/config" -) - -type Options struct { - AuthMode config.AuthMode - KubeConfig string -} - -// Configure kubernetes or die -func MustConfigure(cfg *config.Config) *rest.Config { - k8sCfg, err := Configure(cfg) - if err != nil { - zlog.Fatal().Err(err).Send() - } - return k8sCfg -} - -// Configure kubernetes -func Configure(cfg *config.Config) (*rest.Config, error) { - switch cfg.AuthMode { - case config.AuthModeCluster: - return configureCluster() - case config.AuthModeLocal: - return configureLocal(cfg.KubeConfig) - case config.AuthModeToken: - k8sCfg, err := configureCluster() - if err == nil { - return k8sCfg, nil - } - return configureLocal(cfg.KubeConfig) - default: - panic("not implemented") - } -} - -// Configure client for use inside cluster -func configureCluster() (*rest.Config, error) { - return rest.InClusterConfig() -} - -// Configure client using local kubectl -func configureLocal(file string) (*rest.Config, error) { - cfgBytes, err := os.ReadFile(file) - if err != nil { - return nil, err - } - return clientcmd.RESTConfigFromKubeConfig(cfgBytes) -} - -type HelperService struct { - cfg *rest.Config - authMode config.AuthMode -} - -// Adapted from https://github.com/kubernetes/dashboard/blob/b231dc2b89dbdfe325dc433dd7cc83abca6ddfea/modules/api/pkg/client/manager.go#L228 -func (s *HelperService) HasAccess(token string) (string, error) { - cfg := rest.CopyConfig(s.cfg) - - // handle token-mode - if s.authMode == config.AuthModeToken { - // exit if token is blank - if token == "" { - return "", errors.New("token required") - } - - cfg.BearerToken = token - cfg.BearerTokenFile = "" - } - - clientset, err := kubernetes.NewForConfig(cfg) - if err != nil { - return "", err - } - - switch s.authMode { - case config.AuthModeCluster, config.AuthModeLocal: - // check access by trying to get server version - discoveryClient := clientset.Discovery() - _, err = discoveryClient.ServerVersion() - return string(s.authMode), err - case config.AuthModeToken: - // use token service - tokenReview := &authv1.TokenReview{ - Spec: authv1.TokenReviewSpec{ - Token: token, - }, - } - - result, err := clientset.AuthenticationV1().TokenReviews().Create(context.Background(), tokenReview, metav1.CreateOptions{}) - if err != nil { - if k8serrors.IsForbidden(err) { - return getUsernameFromError(err), nil - } - return "", err - } - - return getUsername(result.Status.User.Username), nil - default: - panic("not implemented") - } -} - -func NewHelperService(cfg *rest.Config, authMode config.AuthMode) *HelperService { - return &HelperService{cfg, authMode} -} - -func getUsername(name string) string { - const groups = 5 - const nameGroupIdx = 4 - re := regexp.MustCompile(`(?P[\w-]+):(?P[\w-]+):(?P[\w-_]+):(?P[\w-]+)`) - match := re.FindStringSubmatch(name) - - if match == nil || len(match) != groups { - return name - } - - return match[nameGroupIdx] -} - -func getUsernameFromError(err error) string { - re := regexp.MustCompile(`^.* User "(.*)" cannot .*$`) - return re.ReplaceAllString(err.Error(), "$1") -} diff --git a/modules/dashboard/README.md b/modules/dashboard/README.md new file mode 100644 index 00000000..ab5dc229 --- /dev/null +++ b/modules/dashboard/README.md @@ -0,0 +1,79 @@ +# Kubetail Dashboard Server + +Go-based HTTP server that serves up the Kubetail dashboard frontend and handles the dashboard's backend requests + +## Overview + +The Kubetail dashboard server is a Go-based HTTP server that hosts the Kubetail dashboard web app frontend and associated backend services. The backend proxies requests from the frontend to the user's Kubernetes API and, when required, to the Kubetail API running inside the cluster. It also provides some other custom functionality such as authentication. It uses the Gin Web framework to serve HTTP requests. Under the hood, it uses the Kubernetes Go-client to communicate with the Kubernetes API. Externally, it responds to Kubernetes-related queries via a GraphQL endpoint powered by [gqlgen](https://github.com/99designs/gqlgen) and serves other requests via a simple REST API. + +In development, the backend and frontend are kept separate but in production the frontend website is packaged as a static site and deployed to the server's `website` directory from where it is served at the apex endpoint. + +## Configure + +### CLI Flags + +The Kubetail backend server executable supports the following command line configuration options: + +| Flag | Datatype | Description | Default | +| ------------ | -------- | -------------------------------- | --------- | +| -c, --config | string | Path to Kubetail config file | "" | +| -a, --addr | string | Host address to bind to | ":80" | +| --gin-mode | string | Gin mode (release, debug) | "release" | +| -p, --param | []string | Config params ("key:val" format) | [] | + +### Config file + +The Kubetail Dashboard server can be configured using a configuration file written in YAML, JSON, TOML, HCL or envfile format. The application will automatically replace ENV variables written in the format `${NAME}` with their corresponding values. The config file supports the following options (also see [hack/config.yaml](../../hack/config.yaml)): + +| Name | Datatype | Description | Default | Status | +| ----------------------------------------------- | -------- | ---------------------------------------------------- | ----------------------------- | ------------ | +| allowed-namespaces | []string | If populated, restricts namespace access | [] | | +| dashboard.addr | string | Host address to bind to | ":80" | | +| dashboard.auth-mode | string | Auth mode (auto, token) | "auto" | experimental | +| dashboard.base-path | string | URL path prefix | "/" | | +| dashboard.cluster-api-endpoint | string | Service url for Cluster API | "http://kubetail-cluster-api" | experimental | +| dashboard.environment | string | Environment (desktop, cluster) | "desktop" | experimental | +| dashboard.gin-mode | string | Gin mode (release, debug) | "release" | | +| dashboard.csrf.enabled | bool | Enable CSRF protection | true | | +| dashboard.csrf.field-name | string | CSRF token name in forms | "csrf_token" | | +| dashboard.csrf.secret | string | CSRF hash key | "" | | +| dashboard.csrf.cookie.name | string | CSRF cookie name | "csrf" | | +| dashboard.csrf.cookie.path | string | CSRF cookie path | "/" | | +| dashboard.csrf.cookie.domain | string | CSRF cookie domain | "" | | +| dashboard.csrf.cookie.max-age | int | CSRF cookie max age (in seconds) | 43200 | | +| dashboard.csrf.cookie.secure | bool | CSRF cookie secure property | false | | +| dashboard.csrf.cookie.http-only | bool | CSRF cookie HttpOnly property | true | | +| dashboard.csrf.cookie.same-site | string | CSRF cookie SameSite property (strict, lax, none) | "strict" | | +| dashboard.logging.enabled | bool | Enable logging | true | | +| dashboard.logging.level | string | Log level | "info" | | +| dashboard.logging.format | string | Log format (json, pretty) | "json" | | +| dashboard.logging.access-log.enabled | bool | Enable access log | true | | +| dashboard.logging.access-log.hide-health-checks | bool | Hide requests to /healthz from access log | false | | +| dashboard.session.secret | string | Session hash key | "" | | +| dashboard.session.cookie.name | string | Session cookie name | "session" | | +| dashboard.session.cookie.path | string | Session cookie path | "/" | | +| dashboard.session.cookie.domain | string | Session cookie domain | "" | | +| dashboard.session.cookie.max-age | int | Session cookie max age (in seconds) | 43200 | | +| dashboard.session.cookie.secure | bool | Session cookie secure property | false | | +| dashboard.session.cookie.http-only | bool | Session cookie HttpOnly property | true | | +| dashboard.session.cookie.same-site | string | Session cookie SameSite property (strict, lax, none) | "strict" | | +| dashboard.tls.enabled | bool | Enable TLS endpoint termination | false | | +| dashboard.tls.cert-file | string | Path to cert file | "" | | +| dashboard.tls.key-file | string | Path to key file | "" | | +| dashboard.ui.cluster-api-enabled | bool | Enable Cluster API features | true | experimental | + +## GraphQL + +The GraphQL schema can be found here: [GraphQL schema](graph/schema.graphqls). To run the gqlgen GraphQL code generator use the `go generate` command: + +```console +go generate ./... +``` + +## Test + +To run the test suite execute this command: + +```console +go test ./... +``` diff --git a/modules/dashboard/cmd/main.go b/modules/dashboard/cmd/main.go new file mode 100644 index 00000000..9fdf0a89 --- /dev/null +++ b/modules/dashboard/cmd/main.go @@ -0,0 +1,180 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package main + +import ( + "context" + "log" + "net/http" + "os" + "os/signal" + "strings" + "syscall" + "time" + + "github.com/gin-gonic/gin" + "github.com/go-logr/zerologr" + "github.com/go-playground/validator/v10" + zlog "github.com/rs/zerolog/log" + "github.com/spf13/cobra" + "github.com/spf13/viper" + k8sruntime "k8s.io/apimachinery/pkg/util/runtime" + "k8s.io/klog/v2" + + "github.com/kubetail-org/kubetail/modules/shared/config" + "github.com/kubetail-org/kubetail/modules/shared/k8shelpers" + + "github.com/kubetail-org/kubetail/modules/dashboard/pkg/app" +) + +type CLI struct { + Config string `validate:"omitempty,file"` +} + +func main() { + var cli CLI + var params []string + + // Init cobra command + cmd := cobra.Command{ + Use: "dashboard", + Short: "Kubetail Dashboard", + PreRunE: func(cmd *cobra.Command, args []string) error { + // Validate CLI flags + return validator.New().Struct(cli) + }, + Run: func(cmd *cobra.Command, args []string) { + // Listen for termination signals as early as possible + quit := make(chan os.Signal, 1) + signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM) + defer close(quit) + + // Init viper + v := viper.New() + v.BindPFlag("dashboard.addr", cmd.Flags().Lookup("addr")) + v.BindPFlag("dashboard.gin-mode", cmd.Flags().Lookup("gin-mode")) + + // Init config + cfg, err := config.NewConfig(v, cli.Config) + if err != nil { + zlog.Fatal().Caller().Err(err).Send() + } + + // set gin mode + gin.SetMode(cfg.Dashboard.GinMode) + + // Override params from cli + for _, param := range params { + split := strings.SplitN(param, ":", 2) + if len(split) == 2 { + v.Set(split[0], split[1]) + } + } + + // Configure logger + config.ConfigureLogger(config.LoggerOptions{ + Enabled: cfg.Dashboard.Logging.Enabled, + Level: cfg.Dashboard.Logging.Level, + Format: cfg.Dashboard.Logging.Format, + }) + + // Capture unhandled kubernetes client errors + k8sruntime.ErrorHandlers = []k8sruntime.ErrorHandler{func(ctx context.Context, err error, msg string, keysAndValues ...interface{}) { + zlog.Error().Err(err).Msg(msg) + }} + + // Capture messages sent to klog + klog.SetLogger(zerologr.New(&zlog.Logger)) + + // Capture messages sent to system logger + log.SetOutput(k8shelpers.NewZlogWriter(zlog.Logger)) + + // Create app + app, err := app.NewApp(cfg) + if err != nil { + zlog.Fatal().Caller().Err(err).Send() + } + + // create server + server := http.Server{ + Addr: cfg.Dashboard.Addr, + Handler: app, + IdleTimeout: 1 * time.Minute, + ReadTimeout: 5 * time.Second, + WriteTimeout: 10 * time.Second, + } + + // run server in go routine + go func() { + var serverErr error + zlog.Info().Msg("Starting server on " + cfg.Dashboard.Addr) + + if cfg.Dashboard.TLS.Enabled { + serverErr = server.ListenAndServeTLS(cfg.Dashboard.TLS.CertFile, cfg.Dashboard.TLS.KeyFile) + } else { + serverErr = server.ListenAndServe() + } + + // log non-normal errors + if serverErr != nil && serverErr != http.ErrServerClosed { + zlog.Fatal().Caller().Err(err).Send() + } + }() + + // wait for termination signal + <-quit + + zlog.Info().Msg("Starting graceful shutdown...") + + // graceful shutdown with 30 second deadline + // TODO: make timeout configurable + ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) + defer cancel() + + // Attempt graceful shutdown + done := make(chan struct{}) + go func() { + if err := server.Shutdown(ctx); err != nil { + zlog.Error().Err(err).Send() + } + close(done) + }() + + // Shutdown app + // TODO: handle long-lived requests shutdown (e.g. websockets) + app.Shutdown() + + select { + case <-done: + zlog.Info().Msg("Completed graceful shutdown") + case <-ctx.Done(): + zlog.Info().Msg("Exceeded deadline, exiting now") + } + }, + } + + // Define flags + flagset := cmd.Flags() + flagset.SortFlags = false + flagset.StringVarP(&cli.Config, "config", "c", "", "Path to configuration file (e.g. \"/etc/kubetail/dashboard.yaml\")") + flagset.StringP("addr", "a", ":80", "Host address to bind to") + flagset.String("gin-mode", "release", "Gin mode (release, debug)") + flagset.StringArrayVarP(¶ms, "param", "p", []string{}, "Config params") + + // Execute command + if err := cmd.Execute(); err != nil { + zlog.Fatal().Caller().Err(err).Send() + } +} diff --git a/modules/server/embed.go b/modules/dashboard/embed.go similarity index 86% rename from modules/server/embed.go rename to modules/dashboard/embed.go index 3d5d3b39..711f2123 100644 --- a/modules/server/embed.go +++ b/modules/dashboard/embed.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -12,12 +12,15 @@ // See the License for the specific language governing permissions and // limitations under the License. -package server +package dashboard import "embed" //go:embed templates/* var TemplatesEmbedFS embed.FS +//go:embed static/* +var StaticEmbedFS embed.FS + //go:embed website/* var WebsiteEmbedFS embed.FS diff --git a/modules/dashboard/go.mod b/modules/dashboard/go.mod new file mode 100644 index 00000000..4c2d636e --- /dev/null +++ b/modules/dashboard/go.mod @@ -0,0 +1,207 @@ +module github.com/kubetail-org/kubetail/modules/dashboard + +go 1.23.0 + +toolchain go1.23.4 + +replace github.com/kubetail-org/kubetail/modules/shared => ../shared + +require ( + github.com/99designs/gqlgen v0.17.63 + github.com/asaskevich/EventBus v0.0.0-20200907212545-49d423059eef + github.com/fsnotify/fsnotify v1.8.0 + github.com/gin-contrib/gzip v1.2.0 + github.com/gin-contrib/requestid v1.0.4 + github.com/gin-contrib/secure v1.1.1 + github.com/gin-contrib/sessions v1.0.2 + github.com/gin-gonic/gin v1.10.0 + github.com/go-logr/zerologr v1.2.3 + github.com/go-playground/validator/v10 v10.24.0 + github.com/gorilla/csrf v1.7.2 + github.com/gorilla/websocket v1.5.3 + github.com/gwatts/gin-adapter v1.0.0 + github.com/kubetail-org/kubetail/modules/shared v0.0.0-00010101000000-000000000000 + github.com/rs/zerolog v1.33.0 + github.com/sosodev/duration v1.3.1 + github.com/spf13/cobra v1.8.1 + github.com/spf13/viper v1.19.0 + github.com/stretchr/testify v1.10.0 + github.com/vektah/gqlparser/v2 v2.5.21 + k8s.io/api v0.32.0 + k8s.io/apimachinery v0.32.0 + k8s.io/apiserver v0.32.0 + k8s.io/client-go v0.32.0 + k8s.io/klog/v2 v2.130.1 + k8s.io/kubectl v0.32.0 + k8s.io/utils v0.0.0-20241210054802-24370beab758 +) + +require ( + dario.cat/mergo v1.0.1 // indirect + github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 // indirect + github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect + github.com/BurntSushi/toml v1.4.0 // indirect + github.com/MakeNowJust/heredoc v1.0.0 // indirect + github.com/Masterminds/goutils v1.1.1 // indirect + github.com/Masterminds/semver/v3 v3.3.1 // indirect + github.com/Masterminds/sprig/v3 v3.3.0 // indirect + github.com/Masterminds/squirrel v1.5.4 // indirect + github.com/agnivade/levenshtein v1.2.0 // indirect + github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect + github.com/beorn7/perks v1.0.1 // indirect + github.com/blang/semver/v4 v4.0.0 // indirect + github.com/bytedance/sonic v1.12.7 // indirect + github.com/bytedance/sonic/loader v0.2.3 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect + github.com/chai2010/gettext-go v1.0.3 // indirect + github.com/cloudwego/base64x v0.1.4 // indirect + github.com/containerd/containerd v1.7.25 // indirect + github.com/containerd/errdefs v1.0.0 // indirect + github.com/containerd/log v0.1.0 // indirect + github.com/containerd/platforms v0.2.1 // indirect + github.com/cpuguy83/go-md2man/v2 v2.0.6 // indirect + github.com/cyphar/filepath-securejoin v0.4.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/distribution/reference v0.6.0 // indirect + github.com/docker/cli v27.5.0+incompatible // indirect + github.com/docker/distribution v2.8.3+incompatible // indirect + github.com/docker/docker v27.5.0+incompatible // indirect + github.com/docker/docker-credential-helpers v0.8.2 // indirect + github.com/docker/go-connections v0.5.0 // indirect + github.com/docker/go-metrics v0.0.1 // indirect + github.com/emicklei/go-restful/v3 v3.12.1 // indirect + github.com/evanphx/json-patch v5.9.0+incompatible // indirect + github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f // indirect + github.com/fatih/color v1.18.0 // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect + github.com/fxamacker/cbor/v2 v2.7.0 // indirect + github.com/gabriel-vasile/mimetype v1.4.8 // indirect + github.com/gin-contrib/sse v1.0.0 // indirect + github.com/go-errors/errors v1.5.1 // indirect + github.com/go-gorp/gorp/v3 v3.1.0 // indirect + github.com/go-logr/logr v1.4.2 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/go-openapi/jsonpointer v0.21.0 // indirect + github.com/go-openapi/jsonreference v0.21.0 // indirect + github.com/go-openapi/swag v0.23.0 // indirect + github.com/go-playground/locales v0.14.1 // indirect + github.com/go-playground/universal-translator v0.18.1 // indirect + github.com/go-viper/mapstructure/v2 v2.2.1 // indirect + github.com/gobwas/glob v0.2.3 // indirect + github.com/goccy/go-json v0.10.4 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/protobuf v1.5.4 // indirect + github.com/google/btree v1.1.3 // indirect + github.com/google/gnostic-models v0.6.9 // indirect + github.com/google/go-cmp v0.6.0 // indirect + github.com/google/gofuzz v1.2.0 // indirect + github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/gorilla/context v1.1.2 // indirect + github.com/gorilla/mux v1.8.1 // indirect + github.com/gorilla/securecookie v1.1.2 // indirect + github.com/gorilla/sessions v1.4.0 // indirect + github.com/gosuri/uitable v0.0.4 // indirect + github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect + github.com/hashicorp/errwrap v1.1.0 // indirect + github.com/hashicorp/go-multierror v1.1.1 // indirect + github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect + github.com/hashicorp/hcl v1.0.0 // indirect + github.com/huandu/xstrings v1.5.0 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/jmoiron/sqlx v1.4.0 // indirect + github.com/josharian/intern v1.0.0 // indirect + github.com/json-iterator/go v1.1.12 // indirect + github.com/klauspost/compress v1.17.11 // indirect + github.com/klauspost/cpuid/v2 v2.2.9 // indirect + github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 // indirect + github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 // indirect + github.com/leodido/go-urn v1.4.0 // indirect + github.com/lib/pq v1.10.9 // indirect + github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect + github.com/magiconair/properties v1.8.9 // indirect + github.com/mailru/easyjson v0.9.0 // indirect + github.com/mattn/go-colorable v0.1.14 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mattn/go-runewidth v0.0.16 // indirect + github.com/mitchellh/copystructure v1.2.0 // indirect + github.com/mitchellh/go-wordwrap v1.0.1 // indirect + github.com/mitchellh/mapstructure v1.5.0 // indirect + github.com/mitchellh/reflectwalk v1.0.2 // indirect + github.com/moby/locker v1.0.1 // indirect + github.com/moby/spdystream v0.5.0 // indirect + github.com/moby/term v0.5.2 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect + github.com/opencontainers/go-digest v1.0.0 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect + github.com/pelletier/go-toml/v2 v2.2.3 // indirect + github.com/peterbourgon/diskv v2.0.1+incompatible // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/prometheus/client_golang v1.20.5 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.61.0 // indirect + github.com/prometheus/procfs v0.15.1 // indirect + github.com/rivo/uniseg v0.4.7 // indirect + github.com/rubenv/sql-migrate v1.7.1 // indirect + github.com/russross/blackfriday/v2 v2.1.0 // indirect + github.com/sagikazarmark/locafero v0.7.0 // indirect + github.com/sagikazarmark/slog-shim v0.1.0 // indirect + github.com/shopspring/decimal v1.4.0 // indirect + github.com/sirupsen/logrus v1.9.3 // indirect + github.com/sourcegraph/conc v0.3.0 // indirect + github.com/spf13/afero v1.12.0 // indirect + github.com/spf13/cast v1.7.1 // indirect + github.com/spf13/pflag v1.0.5 // indirect + github.com/stretchr/objx v0.5.2 // indirect + github.com/subosito/gotenv v1.6.0 // indirect + github.com/twitchyliquid64/golang-asm v0.15.1 // indirect + github.com/ugorji/go/codec v1.2.12 // indirect + github.com/urfave/cli/v2 v2.27.5 // indirect + github.com/x448/float16 v0.8.4 // indirect + github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect + github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect + github.com/xeipuuv/gojsonschema v1.2.0 // indirect + github.com/xlab/treeprint v1.2.0 // indirect + github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 // indirect + go.opentelemetry.io/auto/sdk v1.1.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 // indirect + go.opentelemetry.io/otel v1.33.0 // indirect + go.opentelemetry.io/otel/metric v1.33.0 // indirect + go.opentelemetry.io/otel/trace v1.33.0 // indirect + go.uber.org/multierr v1.11.0 // indirect + golang.org/x/arch v0.13.0 // indirect + golang.org/x/crypto v0.32.0 // indirect + golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 // indirect + golang.org/x/mod v0.22.0 // indirect + golang.org/x/net v0.34.0 // indirect + golang.org/x/oauth2 v0.25.0 // indirect + golang.org/x/sync v0.10.0 // indirect + golang.org/x/sys v0.29.0 // indirect + golang.org/x/term v0.28.0 // indirect + golang.org/x/text v0.21.0 // indirect + golang.org/x/time v0.9.0 // indirect + golang.org/x/tools v0.29.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250106144421-5f5ef82da422 // indirect + google.golang.org/grpc v1.69.4 // indirect + google.golang.org/protobuf v1.36.2 // indirect + gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect + gopkg.in/inf.v0 v0.9.1 // indirect + gopkg.in/ini.v1 v1.67.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect + helm.sh/helm/v3 v3.16.4 // indirect + k8s.io/apiextensions-apiserver v0.32.0 // indirect + k8s.io/cli-runtime v0.32.0 // indirect + k8s.io/component-base v0.32.0 // indirect + k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7 // indirect + oras.land/oras-go v1.2.6 // indirect + sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect + sigs.k8s.io/kustomize/api v0.19.0 // indirect + sigs.k8s.io/kustomize/kyaml v0.19.0 // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.5.0 // indirect + sigs.k8s.io/yaml v1.4.0 // indirect +) diff --git a/modules/dashboard/go.sum b/modules/dashboard/go.sum new file mode 100644 index 00000000..35533479 --- /dev/null +++ b/modules/dashboard/go.sum @@ -0,0 +1,670 @@ +dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s= +dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= +filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= +filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= +github.com/99designs/gqlgen v0.17.63 h1:HCdaYDPd9HqUXRchEvmE3EFzELRwLlaJ8DBuyC8Cqto= +github.com/99designs/gqlgen v0.17.63/go.mod h1:sVCM2iwIZisJjTI/DEC3fpH+HFgxY1496ZJ+jbT9IjA= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 h1:He8afgbRMd7mFxO99hRNu+6tazq8nFF9lIwo9JFroBk= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= +github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c h1:udKWzYgxTojEKWjV8V+WSxDXJ4NFATAsZjh8iIbsQIg= +github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= +github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= +github.com/DATA-DOG/go-sqlmock v1.5.2 h1:OcvFkGmslmlZibjAjaHm3L//6LiuBgolP7OputlJIzU= +github.com/DATA-DOG/go-sqlmock v1.5.2/go.mod h1:88MAG/4G7SMwSE3CeA0ZKzrT5CiOU3OJ+JlNzwDqpNU= +github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ= +github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= +github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= +github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= +github.com/Masterminds/semver/v3 v3.3.1 h1:QtNSWtVZ3nBfk8mAOu/B6v7FMJ+NHTIgUPi7rj+4nv4= +github.com/Masterminds/semver/v3 v3.3.1/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= +github.com/Masterminds/sprig/v3 v3.3.0 h1:mQh0Yrg1XPo6vjYXgtf5OtijNAKJRNcTdOOGZe3tPhs= +github.com/Masterminds/sprig/v3 v3.3.0/go.mod h1:Zy1iXRYNqNLUolqCpL4uhk6SHUMAOSCzdgBfDb35Lz0= +github.com/Masterminds/squirrel v1.5.4 h1:uUcX/aBc8O7Fg9kaISIUsHXdKuqehiXAMQTYX8afzqM= +github.com/Masterminds/squirrel v1.5.4/go.mod h1:NNaOrjSoIDfDA40n7sr2tPNZRfjzjA400rg+riTZj10= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= +github.com/Microsoft/hcsshim v0.11.7 h1:vl/nj3Bar/CvJSYo7gIQPyRWc9f3c6IeSNavBTSZNZQ= +github.com/Microsoft/hcsshim v0.11.7/go.mod h1:MV8xMfmECjl5HdO7U/3/hFVnkmSBjAjmA09d4bExKcU= +github.com/agnivade/levenshtein v1.2.0 h1:U9L4IOT0Y3i0TIlUIDJ7rVUziKi/zPbrJGaFrtYH3SY= +github.com/agnivade/levenshtein v1.2.0/go.mod h1:QVVI16kDrtSuwcpd0p1+xMC6Z/VfhtCyDIjcwga4/DU= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ= +github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= +github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0 h1:jfIu9sQUG6Ig+0+Ap1h4unLjW6YQJpKZVmUzxsD4E/Q= +github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0/go.mod h1:t2tdKJDJF9BV14lnkjHmOQgcvEKgtqs5a1N3LNdJhGE= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= +github.com/asaskevich/EventBus v0.0.0-20200907212545-49d423059eef h1:2JGTg6JapxP9/R33ZaagQtAM4EkkSYnIAlOG5EI8gkM= +github.com/asaskevich/EventBus v0.0.0-20200907212545-49d423059eef/go.mod h1:JS7hed4L1fj0hXcyEejnW57/7LCetXggd+vwrRnYeII= +github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so= +github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= +github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM= +github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= +github.com/bshuster-repo/logrus-logstash-hook v1.0.0 h1:e+C0SB5R1pu//O4MQ3f9cFuPGoOVeF2fE4Og9otCc70= +github.com/bshuster-repo/logrus-logstash-hook v1.0.0/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk= +github.com/bytedance/sonic v1.12.7 h1:CQU8pxOy9HToxhndH0Kx/S1qU/CuS9GnKYrGioDcU1Q= +github.com/bytedance/sonic v1.12.7/go.mod h1:tnbal4mxOMju17EGfknm2XyYcpyCnIROYOEYuemj13I= +github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= +github.com/bytedance/sonic/loader v0.2.3 h1:yctD0Q3v2NOGfSWPLPvG2ggA2kV6TS6s4wioyEqssH0= +github.com/bytedance/sonic/loader v0.2.3/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= +github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= +github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/chai2010/gettext-go v1.0.3 h1:9liNh8t+u26xl5ddmWLmsOsdNLwkdRTg5AG+JnTiM80= +github.com/chai2010/gettext-go v1.0.3/go.mod h1:y+wnP2cHYaVj19NZhYKAwEMH2CI1gNHeQQ+5AjwawxA= +github.com/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/0Y= +github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= +github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= +github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= +github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw= +github.com/containerd/containerd v1.7.25 h1:khEQOAXOEJalRO228yzVsuASLH42vT7DIo9Ss+9SMFQ= +github.com/containerd/containerd v1.7.25/go.mod h1:tWfHzVI0azhw4CT2vaIjsb2CoV4LJ9PrMPaULAr21Ok= +github.com/containerd/continuity v0.4.4 h1:/fNVfTJ7wIl/YPMHjf+5H32uFhl63JucB34PlCpMKII= +github.com/containerd/continuity v0.4.4/go.mod h1:/lNJvtJKUQStBzpVQ1+rasXO1LAWtUQssk28EZvJ3nE= +github.com/containerd/errdefs v1.0.0 h1:tg5yIfIlQIrxYtu9ajqY42W3lpS19XqdxRQeEwYG8PI= +github.com/containerd/errdefs v1.0.0/go.mod h1:+YBYIdtsnF4Iw6nWZhJcqGSg/dwvV7tyJ/kCkyJ2k+M= +github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= +github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= +github.com/containerd/platforms v0.2.1 h1:zvwtM3rz2YHPQsF2CHYM8+KtB5dvhISiXh5ZpSBQv6A= +github.com/containerd/platforms v0.2.1/go.mod h1:XHCb+2/hzowdiut9rkudds9bE5yJ7npe7dG/wG+uFPw= +github.com/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4= +github.com/coreos/go-semver v0.3.1/go.mod h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec= +github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= +github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.6 h1:XJtiaUW6dEEqVuZiMTn1ldk455QWwEIsMIJlo5vtkx0= +github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= +github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= +github.com/cyphar/filepath-securejoin v0.4.0 h1:PioTG9TBRSApBpYGnDU8HC+miIsX8vitBH9LGNNMoLQ= +github.com/cyphar/filepath-securejoin v0.4.0/go.mod h1:Sdj7gXlvMcPZsbhwhQ33GguGLDGQL7h7bg04C/+u9jI= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= +github.com/dgryski/trifles v0.0.0-20230903005119-f50d829f2e54 h1:SG7nF6SRlWhcT7cNTs5R6Hk4V2lcmLz2NsG2VnInyNo= +github.com/dgryski/trifles v0.0.0-20230903005119-f50d829f2e54/go.mod h1:if7Fbed8SFyPtHLHbg49SI7NAdJiC5WIA09pe59rfAA= +github.com/distribution/distribution/v3 v3.0.0-beta.1 h1:X+ELTxPuZ1Xe5MsD3kp2wfGUhc8I+MPfRis8dZ818Ic= +github.com/distribution/distribution/v3 v3.0.0-beta.1/go.mod h1:O9O8uamhHzWWQVTjuQpyYUVm/ShPHPUDgvQMpHGVBDs= +github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= +github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= +github.com/docker/cli v27.5.0+incompatible h1:aMphQkcGtpHixwwhAXJT1rrK/detk2JIvDaFkLctbGM= +github.com/docker/cli v27.5.0+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk= +github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/docker/docker v27.5.0+incompatible h1:um++2NcQtGRTz5eEgO6aJimo6/JxrTXC941hd05JO6U= +github.com/docker/docker v27.5.0+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker-credential-helpers v0.8.2 h1:bX3YxiGzFP5sOXWc3bTPEXdEaZSeVMrFgOr3T+zrFAo= +github.com/docker/docker-credential-helpers v0.8.2/go.mod h1:P3ci7E3lwkZg6XiHdRKft1KckHiO9a2rNtyFbZ/ry9M= +github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= +github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= +github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c h1:+pKlWGMw7gf6bQ+oDZB4KHQFypsfjYlq/C4rfL7D3g8= +github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA= +github.com/docker/go-metrics v0.0.1 h1:AgB/0SvBxihN0X8OR4SjsblXkbMvalQ8cjmtKQ2rQV8= +github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= +github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1 h1:ZClxb8laGDf5arXfYcAtECDFgAgHklGI8CxgjHnXKJ4= +github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= +github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= +github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= +github.com/emicklei/go-restful/v3 v3.12.1 h1:PJMDIM/ak7btuL8Ex0iYET9hxM3CI2sjZtzpL63nKAU= +github.com/emicklei/go-restful/v3 v3.12.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/evanphx/json-patch v5.9.0+incompatible h1:fBXyNpNMuTTDdquAq/uisOr2lShz4oaXpDTX2bLe7ls= +github.com/evanphx/json-patch v5.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f h1:Wl78ApPPB2Wvf/TIe2xdyJxTlb6obmF18d8QdkxNDu4= +github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f/go.mod h1:OSYXu++VVOHnXeitef/D8n/6y4QV8uLHSFXX4NeXMGc= +github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= +github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/foxcpp/go-mockdns v1.1.0 h1:jI0rD8M0wuYAxL7r/ynTrCQQq0BVqfB99Vgk7DlmewI= +github.com/foxcpp/go-mockdns v1.1.0/go.mod h1:IhLeSFGed3mJIAXPH2aiRQB+kqz7oqu8ld2qVbOu7Wk= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= +github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= +github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= +github.com/gabriel-vasile/mimetype v1.4.8 h1:FfZ3gj38NjllZIeJAmMhr+qKL8Wu+nOoI3GqacKw1NM= +github.com/gabriel-vasile/mimetype v1.4.8/go.mod h1:ByKUIKGjh1ODkGM1asKUbQZOLGrPjydw3hYPU2YU9t8= +github.com/gin-contrib/gzip v1.2.0 h1:JzN6DT3/xYL5zAdviN1ORNzKeklrwafXCIDKIR+qmUA= +github.com/gin-contrib/gzip v1.2.0/go.mod h1:C1a5cacjlDsS20cKnHlZRCPUu57D3qH6B2pV0rl+Y/s= +github.com/gin-contrib/requestid v1.0.4 h1:h9u+YSCMgrDcn2QlHn9c6P/Zwy4WdXqZLFTmlIAJWpA= +github.com/gin-contrib/requestid v1.0.4/go.mod h1:2/3cAmLKQ9E2Pr1IrSPR7K8AWiJORo0hLvs0keKsMJw= +github.com/gin-contrib/secure v1.1.1 h1:q1AGANrYRhJYYHZCF0VH/NVvP0uOSMXmXbsaqWRgIEQ= +github.com/gin-contrib/secure v1.1.1/go.mod h1:4IhY8OTLEAI3R7qZF1ya4y75WowL8MJ09i2Kunl83HE= +github.com/gin-contrib/sessions v1.0.2 h1:UaIjUvTH1cMeOdj3in6dl+Xb6It8RiKRF9Z1anbUyCA= +github.com/gin-contrib/sessions v1.0.2/go.mod h1:KxKxWqWP5LJVDCInulOl4WbLzK2KSPlLesfZ66wRvMs= +github.com/gin-contrib/sse v1.0.0 h1:y3bT1mUWUxDpW4JLQg/HnTqV4rozuW4tC9eFKTxYI9E= +github.com/gin-contrib/sse v1.0.0/go.mod h1:zNuFdwarAygJBht0NTKiSi3jRf6RbqeILZ9Sp6Slhe0= +github.com/gin-gonic/gin v1.10.0 h1:nTuyha1TYqgedzytsKYqna+DfLos46nTv2ygFy86HFU= +github.com/gin-gonic/gin v1.10.0/go.mod h1:4PMNQiOhvDRa013RKVbsiNwoyezlm2rm0uX/T7kzp5Y= +github.com/go-errors/errors v1.5.1 h1:ZwEMSLRCapFLflTpT7NKaAc7ukJ8ZPEjzlxt8rPN8bk= +github.com/go-errors/errors v1.5.1/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= +github.com/go-gorp/gorp/v3 v3.1.0 h1:ItKF/Vbuj31dmV4jxA1qblpSwkl9g1typ24xoe70IGs= +github.com/go-gorp/gorp/v3 v3.1.0/go.mod h1:dLEjIyyRNiXvNZ8PSmzpt1GsWAUK8kjVhEpjH8TixEw= +github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-logr/zerologr v1.2.3 h1:up5N9vcH9Xck3jJkXzgyOxozT14R47IyDODz8LM1KSs= +github.com/go-logr/zerologr v1.2.3/go.mod h1:BxwGo7y5zgSHYR1BjbnHPyF/5ZjVKfKxAZANVu6E8Ho= +github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= +github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= +github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ= +github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4= +github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= +github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= +github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= +github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= +github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= +github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= +github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= +github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= +github.com/go-playground/validator/v10 v10.24.0 h1:KHQckvo8G6hlWnrPX4NJJ+aBfWNAE/HH+qdL2cBpCmg= +github.com/go-playground/validator/v10 v10.24.0/go.mod h1:GGzBIJMuE98Ic/kJsBXbz1x/7cByt++cQ+YOuDM5wus= +github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= +github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= +github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= +github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= +github.com/go-viper/mapstructure/v2 v2.2.1 h1:ZAaOCxANMuZx5RCeg0mBdEZk7DZasvvZIxtHqx8aGss= +github.com/go-viper/mapstructure/v2 v2.2.1/go.mod h1:oJDH3BJKyqBA2TXFhDsKDGDTlndYOZ6rGS0BRZIxGhM= +github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= +github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= +github.com/goccy/go-json v0.10.4 h1:JSwxQzIqKfmFX1swYPpUThQZp/Ka4wzJdK0LWVytLPM= +github.com/goccy/go-json v0.10.4/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= +github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg= +github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= +github.com/google/gnostic-models v0.6.9 h1:MU/8wDLif2qCXZmzncUQ/BOfxWfthHi63KqpoNbWqVw= +github.com/google/gnostic-models v0.6.9/go.mod h1:CiWsm0s6BSQd1hRn8/QmxqB6BesYcbSZxsz9b0KuDBw= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= +github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo= +github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gorilla/context v1.1.2 h1:WRkNAv2uoa03QNIc1A6u4O7DAGMUVoopZhkiXWA2V1o= +github.com/gorilla/context v1.1.2/go.mod h1:KDPwT9i/MeWHiLl90fuTgrt4/wPcv75vFAZLaOOcbxM= +github.com/gorilla/csrf v1.7.2 h1:oTUjx0vyf2T+wkrx09Trsev1TE+/EbDAeHtSTbtC2eI= +github.com/gorilla/csrf v1.7.2/go.mod h1:F1Fj3KG23WYHE6gozCmBAezKookxbIvUJT+121wTuLk= +github.com/gorilla/handlers v1.5.2 h1:cLTUSsNkgcwhgRqvCNmdbRWG0A3N4F+M2nWKdScwyEE= +github.com/gorilla/handlers v1.5.2/go.mod h1:dX+xVpaxdSw+q0Qek8SSsl3dfMk3jNddUkMzo0GtH0w= +github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= +github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= +github.com/gorilla/securecookie v1.1.2 h1:YCIWL56dvtr73r6715mJs5ZvhtnY73hBvEF8kXD8ePA= +github.com/gorilla/securecookie v1.1.2/go.mod h1:NfCASbcHqRSY+3a8tlWJwsQap2VX5pwzwo4h3eOamfo= +github.com/gorilla/sessions v1.4.0 h1:kpIYOp/oi6MG/p5PgxApU8srsSw9tuFbt46Lt7auzqQ= +github.com/gorilla/sessions v1.4.0/go.mod h1:FLWm50oby91+hl7p/wRxDth9bWSuk0qVL2emc7lT5ik= +github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= +github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gosuri/uitable v0.0.4 h1:IG2xLKRvErL3uhY6e1BylFzG+aJiwQviDDTfOKeKTpY= +github.com/gosuri/uitable v0.0.4/go.mod h1:tKR86bXuXPZazfOTG1FIzvjIdXzd0mo4Vtn16vt0PJo= +github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA= +github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= +github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= +github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= +github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= +github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= +github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 h1:bkypFPDjIYGfCYD5mRBvpqxfYX1YCS1PXdKYWi8FsN0= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0/go.mod h1:P+Lt/0by1T8bfcF3z737NnSbmxQAppXMRziHUxPOC8k= +github.com/gwatts/gin-adapter v1.0.0 h1:TsmmhYTR79/RMTsfYJ2IQvI1F5KZ3ZFJxuQSYEOpyIA= +github.com/gwatts/gin-adapter v1.0.0/go.mod h1:44AEV+938HsS0mjfXtBDCUZS9vONlF2gwvh8wu4sRYc= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= +github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= +github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= +github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc= +github.com/hashicorp/golang-lru/arc/v2 v2.0.5 h1:l2zaLDubNhW4XO3LnliVj0GXO3+/CGNJAg1dcN2Fpfw= +github.com/hashicorp/golang-lru/arc/v2 v2.0.5/go.mod h1:ny6zBSQZi2JxIeYcv7kt2sH2PXJtirBN7RDhRpxPkxU= +github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= +github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= +github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/huandu/xstrings v1.5.0 h1:2ag3IFq9ZDANvthTwTiqSSZLjDc+BedvHPAp5tJy2TI= +github.com/huandu/xstrings v1.5.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/jmoiron/sqlx v1.4.0 h1:1PLqN7S1UYp5t4SrVVnt4nUVNemrDAtxlulVe+Qgm3o= +github.com/jmoiron/sqlx v1.4.0/go.mod h1:ZrZ7UsYB/weZdl2Bxg6jCRO9c3YHl8r3ahlKmRT4JLY= +github.com/jonboulle/clockwork v0.4.0 h1:p4Cf1aMWXnXAUh8lVfewRBx1zaTSYKrKMF2g3ST4RZ4= +github.com/jonboulle/clockwork v0.4.0/go.mod h1:xgRqUGwRcjKCO1vbZUEtSLrqKoPSsUpK7fnezOII0kc= +github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= +github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= +github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/klauspost/cpuid/v2 v2.2.9 h1:66ze0taIn2H33fBvCkXuv9BmCwDfafmiIVpKV9kKGuY= +github.com/klauspost/cpuid/v2 v2.2.9/go.mod h1:rqkxqrZ1EhYM9G+hXH7YdowN5R5RGN6NK4QwQ3WMXF8= +github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 h1:SOEGU9fKiNWd/HOJuq6+3iTQz8KNCLtVX6idSoTLdUw= +github.com/lann/builder v0.0.0-20180802200727-47ae307949d0/go.mod h1:dXGbAdH5GtBTC4WfIxhKZfyBF/HBFgRZSWwZ9g/He9o= +github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 h1:P6pPBnrTSX3DEVR4fDembhRWSsG5rVo6hYhAB/ADZrk= +github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0/go.mod h1:vmVJ0l/dxyfGW6FmdpVm2joNMFikkuWg0EoCKLGUMNw= +github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= +github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= +github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= +github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0= +github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= +github.com/magiconair/properties v1.8.9 h1:nWcCbLq1N2v/cpNsy5WvQ37Fb+YElfq20WJ/a8RkpQM= +github.com/magiconair/properties v1.8.9/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4= +github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= +github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc= +github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU= +github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/miekg/dns v1.1.57 h1:Jzi7ApEIzwEPLHWRcafCN9LZSBbqQpxjt/wpgvg7wcM= +github.com/miekg/dns v1.1.57/go.mod h1:uqRjCRUuEAA6qsOiJvDd+CFo/vW+y5WR6SNmHE55hZk= +github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= +github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= +github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= +github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= +github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= +github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= +github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= +github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg= +github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc= +github.com/moby/spdystream v0.5.0 h1:7r0J1Si3QO/kjRitvSLVVFUjxMEb/YLj6S9FF62JBCU= +github.com/moby/spdystream v0.5.0/go.mod h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI= +github.com/moby/sys/mountinfo v0.6.2 h1:BzJjoreD5BMFNmD9Rus6gdd1pLuecOFPt8wC+Vygl78= +github.com/moby/sys/mountinfo v0.6.2/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI= +github.com/moby/sys/userns v0.1.0 h1:tVLXkFOxVu9A64/yh59slHVv9ahO9UIev4JZusOLG/g= +github.com/moby/sys/userns v0.1.0/go.mod h1:IHUYgu/kao6N8YZlp9Cf444ySSvCmDlmzUcYfDHOl28= +github.com/moby/term v0.5.2 h1:6qk3FJAFDs6i/q3W/pQ97SX192qKfZgGjCQqfCJkgzQ= +github.com/moby/term v0.5.2/go.mod h1:d3djjFCrjnB+fl8NJux+EJzu0msscUP+f8it8hPkFLc= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 h1:n6/2gBQ3RWajuToeY6ZtZTIKv2v7ThUy5KKusIT0yc0= +github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00/go.mod h1:Pm3mSP3c5uWn86xMLZ5Sa7JB9GsEZySvHYXCTK4E9q4= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus= +github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= +github.com/onsi/ginkgo/v2 v2.21.0 h1:7rg/4f3rB88pb5obDgNZrNHrQ4e6WpjonchcpuBRnZM= +github.com/onsi/ginkgo/v2 v2.21.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo= +github.com/onsi/gomega v1.35.1 h1:Cwbd75ZBPxFSuZ6T+rN/WCb/gOc6YgFBXLlZLhC7Ds4= +github.com/onsi/gomega v1.35.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog= +github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= +github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= +github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M= +github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc= +github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= +github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= +github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5 h1:Ii+DKncOVM8Cu1Hc+ETb5K+23HdAMvESYE3ZJ5b5cMI= +github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5/go.mod h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE= +github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/poy/onpar v1.1.2 h1:QaNrNiZx0+Nar5dLgTVp5mXkyoVFIbepjyEoGSnhbAY= +github.com/poy/onpar v1.1.2/go.mod h1:6X8FLNoxyr9kkmnlqpK6LSoiOtrO6MICtWwEuWkLjzg= +github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= +github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= +github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= +github.com/prometheus/common v0.61.0 h1:3gv/GThfX0cV2lpO7gkTUwZru38mxevy90Bj8YFSRQQ= +github.com/prometheus/common v0.61.0/go.mod h1:zr29OCN/2BsJRaFwG8QOBr41D6kkchKbpeNH7pAjb/s= +github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +github.com/redis/go-redis/extra/rediscmd/v9 v9.0.5 h1:EaDatTxkdHG+U3Bk4EUr+DZ7fOGwTfezUiUJMaIcaho= +github.com/redis/go-redis/extra/rediscmd/v9 v9.0.5/go.mod h1:fyalQWdtzDBECAQFBJuQe5bzQ02jGd5Qcbgb97Flm7U= +github.com/redis/go-redis/extra/redisotel/v9 v9.0.5 h1:EfpWLLCyXw8PSM2/XNJLjI3Pb27yVE+gIAfeqp8LUCc= +github.com/redis/go-redis/extra/redisotel/v9 v9.0.5/go.mod h1:WZjPDy7VNzn77AAfnAfVjZNvfJTYfPetfZk5yoSTLaQ= +github.com/redis/go-redis/v9 v9.1.0 h1:137FnGdk+EQdCbye1FW+qOEcY5S+SpY9T0NiuqvtfMY= +github.com/redis/go-redis/v9 v9.1.0/go.mod h1:urWj3He21Dj5k4TK1y59xH8Uj6ATueP8AH1cY3lZl4c= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= +github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= +github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= +github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= +github.com/rubenv/sql-migrate v1.7.1 h1:f/o0WgfO/GqNuVg+6801K/KW3WdDSupzSjDYODmiUq4= +github.com/rubenv/sql-migrate v1.7.1/go.mod h1:Ob2Psprc0/3ggbM6wCzyYVFFuc6FyZrb2AS+ezLDFb4= +github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/sagikazarmark/locafero v0.7.0 h1:5MqpDsTGNDhY8sGp0Aowyf0qKsPrhewaLSsFaodPcyo= +github.com/sagikazarmark/locafero v0.7.0/go.mod h1:2za3Cg5rMaTMoG/2Ulr9AwtFaIppKXTRYnozin4aB5k= +github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= +github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= +github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= +github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= +github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k= +github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME= +github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js= +github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= +github.com/sosodev/duration v1.3.1 h1:qtHBDMQ6lvMQsL15g4aopM4HEfOaYuhWBw3NPTtlqq4= +github.com/sosodev/duration v1.3.1/go.mod h1:RQIBBX0+fMLc/D9+Jb/fwvVmo0eZvDDEERAikUR6SDg= +github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= +github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= +github.com/spf13/afero v1.12.0 h1:UcOPyRBYczmFn6yvphxkn9ZEOY65cpwGKb5mL36mrqs= +github.com/spf13/afero v1.12.0/go.mod h1:ZTlWwG4/ahT8W7T0WQ5uYmjI9duaLQGy3Q2OAl4sk/4= +github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y= +github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= +github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= +github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= +github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75 h1:6fotK7otjonDflCTK0BCfls4SPy3NcCVb5dqqmbRknE= +github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75/go.mod h1:KO6IkyS8Y3j8OdNO85qEYBsRPuteD+YciPomcXdrMnk= +github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= +github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= +github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE= +github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= +github.com/urfave/cli/v2 v2.27.5 h1:WoHEJLdsXr6dDWoJgMq/CboDmyY/8HMMH1fTECbih+w= +github.com/urfave/cli/v2 v2.27.5/go.mod h1:3Sevf16NykTbInEnD0yKkjDAeZDS0A6bzhBH5hrMvTQ= +github.com/vektah/gqlparser/v2 v2.5.21 h1:Zw1rG2dr1pRR4wqwbVq4d6+xk2f4ut/yo+hwr4QjE08= +github.com/vektah/gqlparser/v2 v2.5.21/go.mod h1:xMl+ta8a5M1Yo1A1Iwt/k7gSpscwSnHZdw7tfhEGfTM= +github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= +github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= +github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= +github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= +github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= +github.com/xiang90/probing v0.0.0-20221125231312-a49e3df8f510 h1:S2dVYn90KE98chqDkyE9Z4N61UnQd+KOfgp5Iu53llk= +github.com/xiang90/probing v0.0.0-20221125231312-a49e3df8f510/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/xlab/treeprint v1.2.0 h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ= +github.com/xlab/treeprint v1.2.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0= +github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4= +github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +go.etcd.io/bbolt v1.3.11 h1:yGEzV1wPz2yVCLsD8ZAiGHhHVlczyC9d1rP43/VCRJ0= +go.etcd.io/bbolt v1.3.11/go.mod h1:dksAq7YMXoljX0xu6VF5DMZGbhYYoLUalEiSySYAS4I= +go.etcd.io/etcd/api/v3 v3.5.16 h1:WvmyJVbjWqK4R1E+B12RRHz3bRGy9XVfh++MgbN+6n0= +go.etcd.io/etcd/api/v3 v3.5.16/go.mod h1:1P4SlIP/VwkDmGo3OlOD7faPeP8KDIFhqvciH5EfN28= +go.etcd.io/etcd/client/pkg/v3 v3.5.16 h1:ZgY48uH6UvB+/7R9Yf4x574uCO3jIx0TRDyetSfId3Q= +go.etcd.io/etcd/client/pkg/v3 v3.5.16/go.mod h1:V8acl8pcEK0Y2g19YlOV9m9ssUe6MgiDSobSoaBAM0E= +go.etcd.io/etcd/client/v2 v2.305.16 h1:kQrn9o5czVNaukf2A2At43cE9ZtWauOtf9vRZuiKXow= +go.etcd.io/etcd/client/v2 v2.305.16/go.mod h1:h9YxWCzcdvZENbfzBTFCnoNumr2ax3F19sKMqHFmXHE= +go.etcd.io/etcd/client/v3 v3.5.16 h1:sSmVYOAHeC9doqi0gv7v86oY/BTld0SEFGaxsU9eRhE= +go.etcd.io/etcd/client/v3 v3.5.16/go.mod h1:X+rExSGkyqxvu276cr2OwPLBaeqFu1cIl4vmRjAD/50= +go.etcd.io/etcd/pkg/v3 v3.5.16 h1:cnavs5WSPWeK4TYwPYfmcr3Joz9BH+TZ6qoUtz6/+mc= +go.etcd.io/etcd/pkg/v3 v3.5.16/go.mod h1:+lutCZHG5MBBFI/U4eYT5yL7sJfnexsoM20Y0t2uNuY= +go.etcd.io/etcd/raft/v3 v3.5.16 h1:zBXA3ZUpYs1AwiLGPafYAKKl/CORn/uaxYDwlNwndAk= +go.etcd.io/etcd/raft/v3 v3.5.16/go.mod h1:P4UP14AxofMJ/54boWilabqqWoW9eLodl6I5GdGzazI= +go.etcd.io/etcd/server/v3 v3.5.16 h1:d0/SAdJ3vVsZvF8IFVb1k8zqMZ+heGcNfft71ul9GWE= +go.etcd.io/etcd/server/v3 v3.5.16/go.mod h1:ynhyZZpdDp1Gq49jkUg5mfkDWZwXnn3eIqCqtJnrD/s= +go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= +go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= +go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= +go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= +go.opentelemetry.io/contrib/exporters/autoexport v0.46.1 h1:ysCfPZB9AjUlMa1UHYup3c9dAOCMQX/6sxSfPBUoxHw= +go.opentelemetry.io/contrib/exporters/autoexport v0.46.1/go.mod h1:ha0aiYm+DOPsLHjh0zoQ8W8sLT+LJ58J3j47lGpSLrU= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0 h1:r6I7RJCN86bpD/FQwedZ0vSixDpwuWREjW9oRMsmqDc= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.54.0/go.mod h1:B9yO6b04uB80CzjedvewuqDhxJxi11s7/GtiGa8bAjI= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 h1:yd02MEjBdJkG3uabWP9apV+OuWRIXGDuJEUJbOHmCFU= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0/go.mod h1:umTcuxiv1n/s/S6/c2AT/g2CQ7u5C59sHDNmfSwgz7Q= +go.opentelemetry.io/otel v1.33.0 h1:/FerN9bax5LoK51X/sI0SVYrjSE0/yUL7DpxW4K3FWw= +go.opentelemetry.io/otel v1.33.0/go.mod h1:SUUkR6csvUQl+yjReHu5uM3EtVV7MBm5FHKRlNx4I8I= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.44.0 h1:jd0+5t/YynESZqsSyPz+7PAFdEop0dlN0+PkyHYo8oI= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.44.0/go.mod h1:U707O40ee1FpQGyhvqnzmCJm1Wh6OX6GGBVn0E6Uyyk= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.44.0 h1:bflGWrfYyuulcdxf14V6n9+CoQcu5SAAdHmDPAJnlps= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.44.0/go.mod h1:qcTO4xHAxZLaLxPd60TdE88rxtItPHgHWqOhOGRr0as= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.28.0 h1:3Q/xZUyC1BBkualc9ROb4G8qkH90LXEIICcs5zv1OYY= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.28.0/go.mod h1:s75jGIWA9OfCMzF0xr+ZgfrB5FEbbV7UuYo32ahUiFI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 h1:qFffATk0X+HD+f1Z8lswGiOQYKHRlzfmdJm0wEaVrFA= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0/go.mod h1:MOiCmryaYtc+V0Ei+Tx9o5S1ZjA7kzLucuVuyzBZloQ= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.21.0 h1:digkEZCJWobwBqMwC0cwCq8/wkkRy/OowZg5OArWZrM= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.21.0/go.mod h1:/OpE/y70qVkndM0TrxT4KBoN3RsFZP0QaofcfYrj76I= +go.opentelemetry.io/otel/exporters/prometheus v0.44.0 h1:08qeJgaPC0YEBu2PQMbqU3rogTlyzpjhCI2b58Yn00w= +go.opentelemetry.io/otel/exporters/prometheus v0.44.0/go.mod h1:ERL2uIeBtg4TxZdojHUwzZfIFlUIjZtxubT5p4h1Gjg= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.29.0 h1:WDdP9acbMYjbKIyJUhTvtzj601sVJOqgWdUxSdR/Ysc= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.29.0/go.mod h1:BLbf7zbNIONBLPwvFnwNHGj4zge8uTCM/UPIVW1Mq2I= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.21.0 h1:VhlEQAPp9R1ktYfrPk5SOryw1e9LDDTZCbIPFrho0ec= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.21.0/go.mod h1:kB3ufRbfU+CQ4MlUcqtW8Z7YEOBeK2DJ6CmR5rYYF3E= +go.opentelemetry.io/otel/metric v1.33.0 h1:r+JOocAyeRVXD8lZpjdQjzMadVZp2M4WmQ+5WtEnklQ= +go.opentelemetry.io/otel/metric v1.33.0/go.mod h1:L9+Fyctbp6HFTddIxClbQkjtubW6O9QS3Ann/M82u6M= +go.opentelemetry.io/otel/sdk v1.31.0 h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk= +go.opentelemetry.io/otel/sdk v1.31.0/go.mod h1:TfRbMdhvxIIr/B2N2LQW2S5v9m3gOQ/08KsbbO5BPT0= +go.opentelemetry.io/otel/sdk/metric v1.31.0 h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4JjxTeYusH7zMc= +go.opentelemetry.io/otel/sdk/metric v1.31.0/go.mod h1:CRInTMVvNhUKgSAMbKyTMxqOBC0zgyxzW55lZzX43Y8= +go.opentelemetry.io/otel/trace v1.33.0 h1:cCJuF7LRjUFso9LPnEAHJDB2pqzp+hbO8eu1qqW2d/s= +go.opentelemetry.io/otel/trace v1.33.0/go.mod h1:uIcdVUZMpTAmz0tI1z04GoVSezK37CbGV4fr1f2nBck= +go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= +go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= +go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= +go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= +go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= +go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8= +go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= +golang.org/x/arch v0.13.0 h1:KCkqVVV1kGg0X87TFysjCJ8MxtZEIU4Ja/yXGeoECdA= +golang.org/x/arch v0.13.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc= +golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= +golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 h1:yqrTHse8TCMW1M1ZCP+VAR/l0kKxwaAIqN/il7x4voA= +golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8/go.mod h1:tujkw807nyEEAamNbDrEGzRav+ilXA7PCRAd6xsmwiU= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= +golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= +golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= +golang.org/x/oauth2 v0.25.0 h1:CY4y7XT9v0cRI9oupztF8AgiIu99L/ksR/Xp/6jrZ70= +golang.org/x/oauth2 v0.25.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= +golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.28.0 h1:/Ts8HFuMR2E6IP/jlo7QVLZHggjKQbhu/7H0LJFr3Gg= +golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= +golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY= +golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE= +golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/genproto v0.0.0-20241118233622-e639e219e697 h1:ToEetK57OidYuqD4Q5w+vfEnPvPpuTwedCNVohYJfNk= +google.golang.org/genproto v0.0.0-20241118233622-e639e219e697/go.mod h1:JJrvXBWRZaFMxBufik1a4RpFw4HhgVtBBWQeQgUj2cc= +google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 h1:CkkIfIt50+lT6NHAVoRYEyAvQGFM7xEwXUUywFvEb3Q= +google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576/go.mod h1:1R3kvZ1dtP3+4p4d3G8uJ8rFk/fWlScl38vanWACI08= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250106144421-5f5ef82da422 h1:3UsHvIr4Wc2aW4brOaSCmcxh9ksica6fHEr8P1XhkYw= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250106144421-5f5ef82da422/go.mod h1:3ENsm/5D1mzDyhpzeRi1NR784I0BcofWBoSc5QqqMK4= +google.golang.org/grpc v1.69.4 h1:MF5TftSMkd8GLw/m0KM6V8CMOCY6NZ1NQDPGFgbTt4A= +google.golang.org/grpc v1.69.4/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4= +google.golang.org/protobuf v1.36.2 h1:R8FeyR1/eLmkutZOM5CWghmo5itiG9z0ktFlTVLuTmU= +google.golang.org/protobuf v1.36.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4= +gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= +gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= +gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= +gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= +gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= +gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= +helm.sh/helm/v3 v3.16.4 h1:rBn/h9MACw+QlhxQTjpl8Ifx+VTWaYsw3rguGBYBzr0= +helm.sh/helm/v3 v3.16.4/go.mod h1:k8QPotUt57wWbi90w3LNmg3/MWcLPigVv+0/X4B8BzA= +k8s.io/api v0.32.0 h1:OL9JpbvAU5ny9ga2fb24X8H6xQlVp+aJMFlgtQjR9CE= +k8s.io/api v0.32.0/go.mod h1:4LEwHZEf6Q/cG96F3dqR965sYOfmPM7rq81BLgsE0p0= +k8s.io/apiextensions-apiserver v0.32.0 h1:S0Xlqt51qzzqjKPxfgX1xh4HBZE+p8KKBq+k2SWNOE0= +k8s.io/apiextensions-apiserver v0.32.0/go.mod h1:86hblMvN5yxMvZrZFX2OhIHAuFIMJIZ19bTvzkP+Fmw= +k8s.io/apimachinery v0.32.0 h1:cFSE7N3rmEEtv4ei5X6DaJPHHX0C+upp+v5lVPiEwpg= +k8s.io/apimachinery v0.32.0/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= +k8s.io/apiserver v0.32.0 h1:VJ89ZvQZ8p1sLeiWdRJpRD6oLozNZD2+qVSLi+ft5Qs= +k8s.io/apiserver v0.32.0/go.mod h1:HFh+dM1/BE/Hm4bS4nTXHVfN6Z6tFIZPi649n83b4Ag= +k8s.io/cli-runtime v0.32.0 h1:dP+OZqs7zHPpGQMCGAhectbHU2SNCuZtIimRKTv2T1c= +k8s.io/cli-runtime v0.32.0/go.mod h1:Mai8ht2+esoDRK5hr861KRy6z0zHsSTYttNVJXgP3YQ= +k8s.io/client-go v0.32.0 h1:DimtMcnN/JIKZcrSrstiwvvZvLjG0aSxy8PxN8IChp8= +k8s.io/client-go v0.32.0/go.mod h1:boDWvdM1Drk4NJj/VddSLnx59X3OPgwrOo0vGbtq9+8= +k8s.io/component-base v0.32.0 h1:d6cWHZkCiiep41ObYQS6IcgzOUQUNpywm39KVYaUqzU= +k8s.io/component-base v0.32.0/go.mod h1:JLG2W5TUxUu5uDyKiH2R/7NnxJo1HlPoRIIbVLkK5eM= +k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= +k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7 h1:hcha5B1kVACrLujCKLbr8XWMxCxzQx42DY8QKYJrDLg= +k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7/go.mod h1:GewRfANuJ70iYzvn+i4lezLDAFzvjxZYK1gn1lWcfas= +k8s.io/kubectl v0.32.0 h1:rpxl+ng9qeG79YA4Em9tLSfX0G8W0vfaiPVrc/WR7Xw= +k8s.io/kubectl v0.32.0/go.mod h1:qIjSX+QgPQUgdy8ps6eKsYNF+YmFOAO3WygfucIqFiE= +k8s.io/utils v0.0.0-20241210054802-24370beab758 h1:sdbE21q2nlQtFh65saZY+rRM6x6aJJI8IUa1AmH/qa0= +k8s.io/utils v0.0.0-20241210054802-24370beab758/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= +oras.land/oras-go v1.2.6 h1:z8cmxQXBU8yZ4mkytWqXfo6tZcamPwjsuxYU81xJ8Lk= +oras.land/oras-go v1.2.6/go.mod h1:OVPc1PegSEe/K8YiLfosrlqlqTN9PUyFvOw5Y9gwrT8= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.0 h1:CPT0ExVicCzcpeN4baWEV2ko2Z/AsiZgEdwgcfwLgMo= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.0/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw= +sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= +sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= +sigs.k8s.io/kustomize/api v0.19.0 h1:F+2HB2mU1MSiR9Hp1NEgoU2q9ItNOaBJl0I4Dlus5SQ= +sigs.k8s.io/kustomize/api v0.19.0/go.mod h1:/BbwnivGVcBh1r+8m3tH1VNxJmHSk1PzP5fkP6lbL1o= +sigs.k8s.io/kustomize/kyaml v0.19.0 h1:RFge5qsO1uHhwJsu3ipV7RNolC7Uozc0jUBC/61XSlA= +sigs.k8s.io/kustomize/kyaml v0.19.0/go.mod h1:FeKD5jEOH+FbZPpqUghBP8mrLjJ3+zD3/rf9NNu1cwY= +sigs.k8s.io/structured-merge-diff/v4 v4.5.0 h1:nbCitCK2hfnhyiKo6uf2HxUPTCodY6Qaf85SbDIaMBk= +sigs.k8s.io/structured-merge-diff/v4 v4.5.0/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4= +sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= +sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/modules/server/gqlgen.yml b/modules/dashboard/gqlgen.yml similarity index 80% rename from modules/server/gqlgen.yml rename to modules/dashboard/gqlgen.yml index 0909b6c7..f450be03 100644 --- a/modules/server/gqlgen.yml +++ b/modules/dashboard/gqlgen.yml @@ -1,17 +1,3 @@ -# Copyright 2024 Andres Morey -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - # Where are all the schema files located? globs are supported eg src/**/*.graphqls schema: - graph/*.graphqls @@ -20,11 +6,16 @@ schema: exec: filename: graph/generated.go package: graph + # Optional: Maximum number of goroutines in concurrency to use per child resolvers(default: unlimited) + # worker_limit: 1000 # Uncomment to enable federation # federation: # filename: graph/federation.go # package: graph +# version: 2 +# options +# computed_requires: true # Where should any generated models go? model: @@ -44,10 +35,10 @@ resolver: # struct_tag: json # Optional: turn on to use []Thing instead of []*Thing -omit_slice_element_pointers: true +# omit_slice_element_pointers: false # Optional: turn on to omit Is() methods to interface and unions -omit_interface_checks : true +# omit_interface_checks : true # Optional: turn on to skip generation of ComplexityRoot struct content and Complexity function # omit_complexity: false @@ -60,10 +51,10 @@ omit_interface_checks : true # Optional: turn off to make struct-type struct fields not use pointers # e.g. type Thing struct { FieldA OtherThing } instead of { FieldA *OtherThing } -struct_fields_always_pointers: false +# struct_fields_always_pointers: true # Optional: turn off to make resolvers return values instead of pointers for structs -resolvers_always_return_pointers: false +# resolvers_always_return_pointers: true # Optional: turn on to return pointers instead of values in unmarshalInput # return_pointers_in_unmarshalinput: false @@ -77,10 +68,17 @@ resolvers_always_return_pointers: false # Optional: set to skip running `go mod tidy` when generating server code # skip_mod_tidy: true +# Optional: if this is set to true, argument directives that +# decorate a field with a null value will still be called. +# +# This enables argumment directives to not just mutate +# argument values but to set them even if they're null. +call_argument_directives_with_null: true + # gqlgen will search for any type names in the schema in these go packages # if they match it will use them, otherwise it will generate them. autobind: -# - "github.com/kubetail-org/kubetail/modules/server/graph/model" +# - "github.com/kubetail-org/kubetail/modules/dashboard/graph/model" # This section declares type mapping between the GraphQL and go type systems # @@ -90,12 +88,12 @@ autobind: models: # --- Interfaces --- List: - model: github.com/kubetail-org/kubetail/modules/server/graph/model.List + model: github.com/kubetail-org/kubetail/modules/dashboard/graph/model.List Object: - model: github.com/kubetail-org/kubetail/modules/server/graph/model.Object + model: github.com/kubetail-org/kubetail/modules/dashboard/graph/model.Object - # --- AppsV1 --- + # --- AppsV1 --- AppsV1DaemonSet: model: k8s.io/api/apps/v1.DaemonSet fields: @@ -270,6 +268,7 @@ models: resolver: true # --- CoreV1 --- + CoreV1ConditionStatus: model: k8s.io/api/core/v1.ConditionStatus @@ -366,21 +365,54 @@ models: object: resolver: true - # --- LogMetadata --- - LogMetadata: - model: github.com/kubetail-org/kubetail/modules/common/agentpb.LogMetadata + CoreV1Service: + model: k8s.io/api/core/v1.Service + fields: + id: + fieldName: UID + metadata: + fieldName: ObjectMeta + + CoreV1ServiceList: + model: k8s.io/api/core/v1.ServiceList + fields: + metadata: + fieldName: ListMeta + + CoreV1ServicePort: + model: k8s.io/api/core/v1.ServicePort + + CoreV1ServiceSpec: + model: k8s.io/api/core/v1.ServiceSpec + + CoreV1ServicesWatchEvent: + model: k8s.io/apimachinery/pkg/watch.Event + fields: + object: + resolver: true + + # --- KubeConfig --- + KubeConfig: + model: github.com/kubetail-org/kubetail/modules/dashboard/graph/model.KubeConfig + fields: + authInfos: + resolver: true + clusters: + resolver: true + contexts: + resolver: true - LogMetadataFileInfo: - model: github.com/kubetail-org/kubetail/modules/common/agentpb.LogMetadataFileInfo + KubeConfigAuthInfo: + model: github.com/kubetail-org/kubetail/modules/dashboard/graph/model.KubeConfigAuthInfo - LogMetadataList: - model: github.com/kubetail-org/kubetail/modules/common/agentpb.LogMetadataList + KubeConfigCluster: + model: github.com/kubetail-org/kubetail/modules/dashboard/graph/model.KubeConfigCluster - LogMetadataSpec: - model: github.com/kubetail-org/kubetail/modules/common/agentpb.LogMetadataSpec + KubeConfigContext: + model: github.com/kubetail-org/kubetail/modules/dashboard/graph/model.KubeConfigContext - LogMetadataWatchEvent: - model: github.com/kubetail-org/kubetail/modules/common/agentpb.LogMetadataWatchEvent + KubeConfigExtensions: + model: github.com/kubetail-org/kubetail/modules/dashboard/graph/model.KubeConfigExtensions # --- MetaV1 --- MetaV1GetOptions: @@ -416,18 +448,14 @@ models: # --- custom scalars --- Int64: - model: github.com/kubetail-org/kubetail/modules/server/graph/model.Int64 + model: github.com/kubetail-org/kubetail/modules/shared/graphql/model.Int64 MetaV1Time: model: - - github.com/kubetail-org/kubetail/modules/server/graph/model.MetaV1Time + - github.com/kubetail-org/kubetail/modules/dashboard/graph/model.MetaV1Time StringMap: - model: github.com/kubetail-org/kubetail/modules/server/graph/model.StringMap - - TimestampPBTimestamp: - model: - - github.com/kubetail-org/kubetail/modules/server/graph/model.TimestampPBTimestamp + model: github.com/kubetail-org/kubetail/modules/dashboard/graph/model.StringMap # --- gqlgen --- ID: diff --git a/modules/server/graph/directives.go b/modules/dashboard/graph/directives.go similarity index 89% rename from modules/server/graph/directives.go rename to modules/dashboard/graph/directives.go index ee7e3dd4..3c5b1fc6 100644 --- a/modules/server/graph/directives.go +++ b/modules/dashboard/graph/directives.go @@ -7,7 +7,7 @@ import ( "github.com/99designs/gqlgen/graphql" "github.com/go-playground/validator/v10" - "github.com/kubetail-org/kubetail/modules/server/graph/lib" + gqlerrors "github.com/kubetail-org/kubetail/modules/shared/graphql/errors" ) var validate *validator.Validate @@ -35,7 +35,7 @@ func ValidateDirective(ctx context.Context, obj interface{}, next graphql.Resolv if message != nil { msg = *message } - gqlerr := lib.NewValidationError(rule, msg) + gqlerr := gqlerrors.NewValidationError(rule, msg) // add to context graphql.AddError(ctx, gqlerr) diff --git a/modules/server/graph/errors.go b/modules/dashboard/graph/errors.go similarity index 53% rename from modules/server/graph/errors.go rename to modules/dashboard/graph/errors.go index 86027030..5e1ff4e3 100644 --- a/modules/server/graph/errors.go +++ b/modules/dashboard/graph/errors.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -15,46 +15,32 @@ package graph import ( - "fmt" - "github.com/vektah/gqlparser/v2/gqlerror" - "google.golang.org/grpc" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) -// custom errors -var ( - ErrUnauthenticated = NewError("KUBETAIL_UNAUTHENTICATED", "Authentication required") - ErrForbidden = NewError("KUBETAIL_FORBIDDEN", "Access forbidden") - ErrWatchError = NewError("KUBETAIL_WATCH_ERROR", "Watch error") - ErrInternalServerError = NewError("INTERNAL_SERVER_ERROR", "Internal server error") + "github.com/kubetail-org/kubetail/modules/shared/graphql/errors" ) -// Initialize custom GraphQL errors -func NewError(code string, message string) *gqlerror.Error { +// New Watch API error +func newWatchError(message string) *gqlerror.Error { + // init error return &gqlerror.Error{ Message: message, Extensions: map[string]interface{}{ - "code": code, + "code": errors.ErrWatchError.Extensions["code"], }, } } // New Watch API error -func NewWatchError(status *metav1.Status) *gqlerror.Error { +func newWatchErrorFromMetaV1Status(status *metav1.Status) *gqlerror.Error { // init error return &gqlerror.Error{ Message: status.Message, Extensions: map[string]interface{}{ - "code": ErrWatchError.Extensions["code"], + "code": errors.ErrWatchError.Extensions["code"], "status": status.Status, "reason": status.Reason, }, } } - -// New GRPC error -func NewGrpcError(conn *grpc.ClientConn, err error) *gqlerror.Error { - err = fmt.Errorf("%s: %w", conn.CanonicalTarget(), err) - return NewError("INTERNAL_SERVER_ERROR", err.Error()) -} diff --git a/modules/server/graph/generated.go b/modules/dashboard/graph/generated.go similarity index 80% rename from modules/server/graph/generated.go rename to modules/dashboard/graph/generated.go index b93e4e9b..5f9ab069 100644 --- a/modules/server/graph/generated.go +++ b/modules/dashboard/graph/generated.go @@ -16,15 +16,15 @@ import ( "github.com/99designs/gqlgen/graphql" "github.com/99designs/gqlgen/graphql/introspection" - "github.com/kubetail-org/kubetail/modules/common/agentpb" - "github.com/kubetail-org/kubetail/modules/server/graph/model" + "github.com/kubetail-org/kubetail/modules/dashboard/graph/model" + model1 "github.com/kubetail-org/kubetail/modules/shared/graphql/model" gqlparser "github.com/vektah/gqlparser/v2" "github.com/vektah/gqlparser/v2/ast" - "google.golang.org/protobuf/types/known/timestamppb" - v12 "k8s.io/api/apps/v1" - v13 "k8s.io/api/batch/v1" - v11 "k8s.io/api/core/v1" + v11 "k8s.io/api/apps/v1" + v12 "k8s.io/api/batch/v1" + v13 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/watch" ) @@ -58,13 +58,16 @@ type ResolverRoot interface { CoreV1NamespacesWatchEvent() CoreV1NamespacesWatchEventResolver CoreV1NodesWatchEvent() CoreV1NodesWatchEventResolver CoreV1PodsWatchEvent() CoreV1PodsWatchEventResolver + CoreV1ServicesWatchEvent() CoreV1ServicesWatchEventResolver + KubeConfig() KubeConfigResolver + Mutation() MutationResolver Query() QueryResolver Subscription() SubscriptionResolver } type DirectiveRoot struct { - NullIfValidationFailed func(ctx context.Context, obj interface{}, next graphql.Resolver) (res interface{}, err error) - Validate func(ctx context.Context, obj interface{}, next graphql.Resolver, rule string, message *string) (res interface{}, err error) + NullIfValidationFailed func(ctx context.Context, obj any, next graphql.Resolver) (res any, err error) + Validate func(ctx context.Context, obj any, next graphql.Resolver, rule string, message *string) (res any, err error) } type ComplexityRoot struct { @@ -414,36 +417,75 @@ type ComplexityRoot struct { Type func(childComplexity int) int } + CoreV1Service struct { + APIVersion func(childComplexity int) int + Kind func(childComplexity int) int + ObjectMeta func(childComplexity int) int + Spec func(childComplexity int) int + UID func(childComplexity int) int + } + + CoreV1ServiceList struct { + APIVersion func(childComplexity int) int + Items func(childComplexity int) int + Kind func(childComplexity int) int + ListMeta func(childComplexity int) int + } + + CoreV1ServicePort struct { + Name func(childComplexity int) int + } + + CoreV1ServiceSpec struct { + ClusterIP func(childComplexity int) int + ClusterIPs func(childComplexity int) int + ExternalName func(childComplexity int) int + Ports func(childComplexity int) int + Selector func(childComplexity int) int + } + + CoreV1ServicesWatchEvent struct { + Object func(childComplexity int) int + Type func(childComplexity int) int + } + HealthCheckResponse struct { Message func(childComplexity int) int Status func(childComplexity int) int Timestamp func(childComplexity int) int } - LogMetadata struct { - FileInfo func(childComplexity int) int - Id func(childComplexity int) int - Spec func(childComplexity int) int + KubeConfig struct { + AuthInfos func(childComplexity int) int + Clusters func(childComplexity int) int + Contexts func(childComplexity int) int + CurrentContext func(childComplexity int) int + Extensions func(childComplexity int) int } - LogMetadataFileInfo struct { - LastModifiedAt func(childComplexity int) int - Size func(childComplexity int) int + KubeConfigAuthInfo struct { + Extensions func(childComplexity int) int + LocationOfOrigin func(childComplexity int) int + Name func(childComplexity int) int } - LogMetadataList struct { - Items func(childComplexity int) int + KubeConfigCluster struct { + Extensions func(childComplexity int) int + LocationOfOrigin func(childComplexity int) int + Name func(childComplexity int) int + Server func(childComplexity int) int } - LogMetadataSpec struct { - ContainerId func(childComplexity int) int - ContainerName func(childComplexity int) int - Namespace func(childComplexity int) int - NodeName func(childComplexity int) int - PodName func(childComplexity int) int + KubeConfigContext struct { + AuthInfo func(childComplexity int) int + Cluster func(childComplexity int) int + Extensions func(childComplexity int) int + LocationOfOrigin func(childComplexity int) int + Name func(childComplexity int) int + Namespace func(childComplexity int) int } - LogMetadataWatchEvent struct { + KubeConfigWatchEvent struct { Object func(childComplexity int) int Type func(childComplexity int) int } @@ -490,6 +532,10 @@ type ComplexityRoot struct { UID func(childComplexity int) int } + Mutation struct { + KubetailClusterAPIInstall func(childComplexity int, kubeContext *string) int + } + PageInfo struct { EndCursor func(childComplexity int) int HasNextPage func(childComplexity int) int @@ -503,116 +549,131 @@ type ComplexityRoot struct { } Query struct { - AppsV1DaemonSetsGet func(childComplexity int, name string, namespace *string, options *v1.GetOptions) int - AppsV1DaemonSetsList func(childComplexity int, namespace *string, options *v1.ListOptions) int - AppsV1DeploymentsGet func(childComplexity int, name string, namespace *string, options *v1.GetOptions) int - AppsV1DeploymentsList func(childComplexity int, namespace *string, options *v1.ListOptions) int - AppsV1ReplicaSetsGet func(childComplexity int, name string, namespace *string, options *v1.GetOptions) int - AppsV1ReplicaSetsList func(childComplexity int, namespace *string, options *v1.ListOptions) int - AppsV1StatefulSetsGet func(childComplexity int, name string, namespace *string, options *v1.GetOptions) int - AppsV1StatefulSetsList func(childComplexity int, namespace *string, options *v1.ListOptions) int - BatchV1CronJobsGet func(childComplexity int, name string, namespace *string, options *v1.GetOptions) int - BatchV1CronJobsList func(childComplexity int, namespace *string, options *v1.ListOptions) int - BatchV1JobsGet func(childComplexity int, name string, namespace *string, options *v1.GetOptions) int - BatchV1JobsList func(childComplexity int, namespace *string, options *v1.ListOptions) int - CoreV1NamespacesList func(childComplexity int, options *v1.ListOptions) int - CoreV1NodesList func(childComplexity int, options *v1.ListOptions) int - CoreV1PodsGet func(childComplexity int, namespace *string, name string, options *v1.GetOptions) int - CoreV1PodsGetLogs func(childComplexity int, namespace *string, name string, options *v11.PodLogOptions) int - CoreV1PodsList func(childComplexity int, namespace *string, options *v1.ListOptions) int - LivezGet func(childComplexity int) int - LogMetadataList func(childComplexity int, namespace *string) int - PodLogHead func(childComplexity int, namespace *string, name string, container *string, after *string, since *string, first *int) int - PodLogTail func(childComplexity int, namespace *string, name string, container *string, before *string, last *int) int - ReadyWait func(childComplexity int, timeout *int) int - ReadyzGet func(childComplexity int) int + AppsV1DaemonSetsGet func(childComplexity int, kubeContext *string, namespace *string, name string, options *v1.GetOptions) int + AppsV1DaemonSetsList func(childComplexity int, kubeContext *string, namespace *string, options *v1.ListOptions) int + AppsV1DeploymentsGet func(childComplexity int, kubeContext *string, namespace *string, name string, options *v1.GetOptions) int + AppsV1DeploymentsList func(childComplexity int, kubeContext *string, namespace *string, options *v1.ListOptions) int + AppsV1ReplicaSetsGet func(childComplexity int, kubeContext *string, namespace *string, name string, options *v1.GetOptions) int + AppsV1ReplicaSetsList func(childComplexity int, kubeContext *string, namespace *string, options *v1.ListOptions) int + AppsV1StatefulSetsGet func(childComplexity int, kubeContext *string, namespace *string, name string, options *v1.GetOptions) int + AppsV1StatefulSetsList func(childComplexity int, kubeContext *string, namespace *string, options *v1.ListOptions) int + BatchV1CronJobsGet func(childComplexity int, kubeContext *string, namespace *string, name string, options *v1.GetOptions) int + BatchV1CronJobsList func(childComplexity int, kubeContext *string, namespace *string, options *v1.ListOptions) int + BatchV1JobsGet func(childComplexity int, kubeContext *string, namespace *string, name string, options *v1.GetOptions) int + BatchV1JobsList func(childComplexity int, kubeContext *string, namespace *string, options *v1.ListOptions) int + CoreV1NamespacesList func(childComplexity int, kubeContext *string, options *v1.ListOptions) int + CoreV1NodesList func(childComplexity int, kubeContext *string, options *v1.ListOptions) int + CoreV1PodsGet func(childComplexity int, kubeContext *string, namespace *string, name string, options *v1.GetOptions) int + CoreV1PodsList func(childComplexity int, kubeContext *string, namespace *string, options *v1.ListOptions) int + CoreV1ServicesGet func(childComplexity int, kubeContext *string, namespace *string, name string, options *v1.GetOptions) int + CoreV1ServicesList func(childComplexity int, kubeContext *string, namespace *string, options *v1.ListOptions) int + KubeConfigGet func(childComplexity int) int + KubernetesAPIHealthzGet func(childComplexity int, kubeContext *string) int + KubernetesAPIReadyWait func(childComplexity int, kubeContext *string) int + KubetailClusterAPIHealthzGet func(childComplexity int, kubeContext *string, namespace *string, serviceName *string) int + KubetailClusterAPIReadyWait func(childComplexity int, kubeContext *string, namespace *string, serviceName *string) int + PodLogHead func(childComplexity int, kubeContext *string, namespace *string, name string, container *string, after *string, since *string, first *int) int + PodLogTail func(childComplexity int, kubeContext *string, namespace *string, name string, container *string, before *string, last *int) int } Subscription struct { - AppsV1DaemonSetsWatch func(childComplexity int, namespace *string, options *v1.ListOptions) int - AppsV1DeploymentsWatch func(childComplexity int, namespace *string, options *v1.ListOptions) int - AppsV1ReplicaSetsWatch func(childComplexity int, namespace *string, options *v1.ListOptions) int - AppsV1StatefulSetsWatch func(childComplexity int, namespace *string, options *v1.ListOptions) int - BatchV1CronJobsWatch func(childComplexity int, namespace *string, options *v1.ListOptions) int - BatchV1JobsWatch func(childComplexity int, namespace *string, options *v1.ListOptions) int - CoreV1NamespacesWatch func(childComplexity int, options *v1.ListOptions) int - CoreV1NodesWatch func(childComplexity int, options *v1.ListOptions) int - CoreV1PodLogTail func(childComplexity int, namespace *string, name string, options *v11.PodLogOptions) int - CoreV1PodsWatch func(childComplexity int, namespace *string, options *v1.ListOptions) int - LivezWatch func(childComplexity int) int - LogMetadataWatch func(childComplexity int, namespace *string) int - PodLogFollow func(childComplexity int, namespace *string, name string, container *string, after *string, since *string) int - ReadyzWatch func(childComplexity int) int + AppsV1DaemonSetsWatch func(childComplexity int, kubeContext *string, namespace *string, options *v1.ListOptions) int + AppsV1DeploymentsWatch func(childComplexity int, kubeContext *string, namespace *string, options *v1.ListOptions) int + AppsV1ReplicaSetsWatch func(childComplexity int, kubeContext *string, namespace *string, options *v1.ListOptions) int + AppsV1StatefulSetsWatch func(childComplexity int, kubeContext *string, namespace *string, options *v1.ListOptions) int + BatchV1CronJobsWatch func(childComplexity int, kubeContext *string, namespace *string, options *v1.ListOptions) int + BatchV1JobsWatch func(childComplexity int, kubeContext *string, namespace *string, options *v1.ListOptions) int + CoreV1NamespacesWatch func(childComplexity int, kubeContext *string, options *v1.ListOptions) int + CoreV1NodesWatch func(childComplexity int, kubeContext *string, options *v1.ListOptions) int + CoreV1PodsWatch func(childComplexity int, kubeContext *string, namespace *string, options *v1.ListOptions) int + CoreV1ServicesWatch func(childComplexity int, kubeContext *string, namespace *string, options *v1.ListOptions) int + KubeConfigWatch func(childComplexity int) int + KubernetesAPIHealthzWatch func(childComplexity int, kubeContext *string) int + KubetailClusterAPIHealthzWatch func(childComplexity int, kubeContext *string, namespace *string, serviceName *string) int + PodLogFollow func(childComplexity int, kubeContext *string, namespace *string, name string, container *string, after *string, since *string) int } } type AppsV1DaemonSetsWatchEventResolver interface { - Object(ctx context.Context, obj *watch.Event) (*v12.DaemonSet, error) + Object(ctx context.Context, obj *watch.Event) (*v11.DaemonSet, error) } type AppsV1DeploymentsWatchEventResolver interface { - Object(ctx context.Context, obj *watch.Event) (*v12.Deployment, error) + Object(ctx context.Context, obj *watch.Event) (*v11.Deployment, error) } type AppsV1ReplicaSetsWatchEventResolver interface { - Object(ctx context.Context, obj *watch.Event) (*v12.ReplicaSet, error) + Object(ctx context.Context, obj *watch.Event) (*v11.ReplicaSet, error) } type AppsV1StatefulSetsWatchEventResolver interface { - Object(ctx context.Context, obj *watch.Event) (*v12.StatefulSet, error) + Object(ctx context.Context, obj *watch.Event) (*v11.StatefulSet, error) } type BatchV1CronJobsWatchEventResolver interface { - Object(ctx context.Context, obj *watch.Event) (*v13.CronJob, error) + Object(ctx context.Context, obj *watch.Event) (*v12.CronJob, error) } type BatchV1JobsWatchEventResolver interface { - Object(ctx context.Context, obj *watch.Event) (*v13.Job, error) + Object(ctx context.Context, obj *watch.Event) (*v12.Job, error) } type CoreV1NamespacesWatchEventResolver interface { - Object(ctx context.Context, obj *watch.Event) (*v11.Namespace, error) + Object(ctx context.Context, obj *watch.Event) (*v13.Namespace, error) } type CoreV1NodesWatchEventResolver interface { - Object(ctx context.Context, obj *watch.Event) (*v11.Node, error) + Object(ctx context.Context, obj *watch.Event) (*v13.Node, error) } type CoreV1PodsWatchEventResolver interface { - Object(ctx context.Context, obj *watch.Event) (*v11.Pod, error) + Object(ctx context.Context, obj *watch.Event) (*v13.Pod, error) +} +type CoreV1ServicesWatchEventResolver interface { + Object(ctx context.Context, obj *watch.Event) (*v13.Service, error) +} +type KubeConfigResolver interface { + AuthInfos(ctx context.Context, obj *model.KubeConfig) ([]*model.KubeConfigAuthInfo, error) + Clusters(ctx context.Context, obj *model.KubeConfig) ([]*model.KubeConfigCluster, error) + Contexts(ctx context.Context, obj *model.KubeConfig) ([]*model.KubeConfigContext, error) +} +type MutationResolver interface { + KubetailClusterAPIInstall(ctx context.Context, kubeContext *string) (*bool, error) } type QueryResolver interface { - AppsV1DaemonSetsGet(ctx context.Context, name string, namespace *string, options *v1.GetOptions) (*v12.DaemonSet, error) - AppsV1DaemonSetsList(ctx context.Context, namespace *string, options *v1.ListOptions) (*v12.DaemonSetList, error) - AppsV1DeploymentsGet(ctx context.Context, name string, namespace *string, options *v1.GetOptions) (*v12.Deployment, error) - AppsV1DeploymentsList(ctx context.Context, namespace *string, options *v1.ListOptions) (*v12.DeploymentList, error) - AppsV1ReplicaSetsGet(ctx context.Context, name string, namespace *string, options *v1.GetOptions) (*v12.ReplicaSet, error) - AppsV1ReplicaSetsList(ctx context.Context, namespace *string, options *v1.ListOptions) (*v12.ReplicaSetList, error) - AppsV1StatefulSetsGet(ctx context.Context, name string, namespace *string, options *v1.GetOptions) (*v12.StatefulSet, error) - AppsV1StatefulSetsList(ctx context.Context, namespace *string, options *v1.ListOptions) (*v12.StatefulSetList, error) - BatchV1CronJobsGet(ctx context.Context, name string, namespace *string, options *v1.GetOptions) (*v13.CronJob, error) - BatchV1CronJobsList(ctx context.Context, namespace *string, options *v1.ListOptions) (*v13.CronJobList, error) - BatchV1JobsGet(ctx context.Context, name string, namespace *string, options *v1.GetOptions) (*v13.Job, error) - BatchV1JobsList(ctx context.Context, namespace *string, options *v1.ListOptions) (*v13.JobList, error) - CoreV1NamespacesList(ctx context.Context, options *v1.ListOptions) (*v11.NamespaceList, error) - CoreV1NodesList(ctx context.Context, options *v1.ListOptions) (*v11.NodeList, error) - CoreV1PodsGet(ctx context.Context, namespace *string, name string, options *v1.GetOptions) (*v11.Pod, error) - CoreV1PodsList(ctx context.Context, namespace *string, options *v1.ListOptions) (*v11.PodList, error) - CoreV1PodsGetLogs(ctx context.Context, namespace *string, name string, options *v11.PodLogOptions) ([]model.LogRecord, error) - LogMetadataList(ctx context.Context, namespace *string) (*agentpb.LogMetadataList, error) - PodLogHead(ctx context.Context, namespace *string, name string, container *string, after *string, since *string, first *int) (*model.PodLogQueryResponse, error) - PodLogTail(ctx context.Context, namespace *string, name string, container *string, before *string, last *int) (*model.PodLogQueryResponse, error) - LivezGet(ctx context.Context) (model.HealthCheckResponse, error) - ReadyzGet(ctx context.Context) (model.HealthCheckResponse, error) - ReadyWait(ctx context.Context, timeout *int) (bool, error) + AppsV1DaemonSetsGet(ctx context.Context, kubeContext *string, namespace *string, name string, options *v1.GetOptions) (*v11.DaemonSet, error) + AppsV1DaemonSetsList(ctx context.Context, kubeContext *string, namespace *string, options *v1.ListOptions) (*v11.DaemonSetList, error) + AppsV1DeploymentsGet(ctx context.Context, kubeContext *string, namespace *string, name string, options *v1.GetOptions) (*v11.Deployment, error) + AppsV1DeploymentsList(ctx context.Context, kubeContext *string, namespace *string, options *v1.ListOptions) (*v11.DeploymentList, error) + AppsV1ReplicaSetsGet(ctx context.Context, kubeContext *string, namespace *string, name string, options *v1.GetOptions) (*v11.ReplicaSet, error) + AppsV1ReplicaSetsList(ctx context.Context, kubeContext *string, namespace *string, options *v1.ListOptions) (*v11.ReplicaSetList, error) + AppsV1StatefulSetsGet(ctx context.Context, kubeContext *string, namespace *string, name string, options *v1.GetOptions) (*v11.StatefulSet, error) + AppsV1StatefulSetsList(ctx context.Context, kubeContext *string, namespace *string, options *v1.ListOptions) (*v11.StatefulSetList, error) + BatchV1CronJobsGet(ctx context.Context, kubeContext *string, namespace *string, name string, options *v1.GetOptions) (*v12.CronJob, error) + BatchV1CronJobsList(ctx context.Context, kubeContext *string, namespace *string, options *v1.ListOptions) (*v12.CronJobList, error) + BatchV1JobsGet(ctx context.Context, kubeContext *string, namespace *string, name string, options *v1.GetOptions) (*v12.Job, error) + BatchV1JobsList(ctx context.Context, kubeContext *string, namespace *string, options *v1.ListOptions) (*v12.JobList, error) + CoreV1NamespacesList(ctx context.Context, kubeContext *string, options *v1.ListOptions) (*v13.NamespaceList, error) + CoreV1NodesList(ctx context.Context, kubeContext *string, options *v1.ListOptions) (*v13.NodeList, error) + CoreV1PodsGet(ctx context.Context, kubeContext *string, namespace *string, name string, options *v1.GetOptions) (*v13.Pod, error) + CoreV1PodsList(ctx context.Context, kubeContext *string, namespace *string, options *v1.ListOptions) (*v13.PodList, error) + CoreV1ServicesGet(ctx context.Context, kubeContext *string, namespace *string, name string, options *v1.GetOptions) (*v13.Service, error) + CoreV1ServicesList(ctx context.Context, kubeContext *string, namespace *string, options *v1.ListOptions) (*v13.ServiceList, error) + KubernetesAPIReadyWait(ctx context.Context, kubeContext *string) (bool, error) + KubernetesAPIHealthzGet(ctx context.Context, kubeContext *string) (*model.HealthCheckResponse, error) + KubetailClusterAPIReadyWait(ctx context.Context, kubeContext *string, namespace *string, serviceName *string) (bool, error) + KubetailClusterAPIHealthzGet(ctx context.Context, kubeContext *string, namespace *string, serviceName *string) (*model.HealthCheckResponse, error) + KubeConfigGet(ctx context.Context) (*model.KubeConfig, error) + PodLogHead(ctx context.Context, kubeContext *string, namespace *string, name string, container *string, after *string, since *string, first *int) (*model.PodLogQueryResponse, error) + PodLogTail(ctx context.Context, kubeContext *string, namespace *string, name string, container *string, before *string, last *int) (*model.PodLogQueryResponse, error) } type SubscriptionResolver interface { - AppsV1DaemonSetsWatch(ctx context.Context, namespace *string, options *v1.ListOptions) (<-chan *watch.Event, error) - AppsV1DeploymentsWatch(ctx context.Context, namespace *string, options *v1.ListOptions) (<-chan *watch.Event, error) - AppsV1ReplicaSetsWatch(ctx context.Context, namespace *string, options *v1.ListOptions) (<-chan *watch.Event, error) - AppsV1StatefulSetsWatch(ctx context.Context, namespace *string, options *v1.ListOptions) (<-chan *watch.Event, error) - BatchV1CronJobsWatch(ctx context.Context, namespace *string, options *v1.ListOptions) (<-chan *watch.Event, error) - BatchV1JobsWatch(ctx context.Context, namespace *string, options *v1.ListOptions) (<-chan *watch.Event, error) - CoreV1NamespacesWatch(ctx context.Context, options *v1.ListOptions) (<-chan *watch.Event, error) - CoreV1NodesWatch(ctx context.Context, options *v1.ListOptions) (<-chan *watch.Event, error) - CoreV1PodsWatch(ctx context.Context, namespace *string, options *v1.ListOptions) (<-chan *watch.Event, error) - CoreV1PodLogTail(ctx context.Context, namespace *string, name string, options *v11.PodLogOptions) (<-chan *model.LogRecord, error) - LogMetadataWatch(ctx context.Context, namespace *string) (<-chan *agentpb.LogMetadataWatchEvent, error) - PodLogFollow(ctx context.Context, namespace *string, name string, container *string, after *string, since *string) (<-chan *model.LogRecord, error) - LivezWatch(ctx context.Context) (<-chan model.HealthCheckResponse, error) - ReadyzWatch(ctx context.Context) (<-chan model.HealthCheckResponse, error) + AppsV1DaemonSetsWatch(ctx context.Context, kubeContext *string, namespace *string, options *v1.ListOptions) (<-chan *watch.Event, error) + AppsV1DeploymentsWatch(ctx context.Context, kubeContext *string, namespace *string, options *v1.ListOptions) (<-chan *watch.Event, error) + AppsV1ReplicaSetsWatch(ctx context.Context, kubeContext *string, namespace *string, options *v1.ListOptions) (<-chan *watch.Event, error) + AppsV1StatefulSetsWatch(ctx context.Context, kubeContext *string, namespace *string, options *v1.ListOptions) (<-chan *watch.Event, error) + BatchV1CronJobsWatch(ctx context.Context, kubeContext *string, namespace *string, options *v1.ListOptions) (<-chan *watch.Event, error) + BatchV1JobsWatch(ctx context.Context, kubeContext *string, namespace *string, options *v1.ListOptions) (<-chan *watch.Event, error) + CoreV1NamespacesWatch(ctx context.Context, kubeContext *string, options *v1.ListOptions) (<-chan *watch.Event, error) + CoreV1NodesWatch(ctx context.Context, kubeContext *string, options *v1.ListOptions) (<-chan *watch.Event, error) + CoreV1PodsWatch(ctx context.Context, kubeContext *string, namespace *string, options *v1.ListOptions) (<-chan *watch.Event, error) + CoreV1ServicesWatch(ctx context.Context, kubeContext *string, namespace *string, options *v1.ListOptions) (<-chan *watch.Event, error) + KubernetesAPIHealthzWatch(ctx context.Context, kubeContext *string) (<-chan *model.HealthCheckResponse, error) + KubetailClusterAPIHealthzWatch(ctx context.Context, kubeContext *string, namespace *string, serviceName *string) (<-chan *model.HealthCheckResponse, error) + KubeConfigWatch(ctx context.Context) (<-chan *model.KubeConfigWatchEvent, error) + PodLogFollow(ctx context.Context, kubeContext *string, namespace *string, name string, container *string, after *string, since *string) (<-chan *model.LogRecord, error) } type executableSchema struct { @@ -629,7 +690,7 @@ func (e *executableSchema) Schema() *ast.Schema { return parsedSchema } -func (e *executableSchema) Complexity(typeName, field string, childComplexity int, rawArgs map[string]interface{}) (int, bool) { +func (e *executableSchema) Complexity(typeName, field string, childComplexity int, rawArgs map[string]any) (int, bool) { ec := executionContext{nil, e, 0, 0, nil} _ = ec switch typeName + "." + field { @@ -2006,6 +2067,125 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return e.complexity.CoreV1PodsWatchEvent.Type(childComplexity), true + case "CoreV1Service.apiVersion": + if e.complexity.CoreV1Service.APIVersion == nil { + break + } + + return e.complexity.CoreV1Service.APIVersion(childComplexity), true + + case "CoreV1Service.kind": + if e.complexity.CoreV1Service.Kind == nil { + break + } + + return e.complexity.CoreV1Service.Kind(childComplexity), true + + case "CoreV1Service.metadata": + if e.complexity.CoreV1Service.ObjectMeta == nil { + break + } + + return e.complexity.CoreV1Service.ObjectMeta(childComplexity), true + + case "CoreV1Service.spec": + if e.complexity.CoreV1Service.Spec == nil { + break + } + + return e.complexity.CoreV1Service.Spec(childComplexity), true + + case "CoreV1Service.id": + if e.complexity.CoreV1Service.UID == nil { + break + } + + return e.complexity.CoreV1Service.UID(childComplexity), true + + case "CoreV1ServiceList.apiVersion": + if e.complexity.CoreV1ServiceList.APIVersion == nil { + break + } + + return e.complexity.CoreV1ServiceList.APIVersion(childComplexity), true + + case "CoreV1ServiceList.items": + if e.complexity.CoreV1ServiceList.Items == nil { + break + } + + return e.complexity.CoreV1ServiceList.Items(childComplexity), true + + case "CoreV1ServiceList.kind": + if e.complexity.CoreV1ServiceList.Kind == nil { + break + } + + return e.complexity.CoreV1ServiceList.Kind(childComplexity), true + + case "CoreV1ServiceList.metadata": + if e.complexity.CoreV1ServiceList.ListMeta == nil { + break + } + + return e.complexity.CoreV1ServiceList.ListMeta(childComplexity), true + + case "CoreV1ServicePort.name": + if e.complexity.CoreV1ServicePort.Name == nil { + break + } + + return e.complexity.CoreV1ServicePort.Name(childComplexity), true + + case "CoreV1ServiceSpec.clusterIP": + if e.complexity.CoreV1ServiceSpec.ClusterIP == nil { + break + } + + return e.complexity.CoreV1ServiceSpec.ClusterIP(childComplexity), true + + case "CoreV1ServiceSpec.clusterIPs": + if e.complexity.CoreV1ServiceSpec.ClusterIPs == nil { + break + } + + return e.complexity.CoreV1ServiceSpec.ClusterIPs(childComplexity), true + + case "CoreV1ServiceSpec.externalName": + if e.complexity.CoreV1ServiceSpec.ExternalName == nil { + break + } + + return e.complexity.CoreV1ServiceSpec.ExternalName(childComplexity), true + + case "CoreV1ServiceSpec.ports": + if e.complexity.CoreV1ServiceSpec.Ports == nil { + break + } + + return e.complexity.CoreV1ServiceSpec.Ports(childComplexity), true + + case "CoreV1ServiceSpec.selector": + if e.complexity.CoreV1ServiceSpec.Selector == nil { + break + } + + return e.complexity.CoreV1ServiceSpec.Selector(childComplexity), true + + case "CoreV1ServicesWatchEvent.object": + if e.complexity.CoreV1ServicesWatchEvent.Object == nil { + break + } + + return e.complexity.CoreV1ServicesWatchEvent.Object(childComplexity), true + + case "CoreV1ServicesWatchEvent.type": + if e.complexity.CoreV1ServicesWatchEvent.Type == nil { + break + } + + return e.complexity.CoreV1ServicesWatchEvent.Type(childComplexity), true + case "HealthCheckResponse.message": if e.complexity.HealthCheckResponse.Message == nil { break @@ -2027,96 +2207,145 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return e.complexity.HealthCheckResponse.Timestamp(childComplexity), true - case "LogMetadata.fileInfo": - if e.complexity.LogMetadata.FileInfo == nil { + case "KubeConfig.authInfos": + if e.complexity.KubeConfig.AuthInfos == nil { + break + } + + return e.complexity.KubeConfig.AuthInfos(childComplexity), true + + case "KubeConfig.clusters": + if e.complexity.KubeConfig.Clusters == nil { + break + } + + return e.complexity.KubeConfig.Clusters(childComplexity), true + + case "KubeConfig.contexts": + if e.complexity.KubeConfig.Contexts == nil { + break + } + + return e.complexity.KubeConfig.Contexts(childComplexity), true + + case "KubeConfig.currentContext": + if e.complexity.KubeConfig.CurrentContext == nil { + break + } + + return e.complexity.KubeConfig.CurrentContext(childComplexity), true + + case "KubeConfig.extensions": + if e.complexity.KubeConfig.Extensions == nil { + break + } + + return e.complexity.KubeConfig.Extensions(childComplexity), true + + case "KubeConfigAuthInfo.extensions": + if e.complexity.KubeConfigAuthInfo.Extensions == nil { + break + } + + return e.complexity.KubeConfigAuthInfo.Extensions(childComplexity), true + + case "KubeConfigAuthInfo.locationOfOrigin": + if e.complexity.KubeConfigAuthInfo.LocationOfOrigin == nil { + break + } + + return e.complexity.KubeConfigAuthInfo.LocationOfOrigin(childComplexity), true + + case "KubeConfigAuthInfo.name": + if e.complexity.KubeConfigAuthInfo.Name == nil { break } - return e.complexity.LogMetadata.FileInfo(childComplexity), true + return e.complexity.KubeConfigAuthInfo.Name(childComplexity), true - case "LogMetadata.id": - if e.complexity.LogMetadata.Id == nil { + case "KubeConfigCluster.extensions": + if e.complexity.KubeConfigCluster.Extensions == nil { break } - return e.complexity.LogMetadata.Id(childComplexity), true + return e.complexity.KubeConfigCluster.Extensions(childComplexity), true - case "LogMetadata.spec": - if e.complexity.LogMetadata.Spec == nil { + case "KubeConfigCluster.locationOfOrigin": + if e.complexity.KubeConfigCluster.LocationOfOrigin == nil { break } - return e.complexity.LogMetadata.Spec(childComplexity), true + return e.complexity.KubeConfigCluster.LocationOfOrigin(childComplexity), true - case "LogMetadataFileInfo.lastModifiedAt": - if e.complexity.LogMetadataFileInfo.LastModifiedAt == nil { + case "KubeConfigCluster.name": + if e.complexity.KubeConfigCluster.Name == nil { break } - return e.complexity.LogMetadataFileInfo.LastModifiedAt(childComplexity), true + return e.complexity.KubeConfigCluster.Name(childComplexity), true - case "LogMetadataFileInfo.size": - if e.complexity.LogMetadataFileInfo.Size == nil { + case "KubeConfigCluster.server": + if e.complexity.KubeConfigCluster.Server == nil { break } - return e.complexity.LogMetadataFileInfo.Size(childComplexity), true + return e.complexity.KubeConfigCluster.Server(childComplexity), true - case "LogMetadataList.items": - if e.complexity.LogMetadataList.Items == nil { + case "KubeConfigContext.authInfo": + if e.complexity.KubeConfigContext.AuthInfo == nil { break } - return e.complexity.LogMetadataList.Items(childComplexity), true + return e.complexity.KubeConfigContext.AuthInfo(childComplexity), true - case "LogMetadataSpec.containerID": - if e.complexity.LogMetadataSpec.ContainerId == nil { + case "KubeConfigContext.cluster": + if e.complexity.KubeConfigContext.Cluster == nil { break } - return e.complexity.LogMetadataSpec.ContainerId(childComplexity), true + return e.complexity.KubeConfigContext.Cluster(childComplexity), true - case "LogMetadataSpec.containerName": - if e.complexity.LogMetadataSpec.ContainerName == nil { + case "KubeConfigContext.extensions": + if e.complexity.KubeConfigContext.Extensions == nil { break } - return e.complexity.LogMetadataSpec.ContainerName(childComplexity), true + return e.complexity.KubeConfigContext.Extensions(childComplexity), true - case "LogMetadataSpec.namespace": - if e.complexity.LogMetadataSpec.Namespace == nil { + case "KubeConfigContext.locationOfOrigin": + if e.complexity.KubeConfigContext.LocationOfOrigin == nil { break } - return e.complexity.LogMetadataSpec.Namespace(childComplexity), true + return e.complexity.KubeConfigContext.LocationOfOrigin(childComplexity), true - case "LogMetadataSpec.nodeName": - if e.complexity.LogMetadataSpec.NodeName == nil { + case "KubeConfigContext.name": + if e.complexity.KubeConfigContext.Name == nil { break } - return e.complexity.LogMetadataSpec.NodeName(childComplexity), true + return e.complexity.KubeConfigContext.Name(childComplexity), true - case "LogMetadataSpec.podName": - if e.complexity.LogMetadataSpec.PodName == nil { + case "KubeConfigContext.namespace": + if e.complexity.KubeConfigContext.Namespace == nil { break } - return e.complexity.LogMetadataSpec.PodName(childComplexity), true + return e.complexity.KubeConfigContext.Namespace(childComplexity), true - case "LogMetadataWatchEvent.object": - if e.complexity.LogMetadataWatchEvent.Object == nil { + case "KubeConfigWatchEvent.object": + if e.complexity.KubeConfigWatchEvent.Object == nil { break } - return e.complexity.LogMetadataWatchEvent.Object(childComplexity), true + return e.complexity.KubeConfigWatchEvent.Object(childComplexity), true - case "LogMetadataWatchEvent.type": - if e.complexity.LogMetadataWatchEvent.Type == nil { + case "KubeConfigWatchEvent.type": + if e.complexity.KubeConfigWatchEvent.Type == nil { break } - return e.complexity.LogMetadataWatchEvent.Type(childComplexity), true + return e.complexity.KubeConfigWatchEvent.Type(childComplexity), true case "LogRecord.message": if e.complexity.LogRecord.Message == nil { @@ -2286,6 +2515,18 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return e.complexity.MetaV1OwnerReference.UID(childComplexity), true + case "Mutation.kubetailClusterAPIInstall": + if e.complexity.Mutation.KubetailClusterAPIInstall == nil { + break + } + + args, err := ec.field_Mutation_kubetailClusterAPIInstall_args(context.TODO(), rawArgs) + if err != nil { + return 0, false + } + + return e.complexity.Mutation.KubetailClusterAPIInstall(childComplexity, args["kubeContext"].(*string)), true + case "PageInfo.endCursor": if e.complexity.PageInfo.EndCursor == nil { break @@ -2338,7 +2579,7 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return 0, false } - return e.complexity.Query.AppsV1DaemonSetsGet(childComplexity, args["name"].(string), args["namespace"].(*string), args["options"].(*v1.GetOptions)), true + return e.complexity.Query.AppsV1DaemonSetsGet(childComplexity, args["kubeContext"].(*string), args["namespace"].(*string), args["name"].(string), args["options"].(*v1.GetOptions)), true case "Query.appsV1DaemonSetsList": if e.complexity.Query.AppsV1DaemonSetsList == nil { @@ -2350,7 +2591,7 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return 0, false } - return e.complexity.Query.AppsV1DaemonSetsList(childComplexity, args["namespace"].(*string), args["options"].(*v1.ListOptions)), true + return e.complexity.Query.AppsV1DaemonSetsList(childComplexity, args["kubeContext"].(*string), args["namespace"].(*string), args["options"].(*v1.ListOptions)), true case "Query.appsV1DeploymentsGet": if e.complexity.Query.AppsV1DeploymentsGet == nil { @@ -2362,7 +2603,7 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return 0, false } - return e.complexity.Query.AppsV1DeploymentsGet(childComplexity, args["name"].(string), args["namespace"].(*string), args["options"].(*v1.GetOptions)), true + return e.complexity.Query.AppsV1DeploymentsGet(childComplexity, args["kubeContext"].(*string), args["namespace"].(*string), args["name"].(string), args["options"].(*v1.GetOptions)), true case "Query.appsV1DeploymentsList": if e.complexity.Query.AppsV1DeploymentsList == nil { @@ -2374,7 +2615,7 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return 0, false } - return e.complexity.Query.AppsV1DeploymentsList(childComplexity, args["namespace"].(*string), args["options"].(*v1.ListOptions)), true + return e.complexity.Query.AppsV1DeploymentsList(childComplexity, args["kubeContext"].(*string), args["namespace"].(*string), args["options"].(*v1.ListOptions)), true case "Query.appsV1ReplicaSetsGet": if e.complexity.Query.AppsV1ReplicaSetsGet == nil { @@ -2386,7 +2627,7 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return 0, false } - return e.complexity.Query.AppsV1ReplicaSetsGet(childComplexity, args["name"].(string), args["namespace"].(*string), args["options"].(*v1.GetOptions)), true + return e.complexity.Query.AppsV1ReplicaSetsGet(childComplexity, args["kubeContext"].(*string), args["namespace"].(*string), args["name"].(string), args["options"].(*v1.GetOptions)), true case "Query.appsV1ReplicaSetsList": if e.complexity.Query.AppsV1ReplicaSetsList == nil { @@ -2398,7 +2639,7 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return 0, false } - return e.complexity.Query.AppsV1ReplicaSetsList(childComplexity, args["namespace"].(*string), args["options"].(*v1.ListOptions)), true + return e.complexity.Query.AppsV1ReplicaSetsList(childComplexity, args["kubeContext"].(*string), args["namespace"].(*string), args["options"].(*v1.ListOptions)), true case "Query.appsV1StatefulSetsGet": if e.complexity.Query.AppsV1StatefulSetsGet == nil { @@ -2410,7 +2651,7 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return 0, false } - return e.complexity.Query.AppsV1StatefulSetsGet(childComplexity, args["name"].(string), args["namespace"].(*string), args["options"].(*v1.GetOptions)), true + return e.complexity.Query.AppsV1StatefulSetsGet(childComplexity, args["kubeContext"].(*string), args["namespace"].(*string), args["name"].(string), args["options"].(*v1.GetOptions)), true case "Query.appsV1StatefulSetsList": if e.complexity.Query.AppsV1StatefulSetsList == nil { @@ -2422,7 +2663,7 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return 0, false } - return e.complexity.Query.AppsV1StatefulSetsList(childComplexity, args["namespace"].(*string), args["options"].(*v1.ListOptions)), true + return e.complexity.Query.AppsV1StatefulSetsList(childComplexity, args["kubeContext"].(*string), args["namespace"].(*string), args["options"].(*v1.ListOptions)), true case "Query.batchV1CronJobsGet": if e.complexity.Query.BatchV1CronJobsGet == nil { @@ -2434,7 +2675,7 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return 0, false } - return e.complexity.Query.BatchV1CronJobsGet(childComplexity, args["name"].(string), args["namespace"].(*string), args["options"].(*v1.GetOptions)), true + return e.complexity.Query.BatchV1CronJobsGet(childComplexity, args["kubeContext"].(*string), args["namespace"].(*string), args["name"].(string), args["options"].(*v1.GetOptions)), true case "Query.batchV1CronJobsList": if e.complexity.Query.BatchV1CronJobsList == nil { @@ -2446,7 +2687,7 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return 0, false } - return e.complexity.Query.BatchV1CronJobsList(childComplexity, args["namespace"].(*string), args["options"].(*v1.ListOptions)), true + return e.complexity.Query.BatchV1CronJobsList(childComplexity, args["kubeContext"].(*string), args["namespace"].(*string), args["options"].(*v1.ListOptions)), true case "Query.batchV1JobsGet": if e.complexity.Query.BatchV1JobsGet == nil { @@ -2458,7 +2699,7 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return 0, false } - return e.complexity.Query.BatchV1JobsGet(childComplexity, args["name"].(string), args["namespace"].(*string), args["options"].(*v1.GetOptions)), true + return e.complexity.Query.BatchV1JobsGet(childComplexity, args["kubeContext"].(*string), args["namespace"].(*string), args["name"].(string), args["options"].(*v1.GetOptions)), true case "Query.batchV1JobsList": if e.complexity.Query.BatchV1JobsList == nil { @@ -2470,7 +2711,7 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return 0, false } - return e.complexity.Query.BatchV1JobsList(childComplexity, args["namespace"].(*string), args["options"].(*v1.ListOptions)), true + return e.complexity.Query.BatchV1JobsList(childComplexity, args["kubeContext"].(*string), args["namespace"].(*string), args["options"].(*v1.ListOptions)), true case "Query.coreV1NamespacesList": if e.complexity.Query.CoreV1NamespacesList == nil { @@ -2482,7 +2723,7 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return 0, false } - return e.complexity.Query.CoreV1NamespacesList(childComplexity, args["options"].(*v1.ListOptions)), true + return e.complexity.Query.CoreV1NamespacesList(childComplexity, args["kubeContext"].(*string), args["options"].(*v1.ListOptions)), true case "Query.coreV1NodesList": if e.complexity.Query.CoreV1NodesList == nil { @@ -2494,7 +2735,7 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return 0, false } - return e.complexity.Query.CoreV1NodesList(childComplexity, args["options"].(*v1.ListOptions)), true + return e.complexity.Query.CoreV1NodesList(childComplexity, args["kubeContext"].(*string), args["options"].(*v1.ListOptions)), true case "Query.coreV1PodsGet": if e.complexity.Query.CoreV1PodsGet == nil { @@ -2506,93 +2747,122 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return 0, false } - return e.complexity.Query.CoreV1PodsGet(childComplexity, args["namespace"].(*string), args["name"].(string), args["options"].(*v1.GetOptions)), true + return e.complexity.Query.CoreV1PodsGet(childComplexity, args["kubeContext"].(*string), args["namespace"].(*string), args["name"].(string), args["options"].(*v1.GetOptions)), true - case "Query.coreV1PodsGetLogs": - if e.complexity.Query.CoreV1PodsGetLogs == nil { + case "Query.coreV1PodsList": + if e.complexity.Query.CoreV1PodsList == nil { break } - args, err := ec.field_Query_coreV1PodsGetLogs_args(context.TODO(), rawArgs) + args, err := ec.field_Query_coreV1PodsList_args(context.TODO(), rawArgs) if err != nil { return 0, false } - return e.complexity.Query.CoreV1PodsGetLogs(childComplexity, args["namespace"].(*string), args["name"].(string), args["options"].(*v11.PodLogOptions)), true + return e.complexity.Query.CoreV1PodsList(childComplexity, args["kubeContext"].(*string), args["namespace"].(*string), args["options"].(*v1.ListOptions)), true - case "Query.coreV1PodsList": - if e.complexity.Query.CoreV1PodsList == nil { + case "Query.coreV1ServicesGet": + if e.complexity.Query.CoreV1ServicesGet == nil { break } - args, err := ec.field_Query_coreV1PodsList_args(context.TODO(), rawArgs) + args, err := ec.field_Query_coreV1ServicesGet_args(context.TODO(), rawArgs) + if err != nil { + return 0, false + } + + return e.complexity.Query.CoreV1ServicesGet(childComplexity, args["kubeContext"].(*string), args["namespace"].(*string), args["name"].(string), args["options"].(*v1.GetOptions)), true + + case "Query.coreV1ServicesList": + if e.complexity.Query.CoreV1ServicesList == nil { + break + } + + args, err := ec.field_Query_coreV1ServicesList_args(context.TODO(), rawArgs) if err != nil { return 0, false } - return e.complexity.Query.CoreV1PodsList(childComplexity, args["namespace"].(*string), args["options"].(*v1.ListOptions)), true + return e.complexity.Query.CoreV1ServicesList(childComplexity, args["kubeContext"].(*string), args["namespace"].(*string), args["options"].(*v1.ListOptions)), true - case "Query.livezGet": - if e.complexity.Query.LivezGet == nil { + case "Query.kubeConfigGet": + if e.complexity.Query.KubeConfigGet == nil { break } - return e.complexity.Query.LivezGet(childComplexity), true + return e.complexity.Query.KubeConfigGet(childComplexity), true - case "Query.logMetadataList": - if e.complexity.Query.LogMetadataList == nil { + case "Query.kubernetesAPIHealthzGet": + if e.complexity.Query.KubernetesAPIHealthzGet == nil { break } - args, err := ec.field_Query_logMetadataList_args(context.TODO(), rawArgs) + args, err := ec.field_Query_kubernetesAPIHealthzGet_args(context.TODO(), rawArgs) if err != nil { return 0, false } - return e.complexity.Query.LogMetadataList(childComplexity, args["namespace"].(*string)), true + return e.complexity.Query.KubernetesAPIHealthzGet(childComplexity, args["kubeContext"].(*string)), true - case "Query.podLogHead": - if e.complexity.Query.PodLogHead == nil { + case "Query.kubernetesAPIReadyWait": + if e.complexity.Query.KubernetesAPIReadyWait == nil { break } - args, err := ec.field_Query_podLogHead_args(context.TODO(), rawArgs) + args, err := ec.field_Query_kubernetesAPIReadyWait_args(context.TODO(), rawArgs) if err != nil { return 0, false } - return e.complexity.Query.PodLogHead(childComplexity, args["namespace"].(*string), args["name"].(string), args["container"].(*string), args["after"].(*string), args["since"].(*string), args["first"].(*int)), true + return e.complexity.Query.KubernetesAPIReadyWait(childComplexity, args["kubeContext"].(*string)), true - case "Query.podLogTail": - if e.complexity.Query.PodLogTail == nil { + case "Query.kubetailClusterAPIHealthzGet": + if e.complexity.Query.KubetailClusterAPIHealthzGet == nil { break } - args, err := ec.field_Query_podLogTail_args(context.TODO(), rawArgs) + args, err := ec.field_Query_kubetailClusterAPIHealthzGet_args(context.TODO(), rawArgs) + if err != nil { + return 0, false + } + + return e.complexity.Query.KubetailClusterAPIHealthzGet(childComplexity, args["kubeContext"].(*string), args["namespace"].(*string), args["serviceName"].(*string)), true + + case "Query.kubetailClusterAPIReadyWait": + if e.complexity.Query.KubetailClusterAPIReadyWait == nil { + break + } + + args, err := ec.field_Query_kubetailClusterAPIReadyWait_args(context.TODO(), rawArgs) if err != nil { return 0, false } - return e.complexity.Query.PodLogTail(childComplexity, args["namespace"].(*string), args["name"].(string), args["container"].(*string), args["before"].(*string), args["last"].(*int)), true + return e.complexity.Query.KubetailClusterAPIReadyWait(childComplexity, args["kubeContext"].(*string), args["namespace"].(*string), args["serviceName"].(*string)), true - case "Query.readyWait": - if e.complexity.Query.ReadyWait == nil { + case "Query.podLogHead": + if e.complexity.Query.PodLogHead == nil { break } - args, err := ec.field_Query_readyWait_args(context.TODO(), rawArgs) + args, err := ec.field_Query_podLogHead_args(context.TODO(), rawArgs) if err != nil { return 0, false } - return e.complexity.Query.ReadyWait(childComplexity, args["timeout"].(*int)), true + return e.complexity.Query.PodLogHead(childComplexity, args["kubeContext"].(*string), args["namespace"].(*string), args["name"].(string), args["container"].(*string), args["after"].(*string), args["since"].(*string), args["first"].(*int)), true - case "Query.readyzGet": - if e.complexity.Query.ReadyzGet == nil { + case "Query.podLogTail": + if e.complexity.Query.PodLogTail == nil { break } - return e.complexity.Query.ReadyzGet(childComplexity), true + args, err := ec.field_Query_podLogTail_args(context.TODO(), rawArgs) + if err != nil { + return 0, false + } + + return e.complexity.Query.PodLogTail(childComplexity, args["kubeContext"].(*string), args["namespace"].(*string), args["name"].(string), args["container"].(*string), args["before"].(*string), args["last"].(*int)), true case "Subscription.appsV1DaemonSetsWatch": if e.complexity.Subscription.AppsV1DaemonSetsWatch == nil { @@ -2604,7 +2874,7 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return 0, false } - return e.complexity.Subscription.AppsV1DaemonSetsWatch(childComplexity, args["namespace"].(*string), args["options"].(*v1.ListOptions)), true + return e.complexity.Subscription.AppsV1DaemonSetsWatch(childComplexity, args["kubeContext"].(*string), args["namespace"].(*string), args["options"].(*v1.ListOptions)), true case "Subscription.appsV1DeploymentsWatch": if e.complexity.Subscription.AppsV1DeploymentsWatch == nil { @@ -2616,7 +2886,7 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return 0, false } - return e.complexity.Subscription.AppsV1DeploymentsWatch(childComplexity, args["namespace"].(*string), args["options"].(*v1.ListOptions)), true + return e.complexity.Subscription.AppsV1DeploymentsWatch(childComplexity, args["kubeContext"].(*string), args["namespace"].(*string), args["options"].(*v1.ListOptions)), true case "Subscription.appsV1ReplicaSetsWatch": if e.complexity.Subscription.AppsV1ReplicaSetsWatch == nil { @@ -2628,7 +2898,7 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return 0, false } - return e.complexity.Subscription.AppsV1ReplicaSetsWatch(childComplexity, args["namespace"].(*string), args["options"].(*v1.ListOptions)), true + return e.complexity.Subscription.AppsV1ReplicaSetsWatch(childComplexity, args["kubeContext"].(*string), args["namespace"].(*string), args["options"].(*v1.ListOptions)), true case "Subscription.appsV1StatefulSetsWatch": if e.complexity.Subscription.AppsV1StatefulSetsWatch == nil { @@ -2640,7 +2910,7 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return 0, false } - return e.complexity.Subscription.AppsV1StatefulSetsWatch(childComplexity, args["namespace"].(*string), args["options"].(*v1.ListOptions)), true + return e.complexity.Subscription.AppsV1StatefulSetsWatch(childComplexity, args["kubeContext"].(*string), args["namespace"].(*string), args["options"].(*v1.ListOptions)), true case "Subscription.batchV1CronJobsWatch": if e.complexity.Subscription.BatchV1CronJobsWatch == nil { @@ -2652,7 +2922,7 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return 0, false } - return e.complexity.Subscription.BatchV1CronJobsWatch(childComplexity, args["namespace"].(*string), args["options"].(*v1.ListOptions)), true + return e.complexity.Subscription.BatchV1CronJobsWatch(childComplexity, args["kubeContext"].(*string), args["namespace"].(*string), args["options"].(*v1.ListOptions)), true case "Subscription.batchV1JobsWatch": if e.complexity.Subscription.BatchV1JobsWatch == nil { @@ -2664,7 +2934,7 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return 0, false } - return e.complexity.Subscription.BatchV1JobsWatch(childComplexity, args["namespace"].(*string), args["options"].(*v1.ListOptions)), true + return e.complexity.Subscription.BatchV1JobsWatch(childComplexity, args["kubeContext"].(*string), args["namespace"].(*string), args["options"].(*v1.ListOptions)), true case "Subscription.coreV1NamespacesWatch": if e.complexity.Subscription.CoreV1NamespacesWatch == nil { @@ -2676,7 +2946,7 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return 0, false } - return e.complexity.Subscription.CoreV1NamespacesWatch(childComplexity, args["options"].(*v1.ListOptions)), true + return e.complexity.Subscription.CoreV1NamespacesWatch(childComplexity, args["kubeContext"].(*string), args["options"].(*v1.ListOptions)), true case "Subscription.coreV1NodesWatch": if e.complexity.Subscription.CoreV1NodesWatch == nil { @@ -2688,77 +2958,82 @@ func (e *executableSchema) Complexity(typeName, field string, childComplexity in return 0, false } - return e.complexity.Subscription.CoreV1NodesWatch(childComplexity, args["options"].(*v1.ListOptions)), true + return e.complexity.Subscription.CoreV1NodesWatch(childComplexity, args["kubeContext"].(*string), args["options"].(*v1.ListOptions)), true - case "Subscription.coreV1PodLogTail": - if e.complexity.Subscription.CoreV1PodLogTail == nil { + case "Subscription.coreV1PodsWatch": + if e.complexity.Subscription.CoreV1PodsWatch == nil { break } - args, err := ec.field_Subscription_coreV1PodLogTail_args(context.TODO(), rawArgs) + args, err := ec.field_Subscription_coreV1PodsWatch_args(context.TODO(), rawArgs) if err != nil { return 0, false } - return e.complexity.Subscription.CoreV1PodLogTail(childComplexity, args["namespace"].(*string), args["name"].(string), args["options"].(*v11.PodLogOptions)), true + return e.complexity.Subscription.CoreV1PodsWatch(childComplexity, args["kubeContext"].(*string), args["namespace"].(*string), args["options"].(*v1.ListOptions)), true - case "Subscription.coreV1PodsWatch": - if e.complexity.Subscription.CoreV1PodsWatch == nil { + case "Subscription.coreV1ServicesWatch": + if e.complexity.Subscription.CoreV1ServicesWatch == nil { break } - args, err := ec.field_Subscription_coreV1PodsWatch_args(context.TODO(), rawArgs) + args, err := ec.field_Subscription_coreV1ServicesWatch_args(context.TODO(), rawArgs) if err != nil { return 0, false } - return e.complexity.Subscription.CoreV1PodsWatch(childComplexity, args["namespace"].(*string), args["options"].(*v1.ListOptions)), true + return e.complexity.Subscription.CoreV1ServicesWatch(childComplexity, args["kubeContext"].(*string), args["namespace"].(*string), args["options"].(*v1.ListOptions)), true - case "Subscription.livezWatch": - if e.complexity.Subscription.LivezWatch == nil { + case "Subscription.kubeConfigWatch": + if e.complexity.Subscription.KubeConfigWatch == nil { break } - return e.complexity.Subscription.LivezWatch(childComplexity), true + return e.complexity.Subscription.KubeConfigWatch(childComplexity), true - case "Subscription.logMetadataWatch": - if e.complexity.Subscription.LogMetadataWatch == nil { + case "Subscription.kubernetesAPIHealthzWatch": + if e.complexity.Subscription.KubernetesAPIHealthzWatch == nil { break } - args, err := ec.field_Subscription_logMetadataWatch_args(context.TODO(), rawArgs) + args, err := ec.field_Subscription_kubernetesAPIHealthzWatch_args(context.TODO(), rawArgs) if err != nil { return 0, false } - return e.complexity.Subscription.LogMetadataWatch(childComplexity, args["namespace"].(*string)), true + return e.complexity.Subscription.KubernetesAPIHealthzWatch(childComplexity, args["kubeContext"].(*string)), true - case "Subscription.podLogFollow": - if e.complexity.Subscription.PodLogFollow == nil { + case "Subscription.kubetailClusterAPIHealthzWatch": + if e.complexity.Subscription.KubetailClusterAPIHealthzWatch == nil { break } - args, err := ec.field_Subscription_podLogFollow_args(context.TODO(), rawArgs) + args, err := ec.field_Subscription_kubetailClusterAPIHealthzWatch_args(context.TODO(), rawArgs) if err != nil { return 0, false } - return e.complexity.Subscription.PodLogFollow(childComplexity, args["namespace"].(*string), args["name"].(string), args["container"].(*string), args["after"].(*string), args["since"].(*string)), true + return e.complexity.Subscription.KubetailClusterAPIHealthzWatch(childComplexity, args["kubeContext"].(*string), args["namespace"].(*string), args["serviceName"].(*string)), true - case "Subscription.readyzWatch": - if e.complexity.Subscription.ReadyzWatch == nil { + case "Subscription.podLogFollow": + if e.complexity.Subscription.PodLogFollow == nil { break } - return e.complexity.Subscription.ReadyzWatch(childComplexity), true + args, err := ec.field_Subscription_podLogFollow_args(context.TODO(), rawArgs) + if err != nil { + return 0, false + } + + return e.complexity.Subscription.PodLogFollow(childComplexity, args["kubeContext"].(*string), args["namespace"].(*string), args["name"].(string), args["container"].(*string), args["after"].(*string), args["since"].(*string)), true } return 0, false } func (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler { - rc := graphql.GetOperationContext(ctx) - ec := executionContext{rc, e, 0, 0, make(chan graphql.DeferredResult)} + opCtx := graphql.GetOperationContext(ctx) + ec := executionContext{opCtx, e, 0, 0, make(chan graphql.DeferredResult)} inputUnmarshalMap := graphql.BuildUnmarshalerMap( ec.unmarshalInputCoreV1PodLogOptions, ec.unmarshalInputMetaV1GetOptions, @@ -2766,7 +3041,7 @@ func (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler { ) first := true - switch rc.Operation.Operation { + switch opCtx.Operation.Operation { case ast.Query: return func(ctx context.Context) *graphql.Response { var response graphql.Response @@ -2774,7 +3049,7 @@ func (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler { if first { first = false ctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap) - data = ec._Query(ctx, rc.Operation.SelectionSet) + data = ec._Query(ctx, opCtx.Operation.SelectionSet) } else { if atomic.LoadInt32(&ec.pendingDeferred) > 0 { result := <-ec.deferredResults @@ -2797,8 +3072,23 @@ func (e *executableSchema) Exec(ctx context.Context) graphql.ResponseHandler { return &response } + case ast.Mutation: + return func(ctx context.Context) *graphql.Response { + if !first { + return nil + } + first = false + ctx = graphql.WithUnmarshalerMap(ctx, inputUnmarshalMap) + data := ec._Mutation(ctx, opCtx.Operation.SelectionSet) + var buf bytes.Buffer + data.MarshalGQL(&buf) + + return &graphql.Response{ + Data: buf.Bytes(), + } + } case ast.Subscription: - next := ec._Subscription(ctx, rc.Operation.SelectionSet) + next := ec._Subscription(ctx, opCtx.Operation.SelectionSet) var buf bytes.Buffer return func(ctx context.Context) *graphql.Response { @@ -2881,9 +3171,9 @@ var parsedSchema = gqlparser.MustLoadSchema(sources...) // region ***************************** args.gotpl ***************************** -func (ec *executionContext) dir_validate_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) dir_validate_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} + args := map[string]any{} arg0, err := ec.dir_validate_argsRule(ctx, rawArgs) if err != nil { return nil, err @@ -2898,13 +3188,9 @@ func (ec *executionContext) dir_validate_args(ctx context.Context, rawArgs map[s } func (ec *executionContext) dir_validate_argsRule( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["rule"] - if !ok { + if _, ok := rawArgs["rule"]; !ok { var zeroVal string return zeroVal, nil } @@ -2920,13 +3206,9 @@ func (ec *executionContext) dir_validate_argsRule( func (ec *executionContext) dir_validate_argsMessage( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["message"] - if !ok { + if _, ok := rawArgs["message"]; !ok { var zeroVal *string return zeroVal, nil } @@ -2940,9 +3222,32 @@ func (ec *executionContext) dir_validate_argsMessage( return zeroVal, nil } -func (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Mutation_kubetailClusterAPIInstall_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { + var err error + args := map[string]any{} + arg0, err := ec.field_Mutation_kubetailClusterAPIInstall_argsKubeContext(ctx, rawArgs) + if err != nil { + return nil, err + } + args["kubeContext"] = arg0 + return args, nil +} +func (ec *executionContext) field_Mutation_kubetailClusterAPIInstall_argsKubeContext( + ctx context.Context, + rawArgs map[string]any, +) (*string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) + } + + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} + args := map[string]any{} arg0, err := ec.field_Query___type_argsName(ctx, rawArgs) if err != nil { return nil, err @@ -2952,17 +3257,8 @@ func (ec *executionContext) field_Query___type_args(ctx context.Context, rawArgs } func (ec *executionContext) field_Query___type_argsName( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["name"] - if !ok { - var zeroVal string - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("name")) if tmp, ok := rawArgs["name"]; ok { return ec.unmarshalNString2string(ctx, tmp) @@ -2972,61 +3268,48 @@ func (ec *executionContext) field_Query___type_argsName( return zeroVal, nil } -func (ec *executionContext) field_Query_appsV1DaemonSetsGet_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Query_appsV1DaemonSetsGet_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} - arg0, err := ec.field_Query_appsV1DaemonSetsGet_argsName(ctx, rawArgs) + args := map[string]any{} + arg0, err := ec.field_Query_appsV1DaemonSetsGet_argsKubeContext(ctx, rawArgs) if err != nil { return nil, err } - args["name"] = arg0 + args["kubeContext"] = arg0 arg1, err := ec.field_Query_appsV1DaemonSetsGet_argsNamespace(ctx, rawArgs) if err != nil { return nil, err } args["namespace"] = arg1 - arg2, err := ec.field_Query_appsV1DaemonSetsGet_argsOptions(ctx, rawArgs) + arg2, err := ec.field_Query_appsV1DaemonSetsGet_argsName(ctx, rawArgs) if err != nil { return nil, err } - args["options"] = arg2 + args["name"] = arg2 + arg3, err := ec.field_Query_appsV1DaemonSetsGet_argsOptions(ctx, rawArgs) + if err != nil { + return nil, err + } + args["options"] = arg3 return args, nil } -func (ec *executionContext) field_Query_appsV1DaemonSetsGet_argsName( +func (ec *executionContext) field_Query_appsV1DaemonSetsGet_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, -) (string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["name"] - if !ok { - var zeroVal string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("name")) - if tmp, ok := rawArgs["name"]; ok { - return ec.unmarshalNString2string(ctx, tmp) + rawArgs map[string]any, +) (*string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } - var zeroVal string + var zeroVal *string return zeroVal, nil } func (ec *executionContext) field_Query_appsV1DaemonSetsGet_argsNamespace( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["namespace"] - if !ok { - var zeroVal *string - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) if tmp, ok := rawArgs["namespace"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) @@ -3036,19 +3319,23 @@ func (ec *executionContext) field_Query_appsV1DaemonSetsGet_argsNamespace( return zeroVal, nil } -func (ec *executionContext) field_Query_appsV1DaemonSetsGet_argsOptions( +func (ec *executionContext) field_Query_appsV1DaemonSetsGet_argsName( ctx context.Context, - rawArgs map[string]interface{}, -) (*v1.GetOptions, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["options"] - if !ok { - var zeroVal *v1.GetOptions - return zeroVal, nil + rawArgs map[string]any, +) (string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("name")) + if tmp, ok := rawArgs["name"]; ok { + return ec.unmarshalNString2string(ctx, tmp) } + var zeroVal string + return zeroVal, nil +} + +func (ec *executionContext) field_Query_appsV1DaemonSetsGet_argsOptions( + ctx context.Context, + rawArgs map[string]any, +) (*v1.GetOptions, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("options")) if tmp, ok := rawArgs["options"]; ok { return ec.unmarshalOMetaV1GetOptions2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐGetOptions(ctx, tmp) @@ -3058,34 +3345,43 @@ func (ec *executionContext) field_Query_appsV1DaemonSetsGet_argsOptions( return zeroVal, nil } -func (ec *executionContext) field_Query_appsV1DaemonSetsList_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Query_appsV1DaemonSetsList_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} - arg0, err := ec.field_Query_appsV1DaemonSetsList_argsNamespace(ctx, rawArgs) + args := map[string]any{} + arg0, err := ec.field_Query_appsV1DaemonSetsList_argsKubeContext(ctx, rawArgs) if err != nil { return nil, err } - args["namespace"] = arg0 - arg1, err := ec.field_Query_appsV1DaemonSetsList_argsOptions(ctx, rawArgs) + args["kubeContext"] = arg0 + arg1, err := ec.field_Query_appsV1DaemonSetsList_argsNamespace(ctx, rawArgs) if err != nil { return nil, err } - args["options"] = arg1 + args["namespace"] = arg1 + arg2, err := ec.field_Query_appsV1DaemonSetsList_argsOptions(ctx, rawArgs) + if err != nil { + return nil, err + } + args["options"] = arg2 return args, nil } -func (ec *executionContext) field_Query_appsV1DaemonSetsList_argsNamespace( +func (ec *executionContext) field_Query_appsV1DaemonSetsList_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["namespace"] - if !ok { - var zeroVal *string - return zeroVal, nil + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Query_appsV1DaemonSetsList_argsNamespace( + ctx context.Context, + rawArgs map[string]any, +) (*string, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) if tmp, ok := rawArgs["namespace"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) @@ -3097,17 +3393,8 @@ func (ec *executionContext) field_Query_appsV1DaemonSetsList_argsNamespace( func (ec *executionContext) field_Query_appsV1DaemonSetsList_argsOptions( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*v1.ListOptions, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["options"] - if !ok { - var zeroVal *v1.ListOptions - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("options")) if tmp, ok := rawArgs["options"]; ok { return ec.unmarshalOMetaV1ListOptions2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐListOptions(ctx, tmp) @@ -3117,61 +3404,48 @@ func (ec *executionContext) field_Query_appsV1DaemonSetsList_argsOptions( return zeroVal, nil } -func (ec *executionContext) field_Query_appsV1DeploymentsGet_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Query_appsV1DeploymentsGet_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} - arg0, err := ec.field_Query_appsV1DeploymentsGet_argsName(ctx, rawArgs) + args := map[string]any{} + arg0, err := ec.field_Query_appsV1DeploymentsGet_argsKubeContext(ctx, rawArgs) if err != nil { return nil, err } - args["name"] = arg0 + args["kubeContext"] = arg0 arg1, err := ec.field_Query_appsV1DeploymentsGet_argsNamespace(ctx, rawArgs) if err != nil { return nil, err } args["namespace"] = arg1 - arg2, err := ec.field_Query_appsV1DeploymentsGet_argsOptions(ctx, rawArgs) + arg2, err := ec.field_Query_appsV1DeploymentsGet_argsName(ctx, rawArgs) if err != nil { return nil, err } - args["options"] = arg2 + args["name"] = arg2 + arg3, err := ec.field_Query_appsV1DeploymentsGet_argsOptions(ctx, rawArgs) + if err != nil { + return nil, err + } + args["options"] = arg3 return args, nil } -func (ec *executionContext) field_Query_appsV1DeploymentsGet_argsName( +func (ec *executionContext) field_Query_appsV1DeploymentsGet_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, -) (string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["name"] - if !ok { - var zeroVal string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("name")) - if tmp, ok := rawArgs["name"]; ok { - return ec.unmarshalNString2string(ctx, tmp) + rawArgs map[string]any, +) (*string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } - var zeroVal string + var zeroVal *string return zeroVal, nil } func (ec *executionContext) field_Query_appsV1DeploymentsGet_argsNamespace( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["namespace"] - if !ok { - var zeroVal *string - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) if tmp, ok := rawArgs["namespace"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) @@ -3181,19 +3455,23 @@ func (ec *executionContext) field_Query_appsV1DeploymentsGet_argsNamespace( return zeroVal, nil } -func (ec *executionContext) field_Query_appsV1DeploymentsGet_argsOptions( +func (ec *executionContext) field_Query_appsV1DeploymentsGet_argsName( ctx context.Context, - rawArgs map[string]interface{}, -) (*v1.GetOptions, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["options"] - if !ok { - var zeroVal *v1.GetOptions - return zeroVal, nil + rawArgs map[string]any, +) (string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("name")) + if tmp, ok := rawArgs["name"]; ok { + return ec.unmarshalNString2string(ctx, tmp) } + var zeroVal string + return zeroVal, nil +} + +func (ec *executionContext) field_Query_appsV1DeploymentsGet_argsOptions( + ctx context.Context, + rawArgs map[string]any, +) (*v1.GetOptions, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("options")) if tmp, ok := rawArgs["options"]; ok { return ec.unmarshalOMetaV1GetOptions2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐGetOptions(ctx, tmp) @@ -3203,34 +3481,43 @@ func (ec *executionContext) field_Query_appsV1DeploymentsGet_argsOptions( return zeroVal, nil } -func (ec *executionContext) field_Query_appsV1DeploymentsList_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Query_appsV1DeploymentsList_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} - arg0, err := ec.field_Query_appsV1DeploymentsList_argsNamespace(ctx, rawArgs) + args := map[string]any{} + arg0, err := ec.field_Query_appsV1DeploymentsList_argsKubeContext(ctx, rawArgs) if err != nil { return nil, err } - args["namespace"] = arg0 - arg1, err := ec.field_Query_appsV1DeploymentsList_argsOptions(ctx, rawArgs) + args["kubeContext"] = arg0 + arg1, err := ec.field_Query_appsV1DeploymentsList_argsNamespace(ctx, rawArgs) if err != nil { return nil, err } - args["options"] = arg1 + args["namespace"] = arg1 + arg2, err := ec.field_Query_appsV1DeploymentsList_argsOptions(ctx, rawArgs) + if err != nil { + return nil, err + } + args["options"] = arg2 return args, nil } -func (ec *executionContext) field_Query_appsV1DeploymentsList_argsNamespace( +func (ec *executionContext) field_Query_appsV1DeploymentsList_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["namespace"] - if !ok { - var zeroVal *string - return zeroVal, nil + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Query_appsV1DeploymentsList_argsNamespace( + ctx context.Context, + rawArgs map[string]any, +) (*string, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) if tmp, ok := rawArgs["namespace"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) @@ -3242,17 +3529,8 @@ func (ec *executionContext) field_Query_appsV1DeploymentsList_argsNamespace( func (ec *executionContext) field_Query_appsV1DeploymentsList_argsOptions( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*v1.ListOptions, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["options"] - if !ok { - var zeroVal *v1.ListOptions - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("options")) if tmp, ok := rawArgs["options"]; ok { return ec.unmarshalOMetaV1ListOptions2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐListOptions(ctx, tmp) @@ -3262,61 +3540,48 @@ func (ec *executionContext) field_Query_appsV1DeploymentsList_argsOptions( return zeroVal, nil } -func (ec *executionContext) field_Query_appsV1ReplicaSetsGet_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Query_appsV1ReplicaSetsGet_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} - arg0, err := ec.field_Query_appsV1ReplicaSetsGet_argsName(ctx, rawArgs) + args := map[string]any{} + arg0, err := ec.field_Query_appsV1ReplicaSetsGet_argsKubeContext(ctx, rawArgs) if err != nil { return nil, err } - args["name"] = arg0 + args["kubeContext"] = arg0 arg1, err := ec.field_Query_appsV1ReplicaSetsGet_argsNamespace(ctx, rawArgs) if err != nil { return nil, err } args["namespace"] = arg1 - arg2, err := ec.field_Query_appsV1ReplicaSetsGet_argsOptions(ctx, rawArgs) + arg2, err := ec.field_Query_appsV1ReplicaSetsGet_argsName(ctx, rawArgs) if err != nil { return nil, err } - args["options"] = arg2 + args["name"] = arg2 + arg3, err := ec.field_Query_appsV1ReplicaSetsGet_argsOptions(ctx, rawArgs) + if err != nil { + return nil, err + } + args["options"] = arg3 return args, nil } -func (ec *executionContext) field_Query_appsV1ReplicaSetsGet_argsName( +func (ec *executionContext) field_Query_appsV1ReplicaSetsGet_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, -) (string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["name"] - if !ok { - var zeroVal string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("name")) - if tmp, ok := rawArgs["name"]; ok { - return ec.unmarshalNString2string(ctx, tmp) + rawArgs map[string]any, +) (*string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } - var zeroVal string + var zeroVal *string return zeroVal, nil } func (ec *executionContext) field_Query_appsV1ReplicaSetsGet_argsNamespace( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["namespace"] - if !ok { - var zeroVal *string - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) if tmp, ok := rawArgs["namespace"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) @@ -3326,19 +3591,23 @@ func (ec *executionContext) field_Query_appsV1ReplicaSetsGet_argsNamespace( return zeroVal, nil } -func (ec *executionContext) field_Query_appsV1ReplicaSetsGet_argsOptions( +func (ec *executionContext) field_Query_appsV1ReplicaSetsGet_argsName( ctx context.Context, - rawArgs map[string]interface{}, -) (*v1.GetOptions, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["options"] - if !ok { - var zeroVal *v1.GetOptions - return zeroVal, nil + rawArgs map[string]any, +) (string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("name")) + if tmp, ok := rawArgs["name"]; ok { + return ec.unmarshalNString2string(ctx, tmp) } + var zeroVal string + return zeroVal, nil +} + +func (ec *executionContext) field_Query_appsV1ReplicaSetsGet_argsOptions( + ctx context.Context, + rawArgs map[string]any, +) (*v1.GetOptions, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("options")) if tmp, ok := rawArgs["options"]; ok { return ec.unmarshalOMetaV1GetOptions2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐGetOptions(ctx, tmp) @@ -3348,34 +3617,43 @@ func (ec *executionContext) field_Query_appsV1ReplicaSetsGet_argsOptions( return zeroVal, nil } -func (ec *executionContext) field_Query_appsV1ReplicaSetsList_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Query_appsV1ReplicaSetsList_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} - arg0, err := ec.field_Query_appsV1ReplicaSetsList_argsNamespace(ctx, rawArgs) + args := map[string]any{} + arg0, err := ec.field_Query_appsV1ReplicaSetsList_argsKubeContext(ctx, rawArgs) if err != nil { return nil, err } - args["namespace"] = arg0 - arg1, err := ec.field_Query_appsV1ReplicaSetsList_argsOptions(ctx, rawArgs) + args["kubeContext"] = arg0 + arg1, err := ec.field_Query_appsV1ReplicaSetsList_argsNamespace(ctx, rawArgs) if err != nil { return nil, err } - args["options"] = arg1 + args["namespace"] = arg1 + arg2, err := ec.field_Query_appsV1ReplicaSetsList_argsOptions(ctx, rawArgs) + if err != nil { + return nil, err + } + args["options"] = arg2 return args, nil } -func (ec *executionContext) field_Query_appsV1ReplicaSetsList_argsNamespace( +func (ec *executionContext) field_Query_appsV1ReplicaSetsList_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["namespace"] - if !ok { - var zeroVal *string - return zeroVal, nil + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Query_appsV1ReplicaSetsList_argsNamespace( + ctx context.Context, + rawArgs map[string]any, +) (*string, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) if tmp, ok := rawArgs["namespace"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) @@ -3387,17 +3665,8 @@ func (ec *executionContext) field_Query_appsV1ReplicaSetsList_argsNamespace( func (ec *executionContext) field_Query_appsV1ReplicaSetsList_argsOptions( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*v1.ListOptions, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["options"] - if !ok { - var zeroVal *v1.ListOptions - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("options")) if tmp, ok := rawArgs["options"]; ok { return ec.unmarshalOMetaV1ListOptions2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐListOptions(ctx, tmp) @@ -3407,61 +3676,48 @@ func (ec *executionContext) field_Query_appsV1ReplicaSetsList_argsOptions( return zeroVal, nil } -func (ec *executionContext) field_Query_appsV1StatefulSetsGet_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Query_appsV1StatefulSetsGet_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} - arg0, err := ec.field_Query_appsV1StatefulSetsGet_argsName(ctx, rawArgs) + args := map[string]any{} + arg0, err := ec.field_Query_appsV1StatefulSetsGet_argsKubeContext(ctx, rawArgs) if err != nil { return nil, err } - args["name"] = arg0 + args["kubeContext"] = arg0 arg1, err := ec.field_Query_appsV1StatefulSetsGet_argsNamespace(ctx, rawArgs) if err != nil { return nil, err } args["namespace"] = arg1 - arg2, err := ec.field_Query_appsV1StatefulSetsGet_argsOptions(ctx, rawArgs) + arg2, err := ec.field_Query_appsV1StatefulSetsGet_argsName(ctx, rawArgs) if err != nil { return nil, err } - args["options"] = arg2 + args["name"] = arg2 + arg3, err := ec.field_Query_appsV1StatefulSetsGet_argsOptions(ctx, rawArgs) + if err != nil { + return nil, err + } + args["options"] = arg3 return args, nil } -func (ec *executionContext) field_Query_appsV1StatefulSetsGet_argsName( +func (ec *executionContext) field_Query_appsV1StatefulSetsGet_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, -) (string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["name"] - if !ok { - var zeroVal string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("name")) - if tmp, ok := rawArgs["name"]; ok { - return ec.unmarshalNString2string(ctx, tmp) + rawArgs map[string]any, +) (*string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } - var zeroVal string + var zeroVal *string return zeroVal, nil } func (ec *executionContext) field_Query_appsV1StatefulSetsGet_argsNamespace( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["namespace"] - if !ok { - var zeroVal *string - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) if tmp, ok := rawArgs["namespace"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) @@ -3471,19 +3727,23 @@ func (ec *executionContext) field_Query_appsV1StatefulSetsGet_argsNamespace( return zeroVal, nil } -func (ec *executionContext) field_Query_appsV1StatefulSetsGet_argsOptions( +func (ec *executionContext) field_Query_appsV1StatefulSetsGet_argsName( ctx context.Context, - rawArgs map[string]interface{}, -) (*v1.GetOptions, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["options"] - if !ok { - var zeroVal *v1.GetOptions - return zeroVal, nil + rawArgs map[string]any, +) (string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("name")) + if tmp, ok := rawArgs["name"]; ok { + return ec.unmarshalNString2string(ctx, tmp) } + var zeroVal string + return zeroVal, nil +} + +func (ec *executionContext) field_Query_appsV1StatefulSetsGet_argsOptions( + ctx context.Context, + rawArgs map[string]any, +) (*v1.GetOptions, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("options")) if tmp, ok := rawArgs["options"]; ok { return ec.unmarshalOMetaV1GetOptions2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐGetOptions(ctx, tmp) @@ -3493,34 +3753,43 @@ func (ec *executionContext) field_Query_appsV1StatefulSetsGet_argsOptions( return zeroVal, nil } -func (ec *executionContext) field_Query_appsV1StatefulSetsList_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Query_appsV1StatefulSetsList_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} - arg0, err := ec.field_Query_appsV1StatefulSetsList_argsNamespace(ctx, rawArgs) + args := map[string]any{} + arg0, err := ec.field_Query_appsV1StatefulSetsList_argsKubeContext(ctx, rawArgs) if err != nil { return nil, err } - args["namespace"] = arg0 - arg1, err := ec.field_Query_appsV1StatefulSetsList_argsOptions(ctx, rawArgs) + args["kubeContext"] = arg0 + arg1, err := ec.field_Query_appsV1StatefulSetsList_argsNamespace(ctx, rawArgs) if err != nil { return nil, err } - args["options"] = arg1 + args["namespace"] = arg1 + arg2, err := ec.field_Query_appsV1StatefulSetsList_argsOptions(ctx, rawArgs) + if err != nil { + return nil, err + } + args["options"] = arg2 return args, nil } -func (ec *executionContext) field_Query_appsV1StatefulSetsList_argsNamespace( +func (ec *executionContext) field_Query_appsV1StatefulSetsList_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["namespace"] - if !ok { - var zeroVal *string - return zeroVal, nil + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Query_appsV1StatefulSetsList_argsNamespace( + ctx context.Context, + rawArgs map[string]any, +) (*string, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) if tmp, ok := rawArgs["namespace"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) @@ -3532,17 +3801,8 @@ func (ec *executionContext) field_Query_appsV1StatefulSetsList_argsNamespace( func (ec *executionContext) field_Query_appsV1StatefulSetsList_argsOptions( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*v1.ListOptions, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["options"] - if !ok { - var zeroVal *v1.ListOptions - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("options")) if tmp, ok := rawArgs["options"]; ok { return ec.unmarshalOMetaV1ListOptions2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐListOptions(ctx, tmp) @@ -3552,61 +3812,48 @@ func (ec *executionContext) field_Query_appsV1StatefulSetsList_argsOptions( return zeroVal, nil } -func (ec *executionContext) field_Query_batchV1CronJobsGet_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Query_batchV1CronJobsGet_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} - arg0, err := ec.field_Query_batchV1CronJobsGet_argsName(ctx, rawArgs) + args := map[string]any{} + arg0, err := ec.field_Query_batchV1CronJobsGet_argsKubeContext(ctx, rawArgs) if err != nil { return nil, err } - args["name"] = arg0 + args["kubeContext"] = arg0 arg1, err := ec.field_Query_batchV1CronJobsGet_argsNamespace(ctx, rawArgs) if err != nil { return nil, err } args["namespace"] = arg1 - arg2, err := ec.field_Query_batchV1CronJobsGet_argsOptions(ctx, rawArgs) + arg2, err := ec.field_Query_batchV1CronJobsGet_argsName(ctx, rawArgs) if err != nil { return nil, err } - args["options"] = arg2 + args["name"] = arg2 + arg3, err := ec.field_Query_batchV1CronJobsGet_argsOptions(ctx, rawArgs) + if err != nil { + return nil, err + } + args["options"] = arg3 return args, nil } -func (ec *executionContext) field_Query_batchV1CronJobsGet_argsName( +func (ec *executionContext) field_Query_batchV1CronJobsGet_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, -) (string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["name"] - if !ok { - var zeroVal string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("name")) - if tmp, ok := rawArgs["name"]; ok { - return ec.unmarshalNString2string(ctx, tmp) + rawArgs map[string]any, +) (*string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } - var zeroVal string + var zeroVal *string return zeroVal, nil } func (ec *executionContext) field_Query_batchV1CronJobsGet_argsNamespace( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["namespace"] - if !ok { - var zeroVal *string - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) if tmp, ok := rawArgs["namespace"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) @@ -3616,19 +3863,23 @@ func (ec *executionContext) field_Query_batchV1CronJobsGet_argsNamespace( return zeroVal, nil } -func (ec *executionContext) field_Query_batchV1CronJobsGet_argsOptions( +func (ec *executionContext) field_Query_batchV1CronJobsGet_argsName( ctx context.Context, - rawArgs map[string]interface{}, -) (*v1.GetOptions, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["options"] - if !ok { - var zeroVal *v1.GetOptions - return zeroVal, nil + rawArgs map[string]any, +) (string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("name")) + if tmp, ok := rawArgs["name"]; ok { + return ec.unmarshalNString2string(ctx, tmp) } + var zeroVal string + return zeroVal, nil +} + +func (ec *executionContext) field_Query_batchV1CronJobsGet_argsOptions( + ctx context.Context, + rawArgs map[string]any, +) (*v1.GetOptions, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("options")) if tmp, ok := rawArgs["options"]; ok { return ec.unmarshalOMetaV1GetOptions2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐGetOptions(ctx, tmp) @@ -3638,34 +3889,43 @@ func (ec *executionContext) field_Query_batchV1CronJobsGet_argsOptions( return zeroVal, nil } -func (ec *executionContext) field_Query_batchV1CronJobsList_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Query_batchV1CronJobsList_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} - arg0, err := ec.field_Query_batchV1CronJobsList_argsNamespace(ctx, rawArgs) + args := map[string]any{} + arg0, err := ec.field_Query_batchV1CronJobsList_argsKubeContext(ctx, rawArgs) if err != nil { return nil, err } - args["namespace"] = arg0 - arg1, err := ec.field_Query_batchV1CronJobsList_argsOptions(ctx, rawArgs) + args["kubeContext"] = arg0 + arg1, err := ec.field_Query_batchV1CronJobsList_argsNamespace(ctx, rawArgs) if err != nil { return nil, err } - args["options"] = arg1 + args["namespace"] = arg1 + arg2, err := ec.field_Query_batchV1CronJobsList_argsOptions(ctx, rawArgs) + if err != nil { + return nil, err + } + args["options"] = arg2 return args, nil } -func (ec *executionContext) field_Query_batchV1CronJobsList_argsNamespace( +func (ec *executionContext) field_Query_batchV1CronJobsList_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["namespace"] - if !ok { - var zeroVal *string - return zeroVal, nil + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Query_batchV1CronJobsList_argsNamespace( + ctx context.Context, + rawArgs map[string]any, +) (*string, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) if tmp, ok := rawArgs["namespace"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) @@ -3677,17 +3937,8 @@ func (ec *executionContext) field_Query_batchV1CronJobsList_argsNamespace( func (ec *executionContext) field_Query_batchV1CronJobsList_argsOptions( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*v1.ListOptions, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["options"] - if !ok { - var zeroVal *v1.ListOptions - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("options")) if tmp, ok := rawArgs["options"]; ok { return ec.unmarshalOMetaV1ListOptions2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐListOptions(ctx, tmp) @@ -3697,61 +3948,48 @@ func (ec *executionContext) field_Query_batchV1CronJobsList_argsOptions( return zeroVal, nil } -func (ec *executionContext) field_Query_batchV1JobsGet_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Query_batchV1JobsGet_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} - arg0, err := ec.field_Query_batchV1JobsGet_argsName(ctx, rawArgs) + args := map[string]any{} + arg0, err := ec.field_Query_batchV1JobsGet_argsKubeContext(ctx, rawArgs) if err != nil { return nil, err } - args["name"] = arg0 + args["kubeContext"] = arg0 arg1, err := ec.field_Query_batchV1JobsGet_argsNamespace(ctx, rawArgs) if err != nil { return nil, err } args["namespace"] = arg1 - arg2, err := ec.field_Query_batchV1JobsGet_argsOptions(ctx, rawArgs) + arg2, err := ec.field_Query_batchV1JobsGet_argsName(ctx, rawArgs) if err != nil { return nil, err } - args["options"] = arg2 + args["name"] = arg2 + arg3, err := ec.field_Query_batchV1JobsGet_argsOptions(ctx, rawArgs) + if err != nil { + return nil, err + } + args["options"] = arg3 return args, nil } -func (ec *executionContext) field_Query_batchV1JobsGet_argsName( +func (ec *executionContext) field_Query_batchV1JobsGet_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, -) (string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["name"] - if !ok { - var zeroVal string - return zeroVal, nil + rawArgs map[string]any, +) (*string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("name")) - if tmp, ok := rawArgs["name"]; ok { - return ec.unmarshalNString2string(ctx, tmp) - } - - var zeroVal string + var zeroVal *string return zeroVal, nil } func (ec *executionContext) field_Query_batchV1JobsGet_argsNamespace( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["namespace"] - if !ok { - var zeroVal *string - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) if tmp, ok := rawArgs["namespace"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) @@ -3761,19 +3999,23 @@ func (ec *executionContext) field_Query_batchV1JobsGet_argsNamespace( return zeroVal, nil } -func (ec *executionContext) field_Query_batchV1JobsGet_argsOptions( +func (ec *executionContext) field_Query_batchV1JobsGet_argsName( ctx context.Context, - rawArgs map[string]interface{}, -) (*v1.GetOptions, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["options"] - if !ok { - var zeroVal *v1.GetOptions - return zeroVal, nil + rawArgs map[string]any, +) (string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("name")) + if tmp, ok := rawArgs["name"]; ok { + return ec.unmarshalNString2string(ctx, tmp) } + var zeroVal string + return zeroVal, nil +} + +func (ec *executionContext) field_Query_batchV1JobsGet_argsOptions( + ctx context.Context, + rawArgs map[string]any, +) (*v1.GetOptions, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("options")) if tmp, ok := rawArgs["options"]; ok { return ec.unmarshalOMetaV1GetOptions2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐGetOptions(ctx, tmp) @@ -3783,34 +4025,43 @@ func (ec *executionContext) field_Query_batchV1JobsGet_argsOptions( return zeroVal, nil } -func (ec *executionContext) field_Query_batchV1JobsList_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Query_batchV1JobsList_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} - arg0, err := ec.field_Query_batchV1JobsList_argsNamespace(ctx, rawArgs) + args := map[string]any{} + arg0, err := ec.field_Query_batchV1JobsList_argsKubeContext(ctx, rawArgs) if err != nil { return nil, err } - args["namespace"] = arg0 - arg1, err := ec.field_Query_batchV1JobsList_argsOptions(ctx, rawArgs) + args["kubeContext"] = arg0 + arg1, err := ec.field_Query_batchV1JobsList_argsNamespace(ctx, rawArgs) if err != nil { return nil, err } - args["options"] = arg1 + args["namespace"] = arg1 + arg2, err := ec.field_Query_batchV1JobsList_argsOptions(ctx, rawArgs) + if err != nil { + return nil, err + } + args["options"] = arg2 return args, nil } -func (ec *executionContext) field_Query_batchV1JobsList_argsNamespace( +func (ec *executionContext) field_Query_batchV1JobsList_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["namespace"] - if !ok { - var zeroVal *string - return zeroVal, nil + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Query_batchV1JobsList_argsNamespace( + ctx context.Context, + rawArgs map[string]any, +) (*string, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) if tmp, ok := rawArgs["namespace"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) @@ -3822,17 +4073,8 @@ func (ec *executionContext) field_Query_batchV1JobsList_argsNamespace( func (ec *executionContext) field_Query_batchV1JobsList_argsOptions( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*v1.ListOptions, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["options"] - if !ok { - var zeroVal *v1.ListOptions - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("options")) if tmp, ok := rawArgs["options"]; ok { return ec.unmarshalOMetaV1ListOptions2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐListOptions(ctx, tmp) @@ -3842,29 +4084,38 @@ func (ec *executionContext) field_Query_batchV1JobsList_argsOptions( return zeroVal, nil } -func (ec *executionContext) field_Query_coreV1NamespacesList_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Query_coreV1NamespacesList_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} - arg0, err := ec.field_Query_coreV1NamespacesList_argsOptions(ctx, rawArgs) + args := map[string]any{} + arg0, err := ec.field_Query_coreV1NamespacesList_argsKubeContext(ctx, rawArgs) + if err != nil { + return nil, err + } + args["kubeContext"] = arg0 + arg1, err := ec.field_Query_coreV1NamespacesList_argsOptions(ctx, rawArgs) if err != nil { return nil, err } - args["options"] = arg0 + args["options"] = arg1 return args, nil } -func (ec *executionContext) field_Query_coreV1NamespacesList_argsOptions( +func (ec *executionContext) field_Query_coreV1NamespacesList_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, -) (*v1.ListOptions, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["options"] - if !ok { - var zeroVal *v1.ListOptions - return zeroVal, nil + rawArgs map[string]any, +) (*string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Query_coreV1NamespacesList_argsOptions( + ctx context.Context, + rawArgs map[string]any, +) (*v1.ListOptions, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("options")) if tmp, ok := rawArgs["options"]; ok { return ec.unmarshalOMetaV1ListOptions2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐListOptions(ctx, tmp) @@ -3874,29 +4125,38 @@ func (ec *executionContext) field_Query_coreV1NamespacesList_argsOptions( return zeroVal, nil } -func (ec *executionContext) field_Query_coreV1NodesList_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Query_coreV1NodesList_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} - arg0, err := ec.field_Query_coreV1NodesList_argsOptions(ctx, rawArgs) + args := map[string]any{} + arg0, err := ec.field_Query_coreV1NodesList_argsKubeContext(ctx, rawArgs) + if err != nil { + return nil, err + } + args["kubeContext"] = arg0 + arg1, err := ec.field_Query_coreV1NodesList_argsOptions(ctx, rawArgs) if err != nil { return nil, err } - args["options"] = arg0 + args["options"] = arg1 return args, nil } -func (ec *executionContext) field_Query_coreV1NodesList_argsOptions( +func (ec *executionContext) field_Query_coreV1NodesList_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, -) (*v1.ListOptions, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["options"] - if !ok { - var zeroVal *v1.ListOptions - return zeroVal, nil + rawArgs map[string]any, +) (*string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Query_coreV1NodesList_argsOptions( + ctx context.Context, + rawArgs map[string]any, +) (*v1.ListOptions, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("options")) if tmp, ok := rawArgs["options"]; ok { return ec.unmarshalOMetaV1ListOptions2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐListOptions(ctx, tmp) @@ -3906,39 +4166,48 @@ func (ec *executionContext) field_Query_coreV1NodesList_argsOptions( return zeroVal, nil } -func (ec *executionContext) field_Query_coreV1PodsGetLogs_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Query_coreV1PodsGet_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} - arg0, err := ec.field_Query_coreV1PodsGetLogs_argsNamespace(ctx, rawArgs) + args := map[string]any{} + arg0, err := ec.field_Query_coreV1PodsGet_argsKubeContext(ctx, rawArgs) + if err != nil { + return nil, err + } + args["kubeContext"] = arg0 + arg1, err := ec.field_Query_coreV1PodsGet_argsNamespace(ctx, rawArgs) if err != nil { return nil, err } - args["namespace"] = arg0 - arg1, err := ec.field_Query_coreV1PodsGetLogs_argsName(ctx, rawArgs) + args["namespace"] = arg1 + arg2, err := ec.field_Query_coreV1PodsGet_argsName(ctx, rawArgs) if err != nil { return nil, err } - args["name"] = arg1 - arg2, err := ec.field_Query_coreV1PodsGetLogs_argsOptions(ctx, rawArgs) + args["name"] = arg2 + arg3, err := ec.field_Query_coreV1PodsGet_argsOptions(ctx, rawArgs) if err != nil { return nil, err } - args["options"] = arg2 + args["options"] = arg3 return args, nil } -func (ec *executionContext) field_Query_coreV1PodsGetLogs_argsNamespace( +func (ec *executionContext) field_Query_coreV1PodsGet_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["namespace"] - if !ok { - var zeroVal *string - return zeroVal, nil + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Query_coreV1PodsGet_argsNamespace( + ctx context.Context, + rawArgs map[string]any, +) (*string, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) if tmp, ok := rawArgs["namespace"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) @@ -3948,19 +4217,10 @@ func (ec *executionContext) field_Query_coreV1PodsGetLogs_argsNamespace( return zeroVal, nil } -func (ec *executionContext) field_Query_coreV1PodsGetLogs_argsName( +func (ec *executionContext) field_Query_coreV1PodsGet_argsName( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["name"] - if !ok { - var zeroVal string - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("name")) if tmp, ok := rawArgs["name"]; ok { return ec.unmarshalNString2string(ctx, tmp) @@ -3970,61 +4230,56 @@ func (ec *executionContext) field_Query_coreV1PodsGetLogs_argsName( return zeroVal, nil } -func (ec *executionContext) field_Query_coreV1PodsGetLogs_argsOptions( +func (ec *executionContext) field_Query_coreV1PodsGet_argsOptions( ctx context.Context, - rawArgs map[string]interface{}, -) (*v11.PodLogOptions, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["options"] - if !ok { - var zeroVal *v11.PodLogOptions - return zeroVal, nil - } - + rawArgs map[string]any, +) (*v1.GetOptions, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("options")) if tmp, ok := rawArgs["options"]; ok { - return ec.unmarshalOCoreV1PodLogOptions2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐPodLogOptions(ctx, tmp) + return ec.unmarshalOMetaV1GetOptions2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐGetOptions(ctx, tmp) } - var zeroVal *v11.PodLogOptions + var zeroVal *v1.GetOptions return zeroVal, nil } -func (ec *executionContext) field_Query_coreV1PodsGet_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Query_coreV1PodsList_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} - arg0, err := ec.field_Query_coreV1PodsGet_argsNamespace(ctx, rawArgs) + args := map[string]any{} + arg0, err := ec.field_Query_coreV1PodsList_argsKubeContext(ctx, rawArgs) if err != nil { return nil, err } - args["namespace"] = arg0 - arg1, err := ec.field_Query_coreV1PodsGet_argsName(ctx, rawArgs) + args["kubeContext"] = arg0 + arg1, err := ec.field_Query_coreV1PodsList_argsNamespace(ctx, rawArgs) if err != nil { return nil, err } - args["name"] = arg1 - arg2, err := ec.field_Query_coreV1PodsGet_argsOptions(ctx, rawArgs) + args["namespace"] = arg1 + arg2, err := ec.field_Query_coreV1PodsList_argsOptions(ctx, rawArgs) if err != nil { return nil, err } args["options"] = arg2 return args, nil } -func (ec *executionContext) field_Query_coreV1PodsGet_argsNamespace( +func (ec *executionContext) field_Query_coreV1PodsList_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["namespace"] - if !ok { - var zeroVal *string - return zeroVal, nil + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Query_coreV1PodsList_argsNamespace( + ctx context.Context, + rawArgs map[string]any, +) (*string, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) if tmp, ok := rawArgs["namespace"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) @@ -4034,19 +4289,74 @@ func (ec *executionContext) field_Query_coreV1PodsGet_argsNamespace( return zeroVal, nil } -func (ec *executionContext) field_Query_coreV1PodsGet_argsName( +func (ec *executionContext) field_Query_coreV1PodsList_argsOptions( ctx context.Context, - rawArgs map[string]interface{}, -) (string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["name"] - if !ok { - var zeroVal string - return zeroVal, nil + rawArgs map[string]any, +) (*v1.ListOptions, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("options")) + if tmp, ok := rawArgs["options"]; ok { + return ec.unmarshalOMetaV1ListOptions2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐListOptions(ctx, tmp) + } + + var zeroVal *v1.ListOptions + return zeroVal, nil +} + +func (ec *executionContext) field_Query_coreV1ServicesGet_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { + var err error + args := map[string]any{} + arg0, err := ec.field_Query_coreV1ServicesGet_argsKubeContext(ctx, rawArgs) + if err != nil { + return nil, err + } + args["kubeContext"] = arg0 + arg1, err := ec.field_Query_coreV1ServicesGet_argsNamespace(ctx, rawArgs) + if err != nil { + return nil, err + } + args["namespace"] = arg1 + arg2, err := ec.field_Query_coreV1ServicesGet_argsName(ctx, rawArgs) + if err != nil { + return nil, err + } + args["name"] = arg2 + arg3, err := ec.field_Query_coreV1ServicesGet_argsOptions(ctx, rawArgs) + if err != nil { + return nil, err + } + args["options"] = arg3 + return args, nil +} +func (ec *executionContext) field_Query_coreV1ServicesGet_argsKubeContext( + ctx context.Context, + rawArgs map[string]any, +) (*string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) + } + + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Query_coreV1ServicesGet_argsNamespace( + ctx context.Context, + rawArgs map[string]any, +) (*string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) + if tmp, ok := rawArgs["namespace"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Query_coreV1ServicesGet_argsName( + ctx context.Context, + rawArgs map[string]any, +) (string, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("name")) if tmp, ok := rawArgs["name"]; ok { return ec.unmarshalNString2string(ctx, tmp) @@ -4056,19 +4366,10 @@ func (ec *executionContext) field_Query_coreV1PodsGet_argsName( return zeroVal, nil } -func (ec *executionContext) field_Query_coreV1PodsGet_argsOptions( +func (ec *executionContext) field_Query_coreV1ServicesGet_argsOptions( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*v1.GetOptions, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["options"] - if !ok { - var zeroVal *v1.GetOptions - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("options")) if tmp, ok := rawArgs["options"]; ok { return ec.unmarshalOMetaV1GetOptions2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐGetOptions(ctx, tmp) @@ -4078,34 +4379,43 @@ func (ec *executionContext) field_Query_coreV1PodsGet_argsOptions( return zeroVal, nil } -func (ec *executionContext) field_Query_coreV1PodsList_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Query_coreV1ServicesList_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} - arg0, err := ec.field_Query_coreV1PodsList_argsNamespace(ctx, rawArgs) + args := map[string]any{} + arg0, err := ec.field_Query_coreV1ServicesList_argsKubeContext(ctx, rawArgs) if err != nil { return nil, err } - args["namespace"] = arg0 - arg1, err := ec.field_Query_coreV1PodsList_argsOptions(ctx, rawArgs) + args["kubeContext"] = arg0 + arg1, err := ec.field_Query_coreV1ServicesList_argsNamespace(ctx, rawArgs) if err != nil { return nil, err } - args["options"] = arg1 + args["namespace"] = arg1 + arg2, err := ec.field_Query_coreV1ServicesList_argsOptions(ctx, rawArgs) + if err != nil { + return nil, err + } + args["options"] = arg2 return args, nil } -func (ec *executionContext) field_Query_coreV1PodsList_argsNamespace( +func (ec *executionContext) field_Query_coreV1ServicesList_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["namespace"] - if !ok { - var zeroVal *string - return zeroVal, nil + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Query_coreV1ServicesList_argsNamespace( + ctx context.Context, + rawArgs map[string]any, +) (*string, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) if tmp, ok := rawArgs["namespace"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) @@ -4115,19 +4425,10 @@ func (ec *executionContext) field_Query_coreV1PodsList_argsNamespace( return zeroVal, nil } -func (ec *executionContext) field_Query_coreV1PodsList_argsOptions( +func (ec *executionContext) field_Query_coreV1ServicesList_argsOptions( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*v1.ListOptions, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["options"] - if !ok { - var zeroVal *v1.ListOptions - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("options")) if tmp, ok := rawArgs["options"]; ok { return ec.unmarshalOMetaV1ListOptions2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐListOptions(ctx, tmp) @@ -4137,31 +4438,22 @@ func (ec *executionContext) field_Query_coreV1PodsList_argsOptions( return zeroVal, nil } -func (ec *executionContext) field_Query_logMetadataList_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Query_kubernetesAPIHealthzGet_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} - arg0, err := ec.field_Query_logMetadataList_argsNamespace(ctx, rawArgs) + args := map[string]any{} + arg0, err := ec.field_Query_kubernetesAPIHealthzGet_argsKubeContext(ctx, rawArgs) if err != nil { return nil, err } - args["namespace"] = arg0 + args["kubeContext"] = arg0 return args, nil } -func (ec *executionContext) field_Query_logMetadataList_argsNamespace( +func (ec *executionContext) field_Query_kubernetesAPIHealthzGet_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["namespace"] - if !ok { - var zeroVal *string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) - if tmp, ok := rawArgs["namespace"]; ok { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) } @@ -4169,54 +4461,66 @@ func (ec *executionContext) field_Query_logMetadataList_argsNamespace( return zeroVal, nil } -func (ec *executionContext) field_Query_podLogHead_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Query_kubernetesAPIReadyWait_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} - arg0, err := ec.field_Query_podLogHead_argsNamespace(ctx, rawArgs) - if err != nil { - return nil, err - } - args["namespace"] = arg0 - arg1, err := ec.field_Query_podLogHead_argsName(ctx, rawArgs) + args := map[string]any{} + arg0, err := ec.field_Query_kubernetesAPIReadyWait_argsKubeContext(ctx, rawArgs) if err != nil { return nil, err } - args["name"] = arg1 - arg2, err := ec.field_Query_podLogHead_argsContainer(ctx, rawArgs) - if err != nil { - return nil, err + args["kubeContext"] = arg0 + return args, nil +} +func (ec *executionContext) field_Query_kubernetesAPIReadyWait_argsKubeContext( + ctx context.Context, + rawArgs map[string]any, +) (*string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } - args["container"] = arg2 - arg3, err := ec.field_Query_podLogHead_argsAfter(ctx, rawArgs) + + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Query_kubetailClusterAPIHealthzGet_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { + var err error + args := map[string]any{} + arg0, err := ec.field_Query_kubetailClusterAPIHealthzGet_argsKubeContext(ctx, rawArgs) if err != nil { return nil, err } - args["after"] = arg3 - arg4, err := ec.field_Query_podLogHead_argsSince(ctx, rawArgs) + args["kubeContext"] = arg0 + arg1, err := ec.field_Query_kubetailClusterAPIHealthzGet_argsNamespace(ctx, rawArgs) if err != nil { return nil, err } - args["since"] = arg4 - arg5, err := ec.field_Query_podLogHead_argsFirst(ctx, rawArgs) + args["namespace"] = arg1 + arg2, err := ec.field_Query_kubetailClusterAPIHealthzGet_argsServiceName(ctx, rawArgs) if err != nil { return nil, err } - args["first"] = arg5 + args["serviceName"] = arg2 return args, nil } -func (ec *executionContext) field_Query_podLogHead_argsNamespace( +func (ec *executionContext) field_Query_kubetailClusterAPIHealthzGet_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["namespace"] - if !ok { - var zeroVal *string - return zeroVal, nil + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Query_kubetailClusterAPIHealthzGet_argsNamespace( + ctx context.Context, + rawArgs map[string]any, +) (*string, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) if tmp, ok := rawArgs["namespace"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) @@ -4226,43 +4530,45 @@ func (ec *executionContext) field_Query_podLogHead_argsNamespace( return zeroVal, nil } -func (ec *executionContext) field_Query_podLogHead_argsName( +func (ec *executionContext) field_Query_kubetailClusterAPIHealthzGet_argsServiceName( ctx context.Context, - rawArgs map[string]interface{}, -) (string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["name"] - if !ok { - var zeroVal string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("name")) - if tmp, ok := rawArgs["name"]; ok { - return ec.unmarshalNString2string(ctx, tmp) + rawArgs map[string]any, +) (*string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("serviceName")) + if tmp, ok := rawArgs["serviceName"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } - var zeroVal string + var zeroVal *string return zeroVal, nil } -func (ec *executionContext) field_Query_podLogHead_argsContainer( +func (ec *executionContext) field_Query_kubetailClusterAPIReadyWait_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { + var err error + args := map[string]any{} + arg0, err := ec.field_Query_kubetailClusterAPIReadyWait_argsKubeContext(ctx, rawArgs) + if err != nil { + return nil, err + } + args["kubeContext"] = arg0 + arg1, err := ec.field_Query_kubetailClusterAPIReadyWait_argsNamespace(ctx, rawArgs) + if err != nil { + return nil, err + } + args["namespace"] = arg1 + arg2, err := ec.field_Query_kubetailClusterAPIReadyWait_argsServiceName(ctx, rawArgs) + if err != nil { + return nil, err + } + args["serviceName"] = arg2 + return args, nil +} +func (ec *executionContext) field_Query_kubetailClusterAPIReadyWait_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["container"] - if !ok { - var zeroVal *string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("container")) - if tmp, ok := rawArgs["container"]; ok { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) } @@ -4270,19 +4576,128 @@ func (ec *executionContext) field_Query_podLogHead_argsContainer( return zeroVal, nil } -func (ec *executionContext) field_Query_podLogHead_argsAfter( +func (ec *executionContext) field_Query_kubetailClusterAPIReadyWait_argsNamespace( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["after"] - if !ok { - var zeroVal *string - return zeroVal, nil + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) + if tmp, ok := rawArgs["namespace"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) + } + + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Query_kubetailClusterAPIReadyWait_argsServiceName( + ctx context.Context, + rawArgs map[string]any, +) (*string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("serviceName")) + if tmp, ok := rawArgs["serviceName"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) + } + + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Query_podLogHead_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { + var err error + args := map[string]any{} + arg0, err := ec.field_Query_podLogHead_argsKubeContext(ctx, rawArgs) + if err != nil { + return nil, err + } + args["kubeContext"] = arg0 + arg1, err := ec.field_Query_podLogHead_argsNamespace(ctx, rawArgs) + if err != nil { + return nil, err + } + args["namespace"] = arg1 + arg2, err := ec.field_Query_podLogHead_argsName(ctx, rawArgs) + if err != nil { + return nil, err + } + args["name"] = arg2 + arg3, err := ec.field_Query_podLogHead_argsContainer(ctx, rawArgs) + if err != nil { + return nil, err + } + args["container"] = arg3 + arg4, err := ec.field_Query_podLogHead_argsAfter(ctx, rawArgs) + if err != nil { + return nil, err + } + args["after"] = arg4 + arg5, err := ec.field_Query_podLogHead_argsSince(ctx, rawArgs) + if err != nil { + return nil, err + } + args["since"] = arg5 + arg6, err := ec.field_Query_podLogHead_argsFirst(ctx, rawArgs) + if err != nil { + return nil, err + } + args["first"] = arg6 + return args, nil +} +func (ec *executionContext) field_Query_podLogHead_argsKubeContext( + ctx context.Context, + rawArgs map[string]any, +) (*string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) + } + + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Query_podLogHead_argsNamespace( + ctx context.Context, + rawArgs map[string]any, +) (*string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) + if tmp, ok := rawArgs["namespace"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) + } + + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Query_podLogHead_argsName( + ctx context.Context, + rawArgs map[string]any, +) (string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("name")) + if tmp, ok := rawArgs["name"]; ok { + return ec.unmarshalNString2string(ctx, tmp) + } + + var zeroVal string + return zeroVal, nil +} + +func (ec *executionContext) field_Query_podLogHead_argsContainer( + ctx context.Context, + rawArgs map[string]any, +) (*string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("container")) + if tmp, ok := rawArgs["container"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Query_podLogHead_argsAfter( + ctx context.Context, + rawArgs map[string]any, +) (*string, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("after")) if tmp, ok := rawArgs["after"]; ok { return ec.unmarshalOID2ᚖstring(ctx, tmp) @@ -4294,17 +4709,8 @@ func (ec *executionContext) field_Query_podLogHead_argsAfter( func (ec *executionContext) field_Query_podLogHead_argsSince( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["since"] - if !ok { - var zeroVal *string - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("since")) if tmp, ok := rawArgs["since"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) @@ -4316,19 +4722,10 @@ func (ec *executionContext) field_Query_podLogHead_argsSince( func (ec *executionContext) field_Query_podLogHead_argsFirst( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*int, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["first"] - if !ok { - var zeroVal *int - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("first")) - directive0 := func(ctx context.Context) (interface{}, error) { + directive0 := func(ctx context.Context) (any, error) { tmp, ok := rawArgs["first"] if !ok { var zeroVal *int @@ -4337,7 +4734,7 @@ func (ec *executionContext) field_Query_podLogHead_argsFirst( return ec.unmarshalOInt2ᚖint(ctx, tmp) } - directive1 := func(ctx context.Context) (interface{}, error) { + directive1 := func(ctx context.Context) (any, error) { rule, err := ec.unmarshalNString2string(ctx, "gte=0") if err != nil { var zeroVal *int @@ -4371,49 +4768,58 @@ func (ec *executionContext) field_Query_podLogHead_argsFirst( } } -func (ec *executionContext) field_Query_podLogTail_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Query_podLogTail_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} - arg0, err := ec.field_Query_podLogTail_argsNamespace(ctx, rawArgs) + args := map[string]any{} + arg0, err := ec.field_Query_podLogTail_argsKubeContext(ctx, rawArgs) + if err != nil { + return nil, err + } + args["kubeContext"] = arg0 + arg1, err := ec.field_Query_podLogTail_argsNamespace(ctx, rawArgs) if err != nil { return nil, err } - args["namespace"] = arg0 - arg1, err := ec.field_Query_podLogTail_argsName(ctx, rawArgs) + args["namespace"] = arg1 + arg2, err := ec.field_Query_podLogTail_argsName(ctx, rawArgs) if err != nil { return nil, err } - args["name"] = arg1 - arg2, err := ec.field_Query_podLogTail_argsContainer(ctx, rawArgs) + args["name"] = arg2 + arg3, err := ec.field_Query_podLogTail_argsContainer(ctx, rawArgs) if err != nil { return nil, err } - args["container"] = arg2 - arg3, err := ec.field_Query_podLogTail_argsBefore(ctx, rawArgs) + args["container"] = arg3 + arg4, err := ec.field_Query_podLogTail_argsBefore(ctx, rawArgs) if err != nil { return nil, err } - args["before"] = arg3 - arg4, err := ec.field_Query_podLogTail_argsLast(ctx, rawArgs) + args["before"] = arg4 + arg5, err := ec.field_Query_podLogTail_argsLast(ctx, rawArgs) if err != nil { return nil, err } - args["last"] = arg4 + args["last"] = arg5 return args, nil } -func (ec *executionContext) field_Query_podLogTail_argsNamespace( +func (ec *executionContext) field_Query_podLogTail_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["namespace"] - if !ok { - var zeroVal *string - return zeroVal, nil + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Query_podLogTail_argsNamespace( + ctx context.Context, + rawArgs map[string]any, +) (*string, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) if tmp, ok := rawArgs["namespace"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) @@ -4425,17 +4831,8 @@ func (ec *executionContext) field_Query_podLogTail_argsNamespace( func (ec *executionContext) field_Query_podLogTail_argsName( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["name"] - if !ok { - var zeroVal string - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("name")) if tmp, ok := rawArgs["name"]; ok { return ec.unmarshalNString2string(ctx, tmp) @@ -4447,17 +4844,8 @@ func (ec *executionContext) field_Query_podLogTail_argsName( func (ec *executionContext) field_Query_podLogTail_argsContainer( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["container"] - if !ok { - var zeroVal *string - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("container")) if tmp, ok := rawArgs["container"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) @@ -4469,17 +4857,8 @@ func (ec *executionContext) field_Query_podLogTail_argsContainer( func (ec *executionContext) field_Query_podLogTail_argsBefore( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["before"] - if !ok { - var zeroVal *string - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("before")) if tmp, ok := rawArgs["before"]; ok { return ec.unmarshalOID2ᚖstring(ctx, tmp) @@ -4491,19 +4870,10 @@ func (ec *executionContext) field_Query_podLogTail_argsBefore( func (ec *executionContext) field_Query_podLogTail_argsLast( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*int, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["last"] - if !ok { - var zeroVal *int - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("last")) - directive0 := func(ctx context.Context) (interface{}, error) { + directive0 := func(ctx context.Context) (any, error) { tmp, ok := rawArgs["last"] if !ok { var zeroVal *int @@ -4512,7 +4882,7 @@ func (ec *executionContext) field_Query_podLogTail_argsLast( return ec.unmarshalOInt2ᚖint(ctx, tmp) } - directive1 := func(ctx context.Context) (interface{}, error) { + directive1 := func(ctx context.Context) (any, error) { rule, err := ec.unmarshalNString2string(ctx, "gt=0") if err != nil { var zeroVal *int @@ -4546,66 +4916,43 @@ func (ec *executionContext) field_Query_podLogTail_argsLast( } } -func (ec *executionContext) field_Query_readyWait_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Subscription_appsV1DaemonSetsWatch_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} - arg0, err := ec.field_Query_readyWait_argsTimeout(ctx, rawArgs) + args := map[string]any{} + arg0, err := ec.field_Subscription_appsV1DaemonSetsWatch_argsKubeContext(ctx, rawArgs) if err != nil { return nil, err } - args["timeout"] = arg0 - return args, nil -} -func (ec *executionContext) field_Query_readyWait_argsTimeout( - ctx context.Context, - rawArgs map[string]interface{}, -) (*int, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["timeout"] - if !ok { - var zeroVal *int - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("timeout")) - if tmp, ok := rawArgs["timeout"]; ok { - return ec.unmarshalOInt2ᚖint(ctx, tmp) - } - - var zeroVal *int - return zeroVal, nil -} - -func (ec *executionContext) field_Subscription_appsV1DaemonSetsWatch_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { - var err error - args := map[string]interface{}{} - arg0, err := ec.field_Subscription_appsV1DaemonSetsWatch_argsNamespace(ctx, rawArgs) + args["kubeContext"] = arg0 + arg1, err := ec.field_Subscription_appsV1DaemonSetsWatch_argsNamespace(ctx, rawArgs) if err != nil { return nil, err } - args["namespace"] = arg0 - arg1, err := ec.field_Subscription_appsV1DaemonSetsWatch_argsOptions(ctx, rawArgs) + args["namespace"] = arg1 + arg2, err := ec.field_Subscription_appsV1DaemonSetsWatch_argsOptions(ctx, rawArgs) if err != nil { return nil, err } - args["options"] = arg1 + args["options"] = arg2 return args, nil } -func (ec *executionContext) field_Subscription_appsV1DaemonSetsWatch_argsNamespace( +func (ec *executionContext) field_Subscription_appsV1DaemonSetsWatch_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["namespace"] - if !ok { - var zeroVal *string - return zeroVal, nil + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Subscription_appsV1DaemonSetsWatch_argsNamespace( + ctx context.Context, + rawArgs map[string]any, +) (*string, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) if tmp, ok := rawArgs["namespace"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) @@ -4617,17 +4964,8 @@ func (ec *executionContext) field_Subscription_appsV1DaemonSetsWatch_argsNamespa func (ec *executionContext) field_Subscription_appsV1DaemonSetsWatch_argsOptions( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*v1.ListOptions, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["options"] - if !ok { - var zeroVal *v1.ListOptions - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("options")) if tmp, ok := rawArgs["options"]; ok { return ec.unmarshalOMetaV1ListOptions2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐListOptions(ctx, tmp) @@ -4637,34 +4975,43 @@ func (ec *executionContext) field_Subscription_appsV1DaemonSetsWatch_argsOptions return zeroVal, nil } -func (ec *executionContext) field_Subscription_appsV1DeploymentsWatch_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Subscription_appsV1DeploymentsWatch_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} - arg0, err := ec.field_Subscription_appsV1DeploymentsWatch_argsNamespace(ctx, rawArgs) + args := map[string]any{} + arg0, err := ec.field_Subscription_appsV1DeploymentsWatch_argsKubeContext(ctx, rawArgs) if err != nil { return nil, err } - args["namespace"] = arg0 - arg1, err := ec.field_Subscription_appsV1DeploymentsWatch_argsOptions(ctx, rawArgs) + args["kubeContext"] = arg0 + arg1, err := ec.field_Subscription_appsV1DeploymentsWatch_argsNamespace(ctx, rawArgs) if err != nil { return nil, err } - args["options"] = arg1 + args["namespace"] = arg1 + arg2, err := ec.field_Subscription_appsV1DeploymentsWatch_argsOptions(ctx, rawArgs) + if err != nil { + return nil, err + } + args["options"] = arg2 return args, nil } -func (ec *executionContext) field_Subscription_appsV1DeploymentsWatch_argsNamespace( +func (ec *executionContext) field_Subscription_appsV1DeploymentsWatch_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["namespace"] - if !ok { - var zeroVal *string - return zeroVal, nil + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Subscription_appsV1DeploymentsWatch_argsNamespace( + ctx context.Context, + rawArgs map[string]any, +) (*string, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) if tmp, ok := rawArgs["namespace"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) @@ -4676,17 +5023,8 @@ func (ec *executionContext) field_Subscription_appsV1DeploymentsWatch_argsNamesp func (ec *executionContext) field_Subscription_appsV1DeploymentsWatch_argsOptions( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*v1.ListOptions, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["options"] - if !ok { - var zeroVal *v1.ListOptions - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("options")) if tmp, ok := rawArgs["options"]; ok { return ec.unmarshalOMetaV1ListOptions2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐListOptions(ctx, tmp) @@ -4696,34 +5034,43 @@ func (ec *executionContext) field_Subscription_appsV1DeploymentsWatch_argsOption return zeroVal, nil } -func (ec *executionContext) field_Subscription_appsV1ReplicaSetsWatch_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Subscription_appsV1ReplicaSetsWatch_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} - arg0, err := ec.field_Subscription_appsV1ReplicaSetsWatch_argsNamespace(ctx, rawArgs) + args := map[string]any{} + arg0, err := ec.field_Subscription_appsV1ReplicaSetsWatch_argsKubeContext(ctx, rawArgs) if err != nil { return nil, err } - args["namespace"] = arg0 - arg1, err := ec.field_Subscription_appsV1ReplicaSetsWatch_argsOptions(ctx, rawArgs) + args["kubeContext"] = arg0 + arg1, err := ec.field_Subscription_appsV1ReplicaSetsWatch_argsNamespace(ctx, rawArgs) if err != nil { return nil, err } - args["options"] = arg1 + args["namespace"] = arg1 + arg2, err := ec.field_Subscription_appsV1ReplicaSetsWatch_argsOptions(ctx, rawArgs) + if err != nil { + return nil, err + } + args["options"] = arg2 return args, nil } -func (ec *executionContext) field_Subscription_appsV1ReplicaSetsWatch_argsNamespace( +func (ec *executionContext) field_Subscription_appsV1ReplicaSetsWatch_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["namespace"] - if !ok { - var zeroVal *string - return zeroVal, nil + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Subscription_appsV1ReplicaSetsWatch_argsNamespace( + ctx context.Context, + rawArgs map[string]any, +) (*string, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) if tmp, ok := rawArgs["namespace"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) @@ -4735,17 +5082,8 @@ func (ec *executionContext) field_Subscription_appsV1ReplicaSetsWatch_argsNamesp func (ec *executionContext) field_Subscription_appsV1ReplicaSetsWatch_argsOptions( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*v1.ListOptions, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["options"] - if !ok { - var zeroVal *v1.ListOptions - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("options")) if tmp, ok := rawArgs["options"]; ok { return ec.unmarshalOMetaV1ListOptions2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐListOptions(ctx, tmp) @@ -4755,34 +5093,43 @@ func (ec *executionContext) field_Subscription_appsV1ReplicaSetsWatch_argsOption return zeroVal, nil } -func (ec *executionContext) field_Subscription_appsV1StatefulSetsWatch_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Subscription_appsV1StatefulSetsWatch_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} - arg0, err := ec.field_Subscription_appsV1StatefulSetsWatch_argsNamespace(ctx, rawArgs) + args := map[string]any{} + arg0, err := ec.field_Subscription_appsV1StatefulSetsWatch_argsKubeContext(ctx, rawArgs) if err != nil { return nil, err } - args["namespace"] = arg0 - arg1, err := ec.field_Subscription_appsV1StatefulSetsWatch_argsOptions(ctx, rawArgs) + args["kubeContext"] = arg0 + arg1, err := ec.field_Subscription_appsV1StatefulSetsWatch_argsNamespace(ctx, rawArgs) if err != nil { return nil, err } - args["options"] = arg1 + args["namespace"] = arg1 + arg2, err := ec.field_Subscription_appsV1StatefulSetsWatch_argsOptions(ctx, rawArgs) + if err != nil { + return nil, err + } + args["options"] = arg2 return args, nil } -func (ec *executionContext) field_Subscription_appsV1StatefulSetsWatch_argsNamespace( +func (ec *executionContext) field_Subscription_appsV1StatefulSetsWatch_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["namespace"] - if !ok { - var zeroVal *string - return zeroVal, nil + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Subscription_appsV1StatefulSetsWatch_argsNamespace( + ctx context.Context, + rawArgs map[string]any, +) (*string, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) if tmp, ok := rawArgs["namespace"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) @@ -4794,17 +5141,8 @@ func (ec *executionContext) field_Subscription_appsV1StatefulSetsWatch_argsNames func (ec *executionContext) field_Subscription_appsV1StatefulSetsWatch_argsOptions( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*v1.ListOptions, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["options"] - if !ok { - var zeroVal *v1.ListOptions - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("options")) if tmp, ok := rawArgs["options"]; ok { return ec.unmarshalOMetaV1ListOptions2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐListOptions(ctx, tmp) @@ -4814,34 +5152,43 @@ func (ec *executionContext) field_Subscription_appsV1StatefulSetsWatch_argsOptio return zeroVal, nil } -func (ec *executionContext) field_Subscription_batchV1CronJobsWatch_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Subscription_batchV1CronJobsWatch_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} - arg0, err := ec.field_Subscription_batchV1CronJobsWatch_argsNamespace(ctx, rawArgs) + args := map[string]any{} + arg0, err := ec.field_Subscription_batchV1CronJobsWatch_argsKubeContext(ctx, rawArgs) if err != nil { return nil, err } - args["namespace"] = arg0 - arg1, err := ec.field_Subscription_batchV1CronJobsWatch_argsOptions(ctx, rawArgs) + args["kubeContext"] = arg0 + arg1, err := ec.field_Subscription_batchV1CronJobsWatch_argsNamespace(ctx, rawArgs) if err != nil { return nil, err } - args["options"] = arg1 + args["namespace"] = arg1 + arg2, err := ec.field_Subscription_batchV1CronJobsWatch_argsOptions(ctx, rawArgs) + if err != nil { + return nil, err + } + args["options"] = arg2 return args, nil } -func (ec *executionContext) field_Subscription_batchV1CronJobsWatch_argsNamespace( +func (ec *executionContext) field_Subscription_batchV1CronJobsWatch_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["namespace"] - if !ok { - var zeroVal *string - return zeroVal, nil + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Subscription_batchV1CronJobsWatch_argsNamespace( + ctx context.Context, + rawArgs map[string]any, +) (*string, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) if tmp, ok := rawArgs["namespace"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) @@ -4853,17 +5200,8 @@ func (ec *executionContext) field_Subscription_batchV1CronJobsWatch_argsNamespac func (ec *executionContext) field_Subscription_batchV1CronJobsWatch_argsOptions( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*v1.ListOptions, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["options"] - if !ok { - var zeroVal *v1.ListOptions - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("options")) if tmp, ok := rawArgs["options"]; ok { return ec.unmarshalOMetaV1ListOptions2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐListOptions(ctx, tmp) @@ -4873,36 +5211,32 @@ func (ec *executionContext) field_Subscription_batchV1CronJobsWatch_argsOptions( return zeroVal, nil } -func (ec *executionContext) field_Subscription_batchV1JobsWatch_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Subscription_batchV1JobsWatch_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} - arg0, err := ec.field_Subscription_batchV1JobsWatch_argsNamespace(ctx, rawArgs) + args := map[string]any{} + arg0, err := ec.field_Subscription_batchV1JobsWatch_argsKubeContext(ctx, rawArgs) if err != nil { return nil, err } - args["namespace"] = arg0 - arg1, err := ec.field_Subscription_batchV1JobsWatch_argsOptions(ctx, rawArgs) + args["kubeContext"] = arg0 + arg1, err := ec.field_Subscription_batchV1JobsWatch_argsNamespace(ctx, rawArgs) if err != nil { return nil, err } - args["options"] = arg1 + args["namespace"] = arg1 + arg2, err := ec.field_Subscription_batchV1JobsWatch_argsOptions(ctx, rawArgs) + if err != nil { + return nil, err + } + args["options"] = arg2 return args, nil } -func (ec *executionContext) field_Subscription_batchV1JobsWatch_argsNamespace( +func (ec *executionContext) field_Subscription_batchV1JobsWatch_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["namespace"] - if !ok { - var zeroVal *string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) - if tmp, ok := rawArgs["namespace"]; ok { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) } @@ -4910,19 +5244,23 @@ func (ec *executionContext) field_Subscription_batchV1JobsWatch_argsNamespace( return zeroVal, nil } -func (ec *executionContext) field_Subscription_batchV1JobsWatch_argsOptions( +func (ec *executionContext) field_Subscription_batchV1JobsWatch_argsNamespace( ctx context.Context, - rawArgs map[string]interface{}, -) (*v1.ListOptions, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["options"] - if !ok { - var zeroVal *v1.ListOptions - return zeroVal, nil + rawArgs map[string]any, +) (*string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) + if tmp, ok := rawArgs["namespace"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Subscription_batchV1JobsWatch_argsOptions( + ctx context.Context, + rawArgs map[string]any, +) (*v1.ListOptions, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("options")) if tmp, ok := rawArgs["options"]; ok { return ec.unmarshalOMetaV1ListOptions2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐListOptions(ctx, tmp) @@ -4932,29 +5270,38 @@ func (ec *executionContext) field_Subscription_batchV1JobsWatch_argsOptions( return zeroVal, nil } -func (ec *executionContext) field_Subscription_coreV1NamespacesWatch_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Subscription_coreV1NamespacesWatch_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} - arg0, err := ec.field_Subscription_coreV1NamespacesWatch_argsOptions(ctx, rawArgs) + args := map[string]any{} + arg0, err := ec.field_Subscription_coreV1NamespacesWatch_argsKubeContext(ctx, rawArgs) + if err != nil { + return nil, err + } + args["kubeContext"] = arg0 + arg1, err := ec.field_Subscription_coreV1NamespacesWatch_argsOptions(ctx, rawArgs) if err != nil { return nil, err } - args["options"] = arg0 + args["options"] = arg1 return args, nil } -func (ec *executionContext) field_Subscription_coreV1NamespacesWatch_argsOptions( +func (ec *executionContext) field_Subscription_coreV1NamespacesWatch_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, -) (*v1.ListOptions, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["options"] - if !ok { - var zeroVal *v1.ListOptions - return zeroVal, nil + rawArgs map[string]any, +) (*string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Subscription_coreV1NamespacesWatch_argsOptions( + ctx context.Context, + rawArgs map[string]any, +) (*v1.ListOptions, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("options")) if tmp, ok := rawArgs["options"]; ok { return ec.unmarshalOMetaV1ListOptions2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐListOptions(ctx, tmp) @@ -4964,29 +5311,38 @@ func (ec *executionContext) field_Subscription_coreV1NamespacesWatch_argsOptions return zeroVal, nil } -func (ec *executionContext) field_Subscription_coreV1NodesWatch_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Subscription_coreV1NodesWatch_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} - arg0, err := ec.field_Subscription_coreV1NodesWatch_argsOptions(ctx, rawArgs) + args := map[string]any{} + arg0, err := ec.field_Subscription_coreV1NodesWatch_argsKubeContext(ctx, rawArgs) + if err != nil { + return nil, err + } + args["kubeContext"] = arg0 + arg1, err := ec.field_Subscription_coreV1NodesWatch_argsOptions(ctx, rawArgs) if err != nil { return nil, err } - args["options"] = arg0 + args["options"] = arg1 return args, nil } -func (ec *executionContext) field_Subscription_coreV1NodesWatch_argsOptions( +func (ec *executionContext) field_Subscription_coreV1NodesWatch_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, -) (*v1.ListOptions, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["options"] - if !ok { - var zeroVal *v1.ListOptions - return zeroVal, nil + rawArgs map[string]any, +) (*string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Subscription_coreV1NodesWatch_argsOptions( + ctx context.Context, + rawArgs map[string]any, +) (*v1.ListOptions, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("options")) if tmp, ok := rawArgs["options"]; ok { return ec.unmarshalOMetaV1ListOptions2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐListOptions(ctx, tmp) @@ -4996,41 +5352,32 @@ func (ec *executionContext) field_Subscription_coreV1NodesWatch_argsOptions( return zeroVal, nil } -func (ec *executionContext) field_Subscription_coreV1PodLogTail_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Subscription_coreV1PodsWatch_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} - arg0, err := ec.field_Subscription_coreV1PodLogTail_argsNamespace(ctx, rawArgs) + args := map[string]any{} + arg0, err := ec.field_Subscription_coreV1PodsWatch_argsKubeContext(ctx, rawArgs) if err != nil { return nil, err } - args["namespace"] = arg0 - arg1, err := ec.field_Subscription_coreV1PodLogTail_argsName(ctx, rawArgs) + args["kubeContext"] = arg0 + arg1, err := ec.field_Subscription_coreV1PodsWatch_argsNamespace(ctx, rawArgs) if err != nil { return nil, err } - args["name"] = arg1 - arg2, err := ec.field_Subscription_coreV1PodLogTail_argsOptions(ctx, rawArgs) + args["namespace"] = arg1 + arg2, err := ec.field_Subscription_coreV1PodsWatch_argsOptions(ctx, rawArgs) if err != nil { return nil, err } args["options"] = arg2 return args, nil } -func (ec *executionContext) field_Subscription_coreV1PodLogTail_argsNamespace( +func (ec *executionContext) field_Subscription_coreV1PodsWatch_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["namespace"] - if !ok { - var zeroVal *string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) - if tmp, ok := rawArgs["namespace"]; ok { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) } @@ -5038,78 +5385,69 @@ func (ec *executionContext) field_Subscription_coreV1PodLogTail_argsNamespace( return zeroVal, nil } -func (ec *executionContext) field_Subscription_coreV1PodLogTail_argsName( +func (ec *executionContext) field_Subscription_coreV1PodsWatch_argsNamespace( ctx context.Context, - rawArgs map[string]interface{}, -) (string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["name"] - if !ok { - var zeroVal string - return zeroVal, nil - } - - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("name")) - if tmp, ok := rawArgs["name"]; ok { - return ec.unmarshalNString2string(ctx, tmp) + rawArgs map[string]any, +) (*string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) + if tmp, ok := rawArgs["namespace"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } - var zeroVal string + var zeroVal *string return zeroVal, nil } -func (ec *executionContext) field_Subscription_coreV1PodLogTail_argsOptions( +func (ec *executionContext) field_Subscription_coreV1PodsWatch_argsOptions( ctx context.Context, - rawArgs map[string]interface{}, -) (*v11.PodLogOptions, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["options"] - if !ok { - var zeroVal *v11.PodLogOptions - return zeroVal, nil - } - + rawArgs map[string]any, +) (*v1.ListOptions, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("options")) if tmp, ok := rawArgs["options"]; ok { - return ec.unmarshalOCoreV1PodLogOptions2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐPodLogOptions(ctx, tmp) + return ec.unmarshalOMetaV1ListOptions2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐListOptions(ctx, tmp) } - var zeroVal *v11.PodLogOptions + var zeroVal *v1.ListOptions return zeroVal, nil } -func (ec *executionContext) field_Subscription_coreV1PodsWatch_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Subscription_coreV1ServicesWatch_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} - arg0, err := ec.field_Subscription_coreV1PodsWatch_argsNamespace(ctx, rawArgs) + args := map[string]any{} + arg0, err := ec.field_Subscription_coreV1ServicesWatch_argsKubeContext(ctx, rawArgs) if err != nil { return nil, err } - args["namespace"] = arg0 - arg1, err := ec.field_Subscription_coreV1PodsWatch_argsOptions(ctx, rawArgs) + args["kubeContext"] = arg0 + arg1, err := ec.field_Subscription_coreV1ServicesWatch_argsNamespace(ctx, rawArgs) if err != nil { return nil, err } - args["options"] = arg1 + args["namespace"] = arg1 + arg2, err := ec.field_Subscription_coreV1ServicesWatch_argsOptions(ctx, rawArgs) + if err != nil { + return nil, err + } + args["options"] = arg2 return args, nil } -func (ec *executionContext) field_Subscription_coreV1PodsWatch_argsNamespace( +func (ec *executionContext) field_Subscription_coreV1ServicesWatch_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["namespace"] - if !ok { - var zeroVal *string - return zeroVal, nil + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Subscription_coreV1ServicesWatch_argsNamespace( + ctx context.Context, + rawArgs map[string]any, +) (*string, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) if tmp, ok := rawArgs["namespace"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) @@ -5119,19 +5457,10 @@ func (ec *executionContext) field_Subscription_coreV1PodsWatch_argsNamespace( return zeroVal, nil } -func (ec *executionContext) field_Subscription_coreV1PodsWatch_argsOptions( +func (ec *executionContext) field_Subscription_coreV1ServicesWatch_argsOptions( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*v1.ListOptions, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["options"] - if !ok { - var zeroVal *v1.ListOptions - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("options")) if tmp, ok := rawArgs["options"]; ok { return ec.unmarshalOMetaV1ListOptions2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐListOptions(ctx, tmp) @@ -5141,29 +5470,66 @@ func (ec *executionContext) field_Subscription_coreV1PodsWatch_argsOptions( return zeroVal, nil } -func (ec *executionContext) field_Subscription_logMetadataWatch_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Subscription_kubernetesAPIHealthzWatch_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} - arg0, err := ec.field_Subscription_logMetadataWatch_argsNamespace(ctx, rawArgs) + args := map[string]any{} + arg0, err := ec.field_Subscription_kubernetesAPIHealthzWatch_argsKubeContext(ctx, rawArgs) if err != nil { return nil, err } - args["namespace"] = arg0 + args["kubeContext"] = arg0 return args, nil } -func (ec *executionContext) field_Subscription_logMetadataWatch_argsNamespace( +func (ec *executionContext) field_Subscription_kubernetesAPIHealthzWatch_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["namespace"] - if !ok { - var zeroVal *string - return zeroVal, nil + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) + } + + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Subscription_kubetailClusterAPIHealthzWatch_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { + var err error + args := map[string]any{} + arg0, err := ec.field_Subscription_kubetailClusterAPIHealthzWatch_argsKubeContext(ctx, rawArgs) + if err != nil { + return nil, err + } + args["kubeContext"] = arg0 + arg1, err := ec.field_Subscription_kubetailClusterAPIHealthzWatch_argsNamespace(ctx, rawArgs) + if err != nil { + return nil, err + } + args["namespace"] = arg1 + arg2, err := ec.field_Subscription_kubetailClusterAPIHealthzWatch_argsServiceName(ctx, rawArgs) + if err != nil { + return nil, err + } + args["serviceName"] = arg2 + return args, nil +} +func (ec *executionContext) field_Subscription_kubetailClusterAPIHealthzWatch_argsKubeContext( + ctx context.Context, + rawArgs map[string]any, +) (*string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Subscription_kubetailClusterAPIHealthzWatch_argsNamespace( + ctx context.Context, + rawArgs map[string]any, +) (*string, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) if tmp, ok := rawArgs["namespace"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) @@ -5173,49 +5539,71 @@ func (ec *executionContext) field_Subscription_logMetadataWatch_argsNamespace( return zeroVal, nil } -func (ec *executionContext) field_Subscription_podLogFollow_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field_Subscription_kubetailClusterAPIHealthzWatch_argsServiceName( + ctx context.Context, + rawArgs map[string]any, +) (*string, error) { + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("serviceName")) + if tmp, ok := rawArgs["serviceName"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) + } + + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Subscription_podLogFollow_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} - arg0, err := ec.field_Subscription_podLogFollow_argsNamespace(ctx, rawArgs) + args := map[string]any{} + arg0, err := ec.field_Subscription_podLogFollow_argsKubeContext(ctx, rawArgs) + if err != nil { + return nil, err + } + args["kubeContext"] = arg0 + arg1, err := ec.field_Subscription_podLogFollow_argsNamespace(ctx, rawArgs) if err != nil { return nil, err } - args["namespace"] = arg0 - arg1, err := ec.field_Subscription_podLogFollow_argsName(ctx, rawArgs) + args["namespace"] = arg1 + arg2, err := ec.field_Subscription_podLogFollow_argsName(ctx, rawArgs) if err != nil { return nil, err } - args["name"] = arg1 - arg2, err := ec.field_Subscription_podLogFollow_argsContainer(ctx, rawArgs) + args["name"] = arg2 + arg3, err := ec.field_Subscription_podLogFollow_argsContainer(ctx, rawArgs) if err != nil { return nil, err } - args["container"] = arg2 - arg3, err := ec.field_Subscription_podLogFollow_argsAfter(ctx, rawArgs) + args["container"] = arg3 + arg4, err := ec.field_Subscription_podLogFollow_argsAfter(ctx, rawArgs) if err != nil { return nil, err } - args["after"] = arg3 - arg4, err := ec.field_Subscription_podLogFollow_argsSince(ctx, rawArgs) + args["after"] = arg4 + arg5, err := ec.field_Subscription_podLogFollow_argsSince(ctx, rawArgs) if err != nil { return nil, err } - args["since"] = arg4 + args["since"] = arg5 return args, nil } -func (ec *executionContext) field_Subscription_podLogFollow_argsNamespace( +func (ec *executionContext) field_Subscription_podLogFollow_argsKubeContext( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["namespace"] - if !ok { - var zeroVal *string - return zeroVal, nil + ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("kubeContext")) + if tmp, ok := rawArgs["kubeContext"]; ok { + return ec.unmarshalOString2ᚖstring(ctx, tmp) } + var zeroVal *string + return zeroVal, nil +} + +func (ec *executionContext) field_Subscription_podLogFollow_argsNamespace( + ctx context.Context, + rawArgs map[string]any, +) (*string, error) { ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("namespace")) if tmp, ok := rawArgs["namespace"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) @@ -5227,17 +5615,8 @@ func (ec *executionContext) field_Subscription_podLogFollow_argsNamespace( func (ec *executionContext) field_Subscription_podLogFollow_argsName( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["name"] - if !ok { - var zeroVal string - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("name")) if tmp, ok := rawArgs["name"]; ok { return ec.unmarshalNString2string(ctx, tmp) @@ -5249,17 +5628,8 @@ func (ec *executionContext) field_Subscription_podLogFollow_argsName( func (ec *executionContext) field_Subscription_podLogFollow_argsContainer( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["container"] - if !ok { - var zeroVal *string - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("container")) if tmp, ok := rawArgs["container"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) @@ -5271,17 +5641,8 @@ func (ec *executionContext) field_Subscription_podLogFollow_argsContainer( func (ec *executionContext) field_Subscription_podLogFollow_argsAfter( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["after"] - if !ok { - var zeroVal *string - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("after")) if tmp, ok := rawArgs["after"]; ok { return ec.unmarshalOID2ᚖstring(ctx, tmp) @@ -5293,17 +5654,8 @@ func (ec *executionContext) field_Subscription_podLogFollow_argsAfter( func (ec *executionContext) field_Subscription_podLogFollow_argsSince( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (*string, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["since"] - if !ok { - var zeroVal *string - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("since")) if tmp, ok := rawArgs["since"]; ok { return ec.unmarshalOString2ᚖstring(ctx, tmp) @@ -5313,9 +5665,9 @@ func (ec *executionContext) field_Subscription_podLogFollow_argsSince( return zeroVal, nil } -func (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field___Type_enumValues_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} + args := map[string]any{} arg0, err := ec.field___Type_enumValues_argsIncludeDeprecated(ctx, rawArgs) if err != nil { return nil, err @@ -5325,17 +5677,8 @@ func (ec *executionContext) field___Type_enumValues_args(ctx context.Context, ra } func (ec *executionContext) field___Type_enumValues_argsIncludeDeprecated( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (bool, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["includeDeprecated"] - if !ok { - var zeroVal bool - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("includeDeprecated")) if tmp, ok := rawArgs["includeDeprecated"]; ok { return ec.unmarshalOBoolean2bool(ctx, tmp) @@ -5345,9 +5688,9 @@ func (ec *executionContext) field___Type_enumValues_argsIncludeDeprecated( return zeroVal, nil } -func (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]interface{}) (map[string]interface{}, error) { +func (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArgs map[string]any) (map[string]any, error) { var err error - args := map[string]interface{}{} + args := map[string]any{} arg0, err := ec.field___Type_fields_argsIncludeDeprecated(ctx, rawArgs) if err != nil { return nil, err @@ -5357,17 +5700,8 @@ func (ec *executionContext) field___Type_fields_args(ctx context.Context, rawArg } func (ec *executionContext) field___Type_fields_argsIncludeDeprecated( ctx context.Context, - rawArgs map[string]interface{}, + rawArgs map[string]any, ) (bool, error) { - // We won't call the directive if the argument is null. - // Set call_argument_directives_with_null to true to call directives - // even if the argument is null. - _, ok := rawArgs["includeDeprecated"] - if !ok { - var zeroVal bool - return zeroVal, nil - } - ctx = graphql.WithPathContext(ctx, graphql.NewPathWithField("includeDeprecated")) if tmp, ok := rawArgs["includeDeprecated"]; ok { return ec.unmarshalOBoolean2bool(ctx, tmp) @@ -5385,7 +5719,7 @@ func (ec *executionContext) field___Type_fields_argsIncludeDeprecated( // region **************************** field.gotpl ***************************** -func (ec *executionContext) _AppsV1DaemonSet_id(ctx context.Context, field graphql.CollectedField, obj *v12.DaemonSet) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DaemonSet_id(ctx context.Context, field graphql.CollectedField, obj *v11.DaemonSet) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DaemonSet_id(ctx, field) if err != nil { return graphql.Null @@ -5397,7 +5731,7 @@ func (ec *executionContext) _AppsV1DaemonSet_id(ctx context.Context, field graph ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.UID, nil }) @@ -5429,7 +5763,7 @@ func (ec *executionContext) fieldContext_AppsV1DaemonSet_id(_ context.Context, f return fc, nil } -func (ec *executionContext) _AppsV1DaemonSet_kind(ctx context.Context, field graphql.CollectedField, obj *v12.DaemonSet) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DaemonSet_kind(ctx context.Context, field graphql.CollectedField, obj *v11.DaemonSet) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DaemonSet_kind(ctx, field) if err != nil { return graphql.Null @@ -5441,7 +5775,7 @@ func (ec *executionContext) _AppsV1DaemonSet_kind(ctx context.Context, field gra ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Kind, nil }) @@ -5473,7 +5807,7 @@ func (ec *executionContext) fieldContext_AppsV1DaemonSet_kind(_ context.Context, return fc, nil } -func (ec *executionContext) _AppsV1DaemonSet_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v12.DaemonSet) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DaemonSet_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v11.DaemonSet) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DaemonSet_apiVersion(ctx, field) if err != nil { return graphql.Null @@ -5485,7 +5819,7 @@ func (ec *executionContext) _AppsV1DaemonSet_apiVersion(ctx context.Context, fie ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.APIVersion, nil }) @@ -5517,7 +5851,7 @@ func (ec *executionContext) fieldContext_AppsV1DaemonSet_apiVersion(_ context.Co return fc, nil } -func (ec *executionContext) _AppsV1DaemonSet_metadata(ctx context.Context, field graphql.CollectedField, obj *v12.DaemonSet) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DaemonSet_metadata(ctx context.Context, field graphql.CollectedField, obj *v11.DaemonSet) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DaemonSet_metadata(ctx, field) if err != nil { return graphql.Null @@ -5529,7 +5863,7 @@ func (ec *executionContext) _AppsV1DaemonSet_metadata(ctx context.Context, field ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.ObjectMeta, nil }) @@ -5581,7 +5915,7 @@ func (ec *executionContext) fieldContext_AppsV1DaemonSet_metadata(_ context.Cont return fc, nil } -func (ec *executionContext) _AppsV1DaemonSet_spec(ctx context.Context, field graphql.CollectedField, obj *v12.DaemonSet) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DaemonSet_spec(ctx context.Context, field graphql.CollectedField, obj *v11.DaemonSet) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DaemonSet_spec(ctx, field) if err != nil { return graphql.Null @@ -5593,7 +5927,7 @@ func (ec *executionContext) _AppsV1DaemonSet_spec(ctx context.Context, field gra ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Spec, nil }) @@ -5607,7 +5941,7 @@ func (ec *executionContext) _AppsV1DaemonSet_spec(ctx context.Context, field gra } return graphql.Null } - res := resTmp.(v12.DaemonSetSpec) + res := resTmp.(v11.DaemonSetSpec) fc.Result = res return ec.marshalNAppsV1DaemonSetSpec2k8sᚗioᚋapiᚋappsᚋv1ᚐDaemonSetSpec(ctx, field.Selections, res) } @@ -5629,7 +5963,7 @@ func (ec *executionContext) fieldContext_AppsV1DaemonSet_spec(_ context.Context, return fc, nil } -func (ec *executionContext) _AppsV1DaemonSet_status(ctx context.Context, field graphql.CollectedField, obj *v12.DaemonSet) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DaemonSet_status(ctx context.Context, field graphql.CollectedField, obj *v11.DaemonSet) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DaemonSet_status(ctx, field) if err != nil { return graphql.Null @@ -5641,7 +5975,7 @@ func (ec *executionContext) _AppsV1DaemonSet_status(ctx context.Context, field g ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Status, nil }) @@ -5655,7 +5989,7 @@ func (ec *executionContext) _AppsV1DaemonSet_status(ctx context.Context, field g } return graphql.Null } - res := resTmp.(v12.DaemonSetStatus) + res := resTmp.(v11.DaemonSetStatus) fc.Result = res return ec.marshalNAppsV1DaemonSetStatus2k8sᚗioᚋapiᚋappsᚋv1ᚐDaemonSetStatus(ctx, field.Selections, res) } @@ -5693,7 +6027,7 @@ func (ec *executionContext) fieldContext_AppsV1DaemonSet_status(_ context.Contex return fc, nil } -func (ec *executionContext) _AppsV1DaemonSetCondition_type(ctx context.Context, field graphql.CollectedField, obj *v12.DaemonSetCondition) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DaemonSetCondition_type(ctx context.Context, field graphql.CollectedField, obj *v11.DaemonSetCondition) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DaemonSetCondition_type(ctx, field) if err != nil { return graphql.Null @@ -5705,7 +6039,7 @@ func (ec *executionContext) _AppsV1DaemonSetCondition_type(ctx context.Context, ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Type, nil }) @@ -5719,7 +6053,7 @@ func (ec *executionContext) _AppsV1DaemonSetCondition_type(ctx context.Context, } return graphql.Null } - res := resTmp.(v12.DaemonSetConditionType) + res := resTmp.(v11.DaemonSetConditionType) fc.Result = res return ec.marshalNAppsV1DaemonSetConditionType2k8sᚗioᚋapiᚋappsᚋv1ᚐDaemonSetConditionType(ctx, field.Selections, res) } @@ -5737,7 +6071,7 @@ func (ec *executionContext) fieldContext_AppsV1DaemonSetCondition_type(_ context return fc, nil } -func (ec *executionContext) _AppsV1DaemonSetCondition_status(ctx context.Context, field graphql.CollectedField, obj *v12.DaemonSetCondition) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DaemonSetCondition_status(ctx context.Context, field graphql.CollectedField, obj *v11.DaemonSetCondition) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DaemonSetCondition_status(ctx, field) if err != nil { return graphql.Null @@ -5749,7 +6083,7 @@ func (ec *executionContext) _AppsV1DaemonSetCondition_status(ctx context.Context ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Status, nil }) @@ -5763,7 +6097,7 @@ func (ec *executionContext) _AppsV1DaemonSetCondition_status(ctx context.Context } return graphql.Null } - res := resTmp.(v11.ConditionStatus) + res := resTmp.(v13.ConditionStatus) fc.Result = res return ec.marshalNCoreV1ConditionStatus2k8sᚗioᚋapiᚋcoreᚋv1ᚐConditionStatus(ctx, field.Selections, res) } @@ -5781,7 +6115,7 @@ func (ec *executionContext) fieldContext_AppsV1DaemonSetCondition_status(_ conte return fc, nil } -func (ec *executionContext) _AppsV1DaemonSetCondition_lastTransitionTime(ctx context.Context, field graphql.CollectedField, obj *v12.DaemonSetCondition) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DaemonSetCondition_lastTransitionTime(ctx context.Context, field graphql.CollectedField, obj *v11.DaemonSetCondition) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DaemonSetCondition_lastTransitionTime(ctx, field) if err != nil { return graphql.Null @@ -5793,7 +6127,7 @@ func (ec *executionContext) _AppsV1DaemonSetCondition_lastTransitionTime(ctx con ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.LastTransitionTime, nil }) @@ -5825,7 +6159,7 @@ func (ec *executionContext) fieldContext_AppsV1DaemonSetCondition_lastTransition return fc, nil } -func (ec *executionContext) _AppsV1DaemonSetCondition_reason(ctx context.Context, field graphql.CollectedField, obj *v12.DaemonSetCondition) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DaemonSetCondition_reason(ctx context.Context, field graphql.CollectedField, obj *v11.DaemonSetCondition) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DaemonSetCondition_reason(ctx, field) if err != nil { return graphql.Null @@ -5837,7 +6171,7 @@ func (ec *executionContext) _AppsV1DaemonSetCondition_reason(ctx context.Context ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Reason, nil }) @@ -5869,7 +6203,7 @@ func (ec *executionContext) fieldContext_AppsV1DaemonSetCondition_reason(_ conte return fc, nil } -func (ec *executionContext) _AppsV1DaemonSetCondition_message(ctx context.Context, field graphql.CollectedField, obj *v12.DaemonSetCondition) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DaemonSetCondition_message(ctx context.Context, field graphql.CollectedField, obj *v11.DaemonSetCondition) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DaemonSetCondition_message(ctx, field) if err != nil { return graphql.Null @@ -5881,7 +6215,7 @@ func (ec *executionContext) _AppsV1DaemonSetCondition_message(ctx context.Contex ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Message, nil }) @@ -5913,7 +6247,7 @@ func (ec *executionContext) fieldContext_AppsV1DaemonSetCondition_message(_ cont return fc, nil } -func (ec *executionContext) _AppsV1DaemonSetList_kind(ctx context.Context, field graphql.CollectedField, obj *v12.DaemonSetList) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DaemonSetList_kind(ctx context.Context, field graphql.CollectedField, obj *v11.DaemonSetList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DaemonSetList_kind(ctx, field) if err != nil { return graphql.Null @@ -5925,7 +6259,7 @@ func (ec *executionContext) _AppsV1DaemonSetList_kind(ctx context.Context, field ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Kind, nil }) @@ -5957,7 +6291,7 @@ func (ec *executionContext) fieldContext_AppsV1DaemonSetList_kind(_ context.Cont return fc, nil } -func (ec *executionContext) _AppsV1DaemonSetList_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v12.DaemonSetList) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DaemonSetList_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v11.DaemonSetList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DaemonSetList_apiVersion(ctx, field) if err != nil { return graphql.Null @@ -5969,7 +6303,7 @@ func (ec *executionContext) _AppsV1DaemonSetList_apiVersion(ctx context.Context, ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.APIVersion, nil }) @@ -6001,7 +6335,7 @@ func (ec *executionContext) fieldContext_AppsV1DaemonSetList_apiVersion(_ contex return fc, nil } -func (ec *executionContext) _AppsV1DaemonSetList_metadata(ctx context.Context, field graphql.CollectedField, obj *v12.DaemonSetList) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DaemonSetList_metadata(ctx context.Context, field graphql.CollectedField, obj *v11.DaemonSetList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DaemonSetList_metadata(ctx, field) if err != nil { return graphql.Null @@ -6013,7 +6347,7 @@ func (ec *executionContext) _AppsV1DaemonSetList_metadata(ctx context.Context, f ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.ListMeta, nil }) @@ -6053,7 +6387,7 @@ func (ec *executionContext) fieldContext_AppsV1DaemonSetList_metadata(_ context. return fc, nil } -func (ec *executionContext) _AppsV1DaemonSetList_items(ctx context.Context, field graphql.CollectedField, obj *v12.DaemonSetList) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DaemonSetList_items(ctx context.Context, field graphql.CollectedField, obj *v11.DaemonSetList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DaemonSetList_items(ctx, field) if err != nil { return graphql.Null @@ -6065,7 +6399,7 @@ func (ec *executionContext) _AppsV1DaemonSetList_items(ctx context.Context, fiel ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Items, nil }) @@ -6079,7 +6413,7 @@ func (ec *executionContext) _AppsV1DaemonSetList_items(ctx context.Context, fiel } return graphql.Null } - res := resTmp.([]v12.DaemonSet) + res := resTmp.([]v11.DaemonSet) fc.Result = res return ec.marshalNAppsV1DaemonSet2ᚕk8sᚗioᚋapiᚋappsᚋv1ᚐDaemonSetᚄ(ctx, field.Selections, res) } @@ -6111,7 +6445,7 @@ func (ec *executionContext) fieldContext_AppsV1DaemonSetList_items(_ context.Con return fc, nil } -func (ec *executionContext) _AppsV1DaemonSetSpec_selector(ctx context.Context, field graphql.CollectedField, obj *v12.DaemonSetSpec) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DaemonSetSpec_selector(ctx context.Context, field graphql.CollectedField, obj *v11.DaemonSetSpec) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DaemonSetSpec_selector(ctx, field) if err != nil { return graphql.Null @@ -6123,7 +6457,7 @@ func (ec *executionContext) _AppsV1DaemonSetSpec_selector(ctx context.Context, f ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Selector, nil }) @@ -6158,7 +6492,7 @@ func (ec *executionContext) fieldContext_AppsV1DaemonSetSpec_selector(_ context. return fc, nil } -func (ec *executionContext) _AppsV1DaemonSetStatus_currentNumberScheduled(ctx context.Context, field graphql.CollectedField, obj *v12.DaemonSetStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DaemonSetStatus_currentNumberScheduled(ctx context.Context, field graphql.CollectedField, obj *v11.DaemonSetStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DaemonSetStatus_currentNumberScheduled(ctx, field) if err != nil { return graphql.Null @@ -6170,7 +6504,7 @@ func (ec *executionContext) _AppsV1DaemonSetStatus_currentNumberScheduled(ctx co ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.CurrentNumberScheduled, nil }) @@ -6202,7 +6536,7 @@ func (ec *executionContext) fieldContext_AppsV1DaemonSetStatus_currentNumberSche return fc, nil } -func (ec *executionContext) _AppsV1DaemonSetStatus_numberMisscheduled(ctx context.Context, field graphql.CollectedField, obj *v12.DaemonSetStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DaemonSetStatus_numberMisscheduled(ctx context.Context, field graphql.CollectedField, obj *v11.DaemonSetStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DaemonSetStatus_numberMisscheduled(ctx, field) if err != nil { return graphql.Null @@ -6214,7 +6548,7 @@ func (ec *executionContext) _AppsV1DaemonSetStatus_numberMisscheduled(ctx contex ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.NumberMisscheduled, nil }) @@ -6246,7 +6580,7 @@ func (ec *executionContext) fieldContext_AppsV1DaemonSetStatus_numberMisschedule return fc, nil } -func (ec *executionContext) _AppsV1DaemonSetStatus_desiredNumberScheduled(ctx context.Context, field graphql.CollectedField, obj *v12.DaemonSetStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DaemonSetStatus_desiredNumberScheduled(ctx context.Context, field graphql.CollectedField, obj *v11.DaemonSetStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DaemonSetStatus_desiredNumberScheduled(ctx, field) if err != nil { return graphql.Null @@ -6258,7 +6592,7 @@ func (ec *executionContext) _AppsV1DaemonSetStatus_desiredNumberScheduled(ctx co ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.DesiredNumberScheduled, nil }) @@ -6290,7 +6624,7 @@ func (ec *executionContext) fieldContext_AppsV1DaemonSetStatus_desiredNumberSche return fc, nil } -func (ec *executionContext) _AppsV1DaemonSetStatus_numberReady(ctx context.Context, field graphql.CollectedField, obj *v12.DaemonSetStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DaemonSetStatus_numberReady(ctx context.Context, field graphql.CollectedField, obj *v11.DaemonSetStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DaemonSetStatus_numberReady(ctx, field) if err != nil { return graphql.Null @@ -6302,7 +6636,7 @@ func (ec *executionContext) _AppsV1DaemonSetStatus_numberReady(ctx context.Conte ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.NumberReady, nil }) @@ -6334,7 +6668,7 @@ func (ec *executionContext) fieldContext_AppsV1DaemonSetStatus_numberReady(_ con return fc, nil } -func (ec *executionContext) _AppsV1DaemonSetStatus_observedGeneration(ctx context.Context, field graphql.CollectedField, obj *v12.DaemonSetStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DaemonSetStatus_observedGeneration(ctx context.Context, field graphql.CollectedField, obj *v11.DaemonSetStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DaemonSetStatus_observedGeneration(ctx, field) if err != nil { return graphql.Null @@ -6346,7 +6680,7 @@ func (ec *executionContext) _AppsV1DaemonSetStatus_observedGeneration(ctx contex ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.ObservedGeneration, nil }) @@ -6378,7 +6712,7 @@ func (ec *executionContext) fieldContext_AppsV1DaemonSetStatus_observedGeneratio return fc, nil } -func (ec *executionContext) _AppsV1DaemonSetStatus_updatedNumberScheduled(ctx context.Context, field graphql.CollectedField, obj *v12.DaemonSetStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DaemonSetStatus_updatedNumberScheduled(ctx context.Context, field graphql.CollectedField, obj *v11.DaemonSetStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DaemonSetStatus_updatedNumberScheduled(ctx, field) if err != nil { return graphql.Null @@ -6390,7 +6724,7 @@ func (ec *executionContext) _AppsV1DaemonSetStatus_updatedNumberScheduled(ctx co ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.UpdatedNumberScheduled, nil }) @@ -6422,7 +6756,7 @@ func (ec *executionContext) fieldContext_AppsV1DaemonSetStatus_updatedNumberSche return fc, nil } -func (ec *executionContext) _AppsV1DaemonSetStatus_numberAvailable(ctx context.Context, field graphql.CollectedField, obj *v12.DaemonSetStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DaemonSetStatus_numberAvailable(ctx context.Context, field graphql.CollectedField, obj *v11.DaemonSetStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DaemonSetStatus_numberAvailable(ctx, field) if err != nil { return graphql.Null @@ -6434,7 +6768,7 @@ func (ec *executionContext) _AppsV1DaemonSetStatus_numberAvailable(ctx context.C ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.NumberAvailable, nil }) @@ -6466,7 +6800,7 @@ func (ec *executionContext) fieldContext_AppsV1DaemonSetStatus_numberAvailable(_ return fc, nil } -func (ec *executionContext) _AppsV1DaemonSetStatus_numberUnavailable(ctx context.Context, field graphql.CollectedField, obj *v12.DaemonSetStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DaemonSetStatus_numberUnavailable(ctx context.Context, field graphql.CollectedField, obj *v11.DaemonSetStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DaemonSetStatus_numberUnavailable(ctx, field) if err != nil { return graphql.Null @@ -6478,7 +6812,7 @@ func (ec *executionContext) _AppsV1DaemonSetStatus_numberUnavailable(ctx context ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.NumberUnavailable, nil }) @@ -6510,7 +6844,7 @@ func (ec *executionContext) fieldContext_AppsV1DaemonSetStatus_numberUnavailable return fc, nil } -func (ec *executionContext) _AppsV1DaemonSetStatus_conditions(ctx context.Context, field graphql.CollectedField, obj *v12.DaemonSetStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DaemonSetStatus_conditions(ctx context.Context, field graphql.CollectedField, obj *v11.DaemonSetStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DaemonSetStatus_conditions(ctx, field) if err != nil { return graphql.Null @@ -6522,7 +6856,7 @@ func (ec *executionContext) _AppsV1DaemonSetStatus_conditions(ctx context.Contex ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Conditions, nil }) @@ -6536,7 +6870,7 @@ func (ec *executionContext) _AppsV1DaemonSetStatus_conditions(ctx context.Contex } return graphql.Null } - res := resTmp.([]v12.DaemonSetCondition) + res := resTmp.([]v11.DaemonSetCondition) fc.Result = res return ec.marshalNAppsV1DaemonSetCondition2ᚕk8sᚗioᚋapiᚋappsᚋv1ᚐDaemonSetConditionᚄ(ctx, field.Selections, res) } @@ -6578,7 +6912,7 @@ func (ec *executionContext) _AppsV1DaemonSetsWatchEvent_type(ctx context.Context ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Type, nil }) @@ -6622,7 +6956,7 @@ func (ec *executionContext) _AppsV1DaemonSetsWatchEvent_object(ctx context.Conte ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return ec.resolvers.AppsV1DaemonSetsWatchEvent().Object(rctx, obj) }) @@ -6633,7 +6967,7 @@ func (ec *executionContext) _AppsV1DaemonSetsWatchEvent_object(ctx context.Conte if resTmp == nil { return graphql.Null } - res := resTmp.(*v12.DaemonSet) + res := resTmp.(*v11.DaemonSet) fc.Result = res return ec.marshalOAppsV1DaemonSet2ᚖk8sᚗioᚋapiᚋappsᚋv1ᚐDaemonSet(ctx, field.Selections, res) } @@ -6665,7 +6999,7 @@ func (ec *executionContext) fieldContext_AppsV1DaemonSetsWatchEvent_object(_ con return fc, nil } -func (ec *executionContext) _AppsV1Deployment_id(ctx context.Context, field graphql.CollectedField, obj *v12.Deployment) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1Deployment_id(ctx context.Context, field graphql.CollectedField, obj *v11.Deployment) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1Deployment_id(ctx, field) if err != nil { return graphql.Null @@ -6677,7 +7011,7 @@ func (ec *executionContext) _AppsV1Deployment_id(ctx context.Context, field grap ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.UID, nil }) @@ -6709,7 +7043,7 @@ func (ec *executionContext) fieldContext_AppsV1Deployment_id(_ context.Context, return fc, nil } -func (ec *executionContext) _AppsV1Deployment_kind(ctx context.Context, field graphql.CollectedField, obj *v12.Deployment) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1Deployment_kind(ctx context.Context, field graphql.CollectedField, obj *v11.Deployment) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1Deployment_kind(ctx, field) if err != nil { return graphql.Null @@ -6721,7 +7055,7 @@ func (ec *executionContext) _AppsV1Deployment_kind(ctx context.Context, field gr ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Kind, nil }) @@ -6753,7 +7087,7 @@ func (ec *executionContext) fieldContext_AppsV1Deployment_kind(_ context.Context return fc, nil } -func (ec *executionContext) _AppsV1Deployment_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v12.Deployment) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1Deployment_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v11.Deployment) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1Deployment_apiVersion(ctx, field) if err != nil { return graphql.Null @@ -6765,7 +7099,7 @@ func (ec *executionContext) _AppsV1Deployment_apiVersion(ctx context.Context, fi ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.APIVersion, nil }) @@ -6797,7 +7131,7 @@ func (ec *executionContext) fieldContext_AppsV1Deployment_apiVersion(_ context.C return fc, nil } -func (ec *executionContext) _AppsV1Deployment_metadata(ctx context.Context, field graphql.CollectedField, obj *v12.Deployment) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1Deployment_metadata(ctx context.Context, field graphql.CollectedField, obj *v11.Deployment) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1Deployment_metadata(ctx, field) if err != nil { return graphql.Null @@ -6809,7 +7143,7 @@ func (ec *executionContext) _AppsV1Deployment_metadata(ctx context.Context, fiel ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.ObjectMeta, nil }) @@ -6861,7 +7195,7 @@ func (ec *executionContext) fieldContext_AppsV1Deployment_metadata(_ context.Con return fc, nil } -func (ec *executionContext) _AppsV1Deployment_spec(ctx context.Context, field graphql.CollectedField, obj *v12.Deployment) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1Deployment_spec(ctx context.Context, field graphql.CollectedField, obj *v11.Deployment) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1Deployment_spec(ctx, field) if err != nil { return graphql.Null @@ -6873,7 +7207,7 @@ func (ec *executionContext) _AppsV1Deployment_spec(ctx context.Context, field gr ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Spec, nil }) @@ -6887,7 +7221,7 @@ func (ec *executionContext) _AppsV1Deployment_spec(ctx context.Context, field gr } return graphql.Null } - res := resTmp.(v12.DeploymentSpec) + res := resTmp.(v11.DeploymentSpec) fc.Result = res return ec.marshalNAppsV1DeploymentSpec2k8sᚗioᚋapiᚋappsᚋv1ᚐDeploymentSpec(ctx, field.Selections, res) } @@ -6913,7 +7247,7 @@ func (ec *executionContext) fieldContext_AppsV1Deployment_spec(_ context.Context return fc, nil } -func (ec *executionContext) _AppsV1Deployment_status(ctx context.Context, field graphql.CollectedField, obj *v12.Deployment) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1Deployment_status(ctx context.Context, field graphql.CollectedField, obj *v11.Deployment) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1Deployment_status(ctx, field) if err != nil { return graphql.Null @@ -6925,7 +7259,7 @@ func (ec *executionContext) _AppsV1Deployment_status(ctx context.Context, field ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Status, nil }) @@ -6939,7 +7273,7 @@ func (ec *executionContext) _AppsV1Deployment_status(ctx context.Context, field } return graphql.Null } - res := resTmp.(v12.DeploymentStatus) + res := resTmp.(v11.DeploymentStatus) fc.Result = res return ec.marshalNAppsV1DeploymentStatus2k8sᚗioᚋapiᚋappsᚋv1ᚐDeploymentStatus(ctx, field.Selections, res) } @@ -6961,7 +7295,7 @@ func (ec *executionContext) fieldContext_AppsV1Deployment_status(_ context.Conte return fc, nil } -func (ec *executionContext) _AppsV1DeploymentList_kind(ctx context.Context, field graphql.CollectedField, obj *v12.DeploymentList) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DeploymentList_kind(ctx context.Context, field graphql.CollectedField, obj *v11.DeploymentList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DeploymentList_kind(ctx, field) if err != nil { return graphql.Null @@ -6973,7 +7307,7 @@ func (ec *executionContext) _AppsV1DeploymentList_kind(ctx context.Context, fiel ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Kind, nil }) @@ -7005,7 +7339,7 @@ func (ec *executionContext) fieldContext_AppsV1DeploymentList_kind(_ context.Con return fc, nil } -func (ec *executionContext) _AppsV1DeploymentList_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v12.DeploymentList) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DeploymentList_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v11.DeploymentList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DeploymentList_apiVersion(ctx, field) if err != nil { return graphql.Null @@ -7017,7 +7351,7 @@ func (ec *executionContext) _AppsV1DeploymentList_apiVersion(ctx context.Context ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.APIVersion, nil }) @@ -7049,7 +7383,7 @@ func (ec *executionContext) fieldContext_AppsV1DeploymentList_apiVersion(_ conte return fc, nil } -func (ec *executionContext) _AppsV1DeploymentList_metadata(ctx context.Context, field graphql.CollectedField, obj *v12.DeploymentList) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DeploymentList_metadata(ctx context.Context, field graphql.CollectedField, obj *v11.DeploymentList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DeploymentList_metadata(ctx, field) if err != nil { return graphql.Null @@ -7061,7 +7395,7 @@ func (ec *executionContext) _AppsV1DeploymentList_metadata(ctx context.Context, ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.ListMeta, nil }) @@ -7101,7 +7435,7 @@ func (ec *executionContext) fieldContext_AppsV1DeploymentList_metadata(_ context return fc, nil } -func (ec *executionContext) _AppsV1DeploymentList_items(ctx context.Context, field graphql.CollectedField, obj *v12.DeploymentList) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DeploymentList_items(ctx context.Context, field graphql.CollectedField, obj *v11.DeploymentList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DeploymentList_items(ctx, field) if err != nil { return graphql.Null @@ -7113,7 +7447,7 @@ func (ec *executionContext) _AppsV1DeploymentList_items(ctx context.Context, fie ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Items, nil }) @@ -7127,7 +7461,7 @@ func (ec *executionContext) _AppsV1DeploymentList_items(ctx context.Context, fie } return graphql.Null } - res := resTmp.([]v12.Deployment) + res := resTmp.([]v11.Deployment) fc.Result = res return ec.marshalNAppsV1Deployment2ᚕk8sᚗioᚋapiᚋappsᚋv1ᚐDeploymentᚄ(ctx, field.Selections, res) } @@ -7159,7 +7493,7 @@ func (ec *executionContext) fieldContext_AppsV1DeploymentList_items(_ context.Co return fc, nil } -func (ec *executionContext) _AppsV1DeploymentSpec_replicas(ctx context.Context, field graphql.CollectedField, obj *v12.DeploymentSpec) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DeploymentSpec_replicas(ctx context.Context, field graphql.CollectedField, obj *v11.DeploymentSpec) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DeploymentSpec_replicas(ctx, field) if err != nil { return graphql.Null @@ -7171,7 +7505,7 @@ func (ec *executionContext) _AppsV1DeploymentSpec_replicas(ctx context.Context, ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Replicas, nil }) @@ -7200,7 +7534,7 @@ func (ec *executionContext) fieldContext_AppsV1DeploymentSpec_replicas(_ context return fc, nil } -func (ec *executionContext) _AppsV1DeploymentSpec_selector(ctx context.Context, field graphql.CollectedField, obj *v12.DeploymentSpec) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DeploymentSpec_selector(ctx context.Context, field graphql.CollectedField, obj *v11.DeploymentSpec) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DeploymentSpec_selector(ctx, field) if err != nil { return graphql.Null @@ -7212,7 +7546,7 @@ func (ec *executionContext) _AppsV1DeploymentSpec_selector(ctx context.Context, ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Selector, nil }) @@ -7247,7 +7581,7 @@ func (ec *executionContext) fieldContext_AppsV1DeploymentSpec_selector(_ context return fc, nil } -func (ec *executionContext) _AppsV1DeploymentSpec_paused(ctx context.Context, field graphql.CollectedField, obj *v12.DeploymentSpec) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DeploymentSpec_paused(ctx context.Context, field graphql.CollectedField, obj *v11.DeploymentSpec) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DeploymentSpec_paused(ctx, field) if err != nil { return graphql.Null @@ -7259,7 +7593,7 @@ func (ec *executionContext) _AppsV1DeploymentSpec_paused(ctx context.Context, fi ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Paused, nil }) @@ -7291,7 +7625,7 @@ func (ec *executionContext) fieldContext_AppsV1DeploymentSpec_paused(_ context.C return fc, nil } -func (ec *executionContext) _AppsV1DeploymentStatus_replicas(ctx context.Context, field graphql.CollectedField, obj *v12.DeploymentStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1DeploymentStatus_replicas(ctx context.Context, field graphql.CollectedField, obj *v11.DeploymentStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1DeploymentStatus_replicas(ctx, field) if err != nil { return graphql.Null @@ -7303,7 +7637,7 @@ func (ec *executionContext) _AppsV1DeploymentStatus_replicas(ctx context.Context ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Replicas, nil }) @@ -7347,7 +7681,7 @@ func (ec *executionContext) _AppsV1DeploymentsWatchEvent_type(ctx context.Contex ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Type, nil }) @@ -7391,7 +7725,7 @@ func (ec *executionContext) _AppsV1DeploymentsWatchEvent_object(ctx context.Cont ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return ec.resolvers.AppsV1DeploymentsWatchEvent().Object(rctx, obj) }) @@ -7402,7 +7736,7 @@ func (ec *executionContext) _AppsV1DeploymentsWatchEvent_object(ctx context.Cont if resTmp == nil { return graphql.Null } - res := resTmp.(*v12.Deployment) + res := resTmp.(*v11.Deployment) fc.Result = res return ec.marshalOAppsV1Deployment2ᚖk8sᚗioᚋapiᚋappsᚋv1ᚐDeployment(ctx, field.Selections, res) } @@ -7434,7 +7768,7 @@ func (ec *executionContext) fieldContext_AppsV1DeploymentsWatchEvent_object(_ co return fc, nil } -func (ec *executionContext) _AppsV1ReplicaSet_id(ctx context.Context, field graphql.CollectedField, obj *v12.ReplicaSet) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1ReplicaSet_id(ctx context.Context, field graphql.CollectedField, obj *v11.ReplicaSet) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1ReplicaSet_id(ctx, field) if err != nil { return graphql.Null @@ -7446,7 +7780,7 @@ func (ec *executionContext) _AppsV1ReplicaSet_id(ctx context.Context, field grap ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.UID, nil }) @@ -7478,7 +7812,7 @@ func (ec *executionContext) fieldContext_AppsV1ReplicaSet_id(_ context.Context, return fc, nil } -func (ec *executionContext) _AppsV1ReplicaSet_kind(ctx context.Context, field graphql.CollectedField, obj *v12.ReplicaSet) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1ReplicaSet_kind(ctx context.Context, field graphql.CollectedField, obj *v11.ReplicaSet) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1ReplicaSet_kind(ctx, field) if err != nil { return graphql.Null @@ -7490,7 +7824,7 @@ func (ec *executionContext) _AppsV1ReplicaSet_kind(ctx context.Context, field gr ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Kind, nil }) @@ -7522,7 +7856,7 @@ func (ec *executionContext) fieldContext_AppsV1ReplicaSet_kind(_ context.Context return fc, nil } -func (ec *executionContext) _AppsV1ReplicaSet_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v12.ReplicaSet) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1ReplicaSet_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v11.ReplicaSet) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1ReplicaSet_apiVersion(ctx, field) if err != nil { return graphql.Null @@ -7534,7 +7868,7 @@ func (ec *executionContext) _AppsV1ReplicaSet_apiVersion(ctx context.Context, fi ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.APIVersion, nil }) @@ -7566,7 +7900,7 @@ func (ec *executionContext) fieldContext_AppsV1ReplicaSet_apiVersion(_ context.C return fc, nil } -func (ec *executionContext) _AppsV1ReplicaSet_metadata(ctx context.Context, field graphql.CollectedField, obj *v12.ReplicaSet) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1ReplicaSet_metadata(ctx context.Context, field graphql.CollectedField, obj *v11.ReplicaSet) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1ReplicaSet_metadata(ctx, field) if err != nil { return graphql.Null @@ -7578,7 +7912,7 @@ func (ec *executionContext) _AppsV1ReplicaSet_metadata(ctx context.Context, fiel ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.ObjectMeta, nil }) @@ -7630,7 +7964,7 @@ func (ec *executionContext) fieldContext_AppsV1ReplicaSet_metadata(_ context.Con return fc, nil } -func (ec *executionContext) _AppsV1ReplicaSet_spec(ctx context.Context, field graphql.CollectedField, obj *v12.ReplicaSet) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1ReplicaSet_spec(ctx context.Context, field graphql.CollectedField, obj *v11.ReplicaSet) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1ReplicaSet_spec(ctx, field) if err != nil { return graphql.Null @@ -7642,7 +7976,7 @@ func (ec *executionContext) _AppsV1ReplicaSet_spec(ctx context.Context, field gr ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Spec, nil }) @@ -7656,7 +7990,7 @@ func (ec *executionContext) _AppsV1ReplicaSet_spec(ctx context.Context, field gr } return graphql.Null } - res := resTmp.(v12.ReplicaSetSpec) + res := resTmp.(v11.ReplicaSetSpec) fc.Result = res return ec.marshalNAppsV1ReplicaSetSpec2k8sᚗioᚋapiᚋappsᚋv1ᚐReplicaSetSpec(ctx, field.Selections, res) } @@ -7680,7 +8014,7 @@ func (ec *executionContext) fieldContext_AppsV1ReplicaSet_spec(_ context.Context return fc, nil } -func (ec *executionContext) _AppsV1ReplicaSet_status(ctx context.Context, field graphql.CollectedField, obj *v12.ReplicaSet) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1ReplicaSet_status(ctx context.Context, field graphql.CollectedField, obj *v11.ReplicaSet) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1ReplicaSet_status(ctx, field) if err != nil { return graphql.Null @@ -7692,7 +8026,7 @@ func (ec *executionContext) _AppsV1ReplicaSet_status(ctx context.Context, field ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Status, nil }) @@ -7706,7 +8040,7 @@ func (ec *executionContext) _AppsV1ReplicaSet_status(ctx context.Context, field } return graphql.Null } - res := resTmp.(v12.ReplicaSetStatus) + res := resTmp.(v11.ReplicaSetStatus) fc.Result = res return ec.marshalNAppsV1ReplicaSetStatus2k8sᚗioᚋapiᚋappsᚋv1ᚐReplicaSetStatus(ctx, field.Selections, res) } @@ -7728,7 +8062,7 @@ func (ec *executionContext) fieldContext_AppsV1ReplicaSet_status(_ context.Conte return fc, nil } -func (ec *executionContext) _AppsV1ReplicaSetList_kind(ctx context.Context, field graphql.CollectedField, obj *v12.ReplicaSetList) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1ReplicaSetList_kind(ctx context.Context, field graphql.CollectedField, obj *v11.ReplicaSetList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1ReplicaSetList_kind(ctx, field) if err != nil { return graphql.Null @@ -7740,7 +8074,7 @@ func (ec *executionContext) _AppsV1ReplicaSetList_kind(ctx context.Context, fiel ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Kind, nil }) @@ -7772,7 +8106,7 @@ func (ec *executionContext) fieldContext_AppsV1ReplicaSetList_kind(_ context.Con return fc, nil } -func (ec *executionContext) _AppsV1ReplicaSetList_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v12.ReplicaSetList) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1ReplicaSetList_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v11.ReplicaSetList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1ReplicaSetList_apiVersion(ctx, field) if err != nil { return graphql.Null @@ -7784,7 +8118,7 @@ func (ec *executionContext) _AppsV1ReplicaSetList_apiVersion(ctx context.Context ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.APIVersion, nil }) @@ -7816,7 +8150,7 @@ func (ec *executionContext) fieldContext_AppsV1ReplicaSetList_apiVersion(_ conte return fc, nil } -func (ec *executionContext) _AppsV1ReplicaSetList_metadata(ctx context.Context, field graphql.CollectedField, obj *v12.ReplicaSetList) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1ReplicaSetList_metadata(ctx context.Context, field graphql.CollectedField, obj *v11.ReplicaSetList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1ReplicaSetList_metadata(ctx, field) if err != nil { return graphql.Null @@ -7828,7 +8162,7 @@ func (ec *executionContext) _AppsV1ReplicaSetList_metadata(ctx context.Context, ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.ListMeta, nil }) @@ -7868,7 +8202,7 @@ func (ec *executionContext) fieldContext_AppsV1ReplicaSetList_metadata(_ context return fc, nil } -func (ec *executionContext) _AppsV1ReplicaSetList_items(ctx context.Context, field graphql.CollectedField, obj *v12.ReplicaSetList) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1ReplicaSetList_items(ctx context.Context, field graphql.CollectedField, obj *v11.ReplicaSetList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1ReplicaSetList_items(ctx, field) if err != nil { return graphql.Null @@ -7880,7 +8214,7 @@ func (ec *executionContext) _AppsV1ReplicaSetList_items(ctx context.Context, fie ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Items, nil }) @@ -7894,7 +8228,7 @@ func (ec *executionContext) _AppsV1ReplicaSetList_items(ctx context.Context, fie } return graphql.Null } - res := resTmp.([]v12.ReplicaSet) + res := resTmp.([]v11.ReplicaSet) fc.Result = res return ec.marshalNAppsV1ReplicaSet2ᚕk8sᚗioᚋapiᚋappsᚋv1ᚐReplicaSetᚄ(ctx, field.Selections, res) } @@ -7926,7 +8260,7 @@ func (ec *executionContext) fieldContext_AppsV1ReplicaSetList_items(_ context.Co return fc, nil } -func (ec *executionContext) _AppsV1ReplicaSetSpec_replicas(ctx context.Context, field graphql.CollectedField, obj *v12.ReplicaSetSpec) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1ReplicaSetSpec_replicas(ctx context.Context, field graphql.CollectedField, obj *v11.ReplicaSetSpec) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1ReplicaSetSpec_replicas(ctx, field) if err != nil { return graphql.Null @@ -7938,7 +8272,7 @@ func (ec *executionContext) _AppsV1ReplicaSetSpec_replicas(ctx context.Context, ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Replicas, nil }) @@ -7967,7 +8301,7 @@ func (ec *executionContext) fieldContext_AppsV1ReplicaSetSpec_replicas(_ context return fc, nil } -func (ec *executionContext) _AppsV1ReplicaSetSpec_selector(ctx context.Context, field graphql.CollectedField, obj *v12.ReplicaSetSpec) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1ReplicaSetSpec_selector(ctx context.Context, field graphql.CollectedField, obj *v11.ReplicaSetSpec) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1ReplicaSetSpec_selector(ctx, field) if err != nil { return graphql.Null @@ -7979,7 +8313,7 @@ func (ec *executionContext) _AppsV1ReplicaSetSpec_selector(ctx context.Context, ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Selector, nil }) @@ -8014,7 +8348,7 @@ func (ec *executionContext) fieldContext_AppsV1ReplicaSetSpec_selector(_ context return fc, nil } -func (ec *executionContext) _AppsV1ReplicaSetStatus_replicas(ctx context.Context, field graphql.CollectedField, obj *v12.ReplicaSetStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1ReplicaSetStatus_replicas(ctx context.Context, field graphql.CollectedField, obj *v11.ReplicaSetStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1ReplicaSetStatus_replicas(ctx, field) if err != nil { return graphql.Null @@ -8026,7 +8360,7 @@ func (ec *executionContext) _AppsV1ReplicaSetStatus_replicas(ctx context.Context ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Replicas, nil }) @@ -8070,7 +8404,7 @@ func (ec *executionContext) _AppsV1ReplicaSetsWatchEvent_type(ctx context.Contex ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Type, nil }) @@ -8114,7 +8448,7 @@ func (ec *executionContext) _AppsV1ReplicaSetsWatchEvent_object(ctx context.Cont ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return ec.resolvers.AppsV1ReplicaSetsWatchEvent().Object(rctx, obj) }) @@ -8125,7 +8459,7 @@ func (ec *executionContext) _AppsV1ReplicaSetsWatchEvent_object(ctx context.Cont if resTmp == nil { return graphql.Null } - res := resTmp.(*v12.ReplicaSet) + res := resTmp.(*v11.ReplicaSet) fc.Result = res return ec.marshalOAppsV1ReplicaSet2ᚖk8sᚗioᚋapiᚋappsᚋv1ᚐReplicaSet(ctx, field.Selections, res) } @@ -8157,7 +8491,7 @@ func (ec *executionContext) fieldContext_AppsV1ReplicaSetsWatchEvent_object(_ co return fc, nil } -func (ec *executionContext) _AppsV1StatefulSet_id(ctx context.Context, field graphql.CollectedField, obj *v12.StatefulSet) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1StatefulSet_id(ctx context.Context, field graphql.CollectedField, obj *v11.StatefulSet) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1StatefulSet_id(ctx, field) if err != nil { return graphql.Null @@ -8169,7 +8503,7 @@ func (ec *executionContext) _AppsV1StatefulSet_id(ctx context.Context, field gra ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.UID, nil }) @@ -8201,7 +8535,7 @@ func (ec *executionContext) fieldContext_AppsV1StatefulSet_id(_ context.Context, return fc, nil } -func (ec *executionContext) _AppsV1StatefulSet_kind(ctx context.Context, field graphql.CollectedField, obj *v12.StatefulSet) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1StatefulSet_kind(ctx context.Context, field graphql.CollectedField, obj *v11.StatefulSet) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1StatefulSet_kind(ctx, field) if err != nil { return graphql.Null @@ -8213,7 +8547,7 @@ func (ec *executionContext) _AppsV1StatefulSet_kind(ctx context.Context, field g ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Kind, nil }) @@ -8245,7 +8579,7 @@ func (ec *executionContext) fieldContext_AppsV1StatefulSet_kind(_ context.Contex return fc, nil } -func (ec *executionContext) _AppsV1StatefulSet_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v12.StatefulSet) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1StatefulSet_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v11.StatefulSet) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1StatefulSet_apiVersion(ctx, field) if err != nil { return graphql.Null @@ -8257,7 +8591,7 @@ func (ec *executionContext) _AppsV1StatefulSet_apiVersion(ctx context.Context, f ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.APIVersion, nil }) @@ -8289,7 +8623,7 @@ func (ec *executionContext) fieldContext_AppsV1StatefulSet_apiVersion(_ context. return fc, nil } -func (ec *executionContext) _AppsV1StatefulSet_metadata(ctx context.Context, field graphql.CollectedField, obj *v12.StatefulSet) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1StatefulSet_metadata(ctx context.Context, field graphql.CollectedField, obj *v11.StatefulSet) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1StatefulSet_metadata(ctx, field) if err != nil { return graphql.Null @@ -8301,7 +8635,7 @@ func (ec *executionContext) _AppsV1StatefulSet_metadata(ctx context.Context, fie ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.ObjectMeta, nil }) @@ -8353,7 +8687,7 @@ func (ec *executionContext) fieldContext_AppsV1StatefulSet_metadata(_ context.Co return fc, nil } -func (ec *executionContext) _AppsV1StatefulSet_spec(ctx context.Context, field graphql.CollectedField, obj *v12.StatefulSet) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1StatefulSet_spec(ctx context.Context, field graphql.CollectedField, obj *v11.StatefulSet) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1StatefulSet_spec(ctx, field) if err != nil { return graphql.Null @@ -8365,7 +8699,7 @@ func (ec *executionContext) _AppsV1StatefulSet_spec(ctx context.Context, field g ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Spec, nil }) @@ -8379,7 +8713,7 @@ func (ec *executionContext) _AppsV1StatefulSet_spec(ctx context.Context, field g } return graphql.Null } - res := resTmp.(v12.StatefulSetSpec) + res := resTmp.(v11.StatefulSetSpec) fc.Result = res return ec.marshalNAppsV1StatefulSetSpec2k8sᚗioᚋapiᚋappsᚋv1ᚐStatefulSetSpec(ctx, field.Selections, res) } @@ -8403,7 +8737,7 @@ func (ec *executionContext) fieldContext_AppsV1StatefulSet_spec(_ context.Contex return fc, nil } -func (ec *executionContext) _AppsV1StatefulSetList_kind(ctx context.Context, field graphql.CollectedField, obj *v12.StatefulSetList) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1StatefulSetList_kind(ctx context.Context, field graphql.CollectedField, obj *v11.StatefulSetList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1StatefulSetList_kind(ctx, field) if err != nil { return graphql.Null @@ -8415,7 +8749,7 @@ func (ec *executionContext) _AppsV1StatefulSetList_kind(ctx context.Context, fie ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Kind, nil }) @@ -8447,7 +8781,7 @@ func (ec *executionContext) fieldContext_AppsV1StatefulSetList_kind(_ context.Co return fc, nil } -func (ec *executionContext) _AppsV1StatefulSetList_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v12.StatefulSetList) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1StatefulSetList_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v11.StatefulSetList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1StatefulSetList_apiVersion(ctx, field) if err != nil { return graphql.Null @@ -8459,7 +8793,7 @@ func (ec *executionContext) _AppsV1StatefulSetList_apiVersion(ctx context.Contex ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.APIVersion, nil }) @@ -8491,7 +8825,7 @@ func (ec *executionContext) fieldContext_AppsV1StatefulSetList_apiVersion(_ cont return fc, nil } -func (ec *executionContext) _AppsV1StatefulSetList_metadata(ctx context.Context, field graphql.CollectedField, obj *v12.StatefulSetList) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1StatefulSetList_metadata(ctx context.Context, field graphql.CollectedField, obj *v11.StatefulSetList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1StatefulSetList_metadata(ctx, field) if err != nil { return graphql.Null @@ -8503,7 +8837,7 @@ func (ec *executionContext) _AppsV1StatefulSetList_metadata(ctx context.Context, ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.ListMeta, nil }) @@ -8543,7 +8877,7 @@ func (ec *executionContext) fieldContext_AppsV1StatefulSetList_metadata(_ contex return fc, nil } -func (ec *executionContext) _AppsV1StatefulSetList_items(ctx context.Context, field graphql.CollectedField, obj *v12.StatefulSetList) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1StatefulSetList_items(ctx context.Context, field graphql.CollectedField, obj *v11.StatefulSetList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1StatefulSetList_items(ctx, field) if err != nil { return graphql.Null @@ -8555,7 +8889,7 @@ func (ec *executionContext) _AppsV1StatefulSetList_items(ctx context.Context, fi ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Items, nil }) @@ -8569,7 +8903,7 @@ func (ec *executionContext) _AppsV1StatefulSetList_items(ctx context.Context, fi } return graphql.Null } - res := resTmp.([]v12.StatefulSet) + res := resTmp.([]v11.StatefulSet) fc.Result = res return ec.marshalNAppsV1StatefulSet2ᚕk8sᚗioᚋapiᚋappsᚋv1ᚐStatefulSetᚄ(ctx, field.Selections, res) } @@ -8599,7 +8933,7 @@ func (ec *executionContext) fieldContext_AppsV1StatefulSetList_items(_ context.C return fc, nil } -func (ec *executionContext) _AppsV1StatefulSetSpec_replicas(ctx context.Context, field graphql.CollectedField, obj *v12.StatefulSetSpec) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1StatefulSetSpec_replicas(ctx context.Context, field graphql.CollectedField, obj *v11.StatefulSetSpec) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1StatefulSetSpec_replicas(ctx, field) if err != nil { return graphql.Null @@ -8611,7 +8945,7 @@ func (ec *executionContext) _AppsV1StatefulSetSpec_replicas(ctx context.Context, ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Replicas, nil }) @@ -8640,7 +8974,7 @@ func (ec *executionContext) fieldContext_AppsV1StatefulSetSpec_replicas(_ contex return fc, nil } -func (ec *executionContext) _AppsV1StatefulSetSpec_selector(ctx context.Context, field graphql.CollectedField, obj *v12.StatefulSetSpec) (ret graphql.Marshaler) { +func (ec *executionContext) _AppsV1StatefulSetSpec_selector(ctx context.Context, field graphql.CollectedField, obj *v11.StatefulSetSpec) (ret graphql.Marshaler) { fc, err := ec.fieldContext_AppsV1StatefulSetSpec_selector(ctx, field) if err != nil { return graphql.Null @@ -8652,7 +8986,7 @@ func (ec *executionContext) _AppsV1StatefulSetSpec_selector(ctx context.Context, ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Selector, nil }) @@ -8699,7 +9033,7 @@ func (ec *executionContext) _AppsV1StatefulSetsWatchEvent_type(ctx context.Conte ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Type, nil }) @@ -8743,7 +9077,7 @@ func (ec *executionContext) _AppsV1StatefulSetsWatchEvent_object(ctx context.Con ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return ec.resolvers.AppsV1StatefulSetsWatchEvent().Object(rctx, obj) }) @@ -8754,7 +9088,7 @@ func (ec *executionContext) _AppsV1StatefulSetsWatchEvent_object(ctx context.Con if resTmp == nil { return graphql.Null } - res := resTmp.(*v12.StatefulSet) + res := resTmp.(*v11.StatefulSet) fc.Result = res return ec.marshalOAppsV1StatefulSet2ᚖk8sᚗioᚋapiᚋappsᚋv1ᚐStatefulSet(ctx, field.Selections, res) } @@ -8784,7 +9118,7 @@ func (ec *executionContext) fieldContext_AppsV1StatefulSetsWatchEvent_object(_ c return fc, nil } -func (ec *executionContext) _BatchV1CronJob_id(ctx context.Context, field graphql.CollectedField, obj *v13.CronJob) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1CronJob_id(ctx context.Context, field graphql.CollectedField, obj *v12.CronJob) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1CronJob_id(ctx, field) if err != nil { return graphql.Null @@ -8796,7 +9130,7 @@ func (ec *executionContext) _BatchV1CronJob_id(ctx context.Context, field graphq ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.UID, nil }) @@ -8828,7 +9162,7 @@ func (ec *executionContext) fieldContext_BatchV1CronJob_id(_ context.Context, fi return fc, nil } -func (ec *executionContext) _BatchV1CronJob_kind(ctx context.Context, field graphql.CollectedField, obj *v13.CronJob) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1CronJob_kind(ctx context.Context, field graphql.CollectedField, obj *v12.CronJob) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1CronJob_kind(ctx, field) if err != nil { return graphql.Null @@ -8840,7 +9174,7 @@ func (ec *executionContext) _BatchV1CronJob_kind(ctx context.Context, field grap ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Kind, nil }) @@ -8872,7 +9206,7 @@ func (ec *executionContext) fieldContext_BatchV1CronJob_kind(_ context.Context, return fc, nil } -func (ec *executionContext) _BatchV1CronJob_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v13.CronJob) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1CronJob_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v12.CronJob) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1CronJob_apiVersion(ctx, field) if err != nil { return graphql.Null @@ -8884,7 +9218,7 @@ func (ec *executionContext) _BatchV1CronJob_apiVersion(ctx context.Context, fiel ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.APIVersion, nil }) @@ -8916,7 +9250,7 @@ func (ec *executionContext) fieldContext_BatchV1CronJob_apiVersion(_ context.Con return fc, nil } -func (ec *executionContext) _BatchV1CronJob_metadata(ctx context.Context, field graphql.CollectedField, obj *v13.CronJob) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1CronJob_metadata(ctx context.Context, field graphql.CollectedField, obj *v12.CronJob) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1CronJob_metadata(ctx, field) if err != nil { return graphql.Null @@ -8928,7 +9262,7 @@ func (ec *executionContext) _BatchV1CronJob_metadata(ctx context.Context, field ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.ObjectMeta, nil }) @@ -8980,7 +9314,7 @@ func (ec *executionContext) fieldContext_BatchV1CronJob_metadata(_ context.Conte return fc, nil } -func (ec *executionContext) _BatchV1CronJob_spec(ctx context.Context, field graphql.CollectedField, obj *v13.CronJob) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1CronJob_spec(ctx context.Context, field graphql.CollectedField, obj *v12.CronJob) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1CronJob_spec(ctx, field) if err != nil { return graphql.Null @@ -8992,7 +9326,7 @@ func (ec *executionContext) _BatchV1CronJob_spec(ctx context.Context, field grap ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Spec, nil }) @@ -9006,7 +9340,7 @@ func (ec *executionContext) _BatchV1CronJob_spec(ctx context.Context, field grap } return graphql.Null } - res := resTmp.(v13.CronJobSpec) + res := resTmp.(v12.CronJobSpec) fc.Result = res return ec.marshalNBatchV1CronJobSpec2k8sᚗioᚋapiᚋbatchᚋv1ᚐCronJobSpec(ctx, field.Selections, res) } @@ -9038,7 +9372,7 @@ func (ec *executionContext) fieldContext_BatchV1CronJob_spec(_ context.Context, return fc, nil } -func (ec *executionContext) _BatchV1CronJob_status(ctx context.Context, field graphql.CollectedField, obj *v13.CronJob) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1CronJob_status(ctx context.Context, field graphql.CollectedField, obj *v12.CronJob) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1CronJob_status(ctx, field) if err != nil { return graphql.Null @@ -9050,7 +9384,7 @@ func (ec *executionContext) _BatchV1CronJob_status(ctx context.Context, field gr ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Status, nil }) @@ -9064,7 +9398,7 @@ func (ec *executionContext) _BatchV1CronJob_status(ctx context.Context, field gr } return graphql.Null } - res := resTmp.(v13.CronJobStatus) + res := resTmp.(v12.CronJobStatus) fc.Result = res return ec.marshalNBatchV1CronJobStatus2k8sᚗioᚋapiᚋbatchᚋv1ᚐCronJobStatus(ctx, field.Selections, res) } @@ -9090,7 +9424,7 @@ func (ec *executionContext) fieldContext_BatchV1CronJob_status(_ context.Context return fc, nil } -func (ec *executionContext) _BatchV1CronJobList_kind(ctx context.Context, field graphql.CollectedField, obj *v13.CronJobList) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1CronJobList_kind(ctx context.Context, field graphql.CollectedField, obj *v12.CronJobList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1CronJobList_kind(ctx, field) if err != nil { return graphql.Null @@ -9102,7 +9436,7 @@ func (ec *executionContext) _BatchV1CronJobList_kind(ctx context.Context, field ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Kind, nil }) @@ -9134,7 +9468,7 @@ func (ec *executionContext) fieldContext_BatchV1CronJobList_kind(_ context.Conte return fc, nil } -func (ec *executionContext) _BatchV1CronJobList_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v13.CronJobList) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1CronJobList_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v12.CronJobList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1CronJobList_apiVersion(ctx, field) if err != nil { return graphql.Null @@ -9146,7 +9480,7 @@ func (ec *executionContext) _BatchV1CronJobList_apiVersion(ctx context.Context, ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.APIVersion, nil }) @@ -9178,7 +9512,7 @@ func (ec *executionContext) fieldContext_BatchV1CronJobList_apiVersion(_ context return fc, nil } -func (ec *executionContext) _BatchV1CronJobList_metadata(ctx context.Context, field graphql.CollectedField, obj *v13.CronJobList) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1CronJobList_metadata(ctx context.Context, field graphql.CollectedField, obj *v12.CronJobList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1CronJobList_metadata(ctx, field) if err != nil { return graphql.Null @@ -9190,7 +9524,7 @@ func (ec *executionContext) _BatchV1CronJobList_metadata(ctx context.Context, fi ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.ListMeta, nil }) @@ -9230,7 +9564,7 @@ func (ec *executionContext) fieldContext_BatchV1CronJobList_metadata(_ context.C return fc, nil } -func (ec *executionContext) _BatchV1CronJobList_items(ctx context.Context, field graphql.CollectedField, obj *v13.CronJobList) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1CronJobList_items(ctx context.Context, field graphql.CollectedField, obj *v12.CronJobList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1CronJobList_items(ctx, field) if err != nil { return graphql.Null @@ -9242,7 +9576,7 @@ func (ec *executionContext) _BatchV1CronJobList_items(ctx context.Context, field ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Items, nil }) @@ -9256,7 +9590,7 @@ func (ec *executionContext) _BatchV1CronJobList_items(ctx context.Context, field } return graphql.Null } - res := resTmp.([]v13.CronJob) + res := resTmp.([]v12.CronJob) fc.Result = res return ec.marshalNBatchV1CronJob2ᚕk8sᚗioᚋapiᚋbatchᚋv1ᚐCronJobᚄ(ctx, field.Selections, res) } @@ -9288,7 +9622,7 @@ func (ec *executionContext) fieldContext_BatchV1CronJobList_items(_ context.Cont return fc, nil } -func (ec *executionContext) _BatchV1CronJobSpec_schedule(ctx context.Context, field graphql.CollectedField, obj *v13.CronJobSpec) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1CronJobSpec_schedule(ctx context.Context, field graphql.CollectedField, obj *v12.CronJobSpec) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1CronJobSpec_schedule(ctx, field) if err != nil { return graphql.Null @@ -9300,7 +9634,7 @@ func (ec *executionContext) _BatchV1CronJobSpec_schedule(ctx context.Context, fi ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Schedule, nil }) @@ -9332,7 +9666,7 @@ func (ec *executionContext) fieldContext_BatchV1CronJobSpec_schedule(_ context.C return fc, nil } -func (ec *executionContext) _BatchV1CronJobSpec_timeZone(ctx context.Context, field graphql.CollectedField, obj *v13.CronJobSpec) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1CronJobSpec_timeZone(ctx context.Context, field graphql.CollectedField, obj *v12.CronJobSpec) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1CronJobSpec_timeZone(ctx, field) if err != nil { return graphql.Null @@ -9344,7 +9678,7 @@ func (ec *executionContext) _BatchV1CronJobSpec_timeZone(ctx context.Context, fi ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.TimeZone, nil }) @@ -9373,7 +9707,7 @@ func (ec *executionContext) fieldContext_BatchV1CronJobSpec_timeZone(_ context.C return fc, nil } -func (ec *executionContext) _BatchV1CronJobSpec_suspend(ctx context.Context, field graphql.CollectedField, obj *v13.CronJobSpec) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1CronJobSpec_suspend(ctx context.Context, field graphql.CollectedField, obj *v12.CronJobSpec) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1CronJobSpec_suspend(ctx, field) if err != nil { return graphql.Null @@ -9385,7 +9719,7 @@ func (ec *executionContext) _BatchV1CronJobSpec_suspend(ctx context.Context, fie ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Suspend, nil }) @@ -9414,7 +9748,7 @@ func (ec *executionContext) fieldContext_BatchV1CronJobSpec_suspend(_ context.Co return fc, nil } -func (ec *executionContext) _BatchV1CronJobSpec_jobTemplate(ctx context.Context, field graphql.CollectedField, obj *v13.CronJobSpec) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1CronJobSpec_jobTemplate(ctx context.Context, field graphql.CollectedField, obj *v12.CronJobSpec) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1CronJobSpec_jobTemplate(ctx, field) if err != nil { return graphql.Null @@ -9426,7 +9760,7 @@ func (ec *executionContext) _BatchV1CronJobSpec_jobTemplate(ctx context.Context, ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.JobTemplate, nil }) @@ -9440,7 +9774,7 @@ func (ec *executionContext) _BatchV1CronJobSpec_jobTemplate(ctx context.Context, } return graphql.Null } - res := resTmp.(v13.JobTemplateSpec) + res := resTmp.(v12.JobTemplateSpec) fc.Result = res return ec.marshalNBatchV1JobTemplateSpec2k8sᚗioᚋapiᚋbatchᚋv1ᚐJobTemplateSpec(ctx, field.Selections, res) } @@ -9464,7 +9798,7 @@ func (ec *executionContext) fieldContext_BatchV1CronJobSpec_jobTemplate(_ contex return fc, nil } -func (ec *executionContext) _BatchV1CronJobSpec_successfulJobsHistoryLimit(ctx context.Context, field graphql.CollectedField, obj *v13.CronJobSpec) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1CronJobSpec_successfulJobsHistoryLimit(ctx context.Context, field graphql.CollectedField, obj *v12.CronJobSpec) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1CronJobSpec_successfulJobsHistoryLimit(ctx, field) if err != nil { return graphql.Null @@ -9476,7 +9810,7 @@ func (ec *executionContext) _BatchV1CronJobSpec_successfulJobsHistoryLimit(ctx c ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.SuccessfulJobsHistoryLimit, nil }) @@ -9505,7 +9839,7 @@ func (ec *executionContext) fieldContext_BatchV1CronJobSpec_successfulJobsHistor return fc, nil } -func (ec *executionContext) _BatchV1CronJobSpec_failedJobsHistoryLimit(ctx context.Context, field graphql.CollectedField, obj *v13.CronJobSpec) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1CronJobSpec_failedJobsHistoryLimit(ctx context.Context, field graphql.CollectedField, obj *v12.CronJobSpec) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1CronJobSpec_failedJobsHistoryLimit(ctx, field) if err != nil { return graphql.Null @@ -9517,7 +9851,7 @@ func (ec *executionContext) _BatchV1CronJobSpec_failedJobsHistoryLimit(ctx conte ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.FailedJobsHistoryLimit, nil }) @@ -9546,7 +9880,7 @@ func (ec *executionContext) fieldContext_BatchV1CronJobSpec_failedJobsHistoryLim return fc, nil } -func (ec *executionContext) _BatchV1CronJobStatus_active(ctx context.Context, field graphql.CollectedField, obj *v13.CronJobStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1CronJobStatus_active(ctx context.Context, field graphql.CollectedField, obj *v12.CronJobStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1CronJobStatus_active(ctx, field) if err != nil { return graphql.Null @@ -9558,7 +9892,7 @@ func (ec *executionContext) _BatchV1CronJobStatus_active(ctx context.Context, fi ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Active, nil }) @@ -9572,7 +9906,7 @@ func (ec *executionContext) _BatchV1CronJobStatus_active(ctx context.Context, fi } return graphql.Null } - res := resTmp.([]v11.ObjectReference) + res := resTmp.([]v13.ObjectReference) fc.Result = res return ec.marshalNCoreV1ObjectReference2ᚕk8sᚗioᚋapiᚋcoreᚋv1ᚐObjectReferenceᚄ(ctx, field.Selections, res) } @@ -9606,7 +9940,7 @@ func (ec *executionContext) fieldContext_BatchV1CronJobStatus_active(_ context.C return fc, nil } -func (ec *executionContext) _BatchV1CronJobStatus_lastScheduleTime(ctx context.Context, field graphql.CollectedField, obj *v13.CronJobStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1CronJobStatus_lastScheduleTime(ctx context.Context, field graphql.CollectedField, obj *v12.CronJobStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1CronJobStatus_lastScheduleTime(ctx, field) if err != nil { return graphql.Null @@ -9618,7 +9952,7 @@ func (ec *executionContext) _BatchV1CronJobStatus_lastScheduleTime(ctx context.C ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.LastScheduleTime, nil }) @@ -9647,7 +9981,7 @@ func (ec *executionContext) fieldContext_BatchV1CronJobStatus_lastScheduleTime(_ return fc, nil } -func (ec *executionContext) _BatchV1CronJobStatus_lastSuccessfulTime(ctx context.Context, field graphql.CollectedField, obj *v13.CronJobStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1CronJobStatus_lastSuccessfulTime(ctx context.Context, field graphql.CollectedField, obj *v12.CronJobStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1CronJobStatus_lastSuccessfulTime(ctx, field) if err != nil { return graphql.Null @@ -9659,7 +9993,7 @@ func (ec *executionContext) _BatchV1CronJobStatus_lastSuccessfulTime(ctx context ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.LastSuccessfulTime, nil }) @@ -9700,7 +10034,7 @@ func (ec *executionContext) _BatchV1CronJobsWatchEvent_type(ctx context.Context, ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Type, nil }) @@ -9744,7 +10078,7 @@ func (ec *executionContext) _BatchV1CronJobsWatchEvent_object(ctx context.Contex ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return ec.resolvers.BatchV1CronJobsWatchEvent().Object(rctx, obj) }) @@ -9755,7 +10089,7 @@ func (ec *executionContext) _BatchV1CronJobsWatchEvent_object(ctx context.Contex if resTmp == nil { return graphql.Null } - res := resTmp.(*v13.CronJob) + res := resTmp.(*v12.CronJob) fc.Result = res return ec.marshalOBatchV1CronJob2ᚖk8sᚗioᚋapiᚋbatchᚋv1ᚐCronJob(ctx, field.Selections, res) } @@ -9787,7 +10121,7 @@ func (ec *executionContext) fieldContext_BatchV1CronJobsWatchEvent_object(_ cont return fc, nil } -func (ec *executionContext) _BatchV1Job_id(ctx context.Context, field graphql.CollectedField, obj *v13.Job) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1Job_id(ctx context.Context, field graphql.CollectedField, obj *v12.Job) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1Job_id(ctx, field) if err != nil { return graphql.Null @@ -9799,7 +10133,7 @@ func (ec *executionContext) _BatchV1Job_id(ctx context.Context, field graphql.Co ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.UID, nil }) @@ -9831,7 +10165,7 @@ func (ec *executionContext) fieldContext_BatchV1Job_id(_ context.Context, field return fc, nil } -func (ec *executionContext) _BatchV1Job_kind(ctx context.Context, field graphql.CollectedField, obj *v13.Job) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1Job_kind(ctx context.Context, field graphql.CollectedField, obj *v12.Job) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1Job_kind(ctx, field) if err != nil { return graphql.Null @@ -9843,7 +10177,7 @@ func (ec *executionContext) _BatchV1Job_kind(ctx context.Context, field graphql. ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Kind, nil }) @@ -9875,7 +10209,7 @@ func (ec *executionContext) fieldContext_BatchV1Job_kind(_ context.Context, fiel return fc, nil } -func (ec *executionContext) _BatchV1Job_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v13.Job) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1Job_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v12.Job) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1Job_apiVersion(ctx, field) if err != nil { return graphql.Null @@ -9887,7 +10221,7 @@ func (ec *executionContext) _BatchV1Job_apiVersion(ctx context.Context, field gr ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.APIVersion, nil }) @@ -9919,7 +10253,7 @@ func (ec *executionContext) fieldContext_BatchV1Job_apiVersion(_ context.Context return fc, nil } -func (ec *executionContext) _BatchV1Job_metadata(ctx context.Context, field graphql.CollectedField, obj *v13.Job) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1Job_metadata(ctx context.Context, field graphql.CollectedField, obj *v12.Job) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1Job_metadata(ctx, field) if err != nil { return graphql.Null @@ -9931,7 +10265,7 @@ func (ec *executionContext) _BatchV1Job_metadata(ctx context.Context, field grap ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.ObjectMeta, nil }) @@ -9983,7 +10317,7 @@ func (ec *executionContext) fieldContext_BatchV1Job_metadata(_ context.Context, return fc, nil } -func (ec *executionContext) _BatchV1Job_spec(ctx context.Context, field graphql.CollectedField, obj *v13.Job) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1Job_spec(ctx context.Context, field graphql.CollectedField, obj *v12.Job) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1Job_spec(ctx, field) if err != nil { return graphql.Null @@ -9995,7 +10329,7 @@ func (ec *executionContext) _BatchV1Job_spec(ctx context.Context, field graphql. ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Spec, nil }) @@ -10009,7 +10343,7 @@ func (ec *executionContext) _BatchV1Job_spec(ctx context.Context, field graphql. } return graphql.Null } - res := resTmp.(v13.JobSpec) + res := resTmp.(v12.JobSpec) fc.Result = res return ec.marshalNBatchV1JobSpec2k8sᚗioᚋapiᚋbatchᚋv1ᚐJobSpec(ctx, field.Selections, res) } @@ -10043,7 +10377,7 @@ func (ec *executionContext) fieldContext_BatchV1Job_spec(_ context.Context, fiel return fc, nil } -func (ec *executionContext) _BatchV1Job_status(ctx context.Context, field graphql.CollectedField, obj *v13.Job) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1Job_status(ctx context.Context, field graphql.CollectedField, obj *v12.Job) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1Job_status(ctx, field) if err != nil { return graphql.Null @@ -10055,7 +10389,7 @@ func (ec *executionContext) _BatchV1Job_status(ctx context.Context, field graphq ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Status, nil }) @@ -10069,7 +10403,7 @@ func (ec *executionContext) _BatchV1Job_status(ctx context.Context, field graphq } return graphql.Null } - res := resTmp.(v13.JobStatus) + res := resTmp.(v12.JobStatus) fc.Result = res return ec.marshalNBatchV1JobStatus2k8sᚗioᚋapiᚋbatchᚋv1ᚐJobStatus(ctx, field.Selections, res) } @@ -10105,7 +10439,7 @@ func (ec *executionContext) fieldContext_BatchV1Job_status(_ context.Context, fi return fc, nil } -func (ec *executionContext) _BatchV1JobCondition_type(ctx context.Context, field graphql.CollectedField, obj *v13.JobCondition) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1JobCondition_type(ctx context.Context, field graphql.CollectedField, obj *v12.JobCondition) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1JobCondition_type(ctx, field) if err != nil { return graphql.Null @@ -10117,7 +10451,7 @@ func (ec *executionContext) _BatchV1JobCondition_type(ctx context.Context, field ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Type, nil }) @@ -10131,7 +10465,7 @@ func (ec *executionContext) _BatchV1JobCondition_type(ctx context.Context, field } return graphql.Null } - res := resTmp.(v13.JobConditionType) + res := resTmp.(v12.JobConditionType) fc.Result = res return ec.marshalNBatchV1JobConditionType2k8sᚗioᚋapiᚋbatchᚋv1ᚐJobConditionType(ctx, field.Selections, res) } @@ -10149,7 +10483,7 @@ func (ec *executionContext) fieldContext_BatchV1JobCondition_type(_ context.Cont return fc, nil } -func (ec *executionContext) _BatchV1JobCondition_status(ctx context.Context, field graphql.CollectedField, obj *v13.JobCondition) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1JobCondition_status(ctx context.Context, field graphql.CollectedField, obj *v12.JobCondition) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1JobCondition_status(ctx, field) if err != nil { return graphql.Null @@ -10161,7 +10495,7 @@ func (ec *executionContext) _BatchV1JobCondition_status(ctx context.Context, fie ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Status, nil }) @@ -10175,7 +10509,7 @@ func (ec *executionContext) _BatchV1JobCondition_status(ctx context.Context, fie } return graphql.Null } - res := resTmp.(v11.ConditionStatus) + res := resTmp.(v13.ConditionStatus) fc.Result = res return ec.marshalNCoreV1ConditionStatus2k8sᚗioᚋapiᚋcoreᚋv1ᚐConditionStatus(ctx, field.Selections, res) } @@ -10193,7 +10527,7 @@ func (ec *executionContext) fieldContext_BatchV1JobCondition_status(_ context.Co return fc, nil } -func (ec *executionContext) _BatchV1JobCondition_lastProbeTime(ctx context.Context, field graphql.CollectedField, obj *v13.JobCondition) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1JobCondition_lastProbeTime(ctx context.Context, field graphql.CollectedField, obj *v12.JobCondition) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1JobCondition_lastProbeTime(ctx, field) if err != nil { return graphql.Null @@ -10205,7 +10539,7 @@ func (ec *executionContext) _BatchV1JobCondition_lastProbeTime(ctx context.Conte ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.LastProbeTime, nil }) @@ -10237,7 +10571,7 @@ func (ec *executionContext) fieldContext_BatchV1JobCondition_lastProbeTime(_ con return fc, nil } -func (ec *executionContext) _BatchV1JobCondition_lastTransitionTime(ctx context.Context, field graphql.CollectedField, obj *v13.JobCondition) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1JobCondition_lastTransitionTime(ctx context.Context, field graphql.CollectedField, obj *v12.JobCondition) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1JobCondition_lastTransitionTime(ctx, field) if err != nil { return graphql.Null @@ -10249,7 +10583,7 @@ func (ec *executionContext) _BatchV1JobCondition_lastTransitionTime(ctx context. ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.LastTransitionTime, nil }) @@ -10281,7 +10615,7 @@ func (ec *executionContext) fieldContext_BatchV1JobCondition_lastTransitionTime( return fc, nil } -func (ec *executionContext) _BatchV1JobCondition_reason(ctx context.Context, field graphql.CollectedField, obj *v13.JobCondition) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1JobCondition_reason(ctx context.Context, field graphql.CollectedField, obj *v12.JobCondition) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1JobCondition_reason(ctx, field) if err != nil { return graphql.Null @@ -10293,7 +10627,7 @@ func (ec *executionContext) _BatchV1JobCondition_reason(ctx context.Context, fie ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Reason, nil }) @@ -10325,7 +10659,7 @@ func (ec *executionContext) fieldContext_BatchV1JobCondition_reason(_ context.Co return fc, nil } -func (ec *executionContext) _BatchV1JobCondition_message(ctx context.Context, field graphql.CollectedField, obj *v13.JobCondition) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1JobCondition_message(ctx context.Context, field graphql.CollectedField, obj *v12.JobCondition) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1JobCondition_message(ctx, field) if err != nil { return graphql.Null @@ -10337,7 +10671,7 @@ func (ec *executionContext) _BatchV1JobCondition_message(ctx context.Context, fi ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Message, nil }) @@ -10369,7 +10703,7 @@ func (ec *executionContext) fieldContext_BatchV1JobCondition_message(_ context.C return fc, nil } -func (ec *executionContext) _BatchV1JobList_kind(ctx context.Context, field graphql.CollectedField, obj *v13.JobList) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1JobList_kind(ctx context.Context, field graphql.CollectedField, obj *v12.JobList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1JobList_kind(ctx, field) if err != nil { return graphql.Null @@ -10381,7 +10715,7 @@ func (ec *executionContext) _BatchV1JobList_kind(ctx context.Context, field grap ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Kind, nil }) @@ -10413,7 +10747,7 @@ func (ec *executionContext) fieldContext_BatchV1JobList_kind(_ context.Context, return fc, nil } -func (ec *executionContext) _BatchV1JobList_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v13.JobList) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1JobList_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v12.JobList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1JobList_apiVersion(ctx, field) if err != nil { return graphql.Null @@ -10425,7 +10759,7 @@ func (ec *executionContext) _BatchV1JobList_apiVersion(ctx context.Context, fiel ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.APIVersion, nil }) @@ -10457,7 +10791,7 @@ func (ec *executionContext) fieldContext_BatchV1JobList_apiVersion(_ context.Con return fc, nil } -func (ec *executionContext) _BatchV1JobList_metadata(ctx context.Context, field graphql.CollectedField, obj *v13.JobList) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1JobList_metadata(ctx context.Context, field graphql.CollectedField, obj *v12.JobList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1JobList_metadata(ctx, field) if err != nil { return graphql.Null @@ -10469,7 +10803,7 @@ func (ec *executionContext) _BatchV1JobList_metadata(ctx context.Context, field ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.ListMeta, nil }) @@ -10509,7 +10843,7 @@ func (ec *executionContext) fieldContext_BatchV1JobList_metadata(_ context.Conte return fc, nil } -func (ec *executionContext) _BatchV1JobList_items(ctx context.Context, field graphql.CollectedField, obj *v13.JobList) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1JobList_items(ctx context.Context, field graphql.CollectedField, obj *v12.JobList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1JobList_items(ctx, field) if err != nil { return graphql.Null @@ -10521,7 +10855,7 @@ func (ec *executionContext) _BatchV1JobList_items(ctx context.Context, field gra ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Items, nil }) @@ -10535,7 +10869,7 @@ func (ec *executionContext) _BatchV1JobList_items(ctx context.Context, field gra } return graphql.Null } - res := resTmp.([]v13.Job) + res := resTmp.([]v12.Job) fc.Result = res return ec.marshalNBatchV1Job2ᚕk8sᚗioᚋapiᚋbatchᚋv1ᚐJobᚄ(ctx, field.Selections, res) } @@ -10567,7 +10901,7 @@ func (ec *executionContext) fieldContext_BatchV1JobList_items(_ context.Context, return fc, nil } -func (ec *executionContext) _BatchV1JobSpec_parallelism(ctx context.Context, field graphql.CollectedField, obj *v13.JobSpec) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1JobSpec_parallelism(ctx context.Context, field graphql.CollectedField, obj *v12.JobSpec) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1JobSpec_parallelism(ctx, field) if err != nil { return graphql.Null @@ -10579,7 +10913,7 @@ func (ec *executionContext) _BatchV1JobSpec_parallelism(ctx context.Context, fie ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Parallelism, nil }) @@ -10608,7 +10942,7 @@ func (ec *executionContext) fieldContext_BatchV1JobSpec_parallelism(_ context.Co return fc, nil } -func (ec *executionContext) _BatchV1JobSpec_completions(ctx context.Context, field graphql.CollectedField, obj *v13.JobSpec) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1JobSpec_completions(ctx context.Context, field graphql.CollectedField, obj *v12.JobSpec) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1JobSpec_completions(ctx, field) if err != nil { return graphql.Null @@ -10620,7 +10954,7 @@ func (ec *executionContext) _BatchV1JobSpec_completions(ctx context.Context, fie ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Completions, nil }) @@ -10649,7 +10983,7 @@ func (ec *executionContext) fieldContext_BatchV1JobSpec_completions(_ context.Co return fc, nil } -func (ec *executionContext) _BatchV1JobSpec_backoffLimit(ctx context.Context, field graphql.CollectedField, obj *v13.JobSpec) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1JobSpec_backoffLimit(ctx context.Context, field graphql.CollectedField, obj *v12.JobSpec) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1JobSpec_backoffLimit(ctx, field) if err != nil { return graphql.Null @@ -10661,7 +10995,7 @@ func (ec *executionContext) _BatchV1JobSpec_backoffLimit(ctx context.Context, fi ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.BackoffLimit, nil }) @@ -10690,7 +11024,7 @@ func (ec *executionContext) fieldContext_BatchV1JobSpec_backoffLimit(_ context.C return fc, nil } -func (ec *executionContext) _BatchV1JobSpec_selector(ctx context.Context, field graphql.CollectedField, obj *v13.JobSpec) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1JobSpec_selector(ctx context.Context, field graphql.CollectedField, obj *v12.JobSpec) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1JobSpec_selector(ctx, field) if err != nil { return graphql.Null @@ -10702,7 +11036,7 @@ func (ec *executionContext) _BatchV1JobSpec_selector(ctx context.Context, field ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Selector, nil }) @@ -10737,7 +11071,7 @@ func (ec *executionContext) fieldContext_BatchV1JobSpec_selector(_ context.Conte return fc, nil } -func (ec *executionContext) _BatchV1JobSpec_manualSelector(ctx context.Context, field graphql.CollectedField, obj *v13.JobSpec) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1JobSpec_manualSelector(ctx context.Context, field graphql.CollectedField, obj *v12.JobSpec) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1JobSpec_manualSelector(ctx, field) if err != nil { return graphql.Null @@ -10749,7 +11083,7 @@ func (ec *executionContext) _BatchV1JobSpec_manualSelector(ctx context.Context, ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.ManualSelector, nil }) @@ -10778,7 +11112,7 @@ func (ec *executionContext) fieldContext_BatchV1JobSpec_manualSelector(_ context return fc, nil } -func (ec *executionContext) _BatchV1JobSpec_ttlSecondsAfterFinished(ctx context.Context, field graphql.CollectedField, obj *v13.JobSpec) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1JobSpec_ttlSecondsAfterFinished(ctx context.Context, field graphql.CollectedField, obj *v12.JobSpec) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1JobSpec_ttlSecondsAfterFinished(ctx, field) if err != nil { return graphql.Null @@ -10790,7 +11124,7 @@ func (ec *executionContext) _BatchV1JobSpec_ttlSecondsAfterFinished(ctx context. ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.TTLSecondsAfterFinished, nil }) @@ -10819,7 +11153,7 @@ func (ec *executionContext) fieldContext_BatchV1JobSpec_ttlSecondsAfterFinished( return fc, nil } -func (ec *executionContext) _BatchV1JobSpec_suspend(ctx context.Context, field graphql.CollectedField, obj *v13.JobSpec) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1JobSpec_suspend(ctx context.Context, field graphql.CollectedField, obj *v12.JobSpec) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1JobSpec_suspend(ctx, field) if err != nil { return graphql.Null @@ -10831,7 +11165,7 @@ func (ec *executionContext) _BatchV1JobSpec_suspend(ctx context.Context, field g ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Suspend, nil }) @@ -10860,7 +11194,7 @@ func (ec *executionContext) fieldContext_BatchV1JobSpec_suspend(_ context.Contex return fc, nil } -func (ec *executionContext) _BatchV1JobStatus_conditions(ctx context.Context, field graphql.CollectedField, obj *v13.JobStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1JobStatus_conditions(ctx context.Context, field graphql.CollectedField, obj *v12.JobStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1JobStatus_conditions(ctx, field) if err != nil { return graphql.Null @@ -10872,7 +11206,7 @@ func (ec *executionContext) _BatchV1JobStatus_conditions(ctx context.Context, fi ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Conditions, nil }) @@ -10886,7 +11220,7 @@ func (ec *executionContext) _BatchV1JobStatus_conditions(ctx context.Context, fi } return graphql.Null } - res := resTmp.([]v13.JobCondition) + res := resTmp.([]v12.JobCondition) fc.Result = res return ec.marshalNBatchV1JobCondition2ᚕk8sᚗioᚋapiᚋbatchᚋv1ᚐJobConditionᚄ(ctx, field.Selections, res) } @@ -10918,7 +11252,7 @@ func (ec *executionContext) fieldContext_BatchV1JobStatus_conditions(_ context.C return fc, nil } -func (ec *executionContext) _BatchV1JobStatus_startTime(ctx context.Context, field graphql.CollectedField, obj *v13.JobStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1JobStatus_startTime(ctx context.Context, field graphql.CollectedField, obj *v12.JobStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1JobStatus_startTime(ctx, field) if err != nil { return graphql.Null @@ -10930,7 +11264,7 @@ func (ec *executionContext) _BatchV1JobStatus_startTime(ctx context.Context, fie ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.StartTime, nil }) @@ -10959,7 +11293,7 @@ func (ec *executionContext) fieldContext_BatchV1JobStatus_startTime(_ context.Co return fc, nil } -func (ec *executionContext) _BatchV1JobStatus_completionTime(ctx context.Context, field graphql.CollectedField, obj *v13.JobStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1JobStatus_completionTime(ctx context.Context, field graphql.CollectedField, obj *v12.JobStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1JobStatus_completionTime(ctx, field) if err != nil { return graphql.Null @@ -10971,7 +11305,7 @@ func (ec *executionContext) _BatchV1JobStatus_completionTime(ctx context.Context ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.CompletionTime, nil }) @@ -11000,7 +11334,7 @@ func (ec *executionContext) fieldContext_BatchV1JobStatus_completionTime(_ conte return fc, nil } -func (ec *executionContext) _BatchV1JobStatus_active(ctx context.Context, field graphql.CollectedField, obj *v13.JobStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1JobStatus_active(ctx context.Context, field graphql.CollectedField, obj *v12.JobStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1JobStatus_active(ctx, field) if err != nil { return graphql.Null @@ -11012,7 +11346,7 @@ func (ec *executionContext) _BatchV1JobStatus_active(ctx context.Context, field ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Active, nil }) @@ -11044,7 +11378,7 @@ func (ec *executionContext) fieldContext_BatchV1JobStatus_active(_ context.Conte return fc, nil } -func (ec *executionContext) _BatchV1JobStatus_succeeded(ctx context.Context, field graphql.CollectedField, obj *v13.JobStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1JobStatus_succeeded(ctx context.Context, field graphql.CollectedField, obj *v12.JobStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1JobStatus_succeeded(ctx, field) if err != nil { return graphql.Null @@ -11056,7 +11390,7 @@ func (ec *executionContext) _BatchV1JobStatus_succeeded(ctx context.Context, fie ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Succeeded, nil }) @@ -11088,7 +11422,7 @@ func (ec *executionContext) fieldContext_BatchV1JobStatus_succeeded(_ context.Co return fc, nil } -func (ec *executionContext) _BatchV1JobStatus_failed(ctx context.Context, field graphql.CollectedField, obj *v13.JobStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1JobStatus_failed(ctx context.Context, field graphql.CollectedField, obj *v12.JobStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1JobStatus_failed(ctx, field) if err != nil { return graphql.Null @@ -11100,7 +11434,7 @@ func (ec *executionContext) _BatchV1JobStatus_failed(ctx context.Context, field ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Failed, nil }) @@ -11132,7 +11466,7 @@ func (ec *executionContext) fieldContext_BatchV1JobStatus_failed(_ context.Conte return fc, nil } -func (ec *executionContext) _BatchV1JobStatus_completedIndexes(ctx context.Context, field graphql.CollectedField, obj *v13.JobStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1JobStatus_completedIndexes(ctx context.Context, field graphql.CollectedField, obj *v12.JobStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1JobStatus_completedIndexes(ctx, field) if err != nil { return graphql.Null @@ -11144,7 +11478,7 @@ func (ec *executionContext) _BatchV1JobStatus_completedIndexes(ctx context.Conte ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.CompletedIndexes, nil }) @@ -11176,7 +11510,7 @@ func (ec *executionContext) fieldContext_BatchV1JobStatus_completedIndexes(_ con return fc, nil } -func (ec *executionContext) _BatchV1JobStatus_ready(ctx context.Context, field graphql.CollectedField, obj *v13.JobStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1JobStatus_ready(ctx context.Context, field graphql.CollectedField, obj *v12.JobStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1JobStatus_ready(ctx, field) if err != nil { return graphql.Null @@ -11188,7 +11522,7 @@ func (ec *executionContext) _BatchV1JobStatus_ready(ctx context.Context, field g ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Ready, nil }) @@ -11217,7 +11551,7 @@ func (ec *executionContext) fieldContext_BatchV1JobStatus_ready(_ context.Contex return fc, nil } -func (ec *executionContext) _BatchV1JobTemplateSpec_metadata(ctx context.Context, field graphql.CollectedField, obj *v13.JobTemplateSpec) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1JobTemplateSpec_metadata(ctx context.Context, field graphql.CollectedField, obj *v12.JobTemplateSpec) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1JobTemplateSpec_metadata(ctx, field) if err != nil { return graphql.Null @@ -11229,7 +11563,7 @@ func (ec *executionContext) _BatchV1JobTemplateSpec_metadata(ctx context.Context ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.ObjectMeta, nil }) @@ -11281,7 +11615,7 @@ func (ec *executionContext) fieldContext_BatchV1JobTemplateSpec_metadata(_ conte return fc, nil } -func (ec *executionContext) _BatchV1JobTemplateSpec_spec(ctx context.Context, field graphql.CollectedField, obj *v13.JobTemplateSpec) (ret graphql.Marshaler) { +func (ec *executionContext) _BatchV1JobTemplateSpec_spec(ctx context.Context, field graphql.CollectedField, obj *v12.JobTemplateSpec) (ret graphql.Marshaler) { fc, err := ec.fieldContext_BatchV1JobTemplateSpec_spec(ctx, field) if err != nil { return graphql.Null @@ -11293,7 +11627,7 @@ func (ec *executionContext) _BatchV1JobTemplateSpec_spec(ctx context.Context, fi ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Spec, nil }) @@ -11307,7 +11641,7 @@ func (ec *executionContext) _BatchV1JobTemplateSpec_spec(ctx context.Context, fi } return graphql.Null } - res := resTmp.(v13.JobSpec) + res := resTmp.(v12.JobSpec) fc.Result = res return ec.marshalNBatchV1JobSpec2k8sᚗioᚋapiᚋbatchᚋv1ᚐJobSpec(ctx, field.Selections, res) } @@ -11353,7 +11687,7 @@ func (ec *executionContext) _BatchV1JobsWatchEvent_type(ctx context.Context, fie ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Type, nil }) @@ -11397,7 +11731,7 @@ func (ec *executionContext) _BatchV1JobsWatchEvent_object(ctx context.Context, f ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return ec.resolvers.BatchV1JobsWatchEvent().Object(rctx, obj) }) @@ -11408,7 +11742,7 @@ func (ec *executionContext) _BatchV1JobsWatchEvent_object(ctx context.Context, f if resTmp == nil { return graphql.Null } - res := resTmp.(*v13.Job) + res := resTmp.(*v12.Job) fc.Result = res return ec.marshalOBatchV1Job2ᚖk8sᚗioᚋapiᚋbatchᚋv1ᚐJob(ctx, field.Selections, res) } @@ -11440,7 +11774,7 @@ func (ec *executionContext) fieldContext_BatchV1JobsWatchEvent_object(_ context. return fc, nil } -func (ec *executionContext) _CoreV1Container_name(ctx context.Context, field graphql.CollectedField, obj *v11.Container) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1Container_name(ctx context.Context, field graphql.CollectedField, obj *v13.Container) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1Container_name(ctx, field) if err != nil { return graphql.Null @@ -11452,7 +11786,7 @@ func (ec *executionContext) _CoreV1Container_name(ctx context.Context, field gra ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Name, nil }) @@ -11484,7 +11818,7 @@ func (ec *executionContext) fieldContext_CoreV1Container_name(_ context.Context, return fc, nil } -func (ec *executionContext) _CoreV1Container_image(ctx context.Context, field graphql.CollectedField, obj *v11.Container) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1Container_image(ctx context.Context, field graphql.CollectedField, obj *v13.Container) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1Container_image(ctx, field) if err != nil { return graphql.Null @@ -11496,7 +11830,7 @@ func (ec *executionContext) _CoreV1Container_image(ctx context.Context, field gr ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Image, nil }) @@ -11528,7 +11862,7 @@ func (ec *executionContext) fieldContext_CoreV1Container_image(_ context.Context return fc, nil } -func (ec *executionContext) _CoreV1ContainerState_waiting(ctx context.Context, field graphql.CollectedField, obj *v11.ContainerState) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1ContainerState_waiting(ctx context.Context, field graphql.CollectedField, obj *v13.ContainerState) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1ContainerState_waiting(ctx, field) if err != nil { return graphql.Null @@ -11540,7 +11874,7 @@ func (ec *executionContext) _CoreV1ContainerState_waiting(ctx context.Context, f ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Waiting, nil }) @@ -11551,7 +11885,7 @@ func (ec *executionContext) _CoreV1ContainerState_waiting(ctx context.Context, f if resTmp == nil { return graphql.Null } - res := resTmp.(*v11.ContainerStateWaiting) + res := resTmp.(*v13.ContainerStateWaiting) fc.Result = res return ec.marshalOCoreV1ContainerStateWaiting2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐContainerStateWaiting(ctx, field.Selections, res) } @@ -11575,7 +11909,7 @@ func (ec *executionContext) fieldContext_CoreV1ContainerState_waiting(_ context. return fc, nil } -func (ec *executionContext) _CoreV1ContainerState_running(ctx context.Context, field graphql.CollectedField, obj *v11.ContainerState) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1ContainerState_running(ctx context.Context, field graphql.CollectedField, obj *v13.ContainerState) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1ContainerState_running(ctx, field) if err != nil { return graphql.Null @@ -11587,7 +11921,7 @@ func (ec *executionContext) _CoreV1ContainerState_running(ctx context.Context, f ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Running, nil }) @@ -11598,7 +11932,7 @@ func (ec *executionContext) _CoreV1ContainerState_running(ctx context.Context, f if resTmp == nil { return graphql.Null } - res := resTmp.(*v11.ContainerStateRunning) + res := resTmp.(*v13.ContainerStateRunning) fc.Result = res return ec.marshalOCoreV1ContainerStateRunning2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐContainerStateRunning(ctx, field.Selections, res) } @@ -11620,7 +11954,7 @@ func (ec *executionContext) fieldContext_CoreV1ContainerState_running(_ context. return fc, nil } -func (ec *executionContext) _CoreV1ContainerState_terminated(ctx context.Context, field graphql.CollectedField, obj *v11.ContainerState) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1ContainerState_terminated(ctx context.Context, field graphql.CollectedField, obj *v13.ContainerState) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1ContainerState_terminated(ctx, field) if err != nil { return graphql.Null @@ -11632,7 +11966,7 @@ func (ec *executionContext) _CoreV1ContainerState_terminated(ctx context.Context ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Terminated, nil }) @@ -11643,7 +11977,7 @@ func (ec *executionContext) _CoreV1ContainerState_terminated(ctx context.Context if resTmp == nil { return graphql.Null } - res := resTmp.(*v11.ContainerStateTerminated) + res := resTmp.(*v13.ContainerStateTerminated) fc.Result = res return ec.marshalOCoreV1ContainerStateTerminated2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐContainerStateTerminated(ctx, field.Selections, res) } @@ -11673,7 +12007,7 @@ func (ec *executionContext) fieldContext_CoreV1ContainerState_terminated(_ conte return fc, nil } -func (ec *executionContext) _CoreV1ContainerStateRunning_startedAt(ctx context.Context, field graphql.CollectedField, obj *v11.ContainerStateRunning) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1ContainerStateRunning_startedAt(ctx context.Context, field graphql.CollectedField, obj *v13.ContainerStateRunning) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1ContainerStateRunning_startedAt(ctx, field) if err != nil { return graphql.Null @@ -11685,7 +12019,7 @@ func (ec *executionContext) _CoreV1ContainerStateRunning_startedAt(ctx context.C ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.StartedAt, nil }) @@ -11717,7 +12051,7 @@ func (ec *executionContext) fieldContext_CoreV1ContainerStateRunning_startedAt(_ return fc, nil } -func (ec *executionContext) _CoreV1ContainerStateTerminated_exitCode(ctx context.Context, field graphql.CollectedField, obj *v11.ContainerStateTerminated) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1ContainerStateTerminated_exitCode(ctx context.Context, field graphql.CollectedField, obj *v13.ContainerStateTerminated) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1ContainerStateTerminated_exitCode(ctx, field) if err != nil { return graphql.Null @@ -11729,7 +12063,7 @@ func (ec *executionContext) _CoreV1ContainerStateTerminated_exitCode(ctx context ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.ExitCode, nil }) @@ -11761,7 +12095,7 @@ func (ec *executionContext) fieldContext_CoreV1ContainerStateTerminated_exitCode return fc, nil } -func (ec *executionContext) _CoreV1ContainerStateTerminated_signal(ctx context.Context, field graphql.CollectedField, obj *v11.ContainerStateTerminated) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1ContainerStateTerminated_signal(ctx context.Context, field graphql.CollectedField, obj *v13.ContainerStateTerminated) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1ContainerStateTerminated_signal(ctx, field) if err != nil { return graphql.Null @@ -11773,7 +12107,7 @@ func (ec *executionContext) _CoreV1ContainerStateTerminated_signal(ctx context.C ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Signal, nil }) @@ -11805,7 +12139,7 @@ func (ec *executionContext) fieldContext_CoreV1ContainerStateTerminated_signal(_ return fc, nil } -func (ec *executionContext) _CoreV1ContainerStateTerminated_reason(ctx context.Context, field graphql.CollectedField, obj *v11.ContainerStateTerminated) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1ContainerStateTerminated_reason(ctx context.Context, field graphql.CollectedField, obj *v13.ContainerStateTerminated) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1ContainerStateTerminated_reason(ctx, field) if err != nil { return graphql.Null @@ -11817,7 +12151,7 @@ func (ec *executionContext) _CoreV1ContainerStateTerminated_reason(ctx context.C ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Reason, nil }) @@ -11849,7 +12183,7 @@ func (ec *executionContext) fieldContext_CoreV1ContainerStateTerminated_reason(_ return fc, nil } -func (ec *executionContext) _CoreV1ContainerStateTerminated_message(ctx context.Context, field graphql.CollectedField, obj *v11.ContainerStateTerminated) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1ContainerStateTerminated_message(ctx context.Context, field graphql.CollectedField, obj *v13.ContainerStateTerminated) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1ContainerStateTerminated_message(ctx, field) if err != nil { return graphql.Null @@ -11861,7 +12195,7 @@ func (ec *executionContext) _CoreV1ContainerStateTerminated_message(ctx context. ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Message, nil }) @@ -11893,7 +12227,7 @@ func (ec *executionContext) fieldContext_CoreV1ContainerStateTerminated_message( return fc, nil } -func (ec *executionContext) _CoreV1ContainerStateTerminated_containerID(ctx context.Context, field graphql.CollectedField, obj *v11.ContainerStateTerminated) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1ContainerStateTerminated_containerID(ctx context.Context, field graphql.CollectedField, obj *v13.ContainerStateTerminated) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1ContainerStateTerminated_containerID(ctx, field) if err != nil { return graphql.Null @@ -11905,7 +12239,7 @@ func (ec *executionContext) _CoreV1ContainerStateTerminated_containerID(ctx cont ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.ContainerID, nil }) @@ -11937,7 +12271,7 @@ func (ec *executionContext) fieldContext_CoreV1ContainerStateTerminated_containe return fc, nil } -func (ec *executionContext) _CoreV1ContainerStateWaiting_reason(ctx context.Context, field graphql.CollectedField, obj *v11.ContainerStateWaiting) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1ContainerStateWaiting_reason(ctx context.Context, field graphql.CollectedField, obj *v13.ContainerStateWaiting) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1ContainerStateWaiting_reason(ctx, field) if err != nil { return graphql.Null @@ -11949,7 +12283,7 @@ func (ec *executionContext) _CoreV1ContainerStateWaiting_reason(ctx context.Cont ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Reason, nil }) @@ -11981,7 +12315,7 @@ func (ec *executionContext) fieldContext_CoreV1ContainerStateWaiting_reason(_ co return fc, nil } -func (ec *executionContext) _CoreV1ContainerStateWaiting_message(ctx context.Context, field graphql.CollectedField, obj *v11.ContainerStateWaiting) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1ContainerStateWaiting_message(ctx context.Context, field graphql.CollectedField, obj *v13.ContainerStateWaiting) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1ContainerStateWaiting_message(ctx, field) if err != nil { return graphql.Null @@ -11993,7 +12327,7 @@ func (ec *executionContext) _CoreV1ContainerStateWaiting_message(ctx context.Con ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Message, nil }) @@ -12025,7 +12359,7 @@ func (ec *executionContext) fieldContext_CoreV1ContainerStateWaiting_message(_ c return fc, nil } -func (ec *executionContext) _CoreV1ContainerStatus_name(ctx context.Context, field graphql.CollectedField, obj *v11.ContainerStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1ContainerStatus_name(ctx context.Context, field graphql.CollectedField, obj *v13.ContainerStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1ContainerStatus_name(ctx, field) if err != nil { return graphql.Null @@ -12037,7 +12371,7 @@ func (ec *executionContext) _CoreV1ContainerStatus_name(ctx context.Context, fie ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Name, nil }) @@ -12069,7 +12403,7 @@ func (ec *executionContext) fieldContext_CoreV1ContainerStatus_name(_ context.Co return fc, nil } -func (ec *executionContext) _CoreV1ContainerStatus_state(ctx context.Context, field graphql.CollectedField, obj *v11.ContainerStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1ContainerStatus_state(ctx context.Context, field graphql.CollectedField, obj *v13.ContainerStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1ContainerStatus_state(ctx, field) if err != nil { return graphql.Null @@ -12081,7 +12415,7 @@ func (ec *executionContext) _CoreV1ContainerStatus_state(ctx context.Context, fi ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.State, nil }) @@ -12095,7 +12429,7 @@ func (ec *executionContext) _CoreV1ContainerStatus_state(ctx context.Context, fi } return graphql.Null } - res := resTmp.(v11.ContainerState) + res := resTmp.(v13.ContainerState) fc.Result = res return ec.marshalNCoreV1ContainerState2k8sᚗioᚋapiᚋcoreᚋv1ᚐContainerState(ctx, field.Selections, res) } @@ -12121,7 +12455,7 @@ func (ec *executionContext) fieldContext_CoreV1ContainerStatus_state(_ context.C return fc, nil } -func (ec *executionContext) _CoreV1ContainerStatus_lastTerminationState(ctx context.Context, field graphql.CollectedField, obj *v11.ContainerStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1ContainerStatus_lastTerminationState(ctx context.Context, field graphql.CollectedField, obj *v13.ContainerStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1ContainerStatus_lastTerminationState(ctx, field) if err != nil { return graphql.Null @@ -12133,7 +12467,7 @@ func (ec *executionContext) _CoreV1ContainerStatus_lastTerminationState(ctx cont ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.LastTerminationState, nil }) @@ -12147,7 +12481,7 @@ func (ec *executionContext) _CoreV1ContainerStatus_lastTerminationState(ctx cont } return graphql.Null } - res := resTmp.(v11.ContainerState) + res := resTmp.(v13.ContainerState) fc.Result = res return ec.marshalNCoreV1ContainerState2k8sᚗioᚋapiᚋcoreᚋv1ᚐContainerState(ctx, field.Selections, res) } @@ -12173,7 +12507,7 @@ func (ec *executionContext) fieldContext_CoreV1ContainerStatus_lastTerminationSt return fc, nil } -func (ec *executionContext) _CoreV1ContainerStatus_ready(ctx context.Context, field graphql.CollectedField, obj *v11.ContainerStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1ContainerStatus_ready(ctx context.Context, field graphql.CollectedField, obj *v13.ContainerStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1ContainerStatus_ready(ctx, field) if err != nil { return graphql.Null @@ -12185,7 +12519,7 @@ func (ec *executionContext) _CoreV1ContainerStatus_ready(ctx context.Context, fi ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Ready, nil }) @@ -12217,7 +12551,7 @@ func (ec *executionContext) fieldContext_CoreV1ContainerStatus_ready(_ context.C return fc, nil } -func (ec *executionContext) _CoreV1ContainerStatus_restartCount(ctx context.Context, field graphql.CollectedField, obj *v11.ContainerStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1ContainerStatus_restartCount(ctx context.Context, field graphql.CollectedField, obj *v13.ContainerStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1ContainerStatus_restartCount(ctx, field) if err != nil { return graphql.Null @@ -12229,7 +12563,7 @@ func (ec *executionContext) _CoreV1ContainerStatus_restartCount(ctx context.Cont ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.RestartCount, nil }) @@ -12261,7 +12595,7 @@ func (ec *executionContext) fieldContext_CoreV1ContainerStatus_restartCount(_ co return fc, nil } -func (ec *executionContext) _CoreV1ContainerStatus_image(ctx context.Context, field graphql.CollectedField, obj *v11.ContainerStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1ContainerStatus_image(ctx context.Context, field graphql.CollectedField, obj *v13.ContainerStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1ContainerStatus_image(ctx, field) if err != nil { return graphql.Null @@ -12273,7 +12607,7 @@ func (ec *executionContext) _CoreV1ContainerStatus_image(ctx context.Context, fi ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Image, nil }) @@ -12305,7 +12639,7 @@ func (ec *executionContext) fieldContext_CoreV1ContainerStatus_image(_ context.C return fc, nil } -func (ec *executionContext) _CoreV1ContainerStatus_imageID(ctx context.Context, field graphql.CollectedField, obj *v11.ContainerStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1ContainerStatus_imageID(ctx context.Context, field graphql.CollectedField, obj *v13.ContainerStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1ContainerStatus_imageID(ctx, field) if err != nil { return graphql.Null @@ -12317,7 +12651,7 @@ func (ec *executionContext) _CoreV1ContainerStatus_imageID(ctx context.Context, ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.ImageID, nil }) @@ -12349,7 +12683,7 @@ func (ec *executionContext) fieldContext_CoreV1ContainerStatus_imageID(_ context return fc, nil } -func (ec *executionContext) _CoreV1ContainerStatus_containerID(ctx context.Context, field graphql.CollectedField, obj *v11.ContainerStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1ContainerStatus_containerID(ctx context.Context, field graphql.CollectedField, obj *v13.ContainerStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1ContainerStatus_containerID(ctx, field) if err != nil { return graphql.Null @@ -12361,7 +12695,7 @@ func (ec *executionContext) _CoreV1ContainerStatus_containerID(ctx context.Conte ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.ContainerID, nil }) @@ -12393,7 +12727,7 @@ func (ec *executionContext) fieldContext_CoreV1ContainerStatus_containerID(_ con return fc, nil } -func (ec *executionContext) _CoreV1ContainerStatus_started(ctx context.Context, field graphql.CollectedField, obj *v11.ContainerStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1ContainerStatus_started(ctx context.Context, field graphql.CollectedField, obj *v13.ContainerStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1ContainerStatus_started(ctx, field) if err != nil { return graphql.Null @@ -12405,7 +12739,7 @@ func (ec *executionContext) _CoreV1ContainerStatus_started(ctx context.Context, ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Started, nil }) @@ -12434,7 +12768,7 @@ func (ec *executionContext) fieldContext_CoreV1ContainerStatus_started(_ context return fc, nil } -func (ec *executionContext) _CoreV1Namespace_id(ctx context.Context, field graphql.CollectedField, obj *v11.Namespace) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1Namespace_id(ctx context.Context, field graphql.CollectedField, obj *v13.Namespace) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1Namespace_id(ctx, field) if err != nil { return graphql.Null @@ -12446,7 +12780,7 @@ func (ec *executionContext) _CoreV1Namespace_id(ctx context.Context, field graph ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.UID, nil }) @@ -12478,7 +12812,7 @@ func (ec *executionContext) fieldContext_CoreV1Namespace_id(_ context.Context, f return fc, nil } -func (ec *executionContext) _CoreV1Namespace_kind(ctx context.Context, field graphql.CollectedField, obj *v11.Namespace) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1Namespace_kind(ctx context.Context, field graphql.CollectedField, obj *v13.Namespace) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1Namespace_kind(ctx, field) if err != nil { return graphql.Null @@ -12490,7 +12824,7 @@ func (ec *executionContext) _CoreV1Namespace_kind(ctx context.Context, field gra ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Kind, nil }) @@ -12522,7 +12856,7 @@ func (ec *executionContext) fieldContext_CoreV1Namespace_kind(_ context.Context, return fc, nil } -func (ec *executionContext) _CoreV1Namespace_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v11.Namespace) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1Namespace_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v13.Namespace) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1Namespace_apiVersion(ctx, field) if err != nil { return graphql.Null @@ -12534,7 +12868,7 @@ func (ec *executionContext) _CoreV1Namespace_apiVersion(ctx context.Context, fie ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.APIVersion, nil }) @@ -12566,7 +12900,7 @@ func (ec *executionContext) fieldContext_CoreV1Namespace_apiVersion(_ context.Co return fc, nil } -func (ec *executionContext) _CoreV1Namespace_metadata(ctx context.Context, field graphql.CollectedField, obj *v11.Namespace) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1Namespace_metadata(ctx context.Context, field graphql.CollectedField, obj *v13.Namespace) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1Namespace_metadata(ctx, field) if err != nil { return graphql.Null @@ -12578,7 +12912,7 @@ func (ec *executionContext) _CoreV1Namespace_metadata(ctx context.Context, field ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.ObjectMeta, nil }) @@ -12630,7 +12964,7 @@ func (ec *executionContext) fieldContext_CoreV1Namespace_metadata(_ context.Cont return fc, nil } -func (ec *executionContext) _CoreV1NamespaceList_kind(ctx context.Context, field graphql.CollectedField, obj *v11.NamespaceList) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1NamespaceList_kind(ctx context.Context, field graphql.CollectedField, obj *v13.NamespaceList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1NamespaceList_kind(ctx, field) if err != nil { return graphql.Null @@ -12642,7 +12976,7 @@ func (ec *executionContext) _CoreV1NamespaceList_kind(ctx context.Context, field ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Kind, nil }) @@ -12674,7 +13008,7 @@ func (ec *executionContext) fieldContext_CoreV1NamespaceList_kind(_ context.Cont return fc, nil } -func (ec *executionContext) _CoreV1NamespaceList_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v11.NamespaceList) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1NamespaceList_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v13.NamespaceList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1NamespaceList_apiVersion(ctx, field) if err != nil { return graphql.Null @@ -12686,7 +13020,7 @@ func (ec *executionContext) _CoreV1NamespaceList_apiVersion(ctx context.Context, ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.APIVersion, nil }) @@ -12718,7 +13052,7 @@ func (ec *executionContext) fieldContext_CoreV1NamespaceList_apiVersion(_ contex return fc, nil } -func (ec *executionContext) _CoreV1NamespaceList_metadata(ctx context.Context, field graphql.CollectedField, obj *v11.NamespaceList) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1NamespaceList_metadata(ctx context.Context, field graphql.CollectedField, obj *v13.NamespaceList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1NamespaceList_metadata(ctx, field) if err != nil { return graphql.Null @@ -12730,7 +13064,7 @@ func (ec *executionContext) _CoreV1NamespaceList_metadata(ctx context.Context, f ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.ListMeta, nil }) @@ -12770,7 +13104,7 @@ func (ec *executionContext) fieldContext_CoreV1NamespaceList_metadata(_ context. return fc, nil } -func (ec *executionContext) _CoreV1NamespaceList_items(ctx context.Context, field graphql.CollectedField, obj *v11.NamespaceList) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1NamespaceList_items(ctx context.Context, field graphql.CollectedField, obj *v13.NamespaceList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1NamespaceList_items(ctx, field) if err != nil { return graphql.Null @@ -12782,7 +13116,7 @@ func (ec *executionContext) _CoreV1NamespaceList_items(ctx context.Context, fiel ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Items, nil }) @@ -12796,7 +13130,7 @@ func (ec *executionContext) _CoreV1NamespaceList_items(ctx context.Context, fiel } return graphql.Null } - res := resTmp.([]v11.Namespace) + res := resTmp.([]v13.Namespace) fc.Result = res return ec.marshalNCoreV1Namespace2ᚕk8sᚗioᚋapiᚋcoreᚋv1ᚐNamespaceᚄ(ctx, field.Selections, res) } @@ -12836,7 +13170,7 @@ func (ec *executionContext) _CoreV1NamespacesWatchEvent_type(ctx context.Context ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Type, nil }) @@ -12880,7 +13214,7 @@ func (ec *executionContext) _CoreV1NamespacesWatchEvent_object(ctx context.Conte ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return ec.resolvers.CoreV1NamespacesWatchEvent().Object(rctx, obj) }) @@ -12891,7 +13225,7 @@ func (ec *executionContext) _CoreV1NamespacesWatchEvent_object(ctx context.Conte if resTmp == nil { return graphql.Null } - res := resTmp.(*v11.Namespace) + res := resTmp.(*v13.Namespace) fc.Result = res return ec.marshalOCoreV1Namespace2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐNamespace(ctx, field.Selections, res) } @@ -12919,7 +13253,7 @@ func (ec *executionContext) fieldContext_CoreV1NamespacesWatchEvent_object(_ con return fc, nil } -func (ec *executionContext) _CoreV1Node_id(ctx context.Context, field graphql.CollectedField, obj *v11.Node) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1Node_id(ctx context.Context, field graphql.CollectedField, obj *v13.Node) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1Node_id(ctx, field) if err != nil { return graphql.Null @@ -12931,7 +13265,7 @@ func (ec *executionContext) _CoreV1Node_id(ctx context.Context, field graphql.Co ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.UID, nil }) @@ -12963,7 +13297,7 @@ func (ec *executionContext) fieldContext_CoreV1Node_id(_ context.Context, field return fc, nil } -func (ec *executionContext) _CoreV1Node_kind(ctx context.Context, field graphql.CollectedField, obj *v11.Node) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1Node_kind(ctx context.Context, field graphql.CollectedField, obj *v13.Node) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1Node_kind(ctx, field) if err != nil { return graphql.Null @@ -12975,7 +13309,7 @@ func (ec *executionContext) _CoreV1Node_kind(ctx context.Context, field graphql. ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Kind, nil }) @@ -13007,7 +13341,7 @@ func (ec *executionContext) fieldContext_CoreV1Node_kind(_ context.Context, fiel return fc, nil } -func (ec *executionContext) _CoreV1Node_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v11.Node) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1Node_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v13.Node) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1Node_apiVersion(ctx, field) if err != nil { return graphql.Null @@ -13019,7 +13353,7 @@ func (ec *executionContext) _CoreV1Node_apiVersion(ctx context.Context, field gr ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.APIVersion, nil }) @@ -13051,7 +13385,7 @@ func (ec *executionContext) fieldContext_CoreV1Node_apiVersion(_ context.Context return fc, nil } -func (ec *executionContext) _CoreV1Node_metadata(ctx context.Context, field graphql.CollectedField, obj *v11.Node) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1Node_metadata(ctx context.Context, field graphql.CollectedField, obj *v13.Node) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1Node_metadata(ctx, field) if err != nil { return graphql.Null @@ -13063,7 +13397,7 @@ func (ec *executionContext) _CoreV1Node_metadata(ctx context.Context, field grap ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.ObjectMeta, nil }) @@ -13115,7 +13449,7 @@ func (ec *executionContext) fieldContext_CoreV1Node_metadata(_ context.Context, return fc, nil } -func (ec *executionContext) _CoreV1NodeList_kind(ctx context.Context, field graphql.CollectedField, obj *v11.NodeList) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1NodeList_kind(ctx context.Context, field graphql.CollectedField, obj *v13.NodeList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1NodeList_kind(ctx, field) if err != nil { return graphql.Null @@ -13127,7 +13461,7 @@ func (ec *executionContext) _CoreV1NodeList_kind(ctx context.Context, field grap ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Kind, nil }) @@ -13159,7 +13493,7 @@ func (ec *executionContext) fieldContext_CoreV1NodeList_kind(_ context.Context, return fc, nil } -func (ec *executionContext) _CoreV1NodeList_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v11.NodeList) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1NodeList_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v13.NodeList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1NodeList_apiVersion(ctx, field) if err != nil { return graphql.Null @@ -13171,7 +13505,7 @@ func (ec *executionContext) _CoreV1NodeList_apiVersion(ctx context.Context, fiel ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.APIVersion, nil }) @@ -13203,7 +13537,7 @@ func (ec *executionContext) fieldContext_CoreV1NodeList_apiVersion(_ context.Con return fc, nil } -func (ec *executionContext) _CoreV1NodeList_metadata(ctx context.Context, field graphql.CollectedField, obj *v11.NodeList) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1NodeList_metadata(ctx context.Context, field graphql.CollectedField, obj *v13.NodeList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1NodeList_metadata(ctx, field) if err != nil { return graphql.Null @@ -13215,7 +13549,7 @@ func (ec *executionContext) _CoreV1NodeList_metadata(ctx context.Context, field ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.ListMeta, nil }) @@ -13255,7 +13589,7 @@ func (ec *executionContext) fieldContext_CoreV1NodeList_metadata(_ context.Conte return fc, nil } -func (ec *executionContext) _CoreV1NodeList_items(ctx context.Context, field graphql.CollectedField, obj *v11.NodeList) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1NodeList_items(ctx context.Context, field graphql.CollectedField, obj *v13.NodeList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1NodeList_items(ctx, field) if err != nil { return graphql.Null @@ -13267,7 +13601,7 @@ func (ec *executionContext) _CoreV1NodeList_items(ctx context.Context, field gra ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Items, nil }) @@ -13281,7 +13615,7 @@ func (ec *executionContext) _CoreV1NodeList_items(ctx context.Context, field gra } return graphql.Null } - res := resTmp.([]v11.Node) + res := resTmp.([]v13.Node) fc.Result = res return ec.marshalNCoreV1Node2ᚕk8sᚗioᚋapiᚋcoreᚋv1ᚐNodeᚄ(ctx, field.Selections, res) } @@ -13321,7 +13655,7 @@ func (ec *executionContext) _CoreV1NodesWatchEvent_type(ctx context.Context, fie ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Type, nil }) @@ -13365,7 +13699,7 @@ func (ec *executionContext) _CoreV1NodesWatchEvent_object(ctx context.Context, f ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return ec.resolvers.CoreV1NodesWatchEvent().Object(rctx, obj) }) @@ -13376,7 +13710,7 @@ func (ec *executionContext) _CoreV1NodesWatchEvent_object(ctx context.Context, f if resTmp == nil { return graphql.Null } - res := resTmp.(*v11.Node) + res := resTmp.(*v13.Node) fc.Result = res return ec.marshalOCoreV1Node2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐNode(ctx, field.Selections, res) } @@ -13404,7 +13738,7 @@ func (ec *executionContext) fieldContext_CoreV1NodesWatchEvent_object(_ context. return fc, nil } -func (ec *executionContext) _CoreV1ObjectReference_kind(ctx context.Context, field graphql.CollectedField, obj *v11.ObjectReference) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1ObjectReference_kind(ctx context.Context, field graphql.CollectedField, obj *v13.ObjectReference) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1ObjectReference_kind(ctx, field) if err != nil { return graphql.Null @@ -13416,7 +13750,7 @@ func (ec *executionContext) _CoreV1ObjectReference_kind(ctx context.Context, fie ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Kind, nil }) @@ -13448,7 +13782,7 @@ func (ec *executionContext) fieldContext_CoreV1ObjectReference_kind(_ context.Co return fc, nil } -func (ec *executionContext) _CoreV1ObjectReference_namespace(ctx context.Context, field graphql.CollectedField, obj *v11.ObjectReference) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1ObjectReference_namespace(ctx context.Context, field graphql.CollectedField, obj *v13.ObjectReference) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1ObjectReference_namespace(ctx, field) if err != nil { return graphql.Null @@ -13460,7 +13794,7 @@ func (ec *executionContext) _CoreV1ObjectReference_namespace(ctx context.Context ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Namespace, nil }) @@ -13492,7 +13826,7 @@ func (ec *executionContext) fieldContext_CoreV1ObjectReference_namespace(_ conte return fc, nil } -func (ec *executionContext) _CoreV1ObjectReference_name(ctx context.Context, field graphql.CollectedField, obj *v11.ObjectReference) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1ObjectReference_name(ctx context.Context, field graphql.CollectedField, obj *v13.ObjectReference) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1ObjectReference_name(ctx, field) if err != nil { return graphql.Null @@ -13504,7 +13838,7 @@ func (ec *executionContext) _CoreV1ObjectReference_name(ctx context.Context, fie ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Name, nil }) @@ -13536,7 +13870,7 @@ func (ec *executionContext) fieldContext_CoreV1ObjectReference_name(_ context.Co return fc, nil } -func (ec *executionContext) _CoreV1ObjectReference_uid(ctx context.Context, field graphql.CollectedField, obj *v11.ObjectReference) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1ObjectReference_uid(ctx context.Context, field graphql.CollectedField, obj *v13.ObjectReference) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1ObjectReference_uid(ctx, field) if err != nil { return graphql.Null @@ -13548,7 +13882,7 @@ func (ec *executionContext) _CoreV1ObjectReference_uid(ctx context.Context, fiel ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.UID, nil }) @@ -13580,7 +13914,7 @@ func (ec *executionContext) fieldContext_CoreV1ObjectReference_uid(_ context.Con return fc, nil } -func (ec *executionContext) _CoreV1ObjectReference_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v11.ObjectReference) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1ObjectReference_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v13.ObjectReference) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1ObjectReference_apiVersion(ctx, field) if err != nil { return graphql.Null @@ -13592,7 +13926,7 @@ func (ec *executionContext) _CoreV1ObjectReference_apiVersion(ctx context.Contex ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.APIVersion, nil }) @@ -13624,7 +13958,7 @@ func (ec *executionContext) fieldContext_CoreV1ObjectReference_apiVersion(_ cont return fc, nil } -func (ec *executionContext) _CoreV1ObjectReference_resourceVersion(ctx context.Context, field graphql.CollectedField, obj *v11.ObjectReference) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1ObjectReference_resourceVersion(ctx context.Context, field graphql.CollectedField, obj *v13.ObjectReference) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1ObjectReference_resourceVersion(ctx, field) if err != nil { return graphql.Null @@ -13636,7 +13970,7 @@ func (ec *executionContext) _CoreV1ObjectReference_resourceVersion(ctx context.C ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.ResourceVersion, nil }) @@ -13668,7 +14002,7 @@ func (ec *executionContext) fieldContext_CoreV1ObjectReference_resourceVersion(_ return fc, nil } -func (ec *executionContext) _CoreV1ObjectReference_fieldPath(ctx context.Context, field graphql.CollectedField, obj *v11.ObjectReference) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1ObjectReference_fieldPath(ctx context.Context, field graphql.CollectedField, obj *v13.ObjectReference) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1ObjectReference_fieldPath(ctx, field) if err != nil { return graphql.Null @@ -13680,7 +14014,7 @@ func (ec *executionContext) _CoreV1ObjectReference_fieldPath(ctx context.Context ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.FieldPath, nil }) @@ -13712,7 +14046,7 @@ func (ec *executionContext) fieldContext_CoreV1ObjectReference_fieldPath(_ conte return fc, nil } -func (ec *executionContext) _CoreV1Pod_id(ctx context.Context, field graphql.CollectedField, obj *v11.Pod) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1Pod_id(ctx context.Context, field graphql.CollectedField, obj *v13.Pod) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1Pod_id(ctx, field) if err != nil { return graphql.Null @@ -13724,7 +14058,7 @@ func (ec *executionContext) _CoreV1Pod_id(ctx context.Context, field graphql.Col ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.UID, nil }) @@ -13756,7 +14090,7 @@ func (ec *executionContext) fieldContext_CoreV1Pod_id(_ context.Context, field g return fc, nil } -func (ec *executionContext) _CoreV1Pod_kind(ctx context.Context, field graphql.CollectedField, obj *v11.Pod) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1Pod_kind(ctx context.Context, field graphql.CollectedField, obj *v13.Pod) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1Pod_kind(ctx, field) if err != nil { return graphql.Null @@ -13768,7 +14102,7 @@ func (ec *executionContext) _CoreV1Pod_kind(ctx context.Context, field graphql.C ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Kind, nil }) @@ -13800,7 +14134,7 @@ func (ec *executionContext) fieldContext_CoreV1Pod_kind(_ context.Context, field return fc, nil } -func (ec *executionContext) _CoreV1Pod_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v11.Pod) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1Pod_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v13.Pod) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1Pod_apiVersion(ctx, field) if err != nil { return graphql.Null @@ -13812,7 +14146,7 @@ func (ec *executionContext) _CoreV1Pod_apiVersion(ctx context.Context, field gra ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.APIVersion, nil }) @@ -13844,7 +14178,7 @@ func (ec *executionContext) fieldContext_CoreV1Pod_apiVersion(_ context.Context, return fc, nil } -func (ec *executionContext) _CoreV1Pod_metadata(ctx context.Context, field graphql.CollectedField, obj *v11.Pod) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1Pod_metadata(ctx context.Context, field graphql.CollectedField, obj *v13.Pod) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1Pod_metadata(ctx, field) if err != nil { return graphql.Null @@ -13856,7 +14190,7 @@ func (ec *executionContext) _CoreV1Pod_metadata(ctx context.Context, field graph ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.ObjectMeta, nil }) @@ -13908,7 +14242,7 @@ func (ec *executionContext) fieldContext_CoreV1Pod_metadata(_ context.Context, f return fc, nil } -func (ec *executionContext) _CoreV1Pod_spec(ctx context.Context, field graphql.CollectedField, obj *v11.Pod) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1Pod_spec(ctx context.Context, field graphql.CollectedField, obj *v13.Pod) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1Pod_spec(ctx, field) if err != nil { return graphql.Null @@ -13920,7 +14254,7 @@ func (ec *executionContext) _CoreV1Pod_spec(ctx context.Context, field graphql.C ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Spec, nil }) @@ -13934,7 +14268,7 @@ func (ec *executionContext) _CoreV1Pod_spec(ctx context.Context, field graphql.C } return graphql.Null } - res := resTmp.(v11.PodSpec) + res := resTmp.(v13.PodSpec) fc.Result = res return ec.marshalNCoreV1PodSpec2k8sᚗioᚋapiᚋcoreᚋv1ᚐPodSpec(ctx, field.Selections, res) } @@ -13962,7 +14296,7 @@ func (ec *executionContext) fieldContext_CoreV1Pod_spec(_ context.Context, field return fc, nil } -func (ec *executionContext) _CoreV1Pod_status(ctx context.Context, field graphql.CollectedField, obj *v11.Pod) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1Pod_status(ctx context.Context, field graphql.CollectedField, obj *v13.Pod) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1Pod_status(ctx, field) if err != nil { return graphql.Null @@ -13974,7 +14308,7 @@ func (ec *executionContext) _CoreV1Pod_status(ctx context.Context, field graphql ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Status, nil }) @@ -13988,7 +14322,7 @@ func (ec *executionContext) _CoreV1Pod_status(ctx context.Context, field graphql } return graphql.Null } - res := resTmp.(v11.PodStatus) + res := resTmp.(v13.PodStatus) fc.Result = res return ec.marshalNCoreV1PodStatus2k8sᚗioᚋapiᚋcoreᚋv1ᚐPodStatus(ctx, field.Selections, res) } @@ -14016,7 +14350,7 @@ func (ec *executionContext) fieldContext_CoreV1Pod_status(_ context.Context, fie return fc, nil } -func (ec *executionContext) _CoreV1PodList_kind(ctx context.Context, field graphql.CollectedField, obj *v11.PodList) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1PodList_kind(ctx context.Context, field graphql.CollectedField, obj *v13.PodList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1PodList_kind(ctx, field) if err != nil { return graphql.Null @@ -14028,7 +14362,7 @@ func (ec *executionContext) _CoreV1PodList_kind(ctx context.Context, field graph ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Kind, nil }) @@ -14060,7 +14394,7 @@ func (ec *executionContext) fieldContext_CoreV1PodList_kind(_ context.Context, f return fc, nil } -func (ec *executionContext) _CoreV1PodList_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v11.PodList) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1PodList_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v13.PodList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1PodList_apiVersion(ctx, field) if err != nil { return graphql.Null @@ -14072,7 +14406,7 @@ func (ec *executionContext) _CoreV1PodList_apiVersion(ctx context.Context, field ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.APIVersion, nil }) @@ -14104,7 +14438,7 @@ func (ec *executionContext) fieldContext_CoreV1PodList_apiVersion(_ context.Cont return fc, nil } -func (ec *executionContext) _CoreV1PodList_metadata(ctx context.Context, field graphql.CollectedField, obj *v11.PodList) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1PodList_metadata(ctx context.Context, field graphql.CollectedField, obj *v13.PodList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1PodList_metadata(ctx, field) if err != nil { return graphql.Null @@ -14116,7 +14450,7 @@ func (ec *executionContext) _CoreV1PodList_metadata(ctx context.Context, field g ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.ListMeta, nil }) @@ -14156,7 +14490,7 @@ func (ec *executionContext) fieldContext_CoreV1PodList_metadata(_ context.Contex return fc, nil } -func (ec *executionContext) _CoreV1PodList_items(ctx context.Context, field graphql.CollectedField, obj *v11.PodList) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1PodList_items(ctx context.Context, field graphql.CollectedField, obj *v13.PodList) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1PodList_items(ctx, field) if err != nil { return graphql.Null @@ -14168,7 +14502,7 @@ func (ec *executionContext) _CoreV1PodList_items(ctx context.Context, field grap ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Items, nil }) @@ -14182,7 +14516,7 @@ func (ec *executionContext) _CoreV1PodList_items(ctx context.Context, field grap } return graphql.Null } - res := resTmp.([]v11.Pod) + res := resTmp.([]v13.Pod) fc.Result = res return ec.marshalNCoreV1Pod2ᚕk8sᚗioᚋapiᚋcoreᚋv1ᚐPodᚄ(ctx, field.Selections, res) } @@ -14214,7 +14548,7 @@ func (ec *executionContext) fieldContext_CoreV1PodList_items(_ context.Context, return fc, nil } -func (ec *executionContext) _CoreV1PodSpec_containers(ctx context.Context, field graphql.CollectedField, obj *v11.PodSpec) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1PodSpec_containers(ctx context.Context, field graphql.CollectedField, obj *v13.PodSpec) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1PodSpec_containers(ctx, field) if err != nil { return graphql.Null @@ -14226,7 +14560,7 @@ func (ec *executionContext) _CoreV1PodSpec_containers(ctx context.Context, field ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Containers, nil }) @@ -14240,7 +14574,7 @@ func (ec *executionContext) _CoreV1PodSpec_containers(ctx context.Context, field } return graphql.Null } - res := resTmp.([]v11.Container) + res := resTmp.([]v13.Container) fc.Result = res return ec.marshalNCoreV1Container2ᚕk8sᚗioᚋapiᚋcoreᚋv1ᚐContainerᚄ(ctx, field.Selections, res) } @@ -14264,7 +14598,7 @@ func (ec *executionContext) fieldContext_CoreV1PodSpec_containers(_ context.Cont return fc, nil } -func (ec *executionContext) _CoreV1PodSpec_nodeName(ctx context.Context, field graphql.CollectedField, obj *v11.PodSpec) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1PodSpec_nodeName(ctx context.Context, field graphql.CollectedField, obj *v13.PodSpec) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1PodSpec_nodeName(ctx, field) if err != nil { return graphql.Null @@ -14276,7 +14610,7 @@ func (ec *executionContext) _CoreV1PodSpec_nodeName(ctx context.Context, field g ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.NodeName, nil }) @@ -14308,7 +14642,7 @@ func (ec *executionContext) fieldContext_CoreV1PodSpec_nodeName(_ context.Contex return fc, nil } -func (ec *executionContext) _CoreV1PodSpec_hostname(ctx context.Context, field graphql.CollectedField, obj *v11.PodSpec) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1PodSpec_hostname(ctx context.Context, field graphql.CollectedField, obj *v13.PodSpec) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1PodSpec_hostname(ctx, field) if err != nil { return graphql.Null @@ -14320,7 +14654,7 @@ func (ec *executionContext) _CoreV1PodSpec_hostname(ctx context.Context, field g ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Hostname, nil }) @@ -14352,7 +14686,7 @@ func (ec *executionContext) fieldContext_CoreV1PodSpec_hostname(_ context.Contex return fc, nil } -func (ec *executionContext) _CoreV1PodSpec_priorityClassName(ctx context.Context, field graphql.CollectedField, obj *v11.PodSpec) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1PodSpec_priorityClassName(ctx context.Context, field graphql.CollectedField, obj *v13.PodSpec) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1PodSpec_priorityClassName(ctx, field) if err != nil { return graphql.Null @@ -14364,7 +14698,7 @@ func (ec *executionContext) _CoreV1PodSpec_priorityClassName(ctx context.Context ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.PriorityClassName, nil }) @@ -14396,7 +14730,7 @@ func (ec *executionContext) fieldContext_CoreV1PodSpec_priorityClassName(_ conte return fc, nil } -func (ec *executionContext) _CoreV1PodStatus_phase(ctx context.Context, field graphql.CollectedField, obj *v11.PodStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1PodStatus_phase(ctx context.Context, field graphql.CollectedField, obj *v13.PodStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1PodStatus_phase(ctx, field) if err != nil { return graphql.Null @@ -14408,7 +14742,7 @@ func (ec *executionContext) _CoreV1PodStatus_phase(ctx context.Context, field gr ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Phase, nil }) @@ -14422,7 +14756,7 @@ func (ec *executionContext) _CoreV1PodStatus_phase(ctx context.Context, field gr } return graphql.Null } - res := resTmp.(v11.PodPhase) + res := resTmp.(v13.PodPhase) fc.Result = res return ec.marshalNCoreV1PodPhase2k8sᚗioᚋapiᚋcoreᚋv1ᚐPodPhase(ctx, field.Selections, res) } @@ -14440,7 +14774,7 @@ func (ec *executionContext) fieldContext_CoreV1PodStatus_phase(_ context.Context return fc, nil } -func (ec *executionContext) _CoreV1PodStatus_message(ctx context.Context, field graphql.CollectedField, obj *v11.PodStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1PodStatus_message(ctx context.Context, field graphql.CollectedField, obj *v13.PodStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1PodStatus_message(ctx, field) if err != nil { return graphql.Null @@ -14452,7 +14786,7 @@ func (ec *executionContext) _CoreV1PodStatus_message(ctx context.Context, field ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Message, nil }) @@ -14484,7 +14818,7 @@ func (ec *executionContext) fieldContext_CoreV1PodStatus_message(_ context.Conte return fc, nil } -func (ec *executionContext) _CoreV1PodStatus_reason(ctx context.Context, field graphql.CollectedField, obj *v11.PodStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1PodStatus_reason(ctx context.Context, field graphql.CollectedField, obj *v13.PodStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1PodStatus_reason(ctx, field) if err != nil { return graphql.Null @@ -14496,7 +14830,7 @@ func (ec *executionContext) _CoreV1PodStatus_reason(ctx context.Context, field g ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Reason, nil }) @@ -14528,7 +14862,7 @@ func (ec *executionContext) fieldContext_CoreV1PodStatus_reason(_ context.Contex return fc, nil } -func (ec *executionContext) _CoreV1PodStatus_containerStatuses(ctx context.Context, field graphql.CollectedField, obj *v11.PodStatus) (ret graphql.Marshaler) { +func (ec *executionContext) _CoreV1PodStatus_containerStatuses(ctx context.Context, field graphql.CollectedField, obj *v13.PodStatus) (ret graphql.Marshaler) { fc, err := ec.fieldContext_CoreV1PodStatus_containerStatuses(ctx, field) if err != nil { return graphql.Null @@ -14540,7 +14874,7 @@ func (ec *executionContext) _CoreV1PodStatus_containerStatuses(ctx context.Conte ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.ContainerStatuses, nil }) @@ -14554,7 +14888,7 @@ func (ec *executionContext) _CoreV1PodStatus_containerStatuses(ctx context.Conte } return graphql.Null } - res := resTmp.([]v11.ContainerStatus) + res := resTmp.([]v13.ContainerStatus) fc.Result = res return ec.marshalNCoreV1ContainerStatus2ᚕk8sᚗioᚋapiᚋcoreᚋv1ᚐContainerStatusᚄ(ctx, field.Selections, res) } @@ -14604,7 +14938,7 @@ func (ec *executionContext) _CoreV1PodsWatchEvent_type(ctx context.Context, fiel ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Type, nil }) @@ -14648,7 +14982,7 @@ func (ec *executionContext) _CoreV1PodsWatchEvent_object(ctx context.Context, fi ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return ec.resolvers.CoreV1PodsWatchEvent().Object(rctx, obj) }) @@ -14659,7 +14993,7 @@ func (ec *executionContext) _CoreV1PodsWatchEvent_object(ctx context.Context, fi if resTmp == nil { return graphql.Null } - res := resTmp.(*v11.Pod) + res := resTmp.(*v13.Pod) fc.Result = res return ec.marshalOCoreV1Pod2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐPod(ctx, field.Selections, res) } @@ -14691,8 +15025,8 @@ func (ec *executionContext) fieldContext_CoreV1PodsWatchEvent_object(_ context.C return fc, nil } -func (ec *executionContext) _HealthCheckResponse_status(ctx context.Context, field graphql.CollectedField, obj *model.HealthCheckResponse) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_HealthCheckResponse_status(ctx, field) +func (ec *executionContext) _CoreV1Service_id(ctx context.Context, field graphql.CollectedField, obj *v13.Service) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_CoreV1Service_id(ctx, field) if err != nil { return graphql.Null } @@ -14703,9 +15037,9 @@ func (ec *executionContext) _HealthCheckResponse_status(ctx context.Context, fie ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.Status, nil + return obj.UID, nil }) if err != nil { ec.Error(ctx, err) @@ -14717,26 +15051,26 @@ func (ec *executionContext) _HealthCheckResponse_status(ctx context.Context, fie } return graphql.Null } - res := resTmp.(model.HealthCheckStatus) + res := resTmp.(types.UID) fc.Result = res - return ec.marshalNHealthCheckStatus2githubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋserverᚋgraphᚋmodelᚐHealthCheckStatus(ctx, field.Selections, res) + return ec.marshalNID2k8sᚗioᚋapimachineryᚋpkgᚋtypesᚐUID(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_HealthCheckResponse_status(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_CoreV1Service_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "HealthCheckResponse", + Object: "CoreV1Service", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type HealthCheckStatus does not have child fields") + return nil, errors.New("field of type ID does not have child fields") }, } return fc, nil } -func (ec *executionContext) _HealthCheckResponse_message(ctx context.Context, field graphql.CollectedField, obj *model.HealthCheckResponse) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_HealthCheckResponse_message(ctx, field) +func (ec *executionContext) _CoreV1Service_kind(ctx context.Context, field graphql.CollectedField, obj *v13.Service) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_CoreV1Service_kind(ctx, field) if err != nil { return graphql.Null } @@ -14747,25 +15081,28 @@ func (ec *executionContext) _HealthCheckResponse_message(ctx context.Context, fi ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.Message, nil + return obj.Kind, nil }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } return graphql.Null } - res := resTmp.(*string) + res := resTmp.(string) fc.Result = res - return ec.marshalOString2ᚖstring(ctx, field.Selections, res) + return ec.marshalNString2string(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_HealthCheckResponse_message(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_CoreV1Service_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "HealthCheckResponse", + Object: "CoreV1Service", Field: field, IsMethod: false, IsResolver: false, @@ -14776,8 +15113,8 @@ func (ec *executionContext) fieldContext_HealthCheckResponse_message(_ context.C return fc, nil } -func (ec *executionContext) _HealthCheckResponse_timestamp(ctx context.Context, field graphql.CollectedField, obj *model.HealthCheckResponse) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_HealthCheckResponse_timestamp(ctx, field) +func (ec *executionContext) _CoreV1Service_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v13.Service) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_CoreV1Service_apiVersion(ctx, field) if err != nil { return graphql.Null } @@ -14788,9 +15125,9 @@ func (ec *executionContext) _HealthCheckResponse_timestamp(ctx context.Context, ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.Timestamp, nil + return obj.APIVersion, nil }) if err != nil { ec.Error(ctx, err) @@ -14802,26 +15139,26 @@ func (ec *executionContext) _HealthCheckResponse_timestamp(ctx context.Context, } return graphql.Null } - res := resTmp.(time.Time) + res := resTmp.(string) fc.Result = res - return ec.marshalNTime2timeᚐTime(ctx, field.Selections, res) + return ec.marshalNString2string(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_HealthCheckResponse_timestamp(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_CoreV1Service_apiVersion(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "HealthCheckResponse", + Object: "CoreV1Service", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Time does not have child fields") + return nil, errors.New("field of type String does not have child fields") }, } return fc, nil } -func (ec *executionContext) _LogMetadata_id(ctx context.Context, field graphql.CollectedField, obj *agentpb.LogMetadata) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_LogMetadata_id(ctx, field) +func (ec *executionContext) _CoreV1Service_metadata(ctx context.Context, field graphql.CollectedField, obj *v13.Service) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_CoreV1Service_metadata(ctx, field) if err != nil { return graphql.Null } @@ -14832,9 +15169,9 @@ func (ec *executionContext) _LogMetadata_id(ctx context.Context, field graphql.C ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.Id, nil + return obj.ObjectMeta, nil }) if err != nil { ec.Error(ctx, err) @@ -14846,26 +15183,46 @@ func (ec *executionContext) _LogMetadata_id(ctx context.Context, field graphql.C } return graphql.Null } - res := resTmp.(string) + res := resTmp.(v1.ObjectMeta) fc.Result = res - return ec.marshalNID2string(ctx, field.Selections, res) + return ec.marshalNMetaV1ObjectMeta2k8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐObjectMeta(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_LogMetadata_id(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_CoreV1Service_metadata(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "LogMetadata", + Object: "CoreV1Service", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type ID does not have child fields") + switch field.Name { + case "uid": + return ec.fieldContext_MetaV1ObjectMeta_uid(ctx, field) + case "name": + return ec.fieldContext_MetaV1ObjectMeta_name(ctx, field) + case "namespace": + return ec.fieldContext_MetaV1ObjectMeta_namespace(ctx, field) + case "resourceVersion": + return ec.fieldContext_MetaV1ObjectMeta_resourceVersion(ctx, field) + case "creationTimestamp": + return ec.fieldContext_MetaV1ObjectMeta_creationTimestamp(ctx, field) + case "deletionTimestamp": + return ec.fieldContext_MetaV1ObjectMeta_deletionTimestamp(ctx, field) + case "labels": + return ec.fieldContext_MetaV1ObjectMeta_labels(ctx, field) + case "annotations": + return ec.fieldContext_MetaV1ObjectMeta_annotations(ctx, field) + case "ownerReferences": + return ec.fieldContext_MetaV1ObjectMeta_ownerReferences(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type MetaV1ObjectMeta", field.Name) }, } return fc, nil } -func (ec *executionContext) _LogMetadata_spec(ctx context.Context, field graphql.CollectedField, obj *agentpb.LogMetadata) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_LogMetadata_spec(ctx, field) +func (ec *executionContext) _CoreV1Service_spec(ctx context.Context, field graphql.CollectedField, obj *v13.Service) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_CoreV1Service_spec(ctx, field) if err != nil { return graphql.Null } @@ -14876,7 +15233,7 @@ func (ec *executionContext) _LogMetadata_spec(ctx context.Context, field graphql ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Spec, nil }) @@ -14890,38 +15247,38 @@ func (ec *executionContext) _LogMetadata_spec(ctx context.Context, field graphql } return graphql.Null } - res := resTmp.(*agentpb.LogMetadataSpec) + res := resTmp.(v13.ServiceSpec) fc.Result = res - return ec.marshalNLogMetadataSpec2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋcommonᚋagentpbᚐLogMetadataSpec(ctx, field.Selections, res) + return ec.marshalNCoreV1ServiceSpec2k8sᚗioᚋapiᚋcoreᚋv1ᚐServiceSpec(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_LogMetadata_spec(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_CoreV1Service_spec(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "LogMetadata", + Object: "CoreV1Service", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { switch field.Name { - case "nodeName": - return ec.fieldContext_LogMetadataSpec_nodeName(ctx, field) - case "namespace": - return ec.fieldContext_LogMetadataSpec_namespace(ctx, field) - case "podName": - return ec.fieldContext_LogMetadataSpec_podName(ctx, field) - case "containerName": - return ec.fieldContext_LogMetadataSpec_containerName(ctx, field) - case "containerID": - return ec.fieldContext_LogMetadataSpec_containerID(ctx, field) + case "ports": + return ec.fieldContext_CoreV1ServiceSpec_ports(ctx, field) + case "selector": + return ec.fieldContext_CoreV1ServiceSpec_selector(ctx, field) + case "clusterIP": + return ec.fieldContext_CoreV1ServiceSpec_clusterIP(ctx, field) + case "clusterIPs": + return ec.fieldContext_CoreV1ServiceSpec_clusterIPs(ctx, field) + case "externalName": + return ec.fieldContext_CoreV1ServiceSpec_externalName(ctx, field) } - return nil, fmt.Errorf("no field named %q was found under type LogMetadataSpec", field.Name) + return nil, fmt.Errorf("no field named %q was found under type CoreV1ServiceSpec", field.Name) }, } return fc, nil } -func (ec *executionContext) _LogMetadata_fileInfo(ctx context.Context, field graphql.CollectedField, obj *agentpb.LogMetadata) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_LogMetadata_fileInfo(ctx, field) +func (ec *executionContext) _CoreV1ServiceList_kind(ctx context.Context, field graphql.CollectedField, obj *v13.ServiceList) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_CoreV1ServiceList_kind(ctx, field) if err != nil { return graphql.Null } @@ -14932,9 +15289,9 @@ func (ec *executionContext) _LogMetadata_fileInfo(ctx context.Context, field gra ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.FileInfo, nil + return obj.Kind, nil }) if err != nil { ec.Error(ctx, err) @@ -14946,32 +15303,26 @@ func (ec *executionContext) _LogMetadata_fileInfo(ctx context.Context, field gra } return graphql.Null } - res := resTmp.(*agentpb.LogMetadataFileInfo) + res := resTmp.(string) fc.Result = res - return ec.marshalNLogMetadataFileInfo2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋcommonᚋagentpbᚐLogMetadataFileInfo(ctx, field.Selections, res) + return ec.marshalNString2string(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_LogMetadata_fileInfo(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_CoreV1ServiceList_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "LogMetadata", + Object: "CoreV1ServiceList", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "size": - return ec.fieldContext_LogMetadataFileInfo_size(ctx, field) - case "lastModifiedAt": - return ec.fieldContext_LogMetadataFileInfo_lastModifiedAt(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type LogMetadataFileInfo", field.Name) + return nil, errors.New("field of type String does not have child fields") }, } return fc, nil } -func (ec *executionContext) _LogMetadataFileInfo_size(ctx context.Context, field graphql.CollectedField, obj *agentpb.LogMetadataFileInfo) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_LogMetadataFileInfo_size(ctx, field) +func (ec *executionContext) _CoreV1ServiceList_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v13.ServiceList) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_CoreV1ServiceList_apiVersion(ctx, field) if err != nil { return graphql.Null } @@ -14982,9 +15333,9 @@ func (ec *executionContext) _LogMetadataFileInfo_size(ctx context.Context, field ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.Size, nil + return obj.APIVersion, nil }) if err != nil { ec.Error(ctx, err) @@ -14996,26 +15347,26 @@ func (ec *executionContext) _LogMetadataFileInfo_size(ctx context.Context, field } return graphql.Null } - res := resTmp.(int64) + res := resTmp.(string) fc.Result = res - return ec.marshalNInt642int64(ctx, field.Selections, res) + return ec.marshalNString2string(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_LogMetadataFileInfo_size(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_CoreV1ServiceList_apiVersion(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "LogMetadataFileInfo", + Object: "CoreV1ServiceList", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int64 does not have child fields") + return nil, errors.New("field of type String does not have child fields") }, } return fc, nil } -func (ec *executionContext) _LogMetadataFileInfo_lastModifiedAt(ctx context.Context, field graphql.CollectedField, obj *agentpb.LogMetadataFileInfo) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_LogMetadataFileInfo_lastModifiedAt(ctx, field) +func (ec *executionContext) _CoreV1ServiceList_metadata(ctx context.Context, field graphql.CollectedField, obj *v13.ServiceList) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_CoreV1ServiceList_metadata(ctx, field) if err != nil { return graphql.Null } @@ -15026,37 +15377,48 @@ func (ec *executionContext) _LogMetadataFileInfo_lastModifiedAt(ctx context.Cont ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.LastModifiedAt, nil + return obj.ListMeta, nil }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } return graphql.Null } - res := resTmp.(*timestamppb.Timestamp) + res := resTmp.(v1.ListMeta) fc.Result = res - return ec.marshalOTimestampPBTimestamp2ᚖgoogleᚗgolangᚗorgᚋprotobufᚋtypesᚋknownᚋtimestamppbᚐTimestamp(ctx, field.Selections, res) + return ec.marshalNMetaV1ListMeta2k8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐListMeta(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_LogMetadataFileInfo_lastModifiedAt(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_CoreV1ServiceList_metadata(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "LogMetadataFileInfo", + Object: "CoreV1ServiceList", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type TimestampPBTimestamp does not have child fields") + switch field.Name { + case "resourceVersion": + return ec.fieldContext_MetaV1ListMeta_resourceVersion(ctx, field) + case "continue": + return ec.fieldContext_MetaV1ListMeta_continue(ctx, field) + case "remainingItemCount": + return ec.fieldContext_MetaV1ListMeta_remainingItemCount(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type MetaV1ListMeta", field.Name) }, } return fc, nil } -func (ec *executionContext) _LogMetadataList_items(ctx context.Context, field graphql.CollectedField, obj *agentpb.LogMetadataList) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_LogMetadataList_items(ctx, field) +func (ec *executionContext) _CoreV1ServiceList_items(ctx context.Context, field graphql.CollectedField, obj *v13.ServiceList) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_CoreV1ServiceList_items(ctx, field) if err != nil { return graphql.Null } @@ -15067,7 +15429,7 @@ func (ec *executionContext) _LogMetadataList_items(ctx context.Context, field gr ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Items, nil }) @@ -15081,34 +15443,38 @@ func (ec *executionContext) _LogMetadataList_items(ctx context.Context, field gr } return graphql.Null } - res := resTmp.([]*agentpb.LogMetadata) + res := resTmp.([]v13.Service) fc.Result = res - return ec.marshalNLogMetadata2ᚕᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋcommonᚋagentpbᚐLogMetadataᚄ(ctx, field.Selections, res) + return ec.marshalNCoreV1Service2ᚕk8sᚗioᚋapiᚋcoreᚋv1ᚐServiceᚄ(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_LogMetadataList_items(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_CoreV1ServiceList_items(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "LogMetadataList", + Object: "CoreV1ServiceList", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { switch field.Name { case "id": - return ec.fieldContext_LogMetadata_id(ctx, field) + return ec.fieldContext_CoreV1Service_id(ctx, field) + case "kind": + return ec.fieldContext_CoreV1Service_kind(ctx, field) + case "apiVersion": + return ec.fieldContext_CoreV1Service_apiVersion(ctx, field) + case "metadata": + return ec.fieldContext_CoreV1Service_metadata(ctx, field) case "spec": - return ec.fieldContext_LogMetadata_spec(ctx, field) - case "fileInfo": - return ec.fieldContext_LogMetadata_fileInfo(ctx, field) + return ec.fieldContext_CoreV1Service_spec(ctx, field) } - return nil, fmt.Errorf("no field named %q was found under type LogMetadata", field.Name) + return nil, fmt.Errorf("no field named %q was found under type CoreV1Service", field.Name) }, } return fc, nil } -func (ec *executionContext) _LogMetadataSpec_nodeName(ctx context.Context, field graphql.CollectedField, obj *agentpb.LogMetadataSpec) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_LogMetadataSpec_nodeName(ctx, field) +func (ec *executionContext) _CoreV1ServicePort_name(ctx context.Context, field graphql.CollectedField, obj *v13.ServicePort) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_CoreV1ServicePort_name(ctx, field) if err != nil { return graphql.Null } @@ -15119,28 +15485,25 @@ func (ec *executionContext) _LogMetadataSpec_nodeName(ctx context.Context, field ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.NodeName, nil + return obj.Name, nil }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } return graphql.Null } res := resTmp.(string) fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) + return ec.marshalOString2string(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_LogMetadataSpec_nodeName(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_CoreV1ServicePort_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "LogMetadataSpec", + Object: "CoreV1ServicePort", Field: field, IsMethod: false, IsResolver: false, @@ -15151,8 +15514,8 @@ func (ec *executionContext) fieldContext_LogMetadataSpec_nodeName(_ context.Cont return fc, nil } -func (ec *executionContext) _LogMetadataSpec_namespace(ctx context.Context, field graphql.CollectedField, obj *agentpb.LogMetadataSpec) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_LogMetadataSpec_namespace(ctx, field) +func (ec *executionContext) _CoreV1ServiceSpec_ports(ctx context.Context, field graphql.CollectedField, obj *v13.ServiceSpec) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_CoreV1ServiceSpec_ports(ctx, field) if err != nil { return graphql.Null } @@ -15163,9 +15526,9 @@ func (ec *executionContext) _LogMetadataSpec_namespace(ctx context.Context, fiel ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.Namespace, nil + return obj.Ports, nil }) if err != nil { ec.Error(ctx, err) @@ -15177,26 +15540,30 @@ func (ec *executionContext) _LogMetadataSpec_namespace(ctx context.Context, fiel } return graphql.Null } - res := resTmp.(string) + res := resTmp.([]v13.ServicePort) fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) + return ec.marshalNCoreV1ServicePort2ᚕk8sᚗioᚋapiᚋcoreᚋv1ᚐServicePortᚄ(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_LogMetadataSpec_namespace(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_CoreV1ServiceSpec_ports(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "LogMetadataSpec", + Object: "CoreV1ServiceSpec", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") + switch field.Name { + case "name": + return ec.fieldContext_CoreV1ServicePort_name(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type CoreV1ServicePort", field.Name) }, } return fc, nil } -func (ec *executionContext) _LogMetadataSpec_podName(ctx context.Context, field graphql.CollectedField, obj *agentpb.LogMetadataSpec) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_LogMetadataSpec_podName(ctx, field) +func (ec *executionContext) _CoreV1ServiceSpec_selector(ctx context.Context, field graphql.CollectedField, obj *v13.ServiceSpec) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_CoreV1ServiceSpec_selector(ctx, field) if err != nil { return graphql.Null } @@ -15207,28 +15574,66 @@ func (ec *executionContext) _LogMetadataSpec_podName(ctx context.Context, field ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.PodName, nil + return obj.Selector, nil }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") + return graphql.Null + } + res := resTmp.(map[string]string) + fc.Result = res + return ec.marshalOStringMap2map(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_CoreV1ServiceSpec_selector(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "CoreV1ServiceSpec", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type StringMap does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _CoreV1ServiceSpec_clusterIP(ctx context.Context, field graphql.CollectedField, obj *v13.ServiceSpec) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_CoreV1ServiceSpec_clusterIP(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.ClusterIP, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { return graphql.Null } res := resTmp.(string) fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) + return ec.marshalOString2string(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_LogMetadataSpec_podName(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_CoreV1ServiceSpec_clusterIP(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "LogMetadataSpec", + Object: "CoreV1ServiceSpec", Field: field, IsMethod: false, IsResolver: false, @@ -15239,8 +15644,8 @@ func (ec *executionContext) fieldContext_LogMetadataSpec_podName(_ context.Conte return fc, nil } -func (ec *executionContext) _LogMetadataSpec_containerName(ctx context.Context, field graphql.CollectedField, obj *agentpb.LogMetadataSpec) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_LogMetadataSpec_containerName(ctx, field) +func (ec *executionContext) _CoreV1ServiceSpec_clusterIPs(ctx context.Context, field graphql.CollectedField, obj *v13.ServiceSpec) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_CoreV1ServiceSpec_clusterIPs(ctx, field) if err != nil { return graphql.Null } @@ -15251,28 +15656,25 @@ func (ec *executionContext) _LogMetadataSpec_containerName(ctx context.Context, ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.ContainerName, nil + return obj.ClusterIPs, nil }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } return graphql.Null } - res := resTmp.(string) + res := resTmp.([]string) fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) + return ec.marshalOString2ᚕstringᚄ(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_LogMetadataSpec_containerName(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_CoreV1ServiceSpec_clusterIPs(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "LogMetadataSpec", + Object: "CoreV1ServiceSpec", Field: field, IsMethod: false, IsResolver: false, @@ -15283,8 +15685,8 @@ func (ec *executionContext) fieldContext_LogMetadataSpec_containerName(_ context return fc, nil } -func (ec *executionContext) _LogMetadataSpec_containerID(ctx context.Context, field graphql.CollectedField, obj *agentpb.LogMetadataSpec) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_LogMetadataSpec_containerID(ctx, field) +func (ec *executionContext) _CoreV1ServiceSpec_externalName(ctx context.Context, field graphql.CollectedField, obj *v13.ServiceSpec) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_CoreV1ServiceSpec_externalName(ctx, field) if err != nil { return graphql.Null } @@ -15295,40 +15697,37 @@ func (ec *executionContext) _LogMetadataSpec_containerID(ctx context.Context, fi ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.ContainerId, nil + return obj.ExternalName, nil }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } return graphql.Null } res := resTmp.(string) fc.Result = res - return ec.marshalNID2string(ctx, field.Selections, res) + return ec.marshalOString2string(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_LogMetadataSpec_containerID(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_CoreV1ServiceSpec_externalName(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "LogMetadataSpec", + Object: "CoreV1ServiceSpec", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type ID does not have child fields") + return nil, errors.New("field of type String does not have child fields") }, } return fc, nil } -func (ec *executionContext) _LogMetadataWatchEvent_type(ctx context.Context, field graphql.CollectedField, obj *agentpb.LogMetadataWatchEvent) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_LogMetadataWatchEvent_type(ctx, field) +func (ec *executionContext) _CoreV1ServicesWatchEvent_type(ctx context.Context, field graphql.CollectedField, obj *watch.Event) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_CoreV1ServicesWatchEvent_type(ctx, field) if err != nil { return graphql.Null } @@ -15339,7 +15738,7 @@ func (ec *executionContext) _LogMetadataWatchEvent_type(ctx context.Context, fie ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Type, nil }) @@ -15353,26 +15752,26 @@ func (ec *executionContext) _LogMetadataWatchEvent_type(ctx context.Context, fie } return graphql.Null } - res := resTmp.(string) + res := resTmp.(watch.EventType) fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) + return ec.marshalNWatchEventType2k8sᚗioᚋapimachineryᚋpkgᚋwatchᚐEventType(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_LogMetadataWatchEvent_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_CoreV1ServicesWatchEvent_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "LogMetadataWatchEvent", + Object: "CoreV1ServicesWatchEvent", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") + return nil, errors.New("field of type WatchEventType does not have child fields") }, } return fc, nil } -func (ec *executionContext) _LogMetadataWatchEvent_object(ctx context.Context, field graphql.CollectedField, obj *agentpb.LogMetadataWatchEvent) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_LogMetadataWatchEvent_object(ctx, field) +func (ec *executionContext) _CoreV1ServicesWatchEvent_object(ctx context.Context, field graphql.CollectedField, obj *watch.Event) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_CoreV1ServicesWatchEvent_object(ctx, field) if err != nil { return graphql.Null } @@ -15383,9 +15782,9 @@ func (ec *executionContext) _LogMetadataWatchEvent_object(ctx context.Context, f ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.Object, nil + return ec.resolvers.CoreV1ServicesWatchEvent().Object(rctx, obj) }) if err != nil { ec.Error(ctx, err) @@ -15394,34 +15793,38 @@ func (ec *executionContext) _LogMetadataWatchEvent_object(ctx context.Context, f if resTmp == nil { return graphql.Null } - res := resTmp.(*agentpb.LogMetadata) + res := resTmp.(*v13.Service) fc.Result = res - return ec.marshalOLogMetadata2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋcommonᚋagentpbᚐLogMetadata(ctx, field.Selections, res) + return ec.marshalOCoreV1Service2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐService(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_LogMetadataWatchEvent_object(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_CoreV1ServicesWatchEvent_object(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "LogMetadataWatchEvent", + Object: "CoreV1ServicesWatchEvent", Field: field, - IsMethod: false, - IsResolver: false, + IsMethod: true, + IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { switch field.Name { case "id": - return ec.fieldContext_LogMetadata_id(ctx, field) + return ec.fieldContext_CoreV1Service_id(ctx, field) + case "kind": + return ec.fieldContext_CoreV1Service_kind(ctx, field) + case "apiVersion": + return ec.fieldContext_CoreV1Service_apiVersion(ctx, field) + case "metadata": + return ec.fieldContext_CoreV1Service_metadata(ctx, field) case "spec": - return ec.fieldContext_LogMetadata_spec(ctx, field) - case "fileInfo": - return ec.fieldContext_LogMetadata_fileInfo(ctx, field) + return ec.fieldContext_CoreV1Service_spec(ctx, field) } - return nil, fmt.Errorf("no field named %q was found under type LogMetadata", field.Name) + return nil, fmt.Errorf("no field named %q was found under type CoreV1Service", field.Name) }, } return fc, nil } -func (ec *executionContext) _LogRecord_timestamp(ctx context.Context, field graphql.CollectedField, obj *model.LogRecord) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_LogRecord_timestamp(ctx, field) +func (ec *executionContext) _HealthCheckResponse_status(ctx context.Context, field graphql.CollectedField, obj *model.HealthCheckResponse) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_HealthCheckResponse_status(ctx, field) if err != nil { return graphql.Null } @@ -15432,9 +15835,9 @@ func (ec *executionContext) _LogRecord_timestamp(ctx context.Context, field grap ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.Timestamp, nil + return obj.Status, nil }) if err != nil { ec.Error(ctx, err) @@ -15446,26 +15849,26 @@ func (ec *executionContext) _LogRecord_timestamp(ctx context.Context, field grap } return graphql.Null } - res := resTmp.(time.Time) + res := resTmp.(model.HealthCheckStatus) fc.Result = res - return ec.marshalNTime2timeᚐTime(ctx, field.Selections, res) + return ec.marshalNHealthCheckStatus2githubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐHealthCheckStatus(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_LogRecord_timestamp(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_HealthCheckResponse_status(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "LogRecord", + Object: "HealthCheckResponse", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Time does not have child fields") + return nil, errors.New("field of type HealthCheckStatus does not have child fields") }, } return fc, nil } -func (ec *executionContext) _LogRecord_message(ctx context.Context, field graphql.CollectedField, obj *model.LogRecord) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_LogRecord_message(ctx, field) +func (ec *executionContext) _HealthCheckResponse_message(ctx context.Context, field graphql.CollectedField, obj *model.HealthCheckResponse) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_HealthCheckResponse_message(ctx, field) if err != nil { return graphql.Null } @@ -15476,7 +15879,7 @@ func (ec *executionContext) _LogRecord_message(ctx context.Context, field graphq ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Message, nil }) @@ -15485,19 +15888,16 @@ func (ec *executionContext) _LogRecord_message(ctx context.Context, field graphq return graphql.Null } if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } return graphql.Null } - res := resTmp.(string) + res := resTmp.(*string) fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) + return ec.marshalOString2ᚖstring(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_LogRecord_message(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_HealthCheckResponse_message(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "LogRecord", + Object: "HealthCheckResponse", Field: field, IsMethod: false, IsResolver: false, @@ -15508,8 +15908,8 @@ func (ec *executionContext) fieldContext_LogRecord_message(_ context.Context, fi return fc, nil } -func (ec *executionContext) _MetaV1LabelSelector_matchLabels(ctx context.Context, field graphql.CollectedField, obj *v1.LabelSelector) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_MetaV1LabelSelector_matchLabels(ctx, field) +func (ec *executionContext) _HealthCheckResponse_timestamp(ctx context.Context, field graphql.CollectedField, obj *model.HealthCheckResponse) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_HealthCheckResponse_timestamp(ctx, field) if err != nil { return graphql.Null } @@ -15520,37 +15920,40 @@ func (ec *executionContext) _MetaV1LabelSelector_matchLabels(ctx context.Context ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.MatchLabels, nil + return obj.Timestamp, nil }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } return graphql.Null } - res := resTmp.(map[string]string) + res := resTmp.(time.Time) fc.Result = res - return ec.marshalOStringMap2map(ctx, field.Selections, res) + return ec.marshalNTime2timeᚐTime(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_MetaV1LabelSelector_matchLabels(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_HealthCheckResponse_timestamp(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "MetaV1LabelSelector", + Object: "HealthCheckResponse", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type StringMap does not have child fields") + return nil, errors.New("field of type Time does not have child fields") }, } return fc, nil } -func (ec *executionContext) _MetaV1LabelSelector_matchExpressions(ctx context.Context, field graphql.CollectedField, obj *v1.LabelSelector) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_MetaV1LabelSelector_matchExpressions(ctx, field) +func (ec *executionContext) _KubeConfig_authInfos(ctx context.Context, field graphql.CollectedField, obj *model.KubeConfig) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_KubeConfig_authInfos(ctx, field) if err != nil { return graphql.Null } @@ -15561,9 +15964,9 @@ func (ec *executionContext) _MetaV1LabelSelector_matchExpressions(ctx context.Co ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.MatchExpressions, nil + return ec.resolvers.KubeConfig().AuthInfos(rctx, obj) }) if err != nil { ec.Error(ctx, err) @@ -15575,34 +15978,34 @@ func (ec *executionContext) _MetaV1LabelSelector_matchExpressions(ctx context.Co } return graphql.Null } - res := resTmp.([]v1.LabelSelectorRequirement) + res := resTmp.([]*model.KubeConfigAuthInfo) fc.Result = res - return ec.marshalNMetaV1LabelSelectorRequirement2ᚕk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐLabelSelectorRequirementᚄ(ctx, field.Selections, res) + return ec.marshalNKubeConfigAuthInfo2ᚕᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐKubeConfigAuthInfoᚄ(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_MetaV1LabelSelector_matchExpressions(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_KubeConfig_authInfos(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "MetaV1LabelSelector", + Object: "KubeConfig", Field: field, - IsMethod: false, - IsResolver: false, + IsMethod: true, + IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { switch field.Name { - case "key": - return ec.fieldContext_MetaV1LabelSelectorRequirement_key(ctx, field) - case "operator": - return ec.fieldContext_MetaV1LabelSelectorRequirement_operator(ctx, field) - case "values": - return ec.fieldContext_MetaV1LabelSelectorRequirement_values(ctx, field) + case "name": + return ec.fieldContext_KubeConfigAuthInfo_name(ctx, field) + case "locationOfOrigin": + return ec.fieldContext_KubeConfigAuthInfo_locationOfOrigin(ctx, field) + case "extensions": + return ec.fieldContext_KubeConfigAuthInfo_extensions(ctx, field) } - return nil, fmt.Errorf("no field named %q was found under type MetaV1LabelSelectorRequirement", field.Name) + return nil, fmt.Errorf("no field named %q was found under type KubeConfigAuthInfo", field.Name) }, } return fc, nil } -func (ec *executionContext) _MetaV1LabelSelectorRequirement_key(ctx context.Context, field graphql.CollectedField, obj *v1.LabelSelectorRequirement) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_MetaV1LabelSelectorRequirement_key(ctx, field) +func (ec *executionContext) _KubeConfig_clusters(ctx context.Context, field graphql.CollectedField, obj *model.KubeConfig) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_KubeConfig_clusters(ctx, field) if err != nil { return graphql.Null } @@ -15613,9 +16016,9 @@ func (ec *executionContext) _MetaV1LabelSelectorRequirement_key(ctx context.Cont ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.Key, nil + return ec.resolvers.KubeConfig().Clusters(rctx, obj) }) if err != nil { ec.Error(ctx, err) @@ -15627,26 +16030,36 @@ func (ec *executionContext) _MetaV1LabelSelectorRequirement_key(ctx context.Cont } return graphql.Null } - res := resTmp.(string) + res := resTmp.([]*model.KubeConfigCluster) fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) + return ec.marshalNKubeConfigCluster2ᚕᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐKubeConfigClusterᚄ(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_MetaV1LabelSelectorRequirement_key(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_KubeConfig_clusters(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "MetaV1LabelSelectorRequirement", + Object: "KubeConfig", Field: field, - IsMethod: false, - IsResolver: false, + IsMethod: true, + IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") + switch field.Name { + case "name": + return ec.fieldContext_KubeConfigCluster_name(ctx, field) + case "locationOfOrigin": + return ec.fieldContext_KubeConfigCluster_locationOfOrigin(ctx, field) + case "server": + return ec.fieldContext_KubeConfigCluster_server(ctx, field) + case "extensions": + return ec.fieldContext_KubeConfigCluster_extensions(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type KubeConfigCluster", field.Name) }, } return fc, nil } -func (ec *executionContext) _MetaV1LabelSelectorRequirement_operator(ctx context.Context, field graphql.CollectedField, obj *v1.LabelSelectorRequirement) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_MetaV1LabelSelectorRequirement_operator(ctx, field) +func (ec *executionContext) _KubeConfig_contexts(ctx context.Context, field graphql.CollectedField, obj *model.KubeConfig) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_KubeConfig_contexts(ctx, field) if err != nil { return graphql.Null } @@ -15657,9 +16070,9 @@ func (ec *executionContext) _MetaV1LabelSelectorRequirement_operator(ctx context ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.Operator, nil + return ec.resolvers.KubeConfig().Contexts(rctx, obj) }) if err != nil { ec.Error(ctx, err) @@ -15671,26 +16084,40 @@ func (ec *executionContext) _MetaV1LabelSelectorRequirement_operator(ctx context } return graphql.Null } - res := resTmp.(v1.LabelSelectorOperator) + res := resTmp.([]*model.KubeConfigContext) fc.Result = res - return ec.marshalNMetaV1LabelSelectorOperator2k8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐLabelSelectorOperator(ctx, field.Selections, res) + return ec.marshalNKubeConfigContext2ᚕᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐKubeConfigContextᚄ(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_MetaV1LabelSelectorRequirement_operator(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_KubeConfig_contexts(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "MetaV1LabelSelectorRequirement", + Object: "KubeConfig", Field: field, - IsMethod: false, - IsResolver: false, + IsMethod: true, + IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type MetaV1LabelSelectorOperator does not have child fields") + switch field.Name { + case "name": + return ec.fieldContext_KubeConfigContext_name(ctx, field) + case "locationOfOrigin": + return ec.fieldContext_KubeConfigContext_locationOfOrigin(ctx, field) + case "cluster": + return ec.fieldContext_KubeConfigContext_cluster(ctx, field) + case "authInfo": + return ec.fieldContext_KubeConfigContext_authInfo(ctx, field) + case "namespace": + return ec.fieldContext_KubeConfigContext_namespace(ctx, field) + case "extensions": + return ec.fieldContext_KubeConfigContext_extensions(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type KubeConfigContext", field.Name) }, } return fc, nil } -func (ec *executionContext) _MetaV1LabelSelectorRequirement_values(ctx context.Context, field graphql.CollectedField, obj *v1.LabelSelectorRequirement) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_MetaV1LabelSelectorRequirement_values(ctx, field) +func (ec *executionContext) _KubeConfig_currentContext(ctx context.Context, field graphql.CollectedField, obj *model.KubeConfig) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_KubeConfig_currentContext(ctx, field) if err != nil { return graphql.Null } @@ -15701,9 +16128,9 @@ func (ec *executionContext) _MetaV1LabelSelectorRequirement_values(ctx context.C ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.Values, nil + return obj.CurrentContext, nil }) if err != nil { ec.Error(ctx, err) @@ -15715,14 +16142,14 @@ func (ec *executionContext) _MetaV1LabelSelectorRequirement_values(ctx context.C } return graphql.Null } - res := resTmp.([]string) + res := resTmp.(string) fc.Result = res - return ec.marshalNString2ᚕstringᚄ(ctx, field.Selections, res) + return ec.marshalNString2string(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_MetaV1LabelSelectorRequirement_values(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_KubeConfig_currentContext(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "MetaV1LabelSelectorRequirement", + Object: "KubeConfig", Field: field, IsMethod: false, IsResolver: false, @@ -15733,8 +16160,8 @@ func (ec *executionContext) fieldContext_MetaV1LabelSelectorRequirement_values(_ return fc, nil } -func (ec *executionContext) _MetaV1ListMeta_resourceVersion(ctx context.Context, field graphql.CollectedField, obj *v1.ListMeta) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_MetaV1ListMeta_resourceVersion(ctx, field) +func (ec *executionContext) _KubeConfig_extensions(ctx context.Context, field graphql.CollectedField, obj *model.KubeConfig) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_KubeConfig_extensions(ctx, field) if err != nil { return graphql.Null } @@ -15745,40 +16172,37 @@ func (ec *executionContext) _MetaV1ListMeta_resourceVersion(ctx context.Context, ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.ResourceVersion, nil + return obj.Extensions, nil }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } return graphql.Null } - res := resTmp.(string) + res := resTmp.(map[string]runtime.Object) fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) + return ec.marshalOKubeConfigExtensions2map(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_MetaV1ListMeta_resourceVersion(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_KubeConfig_extensions(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "MetaV1ListMeta", + Object: "KubeConfig", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") + return nil, errors.New("field of type KubeConfigExtensions does not have child fields") }, } return fc, nil } -func (ec *executionContext) _MetaV1ListMeta_continue(ctx context.Context, field graphql.CollectedField, obj *v1.ListMeta) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_MetaV1ListMeta_continue(ctx, field) +func (ec *executionContext) _KubeConfigAuthInfo_name(ctx context.Context, field graphql.CollectedField, obj *model.KubeConfigAuthInfo) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_KubeConfigAuthInfo_name(ctx, field) if err != nil { return graphql.Null } @@ -15789,9 +16213,9 @@ func (ec *executionContext) _MetaV1ListMeta_continue(ctx context.Context, field ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.Continue, nil + return obj.Name, nil }) if err != nil { ec.Error(ctx, err) @@ -15808,9 +16232,9 @@ func (ec *executionContext) _MetaV1ListMeta_continue(ctx context.Context, field return ec.marshalNString2string(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_MetaV1ListMeta_continue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_KubeConfigAuthInfo_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "MetaV1ListMeta", + Object: "KubeConfigAuthInfo", Field: field, IsMethod: false, IsResolver: false, @@ -15821,8 +16245,8 @@ func (ec *executionContext) fieldContext_MetaV1ListMeta_continue(_ context.Conte return fc, nil } -func (ec *executionContext) _MetaV1ListMeta_remainingItemCount(ctx context.Context, field graphql.CollectedField, obj *v1.ListMeta) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_MetaV1ListMeta_remainingItemCount(ctx, field) +func (ec *executionContext) _KubeConfigAuthInfo_locationOfOrigin(ctx context.Context, field graphql.CollectedField, obj *model.KubeConfigAuthInfo) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_KubeConfigAuthInfo_locationOfOrigin(ctx, field) if err != nil { return graphql.Null } @@ -15833,37 +16257,40 @@ func (ec *executionContext) _MetaV1ListMeta_remainingItemCount(ctx context.Conte ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.RemainingItemCount, nil + return obj.LocationOfOrigin, nil }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } return graphql.Null } - res := resTmp.(*int64) + res := resTmp.(string) fc.Result = res - return ec.marshalOInt642ᚖint64(ctx, field.Selections, res) + return ec.marshalNString2string(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_MetaV1ListMeta_remainingItemCount(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_KubeConfigAuthInfo_locationOfOrigin(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "MetaV1ListMeta", + Object: "KubeConfigAuthInfo", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Int64 does not have child fields") + return nil, errors.New("field of type String does not have child fields") }, } return fc, nil } -func (ec *executionContext) _MetaV1ObjectMeta_uid(ctx context.Context, field graphql.CollectedField, obj *v1.ObjectMeta) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_MetaV1ObjectMeta_uid(ctx, field) +func (ec *executionContext) _KubeConfigAuthInfo_extensions(ctx context.Context, field graphql.CollectedField, obj *model.KubeConfigAuthInfo) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_KubeConfigAuthInfo_extensions(ctx, field) if err != nil { return graphql.Null } @@ -15874,40 +16301,37 @@ func (ec *executionContext) _MetaV1ObjectMeta_uid(ctx context.Context, field gra ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.UID, nil + return obj.Extensions, nil }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } return graphql.Null } - res := resTmp.(types.UID) + res := resTmp.(map[string]runtime.Object) fc.Result = res - return ec.marshalNID2k8sᚗioᚋapimachineryᚋpkgᚋtypesᚐUID(ctx, field.Selections, res) + return ec.marshalOKubeConfigExtensions2map(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_MetaV1ObjectMeta_uid(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_KubeConfigAuthInfo_extensions(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "MetaV1ObjectMeta", + Object: "KubeConfigAuthInfo", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type ID does not have child fields") + return nil, errors.New("field of type KubeConfigExtensions does not have child fields") }, } return fc, nil } -func (ec *executionContext) _MetaV1ObjectMeta_name(ctx context.Context, field graphql.CollectedField, obj *v1.ObjectMeta) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_MetaV1ObjectMeta_name(ctx, field) +func (ec *executionContext) _KubeConfigCluster_name(ctx context.Context, field graphql.CollectedField, obj *model.KubeConfigCluster) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_KubeConfigCluster_name(ctx, field) if err != nil { return graphql.Null } @@ -15918,7 +16342,7 @@ func (ec *executionContext) _MetaV1ObjectMeta_name(ctx context.Context, field gr ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Name, nil }) @@ -15937,9 +16361,9 @@ func (ec *executionContext) _MetaV1ObjectMeta_name(ctx context.Context, field gr return ec.marshalNString2string(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_MetaV1ObjectMeta_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_KubeConfigCluster_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "MetaV1ObjectMeta", + Object: "KubeConfigCluster", Field: field, IsMethod: false, IsResolver: false, @@ -15950,8 +16374,8 @@ func (ec *executionContext) fieldContext_MetaV1ObjectMeta_name(_ context.Context return fc, nil } -func (ec *executionContext) _MetaV1ObjectMeta_namespace(ctx context.Context, field graphql.CollectedField, obj *v1.ObjectMeta) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_MetaV1ObjectMeta_namespace(ctx, field) +func (ec *executionContext) _KubeConfigCluster_locationOfOrigin(ctx context.Context, field graphql.CollectedField, obj *model.KubeConfigCluster) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_KubeConfigCluster_locationOfOrigin(ctx, field) if err != nil { return graphql.Null } @@ -15962,9 +16386,9 @@ func (ec *executionContext) _MetaV1ObjectMeta_namespace(ctx context.Context, fie ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.Namespace, nil + return obj.LocationOfOrigin, nil }) if err != nil { ec.Error(ctx, err) @@ -15981,9 +16405,9 @@ func (ec *executionContext) _MetaV1ObjectMeta_namespace(ctx context.Context, fie return ec.marshalNString2string(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_MetaV1ObjectMeta_namespace(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_KubeConfigCluster_locationOfOrigin(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "MetaV1ObjectMeta", + Object: "KubeConfigCluster", Field: field, IsMethod: false, IsResolver: false, @@ -15994,8 +16418,8 @@ func (ec *executionContext) fieldContext_MetaV1ObjectMeta_namespace(_ context.Co return fc, nil } -func (ec *executionContext) _MetaV1ObjectMeta_resourceVersion(ctx context.Context, field graphql.CollectedField, obj *v1.ObjectMeta) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_MetaV1ObjectMeta_resourceVersion(ctx, field) +func (ec *executionContext) _KubeConfigCluster_server(ctx context.Context, field graphql.CollectedField, obj *model.KubeConfigCluster) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_KubeConfigCluster_server(ctx, field) if err != nil { return graphql.Null } @@ -16006,9 +16430,9 @@ func (ec *executionContext) _MetaV1ObjectMeta_resourceVersion(ctx context.Contex ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.ResourceVersion, nil + return obj.Server, nil }) if err != nil { ec.Error(ctx, err) @@ -16025,9 +16449,9 @@ func (ec *executionContext) _MetaV1ObjectMeta_resourceVersion(ctx context.Contex return ec.marshalNString2string(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_MetaV1ObjectMeta_resourceVersion(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_KubeConfigCluster_server(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "MetaV1ObjectMeta", + Object: "KubeConfigCluster", Field: field, IsMethod: false, IsResolver: false, @@ -16038,8 +16462,8 @@ func (ec *executionContext) fieldContext_MetaV1ObjectMeta_resourceVersion(_ cont return fc, nil } -func (ec *executionContext) _MetaV1ObjectMeta_creationTimestamp(ctx context.Context, field graphql.CollectedField, obj *v1.ObjectMeta) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_MetaV1ObjectMeta_creationTimestamp(ctx, field) +func (ec *executionContext) _KubeConfigCluster_extensions(ctx context.Context, field graphql.CollectedField, obj *model.KubeConfigCluster) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_KubeConfigCluster_extensions(ctx, field) if err != nil { return graphql.Null } @@ -16050,40 +16474,37 @@ func (ec *executionContext) _MetaV1ObjectMeta_creationTimestamp(ctx context.Cont ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.CreationTimestamp, nil + return obj.Extensions, nil }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } return graphql.Null } - res := resTmp.(v1.Time) + res := resTmp.(map[string]runtime.Object) fc.Result = res - return ec.marshalNMetaV1Time2k8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐTime(ctx, field.Selections, res) + return ec.marshalOKubeConfigExtensions2map(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_MetaV1ObjectMeta_creationTimestamp(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_KubeConfigCluster_extensions(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "MetaV1ObjectMeta", + Object: "KubeConfigCluster", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type MetaV1Time does not have child fields") + return nil, errors.New("field of type KubeConfigExtensions does not have child fields") }, } return fc, nil } -func (ec *executionContext) _MetaV1ObjectMeta_deletionTimestamp(ctx context.Context, field graphql.CollectedField, obj *v1.ObjectMeta) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_MetaV1ObjectMeta_deletionTimestamp(ctx, field) +func (ec *executionContext) _KubeConfigContext_name(ctx context.Context, field graphql.CollectedField, obj *model.KubeConfigContext) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_KubeConfigContext_name(ctx, field) if err != nil { return graphql.Null } @@ -16094,37 +16515,40 @@ func (ec *executionContext) _MetaV1ObjectMeta_deletionTimestamp(ctx context.Cont ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.DeletionTimestamp, nil + return obj.Name, nil }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } return graphql.Null } - res := resTmp.(*v1.Time) + res := resTmp.(string) fc.Result = res - return ec.marshalOMetaV1Time2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐTime(ctx, field.Selections, res) + return ec.marshalNString2string(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_MetaV1ObjectMeta_deletionTimestamp(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_KubeConfigContext_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "MetaV1ObjectMeta", + Object: "KubeConfigContext", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type MetaV1Time does not have child fields") + return nil, errors.New("field of type String does not have child fields") }, } return fc, nil } -func (ec *executionContext) _MetaV1ObjectMeta_labels(ctx context.Context, field graphql.CollectedField, obj *v1.ObjectMeta) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_MetaV1ObjectMeta_labels(ctx, field) +func (ec *executionContext) _KubeConfigContext_locationOfOrigin(ctx context.Context, field graphql.CollectedField, obj *model.KubeConfigContext) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_KubeConfigContext_locationOfOrigin(ctx, field) if err != nil { return graphql.Null } @@ -16135,37 +16559,40 @@ func (ec *executionContext) _MetaV1ObjectMeta_labels(ctx context.Context, field ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.Labels, nil + return obj.LocationOfOrigin, nil }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } return graphql.Null } - res := resTmp.(map[string]string) + res := resTmp.(string) fc.Result = res - return ec.marshalOStringMap2map(ctx, field.Selections, res) + return ec.marshalNString2string(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_MetaV1ObjectMeta_labels(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_KubeConfigContext_locationOfOrigin(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "MetaV1ObjectMeta", + Object: "KubeConfigContext", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type StringMap does not have child fields") + return nil, errors.New("field of type String does not have child fields") }, } return fc, nil } -func (ec *executionContext) _MetaV1ObjectMeta_annotations(ctx context.Context, field graphql.CollectedField, obj *v1.ObjectMeta) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_MetaV1ObjectMeta_annotations(ctx, field) +func (ec *executionContext) _KubeConfigContext_cluster(ctx context.Context, field graphql.CollectedField, obj *model.KubeConfigContext) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_KubeConfigContext_cluster(ctx, field) if err != nil { return graphql.Null } @@ -16176,37 +16603,40 @@ func (ec *executionContext) _MetaV1ObjectMeta_annotations(ctx context.Context, f ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.Annotations, nil + return obj.Cluster, nil }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } return graphql.Null } - res := resTmp.(map[string]string) + res := resTmp.(string) fc.Result = res - return ec.marshalOStringMap2map(ctx, field.Selections, res) + return ec.marshalNString2string(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_MetaV1ObjectMeta_annotations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_KubeConfigContext_cluster(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "MetaV1ObjectMeta", + Object: "KubeConfigContext", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type StringMap does not have child fields") + return nil, errors.New("field of type String does not have child fields") }, } return fc, nil } -func (ec *executionContext) _MetaV1ObjectMeta_ownerReferences(ctx context.Context, field graphql.CollectedField, obj *v1.ObjectMeta) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_MetaV1ObjectMeta_ownerReferences(ctx, field) +func (ec *executionContext) _KubeConfigContext_authInfo(ctx context.Context, field graphql.CollectedField, obj *model.KubeConfigContext) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_KubeConfigContext_authInfo(ctx, field) if err != nil { return graphql.Null } @@ -16217,9 +16647,9 @@ func (ec *executionContext) _MetaV1ObjectMeta_ownerReferences(ctx context.Contex ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.OwnerReferences, nil + return obj.AuthInfo, nil }) if err != nil { ec.Error(ctx, err) @@ -16231,38 +16661,26 @@ func (ec *executionContext) _MetaV1ObjectMeta_ownerReferences(ctx context.Contex } return graphql.Null } - res := resTmp.([]v1.OwnerReference) + res := resTmp.(string) fc.Result = res - return ec.marshalNMetaV1OwnerReference2ᚕk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐOwnerReferenceᚄ(ctx, field.Selections, res) + return ec.marshalNString2string(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_MetaV1ObjectMeta_ownerReferences(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_KubeConfigContext_authInfo(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "MetaV1ObjectMeta", + Object: "KubeConfigContext", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "apiVersion": - return ec.fieldContext_MetaV1OwnerReference_apiVersion(ctx, field) - case "kind": - return ec.fieldContext_MetaV1OwnerReference_kind(ctx, field) - case "name": - return ec.fieldContext_MetaV1OwnerReference_name(ctx, field) - case "uid": - return ec.fieldContext_MetaV1OwnerReference_uid(ctx, field) - case "controller": - return ec.fieldContext_MetaV1OwnerReference_controller(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type MetaV1OwnerReference", field.Name) + return nil, errors.New("field of type String does not have child fields") }, } return fc, nil } -func (ec *executionContext) _MetaV1OwnerReference_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v1.OwnerReference) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_MetaV1OwnerReference_apiVersion(ctx, field) +func (ec *executionContext) _KubeConfigContext_namespace(ctx context.Context, field graphql.CollectedField, obj *model.KubeConfigContext) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_KubeConfigContext_namespace(ctx, field) if err != nil { return graphql.Null } @@ -16273,9 +16691,9 @@ func (ec *executionContext) _MetaV1OwnerReference_apiVersion(ctx context.Context ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.APIVersion, nil + return obj.Namespace, nil }) if err != nil { ec.Error(ctx, err) @@ -16292,9 +16710,9 @@ func (ec *executionContext) _MetaV1OwnerReference_apiVersion(ctx context.Context return ec.marshalNString2string(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_MetaV1OwnerReference_apiVersion(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_KubeConfigContext_namespace(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "MetaV1OwnerReference", + Object: "KubeConfigContext", Field: field, IsMethod: false, IsResolver: false, @@ -16305,8 +16723,8 @@ func (ec *executionContext) fieldContext_MetaV1OwnerReference_apiVersion(_ conte return fc, nil } -func (ec *executionContext) _MetaV1OwnerReference_kind(ctx context.Context, field graphql.CollectedField, obj *v1.OwnerReference) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_MetaV1OwnerReference_kind(ctx, field) +func (ec *executionContext) _KubeConfigContext_extensions(ctx context.Context, field graphql.CollectedField, obj *model.KubeConfigContext) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_KubeConfigContext_extensions(ctx, field) if err != nil { return graphql.Null } @@ -16317,40 +16735,37 @@ func (ec *executionContext) _MetaV1OwnerReference_kind(ctx context.Context, fiel ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.Kind, nil + return obj.Extensions, nil }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } return graphql.Null } - res := resTmp.(string) + res := resTmp.(map[string]runtime.Object) fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) + return ec.marshalOKubeConfigExtensions2map(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_MetaV1OwnerReference_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_KubeConfigContext_extensions(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "MetaV1OwnerReference", + Object: "KubeConfigContext", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") + return nil, errors.New("field of type KubeConfigExtensions does not have child fields") }, } return fc, nil } -func (ec *executionContext) _MetaV1OwnerReference_name(ctx context.Context, field graphql.CollectedField, obj *v1.OwnerReference) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_MetaV1OwnerReference_name(ctx, field) +func (ec *executionContext) _KubeConfigWatchEvent_type(ctx context.Context, field graphql.CollectedField, obj *model.KubeConfigWatchEvent) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_KubeConfigWatchEvent_type(ctx, field) if err != nil { return graphql.Null } @@ -16361,9 +16776,9 @@ func (ec *executionContext) _MetaV1OwnerReference_name(ctx context.Context, fiel ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.Name, nil + return obj.Type, nil }) if err != nil { ec.Error(ctx, err) @@ -16375,26 +16790,26 @@ func (ec *executionContext) _MetaV1OwnerReference_name(ctx context.Context, fiel } return graphql.Null } - res := resTmp.(string) + res := resTmp.(watch.EventType) fc.Result = res - return ec.marshalNString2string(ctx, field.Selections, res) + return ec.marshalNWatchEventType2k8sᚗioᚋapimachineryᚋpkgᚋwatchᚐEventType(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_MetaV1OwnerReference_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_KubeConfigWatchEvent_type(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "MetaV1OwnerReference", + Object: "KubeConfigWatchEvent", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type String does not have child fields") + return nil, errors.New("field of type WatchEventType does not have child fields") }, } return fc, nil } -func (ec *executionContext) _MetaV1OwnerReference_uid(ctx context.Context, field graphql.CollectedField, obj *v1.OwnerReference) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_MetaV1OwnerReference_uid(ctx, field) +func (ec *executionContext) _KubeConfigWatchEvent_object(ctx context.Context, field graphql.CollectedField, obj *model.KubeConfigWatchEvent) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_KubeConfigWatchEvent_object(ctx, field) if err != nil { return graphql.Null } @@ -16405,40 +16820,49 @@ func (ec *executionContext) _MetaV1OwnerReference_uid(ctx context.Context, field ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.UID, nil + return obj.Object, nil }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } return graphql.Null } - res := resTmp.(types.UID) + res := resTmp.(*model.KubeConfig) fc.Result = res - return ec.marshalNID2k8sᚗioᚋapimachineryᚋpkgᚋtypesᚐUID(ctx, field.Selections, res) + return ec.marshalOKubeConfig2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐKubeConfig(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_MetaV1OwnerReference_uid(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_KubeConfigWatchEvent_object(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "MetaV1OwnerReference", + Object: "KubeConfigWatchEvent", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type ID does not have child fields") + switch field.Name { + case "authInfos": + return ec.fieldContext_KubeConfig_authInfos(ctx, field) + case "clusters": + return ec.fieldContext_KubeConfig_clusters(ctx, field) + case "contexts": + return ec.fieldContext_KubeConfig_contexts(ctx, field) + case "currentContext": + return ec.fieldContext_KubeConfig_currentContext(ctx, field) + case "extensions": + return ec.fieldContext_KubeConfig_extensions(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type KubeConfig", field.Name) }, } return fc, nil } -func (ec *executionContext) _MetaV1OwnerReference_controller(ctx context.Context, field graphql.CollectedField, obj *v1.OwnerReference) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_MetaV1OwnerReference_controller(ctx, field) +func (ec *executionContext) _LogRecord_timestamp(ctx context.Context, field graphql.CollectedField, obj *model.LogRecord) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_LogRecord_timestamp(ctx, field) if err != nil { return graphql.Null } @@ -16449,37 +16873,40 @@ func (ec *executionContext) _MetaV1OwnerReference_controller(ctx context.Context ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.Controller, nil + return obj.Timestamp, nil }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } return graphql.Null } - res := resTmp.(*bool) + res := resTmp.(time.Time) fc.Result = res - return ec.marshalOBoolean2ᚖbool(ctx, field.Selections, res) + return ec.marshalNTime2timeᚐTime(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_MetaV1OwnerReference_controller(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_LogRecord_timestamp(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "MetaV1OwnerReference", + Object: "LogRecord", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Boolean does not have child fields") + return nil, errors.New("field of type Time does not have child fields") }, } return fc, nil } -func (ec *executionContext) _PageInfo_endCursor(ctx context.Context, field graphql.CollectedField, obj *model.PageInfo) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_PageInfo_endCursor(ctx, field) +func (ec *executionContext) _LogRecord_message(ctx context.Context, field graphql.CollectedField, obj *model.LogRecord) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_LogRecord_message(ctx, field) if err != nil { return graphql.Null } @@ -16490,37 +16917,40 @@ func (ec *executionContext) _PageInfo_endCursor(ctx context.Context, field graph ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.EndCursor, nil + return obj.Message, nil }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } return graphql.Null } - res := resTmp.(*string) + res := resTmp.(string) fc.Result = res - return ec.marshalOID2ᚖstring(ctx, field.Selections, res) + return ec.marshalNString2string(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_PageInfo_endCursor(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_LogRecord_message(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "PageInfo", + Object: "LogRecord", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type ID does not have child fields") + return nil, errors.New("field of type String does not have child fields") }, } return fc, nil } -func (ec *executionContext) _PageInfo_hasNextPage(ctx context.Context, field graphql.CollectedField, obj *model.PageInfo) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_PageInfo_hasNextPage(ctx, field) +func (ec *executionContext) _MetaV1LabelSelector_matchLabels(ctx context.Context, field graphql.CollectedField, obj *v1.LabelSelector) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_MetaV1LabelSelector_matchLabels(ctx, field) if err != nil { return graphql.Null } @@ -16531,40 +16961,37 @@ func (ec *executionContext) _PageInfo_hasNextPage(ctx context.Context, field gra ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.HasNextPage, nil + return obj.MatchLabels, nil }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } return graphql.Null } - res := resTmp.(bool) + res := resTmp.(map[string]string) fc.Result = res - return ec.marshalNBoolean2bool(ctx, field.Selections, res) + return ec.marshalOStringMap2map(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_PageInfo_hasNextPage(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_MetaV1LabelSelector_matchLabels(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "PageInfo", + Object: "MetaV1LabelSelector", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Boolean does not have child fields") + return nil, errors.New("field of type StringMap does not have child fields") }, } return fc, nil } -func (ec *executionContext) _PageInfo_hasPreviousPage(ctx context.Context, field graphql.CollectedField, obj *model.PageInfo) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_PageInfo_hasPreviousPage(ctx, field) +func (ec *executionContext) _MetaV1LabelSelector_matchExpressions(ctx context.Context, field graphql.CollectedField, obj *v1.LabelSelector) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_MetaV1LabelSelector_matchExpressions(ctx, field) if err != nil { return graphql.Null } @@ -16575,9 +17002,9 @@ func (ec *executionContext) _PageInfo_hasPreviousPage(ctx context.Context, field ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.HasPreviousPage, nil + return obj.MatchExpressions, nil }) if err != nil { ec.Error(ctx, err) @@ -16589,26 +17016,34 @@ func (ec *executionContext) _PageInfo_hasPreviousPage(ctx context.Context, field } return graphql.Null } - res := resTmp.(bool) + res := resTmp.([]v1.LabelSelectorRequirement) fc.Result = res - return ec.marshalNBoolean2bool(ctx, field.Selections, res) + return ec.marshalNMetaV1LabelSelectorRequirement2ᚕk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐLabelSelectorRequirementᚄ(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_PageInfo_hasPreviousPage(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_MetaV1LabelSelector_matchExpressions(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "PageInfo", + Object: "MetaV1LabelSelector", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Boolean does not have child fields") + switch field.Name { + case "key": + return ec.fieldContext_MetaV1LabelSelectorRequirement_key(ctx, field) + case "operator": + return ec.fieldContext_MetaV1LabelSelectorRequirement_operator(ctx, field) + case "values": + return ec.fieldContext_MetaV1LabelSelectorRequirement_values(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type MetaV1LabelSelectorRequirement", field.Name) }, } return fc, nil } -func (ec *executionContext) _PageInfo_startCursor(ctx context.Context, field graphql.CollectedField, obj *model.PageInfo) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_PageInfo_startCursor(ctx, field) +func (ec *executionContext) _MetaV1LabelSelectorRequirement_key(ctx context.Context, field graphql.CollectedField, obj *v1.LabelSelectorRequirement) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_MetaV1LabelSelectorRequirement_key(ctx, field) if err != nil { return graphql.Null } @@ -16619,37 +17054,40 @@ func (ec *executionContext) _PageInfo_startCursor(ctx context.Context, field gra ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.StartCursor, nil + return obj.Key, nil }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } return graphql.Null } - res := resTmp.(*string) + res := resTmp.(string) fc.Result = res - return ec.marshalOID2ᚖstring(ctx, field.Selections, res) + return ec.marshalNString2string(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_PageInfo_startCursor(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_MetaV1LabelSelectorRequirement_key(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "PageInfo", + Object: "MetaV1LabelSelectorRequirement", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type ID does not have child fields") + return nil, errors.New("field of type String does not have child fields") }, } return fc, nil } -func (ec *executionContext) _PodLogQueryResponse_results(ctx context.Context, field graphql.CollectedField, obj *model.PodLogQueryResponse) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_PodLogQueryResponse_results(ctx, field) +func (ec *executionContext) _MetaV1LabelSelectorRequirement_operator(ctx context.Context, field graphql.CollectedField, obj *v1.LabelSelectorRequirement) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_MetaV1LabelSelectorRequirement_operator(ctx, field) if err != nil { return graphql.Null } @@ -16660,9 +17098,9 @@ func (ec *executionContext) _PodLogQueryResponse_results(ctx context.Context, fi ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.Results, nil + return obj.Operator, nil }) if err != nil { ec.Error(ctx, err) @@ -16674,32 +17112,26 @@ func (ec *executionContext) _PodLogQueryResponse_results(ctx context.Context, fi } return graphql.Null } - res := resTmp.([]model.LogRecord) + res := resTmp.(v1.LabelSelectorOperator) fc.Result = res - return ec.marshalNLogRecord2ᚕgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋserverᚋgraphᚋmodelᚐLogRecordᚄ(ctx, field.Selections, res) + return ec.marshalNMetaV1LabelSelectorOperator2k8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐLabelSelectorOperator(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_PodLogQueryResponse_results(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_MetaV1LabelSelectorRequirement_operator(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "PodLogQueryResponse", + Object: "MetaV1LabelSelectorRequirement", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "timestamp": - return ec.fieldContext_LogRecord_timestamp(ctx, field) - case "message": - return ec.fieldContext_LogRecord_message(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type LogRecord", field.Name) + return nil, errors.New("field of type MetaV1LabelSelectorOperator does not have child fields") }, } return fc, nil } -func (ec *executionContext) _PodLogQueryResponse_pageInfo(ctx context.Context, field graphql.CollectedField, obj *model.PodLogQueryResponse) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_PodLogQueryResponse_pageInfo(ctx, field) +func (ec *executionContext) _MetaV1LabelSelectorRequirement_values(ctx context.Context, field graphql.CollectedField, obj *v1.LabelSelectorRequirement) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_MetaV1LabelSelectorRequirement_values(ctx, field) if err != nil { return graphql.Null } @@ -16710,9 +17142,9 @@ func (ec *executionContext) _PodLogQueryResponse_pageInfo(ctx context.Context, f ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return obj.PageInfo, nil + return obj.Values, nil }) if err != nil { ec.Error(ctx, err) @@ -16724,25 +17156,1086 @@ func (ec *executionContext) _PodLogQueryResponse_pageInfo(ctx context.Context, f } return graphql.Null } - res := resTmp.(model.PageInfo) + res := resTmp.([]string) fc.Result = res - return ec.marshalNPageInfo2githubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋserverᚋgraphᚋmodelᚐPageInfo(ctx, field.Selections, res) + return ec.marshalNString2ᚕstringᚄ(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_PodLogQueryResponse_pageInfo(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_MetaV1LabelSelectorRequirement_values(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ - Object: "PodLogQueryResponse", + Object: "MetaV1LabelSelectorRequirement", Field: field, IsMethod: false, IsResolver: false, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "endCursor": - return ec.fieldContext_PageInfo_endCursor(ctx, field) - case "hasNextPage": - return ec.fieldContext_PageInfo_hasNextPage(ctx, field) - case "hasPreviousPage": - return ec.fieldContext_PageInfo_hasPreviousPage(ctx, field) + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _MetaV1ListMeta_resourceVersion(ctx context.Context, field graphql.CollectedField, obj *v1.ListMeta) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_MetaV1ListMeta_resourceVersion(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.ResourceVersion, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNString2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_MetaV1ListMeta_resourceVersion(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "MetaV1ListMeta", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _MetaV1ListMeta_continue(ctx context.Context, field graphql.CollectedField, obj *v1.ListMeta) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_MetaV1ListMeta_continue(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Continue, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNString2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_MetaV1ListMeta_continue(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "MetaV1ListMeta", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _MetaV1ListMeta_remainingItemCount(ctx context.Context, field graphql.CollectedField, obj *v1.ListMeta) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_MetaV1ListMeta_remainingItemCount(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.RemainingItemCount, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*int64) + fc.Result = res + return ec.marshalOInt642ᚖint64(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_MetaV1ListMeta_remainingItemCount(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "MetaV1ListMeta", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type Int64 does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _MetaV1ObjectMeta_uid(ctx context.Context, field graphql.CollectedField, obj *v1.ObjectMeta) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_MetaV1ObjectMeta_uid(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.UID, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(types.UID) + fc.Result = res + return ec.marshalNID2k8sᚗioᚋapimachineryᚋpkgᚋtypesᚐUID(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_MetaV1ObjectMeta_uid(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "MetaV1ObjectMeta", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type ID does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _MetaV1ObjectMeta_name(ctx context.Context, field graphql.CollectedField, obj *v1.ObjectMeta) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_MetaV1ObjectMeta_name(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNString2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_MetaV1ObjectMeta_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "MetaV1ObjectMeta", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _MetaV1ObjectMeta_namespace(ctx context.Context, field graphql.CollectedField, obj *v1.ObjectMeta) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_MetaV1ObjectMeta_namespace(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Namespace, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNString2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_MetaV1ObjectMeta_namespace(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "MetaV1ObjectMeta", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _MetaV1ObjectMeta_resourceVersion(ctx context.Context, field graphql.CollectedField, obj *v1.ObjectMeta) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_MetaV1ObjectMeta_resourceVersion(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.ResourceVersion, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNString2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_MetaV1ObjectMeta_resourceVersion(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "MetaV1ObjectMeta", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _MetaV1ObjectMeta_creationTimestamp(ctx context.Context, field graphql.CollectedField, obj *v1.ObjectMeta) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_MetaV1ObjectMeta_creationTimestamp(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.CreationTimestamp, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(v1.Time) + fc.Result = res + return ec.marshalNMetaV1Time2k8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐTime(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_MetaV1ObjectMeta_creationTimestamp(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "MetaV1ObjectMeta", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type MetaV1Time does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _MetaV1ObjectMeta_deletionTimestamp(ctx context.Context, field graphql.CollectedField, obj *v1.ObjectMeta) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_MetaV1ObjectMeta_deletionTimestamp(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.DeletionTimestamp, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*v1.Time) + fc.Result = res + return ec.marshalOMetaV1Time2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐTime(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_MetaV1ObjectMeta_deletionTimestamp(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "MetaV1ObjectMeta", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type MetaV1Time does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _MetaV1ObjectMeta_labels(ctx context.Context, field graphql.CollectedField, obj *v1.ObjectMeta) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_MetaV1ObjectMeta_labels(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Labels, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(map[string]string) + fc.Result = res + return ec.marshalOStringMap2map(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_MetaV1ObjectMeta_labels(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "MetaV1ObjectMeta", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type StringMap does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _MetaV1ObjectMeta_annotations(ctx context.Context, field graphql.CollectedField, obj *v1.ObjectMeta) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_MetaV1ObjectMeta_annotations(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Annotations, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(map[string]string) + fc.Result = res + return ec.marshalOStringMap2map(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_MetaV1ObjectMeta_annotations(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "MetaV1ObjectMeta", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type StringMap does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _MetaV1ObjectMeta_ownerReferences(ctx context.Context, field graphql.CollectedField, obj *v1.ObjectMeta) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_MetaV1ObjectMeta_ownerReferences(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.OwnerReferences, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.([]v1.OwnerReference) + fc.Result = res + return ec.marshalNMetaV1OwnerReference2ᚕk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐOwnerReferenceᚄ(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_MetaV1ObjectMeta_ownerReferences(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "MetaV1ObjectMeta", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "apiVersion": + return ec.fieldContext_MetaV1OwnerReference_apiVersion(ctx, field) + case "kind": + return ec.fieldContext_MetaV1OwnerReference_kind(ctx, field) + case "name": + return ec.fieldContext_MetaV1OwnerReference_name(ctx, field) + case "uid": + return ec.fieldContext_MetaV1OwnerReference_uid(ctx, field) + case "controller": + return ec.fieldContext_MetaV1OwnerReference_controller(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type MetaV1OwnerReference", field.Name) + }, + } + return fc, nil +} + +func (ec *executionContext) _MetaV1OwnerReference_apiVersion(ctx context.Context, field graphql.CollectedField, obj *v1.OwnerReference) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_MetaV1OwnerReference_apiVersion(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.APIVersion, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNString2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_MetaV1OwnerReference_apiVersion(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "MetaV1OwnerReference", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _MetaV1OwnerReference_kind(ctx context.Context, field graphql.CollectedField, obj *v1.OwnerReference) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_MetaV1OwnerReference_kind(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Kind, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNString2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_MetaV1OwnerReference_kind(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "MetaV1OwnerReference", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _MetaV1OwnerReference_name(ctx context.Context, field graphql.CollectedField, obj *v1.OwnerReference) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_MetaV1OwnerReference_name(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Name, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(string) + fc.Result = res + return ec.marshalNString2string(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_MetaV1OwnerReference_name(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "MetaV1OwnerReference", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type String does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _MetaV1OwnerReference_uid(ctx context.Context, field graphql.CollectedField, obj *v1.OwnerReference) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_MetaV1OwnerReference_uid(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.UID, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(types.UID) + fc.Result = res + return ec.marshalNID2k8sᚗioᚋapimachineryᚋpkgᚋtypesᚐUID(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_MetaV1OwnerReference_uid(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "MetaV1OwnerReference", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type ID does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _MetaV1OwnerReference_controller(ctx context.Context, field graphql.CollectedField, obj *v1.OwnerReference) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_MetaV1OwnerReference_controller(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Controller, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*bool) + fc.Result = res + return ec.marshalOBoolean2ᚖbool(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_MetaV1OwnerReference_controller(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "MetaV1OwnerReference", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type Boolean does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _Mutation_kubetailClusterAPIInstall(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Mutation_kubetailClusterAPIInstall(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return ec.resolvers.Mutation().KubetailClusterAPIInstall(rctx, fc.Args["kubeContext"].(*string)) + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*bool) + fc.Result = res + return ec.marshalOBoolean2ᚖbool(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_Mutation_kubetailClusterAPIInstall(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "Mutation", + Field: field, + IsMethod: true, + IsResolver: true, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type Boolean does not have child fields") + }, + } + defer func() { + if r := recover(); r != nil { + err = ec.Recover(ctx, r) + ec.Error(ctx, err) + } + }() + ctx = graphql.WithFieldContext(ctx, fc) + if fc.Args, err = ec.field_Mutation_kubetailClusterAPIInstall_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { + ec.Error(ctx, err) + return fc, err + } + return fc, nil +} + +func (ec *executionContext) _PageInfo_endCursor(ctx context.Context, field graphql.CollectedField, obj *model.PageInfo) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_PageInfo_endCursor(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.EndCursor, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*string) + fc.Result = res + return ec.marshalOID2ᚖstring(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_PageInfo_endCursor(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "PageInfo", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type ID does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _PageInfo_hasNextPage(ctx context.Context, field graphql.CollectedField, obj *model.PageInfo) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_PageInfo_hasNextPage(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.HasNextPage, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(bool) + fc.Result = res + return ec.marshalNBoolean2bool(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_PageInfo_hasNextPage(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "PageInfo", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type Boolean does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _PageInfo_hasPreviousPage(ctx context.Context, field graphql.CollectedField, obj *model.PageInfo) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_PageInfo_hasPreviousPage(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.HasPreviousPage, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(bool) + fc.Result = res + return ec.marshalNBoolean2bool(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_PageInfo_hasPreviousPage(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "PageInfo", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type Boolean does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _PageInfo_startCursor(ctx context.Context, field graphql.CollectedField, obj *model.PageInfo) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_PageInfo_startCursor(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.StartCursor, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*string) + fc.Result = res + return ec.marshalOID2ᚖstring(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_PageInfo_startCursor(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "PageInfo", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + return nil, errors.New("field of type ID does not have child fields") + }, + } + return fc, nil +} + +func (ec *executionContext) _PodLogQueryResponse_results(ctx context.Context, field graphql.CollectedField, obj *model.PodLogQueryResponse) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_PodLogQueryResponse_results(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.Results, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.([]*model.LogRecord) + fc.Result = res + return ec.marshalNLogRecord2ᚕᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐLogRecordᚄ(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_PodLogQueryResponse_results(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "PodLogQueryResponse", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "timestamp": + return ec.fieldContext_LogRecord_timestamp(ctx, field) + case "message": + return ec.fieldContext_LogRecord_message(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type LogRecord", field.Name) + }, + } + return fc, nil +} + +func (ec *executionContext) _PodLogQueryResponse_pageInfo(ctx context.Context, field graphql.CollectedField, obj *model.PodLogQueryResponse) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_PodLogQueryResponse_pageInfo(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return obj.PageInfo, nil + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } + return graphql.Null + } + res := resTmp.(*model.PageInfo) + fc.Result = res + return ec.marshalNPageInfo2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐPageInfo(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_PodLogQueryResponse_pageInfo(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "PodLogQueryResponse", + Field: field, + IsMethod: false, + IsResolver: false, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "endCursor": + return ec.fieldContext_PageInfo_endCursor(ctx, field) + case "hasNextPage": + return ec.fieldContext_PageInfo_hasNextPage(ctx, field) + case "hasPreviousPage": + return ec.fieldContext_PageInfo_hasPreviousPage(ctx, field) case "startCursor": return ec.fieldContext_PageInfo_startCursor(ctx, field) } @@ -16764,9 +18257,9 @@ func (ec *executionContext) _Query_appsV1DaemonSetsGet(ctx context.Context, fiel ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().AppsV1DaemonSetsGet(rctx, fc.Args["name"].(string), fc.Args["namespace"].(*string), fc.Args["options"].(*v1.GetOptions)) + return ec.resolvers.Query().AppsV1DaemonSetsGet(rctx, fc.Args["kubeContext"].(*string), fc.Args["namespace"].(*string), fc.Args["name"].(string), fc.Args["options"].(*v1.GetOptions)) }) if err != nil { ec.Error(ctx, err) @@ -16775,7 +18268,7 @@ func (ec *executionContext) _Query_appsV1DaemonSetsGet(ctx context.Context, fiel if resTmp == nil { return graphql.Null } - res := resTmp.(*v12.DaemonSet) + res := resTmp.(*v11.DaemonSet) fc.Result = res return ec.marshalOAppsV1DaemonSet2ᚖk8sᚗioᚋapiᚋappsᚋv1ᚐDaemonSet(ctx, field.Selections, res) } @@ -16830,9 +18323,9 @@ func (ec *executionContext) _Query_appsV1DaemonSetsList(ctx context.Context, fie ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().AppsV1DaemonSetsList(rctx, fc.Args["namespace"].(*string), fc.Args["options"].(*v1.ListOptions)) + return ec.resolvers.Query().AppsV1DaemonSetsList(rctx, fc.Args["kubeContext"].(*string), fc.Args["namespace"].(*string), fc.Args["options"].(*v1.ListOptions)) }) if err != nil { ec.Error(ctx, err) @@ -16841,7 +18334,7 @@ func (ec *executionContext) _Query_appsV1DaemonSetsList(ctx context.Context, fie if resTmp == nil { return graphql.Null } - res := resTmp.(*v12.DaemonSetList) + res := resTmp.(*v11.DaemonSetList) fc.Result = res return ec.marshalOAppsV1DaemonSetList2ᚖk8sᚗioᚋapiᚋappsᚋv1ᚐDaemonSetList(ctx, field.Selections, res) } @@ -16892,9 +18385,9 @@ func (ec *executionContext) _Query_appsV1DeploymentsGet(ctx context.Context, fie ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().AppsV1DeploymentsGet(rctx, fc.Args["name"].(string), fc.Args["namespace"].(*string), fc.Args["options"].(*v1.GetOptions)) + return ec.resolvers.Query().AppsV1DeploymentsGet(rctx, fc.Args["kubeContext"].(*string), fc.Args["namespace"].(*string), fc.Args["name"].(string), fc.Args["options"].(*v1.GetOptions)) }) if err != nil { ec.Error(ctx, err) @@ -16903,7 +18396,7 @@ func (ec *executionContext) _Query_appsV1DeploymentsGet(ctx context.Context, fie if resTmp == nil { return graphql.Null } - res := resTmp.(*v12.Deployment) + res := resTmp.(*v11.Deployment) fc.Result = res return ec.marshalOAppsV1Deployment2ᚖk8sᚗioᚋapiᚋappsᚋv1ᚐDeployment(ctx, field.Selections, res) } @@ -16958,9 +18451,9 @@ func (ec *executionContext) _Query_appsV1DeploymentsList(ctx context.Context, fi ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().AppsV1DeploymentsList(rctx, fc.Args["namespace"].(*string), fc.Args["options"].(*v1.ListOptions)) + return ec.resolvers.Query().AppsV1DeploymentsList(rctx, fc.Args["kubeContext"].(*string), fc.Args["namespace"].(*string), fc.Args["options"].(*v1.ListOptions)) }) if err != nil { ec.Error(ctx, err) @@ -16969,7 +18462,7 @@ func (ec *executionContext) _Query_appsV1DeploymentsList(ctx context.Context, fi if resTmp == nil { return graphql.Null } - res := resTmp.(*v12.DeploymentList) + res := resTmp.(*v11.DeploymentList) fc.Result = res return ec.marshalOAppsV1DeploymentList2ᚖk8sᚗioᚋapiᚋappsᚋv1ᚐDeploymentList(ctx, field.Selections, res) } @@ -17020,9 +18513,9 @@ func (ec *executionContext) _Query_appsV1ReplicaSetsGet(ctx context.Context, fie ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().AppsV1ReplicaSetsGet(rctx, fc.Args["name"].(string), fc.Args["namespace"].(*string), fc.Args["options"].(*v1.GetOptions)) + return ec.resolvers.Query().AppsV1ReplicaSetsGet(rctx, fc.Args["kubeContext"].(*string), fc.Args["namespace"].(*string), fc.Args["name"].(string), fc.Args["options"].(*v1.GetOptions)) }) if err != nil { ec.Error(ctx, err) @@ -17031,7 +18524,7 @@ func (ec *executionContext) _Query_appsV1ReplicaSetsGet(ctx context.Context, fie if resTmp == nil { return graphql.Null } - res := resTmp.(*v12.ReplicaSet) + res := resTmp.(*v11.ReplicaSet) fc.Result = res return ec.marshalOAppsV1ReplicaSet2ᚖk8sᚗioᚋapiᚋappsᚋv1ᚐReplicaSet(ctx, field.Selections, res) } @@ -17086,9 +18579,9 @@ func (ec *executionContext) _Query_appsV1ReplicaSetsList(ctx context.Context, fi ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().AppsV1ReplicaSetsList(rctx, fc.Args["namespace"].(*string), fc.Args["options"].(*v1.ListOptions)) + return ec.resolvers.Query().AppsV1ReplicaSetsList(rctx, fc.Args["kubeContext"].(*string), fc.Args["namespace"].(*string), fc.Args["options"].(*v1.ListOptions)) }) if err != nil { ec.Error(ctx, err) @@ -17097,7 +18590,7 @@ func (ec *executionContext) _Query_appsV1ReplicaSetsList(ctx context.Context, fi if resTmp == nil { return graphql.Null } - res := resTmp.(*v12.ReplicaSetList) + res := resTmp.(*v11.ReplicaSetList) fc.Result = res return ec.marshalOAppsV1ReplicaSetList2ᚖk8sᚗioᚋapiᚋappsᚋv1ᚐReplicaSetList(ctx, field.Selections, res) } @@ -17148,9 +18641,9 @@ func (ec *executionContext) _Query_appsV1StatefulSetsGet(ctx context.Context, fi ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().AppsV1StatefulSetsGet(rctx, fc.Args["name"].(string), fc.Args["namespace"].(*string), fc.Args["options"].(*v1.GetOptions)) + return ec.resolvers.Query().AppsV1StatefulSetsGet(rctx, fc.Args["kubeContext"].(*string), fc.Args["namespace"].(*string), fc.Args["name"].(string), fc.Args["options"].(*v1.GetOptions)) }) if err != nil { ec.Error(ctx, err) @@ -17159,7 +18652,7 @@ func (ec *executionContext) _Query_appsV1StatefulSetsGet(ctx context.Context, fi if resTmp == nil { return graphql.Null } - res := resTmp.(*v12.StatefulSet) + res := resTmp.(*v11.StatefulSet) fc.Result = res return ec.marshalOAppsV1StatefulSet2ᚖk8sᚗioᚋapiᚋappsᚋv1ᚐStatefulSet(ctx, field.Selections, res) } @@ -17212,9 +18705,9 @@ func (ec *executionContext) _Query_appsV1StatefulSetsList(ctx context.Context, f ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().AppsV1StatefulSetsList(rctx, fc.Args["namespace"].(*string), fc.Args["options"].(*v1.ListOptions)) + return ec.resolvers.Query().AppsV1StatefulSetsList(rctx, fc.Args["kubeContext"].(*string), fc.Args["namespace"].(*string), fc.Args["options"].(*v1.ListOptions)) }) if err != nil { ec.Error(ctx, err) @@ -17223,7 +18716,7 @@ func (ec *executionContext) _Query_appsV1StatefulSetsList(ctx context.Context, f if resTmp == nil { return graphql.Null } - res := resTmp.(*v12.StatefulSetList) + res := resTmp.(*v11.StatefulSetList) fc.Result = res return ec.marshalOAppsV1StatefulSetList2ᚖk8sᚗioᚋapiᚋappsᚋv1ᚐStatefulSetList(ctx, field.Selections, res) } @@ -17274,9 +18767,9 @@ func (ec *executionContext) _Query_batchV1CronJobsGet(ctx context.Context, field ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().BatchV1CronJobsGet(rctx, fc.Args["name"].(string), fc.Args["namespace"].(*string), fc.Args["options"].(*v1.GetOptions)) + return ec.resolvers.Query().BatchV1CronJobsGet(rctx, fc.Args["kubeContext"].(*string), fc.Args["namespace"].(*string), fc.Args["name"].(string), fc.Args["options"].(*v1.GetOptions)) }) if err != nil { ec.Error(ctx, err) @@ -17285,7 +18778,7 @@ func (ec *executionContext) _Query_batchV1CronJobsGet(ctx context.Context, field if resTmp == nil { return graphql.Null } - res := resTmp.(*v13.CronJob) + res := resTmp.(*v12.CronJob) fc.Result = res return ec.marshalOBatchV1CronJob2ᚖk8sᚗioᚋapiᚋbatchᚋv1ᚐCronJob(ctx, field.Selections, res) } @@ -17340,9 +18833,9 @@ func (ec *executionContext) _Query_batchV1CronJobsList(ctx context.Context, fiel ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().BatchV1CronJobsList(rctx, fc.Args["namespace"].(*string), fc.Args["options"].(*v1.ListOptions)) + return ec.resolvers.Query().BatchV1CronJobsList(rctx, fc.Args["kubeContext"].(*string), fc.Args["namespace"].(*string), fc.Args["options"].(*v1.ListOptions)) }) if err != nil { ec.Error(ctx, err) @@ -17351,7 +18844,7 @@ func (ec *executionContext) _Query_batchV1CronJobsList(ctx context.Context, fiel if resTmp == nil { return graphql.Null } - res := resTmp.(*v13.CronJobList) + res := resTmp.(*v12.CronJobList) fc.Result = res return ec.marshalOBatchV1CronJobList2ᚖk8sᚗioᚋapiᚋbatchᚋv1ᚐCronJobList(ctx, field.Selections, res) } @@ -17402,9 +18895,9 @@ func (ec *executionContext) _Query_batchV1JobsGet(ctx context.Context, field gra ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().BatchV1JobsGet(rctx, fc.Args["name"].(string), fc.Args["namespace"].(*string), fc.Args["options"].(*v1.GetOptions)) + return ec.resolvers.Query().BatchV1JobsGet(rctx, fc.Args["kubeContext"].(*string), fc.Args["namespace"].(*string), fc.Args["name"].(string), fc.Args["options"].(*v1.GetOptions)) }) if err != nil { ec.Error(ctx, err) @@ -17413,7 +18906,7 @@ func (ec *executionContext) _Query_batchV1JobsGet(ctx context.Context, field gra if resTmp == nil { return graphql.Null } - res := resTmp.(*v13.Job) + res := resTmp.(*v12.Job) fc.Result = res return ec.marshalOBatchV1Job2ᚖk8sᚗioᚋapiᚋbatchᚋv1ᚐJob(ctx, field.Selections, res) } @@ -17468,9 +18961,9 @@ func (ec *executionContext) _Query_batchV1JobsList(ctx context.Context, field gr ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().BatchV1JobsList(rctx, fc.Args["namespace"].(*string), fc.Args["options"].(*v1.ListOptions)) + return ec.resolvers.Query().BatchV1JobsList(rctx, fc.Args["kubeContext"].(*string), fc.Args["namespace"].(*string), fc.Args["options"].(*v1.ListOptions)) }) if err != nil { ec.Error(ctx, err) @@ -17479,7 +18972,7 @@ func (ec *executionContext) _Query_batchV1JobsList(ctx context.Context, field gr if resTmp == nil { return graphql.Null } - res := resTmp.(*v13.JobList) + res := resTmp.(*v12.JobList) fc.Result = res return ec.marshalOBatchV1JobList2ᚖk8sᚗioᚋapiᚋbatchᚋv1ᚐJobList(ctx, field.Selections, res) } @@ -17530,9 +19023,9 @@ func (ec *executionContext) _Query_coreV1NamespacesList(ctx context.Context, fie ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().CoreV1NamespacesList(rctx, fc.Args["options"].(*v1.ListOptions)) + return ec.resolvers.Query().CoreV1NamespacesList(rctx, fc.Args["kubeContext"].(*string), fc.Args["options"].(*v1.ListOptions)) }) if err != nil { ec.Error(ctx, err) @@ -17541,7 +19034,7 @@ func (ec *executionContext) _Query_coreV1NamespacesList(ctx context.Context, fie if resTmp == nil { return graphql.Null } - res := resTmp.(*v11.NamespaceList) + res := resTmp.(*v13.NamespaceList) fc.Result = res return ec.marshalOCoreV1NamespaceList2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐNamespaceList(ctx, field.Selections, res) } @@ -17592,9 +19085,9 @@ func (ec *executionContext) _Query_coreV1NodesList(ctx context.Context, field gr ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().CoreV1NodesList(rctx, fc.Args["options"].(*v1.ListOptions)) + return ec.resolvers.Query().CoreV1NodesList(rctx, fc.Args["kubeContext"].(*string), fc.Args["options"].(*v1.ListOptions)) }) if err != nil { ec.Error(ctx, err) @@ -17603,7 +19096,7 @@ func (ec *executionContext) _Query_coreV1NodesList(ctx context.Context, field gr if resTmp == nil { return graphql.Null } - res := resTmp.(*v11.NodeList) + res := resTmp.(*v13.NodeList) fc.Result = res return ec.marshalOCoreV1NodeList2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐNodeList(ctx, field.Selections, res) } @@ -17654,9 +19147,9 @@ func (ec *executionContext) _Query_coreV1PodsGet(ctx context.Context, field grap ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().CoreV1PodsGet(rctx, fc.Args["namespace"].(*string), fc.Args["name"].(string), fc.Args["options"].(*v1.GetOptions)) + return ec.resolvers.Query().CoreV1PodsGet(rctx, fc.Args["kubeContext"].(*string), fc.Args["namespace"].(*string), fc.Args["name"].(string), fc.Args["options"].(*v1.GetOptions)) }) if err != nil { ec.Error(ctx, err) @@ -17665,7 +19158,7 @@ func (ec *executionContext) _Query_coreV1PodsGet(ctx context.Context, field grap if resTmp == nil { return graphql.Null } - res := resTmp.(*v11.Pod) + res := resTmp.(*v13.Pod) fc.Result = res return ec.marshalOCoreV1Pod2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐPod(ctx, field.Selections, res) } @@ -17720,9 +19213,9 @@ func (ec *executionContext) _Query_coreV1PodsList(ctx context.Context, field gra ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().CoreV1PodsList(rctx, fc.Args["namespace"].(*string), fc.Args["options"].(*v1.ListOptions)) + return ec.resolvers.Query().CoreV1PodsList(rctx, fc.Args["kubeContext"].(*string), fc.Args["namespace"].(*string), fc.Args["options"].(*v1.ListOptions)) }) if err != nil { ec.Error(ctx, err) @@ -17731,7 +19224,7 @@ func (ec *executionContext) _Query_coreV1PodsList(ctx context.Context, field gra if resTmp == nil { return graphql.Null } - res := resTmp.(*v11.PodList) + res := resTmp.(*v13.PodList) fc.Result = res return ec.marshalOCoreV1PodList2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐPodList(ctx, field.Selections, res) } @@ -17749,11 +19242,137 @@ func (ec *executionContext) fieldContext_Query_coreV1PodsList(ctx context.Contex case "apiVersion": return ec.fieldContext_CoreV1PodList_apiVersion(ctx, field) case "metadata": - return ec.fieldContext_CoreV1PodList_metadata(ctx, field) + return ec.fieldContext_CoreV1PodList_metadata(ctx, field) + case "items": + return ec.fieldContext_CoreV1PodList_items(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type CoreV1PodList", field.Name) + }, + } + defer func() { + if r := recover(); r != nil { + err = ec.Recover(ctx, r) + ec.Error(ctx, err) + } + }() + ctx = graphql.WithFieldContext(ctx, fc) + if fc.Args, err = ec.field_Query_coreV1PodsList_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { + ec.Error(ctx, err) + return fc, err + } + return fc, nil +} + +func (ec *executionContext) _Query_coreV1ServicesGet(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Query_coreV1ServicesGet(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return ec.resolvers.Query().CoreV1ServicesGet(rctx, fc.Args["kubeContext"].(*string), fc.Args["namespace"].(*string), fc.Args["name"].(string), fc.Args["options"].(*v1.GetOptions)) + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*v13.Service) + fc.Result = res + return ec.marshalOCoreV1Service2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐService(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_Query_coreV1ServicesGet(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "Query", + Field: field, + IsMethod: true, + IsResolver: true, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "id": + return ec.fieldContext_CoreV1Service_id(ctx, field) + case "kind": + return ec.fieldContext_CoreV1Service_kind(ctx, field) + case "apiVersion": + return ec.fieldContext_CoreV1Service_apiVersion(ctx, field) + case "metadata": + return ec.fieldContext_CoreV1Service_metadata(ctx, field) + case "spec": + return ec.fieldContext_CoreV1Service_spec(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type CoreV1Service", field.Name) + }, + } + defer func() { + if r := recover(); r != nil { + err = ec.Recover(ctx, r) + ec.Error(ctx, err) + } + }() + ctx = graphql.WithFieldContext(ctx, fc) + if fc.Args, err = ec.field_Query_coreV1ServicesGet_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { + ec.Error(ctx, err) + return fc, err + } + return fc, nil +} + +func (ec *executionContext) _Query_coreV1ServicesList(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Query_coreV1ServicesList(ctx, field) + if err != nil { + return graphql.Null + } + ctx = graphql.WithFieldContext(ctx, fc) + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = graphql.Null + } + }() + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return ec.resolvers.Query().CoreV1ServicesList(rctx, fc.Args["kubeContext"].(*string), fc.Args["namespace"].(*string), fc.Args["options"].(*v1.ListOptions)) + }) + if err != nil { + ec.Error(ctx, err) + return graphql.Null + } + if resTmp == nil { + return graphql.Null + } + res := resTmp.(*v13.ServiceList) + fc.Result = res + return ec.marshalOCoreV1ServiceList2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐServiceList(ctx, field.Selections, res) +} + +func (ec *executionContext) fieldContext_Query_coreV1ServicesList(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { + fc = &graphql.FieldContext{ + Object: "Query", + Field: field, + IsMethod: true, + IsResolver: true, + Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { + switch field.Name { + case "kind": + return ec.fieldContext_CoreV1ServiceList_kind(ctx, field) + case "apiVersion": + return ec.fieldContext_CoreV1ServiceList_apiVersion(ctx, field) + case "metadata": + return ec.fieldContext_CoreV1ServiceList_metadata(ctx, field) case "items": - return ec.fieldContext_CoreV1PodList_items(ctx, field) + return ec.fieldContext_CoreV1ServiceList_items(ctx, field) } - return nil, fmt.Errorf("no field named %q was found under type CoreV1PodList", field.Name) + return nil, fmt.Errorf("no field named %q was found under type CoreV1ServiceList", field.Name) }, } defer func() { @@ -17763,15 +19382,15 @@ func (ec *executionContext) fieldContext_Query_coreV1PodsList(ctx context.Contex } }() ctx = graphql.WithFieldContext(ctx, fc) - if fc.Args, err = ec.field_Query_coreV1PodsList_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { + if fc.Args, err = ec.field_Query_coreV1ServicesList_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) return fc, err } return fc, nil } -func (ec *executionContext) _Query_coreV1PodsGetLogs(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_Query_coreV1PodsGetLogs(ctx, field) +func (ec *executionContext) _Query_kubernetesAPIReadyWait(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Query_kubernetesAPIReadyWait(ctx, field) if err != nil { return graphql.Null } @@ -17782,36 +19401,33 @@ func (ec *executionContext) _Query_coreV1PodsGetLogs(ctx context.Context, field ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().CoreV1PodsGetLogs(rctx, fc.Args["namespace"].(*string), fc.Args["name"].(string), fc.Args["options"].(*v11.PodLogOptions)) + return ec.resolvers.Query().KubernetesAPIReadyWait(rctx, fc.Args["kubeContext"].(*string)) }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } return graphql.Null } - res := resTmp.([]model.LogRecord) + res := resTmp.(bool) fc.Result = res - return ec.marshalOLogRecord2ᚕgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋserverᚋgraphᚋmodelᚐLogRecordᚄ(ctx, field.Selections, res) + return ec.marshalNBoolean2bool(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_Query_coreV1PodsGetLogs(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_Query_kubernetesAPIReadyWait(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Query", Field: field, IsMethod: true, IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "timestamp": - return ec.fieldContext_LogRecord_timestamp(ctx, field) - case "message": - return ec.fieldContext_LogRecord_message(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type LogRecord", field.Name) + return nil, errors.New("field of type Boolean does not have child fields") }, } defer func() { @@ -17821,15 +19437,15 @@ func (ec *executionContext) fieldContext_Query_coreV1PodsGetLogs(ctx context.Con } }() ctx = graphql.WithFieldContext(ctx, fc) - if fc.Args, err = ec.field_Query_coreV1PodsGetLogs_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { + if fc.Args, err = ec.field_Query_kubernetesAPIReadyWait_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) return fc, err } return fc, nil } -func (ec *executionContext) _Query_logMetadataList(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_Query_logMetadataList(ctx, field) +func (ec *executionContext) _Query_kubernetesAPIHealthzGet(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Query_kubernetesAPIHealthzGet(ctx, field) if err != nil { return graphql.Null } @@ -17840,23 +19456,26 @@ func (ec *executionContext) _Query_logMetadataList(ctx context.Context, field gr ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().LogMetadataList(rctx, fc.Args["namespace"].(*string)) + return ec.resolvers.Query().KubernetesAPIHealthzGet(rctx, fc.Args["kubeContext"].(*string)) }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } return graphql.Null } - res := resTmp.(*agentpb.LogMetadataList) + res := resTmp.(*model.HealthCheckResponse) fc.Result = res - return ec.marshalOLogMetadataList2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋcommonᚋagentpbᚐLogMetadataList(ctx, field.Selections, res) + return ec.marshalNHealthCheckResponse2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐHealthCheckResponse(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_Query_logMetadataList(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_Query_kubernetesAPIHealthzGet(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Query", Field: field, @@ -17864,10 +19483,14 @@ func (ec *executionContext) fieldContext_Query_logMetadataList(ctx context.Conte IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { switch field.Name { - case "items": - return ec.fieldContext_LogMetadataList_items(ctx, field) + case "status": + return ec.fieldContext_HealthCheckResponse_status(ctx, field) + case "message": + return ec.fieldContext_HealthCheckResponse_message(ctx, field) + case "timestamp": + return ec.fieldContext_HealthCheckResponse_timestamp(ctx, field) } - return nil, fmt.Errorf("no field named %q was found under type LogMetadataList", field.Name) + return nil, fmt.Errorf("no field named %q was found under type HealthCheckResponse", field.Name) }, } defer func() { @@ -17877,15 +19500,15 @@ func (ec *executionContext) fieldContext_Query_logMetadataList(ctx context.Conte } }() ctx = graphql.WithFieldContext(ctx, fc) - if fc.Args, err = ec.field_Query_logMetadataList_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { + if fc.Args, err = ec.field_Query_kubernetesAPIHealthzGet_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) return fc, err } return fc, nil } -func (ec *executionContext) _Query_podLogHead(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_Query_podLogHead(ctx, field) +func (ec *executionContext) _Query_kubetailClusterAPIReadyWait(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Query_kubetailClusterAPIReadyWait(ctx, field) if err != nil { return graphql.Null } @@ -17896,58 +19519,33 @@ func (ec *executionContext) _Query_podLogHead(ctx context.Context, field graphql ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().PodLogHead(rctx, fc.Args["namespace"].(*string), fc.Args["name"].(string), fc.Args["container"].(*string), fc.Args["after"].(*string), fc.Args["since"].(*string), fc.Args["first"].(*int)) - } - - directive1 := func(ctx context.Context) (interface{}, error) { - if ec.directives.NullIfValidationFailed == nil { - var zeroVal *model.PodLogQueryResponse - return zeroVal, errors.New("directive nullIfValidationFailed is not implemented") - } - return ec.directives.NullIfValidationFailed(ctx, nil, directive0) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, graphql.ErrorOnPath(ctx, err) - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*model.PodLogQueryResponse); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kubetail-org/kubetail/modules/server/graph/model.PodLogQueryResponse`, tmp) + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return ec.resolvers.Query().KubetailClusterAPIReadyWait(rctx, fc.Args["kubeContext"].(*string), fc.Args["namespace"].(*string), fc.Args["serviceName"].(*string)) }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } return graphql.Null } - res := resTmp.(*model.PodLogQueryResponse) + res := resTmp.(bool) fc.Result = res - return ec.marshalOPodLogQueryResponse2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋserverᚋgraphᚋmodelᚐPodLogQueryResponse(ctx, field.Selections, res) + return ec.marshalNBoolean2bool(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_Query_podLogHead(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_Query_kubetailClusterAPIReadyWait(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Query", Field: field, IsMethod: true, IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - switch field.Name { - case "results": - return ec.fieldContext_PodLogQueryResponse_results(ctx, field) - case "pageInfo": - return ec.fieldContext_PodLogQueryResponse_pageInfo(ctx, field) - } - return nil, fmt.Errorf("no field named %q was found under type PodLogQueryResponse", field.Name) + return nil, errors.New("field of type Boolean does not have child fields") }, } defer func() { @@ -17957,15 +19555,15 @@ func (ec *executionContext) fieldContext_Query_podLogHead(ctx context.Context, f } }() ctx = graphql.WithFieldContext(ctx, fc) - if fc.Args, err = ec.field_Query_podLogHead_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { + if fc.Args, err = ec.field_Query_kubetailClusterAPIReadyWait_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) return fc, err } return fc, nil } -func (ec *executionContext) _Query_podLogTail(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_Query_podLogTail(ctx, field) +func (ec *executionContext) _Query_kubetailClusterAPIHealthzGet(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Query_kubetailClusterAPIHealthzGet(ctx, field) if err != nil { return graphql.Null } @@ -17976,45 +19574,26 @@ func (ec *executionContext) _Query_podLogTail(ctx context.Context, field graphql ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().PodLogTail(rctx, fc.Args["namespace"].(*string), fc.Args["name"].(string), fc.Args["container"].(*string), fc.Args["before"].(*string), fc.Args["last"].(*int)) - } - - directive1 := func(ctx context.Context) (interface{}, error) { - if ec.directives.NullIfValidationFailed == nil { - var zeroVal *model.PodLogQueryResponse - return zeroVal, errors.New("directive nullIfValidationFailed is not implemented") - } - return ec.directives.NullIfValidationFailed(ctx, nil, directive0) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, graphql.ErrorOnPath(ctx, err) - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(*model.PodLogQueryResponse); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kubetail-org/kubetail/modules/server/graph/model.PodLogQueryResponse`, tmp) + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return ec.resolvers.Query().KubetailClusterAPIHealthzGet(rctx, fc.Args["kubeContext"].(*string), fc.Args["namespace"].(*string), fc.Args["serviceName"].(*string)) }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } return graphql.Null } - res := resTmp.(*model.PodLogQueryResponse) + res := resTmp.(*model.HealthCheckResponse) fc.Result = res - return ec.marshalOPodLogQueryResponse2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋserverᚋgraphᚋmodelᚐPodLogQueryResponse(ctx, field.Selections, res) + return ec.marshalNHealthCheckResponse2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐHealthCheckResponse(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_Query_podLogTail(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_Query_kubetailClusterAPIHealthzGet(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Query", Field: field, @@ -18022,12 +19601,14 @@ func (ec *executionContext) fieldContext_Query_podLogTail(ctx context.Context, f IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { switch field.Name { - case "results": - return ec.fieldContext_PodLogQueryResponse_results(ctx, field) - case "pageInfo": - return ec.fieldContext_PodLogQueryResponse_pageInfo(ctx, field) + case "status": + return ec.fieldContext_HealthCheckResponse_status(ctx, field) + case "message": + return ec.fieldContext_HealthCheckResponse_message(ctx, field) + case "timestamp": + return ec.fieldContext_HealthCheckResponse_timestamp(ctx, field) } - return nil, fmt.Errorf("no field named %q was found under type PodLogQueryResponse", field.Name) + return nil, fmt.Errorf("no field named %q was found under type HealthCheckResponse", field.Name) }, } defer func() { @@ -18037,15 +19618,15 @@ func (ec *executionContext) fieldContext_Query_podLogTail(ctx context.Context, f } }() ctx = graphql.WithFieldContext(ctx, fc) - if fc.Args, err = ec.field_Query_podLogTail_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { + if fc.Args, err = ec.field_Query_kubetailClusterAPIHealthzGet_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) return fc, err } return fc, nil } -func (ec *executionContext) _Query_livezGet(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_Query_livezGet(ctx, field) +func (ec *executionContext) _Query_kubeConfigGet(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Query_kubeConfigGet(ctx, field) if err != nil { return graphql.Null } @@ -18056,26 +19637,23 @@ func (ec *executionContext) _Query_livezGet(ctx context.Context, field graphql.C ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().LivezGet(rctx) + return ec.resolvers.Query().KubeConfigGet(rctx) }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } return graphql.Null } - res := resTmp.(model.HealthCheckResponse) + res := resTmp.(*model.KubeConfig) fc.Result = res - return ec.marshalNHealthCheckResponse2githubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋserverᚋgraphᚋmodelᚐHealthCheckResponse(ctx, field.Selections, res) + return ec.marshalOKubeConfig2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐKubeConfig(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_Query_livezGet(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_Query_kubeConfigGet(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Query", Field: field, @@ -18083,21 +19661,25 @@ func (ec *executionContext) fieldContext_Query_livezGet(_ context.Context, field IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { switch field.Name { - case "status": - return ec.fieldContext_HealthCheckResponse_status(ctx, field) - case "message": - return ec.fieldContext_HealthCheckResponse_message(ctx, field) - case "timestamp": - return ec.fieldContext_HealthCheckResponse_timestamp(ctx, field) + case "authInfos": + return ec.fieldContext_KubeConfig_authInfos(ctx, field) + case "clusters": + return ec.fieldContext_KubeConfig_clusters(ctx, field) + case "contexts": + return ec.fieldContext_KubeConfig_contexts(ctx, field) + case "currentContext": + return ec.fieldContext_KubeConfig_currentContext(ctx, field) + case "extensions": + return ec.fieldContext_KubeConfig_extensions(ctx, field) } - return nil, fmt.Errorf("no field named %q was found under type HealthCheckResponse", field.Name) + return nil, fmt.Errorf("no field named %q was found under type KubeConfig", field.Name) }, } return fc, nil } -func (ec *executionContext) _Query_readyzGet(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_Query_readyzGet(ctx, field) +func (ec *executionContext) _Query_podLogHead(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Query_podLogHead(ctx, field) if err != nil { return graphql.Null } @@ -18108,26 +19690,45 @@ func (ec *executionContext) _Query_readyzGet(ctx context.Context, field graphql. ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().ReadyzGet(rctx) + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + directive0 := func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return ec.resolvers.Query().PodLogHead(rctx, fc.Args["kubeContext"].(*string), fc.Args["namespace"].(*string), fc.Args["name"].(string), fc.Args["container"].(*string), fc.Args["after"].(*string), fc.Args["since"].(*string), fc.Args["first"].(*int)) + } + + directive1 := func(ctx context.Context) (any, error) { + if ec.directives.NullIfValidationFailed == nil { + var zeroVal *model.PodLogQueryResponse + return zeroVal, errors.New("directive nullIfValidationFailed is not implemented") + } + return ec.directives.NullIfValidationFailed(ctx, nil, directive0) + } + + tmp, err := directive1(rctx) + if err != nil { + return nil, graphql.ErrorOnPath(ctx, err) + } + if tmp == nil { + return nil, nil + } + if data, ok := tmp.(*model.PodLogQueryResponse); ok { + return data, nil + } + return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kubetail-org/kubetail/modules/dashboard/graph/model.PodLogQueryResponse`, tmp) }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } return graphql.Null } - res := resTmp.(model.HealthCheckResponse) + res := resTmp.(*model.PodLogQueryResponse) fc.Result = res - return ec.marshalNHealthCheckResponse2githubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋserverᚋgraphᚋmodelᚐHealthCheckResponse(ctx, field.Selections, res) + return ec.marshalOPodLogQueryResponse2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐPodLogQueryResponse(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_Query_readyzGet(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_Query_podLogHead(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Query", Field: field, @@ -18135,21 +19736,30 @@ func (ec *executionContext) fieldContext_Query_readyzGet(_ context.Context, fiel IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { switch field.Name { - case "status": - return ec.fieldContext_HealthCheckResponse_status(ctx, field) - case "message": - return ec.fieldContext_HealthCheckResponse_message(ctx, field) - case "timestamp": - return ec.fieldContext_HealthCheckResponse_timestamp(ctx, field) + case "results": + return ec.fieldContext_PodLogQueryResponse_results(ctx, field) + case "pageInfo": + return ec.fieldContext_PodLogQueryResponse_pageInfo(ctx, field) } - return nil, fmt.Errorf("no field named %q was found under type HealthCheckResponse", field.Name) + return nil, fmt.Errorf("no field named %q was found under type PodLogQueryResponse", field.Name) }, } + defer func() { + if r := recover(); r != nil { + err = ec.Recover(ctx, r) + ec.Error(ctx, err) + } + }() + ctx = graphql.WithFieldContext(ctx, fc) + if fc.Args, err = ec.field_Query_podLogHead_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { + ec.Error(ctx, err) + return fc, err + } return fc, nil } -func (ec *executionContext) _Query_readyWait(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { - fc, err := ec.fieldContext_Query_readyWait(ctx, field) +func (ec *executionContext) _Query_podLogTail(ctx context.Context, field graphql.CollectedField) (ret graphql.Marshaler) { + fc, err := ec.fieldContext_Query_podLogTail(ctx, field) if err != nil { return graphql.Null } @@ -18160,33 +19770,58 @@ func (ec *executionContext) _Query_readyWait(ctx context.Context, field graphql. ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Query().ReadyWait(rctx, fc.Args["timeout"].(*int)) + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + directive0 := func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return ec.resolvers.Query().PodLogTail(rctx, fc.Args["kubeContext"].(*string), fc.Args["namespace"].(*string), fc.Args["name"].(string), fc.Args["container"].(*string), fc.Args["before"].(*string), fc.Args["last"].(*int)) + } + + directive1 := func(ctx context.Context) (any, error) { + if ec.directives.NullIfValidationFailed == nil { + var zeroVal *model.PodLogQueryResponse + return zeroVal, errors.New("directive nullIfValidationFailed is not implemented") + } + return ec.directives.NullIfValidationFailed(ctx, nil, directive0) + } + + tmp, err := directive1(rctx) + if err != nil { + return nil, graphql.ErrorOnPath(ctx, err) + } + if tmp == nil { + return nil, nil + } + if data, ok := tmp.(*model.PodLogQueryResponse); ok { + return data, nil + } + return nil, fmt.Errorf(`unexpected type %T from directive, should be *github.com/kubetail-org/kubetail/modules/dashboard/graph/model.PodLogQueryResponse`, tmp) }) if err != nil { ec.Error(ctx, err) return graphql.Null } if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } return graphql.Null } - res := resTmp.(bool) + res := resTmp.(*model.PodLogQueryResponse) fc.Result = res - return ec.marshalNBoolean2bool(ctx, field.Selections, res) + return ec.marshalOPodLogQueryResponse2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐPodLogQueryResponse(ctx, field.Selections, res) } -func (ec *executionContext) fieldContext_Query_readyWait(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_Query_podLogTail(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Query", Field: field, IsMethod: true, IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { - return nil, errors.New("field of type Boolean does not have child fields") + switch field.Name { + case "results": + return ec.fieldContext_PodLogQueryResponse_results(ctx, field) + case "pageInfo": + return ec.fieldContext_PodLogQueryResponse_pageInfo(ctx, field) + } + return nil, fmt.Errorf("no field named %q was found under type PodLogQueryResponse", field.Name) }, } defer func() { @@ -18196,7 +19831,7 @@ func (ec *executionContext) fieldContext_Query_readyWait(ctx context.Context, fi } }() ctx = graphql.WithFieldContext(ctx, fc) - if fc.Args, err = ec.field_Query_readyWait_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { + if fc.Args, err = ec.field_Query_podLogTail_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) return fc, err } @@ -18215,7 +19850,7 @@ func (ec *executionContext) _Query___type(ctx context.Context, field graphql.Col ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return ec.introspectType(fc.Args["name"].(string)) }) @@ -18289,7 +19924,7 @@ func (ec *executionContext) _Query___schema(ctx context.Context, field graphql.C ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return ec.introspectSchema() }) @@ -18344,9 +19979,9 @@ func (ec *executionContext) _Subscription_appsV1DaemonSetsWatch(ctx context.Cont ret = nil } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().AppsV1DaemonSetsWatch(rctx, fc.Args["namespace"].(*string), fc.Args["options"].(*v1.ListOptions)) + return ec.resolvers.Subscription().AppsV1DaemonSetsWatch(rctx, fc.Args["kubeContext"].(*string), fc.Args["namespace"].(*string), fc.Args["options"].(*v1.ListOptions)) }) if err != nil { ec.Error(ctx, err) @@ -18416,9 +20051,9 @@ func (ec *executionContext) _Subscription_appsV1DeploymentsWatch(ctx context.Con ret = nil } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().AppsV1DeploymentsWatch(rctx, fc.Args["namespace"].(*string), fc.Args["options"].(*v1.ListOptions)) + return ec.resolvers.Subscription().AppsV1DeploymentsWatch(rctx, fc.Args["kubeContext"].(*string), fc.Args["namespace"].(*string), fc.Args["options"].(*v1.ListOptions)) }) if err != nil { ec.Error(ctx, err) @@ -18488,9 +20123,9 @@ func (ec *executionContext) _Subscription_appsV1ReplicaSetsWatch(ctx context.Con ret = nil } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().AppsV1ReplicaSetsWatch(rctx, fc.Args["namespace"].(*string), fc.Args["options"].(*v1.ListOptions)) + return ec.resolvers.Subscription().AppsV1ReplicaSetsWatch(rctx, fc.Args["kubeContext"].(*string), fc.Args["namespace"].(*string), fc.Args["options"].(*v1.ListOptions)) }) if err != nil { ec.Error(ctx, err) @@ -18560,9 +20195,9 @@ func (ec *executionContext) _Subscription_appsV1StatefulSetsWatch(ctx context.Co ret = nil } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().AppsV1StatefulSetsWatch(rctx, fc.Args["namespace"].(*string), fc.Args["options"].(*v1.ListOptions)) + return ec.resolvers.Subscription().AppsV1StatefulSetsWatch(rctx, fc.Args["kubeContext"].(*string), fc.Args["namespace"].(*string), fc.Args["options"].(*v1.ListOptions)) }) if err != nil { ec.Error(ctx, err) @@ -18632,9 +20267,9 @@ func (ec *executionContext) _Subscription_batchV1CronJobsWatch(ctx context.Conte ret = nil } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().BatchV1CronJobsWatch(rctx, fc.Args["namespace"].(*string), fc.Args["options"].(*v1.ListOptions)) + return ec.resolvers.Subscription().BatchV1CronJobsWatch(rctx, fc.Args["kubeContext"].(*string), fc.Args["namespace"].(*string), fc.Args["options"].(*v1.ListOptions)) }) if err != nil { ec.Error(ctx, err) @@ -18704,9 +20339,9 @@ func (ec *executionContext) _Subscription_batchV1JobsWatch(ctx context.Context, ret = nil } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().BatchV1JobsWatch(rctx, fc.Args["namespace"].(*string), fc.Args["options"].(*v1.ListOptions)) + return ec.resolvers.Subscription().BatchV1JobsWatch(rctx, fc.Args["kubeContext"].(*string), fc.Args["namespace"].(*string), fc.Args["options"].(*v1.ListOptions)) }) if err != nil { ec.Error(ctx, err) @@ -18776,9 +20411,9 @@ func (ec *executionContext) _Subscription_coreV1NamespacesWatch(ctx context.Cont ret = nil } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().CoreV1NamespacesWatch(rctx, fc.Args["options"].(*v1.ListOptions)) + return ec.resolvers.Subscription().CoreV1NamespacesWatch(rctx, fc.Args["kubeContext"].(*string), fc.Args["options"].(*v1.ListOptions)) }) if err != nil { ec.Error(ctx, err) @@ -18848,9 +20483,9 @@ func (ec *executionContext) _Subscription_coreV1NodesWatch(ctx context.Context, ret = nil } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().CoreV1NodesWatch(rctx, fc.Args["options"].(*v1.ListOptions)) + return ec.resolvers.Subscription().CoreV1NodesWatch(rctx, fc.Args["kubeContext"].(*string), fc.Args["options"].(*v1.ListOptions)) }) if err != nil { ec.Error(ctx, err) @@ -18920,9 +20555,9 @@ func (ec *executionContext) _Subscription_coreV1PodsWatch(ctx context.Context, f ret = nil } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().CoreV1PodsWatch(rctx, fc.Args["namespace"].(*string), fc.Args["options"].(*v1.ListOptions)) + return ec.resolvers.Subscription().CoreV1PodsWatch(rctx, fc.Args["kubeContext"].(*string), fc.Args["namespace"].(*string), fc.Args["options"].(*v1.ListOptions)) }) if err != nil { ec.Error(ctx, err) @@ -18980,8 +20615,8 @@ func (ec *executionContext) fieldContext_Subscription_coreV1PodsWatch(ctx contex return fc, nil } -func (ec *executionContext) _Subscription_coreV1PodLogTail(ctx context.Context, field graphql.CollectedField) (ret func(ctx context.Context) graphql.Marshaler) { - fc, err := ec.fieldContext_Subscription_coreV1PodLogTail(ctx, field) +func (ec *executionContext) _Subscription_coreV1ServicesWatch(ctx context.Context, field graphql.CollectedField) (ret func(ctx context.Context) graphql.Marshaler) { + fc, err := ec.fieldContext_Subscription_coreV1ServicesWatch(ctx, field) if err != nil { return nil } @@ -18992,9 +20627,9 @@ func (ec *executionContext) _Subscription_coreV1PodLogTail(ctx context.Context, ret = nil } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().CoreV1PodLogTail(rctx, fc.Args["namespace"].(*string), fc.Args["name"].(string), fc.Args["options"].(*v11.PodLogOptions)) + return ec.resolvers.Subscription().CoreV1ServicesWatch(rctx, fc.Args["kubeContext"].(*string), fc.Args["namespace"].(*string), fc.Args["options"].(*v1.ListOptions)) }) if err != nil { ec.Error(ctx, err) @@ -19005,7 +20640,7 @@ func (ec *executionContext) _Subscription_coreV1PodLogTail(ctx context.Context, } return func(ctx context.Context) graphql.Marshaler { select { - case res, ok := <-resTmp.(<-chan *model.LogRecord): + case res, ok := <-resTmp.(<-chan *watch.Event): if !ok { return nil } @@ -19013,7 +20648,7 @@ func (ec *executionContext) _Subscription_coreV1PodLogTail(ctx context.Context, w.Write([]byte{'{'}) graphql.MarshalString(field.Alias).MarshalGQL(w) w.Write([]byte{':'}) - ec.marshalOLogRecord2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋserverᚋgraphᚋmodelᚐLogRecord(ctx, field.Selections, res).MarshalGQL(w) + ec.marshalOCoreV1ServicesWatchEvent2ᚖk8sᚗioᚋapimachineryᚋpkgᚋwatchᚐEvent(ctx, field.Selections, res).MarshalGQL(w) w.Write([]byte{'}'}) }) case <-ctx.Done(): @@ -19022,7 +20657,7 @@ func (ec *executionContext) _Subscription_coreV1PodLogTail(ctx context.Context, } } -func (ec *executionContext) fieldContext_Subscription_coreV1PodLogTail(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_Subscription_coreV1ServicesWatch(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Subscription", Field: field, @@ -19030,12 +20665,12 @@ func (ec *executionContext) fieldContext_Subscription_coreV1PodLogTail(ctx conte IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { switch field.Name { - case "timestamp": - return ec.fieldContext_LogRecord_timestamp(ctx, field) - case "message": - return ec.fieldContext_LogRecord_message(ctx, field) + case "type": + return ec.fieldContext_CoreV1ServicesWatchEvent_type(ctx, field) + case "object": + return ec.fieldContext_CoreV1ServicesWatchEvent_object(ctx, field) } - return nil, fmt.Errorf("no field named %q was found under type LogRecord", field.Name) + return nil, fmt.Errorf("no field named %q was found under type CoreV1ServicesWatchEvent", field.Name) }, } defer func() { @@ -19045,15 +20680,15 @@ func (ec *executionContext) fieldContext_Subscription_coreV1PodLogTail(ctx conte } }() ctx = graphql.WithFieldContext(ctx, fc) - if fc.Args, err = ec.field_Subscription_coreV1PodLogTail_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { + if fc.Args, err = ec.field_Subscription_coreV1ServicesWatch_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) return fc, err } return fc, nil } -func (ec *executionContext) _Subscription_logMetadataWatch(ctx context.Context, field graphql.CollectedField) (ret func(ctx context.Context) graphql.Marshaler) { - fc, err := ec.fieldContext_Subscription_logMetadataWatch(ctx, field) +func (ec *executionContext) _Subscription_kubernetesAPIHealthzWatch(ctx context.Context, field graphql.CollectedField) (ret func(ctx context.Context) graphql.Marshaler) { + fc, err := ec.fieldContext_Subscription_kubernetesAPIHealthzWatch(ctx, field) if err != nil { return nil } @@ -19064,20 +20699,23 @@ func (ec *executionContext) _Subscription_logMetadataWatch(ctx context.Context, ret = nil } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().LogMetadataWatch(rctx, fc.Args["namespace"].(*string)) + return ec.resolvers.Subscription().KubernetesAPIHealthzWatch(rctx, fc.Args["kubeContext"].(*string)) }) if err != nil { ec.Error(ctx, err) return nil } if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } return nil } return func(ctx context.Context) graphql.Marshaler { select { - case res, ok := <-resTmp.(<-chan *agentpb.LogMetadataWatchEvent): + case res, ok := <-resTmp.(<-chan *model.HealthCheckResponse): if !ok { return nil } @@ -19085,7 +20723,7 @@ func (ec *executionContext) _Subscription_logMetadataWatch(ctx context.Context, w.Write([]byte{'{'}) graphql.MarshalString(field.Alias).MarshalGQL(w) w.Write([]byte{':'}) - ec.marshalOLogMetadataWatchEvent2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋcommonᚋagentpbᚐLogMetadataWatchEvent(ctx, field.Selections, res).MarshalGQL(w) + ec.marshalNHealthCheckResponse2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐHealthCheckResponse(ctx, field.Selections, res).MarshalGQL(w) w.Write([]byte{'}'}) }) case <-ctx.Done(): @@ -19094,7 +20732,7 @@ func (ec *executionContext) _Subscription_logMetadataWatch(ctx context.Context, } } -func (ec *executionContext) fieldContext_Subscription_logMetadataWatch(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_Subscription_kubernetesAPIHealthzWatch(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Subscription", Field: field, @@ -19102,12 +20740,14 @@ func (ec *executionContext) fieldContext_Subscription_logMetadataWatch(ctx conte IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { switch field.Name { - case "type": - return ec.fieldContext_LogMetadataWatchEvent_type(ctx, field) - case "object": - return ec.fieldContext_LogMetadataWatchEvent_object(ctx, field) + case "status": + return ec.fieldContext_HealthCheckResponse_status(ctx, field) + case "message": + return ec.fieldContext_HealthCheckResponse_message(ctx, field) + case "timestamp": + return ec.fieldContext_HealthCheckResponse_timestamp(ctx, field) } - return nil, fmt.Errorf("no field named %q was found under type LogMetadataWatchEvent", field.Name) + return nil, fmt.Errorf("no field named %q was found under type HealthCheckResponse", field.Name) }, } defer func() { @@ -19117,15 +20757,15 @@ func (ec *executionContext) fieldContext_Subscription_logMetadataWatch(ctx conte } }() ctx = graphql.WithFieldContext(ctx, fc) - if fc.Args, err = ec.field_Subscription_logMetadataWatch_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { + if fc.Args, err = ec.field_Subscription_kubernetesAPIHealthzWatch_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) return fc, err } return fc, nil } -func (ec *executionContext) _Subscription_podLogFollow(ctx context.Context, field graphql.CollectedField) (ret func(ctx context.Context) graphql.Marshaler) { - fc, err := ec.fieldContext_Subscription_podLogFollow(ctx, field) +func (ec *executionContext) _Subscription_kubetailClusterAPIHealthzWatch(ctx context.Context, field graphql.CollectedField) (ret func(ctx context.Context) graphql.Marshaler) { + fc, err := ec.fieldContext_Subscription_kubetailClusterAPIHealthzWatch(ctx, field) if err != nil { return nil } @@ -19136,42 +20776,23 @@ func (ec *executionContext) _Subscription_podLogFollow(ctx context.Context, fiel ret = nil } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - directive0 := func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().PodLogFollow(rctx, fc.Args["namespace"].(*string), fc.Args["name"].(string), fc.Args["container"].(*string), fc.Args["after"].(*string), fc.Args["since"].(*string)) - } - - directive1 := func(ctx context.Context) (interface{}, error) { - if ec.directives.NullIfValidationFailed == nil { - var zeroVal *model.LogRecord - return zeroVal, errors.New("directive nullIfValidationFailed is not implemented") - } - return ec.directives.NullIfValidationFailed(ctx, nil, directive0) - } - - tmp, err := directive1(rctx) - if err != nil { - return nil, graphql.ErrorOnPath(ctx, err) - } - if tmp == nil { - return nil, nil - } - if data, ok := tmp.(<-chan *model.LogRecord); ok { - return data, nil - } - return nil, fmt.Errorf(`unexpected type %T from directive, should be <-chan *github.com/kubetail-org/kubetail/modules/server/graph/model.LogRecord`, tmp) + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return ec.resolvers.Subscription().KubetailClusterAPIHealthzWatch(rctx, fc.Args["kubeContext"].(*string), fc.Args["namespace"].(*string), fc.Args["serviceName"].(*string)) }) if err != nil { ec.Error(ctx, err) return nil } if resTmp == nil { + if !graphql.HasFieldError(ctx, fc) { + ec.Errorf(ctx, "must not be null") + } return nil } return func(ctx context.Context) graphql.Marshaler { select { - case res, ok := <-resTmp.(<-chan *model.LogRecord): + case res, ok := <-resTmp.(<-chan *model.HealthCheckResponse): if !ok { return nil } @@ -19179,7 +20800,7 @@ func (ec *executionContext) _Subscription_podLogFollow(ctx context.Context, fiel w.Write([]byte{'{'}) graphql.MarshalString(field.Alias).MarshalGQL(w) w.Write([]byte{':'}) - ec.marshalOLogRecord2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋserverᚋgraphᚋmodelᚐLogRecord(ctx, field.Selections, res).MarshalGQL(w) + ec.marshalNHealthCheckResponse2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐHealthCheckResponse(ctx, field.Selections, res).MarshalGQL(w) w.Write([]byte{'}'}) }) case <-ctx.Done(): @@ -19188,7 +20809,7 @@ func (ec *executionContext) _Subscription_podLogFollow(ctx context.Context, fiel } } -func (ec *executionContext) fieldContext_Subscription_podLogFollow(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_Subscription_kubetailClusterAPIHealthzWatch(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Subscription", Field: field, @@ -19196,12 +20817,14 @@ func (ec *executionContext) fieldContext_Subscription_podLogFollow(ctx context.C IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { switch field.Name { - case "timestamp": - return ec.fieldContext_LogRecord_timestamp(ctx, field) + case "status": + return ec.fieldContext_HealthCheckResponse_status(ctx, field) case "message": - return ec.fieldContext_LogRecord_message(ctx, field) + return ec.fieldContext_HealthCheckResponse_message(ctx, field) + case "timestamp": + return ec.fieldContext_HealthCheckResponse_timestamp(ctx, field) } - return nil, fmt.Errorf("no field named %q was found under type LogRecord", field.Name) + return nil, fmt.Errorf("no field named %q was found under type HealthCheckResponse", field.Name) }, } defer func() { @@ -19211,15 +20834,15 @@ func (ec *executionContext) fieldContext_Subscription_podLogFollow(ctx context.C } }() ctx = graphql.WithFieldContext(ctx, fc) - if fc.Args, err = ec.field_Subscription_podLogFollow_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { + if fc.Args, err = ec.field_Subscription_kubetailClusterAPIHealthzWatch_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { ec.Error(ctx, err) return fc, err } return fc, nil } -func (ec *executionContext) _Subscription_livezWatch(ctx context.Context, field graphql.CollectedField) (ret func(ctx context.Context) graphql.Marshaler) { - fc, err := ec.fieldContext_Subscription_livezWatch(ctx, field) +func (ec *executionContext) _Subscription_kubeConfigWatch(ctx context.Context, field graphql.CollectedField) (ret func(ctx context.Context) graphql.Marshaler) { + fc, err := ec.fieldContext_Subscription_kubeConfigWatch(ctx, field) if err != nil { return nil } @@ -19230,23 +20853,20 @@ func (ec *executionContext) _Subscription_livezWatch(ctx context.Context, field ret = nil } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().LivezWatch(rctx) + return ec.resolvers.Subscription().KubeConfigWatch(rctx) }) if err != nil { ec.Error(ctx, err) return nil } if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } return nil } return func(ctx context.Context) graphql.Marshaler { select { - case res, ok := <-resTmp.(<-chan model.HealthCheckResponse): + case res, ok := <-resTmp.(<-chan *model.KubeConfigWatchEvent): if !ok { return nil } @@ -19254,7 +20874,7 @@ func (ec *executionContext) _Subscription_livezWatch(ctx context.Context, field w.Write([]byte{'{'}) graphql.MarshalString(field.Alias).MarshalGQL(w) w.Write([]byte{':'}) - ec.marshalNHealthCheckResponse2githubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋserverᚋgraphᚋmodelᚐHealthCheckResponse(ctx, field.Selections, res).MarshalGQL(w) + ec.marshalOKubeConfigWatchEvent2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐKubeConfigWatchEvent(ctx, field.Selections, res).MarshalGQL(w) w.Write([]byte{'}'}) }) case <-ctx.Done(): @@ -19263,7 +20883,7 @@ func (ec *executionContext) _Subscription_livezWatch(ctx context.Context, field } } -func (ec *executionContext) fieldContext_Subscription_livezWatch(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_Subscription_kubeConfigWatch(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Subscription", Field: field, @@ -19271,21 +20891,19 @@ func (ec *executionContext) fieldContext_Subscription_livezWatch(_ context.Conte IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { switch field.Name { - case "status": - return ec.fieldContext_HealthCheckResponse_status(ctx, field) - case "message": - return ec.fieldContext_HealthCheckResponse_message(ctx, field) - case "timestamp": - return ec.fieldContext_HealthCheckResponse_timestamp(ctx, field) + case "type": + return ec.fieldContext_KubeConfigWatchEvent_type(ctx, field) + case "object": + return ec.fieldContext_KubeConfigWatchEvent_object(ctx, field) } - return nil, fmt.Errorf("no field named %q was found under type HealthCheckResponse", field.Name) + return nil, fmt.Errorf("no field named %q was found under type KubeConfigWatchEvent", field.Name) }, } return fc, nil } -func (ec *executionContext) _Subscription_readyzWatch(ctx context.Context, field graphql.CollectedField) (ret func(ctx context.Context) graphql.Marshaler) { - fc, err := ec.fieldContext_Subscription_readyzWatch(ctx, field) +func (ec *executionContext) _Subscription_podLogFollow(ctx context.Context, field graphql.CollectedField) (ret func(ctx context.Context) graphql.Marshaler) { + fc, err := ec.fieldContext_Subscription_podLogFollow(ctx, field) if err != nil { return nil } @@ -19296,23 +20914,42 @@ func (ec *executionContext) _Subscription_readyzWatch(ctx context.Context, field ret = nil } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { - ctx = rctx // use context from middleware stack in children - return ec.resolvers.Subscription().ReadyzWatch(rctx) + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { + directive0 := func(rctx context.Context) (any, error) { + ctx = rctx // use context from middleware stack in children + return ec.resolvers.Subscription().PodLogFollow(rctx, fc.Args["kubeContext"].(*string), fc.Args["namespace"].(*string), fc.Args["name"].(string), fc.Args["container"].(*string), fc.Args["after"].(*string), fc.Args["since"].(*string)) + } + + directive1 := func(ctx context.Context) (any, error) { + if ec.directives.NullIfValidationFailed == nil { + var zeroVal *model.LogRecord + return zeroVal, errors.New("directive nullIfValidationFailed is not implemented") + } + return ec.directives.NullIfValidationFailed(ctx, nil, directive0) + } + + tmp, err := directive1(rctx) + if err != nil { + return nil, graphql.ErrorOnPath(ctx, err) + } + if tmp == nil { + return nil, nil + } + if data, ok := tmp.(<-chan *model.LogRecord); ok { + return data, nil + } + return nil, fmt.Errorf(`unexpected type %T from directive, should be <-chan *github.com/kubetail-org/kubetail/modules/dashboard/graph/model.LogRecord`, tmp) }) if err != nil { ec.Error(ctx, err) return nil } if resTmp == nil { - if !graphql.HasFieldError(ctx, fc) { - ec.Errorf(ctx, "must not be null") - } return nil } return func(ctx context.Context) graphql.Marshaler { select { - case res, ok := <-resTmp.(<-chan model.HealthCheckResponse): + case res, ok := <-resTmp.(<-chan *model.LogRecord): if !ok { return nil } @@ -19320,7 +20957,7 @@ func (ec *executionContext) _Subscription_readyzWatch(ctx context.Context, field w.Write([]byte{'{'}) graphql.MarshalString(field.Alias).MarshalGQL(w) w.Write([]byte{':'}) - ec.marshalNHealthCheckResponse2githubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋserverᚋgraphᚋmodelᚐHealthCheckResponse(ctx, field.Selections, res).MarshalGQL(w) + ec.marshalOLogRecord2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐLogRecord(ctx, field.Selections, res).MarshalGQL(w) w.Write([]byte{'}'}) }) case <-ctx.Done(): @@ -19329,7 +20966,7 @@ func (ec *executionContext) _Subscription_readyzWatch(ctx context.Context, field } } -func (ec *executionContext) fieldContext_Subscription_readyzWatch(_ context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { +func (ec *executionContext) fieldContext_Subscription_podLogFollow(ctx context.Context, field graphql.CollectedField) (fc *graphql.FieldContext, err error) { fc = &graphql.FieldContext{ Object: "Subscription", Field: field, @@ -19337,16 +20974,25 @@ func (ec *executionContext) fieldContext_Subscription_readyzWatch(_ context.Cont IsResolver: true, Child: func(ctx context.Context, field graphql.CollectedField) (*graphql.FieldContext, error) { switch field.Name { - case "status": - return ec.fieldContext_HealthCheckResponse_status(ctx, field) - case "message": - return ec.fieldContext_HealthCheckResponse_message(ctx, field) case "timestamp": - return ec.fieldContext_HealthCheckResponse_timestamp(ctx, field) + return ec.fieldContext_LogRecord_timestamp(ctx, field) + case "message": + return ec.fieldContext_LogRecord_message(ctx, field) } - return nil, fmt.Errorf("no field named %q was found under type HealthCheckResponse", field.Name) + return nil, fmt.Errorf("no field named %q was found under type LogRecord", field.Name) }, } + defer func() { + if r := recover(); r != nil { + err = ec.Recover(ctx, r) + ec.Error(ctx, err) + } + }() + ctx = graphql.WithFieldContext(ctx, fc) + if fc.Args, err = ec.field_Subscription_podLogFollow_args(ctx, field.ArgumentMap(ec.Variables)); err != nil { + ec.Error(ctx, err) + return fc, err + } return fc, nil } @@ -19362,7 +21008,7 @@ func (ec *executionContext) ___Directive_name(ctx context.Context, field graphql ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Name, nil }) @@ -19406,7 +21052,7 @@ func (ec *executionContext) ___Directive_description(ctx context.Context, field ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Description(), nil }) @@ -19447,7 +21093,7 @@ func (ec *executionContext) ___Directive_locations(ctx context.Context, field gr ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Locations, nil }) @@ -19491,7 +21137,7 @@ func (ec *executionContext) ___Directive_args(ctx context.Context, field graphql ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Args, nil }) @@ -19545,7 +21191,7 @@ func (ec *executionContext) ___Directive_isRepeatable(ctx context.Context, field ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.IsRepeatable, nil }) @@ -19589,7 +21235,7 @@ func (ec *executionContext) ___EnumValue_name(ctx context.Context, field graphql ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Name, nil }) @@ -19633,7 +21279,7 @@ func (ec *executionContext) ___EnumValue_description(ctx context.Context, field ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Description(), nil }) @@ -19674,7 +21320,7 @@ func (ec *executionContext) ___EnumValue_isDeprecated(ctx context.Context, field ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.IsDeprecated(), nil }) @@ -19718,7 +21364,7 @@ func (ec *executionContext) ___EnumValue_deprecationReason(ctx context.Context, ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.DeprecationReason(), nil }) @@ -19759,7 +21405,7 @@ func (ec *executionContext) ___Field_name(ctx context.Context, field graphql.Col ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Name, nil }) @@ -19803,7 +21449,7 @@ func (ec *executionContext) ___Field_description(ctx context.Context, field grap ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Description(), nil }) @@ -19844,7 +21490,7 @@ func (ec *executionContext) ___Field_args(ctx context.Context, field graphql.Col ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Args, nil }) @@ -19898,7 +21544,7 @@ func (ec *executionContext) ___Field_type(ctx context.Context, field graphql.Col ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Type, nil }) @@ -19964,7 +21610,7 @@ func (ec *executionContext) ___Field_isDeprecated(ctx context.Context, field gra ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.IsDeprecated(), nil }) @@ -20008,7 +21654,7 @@ func (ec *executionContext) ___Field_deprecationReason(ctx context.Context, fiel ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.DeprecationReason(), nil }) @@ -20049,7 +21695,7 @@ func (ec *executionContext) ___InputValue_name(ctx context.Context, field graphq ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Name, nil }) @@ -20093,7 +21739,7 @@ func (ec *executionContext) ___InputValue_description(ctx context.Context, field ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Description(), nil }) @@ -20134,7 +21780,7 @@ func (ec *executionContext) ___InputValue_type(ctx context.Context, field graphq ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Type, nil }) @@ -20200,7 +21846,7 @@ func (ec *executionContext) ___InputValue_defaultValue(ctx context.Context, fiel ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.DefaultValue, nil }) @@ -20241,7 +21887,7 @@ func (ec *executionContext) ___Schema_description(ctx context.Context, field gra ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Description(), nil }) @@ -20282,7 +21928,7 @@ func (ec *executionContext) ___Schema_types(ctx context.Context, field graphql.C ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Types(), nil }) @@ -20348,7 +21994,7 @@ func (ec *executionContext) ___Schema_queryType(ctx context.Context, field graph ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.QueryType(), nil }) @@ -20414,7 +22060,7 @@ func (ec *executionContext) ___Schema_mutationType(ctx context.Context, field gr ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.MutationType(), nil }) @@ -20477,7 +22123,7 @@ func (ec *executionContext) ___Schema_subscriptionType(ctx context.Context, fiel ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.SubscriptionType(), nil }) @@ -20540,7 +22186,7 @@ func (ec *executionContext) ___Schema_directives(ctx context.Context, field grap ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Directives(), nil }) @@ -20596,7 +22242,7 @@ func (ec *executionContext) ___Type_kind(ctx context.Context, field graphql.Coll ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Kind(), nil }) @@ -20640,7 +22286,7 @@ func (ec *executionContext) ___Type_name(ctx context.Context, field graphql.Coll ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Name(), nil }) @@ -20681,7 +22327,7 @@ func (ec *executionContext) ___Type_description(ctx context.Context, field graph ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Description(), nil }) @@ -20722,7 +22368,7 @@ func (ec *executionContext) ___Type_fields(ctx context.Context, field graphql.Co ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Fields(fc.Args["includeDeprecated"].(bool)), nil }) @@ -20788,7 +22434,7 @@ func (ec *executionContext) ___Type_interfaces(ctx context.Context, field graphq ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.Interfaces(), nil }) @@ -20851,7 +22497,7 @@ func (ec *executionContext) ___Type_possibleTypes(ctx context.Context, field gra ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.PossibleTypes(), nil }) @@ -20914,7 +22560,7 @@ func (ec *executionContext) ___Type_enumValues(ctx context.Context, field graphq ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.EnumValues(fc.Args["includeDeprecated"].(bool)), nil }) @@ -20976,7 +22622,7 @@ func (ec *executionContext) ___Type_inputFields(ctx context.Context, field graph ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.InputFields(), nil }) @@ -21027,7 +22673,7 @@ func (ec *executionContext) ___Type_ofType(ctx context.Context, field graphql.Co ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.OfType(), nil }) @@ -21090,7 +22736,7 @@ func (ec *executionContext) ___Type_specifiedByURL(ctx context.Context, field gr ret = graphql.Null } }() - resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (interface{}, error) { + resTmp, err := ec.ResolverMiddleware(ctx, func(rctx context.Context) (any, error) { ctx = rctx // use context from middleware stack in children return obj.SpecifiedByURL(), nil }) @@ -21123,10 +22769,10 @@ func (ec *executionContext) fieldContext___Type_specifiedByURL(_ context.Context // region **************************** input.gotpl ***************************** -func (ec *executionContext) unmarshalInputCoreV1PodLogOptions(ctx context.Context, obj interface{}) (v11.PodLogOptions, error) { - var it v11.PodLogOptions - asMap := map[string]interface{}{} - for k, v := range obj.(map[string]interface{}) { +func (ec *executionContext) unmarshalInputCoreV1PodLogOptions(ctx context.Context, obj any) (v13.PodLogOptions, error) { + var it v13.PodLogOptions + asMap := map[string]any{} + for k, v := range obj.(map[string]any) { asMap[k] = v } @@ -21185,10 +22831,10 @@ func (ec *executionContext) unmarshalInputCoreV1PodLogOptions(ctx context.Contex return it, nil } -func (ec *executionContext) unmarshalInputMetaV1GetOptions(ctx context.Context, obj interface{}) (v1.GetOptions, error) { +func (ec *executionContext) unmarshalInputMetaV1GetOptions(ctx context.Context, obj any) (v1.GetOptions, error) { var it v1.GetOptions - asMap := map[string]interface{}{} - for k, v := range obj.(map[string]interface{}) { + asMap := map[string]any{} + for k, v := range obj.(map[string]any) { asMap[k] = v } @@ -21212,10 +22858,10 @@ func (ec *executionContext) unmarshalInputMetaV1GetOptions(ctx context.Context, return it, nil } -func (ec *executionContext) unmarshalInputMetaV1ListOptions(ctx context.Context, obj interface{}) (v1.ListOptions, error) { +func (ec *executionContext) unmarshalInputMetaV1ListOptions(ctx context.Context, obj any) (v1.ListOptions, error) { var it v1.ListOptions - asMap := map[string]interface{}{} - for k, v := range obj.(map[string]interface{}) { + asMap := map[string]any{} + for k, v := range obj.(map[string]any) { asMap[k] = v } @@ -21296,69 +22942,76 @@ func (ec *executionContext) _List(ctx context.Context, sel ast.SelectionSet, obj switch obj := (obj).(type) { case nil: return graphql.Null - case v12.DaemonSetList: + case v11.DaemonSetList: return ec._AppsV1DaemonSetList(ctx, sel, &obj) - case *v12.DaemonSetList: + case *v11.DaemonSetList: if obj == nil { return graphql.Null } return ec._AppsV1DaemonSetList(ctx, sel, obj) - case v12.DeploymentList: + case v11.DeploymentList: return ec._AppsV1DeploymentList(ctx, sel, &obj) - case *v12.DeploymentList: + case *v11.DeploymentList: if obj == nil { return graphql.Null } return ec._AppsV1DeploymentList(ctx, sel, obj) - case v12.ReplicaSetList: + case v11.ReplicaSetList: return ec._AppsV1ReplicaSetList(ctx, sel, &obj) - case *v12.ReplicaSetList: + case *v11.ReplicaSetList: if obj == nil { return graphql.Null } return ec._AppsV1ReplicaSetList(ctx, sel, obj) - case v12.StatefulSetList: + case v11.StatefulSetList: return ec._AppsV1StatefulSetList(ctx, sel, &obj) - case *v12.StatefulSetList: + case *v11.StatefulSetList: if obj == nil { return graphql.Null } return ec._AppsV1StatefulSetList(ctx, sel, obj) - case v13.CronJobList: + case v12.CronJobList: return ec._BatchV1CronJobList(ctx, sel, &obj) - case *v13.CronJobList: + case *v12.CronJobList: if obj == nil { return graphql.Null } return ec._BatchV1CronJobList(ctx, sel, obj) - case v13.JobList: + case v12.JobList: return ec._BatchV1JobList(ctx, sel, &obj) - case *v13.JobList: + case *v12.JobList: if obj == nil { return graphql.Null } return ec._BatchV1JobList(ctx, sel, obj) - case v11.NamespaceList: + case v13.NamespaceList: return ec._CoreV1NamespaceList(ctx, sel, &obj) - case *v11.NamespaceList: + case *v13.NamespaceList: if obj == nil { return graphql.Null } return ec._CoreV1NamespaceList(ctx, sel, obj) - case v11.NodeList: + case v13.NodeList: return ec._CoreV1NodeList(ctx, sel, &obj) - case *v11.NodeList: + case *v13.NodeList: if obj == nil { return graphql.Null } return ec._CoreV1NodeList(ctx, sel, obj) - case v11.PodList: + case v13.PodList: return ec._CoreV1PodList(ctx, sel, &obj) - case *v11.PodList: + case *v13.PodList: if obj == nil { return graphql.Null } return ec._CoreV1PodList(ctx, sel, obj) + case v13.ServiceList: + return ec._CoreV1ServiceList(ctx, sel, &obj) + case *v13.ServiceList: + if obj == nil { + return graphql.Null + } + return ec._CoreV1ServiceList(ctx, sel, obj) default: panic(fmt.Errorf("unexpected type %T", obj)) } @@ -21368,69 +23021,76 @@ func (ec *executionContext) _Object(ctx context.Context, sel ast.SelectionSet, o switch obj := (obj).(type) { case nil: return graphql.Null - case v12.DaemonSet: + case v11.DaemonSet: return ec._AppsV1DaemonSet(ctx, sel, &obj) - case *v12.DaemonSet: + case *v11.DaemonSet: if obj == nil { return graphql.Null } return ec._AppsV1DaemonSet(ctx, sel, obj) - case v12.Deployment: + case v11.Deployment: return ec._AppsV1Deployment(ctx, sel, &obj) - case *v12.Deployment: + case *v11.Deployment: if obj == nil { return graphql.Null } return ec._AppsV1Deployment(ctx, sel, obj) - case v12.ReplicaSet: + case v11.ReplicaSet: return ec._AppsV1ReplicaSet(ctx, sel, &obj) - case *v12.ReplicaSet: + case *v11.ReplicaSet: if obj == nil { return graphql.Null } return ec._AppsV1ReplicaSet(ctx, sel, obj) - case v12.StatefulSet: + case v11.StatefulSet: return ec._AppsV1StatefulSet(ctx, sel, &obj) - case *v12.StatefulSet: + case *v11.StatefulSet: if obj == nil { return graphql.Null } return ec._AppsV1StatefulSet(ctx, sel, obj) - case v13.CronJob: + case v12.CronJob: return ec._BatchV1CronJob(ctx, sel, &obj) - case *v13.CronJob: + case *v12.CronJob: if obj == nil { return graphql.Null } return ec._BatchV1CronJob(ctx, sel, obj) - case v13.Job: + case v12.Job: return ec._BatchV1Job(ctx, sel, &obj) - case *v13.Job: + case *v12.Job: if obj == nil { return graphql.Null } return ec._BatchV1Job(ctx, sel, obj) - case v11.Namespace: + case v13.Namespace: return ec._CoreV1Namespace(ctx, sel, &obj) - case *v11.Namespace: + case *v13.Namespace: if obj == nil { return graphql.Null } return ec._CoreV1Namespace(ctx, sel, obj) - case v11.Node: + case v13.Node: return ec._CoreV1Node(ctx, sel, &obj) - case *v11.Node: + case *v13.Node: if obj == nil { return graphql.Null } return ec._CoreV1Node(ctx, sel, obj) - case v11.Pod: + case v13.Pod: return ec._CoreV1Pod(ctx, sel, &obj) - case *v11.Pod: + case *v13.Pod: if obj == nil { return graphql.Null } return ec._CoreV1Pod(ctx, sel, obj) + case v13.Service: + return ec._CoreV1Service(ctx, sel, &obj) + case *v13.Service: + if obj == nil { + return graphql.Null + } + return ec._CoreV1Service(ctx, sel, obj) default: panic(fmt.Errorf("unexpected type %T", obj)) } @@ -21442,7 +23102,7 @@ func (ec *executionContext) _Object(ctx context.Context, sel ast.SelectionSet, o var appsV1DaemonSetImplementors = []string{"AppsV1DaemonSet", "Object"} -func (ec *executionContext) _AppsV1DaemonSet(ctx context.Context, sel ast.SelectionSet, obj *v12.DaemonSet) graphql.Marshaler { +func (ec *executionContext) _AppsV1DaemonSet(ctx context.Context, sel ast.SelectionSet, obj *v11.DaemonSet) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, appsV1DaemonSetImplementors) out := graphql.NewFieldSet(fields) @@ -21506,7 +23166,7 @@ func (ec *executionContext) _AppsV1DaemonSet(ctx context.Context, sel ast.Select var appsV1DaemonSetConditionImplementors = []string{"AppsV1DaemonSetCondition"} -func (ec *executionContext) _AppsV1DaemonSetCondition(ctx context.Context, sel ast.SelectionSet, obj *v12.DaemonSetCondition) graphql.Marshaler { +func (ec *executionContext) _AppsV1DaemonSetCondition(ctx context.Context, sel ast.SelectionSet, obj *v11.DaemonSetCondition) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, appsV1DaemonSetConditionImplementors) out := graphql.NewFieldSet(fields) @@ -21565,7 +23225,7 @@ func (ec *executionContext) _AppsV1DaemonSetCondition(ctx context.Context, sel a var appsV1DaemonSetListImplementors = []string{"AppsV1DaemonSetList", "List"} -func (ec *executionContext) _AppsV1DaemonSetList(ctx context.Context, sel ast.SelectionSet, obj *v12.DaemonSetList) graphql.Marshaler { +func (ec *executionContext) _AppsV1DaemonSetList(ctx context.Context, sel ast.SelectionSet, obj *v11.DaemonSetList) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, appsV1DaemonSetListImplementors) out := graphql.NewFieldSet(fields) @@ -21619,7 +23279,7 @@ func (ec *executionContext) _AppsV1DaemonSetList(ctx context.Context, sel ast.Se var appsV1DaemonSetSpecImplementors = []string{"AppsV1DaemonSetSpec"} -func (ec *executionContext) _AppsV1DaemonSetSpec(ctx context.Context, sel ast.SelectionSet, obj *v12.DaemonSetSpec) graphql.Marshaler { +func (ec *executionContext) _AppsV1DaemonSetSpec(ctx context.Context, sel ast.SelectionSet, obj *v11.DaemonSetSpec) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, appsV1DaemonSetSpecImplementors) out := graphql.NewFieldSet(fields) @@ -21655,7 +23315,7 @@ func (ec *executionContext) _AppsV1DaemonSetSpec(ctx context.Context, sel ast.Se var appsV1DaemonSetStatusImplementors = []string{"AppsV1DaemonSetStatus"} -func (ec *executionContext) _AppsV1DaemonSetStatus(ctx context.Context, sel ast.SelectionSet, obj *v12.DaemonSetStatus) graphql.Marshaler { +func (ec *executionContext) _AppsV1DaemonSetStatus(ctx context.Context, sel ast.SelectionSet, obj *v11.DaemonSetStatus) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, appsV1DaemonSetStatusImplementors) out := graphql.NewFieldSet(fields) @@ -21806,7 +23466,7 @@ func (ec *executionContext) _AppsV1DaemonSetsWatchEvent(ctx context.Context, sel var appsV1DeploymentImplementors = []string{"AppsV1Deployment", "Object"} -func (ec *executionContext) _AppsV1Deployment(ctx context.Context, sel ast.SelectionSet, obj *v12.Deployment) graphql.Marshaler { +func (ec *executionContext) _AppsV1Deployment(ctx context.Context, sel ast.SelectionSet, obj *v11.Deployment) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, appsV1DeploymentImplementors) out := graphql.NewFieldSet(fields) @@ -21870,7 +23530,7 @@ func (ec *executionContext) _AppsV1Deployment(ctx context.Context, sel ast.Selec var appsV1DeploymentListImplementors = []string{"AppsV1DeploymentList", "List"} -func (ec *executionContext) _AppsV1DeploymentList(ctx context.Context, sel ast.SelectionSet, obj *v12.DeploymentList) graphql.Marshaler { +func (ec *executionContext) _AppsV1DeploymentList(ctx context.Context, sel ast.SelectionSet, obj *v11.DeploymentList) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, appsV1DeploymentListImplementors) out := graphql.NewFieldSet(fields) @@ -21924,7 +23584,7 @@ func (ec *executionContext) _AppsV1DeploymentList(ctx context.Context, sel ast.S var appsV1DeploymentSpecImplementors = []string{"AppsV1DeploymentSpec"} -func (ec *executionContext) _AppsV1DeploymentSpec(ctx context.Context, sel ast.SelectionSet, obj *v12.DeploymentSpec) graphql.Marshaler { +func (ec *executionContext) _AppsV1DeploymentSpec(ctx context.Context, sel ast.SelectionSet, obj *v11.DeploymentSpec) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, appsV1DeploymentSpecImplementors) out := graphql.NewFieldSet(fields) @@ -21967,7 +23627,7 @@ func (ec *executionContext) _AppsV1DeploymentSpec(ctx context.Context, sel ast.S var appsV1DeploymentStatusImplementors = []string{"AppsV1DeploymentStatus"} -func (ec *executionContext) _AppsV1DeploymentStatus(ctx context.Context, sel ast.SelectionSet, obj *v12.DeploymentStatus) graphql.Marshaler { +func (ec *executionContext) _AppsV1DeploymentStatus(ctx context.Context, sel ast.SelectionSet, obj *v11.DeploymentStatus) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, appsV1DeploymentStatusImplementors) out := graphql.NewFieldSet(fields) @@ -22078,7 +23738,7 @@ func (ec *executionContext) _AppsV1DeploymentsWatchEvent(ctx context.Context, se var appsV1ReplicaSetImplementors = []string{"AppsV1ReplicaSet", "Object"} -func (ec *executionContext) _AppsV1ReplicaSet(ctx context.Context, sel ast.SelectionSet, obj *v12.ReplicaSet) graphql.Marshaler { +func (ec *executionContext) _AppsV1ReplicaSet(ctx context.Context, sel ast.SelectionSet, obj *v11.ReplicaSet) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, appsV1ReplicaSetImplementors) out := graphql.NewFieldSet(fields) @@ -22142,7 +23802,7 @@ func (ec *executionContext) _AppsV1ReplicaSet(ctx context.Context, sel ast.Selec var appsV1ReplicaSetListImplementors = []string{"AppsV1ReplicaSetList", "List"} -func (ec *executionContext) _AppsV1ReplicaSetList(ctx context.Context, sel ast.SelectionSet, obj *v12.ReplicaSetList) graphql.Marshaler { +func (ec *executionContext) _AppsV1ReplicaSetList(ctx context.Context, sel ast.SelectionSet, obj *v11.ReplicaSetList) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, appsV1ReplicaSetListImplementors) out := graphql.NewFieldSet(fields) @@ -22196,7 +23856,7 @@ func (ec *executionContext) _AppsV1ReplicaSetList(ctx context.Context, sel ast.S var appsV1ReplicaSetSpecImplementors = []string{"AppsV1ReplicaSetSpec"} -func (ec *executionContext) _AppsV1ReplicaSetSpec(ctx context.Context, sel ast.SelectionSet, obj *v12.ReplicaSetSpec) graphql.Marshaler { +func (ec *executionContext) _AppsV1ReplicaSetSpec(ctx context.Context, sel ast.SelectionSet, obj *v11.ReplicaSetSpec) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, appsV1ReplicaSetSpecImplementors) out := graphql.NewFieldSet(fields) @@ -22234,7 +23894,7 @@ func (ec *executionContext) _AppsV1ReplicaSetSpec(ctx context.Context, sel ast.S var appsV1ReplicaSetStatusImplementors = []string{"AppsV1ReplicaSetStatus"} -func (ec *executionContext) _AppsV1ReplicaSetStatus(ctx context.Context, sel ast.SelectionSet, obj *v12.ReplicaSetStatus) graphql.Marshaler { +func (ec *executionContext) _AppsV1ReplicaSetStatus(ctx context.Context, sel ast.SelectionSet, obj *v11.ReplicaSetStatus) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, appsV1ReplicaSetStatusImplementors) out := graphql.NewFieldSet(fields) @@ -22345,7 +24005,7 @@ func (ec *executionContext) _AppsV1ReplicaSetsWatchEvent(ctx context.Context, se var appsV1StatefulSetImplementors = []string{"AppsV1StatefulSet", "Object"} -func (ec *executionContext) _AppsV1StatefulSet(ctx context.Context, sel ast.SelectionSet, obj *v12.StatefulSet) graphql.Marshaler { +func (ec *executionContext) _AppsV1StatefulSet(ctx context.Context, sel ast.SelectionSet, obj *v11.StatefulSet) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, appsV1StatefulSetImplementors) out := graphql.NewFieldSet(fields) @@ -22404,7 +24064,7 @@ func (ec *executionContext) _AppsV1StatefulSet(ctx context.Context, sel ast.Sele var appsV1StatefulSetListImplementors = []string{"AppsV1StatefulSetList", "List"} -func (ec *executionContext) _AppsV1StatefulSetList(ctx context.Context, sel ast.SelectionSet, obj *v12.StatefulSetList) graphql.Marshaler { +func (ec *executionContext) _AppsV1StatefulSetList(ctx context.Context, sel ast.SelectionSet, obj *v11.StatefulSetList) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, appsV1StatefulSetListImplementors) out := graphql.NewFieldSet(fields) @@ -22458,7 +24118,7 @@ func (ec *executionContext) _AppsV1StatefulSetList(ctx context.Context, sel ast. var appsV1StatefulSetSpecImplementors = []string{"AppsV1StatefulSetSpec"} -func (ec *executionContext) _AppsV1StatefulSetSpec(ctx context.Context, sel ast.SelectionSet, obj *v12.StatefulSetSpec) graphql.Marshaler { +func (ec *executionContext) _AppsV1StatefulSetSpec(ctx context.Context, sel ast.SelectionSet, obj *v11.StatefulSetSpec) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, appsV1StatefulSetSpecImplementors) out := graphql.NewFieldSet(fields) @@ -22568,7 +24228,7 @@ func (ec *executionContext) _AppsV1StatefulSetsWatchEvent(ctx context.Context, s var batchV1CronJobImplementors = []string{"BatchV1CronJob", "Object"} -func (ec *executionContext) _BatchV1CronJob(ctx context.Context, sel ast.SelectionSet, obj *v13.CronJob) graphql.Marshaler { +func (ec *executionContext) _BatchV1CronJob(ctx context.Context, sel ast.SelectionSet, obj *v12.CronJob) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, batchV1CronJobImplementors) out := graphql.NewFieldSet(fields) @@ -22632,7 +24292,7 @@ func (ec *executionContext) _BatchV1CronJob(ctx context.Context, sel ast.Selecti var batchV1CronJobListImplementors = []string{"BatchV1CronJobList", "List"} -func (ec *executionContext) _BatchV1CronJobList(ctx context.Context, sel ast.SelectionSet, obj *v13.CronJobList) graphql.Marshaler { +func (ec *executionContext) _BatchV1CronJobList(ctx context.Context, sel ast.SelectionSet, obj *v12.CronJobList) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, batchV1CronJobListImplementors) out := graphql.NewFieldSet(fields) @@ -22686,7 +24346,7 @@ func (ec *executionContext) _BatchV1CronJobList(ctx context.Context, sel ast.Sel var batchV1CronJobSpecImplementors = []string{"BatchV1CronJobSpec"} -func (ec *executionContext) _BatchV1CronJobSpec(ctx context.Context, sel ast.SelectionSet, obj *v13.CronJobSpec) graphql.Marshaler { +func (ec *executionContext) _BatchV1CronJobSpec(ctx context.Context, sel ast.SelectionSet, obj *v12.CronJobSpec) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, batchV1CronJobSpecImplementors) out := graphql.NewFieldSet(fields) @@ -22738,7 +24398,7 @@ func (ec *executionContext) _BatchV1CronJobSpec(ctx context.Context, sel ast.Sel var batchV1CronJobStatusImplementors = []string{"BatchV1CronJobStatus"} -func (ec *executionContext) _BatchV1CronJobStatus(ctx context.Context, sel ast.SelectionSet, obj *v13.CronJobStatus) graphql.Marshaler { +func (ec *executionContext) _BatchV1CronJobStatus(ctx context.Context, sel ast.SelectionSet, obj *v12.CronJobStatus) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, batchV1CronJobStatusImplementors) out := graphql.NewFieldSet(fields) @@ -22853,7 +24513,7 @@ func (ec *executionContext) _BatchV1CronJobsWatchEvent(ctx context.Context, sel var batchV1JobImplementors = []string{"BatchV1Job", "Object"} -func (ec *executionContext) _BatchV1Job(ctx context.Context, sel ast.SelectionSet, obj *v13.Job) graphql.Marshaler { +func (ec *executionContext) _BatchV1Job(ctx context.Context, sel ast.SelectionSet, obj *v12.Job) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, batchV1JobImplementors) out := graphql.NewFieldSet(fields) @@ -22917,7 +24577,7 @@ func (ec *executionContext) _BatchV1Job(ctx context.Context, sel ast.SelectionSe var batchV1JobConditionImplementors = []string{"BatchV1JobCondition"} -func (ec *executionContext) _BatchV1JobCondition(ctx context.Context, sel ast.SelectionSet, obj *v13.JobCondition) graphql.Marshaler { +func (ec *executionContext) _BatchV1JobCondition(ctx context.Context, sel ast.SelectionSet, obj *v12.JobCondition) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, batchV1JobConditionImplementors) out := graphql.NewFieldSet(fields) @@ -22981,7 +24641,7 @@ func (ec *executionContext) _BatchV1JobCondition(ctx context.Context, sel ast.Se var batchV1JobListImplementors = []string{"BatchV1JobList", "List"} -func (ec *executionContext) _BatchV1JobList(ctx context.Context, sel ast.SelectionSet, obj *v13.JobList) graphql.Marshaler { +func (ec *executionContext) _BatchV1JobList(ctx context.Context, sel ast.SelectionSet, obj *v12.JobList) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, batchV1JobListImplementors) out := graphql.NewFieldSet(fields) @@ -23035,7 +24695,7 @@ func (ec *executionContext) _BatchV1JobList(ctx context.Context, sel ast.Selecti var batchV1JobSpecImplementors = []string{"BatchV1JobSpec"} -func (ec *executionContext) _BatchV1JobSpec(ctx context.Context, sel ast.SelectionSet, obj *v13.JobSpec) graphql.Marshaler { +func (ec *executionContext) _BatchV1JobSpec(ctx context.Context, sel ast.SelectionSet, obj *v12.JobSpec) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, batchV1JobSpecImplementors) out := graphql.NewFieldSet(fields) @@ -23083,7 +24743,7 @@ func (ec *executionContext) _BatchV1JobSpec(ctx context.Context, sel ast.Selecti var batchV1JobStatusImplementors = []string{"BatchV1JobStatus"} -func (ec *executionContext) _BatchV1JobStatus(ctx context.Context, sel ast.SelectionSet, obj *v13.JobStatus) graphql.Marshaler { +func (ec *executionContext) _BatchV1JobStatus(ctx context.Context, sel ast.SelectionSet, obj *v12.JobStatus) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, batchV1JobStatusImplementors) out := graphql.NewFieldSet(fields) @@ -23148,7 +24808,7 @@ func (ec *executionContext) _BatchV1JobStatus(ctx context.Context, sel ast.Selec var batchV1JobTemplateSpecImplementors = []string{"BatchV1JobTemplateSpec"} -func (ec *executionContext) _BatchV1JobTemplateSpec(ctx context.Context, sel ast.SelectionSet, obj *v13.JobTemplateSpec) graphql.Marshaler { +func (ec *executionContext) _BatchV1JobTemplateSpec(ctx context.Context, sel ast.SelectionSet, obj *v12.JobTemplateSpec) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, batchV1JobTemplateSpecImplementors) out := graphql.NewFieldSet(fields) @@ -23264,7 +24924,7 @@ func (ec *executionContext) _BatchV1JobsWatchEvent(ctx context.Context, sel ast. var coreV1ContainerImplementors = []string{"CoreV1Container"} -func (ec *executionContext) _CoreV1Container(ctx context.Context, sel ast.SelectionSet, obj *v11.Container) graphql.Marshaler { +func (ec *executionContext) _CoreV1Container(ctx context.Context, sel ast.SelectionSet, obj *v13.Container) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, coreV1ContainerImplementors) out := graphql.NewFieldSet(fields) @@ -23308,7 +24968,7 @@ func (ec *executionContext) _CoreV1Container(ctx context.Context, sel ast.Select var coreV1ContainerStateImplementors = []string{"CoreV1ContainerState"} -func (ec *executionContext) _CoreV1ContainerState(ctx context.Context, sel ast.SelectionSet, obj *v11.ContainerState) graphql.Marshaler { +func (ec *executionContext) _CoreV1ContainerState(ctx context.Context, sel ast.SelectionSet, obj *v13.ContainerState) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, coreV1ContainerStateImplementors) out := graphql.NewFieldSet(fields) @@ -23348,7 +25008,7 @@ func (ec *executionContext) _CoreV1ContainerState(ctx context.Context, sel ast.S var coreV1ContainerStateRunningImplementors = []string{"CoreV1ContainerStateRunning"} -func (ec *executionContext) _CoreV1ContainerStateRunning(ctx context.Context, sel ast.SelectionSet, obj *v11.ContainerStateRunning) graphql.Marshaler { +func (ec *executionContext) _CoreV1ContainerStateRunning(ctx context.Context, sel ast.SelectionSet, obj *v13.ContainerStateRunning) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, coreV1ContainerStateRunningImplementors) out := graphql.NewFieldSet(fields) @@ -23387,7 +25047,7 @@ func (ec *executionContext) _CoreV1ContainerStateRunning(ctx context.Context, se var coreV1ContainerStateTerminatedImplementors = []string{"CoreV1ContainerStateTerminated"} -func (ec *executionContext) _CoreV1ContainerStateTerminated(ctx context.Context, sel ast.SelectionSet, obj *v11.ContainerStateTerminated) graphql.Marshaler { +func (ec *executionContext) _CoreV1ContainerStateTerminated(ctx context.Context, sel ast.SelectionSet, obj *v13.ContainerStateTerminated) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, coreV1ContainerStateTerminatedImplementors) out := graphql.NewFieldSet(fields) @@ -23446,7 +25106,7 @@ func (ec *executionContext) _CoreV1ContainerStateTerminated(ctx context.Context, var coreV1ContainerStateWaitingImplementors = []string{"CoreV1ContainerStateWaiting"} -func (ec *executionContext) _CoreV1ContainerStateWaiting(ctx context.Context, sel ast.SelectionSet, obj *v11.ContainerStateWaiting) graphql.Marshaler { +func (ec *executionContext) _CoreV1ContainerStateWaiting(ctx context.Context, sel ast.SelectionSet, obj *v13.ContainerStateWaiting) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, coreV1ContainerStateWaitingImplementors) out := graphql.NewFieldSet(fields) @@ -23490,7 +25150,7 @@ func (ec *executionContext) _CoreV1ContainerStateWaiting(ctx context.Context, se var coreV1ContainerStatusImplementors = []string{"CoreV1ContainerStatus"} -func (ec *executionContext) _CoreV1ContainerStatus(ctx context.Context, sel ast.SelectionSet, obj *v11.ContainerStatus) graphql.Marshaler { +func (ec *executionContext) _CoreV1ContainerStatus(ctx context.Context, sel ast.SelectionSet, obj *v13.ContainerStatus) graphql.Marshaler { fields := graphql.CollectFields(ec.OperationContext, sel, coreV1ContainerStatusImplementors) out := graphql.NewFieldSet(fields) @@ -23539,8 +25199,188 @@ func (ec *executionContext) _CoreV1ContainerStatus(ctx context.Context, sel ast. if out.Values[i] == graphql.Null { out.Invalids++ } - case "started": - out.Values[i] = ec._CoreV1ContainerStatus_started(ctx, field, obj) + case "started": + out.Values[i] = ec._CoreV1ContainerStatus_started(ctx, field, obj) + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch(ctx) + if out.Invalids > 0 { + return graphql.Null + } + + atomic.AddInt32(&ec.deferred, int32(len(deferred))) + + for label, dfs := range deferred { + ec.processDeferredGroup(graphql.DeferredGroup{ + Label: label, + Path: graphql.GetPath(ctx), + FieldSet: dfs, + Context: ctx, + }) + } + + return out +} + +var coreV1NamespaceImplementors = []string{"CoreV1Namespace", "Object"} + +func (ec *executionContext) _CoreV1Namespace(ctx context.Context, sel ast.SelectionSet, obj *v13.Namespace) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, coreV1NamespaceImplementors) + + out := graphql.NewFieldSet(fields) + deferred := make(map[string]*graphql.FieldSet) + for i, field := range fields { + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("CoreV1Namespace") + case "id": + out.Values[i] = ec._CoreV1Namespace_id(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "kind": + out.Values[i] = ec._CoreV1Namespace_kind(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "apiVersion": + out.Values[i] = ec._CoreV1Namespace_apiVersion(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "metadata": + out.Values[i] = ec._CoreV1Namespace_metadata(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch(ctx) + if out.Invalids > 0 { + return graphql.Null + } + + atomic.AddInt32(&ec.deferred, int32(len(deferred))) + + for label, dfs := range deferred { + ec.processDeferredGroup(graphql.DeferredGroup{ + Label: label, + Path: graphql.GetPath(ctx), + FieldSet: dfs, + Context: ctx, + }) + } + + return out +} + +var coreV1NamespaceListImplementors = []string{"CoreV1NamespaceList", "List"} + +func (ec *executionContext) _CoreV1NamespaceList(ctx context.Context, sel ast.SelectionSet, obj *v13.NamespaceList) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, coreV1NamespaceListImplementors) + + out := graphql.NewFieldSet(fields) + deferred := make(map[string]*graphql.FieldSet) + for i, field := range fields { + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("CoreV1NamespaceList") + case "kind": + out.Values[i] = ec._CoreV1NamespaceList_kind(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "apiVersion": + out.Values[i] = ec._CoreV1NamespaceList_apiVersion(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "metadata": + out.Values[i] = ec._CoreV1NamespaceList_metadata(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "items": + out.Values[i] = ec._CoreV1NamespaceList_items(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch(ctx) + if out.Invalids > 0 { + return graphql.Null + } + + atomic.AddInt32(&ec.deferred, int32(len(deferred))) + + for label, dfs := range deferred { + ec.processDeferredGroup(graphql.DeferredGroup{ + Label: label, + Path: graphql.GetPath(ctx), + FieldSet: dfs, + Context: ctx, + }) + } + + return out +} + +var coreV1NamespacesWatchEventImplementors = []string{"CoreV1NamespacesWatchEvent"} + +func (ec *executionContext) _CoreV1NamespacesWatchEvent(ctx context.Context, sel ast.SelectionSet, obj *watch.Event) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, coreV1NamespacesWatchEventImplementors) + + out := graphql.NewFieldSet(fields) + deferred := make(map[string]*graphql.FieldSet) + for i, field := range fields { + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("CoreV1NamespacesWatchEvent") + case "type": + out.Values[i] = ec._CoreV1NamespacesWatchEvent_type(ctx, field, obj) + if out.Values[i] == graphql.Null { + atomic.AddUint32(&out.Invalids, 1) + } + case "object": + field := field + + innerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + } + }() + res = ec._CoreV1NamespacesWatchEvent_object(ctx, field, obj) + return res + } + + if field.Deferrable != nil { + dfs, ok := deferred[field.Deferrable.Label] + di := 0 + if ok { + dfs.AddField(field) + di = len(dfs.Values) - 1 + } else { + dfs = graphql.NewFieldSet([]graphql.CollectedField{field}) + deferred[field.Deferrable.Label] = dfs + } + dfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler { + return innerFunc(ctx, dfs) + }) + + // don't run the out.Concurrently() call below + out.Values[i] = graphql.Null + continue + } + + out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) default: panic("unknown field " + strconv.Quote(field.Name)) } @@ -23564,34 +25404,34 @@ func (ec *executionContext) _CoreV1ContainerStatus(ctx context.Context, sel ast. return out } -var coreV1NamespaceImplementors = []string{"CoreV1Namespace", "Object"} +var coreV1NodeImplementors = []string{"CoreV1Node", "Object"} -func (ec *executionContext) _CoreV1Namespace(ctx context.Context, sel ast.SelectionSet, obj *v11.Namespace) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, coreV1NamespaceImplementors) +func (ec *executionContext) _CoreV1Node(ctx context.Context, sel ast.SelectionSet, obj *v13.Node) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, coreV1NodeImplementors) out := graphql.NewFieldSet(fields) deferred := make(map[string]*graphql.FieldSet) for i, field := range fields { switch field.Name { case "__typename": - out.Values[i] = graphql.MarshalString("CoreV1Namespace") + out.Values[i] = graphql.MarshalString("CoreV1Node") case "id": - out.Values[i] = ec._CoreV1Namespace_id(ctx, field, obj) + out.Values[i] = ec._CoreV1Node_id(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } case "kind": - out.Values[i] = ec._CoreV1Namespace_kind(ctx, field, obj) + out.Values[i] = ec._CoreV1Node_kind(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } case "apiVersion": - out.Values[i] = ec._CoreV1Namespace_apiVersion(ctx, field, obj) + out.Values[i] = ec._CoreV1Node_apiVersion(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } case "metadata": - out.Values[i] = ec._CoreV1Namespace_metadata(ctx, field, obj) + out.Values[i] = ec._CoreV1Node_metadata(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } @@ -23618,34 +25458,34 @@ func (ec *executionContext) _CoreV1Namespace(ctx context.Context, sel ast.Select return out } -var coreV1NamespaceListImplementors = []string{"CoreV1NamespaceList", "List"} +var coreV1NodeListImplementors = []string{"CoreV1NodeList", "List"} -func (ec *executionContext) _CoreV1NamespaceList(ctx context.Context, sel ast.SelectionSet, obj *v11.NamespaceList) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, coreV1NamespaceListImplementors) +func (ec *executionContext) _CoreV1NodeList(ctx context.Context, sel ast.SelectionSet, obj *v13.NodeList) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, coreV1NodeListImplementors) out := graphql.NewFieldSet(fields) deferred := make(map[string]*graphql.FieldSet) for i, field := range fields { switch field.Name { case "__typename": - out.Values[i] = graphql.MarshalString("CoreV1NamespaceList") + out.Values[i] = graphql.MarshalString("CoreV1NodeList") case "kind": - out.Values[i] = ec._CoreV1NamespaceList_kind(ctx, field, obj) + out.Values[i] = ec._CoreV1NodeList_kind(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } case "apiVersion": - out.Values[i] = ec._CoreV1NamespaceList_apiVersion(ctx, field, obj) + out.Values[i] = ec._CoreV1NodeList_apiVersion(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } case "metadata": - out.Values[i] = ec._CoreV1NamespaceList_metadata(ctx, field, obj) + out.Values[i] = ec._CoreV1NodeList_metadata(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } case "items": - out.Values[i] = ec._CoreV1NamespaceList_items(ctx, field, obj) + out.Values[i] = ec._CoreV1NodeList_items(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } @@ -23672,19 +25512,19 @@ func (ec *executionContext) _CoreV1NamespaceList(ctx context.Context, sel ast.Se return out } -var coreV1NamespacesWatchEventImplementors = []string{"CoreV1NamespacesWatchEvent"} +var coreV1NodesWatchEventImplementors = []string{"CoreV1NodesWatchEvent"} -func (ec *executionContext) _CoreV1NamespacesWatchEvent(ctx context.Context, sel ast.SelectionSet, obj *watch.Event) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, coreV1NamespacesWatchEventImplementors) +func (ec *executionContext) _CoreV1NodesWatchEvent(ctx context.Context, sel ast.SelectionSet, obj *watch.Event) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, coreV1NodesWatchEventImplementors) out := graphql.NewFieldSet(fields) deferred := make(map[string]*graphql.FieldSet) for i, field := range fields { switch field.Name { case "__typename": - out.Values[i] = graphql.MarshalString("CoreV1NamespacesWatchEvent") + out.Values[i] = graphql.MarshalString("CoreV1NodesWatchEvent") case "type": - out.Values[i] = ec._CoreV1NamespacesWatchEvent_type(ctx, field, obj) + out.Values[i] = ec._CoreV1NodesWatchEvent_type(ctx, field, obj) if out.Values[i] == graphql.Null { atomic.AddUint32(&out.Invalids, 1) } @@ -23697,7 +25537,7 @@ func (ec *executionContext) _CoreV1NamespacesWatchEvent(ctx context.Context, sel ec.Error(ctx, ec.Recover(ctx, r)) } }() - res = ec._CoreV1NamespacesWatchEvent_object(ctx, field, obj) + res = ec._CoreV1NodesWatchEvent_object(ctx, field, obj) return res } @@ -23744,34 +25584,113 @@ func (ec *executionContext) _CoreV1NamespacesWatchEvent(ctx context.Context, sel return out } -var coreV1NodeImplementors = []string{"CoreV1Node", "Object"} +var coreV1ObjectReferenceImplementors = []string{"CoreV1ObjectReference"} -func (ec *executionContext) _CoreV1Node(ctx context.Context, sel ast.SelectionSet, obj *v11.Node) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, coreV1NodeImplementors) +func (ec *executionContext) _CoreV1ObjectReference(ctx context.Context, sel ast.SelectionSet, obj *v13.ObjectReference) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, coreV1ObjectReferenceImplementors) out := graphql.NewFieldSet(fields) deferred := make(map[string]*graphql.FieldSet) for i, field := range fields { switch field.Name { case "__typename": - out.Values[i] = graphql.MarshalString("CoreV1Node") + out.Values[i] = graphql.MarshalString("CoreV1ObjectReference") + case "kind": + out.Values[i] = ec._CoreV1ObjectReference_kind(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "namespace": + out.Values[i] = ec._CoreV1ObjectReference_namespace(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "name": + out.Values[i] = ec._CoreV1ObjectReference_name(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "uid": + out.Values[i] = ec._CoreV1ObjectReference_uid(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "apiVersion": + out.Values[i] = ec._CoreV1ObjectReference_apiVersion(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "resourceVersion": + out.Values[i] = ec._CoreV1ObjectReference_resourceVersion(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "fieldPath": + out.Values[i] = ec._CoreV1ObjectReference_fieldPath(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch(ctx) + if out.Invalids > 0 { + return graphql.Null + } + + atomic.AddInt32(&ec.deferred, int32(len(deferred))) + + for label, dfs := range deferred { + ec.processDeferredGroup(graphql.DeferredGroup{ + Label: label, + Path: graphql.GetPath(ctx), + FieldSet: dfs, + Context: ctx, + }) + } + + return out +} + +var coreV1PodImplementors = []string{"CoreV1Pod", "Object"} + +func (ec *executionContext) _CoreV1Pod(ctx context.Context, sel ast.SelectionSet, obj *v13.Pod) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, coreV1PodImplementors) + + out := graphql.NewFieldSet(fields) + deferred := make(map[string]*graphql.FieldSet) + for i, field := range fields { + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("CoreV1Pod") case "id": - out.Values[i] = ec._CoreV1Node_id(ctx, field, obj) + out.Values[i] = ec._CoreV1Pod_id(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } case "kind": - out.Values[i] = ec._CoreV1Node_kind(ctx, field, obj) + out.Values[i] = ec._CoreV1Pod_kind(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } case "apiVersion": - out.Values[i] = ec._CoreV1Node_apiVersion(ctx, field, obj) + out.Values[i] = ec._CoreV1Pod_apiVersion(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } case "metadata": - out.Values[i] = ec._CoreV1Node_metadata(ctx, field, obj) + out.Values[i] = ec._CoreV1Pod_metadata(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "spec": + out.Values[i] = ec._CoreV1Pod_spec(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "status": + out.Values[i] = ec._CoreV1Pod_status(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } @@ -23798,34 +25717,34 @@ func (ec *executionContext) _CoreV1Node(ctx context.Context, sel ast.SelectionSe return out } -var coreV1NodeListImplementors = []string{"CoreV1NodeList", "List"} +var coreV1PodListImplementors = []string{"CoreV1PodList", "List"} -func (ec *executionContext) _CoreV1NodeList(ctx context.Context, sel ast.SelectionSet, obj *v11.NodeList) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, coreV1NodeListImplementors) +func (ec *executionContext) _CoreV1PodList(ctx context.Context, sel ast.SelectionSet, obj *v13.PodList) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, coreV1PodListImplementors) out := graphql.NewFieldSet(fields) deferred := make(map[string]*graphql.FieldSet) for i, field := range fields { switch field.Name { case "__typename": - out.Values[i] = graphql.MarshalString("CoreV1NodeList") + out.Values[i] = graphql.MarshalString("CoreV1PodList") case "kind": - out.Values[i] = ec._CoreV1NodeList_kind(ctx, field, obj) + out.Values[i] = ec._CoreV1PodList_kind(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } case "apiVersion": - out.Values[i] = ec._CoreV1NodeList_apiVersion(ctx, field, obj) + out.Values[i] = ec._CoreV1PodList_apiVersion(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } case "metadata": - out.Values[i] = ec._CoreV1NodeList_metadata(ctx, field, obj) + out.Values[i] = ec._CoreV1PodList_metadata(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } case "items": - out.Values[i] = ec._CoreV1NodeList_items(ctx, field, obj) + out.Values[i] = ec._CoreV1PodList_items(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } @@ -23852,55 +25771,37 @@ func (ec *executionContext) _CoreV1NodeList(ctx context.Context, sel ast.Selecti return out } -var coreV1NodesWatchEventImplementors = []string{"CoreV1NodesWatchEvent"} +var coreV1PodSpecImplementors = []string{"CoreV1PodSpec"} -func (ec *executionContext) _CoreV1NodesWatchEvent(ctx context.Context, sel ast.SelectionSet, obj *watch.Event) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, coreV1NodesWatchEventImplementors) +func (ec *executionContext) _CoreV1PodSpec(ctx context.Context, sel ast.SelectionSet, obj *v13.PodSpec) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, coreV1PodSpecImplementors) out := graphql.NewFieldSet(fields) deferred := make(map[string]*graphql.FieldSet) for i, field := range fields { switch field.Name { case "__typename": - out.Values[i] = graphql.MarshalString("CoreV1NodesWatchEvent") - case "type": - out.Values[i] = ec._CoreV1NodesWatchEvent_type(ctx, field, obj) + out.Values[i] = graphql.MarshalString("CoreV1PodSpec") + case "containers": + out.Values[i] = ec._CoreV1PodSpec_containers(ctx, field, obj) if out.Values[i] == graphql.Null { - atomic.AddUint32(&out.Invalids, 1) + out.Invalids++ } - case "object": - field := field - - innerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - } - }() - res = ec._CoreV1NodesWatchEvent_object(ctx, field, obj) - return res + case "nodeName": + out.Values[i] = ec._CoreV1PodSpec_nodeName(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ } - - if field.Deferrable != nil { - dfs, ok := deferred[field.Deferrable.Label] - di := 0 - if ok { - dfs.AddField(field) - di = len(dfs.Values) - 1 - } else { - dfs = graphql.NewFieldSet([]graphql.CollectedField{field}) - deferred[field.Deferrable.Label] = dfs - } - dfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler { - return innerFunc(ctx, dfs) - }) - - // don't run the out.Concurrently() call below - out.Values[i] = graphql.Null - continue + case "hostname": + out.Values[i] = ec._CoreV1PodSpec_hostname(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "priorityClassName": + out.Values[i] = ec._CoreV1PodSpec_priorityClassName(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ } - - out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) default: panic("unknown field " + strconv.Quote(field.Name)) } @@ -23924,52 +25825,109 @@ func (ec *executionContext) _CoreV1NodesWatchEvent(ctx context.Context, sel ast. return out } -var coreV1ObjectReferenceImplementors = []string{"CoreV1ObjectReference"} +var coreV1PodStatusImplementors = []string{"CoreV1PodStatus"} -func (ec *executionContext) _CoreV1ObjectReference(ctx context.Context, sel ast.SelectionSet, obj *v11.ObjectReference) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, coreV1ObjectReferenceImplementors) +func (ec *executionContext) _CoreV1PodStatus(ctx context.Context, sel ast.SelectionSet, obj *v13.PodStatus) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, coreV1PodStatusImplementors) out := graphql.NewFieldSet(fields) deferred := make(map[string]*graphql.FieldSet) for i, field := range fields { switch field.Name { case "__typename": - out.Values[i] = graphql.MarshalString("CoreV1ObjectReference") - case "kind": - out.Values[i] = ec._CoreV1ObjectReference_kind(ctx, field, obj) + out.Values[i] = graphql.MarshalString("CoreV1PodStatus") + case "phase": + out.Values[i] = ec._CoreV1PodStatus_phase(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } - case "namespace": - out.Values[i] = ec._CoreV1ObjectReference_namespace(ctx, field, obj) + case "message": + out.Values[i] = ec._CoreV1PodStatus_message(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } - case "name": - out.Values[i] = ec._CoreV1ObjectReference_name(ctx, field, obj) + case "reason": + out.Values[i] = ec._CoreV1PodStatus_reason(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } - case "uid": - out.Values[i] = ec._CoreV1ObjectReference_uid(ctx, field, obj) + case "containerStatuses": + out.Values[i] = ec._CoreV1PodStatus_containerStatuses(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } - case "apiVersion": - out.Values[i] = ec._CoreV1ObjectReference_apiVersion(ctx, field, obj) + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch(ctx) + if out.Invalids > 0 { + return graphql.Null + } + + atomic.AddInt32(&ec.deferred, int32(len(deferred))) + + for label, dfs := range deferred { + ec.processDeferredGroup(graphql.DeferredGroup{ + Label: label, + Path: graphql.GetPath(ctx), + FieldSet: dfs, + Context: ctx, + }) + } + + return out +} + +var coreV1PodsWatchEventImplementors = []string{"CoreV1PodsWatchEvent"} + +func (ec *executionContext) _CoreV1PodsWatchEvent(ctx context.Context, sel ast.SelectionSet, obj *watch.Event) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, coreV1PodsWatchEventImplementors) + + out := graphql.NewFieldSet(fields) + deferred := make(map[string]*graphql.FieldSet) + for i, field := range fields { + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("CoreV1PodsWatchEvent") + case "type": + out.Values[i] = ec._CoreV1PodsWatchEvent_type(ctx, field, obj) if out.Values[i] == graphql.Null { - out.Invalids++ + atomic.AddUint32(&out.Invalids, 1) } - case "resourceVersion": - out.Values[i] = ec._CoreV1ObjectReference_resourceVersion(ctx, field, obj) - if out.Values[i] == graphql.Null { - out.Invalids++ + case "object": + field := field + + innerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + } + }() + res = ec._CoreV1PodsWatchEvent_object(ctx, field, obj) + return res } - case "fieldPath": - out.Values[i] = ec._CoreV1ObjectReference_fieldPath(ctx, field, obj) - if out.Values[i] == graphql.Null { - out.Invalids++ + + if field.Deferrable != nil { + dfs, ok := deferred[field.Deferrable.Label] + di := 0 + if ok { + dfs.AddField(field) + di = len(dfs.Values) - 1 + } else { + dfs = graphql.NewFieldSet([]graphql.CollectedField{field}) + deferred[field.Deferrable.Label] = dfs + } + dfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler { + return innerFunc(ctx, dfs) + }) + + // don't run the out.Concurrently() call below + out.Values[i] = graphql.Null + continue } + + out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) default: panic("unknown field " + strconv.Quote(field.Name)) } @@ -23993,44 +25951,39 @@ func (ec *executionContext) _CoreV1ObjectReference(ctx context.Context, sel ast. return out } -var coreV1PodImplementors = []string{"CoreV1Pod", "Object"} +var coreV1ServiceImplementors = []string{"CoreV1Service", "Object"} -func (ec *executionContext) _CoreV1Pod(ctx context.Context, sel ast.SelectionSet, obj *v11.Pod) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, coreV1PodImplementors) +func (ec *executionContext) _CoreV1Service(ctx context.Context, sel ast.SelectionSet, obj *v13.Service) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, coreV1ServiceImplementors) out := graphql.NewFieldSet(fields) deferred := make(map[string]*graphql.FieldSet) for i, field := range fields { switch field.Name { case "__typename": - out.Values[i] = graphql.MarshalString("CoreV1Pod") + out.Values[i] = graphql.MarshalString("CoreV1Service") case "id": - out.Values[i] = ec._CoreV1Pod_id(ctx, field, obj) + out.Values[i] = ec._CoreV1Service_id(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } case "kind": - out.Values[i] = ec._CoreV1Pod_kind(ctx, field, obj) + out.Values[i] = ec._CoreV1Service_kind(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } case "apiVersion": - out.Values[i] = ec._CoreV1Pod_apiVersion(ctx, field, obj) + out.Values[i] = ec._CoreV1Service_apiVersion(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } case "metadata": - out.Values[i] = ec._CoreV1Pod_metadata(ctx, field, obj) + out.Values[i] = ec._CoreV1Service_metadata(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } case "spec": - out.Values[i] = ec._CoreV1Pod_spec(ctx, field, obj) - if out.Values[i] == graphql.Null { - out.Invalids++ - } - case "status": - out.Values[i] = ec._CoreV1Pod_status(ctx, field, obj) + out.Values[i] = ec._CoreV1Service_spec(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } @@ -24057,34 +26010,34 @@ func (ec *executionContext) _CoreV1Pod(ctx context.Context, sel ast.SelectionSet return out } -var coreV1PodListImplementors = []string{"CoreV1PodList", "List"} +var coreV1ServiceListImplementors = []string{"CoreV1ServiceList", "List"} -func (ec *executionContext) _CoreV1PodList(ctx context.Context, sel ast.SelectionSet, obj *v11.PodList) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, coreV1PodListImplementors) +func (ec *executionContext) _CoreV1ServiceList(ctx context.Context, sel ast.SelectionSet, obj *v13.ServiceList) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, coreV1ServiceListImplementors) out := graphql.NewFieldSet(fields) deferred := make(map[string]*graphql.FieldSet) for i, field := range fields { switch field.Name { case "__typename": - out.Values[i] = graphql.MarshalString("CoreV1PodList") + out.Values[i] = graphql.MarshalString("CoreV1ServiceList") case "kind": - out.Values[i] = ec._CoreV1PodList_kind(ctx, field, obj) + out.Values[i] = ec._CoreV1ServiceList_kind(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } case "apiVersion": - out.Values[i] = ec._CoreV1PodList_apiVersion(ctx, field, obj) + out.Values[i] = ec._CoreV1ServiceList_apiVersion(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } case "metadata": - out.Values[i] = ec._CoreV1PodList_metadata(ctx, field, obj) + out.Values[i] = ec._CoreV1ServiceList_metadata(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } case "items": - out.Values[i] = ec._CoreV1PodList_items(ctx, field, obj) + out.Values[i] = ec._CoreV1ServiceList_items(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } @@ -24111,37 +26064,19 @@ func (ec *executionContext) _CoreV1PodList(ctx context.Context, sel ast.Selectio return out } -var coreV1PodSpecImplementors = []string{"CoreV1PodSpec"} +var coreV1ServicePortImplementors = []string{"CoreV1ServicePort"} -func (ec *executionContext) _CoreV1PodSpec(ctx context.Context, sel ast.SelectionSet, obj *v11.PodSpec) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, coreV1PodSpecImplementors) +func (ec *executionContext) _CoreV1ServicePort(ctx context.Context, sel ast.SelectionSet, obj *v13.ServicePort) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, coreV1ServicePortImplementors) out := graphql.NewFieldSet(fields) deferred := make(map[string]*graphql.FieldSet) for i, field := range fields { switch field.Name { case "__typename": - out.Values[i] = graphql.MarshalString("CoreV1PodSpec") - case "containers": - out.Values[i] = ec._CoreV1PodSpec_containers(ctx, field, obj) - if out.Values[i] == graphql.Null { - out.Invalids++ - } - case "nodeName": - out.Values[i] = ec._CoreV1PodSpec_nodeName(ctx, field, obj) - if out.Values[i] == graphql.Null { - out.Invalids++ - } - case "hostname": - out.Values[i] = ec._CoreV1PodSpec_hostname(ctx, field, obj) - if out.Values[i] == graphql.Null { - out.Invalids++ - } - case "priorityClassName": - out.Values[i] = ec._CoreV1PodSpec_priorityClassName(ctx, field, obj) - if out.Values[i] == graphql.Null { - out.Invalids++ - } + out.Values[i] = graphql.MarshalString("CoreV1ServicePort") + case "name": + out.Values[i] = ec._CoreV1ServicePort_name(ctx, field, obj) default: panic("unknown field " + strconv.Quote(field.Name)) } @@ -24165,37 +26100,30 @@ func (ec *executionContext) _CoreV1PodSpec(ctx context.Context, sel ast.Selectio return out } -var coreV1PodStatusImplementors = []string{"CoreV1PodStatus"} +var coreV1ServiceSpecImplementors = []string{"CoreV1ServiceSpec"} -func (ec *executionContext) _CoreV1PodStatus(ctx context.Context, sel ast.SelectionSet, obj *v11.PodStatus) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, coreV1PodStatusImplementors) +func (ec *executionContext) _CoreV1ServiceSpec(ctx context.Context, sel ast.SelectionSet, obj *v13.ServiceSpec) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, coreV1ServiceSpecImplementors) out := graphql.NewFieldSet(fields) deferred := make(map[string]*graphql.FieldSet) for i, field := range fields { switch field.Name { case "__typename": - out.Values[i] = graphql.MarshalString("CoreV1PodStatus") - case "phase": - out.Values[i] = ec._CoreV1PodStatus_phase(ctx, field, obj) - if out.Values[i] == graphql.Null { - out.Invalids++ - } - case "message": - out.Values[i] = ec._CoreV1PodStatus_message(ctx, field, obj) - if out.Values[i] == graphql.Null { - out.Invalids++ - } - case "reason": - out.Values[i] = ec._CoreV1PodStatus_reason(ctx, field, obj) - if out.Values[i] == graphql.Null { - out.Invalids++ - } - case "containerStatuses": - out.Values[i] = ec._CoreV1PodStatus_containerStatuses(ctx, field, obj) + out.Values[i] = graphql.MarshalString("CoreV1ServiceSpec") + case "ports": + out.Values[i] = ec._CoreV1ServiceSpec_ports(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } + case "selector": + out.Values[i] = ec._CoreV1ServiceSpec_selector(ctx, field, obj) + case "clusterIP": + out.Values[i] = ec._CoreV1ServiceSpec_clusterIP(ctx, field, obj) + case "clusterIPs": + out.Values[i] = ec._CoreV1ServiceSpec_clusterIPs(ctx, field, obj) + case "externalName": + out.Values[i] = ec._CoreV1ServiceSpec_externalName(ctx, field, obj) default: panic("unknown field " + strconv.Quote(field.Name)) } @@ -24219,19 +26147,19 @@ func (ec *executionContext) _CoreV1PodStatus(ctx context.Context, sel ast.Select return out } -var coreV1PodsWatchEventImplementors = []string{"CoreV1PodsWatchEvent"} +var coreV1ServicesWatchEventImplementors = []string{"CoreV1ServicesWatchEvent"} -func (ec *executionContext) _CoreV1PodsWatchEvent(ctx context.Context, sel ast.SelectionSet, obj *watch.Event) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, coreV1PodsWatchEventImplementors) +func (ec *executionContext) _CoreV1ServicesWatchEvent(ctx context.Context, sel ast.SelectionSet, obj *watch.Event) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, coreV1ServicesWatchEventImplementors) out := graphql.NewFieldSet(fields) deferred := make(map[string]*graphql.FieldSet) for i, field := range fields { switch field.Name { case "__typename": - out.Values[i] = graphql.MarshalString("CoreV1PodsWatchEvent") + out.Values[i] = graphql.MarshalString("CoreV1ServicesWatchEvent") case "type": - out.Values[i] = ec._CoreV1PodsWatchEvent_type(ctx, field, obj) + out.Values[i] = ec._CoreV1ServicesWatchEvent_type(ctx, field, obj) if out.Values[i] == graphql.Null { atomic.AddUint32(&out.Invalids, 1) } @@ -24244,7 +26172,7 @@ func (ec *executionContext) _CoreV1PodsWatchEvent(ctx context.Context, sel ast.S ec.Error(ctx, ec.Recover(ctx, r)) } }() - res = ec._CoreV1PodsWatchEvent_object(ctx, field, obj) + res = ec._CoreV1ServicesWatchEvent_object(ctx, field, obj) return res } @@ -24307,13 +26235,162 @@ func (ec *executionContext) _HealthCheckResponse(ctx context.Context, sel ast.Se if out.Values[i] == graphql.Null { out.Invalids++ } - case "message": - out.Values[i] = ec._HealthCheckResponse_message(ctx, field, obj) - case "timestamp": - out.Values[i] = ec._HealthCheckResponse_timestamp(ctx, field, obj) + case "message": + out.Values[i] = ec._HealthCheckResponse_message(ctx, field, obj) + case "timestamp": + out.Values[i] = ec._HealthCheckResponse_timestamp(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch(ctx) + if out.Invalids > 0 { + return graphql.Null + } + + atomic.AddInt32(&ec.deferred, int32(len(deferred))) + + for label, dfs := range deferred { + ec.processDeferredGroup(graphql.DeferredGroup{ + Label: label, + Path: graphql.GetPath(ctx), + FieldSet: dfs, + Context: ctx, + }) + } + + return out +} + +var kubeConfigImplementors = []string{"KubeConfig"} + +func (ec *executionContext) _KubeConfig(ctx context.Context, sel ast.SelectionSet, obj *model.KubeConfig) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, kubeConfigImplementors) + + out := graphql.NewFieldSet(fields) + deferred := make(map[string]*graphql.FieldSet) + for i, field := range fields { + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("KubeConfig") + case "authInfos": + field := field + + innerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + } + }() + res = ec._KubeConfig_authInfos(ctx, field, obj) + if res == graphql.Null { + atomic.AddUint32(&fs.Invalids, 1) + } + return res + } + + if field.Deferrable != nil { + dfs, ok := deferred[field.Deferrable.Label] + di := 0 + if ok { + dfs.AddField(field) + di = len(dfs.Values) - 1 + } else { + dfs = graphql.NewFieldSet([]graphql.CollectedField{field}) + deferred[field.Deferrable.Label] = dfs + } + dfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler { + return innerFunc(ctx, dfs) + }) + + // don't run the out.Concurrently() call below + out.Values[i] = graphql.Null + continue + } + + out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) + case "clusters": + field := field + + innerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + } + }() + res = ec._KubeConfig_clusters(ctx, field, obj) + if res == graphql.Null { + atomic.AddUint32(&fs.Invalids, 1) + } + return res + } + + if field.Deferrable != nil { + dfs, ok := deferred[field.Deferrable.Label] + di := 0 + if ok { + dfs.AddField(field) + di = len(dfs.Values) - 1 + } else { + dfs = graphql.NewFieldSet([]graphql.CollectedField{field}) + deferred[field.Deferrable.Label] = dfs + } + dfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler { + return innerFunc(ctx, dfs) + }) + + // don't run the out.Concurrently() call below + out.Values[i] = graphql.Null + continue + } + + out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) + case "contexts": + field := field + + innerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + } + }() + res = ec._KubeConfig_contexts(ctx, field, obj) + if res == graphql.Null { + atomic.AddUint32(&fs.Invalids, 1) + } + return res + } + + if field.Deferrable != nil { + dfs, ok := deferred[field.Deferrable.Label] + di := 0 + if ok { + dfs.AddField(field) + di = len(dfs.Values) - 1 + } else { + dfs = graphql.NewFieldSet([]graphql.CollectedField{field}) + deferred[field.Deferrable.Label] = dfs + } + dfs.Concurrently(di, func(ctx context.Context) graphql.Marshaler { + return innerFunc(ctx, dfs) + }) + + // don't run the out.Concurrently() call below + out.Values[i] = graphql.Null + continue + } + + out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) + case "currentContext": + out.Values[i] = ec._KubeConfig_currentContext(ctx, field, obj) if out.Values[i] == graphql.Null { - out.Invalids++ + atomic.AddUint32(&out.Invalids, 1) } + case "extensions": + out.Values[i] = ec._KubeConfig_extensions(ctx, field, obj) default: panic("unknown field " + strconv.Quote(field.Name)) } @@ -24337,32 +26414,29 @@ func (ec *executionContext) _HealthCheckResponse(ctx context.Context, sel ast.Se return out } -var logMetadataImplementors = []string{"LogMetadata"} +var kubeConfigAuthInfoImplementors = []string{"KubeConfigAuthInfo"} -func (ec *executionContext) _LogMetadata(ctx context.Context, sel ast.SelectionSet, obj *agentpb.LogMetadata) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, logMetadataImplementors) +func (ec *executionContext) _KubeConfigAuthInfo(ctx context.Context, sel ast.SelectionSet, obj *model.KubeConfigAuthInfo) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, kubeConfigAuthInfoImplementors) out := graphql.NewFieldSet(fields) deferred := make(map[string]*graphql.FieldSet) for i, field := range fields { switch field.Name { case "__typename": - out.Values[i] = graphql.MarshalString("LogMetadata") - case "id": - out.Values[i] = ec._LogMetadata_id(ctx, field, obj) - if out.Values[i] == graphql.Null { - out.Invalids++ - } - case "spec": - out.Values[i] = ec._LogMetadata_spec(ctx, field, obj) + out.Values[i] = graphql.MarshalString("KubeConfigAuthInfo") + case "name": + out.Values[i] = ec._KubeConfigAuthInfo_name(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } - case "fileInfo": - out.Values[i] = ec._LogMetadata_fileInfo(ctx, field, obj) + case "locationOfOrigin": + out.Values[i] = ec._KubeConfigAuthInfo_locationOfOrigin(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } + case "extensions": + out.Values[i] = ec._KubeConfigAuthInfo_extensions(ctx, field, obj) default: panic("unknown field " + strconv.Quote(field.Name)) } @@ -24386,63 +26460,34 @@ func (ec *executionContext) _LogMetadata(ctx context.Context, sel ast.SelectionS return out } -var logMetadataFileInfoImplementors = []string{"LogMetadataFileInfo"} +var kubeConfigClusterImplementors = []string{"KubeConfigCluster"} -func (ec *executionContext) _LogMetadataFileInfo(ctx context.Context, sel ast.SelectionSet, obj *agentpb.LogMetadataFileInfo) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, logMetadataFileInfoImplementors) +func (ec *executionContext) _KubeConfigCluster(ctx context.Context, sel ast.SelectionSet, obj *model.KubeConfigCluster) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, kubeConfigClusterImplementors) out := graphql.NewFieldSet(fields) deferred := make(map[string]*graphql.FieldSet) for i, field := range fields { switch field.Name { case "__typename": - out.Values[i] = graphql.MarshalString("LogMetadataFileInfo") - case "size": - out.Values[i] = ec._LogMetadataFileInfo_size(ctx, field, obj) + out.Values[i] = graphql.MarshalString("KubeConfigCluster") + case "name": + out.Values[i] = ec._KubeConfigCluster_name(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } - case "lastModifiedAt": - out.Values[i] = ec._LogMetadataFileInfo_lastModifiedAt(ctx, field, obj) - default: - panic("unknown field " + strconv.Quote(field.Name)) - } - } - out.Dispatch(ctx) - if out.Invalids > 0 { - return graphql.Null - } - - atomic.AddInt32(&ec.deferred, int32(len(deferred))) - - for label, dfs := range deferred { - ec.processDeferredGroup(graphql.DeferredGroup{ - Label: label, - Path: graphql.GetPath(ctx), - FieldSet: dfs, - Context: ctx, - }) - } - - return out -} - -var logMetadataListImplementors = []string{"LogMetadataList"} - -func (ec *executionContext) _LogMetadataList(ctx context.Context, sel ast.SelectionSet, obj *agentpb.LogMetadataList) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, logMetadataListImplementors) - - out := graphql.NewFieldSet(fields) - deferred := make(map[string]*graphql.FieldSet) - for i, field := range fields { - switch field.Name { - case "__typename": - out.Values[i] = graphql.MarshalString("LogMetadataList") - case "items": - out.Values[i] = ec._LogMetadataList_items(ctx, field, obj) + case "locationOfOrigin": + out.Values[i] = ec._KubeConfigCluster_locationOfOrigin(ctx, field, obj) + if out.Values[i] == graphql.Null { + out.Invalids++ + } + case "server": + out.Values[i] = ec._KubeConfigCluster_server(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } + case "extensions": + out.Values[i] = ec._KubeConfigCluster_extensions(ctx, field, obj) default: panic("unknown field " + strconv.Quote(field.Name)) } @@ -24466,42 +26511,44 @@ func (ec *executionContext) _LogMetadataList(ctx context.Context, sel ast.Select return out } -var logMetadataSpecImplementors = []string{"LogMetadataSpec"} +var kubeConfigContextImplementors = []string{"KubeConfigContext"} -func (ec *executionContext) _LogMetadataSpec(ctx context.Context, sel ast.SelectionSet, obj *agentpb.LogMetadataSpec) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, logMetadataSpecImplementors) +func (ec *executionContext) _KubeConfigContext(ctx context.Context, sel ast.SelectionSet, obj *model.KubeConfigContext) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, kubeConfigContextImplementors) out := graphql.NewFieldSet(fields) deferred := make(map[string]*graphql.FieldSet) for i, field := range fields { switch field.Name { case "__typename": - out.Values[i] = graphql.MarshalString("LogMetadataSpec") - case "nodeName": - out.Values[i] = ec._LogMetadataSpec_nodeName(ctx, field, obj) + out.Values[i] = graphql.MarshalString("KubeConfigContext") + case "name": + out.Values[i] = ec._KubeConfigContext_name(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } - case "namespace": - out.Values[i] = ec._LogMetadataSpec_namespace(ctx, field, obj) + case "locationOfOrigin": + out.Values[i] = ec._KubeConfigContext_locationOfOrigin(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } - case "podName": - out.Values[i] = ec._LogMetadataSpec_podName(ctx, field, obj) + case "cluster": + out.Values[i] = ec._KubeConfigContext_cluster(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } - case "containerName": - out.Values[i] = ec._LogMetadataSpec_containerName(ctx, field, obj) + case "authInfo": + out.Values[i] = ec._KubeConfigContext_authInfo(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } - case "containerID": - out.Values[i] = ec._LogMetadataSpec_containerID(ctx, field, obj) + case "namespace": + out.Values[i] = ec._KubeConfigContext_namespace(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } + case "extensions": + out.Values[i] = ec._KubeConfigContext_extensions(ctx, field, obj) default: panic("unknown field " + strconv.Quote(field.Name)) } @@ -24525,24 +26572,24 @@ func (ec *executionContext) _LogMetadataSpec(ctx context.Context, sel ast.Select return out } -var logMetadataWatchEventImplementors = []string{"LogMetadataWatchEvent"} +var kubeConfigWatchEventImplementors = []string{"KubeConfigWatchEvent"} -func (ec *executionContext) _LogMetadataWatchEvent(ctx context.Context, sel ast.SelectionSet, obj *agentpb.LogMetadataWatchEvent) graphql.Marshaler { - fields := graphql.CollectFields(ec.OperationContext, sel, logMetadataWatchEventImplementors) +func (ec *executionContext) _KubeConfigWatchEvent(ctx context.Context, sel ast.SelectionSet, obj *model.KubeConfigWatchEvent) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, kubeConfigWatchEventImplementors) out := graphql.NewFieldSet(fields) deferred := make(map[string]*graphql.FieldSet) for i, field := range fields { switch field.Name { case "__typename": - out.Values[i] = graphql.MarshalString("LogMetadataWatchEvent") + out.Values[i] = graphql.MarshalString("KubeConfigWatchEvent") case "type": - out.Values[i] = ec._LogMetadataWatchEvent_type(ctx, field, obj) + out.Values[i] = ec._KubeConfigWatchEvent_type(ctx, field, obj) if out.Values[i] == graphql.Null { out.Invalids++ } case "object": - out.Values[i] = ec._LogMetadataWatchEvent_object(ctx, field, obj) + out.Values[i] = ec._KubeConfigWatchEvent_object(ctx, field, obj) default: panic("unknown field " + strconv.Quote(field.Name)) } @@ -24872,6 +26919,52 @@ func (ec *executionContext) _MetaV1OwnerReference(ctx context.Context, sel ast.S return out } +var mutationImplementors = []string{"Mutation"} + +func (ec *executionContext) _Mutation(ctx context.Context, sel ast.SelectionSet) graphql.Marshaler { + fields := graphql.CollectFields(ec.OperationContext, sel, mutationImplementors) + ctx = graphql.WithFieldContext(ctx, &graphql.FieldContext{ + Object: "Mutation", + }) + + out := graphql.NewFieldSet(fields) + deferred := make(map[string]*graphql.FieldSet) + for i, field := range fields { + innerCtx := graphql.WithRootFieldContext(ctx, &graphql.RootFieldContext{ + Object: field.Name, + Field: field, + }) + + switch field.Name { + case "__typename": + out.Values[i] = graphql.MarshalString("Mutation") + case "kubetailClusterAPIInstall": + out.Values[i] = ec.OperationContext.RootResolverMiddleware(innerCtx, func(ctx context.Context) (res graphql.Marshaler) { + return ec._Mutation_kubetailClusterAPIInstall(ctx, field) + }) + default: + panic("unknown field " + strconv.Quote(field.Name)) + } + } + out.Dispatch(ctx) + if out.Invalids > 0 { + return graphql.Null + } + + atomic.AddInt32(&ec.deferred, int32(len(deferred))) + + for label, dfs := range deferred { + ec.processDeferredGroup(graphql.DeferredGroup{ + Label: label, + Path: graphql.GetPath(ctx), + FieldSet: dfs, + Context: ctx, + }) + } + + return out +} + var pageInfoImplementors = []string{"PageInfo"} func (ec *executionContext) _PageInfo(ctx context.Context, sel ast.SelectionSet, obj *model.PageInfo) graphql.Marshaler { @@ -25287,7 +27380,7 @@ func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) gr } out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) }) - case "coreV1PodsGetLogs": + case "coreV1ServicesGet": field := field innerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) { @@ -25296,7 +27389,7 @@ func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) gr ec.Error(ctx, ec.Recover(ctx, r)) } }() - res = ec._Query_coreV1PodsGetLogs(ctx, field) + res = ec._Query_coreV1ServicesGet(ctx, field) return res } @@ -25306,7 +27399,7 @@ func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) gr } out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) }) - case "logMetadataList": + case "coreV1ServicesList": field := field innerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) { @@ -25315,7 +27408,7 @@ func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) gr ec.Error(ctx, ec.Recover(ctx, r)) } }() - res = ec._Query_logMetadataList(ctx, field) + res = ec._Query_coreV1ServicesList(ctx, field) return res } @@ -25325,16 +27418,19 @@ func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) gr } out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) }) - case "podLogHead": + case "kubernetesAPIReadyWait": field := field - innerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) { + innerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) { defer func() { if r := recover(); r != nil { ec.Error(ctx, ec.Recover(ctx, r)) } }() - res = ec._Query_podLogHead(ctx, field) + res = ec._Query_kubernetesAPIReadyWait(ctx, field) + if res == graphql.Null { + atomic.AddUint32(&fs.Invalids, 1) + } return res } @@ -25344,16 +27440,19 @@ func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) gr } out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) }) - case "podLogTail": + case "kubernetesAPIHealthzGet": field := field - innerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) { + innerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) { defer func() { if r := recover(); r != nil { ec.Error(ctx, ec.Recover(ctx, r)) } }() - res = ec._Query_podLogTail(ctx, field) + res = ec._Query_kubernetesAPIHealthzGet(ctx, field) + if res == graphql.Null { + atomic.AddUint32(&fs.Invalids, 1) + } return res } @@ -25363,7 +27462,7 @@ func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) gr } out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) }) - case "livezGet": + case "kubetailClusterAPIReadyWait": field := field innerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) { @@ -25372,7 +27471,7 @@ func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) gr ec.Error(ctx, ec.Recover(ctx, r)) } }() - res = ec._Query_livezGet(ctx, field) + res = ec._Query_kubetailClusterAPIReadyWait(ctx, field) if res == graphql.Null { atomic.AddUint32(&fs.Invalids, 1) } @@ -25385,7 +27484,7 @@ func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) gr } out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) }) - case "readyzGet": + case "kubetailClusterAPIHealthzGet": field := field innerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) { @@ -25394,7 +27493,7 @@ func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) gr ec.Error(ctx, ec.Recover(ctx, r)) } }() - res = ec._Query_readyzGet(ctx, field) + res = ec._Query_kubetailClusterAPIHealthzGet(ctx, field) if res == graphql.Null { atomic.AddUint32(&fs.Invalids, 1) } @@ -25407,19 +27506,54 @@ func (ec *executionContext) _Query(ctx context.Context, sel ast.SelectionSet) gr } out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) }) - case "readyWait": + case "kubeConfigGet": field := field - innerFunc := func(ctx context.Context, fs *graphql.FieldSet) (res graphql.Marshaler) { + innerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) { defer func() { if r := recover(); r != nil { ec.Error(ctx, ec.Recover(ctx, r)) } }() - res = ec._Query_readyWait(ctx, field) - if res == graphql.Null { - atomic.AddUint32(&fs.Invalids, 1) - } + res = ec._Query_kubeConfigGet(ctx, field) + return res + } + + rrm := func(ctx context.Context) graphql.Marshaler { + return ec.OperationContext.RootResolverMiddleware(ctx, + func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) + } + + out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) }) + case "podLogHead": + field := field + + innerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + } + }() + res = ec._Query_podLogHead(ctx, field) + return res + } + + rrm := func(ctx context.Context) graphql.Marshaler { + return ec.OperationContext.RootResolverMiddleware(ctx, + func(ctx context.Context) graphql.Marshaler { return innerFunc(ctx, out) }) + } + + out.Concurrently(i, func(ctx context.Context) graphql.Marshaler { return rrm(innerCtx) }) + case "podLogTail": + field := field + + innerFunc := func(ctx context.Context, _ *graphql.FieldSet) (res graphql.Marshaler) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + } + }() + res = ec._Query_podLogTail(ctx, field) return res } @@ -25491,16 +27625,16 @@ func (ec *executionContext) _Subscription(ctx context.Context, sel ast.Selection return ec._Subscription_coreV1NodesWatch(ctx, fields[0]) case "coreV1PodsWatch": return ec._Subscription_coreV1PodsWatch(ctx, fields[0]) - case "coreV1PodLogTail": - return ec._Subscription_coreV1PodLogTail(ctx, fields[0]) - case "logMetadataWatch": - return ec._Subscription_logMetadataWatch(ctx, fields[0]) + case "coreV1ServicesWatch": + return ec._Subscription_coreV1ServicesWatch(ctx, fields[0]) + case "kubernetesAPIHealthzWatch": + return ec._Subscription_kubernetesAPIHealthzWatch(ctx, fields[0]) + case "kubetailClusterAPIHealthzWatch": + return ec._Subscription_kubetailClusterAPIHealthzWatch(ctx, fields[0]) + case "kubeConfigWatch": + return ec._Subscription_kubeConfigWatch(ctx, fields[0]) case "podLogFollow": return ec._Subscription_podLogFollow(ctx, fields[0]) - case "livezWatch": - return ec._Subscription_livezWatch(ctx, fields[0]) - case "readyzWatch": - return ec._Subscription_readyzWatch(ctx, fields[0]) default: panic("unknown field " + strconv.Quote(fields[0].Name)) } @@ -25832,11 +27966,11 @@ func (ec *executionContext) ___Type(ctx context.Context, sel ast.SelectionSet, o // region ***************************** type.gotpl ***************************** -func (ec *executionContext) marshalNAppsV1DaemonSet2k8sᚗioᚋapiᚋappsᚋv1ᚐDaemonSet(ctx context.Context, sel ast.SelectionSet, v v12.DaemonSet) graphql.Marshaler { +func (ec *executionContext) marshalNAppsV1DaemonSet2k8sᚗioᚋapiᚋappsᚋv1ᚐDaemonSet(ctx context.Context, sel ast.SelectionSet, v v11.DaemonSet) graphql.Marshaler { return ec._AppsV1DaemonSet(ctx, sel, &v) } -func (ec *executionContext) marshalNAppsV1DaemonSet2ᚕk8sᚗioᚋapiᚋappsᚋv1ᚐDaemonSetᚄ(ctx context.Context, sel ast.SelectionSet, v []v12.DaemonSet) graphql.Marshaler { +func (ec *executionContext) marshalNAppsV1DaemonSet2ᚕk8sᚗioᚋapiᚋappsᚋv1ᚐDaemonSetᚄ(ctx context.Context, sel ast.SelectionSet, v []v11.DaemonSet) graphql.Marshaler { ret := make(graphql.Array, len(v)) var wg sync.WaitGroup isLen1 := len(v) == 1 @@ -25880,11 +28014,11 @@ func (ec *executionContext) marshalNAppsV1DaemonSet2ᚕk8sᚗioᚋapiᚋappsᚋv return ret } -func (ec *executionContext) marshalNAppsV1DaemonSetCondition2k8sᚗioᚋapiᚋappsᚋv1ᚐDaemonSetCondition(ctx context.Context, sel ast.SelectionSet, v v12.DaemonSetCondition) graphql.Marshaler { +func (ec *executionContext) marshalNAppsV1DaemonSetCondition2k8sᚗioᚋapiᚋappsᚋv1ᚐDaemonSetCondition(ctx context.Context, sel ast.SelectionSet, v v11.DaemonSetCondition) graphql.Marshaler { return ec._AppsV1DaemonSetCondition(ctx, sel, &v) } -func (ec *executionContext) marshalNAppsV1DaemonSetCondition2ᚕk8sᚗioᚋapiᚋappsᚋv1ᚐDaemonSetConditionᚄ(ctx context.Context, sel ast.SelectionSet, v []v12.DaemonSetCondition) graphql.Marshaler { +func (ec *executionContext) marshalNAppsV1DaemonSetCondition2ᚕk8sᚗioᚋapiᚋappsᚋv1ᚐDaemonSetConditionᚄ(ctx context.Context, sel ast.SelectionSet, v []v11.DaemonSetCondition) graphql.Marshaler { ret := make(graphql.Array, len(v)) var wg sync.WaitGroup isLen1 := len(v) == 1 @@ -25928,13 +28062,13 @@ func (ec *executionContext) marshalNAppsV1DaemonSetCondition2ᚕk8sᚗioᚋapi return ret } -func (ec *executionContext) unmarshalNAppsV1DaemonSetConditionType2k8sᚗioᚋapiᚋappsᚋv1ᚐDaemonSetConditionType(ctx context.Context, v interface{}) (v12.DaemonSetConditionType, error) { +func (ec *executionContext) unmarshalNAppsV1DaemonSetConditionType2k8sᚗioᚋapiᚋappsᚋv1ᚐDaemonSetConditionType(ctx context.Context, v any) (v11.DaemonSetConditionType, error) { tmp, err := graphql.UnmarshalString(v) - res := v12.DaemonSetConditionType(tmp) + res := v11.DaemonSetConditionType(tmp) return res, graphql.ErrorOnPath(ctx, err) } -func (ec *executionContext) marshalNAppsV1DaemonSetConditionType2k8sᚗioᚋapiᚋappsᚋv1ᚐDaemonSetConditionType(ctx context.Context, sel ast.SelectionSet, v v12.DaemonSetConditionType) graphql.Marshaler { +func (ec *executionContext) marshalNAppsV1DaemonSetConditionType2k8sᚗioᚋapiᚋappsᚋv1ᚐDaemonSetConditionType(ctx context.Context, sel ast.SelectionSet, v v11.DaemonSetConditionType) graphql.Marshaler { res := graphql.MarshalString(string(v)) if res == graphql.Null { if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { @@ -25944,19 +28078,19 @@ func (ec *executionContext) marshalNAppsV1DaemonSetConditionType2k8sᚗioᚋapi return res } -func (ec *executionContext) marshalNAppsV1DaemonSetSpec2k8sᚗioᚋapiᚋappsᚋv1ᚐDaemonSetSpec(ctx context.Context, sel ast.SelectionSet, v v12.DaemonSetSpec) graphql.Marshaler { +func (ec *executionContext) marshalNAppsV1DaemonSetSpec2k8sᚗioᚋapiᚋappsᚋv1ᚐDaemonSetSpec(ctx context.Context, sel ast.SelectionSet, v v11.DaemonSetSpec) graphql.Marshaler { return ec._AppsV1DaemonSetSpec(ctx, sel, &v) } -func (ec *executionContext) marshalNAppsV1DaemonSetStatus2k8sᚗioᚋapiᚋappsᚋv1ᚐDaemonSetStatus(ctx context.Context, sel ast.SelectionSet, v v12.DaemonSetStatus) graphql.Marshaler { +func (ec *executionContext) marshalNAppsV1DaemonSetStatus2k8sᚗioᚋapiᚋappsᚋv1ᚐDaemonSetStatus(ctx context.Context, sel ast.SelectionSet, v v11.DaemonSetStatus) graphql.Marshaler { return ec._AppsV1DaemonSetStatus(ctx, sel, &v) } -func (ec *executionContext) marshalNAppsV1Deployment2k8sᚗioᚋapiᚋappsᚋv1ᚐDeployment(ctx context.Context, sel ast.SelectionSet, v v12.Deployment) graphql.Marshaler { +func (ec *executionContext) marshalNAppsV1Deployment2k8sᚗioᚋapiᚋappsᚋv1ᚐDeployment(ctx context.Context, sel ast.SelectionSet, v v11.Deployment) graphql.Marshaler { return ec._AppsV1Deployment(ctx, sel, &v) } -func (ec *executionContext) marshalNAppsV1Deployment2ᚕk8sᚗioᚋapiᚋappsᚋv1ᚐDeploymentᚄ(ctx context.Context, sel ast.SelectionSet, v []v12.Deployment) graphql.Marshaler { +func (ec *executionContext) marshalNAppsV1Deployment2ᚕk8sᚗioᚋapiᚋappsᚋv1ᚐDeploymentᚄ(ctx context.Context, sel ast.SelectionSet, v []v11.Deployment) graphql.Marshaler { ret := make(graphql.Array, len(v)) var wg sync.WaitGroup isLen1 := len(v) == 1 @@ -26000,19 +28134,19 @@ func (ec *executionContext) marshalNAppsV1Deployment2ᚕk8sᚗioᚋapiᚋappsᚋ return ret } -func (ec *executionContext) marshalNAppsV1DeploymentSpec2k8sᚗioᚋapiᚋappsᚋv1ᚐDeploymentSpec(ctx context.Context, sel ast.SelectionSet, v v12.DeploymentSpec) graphql.Marshaler { +func (ec *executionContext) marshalNAppsV1DeploymentSpec2k8sᚗioᚋapiᚋappsᚋv1ᚐDeploymentSpec(ctx context.Context, sel ast.SelectionSet, v v11.DeploymentSpec) graphql.Marshaler { return ec._AppsV1DeploymentSpec(ctx, sel, &v) } -func (ec *executionContext) marshalNAppsV1DeploymentStatus2k8sᚗioᚋapiᚋappsᚋv1ᚐDeploymentStatus(ctx context.Context, sel ast.SelectionSet, v v12.DeploymentStatus) graphql.Marshaler { +func (ec *executionContext) marshalNAppsV1DeploymentStatus2k8sᚗioᚋapiᚋappsᚋv1ᚐDeploymentStatus(ctx context.Context, sel ast.SelectionSet, v v11.DeploymentStatus) graphql.Marshaler { return ec._AppsV1DeploymentStatus(ctx, sel, &v) } -func (ec *executionContext) marshalNAppsV1ReplicaSet2k8sᚗioᚋapiᚋappsᚋv1ᚐReplicaSet(ctx context.Context, sel ast.SelectionSet, v v12.ReplicaSet) graphql.Marshaler { +func (ec *executionContext) marshalNAppsV1ReplicaSet2k8sᚗioᚋapiᚋappsᚋv1ᚐReplicaSet(ctx context.Context, sel ast.SelectionSet, v v11.ReplicaSet) graphql.Marshaler { return ec._AppsV1ReplicaSet(ctx, sel, &v) } -func (ec *executionContext) marshalNAppsV1ReplicaSet2ᚕk8sᚗioᚋapiᚋappsᚋv1ᚐReplicaSetᚄ(ctx context.Context, sel ast.SelectionSet, v []v12.ReplicaSet) graphql.Marshaler { +func (ec *executionContext) marshalNAppsV1ReplicaSet2ᚕk8sᚗioᚋapiᚋappsᚋv1ᚐReplicaSetᚄ(ctx context.Context, sel ast.SelectionSet, v []v11.ReplicaSet) graphql.Marshaler { ret := make(graphql.Array, len(v)) var wg sync.WaitGroup isLen1 := len(v) == 1 @@ -26056,19 +28190,19 @@ func (ec *executionContext) marshalNAppsV1ReplicaSet2ᚕk8sᚗioᚋapiᚋappsᚋ return ret } -func (ec *executionContext) marshalNAppsV1ReplicaSetSpec2k8sᚗioᚋapiᚋappsᚋv1ᚐReplicaSetSpec(ctx context.Context, sel ast.SelectionSet, v v12.ReplicaSetSpec) graphql.Marshaler { +func (ec *executionContext) marshalNAppsV1ReplicaSetSpec2k8sᚗioᚋapiᚋappsᚋv1ᚐReplicaSetSpec(ctx context.Context, sel ast.SelectionSet, v v11.ReplicaSetSpec) graphql.Marshaler { return ec._AppsV1ReplicaSetSpec(ctx, sel, &v) } -func (ec *executionContext) marshalNAppsV1ReplicaSetStatus2k8sᚗioᚋapiᚋappsᚋv1ᚐReplicaSetStatus(ctx context.Context, sel ast.SelectionSet, v v12.ReplicaSetStatus) graphql.Marshaler { +func (ec *executionContext) marshalNAppsV1ReplicaSetStatus2k8sᚗioᚋapiᚋappsᚋv1ᚐReplicaSetStatus(ctx context.Context, sel ast.SelectionSet, v v11.ReplicaSetStatus) graphql.Marshaler { return ec._AppsV1ReplicaSetStatus(ctx, sel, &v) } -func (ec *executionContext) marshalNAppsV1StatefulSet2k8sᚗioᚋapiᚋappsᚋv1ᚐStatefulSet(ctx context.Context, sel ast.SelectionSet, v v12.StatefulSet) graphql.Marshaler { +func (ec *executionContext) marshalNAppsV1StatefulSet2k8sᚗioᚋapiᚋappsᚋv1ᚐStatefulSet(ctx context.Context, sel ast.SelectionSet, v v11.StatefulSet) graphql.Marshaler { return ec._AppsV1StatefulSet(ctx, sel, &v) } -func (ec *executionContext) marshalNAppsV1StatefulSet2ᚕk8sᚗioᚋapiᚋappsᚋv1ᚐStatefulSetᚄ(ctx context.Context, sel ast.SelectionSet, v []v12.StatefulSet) graphql.Marshaler { +func (ec *executionContext) marshalNAppsV1StatefulSet2ᚕk8sᚗioᚋapiᚋappsᚋv1ᚐStatefulSetᚄ(ctx context.Context, sel ast.SelectionSet, v []v11.StatefulSet) graphql.Marshaler { ret := make(graphql.Array, len(v)) var wg sync.WaitGroup isLen1 := len(v) == 1 @@ -26112,15 +28246,15 @@ func (ec *executionContext) marshalNAppsV1StatefulSet2ᚕk8sᚗioᚋapiᚋapps return ret } -func (ec *executionContext) marshalNAppsV1StatefulSetSpec2k8sᚗioᚋapiᚋappsᚋv1ᚐStatefulSetSpec(ctx context.Context, sel ast.SelectionSet, v v12.StatefulSetSpec) graphql.Marshaler { +func (ec *executionContext) marshalNAppsV1StatefulSetSpec2k8sᚗioᚋapiᚋappsᚋv1ᚐStatefulSetSpec(ctx context.Context, sel ast.SelectionSet, v v11.StatefulSetSpec) graphql.Marshaler { return ec._AppsV1StatefulSetSpec(ctx, sel, &v) } -func (ec *executionContext) marshalNBatchV1CronJob2k8sᚗioᚋapiᚋbatchᚋv1ᚐCronJob(ctx context.Context, sel ast.SelectionSet, v v13.CronJob) graphql.Marshaler { +func (ec *executionContext) marshalNBatchV1CronJob2k8sᚗioᚋapiᚋbatchᚋv1ᚐCronJob(ctx context.Context, sel ast.SelectionSet, v v12.CronJob) graphql.Marshaler { return ec._BatchV1CronJob(ctx, sel, &v) } -func (ec *executionContext) marshalNBatchV1CronJob2ᚕk8sᚗioᚋapiᚋbatchᚋv1ᚐCronJobᚄ(ctx context.Context, sel ast.SelectionSet, v []v13.CronJob) graphql.Marshaler { +func (ec *executionContext) marshalNBatchV1CronJob2ᚕk8sᚗioᚋapiᚋbatchᚋv1ᚐCronJobᚄ(ctx context.Context, sel ast.SelectionSet, v []v12.CronJob) graphql.Marshaler { ret := make(graphql.Array, len(v)) var wg sync.WaitGroup isLen1 := len(v) == 1 @@ -26164,19 +28298,19 @@ func (ec *executionContext) marshalNBatchV1CronJob2ᚕk8sᚗioᚋapiᚋbatchᚋv return ret } -func (ec *executionContext) marshalNBatchV1CronJobSpec2k8sᚗioᚋapiᚋbatchᚋv1ᚐCronJobSpec(ctx context.Context, sel ast.SelectionSet, v v13.CronJobSpec) graphql.Marshaler { +func (ec *executionContext) marshalNBatchV1CronJobSpec2k8sᚗioᚋapiᚋbatchᚋv1ᚐCronJobSpec(ctx context.Context, sel ast.SelectionSet, v v12.CronJobSpec) graphql.Marshaler { return ec._BatchV1CronJobSpec(ctx, sel, &v) } -func (ec *executionContext) marshalNBatchV1CronJobStatus2k8sᚗioᚋapiᚋbatchᚋv1ᚐCronJobStatus(ctx context.Context, sel ast.SelectionSet, v v13.CronJobStatus) graphql.Marshaler { +func (ec *executionContext) marshalNBatchV1CronJobStatus2k8sᚗioᚋapiᚋbatchᚋv1ᚐCronJobStatus(ctx context.Context, sel ast.SelectionSet, v v12.CronJobStatus) graphql.Marshaler { return ec._BatchV1CronJobStatus(ctx, sel, &v) } -func (ec *executionContext) marshalNBatchV1Job2k8sᚗioᚋapiᚋbatchᚋv1ᚐJob(ctx context.Context, sel ast.SelectionSet, v v13.Job) graphql.Marshaler { +func (ec *executionContext) marshalNBatchV1Job2k8sᚗioᚋapiᚋbatchᚋv1ᚐJob(ctx context.Context, sel ast.SelectionSet, v v12.Job) graphql.Marshaler { return ec._BatchV1Job(ctx, sel, &v) } -func (ec *executionContext) marshalNBatchV1Job2ᚕk8sᚗioᚋapiᚋbatchᚋv1ᚐJobᚄ(ctx context.Context, sel ast.SelectionSet, v []v13.Job) graphql.Marshaler { +func (ec *executionContext) marshalNBatchV1Job2ᚕk8sᚗioᚋapiᚋbatchᚋv1ᚐJobᚄ(ctx context.Context, sel ast.SelectionSet, v []v12.Job) graphql.Marshaler { ret := make(graphql.Array, len(v)) var wg sync.WaitGroup isLen1 := len(v) == 1 @@ -26220,11 +28354,11 @@ func (ec *executionContext) marshalNBatchV1Job2ᚕk8sᚗioᚋapiᚋbatchᚋv1ᚐ return ret } -func (ec *executionContext) marshalNBatchV1JobCondition2k8sᚗioᚋapiᚋbatchᚋv1ᚐJobCondition(ctx context.Context, sel ast.SelectionSet, v v13.JobCondition) graphql.Marshaler { +func (ec *executionContext) marshalNBatchV1JobCondition2k8sᚗioᚋapiᚋbatchᚋv1ᚐJobCondition(ctx context.Context, sel ast.SelectionSet, v v12.JobCondition) graphql.Marshaler { return ec._BatchV1JobCondition(ctx, sel, &v) } -func (ec *executionContext) marshalNBatchV1JobCondition2ᚕk8sᚗioᚋapiᚋbatchᚋv1ᚐJobConditionᚄ(ctx context.Context, sel ast.SelectionSet, v []v13.JobCondition) graphql.Marshaler { +func (ec *executionContext) marshalNBatchV1JobCondition2ᚕk8sᚗioᚋapiᚋbatchᚋv1ᚐJobConditionᚄ(ctx context.Context, sel ast.SelectionSet, v []v12.JobCondition) graphql.Marshaler { ret := make(graphql.Array, len(v)) var wg sync.WaitGroup isLen1 := len(v) == 1 @@ -26268,13 +28402,13 @@ func (ec *executionContext) marshalNBatchV1JobCondition2ᚕk8sᚗioᚋapiᚋbatc return ret } -func (ec *executionContext) unmarshalNBatchV1JobConditionType2k8sᚗioᚋapiᚋbatchᚋv1ᚐJobConditionType(ctx context.Context, v interface{}) (v13.JobConditionType, error) { +func (ec *executionContext) unmarshalNBatchV1JobConditionType2k8sᚗioᚋapiᚋbatchᚋv1ᚐJobConditionType(ctx context.Context, v any) (v12.JobConditionType, error) { tmp, err := graphql.UnmarshalString(v) - res := v13.JobConditionType(tmp) + res := v12.JobConditionType(tmp) return res, graphql.ErrorOnPath(ctx, err) } -func (ec *executionContext) marshalNBatchV1JobConditionType2k8sᚗioᚋapiᚋbatchᚋv1ᚐJobConditionType(ctx context.Context, sel ast.SelectionSet, v v13.JobConditionType) graphql.Marshaler { +func (ec *executionContext) marshalNBatchV1JobConditionType2k8sᚗioᚋapiᚋbatchᚋv1ᚐJobConditionType(ctx context.Context, sel ast.SelectionSet, v v12.JobConditionType) graphql.Marshaler { res := graphql.MarshalString(string(v)) if res == graphql.Null { if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { @@ -26284,19 +28418,19 @@ func (ec *executionContext) marshalNBatchV1JobConditionType2k8sᚗioᚋapiᚋbat return res } -func (ec *executionContext) marshalNBatchV1JobSpec2k8sᚗioᚋapiᚋbatchᚋv1ᚐJobSpec(ctx context.Context, sel ast.SelectionSet, v v13.JobSpec) graphql.Marshaler { +func (ec *executionContext) marshalNBatchV1JobSpec2k8sᚗioᚋapiᚋbatchᚋv1ᚐJobSpec(ctx context.Context, sel ast.SelectionSet, v v12.JobSpec) graphql.Marshaler { return ec._BatchV1JobSpec(ctx, sel, &v) } -func (ec *executionContext) marshalNBatchV1JobStatus2k8sᚗioᚋapiᚋbatchᚋv1ᚐJobStatus(ctx context.Context, sel ast.SelectionSet, v v13.JobStatus) graphql.Marshaler { +func (ec *executionContext) marshalNBatchV1JobStatus2k8sᚗioᚋapiᚋbatchᚋv1ᚐJobStatus(ctx context.Context, sel ast.SelectionSet, v v12.JobStatus) graphql.Marshaler { return ec._BatchV1JobStatus(ctx, sel, &v) } -func (ec *executionContext) marshalNBatchV1JobTemplateSpec2k8sᚗioᚋapiᚋbatchᚋv1ᚐJobTemplateSpec(ctx context.Context, sel ast.SelectionSet, v v13.JobTemplateSpec) graphql.Marshaler { +func (ec *executionContext) marshalNBatchV1JobTemplateSpec2k8sᚗioᚋapiᚋbatchᚋv1ᚐJobTemplateSpec(ctx context.Context, sel ast.SelectionSet, v v12.JobTemplateSpec) graphql.Marshaler { return ec._BatchV1JobTemplateSpec(ctx, sel, &v) } -func (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v interface{}) (bool, error) { +func (ec *executionContext) unmarshalNBoolean2bool(ctx context.Context, v any) (bool, error) { res, err := graphql.UnmarshalBoolean(v) return res, graphql.ErrorOnPath(ctx, err) } @@ -26311,13 +28445,13 @@ func (ec *executionContext) marshalNBoolean2bool(ctx context.Context, sel ast.Se return res } -func (ec *executionContext) unmarshalNCoreV1ConditionStatus2k8sᚗioᚋapiᚋcoreᚋv1ᚐConditionStatus(ctx context.Context, v interface{}) (v11.ConditionStatus, error) { +func (ec *executionContext) unmarshalNCoreV1ConditionStatus2k8sᚗioᚋapiᚋcoreᚋv1ᚐConditionStatus(ctx context.Context, v any) (v13.ConditionStatus, error) { tmp, err := graphql.UnmarshalString(v) - res := v11.ConditionStatus(tmp) + res := v13.ConditionStatus(tmp) return res, graphql.ErrorOnPath(ctx, err) } -func (ec *executionContext) marshalNCoreV1ConditionStatus2k8sᚗioᚋapiᚋcoreᚋv1ᚐConditionStatus(ctx context.Context, sel ast.SelectionSet, v v11.ConditionStatus) graphql.Marshaler { +func (ec *executionContext) marshalNCoreV1ConditionStatus2k8sᚗioᚋapiᚋcoreᚋv1ᚐConditionStatus(ctx context.Context, sel ast.SelectionSet, v v13.ConditionStatus) graphql.Marshaler { res := graphql.MarshalString(string(v)) if res == graphql.Null { if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { @@ -26327,11 +28461,11 @@ func (ec *executionContext) marshalNCoreV1ConditionStatus2k8sᚗioᚋapiᚋcore return res } -func (ec *executionContext) marshalNCoreV1Container2k8sᚗioᚋapiᚋcoreᚋv1ᚐContainer(ctx context.Context, sel ast.SelectionSet, v v11.Container) graphql.Marshaler { +func (ec *executionContext) marshalNCoreV1Container2k8sᚗioᚋapiᚋcoreᚋv1ᚐContainer(ctx context.Context, sel ast.SelectionSet, v v13.Container) graphql.Marshaler { return ec._CoreV1Container(ctx, sel, &v) } -func (ec *executionContext) marshalNCoreV1Container2ᚕk8sᚗioᚋapiᚋcoreᚋv1ᚐContainerᚄ(ctx context.Context, sel ast.SelectionSet, v []v11.Container) graphql.Marshaler { +func (ec *executionContext) marshalNCoreV1Container2ᚕk8sᚗioᚋapiᚋcoreᚋv1ᚐContainerᚄ(ctx context.Context, sel ast.SelectionSet, v []v13.Container) graphql.Marshaler { ret := make(graphql.Array, len(v)) var wg sync.WaitGroup isLen1 := len(v) == 1 @@ -26375,15 +28509,15 @@ func (ec *executionContext) marshalNCoreV1Container2ᚕk8sᚗioᚋapiᚋcoreᚋv return ret } -func (ec *executionContext) marshalNCoreV1ContainerState2k8sᚗioᚋapiᚋcoreᚋv1ᚐContainerState(ctx context.Context, sel ast.SelectionSet, v v11.ContainerState) graphql.Marshaler { +func (ec *executionContext) marshalNCoreV1ContainerState2k8sᚗioᚋapiᚋcoreᚋv1ᚐContainerState(ctx context.Context, sel ast.SelectionSet, v v13.ContainerState) graphql.Marshaler { return ec._CoreV1ContainerState(ctx, sel, &v) } -func (ec *executionContext) marshalNCoreV1ContainerStatus2k8sᚗioᚋapiᚋcoreᚋv1ᚐContainerStatus(ctx context.Context, sel ast.SelectionSet, v v11.ContainerStatus) graphql.Marshaler { +func (ec *executionContext) marshalNCoreV1ContainerStatus2k8sᚗioᚋapiᚋcoreᚋv1ᚐContainerStatus(ctx context.Context, sel ast.SelectionSet, v v13.ContainerStatus) graphql.Marshaler { return ec._CoreV1ContainerStatus(ctx, sel, &v) } -func (ec *executionContext) marshalNCoreV1ContainerStatus2ᚕk8sᚗioᚋapiᚋcoreᚋv1ᚐContainerStatusᚄ(ctx context.Context, sel ast.SelectionSet, v []v11.ContainerStatus) graphql.Marshaler { +func (ec *executionContext) marshalNCoreV1ContainerStatus2ᚕk8sᚗioᚋapiᚋcoreᚋv1ᚐContainerStatusᚄ(ctx context.Context, sel ast.SelectionSet, v []v13.ContainerStatus) graphql.Marshaler { ret := make(graphql.Array, len(v)) var wg sync.WaitGroup isLen1 := len(v) == 1 @@ -26427,11 +28561,11 @@ func (ec *executionContext) marshalNCoreV1ContainerStatus2ᚕk8sᚗioᚋapiᚋco return ret } -func (ec *executionContext) marshalNCoreV1Namespace2k8sᚗioᚋapiᚋcoreᚋv1ᚐNamespace(ctx context.Context, sel ast.SelectionSet, v v11.Namespace) graphql.Marshaler { +func (ec *executionContext) marshalNCoreV1Namespace2k8sᚗioᚋapiᚋcoreᚋv1ᚐNamespace(ctx context.Context, sel ast.SelectionSet, v v13.Namespace) graphql.Marshaler { return ec._CoreV1Namespace(ctx, sel, &v) } -func (ec *executionContext) marshalNCoreV1Namespace2ᚕk8sᚗioᚋapiᚋcoreᚋv1ᚐNamespaceᚄ(ctx context.Context, sel ast.SelectionSet, v []v11.Namespace) graphql.Marshaler { +func (ec *executionContext) marshalNCoreV1Namespace2ᚕk8sᚗioᚋapiᚋcoreᚋv1ᚐNamespaceᚄ(ctx context.Context, sel ast.SelectionSet, v []v13.Namespace) graphql.Marshaler { ret := make(graphql.Array, len(v)) var wg sync.WaitGroup isLen1 := len(v) == 1 @@ -26475,11 +28609,11 @@ func (ec *executionContext) marshalNCoreV1Namespace2ᚕk8sᚗioᚋapiᚋcoreᚋv return ret } -func (ec *executionContext) marshalNCoreV1Node2k8sᚗioᚋapiᚋcoreᚋv1ᚐNode(ctx context.Context, sel ast.SelectionSet, v v11.Node) graphql.Marshaler { +func (ec *executionContext) marshalNCoreV1Node2k8sᚗioᚋapiᚋcoreᚋv1ᚐNode(ctx context.Context, sel ast.SelectionSet, v v13.Node) graphql.Marshaler { return ec._CoreV1Node(ctx, sel, &v) } -func (ec *executionContext) marshalNCoreV1Node2ᚕk8sᚗioᚋapiᚋcoreᚋv1ᚐNodeᚄ(ctx context.Context, sel ast.SelectionSet, v []v11.Node) graphql.Marshaler { +func (ec *executionContext) marshalNCoreV1Node2ᚕk8sᚗioᚋapiᚋcoreᚋv1ᚐNodeᚄ(ctx context.Context, sel ast.SelectionSet, v []v13.Node) graphql.Marshaler { ret := make(graphql.Array, len(v)) var wg sync.WaitGroup isLen1 := len(v) == 1 @@ -26514,20 +28648,140 @@ func (ec *executionContext) marshalNCoreV1Node2ᚕk8sᚗioᚋapiᚋcoreᚋv1ᚐN } wg.Wait() - for _, e := range ret { - if e == graphql.Null { - return graphql.Null + for _, e := range ret { + if e == graphql.Null { + return graphql.Null + } + } + + return ret +} + +func (ec *executionContext) marshalNCoreV1ObjectReference2k8sᚗioᚋapiᚋcoreᚋv1ᚐObjectReference(ctx context.Context, sel ast.SelectionSet, v v13.ObjectReference) graphql.Marshaler { + return ec._CoreV1ObjectReference(ctx, sel, &v) +} + +func (ec *executionContext) marshalNCoreV1ObjectReference2ᚕk8sᚗioᚋapiᚋcoreᚋv1ᚐObjectReferenceᚄ(ctx context.Context, sel ast.SelectionSet, v []v13.ObjectReference) graphql.Marshaler { + ret := make(graphql.Array, len(v)) + var wg sync.WaitGroup + isLen1 := len(v) == 1 + if !isLen1 { + wg.Add(len(v)) + } + for i := range v { + i := i + fc := &graphql.FieldContext{ + Index: &i, + Result: &v[i], + } + ctx := graphql.WithFieldContext(ctx, fc) + f := func(i int) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = nil + } + }() + if !isLen1 { + defer wg.Done() + } + ret[i] = ec.marshalNCoreV1ObjectReference2k8sᚗioᚋapiᚋcoreᚋv1ᚐObjectReference(ctx, sel, v[i]) + } + if isLen1 { + f(i) + } else { + go f(i) + } + + } + wg.Wait() + + for _, e := range ret { + if e == graphql.Null { + return graphql.Null + } + } + + return ret +} + +func (ec *executionContext) marshalNCoreV1Pod2k8sᚗioᚋapiᚋcoreᚋv1ᚐPod(ctx context.Context, sel ast.SelectionSet, v v13.Pod) graphql.Marshaler { + return ec._CoreV1Pod(ctx, sel, &v) +} + +func (ec *executionContext) marshalNCoreV1Pod2ᚕk8sᚗioᚋapiᚋcoreᚋv1ᚐPodᚄ(ctx context.Context, sel ast.SelectionSet, v []v13.Pod) graphql.Marshaler { + ret := make(graphql.Array, len(v)) + var wg sync.WaitGroup + isLen1 := len(v) == 1 + if !isLen1 { + wg.Add(len(v)) + } + for i := range v { + i := i + fc := &graphql.FieldContext{ + Index: &i, + Result: &v[i], + } + ctx := graphql.WithFieldContext(ctx, fc) + f := func(i int) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = nil + } + }() + if !isLen1 { + defer wg.Done() + } + ret[i] = ec.marshalNCoreV1Pod2k8sᚗioᚋapiᚋcoreᚋv1ᚐPod(ctx, sel, v[i]) + } + if isLen1 { + f(i) + } else { + go f(i) + } + + } + wg.Wait() + + for _, e := range ret { + if e == graphql.Null { + return graphql.Null + } + } + + return ret +} + +func (ec *executionContext) unmarshalNCoreV1PodPhase2k8sᚗioᚋapiᚋcoreᚋv1ᚐPodPhase(ctx context.Context, v any) (v13.PodPhase, error) { + tmp, err := graphql.UnmarshalString(v) + res := v13.PodPhase(tmp) + return res, graphql.ErrorOnPath(ctx, err) +} + +func (ec *executionContext) marshalNCoreV1PodPhase2k8sᚗioᚋapiᚋcoreᚋv1ᚐPodPhase(ctx context.Context, sel ast.SelectionSet, v v13.PodPhase) graphql.Marshaler { + res := graphql.MarshalString(string(v)) + if res == graphql.Null { + if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { + ec.Errorf(ctx, "the requested element is null which the schema does not allow") } } + return res +} - return ret +func (ec *executionContext) marshalNCoreV1PodSpec2k8sᚗioᚋapiᚋcoreᚋv1ᚐPodSpec(ctx context.Context, sel ast.SelectionSet, v v13.PodSpec) graphql.Marshaler { + return ec._CoreV1PodSpec(ctx, sel, &v) } -func (ec *executionContext) marshalNCoreV1ObjectReference2k8sᚗioᚋapiᚋcoreᚋv1ᚐObjectReference(ctx context.Context, sel ast.SelectionSet, v v11.ObjectReference) graphql.Marshaler { - return ec._CoreV1ObjectReference(ctx, sel, &v) +func (ec *executionContext) marshalNCoreV1PodStatus2k8sᚗioᚋapiᚋcoreᚋv1ᚐPodStatus(ctx context.Context, sel ast.SelectionSet, v v13.PodStatus) graphql.Marshaler { + return ec._CoreV1PodStatus(ctx, sel, &v) +} + +func (ec *executionContext) marshalNCoreV1Service2k8sᚗioᚋapiᚋcoreᚋv1ᚐService(ctx context.Context, sel ast.SelectionSet, v v13.Service) graphql.Marshaler { + return ec._CoreV1Service(ctx, sel, &v) } -func (ec *executionContext) marshalNCoreV1ObjectReference2ᚕk8sᚗioᚋapiᚋcoreᚋv1ᚐObjectReferenceᚄ(ctx context.Context, sel ast.SelectionSet, v []v11.ObjectReference) graphql.Marshaler { +func (ec *executionContext) marshalNCoreV1Service2ᚕk8sᚗioᚋapiᚋcoreᚋv1ᚐServiceᚄ(ctx context.Context, sel ast.SelectionSet, v []v13.Service) graphql.Marshaler { ret := make(graphql.Array, len(v)) var wg sync.WaitGroup isLen1 := len(v) == 1 @@ -26551,7 +28805,7 @@ func (ec *executionContext) marshalNCoreV1ObjectReference2ᚕk8sᚗioᚋapiᚋco if !isLen1 { defer wg.Done() } - ret[i] = ec.marshalNCoreV1ObjectReference2k8sᚗioᚋapiᚋcoreᚋv1ᚐObjectReference(ctx, sel, v[i]) + ret[i] = ec.marshalNCoreV1Service2k8sᚗioᚋapiᚋcoreᚋv1ᚐService(ctx, sel, v[i]) } if isLen1 { f(i) @@ -26571,11 +28825,11 @@ func (ec *executionContext) marshalNCoreV1ObjectReference2ᚕk8sᚗioᚋapiᚋco return ret } -func (ec *executionContext) marshalNCoreV1Pod2k8sᚗioᚋapiᚋcoreᚋv1ᚐPod(ctx context.Context, sel ast.SelectionSet, v v11.Pod) graphql.Marshaler { - return ec._CoreV1Pod(ctx, sel, &v) +func (ec *executionContext) marshalNCoreV1ServicePort2k8sᚗioᚋapiᚋcoreᚋv1ᚐServicePort(ctx context.Context, sel ast.SelectionSet, v v13.ServicePort) graphql.Marshaler { + return ec._CoreV1ServicePort(ctx, sel, &v) } -func (ec *executionContext) marshalNCoreV1Pod2ᚕk8sᚗioᚋapiᚋcoreᚋv1ᚐPodᚄ(ctx context.Context, sel ast.SelectionSet, v []v11.Pod) graphql.Marshaler { +func (ec *executionContext) marshalNCoreV1ServicePort2ᚕk8sᚗioᚋapiᚋcoreᚋv1ᚐServicePortᚄ(ctx context.Context, sel ast.SelectionSet, v []v13.ServicePort) graphql.Marshaler { ret := make(graphql.Array, len(v)) var wg sync.WaitGroup isLen1 := len(v) == 1 @@ -26599,7 +28853,7 @@ func (ec *executionContext) marshalNCoreV1Pod2ᚕk8sᚗioᚋapiᚋcoreᚋv1ᚐPo if !isLen1 { defer wg.Done() } - ret[i] = ec.marshalNCoreV1Pod2k8sᚗioᚋapiᚋcoreᚋv1ᚐPod(ctx, sel, v[i]) + ret[i] = ec.marshalNCoreV1ServicePort2k8sᚗioᚋapiᚋcoreᚋv1ᚐServicePort(ctx, sel, v[i]) } if isLen1 { f(i) @@ -26619,45 +28873,35 @@ func (ec *executionContext) marshalNCoreV1Pod2ᚕk8sᚗioᚋapiᚋcoreᚋv1ᚐPo return ret } -func (ec *executionContext) unmarshalNCoreV1PodPhase2k8sᚗioᚋapiᚋcoreᚋv1ᚐPodPhase(ctx context.Context, v interface{}) (v11.PodPhase, error) { - tmp, err := graphql.UnmarshalString(v) - res := v11.PodPhase(tmp) - return res, graphql.ErrorOnPath(ctx, err) +func (ec *executionContext) marshalNCoreV1ServiceSpec2k8sᚗioᚋapiᚋcoreᚋv1ᚐServiceSpec(ctx context.Context, sel ast.SelectionSet, v v13.ServiceSpec) graphql.Marshaler { + return ec._CoreV1ServiceSpec(ctx, sel, &v) } -func (ec *executionContext) marshalNCoreV1PodPhase2k8sᚗioᚋapiᚋcoreᚋv1ᚐPodPhase(ctx context.Context, sel ast.SelectionSet, v v11.PodPhase) graphql.Marshaler { - res := graphql.MarshalString(string(v)) - if res == graphql.Null { +func (ec *executionContext) marshalNHealthCheckResponse2githubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐHealthCheckResponse(ctx context.Context, sel ast.SelectionSet, v model.HealthCheckResponse) graphql.Marshaler { + return ec._HealthCheckResponse(ctx, sel, &v) +} + +func (ec *executionContext) marshalNHealthCheckResponse2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐHealthCheckResponse(ctx context.Context, sel ast.SelectionSet, v *model.HealthCheckResponse) graphql.Marshaler { + if v == nil { if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { ec.Errorf(ctx, "the requested element is null which the schema does not allow") } + return graphql.Null } - return res + return ec._HealthCheckResponse(ctx, sel, v) } -func (ec *executionContext) marshalNCoreV1PodSpec2k8sᚗioᚋapiᚋcoreᚋv1ᚐPodSpec(ctx context.Context, sel ast.SelectionSet, v v11.PodSpec) graphql.Marshaler { - return ec._CoreV1PodSpec(ctx, sel, &v) -} - -func (ec *executionContext) marshalNCoreV1PodStatus2k8sᚗioᚋapiᚋcoreᚋv1ᚐPodStatus(ctx context.Context, sel ast.SelectionSet, v v11.PodStatus) graphql.Marshaler { - return ec._CoreV1PodStatus(ctx, sel, &v) -} - -func (ec *executionContext) marshalNHealthCheckResponse2githubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋserverᚋgraphᚋmodelᚐHealthCheckResponse(ctx context.Context, sel ast.SelectionSet, v model.HealthCheckResponse) graphql.Marshaler { - return ec._HealthCheckResponse(ctx, sel, &v) -} - -func (ec *executionContext) unmarshalNHealthCheckStatus2githubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋserverᚋgraphᚋmodelᚐHealthCheckStatus(ctx context.Context, v interface{}) (model.HealthCheckStatus, error) { +func (ec *executionContext) unmarshalNHealthCheckStatus2githubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐHealthCheckStatus(ctx context.Context, v any) (model.HealthCheckStatus, error) { var res model.HealthCheckStatus err := res.UnmarshalGQL(v) return res, graphql.ErrorOnPath(ctx, err) } -func (ec *executionContext) marshalNHealthCheckStatus2githubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋserverᚋgraphᚋmodelᚐHealthCheckStatus(ctx context.Context, sel ast.SelectionSet, v model.HealthCheckStatus) graphql.Marshaler { +func (ec *executionContext) marshalNHealthCheckStatus2githubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐHealthCheckStatus(ctx context.Context, sel ast.SelectionSet, v model.HealthCheckStatus) graphql.Marshaler { return v } -func (ec *executionContext) unmarshalNID2k8sᚗioᚋapimachineryᚋpkgᚋtypesᚐUID(ctx context.Context, v interface{}) (types.UID, error) { +func (ec *executionContext) unmarshalNID2k8sᚗioᚋapimachineryᚋpkgᚋtypesᚐUID(ctx context.Context, v any) (types.UID, error) { tmp, err := graphql.UnmarshalString(v) res := types.UID(tmp) return res, graphql.ErrorOnPath(ctx, err) @@ -26673,22 +28917,7 @@ func (ec *executionContext) marshalNID2k8sᚗioᚋapimachineryᚋpkgᚋtypesᚐU return res } -func (ec *executionContext) unmarshalNID2string(ctx context.Context, v interface{}) (string, error) { - res, err := graphql.UnmarshalID(v) - return res, graphql.ErrorOnPath(ctx, err) -} - -func (ec *executionContext) marshalNID2string(ctx context.Context, sel ast.SelectionSet, v string) graphql.Marshaler { - res := graphql.MarshalID(v) - if res == graphql.Null { - if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { - ec.Errorf(ctx, "the requested element is null which the schema does not allow") - } - } - return res -} - -func (ec *executionContext) unmarshalNInt2int32(ctx context.Context, v interface{}) (int32, error) { +func (ec *executionContext) unmarshalNInt2int32(ctx context.Context, v any) (int32, error) { res, err := graphql.UnmarshalInt32(v) return res, graphql.ErrorOnPath(ctx, err) } @@ -26703,13 +28932,13 @@ func (ec *executionContext) marshalNInt2int32(ctx context.Context, sel ast.Selec return res } -func (ec *executionContext) unmarshalNInt642int64(ctx context.Context, v interface{}) (int64, error) { - res, err := model.UnmarshalInt64(v) +func (ec *executionContext) unmarshalNInt642int64(ctx context.Context, v any) (int64, error) { + res, err := model1.UnmarshalInt64(v) return res, graphql.ErrorOnPath(ctx, err) } func (ec *executionContext) marshalNInt642int64(ctx context.Context, sel ast.SelectionSet, v int64) graphql.Marshaler { - res := model.MarshalInt64(v) + res := model1.MarshalInt64(v) if res == graphql.Null { if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { ec.Errorf(ctx, "the requested element is null which the schema does not allow") @@ -26718,7 +28947,7 @@ func (ec *executionContext) marshalNInt642int64(ctx context.Context, sel ast.Sel return res } -func (ec *executionContext) marshalNLogMetadata2ᚕᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋcommonᚋagentpbᚐLogMetadataᚄ(ctx context.Context, sel ast.SelectionSet, v []*agentpb.LogMetadata) graphql.Marshaler { +func (ec *executionContext) marshalNKubeConfigAuthInfo2ᚕᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐKubeConfigAuthInfoᚄ(ctx context.Context, sel ast.SelectionSet, v []*model.KubeConfigAuthInfo) graphql.Marshaler { ret := make(graphql.Array, len(v)) var wg sync.WaitGroup isLen1 := len(v) == 1 @@ -26742,7 +28971,7 @@ func (ec *executionContext) marshalNLogMetadata2ᚕᚖgithubᚗcomᚋkubetailᚑ if !isLen1 { defer wg.Done() } - ret[i] = ec.marshalNLogMetadata2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋcommonᚋagentpbᚐLogMetadata(ctx, sel, v[i]) + ret[i] = ec.marshalNKubeConfigAuthInfo2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐKubeConfigAuthInfo(ctx, sel, v[i]) } if isLen1 { f(i) @@ -26762,41 +28991,125 @@ func (ec *executionContext) marshalNLogMetadata2ᚕᚖgithubᚗcomᚋkubetailᚑ return ret } -func (ec *executionContext) marshalNLogMetadata2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋcommonᚋagentpbᚐLogMetadata(ctx context.Context, sel ast.SelectionSet, v *agentpb.LogMetadata) graphql.Marshaler { +func (ec *executionContext) marshalNKubeConfigAuthInfo2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐKubeConfigAuthInfo(ctx context.Context, sel ast.SelectionSet, v *model.KubeConfigAuthInfo) graphql.Marshaler { if v == nil { if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { ec.Errorf(ctx, "the requested element is null which the schema does not allow") } return graphql.Null } - return ec._LogMetadata(ctx, sel, v) + return ec._KubeConfigAuthInfo(ctx, sel, v) +} + +func (ec *executionContext) marshalNKubeConfigCluster2ᚕᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐKubeConfigClusterᚄ(ctx context.Context, sel ast.SelectionSet, v []*model.KubeConfigCluster) graphql.Marshaler { + ret := make(graphql.Array, len(v)) + var wg sync.WaitGroup + isLen1 := len(v) == 1 + if !isLen1 { + wg.Add(len(v)) + } + for i := range v { + i := i + fc := &graphql.FieldContext{ + Index: &i, + Result: &v[i], + } + ctx := graphql.WithFieldContext(ctx, fc) + f := func(i int) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = nil + } + }() + if !isLen1 { + defer wg.Done() + } + ret[i] = ec.marshalNKubeConfigCluster2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐKubeConfigCluster(ctx, sel, v[i]) + } + if isLen1 { + f(i) + } else { + go f(i) + } + + } + wg.Wait() + + for _, e := range ret { + if e == graphql.Null { + return graphql.Null + } + } + + return ret } -func (ec *executionContext) marshalNLogMetadataFileInfo2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋcommonᚋagentpbᚐLogMetadataFileInfo(ctx context.Context, sel ast.SelectionSet, v *agentpb.LogMetadataFileInfo) graphql.Marshaler { +func (ec *executionContext) marshalNKubeConfigCluster2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐKubeConfigCluster(ctx context.Context, sel ast.SelectionSet, v *model.KubeConfigCluster) graphql.Marshaler { if v == nil { if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { ec.Errorf(ctx, "the requested element is null which the schema does not allow") } return graphql.Null } - return ec._LogMetadataFileInfo(ctx, sel, v) + return ec._KubeConfigCluster(ctx, sel, v) +} + +func (ec *executionContext) marshalNKubeConfigContext2ᚕᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐKubeConfigContextᚄ(ctx context.Context, sel ast.SelectionSet, v []*model.KubeConfigContext) graphql.Marshaler { + ret := make(graphql.Array, len(v)) + var wg sync.WaitGroup + isLen1 := len(v) == 1 + if !isLen1 { + wg.Add(len(v)) + } + for i := range v { + i := i + fc := &graphql.FieldContext{ + Index: &i, + Result: &v[i], + } + ctx := graphql.WithFieldContext(ctx, fc) + f := func(i int) { + defer func() { + if r := recover(); r != nil { + ec.Error(ctx, ec.Recover(ctx, r)) + ret = nil + } + }() + if !isLen1 { + defer wg.Done() + } + ret[i] = ec.marshalNKubeConfigContext2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐKubeConfigContext(ctx, sel, v[i]) + } + if isLen1 { + f(i) + } else { + go f(i) + } + + } + wg.Wait() + + for _, e := range ret { + if e == graphql.Null { + return graphql.Null + } + } + + return ret } -func (ec *executionContext) marshalNLogMetadataSpec2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋcommonᚋagentpbᚐLogMetadataSpec(ctx context.Context, sel ast.SelectionSet, v *agentpb.LogMetadataSpec) graphql.Marshaler { +func (ec *executionContext) marshalNKubeConfigContext2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐKubeConfigContext(ctx context.Context, sel ast.SelectionSet, v *model.KubeConfigContext) graphql.Marshaler { if v == nil { if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { ec.Errorf(ctx, "the requested element is null which the schema does not allow") } return graphql.Null } - return ec._LogMetadataSpec(ctx, sel, v) -} - -func (ec *executionContext) marshalNLogRecord2githubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋserverᚋgraphᚋmodelᚐLogRecord(ctx context.Context, sel ast.SelectionSet, v model.LogRecord) graphql.Marshaler { - return ec._LogRecord(ctx, sel, &v) + return ec._KubeConfigContext(ctx, sel, v) } -func (ec *executionContext) marshalNLogRecord2ᚕgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋserverᚋgraphᚋmodelᚐLogRecordᚄ(ctx context.Context, sel ast.SelectionSet, v []model.LogRecord) graphql.Marshaler { +func (ec *executionContext) marshalNLogRecord2ᚕᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐLogRecordᚄ(ctx context.Context, sel ast.SelectionSet, v []*model.LogRecord) graphql.Marshaler { ret := make(graphql.Array, len(v)) var wg sync.WaitGroup isLen1 := len(v) == 1 @@ -26820,7 +29133,7 @@ func (ec *executionContext) marshalNLogRecord2ᚕgithubᚗcomᚋkubetailᚑorg if !isLen1 { defer wg.Done() } - ret[i] = ec.marshalNLogRecord2githubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋserverᚋgraphᚋmodelᚐLogRecord(ctx, sel, v[i]) + ret[i] = ec.marshalNLogRecord2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐLogRecord(ctx, sel, v[i]) } if isLen1 { f(i) @@ -26840,7 +29153,17 @@ func (ec *executionContext) marshalNLogRecord2ᚕgithubᚗcomᚋkubetailᚑorg return ret } -func (ec *executionContext) unmarshalNMetaV1LabelSelectorOperator2k8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐLabelSelectorOperator(ctx context.Context, v interface{}) (v1.LabelSelectorOperator, error) { +func (ec *executionContext) marshalNLogRecord2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐLogRecord(ctx context.Context, sel ast.SelectionSet, v *model.LogRecord) graphql.Marshaler { + if v == nil { + if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { + ec.Errorf(ctx, "the requested element is null which the schema does not allow") + } + return graphql.Null + } + return ec._LogRecord(ctx, sel, v) +} + +func (ec *executionContext) unmarshalNMetaV1LabelSelectorOperator2k8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐLabelSelectorOperator(ctx context.Context, v any) (v1.LabelSelectorOperator, error) { tmp, err := graphql.UnmarshalString(v) res := v1.LabelSelectorOperator(tmp) return res, graphql.ErrorOnPath(ctx, err) @@ -26960,7 +29283,7 @@ func (ec *executionContext) marshalNMetaV1OwnerReference2ᚕk8sᚗioᚋapimachin return ret } -func (ec *executionContext) unmarshalNMetaV1Time2k8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐTime(ctx context.Context, v interface{}) (v1.Time, error) { +func (ec *executionContext) unmarshalNMetaV1Time2k8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐTime(ctx context.Context, v any) (v1.Time, error) { res, err := model.UnmarshalMetaV1Time(v) return res, graphql.ErrorOnPath(ctx, err) } @@ -26975,11 +29298,17 @@ func (ec *executionContext) marshalNMetaV1Time2k8sᚗioᚋapimachineryᚋpkgᚋa return res } -func (ec *executionContext) marshalNPageInfo2githubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋserverᚋgraphᚋmodelᚐPageInfo(ctx context.Context, sel ast.SelectionSet, v model.PageInfo) graphql.Marshaler { - return ec._PageInfo(ctx, sel, &v) +func (ec *executionContext) marshalNPageInfo2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐPageInfo(ctx context.Context, sel ast.SelectionSet, v *model.PageInfo) graphql.Marshaler { + if v == nil { + if !graphql.HasFieldError(ctx, graphql.GetFieldContext(ctx)) { + ec.Errorf(ctx, "the requested element is null which the schema does not allow") + } + return graphql.Null + } + return ec._PageInfo(ctx, sel, v) } -func (ec *executionContext) unmarshalNString2string(ctx context.Context, v interface{}) (string, error) { +func (ec *executionContext) unmarshalNString2string(ctx context.Context, v any) (string, error) { res, err := graphql.UnmarshalString(v) return res, graphql.ErrorOnPath(ctx, err) } @@ -26994,8 +29323,8 @@ func (ec *executionContext) marshalNString2string(ctx context.Context, sel ast.S return res } -func (ec *executionContext) unmarshalNString2ᚕstringᚄ(ctx context.Context, v interface{}) ([]string, error) { - var vSlice []interface{} +func (ec *executionContext) unmarshalNString2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) { + var vSlice []any if v != nil { vSlice = graphql.CoerceList(v) } @@ -27026,7 +29355,7 @@ func (ec *executionContext) marshalNString2ᚕstringᚄ(ctx context.Context, sel return ret } -func (ec *executionContext) unmarshalNTime2timeᚐTime(ctx context.Context, v interface{}) (time.Time, error) { +func (ec *executionContext) unmarshalNTime2timeᚐTime(ctx context.Context, v any) (time.Time, error) { res, err := graphql.UnmarshalTime(v) return res, graphql.ErrorOnPath(ctx, err) } @@ -27041,7 +29370,7 @@ func (ec *executionContext) marshalNTime2timeᚐTime(ctx context.Context, sel as return res } -func (ec *executionContext) unmarshalNWatchEventType2k8sᚗioᚋapimachineryᚋpkgᚋwatchᚐEventType(ctx context.Context, v interface{}) (watch.EventType, error) { +func (ec *executionContext) unmarshalNWatchEventType2k8sᚗioᚋapimachineryᚋpkgᚋwatchᚐEventType(ctx context.Context, v any) (watch.EventType, error) { tmp, err := graphql.UnmarshalString(v) res := watch.EventType(tmp) return res, graphql.ErrorOnPath(ctx, err) @@ -27105,7 +29434,7 @@ func (ec *executionContext) marshalN__Directive2ᚕgithubᚗcomᚋ99designsᚋgq return ret } -func (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v interface{}) (string, error) { +func (ec *executionContext) unmarshalN__DirectiveLocation2string(ctx context.Context, v any) (string, error) { res, err := graphql.UnmarshalString(v) return res, graphql.ErrorOnPath(ctx, err) } @@ -27120,8 +29449,8 @@ func (ec *executionContext) marshalN__DirectiveLocation2string(ctx context.Conte return res } -func (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v interface{}) ([]string, error) { - var vSlice []interface{} +func (ec *executionContext) unmarshalN__DirectiveLocation2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) { + var vSlice []any if v != nil { vSlice = graphql.CoerceList(v) } @@ -27295,7 +29624,7 @@ func (ec *executionContext) marshalN__Type2ᚖgithubᚗcomᚋ99designsᚋgqlgen return ec.___Type(ctx, sel, v) } -func (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v interface{}) (string, error) { +func (ec *executionContext) unmarshalN__TypeKind2string(ctx context.Context, v any) (string, error) { res, err := graphql.UnmarshalString(v) return res, graphql.ErrorOnPath(ctx, err) } @@ -27310,14 +29639,14 @@ func (ec *executionContext) marshalN__TypeKind2string(ctx context.Context, sel a return res } -func (ec *executionContext) marshalOAppsV1DaemonSet2ᚖk8sᚗioᚋapiᚋappsᚋv1ᚐDaemonSet(ctx context.Context, sel ast.SelectionSet, v *v12.DaemonSet) graphql.Marshaler { +func (ec *executionContext) marshalOAppsV1DaemonSet2ᚖk8sᚗioᚋapiᚋappsᚋv1ᚐDaemonSet(ctx context.Context, sel ast.SelectionSet, v *v11.DaemonSet) graphql.Marshaler { if v == nil { return graphql.Null } return ec._AppsV1DaemonSet(ctx, sel, v) } -func (ec *executionContext) marshalOAppsV1DaemonSetList2ᚖk8sᚗioᚋapiᚋappsᚋv1ᚐDaemonSetList(ctx context.Context, sel ast.SelectionSet, v *v12.DaemonSetList) graphql.Marshaler { +func (ec *executionContext) marshalOAppsV1DaemonSetList2ᚖk8sᚗioᚋapiᚋappsᚋv1ᚐDaemonSetList(ctx context.Context, sel ast.SelectionSet, v *v11.DaemonSetList) graphql.Marshaler { if v == nil { return graphql.Null } @@ -27331,14 +29660,14 @@ func (ec *executionContext) marshalOAppsV1DaemonSetsWatchEvent2ᚖk8sᚗioᚋapi return ec._AppsV1DaemonSetsWatchEvent(ctx, sel, v) } -func (ec *executionContext) marshalOAppsV1Deployment2ᚖk8sᚗioᚋapiᚋappsᚋv1ᚐDeployment(ctx context.Context, sel ast.SelectionSet, v *v12.Deployment) graphql.Marshaler { +func (ec *executionContext) marshalOAppsV1Deployment2ᚖk8sᚗioᚋapiᚋappsᚋv1ᚐDeployment(ctx context.Context, sel ast.SelectionSet, v *v11.Deployment) graphql.Marshaler { if v == nil { return graphql.Null } return ec._AppsV1Deployment(ctx, sel, v) } -func (ec *executionContext) marshalOAppsV1DeploymentList2ᚖk8sᚗioᚋapiᚋappsᚋv1ᚐDeploymentList(ctx context.Context, sel ast.SelectionSet, v *v12.DeploymentList) graphql.Marshaler { +func (ec *executionContext) marshalOAppsV1DeploymentList2ᚖk8sᚗioᚋapiᚋappsᚋv1ᚐDeploymentList(ctx context.Context, sel ast.SelectionSet, v *v11.DeploymentList) graphql.Marshaler { if v == nil { return graphql.Null } @@ -27352,14 +29681,14 @@ func (ec *executionContext) marshalOAppsV1DeploymentsWatchEvent2ᚖk8sᚗioᚋap return ec._AppsV1DeploymentsWatchEvent(ctx, sel, v) } -func (ec *executionContext) marshalOAppsV1ReplicaSet2ᚖk8sᚗioᚋapiᚋappsᚋv1ᚐReplicaSet(ctx context.Context, sel ast.SelectionSet, v *v12.ReplicaSet) graphql.Marshaler { +func (ec *executionContext) marshalOAppsV1ReplicaSet2ᚖk8sᚗioᚋapiᚋappsᚋv1ᚐReplicaSet(ctx context.Context, sel ast.SelectionSet, v *v11.ReplicaSet) graphql.Marshaler { if v == nil { return graphql.Null } return ec._AppsV1ReplicaSet(ctx, sel, v) } -func (ec *executionContext) marshalOAppsV1ReplicaSetList2ᚖk8sᚗioᚋapiᚋappsᚋv1ᚐReplicaSetList(ctx context.Context, sel ast.SelectionSet, v *v12.ReplicaSetList) graphql.Marshaler { +func (ec *executionContext) marshalOAppsV1ReplicaSetList2ᚖk8sᚗioᚋapiᚋappsᚋv1ᚐReplicaSetList(ctx context.Context, sel ast.SelectionSet, v *v11.ReplicaSetList) graphql.Marshaler { if v == nil { return graphql.Null } @@ -27373,14 +29702,14 @@ func (ec *executionContext) marshalOAppsV1ReplicaSetsWatchEvent2ᚖk8sᚗioᚋap return ec._AppsV1ReplicaSetsWatchEvent(ctx, sel, v) } -func (ec *executionContext) marshalOAppsV1StatefulSet2ᚖk8sᚗioᚋapiᚋappsᚋv1ᚐStatefulSet(ctx context.Context, sel ast.SelectionSet, v *v12.StatefulSet) graphql.Marshaler { +func (ec *executionContext) marshalOAppsV1StatefulSet2ᚖk8sᚗioᚋapiᚋappsᚋv1ᚐStatefulSet(ctx context.Context, sel ast.SelectionSet, v *v11.StatefulSet) graphql.Marshaler { if v == nil { return graphql.Null } return ec._AppsV1StatefulSet(ctx, sel, v) } -func (ec *executionContext) marshalOAppsV1StatefulSetList2ᚖk8sᚗioᚋapiᚋappsᚋv1ᚐStatefulSetList(ctx context.Context, sel ast.SelectionSet, v *v12.StatefulSetList) graphql.Marshaler { +func (ec *executionContext) marshalOAppsV1StatefulSetList2ᚖk8sᚗioᚋapiᚋappsᚋv1ᚐStatefulSetList(ctx context.Context, sel ast.SelectionSet, v *v11.StatefulSetList) graphql.Marshaler { if v == nil { return graphql.Null } @@ -27394,14 +29723,14 @@ func (ec *executionContext) marshalOAppsV1StatefulSetsWatchEvent2ᚖk8sᚗioᚋa return ec._AppsV1StatefulSetsWatchEvent(ctx, sel, v) } -func (ec *executionContext) marshalOBatchV1CronJob2ᚖk8sᚗioᚋapiᚋbatchᚋv1ᚐCronJob(ctx context.Context, sel ast.SelectionSet, v *v13.CronJob) graphql.Marshaler { +func (ec *executionContext) marshalOBatchV1CronJob2ᚖk8sᚗioᚋapiᚋbatchᚋv1ᚐCronJob(ctx context.Context, sel ast.SelectionSet, v *v12.CronJob) graphql.Marshaler { if v == nil { return graphql.Null } return ec._BatchV1CronJob(ctx, sel, v) } -func (ec *executionContext) marshalOBatchV1CronJobList2ᚖk8sᚗioᚋapiᚋbatchᚋv1ᚐCronJobList(ctx context.Context, sel ast.SelectionSet, v *v13.CronJobList) graphql.Marshaler { +func (ec *executionContext) marshalOBatchV1CronJobList2ᚖk8sᚗioᚋapiᚋbatchᚋv1ᚐCronJobList(ctx context.Context, sel ast.SelectionSet, v *v12.CronJobList) graphql.Marshaler { if v == nil { return graphql.Null } @@ -27415,14 +29744,14 @@ func (ec *executionContext) marshalOBatchV1CronJobsWatchEvent2ᚖk8sᚗioᚋapim return ec._BatchV1CronJobsWatchEvent(ctx, sel, v) } -func (ec *executionContext) marshalOBatchV1Job2ᚖk8sᚗioᚋapiᚋbatchᚋv1ᚐJob(ctx context.Context, sel ast.SelectionSet, v *v13.Job) graphql.Marshaler { +func (ec *executionContext) marshalOBatchV1Job2ᚖk8sᚗioᚋapiᚋbatchᚋv1ᚐJob(ctx context.Context, sel ast.SelectionSet, v *v12.Job) graphql.Marshaler { if v == nil { return graphql.Null } return ec._BatchV1Job(ctx, sel, v) } -func (ec *executionContext) marshalOBatchV1JobList2ᚖk8sᚗioᚋapiᚋbatchᚋv1ᚐJobList(ctx context.Context, sel ast.SelectionSet, v *v13.JobList) graphql.Marshaler { +func (ec *executionContext) marshalOBatchV1JobList2ᚖk8sᚗioᚋapiᚋbatchᚋv1ᚐJobList(ctx context.Context, sel ast.SelectionSet, v *v12.JobList) graphql.Marshaler { if v == nil { return graphql.Null } @@ -27436,7 +29765,7 @@ func (ec *executionContext) marshalOBatchV1JobsWatchEvent2ᚖk8sᚗioᚋapimachi return ec._BatchV1JobsWatchEvent(ctx, sel, v) } -func (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v interface{}) (bool, error) { +func (ec *executionContext) unmarshalOBoolean2bool(ctx context.Context, v any) (bool, error) { res, err := graphql.UnmarshalBoolean(v) return res, graphql.ErrorOnPath(ctx, err) } @@ -27446,7 +29775,7 @@ func (ec *executionContext) marshalOBoolean2bool(ctx context.Context, sel ast.Se return res } -func (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v interface{}) (*bool, error) { +func (ec *executionContext) unmarshalOBoolean2ᚖbool(ctx context.Context, v any) (*bool, error) { if v == nil { return nil, nil } @@ -27462,35 +29791,35 @@ func (ec *executionContext) marshalOBoolean2ᚖbool(ctx context.Context, sel ast return res } -func (ec *executionContext) marshalOCoreV1ContainerStateRunning2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐContainerStateRunning(ctx context.Context, sel ast.SelectionSet, v *v11.ContainerStateRunning) graphql.Marshaler { +func (ec *executionContext) marshalOCoreV1ContainerStateRunning2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐContainerStateRunning(ctx context.Context, sel ast.SelectionSet, v *v13.ContainerStateRunning) graphql.Marshaler { if v == nil { return graphql.Null } return ec._CoreV1ContainerStateRunning(ctx, sel, v) } -func (ec *executionContext) marshalOCoreV1ContainerStateTerminated2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐContainerStateTerminated(ctx context.Context, sel ast.SelectionSet, v *v11.ContainerStateTerminated) graphql.Marshaler { +func (ec *executionContext) marshalOCoreV1ContainerStateTerminated2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐContainerStateTerminated(ctx context.Context, sel ast.SelectionSet, v *v13.ContainerStateTerminated) graphql.Marshaler { if v == nil { return graphql.Null } return ec._CoreV1ContainerStateTerminated(ctx, sel, v) } -func (ec *executionContext) marshalOCoreV1ContainerStateWaiting2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐContainerStateWaiting(ctx context.Context, sel ast.SelectionSet, v *v11.ContainerStateWaiting) graphql.Marshaler { +func (ec *executionContext) marshalOCoreV1ContainerStateWaiting2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐContainerStateWaiting(ctx context.Context, sel ast.SelectionSet, v *v13.ContainerStateWaiting) graphql.Marshaler { if v == nil { return graphql.Null } return ec._CoreV1ContainerStateWaiting(ctx, sel, v) } -func (ec *executionContext) marshalOCoreV1Namespace2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐNamespace(ctx context.Context, sel ast.SelectionSet, v *v11.Namespace) graphql.Marshaler { +func (ec *executionContext) marshalOCoreV1Namespace2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐNamespace(ctx context.Context, sel ast.SelectionSet, v *v13.Namespace) graphql.Marshaler { if v == nil { return graphql.Null } return ec._CoreV1Namespace(ctx, sel, v) } -func (ec *executionContext) marshalOCoreV1NamespaceList2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐNamespaceList(ctx context.Context, sel ast.SelectionSet, v *v11.NamespaceList) graphql.Marshaler { +func (ec *executionContext) marshalOCoreV1NamespaceList2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐNamespaceList(ctx context.Context, sel ast.SelectionSet, v *v13.NamespaceList) graphql.Marshaler { if v == nil { return graphql.Null } @@ -27504,14 +29833,14 @@ func (ec *executionContext) marshalOCoreV1NamespacesWatchEvent2ᚖk8sᚗioᚋapi return ec._CoreV1NamespacesWatchEvent(ctx, sel, v) } -func (ec *executionContext) marshalOCoreV1Node2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐNode(ctx context.Context, sel ast.SelectionSet, v *v11.Node) graphql.Marshaler { +func (ec *executionContext) marshalOCoreV1Node2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐNode(ctx context.Context, sel ast.SelectionSet, v *v13.Node) graphql.Marshaler { if v == nil { return graphql.Null } return ec._CoreV1Node(ctx, sel, v) } -func (ec *executionContext) marshalOCoreV1NodeList2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐNodeList(ctx context.Context, sel ast.SelectionSet, v *v11.NodeList) graphql.Marshaler { +func (ec *executionContext) marshalOCoreV1NodeList2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐNodeList(ctx context.Context, sel ast.SelectionSet, v *v13.NodeList) graphql.Marshaler { if v == nil { return graphql.Null } @@ -27525,36 +29854,49 @@ func (ec *executionContext) marshalOCoreV1NodesWatchEvent2ᚖk8sᚗioᚋapimachi return ec._CoreV1NodesWatchEvent(ctx, sel, v) } -func (ec *executionContext) marshalOCoreV1Pod2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐPod(ctx context.Context, sel ast.SelectionSet, v *v11.Pod) graphql.Marshaler { +func (ec *executionContext) marshalOCoreV1Pod2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐPod(ctx context.Context, sel ast.SelectionSet, v *v13.Pod) graphql.Marshaler { if v == nil { return graphql.Null } return ec._CoreV1Pod(ctx, sel, v) } -func (ec *executionContext) marshalOCoreV1PodList2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐPodList(ctx context.Context, sel ast.SelectionSet, v *v11.PodList) graphql.Marshaler { +func (ec *executionContext) marshalOCoreV1PodList2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐPodList(ctx context.Context, sel ast.SelectionSet, v *v13.PodList) graphql.Marshaler { if v == nil { return graphql.Null } return ec._CoreV1PodList(ctx, sel, v) } -func (ec *executionContext) unmarshalOCoreV1PodLogOptions2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐPodLogOptions(ctx context.Context, v interface{}) (*v11.PodLogOptions, error) { +func (ec *executionContext) marshalOCoreV1PodsWatchEvent2ᚖk8sᚗioᚋapimachineryᚋpkgᚋwatchᚐEvent(ctx context.Context, sel ast.SelectionSet, v *watch.Event) graphql.Marshaler { if v == nil { - return nil, nil + return graphql.Null } - res, err := ec.unmarshalInputCoreV1PodLogOptions(ctx, v) - return &res, graphql.ErrorOnPath(ctx, err) + return ec._CoreV1PodsWatchEvent(ctx, sel, v) } -func (ec *executionContext) marshalOCoreV1PodsWatchEvent2ᚖk8sᚗioᚋapimachineryᚋpkgᚋwatchᚐEvent(ctx context.Context, sel ast.SelectionSet, v *watch.Event) graphql.Marshaler { +func (ec *executionContext) marshalOCoreV1Service2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐService(ctx context.Context, sel ast.SelectionSet, v *v13.Service) graphql.Marshaler { if v == nil { return graphql.Null } - return ec._CoreV1PodsWatchEvent(ctx, sel, v) + return ec._CoreV1Service(ctx, sel, v) +} + +func (ec *executionContext) marshalOCoreV1ServiceList2ᚖk8sᚗioᚋapiᚋcoreᚋv1ᚐServiceList(ctx context.Context, sel ast.SelectionSet, v *v13.ServiceList) graphql.Marshaler { + if v == nil { + return graphql.Null + } + return ec._CoreV1ServiceList(ctx, sel, v) +} + +func (ec *executionContext) marshalOCoreV1ServicesWatchEvent2ᚖk8sᚗioᚋapimachineryᚋpkgᚋwatchᚐEvent(ctx context.Context, sel ast.SelectionSet, v *watch.Event) graphql.Marshaler { + if v == nil { + return graphql.Null + } + return ec._CoreV1ServicesWatchEvent(ctx, sel, v) } -func (ec *executionContext) unmarshalOID2ᚖstring(ctx context.Context, v interface{}) (*string, error) { +func (ec *executionContext) unmarshalOID2ᚖstring(ctx context.Context, v any) (*string, error) { if v == nil { return nil, nil } @@ -27570,7 +29912,7 @@ func (ec *executionContext) marshalOID2ᚖstring(ctx context.Context, sel ast.Se return res } -func (ec *executionContext) unmarshalOInt2ᚖint(ctx context.Context, v interface{}) (*int, error) { +func (ec *executionContext) unmarshalOInt2ᚖint(ctx context.Context, v any) (*int, error) { if v == nil { return nil, nil } @@ -27586,7 +29928,7 @@ func (ec *executionContext) marshalOInt2ᚖint(ctx context.Context, sel ast.Sele return res } -func (ec *executionContext) unmarshalOInt2ᚖint32(ctx context.Context, v interface{}) (*int32, error) { +func (ec *executionContext) unmarshalOInt2ᚖint32(ctx context.Context, v any) (*int32, error) { if v == nil { return nil, nil } @@ -27602,21 +29944,21 @@ func (ec *executionContext) marshalOInt2ᚖint32(ctx context.Context, sel ast.Se return res } -func (ec *executionContext) unmarshalOInt642int64(ctx context.Context, v interface{}) (int64, error) { - res, err := model.UnmarshalInt64(v) +func (ec *executionContext) unmarshalOInt642int64(ctx context.Context, v any) (int64, error) { + res, err := model1.UnmarshalInt64(v) return res, graphql.ErrorOnPath(ctx, err) } func (ec *executionContext) marshalOInt642int64(ctx context.Context, sel ast.SelectionSet, v int64) graphql.Marshaler { - res := model.MarshalInt64(v) + res := model1.MarshalInt64(v) return res } -func (ec *executionContext) unmarshalOInt642ᚖint64(ctx context.Context, v interface{}) (*int64, error) { +func (ec *executionContext) unmarshalOInt642ᚖint64(ctx context.Context, v any) (*int64, error) { if v == nil { return nil, nil } - res, err := model.UnmarshalInt64(v) + res, err := model1.UnmarshalInt64(v) return &res, graphql.ErrorOnPath(ctx, err) } @@ -27624,86 +29966,48 @@ func (ec *executionContext) marshalOInt642ᚖint64(ctx context.Context, sel ast. if v == nil { return graphql.Null } - res := model.MarshalInt64(*v) + res := model1.MarshalInt64(*v) return res } -func (ec *executionContext) marshalOLogMetadata2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋcommonᚋagentpbᚐLogMetadata(ctx context.Context, sel ast.SelectionSet, v *agentpb.LogMetadata) graphql.Marshaler { +func (ec *executionContext) marshalOKubeConfig2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐKubeConfig(ctx context.Context, sel ast.SelectionSet, v *model.KubeConfig) graphql.Marshaler { if v == nil { return graphql.Null } - return ec._LogMetadata(ctx, sel, v) + return ec._KubeConfig(ctx, sel, v) } -func (ec *executionContext) marshalOLogMetadataList2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋcommonᚋagentpbᚐLogMetadataList(ctx context.Context, sel ast.SelectionSet, v *agentpb.LogMetadataList) graphql.Marshaler { +func (ec *executionContext) unmarshalOKubeConfigExtensions2map(ctx context.Context, v any) (map[string]runtime.Object, error) { if v == nil { - return graphql.Null + return nil, nil } - return ec._LogMetadataList(ctx, sel, v) + res, err := model.UnmarshalKubeConfigExtensions(v) + return res, graphql.ErrorOnPath(ctx, err) } -func (ec *executionContext) marshalOLogMetadataWatchEvent2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋcommonᚋagentpbᚐLogMetadataWatchEvent(ctx context.Context, sel ast.SelectionSet, v *agentpb.LogMetadataWatchEvent) graphql.Marshaler { +func (ec *executionContext) marshalOKubeConfigExtensions2map(ctx context.Context, sel ast.SelectionSet, v map[string]runtime.Object) graphql.Marshaler { if v == nil { return graphql.Null } - return ec._LogMetadataWatchEvent(ctx, sel, v) + res := model.MarshalKubeConfigExtensions(v) + return res } -func (ec *executionContext) marshalOLogRecord2ᚕgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋserverᚋgraphᚋmodelᚐLogRecordᚄ(ctx context.Context, sel ast.SelectionSet, v []model.LogRecord) graphql.Marshaler { +func (ec *executionContext) marshalOKubeConfigWatchEvent2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐKubeConfigWatchEvent(ctx context.Context, sel ast.SelectionSet, v *model.KubeConfigWatchEvent) graphql.Marshaler { if v == nil { return graphql.Null } - ret := make(graphql.Array, len(v)) - var wg sync.WaitGroup - isLen1 := len(v) == 1 - if !isLen1 { - wg.Add(len(v)) - } - for i := range v { - i := i - fc := &graphql.FieldContext{ - Index: &i, - Result: &v[i], - } - ctx := graphql.WithFieldContext(ctx, fc) - f := func(i int) { - defer func() { - if r := recover(); r != nil { - ec.Error(ctx, ec.Recover(ctx, r)) - ret = nil - } - }() - if !isLen1 { - defer wg.Done() - } - ret[i] = ec.marshalNLogRecord2githubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋserverᚋgraphᚋmodelᚐLogRecord(ctx, sel, v[i]) - } - if isLen1 { - f(i) - } else { - go f(i) - } - - } - wg.Wait() - - for _, e := range ret { - if e == graphql.Null { - return graphql.Null - } - } - - return ret + return ec._KubeConfigWatchEvent(ctx, sel, v) } -func (ec *executionContext) marshalOLogRecord2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋserverᚋgraphᚋmodelᚐLogRecord(ctx context.Context, sel ast.SelectionSet, v *model.LogRecord) graphql.Marshaler { +func (ec *executionContext) marshalOLogRecord2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐLogRecord(ctx context.Context, sel ast.SelectionSet, v *model.LogRecord) graphql.Marshaler { if v == nil { return graphql.Null } return ec._LogRecord(ctx, sel, v) } -func (ec *executionContext) unmarshalOMetaV1GetOptions2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐGetOptions(ctx context.Context, v interface{}) (*v1.GetOptions, error) { +func (ec *executionContext) unmarshalOMetaV1GetOptions2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐGetOptions(ctx context.Context, v any) (*v1.GetOptions, error) { if v == nil { return nil, nil } @@ -27718,7 +30022,7 @@ func (ec *executionContext) marshalOMetaV1LabelSelector2ᚖk8sᚗioᚋapimachine return ec._MetaV1LabelSelector(ctx, sel, v) } -func (ec *executionContext) unmarshalOMetaV1ListOptions2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐListOptions(ctx context.Context, v interface{}) (*v1.ListOptions, error) { +func (ec *executionContext) unmarshalOMetaV1ListOptions2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐListOptions(ctx context.Context, v any) (*v1.ListOptions, error) { if v == nil { return nil, nil } @@ -27726,7 +30030,7 @@ func (ec *executionContext) unmarshalOMetaV1ListOptions2ᚖk8sᚗioᚋapimachine return &res, graphql.ErrorOnPath(ctx, err) } -func (ec *executionContext) unmarshalOMetaV1ResourceVersionMatch2k8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐResourceVersionMatch(ctx context.Context, v interface{}) (v1.ResourceVersionMatch, error) { +func (ec *executionContext) unmarshalOMetaV1ResourceVersionMatch2k8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐResourceVersionMatch(ctx context.Context, v any) (v1.ResourceVersionMatch, error) { tmp, err := graphql.UnmarshalString(v) res := v1.ResourceVersionMatch(tmp) return res, graphql.ErrorOnPath(ctx, err) @@ -27737,7 +30041,7 @@ func (ec *executionContext) marshalOMetaV1ResourceVersionMatch2k8sᚗioᚋapimac return res } -func (ec *executionContext) unmarshalOMetaV1Time2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐTime(ctx context.Context, v interface{}) (*v1.Time, error) { +func (ec *executionContext) unmarshalOMetaV1Time2ᚖk8sᚗioᚋapimachineryᚋpkgᚋapisᚋmetaᚋv1ᚐTime(ctx context.Context, v any) (*v1.Time, error) { if v == nil { return nil, nil } @@ -27753,14 +30057,14 @@ func (ec *executionContext) marshalOMetaV1Time2ᚖk8sᚗioᚋapimachineryᚋpkg return res } -func (ec *executionContext) marshalOPodLogQueryResponse2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋserverᚋgraphᚋmodelᚐPodLogQueryResponse(ctx context.Context, sel ast.SelectionSet, v *model.PodLogQueryResponse) graphql.Marshaler { +func (ec *executionContext) marshalOPodLogQueryResponse2ᚖgithubᚗcomᚋkubetailᚑorgᚋkubetailᚋmodulesᚋdashboardᚋgraphᚋmodelᚐPodLogQueryResponse(ctx context.Context, sel ast.SelectionSet, v *model.PodLogQueryResponse) graphql.Marshaler { if v == nil { return graphql.Null } return ec._PodLogQueryResponse(ctx, sel, v) } -func (ec *executionContext) unmarshalOString2string(ctx context.Context, v interface{}) (string, error) { +func (ec *executionContext) unmarshalOString2string(ctx context.Context, v any) (string, error) { res, err := graphql.UnmarshalString(v) return res, graphql.ErrorOnPath(ctx, err) } @@ -27770,51 +30074,73 @@ func (ec *executionContext) marshalOString2string(ctx context.Context, sel ast.S return res } -func (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v interface{}) (*string, error) { +func (ec *executionContext) unmarshalOString2ᚕstringᚄ(ctx context.Context, v any) ([]string, error) { if v == nil { return nil, nil } - res, err := graphql.UnmarshalString(v) - return &res, graphql.ErrorOnPath(ctx, err) + var vSlice []any + if v != nil { + vSlice = graphql.CoerceList(v) + } + var err error + res := make([]string, len(vSlice)) + for i := range vSlice { + ctx := graphql.WithPathContext(ctx, graphql.NewPathWithIndex(i)) + res[i], err = ec.unmarshalNString2string(ctx, vSlice[i]) + if err != nil { + return nil, err + } + } + return res, nil } -func (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler { +func (ec *executionContext) marshalOString2ᚕstringᚄ(ctx context.Context, sel ast.SelectionSet, v []string) graphql.Marshaler { if v == nil { return graphql.Null } - res := graphql.MarshalString(*v) - return res + ret := make(graphql.Array, len(v)) + for i := range v { + ret[i] = ec.marshalNString2string(ctx, sel, v[i]) + } + + for _, e := range ret { + if e == graphql.Null { + return graphql.Null + } + } + + return ret } -func (ec *executionContext) unmarshalOStringMap2map(ctx context.Context, v interface{}) (map[string]string, error) { +func (ec *executionContext) unmarshalOString2ᚖstring(ctx context.Context, v any) (*string, error) { if v == nil { return nil, nil } - res, err := model.UnmarshalStringMap(v) - return res, graphql.ErrorOnPath(ctx, err) + res, err := graphql.UnmarshalString(v) + return &res, graphql.ErrorOnPath(ctx, err) } -func (ec *executionContext) marshalOStringMap2map(ctx context.Context, sel ast.SelectionSet, v map[string]string) graphql.Marshaler { +func (ec *executionContext) marshalOString2ᚖstring(ctx context.Context, sel ast.SelectionSet, v *string) graphql.Marshaler { if v == nil { return graphql.Null } - res := model.MarshalStringMap(v) + res := graphql.MarshalString(*v) return res } -func (ec *executionContext) unmarshalOTimestampPBTimestamp2ᚖgoogleᚗgolangᚗorgᚋprotobufᚋtypesᚋknownᚋtimestamppbᚐTimestamp(ctx context.Context, v interface{}) (*timestamppb.Timestamp, error) { +func (ec *executionContext) unmarshalOStringMap2map(ctx context.Context, v any) (map[string]string, error) { if v == nil { return nil, nil } - res, err := model.UnmarshalTimestampPBTimestamp(v) + res, err := model.UnmarshalStringMap(v) return res, graphql.ErrorOnPath(ctx, err) } -func (ec *executionContext) marshalOTimestampPBTimestamp2ᚖgoogleᚗgolangᚗorgᚋprotobufᚋtypesᚋknownᚋtimestamppbᚐTimestamp(ctx context.Context, sel ast.SelectionSet, v *timestamppb.Timestamp) graphql.Marshaler { +func (ec *executionContext) marshalOStringMap2map(ctx context.Context, sel ast.SelectionSet, v map[string]string) graphql.Marshaler { if v == nil { return graphql.Null } - res := model.TimestampPBTimestamp(v) + res := model.MarshalStringMap(v) return res } diff --git a/modules/dashboard/graph/model/models_custom.go b/modules/dashboard/graph/model/models_custom.go new file mode 100644 index 00000000..8de7e490 --- /dev/null +++ b/modules/dashboard/graph/model/models_custom.go @@ -0,0 +1,113 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package model + +import ( + "encoding/json" + "io" + + "github.com/99designs/gqlgen/graphql" + zlog "github.com/rs/zerolog/log" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/client-go/tools/clientcmd/api" + + "github.com/kubetail-org/kubetail/modules/shared/graphql/errors" +) + +type List interface{} + +type Object interface{} + +// Overload k8s.io/client-go/tools/clientcmd/api.Config +type KubeConfig struct { + *api.Config + AuthInfos []*KubeConfigAuthInfo + Clusters []*KubeConfigCluster + Contexts []*KubeConfigContext +} + +// Overload k8s.io/client-go/tools/clientcmd/api.AuthInfo +type KubeConfigAuthInfo struct { + *api.AuthInfo + Name string +} + +// Overload k8s.io/client-go/tools/clientcmd/api.Cluster +type KubeConfigCluster struct { + *api.Cluster + Name string +} + +// Overload k8s.io/client-go/tools/clientcmd/api.Context +type KubeConfigContext struct { + *api.Context + Name string +} + +// KubeConfigExtensions scalar +func MarshalKubeConfigExtensions(val map[string]runtime.Object) graphql.Marshaler { + return graphql.WriterFunc(func(w io.Writer) { + err := json.NewEncoder(w).Encode(val) + if err != nil { + zlog.Error().Err(err).Send() + } + }) +} + +func UnmarshalKubeConfigExtensions(v interface{}) (map[string]runtime.Object, error) { + if m, ok := v.(map[string]runtime.Object); ok { + return m, nil + } + return nil, errors.NewValidationError("kubeconfigextensions", "Expected json-encoded string representing map[string]runtime.Object") +} + +// StringMap scalar +func MarshalStringMap(val map[string]string) graphql.Marshaler { + return graphql.WriterFunc(func(w io.Writer) { + err := json.NewEncoder(w).Encode(val) + if err != nil { + zlog.Fatal().Err(err).Send() + } + }) +} + +func UnmarshalStringMap(v interface{}) (map[string]string, error) { + if m, ok := v.(map[string]string); ok { + return m, nil + } + return nil, errors.NewValidationError("stringmap", "Expected json-encoded string representing map[string]string") +} + +// MetaV1Time scalar +func MarshalMetaV1Time(t metav1.Time) graphql.Marshaler { + if t.IsZero() { + return graphql.Null + } + + return graphql.WriterFunc(func(w io.Writer) { + b, _ := t.MarshalJSON() + w.Write(b) + }) +} + +func UnmarshalMetaV1Time(v interface{}) (metav1.Time, error) { + var t metav1.Time + if tmpStr, ok := v.(string); ok { + err := t.UnmarshalQueryParameter(tmpStr) + return t, err + } + return t, errors.NewValidationError("metav1time", "Expected RFC3339 formatted string") +} diff --git a/modules/server/graph/model/models_gen.go b/modules/dashboard/graph/model/models_gen.go similarity index 68% rename from modules/server/graph/model/models_gen.go rename to modules/dashboard/graph/model/models_gen.go index fe317ea7..eac2e30e 100644 --- a/modules/server/graph/model/models_gen.go +++ b/modules/dashboard/graph/model/models_gen.go @@ -7,6 +7,8 @@ import ( "io" "strconv" "time" + + "k8s.io/apimachinery/pkg/watch" ) type HealthCheckResponse struct { @@ -15,11 +17,19 @@ type HealthCheckResponse struct { Timestamp time.Time `json:"timestamp"` } +type KubeConfigWatchEvent struct { + Type watch.EventType `json:"type"` + Object *KubeConfig `json:"object,omitempty"` +} + type LogRecord struct { Timestamp time.Time `json:"timestamp"` Message string `json:"message"` } +type Mutation struct { +} + type PageInfo struct { // When paginating forwards, the cursor to continue. EndCursor *string `json:"endCursor,omitempty"` @@ -32,8 +42,8 @@ type PageInfo struct { } type PodLogQueryResponse struct { - Results []LogRecord `json:"results"` - PageInfo PageInfo `json:"pageInfo"` + Results []*LogRecord `json:"results"` + PageInfo *PageInfo `json:"pageInfo"` } type Query struct { @@ -45,18 +55,22 @@ type Subscription struct { type HealthCheckStatus string const ( - HealthCheckStatusSuccess HealthCheckStatus = "SUCCESS" - HealthCheckStatusFailure HealthCheckStatus = "FAILURE" + HealthCheckStatusSuccess HealthCheckStatus = "SUCCESS" + HealthCheckStatusFailure HealthCheckStatus = "FAILURE" + HealthCheckStatusUnknown HealthCheckStatus = "UNKNOWN" + HealthCheckStatusNotfound HealthCheckStatus = "NOTFOUND" ) var AllHealthCheckStatus = []HealthCheckStatus{ HealthCheckStatusSuccess, HealthCheckStatusFailure, + HealthCheckStatusUnknown, + HealthCheckStatusNotfound, } func (e HealthCheckStatus) IsValid() bool { switch e { - case HealthCheckStatusSuccess, HealthCheckStatusFailure: + case HealthCheckStatusSuccess, HealthCheckStatusFailure, HealthCheckStatusUnknown, HealthCheckStatusNotfound: return true } return false @@ -66,7 +80,7 @@ func (e HealthCheckStatus) String() string { return string(e) } -func (e *HealthCheckStatus) UnmarshalGQL(v interface{}) error { +func (e *HealthCheckStatus) UnmarshalGQL(v any) error { str, ok := v.(string) if !ok { return fmt.Errorf("enums must be strings") diff --git a/modules/dashboard/graph/resolver.go b/modules/dashboard/graph/resolver.go new file mode 100644 index 00000000..702e5930 --- /dev/null +++ b/modules/dashboard/graph/resolver.go @@ -0,0 +1,535 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package graph + +import ( + "bufio" + "context" + "fmt" + "io" + "strings" + "sync" + "time" + + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/utils/ptr" + + "github.com/kubetail-org/kubetail/modules/shared/config" + sharedk8shelpers "github.com/kubetail-org/kubetail/modules/shared/k8shelpers" + "github.com/sosodev/duration" + + "github.com/kubetail-org/kubetail/modules/dashboard/graph/model" + clusterapi "github.com/kubetail-org/kubetail/modules/dashboard/internal/cluster-api" + "github.com/kubetail-org/kubetail/modules/dashboard/internal/k8shelpers" +) + +// This file will not be regenerated automatically. +// +// It serves as dependency injection for your app, add any dependencies you require here. + +//go:generate go run github.com/99designs/gqlgen generate + +type Resolver struct { + cm k8shelpers.ConnectionManager + hmm *clusterapi.HealthMonitorManager + environment config.Environment + allowedNamespaces []string +} + +// Teardown +func (r *Resolver) Teardown() { + r.hmm.Shutdown() +} + +// listResource +func (r *Resolver) listResource(ctx context.Context, kubeContext *string, namespace *string, options *metav1.ListOptions, modelPtr runtime.Object) error { + // Deref namespace + nsList, err := sharedk8shelpers.DerefNamespaceToList(r.allowedNamespaces, namespace, r.cm.GetDefaultNamespace(kubeContext)) + if err != nil { + return err + } + + // Get client + dynamicClient, err := r.cm.GetOrCreateDynamicClient(kubeContext) + if err != nil { + return err + } + + gvr, err := GetGVR(modelPtr) + if err != nil { + return err + } + + client := dynamicClient.Resource(gvr) + + // in it list options + opts := toListOptions(options) + + // execute requests + list, err := func() (*unstructured.UnstructuredList, error) { + if len(nsList) == 1 { + return client.Namespace(nsList[0]).List(ctx, opts) + } else { + return listResourceMulti(ctx, client, nsList, opts) + } + }() + if err != nil { + return err + } + + // return de-serialized object + return runtime.DefaultUnstructuredConverter.FromUnstructured(list.UnstructuredContent(), modelPtr) +} + +// watchResourceMulti +func (r *Resolver) watchResourceMulti(ctx context.Context, kubeContext *string, namespace *string, options *metav1.ListOptions, gvr schema.GroupVersionResource) (<-chan *watch.Event, error) { + // Deref namespace + nsList, err := sharedk8shelpers.DerefNamespaceToList(r.allowedNamespaces, namespace, r.cm.GetDefaultNamespace(kubeContext)) + if err != nil { + return nil, err + } + + // Get client + dynamicClient, err := r.cm.GetOrCreateDynamicClient(kubeContext) + if err != nil { + return nil, err + } + + client := dynamicClient.Resource(gvr) + + // init list options + opts := toListOptions(options) + + // decode resource version + // TODO: fix me + resourceVersionMap := map[string]string{} + if len(nsList) == 1 { + resourceVersionMap[nsList[0]] = opts.ResourceVersion + } else { + if tmp, err := decodeResourceVersionMulti(opts.ResourceVersion); err != nil { + return nil, err + } else { + resourceVersionMap = tmp + } + } + + // init watch api's + watchAPIs := []watch.Interface{} + for _, ns := range nsList { + // init options + thisOpts := opts + + thisResourceVersion, exists := resourceVersionMap[ns] + if exists { + thisOpts.ResourceVersion = thisResourceVersion + } else { + thisOpts.ResourceVersion = "" + } + + // init watch api + watchAPI, err := client.Namespace(ns).Watch(ctx, thisOpts) + if err != nil { + return nil, err + } + watchAPIs = append(watchAPIs, watchAPI) + } + + // start watchers + outCh := make(chan *watch.Event) + ctx, cancel := context.WithCancel(ctx) + var wg sync.WaitGroup + + for _, watchAPI := range watchAPIs { + wg.Add(1) + go watchResource(ctx, watchAPI, outCh, cancel, &wg) + } + + // cleanup + go func() { + wg.Wait() + cancel() + close(outCh) + }() + + return outCh, nil +} + +// kubernetesAPIHealthzGet +func (r *Resolver) kubernetesAPIHealthzGet(ctx context.Context, kubeContext *string) *model.HealthCheckResponse { + resp := &model.HealthCheckResponse{ + Status: model.HealthCheckStatusFailure, + Timestamp: time.Now().UTC(), + } + + // Get client + clientset, err := r.cm.GetOrCreateClientset(kubeContext) + if err != nil { + resp.Message = ptr.To(err.Error()) + return resp + } + + // Execute request + ctx, cancel := context.WithTimeout(ctx, 3*time.Second) + defer cancel() + + _, err = clientset.CoreV1().RESTClient().Get().AbsPath("/livez").DoRaw(ctx) + if err != nil { + if ctx.Err() != nil { + resp.Message = ptr.To("Bad Gateway") + } else { + resp.Message = ptr.To(err.Error()) + } + return resp + } + + resp.Status = model.HealthCheckStatusSuccess + return resp +} + +// podLogHead +func (r *Resolver) podLogHead(ctx context.Context, kubeContext *string, namespace string, name string, container *string, args HeadArgs) (*model.PodLogQueryResponse, error) { + clientset, err := r.cm.GetOrCreateClientset(kubeContext) + if err != nil { + return nil, err + } + + var ( + headSince HeadSince + sinceTime time.Time + ) + + // handle `since` + since := strings.TrimSpace(args.Since) + if strings.ToLower(since) == "beginning" { + headSince = HeadSinceBeginning + } else if timeAgo, err := duration.Parse(since); err == nil { + headSince = HeadSinceTime + sinceTime = time.Now().Add(-1 * timeAgo.ToTimeDuration()) + } else if ts, err := time.Parse(time.RFC3339Nano, since); err == nil { + headSince = HeadSinceTime + sinceTime = ts + } else { + return nil, fmt.Errorf("did not understand `since` (`%s`)", since) + } + + // handle `after` + if ts, err := time.Parse(time.RFC3339Nano, args.After); err == nil { + headSince = HeadSinceTime + sinceTime = ts.Add(1 * time.Nanosecond) + } + + // init kubernetes logging options + opts := &corev1.PodLogOptions{ + Timestamps: true, + Follow: false, + } + + if container != nil { + opts.Container = *container + } + + if headSince == HeadSinceTime { + t := metav1.NewTime(sinceTime) + opts.SinceTime = &t + } + + // execute query + req := clientset.CoreV1().Pods(namespace).GetLogs(name, opts) + podLogs, err := req.Stream(ctx) + if err != nil { + return nil, err + } + defer podLogs.Close() + + // iterate through results + records := []*model.LogRecord{} + n := uint(0) + + scanner := bufio.NewScanner(podLogs) + for scanner.Scan() { + logRecord, err := newLogRecordFromLogLine(scanner.Text()) + if err != nil { + continue + } + + // ignore if log record comes before time window + if headSince == HeadSinceTime && logRecord.Timestamp.Before(sinceTime) { + continue + } + + n += 1 + + // exit if we've reached `First` + if args.First != 0 && n >= args.First+1 { + break + } + + records = append(records, logRecord) + } + + // stop streaming asap + podLogs.Close() + + // build response + response := &model.PodLogQueryResponse{} + + // page info + response.PageInfo = &model.PageInfo{} + + if args.First != 0 && n > args.First { + response.PageInfo.HasNextPage = true + } + + if len(records) > 0 { + response.PageInfo.EndCursor = ptr.To[string](records[len(records)-1].Timestamp.Format(time.RFC3339Nano)) + } else if headSince == HeadSinceTime { + response.PageInfo.EndCursor = ptr.To[string](sinceTime.Format(time.RFC3339Nano)) + } else if headSince == HeadSinceBeginning { + response.PageInfo.EndCursor = ptr.To[string]("BEGINNING") + } + + response.Results = records + + return response, nil +} + +func (r *Resolver) podLogTail(ctx context.Context, kubeContext *string, namespace string, name string, container *string, args TailArgs) (*model.PodLogQueryResponse, error) { + clientset, err := r.cm.GetOrCreateClientset(kubeContext) + if err != nil { + return nil, err + } + + var ( + firstTS time.Time + tailLines int64 + tailUntil TailUntil + untilTime time.Time + ) + + // handle `before` + if args.Before != "" { + cursor, err := decodeTailCursor(args.Before) + if err != nil { + return nil, err + } + firstTS = cursor.FirstTS + tailLines = cursor.TailLines + tailUntil = TailUntilTime + untilTime = cursor.Time.Add(-1 * time.Nanosecond) + } + + // first timestamp + if firstTS.IsZero() { + ts, err := getFirstTimestamp(ctx, clientset, namespace, name, container) + switch { + case err == io.EOF: + // empty log + return &model.PodLogQueryResponse{PageInfo: &model.PageInfo{EndCursor: ptr.To[string]("BEGINNING")}}, nil + case err != nil: + // other error + return nil, err + default: + firstTS = ts + } + } + + // look back with increasing batch size until we have enough records or reach beginning + records := []*model.LogRecord{} + batchSize := int64(args.Last) + +Loop: + for { + // look back farther with each iteration + tailLines += batchSize + + // init kubernetes logging options + opts := &corev1.PodLogOptions{ + Timestamps: true, + Follow: false, + TailLines: ptr.To[int64](tailLines), + } + + if container != nil { + opts.Container = *container + } + + // execute query + req := clientset.CoreV1().Pods(namespace).GetLogs(name, opts) + podLogs, err := req.Stream(ctx) + if err != nil { + return nil, err + } + defer podLogs.Close() + + loopRecords := []*model.LogRecord{} + + scanner := bufio.NewScanner(podLogs) + for scanner.Scan() { + logRecord, err := newLogRecordFromLogLine(scanner.Text()) + if err != nil { + continue + } + + // exit if log record comes after time window + if tailUntil == TailUntilTime && logRecord.Timestamp.After(untilTime) { + break + } + + loopRecords = append(loopRecords, logRecord) + } + + // prepend loop records to outer records + records = append(loopRecords, records...) + + // stop streaming asap + podLogs.Close() + + // exit if we have enough records + if len(records) >= int(args.Last) { + break Loop + } + + // exit if we've reached beginning + if len(records) > 0 && records[0].Timestamp == firstTS { + break Loop + } + + // update loop time window + if len(records) > 0 { + untilTime = records[0].Timestamp.Add(-1 * time.Nanosecond) + } + + // increase batch size with each iteration + batchSize += batchSize / 2 + } + + // build response + response := &model.PodLogQueryResponse{} + + // page info + response.PageInfo = &model.PageInfo{} + + if len(records) == 0 { + response.PageInfo.EndCursor = ptr.To[string]("BEGINNING") + } else { + // get last N items + startIndex := len(records) - int(args.Last) + if startIndex < 0 { + startIndex = 0 + } + response.Results = records[startIndex:] + + // start cursor + if records[0].Timestamp != firstTS { + cursorStr, _ := encodeTailCursor(TailCursor{ + TailLines: tailLines, + Time: records[0].Timestamp, + FirstTS: firstTS, + }) + response.PageInfo.StartCursor = &cursorStr + response.PageInfo.HasPreviousPage = true + } + + // end cursor + response.PageInfo.EndCursor = ptr.To[string](records[len(records)-1].Timestamp.Format(time.RFC3339Nano)) + if args.Before != "" { + response.PageInfo.HasNextPage = true + } + } + + return response, nil +} + +// podLogFollow +func (r *Resolver) podLogFollow(ctx context.Context, kubeContext *string, namespace string, name string, container *string, args FollowArgs) (<-chan *model.LogRecord, error) { + clientset, err := r.cm.GetOrCreateClientset(kubeContext) + if err != nil { + return nil, err + } + + // init output channel + ch := make(chan *model.LogRecord) + + var sinceTime time.Time + + // handle `since` + since := strings.TrimSpace(args.Since) + if strings.ToLower(since) == "beginning" { + // do nothing + } else if strings.ToLower(since) == "now" { + sinceTime = time.Now() + } else if ts, err := time.Parse(time.RFC3339Nano, since); err == nil { + sinceTime = ts + } else { + return nil, fmt.Errorf("did not understand `since` (`%s`)", since) + } + + // handle `after` + after := strings.TrimSpace(args.After) + if strings.ToLower(after) == "beginning" { + sinceTime = time.Time{} + } else if ts, err := time.Parse(time.RFC3339Nano, args.After); err == nil { + sinceTime = ts.Add(1 * time.Nanosecond) + } + + // init kubernetes logging options + opts := &corev1.PodLogOptions{ + Timestamps: true, + Follow: true, + } + + if container != nil { + opts.Container = *container + } + + if !sinceTime.IsZero() { + t := metav1.NewTime(sinceTime) + opts.SinceTime = &t + } + + // execute query + req := clientset.CoreV1().Pods(namespace).GetLogs(name, opts) + podLogs, err := req.Stream(ctx) + if err != nil { + return nil, err + } + + go func() { + defer podLogs.Close() + + scanner := bufio.NewScanner(podLogs) + for scanner.Scan() { + logRecord, err := newLogRecordFromLogLine(scanner.Text()) + if err != nil { + continue + } + + // ignore if log record comes before time window + if logRecord.Timestamp.Before(sinceTime) { + continue + } + + ch <- logRecord + } + close(ch) + }() + + return ch, nil +} diff --git a/modules/server/graph/schema.graphqls b/modules/dashboard/graph/schema.graphqls similarity index 72% rename from modules/server/graph/schema.graphqls rename to modules/dashboard/graph/schema.graphqls index 65f2e700..bb490712 100644 --- a/modules/server/graph/schema.graphqls +++ b/modules/dashboard/graph/schema.graphqls @@ -1,4 +1,4 @@ -# Copyright 2024 Andres Morey +# Copyright 2024-2025 Andres Morey # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -12,6 +12,8 @@ # See the License for the specific language governing permissions and # limitations under the License. +# Kubetail Dashboard GraphQL schema + # --- directives --- directive @validate(rule: String!, message: String) on INPUT_FIELD_DEFINITION | ARGUMENT_DEFINITION @@ -472,6 +474,43 @@ type CoreV1PodsWatchEvent { object: CoreV1Pod } +# https://pkg.go.dev/k8s.io/api/core/v1#Service +type CoreV1Service implements Object { + id: ID! + kind: String! + apiVersion: String! + metadata: MetaV1ObjectMeta! + spec: CoreV1ServiceSpec! +} + +# https://pkg.go.dev/k8s.io/api/core/v1#ServiceList +type CoreV1ServiceList implements List { + kind: String! + apiVersion: String! + metadata: MetaV1ListMeta! + items: [CoreV1Service!]! +} + +# https://pkg.go.dev/k8s.io/api/core/v1#ServicePort +type CoreV1ServicePort { + name: String +} + +# https://pkg.go.dev/k8s.io/api/core/v1#ServiceSpec +type CoreV1ServiceSpec { + ports: [CoreV1ServicePort!]! + selector: StringMap + clusterIP: String + clusterIPs: [String!] + externalName: String +} + +# https://pkg.go.dev/k8s.io/apimachinery/pkg/watch#Event +type CoreV1ServicesWatchEvent { + type: WatchEventType! + object: CoreV1Service +} + # --- Health Check --- type HealthCheckResponse { @@ -483,38 +522,53 @@ type HealthCheckResponse { enum HealthCheckStatus { SUCCESS FAILURE + UNKNOWN + NOTFOUND } -# --- Log Metadata --- +# --- KubeConfig --- -type LogMetadata { - id: ID! - spec: LogMetadataSpec! - fileInfo: LogMetadataFileInfo! +# https://pkg.go.dev/k8s.io/client-go/tools/clientcmd/api#Config +type KubeConfig { + authInfos: [KubeConfigAuthInfo!]! + clusters: [KubeConfigCluster!]! + contexts: [KubeConfigContext!]! + currentContext: String! + extensions: KubeConfigExtensions } -type LogMetadataFileInfo { - size: Int64! - lastModifiedAt: TimestampPBTimestamp +# https://pkg.go.dev/k8s.io/client-go/tools/clientcmd/api#AuthInfo +type KubeConfigAuthInfo { + name: String! + locationOfOrigin: String! + extensions: KubeConfigExtensions } -type LogMetadataList { - items: [LogMetadata!]! +# https://pkg.go.dev/k8s.io/client-go/tools/clientcmd/api#Cluster +type KubeConfigCluster { + name: String! + locationOfOrigin: String! + server: String! + extensions: KubeConfigExtensions } -type LogMetadataSpec { - nodeName: String! +# https://pkg.go.dev/k8s.io/client-go/tools/clientcmd/api#Context +type KubeConfigContext { + name: String! + locationOfOrigin: String! + cluster: String! + authInfo: String! namespace: String! - podName: String! - containerName: String! - containerID: ID! + extensions: KubeConfigExtensions } -type LogMetadataWatchEvent { - type: String! - object: LogMetadata +type KubeConfigWatchEvent { + type: WatchEventType! + object: KubeConfig } +scalar KubeConfigExtensions + # --- Log Record --- type LogRecord { @@ -639,47 +693,61 @@ enum WatchEventType { ERROR } -# --- root operations --- +# --- Root operations --- type Query { """ - AppsV1 API + AppsV1 queries """ - appsV1DaemonSetsGet(name: String!, namespace: String, options: MetaV1GetOptions): AppsV1DaemonSet - appsV1DaemonSetsList(namespace: String, options: MetaV1ListOptions): AppsV1DaemonSetList - appsV1DeploymentsGet(name: String!, namespace: String, options: MetaV1GetOptions): AppsV1Deployment - appsV1DeploymentsList(namespace: String, options: MetaV1ListOptions): AppsV1DeploymentList - appsV1ReplicaSetsGet(name: String!, namespace: String, options: MetaV1GetOptions): AppsV1ReplicaSet - appsV1ReplicaSetsList(namespace: String, options: MetaV1ListOptions): AppsV1ReplicaSetList - appsV1StatefulSetsGet(name: String!, namespace: String, options: MetaV1GetOptions): AppsV1StatefulSet - appsV1StatefulSetsList(namespace: String, options: MetaV1ListOptions): AppsV1StatefulSetList + appsV1DaemonSetsGet(kubeContext: String, namespace: String, name: String!, options: MetaV1GetOptions): AppsV1DaemonSet + appsV1DaemonSetsList(kubeContext: String, namespace: String, options: MetaV1ListOptions): AppsV1DaemonSetList + appsV1DeploymentsGet(kubeContext: String, namespace: String, name: String!, options: MetaV1GetOptions): AppsV1Deployment + appsV1DeploymentsList(kubeContext: String, namespace: String, options: MetaV1ListOptions): AppsV1DeploymentList + appsV1ReplicaSetsGet(kubeContext: String, namespace: String, name: String!, options: MetaV1GetOptions): AppsV1ReplicaSet + appsV1ReplicaSetsList(kubeContext: String, namespace: String, options: MetaV1ListOptions): AppsV1ReplicaSetList + appsV1StatefulSetsGet(kubeContext: String, namespace: String, name: String!, options: MetaV1GetOptions): AppsV1StatefulSet + appsV1StatefulSetsList(kubeContext: String, namespace: String, options: MetaV1ListOptions): AppsV1StatefulSetList """ - BatchV1 API + BatchV1 queries """ - batchV1CronJobsGet(name: String!, namespace: String, options: MetaV1GetOptions): BatchV1CronJob - batchV1CronJobsList(namespace: String, options: MetaV1ListOptions): BatchV1CronJobList - batchV1JobsGet(name: String!, namespace: String, options: MetaV1GetOptions): BatchV1Job - batchV1JobsList(namespace: String, options: MetaV1ListOptions): BatchV1JobList + batchV1CronJobsGet(kubeContext: String, namespace: String, name: String!, options: MetaV1GetOptions): BatchV1CronJob + batchV1CronJobsList(kubeContext: String, namespace: String, options: MetaV1ListOptions): BatchV1CronJobList + batchV1JobsGet(kubeContext: String, namespace: String, name: String!, options: MetaV1GetOptions): BatchV1Job + batchV1JobsList(kubeContext: String, namespace: String, options: MetaV1ListOptions): BatchV1JobList """ - CoreV1 API + CoreV1 queries """ - coreV1NamespacesList(options: MetaV1ListOptions): CoreV1NamespaceList - coreV1NodesList(options: MetaV1ListOptions): CoreV1NodeList - coreV1PodsGet(namespace: String, name: String!, options: MetaV1GetOptions): CoreV1Pod - coreV1PodsList(namespace: String, options: MetaV1ListOptions): CoreV1PodList - coreV1PodsGetLogs(namespace: String, name: String!, options: CoreV1PodLogOptions): [LogRecord!] + coreV1NamespacesList(kubeContext: String, options: MetaV1ListOptions): CoreV1NamespaceList + coreV1NodesList(kubeContext: String, options: MetaV1ListOptions): CoreV1NodeList + coreV1PodsGet(kubeContext: String, namespace: String, name: String!, options: MetaV1GetOptions): CoreV1Pod + coreV1PodsList(kubeContext: String, namespace: String, options: MetaV1ListOptions): CoreV1PodList + coreV1ServicesGet(kubeContext: String, namespace: String, name: String!, options: MetaV1GetOptions): CoreV1Service + coreV1ServicesList(kubeContext: String, namespace: String, options: MetaV1ListOptions): CoreV1ServiceList """ - Logs Metadata API + Kubernetes API """ - logMetadataList(namespace: String): LogMetadataList + kubernetesAPIReadyWait(kubeContext: String): Boolean! + kubernetesAPIHealthzGet(kubeContext: String): HealthCheckResponse! """ - Logs API + Kubetail Cluster API + """ + kubetailClusterAPIReadyWait(kubeContext: String, namespace: String, serviceName: String): Boolean! + kubetailClusterAPIHealthzGet(kubeContext: String, namespace: String, serviceName: String): HealthCheckResponse! + + """ + KubeConfig queries + """ + kubeConfigGet: KubeConfig + + """ + Pod logs API """ podLogHead( + kubeContext: String, namespace: String, name: String!, container: String, @@ -701,6 +769,7 @@ type Query { ): PodLogQueryResponse @nullIfValidationFailed podLogTail( + kubeContext: String, namespace: String, name: String!, container: String, @@ -715,54 +784,58 @@ type Query { """ last: Int = 100 @validate(rule: "gt=0", message: "Value must be > 0") ): PodLogQueryResponse @nullIfValidationFailed +} +type Mutation { """ - Health endpoints + Kubetail Cluster API """ - livezGet: HealthCheckResponse! - readyzGet: HealthCheckResponse! - - readyWait( - timeout: Int = 20, - ): Boolean! + kubetailClusterAPIInstall(kubeContext: String): Boolean } type Subscription { """ AppsV1 watchers """ - appsV1DaemonSetsWatch(namespace: String, options: MetaV1ListOptions): AppsV1DaemonSetsWatchEvent - appsV1DeploymentsWatch(namespace: String, options: MetaV1ListOptions): AppsV1DeploymentsWatchEvent - appsV1ReplicaSetsWatch(namespace: String, options: MetaV1ListOptions): AppsV1ReplicaSetsWatchEvent - appsV1StatefulSetsWatch(namespace: String, options: MetaV1ListOptions): AppsV1StatefulSetsWatchEvent + appsV1DaemonSetsWatch(kubeContext: String, namespace: String, options: MetaV1ListOptions): AppsV1DaemonSetsWatchEvent + appsV1DeploymentsWatch(kubeContext: String, namespace: String, options: MetaV1ListOptions): AppsV1DeploymentsWatchEvent + appsV1ReplicaSetsWatch(kubeContext: String, namespace: String, options: MetaV1ListOptions): AppsV1ReplicaSetsWatchEvent + appsV1StatefulSetsWatch(kubeContext: String, namespace: String, options: MetaV1ListOptions): AppsV1StatefulSetsWatchEvent """ BatchV1 watchers """ - batchV1CronJobsWatch(namespace: String, options: MetaV1ListOptions): BatchV1CronJobsWatchEvent - batchV1JobsWatch(namespace: String, options: MetaV1ListOptions): BatchV1JobsWatchEvent + batchV1CronJobsWatch(kubeContext: String, namespace: String, options: MetaV1ListOptions): BatchV1CronJobsWatchEvent + batchV1JobsWatch(kubeContext: String, namespace: String, options: MetaV1ListOptions): BatchV1JobsWatchEvent """ CoreV1 watchers """ - coreV1NamespacesWatch(options: MetaV1ListOptions): CoreV1NamespacesWatchEvent - coreV1NodesWatch(options: MetaV1ListOptions): CoreV1NodesWatchEvent - coreV1PodsWatch(namespace: String, options: MetaV1ListOptions): CoreV1PodsWatchEvent + coreV1NamespacesWatch(kubeContext: String, options: MetaV1ListOptions): CoreV1NamespacesWatchEvent + coreV1NodesWatch(kubeContext: String, options: MetaV1ListOptions): CoreV1NodesWatchEvent + coreV1PodsWatch(kubeContext: String, namespace: String, options: MetaV1ListOptions): CoreV1PodsWatchEvent + coreV1ServicesWatch(kubeContext: String, namespace: String, options: MetaV1ListOptions): CoreV1ServicesWatchEvent + + """ + Kubernetes API + """ + kubernetesAPIHealthzWatch(kubeContext: String): HealthCheckResponse! """ - CoreV1 PodLog tail + Kubetail API """ - coreV1PodLogTail(namespace: String, name: String!, options: CoreV1PodLogOptions): LogRecord + kubetailClusterAPIHealthzWatch(kubeContext: String, namespace: String, serviceName: String): HealthCheckResponse! """ - Logs Metadata watch + KubeConfig watchers """ - logMetadataWatch(namespace: String): LogMetadataWatchEvent + kubeConfigWatch: KubeConfigWatchEvent """ - Logs API + Pod logs API """ podLogFollow( + kubeContext: String, namespace: String name: String! container: String @@ -777,15 +850,9 @@ type Subscription { """ since: String = "NOW" ): LogRecord @nullIfValidationFailed - - """ - Health endpoint watchers - """ - livezWatch: HealthCheckResponse! - readyzWatch: HealthCheckResponse! } -# --- helpers --- +# --- Helpers --- """ A 64-bit integer. @@ -806,8 +873,3 @@ scalar StringMap An ISO-8601 encoded UTC date string. """ scalar Time - -""" -An ISO-8601 encoded UTC date string. -""" -scalar TimestampPBTimestamp diff --git a/modules/server/graph/helpers.go b/modules/dashboard/graph/schema.helpers.go similarity index 50% rename from modules/server/graph/helpers.go rename to modules/dashboard/graph/schema.helpers.go index 7fdd2dbc..16f82f12 100644 --- a/modules/server/graph/helpers.go +++ b/modules/dashboard/graph/schema.helpers.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -15,12 +15,10 @@ package graph import ( - "bufio" "context" "encoding/base64" "encoding/json" "fmt" - "io" "sort" "strconv" "strings" @@ -29,12 +27,11 @@ import ( "github.com/99designs/gqlgen/graphql/handler/transport" zlog "github.com/rs/zerolog/log" - "github.com/sosodev/duration" appsv1 "k8s.io/api/apps/v1" batchv1 "k8s.io/api/batch/v1" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - unstructured "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/watch" @@ -43,9 +40,25 @@ import ( "k8s.io/client-go/kubernetes" "k8s.io/utils/ptr" - "github.com/kubetail-org/kubetail/modules/server/graph/model" + gqlerrors "github.com/kubetail-org/kubetail/modules/shared/graphql/errors" + + "github.com/kubetail-org/kubetail/modules/dashboard/graph/model" + clusterapi "github.com/kubetail-org/kubetail/modules/dashboard/internal/cluster-api" ) +// Represents response from fetchListResource() +type FetchResponse struct { + Namespace string + Result *unstructured.UnstructuredList + Error error +} + +// represents multi-namespace continue token +type continueMultiToken struct { + ResourceVersions map[string]string `json:"rv"` + StartKey string `json:"start"` +} + // Head enums type HeadSince int8 @@ -105,59 +118,13 @@ func GetGVR(obj runtime.Object) (schema.GroupVersionResource, error) { return schema.GroupVersionResource{Group: "batch", Version: "v1", Resource: "cronjobs"}, nil case *corev1.Pod, *corev1.PodList: return schema.GroupVersionResource{Group: "", Version: "v1", Resource: "pods"}, nil + case *corev1.Service, *corev1.ServiceList: + return schema.GroupVersionResource{Group: "", Version: "v1", Resource: "services"}, nil default: return schema.GroupVersionResource{}, fmt.Errorf("not implemented: %T", obj) } } -// Represents response from fetchListResource() -type FetchResponse struct { - Namespace string - Result *unstructured.UnstructuredList - Error error -} - -// represents multi-namespace continue token -type continueMultiToken struct { - ResourceVersions map[string]string `json:"rv"` - StartKey string `json:"start"` -} - -// encode resource version -func encodeResourceVersionMulti(resourceVersionMap map[string]string) (string, error) { - // json encode - resourceVersionBytes, err := json.Marshal(resourceVersionMap) - if err != nil { - return "", err - } - - // base64 encode - return base64.StdEncoding.EncodeToString(resourceVersionBytes), nil -} - -// decode resource version -func decodeResourceVersionMulti(resourceVersionToken string) (map[string]string, error) { - resourceVersionMap := map[string]string{} - - if resourceVersionToken == "" { - return resourceVersionMap, nil - } - - // base64 decode - resourceVersionBytes, err := base64.StdEncoding.DecodeString(resourceVersionToken) - if err != nil { - return nil, err - } - - // json decode - err = json.Unmarshal(resourceVersionBytes, &resourceVersionMap) - if err != nil { - return nil, err - } - - return resourceVersionMap, nil -} - // encode continue token func encodeContinueMulti(resourceVersions map[string]string, startKey string) (string, error) { token := continueMultiToken{ResourceVersions: resourceVersions, StartKey: startKey} @@ -209,64 +176,39 @@ func decodeContinueMulti(tokenStr string) (map[string]string, error) { return continueMap, nil } -// mergeResults -func mergeResults(responses []FetchResponse, options metav1.ListOptions) (*unstructured.UnstructuredList, error) { - // loop through results - items := []unstructured.Unstructured{} - remainingItemCount := int64(0) - resourceVersionMap := map[string]string{} - - for _, resp := range responses { - // exit if any query resulted in error - if resp.Error != nil { - return nil, resp.Error - } - - result := resp.Result - - // metadata - remainingItemCount += ptr.Deref(result.GetRemainingItemCount(), 0) - resourceVersionMap[resp.Namespace] = result.GetResourceVersion() - - // items - items = append(items, result.Items...) +// encode resource version +func encodeResourceVersionMulti(resourceVersionMap map[string]string) (string, error) { + // json encode + resourceVersionBytes, err := json.Marshal(resourceVersionMap) + if err != nil { + return "", err } - // sort items - sort.Slice(items, func(i, j int) bool { - return items[i].GetName() < items[j].GetName() - }) + // base64 encode + return base64.StdEncoding.EncodeToString(resourceVersionBytes), nil +} - // slice items - ignoreCount := int64(len(items)) - options.Limit - if ignoreCount > 0 { - remainingItemCount += ignoreCount - items = items[:options.Limit] +// decode resource version +func decodeResourceVersionMulti(resourceVersionToken string) (map[string]string, error) { + resourceVersionMap := map[string]string{} + + if resourceVersionToken == "" { + return resourceVersionMap, nil } - // encode resourceVersionMap - resourceVersion, err := encodeResourceVersionMulti(resourceVersionMap) + // base64 decode + resourceVersionBytes, err := base64.StdEncoding.DecodeString(resourceVersionToken) if err != nil { return nil, err } - // generate continue token - var continueToken string - if len(items) > 0 && remainingItemCount > 0 { - continueToken, err = encodeContinueMulti(resourceVersionMap, items[len(items)-1].GetName()) - if err != nil { - return nil, err - } + // json decode + err = json.Unmarshal(resourceVersionBytes, &resourceVersionMap) + if err != nil { + return nil, err } - // init merged object - output := new(unstructured.UnstructuredList) - output.SetRemainingItemCount(&remainingItemCount) - output.SetResourceVersion(resourceVersion) - output.SetContinue(continueToken) - output.Items = items - - return output, nil + return resourceVersionMap, nil } // listResourceMulti @@ -320,39 +262,44 @@ func listResourceMulti(ctx context.Context, client dynamic.NamespaceableResource return mergeResults(responses, options) } -// listResource -func listResource(r *queryResolver, ctx context.Context, namespace *string, options *metav1.ListOptions, modelPtr runtime.Object) error { - // init client - gvr, err := GetGVR(modelPtr) - if err != nil { - return err - } +// watchResource +func watchResource(ctx context.Context, watchAPI watch.Interface, outCh chan<- *watch.Event, cancel context.CancelFunc, wg *sync.WaitGroup) { + defer wg.Done() + evCh := watchAPI.ResultChan() - client := r.K8SDynamicClient(ctx).Resource(gvr) +Loop: + for { + select { + case <-ctx.Done(): + // listener closed connection or another goroutine encountered an error + break Loop + case ev := <-evCh: + // just-in-case (maybe this is unnecessary) + if ev.Type == "" || ev.Object == nil { + // stop all + cancel() + } - // init namespaces - namespaces, err := r.ToNamespaces(namespace) - if err != nil { - return err - } + // exit if error + if ev.Type == watch.Error { + status, ok := ev.Object.(*metav1.Status) + if ok { + transport.AddSubscriptionError(ctx, newWatchErrorFromMetaV1Status(status)) + } else { + transport.AddSubscriptionError(ctx, gqlerrors.ErrInternalServerError) + } - // init list options - opts := toListOptions(options) + // stop all + cancel() + } - // execute requests - list, err := func() (*unstructured.UnstructuredList, error) { - if len(namespaces) == 1 { - return client.Namespace(namespaces[0]).List(ctx, opts) - } else { - return listResourceMulti(ctx, client, namespaces, opts) + // write to output channel + outCh <- &ev } - }() - if err != nil { - return err } - // return de-serialized object - return runtime.DefaultUnstructuredConverter.FromUnstructured(list.UnstructuredContent(), modelPtr) + // cleanup + watchAPI.Stop() } // watchEventProxyChannel @@ -377,9 +324,9 @@ func watchEventProxyChannel(ctx context.Context, watchAPI watch.Interface) <-cha if ev.Type == watch.Error { status, ok := ev.Object.(*metav1.Status) if ok { - transport.AddSubscriptionError(ctx, NewWatchError(status)) + transport.AddSubscriptionError(ctx, newWatchErrorFromMetaV1Status(status)) } else { - transport.AddSubscriptionError(ctx, ErrInternalServerError) + transport.AddSubscriptionError(ctx, gqlerrors.ErrInternalServerError) } break Loop } @@ -397,162 +344,64 @@ func watchEventProxyChannel(ctx context.Context, watchAPI watch.Interface) <-cha return outCh } -// watchResource -func watchResource(ctx context.Context, watchAPI watch.Interface, outCh chan<- *watch.Event, cancel context.CancelFunc, wg *sync.WaitGroup) { - defer wg.Done() - evCh := watchAPI.ResultChan() +// mergeResults +func mergeResults(responses []FetchResponse, options metav1.ListOptions) (*unstructured.UnstructuredList, error) { + // loop through results + items := []unstructured.Unstructured{} + remainingItemCount := int64(0) + resourceVersionMap := map[string]string{} -Loop: - for { - select { - case <-ctx.Done(): - // listener closed connection or another goroutine encountered an error - break Loop - case ev := <-evCh: - // just-in-case (maybe this is unnecessary) - if ev.Type == "" || ev.Object == nil { - // stop all - cancel() - } + for _, resp := range responses { + // exit if any query resulted in error + if resp.Error != nil { + return nil, resp.Error + } - // exit if error - if ev.Type == watch.Error { - status, ok := ev.Object.(*metav1.Status) - if ok { - transport.AddSubscriptionError(ctx, NewWatchError(status)) - } else { - transport.AddSubscriptionError(ctx, ErrInternalServerError) - } + result := resp.Result - // stop all - cancel() - } + // metadata + remainingItemCount += ptr.Deref(result.GetRemainingItemCount(), 0) + resourceVersionMap[resp.Namespace] = result.GetResourceVersion() - // write to output channel - outCh <- &ev - } + // items + items = append(items, result.Items...) } - // cleanup - watchAPI.Stop() -} + // sort items + sort.Slice(items, func(i, j int) bool { + return items[i].GetName() < items[j].GetName() + }) -// watchResourceMulti -func watchResourceMulti(r *subscriptionResolver, ctx context.Context, gvr schema.GroupVersionResource, namespace *string, options *metav1.ListOptions) (<-chan *watch.Event, error) { - client := r.K8SDynamicClient(ctx).Resource(gvr) + // slice items + ignoreCount := int64(len(items)) - options.Limit + if ignoreCount > 0 { + remainingItemCount += ignoreCount + items = items[:options.Limit] + } - // init namespaces - namespaces, err := r.ToNamespaces(namespace) + // encode resourceVersionMap + resourceVersion, err := encodeResourceVersionMulti(resourceVersionMap) if err != nil { return nil, err } - // init list options - opts := toListOptions(options) - - // decode resource version - // TODO: fix me - resourceVersionMap := map[string]string{} - if len(namespaces) == 1 { - resourceVersionMap[namespaces[0]] = opts.ResourceVersion - } else { - resourceVersionMap, err = decodeResourceVersionMulti(opts.ResourceVersion) - if err != nil { - return nil, err - } - } - - // init watch api's - watchAPIs := []watch.Interface{} - for _, ns := range namespaces { - // init options - thisOpts := opts - - thisResourceVersion, exists := resourceVersionMap[ns] - if exists { - thisOpts.ResourceVersion = thisResourceVersion - } else { - thisOpts.ResourceVersion = "" - } - - // init watch api - watchAPI, err := client.Namespace(ns).Watch(ctx, thisOpts) + // generate continue token + var continueToken string + if len(items) > 0 && remainingItemCount > 0 { + continueToken, err = encodeContinueMulti(resourceVersionMap, items[len(items)-1].GetName()) if err != nil { return nil, err } - watchAPIs = append(watchAPIs, watchAPI) - } - - // start watchers - outCh := make(chan *watch.Event) - ctx, cancel := context.WithCancel(ctx) - var wg sync.WaitGroup - - for _, watchAPI := range watchAPIs { - wg.Add(1) - go watchResource(ctx, watchAPI, outCh, cancel, &wg) - } - - // cleanup - go func() { - wg.Wait() - cancel() - close(outCh) - }() - - return outCh, nil -} - -// getHealth -func getHealth(ctx context.Context, clientset kubernetes.Interface, endpoint string) model.HealthCheckResponse { - resp := model.HealthCheckResponse{ - Status: model.HealthCheckStatusSuccess, - Timestamp: time.Now().UTC(), - } - - // execute request - _, err := clientset.Discovery().RESTClient().Get().AbsPath("/" + endpoint).DoRaw(ctx) - if err != nil { - resp.Status = model.HealthCheckStatusFailure - resp.Message = ptr.To[string](err.Error()) } - return resp -} - -// watchHealthChannel -func watchHealthChannel(ctx context.Context, clientset kubernetes.Interface, endpoint string) <-chan model.HealthCheckResponse { - outCh := make(chan model.HealthCheckResponse) - - go func() { - var lastMessage *string - ticker := time.NewTicker(3 * time.Second) - - resp := getHealth(ctx, clientset, endpoint) - lastMessage = resp.Message - outCh <- resp - - Loop: - for { - select { - case <-ctx.Done(): - // listener closed connection - break Loop - case <-ticker.C: - resp := getHealth(ctx, clientset, endpoint) - if !ptr.Equal(lastMessage, resp.Message) { - lastMessage = resp.Message - outCh <- resp - } - } - } - - // cleanup - ticker.Stop() - close(outCh) - }() + // init merged object + output := new(unstructured.UnstructuredList) + output.SetRemainingItemCount(&remainingItemCount) + output.SetResourceVersion(resourceVersion) + output.SetContinue(continueToken) + output.Items = items - return outCh + return output, nil } // conversion helpers @@ -572,14 +421,6 @@ func toGetOptions(options *metav1.GetOptions) metav1.GetOptions { return opts } -func toPodLogOptions(options *corev1.PodLogOptions) corev1.PodLogOptions { - opts := corev1.PodLogOptions{} - if options != nil { - opts = *options - } - return opts -} - func typeassertRuntimeObject[T any](object runtime.Object) (T, error) { var zeroVal T @@ -598,10 +439,11 @@ func typeassertRuntimeObject[T any](object runtime.Object) (T, error) { } } -func newLogRecordFromLogLine(logLine string) (model.LogRecord, error) { +// Create new log record +func newLogRecordFromLogLine(logLine string) (*model.LogRecord, error) { // handle logs from kubernetes fake clientset if logLine == "fake logs" { - return model.LogRecord{ + return &model.LogRecord{ Timestamp: time.Now().UTC(), Message: "fake logs", }, nil @@ -614,10 +456,10 @@ func newLogRecordFromLogLine(logLine string) (model.LogRecord, error) { ts, err := time.Parse(time.RFC3339Nano, parts[0]) if err != nil { - return model.LogRecord{}, err + return &model.LogRecord{}, err } - return model.LogRecord{ + return &model.LogRecord{ Timestamp: ts, Message: parts[1], }, nil @@ -676,317 +518,17 @@ func getFirstTimestamp(ctx context.Context, clientset kubernetes.Interface, name return time.Parse(time.RFC3339Nano, strings.Fields(string(buf))[0]) } -// log methods -func headPodLog(ctx context.Context, clientset kubernetes.Interface, namespace string, name string, container *string, args HeadArgs) (*model.PodLogQueryResponse, error) { - var ( - headSince HeadSince - sinceTime time.Time - ) - - // handle `since` - since := strings.TrimSpace(args.Since) - if strings.ToLower(since) == "beginning" { - headSince = HeadSinceBeginning - } else if timeAgo, err := duration.Parse(since); err == nil { - headSince = HeadSinceTime - sinceTime = time.Now().Add(-1 * timeAgo.ToTimeDuration()) - } else if ts, err := time.Parse(time.RFC3339Nano, since); err == nil { - headSince = HeadSinceTime - sinceTime = ts - } else { - return nil, fmt.Errorf("did not understand `since` (`%s`)", since) - } - - // handle `after` - if ts, err := time.Parse(time.RFC3339Nano, args.After); err == nil { - headSince = HeadSinceTime - sinceTime = ts.Add(1 * time.Nanosecond) - } - - // init kubernetes logging options - opts := &corev1.PodLogOptions{ - Timestamps: true, - Follow: false, - } - - if container != nil { - opts.Container = *container - } - - if headSince == HeadSinceTime { - t := metav1.NewTime(sinceTime) - opts.SinceTime = &t - } - - // execute query - req := clientset.CoreV1().Pods(namespace).GetLogs(name, opts) - podLogs, err := req.Stream(ctx) - if err != nil { - return nil, err - } - defer podLogs.Close() - - // iterate through results - records := []model.LogRecord{} - n := uint(0) - - scanner := bufio.NewScanner(podLogs) - for scanner.Scan() { - logRecord, err := newLogRecordFromLogLine(scanner.Text()) - if err != nil { - continue - } - - // ignore if log record comes before time window - if headSince == HeadSinceTime && logRecord.Timestamp.Before(sinceTime) { - continue - } - - n += 1 - - // exit if we've reached `First` - if args.First != 0 && n >= args.First+1 { - break - } - - records = append(records, logRecord) - } - - // stop streaming asap - podLogs.Close() - - // build response - response := &model.PodLogQueryResponse{} - - // page info - response.PageInfo = model.PageInfo{} - - if args.First != 0 && n > args.First { - response.PageInfo.HasNextPage = true - } - - if len(records) > 0 { - response.PageInfo.EndCursor = ptr.To[string](records[len(records)-1].Timestamp.Format(time.RFC3339Nano)) - } else if headSince == HeadSinceTime { - response.PageInfo.EndCursor = ptr.To[string](sinceTime.Format(time.RFC3339Nano)) - } else if headSince == HeadSinceBeginning { - response.PageInfo.EndCursor = ptr.To[string]("BEGINNING") - } - - response.Results = records - - return response, nil -} - -func tailPodLog(ctx context.Context, clientset kubernetes.Interface, namespace string, name string, container *string, args TailArgs) (*model.PodLogQueryResponse, error) { - var ( - firstTS time.Time - tailLines int64 - tailUntil TailUntil - untilTime time.Time - ) - - // handle `before` - if args.Before != "" { - cursor, err := decodeTailCursor(args.Before) - if err != nil { - return nil, err - } - firstTS = cursor.FirstTS - tailLines = cursor.TailLines - tailUntil = TailUntilTime - untilTime = cursor.Time.Add(-1 * time.Nanosecond) - } - - // first timestamp - if firstTS.IsZero() { - ts, err := getFirstTimestamp(ctx, clientset, namespace, name, container) - switch { - case err == io.EOF: - // empty log - return &model.PodLogQueryResponse{PageInfo: model.PageInfo{EndCursor: ptr.To[string]("BEGINNING")}}, nil - case err != nil: - // other error - return nil, err - default: - firstTS = ts - } - } - - // look back with increasing batch size until we have enough records or reach beginning - records := []model.LogRecord{} - batchSize := int64(args.Last) - -Loop: - for { - // look back farther with each iteration - tailLines += batchSize - - // init kubernetes logging options - opts := &corev1.PodLogOptions{ - Timestamps: true, - Follow: false, - TailLines: ptr.To[int64](tailLines), - } - - if container != nil { - opts.Container = *container - } - - // execute query - req := clientset.CoreV1().Pods(namespace).GetLogs(name, opts) - podLogs, err := req.Stream(ctx) - if err != nil { - return nil, err - } - defer podLogs.Close() - - loopRecords := []model.LogRecord{} - - scanner := bufio.NewScanner(podLogs) - for scanner.Scan() { - logRecord, err := newLogRecordFromLogLine(scanner.Text()) - if err != nil { - continue - } - - // exit if log record comes after time window - if tailUntil == TailUntilTime && logRecord.Timestamp.After(untilTime) { - break - } - - loopRecords = append(loopRecords, logRecord) - } - - // prepend loop records to outer records - records = append(loopRecords, records...) - - // stop streaming asap - podLogs.Close() - - // exit if we have enough records - if len(records) >= int(args.Last) { - break Loop - } - - // exit if we've reached beginning - if len(records) > 0 && records[0].Timestamp == firstTS { - break Loop - } - - // update loop time window - if len(records) > 0 { - untilTime = records[0].Timestamp.Add(-1 * time.Nanosecond) - } - - // increase batch size with each iteration - batchSize += batchSize / 2 - } - - // build response - response := &model.PodLogQueryResponse{} - - // page info - response.PageInfo = model.PageInfo{} - - if len(records) == 0 { - response.PageInfo.EndCursor = ptr.To[string]("BEGINNING") - } else { - // get last N items - startIndex := len(records) - int(args.Last) - if startIndex < 0 { - startIndex = 0 - } - response.Results = records[startIndex:] - - // start cursor - if records[0].Timestamp != firstTS { - cursorStr, _ := encodeTailCursor(TailCursor{ - TailLines: tailLines, - Time: records[0].Timestamp, - FirstTS: firstTS, - }) - response.PageInfo.StartCursor = &cursorStr - response.PageInfo.HasPreviousPage = true - } - - // end cursor - response.PageInfo.EndCursor = ptr.To[string](records[len(records)-1].Timestamp.Format(time.RFC3339Nano)) - if args.Before != "" { - response.PageInfo.HasNextPage = true - } - } - - return response, nil -} - -func followPodLog(ctx context.Context, clientset kubernetes.Interface, namespace string, name string, container *string, args FollowArgs) (<-chan model.LogRecord, error) { - // init output channel - ch := make(chan model.LogRecord) - - var sinceTime time.Time - - // handle `since` - since := strings.TrimSpace(args.Since) - if strings.ToLower(since) == "beginning" { - // do nothing - } else if strings.ToLower(since) == "now" { - sinceTime = time.Now() - } else if ts, err := time.Parse(time.RFC3339Nano, since); err == nil { - sinceTime = ts - } else { - return nil, fmt.Errorf("did not understand `since` (`%s`)", since) - } - - // handle `after` - after := strings.TrimSpace(args.After) - if strings.ToLower(after) == "beginning" { - sinceTime = time.Time{} - } else if ts, err := time.Parse(time.RFC3339Nano, args.After); err == nil { - sinceTime = ts.Add(1 * time.Nanosecond) - } - - // init kubernetes logging options - opts := &corev1.PodLogOptions{ - Timestamps: true, - Follow: true, - } - - if container != nil { - opts.Container = *container - } - - if !sinceTime.IsZero() { - t := metav1.NewTime(sinceTime) - opts.SinceTime = &t - } - - // execute query - req := clientset.CoreV1().Pods(namespace).GetLogs(name, opts) - podLogs, err := req.Stream(ctx) - if err != nil { - return nil, err +func healthCheckStatusFromClusterAPIHealthStatus(statusIn clusterapi.HealthStatus) model.HealthCheckStatus { + switch statusIn { + case clusterapi.HealthStatusSuccess: + return model.HealthCheckStatusSuccess + case clusterapi.HealthStatusFailure: + return model.HealthCheckStatusFailure + case clusterapi.HealthStatusNotFound: + return model.HealthCheckStatusNotfound + case clusterapi.HealthStatusUknown: + return model.HealthCheckStatusUnknown + default: + panic("not implemented") } - - go func() { - defer podLogs.Close() - - scanner := bufio.NewScanner(podLogs) - for scanner.Scan() { - logRecord, err := newLogRecordFromLogLine(scanner.Text()) - if err != nil { - continue - } - - // ignore if log record comes before time window - if logRecord.Timestamp.Before(sinceTime) { - continue - } - - ch <- logRecord - } - close(ch) - }() - - return ch, nil } diff --git a/modules/server/graph/helpers_test.go b/modules/dashboard/graph/schema.helpers_test.go similarity index 97% rename from modules/server/graph/helpers_test.go rename to modules/dashboard/graph/schema.helpers_test.go index 26b00338..669f7e60 100644 --- a/modules/server/graph/helpers_test.go +++ b/modules/dashboard/graph/schema.helpers_test.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -23,11 +23,13 @@ import ( batchv1 "k8s.io/api/batch/v1" corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - unstructured "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apiserver/pkg/storage" "k8s.io/utils/ptr" + + gqlerrors "github.com/kubetail-org/kubetail/modules/shared/graphql/errors" ) func TestGetGVRSuccess(t *testing.T) { @@ -275,7 +277,7 @@ func TestMergeResultsError(t *testing.T) { // build fetch responses fetchResponses := []FetchResponse{ {Namespace: "ns1", Result: &unstructured.UnstructuredList{Object: r1Obj}}, - {Namespace: "ns2", Error: ErrForbidden}, + {Namespace: "ns2", Error: gqlerrors.ErrForbidden}, } // merge results diff --git a/modules/dashboard/graph/schema.resolvers.go b/modules/dashboard/graph/schema.resolvers.go new file mode 100644 index 00000000..33690038 --- /dev/null +++ b/modules/dashboard/graph/schema.resolvers.go @@ -0,0 +1,849 @@ +package graph + +// This file will be automatically regenerated based on the schema, any resolver implementations +// will be copied through when generating and any unknown code will be moved to the end. +// Code generated by github.com/99designs/gqlgen version v0.17.63 + +import ( + "context" + "fmt" + "slices" + "time" + + "github.com/99designs/gqlgen/graphql/handler/transport" + "github.com/kubetail-org/kubetail/modules/dashboard/graph/model" + "github.com/kubetail-org/kubetail/modules/dashboard/internal/k8shelpers" + gqlerrors "github.com/kubetail-org/kubetail/modules/shared/graphql/errors" + "github.com/kubetail-org/kubetail/modules/shared/helm" + sharedk8shelpers "github.com/kubetail-org/kubetail/modules/shared/k8shelpers" + appsv1 "k8s.io/api/apps/v1" + batchv1 "k8s.io/api/batch/v1" + corev1 "k8s.io/api/core/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/watch" + "k8s.io/client-go/tools/clientcmd/api" + "k8s.io/utils/ptr" +) + +// Object is the resolver for the object field. +func (r *appsV1DaemonSetsWatchEventResolver) Object(ctx context.Context, obj *watch.Event) (*appsv1.DaemonSet, error) { + return typeassertRuntimeObject[*appsv1.DaemonSet](obj.Object) +} + +// Object is the resolver for the object field. +func (r *appsV1DeploymentsWatchEventResolver) Object(ctx context.Context, obj *watch.Event) (*appsv1.Deployment, error) { + return typeassertRuntimeObject[*appsv1.Deployment](obj.Object) +} + +// Object is the resolver for the object field. +func (r *appsV1ReplicaSetsWatchEventResolver) Object(ctx context.Context, obj *watch.Event) (*appsv1.ReplicaSet, error) { + return typeassertRuntimeObject[*appsv1.ReplicaSet](obj.Object) +} + +// Object is the resolver for the object field. +func (r *appsV1StatefulSetsWatchEventResolver) Object(ctx context.Context, obj *watch.Event) (*appsv1.StatefulSet, error) { + return typeassertRuntimeObject[*appsv1.StatefulSet](obj.Object) +} + +// Object is the resolver for the object field. +func (r *batchV1CronJobsWatchEventResolver) Object(ctx context.Context, obj *watch.Event) (*batchv1.CronJob, error) { + return typeassertRuntimeObject[*batchv1.CronJob](obj.Object) +} + +// Object is the resolver for the object field. +func (r *batchV1JobsWatchEventResolver) Object(ctx context.Context, obj *watch.Event) (*batchv1.Job, error) { + return typeassertRuntimeObject[*batchv1.Job](obj.Object) +} + +// Object is the resolver for the object field. +func (r *coreV1NamespacesWatchEventResolver) Object(ctx context.Context, obj *watch.Event) (*corev1.Namespace, error) { + return typeassertRuntimeObject[*corev1.Namespace](obj.Object) +} + +// Object is the resolver for the object field. +func (r *coreV1NodesWatchEventResolver) Object(ctx context.Context, obj *watch.Event) (*corev1.Node, error) { + return typeassertRuntimeObject[*corev1.Node](obj.Object) +} + +// Object is the resolver for the object field. +func (r *coreV1PodsWatchEventResolver) Object(ctx context.Context, obj *watch.Event) (*corev1.Pod, error) { + return typeassertRuntimeObject[*corev1.Pod](obj.Object) +} + +// Object is the resolver for the object field. +func (r *coreV1ServicesWatchEventResolver) Object(ctx context.Context, obj *watch.Event) (*corev1.Service, error) { + return typeassertRuntimeObject[*corev1.Service](obj.Object) +} + +// AuthInfos is the resolver for the authInfos field. +func (r *kubeConfigResolver) AuthInfos(ctx context.Context, obj *model.KubeConfig) ([]*model.KubeConfigAuthInfo, error) { + outList := make([]*model.KubeConfigAuthInfo, len(obj.Config.Clusters)) + i := 0 + for name, val := range obj.Config.AuthInfos { + outList[i] = &model.KubeConfigAuthInfo{ + AuthInfo: val, + Name: name, + } + i += 1 + } + return outList, nil +} + +// Clusters is the resolver for the clusters field. +func (r *kubeConfigResolver) Clusters(ctx context.Context, obj *model.KubeConfig) ([]*model.KubeConfigCluster, error) { + outList := make([]*model.KubeConfigCluster, len(obj.Config.Clusters)) + i := 0 + for name, val := range obj.Config.Clusters { + outList[i] = &model.KubeConfigCluster{ + Cluster: val, + Name: name, + } + i += 1 + } + return outList, nil +} + +// Contexts is the resolver for the contexts field. +func (r *kubeConfigResolver) Contexts(ctx context.Context, obj *model.KubeConfig) ([]*model.KubeConfigContext, error) { + outList := make([]*model.KubeConfigContext, len(obj.Config.Clusters)) + i := 0 + for name, val := range obj.Config.Contexts { + outList[i] = &model.KubeConfigContext{ + Context: val, + Name: name, + } + i += 1 + } + return outList, nil +} + +// KubetailClusterAPIInstall is the resolver for the kubetailClusterAPIInstall field. +func (r *mutationResolver) KubetailClusterAPIInstall(ctx context.Context, kubeContext *string) (*bool, error) { + // Init client + client, err := helm.NewClient() + if err != nil { + return nil, err + } + + // Install + _, err = client.InstallLatest() + if err != nil { + return nil, err + } + + return ptr.To(true), nil +} + +// AppsV1DaemonSetsGet is the resolver for the appsV1DaemonSetsGet field. +func (r *queryResolver) AppsV1DaemonSetsGet(ctx context.Context, kubeContext *string, namespace *string, name string, options *metav1.GetOptions) (*appsv1.DaemonSet, error) { + // Deref namespace + ns, err := sharedk8shelpers.DerefNamespace(r.allowedNamespaces, namespace, r.cm.GetDefaultNamespace(kubeContext)) + if err != nil { + return nil, err + } + + // Get client + clientset, err := r.cm.GetOrCreateClientset(kubeContext) + if err != nil { + return nil, err + } + + // Execute + return clientset.AppsV1().DaemonSets(ns).Get(ctx, name, toGetOptions(options)) +} + +// AppsV1DaemonSetsList is the resolver for the appsV1DaemonSetsList field. +func (r *queryResolver) AppsV1DaemonSetsList(ctx context.Context, kubeContext *string, namespace *string, options *metav1.ListOptions) (*appsv1.DaemonSetList, error) { + outList := &appsv1.DaemonSetList{} + if err := r.listResource(ctx, kubeContext, namespace, options, outList); err != nil { + return nil, err + } + return outList, nil +} + +// AppsV1DeploymentsGet is the resolver for the appsV1DeploymentsGet field. +func (r *queryResolver) AppsV1DeploymentsGet(ctx context.Context, kubeContext *string, namespace *string, name string, options *metav1.GetOptions) (*appsv1.Deployment, error) { + // Deref namespace + ns, err := sharedk8shelpers.DerefNamespace(r.allowedNamespaces, namespace, r.cm.GetDefaultNamespace(kubeContext)) + if err != nil { + return nil, err + } + + // Get client + clientset, err := r.cm.GetOrCreateClientset(kubeContext) + if err != nil { + return nil, err + } + + // Execute + return clientset.AppsV1().Deployments(ns).Get(ctx, name, toGetOptions(options)) +} + +// AppsV1DeploymentsList is the resolver for the appsV1DeploymentsList field. +func (r *queryResolver) AppsV1DeploymentsList(ctx context.Context, kubeContext *string, namespace *string, options *metav1.ListOptions) (*appsv1.DeploymentList, error) { + outList := &appsv1.DeploymentList{} + if err := r.listResource(ctx, kubeContext, namespace, options, outList); err != nil { + return nil, err + } + return outList, nil +} + +// AppsV1ReplicaSetsGet is the resolver for the appsV1ReplicaSetsGet field. +func (r *queryResolver) AppsV1ReplicaSetsGet(ctx context.Context, kubeContext *string, namespace *string, name string, options *metav1.GetOptions) (*appsv1.ReplicaSet, error) { + // Deref namespace + ns, err := sharedk8shelpers.DerefNamespace(r.allowedNamespaces, namespace, r.cm.GetDefaultNamespace(kubeContext)) + if err != nil { + return nil, err + } + + // Get client + clientset, err := r.cm.GetOrCreateClientset(kubeContext) + if err != nil { + return nil, err + } + + // Execute + return clientset.AppsV1().ReplicaSets(ns).Get(ctx, name, toGetOptions(options)) +} + +// AppsV1ReplicaSetsList is the resolver for the appsV1ReplicaSetsList field. +func (r *queryResolver) AppsV1ReplicaSetsList(ctx context.Context, kubeContext *string, namespace *string, options *metav1.ListOptions) (*appsv1.ReplicaSetList, error) { + outList := &appsv1.ReplicaSetList{} + if err := r.listResource(ctx, kubeContext, namespace, options, outList); err != nil { + return nil, err + } + return outList, nil +} + +// AppsV1StatefulSetsGet is the resolver for the appsV1StatefulSetsGet field. +func (r *queryResolver) AppsV1StatefulSetsGet(ctx context.Context, kubeContext *string, namespace *string, name string, options *metav1.GetOptions) (*appsv1.StatefulSet, error) { + // Deref namespace + ns, err := sharedk8shelpers.DerefNamespace(r.allowedNamespaces, namespace, r.cm.GetDefaultNamespace(kubeContext)) + if err != nil { + return nil, err + } + + // Get client + clientset, err := r.cm.GetOrCreateClientset(kubeContext) + if err != nil { + return nil, err + } + + // Execute + return clientset.AppsV1().StatefulSets(ns).Get(ctx, name, toGetOptions(options)) +} + +// AppsV1StatefulSetsList is the resolver for the appsV1StatefulSetsList field. +func (r *queryResolver) AppsV1StatefulSetsList(ctx context.Context, kubeContext *string, namespace *string, options *metav1.ListOptions) (*appsv1.StatefulSetList, error) { + outList := &appsv1.StatefulSetList{} + if err := r.listResource(ctx, kubeContext, namespace, options, outList); err != nil { + return nil, err + } + return outList, nil +} + +// BatchV1CronJobsGet is the resolver for the batchV1CronJobsGet field. +func (r *queryResolver) BatchV1CronJobsGet(ctx context.Context, kubeContext *string, namespace *string, name string, options *metav1.GetOptions) (*batchv1.CronJob, error) { + // Deref namespace + ns, err := sharedk8shelpers.DerefNamespace(r.allowedNamespaces, namespace, r.cm.GetDefaultNamespace(kubeContext)) + if err != nil { + return nil, err + } + + // Get client + clientset, err := r.cm.GetOrCreateClientset(kubeContext) + if err != nil { + return nil, err + } + + // Execute + return clientset.BatchV1().CronJobs(ns).Get(ctx, name, toGetOptions(options)) +} + +// BatchV1CronJobsList is the resolver for the batchV1CronJobsList field. +func (r *queryResolver) BatchV1CronJobsList(ctx context.Context, kubeContext *string, namespace *string, options *metav1.ListOptions) (*batchv1.CronJobList, error) { + outList := &batchv1.CronJobList{} + if err := r.listResource(ctx, kubeContext, namespace, options, outList); err != nil { + return nil, err + } + return outList, nil +} + +// BatchV1JobsGet is the resolver for the batchV1JobsGet field. +func (r *queryResolver) BatchV1JobsGet(ctx context.Context, kubeContext *string, namespace *string, name string, options *metav1.GetOptions) (*batchv1.Job, error) { + // Deref namespace + ns, err := sharedk8shelpers.DerefNamespace(r.allowedNamespaces, namespace, r.cm.GetDefaultNamespace(kubeContext)) + if err != nil { + return nil, err + } + + // Get client + clientset, err := r.cm.GetOrCreateClientset(kubeContext) + if err != nil { + return nil, err + } + + // Execute + return clientset.BatchV1().Jobs(ns).Get(ctx, name, toGetOptions(options)) +} + +// BatchV1JobsList is the resolver for the batchV1JobsList field. +func (r *queryResolver) BatchV1JobsList(ctx context.Context, kubeContext *string, namespace *string, options *metav1.ListOptions) (*batchv1.JobList, error) { + outList := &batchv1.JobList{} + if err := r.listResource(ctx, kubeContext, namespace, options, outList); err != nil { + return nil, err + } + return outList, nil +} + +// CoreV1NamespacesList is the resolver for the coreV1NamespacesList field. +func (r *queryResolver) CoreV1NamespacesList(ctx context.Context, kubeContext *string, options *metav1.ListOptions) (*corev1.NamespaceList, error) { + clientset, err := r.cm.GetOrCreateClientset(kubeContext) + if err != nil { + return nil, err + } + + response, err := clientset.CoreV1().Namespaces().List(ctx, toListOptions(options)) + if err != nil { + return response, nil + } + + // apply app namespace filter + if len(r.allowedNamespaces) > 0 { + items := []corev1.Namespace{} + for _, item := range response.Items { + if slices.Contains(r.allowedNamespaces, item.Name) { + items = append(items, item) + } + } + response.Items = items + } + + return response, err +} + +// CoreV1NodesList is the resolver for the coreV1NodesList field. +func (r *queryResolver) CoreV1NodesList(ctx context.Context, kubeContext *string, options *metav1.ListOptions) (*corev1.NodeList, error) { + // Get client + clientset, err := r.cm.GetOrCreateClientset(kubeContext) + if err != nil { + return nil, err + } + + // Execute + return clientset.CoreV1().Nodes().List(ctx, toListOptions(options)) +} + +// CoreV1PodsGet is the resolver for the coreV1PodsGet field. +func (r *queryResolver) CoreV1PodsGet(ctx context.Context, kubeContext *string, namespace *string, name string, options *metav1.GetOptions) (*corev1.Pod, error) { + // Deref namespace + ns, err := sharedk8shelpers.DerefNamespace(r.allowedNamespaces, namespace, r.cm.GetDefaultNamespace(kubeContext)) + if err != nil { + return nil, err + } + + // Get client + clientset, err := r.cm.GetOrCreateClientset(kubeContext) + if err != nil { + return nil, err + } + + // Execute + return clientset.CoreV1().Pods(ns).Get(ctx, name, toGetOptions(options)) +} + +// CoreV1PodsList is the resolver for the coreV1PodsList field. +func (r *queryResolver) CoreV1PodsList(ctx context.Context, kubeContext *string, namespace *string, options *metav1.ListOptions) (*corev1.PodList, error) { + outList := &corev1.PodList{} + if err := r.listResource(ctx, kubeContext, namespace, options, outList); err != nil { + return nil, err + } + return outList, nil +} + +// CoreV1ServicesGet is the resolver for the coreV1ServicesGet field. +func (r *queryResolver) CoreV1ServicesGet(ctx context.Context, kubeContext *string, namespace *string, name string, options *metav1.GetOptions) (*corev1.Service, error) { + // Deref namespace + ns, err := sharedk8shelpers.DerefNamespace(r.allowedNamespaces, namespace, r.cm.GetDefaultNamespace(kubeContext)) + if err != nil { + return nil, err + } + + // Get client + clientset, err := r.cm.GetOrCreateClientset(kubeContext) + if err != nil { + return nil, err + } + + // Execute + return clientset.CoreV1().Services(ns).Get(ctx, name, toGetOptions(options)) +} + +// CoreV1ServicesList is the resolver for the coreV1ServicesList field. +func (r *queryResolver) CoreV1ServicesList(ctx context.Context, kubeContext *string, namespace *string, options *metav1.ListOptions) (*corev1.ServiceList, error) { + outList := &corev1.ServiceList{} + if err := r.listResource(ctx, kubeContext, namespace, options, outList); err != nil { + return nil, err + } + return outList, nil +} + +// KubernetesAPIReadyWait is the resolver for the kubernetesAPIReadyWait field. +func (r *queryResolver) KubernetesAPIReadyWait(ctx context.Context, kubeContext *string) (bool, error) { + ctx, cancel := context.WithTimeout(ctx, 20*time.Second) + defer cancel() + + // Execute + if err := r.cm.WaitUntilReady(ctx, kubeContext); err != nil { + return false, err + } + + return true, nil +} + +// KubernetesAPIHealthzGet is the resolver for the kubernetesAPIHealthzGet field. +func (r *queryResolver) KubernetesAPIHealthzGet(ctx context.Context, kubeContext *string) (*model.HealthCheckResponse, error) { + return r.kubernetesAPIHealthzGet(ctx, kubeContext), nil +} + +// KubetailClusterAPIReadyWait is the resolver for the kubetailClusterAPIReadyWait field. +func (r *queryResolver) KubetailClusterAPIReadyWait(ctx context.Context, kubeContext *string, namespace *string, serviceName *string) (bool, error) { + monitor, err := r.hmm.GetOrCreateMonitor(ctx, kubeContext, namespace, serviceName) + if err != nil { + return false, err + } + + monitor.ReadyWait(ctx) + + if ctx.Err() != nil { + return false, ctx.Err() + } + + return true, nil +} + +// KubetailClusterAPIHealthzGet is the resolver for the kubetailClusterAPIHealthzGet field. +func (r *queryResolver) KubetailClusterAPIHealthzGet(ctx context.Context, kubeContext *string, namespace *string, serviceName *string) (*model.HealthCheckResponse, error) { + monitor, err := r.hmm.GetOrCreateMonitor(ctx, kubeContext, namespace, serviceName) + if err != nil { + return nil, err + } + + status := monitor.GetHealthStatus() + + return &model.HealthCheckResponse{ + Status: healthCheckStatusFromClusterAPIHealthStatus(status), + Timestamp: time.Now().UTC(), + }, nil +} + +// KubeConfigGet is the resolver for the kubeConfigGet field. +func (r *queryResolver) KubeConfigGet(ctx context.Context) (*model.KubeConfig, error) { + cm, ok := r.cm.(*k8shelpers.DesktopConnectionManager) + if !ok { + return nil, fmt.Errorf("DesktopConnectionManager not found") + } + return &model.KubeConfig{Config: cm.GetKubeConfig()}, nil +} + +// PodLogHead is the resolver for the podLogHead field. +func (r *queryResolver) PodLogHead(ctx context.Context, kubeContext *string, namespace *string, name string, container *string, after *string, since *string, first *int) (*model.PodLogQueryResponse, error) { + // Deref namespace + ns, err := sharedk8shelpers.DerefNamespace(r.allowedNamespaces, namespace, r.cm.GetDefaultNamespace(kubeContext)) + if err != nil { + return nil, err + } + + // build query args + args := HeadArgs{} + + if after != nil { + args.After = *after + } + + if since != nil { + args.Since = *since + } + + if first != nil { + args.First = uint(*first) + } + + return r.podLogHead(ctx, kubeContext, ns, name, container, args) +} + +// PodLogTail is the resolver for the podLogTail field. +func (r *queryResolver) PodLogTail(ctx context.Context, kubeContext *string, namespace *string, name string, container *string, before *string, last *int) (*model.PodLogQueryResponse, error) { + // Deref namespace + ns, err := sharedk8shelpers.DerefNamespace(r.allowedNamespaces, namespace, r.cm.GetDefaultNamespace(kubeContext)) + if err != nil { + return nil, err + } + + // build query args + args := TailArgs{} + + if before != nil { + args.Before = *before + } + + if last != nil { + args.Last = uint(*last) + } + + return r.podLogTail(ctx, kubeContext, ns, name, container, args) +} + +// AppsV1DaemonSetsWatch is the resolver for the appsV1DaemonSetsWatch field. +func (r *subscriptionResolver) AppsV1DaemonSetsWatch(ctx context.Context, kubeContext *string, namespace *string, options *metav1.ListOptions) (<-chan *watch.Event, error) { + gvr := schema.GroupVersionResource{Group: "apps", Version: "v1", Resource: "daemonsets"} + return r.watchResourceMulti(ctx, kubeContext, namespace, options, gvr) +} + +// AppsV1DeploymentsWatch is the resolver for the appsV1DeploymentsWatch field. +func (r *subscriptionResolver) AppsV1DeploymentsWatch(ctx context.Context, kubeContext *string, namespace *string, options *metav1.ListOptions) (<-chan *watch.Event, error) { + gvr := schema.GroupVersionResource{Group: "apps", Version: "v1", Resource: "deployments"} + return r.watchResourceMulti(ctx, kubeContext, namespace, options, gvr) +} + +// AppsV1ReplicaSetsWatch is the resolver for the appsV1ReplicaSetsWatch field. +func (r *subscriptionResolver) AppsV1ReplicaSetsWatch(ctx context.Context, kubeContext *string, namespace *string, options *metav1.ListOptions) (<-chan *watch.Event, error) { + gvr := schema.GroupVersionResource{Group: "apps", Version: "v1", Resource: "replicasets"} + return r.watchResourceMulti(ctx, kubeContext, namespace, options, gvr) +} + +// AppsV1StatefulSetsWatch is the resolver for the appsV1StatefulSetsWatch field. +func (r *subscriptionResolver) AppsV1StatefulSetsWatch(ctx context.Context, kubeContext *string, namespace *string, options *metav1.ListOptions) (<-chan *watch.Event, error) { + gvr := schema.GroupVersionResource{Group: "apps", Version: "v1", Resource: "statefulsets"} + return r.watchResourceMulti(ctx, kubeContext, namespace, options, gvr) +} + +// BatchV1CronJobsWatch is the resolver for the batchV1CronJobsWatch field. +func (r *subscriptionResolver) BatchV1CronJobsWatch(ctx context.Context, kubeContext *string, namespace *string, options *metav1.ListOptions) (<-chan *watch.Event, error) { + gvr := schema.GroupVersionResource{Group: "batch", Version: "v1", Resource: "cronjobs"} + return r.watchResourceMulti(ctx, kubeContext, namespace, options, gvr) +} + +// BatchV1JobsWatch is the resolver for the batchV1JobsWatch field. +func (r *subscriptionResolver) BatchV1JobsWatch(ctx context.Context, kubeContext *string, namespace *string, options *metav1.ListOptions) (<-chan *watch.Event, error) { + gvr := schema.GroupVersionResource{Group: "batch", Version: "v1", Resource: "jobs"} + return r.watchResourceMulti(ctx, kubeContext, namespace, options, gvr) +} + +// CoreV1NamespacesWatch is the resolver for the coreV1NamespacesWatch field. +func (r *subscriptionResolver) CoreV1NamespacesWatch(ctx context.Context, kubeContext *string, options *metav1.ListOptions) (<-chan *watch.Event, error) { + // Get client + clientset, err := r.cm.GetOrCreateClientset(kubeContext) + if err != nil { + return nil, err + } + + // Init watch + watchAPI, err := clientset.CoreV1().Namespaces().Watch(ctx, toListOptions(options)) + if err != nil { + return nil, err + } + + // Wrap proxy channel to remove namespaces that aren't allowed + outCh := make(chan *watch.Event) + go func() { + for ev := range watchEventProxyChannel(ctx, watchAPI) { + ns, err := typeassertRuntimeObject[*corev1.Namespace](ev.Object) + if err != nil { + transport.AddSubscriptionError(ctx, gqlerrors.ErrInternalServerError) + break + } + + // filter out non-authorized namespaces + if len(r.allowedNamespaces) == 0 || (len(r.allowedNamespaces) > 0 && slices.Contains(r.allowedNamespaces, ns.Name)) { + outCh <- ev + } + } + close(outCh) + }() + + return outCh, nil +} + +// CoreV1NodesWatch is the resolver for the coreV1NodesWatch field. +func (r *subscriptionResolver) CoreV1NodesWatch(ctx context.Context, kubeContext *string, options *metav1.ListOptions) (<-chan *watch.Event, error) { + // Get client + clientset, err := r.cm.GetOrCreateClientset(kubeContext) + if err != nil { + return nil, err + } + + // Init watch + watchAPI, err := clientset.CoreV1().Nodes().Watch(ctx, toListOptions(options)) + if err != nil { + return nil, err + } + + return watchEventProxyChannel(ctx, watchAPI), nil +} + +// CoreV1PodsWatch is the resolver for the coreV1PodsWatch field. +func (r *subscriptionResolver) CoreV1PodsWatch(ctx context.Context, kubeContext *string, namespace *string, options *metav1.ListOptions) (<-chan *watch.Event, error) { + gvr := schema.GroupVersionResource{Group: "", Version: "v1", Resource: "pods"} + return r.watchResourceMulti(ctx, kubeContext, namespace, options, gvr) +} + +// CoreV1ServicesWatch is the resolver for the coreV1ServicesWatch field. +func (r *subscriptionResolver) CoreV1ServicesWatch(ctx context.Context, kubeContext *string, namespace *string, options *metav1.ListOptions) (<-chan *watch.Event, error) { + gvr := schema.GroupVersionResource{Group: "", Version: "v1", Resource: "services"} + return r.watchResourceMulti(ctx, kubeContext, namespace, options, gvr) +} + +// KubernetesAPIHealthzWatch is the resolver for the kubernetesAPIHealthzWatch field. +func (r *subscriptionResolver) KubernetesAPIHealthzWatch(ctx context.Context, kubeContext *string) (<-chan *model.HealthCheckResponse, error) { + outCh := make(chan *model.HealthCheckResponse) + + go func() { + var lastResponse *model.HealthCheckResponse + ticker := time.NewTicker(3 * time.Second) + + resp := r.kubernetesAPIHealthzGet(ctx, kubeContext) + lastResponse = resp + outCh <- resp + + Loop: + for { + select { + case <-ctx.Done(): + // listener closed connection + break Loop + case <-ticker.C: + resp := r.kubernetesAPIHealthzGet(ctx, kubeContext) + if lastResponse.Status != resp.Status || !ptr.Equal(lastResponse.Message, resp.Message) { + lastResponse = resp + outCh <- resp + } + } + } + + // cleanup + ticker.Stop() + close(outCh) + }() + + return outCh, nil +} + +// KubetailClusterAPIHealthzWatch is the resolver for the kubetailClusterAPIHealthzWatch field. +func (r *subscriptionResolver) KubetailClusterAPIHealthzWatch(ctx context.Context, kubeContext *string, namespace *string, serviceName *string) (<-chan *model.HealthCheckResponse, error) { + monitor, err := r.hmm.GetOrCreateMonitor(ctx, kubeContext, namespace, serviceName) + if err != nil { + return nil, err + } + + statusCh, err := monitor.WatchHealthStatus(ctx) + if err != nil { + return nil, err + } + + outCh := make(chan *model.HealthCheckResponse) + + // Run in go routine + go func() { + defer close(outCh) + + for status := range statusCh { + resp := &model.HealthCheckResponse{ + Status: healthCheckStatusFromClusterAPIHealthStatus(status), + Timestamp: time.Now().UTC(), + } + outCh <- resp + } + }() + + return outCh, nil +} + +// KubeConfigWatch is the resolver for the kubeConfigWatch field. +func (r *subscriptionResolver) KubeConfigWatch(ctx context.Context) (<-chan *model.KubeConfigWatchEvent, error) { + cm, ok := r.cm.(*k8shelpers.DesktopConnectionManager) + if !ok { + return nil, fmt.Errorf("DesktopConnectionManager not found") + } + + // Init output channel + outCh := make(chan *model.KubeConfigWatchEvent) + + // Define handlers + addedHandler := func(config *api.Config) { + if ctx.Err() == nil { + // Send ADDED event + outCh <- &model.KubeConfigWatchEvent{ + Type: watch.Added, + Object: &model.KubeConfig{Config: config}, + } + } + } + + modifiedHandler := func(oldConfig *api.Config, newConfig *api.Config) { + if ctx.Err() == nil { + // Send MODIFIED event + outCh <- &model.KubeConfigWatchEvent{ + Type: watch.Modified, + Object: &model.KubeConfig{Config: newConfig}, + } + } + } + + deletedHandler := func(lastConfig *api.Config) { + if ctx.Err() == nil { + // Send DELETED event + outCh <- &model.KubeConfigWatchEvent{ + Type: watch.Deleted, + } + } + } + + go func() { + // Close channel and unregister handlers on client close + defer cm.KubeConfigWatcher.Unsubscribe("ADDED", addedHandler) + defer cm.KubeConfigWatcher.Unsubscribe("MODIFIED", modifiedHandler) + defer cm.KubeConfigWatcher.Unsubscribe("DELETED", deletedHandler) + defer close(outCh) + + // Send initial config + outCh <- &model.KubeConfigWatchEvent{ + Type: watch.Added, + Object: &model.KubeConfig{Config: cm.GetKubeConfig()}, + } + + // Register handlers + cm.KubeConfigWatcher.Subscribe("ADDED", addedHandler) + cm.KubeConfigWatcher.Subscribe("MODIFIED", modifiedHandler) + cm.KubeConfigWatcher.Subscribe("DELETED", deletedHandler) + + // Wait for client close + <-ctx.Done() + }() + + return outCh, nil +} + +// PodLogFollow is the resolver for the podLogFollow field. +func (r *subscriptionResolver) PodLogFollow(ctx context.Context, kubeContext *string, namespace *string, name string, container *string, after *string, since *string) (<-chan *model.LogRecord, error) { + // Deref namespace + ns, err := sharedk8shelpers.DerefNamespace(r.allowedNamespaces, namespace, r.cm.GetDefaultNamespace(kubeContext)) + if err != nil { + return nil, err + } + + // build follow args + args := FollowArgs{} + + if after != nil { + args.After = *after + } + + if since != nil { + args.Since = *since + } + + // init follow + inCh, err := r.podLogFollow(ctx, kubeContext, ns, name, container, args) + if err != nil { + return nil, err + } + + // init output channel + outCh := make(chan *model.LogRecord) + + // forward data from input to output channel + go func() { + Loop: + for record := range inCh { + select { + case outCh <- record: + // wrote to output channel + case <-ctx.Done(): + // listener closed connection + break Loop + } + } + close(outCh) + }() + + return outCh, nil +} + +// AppsV1DaemonSetsWatchEvent returns AppsV1DaemonSetsWatchEventResolver implementation. +func (r *Resolver) AppsV1DaemonSetsWatchEvent() AppsV1DaemonSetsWatchEventResolver { + return &appsV1DaemonSetsWatchEventResolver{r} +} + +// AppsV1DeploymentsWatchEvent returns AppsV1DeploymentsWatchEventResolver implementation. +func (r *Resolver) AppsV1DeploymentsWatchEvent() AppsV1DeploymentsWatchEventResolver { + return &appsV1DeploymentsWatchEventResolver{r} +} + +// AppsV1ReplicaSetsWatchEvent returns AppsV1ReplicaSetsWatchEventResolver implementation. +func (r *Resolver) AppsV1ReplicaSetsWatchEvent() AppsV1ReplicaSetsWatchEventResolver { + return &appsV1ReplicaSetsWatchEventResolver{r} +} + +// AppsV1StatefulSetsWatchEvent returns AppsV1StatefulSetsWatchEventResolver implementation. +func (r *Resolver) AppsV1StatefulSetsWatchEvent() AppsV1StatefulSetsWatchEventResolver { + return &appsV1StatefulSetsWatchEventResolver{r} +} + +// BatchV1CronJobsWatchEvent returns BatchV1CronJobsWatchEventResolver implementation. +func (r *Resolver) BatchV1CronJobsWatchEvent() BatchV1CronJobsWatchEventResolver { + return &batchV1CronJobsWatchEventResolver{r} +} + +// BatchV1JobsWatchEvent returns BatchV1JobsWatchEventResolver implementation. +func (r *Resolver) BatchV1JobsWatchEvent() BatchV1JobsWatchEventResolver { + return &batchV1JobsWatchEventResolver{r} +} + +// CoreV1NamespacesWatchEvent returns CoreV1NamespacesWatchEventResolver implementation. +func (r *Resolver) CoreV1NamespacesWatchEvent() CoreV1NamespacesWatchEventResolver { + return &coreV1NamespacesWatchEventResolver{r} +} + +// CoreV1NodesWatchEvent returns CoreV1NodesWatchEventResolver implementation. +func (r *Resolver) CoreV1NodesWatchEvent() CoreV1NodesWatchEventResolver { + return &coreV1NodesWatchEventResolver{r} +} + +// CoreV1PodsWatchEvent returns CoreV1PodsWatchEventResolver implementation. +func (r *Resolver) CoreV1PodsWatchEvent() CoreV1PodsWatchEventResolver { + return &coreV1PodsWatchEventResolver{r} +} + +// CoreV1ServicesWatchEvent returns CoreV1ServicesWatchEventResolver implementation. +func (r *Resolver) CoreV1ServicesWatchEvent() CoreV1ServicesWatchEventResolver { + return &coreV1ServicesWatchEventResolver{r} +} + +// KubeConfig returns KubeConfigResolver implementation. +func (r *Resolver) KubeConfig() KubeConfigResolver { return &kubeConfigResolver{r} } + +// Mutation returns MutationResolver implementation. +func (r *Resolver) Mutation() MutationResolver { return &mutationResolver{r} } + +// Query returns QueryResolver implementation. +func (r *Resolver) Query() QueryResolver { return &queryResolver{r} } + +// Subscription returns SubscriptionResolver implementation. +func (r *Resolver) Subscription() SubscriptionResolver { return &subscriptionResolver{r} } + +type appsV1DaemonSetsWatchEventResolver struct{ *Resolver } +type appsV1DeploymentsWatchEventResolver struct{ *Resolver } +type appsV1ReplicaSetsWatchEventResolver struct{ *Resolver } +type appsV1StatefulSetsWatchEventResolver struct{ *Resolver } +type batchV1CronJobsWatchEventResolver struct{ *Resolver } +type batchV1JobsWatchEventResolver struct{ *Resolver } +type coreV1NamespacesWatchEventResolver struct{ *Resolver } +type coreV1NodesWatchEventResolver struct{ *Resolver } +type coreV1PodsWatchEventResolver struct{ *Resolver } +type coreV1ServicesWatchEventResolver struct{ *Resolver } +type kubeConfigResolver struct{ *Resolver } +type mutationResolver struct{ *Resolver } +type queryResolver struct{ *Resolver } +type subscriptionResolver struct{ *Resolver } diff --git a/modules/dashboard/graph/schema.resolvers_test.go b/modules/dashboard/graph/schema.resolvers_test.go new file mode 100644 index 00000000..f0c2c27b --- /dev/null +++ b/modules/dashboard/graph/schema.resolvers_test.go @@ -0,0 +1,136 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package graph + +import ( + "context" + "testing" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/mock" + "k8s.io/utils/ptr" + + "github.com/kubetail-org/kubetail/modules/shared/graphql/errors" + + k8shelpersmock "github.com/kubetail-org/kubetail/modules/dashboard/internal/k8shelpers/mock" +) + +func TestAllowedNamespacesGetQueries(t *testing.T) { + // Init connection manager + cm := &k8shelpersmock.MockConnectionManager{} + cm.On("GetDefaultNamespace", mock.Anything).Return("default") + + // Init resolver + r := &queryResolver{&Resolver{ + allowedNamespaces: []string{"ns1", "ns2"}, + cm: cm, + }} + + // Table-driven tests + tests := []struct { + name string + setNamespace *string + }{ + {"namespace not specified", nil}, + {"namespace specified but not allowed", ptr.To[string]("nsforbidden")}, + {"namespace specified as wildcard", ptr.To[string]("")}, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + _, err := r.AppsV1DaemonSetsGet(context.Background(), nil, tt.setNamespace, "", nil) + assert.NotNil(t, err) + assert.Equal(t, err, errors.ErrForbidden) + + _, err = r.AppsV1DeploymentsGet(context.Background(), nil, tt.setNamespace, "", nil) + assert.NotNil(t, err) + assert.Equal(t, err, errors.ErrForbidden) + + _, err = r.AppsV1ReplicaSetsGet(context.Background(), nil, tt.setNamespace, "", nil) + assert.NotNil(t, err) + assert.Equal(t, err, errors.ErrForbidden) + + _, err = r.AppsV1StatefulSetsGet(context.Background(), nil, tt.setNamespace, "", nil) + assert.NotNil(t, err) + assert.Equal(t, err, errors.ErrForbidden) + + _, err = r.BatchV1CronJobsGet(context.Background(), nil, tt.setNamespace, "", nil) + assert.NotNil(t, err) + assert.Equal(t, err, errors.ErrForbidden) + + _, err = r.BatchV1JobsGet(context.Background(), nil, tt.setNamespace, "", nil) + assert.NotNil(t, err) + assert.Equal(t, err, errors.ErrForbidden) + + _, err = r.CoreV1PodsGet(context.Background(), nil, tt.setNamespace, "", nil) + assert.NotNil(t, err) + assert.Equal(t, err, errors.ErrForbidden) + }) + } +} + +func TestAllowedNamespacesListQueries(t *testing.T) { + // Init connection manager + cm := &k8shelpersmock.MockConnectionManager{} + cm.On("GetDefaultNamespace", mock.Anything).Return("default") + + // Init resolver + r := &queryResolver{&Resolver{ + allowedNamespaces: []string{"ns1", "ns2"}, + cm: cm, + }} + + // Table-driven tests + tests := []struct { + name string + setNamespace *string + }{ + {"namespace not specified", nil}, + {"namespace specified but not allowed", ptr.To[string]("nsforbidden")}, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + + _, err := r.AppsV1DaemonSetsList(context.Background(), nil, tt.setNamespace, nil) + assert.NotNil(t, err) + assert.Equal(t, err, errors.ErrForbidden) + + _, err = r.AppsV1DeploymentsList(context.Background(), nil, tt.setNamespace, nil) + assert.NotNil(t, err) + assert.Equal(t, err, errors.ErrForbidden) + + _, err = r.AppsV1ReplicaSetsList(context.Background(), nil, tt.setNamespace, nil) + assert.NotNil(t, err) + assert.Equal(t, err, errors.ErrForbidden) + + _, err = r.AppsV1StatefulSetsList(context.Background(), nil, tt.setNamespace, nil) + assert.NotNil(t, err) + assert.Equal(t, err, errors.ErrForbidden) + + _, err = r.BatchV1CronJobsList(context.Background(), nil, tt.setNamespace, nil) + assert.NotNil(t, err) + assert.Equal(t, err, errors.ErrForbidden) + + _, err = r.BatchV1JobsList(context.Background(), nil, tt.setNamespace, nil) + assert.NotNil(t, err) + assert.Equal(t, err, errors.ErrForbidden) + + _, err = r.CoreV1PodsList(context.Background(), nil, tt.setNamespace, nil) + assert.NotNil(t, err) + assert.Equal(t, err, errors.ErrForbidden) + }) + } +} diff --git a/modules/dashboard/graph/server.go b/modules/dashboard/graph/server.go new file mode 100644 index 00000000..3d7163e3 --- /dev/null +++ b/modules/dashboard/graph/server.go @@ -0,0 +1,159 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package graph + +import ( + "context" + "errors" + "net/http" + "net/http/httptest" + "time" + + "github.com/99designs/gqlgen/graphql/handler" + "github.com/99designs/gqlgen/graphql/handler/extension" + "github.com/99designs/gqlgen/graphql/handler/lru" + "github.com/99designs/gqlgen/graphql/handler/transport" + "github.com/gorilla/websocket" + "github.com/vektah/gqlparser/v2/ast" + + "github.com/kubetail-org/kubetail/modules/shared/config" + + clusterapi "github.com/kubetail-org/kubetail/modules/dashboard/internal/cluster-api" + "github.com/kubetail-org/kubetail/modules/dashboard/internal/k8shelpers" +) + +type ctxKey int + +const cookiesCtxKey ctxKey = iota + +// Represents Server +type Server struct { + r *Resolver + h http.Handler + hmm *clusterapi.HealthMonitorManager + shutdownCh chan struct{} +} + +// Create new Server instance +func NewServer(cm k8shelpers.ConnectionManager, environment config.Environment, allowedNamespaces []string, csrfProtectMiddleware func(http.Handler) http.Handler) *Server { + // Init health monitor manager + hmm := clusterapi.NewHealthMonitorManager(cm) + + // Init resolver + r := &Resolver{cm, hmm, environment, allowedNamespaces} + + // Setup csrf query method + var csrfProtect http.Handler + if csrfProtectMiddleware != nil { + csrfProtect = csrfProtectMiddleware(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {})) + } + + // Init config + cfg := Config{Resolvers: r} + cfg.Directives.Validate = ValidateDirective + cfg.Directives.NullIfValidationFailed = NullIfValidationFailedDirective + + // Init schema + schema := NewExecutableSchema(cfg) + + // Init handler + h := handler.New(schema) + + // Add transports from NewDefaultServer() + h.AddTransport(transport.GET{}) + h.AddTransport(transport.POST{}) + + h.SetQueryCache(lru.New[*ast.QueryDocument](1000)) + + // Configure WebSocket (without CORS) + shutdownCh := make(chan struct{}) + + h.AddTransport(&transport.Websocket{ + Upgrader: websocket.Upgrader{ + CheckOrigin: func(r *http.Request) bool { + // We have to return true here because `kubectl proxy` modifies the Host header + // so requests will fail same-origin tests and unfortunately not all browsers + // have implemented `sec-fetch-site` header. Instead, we will use CSRF token + // validation to ensure requests are coming from the same site. + return true + }, + ReadBufferSize: 1024, + WriteBufferSize: 1024, + }, + KeepAlivePingInterval: 10 * time.Second, + // Because we had to disable same-origin checks in the CheckOrigin() handler + // we will use use CSRF token validation to ensure requests are coming from + // the same site. (See https://dev.to/pssingh21/websockets-bypassing-sop-cors-5ajm) + InitFunc: func(ctx context.Context, initPayload transport.InitPayload) (context.Context, *transport.InitPayload, error) { + // Check if csrf protection is disabled + if csrfProtectMiddleware == nil { + return ctx, &initPayload, nil + } + + csrfToken := initPayload.Authorization() + + cookies, ok := ctx.Value(cookiesCtxKey).([]*http.Cookie) + if !ok { + return ctx, nil, errors.New("AUTHORIZATION_REQUIRED") + } + + // Make mock request + r, _ := http.NewRequest("POST", "/", nil) + for _, cookie := range cookies { + r.AddCookie(cookie) + } + r.Header.Set("X-CSRF-Token", csrfToken) + + // Run request through csrf protect function + rr := httptest.NewRecorder() + csrfProtect.ServeHTTP(rr, r) + + if rr.Code != 200 { + return ctx, nil, errors.New("AUTHORIZATION_REQUIRED") + } + + // Close websockets on shutdown signal + ctx, cancel := context.WithCancel(ctx) + go func() { + defer cancel() + <-shutdownCh + }() + + return ctx, &initPayload, nil + }, + }) + + h.Use(extension.Introspection{}) + h.Use(extension.AutomaticPersistedQuery{ + Cache: lru.New[string](100), + }) + + return &Server{r, h, hmm, shutdownCh} +} + +// Shutdown +func (s *Server) Shutdown() { + close(s.shutdownCh) + s.hmm.Shutdown() +} + +// ServeHTTP +func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) { + // Add cookies to context for use in WSInitFunc + ctx := context.WithValue(r.Context(), cookiesCtxKey, r.Cookies()) + + // Execute + s.h.ServeHTTP(w, r.WithContext(ctx)) +} diff --git a/modules/dashboard/graph/server_test.go b/modules/dashboard/graph/server_test.go new file mode 100644 index 00000000..404eb457 --- /dev/null +++ b/modules/dashboard/graph/server_test.go @@ -0,0 +1,87 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package graph + +import ( + "net/http" + "strings" + "testing" + + "github.com/gorilla/websocket" + "github.com/stretchr/testify/assert" + + "github.com/kubetail-org/kubetail/modules/shared/config" + "github.com/kubetail-org/kubetail/modules/shared/testutils" +) + +func TestServer(t *testing.T) { + t.Run("cross-origin websocket requests are allowed when csrf protection is disabled", func(t *testing.T) { + graphqlServer := NewServer(nil, config.EnvironmentCluster, []string{}, nil) + + client := testutils.NewWebTestClient(t, graphqlServer) + defer client.Teardown() + + // init websocket connection + u := "ws" + strings.TrimPrefix(client.Server.URL, "http") + "/graphql" + h := http.Header{} + conn, resp, err := websocket.DefaultDialer.Dial(u, h) + + // check that response was ok + assert.Nil(t, err) + assert.NotNil(t, conn) + assert.Equal(t, 101, resp.StatusCode) + defer conn.Close() + + // write + conn.WriteJSON(map[string]string{"type": "connection_init"}) + + // read + _, msg, err := conn.ReadMessage() + assert.Nil(t, err) + assert.Contains(t, string(msg), "connection_ack") + }) + + t.Run("websocket requests require csrf validation when csrf protection is enabled", func(t *testing.T) { + csrfProtect := func(h http.Handler) http.Handler { + return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + http.Error(w, "nope", http.StatusUnauthorized) + }) + } + + graphqlServer := NewServer(nil, config.EnvironmentCluster, []string{}, csrfProtect) + + client := testutils.NewWebTestClient(t, graphqlServer) + defer client.Teardown() + + // init websocket connection + u := "ws" + strings.TrimPrefix(client.Server.URL, "http") + "/graphql" + h := http.Header{} + conn, resp, err := websocket.DefaultDialer.Dial(u, h) + + // check that response was ok + assert.Nil(t, err) + assert.NotNil(t, conn) + assert.Equal(t, 101, resp.StatusCode) + defer conn.Close() + + // write + conn.WriteJSON(map[string]string{"type": "connection_init"}) + + // read + _, msg, err := conn.ReadMessage() + assert.Nil(t, err) + assert.Contains(t, string(msg), "connection_error") + }) +} diff --git a/modules/dashboard/hack/config.yaml b/modules/dashboard/hack/config.yaml new file mode 100644 index 00000000..3731ed44 --- /dev/null +++ b/modules/dashboard/hack/config.yaml @@ -0,0 +1,11 @@ +allowed-namespaces: [] +dashboard: + addr: :4000 + base-path: / + gin-mode: debug + csrf: + secret: replaceme + logging: + format: pretty + session: + secret: replaceme diff --git a/modules/dashboard/internal/cluster-api/health-monitor-manager.go b/modules/dashboard/internal/cluster-api/health-monitor-manager.go new file mode 100644 index 00000000..1e2b2d6b --- /dev/null +++ b/modules/dashboard/internal/cluster-api/health-monitor-manager.go @@ -0,0 +1,92 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package clusterapi + +import ( + "context" + "fmt" + "sync" + + "github.com/kubetail-org/kubetail/modules/dashboard/internal/k8shelpers" + "k8s.io/utils/ptr" +) + +// Represents HealthMonitorManager +type HealthMonitorManager struct { + cm k8shelpers.ConnectionManager + monitorCache map[string]*HealthMonitor + mu sync.Mutex +} + +// Create new HealthMonitorManager instance +func NewHealthMonitorManager(cm k8shelpers.ConnectionManager) *HealthMonitorManager { + return &HealthMonitorManager{ + cm: cm, + monitorCache: make(map[string]*HealthMonitor), + } +} + +// Shutdown all managed monitors +func (hmm *HealthMonitorManager) Shutdown() { + var wg sync.WaitGroup + for _, monitor := range hmm.monitorCache { + wg.Add(1) + go func() { + defer wg.Done() + monitor.Shutdown() + }() + } + wg.Wait() +} + +// GetOrCreateMonitor +func (hmm *HealthMonitorManager) GetOrCreateMonitor(ctx context.Context, kubeContextPtr *string, namespacePtr *string, serviceNamePtr *string) (*HealthMonitor, error) { + hmm.mu.Lock() + defer hmm.mu.Unlock() + + kubeContext := hmm.cm.DerefKubeContext(kubeContextPtr) + namespace := ptr.Deref(namespacePtr, DefaultNamespace) + serviceName := ptr.Deref(serviceNamePtr, DefaultServiceName) + + // Constuct cache key + k := fmt.Sprintf("%s::%s::%s", kubeContext, namespace, serviceName) + + // Check cache + monitor, exists := hmm.monitorCache[k] + if !exists { + // Get clientset + clientset, err := hmm.cm.GetOrCreateClientset(ptr.To(kubeContext)) + if err != nil { + return nil, err + } + + // Initialize health monitor + monitor, err = NewHealthMonitor(ctx, clientset, namespace, serviceName) + if err != nil { + return nil, err + } + + // Add to cache + hmm.monitorCache[k] = monitor + + // Start background processes and wait for cache to sync + err = monitor.Start(ctx) + if err != nil { + return nil, err + } + } + + return monitor, nil +} diff --git a/modules/dashboard/internal/cluster-api/health-monitor.go b/modules/dashboard/internal/cluster-api/health-monitor.go new file mode 100644 index 00000000..22d5f8df --- /dev/null +++ b/modules/dashboard/internal/cluster-api/health-monitor.go @@ -0,0 +1,221 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package clusterapi + +import ( + "context" + "fmt" + "sync" + "time" + + evbus "github.com/asaskevich/EventBus" + zlog "github.com/rs/zerolog/log" + discoveryv1 "k8s.io/api/discovery/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/labels" + "k8s.io/client-go/informers" + "k8s.io/client-go/kubernetes" + "k8s.io/client-go/tools/cache" + "k8s.io/utils/ptr" +) + +// Represents HealthStatus enum +type HealthStatus string + +const ( + HealthStatusSuccess = "SUCCESS" + HealthStatusFailure = "FAILURE" + HealthStatusNotFound = "NOTFOUND" + HealthStatusUknown = "UNKNOWN" +) + +// Represents HealthMonitor +type HealthMonitor struct { + lastStatus HealthStatus + factory informers.SharedInformerFactory + informer cache.SharedIndexInformer + eventbus evbus.Bus + shutdownCh chan struct{} + mu sync.RWMutex +} + +// Create new HealthMonitor instance +func NewHealthMonitor(ctx context.Context, clientset kubernetes.Interface, namespace string, serviceName string) (*HealthMonitor, error) { + // Init factory + labelSelector := labels.Set{ + discoveryv1.LabelServiceName: serviceName, + }.String() + + factory := informers.NewFilteredSharedInformerFactory(clientset, 10*time.Minute, namespace, func(options *metav1.ListOptions) { + options.LabelSelector = labelSelector + }) + + // Init informer + informer := factory.Discovery().V1().EndpointSlices().Informer() + + // Initialize instance + hm := &HealthMonitor{ + lastStatus: HealthStatusUknown, + factory: factory, + informer: informer, + eventbus: evbus.New(), + shutdownCh: make(chan struct{}), + } + + // Register event handlers + _, err := informer.AddEventHandler(cache.ResourceEventHandlerFuncs{ + AddFunc: func(obj interface{}) { hm.onInformerEvent() }, + UpdateFunc: func(oldObj, newObj interface{}) { hm.onInformerEvent() }, + DeleteFunc: func(obj interface{}) { hm.onInformerEvent() }, + }) + if err != nil { + return nil, err + } + + return hm, nil +} + +// Start +func (hm *HealthMonitor) Start(ctx context.Context) error { + // Start background processes + hm.factory.Start(hm.shutdownCh) + + // Wait for cache to sync + if !cache.WaitForCacheSync(ctx.Done(), hm.informer.HasSynced) { + return fmt.Errorf("failed to sync") + } + + // Exit if context canceled + if ctx.Err() != nil { + return ctx.Err() + } + + // Initialize status + hm.onInformerEvent() + + return nil +} + +// Shutdown +func (hm *HealthMonitor) Shutdown() { + close(hm.shutdownCh) + hm.factory.Shutdown() +} + +// GetHealthStatus +func (hm *HealthMonitor) GetHealthStatus() HealthStatus { + hm.mu.RLock() + defer hm.mu.RUnlock() + return hm.lastStatus +} + +// WatchHealthStatus +func (hm *HealthMonitor) WatchHealthStatus(ctx context.Context) (<-chan HealthStatus, error) { + outCh := make(chan HealthStatus) + + var mu sync.Mutex + var lastStatus *HealthStatus + + sendStatus := func(newStatus HealthStatus) { + mu.Lock() + defer mu.Unlock() + if ctx.Err() == nil && (lastStatus == nil || *lastStatus != newStatus) { + lastStatus = &newStatus + outCh <- newStatus + } + } + + // Subscribe to updates + err := hm.eventbus.SubscribeAsync("UPDATE", sendStatus, true) + if err != nil { + return nil, err + } + + go func() { + // send initial state + sendStatus(hm.GetHealthStatus()) + + // Wait for client to close + <-ctx.Done() + + // Unsubscribe and close output channel + err := hm.eventbus.Unsubscribe("UPDATE", sendStatus) + if err != nil { + zlog.Error().Err(err).Caller().Send() + } + + close(outCh) + }() + + return outCh, nil +} + +// ReadyWait +func (hm *HealthMonitor) ReadyWait(ctx context.Context) error { + if hm.GetHealthStatus() == HealthStatusSuccess { + return nil + } + + // Otherwise, watch for updates until success or context canceled + ch, err := hm.WatchHealthStatus(ctx) + if err != nil { + return err + } + + for { + select { + case <-ctx.Done(): + return ctx.Err() + case status := <-ch: + if status == HealthStatusSuccess { + return nil + } + } + } +} + +// onInformerEvent +func (hm *HealthMonitor) onInformerEvent() { + list := hm.informer.GetStore().List() + + // Return NotFound if no endpoint slices exist + if len(list) == 0 { + hm.updateHealthStatus(HealthStatusNotFound) + return + } + + // Return Healthy if at least one EndpointSlice is in Ready state + for _, obj := range list { + es := obj.(*discoveryv1.EndpointSlice) + for _, endpoint := range es.Endpoints { + if ptr.Deref(endpoint.Conditions.Ready, false) { + hm.updateHealthStatus(HealthStatusSuccess) + return + } + } + } + + hm.updateHealthStatus(HealthStatusFailure) +} + +// updateHealthStatus +func (hm *HealthMonitor) updateHealthStatus(newStatus HealthStatus) { + hm.mu.Lock() + defer hm.mu.Unlock() + if newStatus != hm.lastStatus { + hm.lastStatus = newStatus + hm.eventbus.Publish("UPDATE", newStatus) + } +} diff --git a/dashboard-ui/src/lib/utils.ts b/modules/dashboard/internal/cluster-api/helpers.go similarity index 73% rename from dashboard-ui/src/lib/utils.ts rename to modules/dashboard/internal/cluster-api/helpers.go index 18164c56..20618c57 100644 --- a/dashboard-ui/src/lib/utils.ts +++ b/modules/dashboard/internal/cluster-api/helpers.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -12,9 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -import { type ClassValue, clsx } from 'clsx'; -import { twMerge } from 'tailwind-merge'; +package clusterapi -export function cn(...inputs: ClassValue[]) { - return twMerge(clsx(inputs)); -} +const DefaultNamespace = "kubetail-system" +const DefaultServiceName = "kubetail-cluster-api" diff --git a/modules/dashboard/internal/cluster-api/proxy.go b/modules/dashboard/internal/cluster-api/proxy.go new file mode 100644 index 00000000..968796c3 --- /dev/null +++ b/modules/dashboard/internal/cluster-api/proxy.go @@ -0,0 +1,252 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package clusterapi + +import ( + "context" + "fmt" + "net/http" + "net/http/httptest" + "net/http/httputil" + "net/url" + "os" + "path" + "regexp" + "strings" + "sync" + + "github.com/kubetail-org/kubetail/modules/dashboard/internal/k8shelpers" + "k8s.io/kubectl/pkg/proxy" + "k8s.io/utils/ptr" +) + +// For parsing paths of the form /:kubeContext/:namespace/:serviceName/*relPath +var desktopProxyPathRegex = regexp.MustCompile(`^/([^/]+)/([^/]+)/([^/]+)/(.*)$`) + +// For parsing cookie paths +var cookiepathRegex = regexp.MustCompile(`Path=[^;]*`) + +// Proxy interface +type Proxy interface { + ServeHTTP(w http.ResponseWriter, r *http.Request) + Shutdown() +} + +// Represents DesktopProxy +type DesktopProxy struct { + cm k8shelpers.ConnectionManager + pathPrefix string + phCache map[string]http.Handler + satCache map[string]*k8shelpers.ServiceAccountToken + mu sync.Mutex + shutdownCh chan struct{} +} + +// ServeHTTP +func (p *DesktopProxy) ServeHTTP(w http.ResponseWriter, r *http.Request) { + origPath := r.URL.Path + + // Trim prefix + proxyPath := strings.TrimPrefix(origPath, p.pathPrefix) + + // Parse url + matches := desktopProxyPathRegex.FindStringSubmatch(proxyPath) + if matches == nil { + http.Error(w, fmt.Sprintf("did not understand url: %s", origPath), http.StatusInternalServerError) + return + } + kubeContext, namespace, serviceName, relPath := matches[1], matches[2], matches[3], matches[4] + + // Get Kubernetes proxy handler + h, err := p.getOrCreateKubernetesProxyHandler(kubeContext) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + + // Re-write url + newPath := path.Join("/api/v1/namespaces", namespace, "services", fmt.Sprintf("%s:http", serviceName), "proxy", relPath) + if strings.HasSuffix(newPath, "/proxy") { + newPath += "/" + } + u := *r.URL + u.Path = newPath + r.URL = &u + + // Get service-account-token + sat, err := p.getOrCreateServiceAccountToken(r.Context(), kubeContext, namespace) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + + // Add token to authentication header + token, err := sat.Token(r.Context()) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + r.Header.Add("X-Forwarded-Authorization", fmt.Sprintf("Bearer %s", token)) + + // Passthrough if upgrade request + if r.Header.Get("Upgrade") != "" { + h.ServeHTTP(w, r) + return + } + + // Execute + rec := httptest.NewRecorder() + h.ServeHTTP(rec, r) + + // Re-write cookie path + cookiePath := strings.TrimSuffix(origPath, relPath) + for k, v := range rec.Header() { + if k == "Set-Cookie" { + for _, cookie := range v { + modifiedCookie := cookiepathRegex.ReplaceAllString(cookie, fmt.Sprintf("Path=%s", cookiePath)) + w.Header().Add("Set-Cookie", modifiedCookie) + } + } else { + w.Header()[k] = v + } + } + + // Send result to client + w.WriteHeader(rec.Code) + w.Write(rec.Body.Bytes()) +} + +// Shutdown +func (p *DesktopProxy) Shutdown() { + close(p.shutdownCh) +} + +// Get or create Kubernetes proxy handler +func (p *DesktopProxy) getOrCreateKubernetesProxyHandler(kubeContext string) (http.Handler, error) { + p.mu.Lock() + defer p.mu.Unlock() + + // Check cache + h, exists := p.phCache[kubeContext] + if !exists { + // Get rest config + restConfig, err := p.cm.GetOrCreateRestConfig(ptr.To(kubeContext)) + if err != nil { + return nil, err + } + + // Create proxy handler + h, err = proxy.NewProxyHandler("/", nil, restConfig, 0, false) + if err != nil { + return nil, err + } + + // Add to cache + p.phCache[kubeContext] = h + } + + return h, nil +} + +// Get or create service-account-token +func (p *DesktopProxy) getOrCreateServiceAccountToken(ctx context.Context, kubeContext string, namespace string) (*k8shelpers.ServiceAccountToken, error) { + p.mu.Lock() + defer p.mu.Unlock() + + // Generate cache key + k := fmt.Sprintf("%s/%s", kubeContext, namespace) + + // Check cache + sat, exists := p.satCache[k] + if !exists { + clientset, err := p.cm.GetOrCreateClientset(ptr.To(kubeContext)) + if err != nil { + return nil, err + } + + // Initialize new service-account-token + sat, err = k8shelpers.NewServiceAccountToken(ctx, clientset, namespace, "kubetail-cli", p.shutdownCh) + if err != nil { + return nil, err + } + + // Add to cache + p.satCache[k] = sat + } + + return sat, nil +} + +// Create new DesktopProxy +func NewDesktopProxy(cm k8shelpers.ConnectionManager, pathPrefix string) (*DesktopProxy, error) { + return &DesktopProxy{ + cm: cm, + pathPrefix: pathPrefix, + phCache: make(map[string]http.Handler), + satCache: make(map[string]*k8shelpers.ServiceAccountToken), + shutdownCh: make(chan struct{}), + }, nil +} + +// Represents InClusterProxy +type InClusterProxy struct { + *httputil.ReverseProxy +} + +// Shutdown +func (p *InClusterProxy) Shutdown() { +} + +// Create new InClusterProxy +func NewInClusterProxy(clusterAPIEndpoint string, pathPrefix string) (*InClusterProxy, error) { + // Parse endpoint url + endpointUrl, err := url.Parse(clusterAPIEndpoint) + if err != nil { + return nil, err + } + + // Get token + tokenPath := "/var/run/secrets/kubernetes.io/serviceaccount/token" + token, err := os.ReadFile(tokenPath) + if err != nil { + return nil, err + } + + // Init reverseProxy + reverseProxy := &httputil.ReverseProxy{ + Director: func(r *http.Request) { + // Re-write url + targetUrl := endpointUrl + targetUrl.Path = path.Join("/", strings.TrimPrefix(r.URL.Path, pathPrefix)) + r.URL = targetUrl + + // Add token to authentication header + r.Header.Add("Authorization", fmt.Sprintf("Bearer %s", token)) + }, + ModifyResponse: func(resp *http.Response) error { + // Re-write cookie path + pathArg := fmt.Sprintf("Path=%s", path.Join("/", pathPrefix)+"/") + cookies := resp.Header["Set-Cookie"] + for i, cookie := range cookies { + cookies[i] = cookiepathRegex.ReplaceAllString(cookie, pathArg) + } + resp.Header["Set-Cookie"] = cookies + + return nil + }, + } + + return &InClusterProxy{reverseProxy}, nil +} diff --git a/modules/server/internal/formerrors/formerrors.go b/modules/dashboard/internal/formerrors/formerrors.go similarity index 97% rename from modules/server/internal/formerrors/formerrors.go rename to modules/dashboard/internal/formerrors/formerrors.go index c558f024..8be895ad 100644 --- a/modules/server/internal/formerrors/formerrors.go +++ b/modules/dashboard/internal/formerrors/formerrors.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/modules/dashboard/internal/k8shelpers/connection-manager.go b/modules/dashboard/internal/k8shelpers/connection-manager.go new file mode 100644 index 00000000..94752050 --- /dev/null +++ b/modules/dashboard/internal/k8shelpers/connection-manager.go @@ -0,0 +1,447 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package k8shelpers + +import ( + "context" + "net/http" + "sync" + "time" + + zlog "github.com/rs/zerolog/log" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/dynamic" + "k8s.io/client-go/kubernetes" + "k8s.io/client-go/rest" + "k8s.io/client-go/tools/clientcmd" + "k8s.io/client-go/tools/clientcmd/api" + "k8s.io/utils/ptr" + + "github.com/kubetail-org/kubetail/modules/shared/config" + "github.com/kubetail-org/kubetail/modules/shared/k8shelpers" +) + +// ConnectionManager interface +type ConnectionManager interface { + GetOrCreateRestConfig(kubeContext *string) (*rest.Config, error) + GetOrCreateClientset(kubeContext *string) (kubernetes.Interface, error) + GetOrCreateDynamicClient(kubeContext *string) (dynamic.Interface, error) + GetDefaultNamespace(kubeContext *string) string + DerefKubeContext(kubeContext *string) string + WaitUntilReady(ctx context.Context, kubeContext *string) error + Teardown() +} + +// Represents DesktopConnectionManager +type DesktopConnectionManager struct { + KubeConfigWatcher *KubeConfigWatcher + kubeConfig *api.Config + rcCache map[string]*rest.Config + csCache map[string]*kubernetes.Clientset + dcCache map[string]*dynamic.DynamicClient + rootCtx context.Context + rootCtxCancel context.CancelFunc + readyChs map[string]chan struct{} + mu sync.Mutex + shutdownCh chan struct{} +} + +// Initialize new DesktopConnectionManager instance +func NewDesktopConnectionManager() (*DesktopConnectionManager, error) { + cm := &DesktopConnectionManager{ + rcCache: make(map[string]*rest.Config), + csCache: make(map[string]*kubernetes.Clientset), + dcCache: make(map[string]*dynamic.DynamicClient), + readyChs: make(map[string]chan struct{}), + rootCtx: context.Background(), + shutdownCh: make(chan struct{}), + } + + // Init root context + cm.rootCtx, cm.rootCtxCancel = context.WithCancel(context.Background()) + + // Init KubeConfigWatcher + kfw, err := NewKubeConfigWatcher() + if err != nil { + return nil, err + } + cm.KubeConfigWatcher = kfw + + // Cache kube config + cm.kubeConfig = kfw.Get() + + // Warm up cache in background + go cm.warmUpCache() + + // Register kube config watch handlers + kfw.Subscribe("ADDED", cm.kubeConfigAdded) + kfw.Subscribe("MODIFIED", cm.kubeConfigModified) + kfw.Subscribe("DELETED", cm.kubeConfigDeleted) + + return cm, nil +} + +// Stop bacgkround listeners and close underlying connections +func (cm *DesktopConnectionManager) Teardown() { + cm.rootCtxCancel() + cm.KubeConfigWatcher.Unsubscribe("ADDED", cm.kubeConfigAdded) + cm.KubeConfigWatcher.Unsubscribe("MODIFIED", cm.kubeConfigModified) + cm.KubeConfigWatcher.Unsubscribe("DELETED", cm.kubeConfigDeleted) + close(cm.shutdownCh) +} + +// Get cached REST config or create a new one +func (cm *DesktopConnectionManager) GetOrCreateRestConfig(kubeContextPtr *string) (*rest.Config, error) { + cm.mu.Lock() + defer cm.mu.Unlock() + + kubeContext := ptr.Deref(kubeContextPtr, cm.kubeConfig.CurrentContext) + return cm.getOrCreateRestConfig_UNSAFE(kubeContext) +} + +// Get cached Clientset or create a new one +func (cm *DesktopConnectionManager) GetOrCreateClientset(kubeContextPtr *string) (kubernetes.Interface, error) { + cm.mu.Lock() + defer cm.mu.Unlock() + + kubeContext := ptr.Deref(kubeContextPtr, cm.kubeConfig.CurrentContext) + return cm.getOrCreateClientset_UNSAFE(kubeContext) +} + +// Get cached dynamic client or create a new one +func (cm *DesktopConnectionManager) GetOrCreateDynamicClient(kubeContextPtr *string) (dynamic.Interface, error) { + cm.mu.Lock() + defer cm.mu.Unlock() + + kubeContext := ptr.Deref(kubeContextPtr, cm.kubeConfig.CurrentContext) + return cm.getOrCreateDynamicClient_UNSAFE(kubeContext) +} + +// GetDefaultNamespace +func (cm *DesktopConnectionManager) GetDefaultNamespace(kubeContextPtr *string) string { + cm.mu.Lock() + defer cm.mu.Unlock() + + kubeContext := ptr.Deref(kubeContextPtr, cm.kubeConfig.CurrentContext) + context, exists := cm.kubeConfig.Contexts[kubeContext] + if !exists || context.Namespace == "" { + return metav1.NamespaceDefault + } + return context.Namespace +} + +// DerefKubeContext +func (cm *DesktopConnectionManager) DerefKubeContext(kubeContextPtr *string) string { + cm.mu.Lock() + defer cm.mu.Unlock() + return ptr.Deref(kubeContextPtr, cm.kubeConfig.CurrentContext) +} + +// Sleep until clients have been initialized +func (cm *DesktopConnectionManager) WaitUntilReady(ctx context.Context, kubeContextPtr *string) error { + cm.mu.Lock() + kubeContext := ptr.Deref(kubeContextPtr, cm.kubeConfig.CurrentContext) + + // Check cache + if readyCh, exists := cm.readyChs[kubeContext]; exists { + cm.mu.Unlock() + + // Wait until channel is closed + <-readyCh + + return nil + } + + // Create channel and add it to the cache + readyCh := make(chan struct{}) + cm.readyChs[kubeContext] = readyCh + + // Get clientset + clientset, err := cm.getOrCreateClientset_UNSAFE(kubeContext) + if err != nil { + return err + } + + cm.mu.Unlock() + + // Make a lightweight API call to warm up http connections + // NOTE: all clients that share rest config will get warmed up automatically + clientset.Discovery().ServerVersion() + + // Send stop signal to channel + close(readyCh) + + return nil +} + +// Get kube config +func (cm *DesktopConnectionManager) GetKubeConfig() *api.Config { + cm.mu.Lock() + defer cm.mu.Unlock() + return cm.kubeConfig +} + +// Get or create REST config (not thread safe) +func (cm *DesktopConnectionManager) getOrCreateRestConfig_UNSAFE(kubeContext string) (*rest.Config, error) { + // Check cache + if rc, exists := cm.rcCache[kubeContext]; exists { + return rc, nil + } + + // Create new REST config + clientConfig := clientcmd.NewNonInteractiveClientConfig(*cm.kubeConfig, kubeContext, &clientcmd.ConfigOverrides{}, nil) + rc, err := clientConfig.ClientConfig() + if err != nil { + return nil, err + } + + // Add authentication handler + rc.WrapTransport = func(transport http.RoundTripper) http.RoundTripper { + return k8shelpers.NewBearerTokenRoundTripper(transport) + } + + // Add to cache + cm.rcCache[kubeContext] = rc + + return rc, nil +} + +// Get or create clientset (not thread safe) +func (cm *DesktopConnectionManager) getOrCreateClientset_UNSAFE(kubeContext string) (*kubernetes.Clientset, error) { + // Check cache + if clientset, exists := cm.csCache[kubeContext]; exists { + return clientset, nil + } + + // Get rest config + restConfig, err := cm.getOrCreateRestConfig_UNSAFE(kubeContext) + if err != nil { + return nil, err + } + + // Create client + clientset, err := kubernetes.NewForConfig(restConfig) + if err != nil { + return nil, err + } + + // Add to cache + cm.csCache[kubeContext] = clientset + + return clientset, nil +} + +// Get or create dynamic client (not thread safe) +func (cm *DesktopConnectionManager) getOrCreateDynamicClient_UNSAFE(kubeContext string) (*dynamic.DynamicClient, error) { + // Check cache + if dynamicClient, exists := cm.dcCache[kubeContext]; exists { + return dynamicClient, nil + } + + // Get rest config + restConfig, err := cm.getOrCreateRestConfig_UNSAFE(kubeContext) + if err != nil { + return nil, err + } + + // Create client + dynamicClient, err := dynamic.NewForConfig(restConfig) + if err != nil { + return nil, err + } + + // Add to cache + cm.dcCache[kubeContext] = dynamicClient + + return dynamicClient, nil +} + +// Warm up cache in background +func (cm *DesktopConnectionManager) warmUpCache() { + cm.mu.Lock() + kubeConfig := cm.kubeConfig + cm.mu.Unlock() + + ctx, cancel := context.WithTimeout(cm.rootCtx, 20*time.Second) + defer cancel() + + var wg sync.WaitGroup + for contextName := range kubeConfig.Contexts { + wg.Add(1) + go func() { + defer wg.Done() + cm.WaitUntilReady(ctx, ptr.To(contextName)) + }() + } + + wg.Wait() + + if ctx.Err() != nil { + zlog.Error().Err(ctx.Err()).Caller().Send() + } +} + +// Handle kube config ADDED event +func (cm *DesktopConnectionManager) kubeConfigAdded(config *api.Config) { + cm.mu.Lock() + defer cm.mu.Unlock() + cm.kubeConfig = config +} + +// Handle kube config MODIFIED event +func (cm *DesktopConnectionManager) kubeConfigModified(oldConfig *api.Config, newConfig *api.Config) { + cm.mu.Lock() + defer cm.mu.Unlock() + cm.kubeConfig = newConfig +} + +// Handle kube config DELETED event +func (cm *DesktopConnectionManager) kubeConfigDeleted(oldConfig *api.Config) { + cm.mu.Lock() + defer cm.mu.Unlock() + cm.kubeConfig = &api.Config{} +} + +// Represents InClusterConnectionManager +type InClusterConnectionManager struct { + restConfig *rest.Config + clientset *kubernetes.Clientset + dynamicClient *dynamic.DynamicClient + mu sync.Mutex +} + +// Initialize new InClusterConnectionManager instance +func NewInClusterConnectionManager() (*InClusterConnectionManager, error) { + return &InClusterConnectionManager{}, nil +} + +// Stop bacgkround listeners and close underlying connections +func (cm *InClusterConnectionManager) Teardown() { + // Do nothing +} + +// Get cached Clientset or create a new one +func (cm *InClusterConnectionManager) GetOrCreateRestConfig(kubeContext *string) (*rest.Config, error) { + cm.mu.Lock() + defer cm.mu.Unlock() + return cm.getOrCreateRestConfig_UNSAFE() +} + +// Get cached Clientset or create a new one +func (cm *InClusterConnectionManager) GetOrCreateClientset(kubeContext *string) (kubernetes.Interface, error) { + cm.mu.Lock() + defer cm.mu.Unlock() + + // Check cache + if cm.clientset != nil { + return cm.clientset, nil + } + + // Get rest config + restConfig, err := cm.getOrCreateRestConfig_UNSAFE() + if err != nil { + return nil, err + } + + // Create client + clientset, err := kubernetes.NewForConfig(restConfig) + if err != nil { + return nil, err + } + + // Add to cache + cm.clientset = clientset + + return clientset, nil +} + +// Get cached dynamic client or create a new one +func (cm *InClusterConnectionManager) GetOrCreateDynamicClient(kubeContext *string) (dynamic.Interface, error) { + cm.mu.Lock() + defer cm.mu.Unlock() + + // Check cache + if cm.dynamicClient != nil { + return cm.dynamicClient, nil + } + + // Get rest config + restConfig, err := cm.getOrCreateRestConfig_UNSAFE() + if err != nil { + return nil, err + } + + // Create client + dynamicClient, err := dynamic.NewForConfig(restConfig) + if err != nil { + return nil, err + } + + // Add to cache + cm.dynamicClient = dynamicClient + + return dynamicClient, nil +} + +// Get default namespace from local filesystem on pod +func (cm *InClusterConnectionManager) GetDefaultNamespace(kubeContext *string) string { + return metav1.NamespaceDefault +} + +// DerefKubeContext +func (cm *InClusterConnectionManager) DerefKubeContext(kubeContext *string) string { + return "" +} + +// Returns immediately in-cluster +func (cm *InClusterConnectionManager) WaitUntilReady(ctx context.Context, kubeContext *string) error { + return nil +} + +// Get or create REST config +func (cm *InClusterConnectionManager) getOrCreateRestConfig_UNSAFE() (*rest.Config, error) { + // Check cache + if cm.restConfig != nil { + return cm.restConfig, nil + } + + // Create + restConfig, err := rest.InClusterConfig() + if err != nil { + return nil, err + } + + // Add authentication middleware + restConfig.WrapTransport = func(transport http.RoundTripper) http.RoundTripper { + return k8shelpers.NewBearerTokenRoundTripper(transport) + } + + // Add to cache + cm.restConfig = restConfig + + return restConfig, nil +} + +// Initialize new ConnectionManager depending on environment +func NewConnectionManager(env config.Environment) (ConnectionManager, error) { + switch env { + case config.EnvironmentDesktop: + return NewDesktopConnectionManager() + case config.EnvironmentCluster: + return NewInClusterConnectionManager() + default: + panic("not supported") + } +} diff --git a/modules/dashboard/internal/k8shelpers/kube-config-watcher.go b/modules/dashboard/internal/k8shelpers/kube-config-watcher.go new file mode 100644 index 00000000..7b229d60 --- /dev/null +++ b/modules/dashboard/internal/k8shelpers/kube-config-watcher.go @@ -0,0 +1,155 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package k8shelpers + +import ( + "sync" + + evbus "github.com/asaskevich/EventBus" + "github.com/fsnotify/fsnotify" + zlog "github.com/rs/zerolog/log" + "k8s.io/client-go/tools/clientcmd" + "k8s.io/client-go/tools/clientcmd/api" +) + +// Represents KubeConfigWatcher +type KubeConfigWatcher struct { + kubeConfig *api.Config + watcher *fsnotify.Watcher + eventbus evbus.Bus + mu sync.RWMutex +} + +// Creates new KubeConfigWatcher instance +func NewKubeConfigWatcher() (*KubeConfigWatcher, error) { + // Initialize kube config + // TODO: Handle missing kube config files more gracefully + kubeConfig, err := clientcmd.LoadFromFile(clientcmd.RecommendedHomeFile) + if err != nil { + return nil, err + } + + // Initialize watcher + watcher, err := fsnotify.NewWatcher() + if err != nil { + return nil, err + } + + err = watcher.Add(clientcmd.RecommendedHomeFile) + if err != nil { + return nil, err + } + + // Initialize + w := &KubeConfigWatcher{ + kubeConfig: kubeConfig, + watcher: watcher, + eventbus: evbus.New(), + } + + // Start event listeners + go w.start() + + return w, nil +} + +// Get +func (w *KubeConfigWatcher) Get() *api.Config { + w.mu.RLock() + defer w.mu.RUnlock() + + if w.kubeConfig == nil { + return &api.Config{} + } + + return w.kubeConfig +} + +// Subscribe +func (w *KubeConfigWatcher) Subscribe(topic string, fn interface{}) { + w.eventbus.SubscribeAsync(topic, fn, true) +} + +// Unsubscribe +func (w *KubeConfigWatcher) Unsubscribe(topic string, fn interface{}) { + w.eventbus.Unsubscribe(topic, fn) +} + +// Close +func (w *KubeConfigWatcher) Close() { + w.watcher.Close() +} + +// Start +func (w *KubeConfigWatcher) start() { + for { + select { + case err, ok := <-w.watcher.Errors: + // Kill goroutine on watcher close + if !ok { + return + } + + // Log error and keep listening + zlog.Error().Err(err).Caller().Send() + case fsEv, ok := <-w.watcher.Events: + // Kill goroutine on watcher close + if !ok { + return + } + + // Handle fsnotify events + switch { + case fsEv.Op&fsnotify.Create == fsnotify.Create: + // Load config + w.mu.Lock() + kubeConfig, err := clientcmd.LoadFromFile(clientcmd.RecommendedHomeFile) + if err != nil { + w.mu.Unlock() + zlog.Error().Err(err).Caller().Send() + break + } + w.kubeConfig = kubeConfig + w.mu.Unlock() + + // Publish event + w.eventbus.Publish("ADDED", kubeConfig) + case fsEv.Op&fsnotify.Write == fsnotify.Write: + // Load config + w.mu.Lock() + oldConfig := w.kubeConfig + newConfig, err := clientcmd.LoadFromFile(clientcmd.RecommendedHomeFile) + if err != nil { + w.mu.Unlock() + zlog.Error().Err(err).Caller().Send() + break + } + w.kubeConfig = newConfig + w.mu.Unlock() + + // Publish event + w.eventbus.Publish("MODIFIED", oldConfig, newConfig) + case fsEv.Op&fsnotify.Remove == fsnotify.Remove: + w.mu.Lock() + oldConfig := w.kubeConfig + w.kubeConfig = nil + w.mu.Unlock() + + // Publish event + w.eventbus.Publish("DELETED", oldConfig) + } + } + } +} diff --git a/modules/dashboard/internal/k8shelpers/mock/connection-manager.go b/modules/dashboard/internal/k8shelpers/mock/connection-manager.go new file mode 100644 index 00000000..5f35dc19 --- /dev/null +++ b/modules/dashboard/internal/k8shelpers/mock/connection-manager.go @@ -0,0 +1,81 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package mock + +import ( + "context" + + "github.com/stretchr/testify/mock" + "k8s.io/client-go/dynamic" + "k8s.io/client-go/kubernetes" + "k8s.io/client-go/rest" +) + +// Represents mock for connection manager +type MockConnectionManager struct { + mock.Mock +} + +func (m *MockConnectionManager) GetOrCreateRestConfig(kubeContext *string) (*rest.Config, error) { + ret := m.Called(kubeContext) + + var r0 *rest.Config + if ret.Get(0) != nil { + r0 = ret.Get(0).(*rest.Config) + } + + return r0, ret.Error(1) +} + +func (m *MockConnectionManager) GetOrCreateClientset(kubeContext *string) (kubernetes.Interface, error) { + ret := m.Called(kubeContext) + + var r0 kubernetes.Interface + if ret.Get(0) != nil { + r0 = ret.Get(0).(kubernetes.Interface) + } + + return r0, ret.Error(1) +} + +func (m *MockConnectionManager) GetOrCreateDynamicClient(kubeContext *string) (dynamic.Interface, error) { + ret := m.Called(kubeContext) + + var r0 dynamic.Interface + if ret.Get(0) != nil { + r0 = ret.Get(0).(dynamic.Interface) + } + + return r0, ret.Error(1) +} + +func (m *MockConnectionManager) GetDefaultNamespace(kubeContext *string) string { + ret := m.Called(kubeContext) + return ret.String(0) +} + +func (m *MockConnectionManager) DerefKubeContext(kubeContext *string) string { + ret := m.Called(kubeContext) + return ret.String(0) +} + +func (m *MockConnectionManager) WaitUntilReady(ctx context.Context, kubeContext *string) error { + ret := m.Called(ctx, kubeContext) + return ret.Error(0) +} + +func (m *MockConnectionManager) Teardown() { + m.Called() +} diff --git a/modules/dashboard/internal/k8shelpers/service-account-token.go b/modules/dashboard/internal/k8shelpers/service-account-token.go new file mode 100644 index 00000000..2dc3c5e2 --- /dev/null +++ b/modules/dashboard/internal/k8shelpers/service-account-token.go @@ -0,0 +1,168 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package k8shelpers + +import ( + "context" + "fmt" + "sync" + "time" + + zlog "github.com/rs/zerolog/log" + authv1 "k8s.io/api/authentication/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/client-go/kubernetes" + "k8s.io/utils/ptr" +) + +// Represents Service Account Token +type ServiceAccountToken struct { + clientset kubernetes.Interface + namespace string + name string + latestTokenRequest *authv1.TokenRequest + + shutdownCh chan struct{} + + mu sync.Mutex +} + +// Create new ServiceAccountToken instance +func NewServiceAccountToken(ctx context.Context, clientset kubernetes.Interface, namespace string, name string, shutdownCh chan struct{}) (*ServiceAccountToken, error) { + sat := &ServiceAccountToken{ + clientset: clientset, + namespace: namespace, + name: name, + shutdownCh: shutdownCh, + } + + // Initialize + err := sat.refreshToken_UNSAFE(ctx) + if err != nil { + return nil, err + } + + // Refresh in background + go sat.startBackgroundRefresh() + + return sat, nil +} + +// Token +func (sat *ServiceAccountToken) Token(ctx context.Context) (string, error) { + sat.mu.Lock() + defer sat.mu.Unlock() + + if sat.latestTokenRequest.Status.ExpirationTimestamp.Time.Before(time.Now()) { + if err := sat.refreshToken_UNSAFE(ctx); err != nil { + return "", err + } + } + return sat.latestTokenRequest.Status.Token, nil +} + +// Refresh the token +func (sat *ServiceAccountToken) refreshToken_UNSAFE(ctx context.Context) error { + // Prepare the TokenRequest object + tokenRequest := &authv1.TokenRequest{ + Spec: authv1.TokenRequestSpec{ + //ExpirationSeconds: ptr.To[int64](3600), // Token validity (e.g., 1 hour) + ExpirationSeconds: ptr.To[int64](600), // Token validity (e.g., 1 hour) + Audiences: []string{ + "https://kubernetes.default.svc.cluster.local", + fmt.Sprintf("http://kubetail-cluster-api.%s.svc.cluster.local", sat.namespace), + }, + }, + } + + // Request a token for the ServiceAccount + val, err := sat.clientset.CoreV1().ServiceAccounts(sat.namespace).CreateToken(ctx, sat.name, tokenRequest, metav1.CreateOptions{}) + if err != nil { + return err + } + + sat.latestTokenRequest = val + + return nil +} + +// Start background refresh process +func (sat *ServiceAccountToken) startBackgroundRefresh() { + ctx, cancel := context.WithCancel(context.Background()) + defer cancel() + + sat.mu.Lock() + tr := sat.latestTokenRequest + sat.mu.Unlock() + + initialDelay := time.Until(tr.Status.ExpirationTimestamp.Time) / 2 + + // Refresh loop + go func() { + select { + case <-time.After(initialDelay): + // Continue + case <-ctx.Done(): + // Exit + return + } + + Loop: + for { + // Refresh token + ctxChild, cancel := context.WithTimeout(ctx, 10*time.Second) + + sat.mu.Lock() + err := sat.refreshToken_UNSAFE(ctxChild) + sat.mu.Unlock() + + if err != nil { + zlog.Error().Caller().Err(err).Send() + } + cancel() + + // Exit if parent context was canceled + if ctx.Err() != nil { + break Loop + } + + // Calculate sleep time + sleepTime := time.Duration(30 * time.Second) + + sat.mu.Lock() + tr := sat.latestTokenRequest + sat.mu.Unlock() + + if tr != nil { + t := time.Until(tr.Status.ExpirationTimestamp.Time) / 2 + if t > 30*time.Second { + sleepTime = t + } + } + + // Wait with context awareness + select { + case <-time.After(sleepTime): + // Continue after sleep + case <-ctx.Done(): + // Exit loop if context is canceled + break Loop + } + } + }() + + // Wait for shutdown signal + <-sat.shutdownCh +} diff --git a/modules/dashboard/internal/k8shelpers/service-account-token_test.go b/modules/dashboard/internal/k8shelpers/service-account-token_test.go new file mode 100644 index 00000000..b16ef0eb --- /dev/null +++ b/modules/dashboard/internal/k8shelpers/service-account-token_test.go @@ -0,0 +1,77 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package k8shelpers + +import ( + "context" + "testing" + + "github.com/stretchr/testify/assert" + authv1 "k8s.io/api/authentication/v1" + "k8s.io/apimachinery/pkg/api/errors" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" + "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/client-go/kubernetes/fake" + k8stesting "k8s.io/client-go/testing" +) + +func TestServiceAccountToken_refreshToken_Success(t *testing.T) { + clientset := fake.NewSimpleClientset() + + // Mock the CreateToken response + clientset.Fake.PrependReactor("create", "serviceaccounts", func(action k8stesting.Action) (handled bool, ret runtime.Object, err error) { + tokenResponse := &authv1.TokenRequest{ + Status: authv1.TokenRequestStatus{ + Token: "mock-token", + ExpirationTimestamp: metav1.Now(), + }, + } + return true, tokenResponse, nil + }) + + shutdownCh := make(chan struct{}) + defer close(shutdownCh) + + // Initialize + sat, err := NewServiceAccountToken(context.Background(), clientset, "", "", shutdownCh) + assert.Nil(t, err) + + // Check token + token, err := sat.Token(context.Background()) + assert.Nil(t, err) + assert.Equal(t, "mock-token", token) +} + +func TestServiceAccountToken_refreshToken_Failure(t *testing.T) { + clientset := fake.NewSimpleClientset() + + // Mock the CreateToken response + clientset.Fake.PrependReactor("create", "serviceaccounts", func(action k8stesting.Action) (handled bool, ret runtime.Object, err error) { + err = errors.NewNotFound( + schema.GroupResource{Group: "", Resource: "serviceaccounts"}, + "name-goes-here", + ) + return true, nil, err + }) + + shutdownCh := make(chan struct{}) + defer close(shutdownCh) + + // Initialize + _, err := NewServiceAccountToken(context.Background(), clientset, "", "", shutdownCh) + assert.NotNil(t, err) + assert.Contains(t, err.Error(), "serviceaccounts \"name-goes-here\" not found") +} diff --git a/modules/dashboard/pkg/app/app.go b/modules/dashboard/pkg/app/app.go new file mode 100644 index 00000000..09eb03a5 --- /dev/null +++ b/modules/dashboard/pkg/app/app.go @@ -0,0 +1,241 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package app + +import ( + "html/template" + "io/fs" + "net/http" + "path" + "strings" + + "github.com/gin-contrib/gzip" + "github.com/gin-contrib/requestid" + "github.com/gin-contrib/secure" + "github.com/gin-contrib/sessions" + "github.com/gin-contrib/sessions/cookie" + "github.com/gin-gonic/gin" + "github.com/gorilla/csrf" + adapter "github.com/gwatts/gin-adapter" + + "github.com/kubetail-org/kubetail/modules/shared/config" + "github.com/kubetail-org/kubetail/modules/shared/middleware" + + "github.com/kubetail-org/kubetail/modules/dashboard" + "github.com/kubetail-org/kubetail/modules/dashboard/graph" + clusterapi "github.com/kubetail-org/kubetail/modules/dashboard/internal/cluster-api" + "github.com/kubetail-org/kubetail/modules/dashboard/internal/k8shelpers" +) + +type App struct { + *gin.Engine + config *config.Config + cm k8shelpers.ConnectionManager + graphqlServer *graph.Server + clusterAPIProxy clusterapi.Proxy + queryHelpers queryHelpers + + // for testing + dynamicRoutes *gin.RouterGroup +} + +// Shutdown +func (a *App) Shutdown() { + // Shutdown connection manager + a.cm.Teardown() + + // Shutdown GraphQL server + a.graphqlServer.Shutdown() + + // Shudown Cluster API proxy + a.clusterAPIProxy.Shutdown() +} + +// Create new gin app +func NewApp(cfg *config.Config) (*App, error) { + // Init app + app := &App{Engine: gin.New(), config: cfg} + + // If not in test-mode + if gin.Mode() != gin.TestMode { + app.Use(gin.Recovery()) + + // Init connection manager + cm, err := k8shelpers.NewConnectionManager(cfg.Dashboard.Environment) + if err != nil { + return nil, err + } + app.cm = cm + + // Init Cluster API proxy + clusterAPIProxy, err := newClusterAPIProxy(cfg, app.cm, "/cluster-api-proxy") + if err != nil { + return nil, err + } + app.clusterAPIProxy = clusterAPIProxy + + // Init queryHelpers + app.queryHelpers = newRealQueryHelpers(app.cm) + } + + // Register templates + tmpl := template.Must(template.New(""). + Funcs(template.FuncMap{ + "pathJoin": path.Join, + }). + ParseFS(dashboard.TemplatesEmbedFS, "templates/*"), + ) + app.SetHTMLTemplate(tmpl) + + // Add request-id middleware + app.Use(requestid.New()) + + // Add logging middleware + if cfg.Dashboard.Logging.AccessLog.Enabled { + app.Use(middleware.LoggingMiddleware(cfg.Dashboard.Logging.AccessLog.HideHealthChecks)) + } + + // Add gzip middleware + app.Use(gzip.Gzip(gzip.DefaultCompression, + gzip.WithExcludedPaths([]string{ + path.Join(cfg.Dashboard.BasePath, "/cluster-api-proxy/"), + }), + )) + + // Root route + root := app.Group(cfg.Dashboard.BasePath) + + // Dynamic routes + dynamicRoutes := root.Group("/") + { + // Add session middleware + sessionStore := cookie.NewStore([]byte(cfg.Dashboard.Session.Secret)) + sessionStore.Options(sessions.Options{ + Path: cfg.Dashboard.Session.Cookie.Path, + Domain: cfg.Dashboard.Session.Cookie.Domain, + MaxAge: cfg.Dashboard.Session.Cookie.MaxAge, + Secure: cfg.Dashboard.Session.Cookie.Secure, + HttpOnly: cfg.Dashboard.Session.Cookie.HttpOnly, + SameSite: cfg.Dashboard.Session.Cookie.SameSite, + }) + dynamicRoutes.Use(sessions.Sessions(cfg.Dashboard.Session.Cookie.Name, sessionStore)) + + // https://security.stackexchange.com/questions/147554/security-headers-for-a-web-api + // https://observatory.mozilla.org/faq/ + dynamicRoutes.Use(secure.New(secure.Config{ + STSSeconds: 63072000, + FrameDeny: true, + ContentSecurityPolicy: "default-src 'none'; frame-ancestors 'none'", + ContentTypeNosniff: true, + })) + + // Disable csrf protection for graphql and proxy endpoints + u1 := path.Join(cfg.Dashboard.BasePath, "/graphql") + u2 := path.Join(cfg.Dashboard.BasePath, "/cluster-api-proxy/") + dynamicRoutes.Use(func(c *gin.Context) { + p := c.Request.URL.Path + if strings.HasPrefix(p, u1) || strings.HasPrefix(p, u2) { + c.Request = csrf.UnsafeSkipCheck(c.Request) + } + c.Next() + }) + + var csrfProtect func(http.Handler) http.Handler + + // CSRF middleware + if cfg.Dashboard.CSRF.Enabled { + csrfProtect = csrf.Protect( + []byte(cfg.Dashboard.CSRF.Secret), + csrf.FieldName(cfg.Dashboard.CSRF.FieldName), + csrf.CookieName(cfg.Dashboard.CSRF.Cookie.Name), + csrf.Path(cfg.Dashboard.CSRF.Cookie.Path), + csrf.Domain(cfg.Dashboard.CSRF.Cookie.Domain), + csrf.MaxAge(cfg.Dashboard.CSRF.Cookie.MaxAge), + csrf.Secure(cfg.Dashboard.CSRF.Cookie.Secure), + csrf.HttpOnly(cfg.Dashboard.CSRF.Cookie.HttpOnly), + csrf.SameSite(cfg.Dashboard.CSRF.Cookie.SameSite), + ) + + // Add to gin middleware + dynamicRoutes.Use(adapter.Wrap(csrfProtect)) + + // Add token fetcher helper + dynamicRoutes.GET("/csrf-token", func(c *gin.Context) { + c.JSON(http.StatusOK, gin.H{"value": csrf.Token(c.Request)}) + }) + } + + // Add authentication middleware + dynamicRoutes.Use(authenticationMiddleware(cfg.Dashboard.AuthMode)) + + // Auth routes + auth := dynamicRoutes.Group("/api/auth") + { + h := authHandlers{app} + auth.POST("/login", h.LoginPOST) + auth.POST("/logout", h.LogoutPOST) + auth.GET("/session", h.SessionGET) + } + + // Protected routes + protectedRoutes := dynamicRoutes.Group("") + { + // Add K8S auth middleware + protectedRoutes.Use(k8sAuthenticationMiddleware(cfg.Dashboard.AuthMode)) + + // GraphQL endpoint + graphqlServer := graph.NewServer(app.cm, cfg.Dashboard.Environment, cfg.AllowedNamespaces, csrfProtect) + protectedRoutes.Any("/graphql", gin.WrapH(graphqlServer)) + app.graphqlServer = graphqlServer + + // Cluster API proxy routes + protectedRoutes.Any("/cluster-api-proxy/*path", gin.WrapH(app.clusterAPIProxy)) + } + } + app.dynamicRoutes = dynamicRoutes + + // Init staticFS + staticFS, err := fs.Sub(dashboard.StaticEmbedFS, "static") + if err != nil { + return nil, err + } + staticHttpFS := http.FS(staticFS) + + // GraphQL Playground + root.StaticFileFS("/graphiql", "/graphiql.html", staticHttpFS) + + // Robots.txt + root.StaticFileFS("/robots.txt", "/robots.txt", staticHttpFS) + + // Health endpoint + root.GET("/healthz", func(c *gin.Context) { + c.JSON(http.StatusOK, gin.H{"status": "ok"}) + }) + + // Serve website from "/" and also unknown routes + websiteFS, err := fs.Sub(dashboard.WebsiteEmbedFS, "website") + if err != nil { + return nil, err + } + + h := websiteHandlers{app, websiteFS} + h.InitStaticHandlers(root) + + endpointHandler := h.EndpointHandler(cfg) + root.GET("/", endpointHandler) + app.NoRoute(endpointHandler) + + return app, nil +} diff --git a/modules/dashboard/pkg/app/app_test.go b/modules/dashboard/pkg/app/app_test.go new file mode 100644 index 00000000..ad8d4a98 --- /dev/null +++ b/modules/dashboard/pkg/app/app_test.go @@ -0,0 +1,236 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package app + +import ( + "compress/gzip" + "io" + "net/http" + "net/http/httptest" + "testing" + + "github.com/gin-contrib/requestid" + "github.com/gin-contrib/sessions" + "github.com/gin-gonic/gin" + "github.com/gorilla/csrf" + "github.com/kubetail-org/kubetail/modules/shared/config" + "github.com/stretchr/testify/assert" +) + +func TestRequestID(t *testing.T) { + app := newTestApp(nil) + + // add route for testing + app.GET("/x", func(c *gin.Context) { + c.String(http.StatusOK, requestid.Get(c)) + }) + + // request 1 + w1 := httptest.NewRecorder() + r1 := httptest.NewRequest("GET", "/x", nil) + app.ServeHTTP(w1, r1) + id1 := w1.Body.String() + + // request 2 + w2 := httptest.NewRecorder() + r2 := httptest.NewRequest("GET", "/x", nil) + app.ServeHTTP(w2, r2) + id2 := w2.Body.String() + + // check result + assert.NotEqual(t, "", id1) + assert.NotEqual(t, "", id2) + assert.NotEqual(t, id1, id2) +} + +func TestGzip(t *testing.T) { + app := newTestApp(nil) + + // add route for testing + app.GET("/x", func(c *gin.Context) { + c.String(http.StatusOK, "ok") + }) + + // request without compression + w1 := httptest.NewRecorder() + r1 := httptest.NewRequest("GET", "/x", nil) + app.ServeHTTP(w1, r1) + assert.Equal(t, w1.Body.String(), "ok") + + // request with compression + w2 := httptest.NewRecorder() + r2 := httptest.NewRequest("GET", "/x", nil) + r2.Header["Accept-Encoding"] = []string{"gzip"} + app.ServeHTTP(w2, r2) + + gzreader, err := gzip.NewReader(w2.Body) + assert.Equal(t, nil, err) + uncompressed, err := io.ReadAll(gzreader) + assert.Equal(t, nil, err) + assert.Equal(t, "ok", string(uncompressed)) +} + +func TestSessionCookieOptions(t *testing.T) { + cfg1 := newTestConfig() + cfg1.Dashboard.Session.Cookie.Path = "/xxx" + + cfg2 := newTestConfig() + cfg2.Dashboard.Session.Cookie.Domain = "x.example.com" + + cfg3 := newTestConfig() + cfg3.Dashboard.Session.Cookie.MaxAge = 1 + + cfg4 := newTestConfig() + cfg4.Dashboard.Session.Cookie.Secure = false + + cfg5 := newTestConfig() + cfg5.Dashboard.Session.Cookie.Secure = true + + cfg6 := newTestConfig() + cfg6.Dashboard.Session.Cookie.HttpOnly = false + + cfg7 := newTestConfig() + cfg7.Dashboard.Session.Cookie.HttpOnly = true + + cfg8 := newTestConfig() + cfg8.Dashboard.Session.Cookie.SameSite = http.SameSiteNoneMode + + tests := []struct { + name string + setCfg *config.Config + }{ + {"Path", cfg1}, + {"Domain", cfg2}, + {"MaxAge", cfg3}, + {"Secure:false", cfg4}, + {"Secure:true", cfg5}, + {"HttpOnly:false", cfg6}, + {"HttpOnly:true", cfg7}, + {"SameSite", cfg8}, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + app := newTestApp(tt.setCfg) + + // add route for testing + app.dynamicRoutes.GET("/test", func(c *gin.Context) { + session := sessions.Default(c) + session.Set("k", "v") + err := session.Save() + assert.Nil(t, err) + + c.String(http.StatusOK, "ok") + }) + + // request + w := httptest.NewRecorder() + r := httptest.NewRequest("GET", "/test", nil) + app.ServeHTTP(w, r) + + // check session cookie + cookie := getCookie(w.Result().Cookies(), "session") + assert.NotNil(t, cookie) + assert.Equal(t, tt.setCfg.Dashboard.Session.Cookie.Path, cookie.Path) + assert.Equal(t, tt.setCfg.Dashboard.Session.Cookie.Domain, cookie.Domain) + assert.Equal(t, tt.setCfg.Dashboard.Session.Cookie.MaxAge, cookie.MaxAge) + assert.Equal(t, tt.setCfg.Dashboard.Session.Cookie.Secure, cookie.Secure) + assert.Equal(t, tt.setCfg.Dashboard.Session.Cookie.HttpOnly, cookie.HttpOnly) + assert.Equal(t, tt.setCfg.Dashboard.Session.Cookie.SameSite, cookie.SameSite) + }) + } +} + +func TestCsrfCookieOptions(t *testing.T) { + cfg1 := newTestConfig() + cfg1.Dashboard.CSRF.Cookie.Path = "/xxx" + + cfg2 := newTestConfig() + cfg2.Dashboard.CSRF.Cookie.Domain = "x.example.com" + + cfg3 := newTestConfig() + cfg3.Dashboard.CSRF.Cookie.MaxAge = 1 + + cfg4 := newTestConfig() + cfg4.Dashboard.CSRF.Cookie.Secure = false + + cfg5 := newTestConfig() + cfg5.Dashboard.CSRF.Cookie.Secure = true + + cfg6 := newTestConfig() + cfg6.Dashboard.CSRF.Cookie.HttpOnly = false + + cfg7 := newTestConfig() + cfg7.Dashboard.CSRF.Cookie.HttpOnly = true + + cfg8 := newTestConfig() + cfg8.Dashboard.CSRF.Cookie.SameSite = csrf.SameSiteNoneMode + + tests := []struct { + name string + setCfg *config.Config + }{ + {"Path", cfg1}, + {"Domain", cfg2}, + {"MaxAge", cfg3}, + {"Secure:false", cfg4}, + {"Secure:true", cfg5}, + {"HttpOnly:false", cfg6}, + {"HttpOnly:true", cfg7}, + {"SameSite", cfg8}, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + tt.setCfg.Dashboard.CSRF.Enabled = true + tt.setCfg.Dashboard.CSRF.Cookie.Name = "customname" + app := newTestApp(tt.setCfg) + + // add route for testing + app.dynamicRoutes.GET("/test", func(c *gin.Context) { + c.String(http.StatusOK, "ok") + }) + + // request + w := httptest.NewRecorder() + r := httptest.NewRequest("GET", "/test", nil) + app.ServeHTTP(w, r) + + // check session cookie + cookie := getCookie(w.Result().Cookies(), tt.setCfg.Dashboard.CSRF.Cookie.Name) + assert.NotNil(t, cookie) + assert.Equal(t, tt.setCfg.Dashboard.CSRF.Cookie.Path, cookie.Path) + assert.Equal(t, tt.setCfg.Dashboard.CSRF.Cookie.Domain, cookie.Domain) + assert.Equal(t, tt.setCfg.Dashboard.CSRF.Cookie.MaxAge, cookie.MaxAge) + assert.Equal(t, tt.setCfg.Dashboard.CSRF.Cookie.Secure, cookie.Secure) + assert.Equal(t, tt.setCfg.Dashboard.CSRF.Cookie.HttpOnly, cookie.HttpOnly) + assert.Equal(t, tt.setCfg.Dashboard.CSRF.Cookie.SameSite, csrf.SameSiteMode(cookie.SameSite)) + }) + } +} + +func TestHealthz(t *testing.T) { + app := newTestApp(nil) + + // make request + w := httptest.NewRecorder() + r := httptest.NewRequest("GET", "/healthz", nil) + app.ServeHTTP(w, r) + + // check response + result := w.Result() + assert.Equal(t, http.StatusOK, result.StatusCode) + assert.Equal(t, "{\"status\":\"ok\"}", w.Body.String()) +} diff --git a/modules/server/pkg/ginapp/auth.go b/modules/dashboard/pkg/app/auth.go similarity index 51% rename from modules/server/pkg/ginapp/auth.go rename to modules/dashboard/pkg/app/auth.go index ffa3b56f..91ae4e97 100644 --- a/modules/server/pkg/ginapp/auth.go +++ b/modules/dashboard/pkg/app/auth.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package ginapp +package app import ( "net/http" @@ -21,24 +21,26 @@ import ( "github.com/gin-contrib/sessions" "github.com/gin-gonic/gin" - "github.com/kubetail-org/kubetail/modules/common/config" - "github.com/kubetail-org/kubetail/modules/server/internal/formerrors" + "github.com/kubetail-org/kubetail/modules/shared/config" + + "github.com/kubetail-org/kubetail/modules/dashboard/internal/formerrors" ) -type LoginForm struct { +// Represents login form +type loginForm struct { Token string `form:"token" binding:"required" errors_required:"Please enter your token"` } -type AuthHandlers struct { - *GinApp - mode config.AuthMode +// Represents auth handlers +type authHandlers struct { + *App } // Login endpoint -func (app *AuthHandlers) LoginPOST(c *gin.Context) { - var form LoginForm +func (app *authHandlers) LoginPOST(c *gin.Context) { + var form loginForm - // validate form + // Validate form err := c.ShouldBind(&form) if err != nil { formErrors := formerrors.New(&form, err) @@ -50,9 +52,15 @@ func (app *AuthHandlers) LoginPOST(c *gin.Context) { return } - // authenticate - _, err = app.k8sHelperService.HasAccess(form.Token) + // Authenticate + tokenReview, err := app.queryHelpers.HasAccess(c.Request.Context(), form.Token) if err != nil { + c.String(http.StatusInternalServerError, err.Error()) + return + } + + // Check result + if !tokenReview.Status.Authenticated { c.JSON(http.StatusUnprocessableEntity, gin.H{ "errors": gin.H{ "token": "Please enter a valid token", @@ -61,49 +69,63 @@ func (app *AuthHandlers) LoginPOST(c *gin.Context) { return } - // add data to session (for middleware) + // Add data to session (for middleware) session := sessions.Default(c) session.Set(k8sTokenSessionKey, form.Token) - session.Save() - c.Status(http.StatusNoContent) + // Save + err = session.Save() + if err != nil { + c.String(http.StatusInternalServerError, err.Error()) + return + } + + c.AbortWithStatus(http.StatusNoContent) } // Logout endpoint -func (app *AuthHandlers) LogoutPOST(c *gin.Context) { +func (app *authHandlers) LogoutPOST(c *gin.Context) { session := sessions.Default(c) session.Clear() session.Save() - c.Status(http.StatusNoContent) + c.AbortWithStatus(http.StatusNoContent) } // Session endpoint -func (app *AuthHandlers) SessionGET(c *gin.Context) { +func (app *authHandlers) SessionGET(c *gin.Context) { + authMode := app.config.Dashboard.AuthMode + response := gin.H{ - "auth_mode": app.mode, + "auth_mode": authMode, "user": nil, "message": nil, "timestamp": time.Now().UTC().Format(time.RFC3339Nano), } - switch app.mode { - case config.AuthModeCluster, config.AuthModeLocal: - response["user"] = string(app.mode) + switch authMode { + case config.AuthModeAuto: + response["user"] = string(authMode) case config.AuthModeToken: - token := c.GetString(k8sTokenCtxKey) + token := c.GetString(k8sTokenGinKey) - // no token found + // Handle no token found if token == "" { break } - // check token - user, err := app.k8sHelperService.HasAccess(token) - if err == nil { - response["user"] = user + // Check token + tokenReview, err := app.queryHelpers.HasAccess(c.Request.Context(), token) + if err != nil { + c.String(http.StatusInternalServerError, err.Error()) + return + } + + // Check result + if tokenReview.Status.Authenticated { + response["user"] = tokenReview.Status.User.Username } else { - response["message"] = err.Error() + response["message"] = tokenReview.Status.Error response["user"] = nil } default: diff --git a/modules/dashboard/pkg/app/auth_test.go b/modules/dashboard/pkg/app/auth_test.go new file mode 100644 index 00000000..72bc8dd0 --- /dev/null +++ b/modules/dashboard/pkg/app/auth_test.go @@ -0,0 +1,233 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package app + +import ( + "encoding/json" + "net/http" + "net/url" + "testing" + "time" + + "github.com/stretchr/testify/mock" + "github.com/stretchr/testify/suite" + authv1 "k8s.io/api/authentication/v1" + "k8s.io/utils/ptr" + + "github.com/kubetail-org/kubetail/modules/shared/config" + "github.com/kubetail-org/kubetail/modules/shared/testutils" +) + +type authTestSuite struct { + suite.Suite + app *App + client *testutils.WebTestClient +} + +// test runner +func TestAuthHandlers(t *testing.T) { + suite.Run(t, new(authTestSuite)) +} + +func (suite *authTestSuite) SetupTest() { + // Init app + app := newTestApp(nil) + app.queryHelpers = &mockQueryHelpers{} + + // Init client + client := testutils.NewWebTestClient(suite.T(), app) + + // Save + suite.app = app + suite.client = client +} + +func (suite *authTestSuite) TearDownTest() { + suite.client.Teardown() +} + +func (suite *authTestSuite) TestLoginPOSTFormErrors() { + // Init empty form + form := url.Values{} + + // Make request + resp := suite.client.PostForm("/api/auth/login", form) + + // check result + suite.Equal(http.StatusUnprocessableEntity, resp.StatusCode) + suite.Contains(string(resp.Body), "Please enter your token") + + // check result + suite.Equal(http.StatusUnprocessableEntity, resp.StatusCode) + suite.Contains(string(resp.Body), "Please enter your token") +} + +func (suite *authTestSuite) TestLoginPOSTSuccess() { + // Configure mock + m := suite.app.queryHelpers.(*mockQueryHelpers) + m.On("HasAccess", mock.Anything, "xxx").Return(&authv1.TokenReview{ + Status: authv1.TokenReviewStatus{ + Authenticated: true, + }, + }, nil) + + // Init form + form := url.Values{} + form.Add("token", "xxx") + + // Execute + resp := suite.client.PostForm("/api/auth/login", form) + + // Assertions + m.AssertNumberOfCalls(suite.T(), "HasAccess", 1) + m.AssertCalled(suite.T(), "HasAccess", mock.Anything, "xxx") + suite.Equal(http.StatusNoContent, resp.StatusCode) +} + +func (suite *authTestSuite) TestLoginPOSTFailure() { + // Configure mock + m := suite.app.queryHelpers.(*mockQueryHelpers) + m.On("HasAccess", mock.Anything, "xxx").Return(&authv1.TokenReview{ + Status: authv1.TokenReviewStatus{ + Authenticated: false, + }, + }, nil) + + // Init form + form := url.Values{} + form.Add("token", "xxx") + + // Execute + resp := suite.client.PostForm("/api/auth/login", form) + + // Assertions + m.AssertNumberOfCalls(suite.T(), "HasAccess", 1) + m.AssertCalled(suite.T(), "HasAccess", mock.Anything, "xxx") + suite.Equal(http.StatusUnprocessableEntity, resp.StatusCode) +} + +func (suite *authTestSuite) TestLogoutPOSTSuccess() { + m := suite.app.queryHelpers.(*mockQueryHelpers) + m.On("HasAccess", mock.Anything, "xxx").Return(&authv1.TokenReview{ + Status: authv1.TokenReviewStatus{ + Authenticated: true, + }, + }, nil) + + // Init form + form := url.Values{} + form.Add("token", "xxx") + + // Log in + resp1 := suite.client.PostForm("/api/auth/login", form) + + // Verify that session cookie was added + cookie1 := getCookie(resp1.Cookies, "session") + suite.NotNil(cookie1) + + // Log out + resp2 := suite.client.PostForm("/api/auth/logout", nil) + + // Verify session cookie was changed + cookie2 := getCookie(resp2.Cookies, "session") + suite.NotNil(cookie2) + suite.NotEqual(cookie1.Value, cookie2.Value) +} + +func (suite *authTestSuite) TestSessionGET() { + type Session struct { + User *string + Timestamp string + } + + tests := []struct { + name string + setAuthMode config.AuthMode + wantLoggedOutUser *string + wantLoggedInUser *string + }{ + {"auto", config.AuthModeAuto, ptr.To("auto"), ptr.To("auto")}, + {"token", config.AuthModeToken, nil, ptr.To("user-xxx")}, + } + + for _, tt := range tests { + suite.Run(tt.name, func() { + // Init config + cfg := newTestConfig() + cfg.Dashboard.AuthMode = tt.setAuthMode + + // Init app + app := newTestApp(cfg) + + // Configure mock + m := new(mockQueryHelpers) + m.On("HasAccess", mock.Anything, "xxx").Return(&authv1.TokenReview{ + Status: authv1.TokenReviewStatus{ + Authenticated: true, + User: authv1.UserInfo{ + Username: "user-xxx", + }, + }, + }, nil) + app.queryHelpers = m + + // Init client + client := testutils.NewWebTestClient(suite.T(), app) + + // Logged-out tests + { + // Get session + resp := client.Get("/api/auth/session") + + // Parse json + var session Session + err := json.Unmarshal(resp.Body, &session) + suite.Nil(err) + + // Check user + suite.Equal(tt.wantLoggedOutUser, session.User) + + // Check timestamp + _, err = time.Parse(time.RFC3339Nano, session.Timestamp) + suite.Nil(err) + } + + // Logged-in tests + { + // Log in + form := url.Values{} + form.Add("token", "xxx") + client.PostForm("/api/auth/login", form) + + // Get session + resp := client.Get("/api/auth/session") + + // Parse json + var session Session + err := json.Unmarshal(resp.Body, &session) + suite.Nil(err) + + // Check user + suite.Equal(tt.wantLoggedInUser, session.User) + + // Check timestamp + _, err = time.Parse(time.RFC3339Nano, session.Timestamp) + suite.Nil(err) + } + + client.Teardown() + }) + } +} diff --git a/modules/server/pkg/ginapp/graphql_test.go b/modules/dashboard/pkg/app/graphql_test.go-ignore similarity index 67% rename from modules/server/pkg/ginapp/graphql_test.go rename to modules/dashboard/pkg/app/graphql_test.go-ignore index cc873fa1..cad4518f 100644 --- a/modules/server/pkg/ginapp/graphql_test.go +++ b/modules/dashboard/pkg/app/graphql_test.go-ignore @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -12,32 +12,31 @@ // See the License for the specific language governing permissions and // limitations under the License. -package ginapp +package app import ( - "fmt" "net/http" - "net/http/httptest" "strings" "testing" "github.com/gorilla/websocket" + "github.com/kubetail-org/kubetail/modules/shared/testutils" "github.com/stretchr/testify/suite" - - "github.com/kubetail-org/kubetail/modules/common/config" ) -type GraphQLTestSuite struct { - WebTestSuiteBase +type graphQLTestSuite struct { + suite.Suite } -func (suite *GraphQLTestSuite) TestAccess() { +func (suite *graphQLTestSuite) TestAccess() { suite.Run("GraphQL Endpoint", func() { + client := testutils.NewWebTestClient(suite.T(), newTestApp(nil)) + defer client.Teardown() + schemaQuery := `{"query":"{ __schema { types { name } } }"}` suite.Run("simple POST requests are rejected", func() { // build request - client := suite.defaultclient req := client.NewRequest("POST", "/graphql", strings.NewReader(schemaQuery)) req.Header.Set("Content-Type", "application/x-www-form-urlencoded") @@ -50,7 +49,6 @@ func (suite *GraphQLTestSuite) TestAccess() { suite.Run("preflighted POST requests are ok", func() { // build request - client := suite.defaultclient req := client.NewRequest("POST", "/graphql", strings.NewReader(schemaQuery)) req.Header.Set("Content-Type", "application/json") @@ -63,7 +61,6 @@ func (suite *GraphQLTestSuite) TestAccess() { suite.Run("GET requests are rejected", func() { // build request - client := suite.defaultclient req := client.NewRequest("GET", "/graphql", strings.NewReader(schemaQuery)) req.Header.Set("Content-Type", "application/json") @@ -77,21 +74,18 @@ func (suite *GraphQLTestSuite) TestAccess() { suite.Run("DELETE requests are ignored", func() { // build request - client := suite.defaultclient req := client.NewRequest("DELETE", "/graphql", strings.NewReader(schemaQuery)) req.Header.Set("Content-Type", "application/json") // execute request resp := client.Do(req) - fmt.Println(resp.StatusCode) - fmt.Println(string(resp.Body)) + // check response - suite.Equal(http.StatusNotFound, resp.StatusCode) + suite.Equal(http.StatusBadRequest, resp.StatusCode) }) suite.Run("OPTIONS requests are ignored", func() { // build request - client := suite.defaultclient req := client.NewRequest("OPTIONS", "/graphql", nil) req.Header.Set("Content-Type", "application/json") @@ -99,12 +93,12 @@ func (suite *GraphQLTestSuite) TestAccess() { resp := client.Do(req) // check response - suite.Equal(http.StatusNotFound, resp.StatusCode) + suite.Equal(http.StatusBadRequest, resp.StatusCode) }) suite.Run("cross-origin websocket requests are allowed when csrf protection is disabled", func() { // init websocket connection - u := "ws" + strings.TrimPrefix(suite.defaultclient.testserver.URL, "http") + "/graphql" + u := "ws" + strings.TrimPrefix(client.Server.URL, "http") + "/graphql" h := http.Header{} conn, resp, err := websocket.DefaultDialer.Dial(u, h) @@ -125,13 +119,13 @@ func (suite *GraphQLTestSuite) TestAccess() { suite.Run("websocket requests require csrf validation when csrf protection is enabled", func() { // init client - cfg := NewTestConfig() - cfg.Server.CSRF.Enabled = true - client := NewWebTestClient(suite.T(), NewTestApp(cfg)) + cfg := newTestConfig() + cfg.Dashboard.CSRF.Enabled = true + client := testutils.NewWebTestClient(suite.T(), newTestApp(cfg)) defer client.Teardown() // init websocket connection - u := "ws" + strings.TrimPrefix(client.testserver.URL, "http") + "/graphql" + u := "ws" + strings.TrimPrefix(client.Server.URL, "http") + "/graphql" h := http.Header{} conn, resp, err := websocket.DefaultDialer.Dial(u, h) @@ -152,47 +146,7 @@ func (suite *GraphQLTestSuite) TestAccess() { }) } -func (suite *GraphQLTestSuite) TestAuth() { - tests := []struct { - name string - mode config.AuthMode - wantCode int - }{ - { - "cluster", - config.AuthModeCluster, - http.StatusUnprocessableEntity, - }, - { - "token", - config.AuthModeToken, - http.StatusUnauthorized, - }, - } - - for _, tt := range tests { - suite.Run(tt.name, func() { - cfg := NewTestConfig() - cfg.AuthMode = tt.mode - app := NewTestApp(cfg) - - // request without token - w1 := httptest.NewRecorder() - r1 := httptest.NewRequest("GET", "/graphql", nil) - app.ServeHTTP(w1, r1) - suite.Equal(tt.wantCode, w1.Result().StatusCode) - - // request with token - w2 := httptest.NewRecorder() - r2 := httptest.NewRequest("GET", "/graphql", nil) - r2.Header.Set("Authorization", "Bearer xxx") - app.ServeHTTP(w2, r2) - suite.Equal(http.StatusUnprocessableEntity, w2.Result().StatusCode) - }) - } -} - // test runner func TestGraphQLHandlers(t *testing.T) { - suite.Run(t, new(GraphQLTestSuite)) + suite.Run(t, new(graphQLTestSuite)) } diff --git a/modules/dashboard/pkg/app/helpers.go b/modules/dashboard/pkg/app/helpers.go new file mode 100644 index 00000000..186fe543 --- /dev/null +++ b/modules/dashboard/pkg/app/helpers.go @@ -0,0 +1,77 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package app + +import ( + "context" + "fmt" + + clusterapi "github.com/kubetail-org/kubetail/modules/dashboard/internal/cluster-api" + "github.com/kubetail-org/kubetail/modules/dashboard/internal/k8shelpers" + "github.com/kubetail-org/kubetail/modules/shared/config" + authv1 "k8s.io/api/authentication/v1" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +const k8sTokenSessionKey = "k8sToken" + +const k8sTokenGinKey = "k8sToken" + +// newClusterAPIProxy +func newClusterAPIProxy(cfg *config.Config, cm k8shelpers.ConnectionManager, pathPrefix string) (clusterapi.Proxy, error) { + // Initialize new ClusterAPI proxy depending on environment + switch cfg.Dashboard.Environment { + case config.EnvironmentDesktop: + return clusterapi.NewDesktopProxy(cm, pathPrefix) + case config.EnvironmentCluster: + return clusterapi.NewInClusterProxy(cfg.Dashboard.ClusterAPIEndpoint, pathPrefix) + default: + return nil, fmt.Errorf("env not supported: %s", cfg.Dashboard.Environment) + } +} + +// queryHelpers interface +type queryHelpers interface { + HasAccess(ctx context.Context, token string) (*authv1.TokenReview, error) +} + +// Represents implementation of queryHelpers +type realQueryHelpers struct { + cm k8shelpers.ConnectionManager +} + +// Create new k8sQueryHelpers instance +func newRealQueryHelpers(cm k8shelpers.ConnectionManager) *realQueryHelpers { + return &realQueryHelpers{cm} +} + +// HasAccess +func (qh *realQueryHelpers) HasAccess(ctx context.Context, token string) (*authv1.TokenReview, error) { + // Get client + clientset, err := qh.cm.GetOrCreateClientset(nil) + if err != nil { + return nil, err + } + + // Use Token service + tokenReview := &authv1.TokenReview{ + Spec: authv1.TokenReviewSpec{ + Token: token, + }, + } + + // Execute + return clientset.AuthenticationV1().TokenReviews().Create(ctx, tokenReview, metav1.CreateOptions{}) +} diff --git a/modules/dashboard/pkg/app/middleware.go b/modules/dashboard/pkg/app/middleware.go new file mode 100644 index 00000000..18c2eb81 --- /dev/null +++ b/modules/dashboard/pkg/app/middleware.go @@ -0,0 +1,102 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package app + +import ( + "context" + "net/http" + "strings" + + "github.com/gin-contrib/sessions" + "github.com/gin-gonic/gin" + + "github.com/kubetail-org/kubetail/modules/shared/config" + "github.com/kubetail-org/kubetail/modules/shared/k8shelpers" +) + +func authenticationMiddleware(mode config.AuthMode) gin.HandlerFunc { + return func(c *gin.Context) { + // continue if not in token mode + if mode != config.AuthModeToken { + c.Next() + return + } + + var token string + + // check cookie session + session := sessions.Default(c) + if val, ok := session.Get(k8sTokenSessionKey).(string); ok { + token = val + } + + // check Authorization header + header := c.GetHeader("Authorization") + if strings.HasPrefix(header, "Bearer ") { + token = strings.TrimPrefix(header, "Bearer ") + } + + // if present, add token to gin context + if token != "" { + // Add to gin context + c.Set(k8sTokenGinKey, token) + } + + // continue with the request + c.Next() + } +} + +/* +// Require token +func k8sTokenRequiredMiddleware(c *gin.Context) { + // set "Cache-Control: no-store" so that pages requiring authentication are not stored in the users browser cache + c.Header("Cache-Control", "no-store") + + token := c.GetString(k8sTokenGinKey) + if token == "" { + c.AbortWithStatus(http.StatusUnauthorized) + return + } + + c.Next() +} +*/ + +func k8sAuthenticationMiddleware(mode config.AuthMode) gin.HandlerFunc { + return func(c *gin.Context) { + // set "Cache-Control: no-store" so that pages aren't stored in the users browser cache + c.Header("Cache-Control", "no-store") + + // Get token from gin session + token := c.GetString(k8sTokenGinKey) + + // Reject unauthenticated requests if auth-mode: token + if mode == config.AuthModeToken && token == "" { + c.AbortWithStatus(http.StatusUnauthorized) + return + } + + // If token is present add to request context for Kubernetes requests downstream + if token != "" { + // Add to request context for kubernetes requests downstream + ctx := context.WithValue(c.Request.Context(), k8shelpers.K8STokenCtxKey, token) + + c.Request = c.Request.WithContext(ctx) + } + + c.Next() + } +} diff --git a/modules/server/pkg/ginapp/middleware_test.go b/modules/dashboard/pkg/app/middleware_test.go similarity index 75% rename from modules/server/pkg/ginapp/middleware_test.go rename to modules/dashboard/pkg/app/middleware_test.go index 6b28ed0b..29d54c54 100644 --- a/modules/server/pkg/ginapp/middleware_test.go +++ b/modules/dashboard/pkg/app/middleware_test.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package ginapp +package app import ( "net/http" @@ -24,7 +24,7 @@ import ( "github.com/gin-gonic/gin" "github.com/stretchr/testify/assert" - "github.com/kubetail-org/kubetail/modules/common/config" + "github.com/kubetail-org/kubetail/modules/shared/config" ) func TestAuthenticationMiddleware(t *testing.T) { @@ -35,10 +35,10 @@ func TestAuthenticationMiddleware(t *testing.T) { hasBearerToken bool wantContextHasToken bool }{ - {"cluster-mode without tokens", config.AuthModeCluster, false, false, false}, - {"cluster-mode with session token", config.AuthModeCluster, true, false, false}, - {"cluster-mode with bearer token", config.AuthModeCluster, false, true, false}, - {"cluster-mode with both tokens", config.AuthModeCluster, true, true, false}, + {"auto-mode without tokens", config.AuthModeAuto, false, false, false}, + {"auto-mode with session token", config.AuthModeAuto, true, false, false}, + {"auto-mode with bearer token", config.AuthModeAuto, false, true, false}, + {"auto-mode with both tokens", config.AuthModeAuto, true, true, false}, {"token-mode without tokens", config.AuthModeToken, false, false, false}, {"token-mode with session token", config.AuthModeToken, true, false, true}, {"token-mode with bearer token", config.AuthModeToken, false, true, true}, @@ -67,7 +67,7 @@ func TestAuthenticationMiddleware(t *testing.T) { // custom middleware to check result router.Use(func(c *gin.Context) { - token, exists := c.Get(k8sTokenCtxKey) + token, exists := c.Get(k8sTokenSessionKey) if tt.wantContextHasToken { assert.Equal(t, true, exists) @@ -104,11 +104,15 @@ func TestAuthenticationMiddleware(t *testing.T) { func TestK8sTokenRequiredMiddleware(t *testing.T) { tests := []struct { - name string - hasToken bool + name string + setMode config.AuthMode + setHasToken bool + wantStatusCode int }{ - {"Request with token", true}, - {"Request without token", false}, + {"auto-mode with session token", config.AuthModeAuto, true, http.StatusOK}, + {"auto-mode without session token", config.AuthModeAuto, false, http.StatusOK}, + {"token-mode with session token", config.AuthModeToken, true, http.StatusOK}, + {"token-mode without session token", config.AuthModeToken, false, http.StatusUnauthorized}, } for _, tt := range tests { @@ -118,14 +122,15 @@ func TestK8sTokenRequiredMiddleware(t *testing.T) { // custom middleware to set value router.Use(func(c *gin.Context) { - if tt.hasToken { - c.Set(k8sTokenCtxKey, "xxx") + if tt.setHasToken { + c.Set(k8sTokenGinKey, "xxx") } + c.Next() }) // add middleware - router.Use(k8sTokenRequiredMiddleware) + router.Use(k8sAuthenticationMiddleware(tt.setMode)) // add route for testing router.GET("/", func(c *gin.Context) { @@ -140,11 +145,7 @@ func TestK8sTokenRequiredMiddleware(t *testing.T) { // check result resp := w.Result() assert.Equal(t, "no-store", resp.Header["Cache-Control"][0]) - if tt.hasToken { - assert.Equal(t, http.StatusOK, resp.StatusCode) - } else { - assert.Equal(t, http.StatusUnauthorized, resp.StatusCode) - } + assert.Equal(t, tt.wantStatusCode, resp.StatusCode) }) } } diff --git a/modules/dashboard/pkg/app/testutils_test.go b/modules/dashboard/pkg/app/testutils_test.go new file mode 100644 index 00000000..f55dd3ea --- /dev/null +++ b/modules/dashboard/pkg/app/testutils_test.go @@ -0,0 +1,83 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package app + +import ( + "context" + "net/http" + + "github.com/gin-gonic/gin" + "github.com/stretchr/testify/mock" + authv1 "k8s.io/api/authentication/v1" + + "github.com/kubetail-org/kubetail/modules/shared/config" +) + +func init() { + gin.SetMode(gin.TestMode) +} + +// Create new base config for testing +func newTestConfig() *config.Config { + cfg := config.Config{} + cfg.Dashboard.BasePath = "/" + cfg.Dashboard.Logging.AccessLog.Enabled = false + cfg.Dashboard.Session.Secret = "TESTSESSIONSECRET" + cfg.Dashboard.Session.Cookie.Name = "session" + cfg.Dashboard.CSRF.Enabled = false + cfg.Dashboard.CSRF.Secret = "TESTCSRFSECRET" + return &cfg +} + +// Create new app for testing +func newTestApp(cfg *config.Config) *App { + if cfg == nil { + cfg = newTestConfig() + } + + app, err := NewApp(cfg) + if err != nil { + panic(err) + } + + return app +} + +// Cookie helper method +func getCookie(cookies []*http.Cookie, name string) *http.Cookie { + for _, cookie := range cookies { + if cookie.Name == name { + return cookie + } + } + return nil +} + +// Represents mock for queryHelpers +type mockQueryHelpers struct { + mock.Mock +} + +// HasAccess +func (m *mockQueryHelpers) HasAccess(ctx context.Context, token string) (*authv1.TokenReview, error) { + ret := m.Called(ctx, token) + + var r0 *authv1.TokenReview + if ret.Get(0) != nil { + r0 = ret.Get(0).(*authv1.TokenReview) + } + + return r0, ret.Error(1) +} diff --git a/modules/server/pkg/ginapp/website.go b/modules/dashboard/pkg/app/website.go similarity index 80% rename from modules/server/pkg/ginapp/website.go rename to modules/dashboard/pkg/app/website.go index 7fa9fd16..7ba19a7c 100644 --- a/modules/server/pkg/ginapp/website.go +++ b/modules/dashboard/pkg/app/website.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package ginapp +package app import ( "encoding/json" @@ -24,22 +24,19 @@ import ( "github.com/gin-gonic/gin" zlog "github.com/rs/zerolog/log" - "github.com/kubetail-org/kubetail/modules/common/config" + "github.com/kubetail-org/kubetail/modules/shared/config" ) -type WebsiteHandlers struct { - *GinApp - //embedFS *embed.FS +type websiteHandlers struct { + *App websiteFS fs.FS } -func (app *WebsiteHandlers) InitStaticHandlers(root *gin.RouterGroup) { +func (app *websiteHandlers) InitStaticHandlers(root *gin.RouterGroup) { // add top-level files httpFS := http.FS(app.websiteFS) root.StaticFileFS("/favicon.ico", "/favicon.ico", httpFS) root.StaticFileFS("/favicon.svg", "/favicon.svg", httpFS) - root.StaticFileFS("/robots.txt", "/robots.txt", httpFS) - root.StaticFileFS("/graphiql", "/graphiql.html", httpFS) // add assets directory if assetsFS, err := fs.Sub(app.websiteFS, "assets"); err == nil { @@ -47,7 +44,7 @@ func (app *WebsiteHandlers) InitStaticHandlers(root *gin.RouterGroup) { } } -func (app *WebsiteHandlers) EndpointHandler(cfg *config.Config) gin.HandlerFunc { +func (app *websiteHandlers) EndpointHandler(cfg *config.Config) gin.HandlerFunc { // read manifest file manifestFile, err := app.websiteFS.Open(".vite/manifest.json") if err != nil { @@ -69,8 +66,10 @@ func (app *WebsiteHandlers) EndpointHandler(cfg *config.Config) gin.HandlerFunc // define runtime config for react app runtimeConfig := map[string]interface{}{ - "basePath": cfg.Server.BasePath, - "extensionsEnabled": cfg.Server.ExtensionsEnabled, + "authMode": cfg.Dashboard.AuthMode, + "basePath": cfg.Dashboard.BasePath, + "environment": cfg.Dashboard.Environment, + "clusterAPIEnabled": cfg.Dashboard.UI.ClusterAPIEnabled, } runtimeConfigBytes, err := json.Marshal(runtimeConfig) diff --git a/modules/server/pkg/ginapp/website_test.go b/modules/dashboard/pkg/app/website_test.go similarity index 81% rename from modules/server/pkg/ginapp/website_test.go rename to modules/dashboard/pkg/app/website_test.go index 2d9530cd..29b3bde3 100644 --- a/modules/server/pkg/ginapp/website_test.go +++ b/modules/dashboard/pkg/app/website_test.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package ginapp +package app import ( "encoding/json" @@ -26,19 +26,24 @@ import ( "github.com/stretchr/testify/suite" ) -type WebsiteTestSuite struct { - WebTestSuiteBase +type websiteTestSuite struct { + suite.Suite } -func (suite *WebsiteTestSuite) TestMissing() { +// test runner +func TestWebsiteHandlers(t *testing.T) { + suite.Run(t, new(websiteTestSuite)) +} + +func (suite *websiteTestSuite) TestMissing() { suite.Run("missing manifest should return 404", func() { // empty website directory websiteFS := fstest.MapFS{} - cfg := NewTestConfig() - app := NewTestApp(cfg) + cfg := newTestConfig() + app := newTestApp(cfg) - h := &WebsiteHandlers{app, websiteFS} + h := &websiteHandlers{app, websiteFS} app.GET("/website-test", h.EndpointHandler(cfg)) w := httptest.NewRecorder() @@ -49,7 +54,7 @@ func (suite *WebsiteTestSuite) TestMissing() { }) } -func (suite *WebsiteTestSuite) TestTemplate() { +func (suite *websiteTestSuite) TestTemplate() { suite.Run("handles manifest['index.html']['file'] argument", func() { websiteFS := suite.createManifest(gin.H{ "index.html": gin.H{ @@ -59,10 +64,10 @@ func (suite *WebsiteTestSuite) TestTemplate() { }, }) - cfg := NewTestConfig() - app := NewTestApp(cfg) + cfg := newTestConfig() + app := newTestApp(cfg) - h := &WebsiteHandlers{app, websiteFS} + h := &websiteHandlers{app, websiteFS} app.GET("/website-test", h.EndpointHandler(cfg)) w := httptest.NewRecorder() @@ -84,10 +89,10 @@ func (suite *WebsiteTestSuite) TestTemplate() { }, }) - cfg := NewTestConfig() - app := NewTestApp(cfg) + cfg := newTestConfig() + app := newTestApp(cfg) - h := &WebsiteHandlers{app, websiteFS} + h := &websiteHandlers{app, websiteFS} app.GET("/website-test", h.EndpointHandler(cfg)) w := httptest.NewRecorder() @@ -106,10 +111,10 @@ func (suite *WebsiteTestSuite) TestTemplate() { }, }) - cfg := NewTestConfig() - app := NewTestApp(cfg) + cfg := newTestConfig() + app := newTestApp(cfg) - h := &WebsiteHandlers{app, websiteFS} + h := &websiteHandlers{app, websiteFS} app.GET("/website-test", h.EndpointHandler(cfg)) w := httptest.NewRecorder() @@ -128,11 +133,11 @@ func (suite *WebsiteTestSuite) TestTemplate() { }, }) - cfg := NewTestConfig() - cfg.Server.BasePath = "/my-base-path" - app := NewTestApp(cfg) + cfg := newTestConfig() + cfg.Dashboard.BasePath = "/my-base-path" + app := newTestApp(cfg) - h := &WebsiteHandlers{app, websiteFS} + h := &websiteHandlers{app, websiteFS} app.GET("/website-test", h.EndpointHandler(cfg)) w := httptest.NewRecorder() @@ -151,11 +156,11 @@ func (suite *WebsiteTestSuite) TestTemplate() { }, }) - cfg := NewTestConfig() - cfg.Server.BasePath = "/my-base-path" - app := NewTestApp(cfg) + cfg := newTestConfig() + cfg.Dashboard.BasePath = "/my-base-path" + app := newTestApp(cfg) - h := &WebsiteHandlers{app, websiteFS} + h := &websiteHandlers{app, websiteFS} app.GET("/website-test", h.EndpointHandler(cfg)) w := httptest.NewRecorder() @@ -166,7 +171,7 @@ func (suite *WebsiteTestSuite) TestTemplate() { }) } -func (suite *WebsiteTestSuite) createManifest(manifest gin.H) fs.FS { +func (suite *websiteTestSuite) createManifest(manifest gin.H) fs.FS { // encode to json manifestBytes, err := json.Marshal(manifest) if err != nil { @@ -179,8 +184,3 @@ func (suite *WebsiteTestSuite) createManifest(manifest gin.H) fs.FS { }, } } - -// test runner -func TestWebsiteHandlers(t *testing.T) { - suite.Run(t, new(WebsiteTestSuite)) -} diff --git a/dashboard-ui/public/graphiql.html b/modules/dashboard/static/graphiql.html similarity index 100% rename from dashboard-ui/public/graphiql.html rename to modules/dashboard/static/graphiql.html diff --git a/dashboard-ui/public/robots.txt b/modules/dashboard/static/robots.txt similarity index 100% rename from dashboard-ui/public/robots.txt rename to modules/dashboard/static/robots.txt diff --git a/modules/server/templates/index.tmpl b/modules/dashboard/templates/index.tmpl similarity index 82% rename from modules/server/templates/index.tmpl rename to modules/dashboard/templates/index.tmpl index 83ec5c66..7876b7b4 100644 --- a/modules/server/templates/index.tmpl +++ b/modules/dashboard/templates/index.tmpl @@ -2,7 +2,7 @@ - + Kubetail | Log Viewer {{- $index := (index .manifest "index.html") }} - + {{- range $importRef := $index.imports }} {{- $import := index $.manifest $importRef }} - + {{- end }} {{- range $css := $index.css }} - + {{- end }} diff --git a/modules/dashboard/tools.go b/modules/dashboard/tools.go new file mode 100644 index 00000000..4f04ccd8 --- /dev/null +++ b/modules/dashboard/tools.go @@ -0,0 +1,9 @@ +//go:build tools +// +build tools + +package tools + +import ( + _ "github.com/99designs/gqlgen" + _ "github.com/99designs/gqlgen/graphql/introspection" +) diff --git a/modules/server/website/.gitkeep b/modules/dashboard/website/.gitkeep similarity index 100% rename from modules/server/website/.gitkeep rename to modules/dashboard/website/.gitkeep diff --git a/modules/go.work b/modules/go.work index cdc1ca53..0fc6f9f2 100644 --- a/modules/go.work +++ b/modules/go.work @@ -1,8 +1,11 @@ -go 1.22.7 +go 1.23.0 + +toolchain go1.23.4 use ( - ./agent ./cli - ./common - ./server + ./cluster-agent + ./cluster-api + ./dashboard + ./shared ) diff --git a/modules/go.work.sum b/modules/go.work.sum index ddf2b798..90d52ea4 100644 --- a/modules/go.work.sum +++ b/modules/go.work.sum @@ -1,605 +1,2289 @@ -cel.dev/expr v0.16.0 h1:yloc84fytn4zmJX2GU3TkXGsaieaV7dQ057Qs4sIG2Y= +bazil.org/fuse v0.0.0-20160811212531-371fbbdaa898/go.mod h1:Xbm+BRKSBEpa4q4hTSxohYNQpsxXPbPry4JJWOB3LB8= +bazil.org/fuse v0.0.0-20200407214033-5883e5a4b512/go.mod h1:FbcW6z/2VytnFDhZfumh8Ss8zxHE6qpMP5sHTRe0EaM= cel.dev/expr v0.16.0/go.mod h1:TRSuuV7DlVCE/uwv5QbAiW/v8l5O8C4eEPHeu7gf7Sg= +cel.dev/expr v0.16.1/go.mod h1:AsGA5zb3WruAEQeQng1RZdGEXmBj0jvMWh6l5SnNuC8= +cel.dev/expr v0.16.2/go.mod h1:gXngZQMkWJoSbE8mOzehJlXQyubn/Vg0vR9/F3W7iw8= +cel.dev/expr v0.18.0/go.mod h1:MrpN08Q+lEBs+bGYdLxxHkZoUSsCp0nSKTs0nTymJgw= +cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= +cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= +cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= +cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= +cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= +cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= +cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= +cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= +cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= +cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= +cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= cloud.google.com/go v0.112.0/go.mod h1:3jEEVwZ/MHU4djK5t5RHuKOA/GbLddgTdVubX1qnPD4= -cloud.google.com/go v0.112.1 h1:uJSeirPke5UNZHIb4SxfZklVSiWWVqW4oXlETwZziwM= cloud.google.com/go v0.112.1/go.mod h1:+Vbu+Y1UU+I1rjmzeMOb/8RfkKJK2Gyxi1X6jJCZLo4= +cloud.google.com/go v0.116.0/go.mod h1:cEPSRWPzZEswwdr9BxE6ChEn01dWlTaF05LiC2Xs70U= cloud.google.com/go/accessapproval v1.7.5/go.mod h1:g88i1ok5dvQ9XJsxpUInWWvUBrIZhyPDPbk4T01OoJ0= +cloud.google.com/go/accessapproval v1.8.2/go.mod h1:aEJvHZtpjqstffVwF/2mCXXSQmpskyzvw6zKLvLutZM= cloud.google.com/go/accesscontextmanager v1.8.5/go.mod h1:TInEhcZ7V9jptGNqN3EzZ5XMhT6ijWxTGjzyETwmL0Q= +cloud.google.com/go/accesscontextmanager v1.9.2/go.mod h1:T0Sw/PQPyzctnkw1pdmGAKb7XBA84BqQzH0fSU7wzJU= cloud.google.com/go/aiplatform v1.60.0/go.mod h1:eTlGuHOahHprZw3Hio5VKmtThIOak5/qy6pzdsqcQnM= +cloud.google.com/go/aiplatform v1.69.0/go.mod h1:nUsIqzS3khlnWvpjfJbP+2+h+VrFyYsTm7RNCAViiY8= cloud.google.com/go/analytics v0.23.0/go.mod h1:YPd7Bvik3WS95KBok2gPXDqQPHy08TsCQG6CdUCb+u0= +cloud.google.com/go/analytics v0.25.2/go.mod h1:th0DIunqrhI1ZWVlT3PH2Uw/9ANX8YHfFDEPqf/+7xM= cloud.google.com/go/apigateway v1.6.5/go.mod h1:6wCwvYRckRQogyDDltpANi3zsCDl6kWi0b4Je+w2UiI= +cloud.google.com/go/apigateway v1.7.2/go.mod h1:+weId+9aR9J6GRwDka7jIUSrKEX60XGcikX7dGU8O7M= cloud.google.com/go/apigeeconnect v1.6.5/go.mod h1:MEKm3AiT7s11PqTfKE3KZluZA9O91FNysvd3E6SJ6Ow= +cloud.google.com/go/apigeeconnect v1.7.2/go.mod h1:he/SWi3A63fbyxrxD6jb67ak17QTbWjva1TFbT5w8Kw= cloud.google.com/go/apigeeregistry v0.8.3/go.mod h1:aInOWnqF4yMQx8kTjDqHNXjZGh/mxeNlAf52YqtASUs= +cloud.google.com/go/apigeeregistry v0.9.2/go.mod h1:A5n/DwpG5NaP2fcLYGiFA9QfzpQhPRFNATO1gie8KM8= cloud.google.com/go/appengine v1.8.5/go.mod h1:uHBgNoGLTS5di7BvU25NFDuKa82v0qQLjyMJLuPQrVo= +cloud.google.com/go/appengine v1.9.2/go.mod h1:bK4dvmMG6b5Tem2JFZcjvHdxco9g6t1pwd3y/1qr+3s= cloud.google.com/go/area120 v0.8.5/go.mod h1:BcoFCbDLZjsfe4EkCnEq1LKvHSK0Ew/zk5UFu6GMyA0= +cloud.google.com/go/area120 v0.9.2/go.mod h1:Ar/KPx51UbrTWGVGgGzFnT7hFYQuk/0VOXkvHdTbQMI= cloud.google.com/go/artifactregistry v1.14.7/go.mod h1:0AUKhzWQzfmeTvT4SjfI4zjot72EMfrkvL9g9aRjnnM= +cloud.google.com/go/artifactregistry v1.16.0/go.mod h1:LunXo4u2rFtvJjrGjO0JS+Gs9Eco2xbZU6JVJ4+T8Sk= cloud.google.com/go/asset v1.17.2/go.mod h1:SVbzde67ehddSoKf5uebOD1sYw8Ab/jD/9EIeWg99q4= +cloud.google.com/go/asset v1.20.3/go.mod h1:797WxTDwdnFAJzbjZ5zc+P5iwqXc13yO9DHhmS6wl+o= cloud.google.com/go/assuredworkloads v1.11.5/go.mod h1:FKJ3g3ZvkL2D7qtqIGnDufFkHxwIpNM9vtmhvt+6wqk= +cloud.google.com/go/assuredworkloads v1.12.2/go.mod h1:/WeRr/q+6EQYgnoYrqCVgw7boMoDfjXZZev3iJxs2Iw= +cloud.google.com/go/auth v0.13.0/go.mod h1:COOjD9gwfKNKz+IIduatIhYJQIc0mG3H102r/EMxX6Q= +cloud.google.com/go/auth/oauth2adapt v0.2.6/go.mod h1:AlmsELtlEBnaNTL7jCj8VQFLy6mbZv0s4Q7NGBeQ5E8= cloud.google.com/go/automl v1.13.5/go.mod h1:MDw3vLem3yh+SvmSgeYUmUKqyls6NzSumDm9OJ3xJ1Y= +cloud.google.com/go/automl v1.14.2/go.mod h1:mIat+Mf77W30eWQ/vrhjXsXaRh8Qfu4WiymR0hR6Uxk= cloud.google.com/go/baremetalsolution v1.2.4/go.mod h1:BHCmxgpevw9IEryE99HbYEfxXkAEA3hkMJbYYsHtIuY= +cloud.google.com/go/baremetalsolution v1.3.2/go.mod h1:3+wqVRstRREJV/puwaKAH3Pnn7ByreZG2aFRsavnoBQ= cloud.google.com/go/batch v1.8.0/go.mod h1:k8V7f6VE2Suc0zUM4WtoibNrA6D3dqBpB+++e3vSGYc= +cloud.google.com/go/batch v1.11.2/go.mod h1:ehsVs8Y86Q4K+qhEStxICqQnNqH8cqgpCxx89cmU5h4= cloud.google.com/go/beyondcorp v1.0.4/go.mod h1:Gx8/Rk2MxrvWfn4WIhHIG1NV7IBfg14pTKv1+EArVcc= +cloud.google.com/go/beyondcorp v1.1.2/go.mod h1:q6YWSkEsSZTU2WDt1qtz6P5yfv79wgktGtNbd0FJTLI= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= +cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= +cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= +cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= +cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= cloud.google.com/go/bigquery v1.59.1/go.mod h1:VP1UJYgevyTwsV7desjzNzDND5p6hZB+Z8gZJN1GQUc= +cloud.google.com/go/bigquery v1.64.0/go.mod h1:gy8Ooz6HF7QmA+TRtX8tZmXBKH5mCFBwUApGAb3zI7Y= +cloud.google.com/go/bigtable v1.33.0/go.mod h1:HtpnH4g25VT1pejHRtInlFPnN5sjTxbQlsYBjh9t5l0= cloud.google.com/go/billing v1.18.2/go.mod h1:PPIwVsOOQ7xzbADCwNe8nvK776QpfrOAUkvKjCUcpSE= +cloud.google.com/go/billing v1.19.2/go.mod h1:AAtih/X2nka5mug6jTAq8jfh1nPye0OjkHbZEZgU59c= cloud.google.com/go/binaryauthorization v1.8.1/go.mod h1:1HVRyBerREA/nhI7yLang4Zn7vfNVA3okoAR9qYQJAQ= +cloud.google.com/go/binaryauthorization v1.9.2/go.mod h1:T4nOcRWi2WX4bjfSRXJkUnpliVIqjP38V88Z10OvEv4= cloud.google.com/go/certificatemanager v1.7.5/go.mod h1:uX+v7kWqy0Y3NG/ZhNvffh0kuqkKZIXdvlZRO7z0VtM= +cloud.google.com/go/certificatemanager v1.9.2/go.mod h1:PqW+fNSav5Xz8bvUnJpATIRo1aaABP4mUg/7XIeAn6c= cloud.google.com/go/channel v1.17.5/go.mod h1:FlpaOSINDAXgEext0KMaBq/vwpLMkkPAw9b2mApQeHc= +cloud.google.com/go/channel v1.19.1/go.mod h1:ungpP46l6XUeuefbA/XWpWWnAY3897CSRPXUbDstwUo= cloud.google.com/go/cloudbuild v1.15.1/go.mod h1:gIofXZSu+XD2Uy+qkOrGKEx45zd7s28u/k8f99qKals= +cloud.google.com/go/cloudbuild v1.19.0/go.mod h1:ZGRqbNMrVGhknIIjwASa6MqoRTOpXIVMSI+Ew5DMPuY= cloud.google.com/go/clouddms v1.7.4/go.mod h1:RdrVqoFG9RWI5AvZ81SxJ/xvxPdtcRhFotwdE79DieY= +cloud.google.com/go/clouddms v1.8.2/go.mod h1:pe+JSp12u4mYOkwXpSMouyCCuQHL3a6xvWH2FgOcAt4= cloud.google.com/go/cloudtasks v1.12.6/go.mod h1:b7c7fe4+TJsFZfDyzO51F7cjq7HLUlRi/KZQLQjDsaY= +cloud.google.com/go/cloudtasks v1.13.2/go.mod h1:2pyE4Lhm7xY8GqbZKLnYk7eeuh8L0JwAvXx1ecKxYu8= cloud.google.com/go/compute v1.23.4/go.mod h1:/EJMj55asU6kAFnuZET8zqgwgJ9FvXWXOkkfQZa4ioI= -cloud.google.com/go/compute v1.24.0 h1:phWcR2eWzRJaL/kOiJwfFsPs4BaKq1j6vnpZrc1YlVg= cloud.google.com/go/compute v1.24.0/go.mod h1:kw1/T+h/+tK2LJK0wiPPx1intgdAM3j/g3hFDlscY40= cloud.google.com/go/compute v1.25.1/go.mod h1:oopOIR53ly6viBYxaDhBfJwzUAxf1zE//uf3IB011ls= +cloud.google.com/go/compute v1.29.0/go.mod h1:HFlsDurE5DpQZClAGf/cYh+gxssMhBxBovZDYkEn/Og= cloud.google.com/go/compute/metadata v0.2.3/go.mod h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA= cloud.google.com/go/compute/metadata v0.3.0/go.mod h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k= -cloud.google.com/go/compute/metadata v0.5.0 h1:Zr0eK8JbFv6+Wi4ilXAR8FJ3wyNdpxHKJNPos6LTZOY= cloud.google.com/go/compute/metadata v0.5.0/go.mod h1:aHnloV2TPI38yx4s9+wAZhHykWvVCfu7hQbF+9CWoiY= +cloud.google.com/go/compute/metadata v0.5.2/go.mod h1:C66sj2AluDcIqakBq/M8lw8/ybHgOZqin2obFxa/E5k= +cloud.google.com/go/compute/metadata v0.6.0/go.mod h1:FjyFAW1MW0C203CEOMDTu3Dk1FlqW3Rga40jzHL4hfg= cloud.google.com/go/contactcenterinsights v1.13.0/go.mod h1:ieq5d5EtHsu8vhe2y3amtZ+BE+AQwX5qAy7cpo0POsI= +cloud.google.com/go/contactcenterinsights v1.15.1/go.mod h1:cFGxDVm/OwEVAHbU9UO4xQCtQFn0RZSrSUcF/oJ0Bbs= cloud.google.com/go/container v1.31.0/go.mod h1:7yABn5s3Iv3lmw7oMmyGbeV6tQj86njcTijkkGuvdZA= +cloud.google.com/go/container v1.42.0/go.mod h1:YL6lDgCUi3frIWNIFU9qrmF7/6K1EYrtspmFTyyqJ+k= cloud.google.com/go/containeranalysis v0.11.4/go.mod h1:cVZT7rXYBS9NG1rhQbWL9pWbXCKHWJPYraE8/FTSYPE= +cloud.google.com/go/containeranalysis v0.13.2/go.mod h1:AiKvXJkc3HiqkHzVIt6s5M81wk+q7SNffc6ZlkTDgiE= cloud.google.com/go/datacatalog v1.19.3/go.mod h1:ra8V3UAsciBpJKQ+z9Whkxzxv7jmQg1hfODr3N3YPJ4= +cloud.google.com/go/datacatalog v1.23.0/go.mod h1:9Wamq8TDfL2680Sav7q3zEhBJSPBrDxJU8WtPJ25dBM= cloud.google.com/go/dataflow v0.9.5/go.mod h1:udl6oi8pfUHnL0z6UN9Lf9chGqzDMVqcYTcZ1aPnCZQ= +cloud.google.com/go/dataflow v0.10.2/go.mod h1:+HIb4HJxDCZYuCqDGnBHZEglh5I0edi/mLgVbxDf0Ag= cloud.google.com/go/dataform v0.9.2/go.mod h1:S8cQUwPNWXo7m/g3DhWHsLBoufRNn9EgFrMgne2j7cI= +cloud.google.com/go/dataform v0.10.2/go.mod h1:oZHwMBxG6jGZCVZqqMx+XWXK+dA/ooyYiyeRbUxI15M= cloud.google.com/go/datafusion v1.7.5/go.mod h1:bYH53Oa5UiqahfbNK9YuYKteeD4RbQSNMx7JF7peGHc= +cloud.google.com/go/datafusion v1.8.2/go.mod h1:XernijudKtVG/VEvxtLv08COyVuiYPraSxm+8hd4zXA= cloud.google.com/go/datalabeling v0.8.5/go.mod h1:IABB2lxQnkdUbMnQaOl2prCOfms20mcPxDBm36lps+s= +cloud.google.com/go/datalabeling v0.9.2/go.mod h1:8me7cCxwV/mZgYWtRAd3oRVGFD6UyT7hjMi+4GRyPpg= cloud.google.com/go/dataplex v1.14.2/go.mod h1:0oGOSFlEKef1cQeAHXy4GZPB/Ife0fz/PxBf+ZymA2U= +cloud.google.com/go/dataplex v1.19.2/go.mod h1:vsxxdF5dgk3hX8Ens9m2/pMNhQZklUhSgqTghZtF1v4= cloud.google.com/go/dataproc v1.12.0/go.mod h1:zrF3aX0uV3ikkMz6z4uBbIKyhRITnxvr4i3IjKsKrw4= cloud.google.com/go/dataproc/v2 v2.4.0/go.mod h1:3B1Ht2aRB8VZIteGxQS/iNSJGzt9+CA0WGnDVMEm7Z4= +cloud.google.com/go/dataproc/v2 v2.10.0/go.mod h1:HD16lk4rv2zHFhbm8gGOtrRaFohMDr9f0lAUMLmg1PM= cloud.google.com/go/dataqna v0.8.5/go.mod h1:vgihg1mz6n7pb5q2YJF7KlXve6tCglInd6XO0JGOlWM= +cloud.google.com/go/dataqna v0.9.2/go.mod h1:WCJ7pwD0Mi+4pIzFQ+b2Zqy5DcExycNKHuB+VURPPgs= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= cloud.google.com/go/datastore v1.15.0/go.mod h1:GAeStMBIt9bPS7jMJA85kgkpsMkvseWWXiaHya9Jes8= +cloud.google.com/go/datastore v1.20.0/go.mod h1:uFo3e+aEpRfHgtp5pp0+6M0o147KoPaYNaPAKpfh8Ew= cloud.google.com/go/datastream v1.10.4/go.mod h1:7kRxPdxZxhPg3MFeCSulmAJnil8NJGGvSNdn4p1sRZo= +cloud.google.com/go/datastream v1.11.2/go.mod h1:RnFWa5zwR5SzHxeZGJOlQ4HKBQPcjGfD219Qy0qfh2k= cloud.google.com/go/deploy v1.17.1/go.mod h1:SXQyfsXrk0fBmgBHRzBjQbZhMfKZ3hMQBw5ym7MN/50= +cloud.google.com/go/deploy v1.25.0/go.mod h1:h9uVCWxSDanXUereI5WR+vlZdbPJ6XGy+gcfC25v5rM= cloud.google.com/go/dialogflow v1.49.0/go.mod h1:dhVrXKETtdPlpPhE7+2/k4Z8FRNUp6kMV3EW3oz/fe0= +cloud.google.com/go/dialogflow v1.60.0/go.mod h1:PjsrI+d2FI4BlGThxL0+Rua/g9vLI+2A1KL7s/Vo3pY= cloud.google.com/go/dlp v1.11.2/go.mod h1:9Czi+8Y/FegpWzgSfkRlyz+jwW6Te9Rv26P3UfU/h/w= +cloud.google.com/go/dlp v1.20.0/go.mod h1:nrGsA3r8s7wh2Ct9FWu69UjBObiLldNyQda2RCHgdaY= cloud.google.com/go/documentai v1.25.0/go.mod h1:ftLnzw5VcXkLItp6pw1mFic91tMRyfv6hHEY5br4KzY= +cloud.google.com/go/documentai v1.35.0/go.mod h1:ZotiWUlDE8qXSUqkJsGMQqVmfTMYATwJEYqbPXTR9kk= cloud.google.com/go/domains v0.9.5/go.mod h1:dBzlxgepazdFhvG7u23XMhmMKBjrkoUNaw0A8AQB55Y= +cloud.google.com/go/domains v0.10.2/go.mod h1:oL0Wsda9KdJvvGNsykdalHxQv4Ri0yfdDkIi3bzTUwk= cloud.google.com/go/edgecontainer v1.1.5/go.mod h1:rgcjrba3DEDEQAidT4yuzaKWTbkTI5zAMu3yy6ZWS0M= +cloud.google.com/go/edgecontainer v1.4.0/go.mod h1:Hxj5saJT8LMREmAI9tbNTaBpW5loYiWFyisCjDhzu88= cloud.google.com/go/errorreporting v0.3.0/go.mod h1:xsP2yaAp+OAW4OIm60An2bbLpqIhKXdWR/tawvl7QzU= +cloud.google.com/go/errorreporting v0.3.1/go.mod h1:6xVQXU1UuntfAf+bVkFk6nld41+CPyF2NSPCyXE3Ztk= cloud.google.com/go/essentialcontacts v1.6.6/go.mod h1:XbqHJGaiH0v2UvtuucfOzFXN+rpL/aU5BCZLn4DYl1Q= +cloud.google.com/go/essentialcontacts v1.7.2/go.mod h1:NoCBlOIVteJFJU+HG9dIG/Cc9kt1K9ys9mbOaGPUmPc= cloud.google.com/go/eventarc v1.13.4/go.mod h1:zV5sFVoAa9orc/52Q+OuYUG9xL2IIZTbbuTHC6JSY8s= +cloud.google.com/go/eventarc v1.15.0/go.mod h1:PAd/pPIZdJtJQFJI1yDEUms1mqohdNuM1BFEVHHlVFg= cloud.google.com/go/filestore v1.8.1/go.mod h1:MbN9KcaM47DRTIuLfQhJEsjaocVebNtNQhSLhKCF5GM= +cloud.google.com/go/filestore v1.9.2/go.mod h1:I9pM7Hoetq9a7djC1xtmtOeHSUYocna09ZP6x+PG1Xw= +cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= cloud.google.com/go/firestore v1.14.0/go.mod h1:96MVaHLsEhbvkBEdZgfN+AS/GIkco1LRpH9Xp9YZfzQ= -cloud.google.com/go/firestore v1.15.0 h1:/k8ppuWOtNuDHt2tsRV42yI21uaGnKDEQnRFeBpbFF8= cloud.google.com/go/firestore v1.15.0/go.mod h1:GWOxFXcv8GZUtYpWHw/w6IuYNux/BtmeVTMmjrm4yhk= +cloud.google.com/go/firestore v1.17.0/go.mod h1:69uPx1papBsY8ZETooc71fOhoKkD70Q1DwMrtKuOT/Y= cloud.google.com/go/functions v1.16.0/go.mod h1:nbNpfAG7SG7Duw/o1iZ6ohvL7mc6MapWQVpqtM29n8k= +cloud.google.com/go/functions v1.19.2/go.mod h1:SBzWwWuaFDLnUyStDAMEysVN1oA5ECLbP3/PfJ9Uk7Y= cloud.google.com/go/gkebackup v1.3.5/go.mod h1:KJ77KkNN7Wm1LdMopOelV6OodM01pMuK2/5Zt1t4Tvc= +cloud.google.com/go/gkebackup v1.6.2/go.mod h1:WsTSWqKJkGan1pkp5dS30oxb+Eaa6cLvxEUxKTUALwk= cloud.google.com/go/gkeconnect v0.8.5/go.mod h1:LC/rS7+CuJ5fgIbXv8tCD/mdfnlAadTaUufgOkmijuk= +cloud.google.com/go/gkeconnect v0.12.0/go.mod h1:zn37LsFiNZxPN4iO7YbUk8l/E14pAJ7KxpoXoxt7Ly0= cloud.google.com/go/gkehub v0.14.5/go.mod h1:6bzqxM+a+vEH/h8W8ec4OJl4r36laxTs3A/fMNHJ0wA= +cloud.google.com/go/gkehub v0.15.2/go.mod h1:8YziTOpwbM8LM3r9cHaOMy2rNgJHXZCrrmGgcau9zbQ= cloud.google.com/go/gkemulticloud v1.1.1/go.mod h1:C+a4vcHlWeEIf45IB5FFR5XGjTeYhF83+AYIpTy4i2Q= +cloud.google.com/go/gkemulticloud v1.4.1/go.mod h1:KRvPYcx53bztNwNInrezdfNF+wwUom8Y3FuJBwhvFpQ= cloud.google.com/go/grafeas v0.3.4/go.mod h1:A5m316hcG+AulafjAbPKXBO/+I5itU4LOdKO2R/uDIc= cloud.google.com/go/gsuiteaddons v1.6.5/go.mod h1:Lo4P2IvO8uZ9W+RaC6s1JVxo42vgy+TX5a6hfBZ0ubs= -cloud.google.com/go/iam v1.1.5 h1:1jTsCu4bcsNsE4iiqNT5SHwrDRCfRmIaaaVFhRveTJI= +cloud.google.com/go/gsuiteaddons v1.7.2/go.mod h1:GD32J2rN/4APilqZw4JKmwV84+jowYYMkEVwQEYuAWc= cloud.google.com/go/iam v1.1.5/go.mod h1:rB6P/Ic3mykPbFio+vo7403drjlgvoWfYpJhMXEbzv8= cloud.google.com/go/iam v1.1.6/go.mod h1:O0zxdPeGBoFdWW3HWmBxJsk0pfvNM/p/qa82rWOGTwI= +cloud.google.com/go/iam v1.2.2/go.mod h1:0Ys8ccaZHdI1dEUilwzqng/6ps2YB6vRsjIe00/+6JY= cloud.google.com/go/iap v1.9.4/go.mod h1:vO4mSq0xNf/Pu6E5paORLASBwEmphXEjgCFg7aeNu1w= +cloud.google.com/go/iap v1.10.2/go.mod h1:cClgtI09VIfazEK6VMJr6bX8KQfuQ/D3xqX+d0wrUlI= cloud.google.com/go/ids v1.4.5/go.mod h1:p0ZnyzjMWxww6d2DvMGnFwCsSxDJM666Iir1bK1UuBo= +cloud.google.com/go/ids v1.5.2/go.mod h1:P+ccDD96joXlomfonEdCnyrHvE68uLonc7sJBPVM5T0= cloud.google.com/go/iot v1.7.5/go.mod h1:nq3/sqTz3HGaWJi1xNiX7F41ThOzpud67vwk0YsSsqs= +cloud.google.com/go/iot v1.8.2/go.mod h1:UDwVXvRD44JIcMZr8pzpF3o4iPsmOO6fmbaIYCAg1ww= cloud.google.com/go/kms v1.15.7/go.mod h1:ub54lbsa6tDkUwnu4W7Yt1aAIFLnspgh0kPGToDukeI= +cloud.google.com/go/kms v1.20.1/go.mod h1:LywpNiVCvzYNJWS9JUcGJSVTNSwPwi0vBAotzDqn2nc= cloud.google.com/go/language v1.12.3/go.mod h1:evFX9wECX6mksEva8RbRnr/4wi/vKGYnAJrTRXU8+f8= +cloud.google.com/go/language v1.14.2/go.mod h1:dviAbkxT9art+2ioL9AM05t+3Ql6UPfMpwq1cDsF+rg= cloud.google.com/go/lifesciences v0.9.5/go.mod h1:OdBm0n7C0Osh5yZB7j9BXyrMnTRGBJIZonUMxo5CzPw= +cloud.google.com/go/lifesciences v0.10.2/go.mod h1:vXDa34nz0T/ibUNoeHnhqI+Pn0OazUTdxemd0OLkyoY= cloud.google.com/go/logging v1.9.0/go.mod h1:1Io0vnZv4onoUnsVUQY3HZ3Igb1nBchky0A0y7BBBhE= -cloud.google.com/go/longrunning v0.5.5 h1:GOE6pZFdSrTb4KAiKnXsJBtlE6mEyaW44oKyMILWnOg= +cloud.google.com/go/logging v1.12.0/go.mod h1:wwYBt5HlYP1InnrtYI0wtwttpVU1rifnMT7RejksUAM= cloud.google.com/go/longrunning v0.5.5/go.mod h1:WV2LAxD8/rg5Z1cNW6FJ/ZpX4E4VnDnoTk0yawPBB7s= +cloud.google.com/go/longrunning v0.6.2/go.mod h1:k/vIs83RN4bE3YCswdXC5PFfWVILjm3hpEUlSko4PiI= cloud.google.com/go/managedidentities v1.6.5/go.mod h1:fkFI2PwwyRQbjLxlm5bQ8SjtObFMW3ChBGNqaMcgZjI= +cloud.google.com/go/managedidentities v1.7.2/go.mod h1:t0WKYzagOoD3FNtJWSWcU8zpWZz2i9cw2sKa9RiPx5I= cloud.google.com/go/maps v1.6.4/go.mod h1:rhjqRy8NWmDJ53saCfsXQ0LKwBHfi6OSh5wkq6BaMhI= +cloud.google.com/go/maps v1.15.0/go.mod h1:ZFqZS04ucwFiHSNU8TBYDUr3wYhj5iBFJk24Ibvpf3o= cloud.google.com/go/mediatranslation v0.8.5/go.mod h1:y7kTHYIPCIfgyLbKncgqouXJtLsU+26hZhHEEy80fSs= +cloud.google.com/go/mediatranslation v0.9.2/go.mod h1:1xyRoDYN32THzy+QaU62vIMciX0CFexplju9t30XwUc= cloud.google.com/go/memcache v1.10.5/go.mod h1:/FcblbNd0FdMsx4natdj+2GWzTq+cjZvMa1I+9QsuMA= +cloud.google.com/go/memcache v1.11.2/go.mod h1:jIzHn79b0m5wbkax2SdlW5vNSbpaEk0yWHbeLpMIYZE= cloud.google.com/go/metastore v1.13.4/go.mod h1:FMv9bvPInEfX9Ac1cVcRXp8EBBQnBcqH6gz3KvJ9BAE= +cloud.google.com/go/metastore v1.14.2/go.mod h1:dk4zOBhZIy3TFOQlI8sbOa+ef0FjAcCHEnd8dO2J+LE= cloud.google.com/go/monitoring v1.18.0/go.mod h1:c92vVBCeq/OB4Ioyo+NbN2U7tlg5ZH41PZcdvfc+Lcg= +cloud.google.com/go/monitoring v1.21.2/go.mod h1:hS3pXvaG8KgWTSz+dAdyzPrGUYmi2Q+WFX8g2hqVEZU= cloud.google.com/go/networkconnectivity v1.14.4/go.mod h1:PU12q++/IMnDJAB+3r+tJtuCXCfwfN+C6Niyj6ji1Po= +cloud.google.com/go/networkconnectivity v1.15.2/go.mod h1:N1O01bEk5z9bkkWwXLKcN2T53QN49m/pSpjfUvlHDQY= cloud.google.com/go/networkmanagement v1.9.4/go.mod h1:daWJAl0KTFytFL7ar33I6R/oNBH8eEOX/rBNHrC/8TA= +cloud.google.com/go/networkmanagement v1.16.0/go.mod h1:Yc905R9U5jik5YMt76QWdG5WqzPU4ZsdI/mLnVa62/Q= cloud.google.com/go/networksecurity v0.9.5/go.mod h1:KNkjH/RsylSGyyZ8wXpue8xpCEK+bTtvof8SBfIhMG8= +cloud.google.com/go/networksecurity v0.10.2/go.mod h1:puU3Gwchd6Y/VTyMkL50GI2RSRMS3KXhcDBY1HSOcck= cloud.google.com/go/notebooks v1.11.3/go.mod h1:0wQyI2dQC3AZyQqWnRsp+yA+kY4gC7ZIVP4Qg3AQcgo= +cloud.google.com/go/notebooks v1.12.2/go.mod h1:EkLwv8zwr8DUXnvzl944+sRBG+b73HEKzV632YYAGNI= cloud.google.com/go/optimization v1.6.3/go.mod h1:8ve3svp3W6NFcAEFr4SfJxrldzhUl4VMUJmhrqVKtYA= +cloud.google.com/go/optimization v1.7.2/go.mod h1:msYgDIh1SGSfq6/KiWJQ/uxMkWq8LekPyn1LAZ7ifNE= cloud.google.com/go/orchestration v1.8.5/go.mod h1:C1J7HesE96Ba8/hZ71ISTV2UAat0bwN+pi85ky38Yq8= +cloud.google.com/go/orchestration v1.11.1/go.mod h1:RFHf4g88Lbx6oKhwFstYiId2avwb6oswGeAQ7Tjjtfw= cloud.google.com/go/orgpolicy v1.12.1/go.mod h1:aibX78RDl5pcK3jA8ysDQCFkVxLj3aOQqrbBaUL2V5I= +cloud.google.com/go/orgpolicy v1.14.1/go.mod h1:1z08Hsu1mkoH839X7C8JmnrqOkp2IZRSxiDw7W/Xpg4= cloud.google.com/go/osconfig v1.12.5/go.mod h1:D9QFdxzfjgw3h/+ZaAb5NypM8bhOMqBzgmbhzWViiW8= +cloud.google.com/go/osconfig v1.14.2/go.mod h1:kHtsm0/j8ubyuzGciBsRxFlbWVjc4c7KdrwJw0+g+pQ= cloud.google.com/go/oslogin v1.13.1/go.mod h1:vS8Sr/jR7QvPWpCjNqy6LYZr5Zs1e8ZGW/KPn9gmhws= +cloud.google.com/go/oslogin v1.14.2/go.mod h1:M7tAefCr6e9LFTrdWRQRrmMeKHbkvc4D9g6tHIjHySA= cloud.google.com/go/phishingprotection v0.8.5/go.mod h1:g1smd68F7mF1hgQPuYn3z8HDbNre8L6Z0b7XMYFmX7I= +cloud.google.com/go/phishingprotection v0.9.2/go.mod h1:mSCiq3tD8fTJAuXq5QBHFKZqMUy8SfWsbUM9NpzJIRQ= cloud.google.com/go/policytroubleshooter v1.10.3/go.mod h1:+ZqG3agHT7WPb4EBIRqUv4OyIwRTZvsVDHZ8GlZaoxk= +cloud.google.com/go/policytroubleshooter v1.11.2/go.mod h1:1TdeCRv8Qsjcz2qC3wFltg/Mjga4HSpv8Tyr5rzvPsw= cloud.google.com/go/privatecatalog v0.9.5/go.mod h1:fVWeBOVe7uj2n3kWRGlUQqR/pOd450J9yZoOECcQqJk= +cloud.google.com/go/privatecatalog v0.10.2/go.mod h1:o124dHoxdbO50ImR3T4+x3GRwBSTf4XTn6AatP8MgsQ= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= +cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= +cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= cloud.google.com/go/pubsub v1.36.1/go.mod h1:iYjCa9EzWOoBiTdd4ps7QoMtMln5NwaZQpK1hbRfBDE= +cloud.google.com/go/pubsub v1.45.1/go.mod h1:3bn7fTmzZFwaUjllitv1WlsNMkqBgGUb3UdMhI54eCc= cloud.google.com/go/pubsublite v1.8.1/go.mod h1:fOLdU4f5xldK4RGJrBMm+J7zMWNj/k4PxwEZXy39QS0= +cloud.google.com/go/pubsublite v1.8.2/go.mod h1:4r8GSa9NznExjuLPEJlF1VjOPOpgf3IT6k8x/YgaOPI= cloud.google.com/go/recaptchaenterprise/v2 v2.9.2/go.mod h1:trwwGkfhCmp05Ll5MSJPXY7yvnO0p4v3orGANAFHAuU= +cloud.google.com/go/recaptchaenterprise/v2 v2.19.0/go.mod h1:vnbA2SpVPPwKeoFrCQxR+5a0JFRRytwBBG69Zj9pGfk= cloud.google.com/go/recommendationengine v0.8.5/go.mod h1:A38rIXHGFvoPvmy6pZLozr0g59NRNREz4cx7F58HAsQ= +cloud.google.com/go/recommendationengine v0.9.2/go.mod h1:DjGfWZJ68ZF5ZuNgoTVXgajFAG0yLt4CJOpC0aMK3yw= cloud.google.com/go/recommender v1.12.1/go.mod h1:gf95SInWNND5aPas3yjwl0I572dtudMhMIG4ni8nr+0= +cloud.google.com/go/recommender v1.13.2/go.mod h1:XJau4M5Re8F4BM+fzF3fqSjxNJuM66fwF68VCy/ngGE= cloud.google.com/go/redis v1.14.2/go.mod h1:g0Lu7RRRz46ENdFKQ2EcQZBAJ2PtJHJLuiiRuEXwyQw= +cloud.google.com/go/redis v1.17.2/go.mod h1:h071xkcTMnJgQnU/zRMOVKNj5J6AttG16RDo+VndoNo= cloud.google.com/go/resourcemanager v1.9.5/go.mod h1:hep6KjelHA+ToEjOfO3garMKi/CLYwTqeAw7YiEI9x8= +cloud.google.com/go/resourcemanager v1.10.2/go.mod h1:5f+4zTM/ZOTDm6MmPOp6BQAhR0fi8qFPnvVGSoWszcc= cloud.google.com/go/resourcesettings v1.6.5/go.mod h1:WBOIWZraXZOGAgoR4ukNj0o0HiSMO62H9RpFi9WjP9I= +cloud.google.com/go/resourcesettings v1.8.2/go.mod h1:uEgtPiMA+xuBUM4Exu+ZkNpMYP0BLlYeJbyNHfrc+U0= cloud.google.com/go/retail v1.16.0/go.mod h1:LW7tllVveZo4ReWt68VnldZFWJRzsh9np+01J9dYWzE= +cloud.google.com/go/retail v1.19.1/go.mod h1:W48zg0zmt2JMqmJKCuzx0/0XDLtovwzGAeJjmv6VPaE= cloud.google.com/go/run v1.3.4/go.mod h1:FGieuZvQ3tj1e9GnzXqrMABSuir38AJg5xhiYq+SF3o= +cloud.google.com/go/run v1.7.0/go.mod h1:IvJOg2TBb/5a0Qkc6crn5yTy5nkjcgSWQLhgO8QL8PQ= cloud.google.com/go/scheduler v1.10.6/go.mod h1:pe2pNCtJ+R01E06XCDOJs1XvAMbv28ZsQEbqknxGOuE= +cloud.google.com/go/scheduler v1.11.2/go.mod h1:GZSv76T+KTssX2I9WukIYQuQRf7jk1WI+LOcIEHUUHk= cloud.google.com/go/secretmanager v1.11.5/go.mod h1:eAGv+DaCHkeVyQi0BeXgAHOU0RdrMeZIASKc+S7VqH4= +cloud.google.com/go/secretmanager v1.14.2/go.mod h1:Q18wAPMM6RXLC/zVpWTlqq2IBSbbm7pKBlM3lCKsmjw= cloud.google.com/go/security v1.15.5/go.mod h1:KS6X2eG3ynWjqcIX976fuToN5juVkF6Ra6c7MPnldtc= +cloud.google.com/go/security v1.18.2/go.mod h1:3EwTcYw8554iEtgK8VxAjZaq2unFehcsgFIF9nOvQmU= cloud.google.com/go/securitycenter v1.24.4/go.mod h1:PSccin+o1EMYKcFQzz9HMMnZ2r9+7jbc+LvPjXhpwcU= +cloud.google.com/go/securitycenter v1.35.2/go.mod h1:AVM2V9CJvaWGZRHf3eG+LeSTSissbufD27AVBI91C8s= cloud.google.com/go/servicedirectory v1.11.4/go.mod h1:Bz2T9t+/Ehg6x+Y7Ycq5xiShYLD96NfEsWNHyitj1qM= +cloud.google.com/go/servicedirectory v1.12.2/go.mod h1:F0TJdFjqqotiZRlMXgIOzszaplk4ZAmUV8ovHo08M2U= cloud.google.com/go/shell v1.7.5/go.mod h1:hL2++7F47/IfpfTO53KYf1EC+F56k3ThfNEXd4zcuiE= +cloud.google.com/go/shell v1.8.2/go.mod h1:QQR12T6j/eKvqAQLv6R3ozeoqwJ0euaFSz2qLqG93Bs= cloud.google.com/go/spanner v1.56.0/go.mod h1:DndqtUKQAt3VLuV2Le+9Y3WTnq5cNKrnLb/Piqcj+h0= +cloud.google.com/go/spanner v1.73.0/go.mod h1:mw98ua5ggQXVWwp83yjwggqEmW9t8rjs9Po1ohcUGW4= cloud.google.com/go/speech v1.21.1/go.mod h1:E5GHZXYQlkqWQwY5xRSLHw2ci5NMQNG52FfMU1aZrIA= -cloud.google.com/go/storage v1.35.1 h1:B59ahL//eDfx2IIKFBeT5Atm9wnNmj3+8xG/W4WB//w= +cloud.google.com/go/speech v1.25.2/go.mod h1:KPFirZlLL8SqPaTtG6l+HHIFHPipjbemv4iFg7rTlYs= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= +cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= cloud.google.com/go/storage v1.35.1/go.mod h1:M6M/3V/D3KpzMTJyPOR/HU6n2Si5QdaXYEsng2xgOs8= cloud.google.com/go/storage v1.38.0/go.mod h1:tlUADB0mAb9BgYls9lq+8MGkfzOXuLrnHXlpHmvFJoY= +cloud.google.com/go/storage v1.49.0/go.mod h1:k1eHhhpLvrPjVGfo0mOUPEJ4Y2+a/Hv5PiwehZI9qGU= cloud.google.com/go/storagetransfer v1.10.4/go.mod h1:vef30rZKu5HSEf/x1tK3WfWrL0XVoUQN/EPDRGPzjZs= +cloud.google.com/go/storagetransfer v1.11.2/go.mod h1:FcM29aY4EyZ3yVPmW5SxhqUdhjgPBUOFyy4rqiQbias= cloud.google.com/go/talent v1.6.6/go.mod h1:y/WQDKrhVz12WagoarpAIyKKMeKGKHWPoReZ0g8tseQ= +cloud.google.com/go/talent v1.7.2/go.mod h1:k1sqlDgS9gbc0gMTRuRQpX6C6VB7bGUxSPcoTRWJod8= cloud.google.com/go/texttospeech v1.7.5/go.mod h1:tzpCuNWPwrNJnEa4Pu5taALuZL4QRRLcb+K9pbhXT6M= +cloud.google.com/go/texttospeech v1.10.0/go.mod h1:215FpCOyRxxrS7DSb2t7f4ylMz8dXsQg8+Vdup5IhP4= cloud.google.com/go/tpu v1.6.5/go.mod h1:P9DFOEBIBhuEcZhXi+wPoVy/cji+0ICFi4TtTkMHSSs= +cloud.google.com/go/tpu v1.7.2/go.mod h1:0Y7dUo2LIbDUx0yQ/vnLC6e18FK6NrDfAhYS9wZ/2vs= cloud.google.com/go/trace v1.10.5/go.mod h1:9hjCV1nGBCtXbAE4YK7OqJ8pmPYSxPA0I67JwRd5s3M= +cloud.google.com/go/trace v1.11.2/go.mod h1:bn7OwXd4pd5rFuAnTrzBuoZ4ax2XQeG3qNgYmfCy0Io= cloud.google.com/go/translate v1.10.1/go.mod h1:adGZcQNom/3ogU65N9UXHOnnSvjPwA/jKQUMnsYXOyk= +cloud.google.com/go/translate v1.12.2/go.mod h1:jjLVf2SVH2uD+BNM40DYvRRKSsuyKxVvs3YjTW/XSWY= cloud.google.com/go/video v1.20.4/go.mod h1:LyUVjyW+Bwj7dh3UJnUGZfyqjEto9DnrvTe1f/+QrW0= +cloud.google.com/go/video v1.23.2/go.mod h1:rNOr2pPHWeCbW0QsOwJRIe0ZiuwHpHtumK0xbiYB1Ew= cloud.google.com/go/videointelligence v1.11.5/go.mod h1:/PkeQjpRponmOerPeJxNPuxvi12HlW7Em0lJO14FC3I= +cloud.google.com/go/videointelligence v1.12.2/go.mod h1:8xKGlq0lNVyT8JgTkkCUCpyNJnYYEJVWGdqzv+UcwR8= cloud.google.com/go/vision/v2 v2.8.0/go.mod h1:ocqDiA2j97pvgogdyhoxiQp2ZkDCyr0HWpicywGGRhU= +cloud.google.com/go/vision/v2 v2.9.2/go.mod h1:WuxjVQdAy4j4WZqY5Rr655EdAgi8B707Vdb5T8c90uo= cloud.google.com/go/vmmigration v1.7.5/go.mod h1:pkvO6huVnVWzkFioxSghZxIGcsstDvYiVCxQ9ZH3eYI= +cloud.google.com/go/vmmigration v1.8.2/go.mod h1:FBejrsr8ZHmJb949BSOyr3D+/yCp9z9Hk0WtsTiHc1Q= cloud.google.com/go/vmwareengine v1.1.1/go.mod h1:nMpdsIVkUrSaX8UvmnBhzVzG7PPvNYc5BszcvIVudYs= +cloud.google.com/go/vmwareengine v1.3.2/go.mod h1:JsheEadzT0nfXOGkdnwtS1FhFAnj4g8qhi4rKeLi/AU= cloud.google.com/go/vpcaccess v1.7.5/go.mod h1:slc5ZRvvjP78c2dnL7m4l4R9GwL3wDLcpIWz6P/ziig= +cloud.google.com/go/vpcaccess v1.8.2/go.mod h1:4yvYKNjlNjvk/ffgZ0PuEhpzNJb8HybSM1otG2aDxnY= cloud.google.com/go/webrisk v1.9.5/go.mod h1:aako0Fzep1Q714cPEM5E+mtYX8/jsfegAuS8aivxy3U= +cloud.google.com/go/webrisk v1.10.2/go.mod h1:c0ODT2+CuKCYjaeHO7b0ni4CUrJ95ScP5UFl9061Qq8= cloud.google.com/go/websecurityscanner v1.6.5/go.mod h1:QR+DWaxAz2pWooylsBF854/Ijvuoa3FCyS1zBa1rAVQ= +cloud.google.com/go/websecurityscanner v1.7.2/go.mod h1:728wF9yz2VCErfBaACA5px2XSYHQgkK812NmHcUsDXA= cloud.google.com/go/workflows v1.12.4/go.mod h1:yQ7HUqOkdJK4duVtMeBCAOPiN1ZF1E9pAMX51vpwB/w= +cloud.google.com/go/workflows v1.13.2/go.mod h1:l5Wj2Eibqba4BsADIRzPLaevLmIuYF2W+wfFBkRG3vU= +dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20210715213245-6c3934b029d8/go.mod h1:CzsSbkDixRphAF5hS6wbMKq0eI6ccJRb7/A0M6JBnwg= github.com/AdamKorcz/go-118-fuzz-build v0.0.0-20230306123547-8075edf89bb0/go.mod h1:OahwfttHWG6eJ0clwcfBAHoDI6X/LV/15hx/wlMZSrU= +github.com/Azure/azure-sdk-for-go v16.2.1+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/azure-sdk-for-go v56.3.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= +github.com/Azure/go-ansiterm v0.0.0-20170929234023-d6e3b3328b78/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= +github.com/Azure/go-ansiterm v0.0.0-20210608223527-2377c96fe795/go.mod h1:LmzpDX56iTiv29bbRTIsUNlaFfuhWRQBWjQdVyAevI8= +github.com/Azure/go-ansiterm v0.0.0-20210617225240-d185dfc1b5a1/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Azure/go-autorest v10.8.1+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= +github.com/Azure/go-autorest v14.2.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= +github.com/Azure/go-autorest/autorest v0.11.1/go.mod h1:JFgpikqFJ/MleTTxwepExTKnFUKKszPS8UavbQYUMuw= +github.com/Azure/go-autorest/autorest v0.11.18/go.mod h1:dSiJPy22c3u0OtOKDNttNgqpNFY/GeWa7GH/Pz56QRA= +github.com/Azure/go-autorest/autorest v0.11.24/go.mod h1:G6kyRlFnTuSbEYkQGawPfsCswgme4iYf6rfSKUDzbCc= +github.com/Azure/go-autorest/autorest/adal v0.9.0/go.mod h1:/c022QCutn2P7uY+/oQWWNcK9YU+MH96NgK+jErpbcg= +github.com/Azure/go-autorest/autorest/adal v0.9.5/go.mod h1:B7KF7jKIeC9Mct5spmyCB/A8CG/sEz1vwIRGv/bbw7A= +github.com/Azure/go-autorest/autorest/adal v0.9.13/go.mod h1:W/MM4U6nLxnIskrw4UwWzlHfGjwUS50aOsc/I3yuU8M= +github.com/Azure/go-autorest/autorest/adal v0.9.18/go.mod h1:XVVeme+LZwABT8K5Lc3hA4nAe8LDBVle26gTrguhhPQ= +github.com/Azure/go-autorest/autorest/date v0.3.0/go.mod h1:BI0uouVdmngYNUzGWeSYnokU+TrmwEsOqdt8Y6sso74= +github.com/Azure/go-autorest/autorest/mocks v0.4.0/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= +github.com/Azure/go-autorest/autorest/mocks v0.4.1/go.mod h1:LTp+uSrOhSkaKrUy935gNZuuIPPVsHlr9DSOxSayd+k= +github.com/Azure/go-autorest/autorest/to v0.4.0/go.mod h1:fE8iZBn7LQR7zH/9XU2NcPR4o9jEImooCeWJcYV/zLE= +github.com/Azure/go-autorest/logger v0.2.0/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= +github.com/Azure/go-autorest/logger v0.2.1/go.mod h1:T9E3cAhj2VqvPOtCYAvby9aBXkZmbF5NWuPV8+WeEW8= +github.com/Azure/go-autorest/tracing v0.6.0/go.mod h1:+vhtPC754Xsa23ID7GlGsrdKBpUA79WCAKPPZVC2DeU= +github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/BurntSushi/toml v1.3.2/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.24.2/go.mod h1:itPGVDKf9cC/ov4MdvJ2QZ0khw4bfoo9jzwTJlaxy2k= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/detectors/gcp v1.25.0/go.mod h1:obipzmGjfSjam60XLwGfqUkJsfiheAl+TUjG+4yzyPM= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/exporter/metric v0.48.1/go.mod h1:jyqM3eLpJ3IbIFDTKVz2rF9T/xWGW0rIriGwnz8l9Tk= +github.com/GoogleCloudPlatform/opentelemetry-operations-go/internal/resourcemapping v0.48.1/go.mod h1:viRWSEhtMZqz1rhwmOVKkWl6SwmVowfL9O2YR5gI2PE= +github.com/Masterminds/semver/v3 v3.1.1/go.mod h1:VPu/7SZ7ePZ3QOrcuXROw5FAcLl4a0cBrbBpGY/8hQs= +github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= +github.com/Masterminds/sprig/v3 v3.2.1/go.mod h1:UoaO7Yp8KlPnJIYWTFkMaqPUYKTfGFPhxNuwnnxkKlk= +github.com/Masterminds/sprig/v3 v3.2.3/go.mod h1:rXcFaZ2zZbLRJv/xSysmlgIM1u11eBaRMhvYXJNkGuM= github.com/Masterminds/vcs v1.13.3/go.mod h1:TiE7xuEjl1N4j016moRd6vezp6e6Lz23gypeXfzXeW8= -github.com/NYTimes/gziphandler v1.1.1 h1:ZUDjpQae29j0ryrS0u/B8HZfJBtBQHjqw2rQ2cqUQ3I= +github.com/Microsoft/go-winio v0.4.11/go.mod h1:VhR8bwka0BXejwEJY73c50VrPtXAaKcyvVC4A4RozmA= +github.com/Microsoft/go-winio v0.4.14/go.mod h1:qXqCSQ3Xa7+6tgxaGTIe4Kpcdsi+P8jBhyzoq1bpyYA= +github.com/Microsoft/go-winio v0.4.15-0.20190919025122-fc70bd9a86b5/go.mod h1:tTuCMEN+UleMWgg9dVx4Hu52b1bJo+59jBh3ajtinzw= +github.com/Microsoft/go-winio v0.4.16-0.20201130162521-d1ffc52c7331/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= +github.com/Microsoft/go-winio v0.4.16/go.mod h1:XB6nPKklQyQ7GC9LdcBEcBl8PF76WugXOPRXwdLnMv0= +github.com/Microsoft/go-winio v0.4.17-0.20210211115548-6eac466e5fa3/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= +github.com/Microsoft/go-winio v0.4.17-0.20210324224401-5516f17a5958/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= +github.com/Microsoft/go-winio v0.4.17/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= +github.com/Microsoft/go-winio v0.5.1/go.mod h1:JPGBdM1cNvN/6ISo+n8V5iA4v8pBzdOpzfwIujj1a84= +github.com/Microsoft/hcsshim v0.8.6/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= +github.com/Microsoft/hcsshim v0.8.7-0.20190325164909-8abdbb8205e4/go.mod h1:Op3hHsoHPAvb6lceZHDtd9OkTew38wNoXnJs8iY7rUg= +github.com/Microsoft/hcsshim v0.8.7/go.mod h1:OHd7sQqRFrYd3RmSgbgji+ctCwkbq2wbEYNSzOYtcBQ= +github.com/Microsoft/hcsshim v0.8.9/go.mod h1:5692vkUqntj1idxauYlpoINNKeqCiG6Sg38RRsjT5y8= +github.com/Microsoft/hcsshim v0.8.14/go.mod h1:NtVKoYxQuTLx6gEq0L96c9Ju4JbRJ4nY2ow3VK6a9Lg= +github.com/Microsoft/hcsshim v0.8.15/go.mod h1:x38A4YbHbdxJtc0sF6oIz+RG0npwSCAvn69iY6URG00= +github.com/Microsoft/hcsshim v0.8.16/go.mod h1:o5/SZqmR7x9JNKsW3pu+nqHm0MF8vbA+VxGOoXdC600= +github.com/Microsoft/hcsshim v0.8.20/go.mod h1:+w2gRZ5ReXQhFOrvSQeNfhrYB/dg3oDwTOcER2fw4I4= +github.com/Microsoft/hcsshim v0.8.21/go.mod h1:+w2gRZ5ReXQhFOrvSQeNfhrYB/dg3oDwTOcER2fw4I4= +github.com/Microsoft/hcsshim v0.8.23/go.mod h1:4zegtUJth7lAvFyc6cH2gGQ5B3OFQim01nnU2M8jKDg= +github.com/Microsoft/hcsshim v0.9.2/go.mod h1:7pLA8lDk46WKDWlVsENo92gC0XFa8rbKfyFRBqxEbCc= +github.com/Microsoft/hcsshim v0.9.3/go.mod h1:7pLA8lDk46WKDWlVsENo92gC0XFa8rbKfyFRBqxEbCc= +github.com/Microsoft/hcsshim/test v0.0.0-20201218223536-d3e5debf77da/go.mod h1:5hlzMzRKMLyo42nCZ9oml8AdTlq/0cvIaBv6tK1RehU= +github.com/Microsoft/hcsshim/test v0.0.0-20210227013316-43a75bb4edd3/go.mod h1:mw7qgWloBUl75W/gVH3cQszUg1+gUITj7D6NY7ywVnY= +github.com/NYTimes/gziphandler v0.0.0-20170623195520-56545f4a5d46/go.mod h1:3wb06e3pkSAbeQ52E9H9iFoQsEEwGN64994WTCIhntQ= github.com/NYTimes/gziphandler v1.1.1/go.mod h1:n/CVRwUEOgIxrgPvAQhUUr9oeUtvrhMomdKFjzJNB0c= +github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= github.com/OneOfOne/xxhash v1.2.8/go.mod h1:eZbhyaAYD41SGSSsnmcpxVoRiQ/MPUTjUdIIOT9Um7Q= -github.com/PuerkitoBio/goquery v1.9.2/go.mod h1:GHPCaP0ODyyxqcNoFGYlAprUFH81NuRPd0GX3Zu2Mvk= github.com/PuerkitoBio/goquery v1.9.3 h1:mpJr/ikUA9/GNJB/DBZcGeFDXUtosHRyRrwh7KGdTG0= github.com/PuerkitoBio/goquery v1.9.3/go.mod h1:1ndLHPdTz+DyQPICCWYlYQMPl0oXZj0G6D4LCYA6u4U= -github.com/agnivade/levenshtein v1.1.1/go.mod h1:veldBMzWxcCG2ZvUTKD2kJNRdCk5hVbJomOvKkmgYbo= +github.com/PuerkitoBio/purell v1.0.0/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= +github.com/PuerkitoBio/purell v1.1.1/go.mod h1:c11w/QuzBsJSee3cPx9rAFu61PvFxuPbtSwDGJws/X0= +github.com/PuerkitoBio/urlesc v0.0.0-20160726150825-5bd2802263f2/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= +github.com/PuerkitoBio/urlesc v0.0.0-20170810143723-de5bf2ad4578/go.mod h1:uGdkoq3SwY9Y+13GIhn11/XLaGBb4BfwItxLd5jeuXE= +github.com/Shopify/logrus-bugsnag v0.0.0-20171204204709-577dee27f20d/go.mod h1:HI8ITrYtUY+O+ZhtlqUnD8+KwNPOyugEhfP9fdUIaEQ= +github.com/agnivade/levenshtein v1.0.1/go.mod h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM= github.com/akavel/rsrc v0.10.2/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c= -github.com/alecthomas/kingpin/v2 v2.4.0 h1:f48lwail6p8zpO1bC4TxtqACaGqHYA22qkHjHpqDjYY= github.com/alecthomas/kingpin/v2 v2.4.0/go.mod h1:0gyi0zQnjuFk8xrkNKamJoyUo382HRL7ATRpFZCw6tE= -github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137 h1:s6gZFSlWYmbqAuRjVTiNNhvNRfY2Wxp9nhfyel4rklc= +github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alecthomas/units v0.0.0-20190924025748-f65c72e2690d/go.mod h1:rBZYJk541a8SKzHPHnH3zbiI+7dagKZ0cgpgrD7Fyho= github.com/alecthomas/units v0.0.0-20211218093645-b94a6e3cc137/go.mod h1:OMCwj8VM1Kc9e19TLln2VL61YJF0x1XFtfdL4JdbSyE= +github.com/alexflint/go-filemutex v0.0.0-20171022225611-72bdc8eae2ae/go.mod h1:CgnQgUtFrFz9mxFNtED3jI5tLDjKlOM+oUF/sTk6ps0= +github.com/alexflint/go-filemutex v1.1.0/go.mod h1:7P4iRhttt/nUvUOrYIhcpMzv2G6CY9UnI16Z+UJqRyk= +github.com/alexflint/go-filemutex v1.2.0/go.mod h1:mYyQSWvw9Tx2/H2n9qXPb52tTYfE0pZAWcBq5mK025c= github.com/andybalholm/cascadia v1.3.2 h1:3Xi6Dw5lHF15JtdcmAHD3i1+T8plmv7BQ/nsViSLyss= github.com/andybalholm/cascadia v1.3.2/go.mod h1:7gtRlve5FxPPgIgX36uWBX58OdBsSS6lUvCFb+h7KvU= github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230305170008-8188dc5388df/go.mod h1:pSwJ0fSY5KhvocuWSx4fz3BA8OrA1bQn+K1Eli3BRwM= -github.com/antlr4-go/antlr/v4 v4.13.0 h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8TVTI= +github.com/antlr/antlr4/runtime/Go/antlr v1.4.10/go.mod h1:F7bn7fEU90QkQ3tnmaTx3LTKLEDqnwWODIYppRQ5hnY= github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g= -github.com/antonlindstrom/pgstore v0.0.0-20220421113606-e3a6e3fed12a h1:dIdcLbck6W67B5JFMewU5Dba1yKZA3MsT67i4No/zh0= github.com/antonlindstrom/pgstore v0.0.0-20220421113606-e3a6e3fed12a/go.mod h1:Sdr/tmSOLEnncCuXS5TwZRxuk7deH1WXVY8cve3eVBM= github.com/apache/arrow/go/v14 v14.0.2/go.mod h1:u3fgh3EdgN/YQ8cVQRguVW3R+seMybFg8QBQ5LU+eBY= +github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= +github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= +github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= github.com/armon/go-metrics v0.4.1 h1:hR91U9KYmb6bLBYLQjyM+3j+rcd/UhE+G78SFnF8gJA= github.com/armon/go-metrics v0.4.1/go.mod h1:E6amYzXo6aW1tqzoZGT755KkbgrJsSdpwZ+3JqfkOG4= +github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a h1:idn718Q4B6AGu/h5Sxe66HYVdqdGu2l9Iebqhi/AEoA= github.com/asaskevich/govalidator v0.0.0-20190424111038-f61b66f89f4a/go.mod h1:lB+ZfQJz7igIIfQNfa7Ml4HSf2uFQQRzpGGRXenZAgY= +github.com/aws/aws-sdk-go v1.15.11/go.mod h1:mFuSZ37Z9YOHbQEwBWztmVzqXrEkub65tZoCYDt7FT0= +github.com/aws/aws-sdk-go v1.43.16/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX4oIKwKHZo= +github.com/bazelbuild/rules_go v0.49.0/go.mod h1:Dhcz716Kqg1RHNWos+N6MlXNkjNP2EwZQ0LukRKJfMs= +github.com/benbjohnson/clock v1.0.3/go.mod h1:bGMdMPoPVvcYyt1gHDf4J2KE153Yf9BuiUKYMaxlTDM= +github.com/beorn7/perks v0.0.0-20160804104726-4c0e84591b9a/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/boj/redistore v0.0.0-20180917114910-cd5dcc76aeff h1:RmdPFa+slIr4SCBg4st/l/vZWVe9QJKMXGO60Bxbe04= +github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA= +github.com/bits-and-blooms/bitset v1.2.0/go.mod h1:gIdJ4wp64HaoK2YrL1Q5/N7Y16edYb8uY+O0FJTyyDA= +github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= +github.com/blang/semver v3.1.0+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= +github.com/blang/semver v3.5.1+incompatible h1:cQNTCjp13qL8KC3Nbxr/y2Bqb63oX6wdnnjpJbkM4JQ= +github.com/blang/semver v3.5.1+incompatible/go.mod h1:kRBLl5iJ+tD4TcOOxsy/0fnwebNt5EWlYSAyrTnjyyk= +github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869/go.mod h1:Ekp36dRnpXw/yCqJaO+ZrUyxD+3VXMFFr56k5XYrpB4= github.com/boj/redistore v0.0.0-20180917114910-cd5dcc76aeff/go.mod h1:+RTT1BOk5P97fT2CiHkbFQwkK3mjsFAP6zCYV2aXtjw= -github.com/bos-hieu/mongostore v0.0.3 h1:wla8pz4VQU8JOcbo+sBbuvFVBBHt3yRelVSi6YInC48= github.com/bos-hieu/mongostore v0.0.3/go.mod h1:8AbbVmDEb0yqJsBrWxZIAZOxIfv/tsP8CDtdHduZHGg= -github.com/bradfitz/gomemcache v0.0.0-20230905024940-24af94b03874 h1:N7oVaKyGp8bttX0bfZGmcGkjz7DLQXhAn3DNd3T0ous= github.com/bradfitz/gomemcache v0.0.0-20230905024940-24af94b03874/go.mod h1:r5xuitiExdLAJ09PR7vBVENGvp4ZuTBeWTGtxuX3K+c= -github.com/bradleypeabody/gorilla-sessions-memcache v0.0.0-20181103040241-659414f458e1 h1:4QHxgr7hM4gVD8uOwrk8T1fjkKRLwaLjmTkU0ibhZKU= github.com/bradleypeabody/gorilla-sessions-memcache v0.0.0-20181103040241-659414f458e1/go.mod h1:dkChI7Tbtx7H1Tj7TqGSZMOeGpMP5gLHtjroHd4agiI= -github.com/census-instrumentation/opencensus-proto v0.4.1 h1:iKLQ0xPNFxR/2hzXZMrBo8f1j86j5WHzznCCQxV/b8g= +github.com/bshuster-repo/logrus-logstash-hook v0.4.1/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk= +github.com/bsm/ginkgo/v2 v2.7.0/go.mod h1:AiKlXPm7ItEHNc/2+OkrNG4E0ITzojb9/xWzvQ9XZ9w= +github.com/bsm/gomega v1.26.0/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0= +github.com/buger/jsonparser v0.0.0-20180808090653-f4dd9f5a6b44/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s= +github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0= +github.com/bugsnag/bugsnag-go v0.0.0-20141110184014-b1d153021fcd/go.mod h1:2oa8nejYd4cQ/b0hMIopN0lCRxU0bueqREvZLWFrtK8= +github.com/bugsnag/osext v0.0.0-20130617224835-0dd3f918b21b/go.mod h1:obH5gd0BsqsP2LwDJ9aOkm/6J86V6lyAXCoQWGw3K50= +github.com/bugsnag/panicwrap v0.0.0-20151223152923-e2c28503fcd0/go.mod h1:D/8v3kj0zr8ZAKg1AQ6crr+5VwKN5eIywRkfhyM/+dE= +github.com/bytecodealliance/wasmtime-go v0.36.0/go.mod h1:q320gUxqyI8yB+ZqRuaJOEnGkAnHh6WtJjMaT2CW4wI= +github.com/bytedance/sonic/loader v0.2.2/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= +github.com/cenkalti/backoff/v4 v4.1.1/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= +github.com/cenkalti/backoff/v4 v4.1.2/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= +github.com/cenkalti/backoff/v4 v4.1.3/go.mod h1:scbssz8iZGpm3xbr14ovlUdkxfGXNInqkPWOWmG2CLw= +github.com/cenkalti/backoff/v4 v4.2.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= github.com/census-instrumentation/opencensus-proto v0.4.1/go.mod h1:4T9NM4+4Vw91VeyqjLS6ao50K5bOcLKN6Q42XnYaRYw= -github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d h1:77cEq6EriyTZ0g/qfRdp61a3Uu/AWrgIq2s0ClJV1g0= +github.com/certifi/gocertifi v0.0.0-20191021191039-0944d244cd40/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= +github.com/certifi/gocertifi v0.0.0-20200922220541-2c3bb06c6054/go.mod h1:sGbDF6GwGcLpkNXPUTkMRoywsNa/ol15pxFe6ERfguA= +github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko= +github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc= +github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.1.2/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/checkpoint-restore/go-criu/v4 v4.1.0/go.mod h1:xUQBLp4RLc5zJtWY++yjOoMoB5lihDt7fai+75m+rGw= +github.com/checkpoint-restore/go-criu/v5 v5.0.0/go.mod h1:cfwC0EG7HMUenopBsUf9d89JlCLQIfgVcNsNN0t6T2M= +github.com/checkpoint-restore/go-criu/v5 v5.3.0/go.mod h1:E/eQpaFtUKGOOSEBZgmKAcn+zUUwWxqcaKZlF54wK8E= github.com/chenzhuoyu/base64x v0.0.0-20230717121745-296ad89f973d/go.mod h1:8EPpVsBuRksnlj1mLy4AWzRNQYxauNi62uWcE3to6eA= -github.com/chenzhuoyu/iasm v0.9.1 h1:tUHQJXo3NhBqw6s33wkGn9SP3bvrWLdlVIJ3hQBL7P0= github.com/chenzhuoyu/iasm v0.9.1/go.mod h1:Xjy2NpN3h7aUqeqM+woSuuvxmIe6+DDsiNLIrkAmYog= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/logex v1.2.1/go.mod h1:JLbx6lG2kDbNRFnfkgvh4eRJRPX1QCoOIWomwysCBrQ= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= github.com/chzyer/readline v1.5.1/go.mod h1:Eh+b79XXUwfKfcPLepksvw2tcLE/Ct21YObkaSkeBlk= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= +github.com/chzyer/test v1.0.0/go.mod h1:2JlltgoNkt4TW/z9V/IzDdFaMTM2JPIi26O1pF38GC8= +github.com/cilium/ebpf v0.0.0-20200110133405-4032b1d8aae3/go.mod h1:MA5e5Lr8slmEg9bt0VpxxWqJlO4iwu3FBdHUzV7wQVg= +github.com/cilium/ebpf v0.0.0-20200702112145-1c8d4c9ef775/go.mod h1:7cR51M8ViRLIdUjrmSXlK9pkrsDlLHbO8jiB8X8JnOc= +github.com/cilium/ebpf v0.2.0/go.mod h1:To2CFviqOWL/M0gIMsvSMlqe7em/l1ALkX1PyjrX2Qs= +github.com/cilium/ebpf v0.4.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= +github.com/cilium/ebpf v0.6.2/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs= +github.com/cilium/ebpf v0.7.0/go.mod h1:/oI2+1shJiTGAMgl6/RgJr36Eo1jzrRcAWbcXO2usCA= github.com/cilium/ebpf v0.9.1/go.mod h1:+OhNOIXx/Fnu1IE8bJz2dzOA+VSfyTfdNUVdlQnxUFY= +github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= +github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= +github.com/cncf/udpa/go v0.0.0-20210930031921-04548b0d99d4/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= github.com/cncf/udpa/go v0.0.0-20220112060539-c52dc94e7fbe/go.mod h1:6pvJx4me5XPnfI9Z40ddWsdw2W/uZgQLFXToKeRcDiI= -github.com/cncf/xds/go v0.0.0-20240723142845-024c85f92f20 h1:N+3sFI5GUjRKBi+i0TxYVST9h4Ie192jJWpHvthBBgg= +github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20210805033703-aa0b78936158/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20210922020428-25de7278fc84/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211001041855-01bcc9b48dfe/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20211011173535-cb28da3451f1/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= github.com/cncf/xds/go v0.0.0-20240723142845-024c85f92f20/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= +github.com/cncf/xds/go v0.0.0-20240905190251-b4127c9b8d78/go.mod h1:W+zGtBO5Y1IgJhy4+A9GOqVhqLpfZi+vwmdNXUehLA8= +github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= +github.com/cockroachdb/datadriven v0.0.0-20200714090401-bf6692d28da5/go.mod h1:h6jFvWxBdQXxjopDMZyH2UVceIRfR84bdzbkoKrsWNo= github.com/cockroachdb/datadriven v1.0.2/go.mod h1:a9RdTaap04u637JoCzcUoIcDmvwSUtcUFtT/C3kJlTU= +github.com/cockroachdb/errors v1.2.4/go.mod h1:rQD95gz6FARkaKkQXUksEje/d9a6wBJoCr5oaCLELYA= +github.com/cockroachdb/logtags v0.0.0-20190617123548-eb05cc24525f/go.mod h1:i/u985jwjWRlyHXQbwatDASoW0RMlZ/3i9yJHE2xLkI= github.com/container-orchestrated-devices/container-device-interface v0.6.1/go.mod h1:40T6oW59rFrL/ksiSs7q45GzjGlbvxnA4xaK6cyq+kA= +github.com/containerd/aufs v0.0.0-20200908144142-dab0cbea06f4/go.mod h1:nukgQABAEopAHvB6j7cnP5zJ+/3aVcE7hCYqvIwAHyE= +github.com/containerd/aufs v0.0.0-20201003224125-76a6863f2989/go.mod h1:AkGGQs9NM2vtYHaUen+NljV0/baGCAPELGm2q9ZXpWU= +github.com/containerd/aufs v0.0.0-20210316121734-20793ff83c97/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU= github.com/containerd/aufs v1.0.0/go.mod h1:kL5kd6KM5TzQjR79jljyi4olc1Vrx6XBlcyj3gNv2PU= +github.com/containerd/btrfs v0.0.0-20201111183144-404b9149801e/go.mod h1:jg2QkJcsabfHugurUvvPhS3E08Oxiuh5W/g1ybB4e0E= +github.com/containerd/btrfs v0.0.0-20210316141732-918d888fb676/go.mod h1:zMcX3qkXTAi9GI50+0HOeuV8LU2ryCE/V2vG/ZBiTss= +github.com/containerd/btrfs v1.0.0/go.mod h1:zMcX3qkXTAi9GI50+0HOeuV8LU2ryCE/V2vG/ZBiTss= github.com/containerd/btrfs/v2 v2.0.0/go.mod h1:swkD/7j9HApWpzl8OHfrHNxppPd9l44DFZdF94BUj9k= +github.com/containerd/cgroups v0.0.0-20190717030353-c4b9ac5c7601/go.mod h1:X9rLEHIqSf/wfK8NsPqxJmeZgW4pcfzdXITDrUSJ6uI= +github.com/containerd/cgroups v0.0.0-20190919134610-bf292b21730f/go.mod h1:OApqhQ4XNSNC13gXIwDjhOQxjWa/NxkwZXJ1EvqT0ko= +github.com/containerd/cgroups v0.0.0-20200531161412-0dbf7f05ba59/go.mod h1:pA0z1pT8KYB3TCXK/ocprsh7MAkoW8bZVzPdih9snmM= +github.com/containerd/cgroups v0.0.0-20200710171044-318312a37340/go.mod h1:s5q4SojHctfxANBDvMeIaIovkq29IP48TKAxnhYRxvo= +github.com/containerd/cgroups v0.0.0-20200824123100-0b889c03f102/go.mod h1:s5q4SojHctfxANBDvMeIaIovkq29IP48TKAxnhYRxvo= +github.com/containerd/cgroups v0.0.0-20210114181951-8a68de567b68/go.mod h1:ZJeTFisyysqgcCdecO57Dj79RfL0LNeGiFUqLYQRYLE= +github.com/containerd/cgroups v1.0.1/go.mod h1:0SJrPIenamHDcZhEcJMNBB85rHcUsw4f25ZfBiPYRkU= +github.com/containerd/cgroups v1.0.3/go.mod h1:/ofk34relqNjSGyqPrmEULrO4Sc8LJhvJmWbUCUKqj8= github.com/containerd/cgroups/v3 v3.0.2/go.mod h1:JUgITrzdFqp42uI2ryGA+ge0ap/nxzYgkGmIcetmErE= +github.com/containerd/console v0.0.0-20180822173158-c12b1e7919c1/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= +github.com/containerd/console v0.0.0-20181022165439-0650fd9eeb50/go.mod h1:Tj/on1eG8kiEhd0+fhSDzsPAFESxzBBvdyEgyryXffw= +github.com/containerd/console v0.0.0-20191206165004-02ecf6a7291e/go.mod h1:8Pf4gM6VEbTNRIT26AyyU7hxdQU3MvAvxVI0sc00XBE= +github.com/containerd/console v1.0.1/go.mod h1:XUsP6YE/mKtz6bxc+I8UiKKTP04qjQL4qcS3XoQ5xkw= +github.com/containerd/console v1.0.2/go.mod h1:ytZPjGgY2oeTkAONYafi2kSj0aYggsf8acV1PGKCbzQ= github.com/containerd/console v1.0.3/go.mod h1:7LqA/THxQ86k76b8c/EMSiaJ3h1eZkMkXar0TQ1gf3U= +github.com/containerd/containerd v1.2.10/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.3.0-beta.2.0.20190828155532-0293cbd26c69/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.3.0/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.3.1-0.20191213020239-082f7e3aed57/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.3.2/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.4.0-beta.2.0.20200729163537-40b22ef07410/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.4.1/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.4.3/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.4.9/go.mod h1:bC6axHOhabU15QhwfG7w5PipXdVtMXFTttgp+kVtyUA= +github.com/containerd/containerd v1.5.0-beta.1/go.mod h1:5HfvG1V2FsKesEGQ17k5/T7V960Tmcumvqn8Mc+pCYQ= +github.com/containerd/containerd v1.5.0-beta.3/go.mod h1:/wr9AVtEM7x9c+n0+stptlo/uBBoBORwEx6ardVcmKU= +github.com/containerd/containerd v1.5.0-beta.4/go.mod h1:GmdgZd2zA2GYIBZ0w09ZvgqEq8EfBp/m3lcVZIvPHhI= +github.com/containerd/containerd v1.5.0-rc.0/go.mod h1:V/IXoMqNGgBlabz3tHD2TWDoTJseu1FGOKuoA4nNb2s= +github.com/containerd/containerd v1.5.1/go.mod h1:0DOxVqwDy2iZvrZp2JUx/E+hS0UNTVn7dJnIOwtYR4g= +github.com/containerd/containerd v1.5.7/go.mod h1:gyvv6+ugqY25TiXxcZC3L5yOeYgEw0QMhscqVp1AR9c= +github.com/containerd/containerd v1.5.8/go.mod h1:YdFSv5bTFLpG2HIYmfqDpSYYTDX+mc5qtSuYx1YUb/s= +github.com/containerd/containerd v1.6.1/go.mod h1:1nJz5xCZPusx6jJU8Frfct988y0NpumIq9ODB0kLtoE= +github.com/containerd/containerd v1.6.6/go.mod h1:ZoP1geJldzCVY3Tonoz7b1IXk8rIX0Nltt5QE4OMNk0= +github.com/containerd/containerd v1.6.23/go.mod h1:UrQOiyzrLi3n4aezYJbQH6Il+YzTvnHFbEuO3yfDrM4= +github.com/containerd/containerd v1.7.20/go.mod h1:52GsS5CwquuqPuLncsXwG0t2CiUce+KsNHJZQJvAgR0= +github.com/containerd/containerd/api v1.7.19/go.mod h1:fwGavl3LNwAV5ilJ0sbrABL44AQxmNjDRcwheXDb6Ig= +github.com/containerd/containerd/api v1.8.0/go.mod h1:dFv4lt6S20wTu/hMcP4350RL87qPWLVa/OHOwmmdnYc= +github.com/containerd/continuity v0.0.0-20190426062206-aaeac12a7ffc/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= +github.com/containerd/continuity v0.0.0-20190815185530-f2a389ac0a02/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= +github.com/containerd/continuity v0.0.0-20191127005431-f65d91d395eb/go.mod h1:GL3xCUCBDV3CZiTSEKksMWbLE66hEyuu9qyDOOqM47Y= +github.com/containerd/continuity v0.0.0-20200710164510-efbc4488d8fe/go.mod h1:cECdGN1O8G9bgKTlLhuPJimka6Xb/Gg7vYzCTNVxhvo= +github.com/containerd/continuity v0.0.0-20201208142359-180525291bb7/go.mod h1:kR3BEg7bDFaEddKm54WSmrol1fKWDU1nKYkgrcgZT7Y= +github.com/containerd/continuity v0.0.0-20210208174643-50096c924a4e/go.mod h1:EXlVlkqNba9rJe3j7w3Xa924itAMLgZH4UD/Q4PExuQ= +github.com/containerd/continuity v0.1.0/go.mod h1:ICJu0PwR54nI0yPEnJ6jcS+J7CZAUXrLh8lPo2knzsM= +github.com/containerd/continuity v0.2.2/go.mod h1:pWygW9u7LtS1o4N/Tn0FoCFDIXZ7rxcMX7HX1Dmibvk= +github.com/containerd/errdefs v0.1.0/go.mod h1:YgWiiHtLmSeBrvpw+UfPijzbLaB77mEG1WwJTDETIV0= +github.com/containerd/fifo v0.0.0-20180307165137-3d5202aec260/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= +github.com/containerd/fifo v0.0.0-20190226154929-a9fb20d87448/go.mod h1:ODA38xgv3Kuk8dQz2ZQXpnv/UZZUHUCL7pnLehbXgQI= +github.com/containerd/fifo v0.0.0-20200410184934-f15a3290365b/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0= +github.com/containerd/fifo v0.0.0-20201026212402-0724c46b320c/go.mod h1:jPQ2IAeZRCYxpS/Cm1495vGFww6ecHmMk1YJH2Q5ln0= +github.com/containerd/fifo v0.0.0-20210316144830-115abcc95a1d/go.mod h1:ocF/ME1SX5b1AOlWi9r677YJmCPSwwWnQ9O123vzpE4= +github.com/containerd/fifo v1.0.0/go.mod h1:ocF/ME1SX5b1AOlWi9r677YJmCPSwwWnQ9O123vzpE4= github.com/containerd/fifo v1.1.0/go.mod h1:bmC4NWMbXlt2EZ0Hc7Fx7QzTFxgPID13eH0Qu+MAb2o= +github.com/containerd/go-cni v1.0.1/go.mod h1:+vUpYxKvAF72G9i1WoDOiPGRtQpqsNW/ZHtSlv++smU= +github.com/containerd/go-cni v1.0.2/go.mod h1:nrNABBHzu0ZwCug9Ije8hL2xBCYh/pjfMb1aZGrrohk= +github.com/containerd/go-cni v1.1.0/go.mod h1:Rflh2EJ/++BA2/vY5ao3K6WJRR/bZKsX123aPk+kUtA= +github.com/containerd/go-cni v1.1.3/go.mod h1:Rflh2EJ/++BA2/vY5ao3K6WJRR/bZKsX123aPk+kUtA= +github.com/containerd/go-cni v1.1.6/go.mod h1:BWtoWl5ghVymxu6MBjg79W9NZrCRyHIdUtk4cauMe34= github.com/containerd/go-cni v1.1.9/go.mod h1:XYrZJ1d5W6E2VOvjffL3IZq0Dz6bsVlERHbekNK90PM= +github.com/containerd/go-runc v0.0.0-20180907222934-5a6d9f37cfa3/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= +github.com/containerd/go-runc v0.0.0-20190911050354-e029b79d8cda/go.mod h1:IV7qH3hrUgRmyYrtgEeGWJfWbgcHL9CSRruz2Vqcph0= +github.com/containerd/go-runc v0.0.0-20200220073739-7016d3ce2328/go.mod h1:PpyHrqVs8FTi9vpyHwPwiNEGaACDxT/N/pLcvMSRA9g= +github.com/containerd/go-runc v0.0.0-20201020171139-16b287bc67d0/go.mod h1:cNU0ZbCgCQVZK4lgG3P+9tn9/PaJNmoDXPpoJhDR+Ok= github.com/containerd/go-runc v1.0.0/go.mod h1:cNU0ZbCgCQVZK4lgG3P+9tn9/PaJNmoDXPpoJhDR+Ok= +github.com/containerd/imgcrypt v1.0.1/go.mod h1:mdd8cEPW7TPgNG4FpuP3sGBiQ7Yi/zak9TYCG3juvb0= +github.com/containerd/imgcrypt v1.0.4-0.20210301171431-0ae5c75f59ba/go.mod h1:6TNsg0ctmizkrOgXRNQjAPFWpMYRWuiB6dSF4Pfa5SA= +github.com/containerd/imgcrypt v1.1.1-0.20210312161619-7ed62a527887/go.mod h1:5AZJNI6sLHJljKuI9IHnw1pWqo/F0nGDOuR9zgTs7ow= +github.com/containerd/imgcrypt v1.1.1/go.mod h1:xpLnwiQmEUJPvQoAapeb2SNCxz7Xr6PJrXQb0Dpc4ms= +github.com/containerd/imgcrypt v1.1.3/go.mod h1:/TPA1GIDXMzbj01yd8pIbQiLdQxed5ue1wb8bP7PQu4= +github.com/containerd/imgcrypt v1.1.4/go.mod h1:LorQnPtzL/T0IyCeftcsMEO7AqxUDbdO8j/tSUpgxvo= github.com/containerd/imgcrypt v1.1.7/go.mod h1:FD8gqIcX5aTotCtOmjeCsi3A1dHmTZpnMISGKSczt4k= +github.com/containerd/imgcrypt v1.1.8/go.mod h1:x6QvFIkMyO2qGIY2zXc88ivEzcbgvLdWjoZyGqDap5U= +github.com/containerd/nri v0.0.0-20201007170849-eb1350a75164/go.mod h1:+2wGSDGFYfE5+So4M5syatU0N0f0LbWpuqyMi4/BE8c= +github.com/containerd/nri v0.0.0-20210316161719-dbaa18c31c14/go.mod h1:lmxnXF6oMkbqs39FiCt1s0R2HSMhcLel9vNL3m4AaeY= +github.com/containerd/nri v0.1.0/go.mod h1:lmxnXF6oMkbqs39FiCt1s0R2HSMhcLel9vNL3m4AaeY= github.com/containerd/nri v0.4.0/go.mod h1:Zw9q2lP16sdg0zYybemZ9yTDy8g7fPCIB3KXOGlggXI= +github.com/containerd/nri v0.6.1/go.mod h1:7+sX3wNx+LR7RzhjnJiUkFDhn18P5Bg/0VnJ/uXpRJM= +github.com/containerd/stargz-snapshotter/estargz v0.4.1/go.mod h1:x7Q9dg9QYb4+ELgxmo4gBUeJB0tl5dqH1Sdz0nJU1QM= github.com/containerd/stargz-snapshotter/estargz v0.14.3/go.mod h1:KY//uOCIkSuNAHhJogcZtrNHdKrA99/FCCRjE3HD36o= +github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= +github.com/containerd/ttrpc v0.0.0-20190828172938-92c8520ef9f8/go.mod h1:PvCDdDGpgqzQIzDW1TphrGLssLDZp2GuS+X5DkEJB8o= +github.com/containerd/ttrpc v0.0.0-20191028202541-4f1b8fe65a5c/go.mod h1:LPm1u0xBw8r8NOKoOdNMeVHSawSsltak+Ihv+etqsE8= +github.com/containerd/ttrpc v1.0.1/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y= +github.com/containerd/ttrpc v1.0.2/go.mod h1:UAxOpgT9ziI0gJrmKvgcZivgxOp8iFPSk8httJEt98Y= +github.com/containerd/ttrpc v1.1.0/go.mod h1:XX4ZTnoOId4HklF4edwc4DcqskFZuvXB1Evzy5KFQpQ= +github.com/containerd/ttrpc v1.1.2/go.mod h1:XX4ZTnoOId4HklF4edwc4DcqskFZuvXB1Evzy5KFQpQ= github.com/containerd/ttrpc v1.2.2/go.mod h1:sIT6l32Ph/H9cvnJsfXM5drIVzTr5A2flTf1G5tYZak= +github.com/containerd/ttrpc v1.2.5/go.mod h1:YCXHsb32f+Sq5/72xHubdiJRQY9inL4a4ZQrAbN1q9o= +github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc= +github.com/containerd/typeurl v0.0.0-20190911142611-5eb25027c9fd/go.mod h1:GeKYzf2pQcqv7tJ0AoCuuhtnqhva5LNU3U+OyKxxJpk= +github.com/containerd/typeurl v1.0.1/go.mod h1:TB1hUtrpaiO88KEK56ijojHS1+NeF0izUACaJW2mdXg= github.com/containerd/typeurl v1.0.2/go.mod h1:9trJWW2sRlGub4wZJRTW83VtbOLS6hwcDZXTn6oPz9s= github.com/containerd/typeurl/v2 v2.1.1/go.mod h1:IDp2JFvbwZ31H8dQbEIY7sDl2L3o3HZj1hsSQlywkQ0= +github.com/containerd/zfs v0.0.0-20200918131355-0a33824f23a2/go.mod h1:8IgZOBdv8fAgXddBT4dBXJPtxyRsejFIpXoklgxgEjw= +github.com/containerd/zfs v0.0.0-20210301145711-11e8f1707f62/go.mod h1:A9zfAbMlQwE+/is6hi0Xw8ktpL+6glmqZYtevJgaB8Y= +github.com/containerd/zfs v0.0.0-20210315114300-dde8f0fda960/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY= +github.com/containerd/zfs v0.0.0-20210324211415-d5c4544f0433/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY= +github.com/containerd/zfs v1.0.0/go.mod h1:m+m51S1DvAP6r3FcmYCp54bQ34pyOwTieQDNRIRHsFY= github.com/containerd/zfs v1.1.0/go.mod h1:oZF9wBnrnQjpWLaPKEinrx3TQ9a+W/RJO7Zb41d8YLE= +github.com/containernetworking/cni v0.7.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= +github.com/containernetworking/cni v0.8.0/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= +github.com/containernetworking/cni v0.8.1/go.mod h1:LGwApLUm2FpoOfxTDEeq8T9ipbpZ61X79hmU3w8FmsY= +github.com/containernetworking/cni v1.0.1/go.mod h1:AKuhXbN5EzmD4yTNtfSsX3tPcmtrBI6QcRV0NiNt15Y= +github.com/containernetworking/cni v1.1.1/go.mod h1:sDpYKmGVENF3s6uvMvGgldDWeG8dMxakj/u+i9ht9vw= github.com/containernetworking/cni v1.1.2/go.mod h1:sDpYKmGVENF3s6uvMvGgldDWeG8dMxakj/u+i9ht9vw= +github.com/containernetworking/plugins v0.8.6/go.mod h1:qnw5mN19D8fIwkqW7oHHYDHVlzhJpcY6TQxn/fUyDDM= +github.com/containernetworking/plugins v0.9.1/go.mod h1:xP/idU2ldlzN6m4p5LmGiwRDjeJr6FLK6vuiUwoH7P8= +github.com/containernetworking/plugins v1.0.1/go.mod h1:QHCfGpaTwYTbbH+nZXKVTxNBDZcxSOplJT5ico8/FLE= +github.com/containernetworking/plugins v1.1.1/go.mod h1:Sr5TH/eBsGLXK/h71HeLfX19sZPp3ry5uHSkI4LPxV8= github.com/containernetworking/plugins v1.2.0/go.mod h1:/VjX4uHecW5vVimFa1wkG4s+r/s9qIfPdqlLF4TW8c4= +github.com/containers/ocicrypt v1.0.1/go.mod h1:MeJDzk1RJHv89LjsH0Sp5KTY3ZYkjXO/C+bKAeWFIrc= +github.com/containers/ocicrypt v1.1.0/go.mod h1:b8AOe0YR67uU8OqfVNcznfFpAzu3rdgUV4GP9qXPfu4= +github.com/containers/ocicrypt v1.1.1/go.mod h1:Dm55fwWm1YZAjYRaJ94z2mfZikIyIN4B0oB3dj3jFxY= +github.com/containers/ocicrypt v1.1.2/go.mod h1:Dm55fwWm1YZAjYRaJ94z2mfZikIyIN4B0oB3dj3jFxY= +github.com/containers/ocicrypt v1.1.3/go.mod h1:xpdkbVAuaH3WzbEabUd5yDsl9SwJA5pABH85425Es2g= github.com/containers/ocicrypt v1.1.6/go.mod h1:WgjxPWdTJMqYMjf3M6cuIFFA1/MpyyhIM99YInA+Rvc= -github.com/coreos/go-oidc v2.2.1+incompatible h1:mh48q/BqXqgjVHpy2ZY7WnWAbenxRjsz9N1i1YxjHAk= +github.com/containers/ocicrypt v1.1.10/go.mod h1:YfzSSr06PTHQwSTUKqDSjish9BeW1E4HUmreluQcMd8= +github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= +github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= +github.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk= +github.com/coreos/go-iptables v0.4.5/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU= +github.com/coreos/go-iptables v0.5.0/go.mod h1:/mVI274lEDI2ns62jHCDnCyBF9Iwsmekav8Dbxlm1MU= +github.com/coreos/go-iptables v0.6.0/go.mod h1:Qe8Bv2Xik5FyTXwgIbLAnv2sWSBmvWdFETJConOQ//Q= +github.com/coreos/go-oidc v2.1.0+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= github.com/coreos/go-oidc v2.2.1+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc= +github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= +github.com/coreos/go-systemd v0.0.0-20161114122254-48702e0da86b/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd v0.0.0-20180511133405-39ca1b05acc7/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4= +github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= +github.com/coreos/go-systemd/v22 v22.1.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= +github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= +github.com/cpuguy83/go-md2man v1.0.10 h1:BSKMNlYxDvnunlTymqtgONjNnaRV1sTpcovwwjF22jk= +github.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE= +github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= +github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.3/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/cpuguy83/go-md2man/v2 v2.0.5/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= +github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= +github.com/cyphar/filepath-securejoin v0.2.3/go.mod h1:aPGpWjXOXUn2NCNjFvBE6aRxGGx79pTxQpKOJNYHHl4= +github.com/d2g/dhcp4 v0.0.0-20170904100407-a1d1b6c41b1c/go.mod h1:Ct2BUK8SB0YC1SMSibvLzxjeJLnrYEVLULFNiHY9YfQ= +github.com/d2g/dhcp4client v1.0.0/go.mod h1:j0hNfjhrt2SxUOw55nL0ATM/z4Yt3t2Kd1mW34z5W5s= +github.com/d2g/dhcp4server v0.0.0-20181031114812-7d4a0a7f59a5/go.mod h1:Eo87+Kg/IX2hfWJfwxMzLyuSZyxSoAug2nGa1G2QAi8= +github.com/d2g/hardwareaddr v0.0.0-20190221164911-e7d9fbe030e4/go.mod h1:bMl4RjIciD2oAxI7DmWRx6gbeqrkoLqv3MV0vzNad+I= +github.com/danieljoos/wincred v1.1.0/go.mod h1:XYlo+eRTsVA9aHGp7NGjFkPla4m+DCL7hqDjlFjiygg= github.com/danieljoos/wincred v1.1.2/go.mod h1:GijpziifJoIBfYh+S7BbkdUTU4LfM+QnGqR5Vl2tAx0= +github.com/danieljoos/wincred v1.2.1/go.mod h1:uGaFL9fDn3OLTvzCGulzE+SzjEe5NGlh5FdCcyfPwps= github.com/daviddengcn/go-colortext v1.0.0/go.mod h1:zDqEI5NVUop5QPpVJUxE9UO10hRnmkD5G4Pmri9+m4c= +github.com/decred/dcrd/crypto/blake256 v1.0.0/go.mod h1:sQl2p6Y26YV+ZOcSTP6thNdn47hh8kt6rqSlvmrXFAc= github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.0-20210816181553-5444fa50b93d/go.mod h1:tmAIfUFEirG/Y8jhZ9M+h36obRZAk/1fcSpXwAVlfqE= github.com/denisenkom/go-mssqldb v0.9.0/go.mod h1:xbL0rPBG9cCiLr28tMa8zpbdarY27NDyej4t/EjAShU= -github.com/dgryski/trifles v0.0.0-20200323201526-dd97f9abfb48/go.mod h1:if7Fbed8SFyPtHLHbg49SI7NAdJiC5WIA09pe59rfAA= +github.com/denverdino/aliyungo v0.0.0-20190125010748-a747050bb1ba/go.mod h1:dV8lFg6daOBZbT6/BDGIz6Y3WFGn8juu6G+CQ6LHtl0= +github.com/dgraph-io/badger/v3 v3.2103.2/go.mod h1:RHo4/GmYcKKh5Lxu63wLEMHJ70Pac2JqZRYGhlyAo2M= +github.com/dgraph-io/ristretto v0.1.0/go.mod h1:fux0lOrBhrVCJd3lcTHsIJhq1T2rokOu6v9Vcb3Q9ug= +github.com/dgrijalva/jwt-go v0.0.0-20170104182250-a601269ab70c/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ= +github.com/dgryski/go-farm v0.0.0-20190423205320-6a90982ecee2/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= +github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= +github.com/distribution/distribution/v3 v3.0.0-20220526142353-ffbd94cbe269/go.mod h1:28YO/VJk9/64+sTGNuYaBjWxrXTPrj0C0XmgTIOjxX4= +github.com/dnaeon/go-vcr v1.0.1/go.mod h1:aBB1+wY4s93YsC3HHjMBMrwTj2R9FHDzUr9KyGc8n1E= +github.com/docker/cli v0.0.0-20191017083524-a8ff7f821017/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/cli v20.10.17+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/cli v23.0.3+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/cli v27.1.0+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/distribution v0.0.0-20190905152932-14b96e55d84c/go.mod h1:0+TTO4EOBfRPhZXAeF1Vu+W3hHZ8eLp8PgKVZlcvtFY= +github.com/docker/distribution v2.7.1-0.20190205005809-0d3efadf0154+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/docker/distribution v2.7.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/docker/distribution v2.8.1+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/docker/docker v1.4.2-0.20190924003213-a8608b5b67c7/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v20.10.17+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v23.0.3+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v27.1.0+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker-credential-helpers v0.6.3/go.mod h1:WRaJzqw3CTB9bk10avuGsjVBZsD05qeibJ1/TYlvc0Y= +github.com/docker/docker-credential-helpers v0.6.4/go.mod h1:ofX3UI0Gz1TteYBjtgs07O36Pyasyp66D2uKT7H8W1c= +github.com/docker/go-connections v0.4.0/go.mod h1:Gbd7IOopHjR8Iph03tsViu4nIes5XhDvyHbTtUxmeec= +github.com/docker/go-events v0.0.0-20170721190031-9461782956ad/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA= +github.com/docker/go-metrics v0.0.0-20180209012529-399ea8c73916/go.mod h1:/u0gXw0Gay3ceNrsHubL3BtdOL2fHf93USgMTe0W5dI= +github.com/docker/go-units v0.4.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= github.com/docker/go-units v0.5.0/go.mod h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk= +github.com/docker/spdystream v0.0.0-20160310174837-449fdfce4d96/go.mod h1:Qh8CwZgvJUkLughtfhJv5dyTYa91l1fOUCrgjqmcifM= +github.com/docopt/docopt-go v0.0.0-20180111231733-ee0de3bc6815/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= +github.com/dustin/go-humanize v0.0.0-20171111073723-bb3d318650d4/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= +github.com/elazarl/goproxy v0.0.0-20180725130230-947c36da3153/go.mod h1:/Zj4wYkgs4iZTTu3o/KG3Itv/qCCa8VVMlb3i9OVuzc= +github.com/emicklei/go-restful v0.0.0-20170410110728-ff4f55a20633/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= +github.com/emicklei/go-restful v2.9.5+incompatible h1:spTtZBk5DYEvbxMVutUuTyh1Ao2r4iyvLdACqsl/Ljk= +github.com/emicklei/go-restful v2.9.5+incompatible/go.mod h1:otzb+WCGbkyDHkqmQmT5YD2WR4BBwUdeQoFo8l/7tVs= +github.com/emicklei/go-restful/v3 v3.10.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/emicklei/go-restful/v3 v3.11.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= +github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= +github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= +github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.13.0 h1:HzkeUz1Knt+3bK+8LG1bxOO/jzWZmdxpwC51i202les= +github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= +github.com/envoyproxy/go-control-plane v0.9.10-0.20210907150352-cf90f659a021/go.mod h1:AFq3mo9L8Lqqiid3OhADV3RfLJnjiw63cSpi+fDTRC0= +github.com/envoyproxy/go-control-plane v0.10.2-0.20220325020618-49ff273808a1/go.mod h1:KJwIaB5Mv44NWtYuAOFCVOjcI94vtpEz2JU/D2v6IjE= github.com/envoyproxy/go-control-plane v0.13.0/go.mod h1:GRaKG3dwvFoTg4nj7aXdZnvMg4d7nvT/wl9WgVXn3Q8= -github.com/envoyproxy/protoc-gen-validate v1.1.0 h1:tntQDh69XqOCOZsDz0lVJQez/2L6Uu2PdjCQwWCJ3bM= +github.com/envoyproxy/go-control-plane v0.13.1/go.mod h1:X45hY0mufo6Fd0KW3rqsGvQMw58jvjymeCzBU3mWyHw= +github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= github.com/envoyproxy/protoc-gen-validate v1.1.0/go.mod h1:sXRDRVmzEbkM7CVcM06s9shE/m23dg3wzjl0UWqJ2q4= -github.com/evanphx/json-patch v4.12.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/evanphx/json-patch v4.11.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/exponent-io/jsonpath v0.0.0-20151013193312-d6023ce2651d/go.mod h1:ZZMPRZwes7CROmyNKgQzC3XPs6L/G2EJLHddWejkmf4= github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc= +github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk= +github.com/felixge/httpsnoop v1.0.1/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/felixge/httpsnoop v1.0.2/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= +github.com/form3tech-oss/jwt-go v3.2.3+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= +github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= +github.com/foxcpp/go-mockdns v0.0.0-20210729171921-fb145fc6f897/go.mod h1:lgRN6+KxQBawyIghpnl5CezHFGS9VLzvtVlwxvzXTQ4= +github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k= +github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo= +github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= +github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU= +github.com/fsnotify/fsnotify v1.6.0/go.mod h1:sl3t1tCWJFWoRz9R8WJCbQihKKwmorjAbSClcnxKAGw= +github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fullsailor/pkcs7 v0.0.0-20190404230743-d7302db945fa/go.mod h1:KnogPXtdwXqoenmZCw6S+25EAm2MkxbG0deNDu4cbSA= +github.com/fxamacker/cbor/v2 v2.4.0/go.mod h1:TA1xS00nchWmaBnEIxPSE5oHLuJBAVvqrtAnWBwBCVo= +github.com/garyburd/redigo v0.0.0-20150301180006-535138d7bcd7/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY= +github.com/getsentry/raven-go v0.2.0/go.mod h1:KungGk8q33+aIAZUIVWZDr2OfAEBsO49PX4NzFV5kcQ= +github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU= -github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8 h1:DujepqpGd1hyOd7aW59XpK7Qymp8iy83xq74fLr21is= +github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= github.com/globalsign/mgo v0.0.0-20181015135952-eeefdecb41b8/go.mod h1:xkRDCp4j0OGD1HRkm4kmhM+pmpv3AKq5SU7GMg4oO/Q= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-ini/ini v1.25.4/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= +github.com/go-ini/ini v1.66.6/go.mod h1:ByCAeIL28uOIIG0E3PJtZPDL8WnHpFKFOtgjp+3Ies8= +github.com/go-jose/go-jose/v3 v3.0.3/go.mod h1:5b+7YgP7ZICgJDBdfjZaIt+H/9L9T/YQrVfLAMboGkQ= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-kit/log v0.1.0/go.mod h1:zbhenjAZHb184qTLMA9ZjW7ThYL0H2mk7Q6pNt4vbaY= +github.com/go-kit/log v0.2.0/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= github.com/go-kit/log v0.2.1 h1:MRVx0/zhvdseW+Gza6N9rVzU/IVzaeE1SFI4raAhmBU= github.com/go-kit/log v0.2.1/go.mod h1:NwTd00d/i8cPZ3xOwwiv2PO5MOcx78fFErGNcVmBjv0= -github.com/go-logfmt/logfmt v0.5.1 h1:otpy5pqBCBZ1ng9RQ0dPu4PN7ba75Y/aA+UpowDyNVA= +github.com/go-logfmt/logfmt v0.5.0/go.mod h1:wCYkCAKZfumFQihp8CzCvQ3paCTfi41vtzG1KdI/P7A= github.com/go-logfmt/logfmt v0.5.1/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= +github.com/go-logfmt/logfmt v0.6.0 h1:wGYYu3uicYdqXVgoYbvnkrPVXkuLM1p1ifugDMEdRi4= github.com/go-logfmt/logfmt v0.6.0/go.mod h1:WYhtIu8zTZfxdn5+rREduYbwxfcBr/Vr6KEVveWlfTs= +github.com/go-logr/logr v0.1.0/go.mod h1:ixOQHD9gLJUVQQ2ZOR7zLEifBX6tGkNJF4QyIY7sIas= +github.com/go-logr/logr v0.2.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= +github.com/go-logr/logr v0.4.0/go.mod h1:z6/tIYblkpsD+a4lm/fGIIU9mZ+XfAiaFtq7xTgseGU= github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.1/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/logr v1.4.1/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/zapr v1.3.0 h1:XGdV8XW8zdwFiwOA2Dryh1gj2KRQyOOoNmBy4EplIcQ= +github.com/go-logr/stdr v1.2.0/go.mod h1:YkVgnZu1ZjjL7xTxrfm/LLZBfkhTqSR1ydtm6jTKKwI= github.com/go-logr/zapr v1.3.0/go.mod h1:YKepepNBd1u/oyhd/yQmtjVXmm9uML4IXUgMOwR8/Gg= +github.com/go-openapi/jsonpointer v0.0.0-20160704185906-46af16f9f7b1/go.mod h1:+35s3my2LFTysnkMfxsJBAMHj/DoqoB9knIWoYG/Vk0= +github.com/go-openapi/jsonpointer v0.19.2/go.mod h1:3akKfEdA7DF1sugOqz1dVQHBcuDBPKZGEoHC/NkiQRg= +github.com/go-openapi/jsonpointer v0.19.3/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= +github.com/go-openapi/jsonpointer v0.19.5/go.mod h1:Pl9vOtqEWErmShwVjC8pYs9cog34VGT37dQOVbmoatg= github.com/go-openapi/jsonpointer v0.19.6/go.mod h1:osyAmYz/mB/C3I+WsTTSgw1ONzaLJoLCyoi6/zppojs= +github.com/go-openapi/jsonreference v0.0.0-20160704190145-13c6e3589ad9/go.mod h1:W3Z9FmVs9qj+KR4zFKmDPGiLdk1D9Rlm7cyMvf57TTg= +github.com/go-openapi/jsonreference v0.19.2/go.mod h1:jMjeRr2HHw6nAVajTXJ4eiUwohSTlpa0o73RUL1owJc= +github.com/go-openapi/jsonreference v0.19.3/go.mod h1:rjx6GuL8TTa9VaixXglHmQmIL98+wF9xc8zWvFonSJ8= +github.com/go-openapi/jsonreference v0.19.5/go.mod h1:RdybgQwPxbL4UEjuAruzK1x3nE69AqPYEJeo/TWfEeg= github.com/go-openapi/jsonreference v0.20.1/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= github.com/go-openapi/jsonreference v0.20.2/go.mod h1:Bl1zwGIM8/wsvqjsOQLJ/SH+En5Ap4rVB5KVcIDZG2k= +github.com/go-openapi/spec v0.0.0-20160808142527-6aced65f8501/go.mod h1:J8+jY1nAiCcj+friV/PDoE1/3eeccG9LYBs0tYvLOWc= +github.com/go-openapi/spec v0.19.3/go.mod h1:FpwSN1ksY1eteniUU7X0N/BgJ7a4WvBFVA8Lj9mJglo= +github.com/go-openapi/swag v0.0.0-20160704191624-1d0bd113de87/go.mod h1:DXUve3Dpr1UfpPtxFw+EFuQ41HhCWZfha5jSVRG7C7I= +github.com/go-openapi/swag v0.19.2/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= +github.com/go-openapi/swag v0.19.5/go.mod h1:POnQmlKehdgb5mhVOsnJFsivZCEZ/vjK9gh66Z9tfKk= +github.com/go-openapi/swag v0.19.14/go.mod h1:QYRuS/SOXUCsnplDa677K7+DxSOj6IPNl/eQntq43wQ= github.com/go-openapi/swag v0.22.3/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= github.com/go-openapi/swag v0.22.4/go.mod h1:UzaqsxGiab7freDnrUUra0MwWfN/q7tE4j+VcZ0yl14= -github.com/go-playground/validator/v10 v10.20.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= -github.com/go-playground/validator/v10 v10.22.0/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= -github.com/godbus/dbus/v5 v5.0.4 h1:9349emZab16e7zQvpmsbtjc18ykshndd8y2PG3sgJbA= +github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= +github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= +github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= +github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= +github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= +github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= +github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= +github.com/gobwas/httphead v0.1.0/go.mod h1:O/RXo79gxV8G+RqlR/otEwx4Q36zl9rqC5u12GKvMCM= +github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= +github.com/gobwas/pool v0.2.1/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= +github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= +github.com/gobwas/ws v1.4.0/go.mod h1:G3gNqMNtPppf5XUz7O4shetPpcZ1VJ7zt18dlUeakrc= +github.com/goccy/go-json v0.9.7/go.mod h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I= +github.com/godbus/dbus v0.0.0-20151105175453-c7fdd8b5cd55/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= +github.com/godbus/dbus v0.0.0-20180201030542-885f9cc04c9c/go.mod h1:/YcGZj5zSblfDWMMoOzV4fas9FZnQYTkDnsGvmh2Grw= +github.com/godbus/dbus v0.0.0-20190422162347-ade71ed3457e/go.mod h1:bBOAhwG1umN6/6ZUMtDFBMQR8jRg9O75tm9K00oMsK4= +github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/godbus/dbus/v5 v5.0.6/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godbus/dbus/v5 v5.1.0/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godror/godror v0.40.4/go.mod h1:i8YtVTHUJKfFT3wTat4A9UoqScUtZXiYB9Rf3SVARgc= github.com/godror/knownpb v0.1.1/go.mod h1:4nRFbQo1dDuwKnblRXDxrfCFYeT4hjg3GjMqef58eRE= github.com/gofrs/flock v0.8.1/go.mod h1:F1TvTiK9OcQqauNUHlbJvyl9Qa1QvF/gOUDKA14jxHU= +github.com/gofrs/uuid v4.0.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= +github.com/gogo/googleapis v1.2.0/go.mod h1:Njal3psf3qN6dwBtQfUmBZh2ybovJ0tlu3o/AC7HYjU= +github.com/gogo/googleapis v1.4.0/go.mod h1:5YRNX2z1oM5gXdAkurHa942MDgEJyk02w4OecKY87+c= +github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.0/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/gogo/protobuf v1.3.1/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= +github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= +github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= +github.com/golang-jwt/jwt/v4 v4.4.2/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= -github.com/golang/glog v1.2.2 h1:1+mZ9upx1Dh6FmUTFR1naJ77miKiXgALjWOZ3NVFPmY= +github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= +github.com/golang/glog v1.0.0/go.mod h1:EWib/APOK0SL3dFbYqvxE3UYd8E6s1ouQ7iEp/0LWV4= github.com/golang/glog v1.2.2/go.mod h1:6AhwSGph0fcJtXVM/PEHPqZlFeoLxhs7/t5UDAwmO+w= +github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= +github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= +github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= +github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= +github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= +github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= +github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.3/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= -github.com/google/cel-go v0.17.8/go.mod h1:HXZKzB0LXqer5lHHgfWAnlYwJaQBDKMjxjulNQzhwhY= -github.com/google/cel-go v0.20.1 h1:nDx9r8S3L4pE61eDdt8igGj8rf5kjYR3ILxWIpWNi84= +github.com/gomodule/redigo v1.8.2/go.mod h1:P9dn9mFrCBvWhGE1wpxx6fgq7BAeLBk+UUUzlpkBYO0= +github.com/gomodule/redigo v1.9.2/go.mod h1:KsU3hiK/Ay8U42qpaJk+kuNa3C+spxapWpM+ywhcgtw= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= +github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/cel-go v0.20.1/go.mod h1:kWcIzTsPX0zmQ+H3TirHstLLf9ep5QTsZBN9u4dOYLg= +github.com/google/cel-go v0.22.0/go.mod h1:BuznPXXfQDpXKWQ9sPW3TzlAJN5zzFe+i9tIs0yC4s8= +github.com/google/flatbuffers v1.12.1/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= github.com/google/flatbuffers v23.5.26+incompatible/go.mod h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8= +github.com/google/gnostic v0.5.7-v3refs/go.mod h1:73MKFl6jIHelAJNaBGFzt3SPtZULs9dYrGFt8OiIsHQ= github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U= +github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= +github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.8/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.7/go.mod h1:n+brtR0CgQNWTVd5ZUFpTBC8YFBDLK/h/bpaJ8/DtOE= +github.com/google/go-containerregistry v0.5.1/go.mod h1:Ct15B4yir3PLOP5jsy0GNeYVaIZs/MK/Jz5any1wFW0= github.com/google/go-containerregistry v0.14.0/go.mod h1:aiJ2fp/SXvkWgmYHioXnbMdlgB8eXiiYOY55gfN91Wk= github.com/google/go-pkcs11 v0.2.1-0.20230907215043-c6f79328ddf9/go.mod h1:6eQoGcuNJpa7jnd5pMGdkSaQpNDYvPlXWMcjXXThLlY= +github.com/google/gofuzz v1.1.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= github.com/google/martian/v3 v3.3.2/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= -github.com/google/s2a-go v0.1.7 h1:60BLSyTrOV4/haCDW4zb1guZItoSq8foHCXrAnjBo/o= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210407192527-94a9f03dee38/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20240727154555-813a5fbdbec8/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo= +github.com/google/pprof v0.0.0-20240827171923-fa2c70bbbfe5/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= +github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/s2a-go v0.1.7/go.mod h1:50CgR4k1jNlWBu4UfS4AcfhVe1r6pdZPygJ3R8F0Qdw= +github.com/google/s2a-go v0.1.8/go.mod h1:6iNWHTpQ+nfNRN5E00MSdfDwVesa8hhS32PhPO8deJA= +github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/enterprise-certificate-proxy v0.3.2 h1:Vie5ybvEvT75RniqhfFxPRy3Bf7vr3h0cechB90XaQs= +github.com/google/uuid v1.2.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.4.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/enterprise-certificate-proxy v0.3.2/go.mod h1:VLSiSSBs/ksPL8kq3OBOQ6WRI2QnaFynd1DCjZ62+V0= +github.com/googleapis/enterprise-certificate-proxy v0.3.4/go.mod h1:YKe7cfqYXjKGpGvmSg28/fFvhNzinZQm8DGnaburhGA= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/googleapis/gax-go/v2 v2.12.0/go.mod h1:y+aIqrI5eb1YGMVJfuV3185Ts/D7qKpsEkdD5+I6QGU= github.com/googleapis/gax-go/v2 v2.12.1/go.mod h1:61M8vcyyXR2kqKFxKrfA22jaA8JGF7Dc8App1U3H6jc= github.com/googleapis/gax-go/v2 v2.12.2/go.mod h1:61M8vcyyXR2kqKFxKrfA22jaA8JGF7Dc8App1U3H6jc= -github.com/googleapis/gax-go/v2 v2.12.3 h1:5/zPPDvw8Q1SuXjrqrZslrqT7dL/uJT2CQii/cLCKqA= github.com/googleapis/gax-go/v2 v2.12.3/go.mod h1:AKloxT6GtNbaLm8QTNSidHUVsHYcBHwWRvkNFJUQcS4= -github.com/googleapis/google-cloud-go-testing v0.0.0-20210719221736-1c9a4c676720 h1:zC34cGQu69FG7qzJ3WiKW244WfhDC3xxYMeNOX2gtUQ= +github.com/googleapis/gax-go/v2 v2.14.1/go.mod h1:Hb/NubMaVM88SrNkvl8X/o8XWwDJEPqouaLeN2IUxoA= +github.com/googleapis/gnostic v0.4.1/go.mod h1:LRhVm6pbyptWbWbuZ38d1eyptfvIytN3ir6b65WBswg= +github.com/googleapis/gnostic v0.5.1/go.mod h1:6U4PtQXGIEt/Z3h5MAT7FNofLnw9vXk2cUuW7uA/OeU= +github.com/googleapis/gnostic v0.5.5/go.mod h1:7+EbHbldMins07ALC74bsA81Ovc97DwqyJO1AENw9kA= github.com/googleapis/google-cloud-go-testing v0.0.0-20210719221736-1c9a4c676720/go.mod h1:dvDLG8qkwmyD9a/MJJN3XJcT3xFxOKAvTZGvuZmac9g= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gorilla/handlers v0.0.0-20150720190736-60c7bfde3e33/go.mod h1:Qkdc/uu4tH4g6mTK6auzZ766c4CA0Ng8+o/OAirnOIQ= +github.com/gorilla/mux v1.7.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/graph-gophers/graphql-go v1.5.0/go.mod h1:YtmJZDLbF1YYNrlNAuiO5zAStUWc3XZT07iGsVqe1Os= +github.com/graph-gophers/graphql-transport-ws v0.0.2/go.mod h1:5BVKvFzOd2BalVIBFfnfmHjpJi/MZ5rOj8G55mXvZ8g= +github.com/gregjones/httpcache v0.0.0-20180305231024-9cad4c3443a7/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= +github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= +github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg= +github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/api v1.28.2 h1:mXfkRHrpHN4YY3RqL09nXU1eHKLNiuAN4kHvDQ16k/8= github.com/hashicorp/consul/api v1.28.2/go.mod h1:KyzqzgMEya+IZPcD65YFoOVAgPpbfERu4I/tzG6/ueE= +github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= +github.com/hashicorp/errwrap v0.0.0-20141028054710-7554cd9344ce/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= github.com/hashicorp/go-hclog v1.5.0 h1:bI2ocEMgcVlz55Oj1xZNBsVi900c7II+fWDyV9o+13c= github.com/hashicorp/go-hclog v1.5.0/go.mod h1:W4Qnvbt70Wk/zYJryRzDRU/4r0kIg0PVHBcfoyhpF5M= +github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= github.com/hashicorp/go-immutable-radix v1.3.1 h1:DKHmCUm2hRBK510BaiZlwvpD40f8bJFeZnpfm2KLowc= github.com/hashicorp/go-immutable-radix v1.3.1/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +github.com/hashicorp/go-multierror v0.0.0-20161216184304-ed905158d874/go.mod h1:JMRHfdO9jKNzS/+BTlxCjKNQHg/jZAft8U7LloJvN7I= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= github.com/hashicorp/go-rootcerts v1.0.2 h1:jzhAVGtqPKbwpyCPELlgNWhE1znq+qwJtW5Oi2viEzc= github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= +github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= +github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= +github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.4/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4= +github.com/hashicorp/golang-lru/v2 v2.0.5/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= +github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= +github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= +github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= +github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= github.com/hashicorp/serf v0.10.1 h1:Z1H2J60yRKvfDYAOZLd2MU0ND4AH/WDz7xYHDWQsIPY= github.com/hashicorp/serf v0.10.1/go.mod h1:yL2t6BqATOLGc5HF7qbFkTfXoPIY0WZdWHfEvMqbG+4= +github.com/hasura/go-graphql-client v0.10.0/go.mod h1:z9UPkMmCBMuJjvBEtdE6F+oTR2r15AcjirVNq/8P+Ig= +github.com/hpcloud/tail v1.0.0/go.mod h1:ab1qPbhIpdTxEkNHXyeSf5vhxWSCs/tWer42PpOxQnU= +github.com/huandu/xstrings v1.3.1/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= +github.com/huandu/xstrings v1.3.2/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= +github.com/huandu/xstrings v1.3.3/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= +github.com/huandu/xstrings v1.4.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= github.com/iancoleman/strcase v0.3.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20240312041847-bd984b5ce465/go.mod h1:gx7rwoVhcfuVKG5uya9Hs3Sxj7EIvldVofAWIUtGouw= +github.com/imdario/mergo v0.3.5/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/imdario/mergo v0.3.8/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA= +github.com/imdario/mergo v0.3.10/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= +github.com/imdario/mergo v0.3.11/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= +github.com/imdario/mergo v0.3.12/go.mod h1:jmQim1M+e3UYxmgPu/WyfjB3N3VflVyUjjjwH0dnCYA= +github.com/imdario/mergo v0.3.13/go.mod h1:4lJ1jqUDcsbIECGy0RUJAXNIhg+6ocWgb1ALK2O4oXg= +github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= +github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/intel/goresctrl v0.2.0/go.mod h1:+CZdzouYFn5EsxgqAQTEzMfwKwuc0fVdMrT9FCCAVRQ= github.com/intel/goresctrl v0.3.0/go.mod h1:fdz3mD85cmP9sHD8JUlrNWAxvwM86CrbmVXltEKd7zk= -github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= +github.com/j-keck/arping v0.0.0-20160618110441-2cf9dc699c56/go.mod h1:ymszkNOg6tORTn+6F6j+Jc8TOr5osrynvN6ivFWZ2GA= +github.com/j-keck/arping v1.0.2/go.mod h1:aJbELhR92bSk7tp79AWM/ftfc90EfEi2bQJrbBFOsPw= github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= -github.com/jinzhu/now v1.1.5 h1:/o9tlHleP7gOFmsnYNz3RGnqzefHA47wQpKrrdTIwXQ= github.com/jinzhu/now v1.1.5/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= +github.com/jmespath/go-jmespath v0.0.0-20160202185014-0b12d6b521d8/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= +github.com/jmespath/go-jmespath v0.0.0-20160803190731-bd40a432e4c7/go.mod h1:Nht3zPeWKUH0NzdCt2Blrr5ys8VGpn0CEB0cQHVjt7k= +github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= +github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= +github.com/joefitzgerald/rainbow-reporter v0.1.0/go.mod h1:481CNgqmVHQZzdIbN52CupLJyoVwB10FQ/IQlF1pdL8= +github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= +github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= github.com/josephspurrier/goversioninfo v1.4.0/go.mod h1:JWzv5rKQr+MmW+LvM412ToT/IkYDZjaclF2pKDss8IY= -github.com/jpillora/backoff v1.0.0 h1:uvFg412JmmHBHw7iwprIxkPMI+sGQ4kzOWsMeHnm2EA= github.com/jpillora/backoff v1.0.0/go.mod h1:J/6gKK9jxlEcS3zixgDgUAsiuZ7yrSoa/FX5e0EB2j4= -github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U= +github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM= -github.com/kevinmbeaulieu/eq-go v1.0.0 h1:AQgYHURDOmnVJ62jnEk0W/7yFKEn+Lv8RHN6t7mB0Zo= github.com/kevinmbeaulieu/eq-go v1.0.0/go.mod h1:G3S8ajA56gKBZm4UB9AOyoOS37JO3roToPzKNM8dtdM= -github.com/kidstuff/mongostore v0.0.0-20181113001930-e650cd85ee4b h1:TLCm7HR+P9HM2NXaAJaIiHerOUMedtFJeAfaYwZ8YhY= github.com/kidstuff/mongostore v0.0.0-20181113001930-e650cd85ee4b/go.mod h1:g2nVr8KZVXJSS97Jo8pJ0jgq29P6H7dG0oplUA86MQw= -github.com/kisielk/errcheck v1.5.0 h1:e8esj/e4R+SAOwFwN+n3zr0nYeCyeweozKfO23MvHzY= -github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg= -github.com/knz/go-libedit v1.10.1 h1:0pHpWtx9vcvC0xGZqEQlQdfSQs7WRlAjuPvk3fOZDCo= -github.com/kr/fs v0.1.0 h1:Jskdu9ieNAYnjxsi0LbQp1ulIKZV1LAFgK1tWhpZgl8= +github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/errcheck v1.2.0/go.mod h1:/BMXB+zMLi60iA8Vv6Ksmxu/1UDYcXs4uQLJ+jE2L00= +github.com/kisielk/sqlstruct v0.0.0-20201105191214-5f3e10d3ab46/go.mod h1:yyMNCyc/Ib3bDTKd379tNMpB/7/H5TjM2Y9QJ5THLbE= +github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= +github.com/klauspost/compress v1.11.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= +github.com/klauspost/compress v1.11.13/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= +github.com/klauspost/compress v1.12.3/go.mod h1:8dP1Hq4DHOhN9w426knH3Rhby4rFm6D8eO+e+Dq5Gzg= +github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/klauspost/compress v1.16.0/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.16.7/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE= +github.com/klauspost/compress v1.17.4/go.mod h1:/dCuZOvVtNoHsyb+cuJD3itjs3NbnF6KH9zAO4BDxPM= +github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= +github.com/klauspost/cpuid/v2 v2.0.4/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/konsorten/go-windows-terminal-sequences v1.0.3/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= +github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/pty v1.1.5/go.mod h1:9r2w37qlBe7rQ6e1fg1S/9xpWHSnaqNdHD3WcMdbPDA= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= +github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= github.com/lestrrat-go/backoff/v2 v2.0.8/go.mod h1:rHP/q/r9aT27n24JQLa7JhSQZCKBBOiM/uP402WwN8Y= github.com/lestrrat-go/blackmagic v1.0.0/go.mod h1:TNgH//0vYSs8VXDCfkZLgIrVTTXQELZffUV0tz3MtdQ= github.com/lestrrat-go/httpcc v1.0.1/go.mod h1:qiltp3Mt56+55GPVCbTdM9MlqhvzyuL6W/NMDA8vA5E= github.com/lestrrat-go/iter v1.0.1/go.mod h1:zIdgO1mRKhn8l9vrZJZz9TUMMFbQbLeTsbqPDrJ/OJc= github.com/lestrrat-go/jwx v1.2.25/go.mod h1:zoNuZymNl5lgdcu6P7K6ie2QRll5HVfF4xwxBBK1NxY= github.com/lestrrat-go/option v1.0.0/go.mod h1:5ZHFbivi4xwXxhxY9XHDe2FHo6/Z7WWmtT7T5nBBp3I= +github.com/lib/pq v1.10.7/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= github.com/linuxkit/virtsock v0.0.0-20201010232012-f8cee7dfc7a3/go.mod h1:3r6x7q95whyfWQpmGZTu3gk3v2YkMi05HEzl7Tf7YEo= github.com/lithammer/dedent v1.1.0/go.mod h1:jrXYCQtgg0nJiN+StA2KgR7w6CiQNv9Fd/Z9BP0jIOc= -github.com/logrusorgru/aurora/v3 v3.0.0/go.mod h1:vsR12bk5grlLvLXAYrBsb5Oc/N+LxAlxggSjiwMnCUc= -github.com/logrusorgru/aurora/v4 v4.0.0 h1:sRjfPpun/63iADiSvGGjgA1cAYegEWMPCJdUpJYn9JA= github.com/logrusorgru/aurora/v4 v4.0.0/go.mod h1:lP0iIa2nrnT/qoFXcOZSrZQpJ1o6n2CUf/hyHi2Q4ZQ= github.com/lyft/protoc-gen-star/v2 v2.0.4-0.20230330145011-496ad1ac90a4/go.mod h1:amey7yeodaJhXSbf/TlLvWiqQfLOSpEk//mLlc+axEk= -github.com/matryer/moq v0.3.4/go.mod h1:wqm9QObyoMuUtH81zFfs3EK6mXEcByy+TjvSROOXJ2U= -github.com/matryer/moq v0.4.0 h1:HsZIdEsj8+9nE940WW7FFxMgrgSxGfMkNXhVTHUhfMU= +github.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ= +github.com/mailru/easyjson v0.0.0-20160728113105-d5b7844b561a/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20190614124828-94de47d64c63/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.0.0-20190626092158-b2ccc519800e/go.mod h1:C1wdFJiN94OJF2b5HbByQZoLdCWB1Yqtg26g4irojpc= +github.com/mailru/easyjson v0.7.0/go.mod h1:KAzv3t3aY1NaHWoQz1+4F1ccyAH66Jk7yos7ldAVICs= +github.com/mailru/easyjson v0.7.6/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= +github.com/marstr/guid v1.1.0/go.mod h1:74gB1z2wpxxInTG6yaqA7KrtM0NZ+RbrcqDvYHefzho= github.com/matryer/moq v0.4.0/go.mod h1:kUfalaLk7TcyXhrhonBYQ2Ewun63+/xGbZ7/MzzzC4Y= +github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= +github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27kJ6hsGG94= +github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= github.com/mattn/go-oci8 v0.1.1/go.mod h1:wjDx6Xm9q7dFtHJvIlrI99JytznLw5wQ4R+9mNXJwGI= +github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/mattn/go-shellwords v1.0.3/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= +github.com/mattn/go-shellwords v1.0.6/go.mod h1:3xCvwCdWdlDJUrvuMn7Wuy9eWs4pE8vqg+NOMyg4B2o= github.com/mattn/go-shellwords v1.0.12/go.mod h1:EZzvwXDESEeg03EKmM+RmDnNOPKG4lLtQsUlTZDWQ8Y= -github.com/mattn/go-sqlite3 v1.14.16 h1:yOQRA0RpS5PFz/oikGwBEqvAWhWg5ufRz4ETLjwpU1Y= -github.com/mattn/go-sqlite3 v1.14.16/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= +github.com/mattn/go-sqlite3 v1.14.19/go.mod h1:2eHXhiwb8IkHr+BDWZGa96P6+rkvnG63S2DGjv9HUNg= +github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= github.com/matttproud/golang_protobuf_extensions v1.0.4/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4= -github.com/memcachier/mc v2.0.1+incompatible h1:s8EDz0xrJLP8goitwZOoq1vA/sm0fPS4X3KAF0nyhWQ= +github.com/maxbrunsfeld/counterfeiter/v6 v6.2.2/go.mod h1:eD9eIE7cdwcMi9rYluz88Jz2VyhSmden33/aXg4oVIY= github.com/memcachier/mc v2.0.1+incompatible/go.mod h1:7bkvFE61leUBvXz+yxsOnGBQSZpBSPIMUQSmmSHvuXc= +github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/miekg/dns v1.1.25/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= +github.com/miekg/dns v1.1.43/go.mod h1:+evo5L0630/F6ca/Z9+GAqzhjGyn8/c+TBaOyfEl0V4= +github.com/miekg/pkcs11 v1.0.3/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= github.com/miekg/pkcs11 v1.1.1/go.mod h1:XsNlhZGX73bx86s2hdc/FuaLm2CPZJemRLMA+WTFxgs= github.com/minio/sha256-simd v1.0.0/go.mod h1:OuYzVNI5vcoYIAmbIvHPl3N3jUzVedXbKy5RFepssQM= +github.com/mistifyio/go-zfs v2.1.2-0.20190413222219-f784269be439+incompatible/go.mod h1:8AuVvqP/mXw1px98n46wfvcGfQ4ci2FwoAjKYxuo3Z4= github.com/mistifyio/go-zfs/v3 v3.0.1/go.mod h1:CzVgeB0RvF2EGzQnytKVvVSDwmKJXxkOTUGbNrTja/k= +github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/cli v1.1.5/go.mod h1:v8+iFts2sPIKUV1ltktPXMCC8fumSKFItNcD2cLtRR4= +github.com/mitchellh/copystructure v1.0.0/go.mod h1:SNtv71yrdKgLRyLFxmLdkAbkKEFWgYaq1OVrnRcwhnw= +github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= +github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= +github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= +github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/osext v0.0.0-20151018003038-5e2d6d41470f/go.mod h1:OkQIRizQZAeMln+1tSwduZz7+Af5oFlKirV/MSYes2A= +github.com/mitchellh/reflectwalk v1.0.0/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= +github.com/mndrix/tap-go v0.0.0-20171203230836-629fa407e90b/go.mod h1:pzzDgJWZ34fGzaAZGFW22KVZDfyrYW+QABMrWnJBnSs= +github.com/moby/spdystream v0.2.0/go.mod h1:f7i0iNDQJ059oMTcWxx8MA/zKFIuD/lY+0GqbN2Wy8c= +github.com/moby/spdystream v0.4.0/go.mod h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI= +github.com/moby/sys/mountinfo v0.4.0/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A= +github.com/moby/sys/mountinfo v0.4.1/go.mod h1:rEr8tzG/lsIZHBtN/JjGG+LMYx9eXgW2JI+6q0qou+A= +github.com/moby/sys/mountinfo v0.5.0/go.mod h1:3bMD3Rg+zkqx8MRYPi7Pyb0Ie97QEBmdxbhnCLlSvSU= github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo= +github.com/moby/sys/signal v0.6.0/go.mod h1:GQ6ObYZfqacOwTtlXvcmh9A26dVRul/hbOZn88Kg8Tg= github.com/moby/sys/signal v0.7.0/go.mod h1:GQ6ObYZfqacOwTtlXvcmh9A26dVRul/hbOZn88Kg8Tg= +github.com/moby/sys/symlink v0.1.0/go.mod h1:GGDODQmbFOjFsXvfLVn3+ZRxkch54RkSiGqsZeMYowQ= github.com/moby/sys/symlink v0.2.0/go.mod h1:7uZVF2dqJjG/NsClqul95CqKOBRQyYSNnJ6BMgR/gFs= github.com/moby/sys/user v0.1.0/go.mod h1:fKJhFOnsCN6xZ5gSfbM6zaHGgDJMrqt9/reuj4T7MmU= -github.com/montanaflynn/stats v0.7.1 h1:etflOAAHORrCC44V+aR6Ftzort912ZU+YLiSTuV8eaE= +github.com/moby/sys/user v0.3.0/go.mod h1:bG+tYYYJgaMtRKgEmuueC0hJEAZWwtIbZTB+85uoHjs= +github.com/moby/term v0.0.0-20200312100748-672ec06f55cd/go.mod h1:DdlQx2hp0Ss5/fLikoLlEeIYiATotOjgB//nb973jeo= +github.com/moby/term v0.0.0-20210610120745-9d4ed1856297/go.mod h1:vgPCkQMyxTZ7IDy8SXRufE172gr8+K/JE/7hHFxHW3A= github.com/montanaflynn/stats v0.7.1/go.mod h1:etXPPgVO6n31NxCd9KQUMvCM+ve0ruNzt6R8Bnaayow= -github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f h1:KUppIJq7/+SVif2QVs3tOP0zanoHgBEVAwHxUSIzRqU= +github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= +github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ= +github.com/munnerz/goautoneg v0.0.0-20120707110453-a547fc61f48d/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= github.com/mwitkow/go-conntrack v0.0.0-20190716064945-2f068394615f/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= -github.com/nats-io/nats.go v1.34.0 h1:fnxnPCNiwIG5w08rlMcEKTUw4AV/nKyGCOJE8TdhSPk= github.com/nats-io/nats.go v1.34.0/go.mod h1:Ubdu4Nh9exXdSz0RVWRFBbRfrbSxOYd26oF0wkWclB8= -github.com/nats-io/nkeys v0.4.7 h1:RwNJbbIdYCoClSDNY7QVKZlyb/wfT6ugvFCiKy6vDvI= github.com/nats-io/nkeys v0.4.7/go.mod h1:kqXRgRDPlGy7nGaEDMuYzmiJCIAAWDK0IMBtDmGD0nc= -github.com/nats-io/nuid v1.0.1 h1:5iA8DT8V7q8WK2EScv2padNa/rTESc1KdnPw4TC2paw= github.com/nats-io/nuid v1.0.1/go.mod h1:19wcPz3Ph3q0Jbyiqsd0kePYG7A95tJPxeL+1OSON2c= +github.com/ncw/swift v1.0.47/go.mod h1:23YIA4yWVnGwv2dQlN4bB7egfYX6YLn0Yo/S6zZO/ZM= github.com/nelsam/hel/v2 v2.3.3/go.mod h1:1ZTGfU2PFTOd5mx22i5O0Lc2GY933lQ2wb/ggy+rL3w= +github.com/networkplumbing/go-nft v0.2.0/go.mod h1:HnnM+tYvlGAsMU7yoYwXEVLLiDW9gdMmb5HoGcwpuQs= github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= +github.com/nxadm/tail v1.4.4/go.mod h1:kenIhsEOeOJmVchQTgglprH7qJGnHDVpk1VPCcaMI8A= +github.com/nxadm/tail v1.4.8/go.mod h1:+ncqLTQzXmGhMZNUePPaPqPvBxHAIsmXswZKocGu+AU= +github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U= +github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/olekukonko/tablewriter v0.0.5/go.mod h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY= +github.com/onsi/ginkgo v0.0.0-20151202141238-7f8ab55aaf3b/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v0.0.0-20170829012221-11459a886d9c/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.6.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.8.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.10.1/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.10.3/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.11.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+WWjE= +github.com/onsi/ginkgo v1.12.0/go.mod h1:oUhWkIvk5aDxtKvDDuw8gItl8pKl42LzjC9KZE0HfGg= +github.com/onsi/ginkgo v1.12.1/go.mod h1:zj2OWP4+oCPe1qIXoGWkgMRwljMUYCdkwsT2108oapk= +github.com/onsi/ginkgo v1.13.0/go.mod h1:+REjRxOmWfHCjfv9TTWB1jD1Frx4XydAD3zm1lskyM0= +github.com/onsi/ginkgo v1.14.0/go.mod h1:iSB4RoI2tjJc9BBv4NKIKWKya62Rps+oPG/Lv9klQyY= +github.com/onsi/ginkgo v1.16.4/go.mod h1:dX+/inL/fNMqNlz0e9LfyB9TswhZpCVdJM/Z6Vvnwo0= +github.com/onsi/ginkgo v1.16.5/go.mod h1:+E8gABHa3K6zRBolWtd+ROzc/U5bkGt0FwiG042wbpU= +github.com/onsi/ginkgo/v2 v2.1.3/go.mod h1:vw5CSIxN1JObi/U8gcbwft7ZxR2dgaR70JSE3/PpL4c= +github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To= +github.com/onsi/ginkgo/v2 v2.20.1/go.mod h1:lG9ey2Z29hR41WMVthyJBGUBcBhGOtoPF2VFMvBXFCI= +github.com/onsi/gomega v0.0.0-20151007035656-2152b45fa28a/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= +github.com/onsi/gomega v0.0.0-20170829124025-dcabb60a477c/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= +github.com/onsi/gomega v1.5.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/gomega v1.7.0/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= +github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY= +github.com/onsi/gomega v1.9.0/go.mod h1:Ho0h+IUsWyvy1OpqCwxlQ/21gkhVunqlU8fDGcoTdcA= +github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo= +github.com/onsi/gomega v1.10.3/go.mod h1:V9xEwhxec5O8UDM77eCW8vLymOMltsqPVYWrpDsH8xc= +github.com/onsi/gomega v1.15.0/go.mod h1:cIuvLEne0aoVhAgh/O6ac0Op8WWw9H6eYCriF+tEHG0= +github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY= +github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= +github.com/onsi/gomega v1.34.2/go.mod h1:v1xfxRgk0KIsG+QOdm7p8UosrOzPYRo60fd3B/1Dukc= github.com/open-policy-agent/opa v0.42.2/go.mod h1:MrmoTi/BsKWT58kXlVayBb+rYVeaMwuBm3nYAN3923s= +github.com/opencontainers/go-digest v0.0.0-20170106003457-a6d0ee40d420/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= +github.com/opencontainers/go-digest v0.0.0-20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= +github.com/opencontainers/go-digest v1.0.0-rc1/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= +github.com/opencontainers/go-digest v1.0.0-rc1.0.20180430190053-c9281466c8b2/go.mod h1:cMLVZDEM3+U2I4VmLI6N8jQYUd2OVphdqWwCJHrFt2s= +github.com/opencontainers/image-spec v1.0.0/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/image-spec v1.0.1/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/image-spec v1.0.2-0.20211117181255-693428a734f5/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/image-spec v1.0.2/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/image-spec v1.0.3-0.20211202183452-c5a74bcca799/go.mod h1:BtxoFyWECRxE4U/7sNtV5W15zMzWCbyJoFRP3s7yZA0= +github.com/opencontainers/image-spec v1.1.0-rc2.0.20221005185240-3a7f492d3f1b/go.mod h1:3OVijpioIKYWTqjiG0zfF6wvoJ4fAXGbjdZuI2NgsRQ= +github.com/opencontainers/runc v0.0.0-20190115041553-12f6a991201f/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= +github.com/opencontainers/runc v0.1.1/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= +github.com/opencontainers/runc v1.0.0-rc8.0.20190926000215-3e425f80a8c9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= +github.com/opencontainers/runc v1.0.0-rc9/go.mod h1:qT5XzbpPznkRYVz/mWwUaVBUv2rmF59PVA73FjuZG0U= +github.com/opencontainers/runc v1.0.0-rc93/go.mod h1:3NOsor4w32B2tC0Zbl8Knk4Wg84SM2ImC1fxBuqJ/H0= +github.com/opencontainers/runc v1.0.2/go.mod h1:aTaHFFwQXuA71CiyxOdFFIorAoemI04suvGRQFzWTD0= +github.com/opencontainers/runc v1.1.0/go.mod h1:Tj1hFw6eFWp/o33uxGf5yF2BX5yz2Z6iptFpuvbbKqc= +github.com/opencontainers/runc v1.1.2/go.mod h1:Tj1hFw6eFWp/o33uxGf5yF2BX5yz2Z6iptFpuvbbKqc= github.com/opencontainers/runc v1.1.5/go.mod h1:1J5XiS+vdZ3wCyZybsuxXZWGrgSr8fFJHLXuG2PsnNg= +github.com/opencontainers/runtime-spec v0.1.2-0.20190507144316-5b71a03e2700/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.0.1/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.0.2-0.20190207185410-29686dbc5559/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.0.2/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.0.3-0.20200929063507-e6143ca7d51d/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.0.3-0.20210326190908-1c3f411f0417/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.0.3-0.20220825212826-86290f6a00fb/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= github.com/opencontainers/runtime-spec v1.1.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-tools v0.0.0-20181011054405-1d69bd0f9c39/go.mod h1:r3f7wjNzSs2extwzU3Y+6pKfobzPh+kKFJ3ofN+3nfs= github.com/opencontainers/runtime-tools v0.9.1-0.20221107090550-2e043c6bd626/go.mod h1:BRHJJd0E+cx42OybVYSgUvZmU0B8P9gZuRXlZUP7TKI= +github.com/opencontainers/selinux v1.6.0/go.mod h1:VVGKuOLlE7v4PJyT6h7mNWvq1rzqiriPsEqVhc+svHE= +github.com/opencontainers/selinux v1.8.0/go.mod h1:RScLhm78qiWa2gbVCcGkC7tCGdgk3ogry1nUQF8Evvo= +github.com/opencontainers/selinux v1.8.2/go.mod h1:MUIHuUEvKB1wtJjQdOyYRgOnLD2xAPP8dBsCoU0KuF8= +github.com/opencontainers/selinux v1.9.1/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI= +github.com/opencontainers/selinux v1.10.0/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI= +github.com/opencontainers/selinux v1.10.1/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI= github.com/opencontainers/selinux v1.11.0/go.mod h1:E5dMC3VPuVvVHDYmi78qvhJp8+M586T4DlDRYpFkyec= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= +github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= +github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= +github.com/pelletier/go-toml v1.8.1/go.mod h1:T2/BmBdy8dvIRq1a/8aqjN41wvWlN4lrapLU/GW4pbc= +github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pelletier/go-toml v1.9.5 h1:4yBQzkHv+7BHq2PQUZF3Mx0IYxG7LsP222s7Agd3ve8= github.com/pelletier/go-toml v1.9.5/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= +github.com/peterh/liner v0.0.0-20170211195444-bf27d3ba8e1d/go.mod h1:xIteQHvHuaLYG9IFj6mSxM0fCKrs34IrEQUhOYuGPHc= github.com/pierrec/lz4/v4 v4.1.18/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4= github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA= +github.com/pkg/errors v0.8.1-0.20171018195549-f15c970de5b7/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/sftp v1.13.6 h1:JFZT4XbOU7l77xGSpOdW+pwIMqP044IyjXX6FGyEKFo= github.com/pkg/sftp v1.13.6/go.mod h1:tz1ryNURKu77RL+GuCzmoJYxQczL3wLNNpPWagdg4Qk= -github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 h1:GFCKgmp0tecUJ0sJuv4pzYCqS9+RGSn52M3FUwPs+uo= +github.com/pkg/sftp v1.13.7/go.mod h1:KMKI0t3T6hfA+lTR/ssZdunHo+uwq7ghoN09/FSu3DY= github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8= +github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= -github.com/pquerna/cachecontrol v0.1.0 h1:yJMy84ti9h/+OEWa752kBTKv4XC30OtVVHYv/8cTqKc= +github.com/pquerna/cachecontrol v0.0.0-20171018203845-0dec1b30a021/go.mod h1:prYjPmNq4d1NPVmpShWobRqXY3q7Vp+80DqgxxUrUIA= github.com/pquerna/cachecontrol v0.1.0/go.mod h1:NrUG3Z7Rdu85UNR3vm7SOsl1nFIeSiQnrHV5K9mBcUI= -github.com/quasoft/memstore v0.0.0-20191010062613-2bce066d2b0b h1:aUNXCGgukb4gtY99imuIeoh8Vr0GSwAlYxPAhqZrpFc= +github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U= +github.com/prometheus/client_golang v0.0.0-20180209125602-c332b6f63c06/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= +github.com/prometheus/client_golang v1.7.1/go.mod h1:PY5Wy2awLA44sXw4AOSfFBetzPP4j5+D6mVACh+pe2M= +github.com/prometheus/client_golang v1.11.0/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= +github.com/prometheus/client_golang v1.11.1/go.mod h1:Z6t4BnS23TR94PD6BsDNk8yVqroYurpAkEiz0P2BEV0= +github.com/prometheus/client_golang v1.12.1/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= +github.com/prometheus/client_golang v1.12.2/go.mod h1:3Z9XVyYiZYEO+YQWt3RD2R3jrbd179Rt297l4aS6nDY= +github.com/prometheus/client_golang v1.14.0/go.mod h1:8vpkKitgIVNcqrRBWh1C4TIUQgYNtG/XQE4E/Zae36Y= +github.com/prometheus/client_golang v1.17.0/go.mod h1:VeL+gMmOAxkS2IqfCq0ZmHSL+LjWfWDUmp1mBz9JgUY= +github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= +github.com/prometheus/client_golang v1.20.4/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= +github.com/prometheus/client_model v0.0.0-20171117100541-99fa1f4be8e5/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.3.0/go.mod h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w= +github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI= +github.com/prometheus/common v0.0.0-20180110214958-89604d197083/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= +github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.10.0/go.mod h1:Tlit/dnDKsSWFlCLTWaA1cyBgKHSMdTB80sz/V91rCo= +github.com/prometheus/common v0.26.0/go.mod h1:M7rCNAaPfAosfx8veZJCuw84e35h3Cfd9VFqTh1DIvc= +github.com/prometheus/common v0.30.0/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= +github.com/prometheus/common v0.32.1/go.mod h1:vu+V0TpY+O6vW9J44gczi3Ap/oXXR10b+M/gUGO4Hls= +github.com/prometheus/common v0.37.0/go.mod h1:phzohg0JFMnBEFGxTDbfu3QyL5GI8gTQJFhYO5B3mfA= +github.com/prometheus/common v0.44.0/go.mod h1:ofAIvZbQ1e/nugmZGz4/qCb9Ap1VoSTIO7x0VV9VvuY= +github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8= +github.com/prometheus/procfs v0.0.0-20180125133057-cb4147076ac7/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.0.0-20190522114515-bc1a522cf7b1/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= +github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= +github.com/prometheus/procfs v0.1.3/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.2.0/go.mod h1:lV6e/gmhEcM9IjHGsFOCxxuZ+z1YqCvr4OA4YeYWdaU= +github.com/prometheus/procfs v0.6.0/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/procfs v0.7.3/go.mod h1:cz+aTbrPOrUb4q7XlbU9ygM+/jj0fzG6c1xBZuNvfVA= +github.com/prometheus/procfs v0.8.0/go.mod h1:z7EfXMXOkbkqb9IINtpCn86r/to3BnA0uaxHdg830/4= +github.com/prometheus/procfs v0.11.1/go.mod h1:eesXgaPo1q7lBpVMoMy0ZOFTth9hBn4W/y0/p/ScXhY= +github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= github.com/quasoft/memstore v0.0.0-20191010062613-2bce066d2b0b/go.mod h1:wTPjTepVu7uJBYgZ0SdWHQlIas582j6cn2jgk4DDdlg= github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= +github.com/redis/go-redis/v9 v9.0.5/go.mod h1:WqMKv5vnQbRuZstUwxQI195wHy+t4PuXDOjzMvcuQHk= +github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= +github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= +github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rogpeppe/go-internal v1.8.0/go.mod h1:WmiCO8CzOY8rg0OYDC4/i/2WRWAB6poM+XZ2dLUbcbE= github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs= +github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog= github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA= -github.com/rs/xid v1.5.0 h1:mKX4bl4iPYJtEIxp6CYiUuLQ/8DYMoz0PUdtGgMFRVc= +github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= +github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= github.com/russross/blackfriday v1.6.0 h1:KqfZb0pUVN2lYqZUYRddxF4OR8ZMURnJIG5Y3VRLtww= github.com/russross/blackfriday v1.6.0/go.mod h1:ti0ldHuxg49ri4ksnFxlkCfN+hvslNlmVHqNRXXJNAY= -github.com/sagikazarmark/crypt v0.19.0 h1:WMyLTjHBo64UvNcWqpzY3pbZTYgnemZU8FBZigKc42E= +github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= +github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= +github.com/safchain/ethtool v0.2.0/go.mod h1:WkKB1DnNtvsMlDmQ50sgwowDJV/hGbJSOvJoEXs1AJQ= github.com/sagikazarmark/crypt v0.19.0/go.mod h1:c6vimRziqqERhtSe0MhIvzE1w54FrCHtrXb5NH/ja78= +github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= +github.com/sclevine/agouti v3.0.0+incompatible/go.mod h1:b4WX9W9L1sfQKXeJf1mUTLZKJ48R1S7H23Ji7oFO5Bw= +github.com/sclevine/spec v1.2.0/go.mod h1:W4J29eT/Kzv7/b9IWLB055Z+qvVC9vt0Arko24q7p+U= +github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= +github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= +github.com/seccomp/libseccomp-golang v0.9.2-0.20210429002308-3879420cc921/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= +github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= +github.com/sergi/go-diff v1.1.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= +github.com/sergi/go-diff v1.2.0/go.mod h1:STckp+ISIX8hZLjrqAeVduY0gWCT9IjLuqbuNXdaHfM= +github.com/shopspring/decimal v1.2.0/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= +github.com/shopspring/decimal v1.3.1/go.mod h1:DKyhrW/HYNuLGql+MJL6WCR6knT2jwCFRcu2hWCYk4o= +github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= +github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= +github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= +github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/sirupsen/logrus v1.6.0/go.mod h1:7uNnSEd1DgxDLC74fIahvMZmmYsHGZGEOFrfsX/uA88= +github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= +github.com/snowdreamtech/redistore v0.0.0-20231007100540-6364ca2c97b4/go.mod h1:VTV42RFvMAoztNB+4GFSAbINm6ZioJjYQvdT/RrIGIM= +github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spaolacci/murmur3 v1.1.0/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA= +github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ= +github.com/spf13/afero v1.2.2/go.mod h1:9ZxEEn6pIJ8Rxe320qSDBk6AsU0r9pR7Q4OcevTdifk= +github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= +github.com/spf13/cast v1.5.0/go.mod h1:SpXXQ5YoyJw6s3/6cMTQuxvgRl3PCJiyaX9p6b155UU= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cobra v0.0.2-0.20171109065643-2da4a54c5cee/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= +github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= +github.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU= +github.com/spf13/cobra v1.0.0/go.mod h1:/6GTrnGXV9HjY+aR4k0oJ5tcvakLuG6EuKReYlHNrgE= +github.com/spf13/cobra v1.1.3/go.mod h1:pGADOWyqRD/YMrPZigI/zbliZ2wVD/23d+is3pSWzOo= +github.com/spf13/cobra v1.4.0/go.mod h1:Wo4iy3BUC+X2Fybo0PDqwJIv3dNRiZLHQymsfxlB84g= +github.com/spf13/cobra v1.5.0/go.mod h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM= +github.com/spf13/cobra v1.8.0/go.mod h1:WXLWApfZ71AjXPya3WOlMsY9yMs7YeiHhFVlvLyhcho= +github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo= +github.com/spf13/pflag v0.0.0-20170130214245-9ff6c6923cff/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.1-0.20171106142849-4c012f6dcd95/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s= +github.com/spf13/viper v1.4.0/go.mod h1:PTJ7Z/lr49W6bUbkmS1V3by4uWynFiR9p7+dSq/yZzE= +github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg= github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980/go.mod h1:AO3tvPzVZ/ayst6UlUKUv6rcPQInYe3IknH3jYhAKu8= -github.com/stoewer/go-strcase v1.2.0 h1:Z2iHWqGXH00XYgqDmNgQbIBxf3wrNq0F3feEy0ainaU= +github.com/stefanberger/go-pkcs11uri v0.0.0-20230803200340-78284954bff6/go.mod h1:39R/xuhNgVhi+K0/zst4TLrJrVmbm6LVgl4A0+ZFS5M= github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8= +github.com/stoewer/go-strcase v1.3.0/go.mod h1:fAH5hQ5pehh+j3nZfvwdk2RgEgQjAoM8wodgtPmh1xo= +github.com/stretchr/objx v0.0.0-20180129172003-8a3f7159479f/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= +github.com/stretchr/testify v0.0.0-20180303142811-b89eecf5ca5d/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals= +github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= +github.com/syndtr/gocapability v0.0.0-20170704070218-db04d3cc01c8/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= +github.com/syndtr/gocapability v0.0.0-20180916011248-d98352740cb2/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= +github.com/tchap/go-patricia v2.2.6+incompatible/go.mod h1:bmLyhP68RS6kStMGxByiQ23RP/odRBOTVjwp2cDyi6I= github.com/tchap/go-patricia/v2 v2.3.1/go.mod h1:VZRHKAb53DLaG+nA9EaYYiaEx6YztwDlLElMsnSHD4k= +github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/tmc/grpc-websocket-proxy v0.0.0-20201229170055-e5319fda7802/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= +github.com/tv42/httpunix v0.0.0-20191220191345-2ba4b9c3382c/go.mod h1:hzIxponao9Kjc7aWznkXaL4U4TWaDSs8zcsY4Ka08nM= +github.com/ugorji/go v1.1.4 h1:j4s+tAvLfL3bZyefP2SEWmhBzmuIlH/eqNuPdFPgngw= +github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go v1.1.7 h1:/68gy2h+1mWMrwZFeD1kQialdSzAb432dtpeJ42ovdo= +github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= +github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= +github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= +github.com/urfave/cli v0.0.0-20171014202726-7bc6a0acffa5/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= +github.com/urfave/cli v1.19.1/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= +github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= +github.com/urfave/cli v1.22.1/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/urfave/cli v1.22.2/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/urfave/cli v1.22.4/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= github.com/urfave/cli v1.22.12 h1:igJgVw1JdKH+trcLWLeLwZjU9fEfPesQ+9/e4MQ44S8= github.com/urfave/cli v1.22.12/go.mod h1:sSBEIC79qR6OvcmsD4U3KABeOTxDqQtdDnaFuUN30b8= github.com/vbatts/tar-split v0.11.2/go.mod h1:vV3ZuO2yWSVsz+pfFzDG/upWH1JhjOiEaWq6kXyQ3VI= +github.com/vektah/gqlparser/v2 v2.4.5/go.mod h1:flJWIR04IMQPGz+BXLrORkrARBxv/rtyIAFvd/MceW0= +github.com/vektah/gqlparser/v2 v2.5.20/go.mod h1:xMl+ta8a5M1Yo1A1Iwt/k7gSpscwSnHZdw7tfhEGfTM= github.com/veraison/go-cose v1.0.0-rc.1/go.mod h1:7ziE85vSq4ScFTg6wyoMXjucIGOf4JkFEZi/an96Ct4= +github.com/vishvananda/netlink v0.0.0-20181108222139-023a6dafdcdf/go.mod h1:+SR5DhBJrl6ZM7CoCKvpw5BKroDKQ+PJqOg65H/2ktk= +github.com/vishvananda/netlink v1.1.0/go.mod h1:cTgwzPIzzgDAYoQrMm0EdrjRUBkTqKYppBueQtXaqoE= +github.com/vishvananda/netlink v1.1.1-0.20201029203352-d40f9887b852/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= +github.com/vishvananda/netlink v1.1.1-0.20210330154013-f5de75959ad5/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= github.com/vishvananda/netlink v1.2.1-beta.2/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= +github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI= +github.com/vishvananda/netns v0.0.0-20191106174202-0a2b9b5464df/go.mod h1:JP3t17pCcGlemwknint6hfoeCVQrEMVwxRLRjXpq+BU= +github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= github.com/vishvananda/netns v0.0.0-20210104183010-2eb08e3e575f/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= -github.com/wader/gormstore/v2 v2.0.3 h1:/29GWPauY8xZkpLnB8hsp+dZfP3ivA9fiDw1YVNTp6U= github.com/wader/gormstore/v2 v2.0.3/go.mod h1:sr3N3a8F1+PBc3fHoKaphFqDXLRJ9Oe6Yow0HxKFbbg= -github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= +github.com/willf/bitset v1.1.11-0.20200630133818-d5bec3311243/go.mod h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4= +github.com/willf/bitset v1.1.11/go.mod h1:83CECat5yLh5zVOf4P1ErAgKA5UDvKtgyUABdr3+MjI= github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= -github.com/xdg-go/scram v1.1.2 h1:FHX5I5B4i4hKRVRBCFRxq1iQRej7WO3hhBuJf+UUySY= github.com/xdg-go/scram v1.1.2/go.mod h1:RT/sEzTbU5y00aCK8UOx6R7YryM0iF1N2MOmC3kKLN4= -github.com/xdg-go/stringprep v1.0.4 h1:XLI/Ng3O1Atzq0oBs3TWm+5ZVgkq2aqdlvP9JtoZ6c8= github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM= -github.com/xhit/go-str2duration/v2 v2.1.0 h1:lxklc02Drh6ynqX+DdPyp5pCKLUQpRT8bp8Ydu2Bstc= +github.com/xeipuuv/gojsonschema v0.0.0-20180618132009-1d523034197f/go.mod h1:5yf86TLmAcydyeJq5YvxkGPE2fm/u4myDekKRoLuqhs= github.com/xhit/go-str2duration/v2 v2.1.0/go.mod h1:ohY8p+0f07DiV6Em5LKB0s2YpLtXVyJfNt1+BlmyAsU= +github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q= github.com/yashtewari/glob-intersection v0.1.0/go.mod h1:LK7pIC3piUjovexikBbJ26Yml7g8xa5bsjfx2v1fwok= -github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a h1:fZHgsYlfvtyqToslyjUt3VOPF4J7aK/3MPcK7xp3PDk= github.com/youmark/pkcs8 v0.0.0-20201027041543-1326539a0a0a/go.mod h1:ul22v+Nro/R083muKhosV54bj5niojjWZvU8xrevuH4= -github.com/yuin/goldmark v1.4.13 h1:fVcFKWvrslecOb/tg+Cc05dkeYx540o0FuFt3nUVDoE= +github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= +github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= +github.com/yvasiyarov/go-metrics v0.0.0-20140926110328-57bccd1ccd43/go.mod h1:aX5oPXxHm3bOH+xeAttToC8pqch2ScQN/JoXYupl6xs= +github.com/yvasiyarov/gorelic v0.0.0-20141212073537-a9bba5b9ab50/go.mod h1:NUSPSUX/bi6SeDMUh6brw0nXpxHnc96TguQh0+r/ssA= +github.com/yvasiyarov/newrelic_platform_go v0.0.0-20140908184405-b21fdbd4370f/go.mod h1:GlGEuHIJweS1mbCqG+7vt2nvWLzLLnRHbXz5JKd/Qbg= github.com/zeebo/xxh3 v1.0.2/go.mod h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA= go.einride.tech/aip v0.66.0/go.mod h1:qAhMsfT7plxBX+Oy7Huol6YUvZ0ZzdUz26yZsQwfl1M= +go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +go.etcd.io/bbolt v1.3.3/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= +go.etcd.io/bbolt v1.3.5/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= +go.etcd.io/bbolt v1.3.6/go.mod h1:qXsaaIqmgQH0T+OPdb99Bf+PKfBBQVAdyD6TY9G8XM4= +go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= +go.etcd.io/bbolt v1.3.9/go.mod h1:zaO32+Ti0PK1ivdPtgMESzuzL2VPoIG1PCQNvOdo/dE= +go.etcd.io/bbolt v1.3.10/go.mod h1:bK3UQLPJZly7IlNmV7uVHJDxfe5aK9Ll93e/74Y9oEQ= +go.etcd.io/etcd v0.5.0-alpha.5.0.20200910180754-dd1b699fc489/go.mod h1:yVHk9ub3CSBatqGNg7GRmsnfLWtoW60w4eDYfh7vHDg= +go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= +go.etcd.io/etcd/api/v3 v3.5.14/go.mod h1:BmtWcRlQvwa1h3G2jvKYwIQy4PkHlDej5t7uLMUdJUU= +go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= +go.etcd.io/etcd/client/pkg/v3 v3.5.14/go.mod h1:8uMgAokyG1czCtIdsq+AGyYQMvpIKnSvPjFMunkgeZI= +go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= +go.etcd.io/etcd/client/v2 v2.305.13/go.mod h1:iQnL7fepbiomdXMb3om1rHq96htNNGv2sJkEcZGDRRg= +go.etcd.io/etcd/client/v3 v3.5.0/go.mod h1:AIKXXVX/DQXtfTEqBryiLTUXwON+GuvO6Z7lLS/oTh0= +go.etcd.io/etcd/client/v3 v3.5.14/go.mod h1:k3XfdV/VIHy/97rqWjoUzrj9tk7GgJGH9J8L4dNXmAk= +go.etcd.io/etcd/pkg/v3 v3.5.0/go.mod h1:UzJGatBQ1lXChBkQF0AuAtkRQMYnHubxAEYIrC3MSsE= +go.etcd.io/etcd/pkg/v3 v3.5.13/go.mod h1:N+4PLrp7agI/Viy+dUYpX7iRtSPvKq+w8Y14d1vX+m0= +go.etcd.io/etcd/raft/v3 v3.5.0/go.mod h1:UFOHSIvO/nKwd4lhkwabrTD3cqW5yVyYYf/KlD00Szc= +go.etcd.io/etcd/raft/v3 v3.5.13/go.mod h1:uUFibGLn2Ksm2URMxN1fICGhk8Wu96EfDQyuLhAcAmw= +go.etcd.io/etcd/server/v3 v3.5.0/go.mod h1:3Ah5ruV+M+7RZr0+Y/5mNLwC+eQlni+mQmOVdCRJoS4= +go.etcd.io/etcd/server/v3 v3.5.13/go.mod h1:K/8nbsGupHqmr5MkgaZpLlH1QdX1pcNQLAkODy44XcQ= go.etcd.io/gofail v0.1.0/go.mod h1:VZBCXYGZhHAinaBiiqYvuDynvahNsAyLFwB3kEHKz1M= -go.mongodb.org/mongo-driver v1.14.0 h1:P98w8egYRjYe3XDjxhYJagTokP/H6HzlsnojRgZRd80= go.mongodb.org/mongo-driver v1.14.0/go.mod h1:Vzb0Mk/pa7e6cWw85R4F/endUC3u0U9jGcNU603k65c= go.mozilla.org/pkcs7 v0.0.0-20200128120323-432b2356ecb1/go.mod h1:SNgMg+EgDFwmvSmLRTNKC5fegJjB7v23qTQ0XLGUNHk= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= +go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= +go.opentelemetry.io/contrib v0.20.0 h1:ubFQUn0VCZ0gPwIoJfBJVpeBlyRMxu8Mm/huKWYd9p0= +go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc= +go.opentelemetry.io/contrib/detectors/gcp v1.29.0/go.mod h1:GW2aWZNwR2ZxDLdv8OyC2G8zkRoQBuURgV7RPQgcPoU= +go.opentelemetry.io/contrib/detectors/gcp v1.31.0/go.mod h1:tzQL6E1l+iV44YFTkcAeNQqzXUiekSYP9jjJjXwEd00= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.20.0/go.mod h1:oVGt1LRbBOBq1A5BQLlUg9UaU/54aiHw8cgjV3aWZ/E= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.28.0/go.mod h1:vEhqr0m4eTc+DWxfsXoXue2GBgV2uUwVznkGIHW/e5w= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.0/go.mod h1:Ct6zzQEuGK3WpJs2n4dn+wfJYzd/+hNnxMRTWjGn30M= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.46.1/go.mod h1:4UoMYEZOC0yN/sPGH76KPkkU7zgiEWYWL9vwmbnTJPE= go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.48.0/go.mod h1:tIKj3DbO8N9Y2xo52og3irLsPI4GW02DSMtrVgNMgxg= +go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.49.0/go.mod h1:Mjt1i1INqiaoZOMGR1RIUJN+i3ChKoFRqzrRQhlkbs0= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.20.0/go.mod h1:2AboqHi0CiIZU0qwhtUfCYD1GeUzvvIXWNkhDt7ZMG4= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.32.0/go.mod h1:5eCOqeGphOyz6TsY3ZDNjE33SM/TFAK3RGuCL2naTgY= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.45.0/go.mod h1:62CPTSry9QZtOaSsE3tOzhx6LzDhHnXJ6xHeMNNiM6Q= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1/go.mod h1:sEGXWArGqc3tVa+ekntsN65DmVbVeW+7lTKTjZF3/Fo= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.47.0/go.mod h1:SK2UL73Zy1quvRPonmOmRDiWk1KBV3LyIeeIxcEApWw= go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.48.0/go.mod h1:rdENBZMT2OE6Ne/KLwpiXudnAsbdrdBaqBvTN8M8BgA= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.49.0/go.mod h1:p8pYQP+m5XfbZm9fxtSKAbM6oIllS7s2AfxrChvc7iw= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.54.0/go.mod h1:L7UH0GbB0p47T4Rri3uHjbpCFYrVrwc1I25QhNPiGK8= +go.opentelemetry.io/otel v0.20.0/go.mod h1:Y3ugLH2oa81t5QO+Lty+zXf8zC9L26ax4Nzoxm/dooo= +go.opentelemetry.io/otel v1.3.0/go.mod h1:PWIKzi6JCp7sM0k9yZ43VX+T345uNbAkDKwHVjb2PTs= +go.opentelemetry.io/otel v1.7.0/go.mod h1:5BdUoMIz5WEs0vt0CUEMtSSaTSHBBVwrhnz7+nrD5xk= +go.opentelemetry.io/otel v1.20.0/go.mod h1:oUIGj3D77RwJdM6PPZImDpSZGDvkD9fhesHny69JFrs= +go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo= +go.opentelemetry.io/otel v1.22.0/go.mod h1:eoV4iAi3Ea8LkAEI9+GFT44O6T/D0GWAVFyZVCC6pMI= go.opentelemetry.io/otel v1.23.0/go.mod h1:YCycw9ZeKhcJFrb34iVSkyT0iczq/zYDtZYFufObyB0= +go.opentelemetry.io/otel v1.24.0/go.mod h1:W7b9Ozg4nkF5tWI5zsXkaKKDjdVjpD4oAt9Qi/MArHo= +go.opentelemetry.io/otel v1.27.0/go.mod h1:DMpAK8fzYRzs+bi3rS5REupisuqTheUlSZJ1WnZaPAQ= +go.opentelemetry.io/otel v1.28.0/go.mod h1:q68ijF8Fc8CnMHKyzqL6akLO46ePnjkgfIMIjUIX9z4= +go.opentelemetry.io/otel v1.29.0/go.mod h1:N/WtXPs1CNCUEx+Agz5uouwCba+i+bJGFicT8SR4NP8= +go.opentelemetry.io/otel v1.31.0/go.mod h1:O0C14Yl9FgkjqcCZAsE053C13OaddMYr/hz6clDkEJE= +go.opentelemetry.io/otel/exporters/otlp v0.20.0/go.mod h1:YIieizyaN77rtLJra0buKiNBOm9XQfkPEKBeuhoMwAM= +go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.3.0/go.mod h1:VpP4/RMn8bv8gNo9uK7/IMY4mtWLELsS+JIP0inH0h4= +go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.7.0/go.mod h1:M1hVZHNxcbkAlcvrOMlpQ4YOO3Awf+4N2dxkZL3xm04= +go.opentelemetry.io/otel/exporters/otlp/internal/retry v1.10.0/go.mod h1:78XhIg8Ht9vR4tbLNUhXsiOnE2HOuSeKAiAcoVQEpOY= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.3.0/go.mod h1:hO1KLR7jcKaDDKDkvI9dP/FIhpmna5lkqPUQdEjFAM8= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.7.0/go.mod h1:ceUgdyfNv4h4gLxHR0WNfDiiVmZFodZhZSbOLhpxqXE= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.20.0/go.mod h1:GijYcYmNpX1KazD5JmWGsi4P7dDTTTnfv1UbGn84MnU= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0/go.mod h1:zgBdWWAu7oEEMC06MMKc5NLbA/1YDXV1sMpSqEeLQLg= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.27.0/go.mod h1:OQFyQVrDlbe+R7xrEyDr/2Wr67Ol0hRUgsfA+V5A95s= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.3.0/go.mod h1:keUU7UfnwWTWpJ+FWnyqmogPa82nuU5VUANFq49hlMY= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.7.0/go.mod h1:E+/KKhwOSw8yoPxSSuUHG6vKppkvhN+S1Jc7Nib3k3o= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0/go.mod h1:0+KuTDyKL4gjKCF75pHOX4wuzYDUZYfAQdSu43o+Z2I= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.20.0/go.mod h1:vNUq47TGFioo+ffTSnKNdob241vePmtNZnAODKapKd0= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0/go.mod h1:nUeKExfxAQVbiVFn32YXpXZZHZ61Cc3s3Rn1pDBGAb0= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.3.0/go.mod h1:QNX1aly8ehqqX1LEa6YniTU7VY9I6R3X/oPxhGdTceE= go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.19.0/go.mod h1:oVdCUtjq9MK9BlS7TtucsQwUcXcymNiEDjgDD2jMtZU= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v0.44.0/go.mod h1:sTt30Evb7hJB/gEk27qLb1+l9n4Tb8HvHkR0Wx3S6CU= +go.opentelemetry.io/otel/metric v0.20.0/go.mod h1:598I5tYlH1vzBjn+BTuhzTCSb/9debfNp6R3s7Pr1eU= +go.opentelemetry.io/otel/metric v0.30.0/go.mod h1:/ShZ7+TS4dHzDFmfi1kSXMhMVubNoP0oIaBp70J6UXU= +go.opentelemetry.io/otel/metric v1.20.0/go.mod h1:90DRw3nfK4D7Sm/75yQ00gTJxtkBxX+wu6YaNymbpVM= +go.opentelemetry.io/otel/metric v1.21.0/go.mod h1:o1p3CA8nNHW8j5yuQLdc1eeqEaPfzug24uvsyIEJRWM= +go.opentelemetry.io/otel/metric v1.22.0/go.mod h1:evJGjVpZv0mQ5QBRJoBF64yMuOf4xCWdXjK8pzFvliY= go.opentelemetry.io/otel/metric v1.23.0/go.mod h1:MqUW2X2a6Q8RN96E2/nqNoT+z9BSms20Jb7Bbp+HiTo= +go.opentelemetry.io/otel/metric v1.24.0/go.mod h1:VYhLe1rFfxuTXLgj4CBiyz+9WYBA8pNGJgDcSFRKBco= +go.opentelemetry.io/otel/metric v1.27.0/go.mod h1:mVFgmRlhljgBiuk/MP/oKylr4hs85GZAylncepAX/ak= +go.opentelemetry.io/otel/metric v1.28.0/go.mod h1:Fb1eVBFZmLVTMb6PPohq3TO9IIhUisDsbJoL/+uQW4s= +go.opentelemetry.io/otel/metric v1.29.0/go.mod h1:auu/QWieFVWx+DmQOUMgj0F8LHWdgalxXqvp7BII/W8= +go.opentelemetry.io/otel/metric v1.31.0/go.mod h1:C3dEloVbLuYoX41KpmAhOqNriGbA+qqH6PQ5E5mUfnY= +go.opentelemetry.io/otel/oteltest v0.20.0/go.mod h1:L7bgKf9ZB7qCwT9Up7i9/pn0PWIa9FqQ2IQ8LoxiGnw= +go.opentelemetry.io/otel/sdk v0.20.0/go.mod h1:g/IcepuwNsoiX5Byy2nNV0ySUF1em498m7hBWC279Yc= +go.opentelemetry.io/otel/sdk v1.3.0/go.mod h1:rIo4suHNhQwBIPg9axF8V9CA72Wz2mKF1teNrup8yzs= +go.opentelemetry.io/otel/sdk v1.7.0/go.mod h1:uTEOTwaqIVuTGiJN7ii13Ibp75wJmYUDe374q6cZwUU= +go.opentelemetry.io/otel/sdk v1.20.0/go.mod h1:rmkSx1cZCm/tn16iWDn1GQbLtsW/LvsdEEFzCSRM6V0= +go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E= +go.opentelemetry.io/otel/sdk v1.22.0/go.mod h1:iu7luyVGYovrRpe2fmj3CVKouQNdTOkxtLzPvPz1DOc= +go.opentelemetry.io/otel/sdk v1.27.0/go.mod h1:Ha9vbLwJE6W86YstIywK2xFfPjbWlCuwPtMkKdz/Y4A= +go.opentelemetry.io/otel/sdk v1.28.0/go.mod h1:oYj7ClPUA7Iw3m+r7GeEjz0qckQRJK2B8zjcZEfu7Pg= +go.opentelemetry.io/otel/sdk v1.29.0/go.mod h1:pM8Dx5WKnvxLCb+8lG1PRNIDxu9g9b9g59Qr7hfAAok= +go.opentelemetry.io/otel/sdk/export/metric v0.20.0/go.mod h1:h7RBNMsDJ5pmI1zExLi+bJK+Dr8NQCh0qGhm1KDnNlE= +go.opentelemetry.io/otel/sdk/metric v0.20.0/go.mod h1:knxiS8Xd4E/N+ZqKmUPf3gTTZ4/0TjTXukfxjzSTpHE= +go.opentelemetry.io/otel/sdk/metric v1.21.0/go.mod h1:FJ8RAsoPGv/wYMgBdUJXOm+6pzFY3YdljnXtv1SBE8Q= +go.opentelemetry.io/otel/sdk/metric v1.29.0/go.mod h1:6zZLdCl2fkauYoZIOn/soQIDSWFmNSRcICarHfuhNJQ= +go.opentelemetry.io/otel/trace v0.20.0/go.mod h1:6GjCW8zgDjwGHGa6GkyeB8+/5vjT16gUEi0Nf1iBdgw= +go.opentelemetry.io/otel/trace v1.3.0/go.mod h1:c/VDhno8888bvQYmbYLqe41/Ldmr/KKunbvWM4/fEjk= +go.opentelemetry.io/otel/trace v1.7.0/go.mod h1:fzLSB9nqR2eXzxPXb2JW9IKE+ScyXA48yyE4TNvoHqU= +go.opentelemetry.io/otel/trace v1.20.0/go.mod h1:HJSK7F/hA5RlzpZ0zKDCHCDHm556LCDtKaAo6JmBFUU= +go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ= +go.opentelemetry.io/otel/trace v1.22.0/go.mod h1:RbbHXVqKES9QhzZq/fE5UnOSILqRt40a21sPw2He1xo= go.opentelemetry.io/otel/trace v1.23.0/go.mod h1:GSGTbIClEsuZrGIzoEHqsVfxgn5UkggkflQwDScNUsk= +go.opentelemetry.io/otel/trace v1.24.0/go.mod h1:HPc3Xr/cOApsBI154IU0OI0HJexz+aw5uPdbs3UCjNU= +go.opentelemetry.io/otel/trace v1.27.0/go.mod h1:6RiD1hkAprV4/q+yd2ln1HG9GoPx39SuvvstaLBl+l4= +go.opentelemetry.io/otel/trace v1.28.0/go.mod h1:jPyXzNPg6da9+38HEwElrQiHlVMTnVfM3/yv2OlIHaI= +go.opentelemetry.io/otel/trace v1.29.0/go.mod h1:eHl3w0sp3paPkYstJOmAimxhiFXPg+MMTlEh3nsQgWQ= +go.opentelemetry.io/otel/trace v1.31.0/go.mod h1:TXZkRk7SM2ZQLtR6eoAWQFIHPvzQ06FJAsO1tJg480A= +go.opentelemetry.io/proto/otlp v0.7.0/go.mod h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI= +go.opentelemetry.io/proto/otlp v0.11.0/go.mod h1:QpEjXPrNQzrFDZgoTo49dgHR9RYRSrg3NAKnUGl9YpQ= +go.opentelemetry.io/proto/otlp v0.16.0/go.mod h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U= +go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM= +go.opentelemetry.io/proto/otlp v1.2.0/go.mod h1:gGpR8txAl5M03pDhMC79G6SdqNV26naRm/KDsgaHD8A= +go.starlark.net v0.0.0-20230525235612-a134d8f9ddca/go.mod h1:jxU+3+j+71eXOW14274+SmmuW82qJzl6iZSeqEtTGds= +go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= -go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/atomic v1.9.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= +go.uber.org/automaxprocs v1.5.1/go.mod h1:BF4eumQw0P9GtnuxxovUd06vwm1o18oMzFtK66vU6XU= +go.uber.org/goleak v1.1.10/go.mod h1:8a7PlsEVH3e/a/GLqe5IIrQx6GzcnRmZEufDUTk4A7A= +go.uber.org/goleak v1.1.12/go.mod h1:cwTWslyiVhfpKIDGSZEM2HlOvcqm+tG4zioyIeLoqMQ= +go.uber.org/goleak v1.2.0/go.mod h1:XJYK+MuIchqpmGmUSAzotztawfKvYLUIgg7guXrwVUo= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= +go.uber.org/multierr v1.9.0/go.mod h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTVQ= +go.uber.org/multierr v1.10.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= -golang.org/x/arch v0.7.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= +go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= +go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so= +golang.org/x/arch v0.0.0-20210923205945-b76863e36670/go.mod h1:5om86z9Hs0C8fWVUuoMHwpExlXzs5Tkyp9hOrfG7pp8= +golang.org/x/crypto v0.0.0-20171113213409-9f005a07e0d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181009213950-7c1a557ab941/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190611184440-5c40567a22f8/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190701094942-4def268fd1a4/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= +golang.org/x/crypto v0.0.0-20200414173820-0848c9571904/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200728195943-123391ffb6de/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20201002170205-7f63de1d35b0/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= +golang.org/x/crypto v0.0.0-20210322153248-0c34fe9e7dc2/go.mod h1:T9bdIzuCu7OtxOm1hfPfRQxPLYneinmdGuTeoZ9dtd4= +golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= +golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220427172511-eb4f295cb31f/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.0.0-20220525230936-793ad666bf5e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= +golang.org/x/crypto v0.3.0/go.mod h1:hebNnKkNXi2UzZN1eVRvBB7co0a+JxK6XbPiWVs/3J4= +golang.org/x/crypto v0.11.0/go.mod h1:xgJhtzW8F9jGdVFWZESrid1U1bjeNy4zgy5cRr/CIio= +golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= +golang.org/x/crypto v0.14.0/go.mod h1:MVFd36DqK4CsrnJYDkBA3VC4m2GkXAM0PvzMCn4JQf4= +golang.org/x/crypto v0.15.0/go.mod h1:4ChreQoLWfG3xLDer1WdlH5NdlQ3+mwnQq1YTKY+72g= +golang.org/x/crypto v0.17.0/go.mod h1:gCAAfMLgwOJRpTjQ2zCCt2OcSfYMTeZVSRtQlPC7Nq4= +golang.org/x/crypto v0.18.0/go.mod h1:R0j02AL6hcrfOiy9T4ZYp/rcWeMxM3L6QYxlOuEG1mg= golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.21.0/go.mod h1:0BP7YvVV9gBbVKyeTG0Gyn+gZm94bibOW5BjDEYAOMs= -golang.org/x/crypto v0.22.0/go.mod h1:vr6Su+7cTlO45qkww3VDJlzDn0ctJvRgYbC2NvXHt+M= -golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= +golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= +golang.org/x/crypto v0.28.0/go.mod h1:rmgy+3RHxRZMyY0jjAJShp2zgEdOqj2AO7U0pYmeQ7U= +golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= +golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20230515195305-f3d0a9c9a5cc/go.mod h1:V1LtkGg67GoY2N1AnLN78QLrzxkLyJw7RJb1gzOOz9w= +golang.org/x/exp v0.0.0-20230905200255-921286631fa9/go.mod h1:S2oDrQGGwySpoQPVqRShND87VCbxmc6bL1Yd2oYrm6k= +golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= +golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= +golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= +golang.org/x/mod v0.6.0/go.mod h1:4mET923SAdbXp2ki8ey+zGs1SLqsuM2Y0uvdZR/fUNI= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.9.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= -golang.org/x/mod v0.16.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= +golang.org/x/mod v0.14.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.18.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.20.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.21.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181011144130-49bb7cea24b1/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= +golang.org/x/net v0.0.0-20190619014844-b5b0513f8c1b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191004110552-13f9640d40b9/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520004742-59133d7f0dd7/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20201006153459-a7d1128ccaa0/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201202161906-c7110b5ffcbb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20210428140749-89ef3d95e781/go.mod h1:OJAsFXCWl8Ukc7SiCT/9KSuxbyM7479/AVlXFRxuMCk= +golang.org/x/net v0.0.0-20210520170846-37e1c6afe023/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20210825183410-e898025ed96a/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211123203042-d83791d6bcd9/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211209124913-491a49abca63/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20211216030914-fe4d6282115f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= +golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= +golang.org/x/net v0.0.0-20220225172249-27dd8689420f/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= +golang.org/x/net v0.2.0/go.mod h1:KqCZLdyyvdV855qA2rE3GC2aiw5xGR5TEjj8smXukLY= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= +golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= +golang.org/x/net v0.12.0/go.mod h1:zEVYFnQC7m/vmpQFELhcD1EWkZlX69l4oqgmer6hfKA= +golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= +golang.org/x/net v0.18.0/go.mod h1:/czyP5RqHAH4odGYxBJ1qz0+CE5WZ+2j1YgoEo8F2jQ= golang.org/x/net v0.20.0/go.mod h1:z8BVo6PvndSri0LbOE3hAn0apkU+1YvI6E70E9jsnvY= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.22.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= -golang.org/x/net v0.24.0/go.mod h1:2Q7sJY5mzlzWjKtYUEXSlBWCdyaioyXzRB2RtU8KVE8= +golang.org/x/net v0.23.0/go.mod h1:JKghWKKOSdJwpW2GEx0Ja7fmaKnMsbu+MWVZTokSYmg= golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= golang.org/x/net v0.26.0/go.mod h1:5YKkiSynbBIh3p6iOc/vibscux0x38BZDkn8sCUPxHE= -golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= +golang.org/x/net v0.30.0/go.mod h1:2wGyMJ5iFasEhkwi13ChkO/t1ECNC4X4eBKkVFyYFlU= +golang.org/x/net v0.32.0/go.mod h1:CwU0IoeOlnQQWJ6ioyFrfRuomB8GKF6KbYXZVyeXNfs= +golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20211104180415-d3ed0bb246c8/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20220223155221-ee480838109b/go.mod h1:DAh4E804XQdzx2j+YRIaUnCqCV2RuMz24cGBJ5QYIrc= +golang.org/x/oauth2 v0.11.0/go.mod h1:LdF7O/8bLR/qWK9DrpXmbHLTouvRHK0SgJl0GmDBchk= +golang.org/x/oauth2 v0.16.0/go.mod h1:hqZ+0LWXsiVoZpeld6jVt06P3adbS2Uu911W1SsJv2o= golang.org/x/oauth2 v0.17.0/go.mod h1:OzPDGQiuQMguemayvdylqddI7qcD9lnSDb+1FiwQ5HA= golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8= +golang.org/x/oauth2 v0.20.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/oauth2 v0.22.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20220601150217-0de741cfad7f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.4.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= +golang.org/x/sync v0.5.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20180909124046-d0be0721c37e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190514135907-3a4b5fb9f71f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190522044717-8097e1b27ff5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190602015325-4c4f7f33c9ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606203320-7fc4e5ec1444/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190616124812-15dcb6c0061f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190812073006-9eafafc0a87e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191022100944-742c48ecaeb7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191120155948-bd437916bb0e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191210023423-ac6580df4449/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200106162015-b016eb3dc98e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200120151820-655fe14d7479/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200519105757-fe76b779f299/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200622214017-ed371f2e16b4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200817155316-9781c653f443/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200909081042-eff7692f9009/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200916030750-2334cc1a136f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200922070232-aee5d888a860/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200923182605-d9f96fdee20d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201112073958-5cba982894dd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201117170446-d9b008d0a637/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20201202213521-69691e467435/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210112080510-489259a85091/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210303074136-134d130e1a04/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210324051608-47abb6519492/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210423185535-09eb48e85fd7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210426230700-d19ff857e887/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210831042530-f4d43177bf5e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210903071746-97244b99971b/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211116061358-0a5406a5449c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220114195835-da31bd327af9/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220310020820-b874c991c1a5/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.18.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.19.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.22.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/telemetry v0.0.0-20240521205824-bda55230c457 h1:zf5N6UOrA487eEFacMePxjXAJctxKmyjKUsjA11Uzuk= +golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.26.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/telemetry v0.0.0-20240521205824-bda55230c457/go.mod h1:pRgIJT+bRLFKnoM1ldnzKoxTIn14Yxz928LQRYYgIN0= +golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.0.0-20220526004731-065cf7ba2467/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= +golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= golang.org/x/term v0.7.0/go.mod h1:P32HKFT3hSsZrRxla30E9HqToFYAQPCMs/zFMBUFqPY= +golang.org/x/term v0.8.0/go.mod h1:xPskH00ivmX89bAKVGSKKtLOWNx2+17Eiy94tnKShWo= +golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= +golang.org/x/term v0.13.0/go.mod h1:LTmsnFJwVN6bCy1rVCoS+qHT1HhALEFxKncY3WNNh4U= +golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww= +golang.org/x/term v0.15.0/go.mod h1:BDl952bC7+uMoWR75FIrCDx79TPU9oHkTZ9yRbYOrX0= +golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= +golang.org/x/term v0.18.0/go.mod h1:ILwASektA3OnRv7amZ1xhE/KTR+u50pbXfZ03+6Nx58= golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= +golang.org/x/term v0.25.0/go.mod h1:RPyXicDX+6vLxogjjRxjgD2TKtmAO6NZBsBRfrOLu7M= +golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= +golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= +golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.7.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= golang.org/x/text v0.9.0/go.mod h1:e1OnstbJyHTd6l/uOt8jFFHp6TRDWZR/bV3emEE/zU8= +golang.org/x/text v0.11.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/text v0.19.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= +golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20200416051211-89c76fbcd5d1/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20200630173020-3af7569d3a1e/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20210220033141-f8bda1e9f3ba/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20210723032227-1f47c861a9ac/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20220210224613-90d013bbcef8/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/time v0.7.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181011042414-1f849cf54d09/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20181030221726-6c7e314b6563/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= +golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190614205625-5aca471b1d59/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190624222133-a101b041ded4/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190706070813-72ffa07ba3db/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191108193012-7d206e10da11/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200505023115-26f46d2f7ef8/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200616133436-c1934b75d054/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= +golang.org/x/tools v0.0.0-20200916195026-c9a70fc28ce3/go.mod h1:z6u4i615ZeAfBE4XtMziQW1fSVJXACjjbWkB/mvPzlU= +golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201224043029-2b0845dc783e/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.9/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= +golang.org/x/tools v0.2.0/go.mod h1:y4OqIKeOV/fWJetJ8bXPU1sEVniLMIyDAZWeHdV+NTA= golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= +golang.org/x/tools v0.11.0/go.mod h1:anzJrxPjNtfgiYQYirP2CPGzGLxrH2u2QBhn6Bf3qY8= golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= -golang.org/x/tools v0.19.0/go.mod h1:qoJWxmGSIBmAeriMx19ogtrEPrGtDbPK634QFIcLAhc= +golang.org/x/tools v0.15.0/go.mod h1:hpksKq4dtpQWS1uQ61JkdqWM3LscIS6Slf+VVkm+wQk= +golang.org/x/tools v0.16.1/go.mod h1:kYVVN6I1mBNoB1OX+noeBjbRk4IUEPa7JJ+TJMEooJ0= golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= -golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 h1:H2TDz8ibqkAF6YGhCdN3jS9O0/s90v0rJh3X/OLHEUk= +golang.org/x/tools v0.22.0/go.mod h1:aCwcsjqvq7Yqt6TNyX7QMU2enbQ/Gt0bo6krSeEri+c= +golang.org/x/tools v0.23.0/go.mod h1:pnu6ufv6vQkll6szChhK3C3L/ruaIv5eBeztNG8wtsI= +golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ= +golang.org/x/tools v0.26.0/go.mod h1:TPVVj70c7JJ3WCazhD8OdXcZg/og+b9+tH/KxylGwH0= golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2/go.mod h1:K8+ghG5WaK9qNqU5K3HdILfMLy1f3aNYFI/wnl100a8= golang.org/x/xerrors v0.0.0-20231012003039-104605ab7028/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= +golang.org/x/xerrors v0.0.0-20240903120638-7835f813f4da/go.mod h1:NDW/Ps6MPRej6fsCIbMTohpP40sJ/P/vI1MoTEGwX90= +google.golang.org/api v0.0.0-20160322025152-9bf6e6e569ff/go.mod h1:4mhQ8q/RsB7i+udVvVy5NUi08OU8ZlA0gRVgrF7VFY0= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= +google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= +google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= +google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= +google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= +google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= +google.golang.org/api v0.162.0/go.mod h1:6SulDkfoBIg4NFmCuZ39XeeAgSHCPecfSUuDyYlAHs0= google.golang.org/api v0.166.0/go.mod h1:4FcBc686KFi7QI/U51/2GKKevfZMpM17sCdibqe/bSA= google.golang.org/api v0.167.0/go.mod h1:4FcBc686KFi7QI/U51/2GKKevfZMpM17sCdibqe/bSA= google.golang.org/api v0.169.0/go.mod h1:gpNOiMA2tZ4mf5R9Iwf4rK/Dcz0fbdIgWYWVoxmsyLg= -google.golang.org/api v0.171.0 h1:w174hnBPqut76FzW5Qaupt7zY8Kql6fiVjgys4f58sU= google.golang.org/api v0.171.0/go.mod h1:Hnq5AHm4OTMt2BUVjael2CWZFD6vksJdWCWiUAmjC9o= -google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= +google.golang.org/api v0.215.0/go.mod h1:fta3CVtuJYOEdugLNWm6WodzOS8KdFckABwN4I40hzY= +google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= +google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= +google.golang.org/cloud v0.0.0-20151119220103-975617b05ea8/go.mod h1:0H1ncTHf11KCFhTc/+EFRbzSCOZx+VUbRMk55Yv5MYk= +google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190522204451-c2c4e71fbf69/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200117163144-32f20d992d24/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= +google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200423170343-7949de9c1215/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20200527145253-8367513e4ece/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201019141844-1ed22bb0c154/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= +google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210831024726-fe130286e0e2/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20211118181313-81c1377c94b1/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20211208223120-3a66f561d7aa/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220107163113-42d7afdf6368/go.mod h1:5CzLGKJ67TSI2B9POpiiyGha0AjJvZIUgRMt1dSmuhc= +google.golang.org/genproto v0.0.0-20220502173005-c8bf987b8c21/go.mod h1:RAyBrSAP7Fh3Nc84ghnVLDPuV51xc9agzmm4Ph6i0Q4= google.golang.org/genproto v0.0.0-20230822172742-b8732ec3820d/go.mod h1:yZTlhN0tQnXo3h00fuXNCxJdLdIdnVFVBaRJ5LWBbw4= +google.golang.org/genproto v0.0.0-20231211222908-989df2bf70f3/go.mod h1:5RBcpGRxr25RbDzY5w+dmaqpSEvl8Gwl1x2CICf60ic= +google.golang.org/genproto v0.0.0-20240123012728-ef4313101c80/go.mod h1:cc8bqMqtv9gMOr0zHg2Vzff5ULhhL2IXP4sbcn32Dro= +google.golang.org/genproto v0.0.0-20240125205218-1f4bbc51befe/go.mod h1:cc8bqMqtv9gMOr0zHg2Vzff5ULhhL2IXP4sbcn32Dro= +google.golang.org/genproto/googleapis/api v0.0.0-20230822172742-b8732ec3820d/go.mod h1:KjSP20unUpOx5kyQUFa7k4OJg0qeJ7DEZflGDu2p6Bk= +google.golang.org/genproto/googleapis/api v0.0.0-20231120223509-83a465c0220f/go.mod h1:Uy9bTZJqmfrw2rIBxgGLnamc78euZULUBrLZ9XTITKI= google.golang.org/genproto/googleapis/api v0.0.0-20240205150955-31a09d347014/go.mod h1:rbHMSEDyoYX62nRVLOCc4Qt1HbsdytAYoVwgjiOhF3I= google.golang.org/genproto/googleapis/api v0.0.0-20240221002015-b0ce06bbee7c/go.mod h1:5iCWqnniDlqZHrd3neWVTOwvh/v6s3232omMecelax8= google.golang.org/genproto/googleapis/api v0.0.0-20240304161311-37d4d3c04a78/go.mod h1:O1cOfN1Cy6QEYr7VxtjOyP5AdAuR0aJ/MYZaaof623Y= google.golang.org/genproto/googleapis/api v0.0.0-20240311132316-a219d84964c2/go.mod h1:O1cOfN1Cy6QEYr7VxtjOyP5AdAuR0aJ/MYZaaof623Y= +google.golang.org/genproto/googleapis/api v0.0.0-20240513163218-0867130af1f8/go.mod h1:vPrPUTsDCYxXWjP7clS81mZ6/803D8K4iM9Ma27VKas= +google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5/go.mod h1:RGnPtTG7r4i8sPlNyDeikXF99hMM+hN6QMm4ooG9g2g= google.golang.org/genproto/googleapis/api v0.0.0-20240528184218-531527333157/go.mod h1:99sLkeliLXfdj2J75X3Ho+rrVCaJze0uwN7zDDkjPVU= +google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142/go.mod h1:d6be+8HhtEtucleCbxpPW9PA9XwISACu8nvpPqF0BVo= +google.golang.org/genproto/googleapis/api v0.0.0-20240826202546-f6391c0de4c7/go.mod h1:OCdP9MfskevB/rbYvHTsXTtKC+3bHWajPdoKgjcYkfo= +google.golang.org/genproto/googleapis/api v0.0.0-20241113202542-65e8d215514f/go.mod h1:Yo94eF2nj7igQt+TiJ49KxjIH8ndLYPZMIRSiRcEbg0= google.golang.org/genproto/googleapis/bytestream v0.0.0-20240314234333-6e1732d8331c/go.mod h1:IN9OQUXZ0xT+26MDwZL8fJcYw+y99b0eYPA2U15Jt8o= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230525234030-28d5490b6b19/go.mod h1:66JfowdXAEgad5O9NnYcsNPLCPZJD++2L9X0PCMODrA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230731190214-cbb8c96f2d6d/go.mod h1:TUfxEVdsvPg18p6AslUXFoLdpED4oBnGwyqk3dV1XzM= +google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M= +google.golang.org/genproto/googleapis/rpc v0.0.0-20231212172506-995d672761c0/go.mod h1:FUoWkonphQm3RhTS+kOEhF8h0iDpm4tdXolVCeZ9KKA= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240125205218-1f4bbc51befe/go.mod h1:PAREbraiVEVGVdTZsVWjSbbTtSyGbAgIIvni8a8CD5s= google.golang.org/genproto/googleapis/rpc v0.0.0-20240205150955-31a09d347014/go.mod h1:SaPjaZGWb0lPqs6Ittu0spdfrOArqji4ZdeP5IC/9N4= google.golang.org/genproto/googleapis/rpc v0.0.0-20240221002015-b0ce06bbee7c/go.mod h1:H4O17MA/PE9BsGx3w+a+W2VOLLD1Qf7oJneAoU6WktY= google.golang.org/genproto/googleapis/rpc v0.0.0-20240304161311-37d4d3c04a78/go.mod h1:UCOku4NytXMJuLQE5VuqA5lX3PcHCBo8pxNyvkf4xBs= google.golang.org/genproto/googleapis/rpc v0.0.0-20240311132316-a219d84964c2/go.mod h1:UCOku4NytXMJuLQE5VuqA5lX3PcHCBo8pxNyvkf4xBs= google.golang.org/genproto/googleapis/rpc v0.0.0-20240314234333-6e1732d8331c/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240401170217-c3f982113cda/go.mod h1:WtryC6hu0hhx87FDGxWCDptyssuo68sk10vYjF+T9fY= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240513163218-0867130af1f8/go.mod h1:I7Y+G38R2bu5j1aLzfFmQfTcU/WnFuqDwLZAbvKTKpM= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240515191416-fc5f0ca64291/go.mod h1:EfXuqaE1J41VCDicxHzUDm+8rk+7ZdXzHV0IhO/I6s0= google.golang.org/genproto/googleapis/rpc v0.0.0-20240701130421-f6361c86f094/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240730163845-b1a4ccb954bf/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY= google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240822170219-fc7c04adadcd/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240823204242-4ba0660f739c/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240826202546-f6391c0de4c7/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241007155032-5fefd90f89a9/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241015192408-796eee8c2d53/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241113202542-65e8d215514f/go.mod h1:GX3210XPVPUjJbTUbvwI8f2IpZDMZuPJWDzDuebbviI= +google.golang.org/genproto/googleapis/rpc v0.0.0-20241206012308-a4fef0638583/go.mod h1:5uTbfoYQed2U9p3KIj2/Zzm02PYhndfdmML0qC3q3FU= +google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= +google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= +google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= +google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= +google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.23.1/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= +google.golang.org/grpc v1.24.0/go.mod h1:XDChyiUovWa60DnaeDeZmSW86xtLtjtZbwvSiRnRtcA= google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= +google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= +google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= +google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= +google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= +google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= +google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= +google.golang.org/grpc v1.40.0/go.mod h1:ogyxbiOoUXAkP+4+xa6PZSE9DZgIHtSpzjDTB9KAK34= +google.golang.org/grpc v1.42.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= +google.golang.org/grpc v1.43.0/go.mod h1:k+4IHHFw41K8+bbowsex27ge2rCb65oeWqe4jJ590SU= +google.golang.org/grpc v1.46.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.47.0/go.mod h1:vN9eftEi1UMyUsIF80+uQXhHjbXYbm0uXoFCACuMGWk= +google.golang.org/grpc v1.50.1/go.mod h1:ZgQEeidpAuNRZ8iRrlBKXZQP1ghovWIVhdJRyCDK+GI= +google.golang.org/grpc v1.56.3/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= +google.golang.org/grpc v1.57.1/go.mod h1:Sd+9RMTACXwmub0zcNY2c4arhtrbBYD1AUHI/dt16Mo= +google.golang.org/grpc v1.59.0/go.mod h1:aUPDwccQo6OTjy7Hct4AfBPD1GptF4fyUjIkQ9YtF98= google.golang.org/grpc v1.61.0/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= google.golang.org/grpc v1.61.1/go.mod h1:VUbo7IFqmF1QtCAstipjG0GIoq49KvMe9+h1jFLBNJs= google.golang.org/grpc v1.62.0/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= google.golang.org/grpc v1.62.1/go.mod h1:IWTG0VlJLCh1SkC58F7np9ka9mx/WNkjl4PGJaiq+QE= -google.golang.org/grpc v1.64.1/go.mod h1:hiQF4LFZelK2WKaP6W0L92zGHtiQdZxk8CrSdvyjeP0= +google.golang.org/grpc v1.64.0/go.mod h1:oxjF8E3FBnjp+/gVFYdWacaLDx9na1aqy9oovLpxQYg= google.golang.org/grpc v1.65.0/go.mod h1:WgYC2ypjlB0EiQi6wdKixMqukr6lBc0Vo+oOgjrM5ZQ= +google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= +google.golang.org/grpc v1.67.3/go.mod h1:YGaHCc6Oap+FzBJTZLBzkGSYt/cvGPFTPxkn7QfSU8s= google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= +google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= +google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= +google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= +google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= +google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.28.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.29.1/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= +google.golang.org/protobuf v1.31.0/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I= google.golang.org/protobuf v1.32.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= -google.golang.org/protobuf v1.34.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= +google.golang.org/protobuf v1.35.1/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.35.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +google.golang.org/protobuf v1.36.0/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4K+aSYdM/U= +gopkg.in/check.v1 v1.0.0-20141024133853-64131543e789/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/square/go-jose.v2 v2.6.0 h1:NGk74WTnPKBNUhNzQX7PYcTLUjoq7mzKk2OKbvwk2iI= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= +gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= +gopkg.in/gemnasium/logrus-airbrake-hook.v2 v2.1.2/go.mod h1:Xk6kEKp8OKb+X14hQBKWaSkCsqBpgog8nAV2xsGOxlo= +gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/natefinch/lumberjack.v2 v2.0.0/go.mod h1:l0ndWWf7gzL7RNwBG7wST/UCcT4T24xpD6X8LsfU/+k= +gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= +gopkg.in/square/go-jose.v2 v2.2.2/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/square/go-jose.v2 v2.3.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= gopkg.in/square/go-jose.v2 v2.6.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI= +gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= +gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= +gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.3.0/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v3 v3.0.0-20200615113413-eeeca48fe776/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gorm.io/driver/sqlite v1.4.4 h1:gIufGoR0dQzjkyqDyYSCvsYR6fba1Gw5YKDqKeChxFc= +gopkg.in/yaml.v3 v3.0.0/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gorm.io/driver/sqlite v1.4.4/go.mod h1:0Aq3iPO+v9ZKbcdiz8gLWRw5VOPcBOPUQJFLq5e2ecI= -gorm.io/gorm v1.25.8 h1:WAGEZ/aEcznN4D03laj8DKnehe1e9gYQAjW8xyPRdeo= gorm.io/gorm v1.25.8/go.mod h1:hbnx/Oo0ChWMn1BIhpy1oYozzpM15i4YPuHDmfYtwg8= +gotest.tools v2.2.0+incompatible/go.mod h1:DsYFclhRJ6vuDpmuTbkuFWG+y2sxOXAzmJt81HFBacw= +gotest.tools/v3 v3.0.2/go.mod h1:3SzNCllyD9/Y+b5r9JIKQ474KzkZyqLqEfYqMsX94Bk= +gotest.tools/v3 v3.0.3/go.mod h1:Z7Lb0S5l+klDB31fvDQX8ss/FlKDxtlFlw3Oa8Ymbl8= +gotest.tools/v3 v3.4.0/go.mod h1:CtbdzLSsqVhDgMtKsx03ird5YTGB3ar27v0u/yKBW5g= +honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +k8s.io/api v0.20.1/go.mod h1:KqwcCVogGxQY3nBlRpwt+wpAMF/KjaCc7RpywacvqUo= +k8s.io/api v0.20.4/go.mod h1:++lNL1AJMkDymriNniQsWRkMDzRaX2Y/POTUi8yvqYQ= +k8s.io/api v0.20.6/go.mod h1:X9e8Qag6JV/bL5G6bU8sdVRltWKmdHsFUGS3eVndqE8= +k8s.io/api v0.22.5/go.mod h1:mEhXyLaSD1qTOf40rRiKXkc+2iCem09rWLlFwhCEiAs= +k8s.io/api v0.26.2/go.mod h1:1kjMQsFE+QHPfskEcVNgL3+Hp88B80uj0QtSOlj8itU= +k8s.io/api v0.31.3/go.mod h1:UJrkIp9pnMOI9K2nlL6vwpxRzzEX5sWgn8kGQe92kCE= +k8s.io/apimachinery v0.20.1/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU= +k8s.io/apimachinery v0.20.4/go.mod h1:WlLqWAHZGg07AeltaI0MV5uk1Omp8xaN0JGLY6gkRpU= +k8s.io/apimachinery v0.20.6/go.mod h1:ejZXtW1Ra6V1O5H8xPBGz+T3+4gfkTCeExAHKU57MAc= +k8s.io/apimachinery v0.22.1/go.mod h1:O3oNtNadZdeOMxHFVxOreoznohCpy0z6mocxbZr7oJ0= +k8s.io/apimachinery v0.22.5/go.mod h1:xziclGKwuuJ2RM5/rSFQSYAj0zdbci3DH8kj+WvyN0U= +k8s.io/apimachinery v0.26.2/go.mod h1:ats7nN1LExKHvJ9TmwootT00Yz05MuYqPXEXaVeOy5I= +k8s.io/apimachinery v0.31.3/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= +k8s.io/apiserver v0.20.1/go.mod h1:ro5QHeQkgMS7ZGpvf4tSMx6bBOgPfE+f52KwvXfScaU= +k8s.io/apiserver v0.20.4/go.mod h1:Mc80thBKOyy7tbvFtB4kJv1kbdD0eIH8k8vianJcbFM= +k8s.io/apiserver v0.20.6/go.mod h1:QIJXNt6i6JB+0YQRNcS0hdRHJlMhflFmsBDeSgT1r8Q= +k8s.io/apiserver v0.22.5/go.mod h1:s2WbtgZAkTKt679sYtSudEQrTGWUSQAPe6MupLnlmaQ= +k8s.io/apiserver v0.26.2/go.mod h1:GHcozwXgXsPuOJ28EnQ/jXEM9QeG6HT22YxSNmpYNh8= +k8s.io/apiserver v0.31.3/go.mod h1:PrxVbebxrxQPFhJk4powDISIROkNMKHibTg9lTRQ0Qg= +k8s.io/cli-runtime v0.31.3/go.mod h1:Q2jkyTpl+f6AtodQvgDI8io3jrfr+Z0LyQBPJJ2Btq8= +k8s.io/client-go v0.20.1/go.mod h1:/zcHdt1TeWSd5HoUe6elJmHSQ6uLLgp4bIJHVEuy+/Y= +k8s.io/client-go v0.20.4/go.mod h1:LiMv25ND1gLUdBeYxBIwKpkSC5IsozMMmOOeSJboP+k= +k8s.io/client-go v0.20.6/go.mod h1:nNQMnOvEUEsOzRRFIIkdmYOjAZrC8bgq0ExboWSU1I0= +k8s.io/client-go v0.22.5/go.mod h1:cs6yf/61q2T1SdQL5Rdcjg9J1ElXSwbjSrW2vFImM4Y= +k8s.io/client-go v0.26.2/go.mod h1:u5EjOuSyBa09yqqyY7m3abZeovO/7D/WehVVlZ2qcqU= +k8s.io/client-go v0.31.3/go.mod h1:2CgjPUTpv3fE5dNygAr2NcM8nhHzXvxB8KL5gYc3kJs= +k8s.io/code-generator v0.19.7/go.mod h1:lwEq3YnLYb/7uVXLorOJfxg+cUu2oihFhHZ0n9NIla0= k8s.io/code-generator v0.31.1/go.mod h1:oL2ky46L48osNqqZAeOcWWy0S5BXj50vVdwOtTefqIs= -k8s.io/component-helpers v0.31.1/go.mod h1:ye0Gi8KzFNTfpIuzvVDtxJQMP/0Owkukf1vGf22Hl6U= +k8s.io/code-generator v0.31.3/go.mod h1:/umCIlT84g1+Yu5ZXtP1KGSRTnGiIzzX5AzUAxsNlts= +k8s.io/code-generator v0.32.0/go.mod h1:b7Q7KMZkvsYFy72A79QYjiv4aTz3GvW0f1T3UfhFq4s= +k8s.io/component-base v0.20.1/go.mod h1:guxkoJnNoh8LNrbtiQOlyp2Y2XFCZQmrcg2n/DeYNLk= +k8s.io/component-base v0.20.4/go.mod h1:t4p9EdiagbVCJKrQ1RsA5/V4rFQNDfRlevJajlGwgjI= +k8s.io/component-base v0.20.6/go.mod h1:6f1MPBAeI+mvuts3sIdtpjljHWBQ2cIy38oBIWMYnrM= +k8s.io/component-base v0.22.5/go.mod h1:VK3I+TjuF9eaa+Ln67dKxhGar5ynVbwnGrUiNF4MqCI= +k8s.io/component-base v0.26.2/go.mod h1:DxbuIe9M3IZPRxPIzhch2m1eT7uFrSBJUBuVCQEBivs= +k8s.io/component-base v0.31.3/go.mod h1:xME6BHfUOafRgT0rGVBGl7TuSg8Z9/deT7qq6w7qjIU= +k8s.io/component-helpers v0.31.3/go.mod h1:HZ1HZx2TKXM7xSUV2cR9L5yDoyZPhhHQNaE3BPBLPUQ= +k8s.io/component-helpers v0.32.0/go.mod h1:9RuClQatbClcokXOcDWSzFKQm1huIf0FzQlPRpizlMc= +k8s.io/cri-api v0.17.3/go.mod h1:X1sbHmuXhwaHs9xxYffLqJogVsnI+f6cPRcgPel7ywM= +k8s.io/cri-api v0.20.1/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI= +k8s.io/cri-api v0.20.4/go.mod h1:2JRbKt+BFLTjtrILYVqQK5jqhI+XNdF6UiGMgczeBCI= +k8s.io/cri-api v0.20.6/go.mod h1:ew44AjNXwyn1s0U4xCKGodU7J1HzBeZ1MpGrpa5r8Yc= +k8s.io/cri-api v0.23.1/go.mod h1:REJE3PSU0h/LOV1APBrupxrEJqnoxZC8KWzkBUHwrK4= k8s.io/cri-api v0.27.1/go.mod h1:+Ts/AVYbIo04S86XbTD73UPp/DkTiYxtsFeOFEu32L0= -k8s.io/gengo/v2 v2.0.0-20240826214909-a7b603a56eb7 h1:cErOOTkQ3JW19o4lo91fFurouhP8NcoBvb7CkvhZZpk= +k8s.io/gengo v0.0.0-20200413195148-3a45101e95ac/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= +k8s.io/gengo v0.0.0-20200428234225-8167cfdcfc14/go.mod h1:ezvh/TsK7cY6rbqRK0oQQ8IAqLxYwwyPxAX1Pzy0ii0= +k8s.io/gengo v0.0.0-20201113003025-83324d819ded/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= +k8s.io/gengo v0.0.0-20230829151522-9cce18d56c01/go.mod h1:FiNAH4ZV3gBg2Kwh89tzAEV2be7d5xI0vBa/VySYy3E= +k8s.io/gengo/v2 v2.0.0-20240228010128-51d4e06bde70/go.mod h1:VH3AT8AaQOqiGjMF9p0/IM1Dj+82ZwjfxUP1IxaHE+8= k8s.io/gengo/v2 v2.0.0-20240826214909-a7b603a56eb7/go.mod h1:EJykeLsmFC60UQbYJezXkEsG2FLrt0GPNkU5iK5GWxU= +k8s.io/gengo/v2 v2.0.0-20240911193312-2b36238f13e9/go.mod h1:EJykeLsmFC60UQbYJezXkEsG2FLrt0GPNkU5iK5GWxU= +k8s.io/klog/v2 v2.0.0/go.mod h1:PBfzABfn139FHAV07az/IF9Wp1bkk3vpT2XSJ76fSDE= +k8s.io/klog/v2 v2.2.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= +k8s.io/klog/v2 v2.4.0/go.mod h1:Od+F08eJP+W3HUb4pSrPpgp9DGU4GzlpG/TmITuYh/Y= +k8s.io/klog/v2 v2.9.0/go.mod h1:hy9LJ/NvuK+iVyP4Ehqva4HxZG/oXyIS3n3Jmire4Ec= +k8s.io/klog/v2 v2.30.0/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/klog/v2 v2.80.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= -k8s.io/kms v0.30.1/go.mod h1:GrMurD0qk3G4yNgGcsCEmepqf9KyyIrTXYR2lyUOJC4= -k8s.io/kms v0.31.1 h1:cGLyV3cIwb0ovpP/jtyIe2mEuQ/MkbhmeBF2IYCA9Io= +k8s.io/klog/v2 v2.90.1/go.mod h1:y1WjHnz7Dj687irZUWR/WLkLc5N1YHtjLdmgWjndZn0= k8s.io/kms v0.31.1/go.mod h1:OZKwl1fan3n3N5FFxnW5C4V3ygrah/3YXeJWS3O6+94= +k8s.io/kms v0.31.3/go.mod h1:OZKwl1fan3n3N5FFxnW5C4V3ygrah/3YXeJWS3O6+94= +k8s.io/kms v0.32.0/go.mod h1:Bk2evz/Yvk0oVrvm4MvZbgq8BD34Ksxs2SRHn4/UiOM= +k8s.io/kube-openapi v0.0.0-20200805222855-6aeccd4b50c6/go.mod h1:UuqjUnNftUyPE5H64/qeyjQoUZhGpeFDVdxjTeEVN2o= +k8s.io/kube-openapi v0.0.0-20201113171705-d219536bb9fd/go.mod h1:WOJ3KddDSol4tAGcJo0Tvi+dK12EcqSLqcWsryKMpfM= +k8s.io/kube-openapi v0.0.0-20210421082810-95288971da7e/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= +k8s.io/kube-openapi v0.0.0-20211109043538-20434351676c/go.mod h1:vHXdDvt9+2spS2Rx9ql3I8tycm3H9FDfdUoIuKCefvw= +k8s.io/kube-openapi v0.0.0-20231010175941-2dd684a91f00/go.mod h1:AsvuZPBlUDVuCdzJ87iajxtXuR9oktsTctW/R9wwouA= k8s.io/kube-openapi v0.0.0-20240228011516-70dd3763d340/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= -k8s.io/metrics v0.31.1/go.mod h1:JuH1S9tJiH9q1VCY0yzSCawi7kzNLsDzlWDJN4xR+iA= +k8s.io/kube-openapi v0.0.0-20241105132330-32ad38e42d3f/go.mod h1:R/HEjbvWI0qdfb8viZUeVZm0X6IZnxAydC7YU42CMw4= +k8s.io/kubectl v0.31.3/go.mod h1:lhMECDCbJN8He12qcKqs2QfmVo9Pue30geovBVpH5fs= +k8s.io/kubernetes v1.13.0/go.mod h1:ocZa8+6APFNC2tX1DZASIbocyYT5jHzqFVsY5aoB7Jk= +k8s.io/metrics v0.31.3/go.mod h1:2w9gpd8z+13oJmaPR6p3kDyrDqnxSyoKpnOw2qLIdhI= +k8s.io/metrics v0.32.0/go.mod h1:skdg9pDjVjCPIQqmc5rBzDL4noY64ORhKu9KCPv1+QI= +k8s.io/utils v0.0.0-20201110183641-67b214c5f920/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20210819203725-bdf08cb9a70a/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20210930125809-cb0fa318a74b/go.mod h1:jPW/WVKK9YHAvNhRxK0md/EJ228hCsBRufyofKtW8HA= +k8s.io/utils v0.0.0-20230220204549-a5ecb0141aa5/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +k8s.io/utils v0.0.0-20230726121419-3b25d923346b/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -nullprogram.com/x/optparse v1.0.0 h1:xGFgVi5ZaWOnYdac2foDT3vg0ZZC9ErXFV57mr4OHrI= -rsc.io/pdf v0.1.1 h1:k1MczvYDUvJBe93bYd7wrZLLUEcLZAuF824/I4e5Xr4= +k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +nhooyr.io/websocket v1.8.7/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= +oras.land/oras-go v1.2.0/go.mod h1:pFNs7oHp2dYsYMSS82HaX5l4mpnGO7hbpPN6EWH2ltc= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= +rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= +rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.14/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.15/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.0.22/go.mod h1:LEScyzhFmoF5pso/YSeBstl57mOzx9xlU9n85RGrDQg= +sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.3/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw= +sigs.k8s.io/json v0.0.0-20220713155537-f223a00ba0e2/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= +sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= +sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3/go.mod h1:18nIHnGi6636UCz6m8i4DhaJ65T6EruyzmoQqI2BVDo= +sigs.k8s.io/kustomize/api v0.17.2/go.mod h1:UWTz9Ct+MvoeQsHcJ5e+vziRRkwimm3HytpZgIYqye0= +sigs.k8s.io/kustomize/cmd/config v0.15.0/go.mod h1:Jq57b0nPaoYUlOqg//0JtAh6iibboqMcfbtCYoWPM00= sigs.k8s.io/kustomize/kustomize/v5 v5.4.2/go.mod h1:5ypfJVYlPb2MKKeoGknVLxvHemDlQT+szI4+KOhnD6k= +sigs.k8s.io/kustomize/kustomize/v5 v5.5.0/go.mod h1:AeFCmgCrXzmvjWWaeZCyBp6XzG1Y0w1svYus8GhJEOE= +sigs.k8s.io/kustomize/kyaml v0.17.1/go.mod h1:9V0mCjIEYjlXuCdYsSXvyoy2BTsLESH7TlGV81S282U= +sigs.k8s.io/structured-merge-diff/v4 v4.0.1/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.0.2/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.0.3/go.mod h1:bJZC9H9iH24zzfZ/41RGcq60oK1F7G282QMXDPYydCw= +sigs.k8s.io/structured-merge-diff/v4 v4.1.2/go.mod h1:j/nl6xW8vLS49O8YvXW1ocPhZawJtm+Yrr7PPRQ0Vg4= +sigs.k8s.io/structured-merge-diff/v4 v4.2.3/go.mod h1:qjx8mGObPmV2aSZepjQjbmb2ihdVs8cGKBraizNC69E= +sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= +sigs.k8s.io/structured-merge-diff/v4 v4.4.2/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4= +sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= +sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= +sigs.k8s.io/yaml v1.3.0/go.mod h1:GeOyir5tyXNByN85N/dRIT9es5UQNerPYEKK56eTBm8= +tags.cncf.io/container-device-interface v0.7.2/go.mod h1:Xb1PvXv2BhfNb3tla4r9JL129ck1Lxv9KuU6eVOfKto= +tags.cncf.io/container-device-interface/specs-go v0.7.0/go.mod h1:hMAwAbMZyBLdmYqWgYcKH0F/yctNpV3P35f+/088A80= diff --git a/modules/server/README.md b/modules/server/README.md deleted file mode 100644 index 496e6b43..00000000 --- a/modules/server/README.md +++ /dev/null @@ -1,77 +0,0 @@ -# Kubetail Backend Server - -Go-based HTTP server that handles web requests from the Kubetail frontend - -## Overview - -The Kubetail backend server is a Go-based HTTP server that's designed to proxy requests from the Kubetail frontend to the user's Kubernetes API and to the Kubetail backend agents as well as provide some other custom functionality such as authentication. It uses the Gin Web framework to serve HTTP requests. Under the hood, it uses the Kubernetes Go-client to communicate with the Kubernetes API and gRPC to communicate with Kubetail backend agents. Externally, it responds to Kubernetes-related queries via a GraphQL endpoint powered by [gqlgen](https://github.com/99designs/gqlgen) and serves other requests via a simple REST API. - -In development, the backend and frontend servers are kept separate but in production the frontend website is packaged as a static site and deployed to the server's `website` directory from where it is served at the apex endpoint. - -## Configure - -### CLI Flags - -The Kubetail backend server executable supports the following command line configuration options: - -| Flag | Datatype | Description | Default | -| ------------ | -------- | -------------------------------- | --------- | -| -c, --config | string | Path to Kubetail config file | "" | -| -a, --addr | string | Host address to bind to | ":4000" | -| --gin-mode | string | Gin mode (release, debug) | "release" | -| -p, --param | []string | Config params ("key:val" format) | [] | - -### Config file - -The Kubetail backend server can be configured using a configuration file written in YAML, JSON, TOML, HCL or envfile format. The application will automatically replace ENV variables written in the format `${NAME}` with their corresponding values. The config file supports the following options (also see [hack/config.yaml](hack/config.yaml)): - -| Name | Datatype | Description | Default | -| -------------------------------------------- | -------- | ---------------------------------------------------- | ----------------------------------- | -| auth-mode | string | Auth mode (token, cluster, local) | "token" | -| allowed-namespaces | []string | If populated, restricts namespace access | [] | -| server.addr | string | Host address to bind to | ":4000" | -| server.agent-dispatch-url | string | Url for sending dispatch requests to agent | "kubernetes://kubetail-agent:50051" | -| server.base-path | string | URL path prefix | "/" | -| server.gin-mode | string | Gin mode (release, debug) | "release" | -| server.csrf.enabled | bool | Enable CSRF protection | true | -| server.csrf.field-name | string | CSRF token name in forms | "csrf_token" | -| server.csrf.secret | string | CSRF hash key | "" | -| server.csrf.cookie.name | string | CSRF cookie name | "csrf" | -| server.csrf.cookie.path | string | CSRF cookie path | "/" | -| server.csrf.cookie.domain | string | CSRF cookie domain | "" | -| server.csrf.cookie.max-age | int | CSRF cookie max age (in seconds) | 43200 | -| server.csrf.cookie.secure | bool | CSRF cookie secure property | false | -| server.csrf.cookie.http-only | bool | CSRF cookie HttpOnly property | true | -| server.csrf.cookie.same-site | string | CSRF cookie SameSite property (strict, lax, none) | "strict" | -| server.logging.enabled | bool | Enable logging | true | -| server.logging.level | string | Log level | "info" | -| server.logging.format | string | Log format (json, pretty) | "json" | -| server.logging.access-log.enabled | bool | Enable access log | true | -| server.logging.access-log.hide-health-checks | bool | Hide requests to /healthz from access log | false | -| server.session.secret | string | Session hash key | "" | -| server.session.cookie.name | string | Session cookie name | "session" | -| server.session.cookie.path | string | Session cookie path | "/" | -| server.session.cookie.domain | string | Session cookie domain | "" | -| server.session.cookie.max-age | int | Session cookie max age (in seconds) | 43200 | -| server.session.cookie.secure | bool | Session cookie secure property | false | -| server.session.cookie.http-only | bool | Session cookie HttpOnly property | true | -| server.session.cookie.same-site | string | Session cookie SameSite property (strict, lax, none) | "strict" | -| server.tls.enabled | bool | Enable TLS endpoint termination | false | -| server.tls.cert-file | string | Path to cert file | "" | -| server.tls.key-file | string | Path to key file | "" | - -## GraphQL - -The GraphQL schema can be found here: [GraphQL schema](graph/schema.graphqls). To run the gqlgen GraphQL code generator use the `go generate` command: - -```console -go generate ./... -``` - -## Test - -This project uses the [stretchr/testify](https://github.com/stretchr/testify) library for testing. To run the test suite execute this command: - -```console -go test ./... -``` diff --git a/modules/server/go.mod b/modules/server/go.mod deleted file mode 100644 index c66258d8..00000000 --- a/modules/server/go.mod +++ /dev/null @@ -1,134 +0,0 @@ -module github.com/kubetail-org/kubetail/modules/server - -go 1.22.5 - -replace github.com/kubetail-org/kubetail/modules/common => ../common - -require ( - github.com/99designs/gqlgen v0.17.55 - github.com/gin-contrib/gzip v1.0.1 - github.com/gin-contrib/requestid v1.0.3 - github.com/gin-contrib/secure v1.1.0 - github.com/gin-contrib/sessions v1.0.1 - github.com/gin-gonic/gin v1.10.0 - github.com/go-playground/validator/v10 v10.22.1 - github.com/gorilla/csrf v1.7.2 - github.com/gorilla/websocket v1.5.1 - github.com/gwatts/gin-adapter v1.0.0 - github.com/hasura/go-graphql-client v0.10.0 - github.com/kubetail-org/grpc-dispatcher-go v0.0.2 - github.com/kubetail-org/kubetail/modules/common v0.0.0-00010101000000-000000000000 - github.com/mitchellh/mapstructure v1.5.0 - github.com/rs/zerolog v1.33.0 - github.com/sosodev/duration v1.3.1 - github.com/spf13/cobra v1.8.1 - github.com/spf13/viper v1.19.0 - github.com/stretchr/testify v1.9.0 - github.com/vektah/gqlparser/v2 v2.5.17 - google.golang.org/grpc v1.67.1 - google.golang.org/protobuf v1.34.2 - k8s.io/api v0.31.1 - k8s.io/apimachinery v0.31.1 - k8s.io/apiserver v0.31.1 - k8s.io/client-go v0.31.1 - k8s.io/utils v0.0.0-20240921022957-49e7df575cb6 -) - -require ( - github.com/agnivade/levenshtein v1.2.0 // indirect - github.com/asaskevich/EventBus v0.0.0-20200907212545-49d423059eef // indirect - github.com/beorn7/perks v1.0.1 // indirect - github.com/blang/semver/v4 v4.0.0 // indirect - github.com/bytedance/sonic v1.12.2 // indirect - github.com/bytedance/sonic/loader v0.2.0 // indirect - github.com/cespare/xxhash/v2 v2.3.0 // indirect - github.com/cloudwego/base64x v0.1.4 // indirect - github.com/cloudwego/iasm v0.2.0 // indirect - github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect - github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect - github.com/deckarep/golang-set/v2 v2.6.0 // indirect - github.com/emicklei/go-restful/v3 v3.12.1 // indirect - github.com/fsnotify/fsnotify v1.7.0 // indirect - github.com/fxamacker/cbor/v2 v2.7.0 // indirect - github.com/gabriel-vasile/mimetype v1.4.5 // indirect - github.com/gin-contrib/sse v0.1.0 // indirect - github.com/go-logr/logr v1.4.2 // indirect - github.com/go-openapi/jsonpointer v0.21.0 // indirect - github.com/go-openapi/jsonreference v0.21.0 // indirect - github.com/go-openapi/swag v0.23.0 // indirect - github.com/go-playground/locales v0.14.1 // indirect - github.com/go-playground/universal-translator v0.18.1 // indirect - github.com/goccy/go-json v0.10.3 // indirect - github.com/gogo/protobuf v1.3.2 // indirect - github.com/golang/protobuf v1.5.4 // indirect - github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49 // indirect - github.com/google/go-cmp v0.6.0 // indirect - github.com/google/gofuzz v1.2.0 // indirect - github.com/google/uuid v1.6.0 // indirect - github.com/gorilla/context v1.1.2 // indirect - github.com/gorilla/securecookie v1.1.2 // indirect - github.com/gorilla/sessions v1.2.2 // indirect - github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect - github.com/hashicorp/hcl v1.0.0 // indirect - github.com/imdario/mergo v0.3.16 // indirect - github.com/inconshreveable/mousetrap v1.1.0 // indirect - github.com/josharian/intern v1.0.0 // indirect - github.com/json-iterator/go v1.1.12 // indirect - github.com/klauspost/compress v1.17.7 // indirect - github.com/klauspost/cpuid/v2 v2.2.8 // indirect - github.com/leodido/go-urn v1.4.0 // indirect - github.com/magiconair/properties v1.8.7 // indirect - github.com/mailru/easyjson v0.7.7 // indirect - github.com/mattn/go-colorable v0.1.13 // indirect - github.com/mattn/go-isatty v0.0.20 // indirect - github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect - github.com/modern-go/reflect2 v1.0.2 // indirect - github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect - github.com/pelletier/go-toml/v2 v2.2.3 // indirect - github.com/pkg/errors v0.9.1 // indirect - github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/prometheus/client_golang v1.19.1 // indirect - github.com/prometheus/client_model v0.6.1 // indirect - github.com/prometheus/common v0.55.0 // indirect - github.com/prometheus/procfs v0.15.1 // indirect - github.com/russross/blackfriday/v2 v2.1.0 // indirect - github.com/sagikazarmark/locafero v0.4.0 // indirect - github.com/sagikazarmark/slog-shim v0.1.0 // indirect - github.com/sourcegraph/conc v0.3.0 // indirect - github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.7.0 // indirect - github.com/spf13/pflag v1.0.5 // indirect - github.com/stretchr/objx v0.5.2 // indirect - github.com/subosito/gotenv v1.6.0 // indirect - github.com/twitchyliquid64/golang-asm v0.15.1 // indirect - github.com/ugorji/go/codec v1.2.12 // indirect - github.com/urfave/cli/v2 v2.27.4 // indirect - github.com/x448/float16 v0.8.4 // indirect - github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 // indirect - go.uber.org/multierr v1.11.0 // indirect - golang.org/x/arch v0.9.0 // indirect - golang.org/x/crypto v0.27.0 // indirect - golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8 // indirect - golang.org/x/mod v0.20.0 // indirect - golang.org/x/net v0.29.0 // indirect - golang.org/x/oauth2 v0.23.0 // indirect - golang.org/x/sync v0.8.0 // indirect - golang.org/x/sys v0.25.0 // indirect - golang.org/x/term v0.24.0 // indirect - golang.org/x/text v0.18.0 // indirect - golang.org/x/time v0.6.0 // indirect - golang.org/x/tools v0.24.0 // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240924160255-9d4c2d233b61 // indirect - gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect - gopkg.in/inf.v0 v0.9.1 // indirect - gopkg.in/ini.v1 v1.67.0 // indirect - gopkg.in/yaml.v2 v2.4.0 // indirect - gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/component-base v0.31.1 // indirect - k8s.io/klog/v2 v2.130.1 // indirect - k8s.io/kube-openapi v0.0.0-20240903163716-9e1beecbcb38 // indirect - nhooyr.io/websocket v1.8.7 // indirect - sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect - sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect - sigs.k8s.io/yaml v1.4.0 // indirect -) diff --git a/modules/server/go.sum b/modules/server/go.sum deleted file mode 100644 index f24265ad..00000000 --- a/modules/server/go.sum +++ /dev/null @@ -1,439 +0,0 @@ -github.com/99designs/gqlgen v0.17.55 h1:3vzrNWYyzSZjGDFo68e5j9sSauLxfKvLp+6ioRokVtM= -github.com/99designs/gqlgen v0.17.55/go.mod h1:3Bq768f8hgVPGZxL8aY9MaYmbxa6llPM/qu1IGH1EJo= -github.com/agnivade/levenshtein v1.2.0 h1:U9L4IOT0Y3i0TIlUIDJ7rVUziKi/zPbrJGaFrtYH3SY= -github.com/agnivade/levenshtein v1.2.0/go.mod h1:QVVI16kDrtSuwcpd0p1+xMC6Z/VfhtCyDIjcwga4/DU= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ= -github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= -github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0 h1:jfIu9sQUG6Ig+0+Ap1h4unLjW6YQJpKZVmUzxsD4E/Q= -github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0/go.mod h1:t2tdKJDJF9BV14lnkjHmOQgcvEKgtqs5a1N3LNdJhGE= -github.com/asaskevich/EventBus v0.0.0-20200907212545-49d423059eef h1:2JGTg6JapxP9/R33ZaagQtAM4EkkSYnIAlOG5EI8gkM= -github.com/asaskevich/EventBus v0.0.0-20200907212545-49d423059eef/go.mod h1:JS7hed4L1fj0hXcyEejnW57/7LCetXggd+vwrRnYeII= -github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= -github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= -github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM= -github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= -github.com/bytedance/sonic v1.12.2 h1:oaMFuRTpMHYLpCntGca65YWt5ny+wAceDERTkT2L9lg= -github.com/bytedance/sonic v1.12.2/go.mod h1:B8Gt/XvtZ3Fqj+iSKMypzymZxw/FVwgIGKzMzT9r/rk= -github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= -github.com/bytedance/sonic/loader v0.2.0 h1:zNprn+lsIP06C/IqCHs3gPQIvnvpKbbxyXQP1iU4kWM= -github.com/bytedance/sonic/loader v0.2.0/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= -github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= -github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= -github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= -github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= -github.com/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/0Y= -github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= -github.com/cloudwego/iasm v0.2.0 h1:1KNIy1I1H9hNNFEEH3DVnI4UujN+1zjpuk6gwHLTssg= -github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= -github.com/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4= -github.com/coreos/go-semver v0.3.1/go.mod h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec= -github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= -github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= -github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= -github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/deckarep/golang-set/v2 v2.6.0 h1:XfcQbWM1LlMB8BsJ8N9vW5ehnnPVIw0je80NsVHagjM= -github.com/deckarep/golang-set/v2 v2.6.0/go.mod h1:VAky9rY/yGXJOLEDv3OMci+7wtDpOF4IN+y82NBOac4= -github.com/dgryski/trifles v0.0.0-20230903005119-f50d829f2e54 h1:SG7nF6SRlWhcT7cNTs5R6Hk4V2lcmLz2NsG2VnInyNo= -github.com/dgryski/trifles v0.0.0-20230903005119-f50d829f2e54/go.mod h1:if7Fbed8SFyPtHLHbg49SI7NAdJiC5WIA09pe59rfAA= -github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY= -github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto= -github.com/emicklei/go-restful/v3 v3.12.1 h1:PJMDIM/ak7btuL8Ex0iYET9hxM3CI2sjZtzpL63nKAU= -github.com/emicklei/go-restful/v3 v3.12.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= -github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= -github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= -github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= -github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= -github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= -github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= -github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= -github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= -github.com/gabriel-vasile/mimetype v1.4.5 h1:J7wGKdGu33ocBOhGy0z653k/lFKLFDPJMG8Gql0kxn4= -github.com/gabriel-vasile/mimetype v1.4.5/go.mod h1:ibHel+/kbxn9x2407k1izTA1S81ku1z/DlgOW2QE0M4= -github.com/gin-contrib/gzip v1.0.1 h1:HQ8ENHODeLY7a4g1Au/46Z92bdGFl74OhxcZble9WJE= -github.com/gin-contrib/gzip v1.0.1/go.mod h1:njt428fdUNRvjuJf16tZMYZ2Yl+WQB53X5wmhDwXvC4= -github.com/gin-contrib/requestid v1.0.3 h1:NB6SF0Te4Ikn8mW2K4tegpm2WGuB3bWj4wnWaM4oSAA= -github.com/gin-contrib/requestid v1.0.3/go.mod h1:VQd5IntEAH79uEt8FRoGpqiDWTKqjbRbSnmpNHXSsKs= -github.com/gin-contrib/secure v1.1.0 h1:wy/psCWbgUBDCLH13KgB/m06NHXb1jczSTRp+H2hK7E= -github.com/gin-contrib/secure v1.1.0/go.mod h1:LtEfyy326NRwgkUq8ac6npf845L0L9B8yfEaLcxMHIc= -github.com/gin-contrib/sessions v1.0.1 h1:3hsJyNs7v7N8OtelFmYXFrulAf6zSR7nW/putcPEHxI= -github.com/gin-contrib/sessions v1.0.1/go.mod h1:ouxSFM24/OgIud5MJYQJLpy6AwxQ5EYO9yLhbtObGkM= -github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE= -github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= -github.com/gin-gonic/gin v1.6.3/go.mod h1:75u5sXoLsGZoRN5Sgbi1eraJ4GU3++wFwWzhwvtwp4M= -github.com/gin-gonic/gin v1.10.0 h1:nTuyha1TYqgedzytsKYqna+DfLos46nTv2ygFy86HFU= -github.com/gin-gonic/gin v1.10.0/go.mod h1:4PMNQiOhvDRa013RKVbsiNwoyezlm2rm0uX/T7kzp5Y= -github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= -github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= -github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= -github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= -github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= -github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ= -github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4= -github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= -github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= -github.com/go-playground/assert/v2 v2.0.1/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= -github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= -github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= -github.com/go-playground/locales v0.13.0/go.mod h1:taPMhCMXrRLJO55olJkUXHZBHCxTMfnGwq/HNwmWNS8= -github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= -github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= -github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= -github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= -github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= -github.com/go-playground/validator/v10 v10.2.0/go.mod h1:uOYAAleCW8F/7oMFd6aG0GOhaH6EGOAJShg8Id5JGkI= -github.com/go-playground/validator/v10 v10.22.1 h1:40JcKH+bBNGFczGuoBYgX4I6m/i27HYW8P9FDk5PbgA= -github.com/go-playground/validator/v10 v10.22.1/go.mod h1:dbuPbCMFw/DrkbEynArYaCwl3amGuJotoKCe95atGMM= -github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= -github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= -github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee h1:s+21KNqlpePfkah2I+gwHF8xmJWRjooY+5248k6m4A0= -github.com/gobwas/httphead v0.0.0-20180130184737-2c6c146eadee/go.mod h1:L0fX3K22YWvt/FAX9NnzrNzcI4wNYi9Yku4O0LKYflo= -github.com/gobwas/pool v0.2.0 h1:QEmUOlnSjWtnpRGHF3SauEiOsy82Cup83Vf2LcMlnc8= -github.com/gobwas/pool v0.2.0/go.mod h1:q8bcK0KcYlCgd9e7WYLm9LpyS+YeLd8JVDW6WezmKEw= -github.com/gobwas/ws v1.0.2 h1:CoAavW/wd/kulfZmSIBt6p24n4j7tHgNVCjsfHVNUbo= -github.com/gobwas/ws v1.0.2/go.mod h1:szmBTxLgaFppYjEmNtny/v3w89xOydFnnZMcgRRu/EM= -github.com/goccy/go-json v0.10.3 h1:KZ5WoDbxAIgm2HNbYckL0se1fHD6rz5j4ywS6ebzDqA= -github.com/goccy/go-json v0.10.3/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= -github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= -github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang-jwt/jwt/v4 v4.5.0 h1:7cYmW1XlMY7h7ii7UhUyChSgS5wUJEnm9uZVTGqOWzg= -github.com/golang-jwt/jwt/v4 v4.5.0/go.mod h1:m21LjoU+eqJr34lmDMbreY2eSTRJ1cv77w39/MY0Ch0= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= -github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= -github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= -github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4= -github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA= -github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49 h1:0VpGH+cDhbDtdcweoyCVsF3fhN8kejK6rFe/2FFX2nU= -github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49/go.mod h1:BkkQ4L1KS1xMt2aWSPStnn55ChGC0DPOn2FQYj+f25M= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= -github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= -github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/pprof v0.0.0-20240727154555-813a5fbdbec8 h1:FKHo8hFI3A+7w0aUQuYXQ+6EN5stWmeY/AZqtM8xk9k= -github.com/google/pprof v0.0.0-20240727154555-813a5fbdbec8/go.mod h1:K1liHPHnj73Fdn/EKuT8nrFqBihUSKXoLYU0BuatOYo= -github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= -github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/gorilla/context v1.1.2 h1:WRkNAv2uoa03QNIc1A6u4O7DAGMUVoopZhkiXWA2V1o= -github.com/gorilla/context v1.1.2/go.mod h1:KDPwT9i/MeWHiLl90fuTgrt4/wPcv75vFAZLaOOcbxM= -github.com/gorilla/csrf v1.7.2 h1:oTUjx0vyf2T+wkrx09Trsev1TE+/EbDAeHtSTbtC2eI= -github.com/gorilla/csrf v1.7.2/go.mod h1:F1Fj3KG23WYHE6gozCmBAezKookxbIvUJT+121wTuLk= -github.com/gorilla/securecookie v1.1.2 h1:YCIWL56dvtr73r6715mJs5ZvhtnY73hBvEF8kXD8ePA= -github.com/gorilla/securecookie v1.1.2/go.mod h1:NfCASbcHqRSY+3a8tlWJwsQap2VX5pwzwo4h3eOamfo= -github.com/gorilla/sessions v1.2.2 h1:lqzMYz6bOfvn2WriPUjNByzeXIlVzURcPmgMczkmTjY= -github.com/gorilla/sessions v1.2.2/go.mod h1:ePLdVu+jbEgHH+KWw8I1z2wqd0BAdAQh/8LRvBeoNcQ= -github.com/gorilla/websocket v1.4.1/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gorilla/websocket v1.5.1 h1:gmztn0JnHVt9JZquRuzLw3g4wouNVzKL15iLr/zn/QY= -github.com/gorilla/websocket v1.5.1/go.mod h1:x3kM2JMyaluk02fnUJpQuwD2dCS5NDG2ZHL0uE0tcaY= -github.com/graph-gophers/graphql-go v1.5.0 h1:fDqblo50TEpD0LY7RXk/LFVYEVqo3+tXMNMPSVXA1yc= -github.com/graph-gophers/graphql-go v1.5.0/go.mod h1:YtmJZDLbF1YYNrlNAuiO5zAStUWc3XZT07iGsVqe1Os= -github.com/graph-gophers/graphql-transport-ws v0.0.2 h1:DbmSkbIGzj8SvHei6n8Mh9eLQin8PtA8xY9eCzjRpvo= -github.com/graph-gophers/graphql-transport-ws v0.0.2/go.mod h1:5BVKvFzOd2BalVIBFfnfmHjpJi/MZ5rOj8G55mXvZ8g= -github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaWhq2GjuNUt0aUU0YBYw= -github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= -github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= -github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 h1:bkypFPDjIYGfCYD5mRBvpqxfYX1YCS1PXdKYWi8FsN0= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0/go.mod h1:P+Lt/0by1T8bfcF3z737NnSbmxQAppXMRziHUxPOC8k= -github.com/gwatts/gin-adapter v1.0.0 h1:TsmmhYTR79/RMTsfYJ2IQvI1F5KZ3ZFJxuQSYEOpyIA= -github.com/gwatts/gin-adapter v1.0.0/go.mod h1:44AEV+938HsS0mjfXtBDCUZS9vONlF2gwvh8wu4sRYc= -github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= -github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= -github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hasura/go-graphql-client v0.10.0 h1:eQm/ap/rqxMG6yAGe6J+FkXu1VqJ9p21E63vz0A7zLQ= -github.com/hasura/go-graphql-client v0.10.0/go.mod h1:z9UPkMmCBMuJjvBEtdE6F+oTR2r15AcjirVNq/8P+Ig= -github.com/imdario/mergo v0.3.16 h1:wwQJbIsHYGMUyLSPrEq1CT16AhnhNJQ51+4fdHUnCl4= -github.com/imdario/mergo v0.3.16/go.mod h1:WBLT9ZmE3lPoWsEzCh9LPo3TiwVN+ZKEjmz+hD27ysY= -github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= -github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= -github.com/jonboulle/clockwork v0.2.2 h1:UOGuzwb1PwsrDAObMuhUnj0p5ULPj8V/xJ7Kx9qUBdQ= -github.com/jonboulle/clockwork v0.2.2/go.mod h1:Pkfl5aHPm1nk2H9h0bjmnJD/BcgbGXUBGnn1kMkgxc8= -github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= -github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= -github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= -github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= -github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.10.3/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs= -github.com/klauspost/compress v1.17.7 h1:ehO88t2UGzQK66LMdE8tibEd1ErmzZjNEqWkjLAKQQg= -github.com/klauspost/compress v1.17.7/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw= -github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= -github.com/klauspost/cpuid/v2 v2.2.8 h1:+StwCXwm9PdpiEkPyzBXIy+M9KUb4ODm0Zarf1kS5BM= -github.com/klauspost/cpuid/v2 v2.2.8/go.mod h1:Lcz8mBdAVJIBVzewtcLocK12l3Y+JytZYpaMropDUws= -github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= -github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= -github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= -github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= -github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= -github.com/kubetail-org/grpc-dispatcher-go v0.0.2 h1:ho+RffttK2Wdq99lJG+wUDJe+pmSTLSrrXCOgxQAvlg= -github.com/kubetail-org/grpc-dispatcher-go v0.0.2/go.mod h1:UHbHIp00DcCyOV0P/bd3PUQ77uQEGOICVp2D7Ikk1Fs= -github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= -github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= -github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= -github.com/magiconair/properties v1.8.7 h1:IeQXZAiQcpL9mgcAe1Nu6cX9LLw6ExEHKjN0VQdvPDY= -github.com/magiconair/properties v1.8.7/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= -github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= -github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= -github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= -github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= -github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= -github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= -github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= -github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= -github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= -github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= -github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= -github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= -github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= -github.com/onsi/ginkgo/v2 v2.19.0 h1:9Cnnf7UHo57Hy3k6/m5k3dRfGTMXGvxhHFvkDTCTpvA= -github.com/onsi/ginkgo/v2 v2.19.0/go.mod h1:rlwLi9PilAFJ8jCg9UE1QP6VBpd6/xj3SRC0d6TU0To= -github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk= -github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0= -github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M= -github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc= -github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= -github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= -github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= -github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= -github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= -github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= -github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc= -github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8= -github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= -github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= -github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8= -github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= -github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= -github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= -github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= -github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= -github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/sagikazarmark/locafero v0.4.0 h1:HApY1R9zGo4DBgr7dqsTH/JJxLTTsOt7u6keLGt6kNQ= -github.com/sagikazarmark/locafero v0.4.0/go.mod h1:Pe1W6UlPYUk/+wc/6KFhbORCfqzgYEpgQ3O5fPuL3H4= -github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= -github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= -github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= -github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= -github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= -github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= -github.com/soheilhy/cmux v0.1.5 h1:jjzc5WVemNEDTLwv9tlmemhC73tI08BNOIGwBOo10Js= -github.com/soheilhy/cmux v0.1.5/go.mod h1:T7TcVDs9LWfQgPlPsdngu6I6QIoyIFZDDC6sNE1GqG0= -github.com/sosodev/duration v1.3.1 h1:qtHBDMQ6lvMQsL15g4aopM4HEfOaYuhWBw3NPTtlqq4= -github.com/sosodev/duration v1.3.1/go.mod h1:RQIBBX0+fMLc/D9+Jb/fwvVmo0eZvDDEERAikUR6SDg= -github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= -github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= -github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= -github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= -github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= -github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= -github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= -github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= -github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= -github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= -github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= -github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= -github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= -github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= -github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= -github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg= -github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= -github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= -github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= -github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75 h1:6fotK7otjonDflCTK0BCfls4SPy3NcCVb5dqqmbRknE= -github.com/tmc/grpc-websocket-proxy v0.0.0-20220101234140-673ab2c3ae75/go.mod h1:KO6IkyS8Y3j8OdNO85qEYBsRPuteD+YciPomcXdrMnk= -github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= -github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= -github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVMw= -github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= -github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE= -github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= -github.com/urfave/cli/v2 v2.27.4 h1:o1owoI+02Eb+K107p27wEX9Bb8eqIoZCfLXloLUSWJ8= -github.com/urfave/cli/v2 v2.27.4/go.mod h1:m4QzxcD2qpra4z7WhzEGn74WZLViBnMpb1ToCAKdGRQ= -github.com/vektah/gqlparser/v2 v2.5.17 h1:9At7WblLV7/36nulgekUgIaqHZWn5hxqluxrxGUhOmI= -github.com/vektah/gqlparser/v2 v2.5.17/go.mod h1:1lz1OeCqgQbQepsGxPVywrjdBHW2T08PUS3pJqepRww= -github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= -github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8= -github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= -github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1 h1:gEOO8jv9F4OT7lGCjxCBTO/36wtF6j2nSip77qHd4x4= -github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1/go.mod h1:Ohn+xnUBiLI6FVj/9LpzZWtj1/D6lUovWYBkxHVV3aM= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -go.etcd.io/bbolt v1.3.9 h1:8x7aARPEXiXbHmtUwAIv7eV2fQFHrLLavdiJ3uzJXoI= -go.etcd.io/bbolt v1.3.9/go.mod h1:zaO32+Ti0PK1ivdPtgMESzuzL2VPoIG1PCQNvOdo/dE= -go.etcd.io/etcd/api/v3 v3.5.14 h1:vHObSCxyB9zlF60w7qzAdTcGaglbJOpSj1Xj9+WGxq0= -go.etcd.io/etcd/api/v3 v3.5.14/go.mod h1:BmtWcRlQvwa1h3G2jvKYwIQy4PkHlDej5t7uLMUdJUU= -go.etcd.io/etcd/client/pkg/v3 v3.5.14 h1:SaNH6Y+rVEdxfpA2Jr5wkEvN6Zykme5+YnbCkxvuWxQ= -go.etcd.io/etcd/client/pkg/v3 v3.5.14/go.mod h1:8uMgAokyG1czCtIdsq+AGyYQMvpIKnSvPjFMunkgeZI= -go.etcd.io/etcd/client/v2 v2.305.13 h1:RWfV1SX5jTU0lbCvpVQe3iPQeAHETWdOTb6pxhd77C8= -go.etcd.io/etcd/client/v2 v2.305.13/go.mod h1:iQnL7fepbiomdXMb3om1rHq96htNNGv2sJkEcZGDRRg= -go.etcd.io/etcd/client/v3 v3.5.14 h1:CWfRs4FDaDoSz81giL7zPpZH2Z35tbOrAJkkjMqOupg= -go.etcd.io/etcd/client/v3 v3.5.14/go.mod h1:k3XfdV/VIHy/97rqWjoUzrj9tk7GgJGH9J8L4dNXmAk= -go.etcd.io/etcd/pkg/v3 v3.5.13 h1:st9bDWNsKkBNpP4PR1MvM/9NqUPfvYZx/YXegsYEH8M= -go.etcd.io/etcd/pkg/v3 v3.5.13/go.mod h1:N+4PLrp7agI/Viy+dUYpX7iRtSPvKq+w8Y14d1vX+m0= -go.etcd.io/etcd/raft/v3 v3.5.13 h1:7r/NKAOups1YnKcfro2RvGGo2PTuizF/xh26Z2CTAzA= -go.etcd.io/etcd/raft/v3 v3.5.13/go.mod h1:uUFibGLn2Ksm2URMxN1fICGhk8Wu96EfDQyuLhAcAmw= -go.etcd.io/etcd/server/v3 v3.5.13 h1:V6KG+yMfMSqWt+lGnhFpP5z5dRUj1BDRJ5k1fQ9DFok= -go.etcd.io/etcd/server/v3 v3.5.13/go.mod h1:K/8nbsGupHqmr5MkgaZpLlH1QdX1pcNQLAkODy44XcQ= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0 h1:9G6E0TXzGFVfTnawRzrPl83iHOAV7L8NJiR8RSGYV1g= -go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc v0.53.0/go.mod h1:azvtTADFQJA8mX80jIH/akaE7h+dbm/sVuaHqN13w74= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0 h1:4K4tsIXefpVJtvA/8srF4V4y0akAoPHkIslgAkjixJA= -go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.53.0/go.mod h1:jjdQuTGVsXV4vSs+CJ2qYDeDPf9yIJV23qlIzBm73Vg= -go.opentelemetry.io/otel v1.28.0 h1:/SqNcYk+idO0CxKEUOtKQClMK/MimZihKYMruSMViUo= -go.opentelemetry.io/otel v1.28.0/go.mod h1:q68ijF8Fc8CnMHKyzqL6akLO46ePnjkgfIMIjUIX9z4= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.28.0 h1:3Q/xZUyC1BBkualc9ROb4G8qkH90LXEIICcs5zv1OYY= -go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.28.0/go.mod h1:s75jGIWA9OfCMzF0xr+ZgfrB5FEbbV7UuYo32ahUiFI= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 h1:qFffATk0X+HD+f1Z8lswGiOQYKHRlzfmdJm0wEaVrFA= -go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0/go.mod h1:MOiCmryaYtc+V0Ei+Tx9o5S1ZjA7kzLucuVuyzBZloQ= -go.opentelemetry.io/otel/metric v1.28.0 h1:f0HGvSl1KRAU1DLgLGFjrwVyismPlnuU6JD6bOeuA5Q= -go.opentelemetry.io/otel/metric v1.28.0/go.mod h1:Fb1eVBFZmLVTMb6PPohq3TO9IIhUisDsbJoL/+uQW4s= -go.opentelemetry.io/otel/sdk v1.28.0 h1:b9d7hIry8yZsgtbmM0DKyPWMMUMlK9NEKuIG4aBqWyE= -go.opentelemetry.io/otel/sdk v1.28.0/go.mod h1:oYj7ClPUA7Iw3m+r7GeEjz0qckQRJK2B8zjcZEfu7Pg= -go.opentelemetry.io/otel/trace v1.28.0 h1:GhQ9cUuQGmNDd5BTCP2dAvv75RdMxEfTmYejp+lkx9g= -go.opentelemetry.io/otel/trace v1.28.0/go.mod h1:jPyXzNPg6da9+38HEwElrQiHlVMTnVfM3/yv2OlIHaI= -go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= -go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= -go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= -go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= -go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo= -go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so= -golang.org/x/arch v0.9.0 h1:ub9TgUInamJ8mrZIGlBG6/4TqWeMszd4N8lNorbrr6k= -golang.org/x/arch v0.9.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A= -golang.org/x/crypto v0.27.0/go.mod h1:1Xngt8kV6Dvbssa53Ziq6Eqn0HqbZi5Z6R0ZpwQzt70= -golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8 h1:aAcj0Da7eBAtrTp03QXWvm88pSyOt+UgdZw2BFZ+lEw= -golang.org/x/exp v0.0.0-20240325151524-a685a6edb6d8/go.mod h1:CQ1k9gNrJ50XIzaKCRR2hssIjF07kZFEiieALBM/ARQ= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.20.0 h1:utOm6MM3R3dnawAiJgn0y+xvuYRsm1RKM/4giyfDgV0= -golang.org/x/mod v0.20.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.29.0 h1:5ORfpBpCs4HzDYoodCDBbwHzdR5UrLBZ3sOnUJmFoHo= -golang.org/x/net v0.29.0/go.mod h1:gLkgy8jTGERgjzMic6DS9+SP0ajcu6Xu3Orq/SpETg0= -golang.org/x/oauth2 v0.23.0 h1:PbgcYx2W7i4LvjJWEbf0ngHV6qJYr86PkAV3bXdLEbs= -golang.org/x/oauth2 v0.23.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.8.0 h1:3NFvSEYkUoMifnESzZl15y791HH1qU2xm6eCJU5ZPXQ= -golang.org/x/sync v0.8.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.25.0 h1:r+8e+loiHxRqhXVl6ML1nO3l1+oFoWbnlu2Ehimmi34= -golang.org/x/sys v0.25.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/term v0.24.0 h1:Mh5cbb+Zk2hqqXNO7S1iTjEphVL+jb8ZWaqh/g+JWkM= -golang.org/x/term v0.24.0/go.mod h1:lOBK/LVxemqiMij05LGJ0tzNr8xlmwBRJ81PX6wVLH8= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.18.0 h1:XvMDiNzPAl0jr17s6W9lcaIhGUfUORdGCNsuLmPG224= -golang.org/x/text v0.18.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U= -golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24= -golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9 h1:9+tzLLstTlPTRyJTh+ah5wIMsBW5c4tQwGTN3thOW9Y= -google.golang.org/genproto v0.0.0-20240213162025-012b6fc9bca9/go.mod h1:mqHbVIp48Muh7Ywss/AD6I5kNVKZMmAa/QEW58Gxp2s= -google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 h1:wKguEg1hsxI2/L3hUYrpo1RVi48K+uTyzKqprwLXsb8= -google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142/go.mod h1:d6be+8HhtEtucleCbxpPW9PA9XwISACu8nvpPqF0BVo= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240924160255-9d4c2d233b61 h1:N9BgCIAUvn/M+p4NJccWPWb3BWh88+zyL0ll9HgbEeM= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240924160255-9d4c2d233b61/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= -google.golang.org/grpc v1.67.1 h1:zWnc1Vrcno+lHZCOofnIMvycFcc0QRGIzm9dhnDX68E= -google.golang.org/grpc v1.67.1/go.mod h1:1gLDyUQU7CTLJI90u3nXZ9ekeghjeM7pTDZlqFNg2AA= -google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= -google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= -gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= -gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4= -gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= -gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= -gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= -gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= -gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc= -gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= -gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.31.1 h1:Xe1hX/fPW3PXYYv8BlozYqw63ytA92snr96zMW9gWTU= -k8s.io/api v0.31.1/go.mod h1:sbN1g6eY6XVLeqNsZGLnI5FwVseTrZX7Fv3O26rhAaI= -k8s.io/apimachinery v0.31.1 h1:mhcUBbj7KUjaVhyXILglcVjuS4nYXiwC+KKFBgIVy7U= -k8s.io/apimachinery v0.31.1/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= -k8s.io/apiserver v0.31.1 h1:Sars5ejQDCRBY5f7R3QFHdqN3s61nhkpaX8/k1iEw1c= -k8s.io/apiserver v0.31.1/go.mod h1:lzDhpeToamVZJmmFlaLwdYZwd7zB+WYRYIboqA1kGxM= -k8s.io/client-go v0.31.1 h1:f0ugtWSbWpxHR7sjVpQwuvw9a3ZKLXX0u0itkFXufb0= -k8s.io/client-go v0.31.1/go.mod h1:sKI8871MJN2OyeqRlmA4W4KM9KBdBUpDLu/43eGemCg= -k8s.io/component-base v0.31.1 h1:UpOepcrX3rQ3ab5NB6g5iP0tvsgJWzxTyAo20sgYSy8= -k8s.io/component-base v0.31.1/go.mod h1:WGeaw7t/kTsqpVTaCoVEtillbqAhF2/JgvO0LDOMa0w= -k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= -k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= -k8s.io/kube-openapi v0.0.0-20240903163716-9e1beecbcb38 h1:1dWzkmJrrprYvjGwh9kEUxmcUV/CtNU8QM7h1FLWQOo= -k8s.io/kube-openapi v0.0.0-20240903163716-9e1beecbcb38/go.mod h1:coRQXBK9NxO98XUv3ZD6AK3xzHCxV6+b7lrquKwaKzA= -k8s.io/utils v0.0.0-20240921022957-49e7df575cb6 h1:MDF6h2H/h4tbzmtIKTuctcwZmY0tY9mD9fNT47QO6HI= -k8s.io/utils v0.0.0-20240921022957-49e7df575cb6/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -nhooyr.io/websocket v1.8.7 h1:usjR2uOr/zjjkVMy0lW+PPohFok7PCow5sDjLgX4P4g= -nhooyr.io/websocket v1.8.7/go.mod h1:B70DZP8IakI65RVQ51MsWP/8jndNma26DVA/nFSCgW0= -nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.3 h1:2770sDpzrjjsAtVhSeUFseziht227YAWYHLGNM8QPwY= -sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.30.3/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw= -sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= -sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0= -sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4= -sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08= -sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= -sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/modules/server/graph/handler.go b/modules/server/graph/handler.go deleted file mode 100644 index 7d607e35..00000000 --- a/modules/server/graph/handler.go +++ /dev/null @@ -1,78 +0,0 @@ -// Copyright 2024 Andres Morey -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package graph - -import ( - "net/http" - "time" - - "github.com/99designs/gqlgen/graphql/handler" - "github.com/99designs/gqlgen/graphql/handler/extension" - "github.com/99designs/gqlgen/graphql/handler/lru" - "github.com/99designs/gqlgen/graphql/handler/transport" - "github.com/gorilla/websocket" - "github.com/vektah/gqlparser/v2/ast" -) - -type HandlerOptions struct { - WSInitFunc transport.WebsocketInitFunc -} - -func NewDefaultHandlerOptions() *HandlerOptions { - return &HandlerOptions{} -} - -func NewHandler(r *Resolver, options *HandlerOptions) *handler.Server { - if options == nil { - options = NewDefaultHandlerOptions() - } - - c := Config{Resolvers: r} - c.Directives.Validate = ValidateDirective - c.Directives.NullIfValidationFailed = NullIfValidationFailedDirective - - // init handler - h := handler.New(NewExecutableSchema(c)) - - // add options from from NewDefaultServer - h.AddTransport(transport.GET{}) - h.AddTransport(transport.POST{}) - - h.SetQueryCache(lru.New[*ast.QueryDocument](1000)) - - // configure WebSocket (without CORS) - h.AddTransport(&transport.Websocket{ - Upgrader: websocket.Upgrader{ - CheckOrigin: func(r *http.Request) bool { - // We have to return true here because `kubectl proxy` modifies the Host header - // so requests will fail same-origin tests and unfortunately not all browsers - // have implemented `sec-fetch-site` header. Instead, we will use CSRF token - // validation to ensure requests are coming from the same site. - return true - }, - ReadBufferSize: 1024, - WriteBufferSize: 1024, - }, - InitFunc: options.WSInitFunc, - KeepAlivePingInterval: 10 * time.Second, - }) - - h.Use(extension.Introspection{}) - h.Use(extension.AutomaticPersistedQuery{ - Cache: lru.New[string](100), - }) - - return h -} diff --git a/modules/server/graph/resolver.go b/modules/server/graph/resolver.go deleted file mode 100644 index 4cddeb67..00000000 --- a/modules/server/graph/resolver.go +++ /dev/null @@ -1,194 +0,0 @@ -// Copyright 2024 Andres Morey -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package graph - -import ( - "context" - "net/http" - "slices" - "time" - - zlog "github.com/rs/zerolog/log" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/client-go/dynamic" - dynamicFake "k8s.io/client-go/dynamic/fake" - "k8s.io/client-go/kubernetes" - "k8s.io/client-go/kubernetes/fake" - "k8s.io/client-go/rest" - - grpcdispatcher "github.com/kubetail-org/grpc-dispatcher-go" - - "github.com/kubetail-org/kubetail/modules/common/k8shelpers" -) - -// This file will not be regenerated automatically. -// -// It serves as dependency injection for your app, add any dependencies you require here. - -//go:generate go run github.com/99designs/gqlgen generate - -type Resolver struct { - k8sCfg *rest.Config - clientset *kubernetes.Clientset - clientsetReadyCh chan struct{} - dynamicClient *dynamic.DynamicClient - dynamicClientReadyCh chan struct{} - grpcDispatcher *grpcdispatcher.Dispatcher - allowedNamespaces []string - TestClientset *fake.Clientset - TestDynamicClient *dynamicFake.FakeDynamicClient -} - -func (r *Resolver) K8SClientset(ctx context.Context) kubernetes.Interface { - if r.TestClientset != nil { - return r.TestClientset - } - - // If undefined, create new clientset - if r.clientset == nil { - cfg := rest.CopyConfig(r.k8sCfg) - - cfg.WrapTransport = func(transport http.RoundTripper) http.RoundTripper { - return k8shelpers.NewBearerTokenRoundTripper(transport) - } - - clientset, err := kubernetes.NewForConfig(cfg) - if err != nil { - zlog.Fatal().Err(err).Send() - } - - r.clientset = clientset - } - - return r.clientset -} - -func (r *Resolver) K8SDynamicClient(ctx context.Context) dynamic.Interface { - if r.TestDynamicClient != nil { - return r.TestDynamicClient - } - - // If undefined, create new dynamic client - if r.dynamicClient == nil { - cfg := rest.CopyConfig(r.k8sCfg) - - cfg.WrapTransport = func(transport http.RoundTripper) http.RoundTripper { - return k8shelpers.NewBearerTokenRoundTripper(transport) - } - - dynamicClient, err := dynamic.NewForConfig(cfg) - if err != nil { - zlog.Fatal().Err(err).Send() - } - - r.dynamicClient = dynamicClient - } - - return r.dynamicClient -} - -func (r *Resolver) ToNamespace(namespace *string) (string, error) { - ns := metav1.NamespaceDefault - if namespace != nil { - ns = *namespace - } - - // perform auth - if len(r.allowedNamespaces) > 0 && !slices.Contains(r.allowedNamespaces, ns) { - return "", ErrForbidden - } - - return ns, nil -} - -func (r *Resolver) ToNamespaces(namespace *string) ([]string, error) { - var namespaces []string - - ns := metav1.NamespaceDefault - if namespace != nil { - ns = *namespace - } - - // perform auth - if ns != "" && len(r.allowedNamespaces) > 0 && !slices.Contains(r.allowedNamespaces, ns) { - return nil, ErrForbidden - } - - // listify - if ns == "" && len(r.allowedNamespaces) > 0 { - namespaces = r.allowedNamespaces - } else { - namespaces = []string{ns} - } - - return namespaces, nil -} - -func (r *Resolver) WarmUp() { - if r.k8sCfg == nil { - return - } - - // warm up clientset in background - go func() { - if r.TestClientset != nil { - close(r.clientsetReadyCh) - return - } - - ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second) - defer cancel() - - clientset := r.K8SClientset(ctx) - clientset.Discovery().ServerVersion() - close(r.clientsetReadyCh) - }() - - // warm up dynamic client in background - go func() { - if r.TestDynamicClient != nil { - close(r.dynamicClientReadyCh) - return - } - - namespaceGVR := schema.GroupVersionResource{ - Group: "", // Core API group - Version: "v1", // API version - Resource: "namespaces", - } - - ctx, cancel := context.WithTimeout(context.Background(), 20*time.Second) - defer cancel() - - // Make a lightweight API call to list namespaces - client := r.K8SDynamicClient(ctx) - client.Resource(namespaceGVR).List(ctx, metav1.ListOptions{Limit: 1}) - close(r.dynamicClientReadyCh) - }() -} - -func NewResolver(cfg *rest.Config, grpcDispatcher *grpcdispatcher.Dispatcher, allowedNamespaces []string) (*Resolver, error) { - // init resolver - r := &Resolver{ - k8sCfg: cfg, - clientsetReadyCh: make(chan struct{}), - dynamicClientReadyCh: make(chan struct{}), - grpcDispatcher: grpcDispatcher, - allowedNamespaces: allowedNamespaces, - } - - return r, nil -} diff --git a/modules/server/graph/schema.resolvers.go b/modules/server/graph/schema.resolvers.go deleted file mode 100644 index c41127cb..00000000 --- a/modules/server/graph/schema.resolvers.go +++ /dev/null @@ -1,714 +0,0 @@ -package graph - -// This file will be automatically regenerated based on the schema, any resolver implementations -// will be copied through when generating and any unknown code will be moved to the end. -// Code generated by github.com/99designs/gqlgen version v0.17.55 - -import ( - "bufio" - "bytes" - "context" - "io" - "slices" - "strings" - "sync" - "time" - - "github.com/99designs/gqlgen/graphql/handler/transport" - "github.com/kubetail-org/kubetail/modules/common/agentpb" - "github.com/kubetail-org/kubetail/modules/server/graph/model" - zlog "github.com/rs/zerolog/log" - "github.com/vektah/gqlparser/v2/gqlerror" - "google.golang.org/grpc" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/status" - appsv1 "k8s.io/api/apps/v1" - batchv1 "k8s.io/api/batch/v1" - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime/schema" - "k8s.io/apimachinery/pkg/watch" -) - -// Object is the resolver for the object field. -func (r *appsV1DaemonSetsWatchEventResolver) Object(ctx context.Context, obj *watch.Event) (*appsv1.DaemonSet, error) { - return typeassertRuntimeObject[*appsv1.DaemonSet](obj.Object) -} - -// Object is the resolver for the object field. -func (r *appsV1DeploymentsWatchEventResolver) Object(ctx context.Context, obj *watch.Event) (*appsv1.Deployment, error) { - return typeassertRuntimeObject[*appsv1.Deployment](obj.Object) -} - -// Object is the resolver for the object field. -func (r *appsV1ReplicaSetsWatchEventResolver) Object(ctx context.Context, obj *watch.Event) (*appsv1.ReplicaSet, error) { - return typeassertRuntimeObject[*appsv1.ReplicaSet](obj.Object) -} - -// Object is the resolver for the object field. -func (r *appsV1StatefulSetsWatchEventResolver) Object(ctx context.Context, obj *watch.Event) (*appsv1.StatefulSet, error) { - return typeassertRuntimeObject[*appsv1.StatefulSet](obj.Object) -} - -// Object is the resolver for the object field. -func (r *batchV1CronJobsWatchEventResolver) Object(ctx context.Context, obj *watch.Event) (*batchv1.CronJob, error) { - return typeassertRuntimeObject[*batchv1.CronJob](obj.Object) -} - -// Object is the resolver for the object field. -func (r *batchV1JobsWatchEventResolver) Object(ctx context.Context, obj *watch.Event) (*batchv1.Job, error) { - return typeassertRuntimeObject[*batchv1.Job](obj.Object) -} - -// Object is the resolver for the object field. -func (r *coreV1NamespacesWatchEventResolver) Object(ctx context.Context, obj *watch.Event) (*corev1.Namespace, error) { - return typeassertRuntimeObject[*corev1.Namespace](obj.Object) -} - -// Object is the resolver for the object field. -func (r *coreV1NodesWatchEventResolver) Object(ctx context.Context, obj *watch.Event) (*corev1.Node, error) { - return typeassertRuntimeObject[*corev1.Node](obj.Object) -} - -// Object is the resolver for the object field. -func (r *coreV1PodsWatchEventResolver) Object(ctx context.Context, obj *watch.Event) (*corev1.Pod, error) { - return typeassertRuntimeObject[*corev1.Pod](obj.Object) -} - -// AppsV1DaemonSetsGet is the resolver for the appsV1DaemonSetsGet field. -func (r *queryResolver) AppsV1DaemonSetsGet(ctx context.Context, name string, namespace *string, options *metav1.GetOptions) (*appsv1.DaemonSet, error) { - ns, err := r.ToNamespace(namespace) - if err != nil { - return nil, err - } - return r.K8SClientset(ctx).AppsV1().DaemonSets(ns).Get(ctx, name, toGetOptions(options)) -} - -// AppsV1DaemonSetsList is the resolver for the appsV1DaemonSetsList field. -func (r *queryResolver) AppsV1DaemonSetsList(ctx context.Context, namespace *string, options *metav1.ListOptions) (*appsv1.DaemonSetList, error) { - daemonSetList := &appsv1.DaemonSetList{} - if err := listResource(r, ctx, namespace, options, daemonSetList); err != nil { - return nil, err - } - return daemonSetList, nil -} - -// AppsV1DeploymentsGet is the resolver for the appsV1DeploymentsGet field. -func (r *queryResolver) AppsV1DeploymentsGet(ctx context.Context, name string, namespace *string, options *metav1.GetOptions) (*appsv1.Deployment, error) { - ns, err := r.ToNamespace(namespace) - if err != nil { - return nil, err - } - return r.K8SClientset(ctx).AppsV1().Deployments(ns).Get(ctx, name, toGetOptions(options)) -} - -// AppsV1DeploymentsList is the resolver for the appsV1DeploymentsList field. -func (r *queryResolver) AppsV1DeploymentsList(ctx context.Context, namespace *string, options *metav1.ListOptions) (*appsv1.DeploymentList, error) { - deploymentList := &appsv1.DeploymentList{} - if err := listResource(r, ctx, namespace, options, deploymentList); err != nil { - return nil, err - } - return deploymentList, nil -} - -// AppsV1ReplicaSetsGet is the resolver for the appsV1ReplicaSetsGet field. -func (r *queryResolver) AppsV1ReplicaSetsGet(ctx context.Context, name string, namespace *string, options *metav1.GetOptions) (*appsv1.ReplicaSet, error) { - ns, err := r.ToNamespace(namespace) - if err != nil { - return nil, err - } - return r.K8SClientset(ctx).AppsV1().ReplicaSets(ns).Get(ctx, name, toGetOptions(options)) -} - -// AppsV1ReplicaSetsList is the resolver for the appsV1ReplicaSetsList field. -func (r *queryResolver) AppsV1ReplicaSetsList(ctx context.Context, namespace *string, options *metav1.ListOptions) (*appsv1.ReplicaSetList, error) { - replicaSetList := &appsv1.ReplicaSetList{} - if err := listResource(r, ctx, namespace, options, replicaSetList); err != nil { - return nil, err - } - return replicaSetList, nil -} - -// AppsV1StatefulSetsGet is the resolver for the appsV1StatefulSetsGet field. -func (r *queryResolver) AppsV1StatefulSetsGet(ctx context.Context, name string, namespace *string, options *metav1.GetOptions) (*appsv1.StatefulSet, error) { - ns, err := r.ToNamespace(namespace) - if err != nil { - return nil, err - } - return r.K8SClientset(ctx).AppsV1().StatefulSets(ns).Get(ctx, name, toGetOptions(options)) -} - -// AppsV1StatefulSetsList is the resolver for the appsV1StatefulSetsList field. -func (r *queryResolver) AppsV1StatefulSetsList(ctx context.Context, namespace *string, options *metav1.ListOptions) (*appsv1.StatefulSetList, error) { - statefulSetList := &appsv1.StatefulSetList{} - if err := listResource(r, ctx, namespace, options, statefulSetList); err != nil { - return nil, err - } - return statefulSetList, nil -} - -// BatchV1CronJobsGet is the resolver for the batchV1CronJobsGet field. -func (r *queryResolver) BatchV1CronJobsGet(ctx context.Context, name string, namespace *string, options *metav1.GetOptions) (*batchv1.CronJob, error) { - ns, err := r.ToNamespace(namespace) - if err != nil { - return nil, err - } - return r.K8SClientset(ctx).BatchV1().CronJobs(ns).Get(ctx, name, toGetOptions(options)) -} - -// BatchV1CronJobsList is the resolver for the batchV1CronJobsList field. -func (r *queryResolver) BatchV1CronJobsList(ctx context.Context, namespace *string, options *metav1.ListOptions) (*batchv1.CronJobList, error) { - cronJobList := &batchv1.CronJobList{} - if err := listResource(r, ctx, namespace, options, cronJobList); err != nil { - return nil, err - } - return cronJobList, nil -} - -// BatchV1JobsGet is the resolver for the batchV1JobsGet field. -func (r *queryResolver) BatchV1JobsGet(ctx context.Context, name string, namespace *string, options *metav1.GetOptions) (*batchv1.Job, error) { - ns, err := r.ToNamespace(namespace) - if err != nil { - return nil, err - } - return r.K8SClientset(ctx).BatchV1().Jobs(ns).Get(ctx, name, toGetOptions(options)) -} - -// BatchV1JobsList is the resolver for the batchV1JobsList field. -func (r *queryResolver) BatchV1JobsList(ctx context.Context, namespace *string, options *metav1.ListOptions) (*batchv1.JobList, error) { - jobList := &batchv1.JobList{} - if err := listResource(r, ctx, namespace, options, jobList); err != nil { - return nil, err - } - return jobList, nil -} - -// CoreV1NamespacesList is the resolver for the coreV1NamespacesList field. -func (r *queryResolver) CoreV1NamespacesList(ctx context.Context, options *metav1.ListOptions) (*corev1.NamespaceList, error) { - response, err := r.K8SClientset(ctx).CoreV1().Namespaces().List(ctx, toListOptions(options)) - if err != nil { - return response, nil - } - - // apply app namespace filter - if len(r.allowedNamespaces) > 0 { - items := []corev1.Namespace{} - for _, item := range response.Items { - if slices.Contains(r.allowedNamespaces, item.Name) { - items = append(items, item) - } - } - response.Items = items - } - - return response, err -} - -// CoreV1NodesList is the resolver for the coreV1NodesList field. -func (r *queryResolver) CoreV1NodesList(ctx context.Context, options *metav1.ListOptions) (*corev1.NodeList, error) { - return r.K8SClientset(ctx).CoreV1().Nodes().List(ctx, toListOptions(options)) -} - -// CoreV1PodsGet is the resolver for the coreV1PodsGet field. -func (r *queryResolver) CoreV1PodsGet(ctx context.Context, namespace *string, name string, options *metav1.GetOptions) (*corev1.Pod, error) { - ns, err := r.ToNamespace(namespace) - if err != nil { - return nil, err - } - return r.K8SClientset(ctx).CoreV1().Pods(ns).Get(ctx, name, toGetOptions(options)) -} - -// CoreV1PodsList is the resolver for the coreV1PodsList field. -func (r *queryResolver) CoreV1PodsList(ctx context.Context, namespace *string, options *metav1.ListOptions) (*corev1.PodList, error) { - podList := &corev1.PodList{} - if err := listResource(r, ctx, namespace, options, podList); err != nil { - return nil, err - } - return podList, nil -} - -// CoreV1PodsGetLogs is the resolver for the coreV1PodsGetLogs field. -func (r *queryResolver) CoreV1PodsGetLogs(ctx context.Context, namespace *string, name string, options *corev1.PodLogOptions) ([]model.LogRecord, error) { - // init namespace - ns, err := r.ToNamespace(namespace) - if err != nil { - return nil, err - } - - // init options - opts := toPodLogOptions(options) - opts.Follow = false - opts.Timestamps = true - - // execute query - req := r.K8SClientset(ctx).CoreV1().Pods(ns).GetLogs(name, &opts) - podLogs, err := req.Stream(ctx) - if err != nil { - return nil, err - } - defer podLogs.Close() - - buf := new(bytes.Buffer) - _, err = io.Copy(buf, podLogs) - if err != nil { - return nil, err - } - - logLines := strings.Split(strings.Trim(buf.String(), "\n"), "\n") - out := []model.LogRecord{} - for _, line := range logLines { - if len(line) != 0 { - if record, err := newLogRecordFromLogLine(line); err == nil { - out = append(out, record) - } - } - } - - return out, nil -} - -// LogMetadataList is the resolver for the logMetadataList field. -func (r *queryResolver) LogMetadataList(ctx context.Context, namespace *string) (*agentpb.LogMetadataList, error) { - // init namespaces - namespaces, err := r.ToNamespaces(namespace) - if err != nil { - return nil, err - } - - // init response - outList := &agentpb.LogMetadataList{} - - // init request - req := &agentpb.LogMetadataListRequest{Namespaces: namespaces} - - // execute fanout query - var mu sync.Mutex - errs := gqlerror.List{} - - r.grpcDispatcher.Fanout(ctx, func(ctx context.Context, conn *grpc.ClientConn) { - // init client - c := agentpb.NewLogMetadataServiceClient(conn) - - // execute - resp, err := c.List(ctx, req) - - // aquire lock - mu.Lock() - defer mu.Unlock() - - // update vars - if err != nil { - errs = append(errs, NewGrpcError(conn, err)) - } else { - // update items - outList.Items = append(outList.Items, resp.GetItems()...) - } - }) - - // throw error if response is missing - if len(errs) != 0 { - return nil, errs - } - - return outList, nil -} - -// PodLogHead is the resolver for the podLogHead field. -func (r *queryResolver) PodLogHead(ctx context.Context, namespace *string, name string, container *string, after *string, since *string, first *int) (*model.PodLogQueryResponse, error) { - // init namespace - ns, err := r.ToNamespace(namespace) - if err != nil { - return nil, err - } - - // build query args - args := HeadArgs{} - - if after != nil { - args.After = *after - } - - if since != nil { - args.Since = *since - } - - if first != nil { - args.First = uint(*first) - } - - return headPodLog(ctx, r.K8SClientset(ctx), ns, name, container, args) -} - -// PodLogTail is the resolver for the podLogTail field. -func (r *queryResolver) PodLogTail(ctx context.Context, namespace *string, name string, container *string, before *string, last *int) (*model.PodLogQueryResponse, error) { - // init namespace - ns, err := r.ToNamespace(namespace) - if err != nil { - return nil, err - } - - // build query args - args := TailArgs{} - - if before != nil { - args.Before = *before - } - - if last != nil { - args.Last = uint(*last) - } - - return tailPodLog(ctx, r.K8SClientset(ctx), ns, name, container, args) -} - -// LivezGet is the resolver for the livezGet field. -func (r *queryResolver) LivezGet(ctx context.Context) (model.HealthCheckResponse, error) { - return getHealth(ctx, r.K8SClientset(ctx), "livez"), nil -} - -// ReadyzGet is the resolver for the readyzGet field. -func (r *queryResolver) ReadyzGet(ctx context.Context) (model.HealthCheckResponse, error) { - return getHealth(ctx, r.K8SClientset(ctx), "readyz"), nil -} - -// ReadyWait is the resolver for the readyWait field. -func (r *queryResolver) ReadyWait(ctx context.Context, timeout *int) (bool, error) { - t := 20 * time.Second - if timeout != nil { - t = time.Duration(*timeout) * time.Second - } - - ctx, cancel := context.WithTimeout(ctx, t) - defer cancel() - - done := make(chan struct{}) - - go func() { - defer close(done) - - select { - case <-r.clientsetReadyCh: - // continue - case <-ctx.Done(): - return - } - - select { - case <-r.dynamicClientReadyCh: - // continue - case <-ctx.Done(): - return - } - }() - - select { - case <-done: - return true, nil - case <-ctx.Done(): - return false, nil - } -} - -// AppsV1DaemonSetsWatch is the resolver for the appsV1DaemonSetsWatch field. -func (r *subscriptionResolver) AppsV1DaemonSetsWatch(ctx context.Context, namespace *string, options *metav1.ListOptions) (<-chan *watch.Event, error) { - gvr := schema.GroupVersionResource{Group: "apps", Version: "v1", Resource: "daemonsets"} - return watchResourceMulti(r, ctx, gvr, namespace, options) -} - -// AppsV1DeploymentsWatch is the resolver for the appsV1DeploymentsWatch field. -func (r *subscriptionResolver) AppsV1DeploymentsWatch(ctx context.Context, namespace *string, options *metav1.ListOptions) (<-chan *watch.Event, error) { - gvr := schema.GroupVersionResource{Group: "apps", Version: "v1", Resource: "deployments"} - return watchResourceMulti(r, ctx, gvr, namespace, options) -} - -// AppsV1ReplicaSetsWatch is the resolver for the appsV1ReplicaSetsWatch field. -func (r *subscriptionResolver) AppsV1ReplicaSetsWatch(ctx context.Context, namespace *string, options *metav1.ListOptions) (<-chan *watch.Event, error) { - gvr := schema.GroupVersionResource{Group: "apps", Version: "v1", Resource: "replicasets"} - return watchResourceMulti(r, ctx, gvr, namespace, options) -} - -// AppsV1StatefulSetsWatch is the resolver for the appsV1StatefulSetsWatch field. -func (r *subscriptionResolver) AppsV1StatefulSetsWatch(ctx context.Context, namespace *string, options *metav1.ListOptions) (<-chan *watch.Event, error) { - gvr := schema.GroupVersionResource{Group: "apps", Version: "v1", Resource: "statefulsets"} - return watchResourceMulti(r, ctx, gvr, namespace, options) -} - -// BatchV1CronJobsWatch is the resolver for the batchV1CronJobsWatch field. -func (r *subscriptionResolver) BatchV1CronJobsWatch(ctx context.Context, namespace *string, options *metav1.ListOptions) (<-chan *watch.Event, error) { - gvr := schema.GroupVersionResource{Group: "batch", Version: "v1", Resource: "cronjobs"} - return watchResourceMulti(r, ctx, gvr, namespace, options) -} - -// BatchV1JobsWatch is the resolver for the batchV1JobsWatch field. -func (r *subscriptionResolver) BatchV1JobsWatch(ctx context.Context, namespace *string, options *metav1.ListOptions) (<-chan *watch.Event, error) { - gvr := schema.GroupVersionResource{Group: "batch", Version: "v1", Resource: "jobs"} - return watchResourceMulti(r, ctx, gvr, namespace, options) -} - -// CoreV1NamespacesWatch is the resolver for the coreV1NamespacesWatch field. -func (r *subscriptionResolver) CoreV1NamespacesWatch(ctx context.Context, options *metav1.ListOptions) (<-chan *watch.Event, error) { - watchAPI, err := r.K8SClientset(ctx).CoreV1().Namespaces().Watch(ctx, toListOptions(options)) - if err != nil { - return nil, err - } - - outCh := make(chan *watch.Event) - go func() { - for ev := range watchEventProxyChannel(ctx, watchAPI) { - ns, err := typeassertRuntimeObject[*corev1.Namespace](ev.Object) - if err != nil { - transport.AddSubscriptionError(ctx, ErrInternalServerError) - break - } - - // filter out non-authorized namespaces - if len(r.allowedNamespaces) == 0 || (len(r.allowedNamespaces) > 0 && slices.Contains(r.allowedNamespaces, ns.Name)) { - outCh <- ev - } - } - close(outCh) - }() - - return outCh, nil -} - -// CoreV1NodesWatch is the resolver for the coreV1NodesWatch field. -func (r *subscriptionResolver) CoreV1NodesWatch(ctx context.Context, options *metav1.ListOptions) (<-chan *watch.Event, error) { - watchAPI, err := r.K8SClientset(ctx).CoreV1().Nodes().Watch(ctx, toListOptions(options)) - if err != nil { - return nil, err - } - return watchEventProxyChannel(ctx, watchAPI), nil -} - -// CoreV1PodsWatch is the resolver for the coreV1PodsWatch field. -func (r *subscriptionResolver) CoreV1PodsWatch(ctx context.Context, namespace *string, options *metav1.ListOptions) (<-chan *watch.Event, error) { - gvr := schema.GroupVersionResource{Group: "", Version: "v1", Resource: "pods"} - return watchResourceMulti(r, ctx, gvr, namespace, options) -} - -// CoreV1PodLogTail is the resolver for the coreV1PodLogTail field. -func (r *subscriptionResolver) CoreV1PodLogTail(ctx context.Context, namespace *string, name string, options *corev1.PodLogOptions) (<-chan *model.LogRecord, error) { - // init namespace - ns, err := r.ToNamespace(namespace) - if err != nil { - return nil, err - } - - // init options - opts := toPodLogOptions(options) - opts.Follow = true - opts.Timestamps = true - - // execute query - req := r.K8SClientset(ctx).CoreV1().Pods(ns).GetLogs(name, &opts) - podLogs, err := req.Stream(ctx) - if err != nil { - return nil, err - } - - outCh := make(chan *model.LogRecord) - - go func() { - defer podLogs.Close() - - scanner := bufio.NewScanner(podLogs) - for scanner.Scan() { - if logRecord, err := newLogRecordFromLogLine(scanner.Text()); err == nil { - outCh <- &logRecord - } - } - close(outCh) - }() - - return outCh, nil -} - -// LogMetadataWatch is the resolver for the logMetadataWatch field. -func (r *subscriptionResolver) LogMetadataWatch(ctx context.Context, namespace *string) (<-chan *agentpb.LogMetadataWatchEvent, error) { - // init namespaces - namespaces, err := r.ToNamespaces(namespace) - if err != nil { - return nil, err - } - - outCh := make(chan *agentpb.LogMetadataWatchEvent) - - sub, err := r.grpcDispatcher.FanoutSubscribe(ctx, func(ctx context.Context, conn *grpc.ClientConn) { - // init client - c := agentpb.NewLogMetadataServiceClient(conn) - - // init request - req := &agentpb.LogMetadataWatchRequest{Namespaces: namespaces} - - // execute - stream, err := c.Watch(ctx, req) - if err != nil { - return - } - - for { - ev, err := stream.Recv() - - // handle errors - if err != nil { - // ignore normal errors - if err == io.EOF { - break - } else if err == context.Canceled { - break - } - - // check for grpc status error - if s, ok := status.FromError(err); ok { - switch s.Code() { - case codes.Unavailable: - // server down (probably restarting) - case codes.Canceled: - // connection closed client-side - default: - zlog.Error().Caller().Err(err).Msgf("Unexpected gRPC error: %v\n", s.Message()) - } - break - } - - zlog.Error().Caller().Err(err).Msg("Unexpected error") - - break - } - - // forward event - outCh <- ev - } - }) - if err != nil { - return nil, err - } - - // unsubscribe when client disconnects - go func() { - <-ctx.Done() - sub.Unsubscribe() - }() - - return outCh, nil -} - -// PodLogFollow is the resolver for the podLogFollow field. -func (r *subscriptionResolver) PodLogFollow(ctx context.Context, namespace *string, name string, container *string, after *string, since *string) (<-chan *model.LogRecord, error) { - // init namespace - ns, err := r.ToNamespace(namespace) - if err != nil { - return nil, err - } - - // build follow args - args := FollowArgs{} - - if after != nil { - args.After = *after - } - - if since != nil { - args.Since = *since - } - - // init follow - inCh, err := followPodLog(ctx, r.K8SClientset(ctx), ns, name, container, args) - if err != nil { - return nil, err - } - - // init output channel - outCh := make(chan *model.LogRecord) - - // forward data from input to output channel - go func() { - Loop: - for record := range inCh { - select { - case outCh <- &record: - // wrote to output channel - case <-ctx.Done(): - // listener closed connection - break Loop - } - } - close(outCh) - }() - - return outCh, nil -} - -// LivezWatch is the resolver for the livezWatch field. -func (r *subscriptionResolver) LivezWatch(ctx context.Context) (<-chan model.HealthCheckResponse, error) { - return watchHealthChannel(ctx, r.K8SClientset(ctx), "livez"), nil -} - -// ReadyzWatch is the resolver for the readyzWatch field. -func (r *subscriptionResolver) ReadyzWatch(ctx context.Context) (<-chan model.HealthCheckResponse, error) { - return watchHealthChannel(ctx, r.K8SClientset(ctx), "readyz"), nil -} - -// AppsV1DaemonSetsWatchEvent returns AppsV1DaemonSetsWatchEventResolver implementation. -func (r *Resolver) AppsV1DaemonSetsWatchEvent() AppsV1DaemonSetsWatchEventResolver { - return &appsV1DaemonSetsWatchEventResolver{r} -} - -// AppsV1DeploymentsWatchEvent returns AppsV1DeploymentsWatchEventResolver implementation. -func (r *Resolver) AppsV1DeploymentsWatchEvent() AppsV1DeploymentsWatchEventResolver { - return &appsV1DeploymentsWatchEventResolver{r} -} - -// AppsV1ReplicaSetsWatchEvent returns AppsV1ReplicaSetsWatchEventResolver implementation. -func (r *Resolver) AppsV1ReplicaSetsWatchEvent() AppsV1ReplicaSetsWatchEventResolver { - return &appsV1ReplicaSetsWatchEventResolver{r} -} - -// AppsV1StatefulSetsWatchEvent returns AppsV1StatefulSetsWatchEventResolver implementation. -func (r *Resolver) AppsV1StatefulSetsWatchEvent() AppsV1StatefulSetsWatchEventResolver { - return &appsV1StatefulSetsWatchEventResolver{r} -} - -// BatchV1CronJobsWatchEvent returns BatchV1CronJobsWatchEventResolver implementation. -func (r *Resolver) BatchV1CronJobsWatchEvent() BatchV1CronJobsWatchEventResolver { - return &batchV1CronJobsWatchEventResolver{r} -} - -// BatchV1JobsWatchEvent returns BatchV1JobsWatchEventResolver implementation. -func (r *Resolver) BatchV1JobsWatchEvent() BatchV1JobsWatchEventResolver { - return &batchV1JobsWatchEventResolver{r} -} - -// CoreV1NamespacesWatchEvent returns CoreV1NamespacesWatchEventResolver implementation. -func (r *Resolver) CoreV1NamespacesWatchEvent() CoreV1NamespacesWatchEventResolver { - return &coreV1NamespacesWatchEventResolver{r} -} - -// CoreV1NodesWatchEvent returns CoreV1NodesWatchEventResolver implementation. -func (r *Resolver) CoreV1NodesWatchEvent() CoreV1NodesWatchEventResolver { - return &coreV1NodesWatchEventResolver{r} -} - -// CoreV1PodsWatchEvent returns CoreV1PodsWatchEventResolver implementation. -func (r *Resolver) CoreV1PodsWatchEvent() CoreV1PodsWatchEventResolver { - return &coreV1PodsWatchEventResolver{r} -} - -// Query returns QueryResolver implementation. -func (r *Resolver) Query() QueryResolver { return &queryResolver{r} } - -// Subscription returns SubscriptionResolver implementation. -func (r *Resolver) Subscription() SubscriptionResolver { return &subscriptionResolver{r} } - -type appsV1DaemonSetsWatchEventResolver struct{ *Resolver } -type appsV1DeploymentsWatchEventResolver struct{ *Resolver } -type appsV1ReplicaSetsWatchEventResolver struct{ *Resolver } -type appsV1StatefulSetsWatchEventResolver struct{ *Resolver } -type batchV1CronJobsWatchEventResolver struct{ *Resolver } -type batchV1JobsWatchEventResolver struct{ *Resolver } -type coreV1NamespacesWatchEventResolver struct{ *Resolver } -type coreV1NodesWatchEventResolver struct{ *Resolver } -type coreV1PodsWatchEventResolver struct{ *Resolver } -type queryResolver struct{ *Resolver } -type subscriptionResolver struct{ *Resolver } diff --git a/modules/server/graph/schema.resolvers_test.go b/modules/server/graph/schema.resolvers_test.go deleted file mode 100644 index f11e1c89..00000000 --- a/modules/server/graph/schema.resolvers_test.go +++ /dev/null @@ -1,135 +0,0 @@ -// Copyright 2024 Andres Morey -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package graph - -import ( - "context" - "testing" - - "github.com/stretchr/testify/assert" - appsv1 "k8s.io/api/apps/v1" - batchv1 "k8s.io/api/batch/v1" - corev1 "k8s.io/api/core/v1" - "k8s.io/apimachinery/pkg/runtime" - dynamicFake "k8s.io/client-go/dynamic/fake" - "k8s.io/client-go/kubernetes/fake" - "k8s.io/utils/ptr" -) - -func TestAllowedNamespacesGetQueries(t *testing.T) { - // init resolver - r := queryResolver{&Resolver{ - allowedNamespaces: []string{"ns1", "ns2"}, - TestClientset: fake.NewSimpleClientset(), - }} - - // table-driven tests - tests := []struct { - name string - setNamespace *string - }{ - {"namespace not specified", nil}, - {"namespace specified but not allowed", ptr.To[string]("nsforbidden")}, - {"namespace specified as wildcard", ptr.To[string]("")}, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - _, err := r.AppsV1DaemonSetsGet(context.Background(), "", tt.setNamespace, nil) - assert.NotNil(t, err) - assert.Equal(t, err, ErrForbidden) - - _, err = r.AppsV1DeploymentsGet(context.Background(), "", tt.setNamespace, nil) - assert.NotNil(t, err) - assert.Equal(t, err, ErrForbidden) - - _, err = r.AppsV1ReplicaSetsGet(context.Background(), "", tt.setNamespace, nil) - assert.NotNil(t, err) - assert.Equal(t, err, ErrForbidden) - - _, err = r.AppsV1StatefulSetsGet(context.Background(), "", tt.setNamespace, nil) - assert.NotNil(t, err) - assert.Equal(t, err, ErrForbidden) - - _, err = r.BatchV1CronJobsGet(context.Background(), "", tt.setNamespace, nil) - assert.NotNil(t, err) - assert.Equal(t, err, ErrForbidden) - - _, err = r.BatchV1JobsGet(context.Background(), "", tt.setNamespace, nil) - assert.NotNil(t, err) - assert.Equal(t, err, ErrForbidden) - - _, err = r.CoreV1PodsGet(context.Background(), tt.setNamespace, "", nil) - assert.NotNil(t, err) - assert.Equal(t, err, ErrForbidden) - }) - } -} - -func TestAllowedNamespacesListQueries(t *testing.T) { - // init dynamic client - scheme := runtime.NewScheme() - appsv1.AddToScheme(scheme) - batchv1.AddToScheme(scheme) - corev1.AddToScheme(scheme) - dynamicClient := dynamicFake.NewSimpleDynamicClient(scheme) - - // init resolver - r := queryResolver{&Resolver{ - allowedNamespaces: []string{"ns1", "ns2"}, - TestDynamicClient: dynamicClient, - }} - - // table-driven tests - tests := []struct { - name string - setNamespace *string - }{ - {"namespace not specified", nil}, - {"namespace specified but not allowed", ptr.To[string]("nsforbidden")}, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - _, err := r.AppsV1DaemonSetsList(context.Background(), tt.setNamespace, nil) - assert.NotNil(t, err) - assert.Equal(t, err, ErrForbidden) - - _, err = r.AppsV1DeploymentsList(context.Background(), tt.setNamespace, nil) - assert.NotNil(t, err) - assert.Equal(t, err, ErrForbidden) - - _, err = r.AppsV1ReplicaSetsList(context.Background(), tt.setNamespace, nil) - assert.NotNil(t, err) - assert.Equal(t, err, ErrForbidden) - - _, err = r.AppsV1StatefulSetsList(context.Background(), tt.setNamespace, nil) - assert.NotNil(t, err) - assert.Equal(t, err, ErrForbidden) - - _, err = r.BatchV1CronJobsList(context.Background(), tt.setNamespace, nil) - assert.NotNil(t, err) - assert.Equal(t, err, ErrForbidden) - - _, err = r.BatchV1JobsList(context.Background(), tt.setNamespace, nil) - assert.NotNil(t, err) - assert.Equal(t, err, ErrForbidden) - - _, err = r.CoreV1PodsList(context.Background(), tt.setNamespace, nil) - assert.NotNil(t, err) - assert.Equal(t, err, ErrForbidden) - }) - } -} diff --git a/modules/server/graph_test/query_resolver_test.go b/modules/server/graph_test/query_resolver_test.go deleted file mode 100644 index e09913ae..00000000 --- a/modules/server/graph_test/query_resolver_test.go +++ /dev/null @@ -1,832 +0,0 @@ -// Copyright 2024 Andres Morey -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package graph_test - -import ( - "context" - "testing" - "time" - - "github.com/stretchr/testify/suite" - appsv1 "k8s.io/api/apps/v1" - batchv1 "k8s.io/api/batch/v1" - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -type QueryResolverTestSuite struct { - GraphTestSuite -} - -func (suite *QueryResolverTestSuite) TestAppsV1DaemonSetsGet() { - // build query - query := ` - { - appsV1DaemonSetsGet(namespace: "ns", name: "x") { - metadata { - name - } - } - } - ` - - // check not-found - { - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - suite.Equal(1, len(resp.Errors)) - suite.Equal("daemonsets.apps \"x\" not found", resp.Errors[0].Message) - } - - // add data - obj := appsv1.DaemonSet{ObjectMeta: metav1.ObjectMeta{Name: "x"}} - suite.resolver.TestClientset.AppsV1().DaemonSets("ns").Create(context.Background(), &obj, metav1.CreateOptions{}) - - // check found - { - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - suite.Equal(0, len(resp.Errors)) - - data := struct { - AppsV1DaemonSetsGet struct { - Metadata struct { - Name string - } - } - }{} - suite.MustUnpack(resp.Data, &data) - suite.Equal("x", data.AppsV1DaemonSetsGet.Metadata.Name) - } -} - -func (suite *QueryResolverTestSuite) TestAppsV1DaemonSetsList() { - // build query - query := ` - { - appsV1DaemonSetsList(namespace: "ns") { - items { - metadata { - name - } - } - } - } - ` - - type Data struct { - AppsV1DaemonSetsList struct { - Items []struct { - Metadata struct { - Name string - } - } - } - } - - // check empty - { - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - suite.Equal(0, len(resp.Errors)) - - var data Data - suite.MustUnpack(resp.Data, &data) - suite.Equal(0, len(data.AppsV1DaemonSetsList.Items)) - } - - // add data - suite.PopulateDynamicClient( - "ns", - &appsv1.DaemonSet{ObjectMeta: metav1.ObjectMeta{Name: "x1"}}, - &appsv1.DaemonSet{ObjectMeta: metav1.ObjectMeta{Name: "x2"}}, - ) - - // check not empty - { - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - suite.Equal(0, len(resp.Errors)) - - var data Data - suite.MustUnpack(resp.Data, &data) - suite.Equal(2, len(data.AppsV1DaemonSetsList.Items)) - suite.Equal("x1", data.AppsV1DaemonSetsList.Items[0].Metadata.Name) - suite.Equal("x2", data.AppsV1DaemonSetsList.Items[1].Metadata.Name) - } -} - -func (suite *QueryResolverTestSuite) TestAppsV1DeploymentsGet() { - // build query - query := ` - { - appsV1DeploymentsGet(namespace: "ns", name: "x") { - metadata { - name - } - } - } - ` - - // check not-found - { - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - suite.Equal(1, len(resp.Errors)) - suite.Equal("deployments.apps \"x\" not found", resp.Errors[0].Message) - } - - // add data - obj := appsv1.Deployment{ObjectMeta: metav1.ObjectMeta{Name: "x"}} - suite.resolver.TestClientset.AppsV1().Deployments("ns").Create(context.Background(), &obj, metav1.CreateOptions{}) - - // check found - { - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - suite.Equal(0, len(resp.Errors)) - - data := struct { - AppsV1DeploymentsGet struct { - Metadata struct { - Name string - } - } - }{} - suite.MustUnpack(resp.Data, &data) - suite.Equal("x", data.AppsV1DeploymentsGet.Metadata.Name) - } -} - -func (suite *QueryResolverTestSuite) TestAppsV1DeploymentsList() { - // build query - query := ` - { - appsV1DeploymentsList(namespace: "ns") { - items { - metadata { - name - } - } - } - } - ` - - type Data struct { - AppsV1DeploymentsList struct { - Items []struct { - Metadata struct { - Name string - } - } - } - } - - // check empty - { - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - suite.Equal(0, len(resp.Errors)) - - var data Data - suite.MustUnpack(resp.Data, &data) - suite.Equal(0, len(data.AppsV1DeploymentsList.Items)) - } - - // add data - suite.PopulateDynamicClient( - "ns", - &appsv1.Deployment{ObjectMeta: metav1.ObjectMeta{Name: "x1"}}, - &appsv1.Deployment{ObjectMeta: metav1.ObjectMeta{Name: "x2"}}, - ) - - // check not empty - { - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - suite.Equal(0, len(resp.Errors)) - - var data Data - suite.MustUnpack(resp.Data, &data) - suite.Equal(2, len(data.AppsV1DeploymentsList.Items)) - suite.Equal("x1", data.AppsV1DeploymentsList.Items[0].Metadata.Name) - suite.Equal("x2", data.AppsV1DeploymentsList.Items[1].Metadata.Name) - } -} - -func (suite *QueryResolverTestSuite) TestAppsV1ReplicaSetsGet() { - // build query - query := ` - { - appsV1ReplicaSetsGet(namespace: "ns", name: "x") { - metadata { - name - } - } - } - ` - - // check not-found - { - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - suite.Equal(1, len(resp.Errors)) - suite.Equal("replicasets.apps \"x\" not found", resp.Errors[0].Message) - } - - // add data - obj := appsv1.ReplicaSet{ObjectMeta: metav1.ObjectMeta{Name: "x"}} - suite.resolver.TestClientset.AppsV1().ReplicaSets("ns").Create(context.Background(), &obj, metav1.CreateOptions{}) - - // check found - { - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - suite.Equal(0, len(resp.Errors)) - - data := struct { - AppsV1ReplicaSetsGet struct { - Metadata struct { - Name string - } - } - }{} - suite.MustUnpack(resp.Data, &data) - suite.Equal("x", data.AppsV1ReplicaSetsGet.Metadata.Name) - } -} - -func (suite *QueryResolverTestSuite) TestAppsV1ReplicaSetsList() { - // build query - query := ` - { - appsV1ReplicaSetsList(namespace: "ns") { - items { - metadata { - name - } - } - } - } - ` - - type Data struct { - AppsV1ReplicaSetsList struct { - Items []struct { - Metadata struct { - Name string - } - } - } - } - - // check empty - { - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - suite.Equal(0, len(resp.Errors)) - - var data Data - suite.MustUnpack(resp.Data, &data) - suite.Equal(0, len(data.AppsV1ReplicaSetsList.Items)) - } - - // add data - suite.PopulateDynamicClient( - "ns", - &appsv1.ReplicaSet{ObjectMeta: metav1.ObjectMeta{Name: "x1"}}, - &appsv1.ReplicaSet{ObjectMeta: metav1.ObjectMeta{Name: "x2"}}, - ) - - // check not empty - { - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - suite.Equal(0, len(resp.Errors)) - - var data Data - suite.MustUnpack(resp.Data, &data) - suite.Equal(2, len(data.AppsV1ReplicaSetsList.Items)) - suite.Equal("x1", data.AppsV1ReplicaSetsList.Items[0].Metadata.Name) - suite.Equal("x2", data.AppsV1ReplicaSetsList.Items[1].Metadata.Name) - } -} - -func (suite *QueryResolverTestSuite) TestAppsV1StatefulSetsGet() { - // build query - query := ` - { - appsV1StatefulSetsGet(namespace: "ns", name: "x") { - metadata { - name - } - } - } - ` - - // check not-found - { - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - suite.Equal(1, len(resp.Errors)) - suite.Equal("statefulsets.apps \"x\" not found", resp.Errors[0].Message) - } - - // add data - obj := appsv1.StatefulSet{ObjectMeta: metav1.ObjectMeta{Name: "x"}} - suite.resolver.TestClientset.AppsV1().StatefulSets("ns").Create(context.Background(), &obj, metav1.CreateOptions{}) - - // check found - { - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - suite.Equal(0, len(resp.Errors)) - - data := struct { - AppsV1StatefulSetsGet struct { - Metadata struct { - Name string - } - } - }{} - suite.MustUnpack(resp.Data, &data) - suite.Equal("x", data.AppsV1StatefulSetsGet.Metadata.Name) - } -} - -func (suite *QueryResolverTestSuite) TestAppsV1StatefulSetsList() { - // build query - query := ` - { - appsV1StatefulSetsList(namespace: "ns") { - items { - metadata { - name - } - } - } - } - ` - - type Data struct { - AppsV1StatefulSetsList struct { - Items []struct { - Metadata struct { - Name string - } - } - } - } - - // check empty - { - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - suite.Equal(0, len(resp.Errors)) - - var data Data - suite.MustUnpack(resp.Data, &data) - suite.Equal(0, len(data.AppsV1StatefulSetsList.Items)) - } - - // add data - suite.PopulateDynamicClient( - "ns", - &appsv1.StatefulSet{ObjectMeta: metav1.ObjectMeta{Name: "x1"}}, - &appsv1.StatefulSet{ObjectMeta: metav1.ObjectMeta{Name: "x2"}}, - ) - - // check not empty - { - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - suite.Equal(0, len(resp.Errors)) - - var data Data - suite.MustUnpack(resp.Data, &data) - suite.Equal(2, len(data.AppsV1StatefulSetsList.Items)) - suite.Equal("x1", data.AppsV1StatefulSetsList.Items[0].Metadata.Name) - suite.Equal("x2", data.AppsV1StatefulSetsList.Items[1].Metadata.Name) - } -} - -func (suite *QueryResolverTestSuite) TestBatchV1CronJobsGet() { - // build query - query := ` - { - batchV1CronJobsGet(namespace: "ns", name: "x") { - metadata { - name - } - } - } - ` - - // check not-found - { - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - suite.Equal(1, len(resp.Errors)) - suite.Equal("cronjobs.batch \"x\" not found", resp.Errors[0].Message) - } - - // add data - obj := batchv1.CronJob{ObjectMeta: metav1.ObjectMeta{Name: "x"}} - suite.resolver.TestClientset.BatchV1().CronJobs("ns").Create(context.Background(), &obj, metav1.CreateOptions{}) - - // check found - { - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - suite.Equal(0, len(resp.Errors)) - - data := struct { - BatchV1CronJobsGet struct { - Metadata struct { - Name string - } - } - }{} - suite.MustUnpack(resp.Data, &data) - suite.Equal("x", data.BatchV1CronJobsGet.Metadata.Name) - } -} - -func (suite *QueryResolverTestSuite) TestBatchV1CronJobsList() { - // build query - query := ` - { - batchV1CronJobsList(namespace: "ns") { - items { - metadata { - name - } - } - } - } - ` - - type Data struct { - BatchV1CronJobsList struct { - Items []struct { - Metadata struct { - Name string - } - } - } - } - - // check empty - { - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - suite.Equal(0, len(resp.Errors)) - - var data Data - suite.MustUnpack(resp.Data, &data) - suite.Equal(0, len(data.BatchV1CronJobsList.Items)) - } - - // add data - suite.PopulateDynamicClient( - "ns", - &batchv1.CronJob{ObjectMeta: metav1.ObjectMeta{Name: "x1"}}, - &batchv1.CronJob{ObjectMeta: metav1.ObjectMeta{Name: "x2"}}, - ) - - // check not empty - { - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - suite.Equal(0, len(resp.Errors)) - - var data Data - suite.MustUnpack(resp.Data, &data) - suite.Equal(2, len(data.BatchV1CronJobsList.Items)) - suite.Equal("x1", data.BatchV1CronJobsList.Items[0].Metadata.Name) - suite.Equal("x2", data.BatchV1CronJobsList.Items[1].Metadata.Name) - } -} - -func (suite *QueryResolverTestSuite) TestBatchV1JobsGet() { - // build query - query := ` - { - batchV1JobsGet(namespace: "ns", name: "x") { - metadata { - name - } - } - } - ` - - // check not-found - { - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - suite.Equal(1, len(resp.Errors)) - suite.Equal("jobs.batch \"x\" not found", resp.Errors[0].Message) - } - - // add data - obj := batchv1.Job{ObjectMeta: metav1.ObjectMeta{Name: "x"}} - suite.resolver.TestClientset.BatchV1().Jobs("ns").Create(context.Background(), &obj, metav1.CreateOptions{}) - - // check found - { - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - suite.Equal(0, len(resp.Errors)) - - data := struct { - BatchV1JobsGet struct { - Metadata struct { - Name string - } - } - }{} - suite.MustUnpack(resp.Data, &data) - suite.Equal("x", data.BatchV1JobsGet.Metadata.Name) - } -} - -func (suite *QueryResolverTestSuite) TestBatchV1JobsList() { - // build query - query := ` - { - batchV1JobsList(namespace: "ns") { - items { - metadata { - name - } - } - } - } - ` - - type Data struct { - BatchV1JobsList struct { - Items []struct { - Metadata struct { - Name string - } - } - } - } - - // check empty - { - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - suite.Equal(0, len(resp.Errors)) - - var data Data - suite.MustUnpack(resp.Data, &data) - suite.Equal(0, len(data.BatchV1JobsList.Items)) - } - - // add data - suite.PopulateDynamicClient( - "ns", - &batchv1.Job{ObjectMeta: metav1.ObjectMeta{Name: "x1"}}, - &batchv1.Job{ObjectMeta: metav1.ObjectMeta{Name: "x2"}}, - ) - - // check not empty - { - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - suite.Equal(0, len(resp.Errors)) - - var data Data - suite.MustUnpack(resp.Data, &data) - suite.Equal(2, len(data.BatchV1JobsList.Items)) - suite.Equal("x1", data.BatchV1JobsList.Items[0].Metadata.Name) - suite.Equal("x2", data.BatchV1JobsList.Items[1].Metadata.Name) - } -} - -func (suite *QueryResolverTestSuite) TestCoreV1NamespacesList() { - // build query - query := ` - { - coreV1NamespacesList { - items { - metadata { - name - } - } - } - } - ` - - type Data struct { - CoreV1NamespacesList struct { - Items []struct { - Metadata struct { - Name string - } - } - } - } - - // check empty - { - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - suite.Equal(0, len(resp.Errors)) - - var data Data - suite.MustUnpack(resp.Data, &data) - suite.Equal(0, len(data.CoreV1NamespacesList.Items)) - } - - // add data - obj1 := corev1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: "x1"}} - suite.resolver.TestClientset.CoreV1().Namespaces().Create(context.Background(), &obj1, metav1.CreateOptions{}) - - obj2 := corev1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: "x2"}} - suite.resolver.TestClientset.CoreV1().Namespaces().Create(context.Background(), &obj2, metav1.CreateOptions{}) - - // check not empty - { - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - suite.Equal(0, len(resp.Errors)) - - var data Data - suite.MustUnpack(resp.Data, &data) - suite.Equal(2, len(data.CoreV1NamespacesList.Items)) - suite.Equal("x1", data.CoreV1NamespacesList.Items[0].Metadata.Name) - suite.Equal("x2", data.CoreV1NamespacesList.Items[1].Metadata.Name) - } -} - -func (suite *QueryResolverTestSuite) TestCoreV1NodesList() { - // build query - query := ` - { - coreV1NodesList { - items { - metadata { - name - } - } - } - } - ` - - type Data struct { - CoreV1NodesList struct { - Items []struct { - Metadata struct { - Name string - } - } - } - } - - // check empty - { - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - suite.Equal(0, len(resp.Errors)) - - var data Data - suite.MustUnpack(resp.Data, &data) - suite.Equal(0, len(data.CoreV1NodesList.Items)) - } - - // add data - obj1 := corev1.Node{ObjectMeta: metav1.ObjectMeta{Name: "x1"}} - suite.resolver.TestClientset.CoreV1().Nodes().Create(context.Background(), &obj1, metav1.CreateOptions{}) - - obj2 := corev1.Node{ObjectMeta: metav1.ObjectMeta{Name: "x2"}} - suite.resolver.TestClientset.CoreV1().Nodes().Create(context.Background(), &obj2, metav1.CreateOptions{}) - - // check not empty - { - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - suite.Equal(0, len(resp.Errors)) - - var data Data - suite.MustUnpack(resp.Data, &data) - suite.Equal(2, len(data.CoreV1NodesList.Items)) - suite.Equal("x1", data.CoreV1NodesList.Items[0].Metadata.Name) - suite.Equal("x2", data.CoreV1NodesList.Items[1].Metadata.Name) - } -} - -func (suite *QueryResolverTestSuite) TestCoreV1PodsGet() { - // build query - query := ` - { - coreV1PodsGet(namespace: "ns", name: "x") { - metadata { - name - } - } - } - ` - - // check not-found - { - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - suite.Equal(1, len(resp.Errors)) - suite.Equal("pods \"x\" not found", resp.Errors[0].Message) - } - - // add data - obj := corev1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "x"}} - suite.resolver.TestClientset.CoreV1().Pods("ns").Create(context.Background(), &obj, metav1.CreateOptions{}) - - // check found - { - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - suite.Equal(0, len(resp.Errors)) - - data := struct { - CoreV1PodsGet struct { - Metadata struct { - Name string - } - } - }{} - suite.MustUnpack(resp.Data, &data) - suite.Equal("x", data.CoreV1PodsGet.Metadata.Name) - } -} - -func (suite *QueryResolverTestSuite) TestCoreV1PodsList() { - // build query - query := ` - { - coreV1PodsList(namespace: "ns") { - items { - metadata { - name - } - } - } - } - ` - - type Data struct { - CoreV1PodsList struct { - Items []struct { - Metadata struct { - Name string - } - } - } - } - - // check empty - { - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - suite.Equal(0, len(resp.Errors)) - - var data Data - suite.MustUnpack(resp.Data, &data) - suite.Equal(0, len(data.CoreV1PodsList.Items)) - } - - // add data - suite.PopulateDynamicClient( - "ns", - &corev1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "x1"}}, - &corev1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "x2"}}, - ) - - // check not empty - { - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - suite.Equal(0, len(resp.Errors)) - - var data Data - suite.MustUnpack(resp.Data, &data) - suite.Equal(2, len(data.CoreV1PodsList.Items)) - suite.Equal("x1", data.CoreV1PodsList.Items[0].Metadata.Name) - suite.Equal("x2", data.CoreV1PodsList.Items[1].Metadata.Name) - } -} - -func (suite *QueryResolverTestSuite) TestCoreV1PodsGetLogs() { - // build query - query := ` - { - coreV1PodsGetLogs(namespace: "ns", name: "x") { - timestamp - message - } - } - ` - - resp := suite.MustPost(GraphQLRequest{Query: query}, nil) - - // check response - data := struct { - CoreV1PodsGetLogs []struct { - Timestamp string - Message string - } - }{} - suite.MustUnpack(resp.Data, &data) - suite.Equal(1, len(data.CoreV1PodsGetLogs)) - - // check record - record := data.CoreV1PodsGetLogs[0] - suite.Equal("fake logs", record.Message) - _, err := time.Parse(time.RFC3339Nano, record.Timestamp) - suite.Nil(err) -} - -// test runner -func TestQueryResolver(t *testing.T) { - suite.Run(t, new(QueryResolverTestSuite)) -} diff --git a/modules/server/graph_test/subscription_resolver_test.go b/modules/server/graph_test/subscription_resolver_test.go deleted file mode 100644 index a00682fb..00000000 --- a/modules/server/graph_test/subscription_resolver_test.go +++ /dev/null @@ -1,464 +0,0 @@ -// Copyright 2024 Andres Morey -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package graph_test - -import ( - "testing" - "time" - - "github.com/stretchr/testify/suite" - appsv1 "k8s.io/api/apps/v1" - batchv1 "k8s.io/api/batch/v1" - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/watch" - k8stesting "k8s.io/client-go/testing" -) - -type SubscriptionResolverTestSuite struct { - GraphTestSuite -} - -func (suite *SubscriptionResolverTestSuite) TestAppsV1DaemonSetsWatch() { - // build query - query := ` - subscription { - appsV1DaemonSetsWatch { - type - object { - metadata { - name - } - } - } - } - ` - - // init reactor - watcher := watch.NewFake() - defer watcher.Stop() - suite.resolver.TestDynamicClient.PrependWatchReactor("daemonsets", k8stesting.DefaultWatchReactor(watcher, nil)) - - // init subscription - sub := suite.MustSubscribe(GraphQLRequest{Query: query}, nil) - defer sub.Unsubscribe() - - // add data - obj := appsv1.DaemonSet{ObjectMeta: metav1.ObjectMeta{Name: "x"}} - watcher.Add(&obj) - - // listen for new message - data := struct { - AppsV1DaemonSetsWatch struct { - Type string - Object struct { - Metadata struct { - Name string - } - } - } - }{} - sub.MustNextMsg(suite.T(), 1*time.Second, &data) - suite.Equal("ADDED", data.AppsV1DaemonSetsWatch.Type) - suite.Equal("x", data.AppsV1DaemonSetsWatch.Object.Metadata.Name) -} - -func (suite *SubscriptionResolverTestSuite) TestAppsV1DeploymentsWatch() { - // build query - query := ` - subscription { - appsV1DeploymentsWatch { - type - object { - metadata { - name - } - } - } - } - ` - - // init reactor - watcher := watch.NewFake() - defer watcher.Stop() - suite.resolver.TestDynamicClient.PrependWatchReactor("deployments", k8stesting.DefaultWatchReactor(watcher, nil)) - - // init subscription - sub := suite.MustSubscribe(GraphQLRequest{Query: query}, nil) - defer sub.Unsubscribe() - - // add data - obj := appsv1.Deployment{ObjectMeta: metav1.ObjectMeta{Name: "x"}} - watcher.Add(&obj) - - // listen for new message - data := struct { - AppsV1DeploymentsWatch struct { - Type string - Object struct { - Metadata struct { - Name string - } - } - } - }{} - sub.MustNextMsg(suite.T(), 1*time.Second, &data) - suite.Equal("ADDED", data.AppsV1DeploymentsWatch.Type) - suite.Equal("x", data.AppsV1DeploymentsWatch.Object.Metadata.Name) -} - -func (suite *SubscriptionResolverTestSuite) TestAppsV1ReplicaSetsWatch() { - // build query - query := ` - subscription { - appsV1ReplicaSetsWatch { - type - object { - metadata { - name - } - } - } - } - ` - - // init reactor - watcher := watch.NewFake() - defer watcher.Stop() - suite.resolver.TestDynamicClient.PrependWatchReactor("replicasets", k8stesting.DefaultWatchReactor(watcher, nil)) - - // init subscription - sub := suite.MustSubscribe(GraphQLRequest{Query: query}, nil) - defer sub.Unsubscribe() - - // add data - obj := appsv1.ReplicaSet{ObjectMeta: metav1.ObjectMeta{Name: "x"}} - watcher.Add(&obj) - - // listen for new message - data := struct { - AppsV1ReplicaSetsWatch struct { - Type string - Object struct { - Metadata struct { - Name string - } - } - } - }{} - sub.MustNextMsg(suite.T(), 1*time.Second, &data) - suite.Equal("ADDED", data.AppsV1ReplicaSetsWatch.Type) - suite.Equal("x", data.AppsV1ReplicaSetsWatch.Object.Metadata.Name) -} - -func (suite *SubscriptionResolverTestSuite) TestAppsV1StatefulSetsWatch() { - // build query - query := ` - subscription { - appsV1StatefulSetsWatch { - type - object { - metadata { - name - } - } - } - } - ` - - // init reactor - watcher := watch.NewFake() - defer watcher.Stop() - suite.resolver.TestDynamicClient.PrependWatchReactor("statefulsets", k8stesting.DefaultWatchReactor(watcher, nil)) - - // init subscription - sub := suite.MustSubscribe(GraphQLRequest{Query: query}, nil) - defer sub.Unsubscribe() - - // add data - obj := appsv1.StatefulSet{ObjectMeta: metav1.ObjectMeta{Name: "x"}} - watcher.Add(&obj) - - // listen for new message - data := struct { - AppsV1StatefulSetsWatch struct { - Type string - Object struct { - Metadata struct { - Name string - } - } - } - }{} - sub.MustNextMsg(suite.T(), 1*time.Second, &data) - suite.Equal("ADDED", data.AppsV1StatefulSetsWatch.Type) - suite.Equal("x", data.AppsV1StatefulSetsWatch.Object.Metadata.Name) -} - -func (suite *SubscriptionResolverTestSuite) TestBatchV1CronJobsWatch() { - // build query - query := ` - subscription { - batchV1CronJobsWatch { - type - object { - metadata { - name - } - } - } - } - ` - - // init reactor - watcher := watch.NewFake() - defer watcher.Stop() - suite.resolver.TestDynamicClient.PrependWatchReactor("cronjobs", k8stesting.DefaultWatchReactor(watcher, nil)) - - // init subscription - sub := suite.MustSubscribe(GraphQLRequest{Query: query}, nil) - defer sub.Unsubscribe() - - // add data - obj := batchv1.CronJob{ObjectMeta: metav1.ObjectMeta{Name: "x"}} - watcher.Add(&obj) - - // listen for new message - data := struct { - BatchV1CronJobsWatch struct { - Type string - Object struct { - Metadata struct { - Name string - } - } - } - }{} - sub.MustNextMsg(suite.T(), 1*time.Second, &data) - suite.Equal("ADDED", data.BatchV1CronJobsWatch.Type) - suite.Equal("x", data.BatchV1CronJobsWatch.Object.Metadata.Name) -} - -func (suite *SubscriptionResolverTestSuite) TestBatchV1JobsWatch() { - // build query - query := ` - subscription { - batchV1JobsWatch { - type - object { - metadata { - name - } - } - } - } - ` - - // init reactor - watcher := watch.NewFake() - defer watcher.Stop() - suite.resolver.TestDynamicClient.PrependWatchReactor("jobs", k8stesting.DefaultWatchReactor(watcher, nil)) - - // init subscription - sub := suite.MustSubscribe(GraphQLRequest{Query: query}, nil) - defer sub.Unsubscribe() - - // add data - obj := batchv1.Job{ObjectMeta: metav1.ObjectMeta{Name: "x"}} - watcher.Add(&obj) - - // listen for new message - data := struct { - BatchV1JobsWatch struct { - Type string - Object struct { - Metadata struct { - Name string - } - } - } - }{} - sub.MustNextMsg(suite.T(), 1*time.Second, &data) - suite.Equal("ADDED", data.BatchV1JobsWatch.Type) - suite.Equal("x", data.BatchV1JobsWatch.Object.Metadata.Name) -} - -func (suite *SubscriptionResolverTestSuite) TestCoreV1NamespacesWatch() { - // build query - query := ` - subscription { - coreV1NamespacesWatch { - type - object { - metadata { - name - } - } - } - } - ` - - // init reactor - watcher := watch.NewFake() - defer watcher.Stop() - suite.resolver.TestClientset.PrependWatchReactor("namespaces", k8stesting.DefaultWatchReactor(watcher, nil)) - - // init subscription - sub := suite.MustSubscribe(GraphQLRequest{Query: query}, nil) - defer sub.Unsubscribe() - - // add data - obj := corev1.Namespace{ObjectMeta: metav1.ObjectMeta{Name: "x"}} - watcher.Add(&obj) - - // listen for new message - data := struct { - CoreV1NamespacesWatch struct { - Type string - Object struct { - Metadata struct { - Name string - } - } - } - }{} - sub.MustNextMsg(suite.T(), 1*time.Second, &data) - suite.Equal("ADDED", data.CoreV1NamespacesWatch.Type) - suite.Equal("x", data.CoreV1NamespacesWatch.Object.Metadata.Name) -} - -func (suite *SubscriptionResolverTestSuite) TestCoreV1NodesWatch() { - // build query - query := ` - subscription { - coreV1NodesWatch { - type - object { - metadata { - name - } - } - } - } - ` - - // init reactor - watcher := watch.NewFake() - defer watcher.Stop() - suite.resolver.TestClientset.PrependWatchReactor("nodes", k8stesting.DefaultWatchReactor(watcher, nil)) - - // init subscription - sub := suite.MustSubscribe(GraphQLRequest{Query: query}, nil) - defer sub.Unsubscribe() - - // add data - obj := corev1.Node{ObjectMeta: metav1.ObjectMeta{Name: "x"}} - watcher.Add(&obj) - - // listen for new message - data := struct { - CoreV1NodesWatch struct { - Type string - Object struct { - Metadata struct { - Name string - } - } - } - }{} - sub.MustNextMsg(suite.T(), 1*time.Second, &data) - suite.Equal("ADDED", data.CoreV1NodesWatch.Type) - suite.Equal("x", data.CoreV1NodesWatch.Object.Metadata.Name) -} - -func (suite *SubscriptionResolverTestSuite) TestCoreV1PodsWatch() { - // build query - query := ` - subscription { - coreV1PodsWatch { - type - object { - metadata { - name - } - } - } - } - ` - - // init reactor - watcher := watch.NewFake() - defer watcher.Stop() - suite.resolver.TestDynamicClient.PrependWatchReactor("pods", k8stesting.DefaultWatchReactor(watcher, nil)) - - // init subscription - sub := suite.MustSubscribe(GraphQLRequest{Query: query}, nil) - defer sub.Unsubscribe() - - // add data - obj := corev1.Pod{ObjectMeta: metav1.ObjectMeta{Name: "x"}} - watcher.Add(&obj) - - // listen for new message - data := struct { - CoreV1PodsWatch struct { - Type string - Object struct { - Metadata struct { - Name string - } - } - } - }{} - sub.MustNextMsg(suite.T(), 1*time.Second, &data) - suite.Equal("ADDED", data.CoreV1PodsWatch.Type) - suite.Equal("x", data.CoreV1PodsWatch.Object.Metadata.Name) -} - -func (suite *SubscriptionResolverTestSuite) TestCoreV1PodLogTail() { - // build query - query := ` - subscription { - coreV1PodLogTail(namespace: "ns", name: "x") { - timestamp - message - } - } - ` - - // init subscription - sub := suite.MustSubscribe(GraphQLRequest{Query: query}, nil) - defer sub.Unsubscribe() - - // get log records - data := struct { - CoreV1PodLogTail struct { - Timestamp string - Message string - } - }{} - sub.MustNextMsg(suite.T(), 1*time.Second, &data) - - // check record - record := data.CoreV1PodLogTail - suite.Equal("fake logs", record.Message) - _, err := time.Parse(time.RFC3339Nano, record.Timestamp) - suite.Nil(err) -} - -// test runner -func TestSubscriptionResolver(t *testing.T) { - suite.Run(t, new(SubscriptionResolverTestSuite)) -} diff --git a/modules/server/graph_test/testutils_test.go b/modules/server/graph_test/testutils_test.go deleted file mode 100644 index 584ae7c6..00000000 --- a/modules/server/graph_test/testutils_test.go +++ /dev/null @@ -1,287 +0,0 @@ -// Copyright 2024 Andres Morey -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package graph_test - -import ( - "bytes" - "context" - "encoding/json" - "errors" - "fmt" - "io" - "net/http" - "net/http/httptest" - "testing" - "time" - - "github.com/99designs/gqlgen/graphql/handler" - gqlclient "github.com/hasura/go-graphql-client" - "github.com/mitchellh/mapstructure" - "github.com/rs/zerolog" - "github.com/rs/zerolog/log" - "github.com/stretchr/testify/suite" - "github.com/vektah/gqlparser/v2/gqlerror" - appsv1 "k8s.io/api/apps/v1" - batchv1 "k8s.io/api/batch/v1" - corev1 "k8s.io/api/core/v1" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime" - dynamicFake "k8s.io/client-go/dynamic/fake" - "k8s.io/client-go/kubernetes/fake" - - "github.com/kubetail-org/kubetail/modules/server/graph" -) - -func init() { - // disable logging - log.Logger = zerolog.Nop() -} - -type VariableMap map[string]interface{} - -type PrepareContextFunc = func(context.Context) context.Context - -type GraphQLRequest struct { - Query string `json:"query"` - Variables VariableMap `json:"variables"` -} - -type GraphQLResponse struct { - Data interface{} - Errors gqlerror.List -} - -type GraphTestSuite struct { - suite.Suite - resolver *graph.Resolver - gqlHandler *handler.Server - server *httptest.Server - prepareContextFn PrepareContextFunc -} - -func (suite *GraphTestSuite) SetupSuite() { - resolver := &graph.Resolver{} - gqlHandler := graph.NewHandler(resolver, nil) - server := httptest.NewServer(prepareContextMiddleware(gqlHandler, suite)) - - suite.resolver = resolver - suite.gqlHandler = gqlHandler - suite.server = server -} - -func (suite *GraphTestSuite) TearDownSuite() { - suite.server.Close() -} - -func (suite *GraphTestSuite) SetupTest() { - // init fake clientset - suite.resolver.TestClientset = fake.NewSimpleClientset() - - // init fake dynamic client - scheme := runtime.NewScheme() - if err := appsv1.AddToScheme(scheme); err != nil { - panic(err) - } - if err := batchv1.AddToScheme(scheme); err != nil { - panic(err) - } - if err := corev1.AddToScheme(scheme); err != nil { - panic(err) - } - suite.resolver.TestDynamicClient = dynamicFake.NewSimpleDynamicClient(scheme) -} - -func (suite *GraphTestSuite) PopulateDynamicClient(ns string, objects ...runtime.Object) { - for _, obj := range objects { - // get gvr - gvr, err := graph.GetGVR(obj) - if err != nil { - panic(err) - } - - // initialize unstructured object - unstrObj, err := runtime.DefaultUnstructuredConverter.ToUnstructured(obj) - if err != nil { - panic(err) - } - x := unstructured.Unstructured{Object: unstrObj} - - // create - _, err = suite.resolver.TestDynamicClient.Resource(gvr).Namespace(ns).Create(context.Background(), &x, metav1.CreateOptions{}) - if err != nil { - panic(err) - } - } -} - -func (suite *GraphTestSuite) Post(request GraphQLRequest, prepareContext PrepareContextFunc) (*http.Response, error) { - // json-encode graphql request - requestBody, err := json.Marshal(&request) - if err != nil { - return nil, err - } - - // init request - w := httptest.NewRecorder() - r := httptest.NewRequest("POST", "/", bytes.NewReader(requestBody)) - r.Header.Set("Content-Type", "application/json") - - // prepare context - if prepareContext != nil { - r = r.WithContext(prepareContext(r.Context())) - } - - // execute request - suite.gqlHandler.ServeHTTP(w, r) - - return w.Result(), nil -} - -func (suite *GraphTestSuite) MustPost(req GraphQLRequest, prepareContext PrepareContextFunc) GraphQLResponse { - httpResp, err := suite.Post(req, prepareContext) - - // check http response - suite.Require().Nil(err) - suite.Require().Equal(http.StatusOK, httpResp.StatusCode) - - // get body as bytes - defer httpResp.Body.Close() - bodyBytes, err := io.ReadAll(httpResp.Body) - suite.Require().Nil(err) - - // json-decode body - gqlResp := GraphQLResponse{} - err = json.Unmarshal(bodyBytes, &gqlResp) - suite.Require().Nil(err) - - return gqlResp -} - -func (suite *GraphTestSuite) Subscribe(request GraphQLRequest, prepareContextFn PrepareContextFunc) (*GraphQLSubscription, error) { - suite.prepareContextFn = prepareContextFn - - client := gqlclient.NewSubscriptionClient(suite.server.URL). - WithProtocol(gqlclient.GraphQLWS) - - // init subscription object - sub := &GraphQLSubscription{ - client: client, - c: make(chan []byte, 10), - } - - // set up graphql request - id, err := client.Exec(request.Query, request.Variables, func(data []byte, err error) error { - if err != nil { - panic(err) - } - sub.c <- data // write to subscription data channel - return nil - }) - - if err != nil { - return nil, err - } - - // update subscription object - sub.subscriptionId = id - - // start connection - go func() { - defer client.Close() - client.Run() - }() - - return sub, nil -} - -func (suite *GraphTestSuite) MustSubscribe(request GraphQLRequest, prepareContextFn PrepareContextFunc) *GraphQLSubscription { - sub, err := suite.Subscribe(request, prepareContextFn) - suite.Require().Nil(err, "subscription failed") - return sub -} - -func (suite *GraphTestSuite) MustUnpack(data interface{}, into interface{}) { - err := unpack(data, into) - suite.Require().Nil(err, fmt.Errorf("Error while unpacking into %T", into)) -} - -// GraphQL subscription object -type GraphQLSubscription struct { - client *gqlclient.SubscriptionClient - subscriptionId string - c chan []byte -} - -func (sub *GraphQLSubscription) NextMsg(timeout time.Duration) ([]byte, error) { - // init timer - timer := time.NewTimer(timeout) - defer timer.Stop() - - // listen for new messages - select { - case <-timer.C: - return nil, errors.New("timeout exceeded") - case msg := <-sub.c: - return msg, nil - } -} - -func (sub *GraphQLSubscription) MustNextMsg(t *testing.T, timeout time.Duration, responsePtr interface{}) { - msg, err := sub.NextMsg(timeout) - if err != nil { - t.Fatal(err) - } - - jsonMap := make(map[string]interface{}) - err = json.Unmarshal(msg, &jsonMap) - if err != nil { - t.Fatal(err) - } - - err = unpack(jsonMap, responsePtr) - if err != nil { - t.Fatal(err) - } -} - -func (sub *GraphQLSubscription) Unsubscribe() { - defer sub.client.Close() - sub.client.Unsubscribe(sub.subscriptionId) -} - -func unpack(data interface{}, into interface{}) error { - d, err := mapstructure.NewDecoder(&mapstructure.DecoderConfig{ - Result: into, - TagName: "json", - ErrorUnused: true, - ZeroFields: true, - }) - if err != nil { - return fmt.Errorf("mapstructure: %w", err) - } - - return d.Decode(data) -} - -func prepareContextMiddleware(next http.Handler, suite *GraphTestSuite) http.Handler { - return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { - if suite.prepareContextFn != nil { - r = r.WithContext(suite.prepareContextFn(r.Context())) - suite.prepareContextFn = nil - } - next.ServeHTTP(w, r) - }) -} diff --git a/modules/server/internal/k8shelpers/k8shelpers.go b/modules/server/internal/k8shelpers/k8shelpers.go deleted file mode 100644 index 4585ab92..00000000 --- a/modules/server/internal/k8shelpers/k8shelpers.go +++ /dev/null @@ -1,159 +0,0 @@ -// Copyright 2024 Andres Morey -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package k8shelpers - -import ( - "context" - "errors" - "os" - "regexp" - - zlog "github.com/rs/zerolog/log" - authv1 "k8s.io/api/authentication/v1" - k8serrors "k8s.io/apimachinery/pkg/api/errors" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/client-go/kubernetes" - "k8s.io/client-go/rest" - "k8s.io/client-go/tools/clientcmd" -) - -type Mode string - -const ( - ModeCluster = "cluster" - ModeToken = "token" - ModeLocal = "local" -) - -type Options struct { - Mode Mode - KubeConfig string -} - -// Configure kubernetes or die -func MustConfigure(opts Options) *rest.Config { - cfg, err := configure(opts) - if err != nil { - zlog.Fatal().Err(err).Send() - } - return cfg -} - -// Configure kubernetes -func configure(opts Options) (*rest.Config, error) { - switch opts.Mode { - case ModeCluster: - return configureCluster() - case ModeLocal: - return configureLocal(opts.KubeConfig) - case ModeToken: - cfg, err := configureCluster() - if err == nil { - return cfg, nil - } - return configureLocal(opts.KubeConfig) - default: - panic("not implemented") - } -} - -// Configure client for use inside cluster -func configureCluster() (*rest.Config, error) { - return rest.InClusterConfig() -} - -// Configure client using local kubectl -func configureLocal(file string) (*rest.Config, error) { - cfgBytes, err := os.ReadFile(file) - if err != nil { - return nil, err - } - return clientcmd.RESTConfigFromKubeConfig(cfgBytes) -} - -type K8sHelperService struct { - cfg *rest.Config - mode Mode -} - -// Adapted from https://github.com/kubernetes/dashboard/blob/b231dc2b89dbdfe325dc433dd7cc83abca6ddfea/modules/api/pkg/client/manager.go#L228 -func (s *K8sHelperService) HasAccess(token string) (string, error) { - cfg := rest.CopyConfig(s.cfg) - - // handle token-mode - if s.mode == ModeToken { - // exit if token is blank - if token == "" { - return "", errors.New("token required") - } - - cfg.BearerToken = token - cfg.BearerTokenFile = "" - } - - clientset, err := kubernetes.NewForConfig(cfg) - if err != nil { - return "", err - } - - switch s.mode { - case ModeCluster, ModeLocal: - // check access by trying to get server version - discoveryClient := clientset.Discovery() - _, err = discoveryClient.ServerVersion() - return string(s.mode), err - case ModeToken: - // use token service - tokenReview := &authv1.TokenReview{ - Spec: authv1.TokenReviewSpec{ - Token: token, - }, - } - - result, err := clientset.AuthenticationV1().TokenReviews().Create(context.Background(), tokenReview, metav1.CreateOptions{}) - if err != nil { - if k8serrors.IsForbidden(err) { - return getUsernameFromError(err), nil - } - return "", err - } - - return getUsername(result.Status.User.Username), nil - default: - panic("not implemented") - } -} - -func NewK8sHelperService(cfg *rest.Config, mode Mode) *K8sHelperService { - return &K8sHelperService{cfg, mode} -} - -func getUsername(name string) string { - const groups = 5 - const nameGroupIdx = 4 - re := regexp.MustCompile(`(?P[\w-]+):(?P[\w-]+):(?P[\w-_]+):(?P[\w-]+)`) - match := re.FindStringSubmatch(name) - - if match == nil || len(match) != groups { - return name - } - - return match[nameGroupIdx] -} - -func getUsernameFromError(err error) string { - re := regexp.MustCompile(`^.* User "(.*)" cannot .*$`) - return re.ReplaceAllString(err.Error(), "$1") -} diff --git a/modules/server/pkg/ginapp/auth_test.go b/modules/server/pkg/ginapp/auth_test.go deleted file mode 100644 index 1b60e2a2..00000000 --- a/modules/server/pkg/ginapp/auth_test.go +++ /dev/null @@ -1,210 +0,0 @@ -// Copyright 2024 Andres Morey -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package ginapp - -import ( - "encoding/json" - "errors" - "net/http" - "net/url" - "testing" - "time" - - "github.com/gin-contrib/sessions" - "github.com/gin-gonic/gin" - "github.com/stretchr/testify/suite" - "k8s.io/utils/pointer" - - "github.com/kubetail-org/kubetail/modules/common/config" - "github.com/kubetail-org/kubetail/modules/server/internal/k8shelpers/mock" -) - -type AuthTestSuite struct { - WebTestSuiteBase -} - -func (suite *AuthTestSuite) SetupTest() { - // reset mock - suite.App.k8sHelperService = &mock.Service{} -} - -func (suite *AuthTestSuite) TestLoginPOSTFormErrors() { - // init empty form - form := url.Values{} - - // make request - resp := suite.PostForm("/api/auth/login", form) - - // check result - suite.Equal(http.StatusUnprocessableEntity, resp.StatusCode) - suite.Contains(string(resp.Body), "Please enter your token") -} - -func (suite *AuthTestSuite) TestLoginPOSTSuccess() { - // configure mock - svc := suite.App.k8sHelperService.(*mock.Service) - svc.On("HasAccess", "xxx").Return("user", nil) - - // execute request - form := url.Values{} - form.Add("token", "xxx") - resp := suite.PostForm("/api/auth/login", form, func(c *gin.Context) { - // execute handler - c.Next() - - // check that token was added to session - session := sessions.Default(c) - token, ok := session.Get(k8sTokenCtxKey).(string) - suite.True(ok) - suite.Equal("xxx", token) - }) - - // assertions - svc.AssertNumberOfCalls(suite.T(), "HasAccess", 1) - svc.AssertCalled(suite.T(), "HasAccess", "xxx") - suite.Equal(http.StatusNoContent, resp.StatusCode) -} - -func (suite *AuthTestSuite) TestLoginPOSTFailure() { - // configure mock - svc := suite.App.k8sHelperService.(*mock.Service) - svc.On("HasAccess", "xxx").Return("", errors.New("")) - - // execute request - form := url.Values{} - form.Add("token", "xxx") - resp := suite.PostForm("/api/auth/login", form) - - // assertions - svc.AssertNumberOfCalls(suite.T(), "HasAccess", 1) - svc.AssertCalled(suite.T(), "HasAccess", "xxx") - suite.Equal(http.StatusUnprocessableEntity, resp.StatusCode) -} - -func (suite *AuthTestSuite) TestLogoutPOST() { - // configure mock - svc := suite.App.k8sHelperService.(*mock.Service) - svc.On("HasAccess", "xxx").Return("user", nil) - - // log in with a cookie-enabled client - client := suite.NewClient() - - // login - form := url.Values{} - form.Add("token", "xxx") - resp1 := client.PostForm("/api/auth/login", form) - - // verify that session cookie was added - cookie1 := GetCookie(resp1.Cookies, "session") - suite.NotNil(cookie1) - - // logout - resp2 := client.PostForm("/api/auth/logout", nil, func(c *gin.Context) { - // execute handler - c.Next() - - // check session - session := sessions.Default(c) - suite.Nil(session.Get(k8sTokenSessionKey)) - }) - - // verify session cookie was changed - cookie2 := GetCookie(resp2.Cookies, "session") - suite.NotNil(cookie2) - suite.NotEqual(cookie1.Value, cookie2.Value) -} - -func (suite *AuthTestSuite) TestSessionGET() { - type Session struct { - User *string - Timestamp string - } - - tests := []struct { - name string - setAuthMode config.AuthMode - wantLoggedOutUser *string - wantLoggedInUser *string - }{ - {"cluster", config.AuthModeCluster, pointer.String("cluster"), pointer.String("cluster")}, - {"token", config.AuthModeToken, nil, pointer.String("user")}, - } - - for _, tt := range tests { - suite.Run(tt.name, func() { - - // init app - cfg := NewTestConfig() - cfg.AuthMode = tt.setAuthMode - app := NewTestApp(cfg) - - // configure mock - svc := &mock.Service{} - svc.On("HasAccess", "xxx").Return("user", nil) - app.k8sHelperService = svc - - // init client - client := NewWebTestClient(suite.T(), app) - - // logged-out tests - { - // get session - resp := client.Get("/api/auth/session") - - // parse json - var session Session - err := json.Unmarshal(resp.Body, &session) - suite.Nil(err) - - // check user - suite.Equal(tt.wantLoggedOutUser, session.User) - - // check timestamp - _, err = time.Parse(time.RFC3339Nano, session.Timestamp) - suite.Nil(err) - } - - // logged-in tests - { - // log in - form := url.Values{} - form.Add("token", "xxx") - client.PostForm("/api/auth/login", form) - - // get session - resp := client.Get("/api/auth/session") - - // parse json - var session Session - err := json.Unmarshal(resp.Body, &session) - suite.Nil(err) - - // check user - suite.Equal(tt.wantLoggedInUser, session.User) - - // check timestamp - _, err = time.Parse(time.RFC3339Nano, session.Timestamp) - suite.Nil(err) - } - - client.Teardown() - }) - } -} - -// test runner -func TestAuthHandlers(t *testing.T) { - suite.Run(t, new(AuthTestSuite)) -} diff --git a/modules/server/pkg/ginapp/ginapp.go b/modules/server/pkg/ginapp/ginapp.go deleted file mode 100644 index ba53b03e..00000000 --- a/modules/server/pkg/ginapp/ginapp.go +++ /dev/null @@ -1,229 +0,0 @@ -// Copyright 2024 Andres Morey -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package ginapp - -import ( - "html/template" - "io/fs" - "net/http" - "path" - - "github.com/gin-contrib/gzip" - "github.com/gin-contrib/requestid" - "github.com/gin-contrib/secure" - "github.com/gin-contrib/sessions" - "github.com/gin-contrib/sessions/cookie" - "github.com/gin-gonic/gin" - "github.com/gorilla/csrf" - adapter "github.com/gwatts/gin-adapter" - grpcdispatcher "github.com/kubetail-org/grpc-dispatcher-go" - "k8s.io/client-go/rest" - - "github.com/kubetail-org/kubetail/modules/common/config" - "github.com/kubetail-org/kubetail/modules/server" - "github.com/kubetail-org/kubetail/modules/server/internal/k8shelpers" -) - -type GinApp struct { - *gin.Engine - k8sHelperService k8shelpers.Service - grpcDispatcher *grpcdispatcher.Dispatcher - shutdownCh chan struct{} - - // for testing - dynamicroutes *gin.RouterGroup - wraponce gin.HandlerFunc -} - -func (app *GinApp) Shutdown() { - // stop grpc dispatcher - if app.grpcDispatcher != nil { - // TODO: log dispatcher shutdown errors - app.grpcDispatcher.Shutdown() - } - - // send shutdown signal to internal processes - if app.shutdownCh != nil { - close(app.shutdownCh) - } -} - -// Create new kubetail Gin app -func NewGinApp(cfg *config.Config) (*GinApp, error) { - // init app - app := &GinApp{Engine: gin.New()} - - // only if not in test-mode - var k8sCfg *rest.Config - if gin.Mode() != gin.TestMode { - // configure kubernetes - k8sCfg = mustConfigureK8S(cfg) - - // init k8s helper service - app.k8sHelperService = k8shelpers.NewK8sHelperService(k8sCfg, k8shelpers.Mode(cfg.AuthMode)) - - // init grpc dispatcher - if cfg.Server.ExtensionsEnabled { - app.grpcDispatcher = mustNewGrpcDispatcher(cfg) - } - - // add recovery middleware - app.Use(gin.Recovery()) - } - - // for tests - if gin.Mode() == gin.TestMode { - app.Use(func(c *gin.Context) { - if app.wraponce != nil { - defer func() { app.wraponce = nil }() - app.wraponce(c) - } else { - c.Next() - } - }) - } - - // register templates - //app.SetHTMLTemplate(mustLoadTemplatesWithFuncs(path.Join(basepath, "templates/*"))) - tmpl := template.Must(template.New(""). - Funcs(template.FuncMap{ - "pathJoin": path.Join, - }). - ParseFS(server.TemplatesEmbedFS, "templates/*"), - ) - app.SetHTMLTemplate(tmpl) - - // add request-id middleware - app.Use(requestid.New()) - - // add logging middleware - if cfg.Server.Logging.AccessLog.Enabled { - app.Use(loggingMiddleware(cfg.Server.Logging.AccessLog.HideHealthChecks)) - } - - // gzip middleware - app.Use(gzip.Gzip(gzip.DefaultCompression)) - - // root route - root := app.Group(cfg.Server.BasePath) - - // dynamic routes - dynamicRoutes := root.Group("/") - { - // session middleware - sessionStore := cookie.NewStore([]byte(cfg.Server.Session.Secret)) - sessionStore.Options(sessions.Options{ - Path: cfg.Server.Session.Cookie.Path, - Domain: cfg.Server.Session.Cookie.Domain, - MaxAge: cfg.Server.Session.Cookie.MaxAge, - Secure: cfg.Server.Session.Cookie.Secure, - HttpOnly: cfg.Server.Session.Cookie.HttpOnly, - SameSite: cfg.Server.Session.Cookie.SameSite, - }) - dynamicRoutes.Use(sessions.Sessions(cfg.Server.Session.Cookie.Name, sessionStore)) - - // https://security.stackexchange.com/questions/147554/security-headers-for-a-web-api - // https://observatory.mozilla.org/faq/ - dynamicRoutes.Use(secure.New(secure.Config{ - STSSeconds: 63072000, - FrameDeny: true, - ContentSecurityPolicy: "default-src 'none'; frame-ancestors 'none'", - ContentTypeNosniff: true, - })) - - // disable csrf protection for graphql endpoint (already rejects simple requests) - dynamicRoutes.Use(func(c *gin.Context) { - if c.Request.URL.Path == path.Join(cfg.Server.BasePath, "/graphql") { - c.Request = csrf.UnsafeSkipCheck(c.Request) - } - c.Next() - }) - - var csrfProtect func(http.Handler) http.Handler - - // csrf middleware - if cfg.Server.CSRF.Enabled { - csrfProtect = csrf.Protect( - []byte(cfg.Server.CSRF.Secret), - csrf.FieldName(cfg.Server.CSRF.FieldName), - csrf.CookieName(cfg.Server.CSRF.Cookie.Name), - csrf.Path(cfg.Server.CSRF.Cookie.Path), - csrf.Domain(cfg.Server.CSRF.Cookie.Domain), - csrf.MaxAge(cfg.Server.CSRF.Cookie.MaxAge), - csrf.Secure(cfg.Server.CSRF.Cookie.Secure), - csrf.HttpOnly(cfg.Server.CSRF.Cookie.HttpOnly), - csrf.SameSite(cfg.Server.CSRF.Cookie.SameSite), - ) - - // add to gin middleware - dynamicRoutes.Use(adapter.Wrap(csrfProtect)) - - // token fetcher helper - dynamicRoutes.GET("/csrf-token", func(c *gin.Context) { - c.JSON(http.StatusOK, gin.H{"value": csrf.Token(c.Request)}) - }) - } - - // authentication middleware - dynamicRoutes.Use(authenticationMiddleware(cfg.AuthMode)) - - // auth routes - auth := dynamicRoutes.Group("/api/auth") - { - h := &AuthHandlers{GinApp: app, mode: cfg.AuthMode} - auth.POST("/login", h.LoginPOST) - auth.POST("/logout", h.LogoutPOST) - auth.GET("/session", h.SessionGET) - } - - // graphql routes - graphql := dynamicRoutes.Group("/graphql") - { - // require token - if cfg.AuthMode == config.AuthModeToken { - graphql.Use(k8sTokenRequiredMiddleware) - } - - // graphql handler - h := &GraphQLHandlers{app} - endpointHandler := h.EndpointHandler(k8sCfg, app.grpcDispatcher, cfg.AllowedNamespaces, csrfProtect) - graphql.GET("", endpointHandler) - graphql.POST("", endpointHandler) - } - } - app.dynamicroutes = dynamicRoutes // for unit tests - - // health routes - root.GET("/healthz", func(c *gin.Context) { - c.JSON(http.StatusOK, gin.H{ - "status": "ok", - }) - }) - - // serve website from "/" and also unknown routes - websiteFS, err := fs.Sub(server.WebsiteEmbedFS, "website") - if err != nil { - return nil, err - } - - h := &WebsiteHandlers{app, websiteFS} - h.InitStaticHandlers(root) - - endpointHandler := h.EndpointHandler(cfg) - root.GET("/", endpointHandler) - app.NoRoute(endpointHandler) - - return app, nil -} diff --git a/modules/server/pkg/ginapp/ginapp_test.go b/modules/server/pkg/ginapp/ginapp_test.go deleted file mode 100644 index 01f5ac33..00000000 --- a/modules/server/pkg/ginapp/ginapp_test.go +++ /dev/null @@ -1,310 +0,0 @@ -// Copyright 2024 Andres Morey -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package ginapp - -import ( - "compress/gzip" - "io" - "net/http" - "net/http/httptest" - "testing" - - "github.com/gin-contrib/requestid" - "github.com/gin-contrib/sessions" - "github.com/gin-gonic/gin" - "github.com/gorilla/csrf" - "github.com/stretchr/testify/assert" - - "github.com/kubetail-org/kubetail/modules/common/config" - "github.com/kubetail-org/kubetail/modules/common/k8shelpers" -) - -func TestRequestID(t *testing.T) { - app := NewTestApp(nil) - - // add route for testing - app.GET("/x", func(c *gin.Context) { - c.String(http.StatusOK, requestid.Get(c)) - }) - - // request 1 - w1 := httptest.NewRecorder() - r1 := httptest.NewRequest("GET", "/x", nil) - app.ServeHTTP(w1, r1) - id1 := w1.Body.String() - - // request 2 - w2 := httptest.NewRecorder() - r2 := httptest.NewRequest("GET", "/x", nil) - app.ServeHTTP(w2, r2) - id2 := w2.Body.String() - - // check result - assert.NotEqual(t, "", id1) - assert.NotEqual(t, "", id2) - assert.NotEqual(t, id1, id2) -} - -func TestGzip(t *testing.T) { - app := NewTestApp(nil) - - // add route for testing - app.GET("/x", func(c *gin.Context) { - c.String(http.StatusOK, "ok") - }) - - // request without compression - w1 := httptest.NewRecorder() - r1 := httptest.NewRequest("GET", "/x", nil) - app.ServeHTTP(w1, r1) - assert.Equal(t, w1.Body.String(), "ok") - - // request with compression - w2 := httptest.NewRecorder() - r2 := httptest.NewRequest("GET", "/x", nil) - r2.Header["Accept-Encoding"] = []string{"gzip"} - app.ServeHTTP(w2, r2) - - gzreader, err := gzip.NewReader(w2.Body) - assert.Equal(t, nil, err) - uncompressed, err := io.ReadAll(gzreader) - assert.Equal(t, nil, err) - assert.Equal(t, "ok", string(uncompressed)) -} - -func TestSessionCookieOptions(t *testing.T) { - cfg1 := NewTestConfig() - cfg1.Server.Session.Cookie.Path = "/xxx" - - cfg2 := NewTestConfig() - cfg2.Server.Session.Cookie.Domain = "x.example.com" - - cfg3 := NewTestConfig() - cfg3.Server.Session.Cookie.MaxAge = 1 - - cfg4 := NewTestConfig() - cfg4.Server.Session.Cookie.Secure = false - - cfg5 := NewTestConfig() - cfg5.Server.Session.Cookie.Secure = true - - cfg6 := NewTestConfig() - cfg6.Server.Session.Cookie.HttpOnly = false - - cfg7 := NewTestConfig() - cfg7.Server.Session.Cookie.HttpOnly = true - - cfg8 := NewTestConfig() - cfg8.Server.Session.Cookie.SameSite = http.SameSiteNoneMode - - tests := []struct { - name string - setCfg *config.Config - }{ - {"Path", cfg1}, - {"Domain", cfg2}, - {"MaxAge", cfg3}, - {"Secure:false", cfg4}, - {"Secure:true", cfg5}, - {"HttpOnly:false", cfg6}, - {"HttpOnly:true", cfg7}, - {"SameSite", cfg8}, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - app := NewTestApp(tt.setCfg) - - // add route for testing - app.dynamicroutes.GET("/test", func(c *gin.Context) { - session := sessions.Default(c) - session.Set("k", "v") - err := session.Save() - assert.Nil(t, err) - - c.String(http.StatusOK, "ok") - }) - - // request - w := httptest.NewRecorder() - r := httptest.NewRequest("GET", "/test", nil) - app.ServeHTTP(w, r) - - // check session cookie - cookie := GetCookie(w.Result().Cookies(), "session") - assert.NotNil(t, cookie) - assert.Equal(t, tt.setCfg.Server.Session.Cookie.Path, cookie.Path) - assert.Equal(t, tt.setCfg.Server.Session.Cookie.Domain, cookie.Domain) - assert.Equal(t, tt.setCfg.Server.Session.Cookie.MaxAge, cookie.MaxAge) - assert.Equal(t, tt.setCfg.Server.Session.Cookie.Secure, cookie.Secure) - assert.Equal(t, tt.setCfg.Server.Session.Cookie.HttpOnly, cookie.HttpOnly) - assert.Equal(t, tt.setCfg.Server.Session.Cookie.SameSite, cookie.SameSite) - }) - } -} - -func TestCsrfCookieOptions(t *testing.T) { - cfg1 := NewTestConfig() - cfg1.Server.CSRF.Cookie.Path = "/xxx" - - cfg2 := NewTestConfig() - cfg2.Server.CSRF.Cookie.Domain = "x.example.com" - - cfg3 := NewTestConfig() - cfg3.Server.CSRF.Cookie.MaxAge = 1 - - cfg4 := NewTestConfig() - cfg4.Server.CSRF.Cookie.Secure = false - - cfg5 := NewTestConfig() - cfg5.Server.CSRF.Cookie.Secure = true - - cfg6 := NewTestConfig() - cfg6.Server.CSRF.Cookie.HttpOnly = false - - cfg7 := NewTestConfig() - cfg7.Server.CSRF.Cookie.HttpOnly = true - - cfg8 := NewTestConfig() - cfg8.Server.CSRF.Cookie.SameSite = csrf.SameSiteNoneMode - - tests := []struct { - name string - setCfg *config.Config - }{ - {"Path", cfg1}, - {"Domain", cfg2}, - {"MaxAge", cfg3}, - {"Secure:false", cfg4}, - {"Secure:true", cfg5}, - {"HttpOnly:false", cfg6}, - {"HttpOnly:true", cfg7}, - {"SameSite", cfg8}, - } - - for _, tt := range tests { - t.Run(tt.name, func(t *testing.T) { - tt.setCfg.Server.CSRF.Enabled = true - tt.setCfg.Server.CSRF.Cookie.Name = "customname" - app := NewTestApp(tt.setCfg) - - // add route for testing - app.dynamicroutes.GET("/test", func(c *gin.Context) { - c.String(http.StatusOK, "ok") - }) - - // request - w := httptest.NewRecorder() - r := httptest.NewRequest("GET", "/test", nil) - app.ServeHTTP(w, r) - - // check session cookie - cookie := GetCookie(w.Result().Cookies(), tt.setCfg.Server.CSRF.Cookie.Name) - assert.NotNil(t, cookie) - assert.Equal(t, tt.setCfg.Server.CSRF.Cookie.Path, cookie.Path) - assert.Equal(t, tt.setCfg.Server.CSRF.Cookie.Domain, cookie.Domain) - assert.Equal(t, tt.setCfg.Server.CSRF.Cookie.MaxAge, cookie.MaxAge) - assert.Equal(t, tt.setCfg.Server.CSRF.Cookie.Secure, cookie.Secure) - assert.Equal(t, tt.setCfg.Server.CSRF.Cookie.HttpOnly, cookie.HttpOnly) - assert.Equal(t, tt.setCfg.Server.CSRF.Cookie.SameSite, csrf.SameSiteMode(cookie.SameSite)) - }) - } -} - -func TestAuthMiddlewareChain(t *testing.T) { - tests := []struct { - name string - setAuthMode config.AuthMode - wantHasToken bool - }{ - {"cluster", config.AuthModeCluster, false}, - {"token", config.AuthModeToken, true}, - } - - for _, tt := range tests { - cfg := NewTestConfig() - cfg.AuthMode = tt.setAuthMode - app := NewTestApp(cfg) - - // add route for testing - app.dynamicroutes.GET("/test", func(c *gin.Context) { - // check gin context - token1, exists := c.Get(k8sTokenCtxKey) - assert.Equal(t, tt.wantHasToken, exists) - if tt.wantHasToken { - assert.Equal(t, "xxx", token1) - } - - // check go context - tokenIF := c.Request.Context().Value(k8shelpers.K8STokenCtxKey) - if tt.wantHasToken { - assert.NotNil(t, tokenIF) - token2, ok := tokenIF.(string) - assert.True(t, ok) - assert.Equal(t, "xxx", token2) - } else { - assert.Nil(t, tokenIF) - } - }) - - // request - w := httptest.NewRecorder() - r := httptest.NewRequest("GET", "/test", nil) - r.Header.Set("Authorization", "Bearer xxx") - app.ServeHTTP(w, r) - } -} - -func TestHealthz(t *testing.T) { - app := NewTestApp(nil) - - // make request - w := httptest.NewRecorder() - r := httptest.NewRequest("GET", "/healthz", nil) - app.ServeHTTP(w, r) - - // check response - result := w.Result() - assert.Equal(t, http.StatusOK, result.StatusCode) - assert.Equal(t, "{\"status\":\"ok\"}", w.Body.String()) -} - -func TestWraponce(t *testing.T) { - app := NewTestApp(nil) - - var checkVal string - - // request 1 - checkVal = "" - app.wraponce = func(c *gin.Context) { - checkVal = "request1" - c.Next() - } - app.ServeHTTP(httptest.NewRecorder(), httptest.NewRequest("GET", "/", nil)) - assert.Equal(t, "request1", checkVal) - - // request 2 (without wrapper) - checkVal = "" - app.ServeHTTP(httptest.NewRecorder(), httptest.NewRequest("GET", "/", nil)) - assert.Equal(t, "", checkVal) - - // request 3 (with new wrapper) - app.wraponce = func(c *gin.Context) { - checkVal = "request3" - c.Next() - } - app.ServeHTTP(httptest.NewRecorder(), httptest.NewRequest("GET", "/", nil)) - assert.Equal(t, "request3", checkVal) -} diff --git a/modules/server/pkg/ginapp/graphql.go b/modules/server/pkg/ginapp/graphql.go deleted file mode 100644 index 7d9b9aaa..00000000 --- a/modules/server/pkg/ginapp/graphql.go +++ /dev/null @@ -1,111 +0,0 @@ -// Copyright 2024 Andres Morey -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package ginapp - -import ( - "context" - "errors" - "net/http" - "net/http/httptest" - - "github.com/99designs/gqlgen/graphql/handler/transport" - "github.com/gin-gonic/gin" - zlog "github.com/rs/zerolog/log" - "k8s.io/client-go/rest" - - grpcdispatcher "github.com/kubetail-org/grpc-dispatcher-go" - "github.com/kubetail-org/kubetail/modules/server/graph" -) - -type key int - -const graphQLCookiesCtxKey key = iota - -type GraphQLHandlers struct { - *GinApp -} - -// GET|POST "/graphql": GraphQL query endpoint -func (app *GraphQLHandlers) EndpointHandler(cfg *rest.Config, grpcDispatcher *grpcdispatcher.Dispatcher, allowedNamespaces []string, csrfProtect func(http.Handler) http.Handler) gin.HandlerFunc { - // init resolver - r, err := graph.NewResolver(cfg, grpcDispatcher, allowedNamespaces) - if err != nil { - zlog.Fatal().Err(err).Send() - } - - // warm up in background - r.WarmUp() - - csrfTestServer := http.NewServeMux() - csrfTestServer.HandleFunc("/", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {})) - - // init handler options - opts := graph.NewDefaultHandlerOptions() - - // Because we had to disable same-origin checks in the CheckOrigin() handler - // we will use use CSRF token validation to ensure requests are coming from - // the same site. (See https://dev.to/pssingh21/websockets-bypassing-sop-cors-5ajm) - opts.WSInitFunc = func(ctx context.Context, initPayload transport.InitPayload) (context.Context, *transport.InitPayload, error) { - // check if csrf protection is disabled - if csrfProtect == nil { - return ctx, &initPayload, nil - } - - csrfToken := initPayload.Authorization() - - cookies, ok := ctx.Value(graphQLCookiesCtxKey).([]*http.Cookie) - if !ok { - return ctx, nil, errors.New("AUTHORIZATION_REQUIRED") - } - - // make mock request - r, _ := http.NewRequest("POST", "/", nil) - for _, cookie := range cookies { - r.AddCookie(cookie) - } - r.Header.Set("X-CSRF-Token", csrfToken) - - // run request through csrf protect function - rr := httptest.NewRecorder() - p := csrfProtect(csrfTestServer) - p.ServeHTTP(rr, r) - - if rr.Code != 200 { - return ctx, nil, errors.New("AUTHORIZATION_REQUIRED") - } - - // close websockets on shutdown signal - ctx, cancel := context.WithCancel(ctx) - go func() { - defer cancel() - <-app.shutdownCh - }() - - return ctx, &initPayload, nil - } - - // init handler - h := graph.NewHandler(r, opts) - - // return gin handler func - return func(c *gin.Context) { - // save cookies for use in WSInitFunc - ctx := context.WithValue(c.Request.Context(), graphQLCookiesCtxKey, c.Request.Cookies()) - c.Request = c.Request.WithContext(ctx) - - // execute - h.ServeHTTP(c.Writer, c.Request) - } -} diff --git a/modules/server/pkg/ginapp/testutils_test.go b/modules/server/pkg/ginapp/testutils_test.go deleted file mode 100644 index 7a24050a..00000000 --- a/modules/server/pkg/ginapp/testutils_test.go +++ /dev/null @@ -1,274 +0,0 @@ -// Copyright 2024 Andres Morey -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -package ginapp - -import ( - "fmt" - "io" - "log" - "net/http" - "net/http/cookiejar" - "net/http/httptest" - "net/url" - "os" - "runtime" - "strings" - "testing" - - "github.com/gin-gonic/gin" - "github.com/kubetail-org/kubetail/modules/common/config" - "github.com/stretchr/testify/suite" -) - -type LoggerWriter struct { - originalWriter io.Writer -} - -func (lw LoggerWriter) Write(p []byte) (n int, err error) { - // Determine the caller of the log function - _, file, line, ok := runtime.Caller(3) // 3 levels up the stack - if !ok { - file = "???" - line = 0 - } - - // Append the caller info to the log message - newLogMessage := fmt.Sprintf("%s:%d: %s", file, line, p) - - // Write to the original writer - return lw.originalWriter.Write([]byte(newLogMessage)) -} - -func init() { - gin.SetMode(gin.TestMode) - - // add caller info to logging output - log.SetOutput(LoggerWriter{originalWriter: os.Stdout}) -} - -/** - * WebTestResponse - A container object designed to make it easy to make - * assertions against an HTTP response from a test server - */ -type WebTestResponse struct { - StatusCode int - Header http.Header - Cookies []*http.Cookie - Body []byte -} - -/* - * WebTestSuiteBase - A test suite struct with useful methods for making HTTP - * requests and testing responses against an instance of the app. This struct - * is designed to be emdedded by the test suites. - */ -type WebTestSuiteBase struct { - suite.Suite - App *GinApp - defaultclient *WebTestClient -} - -// Set up entire suite -func (suite *WebTestSuiteBase) SetupSuite() { - app := NewTestApp(nil) - suite.App = app - suite.defaultclient = suite.NewClientWithoutCookieJar() -} - -// Tear down entire suite -func (suite *WebTestSuiteBase) TearDownSuite() { - defer suite.defaultclient.Teardown() -} - -// Perform Get() against test server using default client -func (suite *WebTestSuiteBase) Get(url string, fns ...gin.HandlerFunc) WebTestResponse { - return suite.defaultclient.Get(url, fns...) -} - -// Perform Head() against test server using default client -func (suite *WebTestSuiteBase) Head(url string, fns ...gin.HandlerFunc) WebTestResponse { - return suite.defaultclient.Head(url, fns...) -} - -// Perform Post() against test server using default client -func (suite *WebTestSuiteBase) Post(url, contentType string, body io.Reader, fns ...gin.HandlerFunc) WebTestResponse { - return suite.defaultclient.Post(url, contentType, body, fns...) -} - -// Perform PostForm() against test server using default client -func (suite *WebTestSuiteBase) PostForm(url string, form url.Values, fns ...gin.HandlerFunc) WebTestResponse { - return suite.defaultclient.PostForm(url, form, fns...) -} - -// Create new test client -func (suite *WebTestSuiteBase) NewClient() *WebTestClient { - return NewWebTestClient(suite.T(), suite.App) -} - -// Create new test client without cookie jar -func (suite *WebTestSuiteBase) NewClientWithoutCookieJar() *WebTestClient { - return NewWebTestClientWithoutCookieJar(suite.T(), suite.App) -} - -/** - * WebTestClient - An HTTP Client designed for making HTTP requests against a - * test server. - */ -type WebTestClient struct { - testserver *httptest.Server - httpclient *http.Client - baseURL string - app *GinApp - t *testing.T -} - -// Execute GET request -func (c *WebTestClient) Get(url string, fns ...gin.HandlerFunc) WebTestResponse { - return c.Do(c.NewRequest("GET", url, nil), fns...) -} - -// Execute HEAD request -func (c *WebTestClient) Head(url string, fns ...gin.HandlerFunc) WebTestResponse { - return c.Do(c.NewRequest("HEAD", url, nil), fns...) -} - -// Execute POST request -func (c *WebTestClient) Post(url, contentType string, body io.Reader, fns ...gin.HandlerFunc) WebTestResponse { - req := c.NewRequest("POST", url, body) - req.Header.Set("Content-Type", contentType) - return c.Do(req, fns...) -} - -// Execute POST request with form data -func (c *WebTestClient) PostForm(url string, form url.Values, fns ...gin.HandlerFunc) WebTestResponse { - body := strings.NewReader(form.Encode()) - req := c.NewRequest("POST", url, body) - req.Header.Set("Content-Type", "application/x-www-form-urlencoded") - return c.Do(req, fns...) -} - -// Execute request -func (c *WebTestClient) Do(req *http.Request, fns ...gin.HandlerFunc) WebTestResponse { - // inject handler into app middleware - if len(fns) > 0 { - c.app.wraponce = fns[0] - } - - // execute request - resp, err := c.httpclient.Do(req) - if err != nil { - c.t.Fatal(err) - } - - // read body - defer resp.Body.Close() - respBody, err := io.ReadAll(resp.Body) - if err != nil { - c.t.Fatal(err) - } - - // return response - return WebTestResponse{ - StatusCode: resp.StatusCode, - Header: resp.Header, - Cookies: resp.Cookies(), - Body: respBody, - } -} - -// Close testserver, etc. -func (c *WebTestClient) Teardown() { - c.testserver.Close() -} - -// Generate new request object -func (c *WebTestClient) NewRequest(method, target string, body io.Reader) *http.Request { - req, err := http.NewRequest(method, c.baseURL+target, body) - if err != nil { - c.t.Fatal(err) - } - return req -} - -// Create new base config for testing -func NewTestConfig() *config.Config { - cfg := config.Config{} - cfg.Server.BasePath = "/" - cfg.Server.Logging.AccessLog.Enabled = false - cfg.Server.Session.Secret = "TESTSESSIONSECRET" - cfg.Server.Session.Cookie.Name = "session" - cfg.Server.CSRF.Enabled = false - cfg.Server.CSRF.Secret = "TESTCSRFSECRET" - return &cfg -} - -// Create new app for testing -func NewTestApp(cfg *config.Config) *GinApp { - if cfg == nil { - cfg = NewTestConfig() - } - - app, err := NewGinApp(cfg) - if err != nil { - panic(err) - } - - return app -} - -// Create new web test client -func NewWebTestClient(t *testing.T, app *GinApp) *WebTestClient { - testserver := httptest.NewServer(app) - - // copy test server client - c := testserver.Client() - - // disable redirect-following - c.CheckRedirect = func(req *http.Request, via []*http.Request) error { - return http.ErrUseLastResponse - } - - // add cookie jar - jar, err := cookiejar.New(nil) - if err != nil { - t.Fatal(err) - } - c.Jar = jar - - return &WebTestClient{ - testserver: testserver, - httpclient: c, - baseURL: testserver.URL, - app: app, - t: t, - } -} - -// Create new web test client without cookie jar -func NewWebTestClientWithoutCookieJar(t *testing.T, app *GinApp) *WebTestClient { - c := NewWebTestClient(t, app) - c.httpclient.Jar = nil - return c -} - -// Cookie helper method -func GetCookie(cookies []*http.Cookie, name string) *http.Cookie { - for _, cookie := range cookies { - if cookie.Name == name { - return cookie - } - } - return nil -} diff --git a/modules/common/README.md b/modules/shared/README.md similarity index 55% rename from modules/common/README.md rename to modules/shared/README.md index 6326735d..000b3ba1 100644 --- a/modules/common/README.md +++ b/modules/shared/README.md @@ -1,6 +1,6 @@ -# Kubetail Backend Common +# Kubetail Shared Go Libraries -Go module containing shared backend libraries +Go module containing shared go libraries ## Dependencies @@ -15,3 +15,11 @@ To run the gRPC code generator use the `go generate` command: ```console go generate ./... ``` + +## Test + +To run the test suite execute this command: + +```console +go test ./... +``` diff --git a/modules/shared/clusteragentpb/cluster_agent.pb.go b/modules/shared/clusteragentpb/cluster_agent.pb.go new file mode 100644 index 00000000..4cf01ec5 --- /dev/null +++ b/modules/shared/clusteragentpb/cluster_agent.pb.go @@ -0,0 +1,542 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.2 +// protoc v5.29.3 +// source: cluster_agent.proto + +package clusteragentpb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type LogMetadata struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Spec *LogMetadataSpec `protobuf:"bytes,2,opt,name=spec,proto3" json:"spec,omitempty"` + FileInfo *LogMetadataFileInfo `protobuf:"bytes,3,opt,name=fileInfo,proto3" json:"fileInfo,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *LogMetadata) Reset() { + *x = LogMetadata{} + mi := &file_cluster_agent_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *LogMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LogMetadata) ProtoMessage() {} + +func (x *LogMetadata) ProtoReflect() protoreflect.Message { + mi := &file_cluster_agent_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LogMetadata.ProtoReflect.Descriptor instead. +func (*LogMetadata) Descriptor() ([]byte, []int) { + return file_cluster_agent_proto_rawDescGZIP(), []int{0} +} + +func (x *LogMetadata) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *LogMetadata) GetSpec() *LogMetadataSpec { + if x != nil { + return x.Spec + } + return nil +} + +func (x *LogMetadata) GetFileInfo() *LogMetadataFileInfo { + if x != nil { + return x.FileInfo + } + return nil +} + +type LogMetadataFileInfo struct { + state protoimpl.MessageState `protogen:"open.v1"` + Size int64 `protobuf:"varint,1,opt,name=size,proto3" json:"size,omitempty"` + LastModifiedAt *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=last_modified_at,json=lastModifiedAt,proto3" json:"last_modified_at,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *LogMetadataFileInfo) Reset() { + *x = LogMetadataFileInfo{} + mi := &file_cluster_agent_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *LogMetadataFileInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LogMetadataFileInfo) ProtoMessage() {} + +func (x *LogMetadataFileInfo) ProtoReflect() protoreflect.Message { + mi := &file_cluster_agent_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LogMetadataFileInfo.ProtoReflect.Descriptor instead. +func (*LogMetadataFileInfo) Descriptor() ([]byte, []int) { + return file_cluster_agent_proto_rawDescGZIP(), []int{1} +} + +func (x *LogMetadataFileInfo) GetSize() int64 { + if x != nil { + return x.Size + } + return 0 +} + +func (x *LogMetadataFileInfo) GetLastModifiedAt() *timestamppb.Timestamp { + if x != nil { + return x.LastModifiedAt + } + return nil +} + +type LogMetadataSpec struct { + state protoimpl.MessageState `protogen:"open.v1"` + NodeName string `protobuf:"bytes,1,opt,name=node_name,json=nodeName,proto3" json:"node_name,omitempty"` + Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"` + PodName string `protobuf:"bytes,3,opt,name=pod_name,json=podName,proto3" json:"pod_name,omitempty"` + ContainerName string `protobuf:"bytes,4,opt,name=container_name,json=containerName,proto3" json:"container_name,omitempty"` + ContainerId string `protobuf:"bytes,5,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *LogMetadataSpec) Reset() { + *x = LogMetadataSpec{} + mi := &file_cluster_agent_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *LogMetadataSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LogMetadataSpec) ProtoMessage() {} + +func (x *LogMetadataSpec) ProtoReflect() protoreflect.Message { + mi := &file_cluster_agent_proto_msgTypes[2] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LogMetadataSpec.ProtoReflect.Descriptor instead. +func (*LogMetadataSpec) Descriptor() ([]byte, []int) { + return file_cluster_agent_proto_rawDescGZIP(), []int{2} +} + +func (x *LogMetadataSpec) GetNodeName() string { + if x != nil { + return x.NodeName + } + return "" +} + +func (x *LogMetadataSpec) GetNamespace() string { + if x != nil { + return x.Namespace + } + return "" +} + +func (x *LogMetadataSpec) GetPodName() string { + if x != nil { + return x.PodName + } + return "" +} + +func (x *LogMetadataSpec) GetContainerName() string { + if x != nil { + return x.ContainerName + } + return "" +} + +func (x *LogMetadataSpec) GetContainerId() string { + if x != nil { + return x.ContainerId + } + return "" +} + +type LogMetadataList struct { + state protoimpl.MessageState `protogen:"open.v1"` + Items []*LogMetadata `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *LogMetadataList) Reset() { + *x = LogMetadataList{} + mi := &file_cluster_agent_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *LogMetadataList) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LogMetadataList) ProtoMessage() {} + +func (x *LogMetadataList) ProtoReflect() protoreflect.Message { + mi := &file_cluster_agent_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LogMetadataList.ProtoReflect.Descriptor instead. +func (*LogMetadataList) Descriptor() ([]byte, []int) { + return file_cluster_agent_proto_rawDescGZIP(), []int{3} +} + +func (x *LogMetadataList) GetItems() []*LogMetadata { + if x != nil { + return x.Items + } + return nil +} + +type LogMetadataListRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Namespaces []string `protobuf:"bytes,1,rep,name=namespaces,proto3" json:"namespaces,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *LogMetadataListRequest) Reset() { + *x = LogMetadataListRequest{} + mi := &file_cluster_agent_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *LogMetadataListRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LogMetadataListRequest) ProtoMessage() {} + +func (x *LogMetadataListRequest) ProtoReflect() protoreflect.Message { + mi := &file_cluster_agent_proto_msgTypes[4] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LogMetadataListRequest.ProtoReflect.Descriptor instead. +func (*LogMetadataListRequest) Descriptor() ([]byte, []int) { + return file_cluster_agent_proto_rawDescGZIP(), []int{4} +} + +func (x *LogMetadataListRequest) GetNamespaces() []string { + if x != nil { + return x.Namespaces + } + return nil +} + +type LogMetadataWatchRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Namespaces []string `protobuf:"bytes,1,rep,name=namespaces,proto3" json:"namespaces,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *LogMetadataWatchRequest) Reset() { + *x = LogMetadataWatchRequest{} + mi := &file_cluster_agent_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *LogMetadataWatchRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LogMetadataWatchRequest) ProtoMessage() {} + +func (x *LogMetadataWatchRequest) ProtoReflect() protoreflect.Message { + mi := &file_cluster_agent_proto_msgTypes[5] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LogMetadataWatchRequest.ProtoReflect.Descriptor instead. +func (*LogMetadataWatchRequest) Descriptor() ([]byte, []int) { + return file_cluster_agent_proto_rawDescGZIP(), []int{5} +} + +func (x *LogMetadataWatchRequest) GetNamespaces() []string { + if x != nil { + return x.Namespaces + } + return nil +} + +type LogMetadataWatchEvent struct { + state protoimpl.MessageState `protogen:"open.v1"` + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + Object *LogMetadata `protobuf:"bytes,2,opt,name=object,proto3" json:"object,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *LogMetadataWatchEvent) Reset() { + *x = LogMetadataWatchEvent{} + mi := &file_cluster_agent_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *LogMetadataWatchEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LogMetadataWatchEvent) ProtoMessage() {} + +func (x *LogMetadataWatchEvent) ProtoReflect() protoreflect.Message { + mi := &file_cluster_agent_proto_msgTypes[6] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LogMetadataWatchEvent.ProtoReflect.Descriptor instead. +func (*LogMetadataWatchEvent) Descriptor() ([]byte, []int) { + return file_cluster_agent_proto_rawDescGZIP(), []int{6} +} + +func (x *LogMetadataWatchEvent) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *LogMetadataWatchEvent) GetObject() *LogMetadata { + if x != nil { + return x.Object + } + return nil +} + +var File_cluster_agent_proto protoreflect.FileDescriptor + +var file_cluster_agent_proto_rawDesc = []byte{ + 0x0a, 0x13, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0d, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, + 0x67, 0x65, 0x6e, 0x74, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x91, 0x01, 0x0a, 0x0b, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x67, + 0x65, 0x6e, 0x74, 0x2e, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, + 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x3e, 0x0a, 0x08, 0x66, 0x69, 0x6c, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x4c, 0x6f, 0x67, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x08, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x6f, 0x0a, 0x13, 0x4c, 0x6f, 0x67, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, + 0x73, 0x69, 0x7a, 0x65, 0x12, 0x44, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x64, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, + 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x41, 0x74, 0x22, 0xb1, 0x01, 0x0a, 0x0f, 0x4c, + 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1b, + 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6f, 0x64, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x64, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, + 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, + 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, + 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x22, 0x43, + 0x0a, 0x0f, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x30, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x2e, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x05, 0x69, 0x74, + 0x65, 0x6d, 0x73, 0x22, 0x38, 0x0a, 0x16, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, + 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x22, 0x39, 0x0a, + 0x17, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x57, 0x61, 0x74, 0x63, + 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x22, 0x5f, 0x0a, 0x15, 0x4c, 0x6f, 0x67, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x57, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x32, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x32, 0xbc, 0x01, 0x0a, 0x12, 0x4c, 0x6f, + 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x4d, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1e, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, + 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x57, 0x0a, 0x05, 0x57, 0x61, 0x74, 0x63, 0x68, 0x12, 0x26, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x2e, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0x57, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x24, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x67, 0x65, 0x6e, 0x74, + 0x2e, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x57, 0x61, 0x74, 0x63, + 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x30, 0x01, 0x42, 0x17, 0x5a, 0x15, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x64, 0x2f, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x70, + 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_cluster_agent_proto_rawDescOnce sync.Once + file_cluster_agent_proto_rawDescData = file_cluster_agent_proto_rawDesc +) + +func file_cluster_agent_proto_rawDescGZIP() []byte { + file_cluster_agent_proto_rawDescOnce.Do(func() { + file_cluster_agent_proto_rawDescData = protoimpl.X.CompressGZIP(file_cluster_agent_proto_rawDescData) + }) + return file_cluster_agent_proto_rawDescData +} + +var file_cluster_agent_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_cluster_agent_proto_goTypes = []any{ + (*LogMetadata)(nil), // 0: cluster_agent.LogMetadata + (*LogMetadataFileInfo)(nil), // 1: cluster_agent.LogMetadataFileInfo + (*LogMetadataSpec)(nil), // 2: cluster_agent.LogMetadataSpec + (*LogMetadataList)(nil), // 3: cluster_agent.LogMetadataList + (*LogMetadataListRequest)(nil), // 4: cluster_agent.LogMetadataListRequest + (*LogMetadataWatchRequest)(nil), // 5: cluster_agent.LogMetadataWatchRequest + (*LogMetadataWatchEvent)(nil), // 6: cluster_agent.LogMetadataWatchEvent + (*timestamppb.Timestamp)(nil), // 7: google.protobuf.Timestamp +} +var file_cluster_agent_proto_depIdxs = []int32{ + 2, // 0: cluster_agent.LogMetadata.spec:type_name -> cluster_agent.LogMetadataSpec + 1, // 1: cluster_agent.LogMetadata.fileInfo:type_name -> cluster_agent.LogMetadataFileInfo + 7, // 2: cluster_agent.LogMetadataFileInfo.last_modified_at:type_name -> google.protobuf.Timestamp + 0, // 3: cluster_agent.LogMetadataList.items:type_name -> cluster_agent.LogMetadata + 0, // 4: cluster_agent.LogMetadataWatchEvent.object:type_name -> cluster_agent.LogMetadata + 4, // 5: cluster_agent.LogMetadataService.List:input_type -> cluster_agent.LogMetadataListRequest + 5, // 6: cluster_agent.LogMetadataService.Watch:input_type -> cluster_agent.LogMetadataWatchRequest + 3, // 7: cluster_agent.LogMetadataService.List:output_type -> cluster_agent.LogMetadataList + 6, // 8: cluster_agent.LogMetadataService.Watch:output_type -> cluster_agent.LogMetadataWatchEvent + 7, // [7:9] is the sub-list for method output_type + 5, // [5:7] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name +} + +func init() { file_cluster_agent_proto_init() } +func file_cluster_agent_proto_init() { + if File_cluster_agent_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_cluster_agent_proto_rawDesc, + NumEnums: 0, + NumMessages: 7, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_cluster_agent_proto_goTypes, + DependencyIndexes: file_cluster_agent_proto_depIdxs, + MessageInfos: file_cluster_agent_proto_msgTypes, + }.Build() + File_cluster_agent_proto = out.File + file_cluster_agent_proto_rawDesc = nil + file_cluster_agent_proto_goTypes = nil + file_cluster_agent_proto_depIdxs = nil +} diff --git a/modules/shared/clusteragentpb/cluster_agent_grpc.pb.go b/modules/shared/clusteragentpb/cluster_agent_grpc.pb.go new file mode 100644 index 00000000..0d402358 --- /dev/null +++ b/modules/shared/clusteragentpb/cluster_agent_grpc.pb.go @@ -0,0 +1,177 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.5.1 +// - protoc v5.29.3 +// source: cluster_agent.proto + +package clusteragentpb + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.64.0 or later. +const _ = grpc.SupportPackageIsVersion9 + +const ( + LogMetadataService_List_FullMethodName = "/cluster_agent.LogMetadataService/List" + LogMetadataService_Watch_FullMethodName = "/cluster_agent.LogMetadataService/Watch" +) + +// LogMetadataServiceClient is the client API for LogMetadataService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type LogMetadataServiceClient interface { + List(ctx context.Context, in *LogMetadataListRequest, opts ...grpc.CallOption) (*LogMetadataList, error) + Watch(ctx context.Context, in *LogMetadataWatchRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[LogMetadataWatchEvent], error) +} + +type logMetadataServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewLogMetadataServiceClient(cc grpc.ClientConnInterface) LogMetadataServiceClient { + return &logMetadataServiceClient{cc} +} + +func (c *logMetadataServiceClient) List(ctx context.Context, in *LogMetadataListRequest, opts ...grpc.CallOption) (*LogMetadataList, error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + out := new(LogMetadataList) + err := c.cc.Invoke(ctx, LogMetadataService_List_FullMethodName, in, out, cOpts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *logMetadataServiceClient) Watch(ctx context.Context, in *LogMetadataWatchRequest, opts ...grpc.CallOption) (grpc.ServerStreamingClient[LogMetadataWatchEvent], error) { + cOpts := append([]grpc.CallOption{grpc.StaticMethod()}, opts...) + stream, err := c.cc.NewStream(ctx, &LogMetadataService_ServiceDesc.Streams[0], LogMetadataService_Watch_FullMethodName, cOpts...) + if err != nil { + return nil, err + } + x := &grpc.GenericClientStream[LogMetadataWatchRequest, LogMetadataWatchEvent]{ClientStream: stream} + if err := x.ClientStream.SendMsg(in); err != nil { + return nil, err + } + if err := x.ClientStream.CloseSend(); err != nil { + return nil, err + } + return x, nil +} + +// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. +type LogMetadataService_WatchClient = grpc.ServerStreamingClient[LogMetadataWatchEvent] + +// LogMetadataServiceServer is the server API for LogMetadataService service. +// All implementations must embed UnimplementedLogMetadataServiceServer +// for forward compatibility. +type LogMetadataServiceServer interface { + List(context.Context, *LogMetadataListRequest) (*LogMetadataList, error) + Watch(*LogMetadataWatchRequest, grpc.ServerStreamingServer[LogMetadataWatchEvent]) error + mustEmbedUnimplementedLogMetadataServiceServer() +} + +// UnimplementedLogMetadataServiceServer must be embedded to have +// forward compatible implementations. +// +// NOTE: this should be embedded by value instead of pointer to avoid a nil +// pointer dereference when methods are called. +type UnimplementedLogMetadataServiceServer struct{} + +func (UnimplementedLogMetadataServiceServer) List(context.Context, *LogMetadataListRequest) (*LogMetadataList, error) { + return nil, status.Errorf(codes.Unimplemented, "method List not implemented") +} +func (UnimplementedLogMetadataServiceServer) Watch(*LogMetadataWatchRequest, grpc.ServerStreamingServer[LogMetadataWatchEvent]) error { + return status.Errorf(codes.Unimplemented, "method Watch not implemented") +} +func (UnimplementedLogMetadataServiceServer) mustEmbedUnimplementedLogMetadataServiceServer() {} +func (UnimplementedLogMetadataServiceServer) testEmbeddedByValue() {} + +// UnsafeLogMetadataServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to LogMetadataServiceServer will +// result in compilation errors. +type UnsafeLogMetadataServiceServer interface { + mustEmbedUnimplementedLogMetadataServiceServer() +} + +func RegisterLogMetadataServiceServer(s grpc.ServiceRegistrar, srv LogMetadataServiceServer) { + // If the following call pancis, it indicates UnimplementedLogMetadataServiceServer was + // embedded by pointer and is nil. This will cause panics if an + // unimplemented method is ever invoked, so we test this at initialization + // time to prevent it from happening at runtime later due to I/O. + if t, ok := srv.(interface{ testEmbeddedByValue() }); ok { + t.testEmbeddedByValue() + } + s.RegisterService(&LogMetadataService_ServiceDesc, srv) +} + +func _LogMetadataService_List_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(LogMetadataListRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(LogMetadataServiceServer).List(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: LogMetadataService_List_FullMethodName, + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(LogMetadataServiceServer).List(ctx, req.(*LogMetadataListRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _LogMetadataService_Watch_Handler(srv interface{}, stream grpc.ServerStream) error { + m := new(LogMetadataWatchRequest) + if err := stream.RecvMsg(m); err != nil { + return err + } + return srv.(LogMetadataServiceServer).Watch(m, &grpc.GenericServerStream[LogMetadataWatchRequest, LogMetadataWatchEvent]{ServerStream: stream}) +} + +// This type alias is provided for backwards compatibility with existing code that references the prior non-generic stream type by name. +type LogMetadataService_WatchServer = grpc.ServerStreamingServer[LogMetadataWatchEvent] + +// LogMetadataService_ServiceDesc is the grpc.ServiceDesc for LogMetadataService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var LogMetadataService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "cluster_agent.LogMetadataService", + HandlerType: (*LogMetadataServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "List", + Handler: _LogMetadataService_List_Handler, + }, + }, + Streams: []grpc.StreamDesc{ + { + StreamName: "Watch", + Handler: _LogMetadataService_Watch_Handler, + ServerStreams: true, + }, + }, + Metadata: "cluster_agent.proto", +} diff --git a/modules/shared/clusteragentpb/clusteragentpb.go b/modules/shared/clusteragentpb/clusteragentpb.go new file mode 100644 index 00000000..0469ed7a --- /dev/null +++ b/modules/shared/clusteragentpb/clusteragentpb.go @@ -0,0 +1,3 @@ +package clusteragentpb + +//go:generate protoc --proto_path=../../../proto --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative ../../../proto/cluster_agent.proto diff --git a/modules/shared/clusterapipb/cluster_api.pb.go b/modules/shared/clusterapipb/cluster_api.pb.go new file mode 100644 index 00000000..b3367825 --- /dev/null +++ b/modules/shared/clusterapipb/cluster_api.pb.go @@ -0,0 +1,541 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.36.2 +// protoc v5.29.3 +// source: cluster_api.proto + +package clusterapipb + +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + timestamppb "google.golang.org/protobuf/types/known/timestamppb" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type LogMetadata struct { + state protoimpl.MessageState `protogen:"open.v1"` + Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + Spec *LogMetadataSpec `protobuf:"bytes,2,opt,name=spec,proto3" json:"spec,omitempty"` + FileInfo *LogMetadataFileInfo `protobuf:"bytes,3,opt,name=fileInfo,proto3" json:"fileInfo,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *LogMetadata) Reset() { + *x = LogMetadata{} + mi := &file_cluster_api_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *LogMetadata) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LogMetadata) ProtoMessage() {} + +func (x *LogMetadata) ProtoReflect() protoreflect.Message { + mi := &file_cluster_api_proto_msgTypes[0] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LogMetadata.ProtoReflect.Descriptor instead. +func (*LogMetadata) Descriptor() ([]byte, []int) { + return file_cluster_api_proto_rawDescGZIP(), []int{0} +} + +func (x *LogMetadata) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *LogMetadata) GetSpec() *LogMetadataSpec { + if x != nil { + return x.Spec + } + return nil +} + +func (x *LogMetadata) GetFileInfo() *LogMetadataFileInfo { + if x != nil { + return x.FileInfo + } + return nil +} + +type LogMetadataFileInfo struct { + state protoimpl.MessageState `protogen:"open.v1"` + Size int64 `protobuf:"varint,1,opt,name=size,proto3" json:"size,omitempty"` + LastModifiedAt *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=last_modified_at,json=lastModifiedAt,proto3" json:"last_modified_at,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *LogMetadataFileInfo) Reset() { + *x = LogMetadataFileInfo{} + mi := &file_cluster_api_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *LogMetadataFileInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LogMetadataFileInfo) ProtoMessage() {} + +func (x *LogMetadataFileInfo) ProtoReflect() protoreflect.Message { + mi := &file_cluster_api_proto_msgTypes[1] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LogMetadataFileInfo.ProtoReflect.Descriptor instead. +func (*LogMetadataFileInfo) Descriptor() ([]byte, []int) { + return file_cluster_api_proto_rawDescGZIP(), []int{1} +} + +func (x *LogMetadataFileInfo) GetSize() int64 { + if x != nil { + return x.Size + } + return 0 +} + +func (x *LogMetadataFileInfo) GetLastModifiedAt() *timestamppb.Timestamp { + if x != nil { + return x.LastModifiedAt + } + return nil +} + +type LogMetadataSpec struct { + state protoimpl.MessageState `protogen:"open.v1"` + NodeName string `protobuf:"bytes,1,opt,name=node_name,json=nodeName,proto3" json:"node_name,omitempty"` + Namespace string `protobuf:"bytes,2,opt,name=namespace,proto3" json:"namespace,omitempty"` + PodName string `protobuf:"bytes,3,opt,name=pod_name,json=podName,proto3" json:"pod_name,omitempty"` + ContainerName string `protobuf:"bytes,4,opt,name=container_name,json=containerName,proto3" json:"container_name,omitempty"` + ContainerId string `protobuf:"bytes,5,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *LogMetadataSpec) Reset() { + *x = LogMetadataSpec{} + mi := &file_cluster_api_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *LogMetadataSpec) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LogMetadataSpec) ProtoMessage() {} + +func (x *LogMetadataSpec) ProtoReflect() protoreflect.Message { + mi := &file_cluster_api_proto_msgTypes[2] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LogMetadataSpec.ProtoReflect.Descriptor instead. +func (*LogMetadataSpec) Descriptor() ([]byte, []int) { + return file_cluster_api_proto_rawDescGZIP(), []int{2} +} + +func (x *LogMetadataSpec) GetNodeName() string { + if x != nil { + return x.NodeName + } + return "" +} + +func (x *LogMetadataSpec) GetNamespace() string { + if x != nil { + return x.Namespace + } + return "" +} + +func (x *LogMetadataSpec) GetPodName() string { + if x != nil { + return x.PodName + } + return "" +} + +func (x *LogMetadataSpec) GetContainerName() string { + if x != nil { + return x.ContainerName + } + return "" +} + +func (x *LogMetadataSpec) GetContainerId() string { + if x != nil { + return x.ContainerId + } + return "" +} + +type LogMetadataList struct { + state protoimpl.MessageState `protogen:"open.v1"` + Items []*LogMetadata `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *LogMetadataList) Reset() { + *x = LogMetadataList{} + mi := &file_cluster_api_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *LogMetadataList) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LogMetadataList) ProtoMessage() {} + +func (x *LogMetadataList) ProtoReflect() protoreflect.Message { + mi := &file_cluster_api_proto_msgTypes[3] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LogMetadataList.ProtoReflect.Descriptor instead. +func (*LogMetadataList) Descriptor() ([]byte, []int) { + return file_cluster_api_proto_rawDescGZIP(), []int{3} +} + +func (x *LogMetadataList) GetItems() []*LogMetadata { + if x != nil { + return x.Items + } + return nil +} + +type LogMetadataListRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Namespaces []string `protobuf:"bytes,1,rep,name=namespaces,proto3" json:"namespaces,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *LogMetadataListRequest) Reset() { + *x = LogMetadataListRequest{} + mi := &file_cluster_api_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *LogMetadataListRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LogMetadataListRequest) ProtoMessage() {} + +func (x *LogMetadataListRequest) ProtoReflect() protoreflect.Message { + mi := &file_cluster_api_proto_msgTypes[4] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LogMetadataListRequest.ProtoReflect.Descriptor instead. +func (*LogMetadataListRequest) Descriptor() ([]byte, []int) { + return file_cluster_api_proto_rawDescGZIP(), []int{4} +} + +func (x *LogMetadataListRequest) GetNamespaces() []string { + if x != nil { + return x.Namespaces + } + return nil +} + +type LogMetadataWatchRequest struct { + state protoimpl.MessageState `protogen:"open.v1"` + Namespaces []string `protobuf:"bytes,1,rep,name=namespaces,proto3" json:"namespaces,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *LogMetadataWatchRequest) Reset() { + *x = LogMetadataWatchRequest{} + mi := &file_cluster_api_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *LogMetadataWatchRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LogMetadataWatchRequest) ProtoMessage() {} + +func (x *LogMetadataWatchRequest) ProtoReflect() protoreflect.Message { + mi := &file_cluster_api_proto_msgTypes[5] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LogMetadataWatchRequest.ProtoReflect.Descriptor instead. +func (*LogMetadataWatchRequest) Descriptor() ([]byte, []int) { + return file_cluster_api_proto_rawDescGZIP(), []int{5} +} + +func (x *LogMetadataWatchRequest) GetNamespaces() []string { + if x != nil { + return x.Namespaces + } + return nil +} + +type LogMetadataWatchEvent struct { + state protoimpl.MessageState `protogen:"open.v1"` + Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"` + Object *LogMetadata `protobuf:"bytes,2,opt,name=object,proto3" json:"object,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *LogMetadataWatchEvent) Reset() { + *x = LogMetadataWatchEvent{} + mi := &file_cluster_api_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *LogMetadataWatchEvent) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LogMetadataWatchEvent) ProtoMessage() {} + +func (x *LogMetadataWatchEvent) ProtoReflect() protoreflect.Message { + mi := &file_cluster_api_proto_msgTypes[6] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LogMetadataWatchEvent.ProtoReflect.Descriptor instead. +func (*LogMetadataWatchEvent) Descriptor() ([]byte, []int) { + return file_cluster_api_proto_rawDescGZIP(), []int{6} +} + +func (x *LogMetadataWatchEvent) GetType() string { + if x != nil { + return x.Type + } + return "" +} + +func (x *LogMetadataWatchEvent) GetObject() *LogMetadata { + if x != nil { + return x.Object + } + return nil +} + +var File_cluster_api_proto protoreflect.FileDescriptor + +var file_cluster_api_proto_rawDesc = []byte{ + 0x0a, 0x11, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0x8d, 0x01, 0x0a, 0x0b, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, + 0x64, 0x12, 0x30, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x6f, + 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x70, 0x65, 0x63, 0x52, 0x04, 0x73, + 0x70, 0x65, 0x63, 0x12, 0x3c, 0x0a, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, + 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x46, + 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x22, 0x6f, 0x0a, 0x13, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0x46, 0x69, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x12, 0x44, 0x0a, 0x10, + 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x5f, 0x61, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x41, 0x74, 0x22, 0xb1, 0x01, 0x0a, 0x0f, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, + 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, + 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, + 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x22, 0x41, 0x0a, 0x0f, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2e, 0x0a, 0x05, 0x69, 0x74, 0x65, + 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x38, 0x0a, 0x16, 0x4c, 0x6f, 0x67, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x73, 0x22, 0x39, 0x0a, 0x17, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x57, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, + 0x0a, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x73, 0x22, 0x5d, + 0x0a, 0x15, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x57, 0x61, 0x74, + 0x63, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x30, 0x0a, 0x06, 0x6f, + 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x63, 0x6c, + 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x32, 0xb4, 0x01, + 0x0a, 0x12, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x12, 0x49, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x23, 0x2e, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x6f, 0x67, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1c, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, + 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x53, 0x0a, 0x05, 0x57, 0x61, 0x74, 0x63, 0x68, 0x12, 0x24, 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, + 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x6f, 0x67, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0x57, 0x61, 0x74, 0x63, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, + 0x2e, 0x63, 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x2e, 0x4c, 0x6f, 0x67, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x57, 0x61, 0x74, 0x63, 0x68, 0x45, 0x76, 0x65, + 0x6e, 0x74, 0x30, 0x01, 0x42, 0x15, 0x5a, 0x13, 0x73, 0x68, 0x61, 0x72, 0x65, 0x64, 0x2f, 0x63, + 0x6c, 0x75, 0x73, 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, +} + +var ( + file_cluster_api_proto_rawDescOnce sync.Once + file_cluster_api_proto_rawDescData = file_cluster_api_proto_rawDesc +) + +func file_cluster_api_proto_rawDescGZIP() []byte { + file_cluster_api_proto_rawDescOnce.Do(func() { + file_cluster_api_proto_rawDescData = protoimpl.X.CompressGZIP(file_cluster_api_proto_rawDescData) + }) + return file_cluster_api_proto_rawDescData +} + +var file_cluster_api_proto_msgTypes = make([]protoimpl.MessageInfo, 7) +var file_cluster_api_proto_goTypes = []any{ + (*LogMetadata)(nil), // 0: cluster_api.LogMetadata + (*LogMetadataFileInfo)(nil), // 1: cluster_api.LogMetadataFileInfo + (*LogMetadataSpec)(nil), // 2: cluster_api.LogMetadataSpec + (*LogMetadataList)(nil), // 3: cluster_api.LogMetadataList + (*LogMetadataListRequest)(nil), // 4: cluster_api.LogMetadataListRequest + (*LogMetadataWatchRequest)(nil), // 5: cluster_api.LogMetadataWatchRequest + (*LogMetadataWatchEvent)(nil), // 6: cluster_api.LogMetadataWatchEvent + (*timestamppb.Timestamp)(nil), // 7: google.protobuf.Timestamp +} +var file_cluster_api_proto_depIdxs = []int32{ + 2, // 0: cluster_api.LogMetadata.spec:type_name -> cluster_api.LogMetadataSpec + 1, // 1: cluster_api.LogMetadata.fileInfo:type_name -> cluster_api.LogMetadataFileInfo + 7, // 2: cluster_api.LogMetadataFileInfo.last_modified_at:type_name -> google.protobuf.Timestamp + 0, // 3: cluster_api.LogMetadataList.items:type_name -> cluster_api.LogMetadata + 0, // 4: cluster_api.LogMetadataWatchEvent.object:type_name -> cluster_api.LogMetadata + 4, // 5: cluster_api.LogMetadataService.List:input_type -> cluster_api.LogMetadataListRequest + 5, // 6: cluster_api.LogMetadataService.Watch:input_type -> cluster_api.LogMetadataWatchRequest + 3, // 7: cluster_api.LogMetadataService.List:output_type -> cluster_api.LogMetadataList + 6, // 8: cluster_api.LogMetadataService.Watch:output_type -> cluster_api.LogMetadataWatchEvent + 7, // [7:9] is the sub-list for method output_type + 5, // [5:7] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name +} + +func init() { file_cluster_api_proto_init() } +func file_cluster_api_proto_init() { + if File_cluster_api_proto != nil { + return + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_cluster_api_proto_rawDesc, + NumEnums: 0, + NumMessages: 7, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_cluster_api_proto_goTypes, + DependencyIndexes: file_cluster_api_proto_depIdxs, + MessageInfos: file_cluster_api_proto_msgTypes, + }.Build() + File_cluster_api_proto = out.File + file_cluster_api_proto_rawDesc = nil + file_cluster_api_proto_goTypes = nil + file_cluster_api_proto_depIdxs = nil +} diff --git a/modules/common/agentpb/agent_grpc.pb.go b/modules/shared/clusterapipb/cluster_api_grpc.pb.go similarity index 95% rename from modules/common/agentpb/agent_grpc.pb.go rename to modules/shared/clusterapipb/cluster_api_grpc.pb.go index 53dc5b98..a822d953 100644 --- a/modules/common/agentpb/agent_grpc.pb.go +++ b/modules/shared/clusterapipb/cluster_api_grpc.pb.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -15,10 +15,10 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.5.1 -// - protoc v5.28.2 -// source: agent.proto +// - protoc v5.29.3 +// source: cluster_api.proto -package agentpb +package clusterapipb import ( context "context" @@ -33,8 +33,8 @@ import ( const _ = grpc.SupportPackageIsVersion9 const ( - LogMetadataService_List_FullMethodName = "/agentpb.LogMetadataService/List" - LogMetadataService_Watch_FullMethodName = "/agentpb.LogMetadataService/Watch" + LogMetadataService_List_FullMethodName = "/cluster_api.LogMetadataService/List" + LogMetadataService_Watch_FullMethodName = "/cluster_api.LogMetadataService/Watch" ) // LogMetadataServiceClient is the client API for LogMetadataService service. @@ -158,7 +158,7 @@ type LogMetadataService_WatchServer = grpc.ServerStreamingServer[LogMetadataWatc // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) var LogMetadataService_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "agentpb.LogMetadataService", + ServiceName: "cluster_api.LogMetadataService", HandlerType: (*LogMetadataServiceServer)(nil), Methods: []grpc.MethodDesc{ { @@ -173,5 +173,5 @@ var LogMetadataService_ServiceDesc = grpc.ServiceDesc{ ServerStreams: true, }, }, - Metadata: "agent.proto", + Metadata: "cluster_api.proto", } diff --git a/modules/common/agentpb/agentpb.go b/modules/shared/clusterapipb/clusterapipb.go similarity index 65% rename from modules/common/agentpb/agentpb.go rename to modules/shared/clusterapipb/clusterapipb.go index 0b46e91a..eca70a78 100644 --- a/modules/common/agentpb/agentpb.go +++ b/modules/shared/clusterapipb/clusterapipb.go @@ -1,3 +1,3 @@ -package agentpb +package clusterapipb -//go:generate protoc --proto_path=../../../proto --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative ../../../proto/agent.proto +//go:generate protoc --proto_path=../../../proto --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative ../../../proto/cluster_api.proto diff --git a/modules/common/config/config.go b/modules/shared/config/config.go similarity index 55% rename from modules/common/config/config.go rename to modules/shared/config/config.go index 5823d030..9ce47728 100644 --- a/modules/common/config/config.go +++ b/modules/shared/config/config.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -39,24 +39,35 @@ import ( type AuthMode string const ( - AuthModeCluster AuthMode = "cluster" - AuthModeToken AuthMode = "token" - AuthModeLocal AuthMode = "local" + AuthModeAuto AuthMode = "auto" + AuthModeToken AuthMode = "token" +) + +// Environment +type Environment string + +const ( + EnvironmentCluster Environment = "cluster" + EnvironmentDesktop Environment = "desktop" ) // Application configuration type Config struct { - AuthMode AuthMode `mapstructure:"auth-mode"` AllowedNamespaces []string `mapstructure:"allowed-namespaces"` - KubeConfig string `mapstructure:"kube-config"` - // server options - Server struct { - Addr string `validate:"omitempty,hostname_port"` - BasePath string `mapstructure:"base-path"` - GinMode string `mapstructure:"gin-mode" validate:"omitempty,oneof=debug release"` - AgentDispatchUrl string `mapstructure:"agent-dispatch-url"` - ExtensionsEnabled bool `mapstructure:"extensions-enabled"` + // dashboard options + Dashboard struct { + Addr string `validate:"omitempty,hostname_port"` + AuthMode AuthMode `mapstructure:"auth-mode"` + BasePath string `mapstructure:"base-path"` + ClusterAPIEndpoint string `mapstructure:"cluster-api-endpoint"` + GinMode string `mapstructure:"gin-mode" validate:"omitempty,oneof=debug release"` + Environment Environment + + // UI optins + UI struct { + ClusterAPIEnabled bool `mapstructure:"cluster-api-enabled"` + } // session options Session struct { @@ -126,8 +137,67 @@ type Config struct { } } - // agent options - Agent struct { + // Cluster API options + ClusterAPI struct { + Addr string `validate:"omitempty,hostname_port"` + GinMode string `mapstructure:"gin-mode" validate:"omitempty,oneof=debug release"` + BasePath string `mapstructure:"base-path"` + ClusterAgentDispatchUrl string `mapstructure:"cluster-agent-dispatch-url"` + + // csrf options + CSRF struct { + Enabled bool + Secret string + FieldName string `mapstructure:"field-name"` + + // cookie options + Cookie struct { + Name string + Path string + Domain string + MaxAge int `mapstructure:"max-age"` + Secure bool + HttpOnly bool `mapstructure:"http-only"` + SameSite csrf.SameSiteMode `mapstructure:"same-site"` + } + } + + // TLS options + TLS struct { + // enable tls termination + Enabled bool + + // TLS certificate file + CertFile string `mapstructure:"cert-file" validate:"omitempty,file"` + + // TLS certificate key file + KeyFile string `mapstructure:"key-file" validate:"omitempty,file"` + } + + // logging options + Logging struct { + // enable logging + Enabled bool + + // log level + Level string `validate:"oneof=debug info warn error disabled"` + + // log format + Format string `validate:"oneof=json pretty"` + + // access-log options + AccessLog struct { + // enable access-log + Enabled bool + + // hide health checks + HideHealthChecks bool `mapstructure:"hide-health-checks"` + } `mapstructure:"access-log"` + } + } `mapstructure:"cluster-api"` + + // Cluster Agent options + ClusterAgent struct { Addr string `validate:"omitempty,hostname_port"` ContainerLogsDir string `mapstructure:"container-logs-dir"` @@ -154,7 +224,7 @@ type Config struct { // log format Format string `validate:"oneof=json pretty"` } - } + } `mapstructure:"cluster-agent"` } // Validate config @@ -163,47 +233,66 @@ func (cfg *Config) validate() error { } func DefaultConfig() *Config { - home, _ := os.UserHomeDir() - cfg := &Config{} - cfg.AuthMode = AuthModeToken cfg.AllowedNamespaces = []string{} - cfg.KubeConfig = filepath.Join(home, ".kube", "config") - - cfg.Server.Addr = ":4000" - cfg.Server.BasePath = "/" - cfg.Server.GinMode = "release" - cfg.Server.AgentDispatchUrl = "kubernetes://kubetail-agent:50051" - cfg.Server.Session.Secret = "" - cfg.Server.Session.Cookie.Name = "session" - cfg.Server.Session.Cookie.Path = "/" - cfg.Server.Session.Cookie.Domain = "" - cfg.Server.Session.Cookie.MaxAge = 86400 * 30 // 30 days - cfg.Server.Session.Cookie.Secure = false - cfg.Server.Session.Cookie.HttpOnly = true - cfg.Server.Session.Cookie.SameSite = http.SameSiteLaxMode - cfg.Server.CSRF.Enabled = true - cfg.Server.CSRF.Secret = "" - cfg.Server.CSRF.FieldName = "csrf_token" - cfg.Server.CSRF.Cookie.Name = "csrf" - cfg.Server.CSRF.Cookie.Path = "/" - cfg.Server.CSRF.Cookie.Domain = "" - cfg.Server.CSRF.Cookie.MaxAge = 60 * 60 * 12 // 12 hours - cfg.Server.CSRF.Cookie.Secure = false - cfg.Server.CSRF.Cookie.HttpOnly = true - cfg.Server.CSRF.Cookie.SameSite = csrf.SameSiteStrictMode - cfg.Server.Logging.Enabled = true - cfg.Server.Logging.Level = "info" - cfg.Server.Logging.Format = "json" - cfg.Server.Logging.AccessLog.Enabled = true - cfg.Server.Logging.AccessLog.HideHealthChecks = false - - cfg.Agent.Addr = ":50051" - cfg.Agent.ContainerLogsDir = "/var/log/containers" - cfg.Agent.Logging.Enabled = true - cfg.Agent.Logging.Level = "info" - cfg.Agent.Logging.Format = "json" + + cfg.Dashboard.Addr = ":80" + cfg.Dashboard.AuthMode = AuthModeAuto + cfg.Dashboard.BasePath = "/" + cfg.Dashboard.ClusterAPIEndpoint = "http://kubetail-cluster-api" + cfg.Dashboard.Environment = EnvironmentDesktop + cfg.Dashboard.GinMode = "release" + cfg.Dashboard.CSRF.Enabled = true + cfg.Dashboard.CSRF.Secret = "" + cfg.Dashboard.CSRF.FieldName = "csrf_token" + cfg.Dashboard.CSRF.Cookie.Name = "kubetail_dashboard_csrf" + cfg.Dashboard.CSRF.Cookie.Path = "/" + cfg.Dashboard.CSRF.Cookie.Domain = "" + cfg.Dashboard.CSRF.Cookie.MaxAge = 60 * 60 * 12 // 12 hours + cfg.Dashboard.CSRF.Cookie.Secure = false + cfg.Dashboard.CSRF.Cookie.HttpOnly = true + cfg.Dashboard.CSRF.Cookie.SameSite = csrf.SameSiteStrictMode + cfg.Dashboard.Logging.Enabled = true + cfg.Dashboard.Logging.Level = "info" + cfg.Dashboard.Logging.Format = "json" + cfg.Dashboard.Logging.AccessLog.Enabled = true + cfg.Dashboard.Logging.AccessLog.HideHealthChecks = false + cfg.Dashboard.Session.Secret = "" + cfg.Dashboard.Session.Cookie.Name = "kubetail_dashboard_session" + cfg.Dashboard.Session.Cookie.Path = "/" + cfg.Dashboard.Session.Cookie.Domain = "" + cfg.Dashboard.Session.Cookie.MaxAge = 86400 * 30 // 30 days + cfg.Dashboard.Session.Cookie.Secure = false + cfg.Dashboard.Session.Cookie.HttpOnly = true + cfg.Dashboard.Session.Cookie.SameSite = http.SameSiteLaxMode + cfg.Dashboard.UI.ClusterAPIEnabled = true + + cfg.ClusterAPI.Addr = ":80" + cfg.ClusterAPI.BasePath = "/" + cfg.ClusterAPI.ClusterAgentDispatchUrl = "kubernetes://kubetail-cluster-agent:50051" + cfg.ClusterAPI.GinMode = "release" + cfg.ClusterAPI.CSRF.Enabled = true + cfg.ClusterAPI.CSRF.Secret = "" + cfg.ClusterAPI.CSRF.FieldName = "csrf_token" + cfg.ClusterAPI.CSRF.Cookie.Name = "kubetail_cluster_api_csrf" + cfg.ClusterAPI.CSRF.Cookie.Path = "/" + cfg.ClusterAPI.CSRF.Cookie.Domain = "" + cfg.ClusterAPI.CSRF.Cookie.MaxAge = 60 * 60 * 12 // 12 hours + cfg.ClusterAPI.CSRF.Cookie.Secure = false + cfg.ClusterAPI.CSRF.Cookie.HttpOnly = true + cfg.ClusterAPI.CSRF.Cookie.SameSite = csrf.SameSiteStrictMode + cfg.ClusterAPI.Logging.Enabled = true + cfg.ClusterAPI.Logging.Level = "info" + cfg.ClusterAPI.Logging.Format = "json" + cfg.ClusterAPI.Logging.AccessLog.Enabled = true + cfg.ClusterAPI.Logging.AccessLog.HideHealthChecks = false + + cfg.ClusterAgent.Addr = ":50051" + cfg.ClusterAgent.ContainerLogsDir = "/var/log/containers" + cfg.ClusterAgent.Logging.Enabled = true + cfg.ClusterAgent.Logging.Level = "info" + cfg.ClusterAgent.Logging.Format = "json" return cfg } @@ -221,12 +310,10 @@ func authModeDecodeHook(f reflect.Type, t reflect.Type, data interface{}) (inter var authMode AuthMode authModeStr := strings.ToLower(data.(string)) switch authModeStr { - case "cluster": - authMode = AuthModeCluster + case "auto": + authMode = AuthModeAuto case "token": authMode = AuthModeToken - case "local": - authMode = AuthModeLocal default: return nil, fmt.Errorf("invalid AuthMode value: %s", authModeStr) } @@ -234,6 +321,30 @@ func authModeDecodeHook(f reflect.Type, t reflect.Type, data interface{}) (inter return authMode, nil } +// Custom unmarshaler for Environment +func environmentDecodeHook(f reflect.Type, t reflect.Type, data interface{}) (interface{}, error) { + if f.Kind() != reflect.String { + return data, nil + } + + if t != reflect.TypeOf(Environment("")) { + return data, nil + } + + var env Environment + envStr := strings.ToLower(data.(string)) + switch envStr { + case "cluster": + env = EnvironmentCluster + case "desktop": + env = EnvironmentDesktop + default: + return nil, fmt.Errorf("invalid Environment value: %s", envStr) + } + + return env, nil +} + // Custom unmarshaler for http.SameSite func httpSameSiteDecodeHook(f reflect.Type, t reflect.Type, data interface{}) (interface{}, error) { if f.Kind() != reflect.String { @@ -309,6 +420,7 @@ func NewConfig(v *viper.Viper, f string) (*Config, error) { // unmarshal hookFunc := mapstructure.ComposeDecodeHookFunc( authModeDecodeHook, + environmentDecodeHook, httpSameSiteDecodeHook, csrfSameSiteDecodeHook, ) diff --git a/modules/common/config/config_test.go b/modules/shared/config/config_test.go similarity index 65% rename from modules/common/config/config_test.go rename to modules/shared/config/config_test.go index 119b9c36..94887cb8 100644 --- a/modules/common/config/config_test.go +++ b/modules/shared/config/config_test.go @@ -7,11 +7,12 @@ import ( "github.com/spf13/viper" "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" ) var cfg1 = ` -auth-mode: cluster -server: +dashboard: + environment: cluster session: cookie: same-site: strict @@ -27,7 +28,7 @@ func TestConfig(t *testing.T) { tmpFile.Close() cfg, err := NewConfig(viper.New(), tmpFile.Name()) - assert.Nil(t, err) - assert.Equal(t, AuthModeCluster, cfg.AuthMode) - assert.Equal(t, http.SameSiteStrictMode, cfg.Server.Session.Cookie.SameSite) + require.Nil(t, err) + assert.Equal(t, EnvironmentCluster, cfg.Dashboard.Environment) + assert.Equal(t, http.SameSiteStrictMode, cfg.Dashboard.Session.Cookie.SameSite) } diff --git a/modules/shared/go.mod b/modules/shared/go.mod new file mode 100644 index 00000000..6d4cb346 --- /dev/null +++ b/modules/shared/go.mod @@ -0,0 +1,189 @@ +module github.com/kubetail-org/kubetail/modules/shared + +go 1.23.0 + +toolchain go1.23.4 + +require ( + github.com/99designs/gqlgen v0.17.63 + github.com/gin-contrib/requestid v1.0.4 + github.com/gin-gonic/gin v1.10.0 + github.com/go-playground/validator/v10 v10.24.0 + github.com/gorilla/csrf v1.7.2 + github.com/mitchellh/mapstructure v1.5.0 + github.com/rs/zerolog v1.33.0 + github.com/spf13/viper v1.19.0 + github.com/stretchr/testify v1.10.0 + github.com/vektah/gqlparser/v2 v2.5.21 + google.golang.org/grpc v1.69.4 + google.golang.org/protobuf v1.36.2 + helm.sh/helm/v3 v3.16.4 + k8s.io/utils v0.0.0-20241210054802-24370beab758 +) + +require ( + dario.cat/mergo v1.0.1 // indirect + github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 // indirect + github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect + github.com/BurntSushi/toml v1.4.0 // indirect + github.com/MakeNowJust/heredoc v1.0.0 // indirect + github.com/Masterminds/goutils v1.1.1 // indirect + github.com/Masterminds/semver/v3 v3.3.1 // indirect + github.com/Masterminds/sprig/v3 v3.3.0 // indirect + github.com/Masterminds/squirrel v1.5.4 // indirect + github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 // indirect + github.com/beorn7/perks v1.0.1 // indirect + github.com/blang/semver/v4 v4.0.0 // indirect + github.com/bytedance/sonic v1.12.7 // indirect + github.com/bytedance/sonic/loader v0.2.3 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect + github.com/chai2010/gettext-go v1.0.3 // indirect + github.com/cloudwego/base64x v0.1.4 // indirect + github.com/containerd/containerd v1.7.25 // indirect + github.com/containerd/errdefs v1.0.0 // indirect + github.com/containerd/log v0.1.0 // indirect + github.com/containerd/platforms v0.2.1 // indirect + github.com/cyphar/filepath-securejoin v0.4.0 // indirect + github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect + github.com/distribution/reference v0.6.0 // indirect + github.com/docker/cli v27.5.0+incompatible // indirect + github.com/docker/distribution v2.8.3+incompatible // indirect + github.com/docker/docker v27.5.0+incompatible // indirect + github.com/docker/docker-credential-helpers v0.8.2 // indirect + github.com/docker/go-connections v0.5.0 // indirect + github.com/docker/go-metrics v0.0.1 // indirect + github.com/emicklei/go-restful/v3 v3.12.1 // indirect + github.com/evanphx/json-patch v5.9.0+incompatible // indirect + github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f // indirect + github.com/fatih/color v1.18.0 // indirect + github.com/felixge/httpsnoop v1.0.4 // indirect + github.com/fsnotify/fsnotify v1.8.0 // indirect + github.com/fxamacker/cbor/v2 v2.7.0 // indirect + github.com/gabriel-vasile/mimetype v1.4.8 // indirect + github.com/gin-contrib/sse v1.0.0 // indirect + github.com/go-errors/errors v1.5.1 // indirect + github.com/go-gorp/gorp/v3 v3.1.0 // indirect + github.com/go-logr/logr v1.4.2 // indirect + github.com/go-logr/stdr v1.2.2 // indirect + github.com/go-openapi/jsonpointer v0.21.0 // indirect + github.com/go-openapi/jsonreference v0.21.0 // indirect + github.com/go-openapi/swag v0.23.0 // indirect + github.com/go-playground/locales v0.14.1 // indirect + github.com/go-playground/universal-translator v0.18.1 // indirect + github.com/gobwas/glob v0.2.3 // indirect + github.com/goccy/go-json v0.10.4 // indirect + github.com/gogo/protobuf v1.3.2 // indirect + github.com/golang/protobuf v1.5.4 // indirect + github.com/google/btree v1.1.3 // indirect + github.com/google/gnostic-models v0.6.9 // indirect + github.com/google/go-cmp v0.6.0 // indirect + github.com/google/gofuzz v1.2.0 // indirect + github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect + github.com/google/uuid v1.6.0 // indirect + github.com/gorilla/mux v1.8.1 // indirect + github.com/gorilla/securecookie v1.1.2 // indirect + github.com/gorilla/websocket v1.5.3 // indirect + github.com/gosuri/uitable v0.0.4 // indirect + github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 // indirect + github.com/hashicorp/errwrap v1.1.0 // indirect + github.com/hashicorp/go-multierror v1.1.1 // indirect + github.com/hashicorp/hcl v1.0.0 // indirect + github.com/huandu/xstrings v1.5.0 // indirect + github.com/inconshreveable/mousetrap v1.1.0 // indirect + github.com/jmoiron/sqlx v1.4.0 // indirect + github.com/josharian/intern v1.0.0 // indirect + github.com/json-iterator/go v1.1.12 // indirect + github.com/klauspost/compress v1.17.11 // indirect + github.com/klauspost/cpuid/v2 v2.2.9 // indirect + github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 // indirect + github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 // indirect + github.com/leodido/go-urn v1.4.0 // indirect + github.com/lib/pq v1.10.9 // indirect + github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de // indirect + github.com/magiconair/properties v1.8.9 // indirect + github.com/mailru/easyjson v0.9.0 // indirect + github.com/mattn/go-colorable v0.1.14 // indirect + github.com/mattn/go-isatty v0.0.20 // indirect + github.com/mattn/go-runewidth v0.0.16 // indirect + github.com/mitchellh/copystructure v1.2.0 // indirect + github.com/mitchellh/go-wordwrap v1.0.1 // indirect + github.com/mitchellh/reflectwalk v1.0.2 // indirect + github.com/moby/locker v1.0.1 // indirect + github.com/moby/spdystream v0.5.0 // indirect + github.com/moby/term v0.5.2 // indirect + github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect + github.com/modern-go/reflect2 v1.0.2 // indirect + github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 // indirect + github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect + github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f // indirect + github.com/opencontainers/go-digest v1.0.0 // indirect + github.com/opencontainers/image-spec v1.1.0 // indirect + github.com/pelletier/go-toml/v2 v2.2.3 // indirect + github.com/peterbourgon/diskv v2.0.1+incompatible // indirect + github.com/pkg/errors v0.9.1 // indirect + github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect + github.com/prometheus/client_golang v1.20.5 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.61.0 // indirect + github.com/prometheus/procfs v0.15.1 // indirect + github.com/rivo/uniseg v0.4.7 // indirect + github.com/rubenv/sql-migrate v1.7.1 // indirect + github.com/russross/blackfriday/v2 v2.1.0 // indirect + github.com/sagikazarmark/locafero v0.7.0 // indirect + github.com/sagikazarmark/slog-shim v0.1.0 // indirect + github.com/shopspring/decimal v1.4.0 // indirect + github.com/sirupsen/logrus v1.9.3 // indirect + github.com/sosodev/duration v1.3.1 // indirect + github.com/sourcegraph/conc v0.3.0 // indirect + github.com/spf13/afero v1.12.0 // indirect + github.com/spf13/cast v1.7.1 // indirect + github.com/spf13/cobra v1.8.1 // indirect + github.com/spf13/pflag v1.0.5 // indirect + github.com/subosito/gotenv v1.6.0 // indirect + github.com/twitchyliquid64/golang-asm v0.15.1 // indirect + github.com/ugorji/go/codec v1.2.12 // indirect + github.com/x448/float16 v0.8.4 // indirect + github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // indirect + github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 // indirect + github.com/xeipuuv/gojsonschema v1.2.0 // indirect + github.com/xlab/treeprint v1.2.0 // indirect + go.opentelemetry.io/auto/sdk v1.1.0 // indirect + go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 // indirect + go.opentelemetry.io/otel v1.33.0 // indirect + go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.29.0 // indirect + go.opentelemetry.io/otel/metric v1.33.0 // indirect + go.opentelemetry.io/otel/trace v1.33.0 // indirect + go.uber.org/multierr v1.11.0 // indirect + golang.org/x/arch v0.13.0 // indirect + golang.org/x/crypto v0.32.0 // indirect + golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 // indirect + golang.org/x/net v0.34.0 // indirect + golang.org/x/oauth2 v0.25.0 // indirect + golang.org/x/sync v0.10.0 // indirect + golang.org/x/sys v0.29.0 // indirect + golang.org/x/term v0.28.0 // indirect + golang.org/x/text v0.21.0 // indirect + golang.org/x/time v0.9.0 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20250106144421-5f5ef82da422 // indirect + gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect + gopkg.in/inf.v0 v0.9.1 // indirect + gopkg.in/ini.v1 v1.67.0 // indirect + gopkg.in/yaml.v3 v3.0.1 // indirect + gotest.tools/v3 v3.5.0 // indirect + k8s.io/api v0.32.0 // indirect + k8s.io/apiextensions-apiserver v0.32.0 // indirect + k8s.io/apimachinery v0.32.0 // indirect + k8s.io/apiserver v0.32.0 // indirect + k8s.io/cli-runtime v0.32.0 // indirect + k8s.io/client-go v0.32.0 // indirect + k8s.io/component-base v0.32.0 // indirect + k8s.io/klog/v2 v2.130.1 // indirect + k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7 // indirect + k8s.io/kubectl v0.32.0 // indirect + oras.land/oras-go v1.2.6 // indirect + sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 // indirect + sigs.k8s.io/kustomize/api v0.19.0 // indirect + sigs.k8s.io/kustomize/kyaml v0.19.0 // indirect + sigs.k8s.io/structured-merge-diff/v4 v4.5.0 // indirect + sigs.k8s.io/yaml v1.4.0 // indirect +) diff --git a/modules/shared/go.sum b/modules/shared/go.sum new file mode 100644 index 00000000..34fb19e3 --- /dev/null +++ b/modules/shared/go.sum @@ -0,0 +1,596 @@ +dario.cat/mergo v1.0.1 h1:Ra4+bf83h2ztPIQYNP99R6m+Y7KfnARDfID+a+vLl4s= +dario.cat/mergo v1.0.1/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= +filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= +filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= +github.com/99designs/gqlgen v0.17.63 h1:HCdaYDPd9HqUXRchEvmE3EFzELRwLlaJ8DBuyC8Cqto= +github.com/99designs/gqlgen v0.17.63/go.mod h1:sVCM2iwIZisJjTI/DEC3fpH+HFgxY1496ZJ+jbT9IjA= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 h1:He8afgbRMd7mFxO99hRNu+6tazq8nFF9lIwo9JFroBk= +github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8= +github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c h1:udKWzYgxTojEKWjV8V+WSxDXJ4NFATAsZjh8iIbsQIg= +github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0= +github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= +github.com/DATA-DOG/go-sqlmock v1.5.2 h1:OcvFkGmslmlZibjAjaHm3L//6LiuBgolP7OputlJIzU= +github.com/DATA-DOG/go-sqlmock v1.5.2/go.mod h1:88MAG/4G7SMwSE3CeA0ZKzrT5CiOU3OJ+JlNzwDqpNU= +github.com/MakeNowJust/heredoc v1.0.0 h1:cXCdzVdstXyiTqTvfqk9SDHpKNjxuom+DOlyEeQ4pzQ= +github.com/MakeNowJust/heredoc v1.0.0/go.mod h1:mG5amYoWBHf8vpLOuehzbGGw0EHxpZZ6lCpQ4fNJ8LE= +github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= +github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= +github.com/Masterminds/semver/v3 v3.3.1 h1:QtNSWtVZ3nBfk8mAOu/B6v7FMJ+NHTIgUPi7rj+4nv4= +github.com/Masterminds/semver/v3 v3.3.1/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM= +github.com/Masterminds/sprig/v3 v3.3.0 h1:mQh0Yrg1XPo6vjYXgtf5OtijNAKJRNcTdOOGZe3tPhs= +github.com/Masterminds/sprig/v3 v3.3.0/go.mod h1:Zy1iXRYNqNLUolqCpL4uhk6SHUMAOSCzdgBfDb35Lz0= +github.com/Masterminds/squirrel v1.5.4 h1:uUcX/aBc8O7Fg9kaISIUsHXdKuqehiXAMQTYX8afzqM= +github.com/Masterminds/squirrel v1.5.4/go.mod h1:NNaOrjSoIDfDA40n7sr2tPNZRfjzjA400rg+riTZj10= +github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= +github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= +github.com/Microsoft/hcsshim v0.11.7 h1:vl/nj3Bar/CvJSYo7gIQPyRWc9f3c6IeSNavBTSZNZQ= +github.com/Microsoft/hcsshim v0.11.7/go.mod h1:MV8xMfmECjl5HdO7U/3/hFVnkmSBjAjmA09d4bExKcU= +github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= +github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ= +github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= +github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5/go.mod h1:wHh0iHkYZB8zMSxRWpUBQtwG5a7fFgvEO+odwuTv2gs= +github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2 h1:DklsrG3dyBCFEj5IhUbnKptjxatkF07cF2ak3yi77so= +github.com/asaskevich/govalidator v0.0.0-20230301143203-a9d515a09cc2/go.mod h1:WaHUgvxTVq04UNunO+XhnAqY/wQc+bxr74GqbsZ/Jqw= +github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= +github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= +github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= +github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= +github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM= +github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= +github.com/bshuster-repo/logrus-logstash-hook v1.0.0 h1:e+C0SB5R1pu//O4MQ3f9cFuPGoOVeF2fE4Og9otCc70= +github.com/bshuster-repo/logrus-logstash-hook v1.0.0/go.mod h1:zsTqEiSzDgAa/8GZR7E1qaXrhYNDKBYy5/dWPTIflbk= +github.com/bytedance/sonic v1.12.7 h1:CQU8pxOy9HToxhndH0Kx/S1qU/CuS9GnKYrGioDcU1Q= +github.com/bytedance/sonic v1.12.7/go.mod h1:tnbal4mxOMju17EGfknm2XyYcpyCnIROYOEYuemj13I= +github.com/bytedance/sonic/loader v0.1.1/go.mod h1:ncP89zfokxS5LZrJxl5z0UJcsk4M4yY2JpfqGeCtNLU= +github.com/bytedance/sonic/loader v0.2.3 h1:yctD0Q3v2NOGfSWPLPvG2ggA2kV6TS6s4wioyEqssH0= +github.com/bytedance/sonic/loader v0.2.3/go.mod h1:N8A3vUdtUebEY2/VQC0MyhYeKUFosQU6FxH2JmUe6VI= +github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8= +github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/chai2010/gettext-go v1.0.3 h1:9liNh8t+u26xl5ddmWLmsOsdNLwkdRTg5AG+JnTiM80= +github.com/chai2010/gettext-go v1.0.3/go.mod h1:y+wnP2cHYaVj19NZhYKAwEMH2CI1gNHeQQ+5AjwawxA= +github.com/cloudwego/base64x v0.1.4 h1:jwCgWpFanWmN8xoIUHa2rtzmkd5J2plF/dnLS6Xd/0Y= +github.com/cloudwego/base64x v0.1.4/go.mod h1:0zlkT4Wn5C6NdauXdJRhSKRlJvmclQ1hhJgA0rcu/8w= +github.com/cloudwego/iasm v0.2.0/go.mod h1:8rXZaNYT2n95jn+zTI1sDr+IgcD2GVs0nlbbQPiEFhY= +github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM= +github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw= +github.com/containerd/containerd v1.7.25 h1:khEQOAXOEJalRO228yzVsuASLH42vT7DIo9Ss+9SMFQ= +github.com/containerd/containerd v1.7.25/go.mod h1:tWfHzVI0azhw4CT2vaIjsb2CoV4LJ9PrMPaULAr21Ok= +github.com/containerd/continuity v0.4.4 h1:/fNVfTJ7wIl/YPMHjf+5H32uFhl63JucB34PlCpMKII= +github.com/containerd/continuity v0.4.4/go.mod h1:/lNJvtJKUQStBzpVQ1+rasXO1LAWtUQssk28EZvJ3nE= +github.com/containerd/errdefs v1.0.0 h1:tg5yIfIlQIrxYtu9ajqY42W3lpS19XqdxRQeEwYG8PI= +github.com/containerd/errdefs v1.0.0/go.mod h1:+YBYIdtsnF4Iw6nWZhJcqGSg/dwvV7tyJ/kCkyJ2k+M= +github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= +github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= +github.com/containerd/platforms v0.2.1 h1:zvwtM3rz2YHPQsF2CHYM8+KtB5dvhISiXh5ZpSBQv6A= +github.com/containerd/platforms v0.2.1/go.mod h1:XHCb+2/hzowdiut9rkudds9bE5yJ7npe7dG/wG+uFPw= +github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs= +github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= +github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= +github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= +github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= +github.com/cyphar/filepath-securejoin v0.4.0 h1:PioTG9TBRSApBpYGnDU8HC+miIsX8vitBH9LGNNMoLQ= +github.com/cyphar/filepath-securejoin v0.4.0/go.mod h1:Sdj7gXlvMcPZsbhwhQ33GguGLDGQL7h7bg04C/+u9jI= +github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= +github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78= +github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc= +github.com/distribution/distribution/v3 v3.0.0-beta.1 h1:X+ELTxPuZ1Xe5MsD3kp2wfGUhc8I+MPfRis8dZ818Ic= +github.com/distribution/distribution/v3 v3.0.0-beta.1/go.mod h1:O9O8uamhHzWWQVTjuQpyYUVm/ShPHPUDgvQMpHGVBDs= +github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= +github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= +github.com/docker/cli v27.5.0+incompatible h1:aMphQkcGtpHixwwhAXJT1rrK/detk2JIvDaFkLctbGM= +github.com/docker/cli v27.5.0+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= +github.com/docker/distribution v2.8.3+incompatible h1:AtKxIZ36LoNK51+Z6RpzLpddBirtxJnzDrHLEKxTAYk= +github.com/docker/distribution v2.8.3+incompatible/go.mod h1:J2gT2udsDAN96Uj4KfcMRqY0/ypR+oyYUYmja8H+y+w= +github.com/docker/docker v27.5.0+incompatible h1:um++2NcQtGRTz5eEgO6aJimo6/JxrTXC941hd05JO6U= +github.com/docker/docker v27.5.0+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker-credential-helpers v0.8.2 h1:bX3YxiGzFP5sOXWc3bTPEXdEaZSeVMrFgOr3T+zrFAo= +github.com/docker/docker-credential-helpers v0.8.2/go.mod h1:P3ci7E3lwkZg6XiHdRKft1KckHiO9a2rNtyFbZ/ry9M= +github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= +github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= +github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c h1:+pKlWGMw7gf6bQ+oDZB4KHQFypsfjYlq/C4rfL7D3g8= +github.com/docker/go-events v0.0.0-20190806004212-e31b211e4f1c/go.mod h1:Uw6UezgYA44ePAFQYUehOuCzmy5zmg/+nl2ZfMWGkpA= +github.com/docker/go-metrics v0.0.1 h1:AgB/0SvBxihN0X8OR4SjsblXkbMvalQ8cjmtKQ2rQV8= +github.com/docker/go-metrics v0.0.1/go.mod h1:cG1hvH2utMXtqgqqYE9plW6lDxS3/5ayHzueweSI3Vw= +github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1 h1:ZClxb8laGDf5arXfYcAtECDFgAgHklGI8CxgjHnXKJ4= +github.com/docker/libtrust v0.0.0-20150114040149-fa567046d9b1/go.mod h1:cyGadeNEkKy96OOhEzfZl+yxihPEzKnqJwvfuSUqbZE= +github.com/emicklei/go-restful/v3 v3.12.1 h1:PJMDIM/ak7btuL8Ex0iYET9hxM3CI2sjZtzpL63nKAU= +github.com/emicklei/go-restful/v3 v3.12.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc= +github.com/evanphx/json-patch v5.9.0+incompatible h1:fBXyNpNMuTTDdquAq/uisOr2lShz4oaXpDTX2bLe7ls= +github.com/evanphx/json-patch v5.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= +github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f h1:Wl78ApPPB2Wvf/TIe2xdyJxTlb6obmF18d8QdkxNDu4= +github.com/exponent-io/jsonpath v0.0.0-20210407135951-1de76d718b3f/go.mod h1:OSYXu++VVOHnXeitef/D8n/6y4QV8uLHSFXX4NeXMGc= +github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM= +github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU= +github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= +github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= +github.com/foxcpp/go-mockdns v1.1.0 h1:jI0rD8M0wuYAxL7r/ynTrCQQq0BVqfB99Vgk7DlmewI= +github.com/foxcpp/go-mockdns v1.1.0/go.mod h1:IhLeSFGed3mJIAXPH2aiRQB+kqz7oqu8ld2qVbOu7Wk= +github.com/frankban/quicktest v1.14.6 h1:7Xjx+VpznH+oBnejlPUj8oUpdxnVs4f8XU8WnHkI4W8= +github.com/frankban/quicktest v1.14.6/go.mod h1:4ptaffx2x8+WTWXmUCuVU6aPUX1/Mz7zb5vbUoiM6w0= +github.com/fsnotify/fsnotify v1.8.0 h1:dAwr6QBTBZIkG8roQaJjGof0pp0EeF+tNV7YBP3F/8M= +github.com/fsnotify/fsnotify v1.8.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0= +github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= +github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= +github.com/gabriel-vasile/mimetype v1.4.8 h1:FfZ3gj38NjllZIeJAmMhr+qKL8Wu+nOoI3GqacKw1NM= +github.com/gabriel-vasile/mimetype v1.4.8/go.mod h1:ByKUIKGjh1ODkGM1asKUbQZOLGrPjydw3hYPU2YU9t8= +github.com/gin-contrib/requestid v1.0.4 h1:h9u+YSCMgrDcn2QlHn9c6P/Zwy4WdXqZLFTmlIAJWpA= +github.com/gin-contrib/requestid v1.0.4/go.mod h1:2/3cAmLKQ9E2Pr1IrSPR7K8AWiJORo0hLvs0keKsMJw= +github.com/gin-contrib/sse v1.0.0 h1:y3bT1mUWUxDpW4JLQg/HnTqV4rozuW4tC9eFKTxYI9E= +github.com/gin-contrib/sse v1.0.0/go.mod h1:zNuFdwarAygJBht0NTKiSi3jRf6RbqeILZ9Sp6Slhe0= +github.com/gin-gonic/gin v1.10.0 h1:nTuyha1TYqgedzytsKYqna+DfLos46nTv2ygFy86HFU= +github.com/gin-gonic/gin v1.10.0/go.mod h1:4PMNQiOhvDRa013RKVbsiNwoyezlm2rm0uX/T7kzp5Y= +github.com/go-errors/errors v1.5.1 h1:ZwEMSLRCapFLflTpT7NKaAc7ukJ8ZPEjzlxt8rPN8bk= +github.com/go-errors/errors v1.5.1/go.mod h1:sIVyrIiJhuEF+Pj9Ebtd6P/rEYROXFi3BopGUQ5a5Og= +github.com/go-gorp/gorp/v3 v3.1.0 h1:ItKF/Vbuj31dmV4jxA1qblpSwkl9g1typ24xoe70IGs= +github.com/go-gorp/gorp/v3 v3.1.0/go.mod h1:dLEjIyyRNiXvNZ8PSmzpt1GsWAUK8kjVhEpjH8TixEw= +github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= +github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= +github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk= +github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= +github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= +github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= +github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= +github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= +github.com/go-openapi/jsonpointer v0.21.0 h1:YgdVicSA9vH5RiHs9TZW5oyafXZFc6+2Vc1rr/O9oNQ= +github.com/go-openapi/jsonpointer v0.21.0/go.mod h1:IUyH9l/+uyhIYQ/PXVA41Rexl+kOkAPDdXEYns6fzUY= +github.com/go-openapi/jsonreference v0.21.0 h1:Rs+Y7hSXT83Jacb7kFyjn4ijOuVGSvOdF2+tg1TRrwQ= +github.com/go-openapi/jsonreference v0.21.0/go.mod h1:LmZmgsrTkVg9LG4EaHeY8cBDslNPMo06cago5JNLkm4= +github.com/go-openapi/swag v0.23.0 h1:vsEVJDUo2hPJ2tu0/Xc+4noaxyEffXNIs3cOULZ+GrE= +github.com/go-openapi/swag v0.23.0/go.mod h1:esZ8ITTYEsH1V2trKHjAN8Ai7xHb8RV+YSZ577vPjgQ= +github.com/go-playground/assert/v2 v2.2.0 h1:JvknZsQTYeFEAhQwI4qEt9cyV5ONwRHC+lYKSsYSR8s= +github.com/go-playground/assert/v2 v2.2.0/go.mod h1:VDjEfimB/XKnb+ZQfWdccd7VUvScMdVu0Titje2rxJ4= +github.com/go-playground/locales v0.14.1 h1:EWaQ/wswjilfKLTECiXz7Rh+3BjFhfDFKv/oXslEjJA= +github.com/go-playground/locales v0.14.1/go.mod h1:hxrqLVvrK65+Rwrd5Fc6F2O76J/NuW9t0sjnWqG1slY= +github.com/go-playground/universal-translator v0.18.1 h1:Bcnm0ZwsGyWbCzImXv+pAJnYK9S473LQFuzCbDbfSFY= +github.com/go-playground/universal-translator v0.18.1/go.mod h1:xekY+UJKNuX9WP91TpwSH2VMlDf28Uj24BCp08ZFTUY= +github.com/go-playground/validator/v10 v10.24.0 h1:KHQckvo8G6hlWnrPX4NJJ+aBfWNAE/HH+qdL2cBpCmg= +github.com/go-playground/validator/v10 v10.24.0/go.mod h1:GGzBIJMuE98Ic/kJsBXbz1x/7cByt++cQ+YOuDM5wus= +github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= +github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= +github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= +github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1vB6EwHI= +github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8= +github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y= +github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8= +github.com/goccy/go-json v0.10.4 h1:JSwxQzIqKfmFX1swYPpUThQZp/Ka4wzJdK0LWVytLPM= +github.com/goccy/go-json v0.10.4/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= +github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= +github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= +github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= +github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg= +github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4= +github.com/google/gnostic-models v0.6.9 h1:MU/8wDLif2qCXZmzncUQ/BOfxWfthHi63KqpoNbWqVw= +github.com/google/gnostic-models v0.6.9/go.mod h1:CiWsm0s6BSQd1hRn8/QmxqB6BesYcbSZxsz9b0KuDBw= +github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= +github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= +github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0= +github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db h1:097atOisP2aRj7vFgYQBbFN4U4JNXUNYpxael3UzMyo= +github.com/google/pprof v0.0.0-20241029153458-d1b30febd7db/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 h1:El6M4kTTCOh6aBiKaUGG7oYTSPP8MxqL4YI3kZKwcP4= +github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510/go.mod h1:pupxD2MaaD3pAXIBCelhxNneeOaAeabZDe5s4K6zSpQ= +github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= +github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gorilla/csrf v1.7.2 h1:oTUjx0vyf2T+wkrx09Trsev1TE+/EbDAeHtSTbtC2eI= +github.com/gorilla/csrf v1.7.2/go.mod h1:F1Fj3KG23WYHE6gozCmBAezKookxbIvUJT+121wTuLk= +github.com/gorilla/handlers v1.5.2 h1:cLTUSsNkgcwhgRqvCNmdbRWG0A3N4F+M2nWKdScwyEE= +github.com/gorilla/handlers v1.5.2/go.mod h1:dX+xVpaxdSw+q0Qek8SSsl3dfMk3jNddUkMzo0GtH0w= +github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY= +github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ= +github.com/gorilla/securecookie v1.1.2 h1:YCIWL56dvtr73r6715mJs5ZvhtnY73hBvEF8kXD8ePA= +github.com/gorilla/securecookie v1.1.2/go.mod h1:NfCASbcHqRSY+3a8tlWJwsQap2VX5pwzwo4h3eOamfo= +github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= +github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/gosuri/uitable v0.0.4 h1:IG2xLKRvErL3uhY6e1BylFzG+aJiwQviDDTfOKeKTpY= +github.com/gosuri/uitable v0.0.4/go.mod h1:tKR86bXuXPZazfOTG1FIzvjIdXzd0mo4Vtn16vt0PJo= +github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79 h1:+ngKgrYPPJrOjhax5N+uePQ0Fh1Z7PheYoUI/0nzkPA= +github.com/gregjones/httpcache v0.0.0-20190611155906-901d90724c79/go.mod h1:FecbI9+v66THATjSRHfNgh1IVFe/9kFxbXtjV0ctIMA= +github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0 h1:bkypFPDjIYGfCYD5mRBvpqxfYX1YCS1PXdKYWi8FsN0= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.20.0/go.mod h1:P+Lt/0by1T8bfcF3z737NnSbmxQAppXMRziHUxPOC8k= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/errwrap v1.1.0 h1:OxrOeh75EUXMY8TBjag2fzXGZ40LB6IKw45YeGUDY2I= +github.com/hashicorp/errwrap v1.1.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-multierror v1.1.1 h1:H5DkEtf6CXdFp0N0Em5UCwQpXMWke8IA0+lD48awMYo= +github.com/hashicorp/go-multierror v1.1.1/go.mod h1:iw975J/qwKPdAO1clOe2L8331t/9/fmwbPZ6JB6eMoM= +github.com/hashicorp/golang-lru v0.5.4 h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc= +github.com/hashicorp/golang-lru/arc/v2 v2.0.5 h1:l2zaLDubNhW4XO3LnliVj0GXO3+/CGNJAg1dcN2Fpfw= +github.com/hashicorp/golang-lru/arc/v2 v2.0.5/go.mod h1:ny6zBSQZi2JxIeYcv7kt2sH2PXJtirBN7RDhRpxPkxU= +github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k= +github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM= +github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/huandu/xstrings v1.5.0 h1:2ag3IFq9ZDANvthTwTiqSSZLjDc+BedvHPAp5tJy2TI= +github.com/huandu/xstrings v1.5.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE= +github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8= +github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= +github.com/jmoiron/sqlx v1.4.0 h1:1PLqN7S1UYp5t4SrVVnt4nUVNemrDAtxlulVe+Qgm3o= +github.com/jmoiron/sqlx v1.4.0/go.mod h1:ZrZ7UsYB/weZdl2Bxg6jCRO9c3YHl8r3ahlKmRT4JLY= +github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY= +github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= +github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= +github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM= +github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo= +github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= +github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.17.11 h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc= +github.com/klauspost/compress v1.17.11/go.mod h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0= +github.com/klauspost/cpuid/v2 v2.0.9/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg= +github.com/klauspost/cpuid/v2 v2.2.9 h1:66ze0taIn2H33fBvCkXuv9BmCwDfafmiIVpKV9kKGuY= +github.com/klauspost/cpuid/v2 v2.2.9/go.mod h1:rqkxqrZ1EhYM9G+hXH7YdowN5R5RGN6NK4QwQ3WMXF8= +github.com/knz/go-libedit v1.10.1/go.mod h1:MZTVkCWyz0oBc7JOWP3wNAzd002ZbM/5hgShxwh4x8M= +github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= +github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE= +github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk= +github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= +github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= +github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc= +github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw= +github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 h1:SOEGU9fKiNWd/HOJuq6+3iTQz8KNCLtVX6idSoTLdUw= +github.com/lann/builder v0.0.0-20180802200727-47ae307949d0/go.mod h1:dXGbAdH5GtBTC4WfIxhKZfyBF/HBFgRZSWwZ9g/He9o= +github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 h1:P6pPBnrTSX3DEVR4fDembhRWSsG5rVo6hYhAB/ADZrk= +github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0/go.mod h1:vmVJ0l/dxyfGW6FmdpVm2joNMFikkuWg0EoCKLGUMNw= +github.com/leodido/go-urn v1.4.0 h1:WT9HwE9SGECu3lg4d/dIA+jxlljEa1/ffXKmRjqdmIQ= +github.com/leodido/go-urn v1.4.0/go.mod h1:bvxc+MVxLKB4z00jd1z+Dvzr47oO32F/QSNjSBOlFxI= +github.com/lib/pq v1.10.9 h1:YXG7RB+JIjhP29X+OtkiDnYaXQwpS4JEWq7dtCCRUEw= +github.com/lib/pq v1.10.9/go.mod h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o= +github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de h1:9TO3cAIGXtEhnIaL+V+BEER86oLrvS+kWobKpbJuye0= +github.com/liggitt/tabwriter v0.0.0-20181228230101-89fcab3d43de/go.mod h1:zAbeS9B/r2mtpb6U+EI2rYA5OAXxsYw6wTamcNW+zcE= +github.com/magiconair/properties v1.8.9 h1:nWcCbLq1N2v/cpNsy5WvQ37Fb+YElfq20WJ/a8RkpQM= +github.com/magiconair/properties v1.8.9/go.mod h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0= +github.com/mailru/easyjson v0.9.0 h1:PrnmzHw7262yW8sTBwxi1PdJA3Iw/EKBa8psRf7d9a4= +github.com/mailru/easyjson v0.9.0/go.mod h1:1+xMtQp2MRNVL/V1bOzuP3aP8VNwRW55fQUto+XFtTU= +github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= +github.com/mattn/go-colorable v0.1.14 h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE= +github.com/mattn/go-colorable v0.1.14/go.mod h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8= +github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM= +github.com/mattn/go-isatty v0.0.19/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY= +github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= +github.com/mattn/go-runewidth v0.0.16 h1:E5ScNMtiwvlvB5paMFdw9p4kSQzbXFikJ5SQO6TULQc= +github.com/mattn/go-runewidth v0.0.16/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= +github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU= +github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y= +github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= +github.com/miekg/dns v1.1.57 h1:Jzi7ApEIzwEPLHWRcafCN9LZSBbqQpxjt/wpgvg7wcM= +github.com/miekg/dns v1.1.57/go.mod h1:uqRjCRUuEAA6qsOiJvDd+CFo/vW+y5WR6SNmHE55hZk= +github.com/mitchellh/copystructure v1.2.0 h1:vpKXTN4ewci03Vljg/q9QvCGUDttBOGBIa15WveJJGw= +github.com/mitchellh/copystructure v1.2.0/go.mod h1:qLl+cE2AmVv+CoeAwDPye/v+N2HKCj9FbZEVFJRxO9s= +github.com/mitchellh/go-wordwrap v1.0.1 h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0= +github.com/mitchellh/go-wordwrap v1.0.1/go.mod h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0= +github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= +github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mitchellh/reflectwalk v1.0.2 h1:G2LzWKi524PWgd3mLHV8Y5k7s6XUvT0Gef6zxSIeXaQ= +github.com/mitchellh/reflectwalk v1.0.2/go.mod h1:mSTlrgnPZtwu0c4WaC2kGObEpuNDbx0jmZXqmk4esnw= +github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg= +github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc= +github.com/moby/spdystream v0.5.0 h1:7r0J1Si3QO/kjRitvSLVVFUjxMEb/YLj6S9FF62JBCU= +github.com/moby/spdystream v0.5.0/go.mod h1:xBAYlnt/ay+11ShkdFKNAG7LsyK/tmNBVvVOwrfMgdI= +github.com/moby/sys/mountinfo v0.6.2 h1:BzJjoreD5BMFNmD9Rus6gdd1pLuecOFPt8wC+Vygl78= +github.com/moby/sys/mountinfo v0.6.2/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI= +github.com/moby/sys/userns v0.1.0 h1:tVLXkFOxVu9A64/yh59slHVv9ahO9UIev4JZusOLG/g= +github.com/moby/sys/userns v0.1.0/go.mod h1:IHUYgu/kao6N8YZlp9Cf444ySSvCmDlmzUcYfDHOl28= +github.com/moby/term v0.5.2 h1:6qk3FJAFDs6i/q3W/pQ97SX192qKfZgGjCQqfCJkgzQ= +github.com/moby/term v0.5.2/go.mod h1:d3djjFCrjnB+fl8NJux+EJzu0msscUP+f8it8hPkFLc= +github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= +github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= +github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9Gz0M= +github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk= +github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00 h1:n6/2gBQ3RWajuToeY6ZtZTIKv2v7ThUy5KKusIT0yc0= +github.com/monochromegane/go-gitignore v0.0.0-20200626010858-205db1a8cc00/go.mod h1:Pm3mSP3c5uWn86xMLZ5Sa7JB9GsEZySvHYXCTK4E9q4= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA= +github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ= +github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= +github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f h1:y5//uYreIhSUg3J1GEMiLbxo1LJaP8RfCpH6pymGZus= +github.com/mxk/go-flowrate v0.0.0-20140419014527-cca7078d478f/go.mod h1:ZdcZmHo+o7JKHSa8/e818NopupXU1YMK5fe1lsApnBw= +github.com/onsi/ginkgo/v2 v2.21.0 h1:7rg/4f3rB88pb5obDgNZrNHrQ4e6WpjonchcpuBRnZM= +github.com/onsi/ginkgo/v2 v2.21.0/go.mod h1:7Du3c42kxCUegi0IImZ1wUQzMBVecgIHjR1C+NkhLQo= +github.com/onsi/gomega v1.35.1 h1:Cwbd75ZBPxFSuZ6T+rN/WCb/gOc6YgFBXLlZLhC7Ds4= +github.com/onsi/gomega v1.35.1/go.mod h1:PvZbdDc8J6XJEpDK4HCuRBm8a6Fzp9/DmhC9C7yFlog= +github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U= +github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= +github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= +github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= +github.com/pelletier/go-toml/v2 v2.2.3 h1:YmeHyLY8mFWbdkNWwpr+qIL2bEqT0o95WSdkNHvL12M= +github.com/pelletier/go-toml/v2 v2.2.3/go.mod h1:MfCQTFTvCcUyyvvwm1+G6H/jORL20Xlb6rzQu9GuUkc= +github.com/peterbourgon/diskv v2.0.1+incompatible h1:UBdAOUP5p4RWqPBg048CAvpKN+vxiaj6gdUUzhl4XmI= +github.com/peterbourgon/diskv v2.0.1+incompatible/go.mod h1:uqqh8zWWbv1HBMNONnaR/tNboyR3/BZd58JJSHlUSCU= +github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5 h1:Ii+DKncOVM8Cu1Hc+ETb5K+23HdAMvESYE3ZJ5b5cMI= +github.com/phayes/freeport v0.0.0-20220201140144-74d24b5ae9f5/go.mod h1:iIss55rKnNBTvrwdmkUpLnDpZoAHvWaiq5+iMmen4AE= +github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= +github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= +github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/poy/onpar v1.1.2 h1:QaNrNiZx0+Nar5dLgTVp5mXkyoVFIbepjyEoGSnhbAY= +github.com/poy/onpar v1.1.2/go.mod h1:6X8FLNoxyr9kkmnlqpK6LSoiOtrO6MICtWwEuWkLjzg= +github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= +github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= +github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= +github.com/prometheus/client_golang v1.20.5 h1:cxppBPuYhUnsO6yo/aoRol4L7q7UFfdm+bR9r+8l63Y= +github.com/prometheus/client_golang v1.20.5/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= +github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= +github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= +github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= +github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= +github.com/prometheus/common v0.61.0 h1:3gv/GThfX0cV2lpO7gkTUwZru38mxevy90Bj8YFSRQQ= +github.com/prometheus/common v0.61.0/go.mod h1:zr29OCN/2BsJRaFwG8QOBr41D6kkchKbpeNH7pAjb/s= +github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= +github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= +github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= +github.com/redis/go-redis/extra/rediscmd/v9 v9.0.5 h1:EaDatTxkdHG+U3Bk4EUr+DZ7fOGwTfezUiUJMaIcaho= +github.com/redis/go-redis/extra/rediscmd/v9 v9.0.5/go.mod h1:fyalQWdtzDBECAQFBJuQe5bzQ02jGd5Qcbgb97Flm7U= +github.com/redis/go-redis/extra/redisotel/v9 v9.0.5 h1:EfpWLLCyXw8PSM2/XNJLjI3Pb27yVE+gIAfeqp8LUCc= +github.com/redis/go-redis/extra/redisotel/v9 v9.0.5/go.mod h1:WZjPDy7VNzn77AAfnAfVjZNvfJTYfPetfZk5yoSTLaQ= +github.com/redis/go-redis/v9 v9.1.0 h1:137FnGdk+EQdCbye1FW+qOEcY5S+SpY9T0NiuqvtfMY= +github.com/redis/go-redis/v9 v9.1.0/go.mod h1:urWj3He21Dj5k4TK1y59xH8Uj6ATueP8AH1cY3lZl4c= +github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= +github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ= +github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88= +github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII= +github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o= +github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= +github.com/rs/zerolog v1.33.0 h1:1cU2KZkvPxNyfgEmhHAz/1A9Bz+llsdYzklWFzgp0r8= +github.com/rs/zerolog v1.33.0/go.mod h1:/7mN4D5sKwJLZQ2b/znpjC3/GQWY/xaDXUM0kKWRHss= +github.com/rubenv/sql-migrate v1.7.1 h1:f/o0WgfO/GqNuVg+6801K/KW3WdDSupzSjDYODmiUq4= +github.com/rubenv/sql-migrate v1.7.1/go.mod h1:Ob2Psprc0/3ggbM6wCzyYVFFuc6FyZrb2AS+ezLDFb4= +github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= +github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= +github.com/sagikazarmark/locafero v0.7.0 h1:5MqpDsTGNDhY8sGp0Aowyf0qKsPrhewaLSsFaodPcyo= +github.com/sagikazarmark/locafero v0.7.0/go.mod h1:2za3Cg5rMaTMoG/2Ulr9AwtFaIppKXTRYnozin4aB5k= +github.com/sagikazarmark/slog-shim v0.1.0 h1:diDBnUNK9N/354PgrxMywXnAwEr1QZcOr6gto+ugjYE= +github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWRIczQRv+GVI1AkeQ= +github.com/sergi/go-diff v1.3.1 h1:xkr+Oxo4BOQKmkn/B9eMK0g5Kg/983T9DqqPHwYqD+8= +github.com/sergi/go-diff v1.3.1/go.mod h1:aMJSSKb2lpPvRNec0+w3fl7LP9IOFzdc9Pa4NFbPK1I= +github.com/shopspring/decimal v1.4.0 h1:bxl37RwXBklmTi0C79JfXCEBD1cqqHt0bbgBAGFp81k= +github.com/shopspring/decimal v1.4.0/go.mod h1:gawqmDU56v4yIKSwfBSFip1HdCCXN8/+DMd9qYNcwME= +github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= +github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= +github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= +github.com/sosodev/duration v1.3.1 h1:qtHBDMQ6lvMQsL15g4aopM4HEfOaYuhWBw3NPTtlqq4= +github.com/sosodev/duration v1.3.1/go.mod h1:RQIBBX0+fMLc/D9+Jb/fwvVmo0eZvDDEERAikUR6SDg= +github.com/sourcegraph/conc v0.3.0 h1:OQTbbt6P72L20UqAkXXuLOj79LfEanQ+YQFNpLA9ySo= +github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIKqDmF7Mt0= +github.com/spf13/afero v1.12.0 h1:UcOPyRBYczmFn6yvphxkn9ZEOY65cpwGKb5mL36mrqs= +github.com/spf13/afero v1.12.0/go.mod h1:ZTlWwG4/ahT8W7T0WQ5uYmjI9duaLQGy3Q2OAl4sk/4= +github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y= +github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= +github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.19.0 h1:RWq5SEjt8o25SROyN3z2OrDB9l7RPd3lwTWU8EcEdcI= +github.com/spf13/viper v1.19.0/go.mod h1:GQUN9bilAbhU/jgc1bKs99f/suXKeUMct8Adx5+Ntkg= +github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw= +github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo= +github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY= +github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU= +github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4= +github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo= +github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA= +github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= +github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= +github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= +github.com/twitchyliquid64/golang-asm v0.15.1 h1:SU5vSMR7hnwNxj24w34ZyCi/FmDZTkS4MhqMhdFk5YI= +github.com/twitchyliquid64/golang-asm v0.15.1/go.mod h1:a1lVb/DtPvCB8fslRZhAngC2+aY1QWCk3Cedj/Gdt08= +github.com/ugorji/go/codec v1.2.12 h1:9LC83zGrHhuUA9l16C9AHXAqEV/2wBQ4nkvumAE65EE= +github.com/ugorji/go/codec v1.2.12/go.mod h1:UNopzCgEMSXjBc6AOMqYvWC1ktqTAfzJZUZgYf6w6lg= +github.com/vektah/gqlparser/v2 v2.5.21 h1:Zw1rG2dr1pRR4wqwbVq4d6+xk2f4ut/yo+hwr4QjE08= +github.com/vektah/gqlparser/v2 v2.5.21/go.mod h1:xMl+ta8a5M1Yo1A1Iwt/k7gSpscwSnHZdw7tfhEGfTM= +github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= +github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= +github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= +github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= +github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= +github.com/xlab/treeprint v1.2.0 h1:HzHnuAF1plUN2zGlAFHbSQP2qJ0ZAD3XF5XD7OesXRQ= +github.com/xlab/treeprint v1.2.0/go.mod h1:gj5Gd3gPdKtR1ikdDK6fnFLdmIS0X30kTTuNd/WEJu0= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0= +go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo= +go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA= +go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A= +go.opentelemetry.io/contrib/exporters/autoexport v0.46.1 h1:ysCfPZB9AjUlMa1UHYup3c9dAOCMQX/6sxSfPBUoxHw= +go.opentelemetry.io/contrib/exporters/autoexport v0.46.1/go.mod h1:ha0aiYm+DOPsLHjh0zoQ8W8sLT+LJ58J3j47lGpSLrU= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 h1:yd02MEjBdJkG3uabWP9apV+OuWRIXGDuJEUJbOHmCFU= +go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0/go.mod h1:umTcuxiv1n/s/S6/c2AT/g2CQ7u5C59sHDNmfSwgz7Q= +go.opentelemetry.io/otel v1.33.0 h1:/FerN9bax5LoK51X/sI0SVYrjSE0/yUL7DpxW4K3FWw= +go.opentelemetry.io/otel v1.33.0/go.mod h1:SUUkR6csvUQl+yjReHu5uM3EtVV7MBm5FHKRlNx4I8I= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.44.0 h1:jd0+5t/YynESZqsSyPz+7PAFdEop0dlN0+PkyHYo8oI= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc v0.44.0/go.mod h1:U707O40ee1FpQGyhvqnzmCJm1Wh6OX6GGBVn0E6Uyyk= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.44.0 h1:bflGWrfYyuulcdxf14V6n9+CoQcu5SAAdHmDPAJnlps= +go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp v0.44.0/go.mod h1:qcTO4xHAxZLaLxPd60TdE88rxtItPHgHWqOhOGRr0as= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.28.0 h1:3Q/xZUyC1BBkualc9ROb4G8qkH90LXEIICcs5zv1OYY= +go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.28.0/go.mod h1:s75jGIWA9OfCMzF0xr+ZgfrB5FEbbV7UuYo32ahUiFI= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0 h1:qFffATk0X+HD+f1Z8lswGiOQYKHRlzfmdJm0wEaVrFA= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.27.0/go.mod h1:MOiCmryaYtc+V0Ei+Tx9o5S1ZjA7kzLucuVuyzBZloQ= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.21.0 h1:digkEZCJWobwBqMwC0cwCq8/wkkRy/OowZg5OArWZrM= +go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.21.0/go.mod h1:/OpE/y70qVkndM0TrxT4KBoN3RsFZP0QaofcfYrj76I= +go.opentelemetry.io/otel/exporters/prometheus v0.44.0 h1:08qeJgaPC0YEBu2PQMbqU3rogTlyzpjhCI2b58Yn00w= +go.opentelemetry.io/otel/exporters/prometheus v0.44.0/go.mod h1:ERL2uIeBtg4TxZdojHUwzZfIFlUIjZtxubT5p4h1Gjg= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.29.0 h1:WDdP9acbMYjbKIyJUhTvtzj601sVJOqgWdUxSdR/Ysc= +go.opentelemetry.io/otel/exporters/stdout/stdoutmetric v1.29.0/go.mod h1:BLbf7zbNIONBLPwvFnwNHGj4zge8uTCM/UPIVW1Mq2I= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.21.0 h1:VhlEQAPp9R1ktYfrPk5SOryw1e9LDDTZCbIPFrho0ec= +go.opentelemetry.io/otel/exporters/stdout/stdouttrace v1.21.0/go.mod h1:kB3ufRbfU+CQ4MlUcqtW8Z7YEOBeK2DJ6CmR5rYYF3E= +go.opentelemetry.io/otel/metric v1.33.0 h1:r+JOocAyeRVXD8lZpjdQjzMadVZp2M4WmQ+5WtEnklQ= +go.opentelemetry.io/otel/metric v1.33.0/go.mod h1:L9+Fyctbp6HFTddIxClbQkjtubW6O9QS3Ann/M82u6M= +go.opentelemetry.io/otel/sdk v1.31.0 h1:xLY3abVHYZ5HSfOg3l2E5LUj2Cwva5Y7yGxnSW9H5Gk= +go.opentelemetry.io/otel/sdk v1.31.0/go.mod h1:TfRbMdhvxIIr/B2N2LQW2S5v9m3gOQ/08KsbbO5BPT0= +go.opentelemetry.io/otel/sdk/metric v1.31.0 h1:i9hxxLJF/9kkvfHppyLL55aW7iIJz4JjxTeYusH7zMc= +go.opentelemetry.io/otel/sdk/metric v1.31.0/go.mod h1:CRInTMVvNhUKgSAMbKyTMxqOBC0zgyxzW55lZzX43Y8= +go.opentelemetry.io/otel/trace v1.33.0 h1:cCJuF7LRjUFso9LPnEAHJDB2pqzp+hbO8eu1qqW2d/s= +go.opentelemetry.io/otel/trace v1.33.0/go.mod h1:uIcdVUZMpTAmz0tI1z04GoVSezK37CbGV4fr1f2nBck= +go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeXrui0= +go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= +go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= +go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= +go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= +go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y= +golang.org/x/arch v0.13.0 h1:KCkqVVV1kGg0X87TFysjCJ8MxtZEIU4Ja/yXGeoECdA= +golang.org/x/arch v0.13.0/go.mod h1:FEVrYAQjsQXMVJ1nsMoVVXPZg6p2JE2mx8psSWTDQys= +golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= +golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc= +golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc= +golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8 h1:yqrTHse8TCMW1M1ZCP+VAR/l0kKxwaAIqN/il7x4voA= +golang.org/x/exp v0.0.0-20250106191152-7588d65b2ba8/go.mod h1:tujkw807nyEEAamNbDrEGzRav+ilXA7PCRAd6xsmwiU= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4= +golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY= +golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= +golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= +golang.org/x/oauth2 v0.25.0 h1:CY4y7XT9v0cRI9oupztF8AgiIu99L/ksR/Xp/6jrZ70= +golang.org/x/oauth2 v0.25.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= +golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU= +golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.28.0 h1:/Ts8HFuMR2E6IP/jlo7QVLZHggjKQbhu/7H0LJFr3Gg= +golang.org/x/term v0.28.0/go.mod h1:Sw/lC2IAUZ92udQNf3WodGtn4k/XoLyZoh8v/8uiwek= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo= +golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= +golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY= +golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= +golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE= +golang.org/x/tools v0.29.0/go.mod h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588= +golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/genproto v0.0.0-20241118233622-e639e219e697 h1:ToEetK57OidYuqD4Q5w+vfEnPvPpuTwedCNVohYJfNk= +google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 h1:CkkIfIt50+lT6NHAVoRYEyAvQGFM7xEwXUUywFvEb3Q= +google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576/go.mod h1:1R3kvZ1dtP3+4p4d3G8uJ8rFk/fWlScl38vanWACI08= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250106144421-5f5ef82da422 h1:3UsHvIr4Wc2aW4brOaSCmcxh9ksica6fHEr8P1XhkYw= +google.golang.org/genproto/googleapis/rpc v0.0.0-20250106144421-5f5ef82da422/go.mod h1:3ENsm/5D1mzDyhpzeRi1NR784I0BcofWBoSc5QqqMK4= +google.golang.org/grpc v1.69.4 h1:MF5TftSMkd8GLw/m0KM6V8CMOCY6NZ1NQDPGFgbTt4A= +google.golang.org/grpc v1.69.4/go.mod h1:vyjdE6jLBI76dgpDojsFGNaHlxdjXN9ghpnd2o7JGZ4= +google.golang.org/protobuf v1.36.2 h1:R8FeyR1/eLmkutZOM5CWghmo5itiG9z0ktFlTVLuTmU= +google.golang.org/protobuf v1.36.2/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE= +gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= +gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4= +gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= +gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= +gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= +gopkg.in/ini.v1 v1.67.0 h1:Dgnx+6+nfE+IfzjUEISNeydPJh9AXNNsWbGP9KzCsOA= +gopkg.in/ini.v1 v1.67.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= +gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= +gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gotest.tools/v3 v3.5.0 h1:Ljk6PdHdOhAb5aDMWXjDLMMhph+BpztA4v1QdqEW2eY= +gotest.tools/v3 v3.5.0/go.mod h1:isy3WKz7GK6uNw/sbHzfKBLvlvXwUyV06n6brMxxopU= +helm.sh/helm/v3 v3.16.4 h1:rBn/h9MACw+QlhxQTjpl8Ifx+VTWaYsw3rguGBYBzr0= +helm.sh/helm/v3 v3.16.4/go.mod h1:k8QPotUt57wWbi90w3LNmg3/MWcLPigVv+0/X4B8BzA= +k8s.io/api v0.32.0 h1:OL9JpbvAU5ny9ga2fb24X8H6xQlVp+aJMFlgtQjR9CE= +k8s.io/api v0.32.0/go.mod h1:4LEwHZEf6Q/cG96F3dqR965sYOfmPM7rq81BLgsE0p0= +k8s.io/apiextensions-apiserver v0.32.0 h1:S0Xlqt51qzzqjKPxfgX1xh4HBZE+p8KKBq+k2SWNOE0= +k8s.io/apiextensions-apiserver v0.32.0/go.mod h1:86hblMvN5yxMvZrZFX2OhIHAuFIMJIZ19bTvzkP+Fmw= +k8s.io/apimachinery v0.32.0 h1:cFSE7N3rmEEtv4ei5X6DaJPHHX0C+upp+v5lVPiEwpg= +k8s.io/apimachinery v0.32.0/go.mod h1:GpHVgxoKlTxClKcteaeuF1Ul/lDVb74KpZcxcmLDElE= +k8s.io/apiserver v0.32.0 h1:VJ89ZvQZ8p1sLeiWdRJpRD6oLozNZD2+qVSLi+ft5Qs= +k8s.io/apiserver v0.32.0/go.mod h1:HFh+dM1/BE/Hm4bS4nTXHVfN6Z6tFIZPi649n83b4Ag= +k8s.io/cli-runtime v0.32.0 h1:dP+OZqs7zHPpGQMCGAhectbHU2SNCuZtIimRKTv2T1c= +k8s.io/cli-runtime v0.32.0/go.mod h1:Mai8ht2+esoDRK5hr861KRy6z0zHsSTYttNVJXgP3YQ= +k8s.io/client-go v0.32.0 h1:DimtMcnN/JIKZcrSrstiwvvZvLjG0aSxy8PxN8IChp8= +k8s.io/client-go v0.32.0/go.mod h1:boDWvdM1Drk4NJj/VddSLnx59X3OPgwrOo0vGbtq9+8= +k8s.io/component-base v0.32.0 h1:d6cWHZkCiiep41ObYQS6IcgzOUQUNpywm39KVYaUqzU= +k8s.io/component-base v0.32.0/go.mod h1:JLG2W5TUxUu5uDyKiH2R/7NnxJo1HlPoRIIbVLkK5eM= +k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= +k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7 h1:hcha5B1kVACrLujCKLbr8XWMxCxzQx42DY8QKYJrDLg= +k8s.io/kube-openapi v0.0.0-20241212222426-2c72e554b1e7/go.mod h1:GewRfANuJ70iYzvn+i4lezLDAFzvjxZYK1gn1lWcfas= +k8s.io/kubectl v0.32.0 h1:rpxl+ng9qeG79YA4Em9tLSfX0G8W0vfaiPVrc/WR7Xw= +k8s.io/kubectl v0.32.0/go.mod h1:qIjSX+QgPQUgdy8ps6eKsYNF+YmFOAO3WygfucIqFiE= +k8s.io/utils v0.0.0-20241210054802-24370beab758 h1:sdbE21q2nlQtFh65saZY+rRM6x6aJJI8IUa1AmH/qa0= +k8s.io/utils v0.0.0-20241210054802-24370beab758/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +nullprogram.com/x/optparse v1.0.0/go.mod h1:KdyPE+Igbe0jQUrVfMqDMeJQIJZEuyV7pjYmp6pbG50= +oras.land/oras-go v1.2.6 h1:z8cmxQXBU8yZ4mkytWqXfo6tZcamPwjsuxYU81xJ8Lk= +oras.land/oras-go v1.2.6/go.mod h1:OVPc1PegSEe/K8YiLfosrlqlqTN9PUyFvOw5Y9gwrT8= +sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= +sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= +sigs.k8s.io/kustomize/api v0.19.0 h1:F+2HB2mU1MSiR9Hp1NEgoU2q9ItNOaBJl0I4Dlus5SQ= +sigs.k8s.io/kustomize/api v0.19.0/go.mod h1:/BbwnivGVcBh1r+8m3tH1VNxJmHSk1PzP5fkP6lbL1o= +sigs.k8s.io/kustomize/kyaml v0.19.0 h1:RFge5qsO1uHhwJsu3ipV7RNolC7Uozc0jUBC/61XSlA= +sigs.k8s.io/kustomize/kyaml v0.19.0/go.mod h1:FeKD5jEOH+FbZPpqUghBP8mrLjJ3+zD3/rf9NNu1cwY= +sigs.k8s.io/structured-merge-diff/v4 v4.5.0 h1:nbCitCK2hfnhyiKo6uf2HxUPTCodY6Qaf85SbDIaMBk= +sigs.k8s.io/structured-merge-diff/v4 v4.5.0/go.mod h1:N8f93tFZh9U6vpxwRArLiikrE5/2tiu1w1AGfACIGE4= +sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= +sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= diff --git a/modules/server/graph/lib/errors.go b/modules/shared/graphql/errors/errors.go similarity index 82% rename from modules/server/graph/lib/errors.go rename to modules/shared/graphql/errors/errors.go index d29047ee..74c388ae 100644 --- a/modules/server/graph/lib/errors.go +++ b/modules/shared/graphql/errors/errors.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package lib +package errors import "github.com/vektah/gqlparser/v2/gqlerror" @@ -20,6 +20,9 @@ import "github.com/vektah/gqlparser/v2/gqlerror" var ( ErrValidationError = NewError("KUBETAIL_VALIDATION_ERROR", "Validation error") ErrRecordNotFound = NewError("KUBETAIL_RECORD_NOT_FOUND", "Record not found") + ErrUnauthenticated = NewError("KUBETAIL_UNAUTHENTICATED", "Authentication required") + ErrForbidden = NewError("KUBETAIL_FORBIDDEN", "Access forbidden") + ErrWatchError = NewError("KUBETAIL_WATCH_ERROR", "Watch error") ErrInternalServerError = NewError("INTERNAL_SERVER_ERROR", "Internal server error") ) diff --git a/modules/server/graph/model/models_custom.go b/modules/shared/graphql/model/models_custom.go similarity index 53% rename from modules/server/graph/model/models_custom.go rename to modules/shared/graphql/model/models_custom.go index df554c59..571df9c6 100644 --- a/modules/server/graph/model/models_custom.go +++ b/modules/shared/graphql/model/models_custom.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -15,23 +15,16 @@ package model import ( - "encoding/json" "io" "strconv" "time" "github.com/99designs/gqlgen/graphql" - zlog "github.com/rs/zerolog/log" "google.golang.org/protobuf/types/known/timestamppb" - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "github.com/kubetail-org/kubetail/modules/server/graph/lib" + "github.com/kubetail-org/kubetail/modules/shared/graphql/errors" ) -type List interface{} - -type Object interface{} - // Int64 scalar func MarshalInt64(val int64) graphql.Marshaler { return graphql.WriterFunc(func(w io.Writer) { @@ -44,45 +37,7 @@ func UnmarshalInt64(v interface{}) (int64, error) { if tmpStr, ok := v.(string); ok { return strconv.ParseInt(tmpStr, 10, 64) } - return out, lib.NewValidationError("int64", "Expected string representing 64-bit integer") -} - -// StringMap scalar -func MarshalStringMap(val map[string]string) graphql.Marshaler { - return graphql.WriterFunc(func(w io.Writer) { - err := json.NewEncoder(w).Encode(val) - if err != nil { - zlog.Fatal().Err(err).Send() - } - }) -} - -func UnmarshalStringMap(v interface{}) (map[string]string, error) { - if m, ok := v.(map[string]string); ok { - return m, nil - } - return nil, lib.NewValidationError("stringmap", "Expected json-encoded string representing map[string]string") -} - -// MetaV1Time scalar -func MarshalMetaV1Time(t metav1.Time) graphql.Marshaler { - if t.IsZero() { - return graphql.Null - } - - return graphql.WriterFunc(func(w io.Writer) { - b, _ := t.MarshalJSON() - w.Write(b) - }) -} - -func UnmarshalMetaV1Time(v interface{}) (metav1.Time, error) { - var t metav1.Time - if tmpStr, ok := v.(string); ok { - err := t.UnmarshalQueryParameter(tmpStr) - return t, err - } - return t, lib.NewValidationError("metav1time", "Expected RFC3339 formatted string") + return out, errors.NewValidationError("int64", "Expected string representing 64-bit integer") } // TimestampPBTimestamp scalar @@ -103,7 +58,7 @@ func UnmarshalTimestampPBTimestamp(v interface{}) (*timestamppb.Timestamp, error // convert to string tmpStr, ok := v.(string) if !ok { - return nil, lib.NewValidationError("timestamppbtimestamp", "Expected RFC3339 formatted string") + return nil, errors.NewValidationError("timestamppbtimestamp", "Expected RFC3339 formatted string") } // convert to time diff --git a/modules/shared/grpchelpers/grpchelpers.go b/modules/shared/grpchelpers/grpchelpers.go new file mode 100644 index 00000000..29cc7870 --- /dev/null +++ b/modules/shared/grpchelpers/grpchelpers.go @@ -0,0 +1,100 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package grpchelpers + +import ( + "context" + + "google.golang.org/grpc" + "google.golang.org/grpc/metadata" +) + +type ctxKey int + +const K8STokenCtxKey ctxKey = iota + +// Represents wrap of original stream that returns modified context +type wrappedStream struct { + grpc.ServerStream + ctx context.Context +} + +func (s *wrappedStream) Context() context.Context { + return s.ctx +} + +// Create new auth server unary interceptor +func AuthUnaryServerInterceptor(ctx context.Context, req interface{}, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (interface{}, error) { + // Add token to context, if present + if md, ok := metadata.FromIncomingContext(ctx); ok { + authorization := md["authorization"] + if len(authorization) > 0 { + // Add token to context + ctx = context.WithValue(ctx, K8STokenCtxKey, authorization[0]) + } + } + + // Continue + return handler(ctx, req) +} + +// Create new auth client unary interceptor +func AuthUnaryClientInterceptor(ctx context.Context, method string, req, reply interface{}, cc *grpc.ClientConn, invoker grpc.UnaryInvoker, opts ...grpc.CallOption) error { + // Get token context and add to metadata, if present + if token, ok := ctx.Value(K8STokenCtxKey).(string); ok { + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", token) + } + + // Continue + return invoker(ctx, method, req, reply, cc, opts...) +} + +// Create new auth server stream interceptor +func AuthStreamServerInterceptor(srv interface{}, ss grpc.ServerStream, info *grpc.StreamServerInfo, handler grpc.StreamHandler) error { + ctx := ss.Context() + + // Add token to context, if present + if md, ok := metadata.FromIncomingContext(ctx); ok { + authorization := md["authorization"] + if len(authorization) > 0 { + // Add token to context + ctx = context.WithValue(ctx, K8STokenCtxKey, authorization[0]) + } + } + + newStream := &wrappedStream{ + ServerStream: ss, + ctx: ctx, + } + + // Continue + return handler(srv, newStream) +} + +// Create new auth client stream interceptor +func AuthStreamClientInterceptor(ctx context.Context, desc *grpc.StreamDesc, cc *grpc.ClientConn, method string, streamer grpc.Streamer, opts ...grpc.CallOption) (grpc.ClientStream, error) { + // Get token from context and add to metadata, if present + if token, ok := ctx.Value(K8STokenCtxKey).(string); ok { + ctx = metadata.AppendToOutgoingContext(ctx, "authorization", token) + } + + // Call the original streamer to proceed with the RPC + clientStream, err := streamer(ctx, desc, cc, method, opts...) + if err != nil { + return nil, err + } + + return clientStream, nil +} diff --git a/modules/shared/grpchelpers/grpchelpers_test.go b/modules/shared/grpchelpers/grpchelpers_test.go new file mode 100644 index 00000000..3935e403 --- /dev/null +++ b/modules/shared/grpchelpers/grpchelpers_test.go @@ -0,0 +1,124 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package grpchelpers + +import ( + "context" + "testing" + + "github.com/stretchr/testify/assert" + "google.golang.org/grpc" +) + +func TestAuthUnaryServerInterceptor(t *testing.T) { + t.Run("unauthenticated ctx", func(t *testing.T) { + mockHandler := func(ctx context.Context, req any) (any, error) { + val := ctx.Value(K8STokenCtxKey) + assert.Nil(t, val) + return req, nil + } + + ctxIn := context.Background() + AuthUnaryServerInterceptor(ctxIn, nil, nil, mockHandler) + }) + + t.Run("authenticated ctx", func(t *testing.T) { + mockHandler := func(ctx context.Context, req any) (any, error) { + val, _ := ctx.Value(K8STokenCtxKey).(string) + assert.Equal(t, "xxx", val) + return req, nil + } + + ctxIn := context.WithValue(context.Background(), K8STokenCtxKey, "xxx") + AuthUnaryServerInterceptor(ctxIn, nil, nil, mockHandler) + }) +} + +func TestAuthUnaryClientInterceptor(t *testing.T) { + t.Run("unauthenticated ctx", func(t *testing.T) { + mockInvoker := func(ctx context.Context, method string, req, reply any, cc *grpc.ClientConn, opts ...grpc.CallOption) error { + val := ctx.Value(K8STokenCtxKey) + assert.Nil(t, val) + return nil + } + + ctxIn := context.Background() + AuthUnaryClientInterceptor(ctxIn, "", nil, nil, nil, mockInvoker) + }) + + t.Run("authenticated ctx", func(t *testing.T) { + mockInvoker := func(ctx context.Context, method string, req, reply any, cc *grpc.ClientConn, opts ...grpc.CallOption) error { + val, _ := ctx.Value(K8STokenCtxKey).(string) + assert.Equal(t, "xxx", val) + return nil + } + + ctxIn := context.WithValue(context.Background(), K8STokenCtxKey, "xxx") + AuthUnaryClientInterceptor(ctxIn, "", nil, nil, nil, mockInvoker) + }) +} + +func TestAuthStreamServerInterceptor(t *testing.T) { + t.Run("unauthenticated ctx", func(t *testing.T) { + mockHandler := func(srv any, stream grpc.ServerStream) error { + ctx := stream.Context() + val := ctx.Value(K8STokenCtxKey) + assert.Nil(t, val) + return nil + } + + ctxIn := context.Background() + ss := &wrappedStream{ctx: ctxIn} + AuthStreamServerInterceptor(nil, ss, nil, mockHandler) + }) + + t.Run("authenticated ctx", func(t *testing.T) { + mockHandler := func(srv any, stream grpc.ServerStream) error { + ctx := stream.Context() + val, _ := ctx.Value(K8STokenCtxKey).(string) + assert.Equal(t, "xxx", val) + return nil + } + + ctxIn := context.WithValue(context.Background(), K8STokenCtxKey, "xxx") + ss := &wrappedStream{ctx: ctxIn} + AuthStreamServerInterceptor(nil, ss, nil, mockHandler) + }) + +} + +func TestAuthStreamClientInterceptor(t *testing.T) { + t.Run("unauthenticated ctx", func(t *testing.T) { + mockStreamer := func(ctx context.Context, desc *grpc.StreamDesc, cc *grpc.ClientConn, method string, opts ...grpc.CallOption) (grpc.ClientStream, error) { + val := ctx.Value(K8STokenCtxKey) + assert.Nil(t, val) + return nil, nil + } + + ctxIn := context.Background() + AuthStreamClientInterceptor(ctxIn, nil, nil, "", mockStreamer) + }) + + t.Run("authenticated ctx", func(t *testing.T) { + mockStreamer := func(ctx context.Context, desc *grpc.StreamDesc, cc *grpc.ClientConn, method string, opts ...grpc.CallOption) (grpc.ClientStream, error) { + val, _ := ctx.Value(K8STokenCtxKey).(string) + assert.Equal(t, "xxx", val) + return nil, nil + } + + ctxIn := context.WithValue(context.Background(), K8STokenCtxKey, "xxx") + AuthStreamClientInterceptor(ctxIn, nil, nil, "", mockStreamer) + }) +} diff --git a/modules/cli/internal/helm/helm.go b/modules/shared/helm/helm.go similarity index 99% rename from modules/cli/internal/helm/helm.go rename to modules/shared/helm/helm.go index 53413c91..41c46e22 100644 --- a/modules/cli/internal/helm/helm.go +++ b/modules/shared/helm/helm.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/modules/common/k8shelpers/keys.go b/modules/shared/k8shelpers/keys.go similarity index 94% rename from modules/common/k8shelpers/keys.go rename to modules/shared/k8shelpers/keys.go index 568b5e4b..b7e2360a 100644 --- a/modules/common/k8shelpers/keys.go +++ b/modules/shared/k8shelpers/keys.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/modules/shared/k8shelpers/log.go b/modules/shared/k8shelpers/log.go new file mode 100644 index 00000000..8a8b2587 --- /dev/null +++ b/modules/shared/k8shelpers/log.go @@ -0,0 +1,34 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package k8shelpers + +import ( + "bytes" + + "github.com/rs/zerolog" +) + +type ZlogWriter struct { + logger zerolog.Logger +} + +func (w *ZlogWriter) Write(b []byte) (n int, err error) { + w.logger.Error().Msg(string(bytes.TrimSpace(b))) + return len(b), nil +} + +func NewZlogWriter(logger zerolog.Logger) *ZlogWriter { + return &ZlogWriter{logger} +} diff --git a/modules/shared/k8shelpers/namespaces.go b/modules/shared/k8shelpers/namespaces.go new file mode 100644 index 00000000..84a1be93 --- /dev/null +++ b/modules/shared/k8shelpers/namespaces.go @@ -0,0 +1,52 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package k8shelpers + +import ( + "slices" + + "k8s.io/utils/ptr" + + "github.com/kubetail-org/kubetail/modules/shared/graphql/errors" +) + +// Dereference `namespace` argument and check that it is allowed +func DerefNamespace(allowedNamespaces []string, namespace *string, defaultNamespace string) (string, error) { + ns := ptr.Deref(namespace, defaultNamespace) + + // perform auth + if len(allowedNamespaces) > 0 && !slices.Contains(allowedNamespaces, ns) { + return "", errors.ErrForbidden + } + + return ns, nil +} + +// Dereference `namespace` argument, check if it's allowed, if equal to "" then return allowedNamespaes +func DerefNamespaceToList(allowedNamespaces []string, namespace *string, defaultNamespace string) ([]string, error) { + ns := ptr.Deref(namespace, defaultNamespace) + + // perform auth + if ns != "" && len(allowedNamespaces) > 0 && !slices.Contains(allowedNamespaces, ns) { + return nil, errors.ErrForbidden + } + + // listify + if ns == "" && len(allowedNamespaces) > 0 { + return allowedNamespaces, nil + } + + return []string{ns}, nil +} diff --git a/modules/server/graph/resolver_test.go b/modules/shared/k8shelpers/namespaces_test.go similarity index 83% rename from modules/server/graph/resolver_test.go rename to modules/shared/k8shelpers/namespaces_test.go index cb42c26a..e896ff39 100644 --- a/modules/server/graph/resolver_test.go +++ b/modules/shared/k8shelpers/namespaces_test.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -12,16 +12,17 @@ // See the License for the specific language governing permissions and // limitations under the License. -package graph +package k8shelpers import ( "testing" + "github.com/kubetail-org/kubetail/modules/shared/graphql/errors" "github.com/stretchr/testify/assert" "k8s.io/utils/ptr" ) -func TestToNamespaceSuccess(t *testing.T) { +func TestDerefNamespaceSuccess(t *testing.T) { tests := []struct { name string setAllowedNamespaces []string @@ -32,7 +33,7 @@ func TestToNamespaceSuccess(t *testing.T) { "any namespace allowed: ", []string{}, nil, - "default", + "my-default-namespace", }, { "any namespace allowed: ", @@ -68,15 +69,14 @@ func TestToNamespaceSuccess(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - r := Resolver{allowedNamespaces: tt.setAllowedNamespaces} - actualNamespace, err := r.ToNamespace(tt.setNamespace) + actualNamespace, err := DerefNamespace(tt.setAllowedNamespaces, tt.setNamespace, "my-default-namespace") assert.Nil(t, err) assert.Equal(t, tt.wantNamespace, actualNamespace) }) } } -func TestToNamespaceError(t *testing.T) { +func TestDerefNamespaceError(t *testing.T) { tests := []struct { name string setAllowedNamespaces []string @@ -116,16 +116,15 @@ func TestToNamespaceError(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - r := Resolver{allowedNamespaces: tt.setAllowedNamespaces} - ns, err := r.ToNamespace(tt.setNamespace) + ns, err := DerefNamespace(tt.setAllowedNamespaces, tt.setNamespace, "my-default-namespace") assert.Equal(t, ns, "") assert.NotNil(t, err) - assert.Equal(t, err, ErrForbidden) + assert.Equal(t, err, errors.ErrForbidden) }) } } -func TestToNamespacesSuccess(t *testing.T) { +func TestDerefNamespaceToListSuccess(t *testing.T) { tests := []struct { name string setAllowedNamespaces []string @@ -136,7 +135,7 @@ func TestToNamespacesSuccess(t *testing.T) { "any namespace allowed: ", []string{}, nil, - []string{"default"}, + []string{"my-default-namespace"}, }, { "any namespace allowed: ", @@ -184,8 +183,7 @@ func TestToNamespacesSuccess(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - r := Resolver{allowedNamespaces: tt.setAllowedNamespaces} - actualNamespaces, err := r.ToNamespaces(tt.setNamespace) + actualNamespaces, err := DerefNamespaceToList(tt.setAllowedNamespaces, tt.setNamespace, "my-default-namespace") assert.Nil(t, err) assert.Equal(t, tt.wantNamespaces, actualNamespaces) }) @@ -203,32 +201,31 @@ func TestToNamespacesError(t *testing.T) { "single namespace allowed: ", []string{"testns"}, nil, - ErrForbidden, + errors.ErrForbidden, }, { "single namespace allowed: not-testns", []string{"testns"}, ptr.To[string]("not-testns"), - ErrForbidden, + errors.ErrForbidden, }, { "multiple namespaces allowed: ", []string{"testns1", "testns2"}, nil, - ErrForbidden, + errors.ErrForbidden, }, { "multiple namespaces allowed: not-testns1", []string{"testns1", "testns2"}, ptr.To[string]("not-testns1"), - ErrForbidden, + errors.ErrForbidden, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - r := Resolver{allowedNamespaces: tt.setAllowedNamespaces} - actualNamespaces, err := r.ToNamespaces(tt.setNamespace) + actualNamespaces, err := DerefNamespaceToList(tt.setAllowedNamespaces, tt.setNamespace, "my-default-namespace") assert.NotNil(t, err) assert.Equal(t, tt.wantError, err) assert.Equal(t, []string(nil), actualNamespaces) diff --git a/modules/common/k8shelpers/transport.go b/modules/shared/k8shelpers/transport.go similarity index 96% rename from modules/common/k8shelpers/transport.go rename to modules/shared/k8shelpers/transport.go index 7dd52dcd..77f4c6dc 100644 --- a/modules/common/k8shelpers/transport.go +++ b/modules/shared/k8shelpers/transport.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. diff --git a/modules/server/pkg/ginapp/middleware.go b/modules/shared/middleware/middleware.go similarity index 56% rename from modules/server/pkg/ginapp/middleware.go rename to modules/shared/middleware/middleware.go index 78203758..f0edaee8 100644 --- a/modules/server/pkg/ginapp/middleware.go +++ b/modules/shared/middleware/middleware.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -12,83 +12,19 @@ // See the License for the specific language governing permissions and // limitations under the License. -package ginapp +package middleware import ( - "context" - "net/http" "strings" "time" "github.com/gin-contrib/requestid" - "github.com/gin-contrib/sessions" "github.com/gin-gonic/gin" "github.com/rs/zerolog/log" - - "github.com/kubetail-org/kubetail/modules/common/config" - "github.com/kubetail-org/kubetail/modules/common/grpchelpers" - "github.com/kubetail-org/kubetail/modules/common/k8shelpers" ) -// Add user to context if authenticated -func authenticationMiddleware(mode config.AuthMode) gin.HandlerFunc { - return func(c *gin.Context) { - // continue if not in token mode - if mode != config.AuthModeToken { - c.Next() - return - } - - var token string - - // check cookie session - session := sessions.Default(c) - tokenIF := session.Get(k8sTokenSessionKey) - if tokenIF != nil { - token = tokenIF.(string) - } - - // check Authorization header - header := c.GetHeader("Authorization") - if strings.HasPrefix(header, "Bearer ") { - token = strings.TrimPrefix(header, "Bearer ") - } - - // if present, add token to request context - if token != "" { - // add to gin context - c.Set(k8sTokenCtxKey, token) - - // add token for graphql requests - ctx := context.WithValue(c.Request.Context(), k8shelpers.K8STokenCtxKey, token) - - // add token for grpc requests - ctx = context.WithValue(ctx, grpchelpers.K8STokenCtxKey, token) - - c.Request = c.Request.WithContext(ctx) - } - - // continue with the request - c.Next() - } -} - -// Require token -func k8sTokenRequiredMiddleware(c *gin.Context) { - // set "Cache-Control: no-store" so that pages requiring authentication are not stored in the users browser cache - c.Header("Cache-Control", "no-store") - - token := c.GetString(k8sTokenCtxKey) - if token == "" { - c.AbortWithStatus(http.StatusUnauthorized) - return - } - - c.Next() -} - // Log HTTP requests -func loggingMiddleware(hideHealthChecks bool) gin.HandlerFunc { +func LoggingMiddleware(hideHealthChecks bool) gin.HandlerFunc { return func(c *gin.Context) { if hideHealthChecks && strings.HasSuffix(c.Request.URL.Path, "/healthz") { c.Next() diff --git a/modules/common/testpb/test.pb.go b/modules/shared/testpb/test.pb.go similarity index 91% rename from modules/common/testpb/test.pb.go rename to modules/shared/testpb/test.pb.go index 8957b8da..49d5e42e 100644 --- a/modules/common/testpb/test.pb.go +++ b/modules/shared/testpb/test.pb.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,8 +14,8 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.35.1 -// protoc v5.28.2 +// protoc-gen-go v1.36.2 +// protoc v5.29.3 // source: test.proto package testpb @@ -35,11 +35,10 @@ const ( ) type EchoRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` + sizeCache protoimpl.SizeCache } func (x *EchoRequest) Reset() { @@ -80,11 +79,10 @@ func (x *EchoRequest) GetMessage() string { } type EchoResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache + state protoimpl.MessageState `protogen:"open.v1"` + Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` unknownFields protoimpl.UnknownFields - - Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` + sizeCache protoimpl.SizeCache } func (x *EchoResponse) Reset() { @@ -137,8 +135,8 @@ var file_test_proto_rawDesc = []byte{ 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x31, 0x0a, 0x04, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x13, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x45, 0x63, 0x68, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x14, 0x2e, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x2e, 0x45, 0x63, 0x68, - 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0f, 0x5a, 0x0d, 0x63, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0f, 0x5a, 0x0d, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x64, 0x2f, 0x74, 0x65, 0x73, 0x74, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } diff --git a/modules/common/testpb/test_grpc.pb.go b/modules/shared/testpb/test_grpc.pb.go similarity index 98% rename from modules/common/testpb/test_grpc.pb.go rename to modules/shared/testpb/test_grpc.pb.go index f5c93d01..3f6c1239 100644 --- a/modules/common/testpb/test_grpc.pb.go +++ b/modules/shared/testpb/test_grpc.pb.go @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -15,7 +15,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.5.1 -// - protoc v5.28.2 +// - protoc v5.29.3 // source: test.proto package testpb diff --git a/modules/common/testpb/testpb.go b/modules/shared/testpb/testpb.go similarity index 100% rename from modules/common/testpb/testpb.go rename to modules/shared/testpb/testpb.go diff --git a/modules/shared/testutils/testutils.go b/modules/shared/testutils/testutils.go new file mode 100644 index 00000000..e2eb36a3 --- /dev/null +++ b/modules/shared/testutils/testutils.go @@ -0,0 +1,146 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +package testutils + +import ( + "io" + "net/http" + "net/http/cookiejar" + "net/http/httptest" + "net/url" + "strings" + "testing" +) + +/** + * WebTestResponse - A container object designed to make it easy to make + * assertions against an HTTP response from a test server + */ +type WebTestResponse struct { + StatusCode int + Header http.Header + Cookies []*http.Cookie + Body []byte +} + +/** + * WebTestClient - An HTTP Client designed for making HTTP requests against a + * test server. + */ +type WebTestClient struct { + Server *httptest.Server + httpclient *http.Client + baseURL string + t *testing.T +} + +// Execute GET request +func (c *WebTestClient) Get(url string) WebTestResponse { + return c.Do(c.NewRequest("GET", url, nil)) +} + +// Execute HEAD request +func (c *WebTestClient) Head(url string) WebTestResponse { + return c.Do(c.NewRequest("HEAD", url, nil)) +} + +// Execute POST request +func (c *WebTestClient) Post(url, contentType string, body io.Reader) WebTestResponse { + req := c.NewRequest("POST", url, body) + req.Header.Set("Content-Type", contentType) + return c.Do(req) +} + +// Execute POST request with form data +func (c *WebTestClient) PostForm(url string, form url.Values) WebTestResponse { + body := strings.NewReader(form.Encode()) + req := c.NewRequest("POST", url, body) + req.Header.Set("Content-Type", "application/x-www-form-urlencoded") + return c.Do(req) +} + +// Execute request +func (c *WebTestClient) Do(req *http.Request) WebTestResponse { + // execute request + resp, err := c.httpclient.Do(req) + if err != nil { + c.t.Fatal(err) + } + + // read body + defer resp.Body.Close() + respBody, err := io.ReadAll(resp.Body) + if err != nil { + c.t.Fatal(err) + } + + // return response + return WebTestResponse{ + StatusCode: resp.StatusCode, + Header: resp.Header, + Cookies: resp.Cookies(), + Body: respBody, + } +} + +// Close testserver, etc. +func (c *WebTestClient) Teardown() { + c.Server.Close() +} + +// Generate new request object +func (c *WebTestClient) NewRequest(method, target string, body io.Reader) *http.Request { + req, err := http.NewRequest(method, c.baseURL+target, body) + if err != nil { + c.t.Fatal(err) + } + return req +} + +// Create new web test client +func NewWebTestClient(t *testing.T, app http.Handler) *WebTestClient { + testserver := httptest.NewServer(app) + + // copy test server client + c := testserver.Client() + + // disable redirect-following + c.CheckRedirect = func(req *http.Request, via []*http.Request) error { + return http.ErrUseLastResponse + } + + // add cookie jar + jar, err := cookiejar.New(nil) + if err != nil { + t.Fatal(err) + } + c.Jar = jar + + client := &WebTestClient{ + Server: testserver, + httpclient: c, + baseURL: testserver.URL, + t: t, + } + + return client +} + +// Create new web test client without cookie jar +func NewWebTestClientWithoutCookieJar(t *testing.T, app http.Handler) *WebTestClient { + c := NewWebTestClient(t, app) + c.httpclient.Jar = nil + return c +} diff --git a/proto/cluster_agent.proto b/proto/cluster_agent.proto new file mode 100644 index 00000000..599ab453 --- /dev/null +++ b/proto/cluster_agent.proto @@ -0,0 +1,62 @@ +// Copyright 2024-2025 Andres Morey +// +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +syntax = "proto3"; + +package cluster_agent; + +option go_package = "shared/clusteragentpb"; + +import "google/protobuf/timestamp.proto"; + +service LogMetadataService { + rpc List (LogMetadataListRequest) returns (LogMetadataList); + rpc Watch (LogMetadataWatchRequest) returns (stream LogMetadataWatchEvent); +} + +message LogMetadata { + string id = 1; + LogMetadataSpec spec = 2; + LogMetadataFileInfo fileInfo = 3; +} + +message LogMetadataFileInfo { + int64 size = 1; + google.protobuf.Timestamp last_modified_at = 2; +} + +message LogMetadataSpec { + string node_name = 1; + string namespace = 2; + string pod_name = 3; + string container_name = 4; + string container_id = 5; +} + +message LogMetadataList { + repeated LogMetadata items = 1; +} + +message LogMetadataListRequest { + repeated string namespaces = 1; +} + +message LogMetadataWatchRequest { + repeated string namespaces = 1; +} + +message LogMetadataWatchEvent { + string type = 1; + LogMetadata object = 2; +} diff --git a/proto/agent.proto b/proto/cluster_api.proto similarity index 93% rename from proto/agent.proto rename to proto/cluster_api.proto index 2c195ba5..f2cc86b5 100644 --- a/proto/agent.proto +++ b/proto/cluster_api.proto @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -14,9 +14,9 @@ syntax = "proto3"; -package agentpb; +package cluster_api; -option go_package = "common/agentpb"; +option go_package = "shared/clusterapipb"; import "google/protobuf/timestamp.proto"; diff --git a/proto/test.proto b/proto/test.proto index c1a821c8..638cdf04 100644 --- a/proto/test.proto +++ b/proto/test.proto @@ -1,4 +1,4 @@ -// Copyright 2024 Andres Morey +// Copyright 2024-2025 Andres Morey // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. @@ -16,7 +16,7 @@ syntax = "proto3"; package testpb; -option go_package = "common/testpb"; +option go_package = "shared/testpb"; service TestService { rpc Echo (EchoRequest) returns (EchoResponse);