diff --git a/.github/workflows/e2e.yaml b/.github/workflows/e2e.yaml index 70c3f0e2..0ab80652 100644 --- a/.github/workflows/e2e.yaml +++ b/.github/workflows/e2e.yaml @@ -19,7 +19,7 @@ jobs: sudo apt-get update sudo apt-get install -y terraform - run: | - make install + GOBIN="$HOME"/bin make install cp "$HOME"/bin/plural /usr/local/bin/ chmod 755 /usr/local/bin/plural - run: hack/e2e/setup-plural.sh diff --git a/.github/workflows/goreleaser-cd.yml b/.github/workflows/goreleaser-cd.yml new file mode 100644 index 00000000..f7bc1c74 --- /dev/null +++ b/.github/workflows/goreleaser-cd.yml @@ -0,0 +1,230 @@ +name: CD / CLI +on: + push: + tags: + - 'v*.*.*' + +jobs: + # Build binaries with GoReleaser + prepare: + strategy: + matrix: + os: [ ubuntu-latest, macos-latest, windows-latest ] + include: + - os: ubuntu-latest + goos: linux + - os: macos-latest + goos: darwin + - os: windows-latest + goos: windows + runs-on: ${{ matrix.os }} + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + - name: Setup Go + uses: actions/setup-go@v3 + with: + go-version: 1.19 + cache: true + - name: Setup Node + uses: actions/setup-node@v3 + with: + node-version: 16.18.1 + - name: Setup SHA variable + shell: bash + run: echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_ENV + - name: Setup Cache + uses: actions/cache@v3.2.3 + with: + path: dist/${{ matrix.goos }} + key: ${{ matrix.goos }}-${{ env.sha_short }} + enableCrossOsArchive: true + - name: Install Dependencies + if: matrix.goos == 'linux' + shell: bash + run: sudo apt install -y libwebkit2gtk-4.0-dev libgtk-3-dev + - name: Build web + shell: bash + run: make build-web + - name: GoReleaser (Build) + uses: goreleaser/goreleaser-action@v4 + with: + distribution: goreleaser-pro + version: latest + args: release --clean --split + env: + CGO_LDFLAGS: "${{ matrix.goos == 'darwin' && '-framework UniformTypeIdentifiers' || '' }}" + GOOS: ${{ matrix.GOOS }} + GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }} + + # Release binaries with GoReleaser + release: + runs-on: ubuntu-latest + needs: prepare + env: + DOCKER_CLI_EXPERIMENTAL: "enabled" + steps: + - name: Checkout + uses: actions/checkout@v3 + with: + fetch-depth: 0 + - uses: actions/setup-go@v3 + with: + go-version: 1.19 + cache: true + - name: Copy Cache From Previous Job + shell: bash + run: | + echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_ENV + - name: Restore Linux Cache + uses: actions/cache@v3.2.3 + with: + path: dist/linux + key: linux-${{ env.sha_short }} + - name: Restore Darwin Cache + uses: actions/cache@v3.2.3 + with: + path: dist/darwin + key: darwin-${{ env.sha_short }} + - name: Restore Windows Cache + uses: actions/cache@v3.2.3 + with: + path: dist/windows + key: windows-${{ env.sha_short }} + enableCrossOsArchive: true + - name: GoReleaser (Release) + uses: goreleaser/goreleaser-action@v4 + if: steps.cache.outputs.cache-hit != 'true' # do not run if cache hit + with: + distribution: goreleaser-pro + version: latest + args: continue --merge + env: + GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITLAB_CLIENT_SECRET: ${{ secrets.GITLAB_CLIENT_SECRET }} + HOMEBREW_TAP_GITHUB_TOKEN: ${{ secrets.HOMEBREW_TAP_GITHUB_TOKEN }} + + # Publish CLI / Cloud CLI container images + publish: + strategy: + matrix: + image: [ plural-cli, plural-cli-cloud ] + include: + - image: plural-cli + dockerfile: ./Dockerfile + - image: plural-cli-cloud + dockerfile: ./dockerfiles/Dockerfile.cloud + runs-on: ubuntu-latest + needs: release + permissions: + contents: 'read' + id-token: 'write' + packages: 'write' + security-events: write + actions: read + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Configure AWS Credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-region: us-east-2 + role-to-assume: arn:aws:iam::312272277431:role/github-actions/buildx-deployments + role-session-name: PluralCLI + - name: Setup kubectl + uses: azure/setup-kubectl@v3 + - name: Get EKS credentials + run: aws eks update-kubeconfig --name pluraldev + - name: Docker meta + id: meta + uses: docker/metadata-action@v4 + with: + # list of Docker images to use as base name for tags + images: | + ghcr.io/pluralsh/${{ matrix.image }} + gcr.io/pluralsh/${{ matrix.image }} + # generate Docker tags based on the following events/attributes + tags: | + type=semver,pattern={{version}} + - name: Set up Docker Buildx + id: builder + uses: docker/setup-buildx-action@v2 + with: + driver: kubernetes + platforms: linux/amd64 + driver-opts: | + namespace=buildx + requests.cpu=1.5 + requests.memory=3.5Gi + "nodeselector=plural.sh/scalingGroup=buildx-spot-x86" + "tolerations=key=plural.sh/capacityType,value=SPOT,effect=NoSchedule;key=plural.sh/reserved,value=BUILDX,effect=NoSchedule" + - name: Append ARM buildx builder from AWS + run: | + docker buildx create \ + --append \ + --bootstrap \ + --name ${{ steps.builder.outputs.name }} \ + --driver=kubernetes \ + --platform linux/arm64 \ + --node=${{ steps.builder.outputs.name }}-arm64 \ + --buildkitd-flags "--allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host" \ + --driver-opt namespace=buildx \ + --driver-opt requests.cpu=1.5 \ + --driver-opt requests.memory=3.5Gi \ + '--driver-opt="nodeselector=plural.sh/scalingGroup=buildx-spot-arm64"' \ + '--driver-opt="tolerations=key=plural.sh/capacityType,value=SPOT,effect=NoSchedule;key=plural.sh/reserved,value=BUILDX,effect=NoSchedule"' + - uses: google-github-actions/auth@v1 + with: + workload_identity_provider: 'projects/${{ secrets.GOOGLE_PROJECT_ID }}/locations/global/workloadIdentityPools/github/providers/github' + service_account: 'terraform@pluralsh.iam.gserviceaccount.com' + token_format: 'access_token' + create_credentials_file: true + - uses: google-github-actions/setup-gcloud@v1.0.1 + - name: Login to gcr + run: gcloud auth configure-docker -q + - name: Login to plural registry + uses: docker/login-action@v2 + with: + registry: dkr.plural.sh + username: mjg@plural.sh + password: ${{ secrets.PLURAL_ACCESS_TOKEN }} + - name: Login to GHCR + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + - name: Get current date + id: date + run: echo "date=$(date -u +'%Y-%m-%dT%H:%M:%S%z')" >> $GITHUB_OUTPUT + - name: Build and push + uses: docker/build-push-action@v4 + with: + context: "." + file: "${{ matrix.dockerfile }}" + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} + platforms: linux/amd64,linux/arm64 + build-args: | + APP_VSN=${{ github.ref_name }} + APP_COMMIT=${{ github.sha }} + APP_DATE=${{ steps.date.outputs.date }} + - name: Run Trivy vulnerability scanner on image + uses: aquasecurity/trivy-action@master + with: + scan-type: 'image' + image-ref: ${{ fromJSON(steps.meta.outputs.json).tags[0] }} + hide-progress: false + format: 'sarif' + output: 'trivy-results.sarif' + scanners: 'vuln' + timeout: 10m + ignore-unfixed: true + - name: Upload Trivy scan results to GitHub Security tab + uses: github/codeql-action/upload-sarif@v2 + with: + sarif_file: 'trivy-results.sarif' diff --git a/.github/workflows/goreleaser-ci.yml b/.github/workflows/goreleaser-ci.yml deleted file mode 100644 index 1178cab0..00000000 --- a/.github/workflows/goreleaser-ci.yml +++ /dev/null @@ -1,262 +0,0 @@ -name: goreleaser -on: - push: - tags: - - 'v*.*.*' -jobs: - goreleaser: - runs-on: ubuntu-latest - outputs: - metadata: ${{ steps.goreleaser-step.outputs.metadata }} - artifacts: ${{ steps.goreleaser-step.outputs.artifacts }} - steps: - - name: Checkout - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - name: Set up Go - uses: actions/setup-go@v3 - with: - go-version: '>=1.18.0' - - name: Run GoReleaser - id: goreleaser-step - uses: goreleaser/goreleaser-action@v4 - with: - distribution: goreleaser - version: latest - args: release --rm-dist - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - GITLAB_CLIENT_SECRET: ${{ secrets.GITLAB_CLIENT_SECRET }} - HOMEBREW_TAP_GITHUB_TOKEN: ${{ secrets.HOMEBREW_TAP_GITHUB_TOKEN }} - publish: - name: Build and push CLI container - runs-on: ubuntu-latest - permissions: - contents: 'read' - id-token: 'write' - packages: 'write' - security-events: write - actions: read - steps: - - name: Checkout - uses: actions/checkout@v3 - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-region: us-east-2 - role-to-assume: arn:aws:iam::312272277431:role/github-actions/buildx-deployments - role-session-name: PluralCLI - - name: setup kubectl - uses: azure/setup-kubectl@v3 - - name: Get EKS credentials - run: aws eks update-kubeconfig --name pluraldev - - name: Docker meta - id: meta - uses: docker/metadata-action@v4 - with: - # list of Docker images to use as base name for tags - images: | - ghcr.io/pluralsh/plural-cli - gcr.io/pluralsh/plural-cli - # dkr.plural.sh/plural/plural-cli - # generate Docker tags based on the following events/attributes - tags: | - type=semver,pattern={{version}} - - name: Set up Docker Buildx - id: builder - uses: docker/setup-buildx-action@v2 - with: - driver: kubernetes - platforms: linux/amd64 - driver-opts: | - namespace=buildx - requests.cpu=1.5 - requests.memory=3.5Gi - "nodeselector=plural.sh/scalingGroup=buildx-spot-x86" - "tolerations=key=plural.sh/capacityType,value=SPOT,effect=NoSchedule;key=plural.sh/reserved,value=BUILDX,effect=NoSchedule" - - name: Append ARM buildx builder from AWS - run: | - docker buildx create \ - --append \ - --bootstrap \ - --name ${{ steps.builder.outputs.name }} \ - --driver=kubernetes \ - --platform linux/arm64 \ - --node=${{ steps.builder.outputs.name }}-arm64 \ - --buildkitd-flags "--allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host" \ - --driver-opt namespace=buildx \ - --driver-opt requests.cpu=1.5 \ - --driver-opt requests.memory=3.5Gi \ - '--driver-opt="nodeselector=plural.sh/scalingGroup=buildx-spot-arm64"' \ - '--driver-opt="tolerations=key=plural.sh/capacityType,value=SPOT,effect=NoSchedule;key=plural.sh/reserved,value=BUILDX,effect=NoSchedule"' - - uses: google-github-actions/auth@v1 - with: - workload_identity_provider: 'projects/${{ secrets.GOOGLE_PROJECT_ID }}/locations/global/workloadIdentityPools/github/providers/github' - service_account: 'terraform@pluralsh.iam.gserviceaccount.com' - token_format: 'access_token' - create_credentials_file: true - - uses: google-github-actions/setup-gcloud@v1.0.1 - - name: Login to gcr - run: gcloud auth configure-docker -q - - name: Login to plural registry - uses: docker/login-action@v2 - with: - registry: dkr.plural.sh - username: mjg@plural.sh - password: ${{ secrets.PLURAL_ACCESS_TOKEN }} - - name: Login to GHCR - uses: docker/login-action@v2 - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} - - name: Get current date - id: date - run: echo "date=$(date -u +'%Y-%m-%dT%H:%M:%S%z')" >> $GITHUB_OUTPUT - - name: Build and push - uses: docker/build-push-action@v4 - with: - context: "." - file: "./Dockerfile" - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - platforms: linux/amd64,linux/arm64 - # cache-from: type=gha - # cache-to: type=gha,mode=max - build-args: | - APP_VSN=${{ github.ref_name }} - APP_COMMIT=${{ github.sha }} - APP_DATE=${{ steps.date.outputs.date }} - - name: Run Trivy vulnerability scanner on cli image - uses: aquasecurity/trivy-action@master - with: - scan-type: 'image' - image-ref: ${{ fromJSON(steps.meta.outputs.json).tags[0] }} - hide-progress: false - format: 'sarif' - output: 'trivy-results.sarif' - scanners: 'vuln' - ignore-unfixed: true - #severity: 'CRITICAL,HIGH' - - name: Upload Trivy scan results to GitHub Security tab - uses: github/codeql-action/upload-sarif@v2 - with: - sarif_file: 'trivy-results.sarif' - publish-cloud: - name: Build and push CLI cloud container - runs-on: ubuntu-latest - permissions: - contents: 'read' - id-token: 'write' - packages: 'write' - security-events: write - actions: read - steps: - - name: Checkout - uses: actions/checkout@v3 - - name: Configure AWS Credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-region: us-east-2 - role-to-assume: arn:aws:iam::312272277431:role/github-actions/buildx-deployments - role-session-name: PluralCLI - - name: setup kubectl - uses: azure/setup-kubectl@v3 - - name: Get EKS credentials - run: aws eks update-kubeconfig --name pluraldev - - name: Docker meta - id: meta - uses: docker/metadata-action@v4 - with: - # list of Docker images to use as base name for tags - images: | - ghcr.io/pluralsh/plural-cli-cloud - gcr.io/pluralsh/plural-cli-cloud - # dkr.plural.sh/plural/plural-cli-cloud - # generate Docker tags based on the following events/attributes - tags: | - type=semver,pattern={{version}} - - name: Set up Docker Buildx - id: builder - uses: docker/setup-buildx-action@v2 - with: - driver: kubernetes - platforms: linux/amd64 - driver-opts: | - namespace=buildx - requests.cpu=1.5 - requests.memory=3.5Gi - "nodeselector=plural.sh/scalingGroup=buildx-spot-x86" - "tolerations=key=plural.sh/capacityType,value=SPOT,effect=NoSchedule;key=plural.sh/reserved,value=BUILDX,effect=NoSchedule" - - name: Append ARM buildx builder from AWS - run: | - docker buildx create \ - --append \ - --bootstrap \ - --name ${{ steps.builder.outputs.name }} \ - --driver=kubernetes \ - --platform linux/arm64 \ - --node=${{ steps.builder.outputs.name }}-arm64 \ - --buildkitd-flags "--allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host" \ - --driver-opt namespace=buildx \ - --driver-opt requests.cpu=1.5 \ - --driver-opt requests.memory=3.5Gi \ - '--driver-opt="nodeselector=plural.sh/scalingGroup=buildx-spot-arm64"' \ - '--driver-opt="tolerations=key=plural.sh/capacityType,value=SPOT,effect=NoSchedule;key=plural.sh/reserved,value=BUILDX,effect=NoSchedule"' - - uses: google-github-actions/auth@v1 - with: - workload_identity_provider: 'projects/${{ secrets.GOOGLE_PROJECT_ID }}/locations/global/workloadIdentityPools/github/providers/github' - service_account: 'terraform@pluralsh.iam.gserviceaccount.com' - token_format: 'access_token' - create_credentials_file: true - - uses: google-github-actions/setup-gcloud@v1.0.1 - - name: Login to gcr - run: gcloud auth configure-docker -q - - name: Login to plural registry - uses: docker/login-action@v2 - with: - registry: dkr.plural.sh - username: mjg@plural.sh - password: ${{ secrets.PLURAL_ACCESS_TOKEN }} - - name: Login to GHCR - uses: docker/login-action@v2 - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} - - name: Get current date - id: date - run: echo "date=$(date -u +'%Y-%m-%dT%H:%M:%S%z')" >> $GITHUB_OUTPUT - - name: Build and push - uses: docker/build-push-action@v4 - with: - context: "." - file: "./dockerfiles/Dockerfile.cloud" - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - platforms: linux/amd64,linux/arm64 - # cache-from: type=gha - # cache-to: type=gha,mode=max - build-args: | - APP_VSN=${{ github.ref_name }} - APP_COMMIT=${{ github.sha }} - APP_DATE=${{ steps.date.outputs.date }} - - name: Run Trivy vulnerability scanner on cli cloud image - uses: aquasecurity/trivy-action@master - with: - scan-type: 'image' - image-ref: ${{ fromJSON(steps.meta.outputs.json).tags[0] }} - hide-progress: false - format: 'sarif' - output: 'trivy-results.sarif' - scanners: 'vuln' - timeout: 10m - ignore-unfixed: true - #severity: 'CRITICAL,HIGH' - - name: Upload Trivy scan results to GitHub Security tab - uses: github/codeql-action/upload-sarif@v2 - with: - sarif_file: 'trivy-results.sarif' diff --git a/.gitignore b/.gitignore index b637ccd6..5140c33f 100644 --- a/.gitignore +++ b/.gitignore @@ -16,4 +16,12 @@ plural*.o # Dependency directories (remove the comment below to include it) # vendor/ +# IDE dirs +.idea/ + dist/ +build/ + +# Testing files +context.yaml +workspace.yaml \ No newline at end of file diff --git a/.goreleaser.yaml b/.goreleaser.yaml index 034e4385..90abe304 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -1,26 +1,56 @@ # This is an example .goreleaser.yml file with some sensible defaults. # Make sure to check the documentation at https://goreleaser.com + +# Requires a GoReleaser Pro to run +partial: + by: goos + before: hooks: - go mod tidy + builds: - - env: - - CGO_ENABLED=0 + - id: plural-cli + targets: + - linux_amd64 + - linux_arm64 + - windows_amd64 + - windows_arm64 + - darwin_amd64 + - darwin_arm64 + env: + - CGO_ENABLED=1 ldflags: - - "-s -w -X main.version={{.Version}} -X main.commit={{.Commit}} -X main.date={{.Date}} -X github.com/pluralsh/plural/pkg/scm.GitlabClientSecret={{ .Env.GITLAB_CLIENT_SECRET }}" - goos: - - linux - - windows - - darwin - main: ./cmd/plural + - -s + - -w + - -X "github.com/pluralsh/plural/cmd/plural.Version={{.Version}}" + - -X "github.com/pluralsh/plural/cmd/plural.Commit={{.Commit}}" + - -X "github.com/pluralsh/plural/cmd/plural.Date={{.Date}}" + - -X "github.com/pluralsh/plural/pkg/scm.GitlabClientSecret={{.Env.GITLAB_CLIENT_SECRET}}" + tags: + - desktop + - production + - ui binary: plural + # Do not embed UI into linux/arm64 and windows/arm64 binaries + overrides: + - goos: linux + goarch: arm64 + tags: [linux] + env: + - CGO_ENABLED=0 + - goos: windows + goarch: arm64 + tags: [windows] + env: + - CGO_ENABLED=0 + archives: - - replacements: - darwin: Darwin - linux: Linux - windows: Windows - 386: i386 - amd64: amd64 + - name_template: >- + {{ .ProjectName }}_{{ .Version }}_ + {{- title .Os }}_ + {{- if eq .Arch "386" }}i386 + {{- else }}{{ .Arch }}{{ end }} checksum: name_template: 'checksums.txt' snapshot: @@ -32,6 +62,7 @@ changelog: exclude: - '^docs:' - '^test:' + release: name_template: "{{.ProjectName}}-v{{.Version}}" header: | @@ -40,6 +71,7 @@ release: footer: | ## Thanks! We'd like to thank all contributors for helping with improving our CLI! + brews: - name: plural tap: diff --git a/Dockerfile b/Dockerfile index e57eb089..3a358c14 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,7 +3,7 @@ FROM ubuntu:22.10 as user # Create a nonroot user for final image RUN useradd -u 10001 nonroot -FROM golang:1.18.8-alpine3.15 AS builder +FROM golang:1.20-alpine3.17 AS builder WORKDIR /workspace @@ -15,6 +15,7 @@ COPY go.sum go.sum RUN go mod download # Copy the go source +COPY main.go main.go COPY cmd/ cmd/ COPY pkg/ pkg/ @@ -25,20 +26,23 @@ ARG APP_DATE ARG TARGETARCH RUN CGO_ENABLED=0 GOOS=linux GOARCH=${TARGETARCH} \ - go build -ldflags "-s -w -X main.version=${APP_VSN} -X main.commit=${APP_COMMIT} -X main.date=${APP_DATE}" \ - -o plural ./cmd/plural/ + go build -ldflags '-s -w \ + -X "github.com/pluralsh/plural/cmd/plural.Version=${APP_VSN}" \ + -X "github.com/pluralsh/plural/cmd/plural.Commit=${APP_COMMIT}" \ + -X "github.com/pluralsh/plural/cmd/plural.Date=${APP_DATE}"' \ + -o plural . -FROM golang:1.18.8-alpine3.15 +FROM golang:1.20-alpine3.17 WORKDIR / RUN apk update && apk add --no-cache git build-base -COPY --from=builder /workspace/plural /go/bin/ - # Copy nonroot user and switch to it COPY --from=user /etc/passwd /etc/passwd USER nonroot -RUN /go/bin/plural --help -RUN /go/bin/plural version +COPY --chown=nonroot --from=builder /workspace/plural /go/bin/ +RUN chmod a+x /go/bin/plural + +ENTRYPOINT ["/go/bin/plural"] diff --git a/Makefile b/Makefile index 8ed42ad8..7ab6ae7c 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,8 @@ -.PHONY: # ignore +ROOT_DIRECTORY := $(shell dirname $(realpath $(firstword $(MAKEFILE_LIST)))) + +include $(ROOT_DIRECTORY)/hack/include/help.mk +include $(ROOT_DIRECTORY)/hack/include/tools.mk +include $(ROOT_DIRECTORY)/hack/include/build.mk GCP_PROJECT ?= pluralsh APP_NAME ?= plural-cli @@ -7,33 +11,76 @@ APP_DATE ?= $(shell date -u +"%Y-%m-%dT%H:%M:%S%z") BUILD ?= $(shell git rev-parse --short HEAD) DKR_HOST ?= dkr.plural.sh GOOS ?= darwin -GOARCH ?= amd64 -BASE_LDFLAGS ?= -X main.version=$(APP_VSN) -X main.commit=$(BUILD) -X main.date=$(APP_DATE) -X github.com/pluralsh/plural/pkg/scm.GitlabClientSecret=${GITLAB_CLIENT_SECRET} -X github.com/pluralsh/plural/pkg/scm.BitbucketClientSecret=${BITBUCKET_CLIENT_SECRET} +GOARCH ?= arm64 +GOLANG_CROSS_VERSION ?= v1.20.2 +PACKAGE ?= github.com/pluralsh/plural +BASE_LDFLAGS ?= -s -w +LDFLAGS ?= $(BASE_LDFLAGS) $\ + -X "$(PACKAGE)/cmd/plural.Version=$(APP_VSN)" $\ + -X "$(PACKAGE)/cmd/plural.Commit=$(BUILD)" $\ + -X "$(PACKAGE)/cmd/plural.Date=$(APP_DATE)" $\ + -X "$(PACKAGE)/pkg/scm.GitlabClientSecret=${GITLAB_CLIENT_SECRET}" $\ + -X "$(PACKAGE)/pkg/scm.BitbucketClientSecret=${BITBUCKET_CLIENT_SECRET}" +WAILS_TAGS ?= desktop,production,ui +WAILS_BINDINGS_TAGS ?= bindings,generate +WAILS_BINDINGS_BINARY_NAME ?= wailsbindings +TAGS ?= $(WAILS_TAGS) OUTFILE ?= plural.o -help: - @perl -nle'print $& if m{^[a-zA-Z_-]+:.*?## .*$$}' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' +# Targets to run before other targets +# install-tools - Install binaries required to run targets +PRE := install-tools -git-push: .PHONY +.PHONY: git-push +git-push: git pull --rebase git push -install: .PHONY - GOBIN=~/bin go install -ldflags '-s -w $(BASE_LDFLAGS)' ./cmd/plural/ - -build-cli: .PHONY - GOBIN=~/bin go build -ldflags '-s -w $(BASE_LDFLAGS)' -o $(OUTFILE) ./cmd/plural/ - -release: .PHONY - GOOS=$(GOOS) GOARCH=$(GOARCH) go build -ldflags '-s -w $(BASE_LDFLAGS)' -o plural.o ./cmd/plural/ - -setup: .PHONY ## sets up your local env (for mac only) +.PHONY: install +install: + go install -ldflags '$(LDFLAGS)' . + +.PHONY: build-cli +build-cli: ## Build a CLI binary for the host architecture without embedded UI + go build -ldflags='$(LDFLAGS)' -o $(OUTFILE) . + +.PHONY: build-cli-ui +build-cli-ui: $(PRE) generate-bindings ## Build a CLI binary for the host architecture with embedded UI + CGO_LDFLAGS=$(CGO_LDFLAGS) go build -tags $(WAILS_TAGS) -ldflags='$(LDFLAGS)' -o $(OUTFILE) . + +.PHONY: build-web +build-web: ## Build just the embedded UI + cd pkg/ui/web && yarn --immutable && yarn build + +.PHONY: run-web +run-web: $(PRE) ## Run the UI for development + @CGO_LDFLAGS=$(CGO_LDFLAGS) wails dev -tags ui -browser -skipbindings + +# This is somewhat an equivalent of wails `GenerateBindings` method. +# Ref: https://github.com/wailsapp/wails/blob/master/v2/pkg/commands/bindings/bindings.go#L28 +.PHONY: generate-bindings +generate-bindings: build-web ## Generate backend bindings for the embedded UI + @echo Building bindings binary + @CGO_LDFLAGS=$(CGO_LDFLAGS) go build -tags $(WAILS_BINDINGS_TAGS) -ldflags='$(LDFLAGS)' -o $(WAILS_BINDINGS_BINARY_NAME) . + @echo Generating bindings + @./$(WAILS_BINDINGS_BINARY_NAME) > /dev/null 2>&1 + @echo Cleaning up + @rm $(WAILS_BINDINGS_BINARY_NAME) + +.PHONY: release +release: + GOOS=$(GOOS) GOARCH=$(GOARCH) go build -ldflags='$(LDFLAGS)' -o $(OUTFILE) . + +.PHONY: setup +setup: ## sets up your local env (for mac only) brew install golangci-lint -plural: .PHONY ## uploads to plural +.PHONY: plural +plural: ## uploads to plural plural apply -f plural/Pluralfile -build: .PHONY ## Build the Docker image +.PHONY: build +build: ## Build the Docker image docker build --build-arg APP_NAME=$(APP_NAME) \ --build-arg APP_VSN=$(APP_VSN) \ --build-arg APP_DATE=$(APP_DATE) \ @@ -43,7 +90,8 @@ build: .PHONY ## Build the Docker image -t gcr.io/$(GCP_PROJECT)/$(APP_NAME):$(APP_VSN) \ -t $(DKR_HOST)/plural/$(APP_NAME):$(APP_VSN) . -build-cloud: .PHONY ## build the cloud docker image +.PHONY: build-cloud +build-cloud: ## build the cloud docker image docker build --build-arg APP_NAME=$(APP_NAME) \ --build-arg APP_VSN=$(APP_VSN) \ --build-arg APP_DATE=$(APP_DATE) \ @@ -53,31 +101,39 @@ build-cloud: .PHONY ## build the cloud docker image -t gcr.io/$(GCP_PROJECT)/$(APP_NAME)-cloud:$(APP_VSN) \ -t $(DKR_HOST)/plural/$(APP_NAME)-cloud:$(APP_VSN) -f dockerfiles/Dockerfile.cloud . -push: .PHONY ## push to gcr +.PHONY: push +push: ## push to gcr docker push gcr.io/$(GCP_PROJECT)/$(APP_NAME):$(APP_VSN) docker push $(DKR_HOST)/plural/${APP_NAME}:$(APP_VSN) -push-cloud: .PHONY ## push to gcr +.PHONY: push-cloud +push-cloud: ## push to gcr docker push gcr.io/$(GCP_PROJECT)/$(APP_NAME):$(APP_VSN)-cloud docker push $(DKR_HOST)/plural/${APP_NAME}:$(APP_VSN)-cloud -generate: .PHONY +.PHONY: generate +generate: go generate ./... -bake-ami: .PHONY +.PHONY: bake-ami +bake-ami: cd packer && packer build -var "img_name=plural/ubuntu/$(BUILD)" . @echo "baked ami for all regions" -up: .PHONY # spin up local server +.PHONY: up +up: # spin up local server docker-compose up -pull: .PHONY # pulls new server image +.PHONY: pull +pull: # pulls new server image docker-compose pull -serve: build-cloud .PHONY # build cloud version of plural-cli and start plural serve in docker +.PHONY: serve +serve: build-cloud # build cloud version of plural-cli and start plural serve in docker docker kill plural-cli || true docker run --rm --name plural-cli -p 8080:8080 -d plural-cli:latest-cloud +.PHONY: release-vsn release-vsn: # tags and pushes a new release @read -p "Version: " tag; \ git checkout main; \ @@ -85,19 +141,24 @@ release-vsn: # tags and pushes a new release git tag -a $$tag -m "new release"; \ git push origin $$tag -test: .PHONY +.PHONY: test +test: go test -v -race ./pkg/... ./cmd/... -format: .PHONY # formats all go code to prep for linting +.PHONY: format +format: # formats all go code to prep for linting golangci-lint run --fix -genmock: .PHONY # generates mocks before running tests +.PHONY: genmock +genmock: # generates mocks before running tests hack/gen-client-mocks.sh -lint: .PHONY +.PHONY: lint +lint: docker run --rm -v $(PWD):/app -w /app golangci/golangci-lint:v1.50.1 golangci-lint run -delete-tag: .PHONY +.PHONY: delete-tag +delete-tag: @read -p "Version: " tag: \ git tag -d $$tag - git push origin :$$tag \ No newline at end of file + git push origin :$$tag diff --git a/cmd/plural/api.go b/cmd/plural/api.go index 68595945..65a952c5 100644 --- a/cmd/plural/api.go +++ b/cmd/plural/api.go @@ -1,4 +1,4 @@ -package main +package plural import ( "github.com/pluralsh/plural/pkg/api" diff --git a/cmd/plural/api_test.go b/cmd/plural/api_test.go index a08fcc06..0081e938 100644 --- a/cmd/plural/api_test.go +++ b/cmd/plural/api_test.go @@ -1,4 +1,4 @@ -package main_test +package plural_test import ( "os" diff --git a/cmd/plural/app.go b/cmd/plural/app.go index b626a939..d3bcbbb2 100644 --- a/cmd/plural/app.go +++ b/cmd/plural/app.go @@ -1,4 +1,4 @@ -package main +package plural import ( "fmt" diff --git a/cmd/plural/bundle.go b/cmd/plural/bundle.go index 8a9c9a14..21065afb 100644 --- a/cmd/plural/bundle.go +++ b/cmd/plural/bundle.go @@ -1,4 +1,4 @@ -package main +package plural import ( "fmt" diff --git a/cmd/plural/bundle_test.go b/cmd/plural/bundle_test.go index 6da26190..7b1aa96d 100644 --- a/cmd/plural/bundle_test.go +++ b/cmd/plural/bundle_test.go @@ -1,4 +1,4 @@ -package main_test +package plural_test import ( "os" diff --git a/cmd/plural/clusters.go b/cmd/plural/clusters.go index 2553d9ea..ed4c79aa 100644 --- a/cmd/plural/clusters.go +++ b/cmd/plural/clusters.go @@ -1,4 +1,4 @@ -package main +package plural import ( "fmt" diff --git a/cmd/plural/config.go b/cmd/plural/config.go index 09531ca9..218de7a4 100644 --- a/cmd/plural/config.go +++ b/cmd/plural/config.go @@ -1,4 +1,4 @@ -package main +package plural import ( "io" diff --git a/cmd/plural/config_test.go b/cmd/plural/config_test.go index e6b04745..319db08e 100644 --- a/cmd/plural/config_test.go +++ b/cmd/plural/config_test.go @@ -1,4 +1,4 @@ -package main_test +package plural_test import ( "bytes" diff --git a/cmd/plural/constants.go b/cmd/plural/constants.go index fd523e40..62c5c569 100644 --- a/cmd/plural/constants.go +++ b/cmd/plural/constants.go @@ -1,3 +1,3 @@ -package main +package plural const backupMsg = "Would you like to back up your encryption key to plural? If you chose to manage it yourself, you can find it at ~/.plural/key" diff --git a/cmd/plural/crypto.go b/cmd/plural/crypto.go index b4576a33..30802e7e 100644 --- a/cmd/plural/crypto.go +++ b/cmd/plural/crypto.go @@ -1,4 +1,4 @@ -package main +package plural import ( "bytes" diff --git a/cmd/plural/crypto_test.go b/cmd/plural/crypto_test.go index ba759bbc..21841cb3 100644 --- a/cmd/plural/crypto_test.go +++ b/cmd/plural/crypto_test.go @@ -1,4 +1,4 @@ -package main_test +package plural_test import ( "encoding/base64" diff --git a/cmd/plural/dependencies.go b/cmd/plural/dependencies.go index 6c041399..df0550f6 100644 --- a/cmd/plural/dependencies.go +++ b/cmd/plural/dependencies.go @@ -1,4 +1,4 @@ -package main +package plural import ( "fmt" diff --git a/cmd/plural/dependencies_test.go b/cmd/plural/dependencies_test.go index d0a14c42..f75f6a4d 100644 --- a/cmd/plural/dependencies_test.go +++ b/cmd/plural/dependencies_test.go @@ -1,4 +1,4 @@ -package main_test +package plural_test import ( "os" diff --git a/cmd/plural/deploy.go b/cmd/plural/deploy.go index 02fd972c..2b307377 100644 --- a/cmd/plural/deploy.go +++ b/cmd/plural/deploy.go @@ -1,4 +1,4 @@ -package main +package plural import ( "fmt" diff --git a/cmd/plural/deploy_test.go b/cmd/plural/deploy_test.go index 45bc11f4..ea60c5b6 100644 --- a/cmd/plural/deploy_test.go +++ b/cmd/plural/deploy_test.go @@ -1,4 +1,4 @@ -package main_test +package plural_test import ( "os" diff --git a/cmd/plural/errors.go b/cmd/plural/errors.go index 30f1bf62..fbfd2480 100644 --- a/cmd/plural/errors.go +++ b/cmd/plural/errors.go @@ -1,4 +1,4 @@ -package main +package plural import ( "fmt" diff --git a/cmd/plural/git.go b/cmd/plural/git.go index 7ab7aa39..b754b1f8 100644 --- a/cmd/plural/git.go +++ b/cmd/plural/git.go @@ -1,4 +1,4 @@ -package main +package plural import ( "fmt" diff --git a/cmd/plural/help.go b/cmd/plural/help.go index c7ee6d4c..1b766e3c 100644 --- a/cmd/plural/help.go +++ b/cmd/plural/help.go @@ -1,4 +1,4 @@ -package main +package plural import ( "fmt" diff --git a/cmd/plural/init.go b/cmd/plural/init.go index f0d21bee..fc7f5820 100644 --- a/cmd/plural/init.go +++ b/cmd/plural/init.go @@ -1,4 +1,4 @@ -package main +package plural import ( "fmt" diff --git a/cmd/plural/link.go b/cmd/plural/link.go index bebb68c6..24e85afa 100644 --- a/cmd/plural/link.go +++ b/cmd/plural/link.go @@ -1,4 +1,4 @@ -package main +package plural import ( "github.com/pluralsh/plural/pkg/manifest" diff --git a/cmd/plural/logs.go b/cmd/plural/logs.go index 44fa53d8..3560a601 100644 --- a/cmd/plural/logs.go +++ b/cmd/plural/logs.go @@ -1,4 +1,4 @@ -package main +package plural import ( "github.com/pluralsh/plural/pkg/config" diff --git a/cmd/plural/logs_test.go b/cmd/plural/logs_test.go index 3aaf6ee4..d80e9062 100644 --- a/cmd/plural/logs_test.go +++ b/cmd/plural/logs_test.go @@ -1,4 +1,4 @@ -package main_test +package plural_test import ( "os" diff --git a/cmd/plural/ops.go b/cmd/plural/ops.go index ab0f362f..453518b4 100644 --- a/cmd/plural/ops.go +++ b/cmd/plural/ops.go @@ -1,4 +1,4 @@ -package main +package plural import ( "fmt" diff --git a/cmd/plural/ops_test.go b/cmd/plural/ops_test.go index 38630d6a..9a6bd672 100644 --- a/cmd/plural/ops_test.go +++ b/cmd/plural/ops_test.go @@ -1,4 +1,4 @@ -package main_test +package plural_test import ( "os" diff --git a/cmd/plural/output.go b/cmd/plural/output.go index 7b0f63f8..33f5632b 100644 --- a/cmd/plural/output.go +++ b/cmd/plural/output.go @@ -1,4 +1,4 @@ -package main +package plural import ( "path/filepath" diff --git a/cmd/plural/packages.go b/cmd/plural/packages.go index d603db63..df29b2c4 100644 --- a/cmd/plural/packages.go +++ b/cmd/plural/packages.go @@ -1,4 +1,4 @@ -package main +package plural import ( "os" diff --git a/cmd/plural/plural.go b/cmd/plural/plural.go index 31e6287e..b77575a9 100644 --- a/cmd/plural/plural.go +++ b/cmd/plural/plural.go @@ -1,20 +1,17 @@ -package main +package plural import ( - "log" - "math/rand" "os" - "time" - "github.com/fatih/color" + "github.com/urfave/cli" + "helm.sh/helm/v3/pkg/action" + "github.com/pluralsh/plural/pkg/api" "github.com/pluralsh/plural/pkg/config" "github.com/pluralsh/plural/pkg/crypto" "github.com/pluralsh/plural/pkg/kubernetes" "github.com/pluralsh/plural/pkg/manifest" "github.com/pluralsh/plural/pkg/utils" - "github.com/urfave/cli" - "helm.sh/helm/v3/pkg/action" ) func init() { @@ -466,21 +463,7 @@ func (p *Plural) getCommands() []cli.Command { Action: latestVersion(formatDashboard), Category: "Publishing", }, - } -} - -func main() { - rand.Seed(time.Now().UnixNano()) - // init Kube when k8s config exists - plural := &Plural{} - app := CreateNewApp(plural) - if os.Getenv("ENABLE_COLOR") != "" { - color.NoColor = false - } - - err := app.Run(os.Args) - if err != nil { - log.Fatal(err) + p.uiCommands(), } } diff --git a/cmd/plural/proxy.go b/cmd/plural/proxy.go index 679b08ea..93a4fedd 100644 --- a/cmd/plural/proxy.go +++ b/cmd/plural/proxy.go @@ -1,4 +1,4 @@ -package main +package plural import ( "github.com/pluralsh/plural/pkg/config" diff --git a/cmd/plural/proxy_test.go b/cmd/plural/proxy_test.go index 7ff2c302..362431bf 100644 --- a/cmd/plural/proxy_test.go +++ b/cmd/plural/proxy_test.go @@ -1,4 +1,4 @@ -package main_test +package plural_test import ( "os" diff --git a/cmd/plural/push.go b/cmd/plural/push.go index f124c3f5..c56c3683 100644 --- a/cmd/plural/push.go +++ b/cmd/plural/push.go @@ -1,4 +1,4 @@ -package main +package plural import ( "fmt" diff --git a/cmd/plural/repos.go b/cmd/plural/repos.go index 301b8318..ba41065b 100644 --- a/cmd/plural/repos.go +++ b/cmd/plural/repos.go @@ -1,4 +1,4 @@ -package main +package plural import ( "fmt" diff --git a/cmd/plural/repos_test.go b/cmd/plural/repos_test.go index 1ecf2057..81a38408 100644 --- a/cmd/plural/repos_test.go +++ b/cmd/plural/repos_test.go @@ -1,4 +1,4 @@ -package main_test +package plural_test import ( "os" diff --git a/cmd/plural/scaffold.go b/cmd/plural/scaffold.go index 60361fbe..60cc90dc 100644 --- a/cmd/plural/scaffold.go +++ b/cmd/plural/scaffold.go @@ -1,4 +1,4 @@ -package main +package plural import ( "github.com/pluralsh/plural/pkg/api" diff --git a/cmd/plural/shell.go b/cmd/plural/shell.go index a50a14af..621cdeec 100644 --- a/cmd/plural/shell.go +++ b/cmd/plural/shell.go @@ -1,4 +1,4 @@ -package main +package plural import ( "os" diff --git a/cmd/plural/template.go b/cmd/plural/template.go index 4d0a6fb8..8c54751c 100644 --- a/cmd/plural/template.go +++ b/cmd/plural/template.go @@ -1,4 +1,4 @@ -package main +package plural import ( "bytes" diff --git a/cmd/plural/ui.go b/cmd/plural/ui.go new file mode 100644 index 00000000..f84c3846 --- /dev/null +++ b/cmd/plural/ui.go @@ -0,0 +1,22 @@ +//go:build ui || generate + +package plural + +import ( + "github.com/urfave/cli" + + "github.com/pluralsh/plural/pkg/ui" +) + +func (p *Plural) uiCommands() cli.Command { + return cli.Command{ + Name: "install", + Usage: "opens installer UI that simplifies application configuration", + Action: p.run, + } +} + +func (p *Plural) run(c *cli.Context) error { + p.InitPluralClient() + return ui.Run(p.Client, c) +} diff --git a/cmd/plural/ui_stub.go b/cmd/plural/ui_stub.go new file mode 100644 index 00000000..220bbd42 --- /dev/null +++ b/cmd/plural/ui_stub.go @@ -0,0 +1,11 @@ +//go:build !ui && !generate + +package plural + +import ( + "github.com/urfave/cli" +) + +func (p *Plural) uiCommands() cli.Command { + return cli.Command{} +} diff --git a/cmd/plural/utils.go b/cmd/plural/utils.go index 1005d2db..83d80f2a 100644 --- a/cmd/plural/utils.go +++ b/cmd/plural/utils.go @@ -1,4 +1,4 @@ -package main +package plural import ( "bufio" diff --git a/cmd/plural/utils_test.go b/cmd/plural/utils_test.go index 60b8ff4c..856768e5 100644 --- a/cmd/plural/utils_test.go +++ b/cmd/plural/utils_test.go @@ -1,4 +1,4 @@ -package main_test +package plural_test import ( "os" diff --git a/cmd/plural/validation.go b/cmd/plural/validation.go index 8befacea..c6af905d 100644 --- a/cmd/plural/validation.go +++ b/cmd/plural/validation.go @@ -1,10 +1,13 @@ -package main +package plural import ( "fmt" "os" "github.com/AlecAivazis/survey/v2" + "github.com/pluralsh/polly/algorithms" + "github.com/urfave/cli" + "github.com/pluralsh/plural/pkg/api" "github.com/pluralsh/plural/pkg/config" "github.com/pluralsh/plural/pkg/executor" @@ -14,8 +17,6 @@ import ( "github.com/pluralsh/plural/pkg/utils/errors" "github.com/pluralsh/plural/pkg/utils/git" "github.com/pluralsh/plural/pkg/utils/pathing" - "github.com/pluralsh/polly/algorithms" - "github.com/urfave/cli" ) func requireArgs(fn func(*cli.Context) error, args []string) func(*cli.Context) error { @@ -181,7 +182,7 @@ func repoRoot() error { func latestVersion(fn func(*cli.Context) error) func(*cli.Context) error { return func(c *cli.Context) error { if os.Getenv("PLURAL_CONSOLE") != "1" && algorithms.Coinflip(1, 5) { - utils.CheckLatestVersion(version) + utils.CheckLatestVersion(Version) } return fn(c) diff --git a/cmd/plural/version.go b/cmd/plural/version.go index 9c6b7c71..40906de5 100644 --- a/cmd/plural/version.go +++ b/cmd/plural/version.go @@ -1,12 +1,13 @@ -package main +package plural import ( "fmt" "runtime" "strings" - "github.com/pluralsh/plural/pkg/utils" "github.com/urfave/cli" + + "github.com/pluralsh/plural/pkg/utils" ) const ( @@ -14,28 +15,28 @@ const ( ) var ( - version = versionPlaceholder - commit = "" - date = "" + Version = versionPlaceholder + Commit = "" + Date = "" ) func checkRecency() error { - if version == versionPlaceholder || strings.Contains(version, "-") { + if Version == versionPlaceholder || strings.Contains(Version, "-") { utils.Warn("\nThis is a development version, which can be significantly different from official releases") utils.Warn("\nYou can download latest release from https://github.com/pluralsh/plural-cli/releases/latest\n") return nil } - utils.CheckLatestVersion(version) + utils.CheckLatestVersion(Version) return nil } func versionInfo(c *cli.Context) error { fmt.Println("PLURAL CLI:") - fmt.Printf(" version\t%s\n", version) - fmt.Printf(" git commit\t%s\n", commit) - fmt.Printf(" compiled at\t%s\n", date) + fmt.Printf(" version\t%s\n", Version) + fmt.Printf(" git commit\t%s\n", Commit) + fmt.Printf(" compiled at\t%s\n", Date) fmt.Printf(" os/arch\t%s/%s\n", runtime.GOOS, runtime.GOARCH) return checkRecency() diff --git a/cmd/plural/vpn.go b/cmd/plural/vpn.go index 1a0666a3..6829e4df 100644 --- a/cmd/plural/vpn.go +++ b/cmd/plural/vpn.go @@ -1,4 +1,4 @@ -package main +package plural import ( "fmt" diff --git a/cmd/plural/vpn_test.go b/cmd/plural/vpn_test.go index 32cc1ff7..8fbe897e 100644 --- a/cmd/plural/vpn_test.go +++ b/cmd/plural/vpn_test.go @@ -1,4 +1,4 @@ -package main_test +package plural_test import ( "os" diff --git a/cmd/plural/workspace.go b/cmd/plural/workspace.go index 21aeba46..f0d6a7b0 100644 --- a/cmd/plural/workspace.go +++ b/cmd/plural/workspace.go @@ -1,4 +1,4 @@ -package main +package plural import ( "fmt" diff --git a/cmd/plural/workspace_test.go b/cmd/plural/workspace_test.go index 0920a82f..32310332 100644 --- a/cmd/plural/workspace_test.go +++ b/cmd/plural/workspace_test.go @@ -1,4 +1,4 @@ -package main_test +package plural_test import ( "io" diff --git a/dockerfiles/Dockerfile.cloud b/dockerfiles/Dockerfile.cloud index 0c49c0fd..86a9f49e 100644 --- a/dockerfiles/Dockerfile.cloud +++ b/dockerfiles/Dockerfile.cloud @@ -1,4 +1,4 @@ -FROM golang:1.18.8-alpine3.15 AS builder +FROM golang:1.20-alpine3.17 AS builder WORKDIR /workspace @@ -10,6 +10,7 @@ COPY go.sum go.sum RUN go mod download # Copy the go source +COPY main.go main.go COPY cmd/ cmd/ COPY pkg/ pkg/ @@ -20,10 +21,13 @@ ARG APP_DATE ARG TARGETARCH RUN CGO_ENABLED=0 GOOS=linux GOARCH=${TARGETARCH} \ - go build -ldflags "-s -w -X main.version=${APP_VSN} -X main.commit=${APP_COMMIT} -X main.date=${APP_DATE}" \ - -o plural ./cmd/plural/ + go build -ldflags '-s -w \ + -X "github.com/pluralsh/plural/cmd/plural.Version=${APP_VSN}" \ + -X "github.com/pluralsh/plural/cmd/plural.Commit=${APP_COMMIT}" \ + -X "github.com/pluralsh/plural/cmd/plural.Date=${APP_DATE}"' \ + -o plural . -FROM alpine:3.17.1 as tools +FROM alpine:3.17.2 as tools ARG TARGETARCH diff --git a/go.mod b/go.mod index 75a62616..cb11be98 100644 --- a/go.mod +++ b/go.mod @@ -51,10 +51,12 @@ require ( github.com/samber/lo v1.33.0 github.com/thoas/go-funk v0.9.2 github.com/urfave/cli v1.22.10 + github.com/wailsapp/wails/v2 v2.4.1 github.com/xanzy/go-gitlab v0.70.0 github.com/yuin/gopher-lua v0.0.0-20220504180219-658193537a64 go.mercari.io/hcledit v0.0.8 golang.org/x/crypto v0.5.0 + golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 golang.org/x/mod v0.9.0 golang.org/x/oauth2 v0.5.0 gopkg.in/yaml.v2 v2.4.0 @@ -89,24 +91,35 @@ require ( github.com/aws/aws-sdk-go-v2/service/sso v1.11.21 // indirect github.com/aws/aws-sdk-go-v2/service/ssooidc v1.13.3 // indirect github.com/aws/smithy-go v1.13.5 // indirect + github.com/bep/debounce v1.2.1 // indirect github.com/cenkalti/backoff v2.2.1+incompatible // indirect github.com/emicklei/go-restful/v3 v3.9.0 // indirect github.com/fatih/camelcase v1.0.0 // indirect github.com/go-gorp/gorp/v3 v3.1.0 // indirect + github.com/go-ole/go-ole v1.2.6 // indirect github.com/goccy/go-json v0.9.7 // indirect - github.com/golang-jwt/jwt v3.2.1+incompatible // indirect + github.com/golang-jwt/jwt v3.2.2+incompatible // indirect github.com/google/gnostic v0.5.7-v3refs // indirect github.com/googleapis/enterprise-certificate-proxy v0.2.3 // indirect github.com/hashicorp/go-uuid v1.0.3 // indirect github.com/hashicorp/hcl/v2 v2.13.0 // indirect + github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e // indirect github.com/kylelemons/godebug v1.1.0 // indirect + github.com/labstack/echo/v4 v4.9.0 // indirect + github.com/labstack/gommon v0.3.1 // indirect + github.com/leaanthony/go-ansi-parser v1.0.1 // indirect + github.com/leaanthony/gosod v1.0.3 // indirect + github.com/leaanthony/slicer v1.5.0 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/pelletier/go-toml/v2 v2.0.1 // indirect github.com/pluralsh/controller-reconcile-helper v0.0.4 // indirect github.com/stretchr/objx v0.5.0 // indirect + github.com/tkrajina/go-reflector v0.5.5 // indirect + github.com/valyala/bytebufferpool v1.0.0 // indirect + github.com/valyala/fasttemplate v1.2.1 // indirect github.com/vektah/gqlparser/v2 v2.5.1 // indirect + github.com/wailsapp/mimetype v1.4.1 // indirect github.com/zclconf/go-cty v1.10.0 // indirect - golang.org/x/exp v0.0.0-20220303212507-bbda1eaf7a17 // indirect google.golang.org/genproto v0.0.0-20230216225411-c8e22ba71e44 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect ) @@ -249,10 +262,10 @@ require ( github.com/xlab/treeprint v1.1.0 // indirect go.opencensus.io v0.24.0 // indirect go.starlark.net v0.0.0-20200306205701-8dd3e2ee1dd5 // indirect - golang.org/x/net v0.6.0 // indirect + golang.org/x/net v0.8.0 // indirect golang.org/x/sync v0.1.0 // indirect golang.org/x/sys v0.6.0 // indirect - golang.org/x/term v0.5.0 + golang.org/x/term v0.6.0 golang.org/x/text v0.8.0 golang.org/x/time v0.0.0-20220411224347-583f2d630306 // indirect golang.org/x/xerrors v0.0.0-20220907171357-04be3eba64a2 // indirect diff --git a/go.sum b/go.sum index d9eec027..5f162cec 100644 --- a/go.sum +++ b/go.sum @@ -236,6 +236,8 @@ github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24 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/bep/debounce v1.2.1 h1:v67fRdBA9UQu2NhLFXrSg0Brw7CexQekrBwDMM8bzeY= +github.com/bep/debounce v1.2.1/go.mod h1:H8yggRPQKLUhUoqrJC1bO2xNya7vanpDl7xR3ISbCJ0= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84= github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= @@ -408,6 +410,8 @@ github.com/go-logr/logr v1.2.0/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbV github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0= github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/zapr v0.1.0/go.mod h1:tabnROwaDl0UNxkVeFRbY8bwB37GwRv0P8lg6aAiEnk= +github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= +github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-openapi/analysis v0.0.0-20180825180245-b006789cd277/go.mod h1:k70tL6pCuVxPJOHXQ+wIac1FUrvNkHolPie/cLEU6hI= github.com/go-openapi/analysis v0.17.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= github.com/go-openapi/analysis v0.18.0/go.mod h1:IowGgpVeD0vNm45So8nr+IcQ3pxVtpRoBWb8PVZO0ik= @@ -489,8 +493,9 @@ github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zV github.com/gogo/protobuf v1.2.2-0.20190723190241-65acae22fc9d/go.mod h1:SlYgWuQ5SjCEi6WLHjHCa1yvBfUnHcTbrrZtXPKa29o= 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 v3.2.1+incompatible h1:73Z+4BJcrTC+KczS6WvTPvRGOp1WmfEP4Q1lOd9Z/+c= github.com/golang-jwt/jwt v3.2.1+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= +github.com/golang-jwt/jwt v3.2.2+incompatible h1:IfV12K8xAKAnZqdXVzCZ+TOjboZ2keLg81eXfW3O+oY= +github.com/golang-jwt/jwt v3.2.2+incompatible/go.mod h1:8pz2t5EyA70fFQQSrl6XZXzqecmYZeUEB8OUGHkxJ+I= github.com/golang-jwt/jwt/v4 v4.0.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang-jwt/jwt/v4 v4.2.0 h1:besgBTC8w8HjP6NzQdxwKH9Z5oQMZ24ThTrHp3cZ8eU= github.com/golang-jwt/jwt/v4 v4.2.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= @@ -677,6 +682,8 @@ github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7P github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99 h1:BQSFePA1RWJOlocH6Fxy8MmwDt+yVQYULKfN0RoTN8A= github.com/jbenet/go-context v0.0.0-20150711004518-d14ea06fba99/go.mod h1:1lJo3i6rXxKeerYnT8Nvf0QmHCRC1n8sfWVwXF2Frvo= +github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e h1:Q3+PugElBCf4PFpxhErSzU3/PY5sFL5Z6rfv4AbGAck= +github.com/jchv/go-winloader v0.0.0-20210711035445-715c2860da7e/go.mod h1:alcuEEnZsY1WQsagKhZDsoPCRoOijYqhZvPwLG0kzVs= github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4= github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= @@ -736,10 +743,22 @@ github.com/ktrysmt/go-bitbucket v0.9.55/go.mod h1:y5wrrDHCGUFAtuC43GyLBeFigq7rwr github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k= 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/labstack/echo/v4 v4.9.0 h1:wPOF1CE6gvt/kmbMR4dGzWvHMPT+sAEUJOwOTtvITVY= +github.com/labstack/echo/v4 v4.9.0/go.mod h1:xkCDAdFCIf8jsFQ5NnbK7oqaF/yU1A1X20Ltm0OvSks= +github.com/labstack/gommon v0.3.1 h1:OomWaJXm7xR6L1HmEtGyQf26TEn7V6X88mktX9kee9o= +github.com/labstack/gommon v0.3.1/go.mod h1:uW6kP17uPlLJsD3ijUYn3/M5bAxtlZhMI6m3MFxTMTM= 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/leaanthony/debme v1.2.1 h1:9Tgwf+kjcrbMQ4WnPcEIUcQuIZYqdWftzZkBr+i/oOc= +github.com/leaanthony/debme v1.2.1/go.mod h1:3V+sCm5tYAgQymvSOfYQ5Xx2JCr+OXiD9Jkw3otUjiA= +github.com/leaanthony/go-ansi-parser v1.0.1 h1:97v6c5kYppVsbScf4r/VZdXyQ21KQIfeQOk2DgKxGG4= +github.com/leaanthony/go-ansi-parser v1.0.1/go.mod h1:7arTzgVI47srICYhvgUV4CGd063sGEeoSlych5yeSPM= +github.com/leaanthony/gosod v1.0.3 h1:Fnt+/B6NjQOVuCWOKYRREZnjGyvg+mEhd1nkkA04aTQ= +github.com/leaanthony/gosod v1.0.3/go.mod h1:BJ2J+oHsQIyIQpnLPjnqFGTMnOZXDbvWtRCSG7jGxs4= +github.com/leaanthony/slicer v1.5.0 h1:aHYTN8xbCCLxJmkNKiLB6tgcMARl4eWmH9/F+S/0HtY= +github.com/leaanthony/slicer v1.5.0/go.mod h1:FwrApmf8gOrpzEWM2J/9Lh79tyq8KTX5AzRtwV7m4AY= github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= @@ -765,11 +784,13 @@ github.com/markbates/oncer v1.0.0 h1:E83IaVAHygyndzPimgUYJjbshhDTALZyXxvk9FOlQRY github.com/markbates/oncer v1.0.0/go.mod h1:Z59JA581E9GP6w96jai+TGqafHPW+cPfRxz2aSZ0mcI= github.com/markbates/safe v1.0.1 h1:yjZkbvRM6IzKj9tlu/zMJLS0n/V351OZWRnF3QfaUxI= github.com/markbates/safe v1.0.1/go.mod h1:nAqgmRi7cY2nqMc92/bSEeQA+R4OheNU2T1kNSCBdG0= -github.com/matryer/is v1.2.0 h1:92UTHpy8CDwaJ08GqLDzhhuixiBUUD1p3AU6PHddz4A= github.com/matryer/is v1.2.0/go.mod h1:2fLPjFQM9rhQ15aVEtbuwhJinnOqrmgXPNdZsdwlWXA= +github.com/matryer/is v1.4.0 h1:sosSmIWwkYITGrxZ25ULNDeKiMNzFSr4V/eqBQP0PeE= +github.com/matryer/is v1.4.0/go.mod h1:8I/i5uYgLzgsgEloJE1U6xx5HkBQpAZvepWuujKwMRU= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= github.com/mattn/go-colorable v0.1.9/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-colorable v0.1.11/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.12/go.mod h1:u5H1YNBxpqRaxsYJYSkiCWKzEfiAb1Gb520KVy5xxl4= github.com/mattn/go-colorable v0.1.13 h1:fFA4WZxdEF4tXPZVKMLwD8oUnCTTo08duU7wxecdEvA= github.com/mattn/go-colorable v0.1.13/go.mod h1:7S9/ev0klgBDR4GtXTXX8a3vIGJpMovkB8vQcUbaXHg= @@ -899,6 +920,8 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= github.com/pluralsh/controller-reconcile-helper v0.0.4 h1:1o+7qYSyoeqKFjx+WgQTxDz4Q2VMpzprJIIKShxqG0E= github.com/pluralsh/controller-reconcile-helper v0.0.4/go.mod h1:AfY0gtteD6veBjmB6jiRx/aR4yevEf6K0M13/pGan/s= +github.com/pluralsh/gqlclient v1.3.11 h1:58vSsD4xur9isk4WncN9Q9CRENogSeUPv5sThRmpPQI= +github.com/pluralsh/gqlclient v1.3.11/go.mod h1:z1qHnvPeqIN/a+5OzFs40e6HI6tDxzh1+yJuEpvqGy4= github.com/pluralsh/gqlclient v1.3.14 h1:MX3odnIfPSYT9PysegKkC31w/Vn8PZhrT/rZXZck/yU= github.com/pluralsh/gqlclient v1.3.14/go.mod h1:z1qHnvPeqIN/a+5OzFs40e6HI6tDxzh1+yJuEpvqGy4= github.com/pluralsh/gqlclient v1.3.15 h1:QA6VEMDxeG0/e+qXvr7xgorHl45o4/Qg9CwsPyVn2gE= @@ -1043,6 +1066,8 @@ github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69 github.com/thoas/go-funk v0.9.2 h1:oKlNYv0AY5nyf9g+/GhMgS/UO2ces0QRdPKwkhY3VCk= github.com/thoas/go-funk v0.9.2/go.mod h1:+IWnUfUmFO1+WVYQWQtIJHeRRdaIyyYglZN7xzUPe4Q= github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= +github.com/tkrajina/go-reflector v0.5.5 h1:gwoQFNye30Kk7NrExj8zm3zFtrGPqOkzFMLuQZg1DtQ= +github.com/tkrajina/go-reflector v0.5.5/go.mod h1:ECbqLgccecY5kPmPmXg1MrHW585yMcDkVl6IvJe64T4= 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/ugorji/go v1.2.7/go.mod h1:nF9osbDWLy6bDVv/Rtoh6QgnvNDpmCalQV5urGCCS6M= @@ -1052,12 +1077,20 @@ github.com/ugorji/go/codec v1.2.7/go.mod h1:WGN1fab3R1fzQlVQTkfxVtIBhWDRqOviHU95 github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/urfave/cli v1.22.10 h1:p8Fspmz3iTctJstry1PYS3HVdllxnEzTEsgIgtxTrCk= github.com/urfave/cli v1.22.10/go.mod h1:Gos4lmkARVdJ6EkW0WaNv/tZAAMe9V7XWyB60NtXRu0= +github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6KllzawFIhcdPw= +github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= +github.com/valyala/fasttemplate v1.2.1 h1:TVEnxayobAdVkhQfrfes2IzOB6o+z4roRkPF52WA1u4= +github.com/valyala/fasttemplate v1.2.1/go.mod h1:KHLXt3tVN2HBp8eijSv/kGJopbvo7S+qRAEEKiv+SiQ= github.com/vektah/gqlparser v1.1.2/go.mod h1:1ycwN7Ij5njmMkPPAOaRFY4rET2Enx7IkVv3vaXspKw= github.com/vektah/gqlparser/v2 v2.5.1 h1:ZGu+bquAY23jsxDRcYpWjttRZrUz07LbiY77gUOHcr4= github.com/vektah/gqlparser/v2 v2.5.1/go.mod h1:mPgqFBu/woKTVYWyNk8cO3kh4S/f4aRFZrvOnp3hmCs= github.com/vmihailenco/msgpack v3.3.3+incompatible/go.mod h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk= github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4= github.com/vmihailenco/tagparser v0.1.1/go.mod h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI= +github.com/wailsapp/mimetype v1.4.1 h1:pQN9ycO7uo4vsUUuPeHEYoUkLVkaRntMnHJxVwYhwHs= +github.com/wailsapp/mimetype v1.4.1/go.mod h1:9aV5k31bBOv5z6u+QP8TltzvNGJPmNJD4XlAL3U+j3o= +github.com/wailsapp/wails/v2 v2.4.1 h1:Ns7MOKWQM6l0ttBxpd5VcgYrH+GNPOnoDfnsBpbDnzM= +github.com/wailsapp/wails/v2 v2.4.1/go.mod h1:jbOZbcr/zm79PxXxAjP8UoVlDd9wLW3uDs+isIthDfs= github.com/xanzy/go-gitlab v0.70.0 h1:zJ8WukB5psMcfmQctHsiG/PyqLqLIdD05wCLwdPNEBg= github.com/xanzy/go-gitlab v0.70.0/go.mod h1:o4yExCtdaqlM8YGdDJWuZoBmfxBsmA9TPEjs9mx1UO4= github.com/xanzy/ssh-agent v0.3.0 h1:wUMzuKtKilRgBAD1sUb8gOwwRr2FGoBVumcjoOACClI= @@ -1248,6 +1281,7 @@ golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= golang.org/x/net v0.0.0-20210326060303-6b1517762897/go.mod h1:uSPa2vr4CLtc/ILN5odXGNXS6mhrKVzTaCXzk9m6W3k= golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20210505024714-0287a6fb4125/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= @@ -1255,8 +1289,8 @@ golang.org/x/net v0.0.0-20220127200216-cd36cc0744dd/go.mod h1:CfG3xpIq0wQ8r1q4Su 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 h1:L4ZwwTvKW9gr0ZMS1yrHD9GZhIuVjOBBnaKH+SPQK0Q= -golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= +golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= +golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= golang.org/x/oauth2 v0.0.0-20180227000427-d7d64896b5ff/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= 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= @@ -1342,6 +1376,7 @@ golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200615200032-f1bc736245b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200810151505-1b9f1253b3ed/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200828194041-157a740278f4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1369,6 +1404,7 @@ golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/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-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20211103235746-7861aae1554b/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-20220128215802-99c3d69c2c27/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= @@ -1385,8 +1421,8 @@ golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9sn golang.org/x/term v0.0.0-20210503060354-a79de5458b56/go.mod h1:tfny5GFUkzUvx4ps4ajbZsCe5lw1metzhBm9T3x7oIY= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.2.0/go.mod h1:TVmDHMZPmdnySmBfhjOoOdhjzdE1h4u1VwSiw2l1Nuc= -golang.org/x/term v0.5.0 h1:n2a8QNdAb0sZNpU9R1ALUXBbY+w51fCQDN+7EdxNBsY= -golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= +golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw= +golang.org/x/term v0.6.0/go.mod h1:m6U89DPEgQRMq3DNkDClhWw02AUbt2daBVO4cn4Hv9U= golang.org/x/text v0.0.0-20160726164857-2910a502d2bf/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= diff --git a/hack/include/build.mk b/hack/include/build.mk new file mode 100644 index 00000000..e9a43fe6 --- /dev/null +++ b/hack/include/build.mk @@ -0,0 +1,9 @@ +# BUILDOS is the host machine OS +BUILDOS ?= $(shell uname -s) + +# CGO_LDFLAGS is required when building on darwin +CGO_LDFLAGS ?= "" + +ifeq ($(BUILDOS),Darwin) + CGO_LDFLAGS="-framework UniformTypeIdentifiers" +endif diff --git a/hack/include/help.mk b/hack/include/help.mk new file mode 100644 index 00000000..8f6b9396 --- /dev/null +++ b/hack/include/help.mk @@ -0,0 +1,2 @@ +help: + @perl -nle'print $& if m{^[a-zA-Z_-]+:.*?## .*$$}' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}' diff --git a/hack/include/tools.mk b/hack/include/tools.mk new file mode 100644 index 00000000..df9a8a6a --- /dev/null +++ b/hack/include/tools.mk @@ -0,0 +1,33 @@ +WAILS_BINARY := $(shell which wails) +WAILS_VERSION := v2.4.1 + +GO_BINARY := $(shell which go) +GO_MAJOR_VERSION = $(shell go version | cut -c 14- | cut -d' ' -f1 | cut -d'.' -f1) +GO_MINOR_VERSION = $(shell go version | cut -c 14- | cut -d' ' -f1 | cut -d'.' -f2) +MIN_GO_MAJOR_VERSION = 1 +MIN_GO_MINOR_VERSION = 19 + +.PHONY: install-tools +install-tools: --ensure-go --ensure-wails ## Install required dependencies to run make targets + +.PHONY: --ensure-go +--ensure-go: +ifndef GO_BINARY + $(error "Cannot find go binary") +endif + @if [ $(GO_MAJOR_VERSION) -gt $(MIN_GO_MAJOR_VERSION) ]; then \ + exit 0 ;\ + elif [ $(GO_MAJOR_VERSION) -lt $(MIN_GO_MAJOR_VERSION) ]; then \ + exit 1; \ + elif [ $(GO_MINOR_VERSION) -lt $(MIN_GO_MINOR_VERSION) ] ; then \ + exit 1; \ + fi + +.PHONY: --ensure-wails +--ensure-wails: +ifndef WAILS_BINARY + @echo "[tools] downloading wails..." + @go install github.com/wailsapp/wails/v2/cmd/wails@$(WAILS_VERSION) +else + @echo "[tools] wails already exists" +endif \ No newline at end of file diff --git a/main.go b/main.go new file mode 100644 index 00000000..b7118394 --- /dev/null +++ b/main.go @@ -0,0 +1,27 @@ +package main + +import ( + "log" + "math/rand" + "os" + "time" + + "github.com/fatih/color" + + "github.com/pluralsh/plural/cmd/plural" +) + +func main() { + rand.Seed(time.Now().UnixNano()) + // init Kube when k8s config exists + p := &plural.Plural{} + app := plural.CreateNewApp(p) + if os.Getenv("ENABLE_COLOR") != "" { + color.NoColor = false + } + + err := app.Run(os.Args) + if err != nil { + log.Fatal(err) + } +} diff --git a/pkg/api/client.go b/pkg/api/client.go index 3bb99e8d..6c6dca7a 100644 --- a/pkg/api/client.go +++ b/pkg/api/client.go @@ -8,6 +8,7 @@ import ( rawclient "github.com/Yamashou/gqlgenc/client" "github.com/pkg/errors" "github.com/pluralsh/gqlclient" + "github.com/pluralsh/plural/pkg/config" "github.com/pluralsh/plural/pkg/utils" ) @@ -62,6 +63,7 @@ type Client interface { ResetInstallations() (int, error) CreateRecipe(repoName string, attrs gqlclient.RecipeAttributes) (string, error) GetRecipe(repo string, name string) (*Recipe, error) + GetRecipeByID(id string) (*Recipe, error) ListRecipes(repo string, provider string) ([]*Recipe, error) InstallRecipe(id string) error GetShell() (CloudShell, error) diff --git a/pkg/api/recipes.go b/pkg/api/recipes.go index 09e49077..c29d7391 100644 --- a/pkg/api/recipes.go +++ b/pkg/api/recipes.go @@ -176,6 +176,92 @@ func (client *client) GetRecipe(repo, name string) (*Recipe, error) { return r, nil } +func (client *client) GetRecipeByID(id string) (*Recipe, error) { + resp, err := client.pluralClient.GetRecipeByID(client.ctx, &id) + if err != nil { + return nil, err + } + + r := &Recipe{ + Id: resp.Recipe.ID, + Name: resp.Recipe.Name, + Provider: string(*resp.Recipe.Provider), + Description: utils.ConvertStringPointer(resp.Recipe.Description), + Tests: []*RecipeTest{}, + RecipeSections: []*RecipeSection{}, + RecipeDependencies: []*Recipe{}, + } + if resp.Recipe.OidcSettings != nil { + r.OidcSettings = &OIDCSettings{ + DomainKey: utils.ConvertStringPointer(resp.Recipe.OidcSettings.DomainKey), + UriFormat: utils.ConvertStringPointer(resp.Recipe.OidcSettings.URIFormat), + UriFormats: utils.ConvertStringArrayPointer(resp.Recipe.OidcSettings.URIFormats), + AuthMethod: string(resp.Recipe.OidcSettings.AuthMethod), + } + if resp.Recipe.OidcSettings.Subdomain != nil { + r.OidcSettings.Subdomain = *resp.Recipe.OidcSettings.Subdomain + } + } + if resp.Recipe.Repository != nil { + r.Repository = &Repository{ + Id: resp.Recipe.Repository.ID, + Name: resp.Recipe.Repository.Name, + } + } + if resp.Recipe.Restricted != nil { + r.Restricted = *resp.Recipe.Restricted + } + + for _, dep := range resp.Recipe.RecipeDependencies { + r.RecipeDependencies = append(r.RecipeDependencies, convertRecipe(dep)) + } + + for _, section := range resp.Recipe.RecipeSections { + rs := &RecipeSection{ + Id: fmt.Sprint(section.Index), + Repository: &Repository{ + Id: section.Repository.ID, + Name: section.Repository.Name, + Description: utils.ConvertStringPointer(section.Repository.Description), + Icon: utils.ConvertStringPointer(section.Repository.Icon), + DarkIcon: utils.ConvertStringPointer(section.Repository.DarkIcon), + Notes: utils.ConvertStringPointer(section.Repository.Notes), + }, + RecipeItems: []*RecipeItem{}, + Configuration: []*ConfigurationItem{}, + } + for _, conf := range section.Configuration { + rs.Configuration = append(rs.Configuration, convertConfigurationItem(conf)) + } + for _, recipeItem := range section.RecipeItems { + rs.RecipeItems = append(rs.RecipeItems, convertRecipeItem(recipeItem)) + } + + r.RecipeSections = append(r.RecipeSections, rs) + + } + + for _, test := range resp.Recipe.Tests { + t := &RecipeTest{ + Name: test.Name, + Type: string(test.Type), + Message: utils.ConvertStringPointer(test.Message), + Args: []*TestArgument{}, + } + for _, arg := range test.Args { + t.Args = append(t.Args, &TestArgument{ + Name: arg.Name, + Repo: arg.Repo, + Key: arg.Key, + }) + } + + r.Tests = append(r.Tests, t) + } + + return r, nil +} + func convertRecipeItem(item *gqlclient.RecipeItemFragment) *RecipeItem { ri := &RecipeItem{ Id: utils.ConvertStringPointer(item.ID), diff --git a/pkg/bundle/installer.go b/pkg/bundle/installer.go index a5560f0d..42d425c4 100644 --- a/pkg/bundle/installer.go +++ b/pkg/bundle/installer.go @@ -5,6 +5,7 @@ import ( "os" "github.com/inancgumus/screen" + "github.com/pluralsh/plural/pkg/api" "github.com/pluralsh/plural/pkg/bundle/tests" "github.com/pluralsh/plural/pkg/manifest" @@ -86,13 +87,13 @@ func doInstall(client api.Client, recipe *api.Recipe, repo, name string, refresh } confirm := false - if err := configureOidc(repo, client, recipe, context.Configuration[repo], &confirm); err != nil { + if err := ConfigureOidc(repo, client, recipe, context.Configuration[repo], &confirm); err != nil { return err } for _, r := range recipe.RecipeDependencies { repo := r.Repository.Name - if err := configureOidc(repo, client, r, context.Configuration[repo], &confirm); err != nil { + if err := ConfigureOidc(repo, client, r, context.Configuration[repo], &confirm); err != nil { return err } } diff --git a/pkg/bundle/oidc.go b/pkg/bundle/oidc.go index f4e8a913..d23d3d48 100644 --- a/pkg/bundle/oidc.go +++ b/pkg/bundle/oidc.go @@ -5,6 +5,7 @@ import ( "strings" "github.com/AlecAivazis/survey/v2" + "github.com/pluralsh/plural/pkg/api" "github.com/pluralsh/plural/pkg/manifest" "github.com/pluralsh/plural/pkg/utils" @@ -12,7 +13,7 @@ import ( var oidcConfirmed bool -func configureOidc(repo string, client api.Client, recipe *api.Recipe, ctx map[string]interface{}, confirm *bool) error { +func ConfigureOidc(repo string, client api.Client, recipe *api.Recipe, ctx map[string]interface{}, confirm *bool) error { if recipe.OidcSettings == nil { return nil } diff --git a/pkg/manifest/context.go b/pkg/manifest/context.go index e882b999..42e2e42d 100644 --- a/pkg/manifest/context.go +++ b/pkg/manifest/context.go @@ -5,13 +5,15 @@ import ( "os" "path/filepath" - "github.com/pluralsh/plural/pkg/api" + jsoniter "github.com/json-iterator/go" "gopkg.in/yaml.v2" + + "github.com/pluralsh/plural/pkg/api" ) type Bundle struct { - Repository string - Name string + Repository string `json:"repository"` + Name string `json:"name"` } type SMTP struct { @@ -38,6 +40,28 @@ type Context struct { Configuration map[string]map[string]interface{} } +func (this *Context) MarshalJSON() ([]byte, error) { + json := jsoniter.ConfigCompatibleWithStandardLibrary + + return json.Marshal(&struct { + Bundles []*Bundle `json:"bundles"` + Buckets []string `json:"buckets"` + Domains []string `json:"domains"` + Protect []string `yaml:"protect,omitempty" json:"protect,omitempty"` + SMTP *SMTP `yaml:"smtp,omitempty" json:"smtp"` + Globals *Globals `yaml:"globals,omitempty" json:"globals,omitempty"` + Configuration map[string]map[string]interface{} `json:"configuration"` + }{ + Bundles: this.Bundles, + Buckets: this.Buckets, + Domains: this.Domains, + Protect: this.Protect, + SMTP: this.SMTP, + Globals: this.Globals, + Configuration: this.Configuration, + }) +} + type VersionedContext struct { ApiVersion string `yaml:"apiVersion"` Kind string `yaml:"kind"` @@ -114,8 +138,8 @@ func (c *Context) HasBucket(bucket string) bool { return false } -func (c *Context) AddDomain(bucket string) { - c.Domains = append(c.Domains, bucket) +func (c *Context) AddDomain(domain string) { + c.Domains = append(c.Domains, domain) } func (c *Context) Protected(name string) bool { diff --git a/pkg/manifest/types.go b/pkg/manifest/types.go index 0b521950..8bc5443b 100644 --- a/pkg/manifest/types.go +++ b/pkg/manifest/types.go @@ -1,5 +1,7 @@ package manifest +import jsoniter "github.com/json-iterator/go" + type ChartManifest struct { Id string Name string @@ -44,8 +46,8 @@ type Owner struct { } type NetworkConfig struct { - Subdomain string - PluralDns bool + Subdomain string `json:"subdomain"` + PluralDns bool `json:"pluralDns"` } type ProjectManifest struct { @@ -60,6 +62,32 @@ type ProjectManifest struct { Context map[string]interface{} } +func (this *ProjectManifest) MarshalJSON() ([]byte, error) { + json := jsoniter.ConfigCompatibleWithStandardLibrary + + return json.Marshal(&struct { + Cluster string `json:"cluster"` + Bucket string `json:"bucket"` + Project string `json:"project"` + Provider string `json:"provider"` + Region string `json:"region"` + Owner *Owner `json:"owner"` + Network *NetworkConfig `json:"network"` + BucketPrefix string `yaml:"bucketPrefix" json:"bucketPrefix"` + Context map[string]interface{} `json:"context"` + }{ + Cluster: this.Cluster, + Bucket: this.Bucket, + Project: this.Project, + Provider: this.Provider, + Region: this.Region, + Owner: this.Owner, + Network: this.Network, + BucketPrefix: this.BucketPrefix, + Context: this.Context, + }) +} + type VersionedManifest struct { ApiVersion string `yaml:"apiVersion"` Kind string diff --git a/pkg/server/context_test.go b/pkg/server/context_test.go index a3577939..c0337b6e 100644 --- a/pkg/server/context_test.go +++ b/pkg/server/context_test.go @@ -9,9 +9,10 @@ import ( "strings" "testing" + "github.com/stretchr/testify/assert" + "github.com/pluralsh/plural/pkg/manifest" "github.com/pluralsh/plural/pkg/server" - "github.com/stretchr/testify/assert" ) func TestContextConfiguration(t *testing.T) { @@ -25,19 +26,19 @@ func TestContextConfiguration(t *testing.T) { name: `update configuration console email address`, body: `{"configuration": {"console":{"email":"newEmail@plural.sh"}}}`, expectedHTTPStatus: http.StatusOK, - expectedResponse: `{"Bundles":[],"Buckets":[],"Domains":[],"SMTP":null,"Configuration":{"console":{"email":"newEmail@plural.sh"},"minio":{"host":"minio.plural.sh","url":"https://test.plural.sh"}}}`, + expectedResponse: `{"bundles":[],"buckets":[],"domains":[],"smtp":null,"configuration":{"console":{"email":"newEmail@plural.sh"},"minio":{"host":"minio.plural.sh","url":"https://test.plural.sh"}}}`, }, { name: `add new entry to configuration`, body: `{"configuration": {"newEntry":{"test":"test"}}}`, expectedHTTPStatus: http.StatusOK, - expectedResponse: `{"Bundles":[],"Buckets":[],"Domains":[],"SMTP":null,"Configuration":{"console":{"email":"test@plural.sh","git_user":"test"},"minio":{"host":"minio.plural.sh","url":"https://test.plural.sh"},"newEntry":{"test":"test"}}}`, + expectedResponse: `{"bundles":[],"buckets":[],"domains":[],"smtp":null,"configuration":{"console":{"email":"test@plural.sh","git_user":"test"},"minio":{"host":"minio.plural.sh","url":"https://test.plural.sh"},"newEntry":{"test":"test"}}}`, }, { name: `remove minio url from configuration`, body: `{"configuration": {"console":{"email":"test@plural.sh","git_user":"test"},"minio":{"host":"minio.plural.sh"}}}`, expectedHTTPStatus: http.StatusOK, - expectedResponse: `{"Bundles":[],"Buckets":[],"Domains":[],"SMTP":null,"Configuration":{"console":{"email":"test@plural.sh","git_user":"test"},"minio":{"host":"minio.plural.sh"}}}`, + expectedResponse: `{"bundles":[],"buckets":[],"domains":[],"smtp":null,"configuration":{"console":{"email":"test@plural.sh","git_user":"test"},"minio":{"host":"minio.plural.sh"}}}`, }, } for _, test := range tests { diff --git a/pkg/test/mocks/Client.go b/pkg/test/mocks/Client.go index 00085165..48691bd4 100644 --- a/pkg/test/mocks/Client.go +++ b/pkg/test/mocks/Client.go @@ -649,6 +649,32 @@ func (_m *Client) GetRecipe(repo string, name string) (*api.Recipe, error) { return r0, r1 } +// GetRecipeByID provides a mock function with given fields: id +func (_m *Client) GetRecipeByID(id string) (*api.Recipe, error) { + ret := _m.Called(id) + + var r0 *api.Recipe + var r1 error + if rf, ok := ret.Get(0).(func(string) (*api.Recipe, error)); ok { + return rf(id) + } + if rf, ok := ret.Get(0).(func(string) *api.Recipe); ok { + r0 = rf(id) + } else { + if ret.Get(0) != nil { + r0 = ret.Get(0).(*api.Recipe) + } + } + + if rf, ok := ret.Get(1).(func(string) error); ok { + r1 = rf(id) + } else { + r1 = ret.Error(1) + } + + return r0, r1 +} + // GetRepository provides a mock function with given fields: repo func (_m *Client) GetRepository(repo string) (*api.Repository, error) { ret := _m.Called(repo) diff --git a/pkg/ui/bindings.go b/pkg/ui/bindings.go new file mode 100644 index 00000000..223780f0 --- /dev/null +++ b/pkg/ui/bindings.go @@ -0,0 +1,16 @@ +//go:build generate + +package ui + +import ( + "log" +) + +// Used to generate frontend bindings used to call backend. +// Only needed when 'generate' tag is provided during the build. +func init() { + err := Run(nil, nil) + if err != nil { + log.Fatal(err) + } +} diff --git a/pkg/ui/client.go b/pkg/ui/client.go new file mode 100644 index 00000000..b574ebbd --- /dev/null +++ b/pkg/ui/client.go @@ -0,0 +1,188 @@ +//go:build ui || generate + +package ui + +import ( + "encoding/json" + "fmt" + + "github.com/pluralsh/polly/algorithms" + "github.com/urfave/cli" + "golang.org/x/exp/maps" + + "github.com/pluralsh/plural/pkg/api" + "github.com/pluralsh/plural/pkg/bundle" + "github.com/pluralsh/plural/pkg/config" + "github.com/pluralsh/plural/pkg/manifest" +) + +type Application struct { + Key string `json:"key"` + Label string `json:"label"` + IsDependency bool `json:"isDependency"` + // DependencyOf is a set of application names that this app is a dependency of. + DependencyOf map[string]interface{} `json:"dependencyOf"` + Data map[string]interface{} `json:"data"` +} + +func (this *Application) UnmarshalJSON(data []byte) error { + type Alias struct { + Key string `json:"key"` + Label string `json:"label"` + IsDependency bool `json:"isDependency"` + // Since Set does not exist in Go, we are passing array + // from the frontend and converting it to a map. + DependencyOf []string `json:"dependencyOf"` + Data map[string]interface{} `json:"data"` + } + alias := &Alias{} + if err := json.Unmarshal(data, alias); err != nil { + return fmt.Errorf("error during Application.UnmarshalJSON: %v\n", err) + } + + dependencyOf := map[string]interface{}{} + for _, appName := range alias.DependencyOf { + dependencyOf[appName] = struct{}{} + } + + *this = Application{ + Key: alias.Key, + Label: alias.Label, + IsDependency: alias.IsDependency, + DependencyOf: dependencyOf, + Data: alias.Data, + } + + return nil +} + +// Client struct used by the frontend to access and update backend data. +type Client struct { + ctx *cli.Context + client api.Client +} + +func (this *Client) Token() string { + conf := config.Read() + + return conf.Token +} + +func (this *Client) Project() *manifest.ProjectManifest { + project, err := manifest.FetchProject() + if err != nil { + return nil + } + + return project +} + +func (this *Client) Context() *manifest.Context { + context, err := manifest.FetchContext() + if err != nil { + return nil + } + + return context +} + +func (this *Client) Install(applications []Application, domains, buckets []string) error { + path := manifest.ContextPath() + context, err := manifest.ReadContext(path) + if err != nil { + context = manifest.NewContext() + } + + this.addDomains(context, domains) + this.addBuckets(context, buckets) + + installableApplications := algorithms.Filter(applications, func(app Application) bool { + return !app.IsDependency + }) + + dependencies := algorithms.Filter(applications, func(app Application) bool { + return app.IsDependency + }) + + for _, dep := range dependencies { + if err = this.doInstall(dep, context); err != nil { + return err + } + } + + for _, app := range installableApplications { + if err = this.doInstall(app, context); err != nil { + return err + } + } + + // Write to context.yaml only if there were no errors + err = context.Write(path) + return err +} + +func (this *Client) doInstall(application Application, context *manifest.Context) error { + recipeID := application.Data["id"].(string) + oidc := application.Data["oidc"].(bool) + configuration := application.Data["context"].(map[string]interface{}) + repoName := application.Label + mergedConfiguration, exists := context.Configuration[repoName] + if !exists { + mergedConfiguration = map[string]interface{}{} + } + + recipe, err := this.client.GetRecipeByID(recipeID) + if err != nil { + return api.GetErrorResponse(err, "GetRecipeByID") + } + + // Merge incoming configuration with existing one and update context + maps.Copy(mergedConfiguration, configuration) + context.Configuration[repoName] = mergedConfiguration + + // Non-dependency apps need some additional handling + if !application.IsDependency { + // Add installed app to the context + context.AddBundle(repoName, recipe.Name) + + // Install app recipe + if err := this.client.InstallRecipe(recipeID); err != nil { + return fmt.Errorf("error: %w", api.GetErrorResponse(err, "InstallRecipe")) + } + } + + // Configure OIDC if enabled + if oidc { + confirm := false + err = bundle.ConfigureOidc(repoName, this.client, recipe, configuration, &confirm) + if err != nil { + return err + } + } + + return nil +} + +func (this *Client) addDomains(context *manifest.Context, domains []string) { + for _, domain := range domains { + if !context.HasDomain(domain) { + context.AddDomain(domain) + } + } +} + +func (this *Client) addBuckets(context *manifest.Context, buckets []string) { + for _, bucket := range buckets { + if !context.HasBucket(bucket) { + context.AddBucket(bucket) + } + } +} + +// NewClient creates a new proxy client struct +func NewClient(client api.Client, ctx *cli.Context) *Client { + return &Client{ + ctx: ctx, + client: client, + } +} diff --git a/pkg/ui/ui.go b/pkg/ui/ui.go new file mode 100644 index 00000000..131d5d7a --- /dev/null +++ b/pkg/ui/ui.go @@ -0,0 +1,41 @@ +//go:build ui || generate + +package ui + +import ( + "embed" + + "github.com/urfave/cli" + "github.com/wailsapp/wails/v2" + "github.com/wailsapp/wails/v2/pkg/options" + "github.com/wailsapp/wails/v2/pkg/options/assetserver" + + "github.com/pluralsh/plural/pkg/api" +) + +//go:embed all:web/dist +var assets embed.FS + +func Run(c api.Client, ctx *cli.Context) error { + // Create an instance of the main window structure + window := NewWindow() + client := NewClient(c, ctx) + + // Create application with options + err := wails.Run(&options.App{ + Title: "Plural", + Frameless: true, + Width: window.width(), + Height: window.height(), + AssetServer: &assetserver.Options{ + Assets: assets, + }, + OnStartup: window.startup, + Bind: []interface{}{ + window, + client, + }, + }) + + return err +} diff --git a/pkg/ui/web/.eslintrc b/pkg/ui/web/.eslintrc new file mode 100644 index 00000000..65710b15 --- /dev/null +++ b/pkg/ui/web/.eslintrc @@ -0,0 +1,3 @@ +extends: ["@pluralsh/eslint-config-typescript"] +globals: + JSX: true diff --git a/pkg/ui/web/.gitignore b/pkg/ui/web/.gitignore new file mode 100644 index 00000000..704b8167 --- /dev/null +++ b/pkg/ui/web/.gitignore @@ -0,0 +1,9 @@ +# dependencies +/node_modules +.pnp.* +.yarn/* +!.yarn/patches +!.yarn/plugins +!.yarn/releases +!.yarn/sdks +!.yarn/versions diff --git a/pkg/ui/web/.graphqlconfig b/pkg/ui/web/.graphqlconfig new file mode 100644 index 00000000..4543260f --- /dev/null +++ b/pkg/ui/web/.graphqlconfig @@ -0,0 +1,15 @@ +{ + "name": "Plural API", + "schemaPath": "schema/schema.graphql", + "extensions": { + "endpoints": { + "Default GraphQL Endpoint": { + "url": "https://app.plural.sh/graphiql", + "headers": { + "user-agent": "JS GraphQL" + }, + "introspect": true + } + } + } +} \ No newline at end of file diff --git a/pkg/ui/web/.yarn/releases/yarn-3.4.1.cjs b/pkg/ui/web/.yarn/releases/yarn-3.4.1.cjs new file mode 100755 index 00000000..2bdb752d --- /dev/null +++ b/pkg/ui/web/.yarn/releases/yarn-3.4.1.cjs @@ -0,0 +1,873 @@ +#!/usr/bin/env node +/* eslint-disable */ +//prettier-ignore +(()=>{var Mue=Object.create;var Wb=Object.defineProperty;var Kue=Object.getOwnPropertyDescriptor;var Uue=Object.getOwnPropertyNames;var Hue=Object.getPrototypeOf,Gue=Object.prototype.hasOwnProperty;var J=(r=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(r,{get:(e,t)=>(typeof require<"u"?require:e)[t]}):r)(function(r){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+r+'" is not supported')});var Yue=(r,e)=>()=>(r&&(e=r(r=0)),e);var w=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports),ut=(r,e)=>{for(var t in e)Wb(r,t,{get:e[t],enumerable:!0})},jue=(r,e,t,i)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Uue(e))!Gue.call(r,n)&&n!==t&&Wb(r,n,{get:()=>e[n],enumerable:!(i=Kue(e,n))||i.enumerable});return r};var Pe=(r,e,t)=>(t=r!=null?Mue(Hue(r)):{},jue(e||!r||!r.__esModule?Wb(t,"default",{value:r,enumerable:!0}):t,r));var _1=w((O7e,X1)=>{X1.exports=V1;V1.sync=uge;var W1=J("fs");function cge(r,e){var t=e.pathExt!==void 0?e.pathExt:process.env.PATHEXT;if(!t||(t=t.split(";"),t.indexOf("")!==-1))return!0;for(var i=0;i{tK.exports=$1;$1.sync=gge;var Z1=J("fs");function $1(r,e,t){Z1.stat(r,function(i,n){t(i,i?!1:eK(n,e))})}function gge(r,e){return eK(Z1.statSync(r),e)}function eK(r,e){return r.isFile()&&fge(r,e)}function fge(r,e){var t=r.mode,i=r.uid,n=r.gid,s=e.uid!==void 0?e.uid:process.getuid&&process.getuid(),o=e.gid!==void 0?e.gid:process.getgid&&process.getgid(),a=parseInt("100",8),l=parseInt("010",8),c=parseInt("001",8),u=a|l,g=t&c||t&l&&n===o||t&a&&i===s||t&u&&s===0;return g}});var nK=w((U7e,iK)=>{var K7e=J("fs"),_E;process.platform==="win32"||global.TESTING_WINDOWS?_E=_1():_E=rK();iK.exports=uS;uS.sync=hge;function uS(r,e,t){if(typeof e=="function"&&(t=e,e={}),!t){if(typeof Promise!="function")throw new TypeError("callback not provided");return new Promise(function(i,n){uS(r,e||{},function(s,o){s?n(s):i(o)})})}_E(r,e||{},function(i,n){i&&(i.code==="EACCES"||e&&e.ignoreErrors)&&(i=null,n=!1),t(i,n)})}function hge(r,e){try{return _E.sync(r,e||{})}catch(t){if(e&&e.ignoreErrors||t.code==="EACCES")return!1;throw t}}});var uK=w((H7e,cK)=>{var Ig=process.platform==="win32"||process.env.OSTYPE==="cygwin"||process.env.OSTYPE==="msys",sK=J("path"),pge=Ig?";":":",oK=nK(),aK=r=>Object.assign(new Error(`not found: ${r}`),{code:"ENOENT"}),AK=(r,e)=>{let t=e.colon||pge,i=r.match(/\//)||Ig&&r.match(/\\/)?[""]:[...Ig?[process.cwd()]:[],...(e.path||process.env.PATH||"").split(t)],n=Ig?e.pathExt||process.env.PATHEXT||".EXE;.CMD;.BAT;.COM":"",s=Ig?n.split(t):[""];return Ig&&r.indexOf(".")!==-1&&s[0]!==""&&s.unshift(""),{pathEnv:i,pathExt:s,pathExtExe:n}},lK=(r,e,t)=>{typeof e=="function"&&(t=e,e={}),e||(e={});let{pathEnv:i,pathExt:n,pathExtExe:s}=AK(r,e),o=[],a=c=>new Promise((u,g)=>{if(c===i.length)return e.all&&o.length?u(o):g(aK(r));let f=i[c],h=/^".*"$/.test(f)?f.slice(1,-1):f,p=sK.join(h,r),C=!h&&/^\.[\\\/]/.test(r)?r.slice(0,2)+p:p;u(l(C,c,0))}),l=(c,u,g)=>new Promise((f,h)=>{if(g===n.length)return f(a(u+1));let p=n[g];oK(c+p,{pathExt:s},(C,y)=>{if(!C&&y)if(e.all)o.push(c+p);else return f(c+p);return f(l(c,u,g+1))})});return t?a(0).then(c=>t(null,c),t):a(0)},dge=(r,e)=>{e=e||{};let{pathEnv:t,pathExt:i,pathExtExe:n}=AK(r,e),s=[];for(let o=0;o{"use strict";var gK=(r={})=>{let e=r.env||process.env;return(r.platform||process.platform)!=="win32"?"PATH":Object.keys(e).reverse().find(i=>i.toUpperCase()==="PATH")||"Path"};gS.exports=gK;gS.exports.default=gK});var CK=w((Y7e,dK)=>{"use strict";var hK=J("path"),Cge=uK(),mge=fK();function pK(r,e){let t=r.options.env||process.env,i=process.cwd(),n=r.options.cwd!=null,s=n&&process.chdir!==void 0&&!process.chdir.disabled;if(s)try{process.chdir(r.options.cwd)}catch{}let o;try{o=Cge.sync(r.command,{path:t[mge({env:t})],pathExt:e?hK.delimiter:void 0})}catch{}finally{s&&process.chdir(i)}return o&&(o=hK.resolve(n?r.options.cwd:"",o)),o}function Ege(r){return pK(r)||pK(r,!0)}dK.exports=Ege});var mK=w((j7e,hS)=>{"use strict";var fS=/([()\][%!^"`<>&|;, *?])/g;function Ige(r){return r=r.replace(fS,"^$1"),r}function yge(r,e){return r=`${r}`,r=r.replace(/(\\*)"/g,'$1$1\\"'),r=r.replace(/(\\*)$/,"$1$1"),r=`"${r}"`,r=r.replace(fS,"^$1"),e&&(r=r.replace(fS,"^$1")),r}hS.exports.command=Ige;hS.exports.argument=yge});var IK=w((q7e,EK)=>{"use strict";EK.exports=/^#!(.*)/});var wK=w((J7e,yK)=>{"use strict";var wge=IK();yK.exports=(r="")=>{let e=r.match(wge);if(!e)return null;let[t,i]=e[0].replace(/#! ?/,"").split(" "),n=t.split("/").pop();return n==="env"?i:i?`${n} ${i}`:n}});var QK=w((W7e,BK)=>{"use strict";var pS=J("fs"),Bge=wK();function Qge(r){let t=Buffer.alloc(150),i;try{i=pS.openSync(r,"r"),pS.readSync(i,t,0,150,0),pS.closeSync(i)}catch{}return Bge(t.toString())}BK.exports=Qge});var xK=w((z7e,vK)=>{"use strict";var bge=J("path"),bK=CK(),SK=mK(),Sge=QK(),vge=process.platform==="win32",xge=/\.(?:com|exe)$/i,Pge=/node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i;function Dge(r){r.file=bK(r);let e=r.file&&Sge(r.file);return e?(r.args.unshift(r.file),r.command=e,bK(r)):r.file}function kge(r){if(!vge)return r;let e=Dge(r),t=!xge.test(e);if(r.options.forceShell||t){let i=Pge.test(e);r.command=bge.normalize(r.command),r.command=SK.command(r.command),r.args=r.args.map(s=>SK.argument(s,i));let n=[r.command].concat(r.args).join(" ");r.args=["/d","/s","/c",`"${n}"`],r.command=process.env.comspec||"cmd.exe",r.options.windowsVerbatimArguments=!0}return r}function Rge(r,e,t){e&&!Array.isArray(e)&&(t=e,e=null),e=e?e.slice(0):[],t=Object.assign({},t);let i={command:r,args:e,options:t,file:void 0,original:{command:r,args:e}};return t.shell?i:kge(i)}vK.exports=Rge});var kK=w((V7e,DK)=>{"use strict";var dS=process.platform==="win32";function CS(r,e){return Object.assign(new Error(`${e} ${r.command} ENOENT`),{code:"ENOENT",errno:"ENOENT",syscall:`${e} ${r.command}`,path:r.command,spawnargs:r.args})}function Fge(r,e){if(!dS)return;let t=r.emit;r.emit=function(i,n){if(i==="exit"){let s=PK(n,e,"spawn");if(s)return t.call(r,"error",s)}return t.apply(r,arguments)}}function PK(r,e){return dS&&r===1&&!e.file?CS(e.original,"spawn"):null}function Nge(r,e){return dS&&r===1&&!e.file?CS(e.original,"spawnSync"):null}DK.exports={hookChildProcess:Fge,verifyENOENT:PK,verifyENOENTSync:Nge,notFoundError:CS}});var IS=w((X7e,yg)=>{"use strict";var RK=J("child_process"),mS=xK(),ES=kK();function FK(r,e,t){let i=mS(r,e,t),n=RK.spawn(i.command,i.args,i.options);return ES.hookChildProcess(n,i),n}function Lge(r,e,t){let i=mS(r,e,t),n=RK.spawnSync(i.command,i.args,i.options);return n.error=n.error||ES.verifyENOENTSync(n.status,i),n}yg.exports=FK;yg.exports.spawn=FK;yg.exports.sync=Lge;yg.exports._parse=mS;yg.exports._enoent=ES});var LK=w((_7e,NK)=>{"use strict";function Tge(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function Ml(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Ml)}Tge(Ml,Error);Ml.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g>",ie=me(">>",!1),de=">&",tt=me(">&",!1),Pt=">",It=me(">",!1),Or="<<<",ii=me("<<<",!1),gi="<&",hr=me("<&",!1),fi="<",ni=me("<",!1),Ls=function(m){return{type:"argument",segments:[].concat(...m)}},pr=function(m){return m},Ei="$'",_n=me("$'",!1),oa="'",aA=me("'",!1),eg=function(m){return[{type:"text",text:m}]},Zn='""',AA=me('""',!1),aa=function(){return{type:"text",text:""}},up='"',lA=me('"',!1),cA=function(m){return m},wr=function(m){return{type:"arithmetic",arithmetic:m,quoted:!0}},wl=function(m){return{type:"shell",shell:m,quoted:!0}},tg=function(m){return{type:"variable",...m,quoted:!0}},po=function(m){return{type:"text",text:m}},rg=function(m){return{type:"arithmetic",arithmetic:m,quoted:!1}},gp=function(m){return{type:"shell",shell:m,quoted:!1}},fp=function(m){return{type:"variable",...m,quoted:!1}},vr=function(m){return{type:"glob",pattern:m}},se=/^[^']/,Co=Je(["'"],!0,!1),Dn=function(m){return m.join("")},ig=/^[^$"]/,Qt=Je(["$",'"'],!0,!1),Bl=`\\ +`,kn=me(`\\ +`,!1),$n=function(){return""},es="\\",gt=me("\\",!1),mo=/^[\\$"`]/,At=Je(["\\","$",'"',"`"],!1,!1),an=function(m){return m},S="\\a",Tt=me("\\a",!1),ng=function(){return"a"},Ql="\\b",hp=me("\\b",!1),pp=function(){return"\b"},dp=/^[Ee]/,Cp=Je(["E","e"],!1,!1),mp=function(){return"\x1B"},G="\\f",yt=me("\\f",!1),uA=function(){return"\f"},ji="\\n",bl=me("\\n",!1),Xe=function(){return` +`},Aa="\\r",sg=me("\\r",!1),bE=function(){return"\r"},Ep="\\t",SE=me("\\t",!1),ar=function(){return" "},Rn="\\v",Sl=me("\\v",!1),Ip=function(){return"\v"},Ts=/^[\\'"?]/,la=Je(["\\","'",'"',"?"],!1,!1),An=function(m){return String.fromCharCode(parseInt(m,16))},Te="\\x",og=me("\\x",!1),vl="\\u",Os=me("\\u",!1),xl="\\U",gA=me("\\U",!1),ag=function(m){return String.fromCodePoint(parseInt(m,16))},Ag=/^[0-7]/,ca=Je([["0","7"]],!1,!1),ua=/^[0-9a-fA-f]/,rt=Je([["0","9"],["a","f"],["A","f"]],!1,!1),Eo=nt(),fA="-",Pl=me("-",!1),Ms="+",Dl=me("+",!1),vE=".",yp=me(".",!1),lg=function(m,b,N){return{type:"number",value:(m==="-"?-1:1)*parseFloat(b.join("")+"."+N.join(""))}},wp=function(m,b){return{type:"number",value:(m==="-"?-1:1)*parseInt(b.join(""))}},xE=function(m){return{type:"variable",...m}},kl=function(m){return{type:"variable",name:m}},PE=function(m){return m},cg="*",hA=me("*",!1),Rr="/",DE=me("/",!1),Ks=function(m,b,N){return{type:b==="*"?"multiplication":"division",right:N}},Us=function(m,b){return b.reduce((N,U)=>({left:N,...U}),m)},ug=function(m,b,N){return{type:b==="+"?"addition":"subtraction",right:N}},pA="$((",R=me("$((",!1),q="))",Ce=me("))",!1),Ke=function(m){return m},Re="$(",ze=me("$(",!1),dt=function(m){return m},Ft="${",Fn=me("${",!1),Db=":-",$M=me(":-",!1),e1=function(m,b){return{name:m,defaultValue:b}},kb=":-}",t1=me(":-}",!1),r1=function(m){return{name:m,defaultValue:[]}},Rb=":+",i1=me(":+",!1),n1=function(m,b){return{name:m,alternativeValue:b}},Fb=":+}",s1=me(":+}",!1),o1=function(m){return{name:m,alternativeValue:[]}},Nb=function(m){return{name:m}},a1="$",A1=me("$",!1),l1=function(m){return e.isGlobPattern(m)},c1=function(m){return m},Lb=/^[a-zA-Z0-9_]/,Tb=Je([["a","z"],["A","Z"],["0","9"],"_"],!1,!1),Ob=function(){return T()},Mb=/^[$@*?#a-zA-Z0-9_\-]/,Kb=Je(["$","@","*","?","#",["a","z"],["A","Z"],["0","9"],"_","-"],!1,!1),u1=/^[(){}<>$|&; \t"']/,gg=Je(["(",")","{","}","<",">","$","|","&",";"," "," ",'"',"'"],!1,!1),Ub=/^[<>&; \t"']/,Hb=Je(["<",">","&",";"," "," ",'"',"'"],!1,!1),kE=/^[ \t]/,RE=Je([" "," "],!1,!1),Q=0,Me=0,dA=[{line:1,column:1}],d=0,E=[],I=0,k;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function T(){return r.substring(Me,Q)}function _(){return Et(Me,Q)}function te(m,b){throw b=b!==void 0?b:Et(Me,Q),ki([lt(m)],r.substring(Me,Q),b)}function Be(m,b){throw b=b!==void 0?b:Et(Me,Q),Nn(m,b)}function me(m,b){return{type:"literal",text:m,ignoreCase:b}}function Je(m,b,N){return{type:"class",parts:m,inverted:b,ignoreCase:N}}function nt(){return{type:"any"}}function wt(){return{type:"end"}}function lt(m){return{type:"other",description:m}}function it(m){var b=dA[m],N;if(b)return b;for(N=m-1;!dA[N];)N--;for(b=dA[N],b={line:b.line,column:b.column};Nd&&(d=Q,E=[]),E.push(m))}function Nn(m,b){return new Ml(m,null,null,b)}function ki(m,b,N){return new Ml(Ml.buildMessage(m,b),m,b,N)}function CA(){var m,b;return m=Q,b=Mr(),b===t&&(b=null),b!==t&&(Me=m,b=s(b)),m=b,m}function Mr(){var m,b,N,U,ce;if(m=Q,b=Kr(),b!==t){for(N=[],U=He();U!==t;)N.push(U),U=He();N!==t?(U=ga(),U!==t?(ce=ts(),ce===t&&(ce=null),ce!==t?(Me=m,b=o(b,U,ce),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t)}else Q=m,m=t;if(m===t)if(m=Q,b=Kr(),b!==t){for(N=[],U=He();U!==t;)N.push(U),U=He();N!==t?(U=ga(),U===t&&(U=null),U!==t?(Me=m,b=a(b,U),m=b):(Q=m,m=t)):(Q=m,m=t)}else Q=m,m=t;return m}function ts(){var m,b,N,U,ce;for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t)if(N=Mr(),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();U!==t?(Me=m,b=l(N),m=b):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t;return m}function ga(){var m;return r.charCodeAt(Q)===59?(m=c,Q++):(m=t,I===0&&Qe(u)),m===t&&(r.charCodeAt(Q)===38?(m=g,Q++):(m=t,I===0&&Qe(f))),m}function Kr(){var m,b,N;return m=Q,b=g1(),b!==t?(N=yue(),N===t&&(N=null),N!==t?(Me=m,b=h(b,N),m=b):(Q=m,m=t)):(Q=m,m=t),m}function yue(){var m,b,N,U,ce,Se,ht;for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t)if(N=wue(),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t)if(ce=Kr(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();Se!==t?(Me=m,b=p(N,ce),m=b):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;else Q=m,m=t;return m}function wue(){var m;return r.substr(Q,2)===C?(m=C,Q+=2):(m=t,I===0&&Qe(y)),m===t&&(r.substr(Q,2)===B?(m=B,Q+=2):(m=t,I===0&&Qe(v))),m}function g1(){var m,b,N;return m=Q,b=bue(),b!==t?(N=Bue(),N===t&&(N=null),N!==t?(Me=m,b=D(b,N),m=b):(Q=m,m=t)):(Q=m,m=t),m}function Bue(){var m,b,N,U,ce,Se,ht;for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t)if(N=Que(),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t)if(ce=g1(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();Se!==t?(Me=m,b=L(N,ce),m=b):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;else Q=m,m=t;return m}function Que(){var m;return r.substr(Q,2)===H?(m=H,Q+=2):(m=t,I===0&&Qe(j)),m===t&&(r.charCodeAt(Q)===124?(m=$,Q++):(m=t,I===0&&Qe(V))),m}function FE(){var m,b,N,U,ce,Se;if(m=Q,b=Q1(),b!==t)if(r.charCodeAt(Q)===61?(N=W,Q++):(N=t,I===0&&Qe(Z)),N!==t)if(U=p1(),U!==t){for(ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();ce!==t?(Me=m,b=A(b,U),m=b):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t;else Q=m,m=t;if(m===t)if(m=Q,b=Q1(),b!==t)if(r.charCodeAt(Q)===61?(N=W,Q++):(N=t,I===0&&Qe(Z)),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();U!==t?(Me=m,b=ae(b),m=b):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t;return m}function bue(){var m,b,N,U,ce,Se,ht,Bt,Jr,hi,rs;for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t)if(r.charCodeAt(Q)===40?(N=ge,Q++):(N=t,I===0&&Qe(re)),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t)if(ce=Mr(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();if(Se!==t)if(r.charCodeAt(Q)===41?(ht=O,Q++):(ht=t,I===0&&Qe(F)),ht!==t){for(Bt=[],Jr=He();Jr!==t;)Bt.push(Jr),Jr=He();if(Bt!==t){for(Jr=[],hi=Bp();hi!==t;)Jr.push(hi),hi=Bp();if(Jr!==t){for(hi=[],rs=He();rs!==t;)hi.push(rs),rs=He();hi!==t?(Me=m,b=ue(ce,Jr),m=b):(Q=m,m=t)}else Q=m,m=t}else Q=m,m=t}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;else Q=m,m=t;if(m===t){for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t)if(r.charCodeAt(Q)===123?(N=he,Q++):(N=t,I===0&&Qe(ke)),N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t)if(ce=Mr(),ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();if(Se!==t)if(r.charCodeAt(Q)===125?(ht=Fe,Q++):(ht=t,I===0&&Qe(Ne)),ht!==t){for(Bt=[],Jr=He();Jr!==t;)Bt.push(Jr),Jr=He();if(Bt!==t){for(Jr=[],hi=Bp();hi!==t;)Jr.push(hi),hi=Bp();if(Jr!==t){for(hi=[],rs=He();rs!==t;)hi.push(rs),rs=He();hi!==t?(Me=m,b=oe(ce,Jr),m=b):(Q=m,m=t)}else Q=m,m=t}else Q=m,m=t}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;else Q=m,m=t;if(m===t){for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t){for(N=[],U=FE();U!==t;)N.push(U),U=FE();if(N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();if(U!==t){if(ce=[],Se=h1(),Se!==t)for(;Se!==t;)ce.push(Se),Se=h1();else ce=t;if(ce!==t){for(Se=[],ht=He();ht!==t;)Se.push(ht),ht=He();Se!==t?(Me=m,b=le(N,ce),m=b):(Q=m,m=t)}else Q=m,m=t}else Q=m,m=t}else Q=m,m=t}else Q=m,m=t;if(m===t){for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t){if(N=[],U=FE(),U!==t)for(;U!==t;)N.push(U),U=FE();else N=t;if(N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();U!==t?(Me=m,b=we(N),m=b):(Q=m,m=t)}else Q=m,m=t}else Q=m,m=t}}}return m}function f1(){var m,b,N,U,ce;for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t){if(N=[],U=NE(),U!==t)for(;U!==t;)N.push(U),U=NE();else N=t;if(N!==t){for(U=[],ce=He();ce!==t;)U.push(ce),ce=He();U!==t?(Me=m,b=fe(N),m=b):(Q=m,m=t)}else Q=m,m=t}else Q=m,m=t;return m}function h1(){var m,b,N;for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();if(b!==t?(N=Bp(),N!==t?(Me=m,b=Ae(N),m=b):(Q=m,m=t)):(Q=m,m=t),m===t){for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();b!==t?(N=NE(),N!==t?(Me=m,b=Ae(N),m=b):(Q=m,m=t)):(Q=m,m=t)}return m}function Bp(){var m,b,N,U,ce;for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();return b!==t?(qe.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(ne)),N===t&&(N=null),N!==t?(U=Sue(),U!==t?(ce=NE(),ce!==t?(Me=m,b=Y(N,U,ce),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m}function Sue(){var m;return r.substr(Q,2)===pe?(m=pe,Q+=2):(m=t,I===0&&Qe(ie)),m===t&&(r.substr(Q,2)===de?(m=de,Q+=2):(m=t,I===0&&Qe(tt)),m===t&&(r.charCodeAt(Q)===62?(m=Pt,Q++):(m=t,I===0&&Qe(It)),m===t&&(r.substr(Q,3)===Or?(m=Or,Q+=3):(m=t,I===0&&Qe(ii)),m===t&&(r.substr(Q,2)===gi?(m=gi,Q+=2):(m=t,I===0&&Qe(hr)),m===t&&(r.charCodeAt(Q)===60?(m=fi,Q++):(m=t,I===0&&Qe(ni))))))),m}function NE(){var m,b,N;for(m=Q,b=[],N=He();N!==t;)b.push(N),N=He();return b!==t?(N=p1(),N!==t?(Me=m,b=Ae(N),m=b):(Q=m,m=t)):(Q=m,m=t),m}function p1(){var m,b,N;if(m=Q,b=[],N=d1(),N!==t)for(;N!==t;)b.push(N),N=d1();else b=t;return b!==t&&(Me=m,b=Ls(b)),m=b,m}function d1(){var m,b;return m=Q,b=vue(),b!==t&&(Me=m,b=pr(b)),m=b,m===t&&(m=Q,b=xue(),b!==t&&(Me=m,b=pr(b)),m=b,m===t&&(m=Q,b=Pue(),b!==t&&(Me=m,b=pr(b)),m=b,m===t&&(m=Q,b=Due(),b!==t&&(Me=m,b=pr(b)),m=b))),m}function vue(){var m,b,N,U;return m=Q,r.substr(Q,2)===Ei?(b=Ei,Q+=2):(b=t,I===0&&Qe(_n)),b!==t?(N=Fue(),N!==t?(r.charCodeAt(Q)===39?(U=oa,Q++):(U=t,I===0&&Qe(aA)),U!==t?(Me=m,b=eg(N),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m}function xue(){var m,b,N,U;return m=Q,r.charCodeAt(Q)===39?(b=oa,Q++):(b=t,I===0&&Qe(aA)),b!==t?(N=kue(),N!==t?(r.charCodeAt(Q)===39?(U=oa,Q++):(U=t,I===0&&Qe(aA)),U!==t?(Me=m,b=eg(N),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m}function Pue(){var m,b,N,U;if(m=Q,r.substr(Q,2)===Zn?(b=Zn,Q+=2):(b=t,I===0&&Qe(AA)),b!==t&&(Me=m,b=aa()),m=b,m===t)if(m=Q,r.charCodeAt(Q)===34?(b=up,Q++):(b=t,I===0&&Qe(lA)),b!==t){for(N=[],U=C1();U!==t;)N.push(U),U=C1();N!==t?(r.charCodeAt(Q)===34?(U=up,Q++):(U=t,I===0&&Qe(lA)),U!==t?(Me=m,b=cA(N),m=b):(Q=m,m=t)):(Q=m,m=t)}else Q=m,m=t;return m}function Due(){var m,b,N;if(m=Q,b=[],N=m1(),N!==t)for(;N!==t;)b.push(N),N=m1();else b=t;return b!==t&&(Me=m,b=cA(b)),m=b,m}function C1(){var m,b;return m=Q,b=w1(),b!==t&&(Me=m,b=wr(b)),m=b,m===t&&(m=Q,b=B1(),b!==t&&(Me=m,b=wl(b)),m=b,m===t&&(m=Q,b=qb(),b!==t&&(Me=m,b=tg(b)),m=b,m===t&&(m=Q,b=Rue(),b!==t&&(Me=m,b=po(b)),m=b))),m}function m1(){var m,b;return m=Q,b=w1(),b!==t&&(Me=m,b=rg(b)),m=b,m===t&&(m=Q,b=B1(),b!==t&&(Me=m,b=gp(b)),m=b,m===t&&(m=Q,b=qb(),b!==t&&(Me=m,b=fp(b)),m=b,m===t&&(m=Q,b=Tue(),b!==t&&(Me=m,b=vr(b)),m=b,m===t&&(m=Q,b=Lue(),b!==t&&(Me=m,b=po(b)),m=b)))),m}function kue(){var m,b,N;for(m=Q,b=[],se.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(Co));N!==t;)b.push(N),se.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(Co));return b!==t&&(Me=m,b=Dn(b)),m=b,m}function Rue(){var m,b,N;if(m=Q,b=[],N=E1(),N===t&&(ig.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(Qt))),N!==t)for(;N!==t;)b.push(N),N=E1(),N===t&&(ig.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(Qt)));else b=t;return b!==t&&(Me=m,b=Dn(b)),m=b,m}function E1(){var m,b,N;return m=Q,r.substr(Q,2)===Bl?(b=Bl,Q+=2):(b=t,I===0&&Qe(kn)),b!==t&&(Me=m,b=$n()),m=b,m===t&&(m=Q,r.charCodeAt(Q)===92?(b=es,Q++):(b=t,I===0&&Qe(gt)),b!==t?(mo.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(At)),N!==t?(Me=m,b=an(N),m=b):(Q=m,m=t)):(Q=m,m=t)),m}function Fue(){var m,b,N;for(m=Q,b=[],N=I1(),N===t&&(se.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(Co)));N!==t;)b.push(N),N=I1(),N===t&&(se.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(Co)));return b!==t&&(Me=m,b=Dn(b)),m=b,m}function I1(){var m,b,N;return m=Q,r.substr(Q,2)===S?(b=S,Q+=2):(b=t,I===0&&Qe(Tt)),b!==t&&(Me=m,b=ng()),m=b,m===t&&(m=Q,r.substr(Q,2)===Ql?(b=Ql,Q+=2):(b=t,I===0&&Qe(hp)),b!==t&&(Me=m,b=pp()),m=b,m===t&&(m=Q,r.charCodeAt(Q)===92?(b=es,Q++):(b=t,I===0&&Qe(gt)),b!==t?(dp.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(Cp)),N!==t?(Me=m,b=mp(),m=b):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===G?(b=G,Q+=2):(b=t,I===0&&Qe(yt)),b!==t&&(Me=m,b=uA()),m=b,m===t&&(m=Q,r.substr(Q,2)===ji?(b=ji,Q+=2):(b=t,I===0&&Qe(bl)),b!==t&&(Me=m,b=Xe()),m=b,m===t&&(m=Q,r.substr(Q,2)===Aa?(b=Aa,Q+=2):(b=t,I===0&&Qe(sg)),b!==t&&(Me=m,b=bE()),m=b,m===t&&(m=Q,r.substr(Q,2)===Ep?(b=Ep,Q+=2):(b=t,I===0&&Qe(SE)),b!==t&&(Me=m,b=ar()),m=b,m===t&&(m=Q,r.substr(Q,2)===Rn?(b=Rn,Q+=2):(b=t,I===0&&Qe(Sl)),b!==t&&(Me=m,b=Ip()),m=b,m===t&&(m=Q,r.charCodeAt(Q)===92?(b=es,Q++):(b=t,I===0&&Qe(gt)),b!==t?(Ts.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(la)),N!==t?(Me=m,b=an(N),m=b):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Nue()))))))))),m}function Nue(){var m,b,N,U,ce,Se,ht,Bt,Jr,hi,rs,Jb;return m=Q,r.charCodeAt(Q)===92?(b=es,Q++):(b=t,I===0&&Qe(gt)),b!==t?(N=Gb(),N!==t?(Me=m,b=An(N),m=b):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===Te?(b=Te,Q+=2):(b=t,I===0&&Qe(og)),b!==t?(N=Q,U=Q,ce=Gb(),ce!==t?(Se=Ln(),Se!==t?(ce=[ce,Se],U=ce):(Q=U,U=t)):(Q=U,U=t),U===t&&(U=Gb()),U!==t?N=r.substring(N,Q):N=U,N!==t?(Me=m,b=An(N),m=b):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===vl?(b=vl,Q+=2):(b=t,I===0&&Qe(Os)),b!==t?(N=Q,U=Q,ce=Ln(),ce!==t?(Se=Ln(),Se!==t?(ht=Ln(),ht!==t?(Bt=Ln(),Bt!==t?(ce=[ce,Se,ht,Bt],U=ce):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t),U!==t?N=r.substring(N,Q):N=U,N!==t?(Me=m,b=An(N),m=b):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===xl?(b=xl,Q+=2):(b=t,I===0&&Qe(gA)),b!==t?(N=Q,U=Q,ce=Ln(),ce!==t?(Se=Ln(),Se!==t?(ht=Ln(),ht!==t?(Bt=Ln(),Bt!==t?(Jr=Ln(),Jr!==t?(hi=Ln(),hi!==t?(rs=Ln(),rs!==t?(Jb=Ln(),Jb!==t?(ce=[ce,Se,ht,Bt,Jr,hi,rs,Jb],U=ce):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t)):(Q=U,U=t),U!==t?N=r.substring(N,Q):N=U,N!==t?(Me=m,b=ag(N),m=b):(Q=m,m=t)):(Q=m,m=t)))),m}function Gb(){var m;return Ag.test(r.charAt(Q))?(m=r.charAt(Q),Q++):(m=t,I===0&&Qe(ca)),m}function Ln(){var m;return ua.test(r.charAt(Q))?(m=r.charAt(Q),Q++):(m=t,I===0&&Qe(rt)),m}function Lue(){var m,b,N,U,ce;if(m=Q,b=[],N=Q,r.charCodeAt(Q)===92?(U=es,Q++):(U=t,I===0&&Qe(gt)),U!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Qe(Eo)),ce!==t?(Me=N,U=an(ce),N=U):(Q=N,N=t)):(Q=N,N=t),N===t&&(N=Q,U=Q,I++,ce=b1(),I--,ce===t?U=void 0:(Q=U,U=t),U!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Qe(Eo)),ce!==t?(Me=N,U=an(ce),N=U):(Q=N,N=t)):(Q=N,N=t)),N!==t)for(;N!==t;)b.push(N),N=Q,r.charCodeAt(Q)===92?(U=es,Q++):(U=t,I===0&&Qe(gt)),U!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Qe(Eo)),ce!==t?(Me=N,U=an(ce),N=U):(Q=N,N=t)):(Q=N,N=t),N===t&&(N=Q,U=Q,I++,ce=b1(),I--,ce===t?U=void 0:(Q=U,U=t),U!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Qe(Eo)),ce!==t?(Me=N,U=an(ce),N=U):(Q=N,N=t)):(Q=N,N=t));else b=t;return b!==t&&(Me=m,b=Dn(b)),m=b,m}function Yb(){var m,b,N,U,ce,Se;if(m=Q,r.charCodeAt(Q)===45?(b=fA,Q++):(b=t,I===0&&Qe(Pl)),b===t&&(r.charCodeAt(Q)===43?(b=Ms,Q++):(b=t,I===0&&Qe(Dl))),b===t&&(b=null),b!==t){if(N=[],qe.test(r.charAt(Q))?(U=r.charAt(Q),Q++):(U=t,I===0&&Qe(ne)),U!==t)for(;U!==t;)N.push(U),qe.test(r.charAt(Q))?(U=r.charAt(Q),Q++):(U=t,I===0&&Qe(ne));else N=t;if(N!==t)if(r.charCodeAt(Q)===46?(U=vE,Q++):(U=t,I===0&&Qe(yp)),U!==t){if(ce=[],qe.test(r.charAt(Q))?(Se=r.charAt(Q),Q++):(Se=t,I===0&&Qe(ne)),Se!==t)for(;Se!==t;)ce.push(Se),qe.test(r.charAt(Q))?(Se=r.charAt(Q),Q++):(Se=t,I===0&&Qe(ne));else ce=t;ce!==t?(Me=m,b=lg(b,N,ce),m=b):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;if(m===t){if(m=Q,r.charCodeAt(Q)===45?(b=fA,Q++):(b=t,I===0&&Qe(Pl)),b===t&&(r.charCodeAt(Q)===43?(b=Ms,Q++):(b=t,I===0&&Qe(Dl))),b===t&&(b=null),b!==t){if(N=[],qe.test(r.charAt(Q))?(U=r.charAt(Q),Q++):(U=t,I===0&&Qe(ne)),U!==t)for(;U!==t;)N.push(U),qe.test(r.charAt(Q))?(U=r.charAt(Q),Q++):(U=t,I===0&&Qe(ne));else N=t;N!==t?(Me=m,b=wp(b,N),m=b):(Q=m,m=t)}else Q=m,m=t;if(m===t&&(m=Q,b=qb(),b!==t&&(Me=m,b=xE(b)),m=b,m===t&&(m=Q,b=Rl(),b!==t&&(Me=m,b=kl(b)),m=b,m===t)))if(m=Q,r.charCodeAt(Q)===40?(b=ge,Q++):(b=t,I===0&&Qe(re)),b!==t){for(N=[],U=He();U!==t;)N.push(U),U=He();if(N!==t)if(U=y1(),U!==t){for(ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();ce!==t?(r.charCodeAt(Q)===41?(Se=O,Q++):(Se=t,I===0&&Qe(F)),Se!==t?(Me=m,b=PE(U),m=b):(Q=m,m=t)):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t}return m}function jb(){var m,b,N,U,ce,Se,ht,Bt;if(m=Q,b=Yb(),b!==t){for(N=[],U=Q,ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();if(ce!==t)if(r.charCodeAt(Q)===42?(Se=cg,Q++):(Se=t,I===0&&Qe(hA)),Se===t&&(r.charCodeAt(Q)===47?(Se=Rr,Q++):(Se=t,I===0&&Qe(DE))),Se!==t){for(ht=[],Bt=He();Bt!==t;)ht.push(Bt),Bt=He();ht!==t?(Bt=Yb(),Bt!==t?(Me=U,ce=Ks(b,Se,Bt),U=ce):(Q=U,U=t)):(Q=U,U=t)}else Q=U,U=t;else Q=U,U=t;for(;U!==t;){for(N.push(U),U=Q,ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();if(ce!==t)if(r.charCodeAt(Q)===42?(Se=cg,Q++):(Se=t,I===0&&Qe(hA)),Se===t&&(r.charCodeAt(Q)===47?(Se=Rr,Q++):(Se=t,I===0&&Qe(DE))),Se!==t){for(ht=[],Bt=He();Bt!==t;)ht.push(Bt),Bt=He();ht!==t?(Bt=Yb(),Bt!==t?(Me=U,ce=Ks(b,Se,Bt),U=ce):(Q=U,U=t)):(Q=U,U=t)}else Q=U,U=t;else Q=U,U=t}N!==t?(Me=m,b=Us(b,N),m=b):(Q=m,m=t)}else Q=m,m=t;return m}function y1(){var m,b,N,U,ce,Se,ht,Bt;if(m=Q,b=jb(),b!==t){for(N=[],U=Q,ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();if(ce!==t)if(r.charCodeAt(Q)===43?(Se=Ms,Q++):(Se=t,I===0&&Qe(Dl)),Se===t&&(r.charCodeAt(Q)===45?(Se=fA,Q++):(Se=t,I===0&&Qe(Pl))),Se!==t){for(ht=[],Bt=He();Bt!==t;)ht.push(Bt),Bt=He();ht!==t?(Bt=jb(),Bt!==t?(Me=U,ce=ug(b,Se,Bt),U=ce):(Q=U,U=t)):(Q=U,U=t)}else Q=U,U=t;else Q=U,U=t;for(;U!==t;){for(N.push(U),U=Q,ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();if(ce!==t)if(r.charCodeAt(Q)===43?(Se=Ms,Q++):(Se=t,I===0&&Qe(Dl)),Se===t&&(r.charCodeAt(Q)===45?(Se=fA,Q++):(Se=t,I===0&&Qe(Pl))),Se!==t){for(ht=[],Bt=He();Bt!==t;)ht.push(Bt),Bt=He();ht!==t?(Bt=jb(),Bt!==t?(Me=U,ce=ug(b,Se,Bt),U=ce):(Q=U,U=t)):(Q=U,U=t)}else Q=U,U=t;else Q=U,U=t}N!==t?(Me=m,b=Us(b,N),m=b):(Q=m,m=t)}else Q=m,m=t;return m}function w1(){var m,b,N,U,ce,Se;if(m=Q,r.substr(Q,3)===pA?(b=pA,Q+=3):(b=t,I===0&&Qe(R)),b!==t){for(N=[],U=He();U!==t;)N.push(U),U=He();if(N!==t)if(U=y1(),U!==t){for(ce=[],Se=He();Se!==t;)ce.push(Se),Se=He();ce!==t?(r.substr(Q,2)===q?(Se=q,Q+=2):(Se=t,I===0&&Qe(Ce)),Se!==t?(Me=m,b=Ke(U),m=b):(Q=m,m=t)):(Q=m,m=t)}else Q=m,m=t;else Q=m,m=t}else Q=m,m=t;return m}function B1(){var m,b,N,U;return m=Q,r.substr(Q,2)===Re?(b=Re,Q+=2):(b=t,I===0&&Qe(ze)),b!==t?(N=Mr(),N!==t?(r.charCodeAt(Q)===41?(U=O,Q++):(U=t,I===0&&Qe(F)),U!==t?(Me=m,b=dt(N),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m}function qb(){var m,b,N,U,ce,Se;return m=Q,r.substr(Q,2)===Ft?(b=Ft,Q+=2):(b=t,I===0&&Qe(Fn)),b!==t?(N=Rl(),N!==t?(r.substr(Q,2)===Db?(U=Db,Q+=2):(U=t,I===0&&Qe($M)),U!==t?(ce=f1(),ce!==t?(r.charCodeAt(Q)===125?(Se=Fe,Q++):(Se=t,I===0&&Qe(Ne)),Se!==t?(Me=m,b=e1(N,ce),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===Ft?(b=Ft,Q+=2):(b=t,I===0&&Qe(Fn)),b!==t?(N=Rl(),N!==t?(r.substr(Q,3)===kb?(U=kb,Q+=3):(U=t,I===0&&Qe(t1)),U!==t?(Me=m,b=r1(N),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===Ft?(b=Ft,Q+=2):(b=t,I===0&&Qe(Fn)),b!==t?(N=Rl(),N!==t?(r.substr(Q,2)===Rb?(U=Rb,Q+=2):(U=t,I===0&&Qe(i1)),U!==t?(ce=f1(),ce!==t?(r.charCodeAt(Q)===125?(Se=Fe,Q++):(Se=t,I===0&&Qe(Ne)),Se!==t?(Me=m,b=n1(N,ce),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===Ft?(b=Ft,Q+=2):(b=t,I===0&&Qe(Fn)),b!==t?(N=Rl(),N!==t?(r.substr(Q,3)===Fb?(U=Fb,Q+=3):(U=t,I===0&&Qe(s1)),U!==t?(Me=m,b=o1(N),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.substr(Q,2)===Ft?(b=Ft,Q+=2):(b=t,I===0&&Qe(Fn)),b!==t?(N=Rl(),N!==t?(r.charCodeAt(Q)===125?(U=Fe,Q++):(U=t,I===0&&Qe(Ne)),U!==t?(Me=m,b=Nb(N),m=b):(Q=m,m=t)):(Q=m,m=t)):(Q=m,m=t),m===t&&(m=Q,r.charCodeAt(Q)===36?(b=a1,Q++):(b=t,I===0&&Qe(A1)),b!==t?(N=Rl(),N!==t?(Me=m,b=Nb(N),m=b):(Q=m,m=t)):(Q=m,m=t)))))),m}function Tue(){var m,b,N;return m=Q,b=Oue(),b!==t?(Me=Q,N=l1(b),N?N=void 0:N=t,N!==t?(Me=m,b=c1(b),m=b):(Q=m,m=t)):(Q=m,m=t),m}function Oue(){var m,b,N,U,ce;if(m=Q,b=[],N=Q,U=Q,I++,ce=S1(),I--,ce===t?U=void 0:(Q=U,U=t),U!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Qe(Eo)),ce!==t?(Me=N,U=an(ce),N=U):(Q=N,N=t)):(Q=N,N=t),N!==t)for(;N!==t;)b.push(N),N=Q,U=Q,I++,ce=S1(),I--,ce===t?U=void 0:(Q=U,U=t),U!==t?(r.length>Q?(ce=r.charAt(Q),Q++):(ce=t,I===0&&Qe(Eo)),ce!==t?(Me=N,U=an(ce),N=U):(Q=N,N=t)):(Q=N,N=t);else b=t;return b!==t&&(Me=m,b=Dn(b)),m=b,m}function Q1(){var m,b,N;if(m=Q,b=[],Lb.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(Tb)),N!==t)for(;N!==t;)b.push(N),Lb.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(Tb));else b=t;return b!==t&&(Me=m,b=Ob()),m=b,m}function Rl(){var m,b,N;if(m=Q,b=[],Mb.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(Kb)),N!==t)for(;N!==t;)b.push(N),Mb.test(r.charAt(Q))?(N=r.charAt(Q),Q++):(N=t,I===0&&Qe(Kb));else b=t;return b!==t&&(Me=m,b=Ob()),m=b,m}function b1(){var m;return u1.test(r.charAt(Q))?(m=r.charAt(Q),Q++):(m=t,I===0&&Qe(gg)),m}function S1(){var m;return Ub.test(r.charAt(Q))?(m=r.charAt(Q),Q++):(m=t,I===0&&Qe(Hb)),m}function He(){var m,b;if(m=[],kE.test(r.charAt(Q))?(b=r.charAt(Q),Q++):(b=t,I===0&&Qe(RE)),b!==t)for(;b!==t;)m.push(b),kE.test(r.charAt(Q))?(b=r.charAt(Q),Q++):(b=t,I===0&&Qe(RE));else m=t;return m}if(k=n(),k!==t&&Q===r.length)return k;throw k!==t&&Q{"use strict";function Mge(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function Ul(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,Ul)}Mge(Ul,Error);Ul.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;gH&&(H=v,j=[]),j.push(ne))}function Ne(ne,Y){return new Ul(ne,null,null,Y)}function oe(ne,Y,pe){return new Ul(Ul.buildMessage(ne,Y),ne,Y,pe)}function le(){var ne,Y,pe,ie;return ne=v,Y=we(),Y!==t?(r.charCodeAt(v)===47?(pe=s,v++):(pe=t,$===0&&Fe(o)),pe!==t?(ie=we(),ie!==t?(D=ne,Y=a(Y,ie),ne=Y):(v=ne,ne=t)):(v=ne,ne=t)):(v=ne,ne=t),ne===t&&(ne=v,Y=we(),Y!==t&&(D=ne,Y=l(Y)),ne=Y),ne}function we(){var ne,Y,pe,ie;return ne=v,Y=fe(),Y!==t?(r.charCodeAt(v)===64?(pe=c,v++):(pe=t,$===0&&Fe(u)),pe!==t?(ie=qe(),ie!==t?(D=ne,Y=g(Y,ie),ne=Y):(v=ne,ne=t)):(v=ne,ne=t)):(v=ne,ne=t),ne===t&&(ne=v,Y=fe(),Y!==t&&(D=ne,Y=f(Y)),ne=Y),ne}function fe(){var ne,Y,pe,ie,de;return ne=v,r.charCodeAt(v)===64?(Y=c,v++):(Y=t,$===0&&Fe(u)),Y!==t?(pe=Ae(),pe!==t?(r.charCodeAt(v)===47?(ie=s,v++):(ie=t,$===0&&Fe(o)),ie!==t?(de=Ae(),de!==t?(D=ne,Y=h(),ne=Y):(v=ne,ne=t)):(v=ne,ne=t)):(v=ne,ne=t)):(v=ne,ne=t),ne===t&&(ne=v,Y=Ae(),Y!==t&&(D=ne,Y=h()),ne=Y),ne}function Ae(){var ne,Y,pe;if(ne=v,Y=[],p.test(r.charAt(v))?(pe=r.charAt(v),v++):(pe=t,$===0&&Fe(C)),pe!==t)for(;pe!==t;)Y.push(pe),p.test(r.charAt(v))?(pe=r.charAt(v),v++):(pe=t,$===0&&Fe(C));else Y=t;return Y!==t&&(D=ne,Y=h()),ne=Y,ne}function qe(){var ne,Y,pe;if(ne=v,Y=[],y.test(r.charAt(v))?(pe=r.charAt(v),v++):(pe=t,$===0&&Fe(B)),pe!==t)for(;pe!==t;)Y.push(pe),y.test(r.charAt(v))?(pe=r.charAt(v),v++):(pe=t,$===0&&Fe(B));else Y=t;return Y!==t&&(D=ne,Y=h()),ne=Y,ne}if(V=n(),V!==t&&v===r.length)return V;throw V!==t&&v{"use strict";function UK(r){return typeof r>"u"||r===null}function Uge(r){return typeof r=="object"&&r!==null}function Hge(r){return Array.isArray(r)?r:UK(r)?[]:[r]}function Gge(r,e){var t,i,n,s;if(e)for(s=Object.keys(e),t=0,i=s.length;t{"use strict";function Op(r,e){Error.call(this),this.name="YAMLException",this.reason=r,this.mark=e,this.message=(this.reason||"(unknown reason)")+(this.mark?" "+this.mark.toString():""),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack||""}Op.prototype=Object.create(Error.prototype);Op.prototype.constructor=Op;Op.prototype.toString=function(e){var t=this.name+": ";return t+=this.reason||"(unknown reason)",!e&&this.mark&&(t+=" "+this.mark.toString()),t};HK.exports=Op});var jK=w((pXe,YK)=>{"use strict";var GK=Gl();function SS(r,e,t,i,n){this.name=r,this.buffer=e,this.position=t,this.line=i,this.column=n}SS.prototype.getSnippet=function(e,t){var i,n,s,o,a;if(!this.buffer)return null;for(e=e||4,t=t||75,i="",n=this.position;n>0&&`\0\r +\x85\u2028\u2029`.indexOf(this.buffer.charAt(n-1))===-1;)if(n-=1,this.position-n>t/2-1){i=" ... ",n+=5;break}for(s="",o=this.position;ot/2-1){s=" ... ",o-=5;break}return a=this.buffer.slice(n,o),GK.repeat(" ",e)+i+a+s+` +`+GK.repeat(" ",e+this.position-n+i.length)+"^"};SS.prototype.toString=function(e){var t,i="";return this.name&&(i+='in "'+this.name+'" '),i+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet(),t&&(i+=`: +`+t)),i};YK.exports=SS});var si=w((dXe,JK)=>{"use strict";var qK=Qg(),qge=["kind","resolve","construct","instanceOf","predicate","represent","defaultStyle","styleAliases"],Jge=["scalar","sequence","mapping"];function Wge(r){var e={};return r!==null&&Object.keys(r).forEach(function(t){r[t].forEach(function(i){e[String(i)]=t})}),e}function zge(r,e){if(e=e||{},Object.keys(e).forEach(function(t){if(qge.indexOf(t)===-1)throw new qK('Unknown option "'+t+'" is met in definition of "'+r+'" YAML type.')}),this.tag=r,this.kind=e.kind||null,this.resolve=e.resolve||function(){return!0},this.construct=e.construct||function(t){return t},this.instanceOf=e.instanceOf||null,this.predicate=e.predicate||null,this.represent=e.represent||null,this.defaultStyle=e.defaultStyle||null,this.styleAliases=Wge(e.styleAliases||null),Jge.indexOf(this.kind)===-1)throw new qK('Unknown kind "'+this.kind+'" is specified for "'+r+'" YAML type.')}JK.exports=zge});var Yl=w((CXe,zK)=>{"use strict";var WK=Gl(),nI=Qg(),Vge=si();function vS(r,e,t){var i=[];return r.include.forEach(function(n){t=vS(n,e,t)}),r[e].forEach(function(n){t.forEach(function(s,o){s.tag===n.tag&&s.kind===n.kind&&i.push(o)}),t.push(n)}),t.filter(function(n,s){return i.indexOf(s)===-1})}function Xge(){var r={scalar:{},sequence:{},mapping:{},fallback:{}},e,t;function i(n){r[n.kind][n.tag]=r.fallback[n.tag]=n}for(e=0,t=arguments.length;e{"use strict";var _ge=si();VK.exports=new _ge("tag:yaml.org,2002:str",{kind:"scalar",construct:function(r){return r!==null?r:""}})});var ZK=w((EXe,_K)=>{"use strict";var Zge=si();_K.exports=new Zge("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(r){return r!==null?r:[]}})});var eU=w((IXe,$K)=>{"use strict";var $ge=si();$K.exports=new $ge("tag:yaml.org,2002:map",{kind:"mapping",construct:function(r){return r!==null?r:{}}})});var sI=w((yXe,tU)=>{"use strict";var efe=Yl();tU.exports=new efe({explicit:[XK(),ZK(),eU()]})});var iU=w((wXe,rU)=>{"use strict";var tfe=si();function rfe(r){if(r===null)return!0;var e=r.length;return e===1&&r==="~"||e===4&&(r==="null"||r==="Null"||r==="NULL")}function ife(){return null}function nfe(r){return r===null}rU.exports=new tfe("tag:yaml.org,2002:null",{kind:"scalar",resolve:rfe,construct:ife,predicate:nfe,represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})});var sU=w((BXe,nU)=>{"use strict";var sfe=si();function ofe(r){if(r===null)return!1;var e=r.length;return e===4&&(r==="true"||r==="True"||r==="TRUE")||e===5&&(r==="false"||r==="False"||r==="FALSE")}function afe(r){return r==="true"||r==="True"||r==="TRUE"}function Afe(r){return Object.prototype.toString.call(r)==="[object Boolean]"}nU.exports=new sfe("tag:yaml.org,2002:bool",{kind:"scalar",resolve:ofe,construct:afe,predicate:Afe,represent:{lowercase:function(r){return r?"true":"false"},uppercase:function(r){return r?"TRUE":"FALSE"},camelcase:function(r){return r?"True":"False"}},defaultStyle:"lowercase"})});var aU=w((QXe,oU)=>{"use strict";var lfe=Gl(),cfe=si();function ufe(r){return 48<=r&&r<=57||65<=r&&r<=70||97<=r&&r<=102}function gfe(r){return 48<=r&&r<=55}function ffe(r){return 48<=r&&r<=57}function hfe(r){if(r===null)return!1;var e=r.length,t=0,i=!1,n;if(!e)return!1;if(n=r[t],(n==="-"||n==="+")&&(n=r[++t]),n==="0"){if(t+1===e)return!0;if(n=r[++t],n==="b"){for(t++;t=0?"0b"+r.toString(2):"-0b"+r.toString(2).slice(1)},octal:function(r){return r>=0?"0"+r.toString(8):"-0"+r.toString(8).slice(1)},decimal:function(r){return r.toString(10)},hexadecimal:function(r){return r>=0?"0x"+r.toString(16).toUpperCase():"-0x"+r.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})});var cU=w((bXe,lU)=>{"use strict";var AU=Gl(),Cfe=si(),mfe=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");function Efe(r){return!(r===null||!mfe.test(r)||r[r.length-1]==="_")}function Ife(r){var e,t,i,n;return e=r.replace(/_/g,"").toLowerCase(),t=e[0]==="-"?-1:1,n=[],"+-".indexOf(e[0])>=0&&(e=e.slice(1)),e===".inf"?t===1?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:e===".nan"?NaN:e.indexOf(":")>=0?(e.split(":").forEach(function(s){n.unshift(parseFloat(s,10))}),e=0,i=1,n.forEach(function(s){e+=s*i,i*=60}),t*e):t*parseFloat(e,10)}var yfe=/^[-+]?[0-9]+e/;function wfe(r,e){var t;if(isNaN(r))switch(e){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===r)switch(e){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===r)switch(e){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(AU.isNegativeZero(r))return"-0.0";return t=r.toString(10),yfe.test(t)?t.replace("e",".e"):t}function Bfe(r){return Object.prototype.toString.call(r)==="[object Number]"&&(r%1!==0||AU.isNegativeZero(r))}lU.exports=new Cfe("tag:yaml.org,2002:float",{kind:"scalar",resolve:Efe,construct:Ife,predicate:Bfe,represent:wfe,defaultStyle:"lowercase"})});var xS=w((SXe,uU)=>{"use strict";var Qfe=Yl();uU.exports=new Qfe({include:[sI()],implicit:[iU(),sU(),aU(),cU()]})});var PS=w((vXe,gU)=>{"use strict";var bfe=Yl();gU.exports=new bfe({include:[xS()]})});var dU=w((xXe,pU)=>{"use strict";var Sfe=si(),fU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),hU=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");function vfe(r){return r===null?!1:fU.exec(r)!==null||hU.exec(r)!==null}function xfe(r){var e,t,i,n,s,o,a,l=0,c=null,u,g,f;if(e=fU.exec(r),e===null&&(e=hU.exec(r)),e===null)throw new Error("Date resolve error");if(t=+e[1],i=+e[2]-1,n=+e[3],!e[4])return new Date(Date.UTC(t,i,n));if(s=+e[4],o=+e[5],a=+e[6],e[7]){for(l=e[7].slice(0,3);l.length<3;)l+="0";l=+l}return e[9]&&(u=+e[10],g=+(e[11]||0),c=(u*60+g)*6e4,e[9]==="-"&&(c=-c)),f=new Date(Date.UTC(t,i,n,s,o,a,l)),c&&f.setTime(f.getTime()-c),f}function Pfe(r){return r.toISOString()}pU.exports=new Sfe("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:vfe,construct:xfe,instanceOf:Date,represent:Pfe})});var mU=w((PXe,CU)=>{"use strict";var Dfe=si();function kfe(r){return r==="<<"||r===null}CU.exports=new Dfe("tag:yaml.org,2002:merge",{kind:"scalar",resolve:kfe})});var yU=w((DXe,IU)=>{"use strict";var jl;try{EU=J,jl=EU("buffer").Buffer}catch{}var EU,Rfe=si(),DS=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/= +\r`;function Ffe(r){if(r===null)return!1;var e,t,i=0,n=r.length,s=DS;for(t=0;t64)){if(e<0)return!1;i+=6}return i%8===0}function Nfe(r){var e,t,i=r.replace(/[\r\n=]/g,""),n=i.length,s=DS,o=0,a=[];for(e=0;e>16&255),a.push(o>>8&255),a.push(o&255)),o=o<<6|s.indexOf(i.charAt(e));return t=n%4*6,t===0?(a.push(o>>16&255),a.push(o>>8&255),a.push(o&255)):t===18?(a.push(o>>10&255),a.push(o>>2&255)):t===12&&a.push(o>>4&255),jl?jl.from?jl.from(a):new jl(a):a}function Lfe(r){var e="",t=0,i,n,s=r.length,o=DS;for(i=0;i>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]),t=(t<<8)+r[i];return n=s%3,n===0?(e+=o[t>>18&63],e+=o[t>>12&63],e+=o[t>>6&63],e+=o[t&63]):n===2?(e+=o[t>>10&63],e+=o[t>>4&63],e+=o[t<<2&63],e+=o[64]):n===1&&(e+=o[t>>2&63],e+=o[t<<4&63],e+=o[64],e+=o[64]),e}function Tfe(r){return jl&&jl.isBuffer(r)}IU.exports=new Rfe("tag:yaml.org,2002:binary",{kind:"scalar",resolve:Ffe,construct:Nfe,predicate:Tfe,represent:Lfe})});var BU=w((kXe,wU)=>{"use strict";var Ofe=si(),Mfe=Object.prototype.hasOwnProperty,Kfe=Object.prototype.toString;function Ufe(r){if(r===null)return!0;var e=[],t,i,n,s,o,a=r;for(t=0,i=a.length;t{"use strict";var Gfe=si(),Yfe=Object.prototype.toString;function jfe(r){if(r===null)return!0;var e,t,i,n,s,o=r;for(s=new Array(o.length),e=0,t=o.length;e{"use strict";var Jfe=si(),Wfe=Object.prototype.hasOwnProperty;function zfe(r){if(r===null)return!0;var e,t=r;for(e in t)if(Wfe.call(t,e)&&t[e]!==null)return!1;return!0}function Vfe(r){return r!==null?r:{}}SU.exports=new Jfe("tag:yaml.org,2002:set",{kind:"mapping",resolve:zfe,construct:Vfe})});var Sg=w((NXe,xU)=>{"use strict";var Xfe=Yl();xU.exports=new Xfe({include:[PS()],implicit:[dU(),mU()],explicit:[yU(),BU(),bU(),vU()]})});var DU=w((LXe,PU)=>{"use strict";var _fe=si();function Zfe(){return!0}function $fe(){}function ehe(){return""}function the(r){return typeof r>"u"}PU.exports=new _fe("tag:yaml.org,2002:js/undefined",{kind:"scalar",resolve:Zfe,construct:$fe,predicate:the,represent:ehe})});var RU=w((TXe,kU)=>{"use strict";var rhe=si();function ihe(r){if(r===null||r.length===0)return!1;var e=r,t=/\/([gim]*)$/.exec(r),i="";return!(e[0]==="/"&&(t&&(i=t[1]),i.length>3||e[e.length-i.length-1]!=="/"))}function nhe(r){var e=r,t=/\/([gim]*)$/.exec(r),i="";return e[0]==="/"&&(t&&(i=t[1]),e=e.slice(1,e.length-i.length-1)),new RegExp(e,i)}function she(r){var e="/"+r.source+"/";return r.global&&(e+="g"),r.multiline&&(e+="m"),r.ignoreCase&&(e+="i"),e}function ohe(r){return Object.prototype.toString.call(r)==="[object RegExp]"}kU.exports=new rhe("tag:yaml.org,2002:js/regexp",{kind:"scalar",resolve:ihe,construct:nhe,predicate:ohe,represent:she})});var LU=w((OXe,NU)=>{"use strict";var oI;try{FU=J,oI=FU("esprima")}catch{typeof window<"u"&&(oI=window.esprima)}var FU,ahe=si();function Ahe(r){if(r===null)return!1;try{var e="("+r+")",t=oI.parse(e,{range:!0});return!(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")}catch{return!1}}function lhe(r){var e="("+r+")",t=oI.parse(e,{range:!0}),i=[],n;if(t.type!=="Program"||t.body.length!==1||t.body[0].type!=="ExpressionStatement"||t.body[0].expression.type!=="ArrowFunctionExpression"&&t.body[0].expression.type!=="FunctionExpression")throw new Error("Failed to resolve function");return t.body[0].expression.params.forEach(function(s){i.push(s.name)}),n=t.body[0].expression.body.range,t.body[0].expression.body.type==="BlockStatement"?new Function(i,e.slice(n[0]+1,n[1]-1)):new Function(i,"return "+e.slice(n[0],n[1]))}function che(r){return r.toString()}function uhe(r){return Object.prototype.toString.call(r)==="[object Function]"}NU.exports=new ahe("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:Ahe,construct:lhe,predicate:uhe,represent:che})});var Mp=w((MXe,OU)=>{"use strict";var TU=Yl();OU.exports=TU.DEFAULT=new TU({include:[Sg()],explicit:[DU(),RU(),LU()]})});var r2=w((KXe,Kp)=>{"use strict";var da=Gl(),jU=Qg(),ghe=jK(),qU=Sg(),fhe=Mp(),wA=Object.prototype.hasOwnProperty,aI=1,JU=2,WU=3,AI=4,kS=1,hhe=2,MU=3,phe=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,dhe=/[\x85\u2028\u2029]/,Che=/[,\[\]\{\}]/,zU=/^(?:!|!!|![a-z\-]+!)$/i,VU=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function KU(r){return Object.prototype.toString.call(r)}function Bo(r){return r===10||r===13}function Jl(r){return r===9||r===32}function un(r){return r===9||r===32||r===10||r===13}function vg(r){return r===44||r===91||r===93||r===123||r===125}function mhe(r){var e;return 48<=r&&r<=57?r-48:(e=r|32,97<=e&&e<=102?e-97+10:-1)}function Ehe(r){return r===120?2:r===117?4:r===85?8:0}function Ihe(r){return 48<=r&&r<=57?r-48:-1}function UU(r){return r===48?"\0":r===97?"\x07":r===98?"\b":r===116||r===9?" ":r===110?` +`:r===118?"\v":r===102?"\f":r===114?"\r":r===101?"\x1B":r===32?" ":r===34?'"':r===47?"/":r===92?"\\":r===78?"\x85":r===95?"\xA0":r===76?"\u2028":r===80?"\u2029":""}function yhe(r){return r<=65535?String.fromCharCode(r):String.fromCharCode((r-65536>>10)+55296,(r-65536&1023)+56320)}var XU=new Array(256),_U=new Array(256);for(ql=0;ql<256;ql++)XU[ql]=UU(ql)?1:0,_U[ql]=UU(ql);var ql;function whe(r,e){this.input=r,this.filename=e.filename||null,this.schema=e.schema||fhe,this.onWarning=e.onWarning||null,this.legacy=e.legacy||!1,this.json=e.json||!1,this.listener=e.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=r.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function ZU(r,e){return new jU(e,new ghe(r.filename,r.input,r.position,r.line,r.position-r.lineStart))}function ft(r,e){throw ZU(r,e)}function lI(r,e){r.onWarning&&r.onWarning.call(null,ZU(r,e))}var HU={YAML:function(e,t,i){var n,s,o;e.version!==null&&ft(e,"duplication of %YAML directive"),i.length!==1&&ft(e,"YAML directive accepts exactly one argument"),n=/^([0-9]+)\.([0-9]+)$/.exec(i[0]),n===null&&ft(e,"ill-formed argument of the YAML directive"),s=parseInt(n[1],10),o=parseInt(n[2],10),s!==1&&ft(e,"unacceptable YAML version of the document"),e.version=i[0],e.checkLineBreaks=o<2,o!==1&&o!==2&&lI(e,"unsupported YAML version of the document")},TAG:function(e,t,i){var n,s;i.length!==2&&ft(e,"TAG directive accepts exactly two arguments"),n=i[0],s=i[1],zU.test(n)||ft(e,"ill-formed tag handle (first argument) of the TAG directive"),wA.call(e.tagMap,n)&&ft(e,'there is a previously declared suffix for "'+n+'" tag handle'),VU.test(s)||ft(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[n]=s}};function yA(r,e,t,i){var n,s,o,a;if(e1&&(r.result+=da.repeat(` +`,e-1))}function Bhe(r,e,t){var i,n,s,o,a,l,c,u,g=r.kind,f=r.result,h;if(h=r.input.charCodeAt(r.position),un(h)||vg(h)||h===35||h===38||h===42||h===33||h===124||h===62||h===39||h===34||h===37||h===64||h===96||(h===63||h===45)&&(n=r.input.charCodeAt(r.position+1),un(n)||t&&vg(n)))return!1;for(r.kind="scalar",r.result="",s=o=r.position,a=!1;h!==0;){if(h===58){if(n=r.input.charCodeAt(r.position+1),un(n)||t&&vg(n))break}else if(h===35){if(i=r.input.charCodeAt(r.position-1),un(i))break}else{if(r.position===r.lineStart&&cI(r)||t&&vg(h))break;if(Bo(h))if(l=r.line,c=r.lineStart,u=r.lineIndent,zr(r,!1,-1),r.lineIndent>=e){a=!0,h=r.input.charCodeAt(r.position);continue}else{r.position=o,r.line=l,r.lineStart=c,r.lineIndent=u;break}}a&&(yA(r,s,o,!1),FS(r,r.line-l),s=o=r.position,a=!1),Jl(h)||(o=r.position+1),h=r.input.charCodeAt(++r.position)}return yA(r,s,o,!1),r.result?!0:(r.kind=g,r.result=f,!1)}function Qhe(r,e){var t,i,n;if(t=r.input.charCodeAt(r.position),t!==39)return!1;for(r.kind="scalar",r.result="",r.position++,i=n=r.position;(t=r.input.charCodeAt(r.position))!==0;)if(t===39)if(yA(r,i,r.position,!0),t=r.input.charCodeAt(++r.position),t===39)i=r.position,r.position++,n=r.position;else return!0;else Bo(t)?(yA(r,i,n,!0),FS(r,zr(r,!1,e)),i=n=r.position):r.position===r.lineStart&&cI(r)?ft(r,"unexpected end of the document within a single quoted scalar"):(r.position++,n=r.position);ft(r,"unexpected end of the stream within a single quoted scalar")}function bhe(r,e){var t,i,n,s,o,a;if(a=r.input.charCodeAt(r.position),a!==34)return!1;for(r.kind="scalar",r.result="",r.position++,t=i=r.position;(a=r.input.charCodeAt(r.position))!==0;){if(a===34)return yA(r,t,r.position,!0),r.position++,!0;if(a===92){if(yA(r,t,r.position,!0),a=r.input.charCodeAt(++r.position),Bo(a))zr(r,!1,e);else if(a<256&&XU[a])r.result+=_U[a],r.position++;else if((o=Ehe(a))>0){for(n=o,s=0;n>0;n--)a=r.input.charCodeAt(++r.position),(o=mhe(a))>=0?s=(s<<4)+o:ft(r,"expected hexadecimal character");r.result+=yhe(s),r.position++}else ft(r,"unknown escape sequence");t=i=r.position}else Bo(a)?(yA(r,t,i,!0),FS(r,zr(r,!1,e)),t=i=r.position):r.position===r.lineStart&&cI(r)?ft(r,"unexpected end of the document within a double quoted scalar"):(r.position++,i=r.position)}ft(r,"unexpected end of the stream within a double quoted scalar")}function She(r,e){var t=!0,i,n=r.tag,s,o=r.anchor,a,l,c,u,g,f={},h,p,C,y;if(y=r.input.charCodeAt(r.position),y===91)l=93,g=!1,s=[];else if(y===123)l=125,g=!0,s={};else return!1;for(r.anchor!==null&&(r.anchorMap[r.anchor]=s),y=r.input.charCodeAt(++r.position);y!==0;){if(zr(r,!0,e),y=r.input.charCodeAt(r.position),y===l)return r.position++,r.tag=n,r.anchor=o,r.kind=g?"mapping":"sequence",r.result=s,!0;t||ft(r,"missed comma between flow collection entries"),p=h=C=null,c=u=!1,y===63&&(a=r.input.charCodeAt(r.position+1),un(a)&&(c=u=!0,r.position++,zr(r,!0,e))),i=r.line,Pg(r,e,aI,!1,!0),p=r.tag,h=r.result,zr(r,!0,e),y=r.input.charCodeAt(r.position),(u||r.line===i)&&y===58&&(c=!0,y=r.input.charCodeAt(++r.position),zr(r,!0,e),Pg(r,e,aI,!1,!0),C=r.result),g?xg(r,s,f,p,h,C):c?s.push(xg(r,null,f,p,h,C)):s.push(h),zr(r,!0,e),y=r.input.charCodeAt(r.position),y===44?(t=!0,y=r.input.charCodeAt(++r.position)):t=!1}ft(r,"unexpected end of the stream within a flow collection")}function vhe(r,e){var t,i,n=kS,s=!1,o=!1,a=e,l=0,c=!1,u,g;if(g=r.input.charCodeAt(r.position),g===124)i=!1;else if(g===62)i=!0;else return!1;for(r.kind="scalar",r.result="";g!==0;)if(g=r.input.charCodeAt(++r.position),g===43||g===45)kS===n?n=g===43?MU:hhe:ft(r,"repeat of a chomping mode identifier");else if((u=Ihe(g))>=0)u===0?ft(r,"bad explicit indentation width of a block scalar; it cannot be less than one"):o?ft(r,"repeat of an indentation width identifier"):(a=e+u-1,o=!0);else break;if(Jl(g)){do g=r.input.charCodeAt(++r.position);while(Jl(g));if(g===35)do g=r.input.charCodeAt(++r.position);while(!Bo(g)&&g!==0)}for(;g!==0;){for(RS(r),r.lineIndent=0,g=r.input.charCodeAt(r.position);(!o||r.lineIndenta&&(a=r.lineIndent),Bo(g)){l++;continue}if(r.lineIndente)&&l!==0)ft(r,"bad indentation of a sequence entry");else if(r.lineIndente)&&(Pg(r,e,AI,!0,n)&&(p?f=r.result:h=r.result),p||(xg(r,c,u,g,f,h,s,o),g=f=h=null),zr(r,!0,-1),y=r.input.charCodeAt(r.position)),r.lineIndent>e&&y!==0)ft(r,"bad indentation of a mapping entry");else if(r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndente?l=1:r.lineIndent===e?l=0:r.lineIndent tag; it should be "scalar", not "'+r.kind+'"'),g=0,f=r.implicitTypes.length;g tag; it should be "'+h.kind+'", not "'+r.kind+'"'),h.resolve(r.result)?(r.result=h.construct(r.result),r.anchor!==null&&(r.anchorMap[r.anchor]=r.result)):ft(r,"cannot resolve a node with !<"+r.tag+"> explicit tag")):ft(r,"unknown tag !<"+r.tag+">");return r.listener!==null&&r.listener("close",r),r.tag!==null||r.anchor!==null||u}function Rhe(r){var e=r.position,t,i,n,s=!1,o;for(r.version=null,r.checkLineBreaks=r.legacy,r.tagMap={},r.anchorMap={};(o=r.input.charCodeAt(r.position))!==0&&(zr(r,!0,-1),o=r.input.charCodeAt(r.position),!(r.lineIndent>0||o!==37));){for(s=!0,o=r.input.charCodeAt(++r.position),t=r.position;o!==0&&!un(o);)o=r.input.charCodeAt(++r.position);for(i=r.input.slice(t,r.position),n=[],i.length<1&&ft(r,"directive name must not be less than one character in length");o!==0;){for(;Jl(o);)o=r.input.charCodeAt(++r.position);if(o===35){do o=r.input.charCodeAt(++r.position);while(o!==0&&!Bo(o));break}if(Bo(o))break;for(t=r.position;o!==0&&!un(o);)o=r.input.charCodeAt(++r.position);n.push(r.input.slice(t,r.position))}o!==0&&RS(r),wA.call(HU,i)?HU[i](r,i,n):lI(r,'unknown document directive "'+i+'"')}if(zr(r,!0,-1),r.lineIndent===0&&r.input.charCodeAt(r.position)===45&&r.input.charCodeAt(r.position+1)===45&&r.input.charCodeAt(r.position+2)===45?(r.position+=3,zr(r,!0,-1)):s&&ft(r,"directives end mark is expected"),Pg(r,r.lineIndent-1,AI,!1,!0),zr(r,!0,-1),r.checkLineBreaks&&dhe.test(r.input.slice(e,r.position))&&lI(r,"non-ASCII line breaks are interpreted as content"),r.documents.push(r.result),r.position===r.lineStart&&cI(r)){r.input.charCodeAt(r.position)===46&&(r.position+=3,zr(r,!0,-1));return}if(r.position"u"&&(t=e,e=null);var i=$U(r,t);if(typeof e!="function")return i;for(var n=0,s=i.length;n"u"&&(t=e,e=null),e2(r,e,da.extend({schema:qU},t))}function Nhe(r,e){return t2(r,da.extend({schema:qU},e))}Kp.exports.loadAll=e2;Kp.exports.load=t2;Kp.exports.safeLoadAll=Fhe;Kp.exports.safeLoad=Nhe});var b2=w((UXe,OS)=>{"use strict";var Hp=Gl(),Gp=Qg(),Lhe=Mp(),The=Sg(),c2=Object.prototype.toString,u2=Object.prototype.hasOwnProperty,Ohe=9,Up=10,Mhe=13,Khe=32,Uhe=33,Hhe=34,g2=35,Ghe=37,Yhe=38,jhe=39,qhe=42,f2=44,Jhe=45,h2=58,Whe=61,zhe=62,Vhe=63,Xhe=64,p2=91,d2=93,_he=96,C2=123,Zhe=124,m2=125,Fi={};Fi[0]="\\0";Fi[7]="\\a";Fi[8]="\\b";Fi[9]="\\t";Fi[10]="\\n";Fi[11]="\\v";Fi[12]="\\f";Fi[13]="\\r";Fi[27]="\\e";Fi[34]='\\"';Fi[92]="\\\\";Fi[133]="\\N";Fi[160]="\\_";Fi[8232]="\\L";Fi[8233]="\\P";var $he=["y","Y","yes","Yes","YES","on","On","ON","n","N","no","No","NO","off","Off","OFF"];function epe(r,e){var t,i,n,s,o,a,l;if(e===null)return{};for(t={},i=Object.keys(e),n=0,s=i.length;n0?r.charCodeAt(s-1):null,f=f&&s2(o,a)}else{for(s=0;si&&r[g+1]!==" ",g=s);else if(!Dg(o))return uI;a=s>0?r.charCodeAt(s-1):null,f=f&&s2(o,a)}c=c||u&&s-g-1>i&&r[g+1]!==" "}return!l&&!c?f&&!n(r)?I2:y2:t>9&&E2(r)?uI:c?B2:w2}function ope(r,e,t,i){r.dump=function(){if(e.length===0)return"''";if(!r.noCompatMode&&$he.indexOf(e)!==-1)return"'"+e+"'";var n=r.indent*Math.max(1,t),s=r.lineWidth===-1?-1:Math.max(Math.min(r.lineWidth,40),r.lineWidth-n),o=i||r.flowLevel>-1&&t>=r.flowLevel;function a(l){return rpe(r,l)}switch(spe(e,o,r.indent,s,a)){case I2:return e;case y2:return"'"+e.replace(/'/g,"''")+"'";case w2:return"|"+o2(e,r.indent)+a2(n2(e,n));case B2:return">"+o2(e,r.indent)+a2(n2(ape(e,s),n));case uI:return'"'+Ape(e,s)+'"';default:throw new Gp("impossible error: invalid scalar style")}}()}function o2(r,e){var t=E2(r)?String(e):"",i=r[r.length-1]===` +`,n=i&&(r[r.length-2]===` +`||r===` +`),s=n?"+":i?"":"-";return t+s+` +`}function a2(r){return r[r.length-1]===` +`?r.slice(0,-1):r}function ape(r,e){for(var t=/(\n+)([^\n]*)/g,i=function(){var c=r.indexOf(` +`);return c=c!==-1?c:r.length,t.lastIndex=c,A2(r.slice(0,c),e)}(),n=r[0]===` +`||r[0]===" ",s,o;o=t.exec(r);){var a=o[1],l=o[2];s=l[0]===" ",i+=a+(!n&&!s&&l!==""?` +`:"")+A2(l,e),n=s}return i}function A2(r,e){if(r===""||r[0]===" ")return r;for(var t=/ [^ ]/g,i,n=0,s,o=0,a=0,l="";i=t.exec(r);)a=i.index,a-n>e&&(s=o>n?o:a,l+=` +`+r.slice(n,s),n=s+1),o=a;return l+=` +`,r.length-n>e&&o>n?l+=r.slice(n,o)+` +`+r.slice(o+1):l+=r.slice(n),l.slice(1)}function Ape(r){for(var e="",t,i,n,s=0;s=55296&&t<=56319&&(i=r.charCodeAt(s+1),i>=56320&&i<=57343)){e+=i2((t-55296)*1024+i-56320+65536),s++;continue}n=Fi[t],e+=!n&&Dg(t)?r[s]:n||i2(t)}return e}function lpe(r,e,t){var i="",n=r.tag,s,o;for(s=0,o=t.length;s1024&&(u+="? "),u+=r.dump+(r.condenseFlow?'"':"")+":"+(r.condenseFlow?"":" "),Wl(r,e,c,!1,!1)&&(u+=r.dump,i+=u));r.tag=n,r.dump="{"+i+"}"}function gpe(r,e,t,i){var n="",s=r.tag,o=Object.keys(t),a,l,c,u,g,f;if(r.sortKeys===!0)o.sort();else if(typeof r.sortKeys=="function")o.sort(r.sortKeys);else if(r.sortKeys)throw new Gp("sortKeys must be a boolean or a function");for(a=0,l=o.length;a1024,g&&(r.dump&&Up===r.dump.charCodeAt(0)?f+="?":f+="? "),f+=r.dump,g&&(f+=NS(r,e)),Wl(r,e+1,u,!0,g)&&(r.dump&&Up===r.dump.charCodeAt(0)?f+=":":f+=": ",f+=r.dump,n+=f));r.tag=s,r.dump=n||"{}"}function l2(r,e,t){var i,n,s,o,a,l;for(n=t?r.explicitTypes:r.implicitTypes,s=0,o=n.length;s tag resolver accepts not "'+l+'" style');r.dump=i}return!0}return!1}function Wl(r,e,t,i,n,s){r.tag=null,r.dump=t,l2(r,t,!1)||l2(r,t,!0);var o=c2.call(r.dump);i&&(i=r.flowLevel<0||r.flowLevel>e);var a=o==="[object Object]"||o==="[object Array]",l,c;if(a&&(l=r.duplicates.indexOf(t),c=l!==-1),(r.tag!==null&&r.tag!=="?"||c||r.indent!==2&&e>0)&&(n=!1),c&&r.usedDuplicates[l])r.dump="*ref_"+l;else{if(a&&c&&!r.usedDuplicates[l]&&(r.usedDuplicates[l]=!0),o==="[object Object]")i&&Object.keys(r.dump).length!==0?(gpe(r,e,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(upe(r,e,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump));else if(o==="[object Array]"){var u=r.noArrayIndent&&e>0?e-1:e;i&&r.dump.length!==0?(cpe(r,u,r.dump,n),c&&(r.dump="&ref_"+l+r.dump)):(lpe(r,u,r.dump),c&&(r.dump="&ref_"+l+" "+r.dump))}else if(o==="[object String]")r.tag!=="?"&&ope(r,r.dump,e,s);else{if(r.skipInvalid)return!1;throw new Gp("unacceptable kind of an object to dump "+o)}r.tag!==null&&r.tag!=="?"&&(r.dump="!<"+r.tag+"> "+r.dump)}return!0}function fpe(r,e){var t=[],i=[],n,s;for(LS(r,t,i),n=0,s=i.length;n{"use strict";var gI=r2(),S2=b2();function fI(r){return function(){throw new Error("Function "+r+" is deprecated and cannot be used.")}}Fr.exports.Type=si();Fr.exports.Schema=Yl();Fr.exports.FAILSAFE_SCHEMA=sI();Fr.exports.JSON_SCHEMA=xS();Fr.exports.CORE_SCHEMA=PS();Fr.exports.DEFAULT_SAFE_SCHEMA=Sg();Fr.exports.DEFAULT_FULL_SCHEMA=Mp();Fr.exports.load=gI.load;Fr.exports.loadAll=gI.loadAll;Fr.exports.safeLoad=gI.safeLoad;Fr.exports.safeLoadAll=gI.safeLoadAll;Fr.exports.dump=S2.dump;Fr.exports.safeDump=S2.safeDump;Fr.exports.YAMLException=Qg();Fr.exports.MINIMAL_SCHEMA=sI();Fr.exports.SAFE_SCHEMA=Sg();Fr.exports.DEFAULT_SCHEMA=Mp();Fr.exports.scan=fI("scan");Fr.exports.parse=fI("parse");Fr.exports.compose=fI("compose");Fr.exports.addConstructor=fI("addConstructor")});var P2=w((GXe,x2)=>{"use strict";var ppe=v2();x2.exports=ppe});var k2=w((YXe,D2)=>{"use strict";function dpe(r,e){function t(){this.constructor=r}t.prototype=e.prototype,r.prototype=new t}function zl(r,e,t,i){this.message=r,this.expected=e,this.found=t,this.location=i,this.name="SyntaxError",typeof Error.captureStackTrace=="function"&&Error.captureStackTrace(this,zl)}dpe(zl,Error);zl.buildMessage=function(r,e){var t={literal:function(c){return'"'+n(c.text)+'"'},class:function(c){var u="",g;for(g=0;g0){for(g=1,f=1;g({[Ke]:Ce})))},H=function(R){return R},j=function(R){return R},$=Ts("correct indentation"),V=" ",W=ar(" ",!1),Z=function(R){return R.length===pA*ug},A=function(R){return R.length===(pA+1)*ug},ae=function(){return pA++,!0},ge=function(){return pA--,!0},re=function(){return sg()},O=Ts("pseudostring"),F=/^[^\r\n\t ?:,\][{}#&*!|>'"%@`\-]/,ue=Rn(["\r",` +`," "," ","?",":",",","]","[","{","}","#","&","*","!","|",">","'",'"',"%","@","`","-"],!0,!1),he=/^[^\r\n\t ,\][{}:#"']/,ke=Rn(["\r",` +`," "," ",",","]","[","{","}",":","#",'"',"'"],!0,!1),Fe=function(){return sg().replace(/^ *| *$/g,"")},Ne="--",oe=ar("--",!1),le=/^[a-zA-Z\/0-9]/,we=Rn([["a","z"],["A","Z"],"/",["0","9"]],!1,!1),fe=/^[^\r\n\t :,]/,Ae=Rn(["\r",` +`," "," ",":",","],!0,!1),qe="null",ne=ar("null",!1),Y=function(){return null},pe="true",ie=ar("true",!1),de=function(){return!0},tt="false",Pt=ar("false",!1),It=function(){return!1},Or=Ts("string"),ii='"',gi=ar('"',!1),hr=function(){return""},fi=function(R){return R},ni=function(R){return R.join("")},Ls=/^[^"\\\0-\x1F\x7F]/,pr=Rn(['"',"\\",["\0",""],"\x7F"],!0,!1),Ei='\\"',_n=ar('\\"',!1),oa=function(){return'"'},aA="\\\\",eg=ar("\\\\",!1),Zn=function(){return"\\"},AA="\\/",aa=ar("\\/",!1),up=function(){return"/"},lA="\\b",cA=ar("\\b",!1),wr=function(){return"\b"},wl="\\f",tg=ar("\\f",!1),po=function(){return"\f"},rg="\\n",gp=ar("\\n",!1),fp=function(){return` +`},vr="\\r",se=ar("\\r",!1),Co=function(){return"\r"},Dn="\\t",ig=ar("\\t",!1),Qt=function(){return" "},Bl="\\u",kn=ar("\\u",!1),$n=function(R,q,Ce,Ke){return String.fromCharCode(parseInt(`0x${R}${q}${Ce}${Ke}`))},es=/^[0-9a-fA-F]/,gt=Rn([["0","9"],["a","f"],["A","F"]],!1,!1),mo=Ts("blank space"),At=/^[ \t]/,an=Rn([" "," "],!1,!1),S=Ts("white space"),Tt=/^[ \t\n\r]/,ng=Rn([" "," ",` +`,"\r"],!1,!1),Ql=`\r +`,hp=ar(`\r +`,!1),pp=` +`,dp=ar(` +`,!1),Cp="\r",mp=ar("\r",!1),G=0,yt=0,uA=[{line:1,column:1}],ji=0,bl=[],Xe=0,Aa;if("startRule"in e){if(!(e.startRule in i))throw new Error(`Can't start parsing from rule "`+e.startRule+'".');n=i[e.startRule]}function sg(){return r.substring(yt,G)}function bE(){return An(yt,G)}function Ep(R,q){throw q=q!==void 0?q:An(yt,G),vl([Ts(R)],r.substring(yt,G),q)}function SE(R,q){throw q=q!==void 0?q:An(yt,G),og(R,q)}function ar(R,q){return{type:"literal",text:R,ignoreCase:q}}function Rn(R,q,Ce){return{type:"class",parts:R,inverted:q,ignoreCase:Ce}}function Sl(){return{type:"any"}}function Ip(){return{type:"end"}}function Ts(R){return{type:"other",description:R}}function la(R){var q=uA[R],Ce;if(q)return q;for(Ce=R-1;!uA[Ce];)Ce--;for(q=uA[Ce],q={line:q.line,column:q.column};Ceji&&(ji=G,bl=[]),bl.push(R))}function og(R,q){return new zl(R,null,null,q)}function vl(R,q,Ce){return new zl(zl.buildMessage(R,q),R,q,Ce)}function Os(){var R;return R=ag(),R}function xl(){var R,q,Ce;for(R=G,q=[],Ce=gA();Ce!==t;)q.push(Ce),Ce=gA();return q!==t&&(yt=R,q=s(q)),R=q,R}function gA(){var R,q,Ce,Ke,Re;return R=G,q=ua(),q!==t?(r.charCodeAt(G)===45?(Ce=o,G++):(Ce=t,Xe===0&&Te(a)),Ce!==t?(Ke=Rr(),Ke!==t?(Re=ca(),Re!==t?(yt=R,q=l(Re),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R}function ag(){var R,q,Ce;for(R=G,q=[],Ce=Ag();Ce!==t;)q.push(Ce),Ce=Ag();return q!==t&&(yt=R,q=c(q)),R=q,R}function Ag(){var R,q,Ce,Ke,Re,ze,dt,Ft,Fn;if(R=G,q=Rr(),q===t&&(q=null),q!==t){if(Ce=G,r.charCodeAt(G)===35?(Ke=u,G++):(Ke=t,Xe===0&&Te(g)),Ke!==t){if(Re=[],ze=G,dt=G,Xe++,Ft=Us(),Xe--,Ft===t?dt=void 0:(G=dt,dt=t),dt!==t?(r.length>G?(Ft=r.charAt(G),G++):(Ft=t,Xe===0&&Te(f)),Ft!==t?(dt=[dt,Ft],ze=dt):(G=ze,ze=t)):(G=ze,ze=t),ze!==t)for(;ze!==t;)Re.push(ze),ze=G,dt=G,Xe++,Ft=Us(),Xe--,Ft===t?dt=void 0:(G=dt,dt=t),dt!==t?(r.length>G?(Ft=r.charAt(G),G++):(Ft=t,Xe===0&&Te(f)),Ft!==t?(dt=[dt,Ft],ze=dt):(G=ze,ze=t)):(G=ze,ze=t);else Re=t;Re!==t?(Ke=[Ke,Re],Ce=Ke):(G=Ce,Ce=t)}else G=Ce,Ce=t;if(Ce===t&&(Ce=null),Ce!==t){if(Ke=[],Re=Ks(),Re!==t)for(;Re!==t;)Ke.push(Re),Re=Ks();else Ke=t;Ke!==t?(yt=R,q=h(),R=q):(G=R,R=t)}else G=R,R=t}else G=R,R=t;if(R===t&&(R=G,q=ua(),q!==t?(Ce=Pl(),Ce!==t?(Ke=Rr(),Ke===t&&(Ke=null),Ke!==t?(r.charCodeAt(G)===58?(Re=p,G++):(Re=t,Xe===0&&Te(C)),Re!==t?(ze=Rr(),ze===t&&(ze=null),ze!==t?(dt=ca(),dt!==t?(yt=R,q=y(Ce,dt),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,q=ua(),q!==t?(Ce=Ms(),Ce!==t?(Ke=Rr(),Ke===t&&(Ke=null),Ke!==t?(r.charCodeAt(G)===58?(Re=p,G++):(Re=t,Xe===0&&Te(C)),Re!==t?(ze=Rr(),ze===t&&(ze=null),ze!==t?(dt=ca(),dt!==t?(yt=R,q=y(Ce,dt),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t))){if(R=G,q=ua(),q!==t)if(Ce=Ms(),Ce!==t)if(Ke=Rr(),Ke!==t)if(Re=vE(),Re!==t){if(ze=[],dt=Ks(),dt!==t)for(;dt!==t;)ze.push(dt),dt=Ks();else ze=t;ze!==t?(yt=R,q=y(Ce,Re),R=q):(G=R,R=t)}else G=R,R=t;else G=R,R=t;else G=R,R=t;else G=R,R=t;if(R===t)if(R=G,q=ua(),q!==t)if(Ce=Ms(),Ce!==t){if(Ke=[],Re=G,ze=Rr(),ze===t&&(ze=null),ze!==t?(r.charCodeAt(G)===44?(dt=B,G++):(dt=t,Xe===0&&Te(v)),dt!==t?(Ft=Rr(),Ft===t&&(Ft=null),Ft!==t?(Fn=Ms(),Fn!==t?(yt=Re,ze=D(Ce,Fn),Re=ze):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t),Re!==t)for(;Re!==t;)Ke.push(Re),Re=G,ze=Rr(),ze===t&&(ze=null),ze!==t?(r.charCodeAt(G)===44?(dt=B,G++):(dt=t,Xe===0&&Te(v)),dt!==t?(Ft=Rr(),Ft===t&&(Ft=null),Ft!==t?(Fn=Ms(),Fn!==t?(yt=Re,ze=D(Ce,Fn),Re=ze):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t)):(G=Re,Re=t);else Ke=t;Ke!==t?(Re=Rr(),Re===t&&(Re=null),Re!==t?(r.charCodeAt(G)===58?(ze=p,G++):(ze=t,Xe===0&&Te(C)),ze!==t?(dt=Rr(),dt===t&&(dt=null),dt!==t?(Ft=ca(),Ft!==t?(yt=R,q=L(Ce,Ke,Ft),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)}else G=R,R=t;else G=R,R=t}return R}function ca(){var R,q,Ce,Ke,Re,ze,dt;if(R=G,q=G,Xe++,Ce=G,Ke=Us(),Ke!==t?(Re=rt(),Re!==t?(r.charCodeAt(G)===45?(ze=o,G++):(ze=t,Xe===0&&Te(a)),ze!==t?(dt=Rr(),dt!==t?(Ke=[Ke,Re,ze,dt],Ce=Ke):(G=Ce,Ce=t)):(G=Ce,Ce=t)):(G=Ce,Ce=t)):(G=Ce,Ce=t),Xe--,Ce!==t?(G=q,q=void 0):q=t,q!==t?(Ce=Ks(),Ce!==t?(Ke=Eo(),Ke!==t?(Re=xl(),Re!==t?(ze=fA(),ze!==t?(yt=R,q=H(Re),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,q=Us(),q!==t?(Ce=Eo(),Ce!==t?(Ke=ag(),Ke!==t?(Re=fA(),Re!==t?(yt=R,q=H(Ke),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t),R===t))if(R=G,q=Dl(),q!==t){if(Ce=[],Ke=Ks(),Ke!==t)for(;Ke!==t;)Ce.push(Ke),Ke=Ks();else Ce=t;Ce!==t?(yt=R,q=j(q),R=q):(G=R,R=t)}else G=R,R=t;return R}function ua(){var R,q,Ce;for(Xe++,R=G,q=[],r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Te(W));Ce!==t;)q.push(Ce),r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Te(W));return q!==t?(yt=G,Ce=Z(q),Ce?Ce=void 0:Ce=t,Ce!==t?(q=[q,Ce],R=q):(G=R,R=t)):(G=R,R=t),Xe--,R===t&&(q=t,Xe===0&&Te($)),R}function rt(){var R,q,Ce;for(R=G,q=[],r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Te(W));Ce!==t;)q.push(Ce),r.charCodeAt(G)===32?(Ce=V,G++):(Ce=t,Xe===0&&Te(W));return q!==t?(yt=G,Ce=A(q),Ce?Ce=void 0:Ce=t,Ce!==t?(q=[q,Ce],R=q):(G=R,R=t)):(G=R,R=t),R}function Eo(){var R;return yt=G,R=ae(),R?R=void 0:R=t,R}function fA(){var R;return yt=G,R=ge(),R?R=void 0:R=t,R}function Pl(){var R;return R=kl(),R===t&&(R=yp()),R}function Ms(){var R,q,Ce;if(R=kl(),R===t){if(R=G,q=[],Ce=lg(),Ce!==t)for(;Ce!==t;)q.push(Ce),Ce=lg();else q=t;q!==t&&(yt=R,q=re()),R=q}return R}function Dl(){var R;return R=wp(),R===t&&(R=xE(),R===t&&(R=kl(),R===t&&(R=yp()))),R}function vE(){var R;return R=wp(),R===t&&(R=kl(),R===t&&(R=lg())),R}function yp(){var R,q,Ce,Ke,Re,ze;if(Xe++,R=G,F.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Te(ue)),q!==t){for(Ce=[],Ke=G,Re=Rr(),Re===t&&(Re=null),Re!==t?(he.test(r.charAt(G))?(ze=r.charAt(G),G++):(ze=t,Xe===0&&Te(ke)),ze!==t?(Re=[Re,ze],Ke=Re):(G=Ke,Ke=t)):(G=Ke,Ke=t);Ke!==t;)Ce.push(Ke),Ke=G,Re=Rr(),Re===t&&(Re=null),Re!==t?(he.test(r.charAt(G))?(ze=r.charAt(G),G++):(ze=t,Xe===0&&Te(ke)),ze!==t?(Re=[Re,ze],Ke=Re):(G=Ke,Ke=t)):(G=Ke,Ke=t);Ce!==t?(yt=R,q=Fe(),R=q):(G=R,R=t)}else G=R,R=t;return Xe--,R===t&&(q=t,Xe===0&&Te(O)),R}function lg(){var R,q,Ce,Ke,Re;if(R=G,r.substr(G,2)===Ne?(q=Ne,G+=2):(q=t,Xe===0&&Te(oe)),q===t&&(q=null),q!==t)if(le.test(r.charAt(G))?(Ce=r.charAt(G),G++):(Ce=t,Xe===0&&Te(we)),Ce!==t){for(Ke=[],fe.test(r.charAt(G))?(Re=r.charAt(G),G++):(Re=t,Xe===0&&Te(Ae));Re!==t;)Ke.push(Re),fe.test(r.charAt(G))?(Re=r.charAt(G),G++):(Re=t,Xe===0&&Te(Ae));Ke!==t?(yt=R,q=Fe(),R=q):(G=R,R=t)}else G=R,R=t;else G=R,R=t;return R}function wp(){var R,q;return R=G,r.substr(G,4)===qe?(q=qe,G+=4):(q=t,Xe===0&&Te(ne)),q!==t&&(yt=R,q=Y()),R=q,R}function xE(){var R,q;return R=G,r.substr(G,4)===pe?(q=pe,G+=4):(q=t,Xe===0&&Te(ie)),q!==t&&(yt=R,q=de()),R=q,R===t&&(R=G,r.substr(G,5)===tt?(q=tt,G+=5):(q=t,Xe===0&&Te(Pt)),q!==t&&(yt=R,q=It()),R=q),R}function kl(){var R,q,Ce,Ke;return Xe++,R=G,r.charCodeAt(G)===34?(q=ii,G++):(q=t,Xe===0&&Te(gi)),q!==t?(r.charCodeAt(G)===34?(Ce=ii,G++):(Ce=t,Xe===0&&Te(gi)),Ce!==t?(yt=R,q=hr(),R=q):(G=R,R=t)):(G=R,R=t),R===t&&(R=G,r.charCodeAt(G)===34?(q=ii,G++):(q=t,Xe===0&&Te(gi)),q!==t?(Ce=PE(),Ce!==t?(r.charCodeAt(G)===34?(Ke=ii,G++):(Ke=t,Xe===0&&Te(gi)),Ke!==t?(yt=R,q=fi(Ce),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)),Xe--,R===t&&(q=t,Xe===0&&Te(Or)),R}function PE(){var R,q,Ce;if(R=G,q=[],Ce=cg(),Ce!==t)for(;Ce!==t;)q.push(Ce),Ce=cg();else q=t;return q!==t&&(yt=R,q=ni(q)),R=q,R}function cg(){var R,q,Ce,Ke,Re,ze;return Ls.test(r.charAt(G))?(R=r.charAt(G),G++):(R=t,Xe===0&&Te(pr)),R===t&&(R=G,r.substr(G,2)===Ei?(q=Ei,G+=2):(q=t,Xe===0&&Te(_n)),q!==t&&(yt=R,q=oa()),R=q,R===t&&(R=G,r.substr(G,2)===aA?(q=aA,G+=2):(q=t,Xe===0&&Te(eg)),q!==t&&(yt=R,q=Zn()),R=q,R===t&&(R=G,r.substr(G,2)===AA?(q=AA,G+=2):(q=t,Xe===0&&Te(aa)),q!==t&&(yt=R,q=up()),R=q,R===t&&(R=G,r.substr(G,2)===lA?(q=lA,G+=2):(q=t,Xe===0&&Te(cA)),q!==t&&(yt=R,q=wr()),R=q,R===t&&(R=G,r.substr(G,2)===wl?(q=wl,G+=2):(q=t,Xe===0&&Te(tg)),q!==t&&(yt=R,q=po()),R=q,R===t&&(R=G,r.substr(G,2)===rg?(q=rg,G+=2):(q=t,Xe===0&&Te(gp)),q!==t&&(yt=R,q=fp()),R=q,R===t&&(R=G,r.substr(G,2)===vr?(q=vr,G+=2):(q=t,Xe===0&&Te(se)),q!==t&&(yt=R,q=Co()),R=q,R===t&&(R=G,r.substr(G,2)===Dn?(q=Dn,G+=2):(q=t,Xe===0&&Te(ig)),q!==t&&(yt=R,q=Qt()),R=q,R===t&&(R=G,r.substr(G,2)===Bl?(q=Bl,G+=2):(q=t,Xe===0&&Te(kn)),q!==t?(Ce=hA(),Ce!==t?(Ke=hA(),Ke!==t?(Re=hA(),Re!==t?(ze=hA(),ze!==t?(yt=R,q=$n(Ce,Ke,Re,ze),R=q):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)):(G=R,R=t)))))))))),R}function hA(){var R;return es.test(r.charAt(G))?(R=r.charAt(G),G++):(R=t,Xe===0&&Te(gt)),R}function Rr(){var R,q;if(Xe++,R=[],At.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Te(an)),q!==t)for(;q!==t;)R.push(q),At.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Te(an));else R=t;return Xe--,R===t&&(q=t,Xe===0&&Te(mo)),R}function DE(){var R,q;if(Xe++,R=[],Tt.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Te(ng)),q!==t)for(;q!==t;)R.push(q),Tt.test(r.charAt(G))?(q=r.charAt(G),G++):(q=t,Xe===0&&Te(ng));else R=t;return Xe--,R===t&&(q=t,Xe===0&&Te(S)),R}function Ks(){var R,q,Ce,Ke,Re,ze;if(R=G,q=Us(),q!==t){for(Ce=[],Ke=G,Re=Rr(),Re===t&&(Re=null),Re!==t?(ze=Us(),ze!==t?(Re=[Re,ze],Ke=Re):(G=Ke,Ke=t)):(G=Ke,Ke=t);Ke!==t;)Ce.push(Ke),Ke=G,Re=Rr(),Re===t&&(Re=null),Re!==t?(ze=Us(),ze!==t?(Re=[Re,ze],Ke=Re):(G=Ke,Ke=t)):(G=Ke,Ke=t);Ce!==t?(q=[q,Ce],R=q):(G=R,R=t)}else G=R,R=t;return R}function Us(){var R;return r.substr(G,2)===Ql?(R=Ql,G+=2):(R=t,Xe===0&&Te(hp)),R===t&&(r.charCodeAt(G)===10?(R=pp,G++):(R=t,Xe===0&&Te(dp)),R===t&&(r.charCodeAt(G)===13?(R=Cp,G++):(R=t,Xe===0&&Te(mp)))),R}let ug=2,pA=0;if(Aa=n(),Aa!==t&&G===r.length)return Aa;throw Aa!==t&&G{"use strict";var wpe=r=>{let e=!1,t=!1,i=!1;for(let n=0;n{if(!(typeof r=="string"||Array.isArray(r)))throw new TypeError("Expected the input to be `string | string[]`");e=Object.assign({pascalCase:!1},e);let t=n=>e.pascalCase?n.charAt(0).toUpperCase()+n.slice(1):n;return Array.isArray(r)?r=r.map(n=>n.trim()).filter(n=>n.length).join("-"):r=r.trim(),r.length===0?"":r.length===1?e.pascalCase?r.toUpperCase():r.toLowerCase():(r!==r.toLowerCase()&&(r=wpe(r)),r=r.replace(/^[_.\- ]+/,"").toLowerCase().replace(/[_.\- ]+(\w|$)/g,(n,s)=>s.toUpperCase()).replace(/\d+(\w|$)/g,n=>n.toUpperCase()),t(r))};KS.exports=T2;KS.exports.default=T2});var M2=w((VXe,Bpe)=>{Bpe.exports=[{name:"AppVeyor",constant:"APPVEYOR",env:"APPVEYOR",pr:"APPVEYOR_PULL_REQUEST_NUMBER"},{name:"Azure Pipelines",constant:"AZURE_PIPELINES",env:"SYSTEM_TEAMFOUNDATIONCOLLECTIONURI",pr:"SYSTEM_PULLREQUEST_PULLREQUESTID"},{name:"Appcircle",constant:"APPCIRCLE",env:"AC_APPCIRCLE"},{name:"Bamboo",constant:"BAMBOO",env:"bamboo_planKey"},{name:"Bitbucket Pipelines",constant:"BITBUCKET",env:"BITBUCKET_COMMIT",pr:"BITBUCKET_PR_ID"},{name:"Bitrise",constant:"BITRISE",env:"BITRISE_IO",pr:"BITRISE_PULL_REQUEST"},{name:"Buddy",constant:"BUDDY",env:"BUDDY_WORKSPACE_ID",pr:"BUDDY_EXECUTION_PULL_REQUEST_ID"},{name:"Buildkite",constant:"BUILDKITE",env:"BUILDKITE",pr:{env:"BUILDKITE_PULL_REQUEST",ne:"false"}},{name:"CircleCI",constant:"CIRCLE",env:"CIRCLECI",pr:"CIRCLE_PULL_REQUEST"},{name:"Cirrus CI",constant:"CIRRUS",env:"CIRRUS_CI",pr:"CIRRUS_PR"},{name:"AWS CodeBuild",constant:"CODEBUILD",env:"CODEBUILD_BUILD_ARN"},{name:"Codefresh",constant:"CODEFRESH",env:"CF_BUILD_ID",pr:{any:["CF_PULL_REQUEST_NUMBER","CF_PULL_REQUEST_ID"]}},{name:"Codeship",constant:"CODESHIP",env:{CI_NAME:"codeship"}},{name:"Drone",constant:"DRONE",env:"DRONE",pr:{DRONE_BUILD_EVENT:"pull_request"}},{name:"dsari",constant:"DSARI",env:"DSARI"},{name:"GitHub Actions",constant:"GITHUB_ACTIONS",env:"GITHUB_ACTIONS",pr:{GITHUB_EVENT_NAME:"pull_request"}},{name:"GitLab CI",constant:"GITLAB",env:"GITLAB_CI",pr:"CI_MERGE_REQUEST_ID"},{name:"GoCD",constant:"GOCD",env:"GO_PIPELINE_LABEL"},{name:"LayerCI",constant:"LAYERCI",env:"LAYERCI",pr:"LAYERCI_PULL_REQUEST"},{name:"Hudson",constant:"HUDSON",env:"HUDSON_URL"},{name:"Jenkins",constant:"JENKINS",env:["JENKINS_URL","BUILD_ID"],pr:{any:["ghprbPullId","CHANGE_ID"]}},{name:"Magnum CI",constant:"MAGNUM",env:"MAGNUM"},{name:"Netlify CI",constant:"NETLIFY",env:"NETLIFY",pr:{env:"PULL_REQUEST",ne:"false"}},{name:"Nevercode",constant:"NEVERCODE",env:"NEVERCODE",pr:{env:"NEVERCODE_PULL_REQUEST",ne:"false"}},{name:"Render",constant:"RENDER",env:"RENDER",pr:{IS_PULL_REQUEST:"true"}},{name:"Sail CI",constant:"SAIL",env:"SAILCI",pr:"SAIL_PULL_REQUEST_NUMBER"},{name:"Semaphore",constant:"SEMAPHORE",env:"SEMAPHORE",pr:"PULL_REQUEST_NUMBER"},{name:"Screwdriver",constant:"SCREWDRIVER",env:"SCREWDRIVER",pr:{env:"SD_PULL_REQUEST",ne:"false"}},{name:"Shippable",constant:"SHIPPABLE",env:"SHIPPABLE",pr:{IS_PULL_REQUEST:"true"}},{name:"Solano CI",constant:"SOLANO",env:"TDDIUM",pr:"TDDIUM_PR_ID"},{name:"Strider CD",constant:"STRIDER",env:"STRIDER"},{name:"TaskCluster",constant:"TASKCLUSTER",env:["TASK_ID","RUN_ID"]},{name:"TeamCity",constant:"TEAMCITY",env:"TEAMCITY_VERSION"},{name:"Travis CI",constant:"TRAVIS",env:"TRAVIS",pr:{env:"TRAVIS_PULL_REQUEST",ne:"false"}},{name:"Vercel",constant:"VERCEL",env:"NOW_BUILDER"},{name:"Visual Studio App Center",constant:"APPCENTER",env:"APPCENTER_BUILD_ID"}]});var Vl=w(On=>{"use strict";var U2=M2(),Qo=process.env;Object.defineProperty(On,"_vendors",{value:U2.map(function(r){return r.constant})});On.name=null;On.isPR=null;U2.forEach(function(r){let t=(Array.isArray(r.env)?r.env:[r.env]).every(function(i){return K2(i)});if(On[r.constant]=t,t)switch(On.name=r.name,typeof r.pr){case"string":On.isPR=!!Qo[r.pr];break;case"object":"env"in r.pr?On.isPR=r.pr.env in Qo&&Qo[r.pr.env]!==r.pr.ne:"any"in r.pr?On.isPR=r.pr.any.some(function(i){return!!Qo[i]}):On.isPR=K2(r.pr);break;default:On.isPR=null}});On.isCI=!!(Qo.CI||Qo.CONTINUOUS_INTEGRATION||Qo.BUILD_NUMBER||Qo.RUN_ID||On.name);function K2(r){return typeof r=="string"?!!Qo[r]:Object.keys(r).every(function(e){return Qo[e]===r[e]})}});var gn={};ut(gn,{KeyRelationship:()=>Xl,applyCascade:()=>zp,base64RegExp:()=>q2,colorStringAlphaRegExp:()=>j2,colorStringRegExp:()=>Y2,computeKey:()=>BA,getPrintable:()=>Vr,hasExactLength:()=>X2,hasForbiddenKeys:()=>tde,hasKeyRelationship:()=>JS,hasMaxLength:()=>Mpe,hasMinLength:()=>Ope,hasMutuallyExclusiveKeys:()=>rde,hasRequiredKeys:()=>ede,hasUniqueItems:()=>Kpe,isArray:()=>Ppe,isAtLeast:()=>Gpe,isAtMost:()=>Ype,isBase64:()=>Zpe,isBoolean:()=>Spe,isDate:()=>xpe,isDict:()=>kpe,isEnum:()=>Wi,isHexColor:()=>_pe,isISO8601:()=>Xpe,isInExclusiveRange:()=>qpe,isInInclusiveRange:()=>jpe,isInstanceOf:()=>Fpe,isInteger:()=>Jpe,isJSON:()=>$pe,isLiteral:()=>Qpe,isLowerCase:()=>Wpe,isNegative:()=>Upe,isNullable:()=>Tpe,isNumber:()=>vpe,isObject:()=>Rpe,isOneOf:()=>Npe,isOptional:()=>Lpe,isPositive:()=>Hpe,isString:()=>Wp,isTuple:()=>Dpe,isUUID4:()=>Vpe,isUnknown:()=>V2,isUpperCase:()=>zpe,iso8601RegExp:()=>qS,makeCoercionFn:()=>_l,makeSetter:()=>z2,makeTrait:()=>W2,makeValidator:()=>bt,matchesRegExp:()=>Vp,plural:()=>EI,pushError:()=>pt,simpleKeyRegExp:()=>G2,uuid4RegExp:()=>J2});function bt({test:r}){return W2(r)()}function Vr(r){return r===null?"null":r===void 0?"undefined":r===""?"an empty string":JSON.stringify(r)}function BA(r,e){var t,i,n;return typeof e=="number"?`${(t=r==null?void 0:r.p)!==null&&t!==void 0?t:"."}[${e}]`:G2.test(e)?`${(i=r==null?void 0:r.p)!==null&&i!==void 0?i:""}.${e}`:`${(n=r==null?void 0:r.p)!==null&&n!==void 0?n:"."}[${JSON.stringify(e)}]`}function _l(r,e){return t=>{let i=r[e];return r[e]=t,_l(r,e).bind(null,i)}}function z2(r,e){return t=>{r[e]=t}}function EI(r,e,t){return r===1?e:t}function pt({errors:r,p:e}={},t){return r==null||r.push(`${e!=null?e:"."}: ${t}`),!1}function Qpe(r){return bt({test:(e,t)=>e!==r?pt(t,`Expected a literal (got ${Vr(r)})`):!0})}function Wi(r){let e=Array.isArray(r)?r:Object.values(r),t=new Set(e);return bt({test:(i,n)=>t.has(i)?!0:pt(n,`Expected a valid enumeration value (got ${Vr(i)})`)})}var G2,Y2,j2,q2,J2,qS,W2,V2,Wp,bpe,Spe,vpe,xpe,Ppe,Dpe,kpe,Rpe,Fpe,Npe,zp,Lpe,Tpe,Ope,Mpe,X2,Kpe,Upe,Hpe,Gpe,Ype,jpe,qpe,Jpe,Vp,Wpe,zpe,Vpe,Xpe,_pe,Zpe,$pe,ede,tde,rde,Xl,ide,JS,ns=Yue(()=>{G2=/^[a-zA-Z_][a-zA-Z0-9_]*$/,Y2=/^#[0-9a-f]{6}$/i,j2=/^#[0-9a-f]{6}([0-9a-f]{2})?$/i,q2=/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/,J2=/^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89aAbB][a-f0-9]{3}-[a-f0-9]{12}$/i,qS=/^(?:[1-9]\d{3}(-?)(?:(?:0[1-9]|1[0-2])\1(?:0[1-9]|1\d|2[0-8])|(?:0[13-9]|1[0-2])\1(?:29|30)|(?:0[13578]|1[02])(?:\1)31|00[1-9]|0[1-9]\d|[12]\d{2}|3(?:[0-5]\d|6[0-5]))|(?:[1-9]\d(?:0[48]|[2468][048]|[13579][26])|(?:[2468][048]|[13579][26])00)(?:(-?)02(?:\2)29|-?366))T(?:[01]\d|2[0-3])(:?)[0-5]\d(?:\3[0-5]\d)?(?:Z|[+-][01]\d(?:\3[0-5]\d)?)$/,W2=r=>()=>r;V2=()=>bt({test:(r,e)=>!0});Wp=()=>bt({test:(r,e)=>typeof r!="string"?pt(e,`Expected a string (got ${Vr(r)})`):!0});bpe=new Map([["true",!0],["True",!0],["1",!0],[1,!0],["false",!1],["False",!1],["0",!1],[0,!1]]),Spe=()=>bt({test:(r,e)=>{var t;if(typeof r!="boolean"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i=bpe.get(r);if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a boolean (got ${Vr(r)})`)}return!0}}),vpe=()=>bt({test:(r,e)=>{var t;if(typeof r!="number"){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i;if(typeof r=="string"){let n;try{n=JSON.parse(r)}catch{}if(typeof n=="number")if(JSON.stringify(n)===r)i=n;else return pt(e,`Received a number that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a number (got ${Vr(r)})`)}return!0}}),xpe=()=>bt({test:(r,e)=>{var t;if(!(r instanceof Date)){if(typeof(e==null?void 0:e.coercions)<"u"){if(typeof(e==null?void 0:e.coercion)>"u")return pt(e,"Unbound coercion result");let i;if(typeof r=="string"&&qS.test(r))i=new Date(r);else{let n;if(typeof r=="string"){let s;try{s=JSON.parse(r)}catch{}typeof s=="number"&&(n=s)}else typeof r=="number"&&(n=r);if(typeof n<"u")if(Number.isSafeInteger(n)||!Number.isSafeInteger(n*1e3))i=new Date(n*1e3);else return pt(e,`Received a timestamp that can't be safely represented by the runtime (${r})`)}if(typeof i<"u")return e.coercions.push([(t=e.p)!==null&&t!==void 0?t:".",e.coercion.bind(null,i)]),!0}return pt(e,`Expected a date (got ${Vr(r)})`)}return!0}}),Ppe=(r,{delimiter:e}={})=>bt({test:(t,i)=>{var n;if(typeof t=="string"&&typeof e<"u"&&typeof(i==null?void 0:i.coercions)<"u"){if(typeof(i==null?void 0:i.coercion)>"u")return pt(i,"Unbound coercion result");t=t.split(e),i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,t)])}if(!Array.isArray(t))return pt(i,`Expected an array (got ${Vr(t)})`);let s=!0;for(let o=0,a=t.length;o{let t=X2(r.length);return bt({test:(i,n)=>{var s;if(typeof i=="string"&&typeof e<"u"&&typeof(n==null?void 0:n.coercions)<"u"){if(typeof(n==null?void 0:n.coercion)>"u")return pt(n,"Unbound coercion result");i=i.split(e),n.coercions.push([(s=n.p)!==null&&s!==void 0?s:".",n.coercion.bind(null,i)])}if(!Array.isArray(i))return pt(n,`Expected a tuple (got ${Vr(i)})`);let o=t(i,Object.assign({},n));for(let a=0,l=i.length;abt({test:(t,i)=>{if(typeof t!="object"||t===null)return pt(i,`Expected an object (got ${Vr(t)})`);let n=Object.keys(t),s=!0;for(let o=0,a=n.length;o{let t=Object.keys(r);return bt({test:(i,n)=>{if(typeof i!="object"||i===null)return pt(n,`Expected an object (got ${Vr(i)})`);let s=new Set([...t,...Object.keys(i)]),o={},a=!0;for(let l of s){if(l==="constructor"||l==="__proto__")a=pt(Object.assign(Object.assign({},n),{p:BA(n,l)}),"Unsafe property name");else{let c=Object.prototype.hasOwnProperty.call(r,l)?r[l]:void 0,u=Object.prototype.hasOwnProperty.call(i,l)?i[l]:void 0;typeof c<"u"?a=c(u,Object.assign(Object.assign({},n),{p:BA(n,l),coercion:_l(i,l)}))&&a:e===null?a=pt(Object.assign(Object.assign({},n),{p:BA(n,l)}),`Extraneous property (got ${Vr(u)})`):Object.defineProperty(o,l,{enumerable:!0,get:()=>u,set:z2(i,l)})}if(!a&&(n==null?void 0:n.errors)==null)break}return e!==null&&(a||(n==null?void 0:n.errors)!=null)&&(a=e(o,n)&&a),a}})},Fpe=r=>bt({test:(e,t)=>e instanceof r?!0:pt(t,`Expected an instance of ${r.name} (got ${Vr(e)})`)}),Npe=(r,{exclusive:e=!1}={})=>bt({test:(t,i)=>{var n,s,o;let a=[],l=typeof(i==null?void 0:i.errors)<"u"?[]:void 0;for(let c=0,u=r.length;c1?pt(i,`Expected to match exactly a single predicate (matched ${a.join(", ")})`):(o=i==null?void 0:i.errors)===null||o===void 0||o.push(...l),!1}}),zp=(r,e)=>bt({test:(t,i)=>{var n,s;let o={value:t},a=typeof(i==null?void 0:i.coercions)<"u"?_l(o,"value"):void 0,l=typeof(i==null?void 0:i.coercions)<"u"?[]:void 0;if(!r(t,Object.assign(Object.assign({},i),{coercion:a,coercions:l})))return!1;let c=[];if(typeof l<"u")for(let[,u]of l)c.push(u());try{if(typeof(i==null?void 0:i.coercions)<"u"){if(o.value!==t){if(typeof(i==null?void 0:i.coercion)>"u")return pt(i,"Unbound coercion result");i.coercions.push([(n=i.p)!==null&&n!==void 0?n:".",i.coercion.bind(null,o.value)])}(s=i==null?void 0:i.coercions)===null||s===void 0||s.push(...l)}return e.every(u=>u(o.value,i))}finally{for(let u of c)u()}}}),Lpe=r=>bt({test:(e,t)=>typeof e>"u"?!0:r(e,t)}),Tpe=r=>bt({test:(e,t)=>e===null?!0:r(e,t)}),Ope=r=>bt({test:(e,t)=>e.length>=r?!0:pt(t,`Expected to have a length of at least ${r} elements (got ${e.length})`)}),Mpe=r=>bt({test:(e,t)=>e.length<=r?!0:pt(t,`Expected to have a length of at most ${r} elements (got ${e.length})`)}),X2=r=>bt({test:(e,t)=>e.length!==r?pt(t,`Expected to have a length of exactly ${r} elements (got ${e.length})`):!0}),Kpe=({map:r}={})=>bt({test:(e,t)=>{let i=new Set,n=new Set;for(let s=0,o=e.length;sbt({test:(r,e)=>r<=0?!0:pt(e,`Expected to be negative (got ${r})`)}),Hpe=()=>bt({test:(r,e)=>r>=0?!0:pt(e,`Expected to be positive (got ${r})`)}),Gpe=r=>bt({test:(e,t)=>e>=r?!0:pt(t,`Expected to be at least ${r} (got ${e})`)}),Ype=r=>bt({test:(e,t)=>e<=r?!0:pt(t,`Expected to be at most ${r} (got ${e})`)}),jpe=(r,e)=>bt({test:(t,i)=>t>=r&&t<=e?!0:pt(i,`Expected to be in the [${r}; ${e}] range (got ${t})`)}),qpe=(r,e)=>bt({test:(t,i)=>t>=r&&tbt({test:(e,t)=>e!==Math.round(e)?pt(t,`Expected to be an integer (got ${e})`):Number.isSafeInteger(e)?!0:pt(t,`Expected to be a safe integer (got ${e})`)}),Vp=r=>bt({test:(e,t)=>r.test(e)?!0:pt(t,`Expected to match the pattern ${r.toString()} (got ${Vr(e)})`)}),Wpe=()=>bt({test:(r,e)=>r!==r.toLowerCase()?pt(e,`Expected to be all-lowercase (got ${r})`):!0}),zpe=()=>bt({test:(r,e)=>r!==r.toUpperCase()?pt(e,`Expected to be all-uppercase (got ${r})`):!0}),Vpe=()=>bt({test:(r,e)=>J2.test(r)?!0:pt(e,`Expected to be a valid UUID v4 (got ${Vr(r)})`)}),Xpe=()=>bt({test:(r,e)=>qS.test(r)?!1:pt(e,`Expected to be a valid ISO 8601 date string (got ${Vr(r)})`)}),_pe=({alpha:r=!1})=>bt({test:(e,t)=>(r?Y2.test(e):j2.test(e))?!0:pt(t,`Expected to be a valid hexadecimal color string (got ${Vr(e)})`)}),Zpe=()=>bt({test:(r,e)=>q2.test(r)?!0:pt(e,`Expected to be a valid base 64 string (got ${Vr(r)})`)}),$pe=(r=V2())=>bt({test:(e,t)=>{let i;try{i=JSON.parse(e)}catch{return pt(t,`Expected to be a valid JSON string (got ${Vr(e)})`)}return r(i,t)}}),ede=r=>{let e=new Set(r);return bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)||s.push(o);return s.length>0?pt(i,`Missing required ${EI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},tde=r=>{let e=new Set(r);return bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>0?pt(i,`Forbidden ${EI(s.length,"property","properties")} ${s.map(o=>`"${o}"`).join(", ")}`):!0}})},rde=r=>{let e=new Set(r);return bt({test:(t,i)=>{let n=new Set(Object.keys(t)),s=[];for(let o of e)n.has(o)&&s.push(o);return s.length>1?pt(i,`Mutually exclusive properties ${s.map(o=>`"${o}"`).join(", ")}`):!0}})};(function(r){r.Forbids="Forbids",r.Requires="Requires"})(Xl||(Xl={}));ide={[Xl.Forbids]:{expect:!1,message:"forbids using"},[Xl.Requires]:{expect:!0,message:"requires using"}},JS=(r,e,t,{ignore:i=[]}={})=>{let n=new Set(i),s=new Set(t),o=ide[e];return bt({test:(a,l)=>{let c=new Set(Object.keys(a));if(!c.has(r)||n.has(a[r]))return!0;let u=[];for(let g of s)(c.has(g)&&!n.has(a[g]))!==o.expect&&u.push(g);return u.length>=1?pt(l,`Property "${r}" ${o.message} ${EI(u.length,"property","properties")} ${u.map(g=>`"${g}"`).join(", ")}`):!0}})}});var fH=w((V_e,gH)=>{"use strict";gH.exports=(r,...e)=>new Promise(t=>{t(r(...e))})});var Tg=w((X_e,ev)=>{"use strict";var Ide=fH(),hH=r=>{if(r<1)throw new TypeError("Expected `concurrency` to be a number from 1 and up");let e=[],t=0,i=()=>{t--,e.length>0&&e.shift()()},n=(a,l,...c)=>{t++;let u=Ide(a,...c);l(u),u.then(i,i)},s=(a,l,...c)=>{tnew Promise(c=>s(a,c,...l));return Object.defineProperties(o,{activeCount:{get:()=>t},pendingCount:{get:()=>e.length}}),o};ev.exports=hH;ev.exports.default=hH});var ed=w((Z_e,pH)=>{var yde="2.0.0",wde=Number.MAX_SAFE_INTEGER||9007199254740991,Bde=16;pH.exports={SEMVER_SPEC_VERSION:yde,MAX_LENGTH:256,MAX_SAFE_INTEGER:wde,MAX_SAFE_COMPONENT_LENGTH:Bde}});var td=w(($_e,dH)=>{var Qde=typeof process=="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...r)=>console.error("SEMVER",...r):()=>{};dH.exports=Qde});var Zl=w((bA,CH)=>{var{MAX_SAFE_COMPONENT_LENGTH:tv}=ed(),bde=td();bA=CH.exports={};var Sde=bA.re=[],$e=bA.src=[],et=bA.t={},vde=0,St=(r,e,t)=>{let i=vde++;bde(i,e),et[r]=i,$e[i]=e,Sde[i]=new RegExp(e,t?"g":void 0)};St("NUMERICIDENTIFIER","0|[1-9]\\d*");St("NUMERICIDENTIFIERLOOSE","[0-9]+");St("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");St("MAINVERSION",`(${$e[et.NUMERICIDENTIFIER]})\\.(${$e[et.NUMERICIDENTIFIER]})\\.(${$e[et.NUMERICIDENTIFIER]})`);St("MAINVERSIONLOOSE",`(${$e[et.NUMERICIDENTIFIERLOOSE]})\\.(${$e[et.NUMERICIDENTIFIERLOOSE]})\\.(${$e[et.NUMERICIDENTIFIERLOOSE]})`);St("PRERELEASEIDENTIFIER",`(?:${$e[et.NUMERICIDENTIFIER]}|${$e[et.NONNUMERICIDENTIFIER]})`);St("PRERELEASEIDENTIFIERLOOSE",`(?:${$e[et.NUMERICIDENTIFIERLOOSE]}|${$e[et.NONNUMERICIDENTIFIER]})`);St("PRERELEASE",`(?:-(${$e[et.PRERELEASEIDENTIFIER]}(?:\\.${$e[et.PRERELEASEIDENTIFIER]})*))`);St("PRERELEASELOOSE",`(?:-?(${$e[et.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${$e[et.PRERELEASEIDENTIFIERLOOSE]})*))`);St("BUILDIDENTIFIER","[0-9A-Za-z-]+");St("BUILD",`(?:\\+(${$e[et.BUILDIDENTIFIER]}(?:\\.${$e[et.BUILDIDENTIFIER]})*))`);St("FULLPLAIN",`v?${$e[et.MAINVERSION]}${$e[et.PRERELEASE]}?${$e[et.BUILD]}?`);St("FULL",`^${$e[et.FULLPLAIN]}$`);St("LOOSEPLAIN",`[v=\\s]*${$e[et.MAINVERSIONLOOSE]}${$e[et.PRERELEASELOOSE]}?${$e[et.BUILD]}?`);St("LOOSE",`^${$e[et.LOOSEPLAIN]}$`);St("GTLT","((?:<|>)?=?)");St("XRANGEIDENTIFIERLOOSE",`${$e[et.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);St("XRANGEIDENTIFIER",`${$e[et.NUMERICIDENTIFIER]}|x|X|\\*`);St("XRANGEPLAIN",`[v=\\s]*(${$e[et.XRANGEIDENTIFIER]})(?:\\.(${$e[et.XRANGEIDENTIFIER]})(?:\\.(${$e[et.XRANGEIDENTIFIER]})(?:${$e[et.PRERELEASE]})?${$e[et.BUILD]}?)?)?`);St("XRANGEPLAINLOOSE",`[v=\\s]*(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:\\.(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:\\.(${$e[et.XRANGEIDENTIFIERLOOSE]})(?:${$e[et.PRERELEASELOOSE]})?${$e[et.BUILD]}?)?)?`);St("XRANGE",`^${$e[et.GTLT]}\\s*${$e[et.XRANGEPLAIN]}$`);St("XRANGELOOSE",`^${$e[et.GTLT]}\\s*${$e[et.XRANGEPLAINLOOSE]}$`);St("COERCE",`(^|[^\\d])(\\d{1,${tv}})(?:\\.(\\d{1,${tv}}))?(?:\\.(\\d{1,${tv}}))?(?:$|[^\\d])`);St("COERCERTL",$e[et.COERCE],!0);St("LONETILDE","(?:~>?)");St("TILDETRIM",`(\\s*)${$e[et.LONETILDE]}\\s+`,!0);bA.tildeTrimReplace="$1~";St("TILDE",`^${$e[et.LONETILDE]}${$e[et.XRANGEPLAIN]}$`);St("TILDELOOSE",`^${$e[et.LONETILDE]}${$e[et.XRANGEPLAINLOOSE]}$`);St("LONECARET","(?:\\^)");St("CARETTRIM",`(\\s*)${$e[et.LONECARET]}\\s+`,!0);bA.caretTrimReplace="$1^";St("CARET",`^${$e[et.LONECARET]}${$e[et.XRANGEPLAIN]}$`);St("CARETLOOSE",`^${$e[et.LONECARET]}${$e[et.XRANGEPLAINLOOSE]}$`);St("COMPARATORLOOSE",`^${$e[et.GTLT]}\\s*(${$e[et.LOOSEPLAIN]})$|^$`);St("COMPARATOR",`^${$e[et.GTLT]}\\s*(${$e[et.FULLPLAIN]})$|^$`);St("COMPARATORTRIM",`(\\s*)${$e[et.GTLT]}\\s*(${$e[et.LOOSEPLAIN]}|${$e[et.XRANGEPLAIN]})`,!0);bA.comparatorTrimReplace="$1$2$3";St("HYPHENRANGE",`^\\s*(${$e[et.XRANGEPLAIN]})\\s+-\\s+(${$e[et.XRANGEPLAIN]})\\s*$`);St("HYPHENRANGELOOSE",`^\\s*(${$e[et.XRANGEPLAINLOOSE]})\\s+-\\s+(${$e[et.XRANGEPLAINLOOSE]})\\s*$`);St("STAR","(<|>)?=?\\s*\\*");St("GTE0","^\\s*>=\\s*0.0.0\\s*$");St("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")});var rd=w((eZe,mH)=>{var xde=["includePrerelease","loose","rtl"],Pde=r=>r?typeof r!="object"?{loose:!0}:xde.filter(e=>r[e]).reduce((e,t)=>(e[t]=!0,e),{}):{};mH.exports=Pde});var bI=w((tZe,yH)=>{var EH=/^[0-9]+$/,IH=(r,e)=>{let t=EH.test(r),i=EH.test(e);return t&&i&&(r=+r,e=+e),r===e?0:t&&!i?-1:i&&!t?1:rIH(e,r);yH.exports={compareIdentifiers:IH,rcompareIdentifiers:Dde}});var Li=w((rZe,bH)=>{var SI=td(),{MAX_LENGTH:wH,MAX_SAFE_INTEGER:vI}=ed(),{re:BH,t:QH}=Zl(),kde=rd(),{compareIdentifiers:id}=bI(),Un=class{constructor(e,t){if(t=kde(t),e instanceof Un){if(e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease)return e;e=e.version}else if(typeof e!="string")throw new TypeError(`Invalid Version: ${e}`);if(e.length>wH)throw new TypeError(`version is longer than ${wH} characters`);SI("SemVer",e,t),this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease;let i=e.trim().match(t.loose?BH[QH.LOOSE]:BH[QH.FULL]);if(!i)throw new TypeError(`Invalid Version: ${e}`);if(this.raw=e,this.major=+i[1],this.minor=+i[2],this.patch=+i[3],this.major>vI||this.major<0)throw new TypeError("Invalid major version");if(this.minor>vI||this.minor<0)throw new TypeError("Invalid minor version");if(this.patch>vI||this.patch<0)throw new TypeError("Invalid patch version");i[4]?this.prerelease=i[4].split(".").map(n=>{if(/^[0-9]+$/.test(n)){let s=+n;if(s>=0&&s=0;)typeof this.prerelease[i]=="number"&&(this.prerelease[i]++,i=-2);i===-1&&this.prerelease.push(0)}t&&(this.prerelease[0]===t?isNaN(this.prerelease[1])&&(this.prerelease=[t,0]):this.prerelease=[t,0]);break;default:throw new Error(`invalid increment argument: ${e}`)}return this.format(),this.raw=this.version,this}};bH.exports=Un});var $l=w((iZe,PH)=>{var{MAX_LENGTH:Rde}=ed(),{re:SH,t:vH}=Zl(),xH=Li(),Fde=rd(),Nde=(r,e)=>{if(e=Fde(e),r instanceof xH)return r;if(typeof r!="string"||r.length>Rde||!(e.loose?SH[vH.LOOSE]:SH[vH.FULL]).test(r))return null;try{return new xH(r,e)}catch{return null}};PH.exports=Nde});var kH=w((nZe,DH)=>{var Lde=$l(),Tde=(r,e)=>{let t=Lde(r,e);return t?t.version:null};DH.exports=Tde});var FH=w((sZe,RH)=>{var Ode=$l(),Mde=(r,e)=>{let t=Ode(r.trim().replace(/^[=v]+/,""),e);return t?t.version:null};RH.exports=Mde});var LH=w((oZe,NH)=>{var Kde=Li(),Ude=(r,e,t,i)=>{typeof t=="string"&&(i=t,t=void 0);try{return new Kde(r,t).inc(e,i).version}catch{return null}};NH.exports=Ude});var ss=w((aZe,OH)=>{var TH=Li(),Hde=(r,e,t)=>new TH(r,t).compare(new TH(e,t));OH.exports=Hde});var xI=w((AZe,MH)=>{var Gde=ss(),Yde=(r,e,t)=>Gde(r,e,t)===0;MH.exports=Yde});var HH=w((lZe,UH)=>{var KH=$l(),jde=xI(),qde=(r,e)=>{if(jde(r,e))return null;{let t=KH(r),i=KH(e),n=t.prerelease.length||i.prerelease.length,s=n?"pre":"",o=n?"prerelease":"";for(let a in t)if((a==="major"||a==="minor"||a==="patch")&&t[a]!==i[a])return s+a;return o}};UH.exports=qde});var YH=w((cZe,GH)=>{var Jde=Li(),Wde=(r,e)=>new Jde(r,e).major;GH.exports=Wde});var qH=w((uZe,jH)=>{var zde=Li(),Vde=(r,e)=>new zde(r,e).minor;jH.exports=Vde});var WH=w((gZe,JH)=>{var Xde=Li(),_de=(r,e)=>new Xde(r,e).patch;JH.exports=_de});var VH=w((fZe,zH)=>{var Zde=$l(),$de=(r,e)=>{let t=Zde(r,e);return t&&t.prerelease.length?t.prerelease:null};zH.exports=$de});var _H=w((hZe,XH)=>{var eCe=ss(),tCe=(r,e,t)=>eCe(e,r,t);XH.exports=tCe});var $H=w((pZe,ZH)=>{var rCe=ss(),iCe=(r,e)=>rCe(r,e,!0);ZH.exports=iCe});var PI=w((dZe,tG)=>{var eG=Li(),nCe=(r,e,t)=>{let i=new eG(r,t),n=new eG(e,t);return i.compare(n)||i.compareBuild(n)};tG.exports=nCe});var iG=w((CZe,rG)=>{var sCe=PI(),oCe=(r,e)=>r.sort((t,i)=>sCe(t,i,e));rG.exports=oCe});var sG=w((mZe,nG)=>{var aCe=PI(),ACe=(r,e)=>r.sort((t,i)=>aCe(i,t,e));nG.exports=ACe});var nd=w((EZe,oG)=>{var lCe=ss(),cCe=(r,e,t)=>lCe(r,e,t)>0;oG.exports=cCe});var DI=w((IZe,aG)=>{var uCe=ss(),gCe=(r,e,t)=>uCe(r,e,t)<0;aG.exports=gCe});var rv=w((yZe,AG)=>{var fCe=ss(),hCe=(r,e,t)=>fCe(r,e,t)!==0;AG.exports=hCe});var kI=w((wZe,lG)=>{var pCe=ss(),dCe=(r,e,t)=>pCe(r,e,t)>=0;lG.exports=dCe});var RI=w((BZe,cG)=>{var CCe=ss(),mCe=(r,e,t)=>CCe(r,e,t)<=0;cG.exports=mCe});var iv=w((QZe,uG)=>{var ECe=xI(),ICe=rv(),yCe=nd(),wCe=kI(),BCe=DI(),QCe=RI(),bCe=(r,e,t,i)=>{switch(e){case"===":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r===t;case"!==":return typeof r=="object"&&(r=r.version),typeof t=="object"&&(t=t.version),r!==t;case"":case"=":case"==":return ECe(r,t,i);case"!=":return ICe(r,t,i);case">":return yCe(r,t,i);case">=":return wCe(r,t,i);case"<":return BCe(r,t,i);case"<=":return QCe(r,t,i);default:throw new TypeError(`Invalid operator: ${e}`)}};uG.exports=bCe});var fG=w((bZe,gG)=>{var SCe=Li(),vCe=$l(),{re:FI,t:NI}=Zl(),xCe=(r,e)=>{if(r instanceof SCe)return r;if(typeof r=="number"&&(r=String(r)),typeof r!="string")return null;e=e||{};let t=null;if(!e.rtl)t=r.match(FI[NI.COERCE]);else{let i;for(;(i=FI[NI.COERCERTL].exec(r))&&(!t||t.index+t[0].length!==r.length);)(!t||i.index+i[0].length!==t.index+t[0].length)&&(t=i),FI[NI.COERCERTL].lastIndex=i.index+i[1].length+i[2].length;FI[NI.COERCERTL].lastIndex=-1}return t===null?null:vCe(`${t[2]}.${t[3]||"0"}.${t[4]||"0"}`,e)};gG.exports=xCe});var pG=w((SZe,hG)=>{"use strict";hG.exports=function(r){r.prototype[Symbol.iterator]=function*(){for(let e=this.head;e;e=e.next)yield e.value}}});var sd=w((vZe,dG)=>{"use strict";dG.exports=Ht;Ht.Node=ec;Ht.create=Ht;function Ht(r){var e=this;if(e instanceof Ht||(e=new Ht),e.tail=null,e.head=null,e.length=0,r&&typeof r.forEach=="function")r.forEach(function(n){e.push(n)});else if(arguments.length>0)for(var t=0,i=arguments.length;t1)t=e;else if(this.head)i=this.head.next,t=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=0;i!==null;n++)t=r(t,i.value,n),i=i.next;return t};Ht.prototype.reduceReverse=function(r,e){var t,i=this.tail;if(arguments.length>1)t=e;else if(this.tail)i=this.tail.prev,t=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(var n=this.length-1;i!==null;n--)t=r(t,i.value,n),i=i.prev;return t};Ht.prototype.toArray=function(){for(var r=new Array(this.length),e=0,t=this.head;t!==null;e++)r[e]=t.value,t=t.next;return r};Ht.prototype.toArrayReverse=function(){for(var r=new Array(this.length),e=0,t=this.tail;t!==null;e++)r[e]=t.value,t=t.prev;return r};Ht.prototype.slice=function(r,e){e=e||this.length,e<0&&(e+=this.length),r=r||0,r<0&&(r+=this.length);var t=new Ht;if(ethis.length&&(e=this.length);for(var i=0,n=this.head;n!==null&&ithis.length&&(e=this.length);for(var i=this.length,n=this.tail;n!==null&&i>e;i--)n=n.prev;for(;n!==null&&i>r;i--,n=n.prev)t.push(n.value);return t};Ht.prototype.splice=function(r,e,...t){r>this.length&&(r=this.length-1),r<0&&(r=this.length+r);for(var i=0,n=this.head;n!==null&&i{"use strict";var RCe=sd(),tc=Symbol("max"),Ia=Symbol("length"),Og=Symbol("lengthCalculator"),ad=Symbol("allowStale"),rc=Symbol("maxAge"),Ea=Symbol("dispose"),CG=Symbol("noDisposeOnSet"),di=Symbol("lruList"),Ws=Symbol("cache"),EG=Symbol("updateAgeOnGet"),nv=()=>1,ov=class{constructor(e){if(typeof e=="number"&&(e={max:e}),e||(e={}),e.max&&(typeof e.max!="number"||e.max<0))throw new TypeError("max must be a non-negative number");let t=this[tc]=e.max||1/0,i=e.length||nv;if(this[Og]=typeof i!="function"?nv:i,this[ad]=e.stale||!1,e.maxAge&&typeof e.maxAge!="number")throw new TypeError("maxAge must be a number");this[rc]=e.maxAge||0,this[Ea]=e.dispose,this[CG]=e.noDisposeOnSet||!1,this[EG]=e.updateAgeOnGet||!1,this.reset()}set max(e){if(typeof e!="number"||e<0)throw new TypeError("max must be a non-negative number");this[tc]=e||1/0,od(this)}get max(){return this[tc]}set allowStale(e){this[ad]=!!e}get allowStale(){return this[ad]}set maxAge(e){if(typeof e!="number")throw new TypeError("maxAge must be a non-negative number");this[rc]=e,od(this)}get maxAge(){return this[rc]}set lengthCalculator(e){typeof e!="function"&&(e=nv),e!==this[Og]&&(this[Og]=e,this[Ia]=0,this[di].forEach(t=>{t.length=this[Og](t.value,t.key),this[Ia]+=t.length})),od(this)}get lengthCalculator(){return this[Og]}get length(){return this[Ia]}get itemCount(){return this[di].length}rforEach(e,t){t=t||this;for(let i=this[di].tail;i!==null;){let n=i.prev;mG(this,e,i,t),i=n}}forEach(e,t){t=t||this;for(let i=this[di].head;i!==null;){let n=i.next;mG(this,e,i,t),i=n}}keys(){return this[di].toArray().map(e=>e.key)}values(){return this[di].toArray().map(e=>e.value)}reset(){this[Ea]&&this[di]&&this[di].length&&this[di].forEach(e=>this[Ea](e.key,e.value)),this[Ws]=new Map,this[di]=new RCe,this[Ia]=0}dump(){return this[di].map(e=>LI(this,e)?!1:{k:e.key,v:e.value,e:e.now+(e.maxAge||0)}).toArray().filter(e=>e)}dumpLru(){return this[di]}set(e,t,i){if(i=i||this[rc],i&&typeof i!="number")throw new TypeError("maxAge must be a number");let n=i?Date.now():0,s=this[Og](t,e);if(this[Ws].has(e)){if(s>this[tc])return Mg(this,this[Ws].get(e)),!1;let l=this[Ws].get(e).value;return this[Ea]&&(this[CG]||this[Ea](e,l.value)),l.now=n,l.maxAge=i,l.value=t,this[Ia]+=s-l.length,l.length=s,this.get(e),od(this),!0}let o=new av(e,t,s,n,i);return o.length>this[tc]?(this[Ea]&&this[Ea](e,t),!1):(this[Ia]+=o.length,this[di].unshift(o),this[Ws].set(e,this[di].head),od(this),!0)}has(e){if(!this[Ws].has(e))return!1;let t=this[Ws].get(e).value;return!LI(this,t)}get(e){return sv(this,e,!0)}peek(e){return sv(this,e,!1)}pop(){let e=this[di].tail;return e?(Mg(this,e),e.value):null}del(e){Mg(this,this[Ws].get(e))}load(e){this.reset();let t=Date.now();for(let i=e.length-1;i>=0;i--){let n=e[i],s=n.e||0;if(s===0)this.set(n.k,n.v);else{let o=s-t;o>0&&this.set(n.k,n.v,o)}}}prune(){this[Ws].forEach((e,t)=>sv(this,t,!1))}},sv=(r,e,t)=>{let i=r[Ws].get(e);if(i){let n=i.value;if(LI(r,n)){if(Mg(r,i),!r[ad])return}else t&&(r[EG]&&(i.value.now=Date.now()),r[di].unshiftNode(i));return n.value}},LI=(r,e)=>{if(!e||!e.maxAge&&!r[rc])return!1;let t=Date.now()-e.now;return e.maxAge?t>e.maxAge:r[rc]&&t>r[rc]},od=r=>{if(r[Ia]>r[tc])for(let e=r[di].tail;r[Ia]>r[tc]&&e!==null;){let t=e.prev;Mg(r,e),e=t}},Mg=(r,e)=>{if(e){let t=e.value;r[Ea]&&r[Ea](t.key,t.value),r[Ia]-=t.length,r[Ws].delete(t.key),r[di].removeNode(e)}},av=class{constructor(e,t,i,n,s){this.key=e,this.value=t,this.length=i,this.now=n,this.maxAge=s||0}},mG=(r,e,t,i)=>{let n=t.value;LI(r,n)&&(Mg(r,t),r[ad]||(n=void 0)),n&&e.call(i,n.value,n.key,r)};IG.exports=ov});var os=w((PZe,bG)=>{var ic=class{constructor(e,t){if(t=NCe(t),e instanceof ic)return e.loose===!!t.loose&&e.includePrerelease===!!t.includePrerelease?e:new ic(e.raw,t);if(e instanceof Av)return this.raw=e.value,this.set=[[e]],this.format(),this;if(this.options=t,this.loose=!!t.loose,this.includePrerelease=!!t.includePrerelease,this.raw=e,this.set=e.split(/\s*\|\|\s*/).map(i=>this.parseRange(i.trim())).filter(i=>i.length),!this.set.length)throw new TypeError(`Invalid SemVer Range: ${e}`);if(this.set.length>1){let i=this.set[0];if(this.set=this.set.filter(n=>!BG(n[0])),this.set.length===0)this.set=[i];else if(this.set.length>1){for(let n of this.set)if(n.length===1&&KCe(n[0])){this.set=[n];break}}}this.format()}format(){return this.range=this.set.map(e=>e.join(" ").trim()).join("||").trim(),this.range}toString(){return this.range}parseRange(e){e=e.trim();let i=`parseRange:${Object.keys(this.options).join(",")}:${e}`,n=wG.get(i);if(n)return n;let s=this.options.loose,o=s?Ti[Bi.HYPHENRANGELOOSE]:Ti[Bi.HYPHENRANGE];e=e.replace(o,VCe(this.options.includePrerelease)),Gr("hyphen replace",e),e=e.replace(Ti[Bi.COMPARATORTRIM],TCe),Gr("comparator trim",e,Ti[Bi.COMPARATORTRIM]),e=e.replace(Ti[Bi.TILDETRIM],OCe),e=e.replace(Ti[Bi.CARETTRIM],MCe),e=e.split(/\s+/).join(" ");let a=s?Ti[Bi.COMPARATORLOOSE]:Ti[Bi.COMPARATOR],l=e.split(" ").map(f=>UCe(f,this.options)).join(" ").split(/\s+/).map(f=>zCe(f,this.options)).filter(this.options.loose?f=>!!f.match(a):()=>!0).map(f=>new Av(f,this.options)),c=l.length,u=new Map;for(let f of l){if(BG(f))return[f];u.set(f.value,f)}u.size>1&&u.has("")&&u.delete("");let g=[...u.values()];return wG.set(i,g),g}intersects(e,t){if(!(e instanceof ic))throw new TypeError("a Range is required");return this.set.some(i=>QG(i,t)&&e.set.some(n=>QG(n,t)&&i.every(s=>n.every(o=>s.intersects(o,t)))))}test(e){if(!e)return!1;if(typeof e=="string")try{e=new LCe(e,this.options)}catch{return!1}for(let t=0;tr.value==="<0.0.0-0",KCe=r=>r.value==="",QG=(r,e)=>{let t=!0,i=r.slice(),n=i.pop();for(;t&&i.length;)t=i.every(s=>n.intersects(s,e)),n=i.pop();return t},UCe=(r,e)=>(Gr("comp",r,e),r=YCe(r,e),Gr("caret",r),r=HCe(r,e),Gr("tildes",r),r=qCe(r,e),Gr("xrange",r),r=WCe(r,e),Gr("stars",r),r),Vi=r=>!r||r.toLowerCase()==="x"||r==="*",HCe=(r,e)=>r.trim().split(/\s+/).map(t=>GCe(t,e)).join(" "),GCe=(r,e)=>{let t=e.loose?Ti[Bi.TILDELOOSE]:Ti[Bi.TILDE];return r.replace(t,(i,n,s,o,a)=>{Gr("tilde",r,i,n,s,o,a);let l;return Vi(n)?l="":Vi(s)?l=`>=${n}.0.0 <${+n+1}.0.0-0`:Vi(o)?l=`>=${n}.${s}.0 <${n}.${+s+1}.0-0`:a?(Gr("replaceTilde pr",a),l=`>=${n}.${s}.${o}-${a} <${n}.${+s+1}.0-0`):l=`>=${n}.${s}.${o} <${n}.${+s+1}.0-0`,Gr("tilde return",l),l})},YCe=(r,e)=>r.trim().split(/\s+/).map(t=>jCe(t,e)).join(" "),jCe=(r,e)=>{Gr("caret",r,e);let t=e.loose?Ti[Bi.CARETLOOSE]:Ti[Bi.CARET],i=e.includePrerelease?"-0":"";return r.replace(t,(n,s,o,a,l)=>{Gr("caret",r,n,s,o,a,l);let c;return Vi(s)?c="":Vi(o)?c=`>=${s}.0.0${i} <${+s+1}.0.0-0`:Vi(a)?s==="0"?c=`>=${s}.${o}.0${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.0${i} <${+s+1}.0.0-0`:l?(Gr("replaceCaret pr",l),s==="0"?o==="0"?c=`>=${s}.${o}.${a}-${l} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}-${l} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a}-${l} <${+s+1}.0.0-0`):(Gr("no pr"),s==="0"?o==="0"?c=`>=${s}.${o}.${a}${i} <${s}.${o}.${+a+1}-0`:c=`>=${s}.${o}.${a}${i} <${s}.${+o+1}.0-0`:c=`>=${s}.${o}.${a} <${+s+1}.0.0-0`),Gr("caret return",c),c})},qCe=(r,e)=>(Gr("replaceXRanges",r,e),r.split(/\s+/).map(t=>JCe(t,e)).join(" ")),JCe=(r,e)=>{r=r.trim();let t=e.loose?Ti[Bi.XRANGELOOSE]:Ti[Bi.XRANGE];return r.replace(t,(i,n,s,o,a,l)=>{Gr("xRange",r,i,n,s,o,a,l);let c=Vi(s),u=c||Vi(o),g=u||Vi(a),f=g;return n==="="&&f&&(n=""),l=e.includePrerelease?"-0":"",c?n===">"||n==="<"?i="<0.0.0-0":i="*":n&&f?(u&&(o=0),a=0,n===">"?(n=">=",u?(s=+s+1,o=0,a=0):(o=+o+1,a=0)):n==="<="&&(n="<",u?s=+s+1:o=+o+1),n==="<"&&(l="-0"),i=`${n+s}.${o}.${a}${l}`):u?i=`>=${s}.0.0${l} <${+s+1}.0.0-0`:g&&(i=`>=${s}.${o}.0${l} <${s}.${+o+1}.0-0`),Gr("xRange return",i),i})},WCe=(r,e)=>(Gr("replaceStars",r,e),r.trim().replace(Ti[Bi.STAR],"")),zCe=(r,e)=>(Gr("replaceGTE0",r,e),r.trim().replace(Ti[e.includePrerelease?Bi.GTE0PRE:Bi.GTE0],"")),VCe=r=>(e,t,i,n,s,o,a,l,c,u,g,f,h)=>(Vi(i)?t="":Vi(n)?t=`>=${i}.0.0${r?"-0":""}`:Vi(s)?t=`>=${i}.${n}.0${r?"-0":""}`:o?t=`>=${t}`:t=`>=${t}${r?"-0":""}`,Vi(c)?l="":Vi(u)?l=`<${+c+1}.0.0-0`:Vi(g)?l=`<${c}.${+u+1}.0-0`:f?l=`<=${c}.${u}.${g}-${f}`:r?l=`<${c}.${u}.${+g+1}-0`:l=`<=${l}`,`${t} ${l}`.trim()),XCe=(r,e,t)=>{for(let i=0;i0){let n=r[i].semver;if(n.major===e.major&&n.minor===e.minor&&n.patch===e.patch)return!0}return!1}return!0}});var Ad=w((DZe,DG)=>{var ld=Symbol("SemVer ANY"),Kg=class{static get ANY(){return ld}constructor(e,t){if(t=_Ce(t),e instanceof Kg){if(e.loose===!!t.loose)return e;e=e.value}cv("comparator",e,t),this.options=t,this.loose=!!t.loose,this.parse(e),this.semver===ld?this.value="":this.value=this.operator+this.semver.version,cv("comp",this)}parse(e){let t=this.options.loose?SG[vG.COMPARATORLOOSE]:SG[vG.COMPARATOR],i=e.match(t);if(!i)throw new TypeError(`Invalid comparator: ${e}`);this.operator=i[1]!==void 0?i[1]:"",this.operator==="="&&(this.operator=""),i[2]?this.semver=new xG(i[2],this.options.loose):this.semver=ld}toString(){return this.value}test(e){if(cv("Comparator.test",e,this.options.loose),this.semver===ld||e===ld)return!0;if(typeof e=="string")try{e=new xG(e,this.options)}catch{return!1}return lv(e,this.operator,this.semver,this.options)}intersects(e,t){if(!(e instanceof Kg))throw new TypeError("a Comparator is required");if((!t||typeof t!="object")&&(t={loose:!!t,includePrerelease:!1}),this.operator==="")return this.value===""?!0:new PG(e.value,t).test(this.value);if(e.operator==="")return e.value===""?!0:new PG(this.value,t).test(e.semver);let i=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">"),n=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<"),s=this.semver.version===e.semver.version,o=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<="),a=lv(this.semver,"<",e.semver,t)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<"),l=lv(this.semver,">",e.semver,t)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return i||n||s&&o||a||l}};DG.exports=Kg;var _Ce=rd(),{re:SG,t:vG}=Zl(),lv=iv(),cv=td(),xG=Li(),PG=os()});var cd=w((kZe,kG)=>{var ZCe=os(),$Ce=(r,e,t)=>{try{e=new ZCe(e,t)}catch{return!1}return e.test(r)};kG.exports=$Ce});var FG=w((RZe,RG)=>{var eme=os(),tme=(r,e)=>new eme(r,e).set.map(t=>t.map(i=>i.value).join(" ").trim().split(" "));RG.exports=tme});var LG=w((FZe,NG)=>{var rme=Li(),ime=os(),nme=(r,e,t)=>{let i=null,n=null,s=null;try{s=new ime(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===-1)&&(i=o,n=new rme(i,t))}),i};NG.exports=nme});var OG=w((NZe,TG)=>{var sme=Li(),ome=os(),ame=(r,e,t)=>{let i=null,n=null,s=null;try{s=new ome(e,t)}catch{return null}return r.forEach(o=>{s.test(o)&&(!i||n.compare(o)===1)&&(i=o,n=new sme(i,t))}),i};TG.exports=ame});var UG=w((LZe,KG)=>{var uv=Li(),Ame=os(),MG=nd(),lme=(r,e)=>{r=new Ame(r,e);let t=new uv("0.0.0");if(r.test(t)||(t=new uv("0.0.0-0"),r.test(t)))return t;t=null;for(let i=0;i{let a=new uv(o.semver.version);switch(o.operator){case">":a.prerelease.length===0?a.patch++:a.prerelease.push(0),a.raw=a.format();case"":case">=":(!s||MG(a,s))&&(s=a);break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${o.operator}`)}}),s&&(!t||MG(t,s))&&(t=s)}return t&&r.test(t)?t:null};KG.exports=lme});var GG=w((TZe,HG)=>{var cme=os(),ume=(r,e)=>{try{return new cme(r,e).range||"*"}catch{return null}};HG.exports=ume});var TI=w((OZe,JG)=>{var gme=Li(),qG=Ad(),{ANY:fme}=qG,hme=os(),pme=cd(),YG=nd(),jG=DI(),dme=RI(),Cme=kI(),mme=(r,e,t,i)=>{r=new gme(r,i),e=new hme(e,i);let n,s,o,a,l;switch(t){case">":n=YG,s=dme,o=jG,a=">",l=">=";break;case"<":n=jG,s=Cme,o=YG,a="<",l="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(pme(r,e,i))return!1;for(let c=0;c{h.semver===fme&&(h=new qG(">=0.0.0")),g=g||h,f=f||h,n(h.semver,g.semver,i)?g=h:o(h.semver,f.semver,i)&&(f=h)}),g.operator===a||g.operator===l||(!f.operator||f.operator===a)&&s(r,f.semver))return!1;if(f.operator===l&&o(r,f.semver))return!1}return!0};JG.exports=mme});var zG=w((MZe,WG)=>{var Eme=TI(),Ime=(r,e,t)=>Eme(r,e,">",t);WG.exports=Ime});var XG=w((KZe,VG)=>{var yme=TI(),wme=(r,e,t)=>yme(r,e,"<",t);VG.exports=wme});var $G=w((UZe,ZG)=>{var _G=os(),Bme=(r,e,t)=>(r=new _G(r,t),e=new _G(e,t),r.intersects(e));ZG.exports=Bme});var tY=w((HZe,eY)=>{var Qme=cd(),bme=ss();eY.exports=(r,e,t)=>{let i=[],n=null,s=null,o=r.sort((u,g)=>bme(u,g,t));for(let u of o)Qme(u,e,t)?(s=u,n||(n=u)):(s&&i.push([n,s]),s=null,n=null);n&&i.push([n,null]);let a=[];for(let[u,g]of i)u===g?a.push(u):!g&&u===o[0]?a.push("*"):g?u===o[0]?a.push(`<=${g}`):a.push(`${u} - ${g}`):a.push(`>=${u}`);let l=a.join(" || "),c=typeof e.raw=="string"?e.raw:String(e);return l.length{var rY=os(),OI=Ad(),{ANY:gv}=OI,ud=cd(),fv=ss(),Sme=(r,e,t={})=>{if(r===e)return!0;r=new rY(r,t),e=new rY(e,t);let i=!1;e:for(let n of r.set){for(let s of e.set){let o=vme(n,s,t);if(i=i||o!==null,o)continue e}if(i)return!1}return!0},vme=(r,e,t)=>{if(r===e)return!0;if(r.length===1&&r[0].semver===gv){if(e.length===1&&e[0].semver===gv)return!0;t.includePrerelease?r=[new OI(">=0.0.0-0")]:r=[new OI(">=0.0.0")]}if(e.length===1&&e[0].semver===gv){if(t.includePrerelease)return!0;e=[new OI(">=0.0.0")]}let i=new Set,n,s;for(let h of r)h.operator===">"||h.operator===">="?n=iY(n,h,t):h.operator==="<"||h.operator==="<="?s=nY(s,h,t):i.add(h.semver);if(i.size>1)return null;let o;if(n&&s){if(o=fv(n.semver,s.semver,t),o>0)return null;if(o===0&&(n.operator!==">="||s.operator!=="<="))return null}for(let h of i){if(n&&!ud(h,String(n),t)||s&&!ud(h,String(s),t))return null;for(let p of e)if(!ud(h,String(p),t))return!1;return!0}let a,l,c,u,g=s&&!t.includePrerelease&&s.semver.prerelease.length?s.semver:!1,f=n&&!t.includePrerelease&&n.semver.prerelease.length?n.semver:!1;g&&g.prerelease.length===1&&s.operator==="<"&&g.prerelease[0]===0&&(g=!1);for(let h of e){if(u=u||h.operator===">"||h.operator===">=",c=c||h.operator==="<"||h.operator==="<=",n){if(f&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===f.major&&h.semver.minor===f.minor&&h.semver.patch===f.patch&&(f=!1),h.operator===">"||h.operator===">="){if(a=iY(n,h,t),a===h&&a!==n)return!1}else if(n.operator===">="&&!ud(n.semver,String(h),t))return!1}if(s){if(g&&h.semver.prerelease&&h.semver.prerelease.length&&h.semver.major===g.major&&h.semver.minor===g.minor&&h.semver.patch===g.patch&&(g=!1),h.operator==="<"||h.operator==="<="){if(l=nY(s,h,t),l===h&&l!==s)return!1}else if(s.operator==="<="&&!ud(s.semver,String(h),t))return!1}if(!h.operator&&(s||n)&&o!==0)return!1}return!(n&&c&&!s&&o!==0||s&&u&&!n&&o!==0||f||g)},iY=(r,e,t)=>{if(!r)return e;let i=fv(r.semver,e.semver,t);return i>0?r:i<0||e.operator===">"&&r.operator===">="?e:r},nY=(r,e,t)=>{if(!r)return e;let i=fv(r.semver,e.semver,t);return i<0?r:i>0||e.operator==="<"&&r.operator==="<="?e:r};sY.exports=Sme});var Xr=w((YZe,aY)=>{var hv=Zl();aY.exports={re:hv.re,src:hv.src,tokens:hv.t,SEMVER_SPEC_VERSION:ed().SEMVER_SPEC_VERSION,SemVer:Li(),compareIdentifiers:bI().compareIdentifiers,rcompareIdentifiers:bI().rcompareIdentifiers,parse:$l(),valid:kH(),clean:FH(),inc:LH(),diff:HH(),major:YH(),minor:qH(),patch:WH(),prerelease:VH(),compare:ss(),rcompare:_H(),compareLoose:$H(),compareBuild:PI(),sort:iG(),rsort:sG(),gt:nd(),lt:DI(),eq:xI(),neq:rv(),gte:kI(),lte:RI(),cmp:iv(),coerce:fG(),Comparator:Ad(),Range:os(),satisfies:cd(),toComparators:FG(),maxSatisfying:LG(),minSatisfying:OG(),minVersion:UG(),validRange:GG(),outside:TI(),gtr:zG(),ltr:XG(),intersects:$G(),simplifyRange:tY(),subset:oY()}});var pv=w(MI=>{"use strict";Object.defineProperty(MI,"__esModule",{value:!0});MI.VERSION=void 0;MI.VERSION="9.1.0"});var Gt=w((exports,module)=>{"use strict";var __spreadArray=exports&&exports.__spreadArray||function(r,e,t){if(t||arguments.length===2)for(var i=0,n=e.length,s;i{(function(r,e){typeof define=="function"&&define.amd?define([],e):typeof KI=="object"&&KI.exports?KI.exports=e():r.regexpToAst=e()})(typeof self<"u"?self:AY,function(){function r(){}r.prototype.saveState=function(){return{idx:this.idx,input:this.input,groupIdx:this.groupIdx}},r.prototype.restoreState=function(p){this.idx=p.idx,this.input=p.input,this.groupIdx=p.groupIdx},r.prototype.pattern=function(p){this.idx=0,this.input=p,this.groupIdx=0,this.consumeChar("/");var C=this.disjunction();this.consumeChar("/");for(var y={type:"Flags",loc:{begin:this.idx,end:p.length},global:!1,ignoreCase:!1,multiLine:!1,unicode:!1,sticky:!1};this.isRegExpFlag();)switch(this.popChar()){case"g":o(y,"global");break;case"i":o(y,"ignoreCase");break;case"m":o(y,"multiLine");break;case"u":o(y,"unicode");break;case"y":o(y,"sticky");break}if(this.idx!==this.input.length)throw Error("Redundant input: "+this.input.substring(this.idx));return{type:"Pattern",flags:y,value:C,loc:this.loc(0)}},r.prototype.disjunction=function(){var p=[],C=this.idx;for(p.push(this.alternative());this.peekChar()==="|";)this.consumeChar("|"),p.push(this.alternative());return{type:"Disjunction",value:p,loc:this.loc(C)}},r.prototype.alternative=function(){for(var p=[],C=this.idx;this.isTerm();)p.push(this.term());return{type:"Alternative",value:p,loc:this.loc(C)}},r.prototype.term=function(){return this.isAssertion()?this.assertion():this.atom()},r.prototype.assertion=function(){var p=this.idx;switch(this.popChar()){case"^":return{type:"StartAnchor",loc:this.loc(p)};case"$":return{type:"EndAnchor",loc:this.loc(p)};case"\\":switch(this.popChar()){case"b":return{type:"WordBoundary",loc:this.loc(p)};case"B":return{type:"NonWordBoundary",loc:this.loc(p)}}throw Error("Invalid Assertion Escape");case"(":this.consumeChar("?");var C;switch(this.popChar()){case"=":C="Lookahead";break;case"!":C="NegativeLookahead";break}a(C);var y=this.disjunction();return this.consumeChar(")"),{type:C,value:y,loc:this.loc(p)}}l()},r.prototype.quantifier=function(p){var C,y=this.idx;switch(this.popChar()){case"*":C={atLeast:0,atMost:1/0};break;case"+":C={atLeast:1,atMost:1/0};break;case"?":C={atLeast:0,atMost:1};break;case"{":var B=this.integerIncludingZero();switch(this.popChar()){case"}":C={atLeast:B,atMost:B};break;case",":var v;this.isDigit()?(v=this.integerIncludingZero(),C={atLeast:B,atMost:v}):C={atLeast:B,atMost:1/0},this.consumeChar("}");break}if(p===!0&&C===void 0)return;a(C);break}if(!(p===!0&&C===void 0))return a(C),this.peekChar(0)==="?"?(this.consumeChar("?"),C.greedy=!1):C.greedy=!0,C.type="Quantifier",C.loc=this.loc(y),C},r.prototype.atom=function(){var p,C=this.idx;switch(this.peekChar()){case".":p=this.dotAll();break;case"\\":p=this.atomEscape();break;case"[":p=this.characterClass();break;case"(":p=this.group();break}return p===void 0&&this.isPatternCharacter()&&(p=this.patternCharacter()),a(p),p.loc=this.loc(C),this.isQuantifier()&&(p.quantifier=this.quantifier()),p},r.prototype.dotAll=function(){return this.consumeChar("."),{type:"Set",complement:!0,value:[n(` +`),n("\r"),n("\u2028"),n("\u2029")]}},r.prototype.atomEscape=function(){switch(this.consumeChar("\\"),this.peekChar()){case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":return this.decimalEscapeAtom();case"d":case"D":case"s":case"S":case"w":case"W":return this.characterClassEscape();case"f":case"n":case"r":case"t":case"v":return this.controlEscapeAtom();case"c":return this.controlLetterEscapeAtom();case"0":return this.nulCharacterAtom();case"x":return this.hexEscapeSequenceAtom();case"u":return this.regExpUnicodeEscapeSequenceAtom();default:return this.identityEscapeAtom()}},r.prototype.decimalEscapeAtom=function(){var p=this.positiveInteger();return{type:"GroupBackReference",value:p}},r.prototype.characterClassEscape=function(){var p,C=!1;switch(this.popChar()){case"d":p=u;break;case"D":p=u,C=!0;break;case"s":p=f;break;case"S":p=f,C=!0;break;case"w":p=g;break;case"W":p=g,C=!0;break}return a(p),{type:"Set",value:p,complement:C}},r.prototype.controlEscapeAtom=function(){var p;switch(this.popChar()){case"f":p=n("\f");break;case"n":p=n(` +`);break;case"r":p=n("\r");break;case"t":p=n(" ");break;case"v":p=n("\v");break}return a(p),{type:"Character",value:p}},r.prototype.controlLetterEscapeAtom=function(){this.consumeChar("c");var p=this.popChar();if(/[a-zA-Z]/.test(p)===!1)throw Error("Invalid ");var C=p.toUpperCase().charCodeAt(0)-64;return{type:"Character",value:C}},r.prototype.nulCharacterAtom=function(){return this.consumeChar("0"),{type:"Character",value:n("\0")}},r.prototype.hexEscapeSequenceAtom=function(){return this.consumeChar("x"),this.parseHexDigits(2)},r.prototype.regExpUnicodeEscapeSequenceAtom=function(){return this.consumeChar("u"),this.parseHexDigits(4)},r.prototype.identityEscapeAtom=function(){var p=this.popChar();return{type:"Character",value:n(p)}},r.prototype.classPatternCharacterAtom=function(){switch(this.peekChar()){case` +`:case"\r":case"\u2028":case"\u2029":case"\\":case"]":throw Error("TBD");default:var p=this.popChar();return{type:"Character",value:n(p)}}},r.prototype.characterClass=function(){var p=[],C=!1;for(this.consumeChar("["),this.peekChar(0)==="^"&&(this.consumeChar("^"),C=!0);this.isClassAtom();){var y=this.classAtom(),B=y.type==="Character";if(B&&this.isRangeDash()){this.consumeChar("-");var v=this.classAtom(),D=v.type==="Character";if(D){if(v.value=this.input.length)throw Error("Unexpected end of input");this.idx++},r.prototype.loc=function(p){return{begin:p,end:this.idx}};var e=/[0-9a-fA-F]/,t=/[0-9]/,i=/[1-9]/;function n(p){return p.charCodeAt(0)}function s(p,C){p.length!==void 0?p.forEach(function(y){C.push(y)}):C.push(p)}function o(p,C){if(p[C]===!0)throw"duplicate flag "+C;p[C]=!0}function a(p){if(p===void 0)throw Error("Internal Error - Should never get here!")}function l(){throw Error("Internal Error - Should never get here!")}var c,u=[];for(c=n("0");c<=n("9");c++)u.push(c);var g=[n("_")].concat(u);for(c=n("a");c<=n("z");c++)g.push(c);for(c=n("A");c<=n("Z");c++)g.push(c);var f=[n(" "),n("\f"),n(` +`),n("\r"),n(" "),n("\v"),n(" "),n("\xA0"),n("\u1680"),n("\u2000"),n("\u2001"),n("\u2002"),n("\u2003"),n("\u2004"),n("\u2005"),n("\u2006"),n("\u2007"),n("\u2008"),n("\u2009"),n("\u200A"),n("\u2028"),n("\u2029"),n("\u202F"),n("\u205F"),n("\u3000"),n("\uFEFF")];function h(){}return h.prototype.visitChildren=function(p){for(var C in p){var y=p[C];p.hasOwnProperty(C)&&(y.type!==void 0?this.visit(y):Array.isArray(y)&&y.forEach(function(B){this.visit(B)},this))}},h.prototype.visit=function(p){switch(p.type){case"Pattern":this.visitPattern(p);break;case"Flags":this.visitFlags(p);break;case"Disjunction":this.visitDisjunction(p);break;case"Alternative":this.visitAlternative(p);break;case"StartAnchor":this.visitStartAnchor(p);break;case"EndAnchor":this.visitEndAnchor(p);break;case"WordBoundary":this.visitWordBoundary(p);break;case"NonWordBoundary":this.visitNonWordBoundary(p);break;case"Lookahead":this.visitLookahead(p);break;case"NegativeLookahead":this.visitNegativeLookahead(p);break;case"Character":this.visitCharacter(p);break;case"Set":this.visitSet(p);break;case"Group":this.visitGroup(p);break;case"GroupBackReference":this.visitGroupBackReference(p);break;case"Quantifier":this.visitQuantifier(p);break}this.visitChildren(p)},h.prototype.visitPattern=function(p){},h.prototype.visitFlags=function(p){},h.prototype.visitDisjunction=function(p){},h.prototype.visitAlternative=function(p){},h.prototype.visitStartAnchor=function(p){},h.prototype.visitEndAnchor=function(p){},h.prototype.visitWordBoundary=function(p){},h.prototype.visitNonWordBoundary=function(p){},h.prototype.visitLookahead=function(p){},h.prototype.visitNegativeLookahead=function(p){},h.prototype.visitCharacter=function(p){},h.prototype.visitSet=function(p){},h.prototype.visitGroup=function(p){},h.prototype.visitGroupBackReference=function(p){},h.prototype.visitQuantifier=function(p){},{RegExpParser:r,BaseRegExpVisitor:h,VERSION:"0.5.0"}})});var GI=w(Ug=>{"use strict";Object.defineProperty(Ug,"__esModule",{value:!0});Ug.clearRegExpParserCache=Ug.getRegExpAst=void 0;var xme=UI(),HI={},Pme=new xme.RegExpParser;function Dme(r){var e=r.toString();if(HI.hasOwnProperty(e))return HI[e];var t=Pme.pattern(e);return HI[e]=t,t}Ug.getRegExpAst=Dme;function kme(){HI={}}Ug.clearRegExpParserCache=kme});var fY=w(pn=>{"use strict";var Rme=pn&&pn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(pn,"__esModule",{value:!0});pn.canMatchCharCode=pn.firstCharOptimizedIndices=pn.getOptimizedStartCodesIndices=pn.failedOptimizationPrefixMsg=void 0;var cY=UI(),as=Gt(),uY=GI(),ya=Cv(),gY="Complement Sets are not supported for first char optimization";pn.failedOptimizationPrefixMsg=`Unable to use "first char" lexer optimizations: +`;function Fme(r,e){e===void 0&&(e=!1);try{var t=(0,uY.getRegExpAst)(r),i=jI(t.value,{},t.flags.ignoreCase);return i}catch(s){if(s.message===gY)e&&(0,as.PRINT_WARNING)(""+pn.failedOptimizationPrefixMsg+(" Unable to optimize: < "+r.toString()+` > +`)+` Complement Sets cannot be automatically optimized. + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#COMPLEMENT for details.`);else{var n="";e&&(n=` + This will disable the lexer's first char optimizations. + See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#REGEXP_PARSING for details.`),(0,as.PRINT_ERROR)(pn.failedOptimizationPrefixMsg+` +`+(" Failed parsing: < "+r.toString()+` > +`)+(" Using the regexp-to-ast library version: "+cY.VERSION+` +`)+" Please open an issue at: https://github.com/bd82/regexp-to-ast/issues"+n)}}return[]}pn.getOptimizedStartCodesIndices=Fme;function jI(r,e,t){switch(r.type){case"Disjunction":for(var i=0;i=ya.minOptimizationVal)for(var f=u.from>=ya.minOptimizationVal?u.from:ya.minOptimizationVal,h=u.to,p=(0,ya.charCodeToOptimizedIndex)(f),C=(0,ya.charCodeToOptimizedIndex)(h),y=p;y<=C;y++)e[y]=y}}});break;case"Group":jI(o.value,e,t);break;default:throw Error("Non Exhaustive Match")}var a=o.quantifier!==void 0&&o.quantifier.atLeast===0;if(o.type==="Group"&&dv(o)===!1||o.type!=="Group"&&a===!1)break}break;default:throw Error("non exhaustive match!")}return(0,as.values)(e)}pn.firstCharOptimizedIndices=jI;function YI(r,e,t){var i=(0,ya.charCodeToOptimizedIndex)(r);e[i]=i,t===!0&&Nme(r,e)}function Nme(r,e){var t=String.fromCharCode(r),i=t.toUpperCase();if(i!==t){var n=(0,ya.charCodeToOptimizedIndex)(i.charCodeAt(0));e[n]=n}else{var s=t.toLowerCase();if(s!==t){var n=(0,ya.charCodeToOptimizedIndex)(s.charCodeAt(0));e[n]=n}}}function lY(r,e){return(0,as.find)(r.value,function(t){if(typeof t=="number")return(0,as.contains)(e,t);var i=t;return(0,as.find)(e,function(n){return i.from<=n&&n<=i.to})!==void 0})}function dv(r){return r.quantifier&&r.quantifier.atLeast===0?!0:r.value?(0,as.isArray)(r.value)?(0,as.every)(r.value,dv):dv(r.value):!1}var Lme=function(r){Rme(e,r);function e(t){var i=r.call(this)||this;return i.targetCharCodes=t,i.found=!1,i}return e.prototype.visitChildren=function(t){if(this.found!==!0){switch(t.type){case"Lookahead":this.visitLookahead(t);return;case"NegativeLookahead":this.visitNegativeLookahead(t);return}r.prototype.visitChildren.call(this,t)}},e.prototype.visitCharacter=function(t){(0,as.contains)(this.targetCharCodes,t.value)&&(this.found=!0)},e.prototype.visitSet=function(t){t.complement?lY(t,this.targetCharCodes)===void 0&&(this.found=!0):lY(t,this.targetCharCodes)!==void 0&&(this.found=!0)},e}(cY.BaseRegExpVisitor);function Tme(r,e){if(e instanceof RegExp){var t=(0,uY.getRegExpAst)(e),i=new Lme(r);return i.visit(t),i.found}else return(0,as.find)(e,function(n){return(0,as.contains)(r,n.charCodeAt(0))})!==void 0}pn.canMatchCharCode=Tme});var Cv=w(Ve=>{"use strict";var hY=Ve&&Ve.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Ve,"__esModule",{value:!0});Ve.charCodeToOptimizedIndex=Ve.minOptimizationVal=Ve.buildLineBreakIssueMessage=Ve.LineTerminatorOptimizedTester=Ve.isShortPattern=Ve.isCustomPattern=Ve.cloneEmptyGroups=Ve.performWarningRuntimeChecks=Ve.performRuntimeChecks=Ve.addStickyFlag=Ve.addStartOfInput=Ve.findUnreachablePatterns=Ve.findModesThatDoNotExist=Ve.findInvalidGroupType=Ve.findDuplicatePatterns=Ve.findUnsupportedFlags=Ve.findStartOfInputAnchor=Ve.findEmptyMatchRegExps=Ve.findEndOfInputAnchor=Ve.findInvalidPatterns=Ve.findMissingPatterns=Ve.validatePatterns=Ve.analyzeTokenTypes=Ve.enableSticky=Ve.disableSticky=Ve.SUPPORT_STICKY=Ve.MODES=Ve.DEFAULT_MODE=void 0;var pY=UI(),ir=gd(),xe=Gt(),Hg=fY(),dY=GI(),So="PATTERN";Ve.DEFAULT_MODE="defaultMode";Ve.MODES="modes";Ve.SUPPORT_STICKY=typeof new RegExp("(?:)").sticky=="boolean";function Ome(){Ve.SUPPORT_STICKY=!1}Ve.disableSticky=Ome;function Mme(){Ve.SUPPORT_STICKY=!0}Ve.enableSticky=Mme;function Kme(r,e){e=(0,xe.defaults)(e,{useSticky:Ve.SUPPORT_STICKY,debug:!1,safeMode:!1,positionTracking:"full",lineTerminatorCharacters:["\r",` +`],tracer:function(v,D){return D()}});var t=e.tracer;t("initCharCodeToOptimizedIndexMap",function(){Vme()});var i;t("Reject Lexer.NA",function(){i=(0,xe.reject)(r,function(v){return v[So]===ir.Lexer.NA})});var n=!1,s;t("Transform Patterns",function(){n=!1,s=(0,xe.map)(i,function(v){var D=v[So];if((0,xe.isRegExp)(D)){var L=D.source;return L.length===1&&L!=="^"&&L!=="$"&&L!=="."&&!D.ignoreCase?L:L.length===2&&L[0]==="\\"&&!(0,xe.contains)(["d","D","s","S","t","r","n","t","0","c","b","B","f","v","w","W"],L[1])?L[1]:e.useSticky?Iv(D):Ev(D)}else{if((0,xe.isFunction)(D))return n=!0,{exec:D};if((0,xe.has)(D,"exec"))return n=!0,D;if(typeof D=="string"){if(D.length===1)return D;var H=D.replace(/[\\^$.*+?()[\]{}|]/g,"\\$&"),j=new RegExp(H);return e.useSticky?Iv(j):Ev(j)}else throw Error("non exhaustive match")}})});var o,a,l,c,u;t("misc mapping",function(){o=(0,xe.map)(i,function(v){return v.tokenTypeIdx}),a=(0,xe.map)(i,function(v){var D=v.GROUP;if(D!==ir.Lexer.SKIPPED){if((0,xe.isString)(D))return D;if((0,xe.isUndefined)(D))return!1;throw Error("non exhaustive match")}}),l=(0,xe.map)(i,function(v){var D=v.LONGER_ALT;if(D){var L=(0,xe.isArray)(D)?(0,xe.map)(D,function(H){return(0,xe.indexOf)(i,H)}):[(0,xe.indexOf)(i,D)];return L}}),c=(0,xe.map)(i,function(v){return v.PUSH_MODE}),u=(0,xe.map)(i,function(v){return(0,xe.has)(v,"POP_MODE")})});var g;t("Line Terminator Handling",function(){var v=DY(e.lineTerminatorCharacters);g=(0,xe.map)(i,function(D){return!1}),e.positionTracking!=="onlyOffset"&&(g=(0,xe.map)(i,function(D){if((0,xe.has)(D,"LINE_BREAKS"))return D.LINE_BREAKS;if(xY(D,v)===!1)return(0,Hg.canMatchCharCode)(v,D.PATTERN)}))});var f,h,p,C;t("Misc Mapping #2",function(){f=(0,xe.map)(i,wv),h=(0,xe.map)(s,vY),p=(0,xe.reduce)(i,function(v,D){var L=D.GROUP;return(0,xe.isString)(L)&&L!==ir.Lexer.SKIPPED&&(v[L]=[]),v},{}),C=(0,xe.map)(s,function(v,D){return{pattern:s[D],longerAlt:l[D],canLineTerminator:g[D],isCustom:f[D],short:h[D],group:a[D],push:c[D],pop:u[D],tokenTypeIdx:o[D],tokenType:i[D]}})});var y=!0,B=[];return e.safeMode||t("First Char Optimization",function(){B=(0,xe.reduce)(i,function(v,D,L){if(typeof D.PATTERN=="string"){var H=D.PATTERN.charCodeAt(0),j=yv(H);mv(v,j,C[L])}else if((0,xe.isArray)(D.START_CHARS_HINT)){var $;(0,xe.forEach)(D.START_CHARS_HINT,function(W){var Z=typeof W=="string"?W.charCodeAt(0):W,A=yv(Z);$!==A&&($=A,mv(v,A,C[L]))})}else if((0,xe.isRegExp)(D.PATTERN))if(D.PATTERN.unicode)y=!1,e.ensureOptimizations&&(0,xe.PRINT_ERROR)(""+Hg.failedOptimizationPrefixMsg+(" Unable to analyze < "+D.PATTERN.toString()+` > pattern. +`)+` The regexp unicode flag is not currently supported by the regexp-to-ast library. + This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNICODE_OPTIMIZE`);else{var V=(0,Hg.getOptimizedStartCodesIndices)(D.PATTERN,e.ensureOptimizations);(0,xe.isEmpty)(V)&&(y=!1),(0,xe.forEach)(V,function(W){mv(v,W,C[L])})}else e.ensureOptimizations&&(0,xe.PRINT_ERROR)(""+Hg.failedOptimizationPrefixMsg+(" TokenType: <"+D.name+`> is using a custom token pattern without providing parameter. +`)+` This will disable the lexer's first char optimizations. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_OPTIMIZE`),y=!1;return v},[])}),t("ArrayPacking",function(){B=(0,xe.packArray)(B)}),{emptyGroups:p,patternIdxToConfig:C,charCodeToPatternIdxToConfig:B,hasCustom:n,canBeOptimized:y}}Ve.analyzeTokenTypes=Kme;function Ume(r,e){var t=[],i=CY(r);t=t.concat(i.errors);var n=mY(i.valid),s=n.valid;return t=t.concat(n.errors),t=t.concat(Hme(s)),t=t.concat(QY(s)),t=t.concat(bY(s,e)),t=t.concat(SY(s)),t}Ve.validatePatterns=Ume;function Hme(r){var e=[],t=(0,xe.filter)(r,function(i){return(0,xe.isRegExp)(i[So])});return e=e.concat(EY(t)),e=e.concat(yY(t)),e=e.concat(wY(t)),e=e.concat(BY(t)),e=e.concat(IY(t)),e}function CY(r){var e=(0,xe.filter)(r,function(n){return!(0,xe.has)(n,So)}),t=(0,xe.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- missing static 'PATTERN' property",type:ir.LexerDefinitionErrorType.MISSING_PATTERN,tokenTypes:[n]}}),i=(0,xe.difference)(r,e);return{errors:t,valid:i}}Ve.findMissingPatterns=CY;function mY(r){var e=(0,xe.filter)(r,function(n){var s=n[So];return!(0,xe.isRegExp)(s)&&!(0,xe.isFunction)(s)&&!(0,xe.has)(s,"exec")&&!(0,xe.isString)(s)}),t=(0,xe.map)(e,function(n){return{message:"Token Type: ->"+n.name+"<- static 'PATTERN' can only be a RegExp, a Function matching the {CustomPatternMatcherFunc} type or an Object matching the {ICustomPattern} interface.",type:ir.LexerDefinitionErrorType.INVALID_PATTERN,tokenTypes:[n]}}),i=(0,xe.difference)(r,e);return{errors:t,valid:i}}Ve.findInvalidPatterns=mY;var Gme=/[^\\][\$]/;function EY(r){var e=function(n){hY(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitEndAnchor=function(o){this.found=!0},s}(pY.BaseRegExpVisitor),t=(0,xe.filter)(r,function(n){var s=n[So];try{var o=(0,dY.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return Gme.test(s.source)}}),i=(0,xe.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: + Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain end of input anchor '$' + See chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:ir.LexerDefinitionErrorType.EOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Ve.findEndOfInputAnchor=EY;function IY(r){var e=(0,xe.filter)(r,function(i){var n=i[So];return n.test("")}),t=(0,xe.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' must not match an empty string",type:ir.LexerDefinitionErrorType.EMPTY_MATCH_PATTERN,tokenTypes:[i]}});return t}Ve.findEmptyMatchRegExps=IY;var Yme=/[^\\[][\^]|^\^/;function yY(r){var e=function(n){hY(s,n);function s(){var o=n!==null&&n.apply(this,arguments)||this;return o.found=!1,o}return s.prototype.visitStartAnchor=function(o){this.found=!0},s}(pY.BaseRegExpVisitor),t=(0,xe.filter)(r,function(n){var s=n[So];try{var o=(0,dY.getRegExpAst)(s),a=new e;return a.visit(o),a.found}catch{return Yme.test(s.source)}}),i=(0,xe.map)(t,function(n){return{message:`Unexpected RegExp Anchor Error: + Token Type: ->`+n.name+`<- static 'PATTERN' cannot contain start of input anchor '^' + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#ANCHORS for details.`,type:ir.LexerDefinitionErrorType.SOI_ANCHOR_FOUND,tokenTypes:[n]}});return i}Ve.findStartOfInputAnchor=yY;function wY(r){var e=(0,xe.filter)(r,function(i){var n=i[So];return n instanceof RegExp&&(n.multiline||n.global)}),t=(0,xe.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'PATTERN' may NOT contain global('g') or multiline('m')",type:ir.LexerDefinitionErrorType.UNSUPPORTED_FLAGS_FOUND,tokenTypes:[i]}});return t}Ve.findUnsupportedFlags=wY;function BY(r){var e=[],t=(0,xe.map)(r,function(s){return(0,xe.reduce)(r,function(o,a){return s.PATTERN.source===a.PATTERN.source&&!(0,xe.contains)(e,a)&&a.PATTERN!==ir.Lexer.NA&&(e.push(a),o.push(a)),o},[])});t=(0,xe.compact)(t);var i=(0,xe.filter)(t,function(s){return s.length>1}),n=(0,xe.map)(i,function(s){var o=(0,xe.map)(s,function(l){return l.name}),a=(0,xe.first)(s).PATTERN;return{message:"The same RegExp pattern ->"+a+"<-"+("has been used in all of the following Token Types: "+o.join(", ")+" <-"),type:ir.LexerDefinitionErrorType.DUPLICATE_PATTERNS_FOUND,tokenTypes:s}});return n}Ve.findDuplicatePatterns=BY;function QY(r){var e=(0,xe.filter)(r,function(i){if(!(0,xe.has)(i,"GROUP"))return!1;var n=i.GROUP;return n!==ir.Lexer.SKIPPED&&n!==ir.Lexer.NA&&!(0,xe.isString)(n)}),t=(0,xe.map)(e,function(i){return{message:"Token Type: ->"+i.name+"<- static 'GROUP' can only be Lexer.SKIPPED/Lexer.NA/A String",type:ir.LexerDefinitionErrorType.INVALID_GROUP_TYPE_FOUND,tokenTypes:[i]}});return t}Ve.findInvalidGroupType=QY;function bY(r,e){var t=(0,xe.filter)(r,function(n){return n.PUSH_MODE!==void 0&&!(0,xe.contains)(e,n.PUSH_MODE)}),i=(0,xe.map)(t,function(n){var s="Token Type: ->"+n.name+"<- static 'PUSH_MODE' value cannot refer to a Lexer Mode ->"+n.PUSH_MODE+"<-which does not exist";return{message:s,type:ir.LexerDefinitionErrorType.PUSH_MODE_DOES_NOT_EXIST,tokenTypes:[n]}});return i}Ve.findModesThatDoNotExist=bY;function SY(r){var e=[],t=(0,xe.reduce)(r,function(i,n,s){var o=n.PATTERN;return o===ir.Lexer.NA||((0,xe.isString)(o)?i.push({str:o,idx:s,tokenType:n}):(0,xe.isRegExp)(o)&&qme(o)&&i.push({str:o.source,idx:s,tokenType:n})),i},[]);return(0,xe.forEach)(r,function(i,n){(0,xe.forEach)(t,function(s){var o=s.str,a=s.idx,l=s.tokenType;if(n"+i.name+"<-")+`in the lexer's definition. +See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#UNREACHABLE`;e.push({message:c,type:ir.LexerDefinitionErrorType.UNREACHABLE_PATTERN,tokenTypes:[i,l]})}})}),e}Ve.findUnreachablePatterns=SY;function jme(r,e){if((0,xe.isRegExp)(e)){var t=e.exec(r);return t!==null&&t.index===0}else{if((0,xe.isFunction)(e))return e(r,0,[],{});if((0,xe.has)(e,"exec"))return e.exec(r,0,[],{});if(typeof e=="string")return e===r;throw Error("non exhaustive match")}}function qme(r){var e=[".","\\","[","]","|","^","$","(",")","?","*","+","{"];return(0,xe.find)(e,function(t){return r.source.indexOf(t)!==-1})===void 0}function Ev(r){var e=r.ignoreCase?"i":"";return new RegExp("^(?:"+r.source+")",e)}Ve.addStartOfInput=Ev;function Iv(r){var e=r.ignoreCase?"iy":"y";return new RegExp(""+r.source,e)}Ve.addStickyFlag=Iv;function Jme(r,e,t){var i=[];return(0,xe.has)(r,Ve.DEFAULT_MODE)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Ve.DEFAULT_MODE+`> property in its definition +`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE}),(0,xe.has)(r,Ve.MODES)||i.push({message:"A MultiMode Lexer cannot be initialized without a <"+Ve.MODES+`> property in its definition +`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY}),(0,xe.has)(r,Ve.MODES)&&(0,xe.has)(r,Ve.DEFAULT_MODE)&&!(0,xe.has)(r.modes,r.defaultMode)&&i.push({message:"A MultiMode Lexer cannot be initialized with a "+Ve.DEFAULT_MODE+": <"+r.defaultMode+`>which does not exist +`,type:ir.LexerDefinitionErrorType.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST}),(0,xe.has)(r,Ve.MODES)&&(0,xe.forEach)(r.modes,function(n,s){(0,xe.forEach)(n,function(o,a){(0,xe.isUndefined)(o)&&i.push({message:"A Lexer cannot be initialized using an undefined Token Type. Mode:"+("<"+s+"> at index: <"+a+`> +`),type:ir.LexerDefinitionErrorType.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED})})}),i}Ve.performRuntimeChecks=Jme;function Wme(r,e,t){var i=[],n=!1,s=(0,xe.compact)((0,xe.flatten)((0,xe.mapValues)(r.modes,function(l){return l}))),o=(0,xe.reject)(s,function(l){return l[So]===ir.Lexer.NA}),a=DY(t);return e&&(0,xe.forEach)(o,function(l){var c=xY(l,a);if(c!==!1){var u=PY(l,c),g={message:u,type:c.issue,tokenType:l};i.push(g)}else(0,xe.has)(l,"LINE_BREAKS")?l.LINE_BREAKS===!0&&(n=!0):(0,Hg.canMatchCharCode)(a,l.PATTERN)&&(n=!0)}),e&&!n&&i.push({message:`Warning: No LINE_BREAKS Found. + This Lexer has been defined to track line and column information, + But none of the Token Types can be identified as matching a line terminator. + See https://chevrotain.io/docs/guide/resolving_lexer_errors.html#LINE_BREAKS + for details.`,type:ir.LexerDefinitionErrorType.NO_LINE_BREAKS_FLAGS}),i}Ve.performWarningRuntimeChecks=Wme;function zme(r){var e={},t=(0,xe.keys)(r);return(0,xe.forEach)(t,function(i){var n=r[i];if((0,xe.isArray)(n))e[i]=[];else throw Error("non exhaustive match")}),e}Ve.cloneEmptyGroups=zme;function wv(r){var e=r.PATTERN;if((0,xe.isRegExp)(e))return!1;if((0,xe.isFunction)(e))return!0;if((0,xe.has)(e,"exec"))return!0;if((0,xe.isString)(e))return!1;throw Error("non exhaustive match")}Ve.isCustomPattern=wv;function vY(r){return(0,xe.isString)(r)&&r.length===1?r.charCodeAt(0):!1}Ve.isShortPattern=vY;Ve.LineTerminatorOptimizedTester={test:function(r){for(var e=r.length,t=this.lastIndex;t Token Type +`)+(" Root cause: "+e.errMsg+`. +`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#IDENTIFY_TERMINATOR";if(e.issue===ir.LexerDefinitionErrorType.CUSTOM_LINE_BREAK)return`Warning: A Custom Token Pattern should specify the option. +`+(" The problem is in the <"+r.name+`> Token Type +`)+" For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#CUSTOM_LINE_BREAK";throw Error("non exhaustive match")}Ve.buildLineBreakIssueMessage=PY;function DY(r){var e=(0,xe.map)(r,function(t){return(0,xe.isString)(t)&&t.length>0?t.charCodeAt(0):t});return e}function mv(r,e,t){r[e]===void 0?r[e]=[t]:r[e].push(t)}Ve.minOptimizationVal=256;var qI=[];function yv(r){return r255?255+~~(r/255):r}}});var Gg=w(Nt=>{"use strict";Object.defineProperty(Nt,"__esModule",{value:!0});Nt.isTokenType=Nt.hasExtendingTokensTypesMapProperty=Nt.hasExtendingTokensTypesProperty=Nt.hasCategoriesProperty=Nt.hasShortKeyProperty=Nt.singleAssignCategoriesToksMap=Nt.assignCategoriesMapProp=Nt.assignCategoriesTokensProp=Nt.assignTokenDefaultProps=Nt.expandCategories=Nt.augmentTokenTypes=Nt.tokenIdxToClass=Nt.tokenShortNameIdx=Nt.tokenStructuredMatcherNoCategories=Nt.tokenStructuredMatcher=void 0;var _r=Gt();function Xme(r,e){var t=r.tokenTypeIdx;return t===e.tokenTypeIdx?!0:e.isParent===!0&&e.categoryMatchesMap[t]===!0}Nt.tokenStructuredMatcher=Xme;function _me(r,e){return r.tokenTypeIdx===e.tokenTypeIdx}Nt.tokenStructuredMatcherNoCategories=_me;Nt.tokenShortNameIdx=1;Nt.tokenIdxToClass={};function Zme(r){var e=kY(r);RY(e),NY(e),FY(e),(0,_r.forEach)(e,function(t){t.isParent=t.categoryMatches.length>0})}Nt.augmentTokenTypes=Zme;function kY(r){for(var e=(0,_r.cloneArr)(r),t=r,i=!0;i;){t=(0,_r.compact)((0,_r.flatten)((0,_r.map)(t,function(s){return s.CATEGORIES})));var n=(0,_r.difference)(t,e);e=e.concat(n),(0,_r.isEmpty)(n)?i=!1:t=n}return e}Nt.expandCategories=kY;function RY(r){(0,_r.forEach)(r,function(e){LY(e)||(Nt.tokenIdxToClass[Nt.tokenShortNameIdx]=e,e.tokenTypeIdx=Nt.tokenShortNameIdx++),Bv(e)&&!(0,_r.isArray)(e.CATEGORIES)&&(e.CATEGORIES=[e.CATEGORIES]),Bv(e)||(e.CATEGORIES=[]),TY(e)||(e.categoryMatches=[]),OY(e)||(e.categoryMatchesMap={})})}Nt.assignTokenDefaultProps=RY;function FY(r){(0,_r.forEach)(r,function(e){e.categoryMatches=[],(0,_r.forEach)(e.categoryMatchesMap,function(t,i){e.categoryMatches.push(Nt.tokenIdxToClass[i].tokenTypeIdx)})})}Nt.assignCategoriesTokensProp=FY;function NY(r){(0,_r.forEach)(r,function(e){Qv([],e)})}Nt.assignCategoriesMapProp=NY;function Qv(r,e){(0,_r.forEach)(r,function(t){e.categoryMatchesMap[t.tokenTypeIdx]=!0}),(0,_r.forEach)(e.CATEGORIES,function(t){var i=r.concat(e);(0,_r.contains)(i,t)||Qv(i,t)})}Nt.singleAssignCategoriesToksMap=Qv;function LY(r){return(0,_r.has)(r,"tokenTypeIdx")}Nt.hasShortKeyProperty=LY;function Bv(r){return(0,_r.has)(r,"CATEGORIES")}Nt.hasCategoriesProperty=Bv;function TY(r){return(0,_r.has)(r,"categoryMatches")}Nt.hasExtendingTokensTypesProperty=TY;function OY(r){return(0,_r.has)(r,"categoryMatchesMap")}Nt.hasExtendingTokensTypesMapProperty=OY;function $me(r){return(0,_r.has)(r,"tokenTypeIdx")}Nt.isTokenType=$me});var bv=w(JI=>{"use strict";Object.defineProperty(JI,"__esModule",{value:!0});JI.defaultLexerErrorProvider=void 0;JI.defaultLexerErrorProvider={buildUnableToPopLexerModeMessage:function(r){return"Unable to pop Lexer Mode after encountering Token ->"+r.image+"<- The Mode Stack is empty"},buildUnexpectedCharactersMessage:function(r,e,t,i,n){return"unexpected character: ->"+r.charAt(e)+"<- at offset: "+e+","+(" skipped "+t+" characters.")}}});var gd=w(nc=>{"use strict";Object.defineProperty(nc,"__esModule",{value:!0});nc.Lexer=nc.LexerDefinitionErrorType=void 0;var zs=Cv(),nr=Gt(),eEe=Gg(),tEe=bv(),rEe=GI(),iEe;(function(r){r[r.MISSING_PATTERN=0]="MISSING_PATTERN",r[r.INVALID_PATTERN=1]="INVALID_PATTERN",r[r.EOI_ANCHOR_FOUND=2]="EOI_ANCHOR_FOUND",r[r.UNSUPPORTED_FLAGS_FOUND=3]="UNSUPPORTED_FLAGS_FOUND",r[r.DUPLICATE_PATTERNS_FOUND=4]="DUPLICATE_PATTERNS_FOUND",r[r.INVALID_GROUP_TYPE_FOUND=5]="INVALID_GROUP_TYPE_FOUND",r[r.PUSH_MODE_DOES_NOT_EXIST=6]="PUSH_MODE_DOES_NOT_EXIST",r[r.MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE=7]="MULTI_MODE_LEXER_WITHOUT_DEFAULT_MODE",r[r.MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY=8]="MULTI_MODE_LEXER_WITHOUT_MODES_PROPERTY",r[r.MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST=9]="MULTI_MODE_LEXER_DEFAULT_MODE_VALUE_DOES_NOT_EXIST",r[r.LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED=10]="LEXER_DEFINITION_CANNOT_CONTAIN_UNDEFINED",r[r.SOI_ANCHOR_FOUND=11]="SOI_ANCHOR_FOUND",r[r.EMPTY_MATCH_PATTERN=12]="EMPTY_MATCH_PATTERN",r[r.NO_LINE_BREAKS_FLAGS=13]="NO_LINE_BREAKS_FLAGS",r[r.UNREACHABLE_PATTERN=14]="UNREACHABLE_PATTERN",r[r.IDENTIFY_TERMINATOR=15]="IDENTIFY_TERMINATOR",r[r.CUSTOM_LINE_BREAK=16]="CUSTOM_LINE_BREAK"})(iEe=nc.LexerDefinitionErrorType||(nc.LexerDefinitionErrorType={}));var fd={deferDefinitionErrorsHandling:!1,positionTracking:"full",lineTerminatorsPattern:/\n|\r\n?/g,lineTerminatorCharacters:[` +`,"\r"],ensureOptimizations:!1,safeMode:!1,errorMessageProvider:tEe.defaultLexerErrorProvider,traceInitPerf:!1,skipValidations:!1};Object.freeze(fd);var nEe=function(){function r(e,t){var i=this;if(t===void 0&&(t=fd),this.lexerDefinition=e,this.lexerDefinitionErrors=[],this.lexerDefinitionWarning=[],this.patternIdxToConfig={},this.charCodeToPatternIdxToConfig={},this.modes=[],this.emptyGroups={},this.config=void 0,this.trackStartLines=!0,this.trackEndLines=!0,this.hasCustom=!1,this.canModeBeOptimized={},typeof t=="boolean")throw Error(`The second argument to the Lexer constructor is now an ILexerConfig Object. +a boolean 2nd argument is no longer supported`);this.config=(0,nr.merge)(fd,t);var n=this.config.traceInitPerf;n===!0?(this.traceInitMaxIdent=1/0,this.traceInitPerf=!0):typeof n=="number"&&(this.traceInitMaxIdent=n,this.traceInitPerf=!0),this.traceInitIndent=-1,this.TRACE_INIT("Lexer Constructor",function(){var s,o=!0;i.TRACE_INIT("Lexer Config handling",function(){if(i.config.lineTerminatorsPattern===fd.lineTerminatorsPattern)i.config.lineTerminatorsPattern=zs.LineTerminatorOptimizedTester;else if(i.config.lineTerminatorCharacters===fd.lineTerminatorCharacters)throw Error(`Error: Missing property on the Lexer config. + For details See: https://chevrotain.io/docs/guide/resolving_lexer_errors.html#MISSING_LINE_TERM_CHARS`);if(t.safeMode&&t.ensureOptimizations)throw Error('"safeMode" and "ensureOptimizations" flags are mutually exclusive.');i.trackStartLines=/full|onlyStart/i.test(i.config.positionTracking),i.trackEndLines=/full/i.test(i.config.positionTracking),(0,nr.isArray)(e)?(s={modes:{}},s.modes[zs.DEFAULT_MODE]=(0,nr.cloneArr)(e),s[zs.DEFAULT_MODE]=zs.DEFAULT_MODE):(o=!1,s=(0,nr.cloneObj)(e))}),i.config.skipValidations===!1&&(i.TRACE_INIT("performRuntimeChecks",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,zs.performRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))}),i.TRACE_INIT("performWarningRuntimeChecks",function(){i.lexerDefinitionWarning=i.lexerDefinitionWarning.concat((0,zs.performWarningRuntimeChecks)(s,i.trackStartLines,i.config.lineTerminatorCharacters))})),s.modes=s.modes?s.modes:{},(0,nr.forEach)(s.modes,function(u,g){s.modes[g]=(0,nr.reject)(u,function(f){return(0,nr.isUndefined)(f)})});var a=(0,nr.keys)(s.modes);if((0,nr.forEach)(s.modes,function(u,g){i.TRACE_INIT("Mode: <"+g+"> processing",function(){if(i.modes.push(g),i.config.skipValidations===!1&&i.TRACE_INIT("validatePatterns",function(){i.lexerDefinitionErrors=i.lexerDefinitionErrors.concat((0,zs.validatePatterns)(u,a))}),(0,nr.isEmpty)(i.lexerDefinitionErrors)){(0,eEe.augmentTokenTypes)(u);var f;i.TRACE_INIT("analyzeTokenTypes",function(){f=(0,zs.analyzeTokenTypes)(u,{lineTerminatorCharacters:i.config.lineTerminatorCharacters,positionTracking:t.positionTracking,ensureOptimizations:t.ensureOptimizations,safeMode:t.safeMode,tracer:i.TRACE_INIT.bind(i)})}),i.patternIdxToConfig[g]=f.patternIdxToConfig,i.charCodeToPatternIdxToConfig[g]=f.charCodeToPatternIdxToConfig,i.emptyGroups=(0,nr.merge)(i.emptyGroups,f.emptyGroups),i.hasCustom=f.hasCustom||i.hasCustom,i.canModeBeOptimized[g]=f.canBeOptimized}})}),i.defaultMode=s.defaultMode,!(0,nr.isEmpty)(i.lexerDefinitionErrors)&&!i.config.deferDefinitionErrorsHandling){var l=(0,nr.map)(i.lexerDefinitionErrors,function(u){return u.message}),c=l.join(`----------------------- +`);throw new Error(`Errors detected in definition of Lexer: +`+c)}(0,nr.forEach)(i.lexerDefinitionWarning,function(u){(0,nr.PRINT_WARNING)(u.message)}),i.TRACE_INIT("Choosing sub-methods implementations",function(){if(zs.SUPPORT_STICKY?(i.chopInput=nr.IDENTITY,i.match=i.matchWithTest):(i.updateLastIndex=nr.NOOP,i.match=i.matchWithExec),o&&(i.handleModes=nr.NOOP),i.trackStartLines===!1&&(i.computeNewColumn=nr.IDENTITY),i.trackEndLines===!1&&(i.updateTokenEndLineColumnLocation=nr.NOOP),/full/i.test(i.config.positionTracking))i.createTokenInstance=i.createFullToken;else if(/onlyStart/i.test(i.config.positionTracking))i.createTokenInstance=i.createStartOnlyToken;else if(/onlyOffset/i.test(i.config.positionTracking))i.createTokenInstance=i.createOffsetOnlyToken;else throw Error('Invalid config option: "'+i.config.positionTracking+'"');i.hasCustom?(i.addToken=i.addTokenUsingPush,i.handlePayload=i.handlePayloadWithCustom):(i.addToken=i.addTokenUsingMemberAccess,i.handlePayload=i.handlePayloadNoCustom)}),i.TRACE_INIT("Failed Optimization Warnings",function(){var u=(0,nr.reduce)(i.canModeBeOptimized,function(g,f,h){return f===!1&&g.push(h),g},[]);if(t.ensureOptimizations&&!(0,nr.isEmpty)(u))throw Error("Lexer Modes: < "+u.join(", ")+` > cannot be optimized. + Disable the "ensureOptimizations" lexer config flag to silently ignore this and run the lexer in an un-optimized mode. + Or inspect the console log for details on how to resolve these issues.`)}),i.TRACE_INIT("clearRegExpParserCache",function(){(0,rEe.clearRegExpParserCache)()}),i.TRACE_INIT("toFastProperties",function(){(0,nr.toFastProperties)(i)})})}return r.prototype.tokenize=function(e,t){if(t===void 0&&(t=this.defaultMode),!(0,nr.isEmpty)(this.lexerDefinitionErrors)){var i=(0,nr.map)(this.lexerDefinitionErrors,function(o){return o.message}),n=i.join(`----------------------- +`);throw new Error(`Unable to Tokenize because Errors detected in definition of Lexer: +`+n)}var s=this.tokenizeInternal(e,t);return s},r.prototype.tokenizeInternal=function(e,t){var i=this,n,s,o,a,l,c,u,g,f,h,p,C,y,B,v,D,L=e,H=L.length,j=0,$=0,V=this.hasCustom?0:Math.floor(e.length/10),W=new Array(V),Z=[],A=this.trackStartLines?1:void 0,ae=this.trackStartLines?1:void 0,ge=(0,zs.cloneEmptyGroups)(this.emptyGroups),re=this.trackStartLines,O=this.config.lineTerminatorsPattern,F=0,ue=[],he=[],ke=[],Fe=[];Object.freeze(Fe);var Ne=void 0;function oe(){return ue}function le(pr){var Ei=(0,zs.charCodeToOptimizedIndex)(pr),_n=he[Ei];return _n===void 0?Fe:_n}var we=function(pr){if(ke.length===1&&pr.tokenType.PUSH_MODE===void 0){var Ei=i.config.errorMessageProvider.buildUnableToPopLexerModeMessage(pr);Z.push({offset:pr.startOffset,line:pr.startLine!==void 0?pr.startLine:void 0,column:pr.startColumn!==void 0?pr.startColumn:void 0,length:pr.image.length,message:Ei})}else{ke.pop();var _n=(0,nr.last)(ke);ue=i.patternIdxToConfig[_n],he=i.charCodeToPatternIdxToConfig[_n],F=ue.length;var oa=i.canModeBeOptimized[_n]&&i.config.safeMode===!1;he&&oa?Ne=le:Ne=oe}};function fe(pr){ke.push(pr),he=this.charCodeToPatternIdxToConfig[pr],ue=this.patternIdxToConfig[pr],F=ue.length,F=ue.length;var Ei=this.canModeBeOptimized[pr]&&this.config.safeMode===!1;he&&Ei?Ne=le:Ne=oe}fe.call(this,t);for(var Ae;jc.length){c=a,u=g,Ae=tt;break}}}break}}if(c!==null){if(f=c.length,h=Ae.group,h!==void 0&&(p=Ae.tokenTypeIdx,C=this.createTokenInstance(c,j,p,Ae.tokenType,A,ae,f),this.handlePayload(C,u),h===!1?$=this.addToken(W,$,C):ge[h].push(C)),e=this.chopInput(e,f),j=j+f,ae=this.computeNewColumn(ae,f),re===!0&&Ae.canLineTerminator===!0){var It=0,Or=void 0,ii=void 0;O.lastIndex=0;do Or=O.test(c),Or===!0&&(ii=O.lastIndex-1,It++);while(Or===!0);It!==0&&(A=A+It,ae=f-ii,this.updateTokenEndLineColumnLocation(C,h,ii,It,A,ae,f))}this.handleModes(Ae,we,fe,C)}else{for(var gi=j,hr=A,fi=ae,ni=!1;!ni&&j <"+e+">");var n=(0,nr.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r.SKIPPED="This marks a skipped Token pattern, this means each token identified by it willbe consumed and then thrown into oblivion, this can be used to for example to completely ignore whitespace.",r.NA=/NOT_APPLICABLE/,r}();nc.Lexer=nEe});var SA=w(Qi=>{"use strict";Object.defineProperty(Qi,"__esModule",{value:!0});Qi.tokenMatcher=Qi.createTokenInstance=Qi.EOF=Qi.createToken=Qi.hasTokenLabel=Qi.tokenName=Qi.tokenLabel=void 0;var Vs=Gt(),sEe=gd(),Sv=Gg();function oEe(r){return JY(r)?r.LABEL:r.name}Qi.tokenLabel=oEe;function aEe(r){return r.name}Qi.tokenName=aEe;function JY(r){return(0,Vs.isString)(r.LABEL)&&r.LABEL!==""}Qi.hasTokenLabel=JY;var AEe="parent",MY="categories",KY="label",UY="group",HY="push_mode",GY="pop_mode",YY="longer_alt",jY="line_breaks",qY="start_chars_hint";function WY(r){return lEe(r)}Qi.createToken=WY;function lEe(r){var e=r.pattern,t={};if(t.name=r.name,(0,Vs.isUndefined)(e)||(t.PATTERN=e),(0,Vs.has)(r,AEe))throw`The parent property is no longer supported. +See: https://github.com/chevrotain/chevrotain/issues/564#issuecomment-349062346 for details.`;return(0,Vs.has)(r,MY)&&(t.CATEGORIES=r[MY]),(0,Sv.augmentTokenTypes)([t]),(0,Vs.has)(r,KY)&&(t.LABEL=r[KY]),(0,Vs.has)(r,UY)&&(t.GROUP=r[UY]),(0,Vs.has)(r,GY)&&(t.POP_MODE=r[GY]),(0,Vs.has)(r,HY)&&(t.PUSH_MODE=r[HY]),(0,Vs.has)(r,YY)&&(t.LONGER_ALT=r[YY]),(0,Vs.has)(r,jY)&&(t.LINE_BREAKS=r[jY]),(0,Vs.has)(r,qY)&&(t.START_CHARS_HINT=r[qY]),t}Qi.EOF=WY({name:"EOF",pattern:sEe.Lexer.NA});(0,Sv.augmentTokenTypes)([Qi.EOF]);function cEe(r,e,t,i,n,s,o,a){return{image:e,startOffset:t,endOffset:i,startLine:n,endLine:s,startColumn:o,endColumn:a,tokenTypeIdx:r.tokenTypeIdx,tokenType:r}}Qi.createTokenInstance=cEe;function uEe(r,e){return(0,Sv.tokenStructuredMatcher)(r,e)}Qi.tokenMatcher=uEe});var dn=w(Wt=>{"use strict";var wa=Wt&&Wt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Wt,"__esModule",{value:!0});Wt.serializeProduction=Wt.serializeGrammar=Wt.Terminal=Wt.Alternation=Wt.RepetitionWithSeparator=Wt.Repetition=Wt.RepetitionMandatoryWithSeparator=Wt.RepetitionMandatory=Wt.Option=Wt.Alternative=Wt.Rule=Wt.NonTerminal=Wt.AbstractProduction=void 0;var Ar=Gt(),gEe=SA(),vo=function(){function r(e){this._definition=e}return Object.defineProperty(r.prototype,"definition",{get:function(){return this._definition},set:function(e){this._definition=e},enumerable:!1,configurable:!0}),r.prototype.accept=function(e){e.visit(this),(0,Ar.forEach)(this.definition,function(t){t.accept(e)})},r}();Wt.AbstractProduction=vo;var zY=function(r){wa(e,r);function e(t){var i=r.call(this,[])||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this.referencedRule!==void 0?this.referencedRule.definition:[]},set:function(t){},enumerable:!1,configurable:!0}),e.prototype.accept=function(t){t.visit(this)},e}(vo);Wt.NonTerminal=zY;var VY=function(r){wa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.orgText="",(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(vo);Wt.Rule=VY;var XY=function(r){wa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.ignoreAmbiguities=!1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(vo);Wt.Alternative=XY;var _Y=function(r){wa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(vo);Wt.Option=_Y;var ZY=function(r){wa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(vo);Wt.RepetitionMandatory=ZY;var $Y=function(r){wa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(vo);Wt.RepetitionMandatoryWithSeparator=$Y;var ej=function(r){wa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(vo);Wt.Repetition=ej;var tj=function(r){wa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return e}(vo);Wt.RepetitionWithSeparator=tj;var rj=function(r){wa(e,r);function e(t){var i=r.call(this,t.definition)||this;return i.idx=1,i.ignoreAmbiguities=!1,i.hasPredicates=!1,(0,Ar.assign)(i,(0,Ar.pick)(t,function(n){return n!==void 0})),i}return Object.defineProperty(e.prototype,"definition",{get:function(){return this._definition},set:function(t){this._definition=t},enumerable:!1,configurable:!0}),e}(vo);Wt.Alternation=rj;var WI=function(){function r(e){this.idx=1,(0,Ar.assign)(this,(0,Ar.pick)(e,function(t){return t!==void 0}))}return r.prototype.accept=function(e){e.visit(this)},r}();Wt.Terminal=WI;function fEe(r){return(0,Ar.map)(r,hd)}Wt.serializeGrammar=fEe;function hd(r){function e(s){return(0,Ar.map)(s,hd)}if(r instanceof zY){var t={type:"NonTerminal",name:r.nonTerminalName,idx:r.idx};return(0,Ar.isString)(r.label)&&(t.label=r.label),t}else{if(r instanceof XY)return{type:"Alternative",definition:e(r.definition)};if(r instanceof _Y)return{type:"Option",idx:r.idx,definition:e(r.definition)};if(r instanceof ZY)return{type:"RepetitionMandatory",idx:r.idx,definition:e(r.definition)};if(r instanceof $Y)return{type:"RepetitionMandatoryWithSeparator",idx:r.idx,separator:hd(new WI({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof tj)return{type:"RepetitionWithSeparator",idx:r.idx,separator:hd(new WI({terminalType:r.separator})),definition:e(r.definition)};if(r instanceof ej)return{type:"Repetition",idx:r.idx,definition:e(r.definition)};if(r instanceof rj)return{type:"Alternation",idx:r.idx,definition:e(r.definition)};if(r instanceof WI){var i={type:"Terminal",name:r.terminalType.name,label:(0,gEe.tokenLabel)(r.terminalType),idx:r.idx};(0,Ar.isString)(r.label)&&(i.terminalLabel=r.label);var n=r.terminalType.PATTERN;return r.terminalType.PATTERN&&(i.pattern=(0,Ar.isRegExp)(n)?n.source:n),i}else{if(r instanceof VY)return{type:"Rule",name:r.name,orgText:r.orgText,definition:e(r.definition)};throw Error("non exhaustive match")}}}Wt.serializeProduction=hd});var VI=w(zI=>{"use strict";Object.defineProperty(zI,"__esModule",{value:!0});zI.RestWalker=void 0;var vv=Gt(),Cn=dn(),hEe=function(){function r(){}return r.prototype.walk=function(e,t){var i=this;t===void 0&&(t=[]),(0,vv.forEach)(e.definition,function(n,s){var o=(0,vv.drop)(e.definition,s+1);if(n instanceof Cn.NonTerminal)i.walkProdRef(n,o,t);else if(n instanceof Cn.Terminal)i.walkTerminal(n,o,t);else if(n instanceof Cn.Alternative)i.walkFlat(n,o,t);else if(n instanceof Cn.Option)i.walkOption(n,o,t);else if(n instanceof Cn.RepetitionMandatory)i.walkAtLeastOne(n,o,t);else if(n instanceof Cn.RepetitionMandatoryWithSeparator)i.walkAtLeastOneSep(n,o,t);else if(n instanceof Cn.RepetitionWithSeparator)i.walkManySep(n,o,t);else if(n instanceof Cn.Repetition)i.walkMany(n,o,t);else if(n instanceof Cn.Alternation)i.walkOr(n,o,t);else throw Error("non exhaustive match")})},r.prototype.walkTerminal=function(e,t,i){},r.prototype.walkProdRef=function(e,t,i){},r.prototype.walkFlat=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkOption=function(e,t,i){var n=t.concat(i);this.walk(e,n)},r.prototype.walkAtLeastOne=function(e,t,i){var n=[new Cn.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkAtLeastOneSep=function(e,t,i){var n=ij(e,t,i);this.walk(e,n)},r.prototype.walkMany=function(e,t,i){var n=[new Cn.Option({definition:e.definition})].concat(t,i);this.walk(e,n)},r.prototype.walkManySep=function(e,t,i){var n=ij(e,t,i);this.walk(e,n)},r.prototype.walkOr=function(e,t,i){var n=this,s=t.concat(i);(0,vv.forEach)(e.definition,function(o){var a=new Cn.Alternative({definition:[o]});n.walk(a,s)})},r}();zI.RestWalker=hEe;function ij(r,e,t){var i=[new Cn.Option({definition:[new Cn.Terminal({terminalType:r.separator})].concat(r.definition)})],n=i.concat(e,t);return n}});var Yg=w(XI=>{"use strict";Object.defineProperty(XI,"__esModule",{value:!0});XI.GAstVisitor=void 0;var xo=dn(),pEe=function(){function r(){}return r.prototype.visit=function(e){var t=e;switch(t.constructor){case xo.NonTerminal:return this.visitNonTerminal(t);case xo.Alternative:return this.visitAlternative(t);case xo.Option:return this.visitOption(t);case xo.RepetitionMandatory:return this.visitRepetitionMandatory(t);case xo.RepetitionMandatoryWithSeparator:return this.visitRepetitionMandatoryWithSeparator(t);case xo.RepetitionWithSeparator:return this.visitRepetitionWithSeparator(t);case xo.Repetition:return this.visitRepetition(t);case xo.Alternation:return this.visitAlternation(t);case xo.Terminal:return this.visitTerminal(t);case xo.Rule:return this.visitRule(t);default:throw Error("non exhaustive match")}},r.prototype.visitNonTerminal=function(e){},r.prototype.visitAlternative=function(e){},r.prototype.visitOption=function(e){},r.prototype.visitRepetition=function(e){},r.prototype.visitRepetitionMandatory=function(e){},r.prototype.visitRepetitionMandatoryWithSeparator=function(e){},r.prototype.visitRepetitionWithSeparator=function(e){},r.prototype.visitAlternation=function(e){},r.prototype.visitTerminal=function(e){},r.prototype.visitRule=function(e){},r}();XI.GAstVisitor=pEe});var dd=w(Oi=>{"use strict";var dEe=Oi&&Oi.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Oi,"__esModule",{value:!0});Oi.collectMethods=Oi.DslMethodsCollectorVisitor=Oi.getProductionDslName=Oi.isBranchingProd=Oi.isOptionalProd=Oi.isSequenceProd=void 0;var pd=Gt(),Qr=dn(),CEe=Yg();function mEe(r){return r instanceof Qr.Alternative||r instanceof Qr.Option||r instanceof Qr.Repetition||r instanceof Qr.RepetitionMandatory||r instanceof Qr.RepetitionMandatoryWithSeparator||r instanceof Qr.RepetitionWithSeparator||r instanceof Qr.Terminal||r instanceof Qr.Rule}Oi.isSequenceProd=mEe;function xv(r,e){e===void 0&&(e=[]);var t=r instanceof Qr.Option||r instanceof Qr.Repetition||r instanceof Qr.RepetitionWithSeparator;return t?!0:r instanceof Qr.Alternation?(0,pd.some)(r.definition,function(i){return xv(i,e)}):r instanceof Qr.NonTerminal&&(0,pd.contains)(e,r)?!1:r instanceof Qr.AbstractProduction?(r instanceof Qr.NonTerminal&&e.push(r),(0,pd.every)(r.definition,function(i){return xv(i,e)})):!1}Oi.isOptionalProd=xv;function EEe(r){return r instanceof Qr.Alternation}Oi.isBranchingProd=EEe;function IEe(r){if(r instanceof Qr.NonTerminal)return"SUBRULE";if(r instanceof Qr.Option)return"OPTION";if(r instanceof Qr.Alternation)return"OR";if(r instanceof Qr.RepetitionMandatory)return"AT_LEAST_ONE";if(r instanceof Qr.RepetitionMandatoryWithSeparator)return"AT_LEAST_ONE_SEP";if(r instanceof Qr.RepetitionWithSeparator)return"MANY_SEP";if(r instanceof Qr.Repetition)return"MANY";if(r instanceof Qr.Terminal)return"CONSUME";throw Error("non exhaustive match")}Oi.getProductionDslName=IEe;var nj=function(r){dEe(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.separator="-",t.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]},t}return e.prototype.reset=function(){this.dslMethods={option:[],alternation:[],repetition:[],repetitionWithSeparator:[],repetitionMandatory:[],repetitionMandatoryWithSeparator:[]}},e.prototype.visitTerminal=function(t){var i=t.terminalType.name+this.separator+"Terminal";(0,pd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitNonTerminal=function(t){var i=t.nonTerminalName+this.separator+"Terminal";(0,pd.has)(this.dslMethods,i)||(this.dslMethods[i]=[]),this.dslMethods[i].push(t)},e.prototype.visitOption=function(t){this.dslMethods.option.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.dslMethods.repetitionWithSeparator.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.dslMethods.repetitionMandatory.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.dslMethods.repetitionMandatoryWithSeparator.push(t)},e.prototype.visitRepetition=function(t){this.dslMethods.repetition.push(t)},e.prototype.visitAlternation=function(t){this.dslMethods.alternation.push(t)},e}(CEe.GAstVisitor);Oi.DslMethodsCollectorVisitor=nj;var _I=new nj;function yEe(r){_I.reset(),r.accept(_I);var e=_I.dslMethods;return _I.reset(),e}Oi.collectMethods=yEe});var Dv=w(Po=>{"use strict";Object.defineProperty(Po,"__esModule",{value:!0});Po.firstForTerminal=Po.firstForBranching=Po.firstForSequence=Po.first=void 0;var ZI=Gt(),sj=dn(),Pv=dd();function $I(r){if(r instanceof sj.NonTerminal)return $I(r.referencedRule);if(r instanceof sj.Terminal)return Aj(r);if((0,Pv.isSequenceProd)(r))return oj(r);if((0,Pv.isBranchingProd)(r))return aj(r);throw Error("non exhaustive match")}Po.first=$I;function oj(r){for(var e=[],t=r.definition,i=0,n=t.length>i,s,o=!0;n&&o;)s=t[i],o=(0,Pv.isOptionalProd)(s),e=e.concat($I(s)),i=i+1,n=t.length>i;return(0,ZI.uniq)(e)}Po.firstForSequence=oj;function aj(r){var e=(0,ZI.map)(r.definition,function(t){return $I(t)});return(0,ZI.uniq)((0,ZI.flatten)(e))}Po.firstForBranching=aj;function Aj(r){return[r.terminalType]}Po.firstForTerminal=Aj});var kv=w(ey=>{"use strict";Object.defineProperty(ey,"__esModule",{value:!0});ey.IN=void 0;ey.IN="_~IN~_"});var fj=w(As=>{"use strict";var wEe=As&&As.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(As,"__esModule",{value:!0});As.buildInProdFollowPrefix=As.buildBetweenProdsFollowPrefix=As.computeAllProdsFollows=As.ResyncFollowsWalker=void 0;var BEe=VI(),QEe=Dv(),lj=Gt(),cj=kv(),bEe=dn(),uj=function(r){wEe(e,r);function e(t){var i=r.call(this)||this;return i.topProd=t,i.follows={},i}return e.prototype.startWalking=function(){return this.walk(this.topProd),this.follows},e.prototype.walkTerminal=function(t,i,n){},e.prototype.walkProdRef=function(t,i,n){var s=gj(t.referencedRule,t.idx)+this.topProd.name,o=i.concat(n),a=new bEe.Alternative({definition:o}),l=(0,QEe.first)(a);this.follows[s]=l},e}(BEe.RestWalker);As.ResyncFollowsWalker=uj;function SEe(r){var e={};return(0,lj.forEach)(r,function(t){var i=new uj(t).startWalking();(0,lj.assign)(e,i)}),e}As.computeAllProdsFollows=SEe;function gj(r,e){return r.name+e+cj.IN}As.buildBetweenProdsFollowPrefix=gj;function vEe(r){var e=r.terminalType.name;return e+r.idx+cj.IN}As.buildInProdFollowPrefix=vEe});var Cd=w(Ba=>{"use strict";Object.defineProperty(Ba,"__esModule",{value:!0});Ba.defaultGrammarValidatorErrorProvider=Ba.defaultGrammarResolverErrorProvider=Ba.defaultParserErrorProvider=void 0;var jg=SA(),xEe=Gt(),Xs=Gt(),Rv=dn(),hj=dd();Ba.defaultParserErrorProvider={buildMismatchTokenMessage:function(r){var e=r.expected,t=r.actual,i=r.previous,n=r.ruleName,s=(0,jg.hasTokenLabel)(e),o=s?"--> "+(0,jg.tokenLabel)(e)+" <--":"token of type --> "+e.name+" <--",a="Expecting "+o+" but found --> '"+t.image+"' <--";return a},buildNotAllInputParsedMessage:function(r){var e=r.firstRedundant,t=r.ruleName;return"Redundant input, expecting EOF but found: "+e.image},buildNoViableAltMessage:function(r){var e=r.expectedPathsPerAlt,t=r.actual,i=r.previous,n=r.customUserDescription,s=r.ruleName,o="Expecting: ",a=(0,Xs.first)(t).image,l=` +but found: '`+a+"'";if(n)return o+n+l;var c=(0,Xs.reduce)(e,function(h,p){return h.concat(p)},[]),u=(0,Xs.map)(c,function(h){return"["+(0,Xs.map)(h,function(p){return(0,jg.tokenLabel)(p)}).join(", ")+"]"}),g=(0,Xs.map)(u,function(h,p){return" "+(p+1)+". "+h}),f=`one of these possible Token sequences: +`+g.join(` +`);return o+f+l},buildEarlyExitMessage:function(r){var e=r.expectedIterationPaths,t=r.actual,i=r.customUserDescription,n=r.ruleName,s="Expecting: ",o=(0,Xs.first)(t).image,a=` +but found: '`+o+"'";if(i)return s+i+a;var l=(0,Xs.map)(e,function(u){return"["+(0,Xs.map)(u,function(g){return(0,jg.tokenLabel)(g)}).join(",")+"]"}),c=`expecting at least one iteration which starts with one of these possible Token sequences:: + `+("<"+l.join(" ,")+">");return s+c+a}};Object.freeze(Ba.defaultParserErrorProvider);Ba.defaultGrammarResolverErrorProvider={buildRuleNotFoundError:function(r,e){var t="Invalid grammar, reference to a rule which is not defined: ->"+e.nonTerminalName+`<- +inside top level rule: ->`+r.name+"<-";return t}};Ba.defaultGrammarValidatorErrorProvider={buildDuplicateFoundError:function(r,e){function t(u){return u instanceof Rv.Terminal?u.terminalType.name:u instanceof Rv.NonTerminal?u.nonTerminalName:""}var i=r.name,n=(0,Xs.first)(e),s=n.idx,o=(0,hj.getProductionDslName)(n),a=t(n),l=s>0,c="->"+o+(l?s:"")+"<- "+(a?"with argument: ->"+a+"<-":"")+` + appears more than once (`+e.length+" times) in the top level rule: ->"+i+`<-. + For further details see: https://chevrotain.io/docs/FAQ.html#NUMERICAL_SUFFIXES + `;return c=c.replace(/[ \t]+/g," "),c=c.replace(/\s\s+/g,` +`),c},buildNamespaceConflictError:function(r){var e=`Namespace conflict found in grammar. +`+("The grammar has both a Terminal(Token) and a Non-Terminal(Rule) named: <"+r.name+`>. +`)+`To resolve this make sure each Terminal and Non-Terminal names are unique +This is easy to accomplish by using the convention that Terminal names start with an uppercase letter +and Non-Terminal names start with a lower case letter.`;return e},buildAlternationPrefixAmbiguityError:function(r){var e=(0,Xs.map)(r.prefixPath,function(n){return(0,jg.tokenLabel)(n)}).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,i="Ambiguous alternatives: <"+r.ambiguityIndices.join(" ,")+`> due to common lookahead prefix +`+("in inside <"+r.topLevelRule.name+`> Rule, +`)+("<"+e+`> may appears as a prefix path in all these alternatives. +`)+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#COMMON_PREFIX +For Further details.`;return i},buildAlternationAmbiguityError:function(r){var e=(0,Xs.map)(r.prefixPath,function(n){return(0,jg.tokenLabel)(n)}).join(", "),t=r.alternation.idx===0?"":r.alternation.idx,i="Ambiguous Alternatives Detected: <"+r.ambiguityIndices.join(" ,")+"> in "+(" inside <"+r.topLevelRule.name+`> Rule, +`)+("<"+e+`> may appears as a prefix path in all these alternatives. +`);return i=i+`See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#AMBIGUOUS_ALTERNATIVES +For Further details.`,i},buildEmptyRepetitionError:function(r){var e=(0,hj.getProductionDslName)(r.repetition);r.repetition.idx!==0&&(e+=r.repetition.idx);var t="The repetition <"+e+"> within Rule <"+r.topLevelRule.name+`> can never consume any tokens. +This could lead to an infinite loop.`;return t},buildTokenNameError:function(r){return"deprecated"},buildEmptyAlternationError:function(r){var e="Ambiguous empty alternative: <"+(r.emptyChoiceIdx+1)+">"+(" in inside <"+r.topLevelRule.name+`> Rule. +`)+"Only the last alternative may be an empty alternative.";return e},buildTooManyAlternativesError:function(r){var e=`An Alternation cannot have more than 256 alternatives: +`+(" inside <"+r.topLevelRule.name+`> Rule. + has `+(r.alternation.definition.length+1)+" alternatives.");return e},buildLeftRecursionError:function(r){var e=r.topLevelRule.name,t=xEe.map(r.leftRecursionPath,function(s){return s.name}),i=e+" --> "+t.concat([e]).join(" --> "),n=`Left Recursion found in grammar. +`+("rule: <"+e+`> can be invoked from itself (directly or indirectly) +`)+(`without consuming any Tokens. The grammar path that causes this is: + `+i+` +`)+` To fix this refactor your grammar to remove the left recursion. +see: https://en.wikipedia.org/wiki/LL_parser#Left_Factoring.`;return n},buildInvalidRuleNameError:function(r){return"deprecated"},buildDuplicateRuleNameError:function(r){var e;r.topLevelRule instanceof Rv.Rule?e=r.topLevelRule.name:e=r.topLevelRule;var t="Duplicate definition, rule: ->"+e+"<- is already defined in the grammar: ->"+r.grammarName+"<-";return t}}});var Cj=w(vA=>{"use strict";var PEe=vA&&vA.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(vA,"__esModule",{value:!0});vA.GastRefResolverVisitor=vA.resolveGrammar=void 0;var DEe=Hn(),pj=Gt(),kEe=Yg();function REe(r,e){var t=new dj(r,e);return t.resolveRefs(),t.errors}vA.resolveGrammar=REe;var dj=function(r){PEe(e,r);function e(t,i){var n=r.call(this)||this;return n.nameToTopRule=t,n.errMsgProvider=i,n.errors=[],n}return e.prototype.resolveRefs=function(){var t=this;(0,pj.forEach)((0,pj.values)(this.nameToTopRule),function(i){t.currTopLevel=i,i.accept(t)})},e.prototype.visitNonTerminal=function(t){var i=this.nameToTopRule[t.nonTerminalName];if(i)t.referencedRule=i;else{var n=this.errMsgProvider.buildRuleNotFoundError(this.currTopLevel,t);this.errors.push({message:n,type:DEe.ParserDefinitionErrorType.UNRESOLVED_SUBRULE_REF,ruleName:this.currTopLevel.name,unresolvedRefName:t.nonTerminalName})}},e}(kEe.GAstVisitor);vA.GastRefResolverVisitor=dj});var Ed=w(Nr=>{"use strict";var sc=Nr&&Nr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(Nr,"__esModule",{value:!0});Nr.nextPossibleTokensAfter=Nr.possiblePathsFrom=Nr.NextTerminalAfterAtLeastOneSepWalker=Nr.NextTerminalAfterAtLeastOneWalker=Nr.NextTerminalAfterManySepWalker=Nr.NextTerminalAfterManyWalker=Nr.AbstractNextTerminalAfterProductionWalker=Nr.NextAfterTokenWalker=Nr.AbstractNextPossibleTokensWalker=void 0;var mj=VI(),Kt=Gt(),FEe=Dv(),kt=dn(),Ej=function(r){sc(e,r);function e(t,i){var n=r.call(this)||this;return n.topProd=t,n.path=i,n.possibleTokTypes=[],n.nextProductionName="",n.nextProductionOccurrence=0,n.found=!1,n.isAtEndOfPath=!1,n}return e.prototype.startWalking=function(){if(this.found=!1,this.path.ruleStack[0]!==this.topProd.name)throw Error("The path does not start with the walker's top Rule!");return this.ruleStack=(0,Kt.cloneArr)(this.path.ruleStack).reverse(),this.occurrenceStack=(0,Kt.cloneArr)(this.path.occurrenceStack).reverse(),this.ruleStack.pop(),this.occurrenceStack.pop(),this.updateExpectedNext(),this.walk(this.topProd),this.possibleTokTypes},e.prototype.walk=function(t,i){i===void 0&&(i=[]),this.found||r.prototype.walk.call(this,t,i)},e.prototype.walkProdRef=function(t,i,n){if(t.referencedRule.name===this.nextProductionName&&t.idx===this.nextProductionOccurrence){var s=i.concat(n);this.updateExpectedNext(),this.walk(t.referencedRule,s)}},e.prototype.updateExpectedNext=function(){(0,Kt.isEmpty)(this.ruleStack)?(this.nextProductionName="",this.nextProductionOccurrence=0,this.isAtEndOfPath=!0):(this.nextProductionName=this.ruleStack.pop(),this.nextProductionOccurrence=this.occurrenceStack.pop())},e}(mj.RestWalker);Nr.AbstractNextPossibleTokensWalker=Ej;var NEe=function(r){sc(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.path=i,n.nextTerminalName="",n.nextTerminalOccurrence=0,n.nextTerminalName=n.path.lastTok.name,n.nextTerminalOccurrence=n.path.lastTokOccurrence,n}return e.prototype.walkTerminal=function(t,i,n){if(this.isAtEndOfPath&&t.terminalType.name===this.nextTerminalName&&t.idx===this.nextTerminalOccurrence&&!this.found){var s=i.concat(n),o=new kt.Alternative({definition:s});this.possibleTokTypes=(0,FEe.first)(o),this.found=!0}},e}(Ej);Nr.NextAfterTokenWalker=NEe;var md=function(r){sc(e,r);function e(t,i){var n=r.call(this)||this;return n.topRule=t,n.occurrence=i,n.result={token:void 0,occurrence:void 0,isEndOfRule:void 0},n}return e.prototype.startWalking=function(){return this.walk(this.topRule),this.result},e}(mj.RestWalker);Nr.AbstractNextTerminalAfterProductionWalker=md;var LEe=function(r){sc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkMany=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkMany.call(this,t,i,n)},e}(md);Nr.NextTerminalAfterManyWalker=LEe;var TEe=function(r){sc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkManySep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkManySep.call(this,t,i,n)},e}(md);Nr.NextTerminalAfterManySepWalker=TEe;var OEe=function(r){sc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOne=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOne.call(this,t,i,n)},e}(md);Nr.NextTerminalAfterAtLeastOneWalker=OEe;var MEe=function(r){sc(e,r);function e(){return r!==null&&r.apply(this,arguments)||this}return e.prototype.walkAtLeastOneSep=function(t,i,n){if(t.idx===this.occurrence){var s=(0,Kt.first)(i.concat(n));this.result.isEndOfRule=s===void 0,s instanceof kt.Terminal&&(this.result.token=s.terminalType,this.result.occurrence=s.idx)}else r.prototype.walkAtLeastOneSep.call(this,t,i,n)},e}(md);Nr.NextTerminalAfterAtLeastOneSepWalker=MEe;function Ij(r,e,t){t===void 0&&(t=[]),t=(0,Kt.cloneArr)(t);var i=[],n=0;function s(c){return c.concat((0,Kt.drop)(r,n+1))}function o(c){var u=Ij(s(c),e,t);return i.concat(u)}for(;t.length=0;ge--){var re=B.definition[ge],O={idx:p,def:re.definition.concat((0,Kt.drop)(h)),ruleStack:C,occurrenceStack:y};g.push(O),g.push(o)}else if(B instanceof kt.Alternative)g.push({idx:p,def:B.definition.concat((0,Kt.drop)(h)),ruleStack:C,occurrenceStack:y});else if(B instanceof kt.Rule)g.push(UEe(B,p,C,y));else throw Error("non exhaustive match")}}return u}Nr.nextPossibleTokensAfter=KEe;function UEe(r,e,t,i){var n=(0,Kt.cloneArr)(t);n.push(r.name);var s=(0,Kt.cloneArr)(i);return s.push(1),{idx:e,def:r.definition,ruleStack:n,occurrenceStack:s}}});var Id=w(_t=>{"use strict";var Bj=_t&&_t.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(_t,"__esModule",{value:!0});_t.areTokenCategoriesNotUsed=_t.isStrictPrefixOfPath=_t.containsPath=_t.getLookaheadPathsForOptionalProd=_t.getLookaheadPathsForOr=_t.lookAheadSequenceFromAlternatives=_t.buildSingleAlternativeLookaheadFunction=_t.buildAlternativesLookAheadFunc=_t.buildLookaheadFuncForOptionalProd=_t.buildLookaheadFuncForOr=_t.getProdType=_t.PROD_TYPE=void 0;var sr=Gt(),yj=Ed(),HEe=VI(),ty=Gg(),xA=dn(),GEe=Yg(),oi;(function(r){r[r.OPTION=0]="OPTION",r[r.REPETITION=1]="REPETITION",r[r.REPETITION_MANDATORY=2]="REPETITION_MANDATORY",r[r.REPETITION_MANDATORY_WITH_SEPARATOR=3]="REPETITION_MANDATORY_WITH_SEPARATOR",r[r.REPETITION_WITH_SEPARATOR=4]="REPETITION_WITH_SEPARATOR",r[r.ALTERNATION=5]="ALTERNATION"})(oi=_t.PROD_TYPE||(_t.PROD_TYPE={}));function YEe(r){if(r instanceof xA.Option)return oi.OPTION;if(r instanceof xA.Repetition)return oi.REPETITION;if(r instanceof xA.RepetitionMandatory)return oi.REPETITION_MANDATORY;if(r instanceof xA.RepetitionMandatoryWithSeparator)return oi.REPETITION_MANDATORY_WITH_SEPARATOR;if(r instanceof xA.RepetitionWithSeparator)return oi.REPETITION_WITH_SEPARATOR;if(r instanceof xA.Alternation)return oi.ALTERNATION;throw Error("non exhaustive match")}_t.getProdType=YEe;function jEe(r,e,t,i,n,s){var o=bj(r,e,t),a=Lv(o)?ty.tokenStructuredMatcherNoCategories:ty.tokenStructuredMatcher;return s(o,i,a,n)}_t.buildLookaheadFuncForOr=jEe;function qEe(r,e,t,i,n,s){var o=Sj(r,e,n,t),a=Lv(o)?ty.tokenStructuredMatcherNoCategories:ty.tokenStructuredMatcher;return s(o[0],a,i)}_t.buildLookaheadFuncForOptionalProd=qEe;function JEe(r,e,t,i){var n=r.length,s=(0,sr.every)(r,function(l){return(0,sr.every)(l,function(c){return c.length===1})});if(e)return function(l){for(var c=(0,sr.map)(l,function(D){return D.GATE}),u=0;u{"use strict";var Tv=zt&&zt.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(zt,"__esModule",{value:!0});zt.checkPrefixAlternativesAmbiguities=zt.validateSomeNonEmptyLookaheadPath=zt.validateTooManyAlts=zt.RepetionCollector=zt.validateAmbiguousAlternationAlternatives=zt.validateEmptyOrAlternative=zt.getFirstNoneTerminal=zt.validateNoLeftRecursion=zt.validateRuleIsOverridden=zt.validateRuleDoesNotAlreadyExist=zt.OccurrenceValidationCollector=zt.identifyProductionForDuplicates=zt.validateGrammar=void 0;var er=Gt(),br=Gt(),Do=Hn(),Ov=dd(),qg=Id(),_Ee=Ed(),_s=dn(),Mv=Yg();function ZEe(r,e,t,i,n){var s=er.map(r,function(h){return $Ee(h,i)}),o=er.map(r,function(h){return Kv(h,h,i)}),a=[],l=[],c=[];(0,br.every)(o,br.isEmpty)&&(a=(0,br.map)(r,function(h){return Rj(h,i)}),l=(0,br.map)(r,function(h){return Fj(h,e,i)}),c=Tj(r,e,i));var u=rIe(r,t,i),g=(0,br.map)(r,function(h){return Lj(h,i)}),f=(0,br.map)(r,function(h){return kj(h,r,n,i)});return er.flatten(s.concat(c,o,a,l,u,g,f))}zt.validateGrammar=ZEe;function $Ee(r,e){var t=new Dj;r.accept(t);var i=t.allProductions,n=er.groupBy(i,xj),s=er.pick(n,function(a){return a.length>1}),o=er.map(er.values(s),function(a){var l=er.first(a),c=e.buildDuplicateFoundError(r,a),u=(0,Ov.getProductionDslName)(l),g={message:c,type:Do.ParserDefinitionErrorType.DUPLICATE_PRODUCTIONS,ruleName:r.name,dslName:u,occurrence:l.idx},f=Pj(l);return f&&(g.parameter=f),g});return o}function xj(r){return(0,Ov.getProductionDslName)(r)+"_#_"+r.idx+"_#_"+Pj(r)}zt.identifyProductionForDuplicates=xj;function Pj(r){return r instanceof _s.Terminal?r.terminalType.name:r instanceof _s.NonTerminal?r.nonTerminalName:""}var Dj=function(r){Tv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitNonTerminal=function(t){this.allProductions.push(t)},e.prototype.visitOption=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e.prototype.visitAlternation=function(t){this.allProductions.push(t)},e.prototype.visitTerminal=function(t){this.allProductions.push(t)},e}(Mv.GAstVisitor);zt.OccurrenceValidationCollector=Dj;function kj(r,e,t,i){var n=[],s=(0,br.reduce)(e,function(a,l){return l.name===r.name?a+1:a},0);if(s>1){var o=i.buildDuplicateRuleNameError({topLevelRule:r,grammarName:t});n.push({message:o,type:Do.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:r.name})}return n}zt.validateRuleDoesNotAlreadyExist=kj;function eIe(r,e,t){var i=[],n;return er.contains(e,r)||(n="Invalid rule override, rule: ->"+r+"<- cannot be overridden in the grammar: ->"+t+"<-as it is not defined in any of the super grammars ",i.push({message:n,type:Do.ParserDefinitionErrorType.INVALID_RULE_OVERRIDE,ruleName:r})),i}zt.validateRuleIsOverridden=eIe;function Kv(r,e,t,i){i===void 0&&(i=[]);var n=[],s=yd(e.definition);if(er.isEmpty(s))return[];var o=r.name,a=er.contains(s,r);a&&n.push({message:t.buildLeftRecursionError({topLevelRule:r,leftRecursionPath:i}),type:Do.ParserDefinitionErrorType.LEFT_RECURSION,ruleName:o});var l=er.difference(s,i.concat([r])),c=er.map(l,function(u){var g=er.cloneArr(i);return g.push(u),Kv(r,u,t,g)});return n.concat(er.flatten(c))}zt.validateNoLeftRecursion=Kv;function yd(r){var e=[];if(er.isEmpty(r))return e;var t=er.first(r);if(t instanceof _s.NonTerminal)e.push(t.referencedRule);else if(t instanceof _s.Alternative||t instanceof _s.Option||t instanceof _s.RepetitionMandatory||t instanceof _s.RepetitionMandatoryWithSeparator||t instanceof _s.RepetitionWithSeparator||t instanceof _s.Repetition)e=e.concat(yd(t.definition));else if(t instanceof _s.Alternation)e=er.flatten(er.map(t.definition,function(o){return yd(o.definition)}));else if(!(t instanceof _s.Terminal))throw Error("non exhaustive match");var i=(0,Ov.isOptionalProd)(t),n=r.length>1;if(i&&n){var s=er.drop(r);return e.concat(yd(s))}else return e}zt.getFirstNoneTerminal=yd;var Uv=function(r){Tv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.alternations=[],t}return e.prototype.visitAlternation=function(t){this.alternations.push(t)},e}(Mv.GAstVisitor);function Rj(r,e){var t=new Uv;r.accept(t);var i=t.alternations,n=er.reduce(i,function(s,o){var a=er.dropRight(o.definition),l=er.map(a,function(c,u){var g=(0,_Ee.nextPossibleTokensAfter)([c],[],null,1);return er.isEmpty(g)?{message:e.buildEmptyAlternationError({topLevelRule:r,alternation:o,emptyChoiceIdx:u}),type:Do.ParserDefinitionErrorType.NONE_LAST_EMPTY_ALT,ruleName:r.name,occurrence:o.idx,alternative:u+1}:null});return s.concat(er.compact(l))},[]);return n}zt.validateEmptyOrAlternative=Rj;function Fj(r,e,t){var i=new Uv;r.accept(i);var n=i.alternations;n=(0,br.reject)(n,function(o){return o.ignoreAmbiguities===!0});var s=er.reduce(n,function(o,a){var l=a.idx,c=a.maxLookahead||e,u=(0,qg.getLookaheadPathsForOr)(l,r,c,a),g=tIe(u,a,r,t),f=Oj(u,a,r,t);return o.concat(g,f)},[]);return s}zt.validateAmbiguousAlternationAlternatives=Fj;var Nj=function(r){Tv(e,r);function e(){var t=r!==null&&r.apply(this,arguments)||this;return t.allProductions=[],t}return e.prototype.visitRepetitionWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatory=function(t){this.allProductions.push(t)},e.prototype.visitRepetitionMandatoryWithSeparator=function(t){this.allProductions.push(t)},e.prototype.visitRepetition=function(t){this.allProductions.push(t)},e}(Mv.GAstVisitor);zt.RepetionCollector=Nj;function Lj(r,e){var t=new Uv;r.accept(t);var i=t.alternations,n=er.reduce(i,function(s,o){return o.definition.length>255&&s.push({message:e.buildTooManyAlternativesError({topLevelRule:r,alternation:o}),type:Do.ParserDefinitionErrorType.TOO_MANY_ALTS,ruleName:r.name,occurrence:o.idx}),s},[]);return n}zt.validateTooManyAlts=Lj;function Tj(r,e,t){var i=[];return(0,br.forEach)(r,function(n){var s=new Nj;n.accept(s);var o=s.allProductions;(0,br.forEach)(o,function(a){var l=(0,qg.getProdType)(a),c=a.maxLookahead||e,u=a.idx,g=(0,qg.getLookaheadPathsForOptionalProd)(u,n,l,c),f=g[0];if((0,br.isEmpty)((0,br.flatten)(f))){var h=t.buildEmptyRepetitionError({topLevelRule:n,repetition:a});i.push({message:h,type:Do.ParserDefinitionErrorType.NO_NON_EMPTY_LOOKAHEAD,ruleName:n.name})}})}),i}zt.validateSomeNonEmptyLookaheadPath=Tj;function tIe(r,e,t,i){var n=[],s=(0,br.reduce)(r,function(a,l,c){return e.definition[c].ignoreAmbiguities===!0||(0,br.forEach)(l,function(u){var g=[c];(0,br.forEach)(r,function(f,h){c!==h&&(0,qg.containsPath)(f,u)&&e.definition[h].ignoreAmbiguities!==!0&&g.push(h)}),g.length>1&&!(0,qg.containsPath)(n,u)&&(n.push(u),a.push({alts:g,path:u}))}),a},[]),o=er.map(s,function(a){var l=(0,br.map)(a.alts,function(u){return u+1}),c=i.buildAlternationAmbiguityError({topLevelRule:t,alternation:e,ambiguityIndices:l,prefixPath:a.path});return{message:c,type:Do.ParserDefinitionErrorType.AMBIGUOUS_ALTS,ruleName:t.name,occurrence:e.idx,alternatives:[a.alts]}});return o}function Oj(r,e,t,i){var n=[],s=(0,br.reduce)(r,function(o,a,l){var c=(0,br.map)(a,function(u){return{idx:l,path:u}});return o.concat(c)},[]);return(0,br.forEach)(s,function(o){var a=e.definition[o.idx];if(a.ignoreAmbiguities!==!0){var l=o.idx,c=o.path,u=(0,br.findAll)(s,function(f){return e.definition[f.idx].ignoreAmbiguities!==!0&&f.idx{"use strict";Object.defineProperty(Jg,"__esModule",{value:!0});Jg.validateGrammar=Jg.resolveGrammar=void 0;var Gv=Gt(),iIe=Cj(),nIe=Hv(),Mj=Cd();function sIe(r){r=(0,Gv.defaults)(r,{errMsgProvider:Mj.defaultGrammarResolverErrorProvider});var e={};return(0,Gv.forEach)(r.rules,function(t){e[t.name]=t}),(0,iIe.resolveGrammar)(e,r.errMsgProvider)}Jg.resolveGrammar=sIe;function oIe(r){return r=(0,Gv.defaults)(r,{errMsgProvider:Mj.defaultGrammarValidatorErrorProvider}),(0,nIe.validateGrammar)(r.rules,r.maxLookahead,r.tokenTypes,r.errMsgProvider,r.grammarName)}Jg.validateGrammar=oIe});var Wg=w(mn=>{"use strict";var wd=mn&&mn.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(mn,"__esModule",{value:!0});mn.EarlyExitException=mn.NotAllInputParsedException=mn.NoViableAltException=mn.MismatchedTokenException=mn.isRecognitionException=void 0;var aIe=Gt(),Uj="MismatchedTokenException",Hj="NoViableAltException",Gj="EarlyExitException",Yj="NotAllInputParsedException",jj=[Uj,Hj,Gj,Yj];Object.freeze(jj);function AIe(r){return(0,aIe.contains)(jj,r.name)}mn.isRecognitionException=AIe;var ry=function(r){wd(e,r);function e(t,i){var n=this.constructor,s=r.call(this,t)||this;return s.token=i,s.resyncedTokens=[],Object.setPrototypeOf(s,n.prototype),Error.captureStackTrace&&Error.captureStackTrace(s,s.constructor),s}return e}(Error),lIe=function(r){wd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=Uj,s}return e}(ry);mn.MismatchedTokenException=lIe;var cIe=function(r){wd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=Hj,s}return e}(ry);mn.NoViableAltException=cIe;var uIe=function(r){wd(e,r);function e(t,i){var n=r.call(this,t,i)||this;return n.name=Yj,n}return e}(ry);mn.NotAllInputParsedException=uIe;var gIe=function(r){wd(e,r);function e(t,i,n){var s=r.call(this,t,i)||this;return s.previousToken=n,s.name=Gj,s}return e}(ry);mn.EarlyExitException=gIe});var jv=w(Mi=>{"use strict";Object.defineProperty(Mi,"__esModule",{value:!0});Mi.attemptInRepetitionRecovery=Mi.Recoverable=Mi.InRuleRecoveryException=Mi.IN_RULE_RECOVERY_EXCEPTION=Mi.EOF_FOLLOW_KEY=void 0;var iy=SA(),ls=Gt(),fIe=Wg(),hIe=kv(),pIe=Hn();Mi.EOF_FOLLOW_KEY={};Mi.IN_RULE_RECOVERY_EXCEPTION="InRuleRecoveryException";function Yv(r){this.name=Mi.IN_RULE_RECOVERY_EXCEPTION,this.message=r}Mi.InRuleRecoveryException=Yv;Yv.prototype=Error.prototype;var dIe=function(){function r(){}return r.prototype.initRecoverable=function(e){this.firstAfterRepMap={},this.resyncFollows={},this.recoveryEnabled=(0,ls.has)(e,"recoveryEnabled")?e.recoveryEnabled:pIe.DEFAULT_PARSER_CONFIG.recoveryEnabled,this.recoveryEnabled&&(this.attemptInRepetitionRecovery=qj)},r.prototype.getTokenToInsert=function(e){var t=(0,iy.createTokenInstance)(e,"",NaN,NaN,NaN,NaN,NaN,NaN);return t.isInsertedInRecovery=!0,t},r.prototype.canTokenTypeBeInsertedInRecovery=function(e){return!0},r.prototype.tryInRepetitionRecovery=function(e,t,i,n){for(var s=this,o=this.findReSyncTokenType(),a=this.exportLexerState(),l=[],c=!1,u=this.LA(1),g=this.LA(1),f=function(){var h=s.LA(0),p=s.errorMessageProvider.buildMismatchTokenMessage({expected:n,actual:u,previous:h,ruleName:s.getCurrRuleFullName()}),C=new fIe.MismatchedTokenException(p,u,s.LA(0));C.resyncedTokens=(0,ls.dropRight)(l),s.SAVE_ERROR(C)};!c;)if(this.tokenMatcher(g,n)){f();return}else if(i.call(this)){f(),e.apply(this,t);return}else this.tokenMatcher(g,o)?c=!0:(g=this.SKIP_TOKEN(),this.addToResyncTokens(g,l));this.importLexerState(a)},r.prototype.shouldInRepetitionRecoveryBeTried=function(e,t,i){return!(i===!1||e===void 0||t===void 0||this.tokenMatcher(this.LA(1),e)||this.isBackTracking()||this.canPerformInRuleRecovery(e,this.getFollowsForInRuleRecovery(e,t)))},r.prototype.getFollowsForInRuleRecovery=function(e,t){var i=this.getCurrentGrammarPath(e,t),n=this.getNextPossibleTokenTypes(i);return n},r.prototype.tryInRuleRecovery=function(e,t){if(this.canRecoverWithSingleTokenInsertion(e,t)){var i=this.getTokenToInsert(e);return i}if(this.canRecoverWithSingleTokenDeletion(e)){var n=this.SKIP_TOKEN();return this.consumeToken(),n}throw new Yv("sad sad panda")},r.prototype.canPerformInRuleRecovery=function(e,t){return this.canRecoverWithSingleTokenInsertion(e,t)||this.canRecoverWithSingleTokenDeletion(e)},r.prototype.canRecoverWithSingleTokenInsertion=function(e,t){var i=this;if(!this.canTokenTypeBeInsertedInRecovery(e)||(0,ls.isEmpty)(t))return!1;var n=this.LA(1),s=(0,ls.find)(t,function(o){return i.tokenMatcher(n,o)})!==void 0;return s},r.prototype.canRecoverWithSingleTokenDeletion=function(e){var t=this.tokenMatcher(this.LA(2),e);return t},r.prototype.isInCurrentRuleReSyncSet=function(e){var t=this.getCurrFollowKey(),i=this.getFollowSetFromFollowKey(t);return(0,ls.contains)(i,e)},r.prototype.findReSyncTokenType=function(){for(var e=this.flattenFollowSet(),t=this.LA(1),i=2;;){var n=t.tokenType;if((0,ls.contains)(e,n))return n;t=this.LA(i),i++}},r.prototype.getCurrFollowKey=function(){if(this.RULE_STACK.length===1)return Mi.EOF_FOLLOW_KEY;var e=this.getLastExplicitRuleShortName(),t=this.getLastExplicitRuleOccurrenceIndex(),i=this.getPreviousExplicitRuleShortName();return{ruleName:this.shortRuleNameToFullName(e),idxInCallingRule:t,inRule:this.shortRuleNameToFullName(i)}},r.prototype.buildFullFollowKeyStack=function(){var e=this,t=this.RULE_STACK,i=this.RULE_OCCURRENCE_STACK;return(0,ls.map)(t,function(n,s){return s===0?Mi.EOF_FOLLOW_KEY:{ruleName:e.shortRuleNameToFullName(n),idxInCallingRule:i[s],inRule:e.shortRuleNameToFullName(t[s-1])}})},r.prototype.flattenFollowSet=function(){var e=this,t=(0,ls.map)(this.buildFullFollowKeyStack(),function(i){return e.getFollowSetFromFollowKey(i)});return(0,ls.flatten)(t)},r.prototype.getFollowSetFromFollowKey=function(e){if(e===Mi.EOF_FOLLOW_KEY)return[iy.EOF];var t=e.ruleName+e.idxInCallingRule+hIe.IN+e.inRule;return this.resyncFollows[t]},r.prototype.addToResyncTokens=function(e,t){return this.tokenMatcher(e,iy.EOF)||t.push(e),t},r.prototype.reSyncTo=function(e){for(var t=[],i=this.LA(1);this.tokenMatcher(i,e)===!1;)i=this.SKIP_TOKEN(),this.addToResyncTokens(i,t);return(0,ls.dropRight)(t)},r.prototype.attemptInRepetitionRecovery=function(e,t,i,n,s,o,a){},r.prototype.getCurrentGrammarPath=function(e,t){var i=this.getHumanReadableRuleStack(),n=(0,ls.cloneArr)(this.RULE_OCCURRENCE_STACK),s={ruleStack:i,occurrenceStack:n,lastTok:e,lastTokOccurrence:t};return s},r.prototype.getHumanReadableRuleStack=function(){var e=this;return(0,ls.map)(this.RULE_STACK,function(t){return e.shortRuleNameToFullName(t)})},r}();Mi.Recoverable=dIe;function qj(r,e,t,i,n,s,o){var a=this.getKeyForAutomaticLookahead(i,n),l=this.firstAfterRepMap[a];if(l===void 0){var c=this.getCurrRuleFullName(),u=this.getGAstProductions()[c],g=new s(u,n);l=g.startWalking(),this.firstAfterRepMap[a]=l}var f=l.token,h=l.occurrence,p=l.isEndOfRule;this.RULE_STACK.length===1&&p&&f===void 0&&(f=iy.EOF,h=1),this.shouldInRepetitionRecoveryBeTried(f,h,o)&&this.tryInRepetitionRecovery(r,e,t,f)}Mi.attemptInRepetitionRecovery=qj});var ny=w(qt=>{"use strict";Object.defineProperty(qt,"__esModule",{value:!0});qt.getKeyForAutomaticLookahead=qt.AT_LEAST_ONE_SEP_IDX=qt.MANY_SEP_IDX=qt.AT_LEAST_ONE_IDX=qt.MANY_IDX=qt.OPTION_IDX=qt.OR_IDX=qt.BITS_FOR_ALT_IDX=qt.BITS_FOR_RULE_IDX=qt.BITS_FOR_OCCURRENCE_IDX=qt.BITS_FOR_METHOD_TYPE=void 0;qt.BITS_FOR_METHOD_TYPE=4;qt.BITS_FOR_OCCURRENCE_IDX=8;qt.BITS_FOR_RULE_IDX=12;qt.BITS_FOR_ALT_IDX=8;qt.OR_IDX=1<{"use strict";Object.defineProperty(sy,"__esModule",{value:!0});sy.LooksAhead=void 0;var Qa=Id(),Zs=Gt(),Jj=Hn(),ba=ny(),oc=dd(),mIe=function(){function r(){}return r.prototype.initLooksAhead=function(e){this.dynamicTokensEnabled=(0,Zs.has)(e,"dynamicTokensEnabled")?e.dynamicTokensEnabled:Jj.DEFAULT_PARSER_CONFIG.dynamicTokensEnabled,this.maxLookahead=(0,Zs.has)(e,"maxLookahead")?e.maxLookahead:Jj.DEFAULT_PARSER_CONFIG.maxLookahead,this.lookAheadFuncsCache=(0,Zs.isES2015MapSupported)()?new Map:[],(0,Zs.isES2015MapSupported)()?(this.getLaFuncFromCache=this.getLaFuncFromMap,this.setLaFuncCache=this.setLaFuncCacheUsingMap):(this.getLaFuncFromCache=this.getLaFuncFromObj,this.setLaFuncCache=this.setLaFuncUsingObj)},r.prototype.preComputeLookaheadFunctions=function(e){var t=this;(0,Zs.forEach)(e,function(i){t.TRACE_INIT(i.name+" Rule Lookahead",function(){var n=(0,oc.collectMethods)(i),s=n.alternation,o=n.repetition,a=n.option,l=n.repetitionMandatory,c=n.repetitionMandatoryWithSeparator,u=n.repetitionWithSeparator;(0,Zs.forEach)(s,function(g){var f=g.idx===0?"":g.idx;t.TRACE_INIT(""+(0,oc.getProductionDslName)(g)+f,function(){var h=(0,Qa.buildLookaheadFuncForOr)(g.idx,i,g.maxLookahead||t.maxLookahead,g.hasPredicates,t.dynamicTokensEnabled,t.lookAheadBuilderForAlternatives),p=(0,ba.getKeyForAutomaticLookahead)(t.fullRuleNameToShort[i.name],ba.OR_IDX,g.idx);t.setLaFuncCache(p,h)})}),(0,Zs.forEach)(o,function(g){t.computeLookaheadFunc(i,g.idx,ba.MANY_IDX,Qa.PROD_TYPE.REPETITION,g.maxLookahead,(0,oc.getProductionDslName)(g))}),(0,Zs.forEach)(a,function(g){t.computeLookaheadFunc(i,g.idx,ba.OPTION_IDX,Qa.PROD_TYPE.OPTION,g.maxLookahead,(0,oc.getProductionDslName)(g))}),(0,Zs.forEach)(l,function(g){t.computeLookaheadFunc(i,g.idx,ba.AT_LEAST_ONE_IDX,Qa.PROD_TYPE.REPETITION_MANDATORY,g.maxLookahead,(0,oc.getProductionDslName)(g))}),(0,Zs.forEach)(c,function(g){t.computeLookaheadFunc(i,g.idx,ba.AT_LEAST_ONE_SEP_IDX,Qa.PROD_TYPE.REPETITION_MANDATORY_WITH_SEPARATOR,g.maxLookahead,(0,oc.getProductionDslName)(g))}),(0,Zs.forEach)(u,function(g){t.computeLookaheadFunc(i,g.idx,ba.MANY_SEP_IDX,Qa.PROD_TYPE.REPETITION_WITH_SEPARATOR,g.maxLookahead,(0,oc.getProductionDslName)(g))})})})},r.prototype.computeLookaheadFunc=function(e,t,i,n,s,o){var a=this;this.TRACE_INIT(""+o+(t===0?"":t),function(){var l=(0,Qa.buildLookaheadFuncForOptionalProd)(t,e,s||a.maxLookahead,a.dynamicTokensEnabled,n,a.lookAheadBuilderForOptional),c=(0,ba.getKeyForAutomaticLookahead)(a.fullRuleNameToShort[e.name],i,t);a.setLaFuncCache(c,l)})},r.prototype.lookAheadBuilderForOptional=function(e,t,i){return(0,Qa.buildSingleAlternativeLookaheadFunction)(e,t,i)},r.prototype.lookAheadBuilderForAlternatives=function(e,t,i,n){return(0,Qa.buildAlternativesLookAheadFunc)(e,t,i,n)},r.prototype.getKeyForAutomaticLookahead=function(e,t){var i=this.getLastExplicitRuleShortName();return(0,ba.getKeyForAutomaticLookahead)(i,e,t)},r.prototype.getLaFuncFromCache=function(e){},r.prototype.getLaFuncFromMap=function(e){return this.lookAheadFuncsCache.get(e)},r.prototype.getLaFuncFromObj=function(e){return this.lookAheadFuncsCache[e]},r.prototype.setLaFuncCache=function(e,t){},r.prototype.setLaFuncCacheUsingMap=function(e,t){this.lookAheadFuncsCache.set(e,t)},r.prototype.setLaFuncUsingObj=function(e,t){this.lookAheadFuncsCache[e]=t},r}();sy.LooksAhead=mIe});var zj=w(ko=>{"use strict";Object.defineProperty(ko,"__esModule",{value:!0});ko.addNoneTerminalToCst=ko.addTerminalToCst=ko.setNodeLocationFull=ko.setNodeLocationOnlyOffset=void 0;function EIe(r,e){isNaN(r.startOffset)===!0?(r.startOffset=e.startOffset,r.endOffset=e.endOffset):r.endOffset{"use strict";Object.defineProperty(PA,"__esModule",{value:!0});PA.defineNameProp=PA.functionName=PA.classNameFromInstance=void 0;var BIe=Gt();function QIe(r){return Xj(r.constructor)}PA.classNameFromInstance=QIe;var Vj="name";function Xj(r){var e=r.name;return e||"anonymous"}PA.functionName=Xj;function bIe(r,e){var t=Object.getOwnPropertyDescriptor(r,Vj);return(0,BIe.isUndefined)(t)||t.configurable?(Object.defineProperty(r,Vj,{enumerable:!1,configurable:!0,writable:!1,value:e}),!0):!1}PA.defineNameProp=bIe});var tq=w(bi=>{"use strict";Object.defineProperty(bi,"__esModule",{value:!0});bi.validateRedundantMethods=bi.validateMissingCstMethods=bi.validateVisitor=bi.CstVisitorDefinitionError=bi.createBaseVisitorConstructorWithDefaults=bi.createBaseSemanticVisitorConstructor=bi.defaultVisit=void 0;var cs=Gt(),Bd=qv();function _j(r,e){for(var t=(0,cs.keys)(r),i=t.length,n=0;n: + `+(""+s.join(` + +`).replace(/\n/g,` + `)))}}};return t.prototype=i,t.prototype.constructor=t,t._RULE_NAMES=e,t}bi.createBaseSemanticVisitorConstructor=SIe;function vIe(r,e,t){var i=function(){};(0,Bd.defineNameProp)(i,r+"BaseSemanticsWithDefaults");var n=Object.create(t.prototype);return(0,cs.forEach)(e,function(s){n[s]=_j}),i.prototype=n,i.prototype.constructor=i,i}bi.createBaseVisitorConstructorWithDefaults=vIe;var Jv;(function(r){r[r.REDUNDANT_METHOD=0]="REDUNDANT_METHOD",r[r.MISSING_METHOD=1]="MISSING_METHOD"})(Jv=bi.CstVisitorDefinitionError||(bi.CstVisitorDefinitionError={}));function Zj(r,e){var t=$j(r,e),i=eq(r,e);return t.concat(i)}bi.validateVisitor=Zj;function $j(r,e){var t=(0,cs.map)(e,function(i){if(!(0,cs.isFunction)(r[i]))return{msg:"Missing visitor method: <"+i+"> on "+(0,Bd.functionName)(r.constructor)+" CST Visitor.",type:Jv.MISSING_METHOD,methodName:i}});return(0,cs.compact)(t)}bi.validateMissingCstMethods=$j;var xIe=["constructor","visit","validateVisitor"];function eq(r,e){var t=[];for(var i in r)(0,cs.isFunction)(r[i])&&!(0,cs.contains)(xIe,i)&&!(0,cs.contains)(e,i)&&t.push({msg:"Redundant visitor method: <"+i+"> on "+(0,Bd.functionName)(r.constructor)+` CST Visitor +There is no Grammar Rule corresponding to this method's name. +`,type:Jv.REDUNDANT_METHOD,methodName:i});return t}bi.validateRedundantMethods=eq});var iq=w(oy=>{"use strict";Object.defineProperty(oy,"__esModule",{value:!0});oy.TreeBuilder=void 0;var zg=zj(),Zr=Gt(),rq=tq(),PIe=Hn(),DIe=function(){function r(){}return r.prototype.initTreeBuilder=function(e){if(this.CST_STACK=[],this.outputCst=e.outputCst,this.nodeLocationTracking=(0,Zr.has)(e,"nodeLocationTracking")?e.nodeLocationTracking:PIe.DEFAULT_PARSER_CONFIG.nodeLocationTracking,!this.outputCst)this.cstInvocationStateUpdate=Zr.NOOP,this.cstFinallyStateUpdate=Zr.NOOP,this.cstPostTerminal=Zr.NOOP,this.cstPostNonTerminal=Zr.NOOP,this.cstPostRule=Zr.NOOP;else if(/full/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=zg.setNodeLocationFull,this.setNodeLocationFromNode=zg.setNodeLocationFull,this.cstPostRule=Zr.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationFullRecovery):(this.setNodeLocationFromToken=Zr.NOOP,this.setNodeLocationFromNode=Zr.NOOP,this.cstPostRule=this.cstPostRuleFull,this.setInitialNodeLocation=this.setInitialNodeLocationFullRegular);else if(/onlyOffset/i.test(this.nodeLocationTracking))this.recoveryEnabled?(this.setNodeLocationFromToken=zg.setNodeLocationOnlyOffset,this.setNodeLocationFromNode=zg.setNodeLocationOnlyOffset,this.cstPostRule=Zr.NOOP,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRecovery):(this.setNodeLocationFromToken=Zr.NOOP,this.setNodeLocationFromNode=Zr.NOOP,this.cstPostRule=this.cstPostRuleOnlyOffset,this.setInitialNodeLocation=this.setInitialNodeLocationOnlyOffsetRegular);else if(/none/i.test(this.nodeLocationTracking))this.setNodeLocationFromToken=Zr.NOOP,this.setNodeLocationFromNode=Zr.NOOP,this.cstPostRule=Zr.NOOP,this.setInitialNodeLocation=Zr.NOOP;else throw Error('Invalid config option: "'+e.nodeLocationTracking+'"')},r.prototype.setInitialNodeLocationOnlyOffsetRecovery=function(e){e.location={startOffset:NaN,endOffset:NaN}},r.prototype.setInitialNodeLocationOnlyOffsetRegular=function(e){e.location={startOffset:this.LA(1).startOffset,endOffset:NaN}},r.prototype.setInitialNodeLocationFullRecovery=function(e){e.location={startOffset:NaN,startLine:NaN,startColumn:NaN,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.setInitialNodeLocationFullRegular=function(e){var t=this.LA(1);e.location={startOffset:t.startOffset,startLine:t.startLine,startColumn:t.startColumn,endOffset:NaN,endLine:NaN,endColumn:NaN}},r.prototype.cstInvocationStateUpdate=function(e,t){var i={name:e,children:{}};this.setInitialNodeLocation(i),this.CST_STACK.push(i)},r.prototype.cstFinallyStateUpdate=function(){this.CST_STACK.pop()},r.prototype.cstPostRuleFull=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?(i.endOffset=t.endOffset,i.endLine=t.endLine,i.endColumn=t.endColumn):(i.startOffset=NaN,i.startLine=NaN,i.startColumn=NaN)},r.prototype.cstPostRuleOnlyOffset=function(e){var t=this.LA(0),i=e.location;i.startOffset<=t.startOffset?i.endOffset=t.endOffset:i.startOffset=NaN},r.prototype.cstPostTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,zg.addTerminalToCst)(i,t,e),this.setNodeLocationFromToken(i.location,t)},r.prototype.cstPostNonTerminal=function(e,t){var i=this.CST_STACK[this.CST_STACK.length-1];(0,zg.addNoneTerminalToCst)(i,t,e),this.setNodeLocationFromNode(i.location,e.location)},r.prototype.getBaseCstVisitorConstructor=function(){if((0,Zr.isUndefined)(this.baseCstVisitorConstructor)){var e=(0,rq.createBaseSemanticVisitorConstructor)(this.className,(0,Zr.keys)(this.gastProductionsCache));return this.baseCstVisitorConstructor=e,e}return this.baseCstVisitorConstructor},r.prototype.getBaseCstVisitorConstructorWithDefaults=function(){if((0,Zr.isUndefined)(this.baseCstVisitorWithDefaultsConstructor)){var e=(0,rq.createBaseVisitorConstructorWithDefaults)(this.className,(0,Zr.keys)(this.gastProductionsCache),this.getBaseCstVisitorConstructor());return this.baseCstVisitorWithDefaultsConstructor=e,e}return this.baseCstVisitorWithDefaultsConstructor},r.prototype.getLastExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-1]},r.prototype.getPreviousExplicitRuleShortName=function(){var e=this.RULE_STACK;return e[e.length-2]},r.prototype.getLastExplicitRuleOccurrenceIndex=function(){var e=this.RULE_OCCURRENCE_STACK;return e[e.length-1]},r}();oy.TreeBuilder=DIe});var sq=w(ay=>{"use strict";Object.defineProperty(ay,"__esModule",{value:!0});ay.LexerAdapter=void 0;var nq=Hn(),kIe=function(){function r(){}return r.prototype.initLexerAdapter=function(){this.tokVector=[],this.tokVectorLength=0,this.currIdx=-1},Object.defineProperty(r.prototype,"input",{get:function(){return this.tokVector},set:function(e){if(this.selfAnalysisDone!==!0)throw Error("Missing invocation at the end of the Parser's constructor.");this.reset(),this.tokVector=e,this.tokVectorLength=e.length},enumerable:!1,configurable:!0}),r.prototype.SKIP_TOKEN=function(){return this.currIdx<=this.tokVector.length-2?(this.consumeToken(),this.LA(1)):nq.END_OF_FILE},r.prototype.LA=function(e){var t=this.currIdx+e;return t<0||this.tokVectorLength<=t?nq.END_OF_FILE:this.tokVector[t]},r.prototype.consumeToken=function(){this.currIdx++},r.prototype.exportLexerState=function(){return this.currIdx},r.prototype.importLexerState=function(e){this.currIdx=e},r.prototype.resetLexerState=function(){this.currIdx=-1},r.prototype.moveToTerminatedState=function(){this.currIdx=this.tokVector.length-1},r.prototype.getLexerPosition=function(){return this.exportLexerState()},r}();ay.LexerAdapter=kIe});var aq=w(Ay=>{"use strict";Object.defineProperty(Ay,"__esModule",{value:!0});Ay.RecognizerApi=void 0;var oq=Gt(),RIe=Wg(),Wv=Hn(),FIe=Cd(),NIe=Hv(),LIe=dn(),TIe=function(){function r(){}return r.prototype.ACTION=function(e){return e.call(this)},r.prototype.consume=function(e,t,i){return this.consumeInternal(t,e,i)},r.prototype.subrule=function(e,t,i){return this.subruleInternal(t,e,i)},r.prototype.option=function(e,t){return this.optionInternal(t,e)},r.prototype.or=function(e,t){return this.orInternal(t,e)},r.prototype.many=function(e,t){return this.manyInternal(e,t)},r.prototype.atLeastOne=function(e,t){return this.atLeastOneInternal(e,t)},r.prototype.CONSUME=function(e,t){return this.consumeInternal(e,0,t)},r.prototype.CONSUME1=function(e,t){return this.consumeInternal(e,1,t)},r.prototype.CONSUME2=function(e,t){return this.consumeInternal(e,2,t)},r.prototype.CONSUME3=function(e,t){return this.consumeInternal(e,3,t)},r.prototype.CONSUME4=function(e,t){return this.consumeInternal(e,4,t)},r.prototype.CONSUME5=function(e,t){return this.consumeInternal(e,5,t)},r.prototype.CONSUME6=function(e,t){return this.consumeInternal(e,6,t)},r.prototype.CONSUME7=function(e,t){return this.consumeInternal(e,7,t)},r.prototype.CONSUME8=function(e,t){return this.consumeInternal(e,8,t)},r.prototype.CONSUME9=function(e,t){return this.consumeInternal(e,9,t)},r.prototype.SUBRULE=function(e,t){return this.subruleInternal(e,0,t)},r.prototype.SUBRULE1=function(e,t){return this.subruleInternal(e,1,t)},r.prototype.SUBRULE2=function(e,t){return this.subruleInternal(e,2,t)},r.prototype.SUBRULE3=function(e,t){return this.subruleInternal(e,3,t)},r.prototype.SUBRULE4=function(e,t){return this.subruleInternal(e,4,t)},r.prototype.SUBRULE5=function(e,t){return this.subruleInternal(e,5,t)},r.prototype.SUBRULE6=function(e,t){return this.subruleInternal(e,6,t)},r.prototype.SUBRULE7=function(e,t){return this.subruleInternal(e,7,t)},r.prototype.SUBRULE8=function(e,t){return this.subruleInternal(e,8,t)},r.prototype.SUBRULE9=function(e,t){return this.subruleInternal(e,9,t)},r.prototype.OPTION=function(e){return this.optionInternal(e,0)},r.prototype.OPTION1=function(e){return this.optionInternal(e,1)},r.prototype.OPTION2=function(e){return this.optionInternal(e,2)},r.prototype.OPTION3=function(e){return this.optionInternal(e,3)},r.prototype.OPTION4=function(e){return this.optionInternal(e,4)},r.prototype.OPTION5=function(e){return this.optionInternal(e,5)},r.prototype.OPTION6=function(e){return this.optionInternal(e,6)},r.prototype.OPTION7=function(e){return this.optionInternal(e,7)},r.prototype.OPTION8=function(e){return this.optionInternal(e,8)},r.prototype.OPTION9=function(e){return this.optionInternal(e,9)},r.prototype.OR=function(e){return this.orInternal(e,0)},r.prototype.OR1=function(e){return this.orInternal(e,1)},r.prototype.OR2=function(e){return this.orInternal(e,2)},r.prototype.OR3=function(e){return this.orInternal(e,3)},r.prototype.OR4=function(e){return this.orInternal(e,4)},r.prototype.OR5=function(e){return this.orInternal(e,5)},r.prototype.OR6=function(e){return this.orInternal(e,6)},r.prototype.OR7=function(e){return this.orInternal(e,7)},r.prototype.OR8=function(e){return this.orInternal(e,8)},r.prototype.OR9=function(e){return this.orInternal(e,9)},r.prototype.MANY=function(e){this.manyInternal(0,e)},r.prototype.MANY1=function(e){this.manyInternal(1,e)},r.prototype.MANY2=function(e){this.manyInternal(2,e)},r.prototype.MANY3=function(e){this.manyInternal(3,e)},r.prototype.MANY4=function(e){this.manyInternal(4,e)},r.prototype.MANY5=function(e){this.manyInternal(5,e)},r.prototype.MANY6=function(e){this.manyInternal(6,e)},r.prototype.MANY7=function(e){this.manyInternal(7,e)},r.prototype.MANY8=function(e){this.manyInternal(8,e)},r.prototype.MANY9=function(e){this.manyInternal(9,e)},r.prototype.MANY_SEP=function(e){this.manySepFirstInternal(0,e)},r.prototype.MANY_SEP1=function(e){this.manySepFirstInternal(1,e)},r.prototype.MANY_SEP2=function(e){this.manySepFirstInternal(2,e)},r.prototype.MANY_SEP3=function(e){this.manySepFirstInternal(3,e)},r.prototype.MANY_SEP4=function(e){this.manySepFirstInternal(4,e)},r.prototype.MANY_SEP5=function(e){this.manySepFirstInternal(5,e)},r.prototype.MANY_SEP6=function(e){this.manySepFirstInternal(6,e)},r.prototype.MANY_SEP7=function(e){this.manySepFirstInternal(7,e)},r.prototype.MANY_SEP8=function(e){this.manySepFirstInternal(8,e)},r.prototype.MANY_SEP9=function(e){this.manySepFirstInternal(9,e)},r.prototype.AT_LEAST_ONE=function(e){this.atLeastOneInternal(0,e)},r.prototype.AT_LEAST_ONE1=function(e){return this.atLeastOneInternal(1,e)},r.prototype.AT_LEAST_ONE2=function(e){this.atLeastOneInternal(2,e)},r.prototype.AT_LEAST_ONE3=function(e){this.atLeastOneInternal(3,e)},r.prototype.AT_LEAST_ONE4=function(e){this.atLeastOneInternal(4,e)},r.prototype.AT_LEAST_ONE5=function(e){this.atLeastOneInternal(5,e)},r.prototype.AT_LEAST_ONE6=function(e){this.atLeastOneInternal(6,e)},r.prototype.AT_LEAST_ONE7=function(e){this.atLeastOneInternal(7,e)},r.prototype.AT_LEAST_ONE8=function(e){this.atLeastOneInternal(8,e)},r.prototype.AT_LEAST_ONE9=function(e){this.atLeastOneInternal(9,e)},r.prototype.AT_LEAST_ONE_SEP=function(e){this.atLeastOneSepFirstInternal(0,e)},r.prototype.AT_LEAST_ONE_SEP1=function(e){this.atLeastOneSepFirstInternal(1,e)},r.prototype.AT_LEAST_ONE_SEP2=function(e){this.atLeastOneSepFirstInternal(2,e)},r.prototype.AT_LEAST_ONE_SEP3=function(e){this.atLeastOneSepFirstInternal(3,e)},r.prototype.AT_LEAST_ONE_SEP4=function(e){this.atLeastOneSepFirstInternal(4,e)},r.prototype.AT_LEAST_ONE_SEP5=function(e){this.atLeastOneSepFirstInternal(5,e)},r.prototype.AT_LEAST_ONE_SEP6=function(e){this.atLeastOneSepFirstInternal(6,e)},r.prototype.AT_LEAST_ONE_SEP7=function(e){this.atLeastOneSepFirstInternal(7,e)},r.prototype.AT_LEAST_ONE_SEP8=function(e){this.atLeastOneSepFirstInternal(8,e)},r.prototype.AT_LEAST_ONE_SEP9=function(e){this.atLeastOneSepFirstInternal(9,e)},r.prototype.RULE=function(e,t,i){if(i===void 0&&(i=Wv.DEFAULT_RULE_CONFIG),(0,oq.contains)(this.definedRulesNames,e)){var n=FIe.defaultGrammarValidatorErrorProvider.buildDuplicateRuleNameError({topLevelRule:e,grammarName:this.className}),s={message:n,type:Wv.ParserDefinitionErrorType.DUPLICATE_RULE_NAME,ruleName:e};this.definitionErrors.push(s)}this.definedRulesNames.push(e);var o=this.defineRule(e,t,i);return this[e]=o,o},r.prototype.OVERRIDE_RULE=function(e,t,i){i===void 0&&(i=Wv.DEFAULT_RULE_CONFIG);var n=[];n=n.concat((0,NIe.validateRuleIsOverridden)(e,this.definedRulesNames,this.className)),this.definitionErrors=this.definitionErrors.concat(n);var s=this.defineRule(e,t,i);return this[e]=s,s},r.prototype.BACKTRACK=function(e,t){return function(){this.isBackTrackingStack.push(1);var i=this.saveRecogState();try{return e.apply(this,t),!0}catch(n){if((0,RIe.isRecognitionException)(n))return!1;throw n}finally{this.reloadRecogState(i),this.isBackTrackingStack.pop()}}},r.prototype.getGAstProductions=function(){return this.gastProductionsCache},r.prototype.getSerializedGastProductions=function(){return(0,LIe.serializeGrammar)((0,oq.values)(this.gastProductionsCache))},r}();Ay.RecognizerApi=TIe});var uq=w(cy=>{"use strict";Object.defineProperty(cy,"__esModule",{value:!0});cy.RecognizerEngine=void 0;var Pr=Gt(),Gn=ny(),ly=Wg(),Aq=Id(),Vg=Ed(),lq=Hn(),OIe=jv(),cq=SA(),Qd=Gg(),MIe=qv(),KIe=function(){function r(){}return r.prototype.initRecognizerEngine=function(e,t){if(this.className=(0,MIe.classNameFromInstance)(this),this.shortRuleNameToFull={},this.fullRuleNameToShort={},this.ruleShortNameIdx=256,this.tokenMatcher=Qd.tokenStructuredMatcherNoCategories,this.definedRulesNames=[],this.tokensMap={},this.isBackTrackingStack=[],this.RULE_STACK=[],this.RULE_OCCURRENCE_STACK=[],this.gastProductionsCache={},(0,Pr.has)(t,"serializedGrammar"))throw Error(`The Parser's configuration can no longer contain a property. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_6-0-0 + For Further details.`);if((0,Pr.isArray)(e)){if((0,Pr.isEmpty)(e))throw Error(`A Token Vocabulary cannot be empty. + Note that the first argument for the parser constructor + is no longer a Token vector (since v4.0).`);if(typeof e[0].startOffset=="number")throw Error(`The Parser constructor no longer accepts a token vector as the first argument. + See: https://chevrotain.io/docs/changes/BREAKING_CHANGES.html#_4-0-0 + For Further details.`)}if((0,Pr.isArray)(e))this.tokensMap=(0,Pr.reduce)(e,function(o,a){return o[a.name]=a,o},{});else if((0,Pr.has)(e,"modes")&&(0,Pr.every)((0,Pr.flatten)((0,Pr.values)(e.modes)),Qd.isTokenType)){var i=(0,Pr.flatten)((0,Pr.values)(e.modes)),n=(0,Pr.uniq)(i);this.tokensMap=(0,Pr.reduce)(n,function(o,a){return o[a.name]=a,o},{})}else if((0,Pr.isObject)(e))this.tokensMap=(0,Pr.cloneObj)(e);else throw new Error(" argument must be An Array of Token constructors, A dictionary of Token constructors or an IMultiModeLexerDefinition");this.tokensMap.EOF=cq.EOF;var s=(0,Pr.every)((0,Pr.values)(e),function(o){return(0,Pr.isEmpty)(o.categoryMatches)});this.tokenMatcher=s?Qd.tokenStructuredMatcherNoCategories:Qd.tokenStructuredMatcher,(0,Qd.augmentTokenTypes)((0,Pr.values)(this.tokensMap))},r.prototype.defineRule=function(e,t,i){if(this.selfAnalysisDone)throw Error("Grammar rule <"+e+`> may not be defined after the 'performSelfAnalysis' method has been called' +Make sure that all grammar rule definitions are done before 'performSelfAnalysis' is called.`);var n=(0,Pr.has)(i,"resyncEnabled")?i.resyncEnabled:lq.DEFAULT_RULE_CONFIG.resyncEnabled,s=(0,Pr.has)(i,"recoveryValueFunc")?i.recoveryValueFunc:lq.DEFAULT_RULE_CONFIG.recoveryValueFunc,o=this.ruleShortNameIdx<t},r.prototype.orInternal=function(e,t){var i=this.getKeyForAutomaticLookahead(Gn.OR_IDX,t),n=(0,Pr.isArray)(e)?e:e.DEF,s=this.getLaFuncFromCache(i),o=s.call(this,n);if(o!==void 0){var a=n[o];return a.ALT.call(this)}this.raiseNoAltException(t,e.ERR_MSG)},r.prototype.ruleFinallyStateUpdate=function(){if(this.RULE_STACK.pop(),this.RULE_OCCURRENCE_STACK.pop(),this.cstFinallyStateUpdate(),this.RULE_STACK.length===0&&this.isAtEndOfInput()===!1){var e=this.LA(1),t=this.errorMessageProvider.buildNotAllInputParsedMessage({firstRedundant:e,ruleName:this.getCurrRuleFullName()});this.SAVE_ERROR(new ly.NotAllInputParsedException(t,e))}},r.prototype.subruleInternal=function(e,t,i){var n;try{var s=i!==void 0?i.ARGS:void 0;return n=e.call(this,t,s),this.cstPostNonTerminal(n,i!==void 0&&i.LABEL!==void 0?i.LABEL:e.ruleName),n}catch(o){this.subruleInternalError(o,i,e.ruleName)}},r.prototype.subruleInternalError=function(e,t,i){throw(0,ly.isRecognitionException)(e)&&e.partialCstResult!==void 0&&(this.cstPostNonTerminal(e.partialCstResult,t!==void 0&&t.LABEL!==void 0?t.LABEL:i),delete e.partialCstResult),e},r.prototype.consumeInternal=function(e,t,i){var n;try{var s=this.LA(1);this.tokenMatcher(s,e)===!0?(this.consumeToken(),n=s):this.consumeInternalError(e,s,i)}catch(o){n=this.consumeInternalRecovery(e,t,o)}return this.cstPostTerminal(i!==void 0&&i.LABEL!==void 0?i.LABEL:e.name,n),n},r.prototype.consumeInternalError=function(e,t,i){var n,s=this.LA(0);throw i!==void 0&&i.ERR_MSG?n=i.ERR_MSG:n=this.errorMessageProvider.buildMismatchTokenMessage({expected:e,actual:t,previous:s,ruleName:this.getCurrRuleFullName()}),this.SAVE_ERROR(new ly.MismatchedTokenException(n,t,s))},r.prototype.consumeInternalRecovery=function(e,t,i){if(this.recoveryEnabled&&i.name==="MismatchedTokenException"&&!this.isBackTracking()){var n=this.getFollowsForInRuleRecovery(e,t);try{return this.tryInRuleRecovery(e,n)}catch(s){throw s.name===OIe.IN_RULE_RECOVERY_EXCEPTION?i:s}}else throw i},r.prototype.saveRecogState=function(){var e=this.errors,t=(0,Pr.cloneArr)(this.RULE_STACK);return{errors:e,lexerState:this.exportLexerState(),RULE_STACK:t,CST_STACK:this.CST_STACK}},r.prototype.reloadRecogState=function(e){this.errors=e.errors,this.importLexerState(e.lexerState),this.RULE_STACK=e.RULE_STACK},r.prototype.ruleInvocationStateUpdate=function(e,t,i){this.RULE_OCCURRENCE_STACK.push(i),this.RULE_STACK.push(e),this.cstInvocationStateUpdate(t,e)},r.prototype.isBackTracking=function(){return this.isBackTrackingStack.length!==0},r.prototype.getCurrRuleFullName=function(){var e=this.getLastExplicitRuleShortName();return this.shortRuleNameToFull[e]},r.prototype.shortRuleNameToFullName=function(e){return this.shortRuleNameToFull[e]},r.prototype.isAtEndOfInput=function(){return this.tokenMatcher(this.LA(1),cq.EOF)},r.prototype.reset=function(){this.resetLexerState(),this.isBackTrackingStack=[],this.errors=[],this.RULE_STACK=[],this.CST_STACK=[],this.RULE_OCCURRENCE_STACK=[]},r}();cy.RecognizerEngine=KIe});var fq=w(uy=>{"use strict";Object.defineProperty(uy,"__esModule",{value:!0});uy.ErrorHandler=void 0;var zv=Wg(),Vv=Gt(),gq=Id(),UIe=Hn(),HIe=function(){function r(){}return r.prototype.initErrorHandler=function(e){this._errors=[],this.errorMessageProvider=(0,Vv.has)(e,"errorMessageProvider")?e.errorMessageProvider:UIe.DEFAULT_PARSER_CONFIG.errorMessageProvider},r.prototype.SAVE_ERROR=function(e){if((0,zv.isRecognitionException)(e))return e.context={ruleStack:this.getHumanReadableRuleStack(),ruleOccurrenceStack:(0,Vv.cloneArr)(this.RULE_OCCURRENCE_STACK)},this._errors.push(e),e;throw Error("Trying to save an Error which is not a RecognitionException")},Object.defineProperty(r.prototype,"errors",{get:function(){return(0,Vv.cloneArr)(this._errors)},set:function(e){this._errors=e},enumerable:!1,configurable:!0}),r.prototype.raiseEarlyExitException=function(e,t,i){for(var n=this.getCurrRuleFullName(),s=this.getGAstProductions()[n],o=(0,gq.getLookaheadPathsForOptionalProd)(e,s,t,this.maxLookahead),a=o[0],l=[],c=1;c<=this.maxLookahead;c++)l.push(this.LA(c));var u=this.errorMessageProvider.buildEarlyExitMessage({expectedIterationPaths:a,actual:l,previous:this.LA(0),customUserDescription:i,ruleName:n});throw this.SAVE_ERROR(new zv.EarlyExitException(u,this.LA(1),this.LA(0)))},r.prototype.raiseNoAltException=function(e,t){for(var i=this.getCurrRuleFullName(),n=this.getGAstProductions()[i],s=(0,gq.getLookaheadPathsForOr)(e,n,this.maxLookahead),o=[],a=1;a<=this.maxLookahead;a++)o.push(this.LA(a));var l=this.LA(0),c=this.errorMessageProvider.buildNoViableAltMessage({expectedPathsPerAlt:s,actual:o,previous:l,customUserDescription:t,ruleName:this.getCurrRuleFullName()});throw this.SAVE_ERROR(new zv.NoViableAltException(c,this.LA(1),l))},r}();uy.ErrorHandler=HIe});var dq=w(gy=>{"use strict";Object.defineProperty(gy,"__esModule",{value:!0});gy.ContentAssist=void 0;var hq=Ed(),pq=Gt(),GIe=function(){function r(){}return r.prototype.initContentAssist=function(){},r.prototype.computeContentAssist=function(e,t){var i=this.gastProductionsCache[e];if((0,pq.isUndefined)(i))throw Error("Rule ->"+e+"<- does not exist in this grammar.");return(0,hq.nextPossibleTokensAfter)([i],t,this.tokenMatcher,this.maxLookahead)},r.prototype.getNextPossibleTokenTypes=function(e){var t=(0,pq.first)(e.ruleStack),i=this.getGAstProductions(),n=i[t],s=new hq.NextAfterTokenWalker(n,e).startWalking();return s},r}();gy.ContentAssist=GIe});var Qq=w(py=>{"use strict";Object.defineProperty(py,"__esModule",{value:!0});py.GastRecorder=void 0;var En=Gt(),Ro=dn(),YIe=gd(),Iq=Gg(),yq=SA(),jIe=Hn(),qIe=ny(),hy={description:"This Object indicates the Parser is during Recording Phase"};Object.freeze(hy);var Cq=!0,mq=Math.pow(2,qIe.BITS_FOR_OCCURRENCE_IDX)-1,wq=(0,yq.createToken)({name:"RECORDING_PHASE_TOKEN",pattern:YIe.Lexer.NA});(0,Iq.augmentTokenTypes)([wq]);var Bq=(0,yq.createTokenInstance)(wq,`This IToken indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,-1,-1,-1,-1,-1,-1);Object.freeze(Bq);var JIe={name:`This CSTNode indicates the Parser is in Recording Phase + See: https://chevrotain.io/docs/guide/internals.html#grammar-recording for details`,children:{}},WIe=function(){function r(){}return r.prototype.initGastRecorder=function(e){this.recordingProdStack=[],this.RECORDING_PHASE=!1},r.prototype.enableRecording=function(){var e=this;this.RECORDING_PHASE=!0,this.TRACE_INIT("Enable Recording",function(){for(var t=function(n){var s=n>0?n:"";e["CONSUME"+s]=function(o,a){return this.consumeInternalRecord(o,n,a)},e["SUBRULE"+s]=function(o,a){return this.subruleInternalRecord(o,n,a)},e["OPTION"+s]=function(o){return this.optionInternalRecord(o,n)},e["OR"+s]=function(o){return this.orInternalRecord(o,n)},e["MANY"+s]=function(o){this.manyInternalRecord(n,o)},e["MANY_SEP"+s]=function(o){this.manySepFirstInternalRecord(n,o)},e["AT_LEAST_ONE"+s]=function(o){this.atLeastOneInternalRecord(n,o)},e["AT_LEAST_ONE_SEP"+s]=function(o){this.atLeastOneSepFirstInternalRecord(n,o)}},i=0;i<10;i++)t(i);e.consume=function(n,s,o){return this.consumeInternalRecord(s,n,o)},e.subrule=function(n,s,o){return this.subruleInternalRecord(s,n,o)},e.option=function(n,s){return this.optionInternalRecord(s,n)},e.or=function(n,s){return this.orInternalRecord(s,n)},e.many=function(n,s){this.manyInternalRecord(n,s)},e.atLeastOne=function(n,s){this.atLeastOneInternalRecord(n,s)},e.ACTION=e.ACTION_RECORD,e.BACKTRACK=e.BACKTRACK_RECORD,e.LA=e.LA_RECORD})},r.prototype.disableRecording=function(){var e=this;this.RECORDING_PHASE=!1,this.TRACE_INIT("Deleting Recording methods",function(){for(var t=0;t<10;t++){var i=t>0?t:"";delete e["CONSUME"+i],delete e["SUBRULE"+i],delete e["OPTION"+i],delete e["OR"+i],delete e["MANY"+i],delete e["MANY_SEP"+i],delete e["AT_LEAST_ONE"+i],delete e["AT_LEAST_ONE_SEP"+i]}delete e.consume,delete e.subrule,delete e.option,delete e.or,delete e.many,delete e.atLeastOne,delete e.ACTION,delete e.BACKTRACK,delete e.LA})},r.prototype.ACTION_RECORD=function(e){},r.prototype.BACKTRACK_RECORD=function(e,t){return function(){return!0}},r.prototype.LA_RECORD=function(e){return jIe.END_OF_FILE},r.prototype.topLevelRuleRecord=function(e,t){try{var i=new Ro.Rule({definition:[],name:e});return i.name=e,this.recordingProdStack.push(i),t.call(this),this.recordingProdStack.pop(),i}catch(n){if(n.KNOWN_RECORDER_ERROR!==!0)try{n.message=n.message+` + This error was thrown during the "grammar recording phase" For more info see: + https://chevrotain.io/docs/guide/internals.html#grammar-recording`}catch{throw n}throw n}},r.prototype.optionInternalRecord=function(e,t){return bd.call(this,Ro.Option,e,t)},r.prototype.atLeastOneInternalRecord=function(e,t){bd.call(this,Ro.RepetitionMandatory,t,e)},r.prototype.atLeastOneSepFirstInternalRecord=function(e,t){bd.call(this,Ro.RepetitionMandatoryWithSeparator,t,e,Cq)},r.prototype.manyInternalRecord=function(e,t){bd.call(this,Ro.Repetition,t,e)},r.prototype.manySepFirstInternalRecord=function(e,t){bd.call(this,Ro.RepetitionWithSeparator,t,e,Cq)},r.prototype.orInternalRecord=function(e,t){return zIe.call(this,e,t)},r.prototype.subruleInternalRecord=function(e,t,i){if(fy(t),!e||(0,En.has)(e,"ruleName")===!1){var n=new Error(" argument is invalid"+(" expecting a Parser method reference but got: <"+JSON.stringify(e)+">")+(` + inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,En.peek)(this.recordingProdStack),o=e.ruleName,a=new Ro.NonTerminal({idx:t,nonTerminalName:o,label:i==null?void 0:i.LABEL,referencedRule:void 0});return s.definition.push(a),this.outputCst?JIe:hy},r.prototype.consumeInternalRecord=function(e,t,i){if(fy(t),!(0,Iq.hasShortKeyProperty)(e)){var n=new Error(" argument is invalid"+(" expecting a TokenType reference but got: <"+JSON.stringify(e)+">")+(` + inside top level rule: <`+this.recordingProdStack[0].name+">"));throw n.KNOWN_RECORDER_ERROR=!0,n}var s=(0,En.peek)(this.recordingProdStack),o=new Ro.Terminal({idx:t,terminalType:e,label:i==null?void 0:i.LABEL});return s.definition.push(o),Bq},r}();py.GastRecorder=WIe;function bd(r,e,t,i){i===void 0&&(i=!1),fy(t);var n=(0,En.peek)(this.recordingProdStack),s=(0,En.isFunction)(e)?e:e.DEF,o=new r({definition:[],idx:t});return i&&(o.separator=e.SEP),(0,En.has)(e,"MAX_LOOKAHEAD")&&(o.maxLookahead=e.MAX_LOOKAHEAD),this.recordingProdStack.push(o),s.call(this),n.definition.push(o),this.recordingProdStack.pop(),hy}function zIe(r,e){var t=this;fy(e);var i=(0,En.peek)(this.recordingProdStack),n=(0,En.isArray)(r)===!1,s=n===!1?r:r.DEF,o=new Ro.Alternation({definition:[],idx:e,ignoreAmbiguities:n&&r.IGNORE_AMBIGUITIES===!0});(0,En.has)(r,"MAX_LOOKAHEAD")&&(o.maxLookahead=r.MAX_LOOKAHEAD);var a=(0,En.some)(s,function(l){return(0,En.isFunction)(l.GATE)});return o.hasPredicates=a,i.definition.push(o),(0,En.forEach)(s,function(l){var c=new Ro.Alternative({definition:[]});o.definition.push(c),(0,En.has)(l,"IGNORE_AMBIGUITIES")?c.ignoreAmbiguities=l.IGNORE_AMBIGUITIES:(0,En.has)(l,"GATE")&&(c.ignoreAmbiguities=!0),t.recordingProdStack.push(c),l.ALT.call(t),t.recordingProdStack.pop()}),hy}function Eq(r){return r===0?"":""+r}function fy(r){if(r<0||r>mq){var e=new Error("Invalid DSL Method idx value: <"+r+`> + `+("Idx value must be a none negative value smaller than "+(mq+1)));throw e.KNOWN_RECORDER_ERROR=!0,e}}});var Sq=w(dy=>{"use strict";Object.defineProperty(dy,"__esModule",{value:!0});dy.PerformanceTracer=void 0;var bq=Gt(),VIe=Hn(),XIe=function(){function r(){}return r.prototype.initPerformanceTracer=function(e){if((0,bq.has)(e,"traceInitPerf")){var t=e.traceInitPerf,i=typeof t=="number";this.traceInitMaxIdent=i?t:1/0,this.traceInitPerf=i?t>0:t}else this.traceInitMaxIdent=0,this.traceInitPerf=VIe.DEFAULT_PARSER_CONFIG.traceInitPerf;this.traceInitIndent=-1},r.prototype.TRACE_INIT=function(e,t){if(this.traceInitPerf===!0){this.traceInitIndent++;var i=new Array(this.traceInitIndent+1).join(" ");this.traceInitIndent <"+e+">");var n=(0,bq.timer)(t),s=n.time,o=n.value,a=s>10?console.warn:console.log;return this.traceInitIndent time: "+s+"ms"),this.traceInitIndent--,o}else return t()},r}();dy.PerformanceTracer=XIe});var vq=w(Cy=>{"use strict";Object.defineProperty(Cy,"__esModule",{value:!0});Cy.applyMixins=void 0;function _Ie(r,e){e.forEach(function(t){var i=t.prototype;Object.getOwnPropertyNames(i).forEach(function(n){if(n!=="constructor"){var s=Object.getOwnPropertyDescriptor(i,n);s&&(s.get||s.set)?Object.defineProperty(r.prototype,n,s):r.prototype[n]=t.prototype[n]}})})}Cy.applyMixins=_Ie});var Hn=w(dr=>{"use strict";var Dq=dr&&dr.__extends||function(){var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(i,n){i.__proto__=n}||function(i,n){for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(i[s]=n[s])},r(e,t)};return function(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");r(e,t);function i(){this.constructor=e}e.prototype=t===null?Object.create(t):(i.prototype=t.prototype,new i)}}();Object.defineProperty(dr,"__esModule",{value:!0});dr.EmbeddedActionsParser=dr.CstParser=dr.Parser=dr.EMPTY_ALT=dr.ParserDefinitionErrorType=dr.DEFAULT_RULE_CONFIG=dr.DEFAULT_PARSER_CONFIG=dr.END_OF_FILE=void 0;var Xi=Gt(),ZIe=fj(),xq=SA(),kq=Cd(),Pq=Kj(),$Ie=jv(),eye=Wj(),tye=iq(),rye=sq(),iye=aq(),nye=uq(),sye=fq(),oye=dq(),aye=Qq(),Aye=Sq(),lye=vq();dr.END_OF_FILE=(0,xq.createTokenInstance)(xq.EOF,"",NaN,NaN,NaN,NaN,NaN,NaN);Object.freeze(dr.END_OF_FILE);dr.DEFAULT_PARSER_CONFIG=Object.freeze({recoveryEnabled:!1,maxLookahead:3,dynamicTokensEnabled:!1,outputCst:!0,errorMessageProvider:kq.defaultParserErrorProvider,nodeLocationTracking:"none",traceInitPerf:!1,skipValidations:!1});dr.DEFAULT_RULE_CONFIG=Object.freeze({recoveryValueFunc:function(){},resyncEnabled:!0});var cye;(function(r){r[r.INVALID_RULE_NAME=0]="INVALID_RULE_NAME",r[r.DUPLICATE_RULE_NAME=1]="DUPLICATE_RULE_NAME",r[r.INVALID_RULE_OVERRIDE=2]="INVALID_RULE_OVERRIDE",r[r.DUPLICATE_PRODUCTIONS=3]="DUPLICATE_PRODUCTIONS",r[r.UNRESOLVED_SUBRULE_REF=4]="UNRESOLVED_SUBRULE_REF",r[r.LEFT_RECURSION=5]="LEFT_RECURSION",r[r.NONE_LAST_EMPTY_ALT=6]="NONE_LAST_EMPTY_ALT",r[r.AMBIGUOUS_ALTS=7]="AMBIGUOUS_ALTS",r[r.CONFLICT_TOKENS_RULES_NAMESPACE=8]="CONFLICT_TOKENS_RULES_NAMESPACE",r[r.INVALID_TOKEN_NAME=9]="INVALID_TOKEN_NAME",r[r.NO_NON_EMPTY_LOOKAHEAD=10]="NO_NON_EMPTY_LOOKAHEAD",r[r.AMBIGUOUS_PREFIX_ALTS=11]="AMBIGUOUS_PREFIX_ALTS",r[r.TOO_MANY_ALTS=12]="TOO_MANY_ALTS"})(cye=dr.ParserDefinitionErrorType||(dr.ParserDefinitionErrorType={}));function uye(r){return r===void 0&&(r=void 0),function(){return r}}dr.EMPTY_ALT=uye;var my=function(){function r(e,t){this.definitionErrors=[],this.selfAnalysisDone=!1;var i=this;if(i.initErrorHandler(t),i.initLexerAdapter(),i.initLooksAhead(t),i.initRecognizerEngine(e,t),i.initRecoverable(t),i.initTreeBuilder(t),i.initContentAssist(),i.initGastRecorder(t),i.initPerformanceTracer(t),(0,Xi.has)(t,"ignoredIssues"))throw new Error(`The IParserConfig property has been deprecated. + Please use the flag on the relevant DSL method instead. + See: https://chevrotain.io/docs/guide/resolving_grammar_errors.html#IGNORING_AMBIGUITIES + For further details.`);this.skipValidations=(0,Xi.has)(t,"skipValidations")?t.skipValidations:dr.DEFAULT_PARSER_CONFIG.skipValidations}return r.performSelfAnalysis=function(e){throw Error("The **static** `performSelfAnalysis` method has been deprecated. \nUse the **instance** method with the same name instead.")},r.prototype.performSelfAnalysis=function(){var e=this;this.TRACE_INIT("performSelfAnalysis",function(){var t;e.selfAnalysisDone=!0;var i=e.className;e.TRACE_INIT("toFastProps",function(){(0,Xi.toFastProperties)(e)}),e.TRACE_INIT("Grammar Recording",function(){try{e.enableRecording(),(0,Xi.forEach)(e.definedRulesNames,function(s){var o=e[s],a=o.originalGrammarAction,l=void 0;e.TRACE_INIT(s+" Rule",function(){l=e.topLevelRuleRecord(s,a)}),e.gastProductionsCache[s]=l})}finally{e.disableRecording()}});var n=[];if(e.TRACE_INIT("Grammar Resolving",function(){n=(0,Pq.resolveGrammar)({rules:(0,Xi.values)(e.gastProductionsCache)}),e.definitionErrors=e.definitionErrors.concat(n)}),e.TRACE_INIT("Grammar Validations",function(){if((0,Xi.isEmpty)(n)&&e.skipValidations===!1){var s=(0,Pq.validateGrammar)({rules:(0,Xi.values)(e.gastProductionsCache),maxLookahead:e.maxLookahead,tokenTypes:(0,Xi.values)(e.tokensMap),errMsgProvider:kq.defaultGrammarValidatorErrorProvider,grammarName:i});e.definitionErrors=e.definitionErrors.concat(s)}}),(0,Xi.isEmpty)(e.definitionErrors)&&(e.recoveryEnabled&&e.TRACE_INIT("computeAllProdsFollows",function(){var s=(0,ZIe.computeAllProdsFollows)((0,Xi.values)(e.gastProductionsCache));e.resyncFollows=s}),e.TRACE_INIT("ComputeLookaheadFunctions",function(){e.preComputeLookaheadFunctions((0,Xi.values)(e.gastProductionsCache))})),!r.DEFER_DEFINITION_ERRORS_HANDLING&&!(0,Xi.isEmpty)(e.definitionErrors))throw t=(0,Xi.map)(e.definitionErrors,function(s){return s.message}),new Error(`Parser Definition Errors detected: + `+t.join(` +------------------------------- +`))})},r.DEFER_DEFINITION_ERRORS_HANDLING=!1,r}();dr.Parser=my;(0,lye.applyMixins)(my,[$Ie.Recoverable,eye.LooksAhead,tye.TreeBuilder,rye.LexerAdapter,nye.RecognizerEngine,iye.RecognizerApi,sye.ErrorHandler,oye.ContentAssist,aye.GastRecorder,Aye.PerformanceTracer]);var gye=function(r){Dq(e,r);function e(t,i){i===void 0&&(i=dr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,Xi.cloneObj)(i);return s.outputCst=!0,n=r.call(this,t,s)||this,n}return e}(my);dr.CstParser=gye;var fye=function(r){Dq(e,r);function e(t,i){i===void 0&&(i=dr.DEFAULT_PARSER_CONFIG);var n=this,s=(0,Xi.cloneObj)(i);return s.outputCst=!1,n=r.call(this,t,s)||this,n}return e}(my);dr.EmbeddedActionsParser=fye});var Fq=w(Ey=>{"use strict";Object.defineProperty(Ey,"__esModule",{value:!0});Ey.createSyntaxDiagramsCode=void 0;var Rq=pv();function hye(r,e){var t=e===void 0?{}:e,i=t.resourceBase,n=i===void 0?"https://unpkg.com/chevrotain@"+Rq.VERSION+"/diagrams/":i,s=t.css,o=s===void 0?"https://unpkg.com/chevrotain@"+Rq.VERSION+"/diagrams/diagrams.css":s,a=` + + + + + +`,l=` + +`,c=` + + + + diff --git a/pkg/ui/web/package-lock.json b/pkg/ui/web/package-lock.json new file mode 100644 index 00000000..c0da9c10 --- /dev/null +++ b/pkg/ui/web/package-lock.json @@ -0,0 +1,1483 @@ +{ + "name": "frontend", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "frontend", + "version": "0.0.0", + "dependencies": { + "react": "^18.2.0", + "react-dom": "^18.2.0" + }, + "devDependencies": { + "@types/react": "^18.0.17", + "@types/react-dom": "^18.0.6", + "@vitejs/plugin-react": "^2.0.1", + "typescript": "^4.6.4", + "vite": "^3.0.7" + } + }, + "node_modules/@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.21.0.tgz", + "integrity": "sha512-gMuZsmsgxk/ENC3O/fRw5QY8A9/uxQbbCEypnLIiYYc/qVJtEV7ouxC3EllIIwNzMqAQee5tanFabWsUOutS7g==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.21.0.tgz", + "integrity": "sha512-PuxUbxcW6ZYe656yL3EAhpy7qXKq0DmYsrJLpbB8XrsCP9Nm+XCg9XFMb5vIDliPD7+U/+M+QJlH17XOcB7eXA==", + "dev": true, + "dependencies": { + "@ampproject/remapping": "^2.2.0", + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.21.0", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-module-transforms": "^7.21.0", + "@babel/helpers": "^7.21.0", + "@babel/parser": "^7.21.0", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.2", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/generator": { + "version": "7.21.1", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.21.1.tgz", + "integrity": "sha512-1lT45bAYlQhFn/BHivJs43AiW2rg3/UbLyShGfF3C0KmHvO5fSghWd5kBJy30kpRRucGzXStvnnCFniCR2kXAA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.21.0", + "@jridgewell/gen-mapping": "^0.3.2", + "@jridgewell/trace-mapping": "^0.3.17", + "jsesc": "^2.5.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.7.tgz", + "integrity": "sha512-4tGORmfQcrc+bvrjb5y3dG9Mx1IOZjsHqQVUz7XCNHO+iTmqxWnVg3KRygjGmpRLJGdQSKuvFinbIb0CnZwHAQ==", + "dev": true, + "dependencies": { + "@babel/compat-data": "^7.20.5", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.21.3", + "lru-cache": "^5.1.1", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-environment-visitor": { + "version": "7.18.9", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.21.0.tgz", + "integrity": "sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==", + "dev": true, + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.21.2.tgz", + "integrity": "sha512-79yj2AR4U/Oqq/WOV7Lx6hUjau1Zfo4cI+JLAVYeMV5XIlbOhmjEk5ulbTc9fMpmlojzZHkUUxAiK+UKn+hNQQ==", + "dev": true, + "dependencies": { + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.20.2", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.19.1", + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.2", + "@babel/types": "^7.21.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.20.2.tgz", + "integrity": "sha512-8RvlJG2mj4huQ4pZ+rU9lqKi9ZKiRmuvGuM2HlWmkmgOhbs6zEAw6IEiJ5cQqGbDzGZOhwuOQNtZMi/ENLjZoQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.20.2", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz", + "integrity": "sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "dev": true, + "dependencies": { + "@babel/types": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", + "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.21.0.tgz", + "integrity": "sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helpers": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.21.0.tgz", + "integrity": "sha512-XXve0CBtOW0pd7MRzzmoyuSj0e3SEzj8pgyFxnTT1NJZL38BD1MK7yYrm8yefRPIDvNNe14xR4FdbHwpInD4rA==", + "dev": true, + "dependencies": { + "@babel/template": "^7.20.7", + "@babel/traverse": "^7.21.0", + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.21.2.tgz", + "integrity": "sha512-URpaIJQwEkEC2T9Kn+Ai6Xe/02iNaVCuT/PtoRz3GPVJVDpPd7mLo+VddTbhCRU9TXqW5mSrQfXZyi8kDKOVpQ==", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz", + "integrity": "sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.21.0.tgz", + "integrity": "sha512-6OAWljMvQrZjR2DaNhVfRz6dkCAVV+ymcLUmaf8bccGOHn2v5rHJK3tTpij0BuhdYWP4LLaqj5lwcdlpAAPuvg==", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-jsx": "^7.18.6", + "@babel/types": "^7.21.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-development": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz", + "integrity": "sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==", + "dev": true, + "dependencies": { + "@babel/plugin-transform-react-jsx": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-self": { + "version": "7.21.0", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.21.0.tgz", + "integrity": "sha512-f/Eq+79JEu+KUANFks9UZCcvydOOGMgF7jBrcwjHa5jTZD8JivnhCJYvmlhR/WTXBWonDExPoW0eO/CR4QJirA==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx-source": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.19.6.tgz", + "integrity": "sha512-RpAi004QyMNisst/pvSanoRdJ4q+jMCWyk9zdw/CyLB9j8RXEahodR6l2GyttDRyEVWZtbN+TpLiHJ3t34LbsQ==", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.19.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/template": { + "version": "7.20.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.20.7.tgz", + "integrity": "sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.20.7", + "@babel/types": "^7.20.7" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.21.2.tgz", + "integrity": "sha512-ts5FFU/dSUPS13tv8XiEObDu9K+iagEKME9kAbaP7r0Y9KtZJZ+NGndDvWoRAYNpeWafbpFeki3q9QoMD6gxyw==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.21.1", + "@babel/helper-environment-visitor": "^7.18.9", + "@babel/helper-function-name": "^7.21.0", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.21.2", + "@babel/types": "^7.21.2", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.21.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.21.2.tgz", + "integrity": "sha512-3wRZSs7jiFaB8AjxiiD+VqN5DTG2iRvJGQ+qYFrs/654lg6kGTQWIOFjlBo5RaXuAZjBmP3+OQH4dmhqiiyYxw==", + "dev": true, + "dependencies": { + "@babel/helper-string-parser": "^7.19.4", + "@babel/helper-validator-identifier": "^7.19.1", + "to-fast-properties": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.15.18.tgz", + "integrity": "sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz", + "integrity": "sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@types/prop-types": { + "version": "15.7.5", + "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz", + "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==", + "dev": true + }, + "node_modules/@types/react": { + "version": "18.0.28", + "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.28.tgz", + "integrity": "sha512-RD0ivG1kEztNBdoAK7lekI9M+azSnitIn85h4iOiaLjaTrMjzslhaqCGaI4IyCJ1RljWiLCEu4jyrLLgqxBTew==", + "dev": true, + "dependencies": { + "@types/prop-types": "*", + "@types/scheduler": "*", + "csstype": "^3.0.2" + } + }, + "node_modules/@types/react-dom": { + "version": "18.0.11", + "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-18.0.11.tgz", + "integrity": "sha512-O38bPbI2CWtgw/OoQoY+BRelw7uysmXbWvw3nLWO21H1HSh+GOlqPuXshJfjmpNlKiiSDG9cc1JZAaMmVdcTlw==", + "dev": true, + "dependencies": { + "@types/react": "*" + } + }, + "node_modules/@types/scheduler": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz", + "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==", + "dev": true + }, + "node_modules/@vitejs/plugin-react": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-react/-/plugin-react-2.2.0.tgz", + "integrity": "sha512-FFpefhvExd1toVRlokZgxgy2JtnBOdp4ZDsq7ldCWaqGSGn9UhWMAVm/1lxPL14JfNS5yGz+s9yFrQY6shoStA==", + "dev": true, + "dependencies": { + "@babel/core": "^7.19.6", + "@babel/plugin-transform-react-jsx": "^7.19.0", + "@babel/plugin-transform-react-jsx-development": "^7.18.6", + "@babel/plugin-transform-react-jsx-self": "^7.18.6", + "@babel/plugin-transform-react-jsx-source": "^7.19.6", + "magic-string": "^0.26.7", + "react-refresh": "^0.14.0" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "peerDependencies": { + "vite": "^3.0.0" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/browserslist": { + "version": "4.21.5", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.5.tgz", + "integrity": "sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "caniuse-lite": "^1.0.30001449", + "electron-to-chromium": "^1.4.284", + "node-releases": "^2.0.8", + "update-browserslist-db": "^1.0.10" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001465", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001465.tgz", + "integrity": "sha512-HvjgL3MYAJjceTDCcjRnQGjwUz/5qec9n7JPOzUursUoOTIsYCSDOb1l7RsnZE8mjbxG78zVRCKfrBXyvChBag==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ] + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/convert-source-map": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz", + "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", + "dev": true + }, + "node_modules/csstype": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz", + "integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==", + "dev": true + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/electron-to-chromium": { + "version": "1.4.328", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.328.tgz", + "integrity": "sha512-DE9tTy2PNmy1v55AZAO542ui+MLC2cvINMK4P2LXGsJdput/ThVG9t+QGecPuAZZSgC8XoI+Jh9M1OG9IoNSCw==", + "dev": true + }, + "node_modules/esbuild": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.15.18.tgz", + "integrity": "sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/android-arm": "0.15.18", + "@esbuild/linux-loong64": "0.15.18", + "esbuild-android-64": "0.15.18", + "esbuild-android-arm64": "0.15.18", + "esbuild-darwin-64": "0.15.18", + "esbuild-darwin-arm64": "0.15.18", + "esbuild-freebsd-64": "0.15.18", + "esbuild-freebsd-arm64": "0.15.18", + "esbuild-linux-32": "0.15.18", + "esbuild-linux-64": "0.15.18", + "esbuild-linux-arm": "0.15.18", + "esbuild-linux-arm64": "0.15.18", + "esbuild-linux-mips64le": "0.15.18", + "esbuild-linux-ppc64le": "0.15.18", + "esbuild-linux-riscv64": "0.15.18", + "esbuild-linux-s390x": "0.15.18", + "esbuild-netbsd-64": "0.15.18", + "esbuild-openbsd-64": "0.15.18", + "esbuild-sunos-64": "0.15.18", + "esbuild-windows-32": "0.15.18", + "esbuild-windows-64": "0.15.18", + "esbuild-windows-arm64": "0.15.18" + } + }, + "node_modules/esbuild-android-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz", + "integrity": "sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz", + "integrity": "sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz", + "integrity": "sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz", + "integrity": "sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz", + "integrity": "sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz", + "integrity": "sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz", + "integrity": "sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz", + "integrity": "sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz", + "integrity": "sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz", + "integrity": "sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz", + "integrity": "sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz", + "integrity": "sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz", + "integrity": "sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz", + "integrity": "sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz", + "integrity": "sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz", + "integrity": "sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz", + "integrity": "sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz", + "integrity": "sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz", + "integrity": "sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.15.18", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz", + "integrity": "sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json5": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", + "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", + "dev": true, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/magic-string": { + "version": "0.26.7", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.7.tgz", + "integrity": "sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==", + "dev": true, + "dependencies": { + "sourcemap-codec": "^1.4.8" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true, + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/node-releases": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz", + "integrity": "sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==", + "dev": true + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "dev": true + }, + "node_modules/postcss": { + "version": "8.4.21", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.21.tgz", + "integrity": "sha512-tP7u/Sn/dVxK2NnruI4H9BG+x+Wxz6oeZ1cJ8P6G/PZY0IKk4k/63TDsQf2kQq3+qoJeLm2kIBUNlZe3zgb4Zg==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/react": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", + "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "dependencies": { + "loose-envify": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/react-dom": { + "version": "18.2.0", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", + "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "dependencies": { + "loose-envify": "^1.1.0", + "scheduler": "^0.23.0" + }, + "peerDependencies": { + "react": "^18.2.0" + } + }, + "node_modules/react-refresh": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.0.tgz", + "integrity": "sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/rollup": { + "version": "2.79.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.79.1.tgz", + "integrity": "sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==", + "dev": true, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=10.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/scheduler": { + "version": "0.23.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", + "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "dependencies": { + "loose-envify": "^1.1.0" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "deprecated": "Please use @jridgewell/sourcemap-codec instead", + "dev": true + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/vite": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/vite/-/vite-3.2.5.tgz", + "integrity": "sha512-4mVEpXpSOgrssFZAOmGIr85wPHKvaDAcXqxVxVRZhljkJOMZi1ibLibzjLHzJvcok8BMguLc7g1W6W/GqZbLdQ==", + "dev": true, + "dependencies": { + "esbuild": "^0.15.9", + "postcss": "^8.4.18", + "resolve": "^1.22.1", + "rollup": "^2.79.1" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + }, + "peerDependencies": { + "@types/node": ">= 14", + "less": "*", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + } + } +} diff --git a/pkg/ui/web/package.json b/pkg/ui/web/package.json new file mode 100644 index 00000000..a45d3caa --- /dev/null +++ b/pkg/ui/web/package.json @@ -0,0 +1,60 @@ +{ + "name": "frontend", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "tsc && vite build", + "lint": "yarn lint:ts", + "lint:ts": "eslint ./src", + "fix": "yarn fix:ts", + "fix:ts": "eslint ./src --fix", + "graphql:codegen": "graphql-codegen --config codegen.yml" + }, + "engines": { + "node": "18.12.1" + }, + "packageManager": "yarn@3.4.1", + "dependencies": { + "@absinthe/socket": "0.2.1", + "@absinthe/socket-apollo-link": "0.2.1", + "@apollo/client": "3.7.10", + "@emotion/react": "11.10.6", + "@emotion/styled": "11.10.6", + "@pluralsh/design-system": "1.330.1", + "honorable": "0.194.0", + "honorable-theme-default": "0.77.0", + "lodash": "4.17.21", + "phoenix": "1.7.2", + "react": "18.2.0", + "react-dom": "18.2.0", + "react-router-dom": "6.9.0", + "styled-components": "5.3.9" + }, + "devDependencies": { + "@graphql-codegen/add": "4.0.1", + "@graphql-codegen/cli": "3.2.2", + "@graphql-codegen/introspection": "3.0.1", + "@graphql-codegen/typescript": "3.0.2", + "@graphql-codegen/typescript-operations": "3.0.2", + "@graphql-codegen/typescript-react-apollo": "3.3.7", + "@pluralsh/eslint-config-typescript": "2.5.41", + "@types/absinthe__socket": "0.2.3", + "@types/absinthe__socket-apollo-link": "0.2.1", + "@types/phoenix": "1.5.5", + "@types/react": "18.0.28", + "@types/react-dom": "18.0.11", + "@types/styled-components": "5.1.26", + "@typescript-eslint/eslint-plugin": "5.56.0", + "@vitejs/plugin-react": "3.1.0", + "eslint": "8.33.0", + "eslint-plugin-import": "2.27.5", + "eslint-plugin-import-newlines": "1.3.1", + "eslint-plugin-jsx-a11y": "6.7.1", + "eslint-plugin-react": "7.32.2", + "eslint-plugin-react-hooks": "4.6.0", + "typescript": "5.0.2", + "vite": "4.2.1" + } +} diff --git a/pkg/ui/web/package.json.md5 b/pkg/ui/web/package.json.md5 new file mode 100755 index 00000000..18f1a207 --- /dev/null +++ b/pkg/ui/web/package.json.md5 @@ -0,0 +1 @@ +c6011e947047bb5121351cb21621b0c0 \ No newline at end of file diff --git a/pkg/ui/web/public/favicon.ico b/pkg/ui/web/public/favicon.ico new file mode 100644 index 00000000..e35d6828 Binary files /dev/null and b/pkg/ui/web/public/favicon.ico differ diff --git a/pkg/ui/web/public/fonts/ABCMonumentGroteskMono-Heavy.woff b/pkg/ui/web/public/fonts/ABCMonumentGroteskMono-Heavy.woff new file mode 100644 index 00000000..0bed0cd5 Binary files /dev/null and b/pkg/ui/web/public/fonts/ABCMonumentGroteskMono-Heavy.woff differ diff --git a/pkg/ui/web/public/fonts/ABCMonumentGroteskMono-Medium.woff b/pkg/ui/web/public/fonts/ABCMonumentGroteskMono-Medium.woff new file mode 100644 index 00000000..e7d78fae Binary files /dev/null and b/pkg/ui/web/public/fonts/ABCMonumentGroteskMono-Medium.woff differ diff --git a/pkg/ui/web/public/fonts/ABCMonumentGroteskMono-Regular.woff b/pkg/ui/web/public/fonts/ABCMonumentGroteskMono-Regular.woff new file mode 100644 index 00000000..1de4e88d Binary files /dev/null and b/pkg/ui/web/public/fonts/ABCMonumentGroteskMono-Regular.woff differ diff --git a/pkg/ui/web/public/fonts/ABCMonumentGroteskSemi-Mono-Heavy.woff b/pkg/ui/web/public/fonts/ABCMonumentGroteskSemi-Mono-Heavy.woff new file mode 100644 index 00000000..883f47a4 Binary files /dev/null and b/pkg/ui/web/public/fonts/ABCMonumentGroteskSemi-Mono-Heavy.woff differ diff --git a/pkg/ui/web/public/fonts/ABCMonumentGroteskSemi-Mono-Medium.woff b/pkg/ui/web/public/fonts/ABCMonumentGroteskSemi-Mono-Medium.woff new file mode 100644 index 00000000..5e7f0791 Binary files /dev/null and b/pkg/ui/web/public/fonts/ABCMonumentGroteskSemi-Mono-Medium.woff differ diff --git a/pkg/ui/web/public/fonts/ABCMonumentGroteskSemi-Mono-Regular.woff b/pkg/ui/web/public/fonts/ABCMonumentGroteskSemi-Mono-Regular.woff new file mode 100644 index 00000000..a1b69233 Binary files /dev/null and b/pkg/ui/web/public/fonts/ABCMonumentGroteskSemi-Mono-Regular.woff differ diff --git a/pkg/ui/web/public/fonts/monument-bold-italic.woff b/pkg/ui/web/public/fonts/monument-bold-italic.woff new file mode 100644 index 00000000..b7ab6626 Binary files /dev/null and b/pkg/ui/web/public/fonts/monument-bold-italic.woff differ diff --git a/pkg/ui/web/public/fonts/monument-bold.woff b/pkg/ui/web/public/fonts/monument-bold.woff new file mode 100644 index 00000000..d80582c8 Binary files /dev/null and b/pkg/ui/web/public/fonts/monument-bold.woff differ diff --git a/pkg/ui/web/public/fonts/monument-bold.woff2 b/pkg/ui/web/public/fonts/monument-bold.woff2 new file mode 100644 index 00000000..19f2cd51 Binary files /dev/null and b/pkg/ui/web/public/fonts/monument-bold.woff2 differ diff --git a/pkg/ui/web/public/fonts/monument-medium-italic.woff b/pkg/ui/web/public/fonts/monument-medium-italic.woff new file mode 100644 index 00000000..8bd7d21f Binary files /dev/null and b/pkg/ui/web/public/fonts/monument-medium-italic.woff differ diff --git a/pkg/ui/web/public/fonts/monument-medium.woff b/pkg/ui/web/public/fonts/monument-medium.woff new file mode 100644 index 00000000..2eb30c9e Binary files /dev/null and b/pkg/ui/web/public/fonts/monument-medium.woff differ diff --git a/pkg/ui/web/public/fonts/monument-regular-italic.woff b/pkg/ui/web/public/fonts/monument-regular-italic.woff new file mode 100644 index 00000000..c7a7e77b Binary files /dev/null and b/pkg/ui/web/public/fonts/monument-regular-italic.woff differ diff --git a/pkg/ui/web/public/fonts/monument-regular.otf b/pkg/ui/web/public/fonts/monument-regular.otf new file mode 100644 index 00000000..ea7d8858 Binary files /dev/null and b/pkg/ui/web/public/fonts/monument-regular.otf differ diff --git a/pkg/ui/web/public/fonts/monument-regular.woff b/pkg/ui/web/public/fonts/monument-regular.woff new file mode 100644 index 00000000..1de4e88d Binary files /dev/null and b/pkg/ui/web/public/fonts/monument-regular.woff differ diff --git a/pkg/ui/web/public/logos/plural-full-logo-black.svg b/pkg/ui/web/public/logos/plural-full-logo-black.svg new file mode 100644 index 00000000..3e5be0a6 --- /dev/null +++ b/pkg/ui/web/public/logos/plural-full-logo-black.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/pkg/ui/web/public/logos/plural-full-logo-white.svg b/pkg/ui/web/public/logos/plural-full-logo-white.svg new file mode 100644 index 00000000..8f5e8dcb --- /dev/null +++ b/pkg/ui/web/public/logos/plural-full-logo-white.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/pkg/ui/web/public/logos/plural-logomark-only-black.svg b/pkg/ui/web/public/logos/plural-logomark-only-black.svg new file mode 100644 index 00000000..3b37f74c --- /dev/null +++ b/pkg/ui/web/public/logos/plural-logomark-only-black.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/pkg/ui/web/public/logos/plural-logomark-only-white.svg b/pkg/ui/web/public/logos/plural-logomark-only-white.svg new file mode 100644 index 00000000..b48e7479 --- /dev/null +++ b/pkg/ui/web/public/logos/plural-logomark-only-white.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/pkg/ui/web/public/logos/plural-logotype-only-black.svg b/pkg/ui/web/public/logos/plural-logotype-only-black.svg new file mode 100644 index 00000000..53f8f47b --- /dev/null +++ b/pkg/ui/web/public/logos/plural-logotype-only-black.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/pkg/ui/web/public/logos/plural-logotype-only-white.svg b/pkg/ui/web/public/logos/plural-logotype-only-white.svg new file mode 100644 index 00000000..68fb8f71 --- /dev/null +++ b/pkg/ui/web/public/logos/plural-logotype-only-white.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/pkg/ui/web/schema/schema.graphql b/pkg/ui/web/schema/schema.graphql new file mode 100644 index 00000000..691d635d --- /dev/null +++ b/pkg/ui/web/schema/schema.graphql @@ -0,0 +1,3144 @@ +# This file was generated based on ".graphqlconfig". Do not edit manually. + +schema { + query: RootQueryType + mutation: RootMutationType + subscription: RootSubscriptionType +} + +type Account { + availableFeatures: PlanFeatures + backgroundColor: String + billingAddress: Address + billingCustomerId: String + clusterCount: String + delinquentAt: DateTime + domainMappings: [DomainMapping] + grandfatheredUntil: DateTime + icon: String + id: ID! + insertedAt: DateTime + name: String + rootUser: User + subscription: PlatformSubscription + updatedAt: DateTime + userCount: String + workosConnectionId: String +} + +type ActionItem { + link: String! + type: ActionItemType! +} + +type Address { + city: String + country: String + line1: String + line2: String + name: String + state: String + zip: String +} + +type ApplyLock { + id: ID! + insertedAt: DateTime + lock: String + owner: User + repository: Repository + updatedAt: DateTime +} + +type Artifact { + arch: String + blob: String + filesize: Int + id: ID + insertedAt: DateTime + name: String + platform: ArtifactPlatform + readme: String + sha: String + type: ArtifactType + updatedAt: DateTime +} + +type Audit { + action: String! + actor: User + city: String + country: String + group: Group + id: ID! + image: DockerImage + insertedAt: DateTime + integrationWebhook: IntegrationWebhook + ip: String + latitude: String + longitude: String + repository: Repository + role: Role + updatedAt: DateTime + user: User + version: Version +} + +type AuditConnection { + edges: [AuditEdge] + pageInfo: PageInfo! +} + +type AuditEdge { + cursor: String + node: Audit +} + +type AuthorizationUrl { + provider: ScmProvider! + url: String! +} + +type Card { + brand: String! + expMonth: Int! + expYear: Int! + id: ID! + last4: String! + name: String +} + +type CardConnection { + edges: [CardEdge] + pageInfo: PageInfo! +} + +type CardEdge { + cursor: String + node: Card +} + +type CategoryInfo { + category: Category + count: Int + tags(after: String, before: String, first: Int, last: Int, q: String): GroupedTagConnection +} + +type ChangeInstructions { + instructions: String + script: String +} + +type Chart { + dependencies: Dependencies + description: String + id: ID + insertedAt: DateTime + installation: ChartInstallation + latestVersion: String + name: String! + repository: Repository + tags: [VersionTag] + updatedAt: DateTime +} + +type ChartConnection { + edges: [ChartEdge] + pageInfo: PageInfo! +} + +type ChartEdge { + cursor: String + node: Chart +} + +type ChartInstallation { + chart: Chart + id: ID + insertedAt: DateTime + installation: Installation + updatedAt: DateTime + version: Version +} + +type ChartInstallationConnection { + edges: [ChartInstallationEdge] + pageInfo: PageInfo! +} + +type ChartInstallationEdge { + cursor: String + node: ChartInstallation +} + +type ClosureItem { + dep: Dependency + helm: Chart + terraform: Terraform +} + +type CloudShell { + aesKey: String! + alive: Boolean! + cluster: String! + gitUrl: String! + id: ID! + insertedAt: DateTime + missing: [String] + provider: Provider! + region: String! + status: ShellStatus + subdomain: String! + updatedAt: DateTime +} + +"A Kubernetes cluster that can be used to deploy applications on with Plural." +type Cluster { + "The account that the cluster belongs to." + account: Account + "The URL of the console running on the cluster." + consoleUrl: String + "The domain name used for applications deployed on the cluster." + domain: String + "The git repository URL for the cluster." + gitUrl: String + "The ID of the cluster." + id: ID! + insertedAt: DateTime + "The name of the cluster." + name: String! + "The user that owns the cluster." + owner: User + "The last time the cluster was pinged." + pingedAt: DateTime + "The cluster's cloud provider." + provider: Provider! + "The upgrade queue for applications running on the cluster." + queue: UpgradeQueue + "The source of the cluster." + source: Source + updatedAt: DateTime + "pending upgrades for each installed app" + upgradeInfo: [UpgradeInfo] +} + +type ClusterConnection { + edges: [ClusterEdge] + pageInfo: PageInfo! +} + +"A dependncy reference between clusters" +type ClusterDependency { + "the cluster holding this dependency" + cluster: Cluster + "the source cluster of this dependency" + dependency: Cluster + id: ID! + insertedAt: DateTime + updatedAt: DateTime +} + +type ClusterEdge { + cursor: String + node: Cluster +} + +type ClusterInformation { + gitCommit: String + id: ID! + insertedAt: DateTime + platform: String + updatedAt: DateTime + version: String +} + +type Community { + discord: String + gitUrl: String + homepage: String + slack: String + twitter: String + videos: [String] +} + +type ConsentRequest { + requestedScope: [String] + skip: Boolean +} + +type Crd { + blob: String + id: ID! + insertedAt: DateTime + name: String! + updatedAt: DateTime +} + +type Cvss { + attackComplexity: VulnGrade + attackVector: VulnVector + availability: VulnGrade + confidentiality: VulnGrade + integrity: VulnGrade + privilegesRequired: VulnGrade + userInteraction: VulnRequirement +} + +type DeferredReason { + message: String + package: String + repository: String +} + +type DeferredUpdate { + attempts: Int + chartInstallation: ChartInstallation + dequeueAt: DateTime + id: ID! + insertedAt: DateTime + messages: [DeferredReason] + pending: Boolean + terraformInstallation: TerraformInstallation + updatedAt: DateTime + version: Version +} + +type DeferredUpdateConnection { + edges: [DeferredUpdateEdge] + pageInfo: PageInfo! +} + +type DeferredUpdateEdge { + cursor: String + node: DeferredUpdate +} + +type DemoProject { + credentials: String + id: ID! + insertedAt: DateTime + projectId: String! + ready: Boolean + state: DemoProjectState + updatedAt: DateTime +} + +type Dependencies { + application: Boolean + breaking: Boolean + cliVsn: String + dependencies: [Dependency] + instructions: ChangeInstructions + outputs: Map + providerVsn: String + providerWirings: Map + providers: [Provider] + secrets: [String] + wait: Boolean + wirings: Wirings +} + +type Dependency { + name: String + optional: Boolean + repo: String + type: DependencyType + version: String +} + +type DeviceLogin { + deviceToken: String! + loginUrl: String! +} + +type DnsAccessPolicy { + bindings: [PolicyBinding] + id: ID! + insertedAt: DateTime + updatedAt: DateTime +} + +type DnsDomain { + accessPolicy: DnsAccessPolicy + account: Account + creator: User + dnsRecords(after: String, before: String, first: Int, last: Int): DnsRecordConnection + id: ID! + insertedAt: DateTime + name: String! + updatedAt: DateTime +} + +type DnsDomainConnection { + edges: [DnsDomainEdge] + pageInfo: PageInfo! +} + +type DnsDomainEdge { + cursor: String + node: DnsDomain +} + +type DnsRecord { + cluster: String! + creator: User + domain: DnsDomain + id: ID! + insertedAt: DateTime + name: String! + provider: Provider! + records: [String] + type: DnsRecordType! + updatedAt: DateTime +} + +type DnsRecordConnection { + edges: [DnsRecordEdge] + pageInfo: PageInfo! +} + +type DnsRecordEdge { + cursor: String + node: DnsRecord +} + +type DockerImage { + digest: String! + dockerRepository: DockerRepository + grade: ImageGrade + id: ID! + insertedAt: DateTime + scanCompletedAt: DateTime + scannedAt: DateTime + tag: String + updatedAt: DateTime + vulnerabilities: [Vulnerability] +} + +type DockerImageConnection { + edges: [DockerImageEdge] + pageInfo: PageInfo! +} + +type DockerImageEdge { + cursor: String + node: DockerImage +} + +type DockerRepository { + id: ID! + insertedAt: DateTime + metrics(offset: String, precision: String, tag: String): [Metric] + name: String! + public: Boolean + repository: Repository + updatedAt: DateTime +} + +type DockerRepositoryConnection { + edges: [DockerRepositoryEdge] + pageInfo: PageInfo! +} + +type DockerRepositoryEdge { + cursor: String + node: DockerRepository +} + +type DomainMapping { + account: Account + domain: String! + enableSso: Boolean + id: ID! + insertedAt: DateTime + updatedAt: DateTime +} + +type EabCredential { + cluster: String! + hmacKey: String! + id: ID! + insertedAt: DateTime + keyId: String! + provider: Provider! + updatedAt: DateTime +} + +type File { + blob: String! + contentType: String + filename: String + filesize: Int + height: Int + id: ID! + insertedAt: DateTime + mediaType: MediaType + message: IncidentMessage! + updatedAt: DateTime + width: Int +} + +type FileConnection { + edges: [FileEdge] + pageInfo: PageInfo! +} + +type FileContent { + content: String! + path: String! +} + +type FileEdge { + cursor: String + node: File +} + +type Follower { + id: ID! + incident: Incident + insertedAt: DateTime + preferences: NotificationPreferences + updatedAt: DateTime + user: User! +} + +type FollowerConnection { + edges: [FollowerEdge] + pageInfo: PageInfo! +} + +type FollowerEdge { + cursor: String + node: Follower +} + +type GeoMetric { + count: Int + country: String +} + +type GitConfiguration { + branch: String + name: String + root: String + url: String +} + +type Group { + description: String + global: Boolean + id: ID! + insertedAt: DateTime + name: String! + updatedAt: DateTime +} + +type GroupConnection { + edges: [GroupEdge] + pageInfo: PageInfo! +} + +type GroupEdge { + cursor: String + node: Group +} + +type GroupMember { + group: Group + id: ID! + insertedAt: DateTime + updatedAt: DateTime + user: User +} + +type GroupMemberConnection { + edges: [GroupMemberEdge] + pageInfo: PageInfo! +} + +type GroupMemberEdge { + cursor: String + node: GroupMember +} + +type GroupedTag { + count: Int! + tag: String! +} + +type GroupedTagConnection { + edges: [GroupedTagEdge] + pageInfo: PageInfo! +} + +type GroupedTagEdge { + cursor: String + node: GroupedTag +} + +type ImageDependency { + id: ID! + image: DockerImage! + insertedAt: DateTime + updatedAt: DateTime + version: Version! +} + +type ImageLayer { + diffId: String + digest: String +} + +type ImpersonationPolicy { + bindings: [ImpersonationPolicyBinding] + id: ID! + insertedAt: DateTime + updatedAt: DateTime +} + +type ImpersonationPolicyBinding { + group: Group + id: ID! + insertedAt: DateTime + updatedAt: DateTime + user: User +} + +type Incident { + clusterInformation: ClusterInformation + creator: User! + description: String + files(after: String, before: String, first: Int, last: Int): FileConnection + follower: Follower + followers(after: String, before: String, first: Int, last: Int): FollowerConnection + history(after: String, before: String, first: Int, last: Int): IncidentHistoryConnection + id: ID! + insertedAt: DateTime + messages(after: String, before: String, first: Int, last: Int): IncidentMessageConnection + nextResponseAt: DateTime + notificationCount: Int + owner: User + postmortem: Postmortem + repository: Repository! + severity: Int! + status: IncidentStatus! + subscription: SlimSubscription + tags: [Tag] + title: String! + updatedAt: DateTime +} + +type IncidentChange { + key: String! + next: String + prev: String +} + +type IncidentConnection { + edges: [IncidentEdge] + pageInfo: PageInfo! +} + +type IncidentDelta { + delta: Delta + payload: Incident +} + +type IncidentEdge { + cursor: String + node: Incident +} + +type IncidentHistory { + action: IncidentAction! + actor: User! + changes: [IncidentChange] + id: ID! + incident: Incident! + insertedAt: DateTime + updatedAt: DateTime +} + +type IncidentHistoryConnection { + edges: [IncidentHistoryEdge] + pageInfo: PageInfo! +} + +type IncidentHistoryEdge { + cursor: String + node: IncidentHistory +} + +type IncidentMessage { + creator: User! + entities: [MessageEntity] + file: File + id: ID! + incident: Incident! + insertedAt: DateTime + reactions: [Reaction] + text: String! + updatedAt: DateTime +} + +type IncidentMessageConnection { + edges: [IncidentMessageEdge] + pageInfo: PageInfo! +} + +type IncidentMessageDelta { + delta: Delta + payload: IncidentMessage +} + +type IncidentMessageEdge { + cursor: String + node: IncidentMessage +} + +"An installation of an application." +type Installation { + acmeKeyId: String + acmeSecret: String + "Whether the application should auto upgrade." + autoUpgrade: Boolean + "A YAML object of context." + context: Map + "The installation's ID." + id: ID! + insertedAt: DateTime + license: String + "The license key for the application." + licenseKey: String + "The OIDC provider for the application." + oidcProvider: OidcProvider + "The last ping time of an installed application." + pingedAt: DateTime + "The application that was installed." + repository: Repository + "The subscription for the application." + subscription: RepositorySubscription + "The tag to track for auto upgrades." + trackTag: String! + updatedAt: DateTime + "The user that installed the application." + user: User +} + +type InstallationConnection { + edges: [InstallationEdge] + pageInfo: PageInfo! +} + +type InstallationEdge { + cursor: String + node: Installation +} + +type Integration { + description: String + icon: String + id: ID! + insertedAt: DateTime + name: String! + publisher: Publisher + repository: Repository + sourceUrl: String + spec: Map + tags: [Tag] + type: String + updatedAt: DateTime +} + +type IntegrationConnection { + edges: [IntegrationEdge] + pageInfo: PageInfo! +} + +type IntegrationEdge { + cursor: String + node: Integration +} + +type IntegrationWebhook { + account: Account + actions: [String] + id: ID! + insertedAt: DateTime + logs(after: String, before: String, first: Int, last: Int): WebhookLogConnection + name: String! + secret: String! + updatedAt: DateTime + url: String! +} + +type IntegrationWebhookConnection { + edges: [IntegrationWebhookEdge] + pageInfo: PageInfo! +} + +type IntegrationWebhookEdge { + cursor: String + node: IntegrationWebhook +} + +type Invite { + account: Account + email: String + existing: Boolean! + expiresAt: DateTime + id: ID! + insertedAt: DateTime + secureId: String + updatedAt: DateTime + user: User +} + +type InviteConnection { + edges: [InviteEdge] + pageInfo: PageInfo! +} + +type InviteEdge { + cursor: String + node: Invite +} + +type Invoice { + amountDue: Int! + amountPaid: Int! + createdAt: DateTime + currency: String! + hostedInvoiceUrl: String + lines: [InvoiceItem] + number: String! + status: String +} + +type InvoiceConnection { + edges: [InvoiceEdge] + pageInfo: PageInfo! +} + +type InvoiceEdge { + cursor: String + node: Invoice +} + +type InvoiceItem { + amount: Int! + currency: String! + description: String +} + +type KeyBackup { + digest: String! + id: ID! + insertedAt: DateTime + name: String! + repositories: [String!] + updatedAt: DateTime + user: User! + value: String! +} + +type KeyBackupConnection { + edges: [KeyBackupEdge] + pageInfo: PageInfo! +} + +type KeyBackupEdge { + cursor: String + node: KeyBackup +} + +type License { + name: String + url: String +} + +type Limit { + dimension: String! + quantity: Int! +} + +type LineItem { + cost: Int! + dimension: String! + name: String! + period: String + type: PlanType +} + +type LoginMethodResponse { + authorizeUrl: String + loginMethod: LoginMethod! + token: String +} + +type LoginRequest { + requestedScope: [String] + subject: String +} + +type MessageEntity { + endIndex: Int + id: ID! + insertedAt: DateTime + startIndex: Int + text: String + type: MessageEntityType! + updatedAt: DateTime + user: User +} + +type Metric { + name: String! + tags: [MetricTag] + values: [MetricValue] +} + +type MetricTag { + name: String! + value: String! +} + +type MetricValue { + time: DateTime + value: Int +} + +type NetworkConfiguration { + pluralDns: Boolean + subdomain: String +} + +type Notification { + actor: User! + id: ID! + incident: Incident + insertedAt: DateTime + message: IncidentMessage + msg: String + repository: Repository + type: NotificationType! + updatedAt: DateTime + user: User! +} + +type NotificationConnection { + edges: [NotificationEdge] + pageInfo: PageInfo! +} + +type NotificationEdge { + cursor: String + node: Notification +} + +type NotificationPreferences { + incidentUpdate: Boolean + mention: Boolean + message: Boolean +} + +type OauthInfo { + authorizeUrl: String! + provider: OauthProvider! +} + +type OauthIntegration { + account: Account + id: ID! + insertedAt: DateTime + service: OauthService! + updatedAt: DateTime +} + +type OauthResponse { + redirectTo: String! +} + +type OauthSettings { + authMethod: OidcAuthMethod! + uriFormat: String! +} + +type OidcLogin { + city: String + country: String + id: ID! + insertedAt: DateTime + ip: String + latitude: String + longitude: String + owner: User + repository: Repository + updatedAt: DateTime + user: User +} + +type OidcLoginConnection { + edges: [OidcLoginEdge] + pageInfo: PageInfo! +} + +type OidcLoginEdge { + cursor: String + node: OidcLogin +} + +type OidcProvider { + authMethod: OidcAuthMethod! + bindings: [OidcProviderBinding] + clientId: String! + clientSecret: String! + configuration: OuathConfiguration + consent: ConsentRequest + id: ID! + insertedAt: DateTime + redirectUris: [String] + updatedAt: DateTime +} + +type OidcProviderBinding { + group: Group + id: ID! + insertedAt: DateTime + updatedAt: DateTime + user: User +} + +type OidcSettings { + authMethod: OidcAuthMethod! + domainKey: String + subdomain: Boolean + uriFormat: String + uriFormats: [String] +} + +type OidcStepResponse { + consent: ConsentRequest + login: LoginRequest + repository: Repository +} + +type OnboardingChecklist { + dismissed: Boolean + status: OnboardingChecklistState +} + +type OuathConfiguration { + authorizationEndpoint: String + issuer: String + jwksUri: String + tokenEndpoint: String + userinfoEndpoint: String +} + +type PackageScan { + errors: [ScanError] + grade: ImageGrade + id: ID! + insertedAt: DateTime + updatedAt: DateTime + violations: [ScanViolation] +} + +type PageInfo { + "When paginating forwards, the cursor to continue." + endCursor: String + "When paginating forwards, are there more items?" + hasNextPage: Boolean! + "When paginating backwards, are there more items?" + hasPreviousPage: Boolean! + "When paginating backwards, the cursor to continue." + startCursor: String +} + +type PersistedToken { + audits(after: String, before: String, first: Int, last: Int): PersistedTokenAuditConnection + id: ID + insertedAt: DateTime + metrics: [GeoMetric] + token: String + updatedAt: DateTime +} + +type PersistedTokenAudit { + city: String + count: Int + country: String + id: ID + insertedAt: DateTime + ip: String + latitude: String + longitude: String + timestamp: DateTime + updatedAt: DateTime +} + +type PersistedTokenAuditConnection { + edges: [PersistedTokenAuditEdge] + pageInfo: PageInfo! +} + +type PersistedTokenAuditEdge { + cursor: String + node: PersistedTokenAudit +} + +type PersistedTokenConnection { + edges: [PersistedTokenEdge] + pageInfo: PageInfo! +} + +type PersistedTokenEdge { + cursor: String + node: PersistedToken +} + +type Plan { + cost: Int! + default: Boolean + id: ID! + insertedAt: DateTime + lineItems: PlanLineItems + metadata: PlanMetadata + name: String! + period: String + serviceLevels: [ServiceLevel] + updatedAt: DateTime + visible: Boolean! +} + +type PlanFeature { + description: String! + name: String! +} + +type PlanFeatures { + audit: Boolean + userManagement: Boolean + vpn: Boolean +} + +type PlanLineItems { + included: [Limit] + items: [LineItem] +} + +type PlanMetadata { + features: [PlanFeature] + freeform: Map +} + +type PlatformMetrics { + clusters: Int + publishers: Int + repositories: Int + rollouts: Int +} + +type PlatformPlan { + cost: Int! + enterprise: Boolean + features: PlanFeatures + id: ID! + insertedAt: DateTime + lineItems: [PlatformPlanItem] + name: String! + period: PaymentPeriod! + updatedAt: DateTime + visible: Boolean! +} + +type PlatformPlanItem { + cost: Int! + dimension: LineItemDimension! + externalId: String + name: String! + period: PaymentPeriod! +} + +type PlatformSubscription { + externalId: String + id: ID! + lineItems: [PlatformSubscriptionLineItems] + plan: PlatformPlan +} + +type PlatformSubscriptionLineItems { + dimension: LineItemDimension! + externalId: String + quantity: Int! +} + +type PluralConfiguration { + gitCommit: String + registry: String + stripeConnectId: String + stripePublishableKey: String +} + +type PolicyBinding { + group: Group + id: ID! + insertedAt: DateTime + updatedAt: DateTime + user: User +} + +type Postmortem { + actionItems: [ActionItem] + content: String! + creator: User! + id: ID! + insertedAt: DateTime + updatedAt: DateTime +} + +type PublicKey { + content: String! + digest: String! + id: ID! + insertedAt: DateTime + name: String! + updatedAt: DateTime + user: User! +} + +type PublicKeyConnection { + edges: [PublicKeyEdge] + pageInfo: PageInfo! +} + +type PublicKeyEdge { + cursor: String + node: PublicKey +} + +type Publisher { + address: Address + avatar: String + backgroundColor: String + billingAccountId: String + community: Community + description: String + id: ID + insertedAt: DateTime + name: String! + owner: User + phone: String + repositories: [Repository] + updatedAt: DateTime +} + +type PublisherConnection { + edges: [PublisherEdge] + pageInfo: PageInfo! +} + +type PublisherEdge { + cursor: String + node: Publisher +} + +type Reaction { + creator: User! + insertedAt: DateTime + message: IncidentMessage! + name: String! + updatedAt: DateTime +} + +type Recipe { + description: String + id: ID! + insertedAt: DateTime + name: String! + oidcEnabled: Boolean + oidcSettings: OidcSettings + primary: Boolean + private: Boolean + provider: Provider + recipeDependencies: [Recipe] + recipeSections: [RecipeSection] + repository: Repository + restricted: Boolean + tests: [RecipeTest] + updatedAt: DateTime +} + +type RecipeCondition { + field: String! + operation: Operation! + value: String +} + +type RecipeConfiguration { + args: [String] + condition: RecipeCondition + default: String + documentation: String + functionName: String + longform: String + name: String + optional: Boolean + placeholder: String + type: Datatype + validation: RecipeValidation +} + +type RecipeConnection { + edges: [RecipeEdge] + pageInfo: PageInfo! +} + +type RecipeEdge { + cursor: String + node: Recipe +} + +type RecipeItem { + chart: Chart + configuration: [RecipeConfiguration] + id: ID + insertedAt: DateTime + recipeSection: RecipeSection + terraform: Terraform + updatedAt: DateTime +} + +type RecipeSection { + configuration: [RecipeConfiguration] + id: ID + index: Int + insertedAt: DateTime + recipe: Recipe + recipeItems: [RecipeItem] + repository: Repository + updatedAt: DateTime +} + +type RecipeTest { + args: [TestArgument] + message: String + name: String! + type: TestType! +} + +type RecipeValidation { + message: String! + regex: String + type: ValidationType! +} + +"Container for all resources to create an application." +type Repository { + "The artifacts of the application." + artifacts: [Artifact] + "The category of the application." + category: Category + "The community links of the application." + community: Community + darkIcon: String + "The default tag to deploy." + defaultTag: String + "The description of the application." + description: String + "The documentation of the application." + docs: [FileContent] + "The documentation of the application." + documentation: String + "If the application can be edited by the current user." + editable: Boolean + "The git URL of the application." + gitUrl: String + "The homepage of the application." + homepage: String + icon: String + "The application's ID." + id: ID! + insertedAt: DateTime + "The installation of the application by a user." + installation: Installation + "The license of the application." + license: License + "The main branch of the application." + mainBranch: String + "The name of the application." + name: String! + "Notes about the application rendered after deploying and displayed to the user." + notes: String + "The OAuth settings for the application." + oauthSettings: OauthSettings + "The available plans for the application." + plans: [Plan] + "Whether the application is private." + private: Boolean + "The application's public key." + publicKey: String + "The application publisher." + publisher: Publisher + "The README of the application." + readme: String + "The recipes used to install the application." + recipes: [Recipe] + "A map of secrets of the application." + secrets: Map + "The tags of the application." + tags: [Tag] + "Whether the application is trending." + trending: Boolean + updatedAt: DateTime + "Whether the application is verified." + verified: Boolean +} + +type RepositoryConnection { + edges: [RepositoryEdge] + pageInfo: PageInfo! +} + +type RepositoryEdge { + cursor: String + node: Repository +} + +type RepositorySubscription { + customerId: String + externalId: String + id: ID! + installation: Installation + invoices(after: String, before: String, first: Int, last: Int): InvoiceConnection + lineItems: SubscriptionLineItems + plan: Plan +} + +type RepositorySubscriptionConnection { + edges: [RepositorySubscriptionEdge] + pageInfo: PageInfo! +} + +type RepositorySubscriptionEdge { + cursor: String + node: RepositorySubscription +} + +type ResetToken { + email: String! + externalId: ID! + id: ID! + insertedAt: DateTime + type: ResetTokenType! + updatedAt: DateTime + user: User! +} + +type Role { + account: Account + description: String + id: ID! + insertedAt: DateTime + name: String! + permissions: [Permission] + repositories: [String] + roleBindings: [RoleBinding] + updatedAt: DateTime +} + +type RoleBinding { + group: Group + id: ID! + insertedAt: DateTime + updatedAt: DateTime + user: User +} + +type RoleConnection { + edges: [RoleEdge] + pageInfo: PageInfo! +} + +type RoleEdge { + cursor: String + node: Role +} + +type Roles { + admin: Boolean +} + +type Rollout { + count: Int + cursor: ID + event: String + heartbeat: DateTime + id: ID! + insertedAt: DateTime + repository: Repository + status: RolloutStatus! + updatedAt: DateTime +} + +type RolloutConnection { + edges: [RolloutEdge] + pageInfo: PageInfo! +} + +type RolloutDelta { + delta: Delta + payload: Rollout +} + +type RolloutEdge { + cursor: String + node: Rollout +} + +type RootMutationType { + acceptIncident(id: ID!): Incident + acceptLogin(challenge: String!): OauthResponse + acquireLock(repository: String!): ApplyLock + cancelPlatformSubscription: PlatformSubscription + completeIncident(id: ID!, postmortem: PostmortemAttributes!): Incident + createArtifact(attributes: ArtifactAttributes!, repositoryId: ID, repositoryName: String): Artifact + createCard(address: AddressAttributes, source: String!): Account + "Create a new cluster." + createCluster( + "The input attributes for the cluster that will be created." + attributes: ClusterAttributes! + ): Cluster + "adds a dependency for this cluster to gate future upgrades" + createClusterDependency(destId: ID!, sourceId: ID!): ClusterDependency + createCrd(attributes: CrdAttributes!, chartId: ID, chartName: ChartName): Crd + createDemoProject: DemoProject + createDnsRecord(attributes: DnsRecordAttributes!, cluster: String!, provider: Provider!): DnsRecord + createDomain(attributes: DnsDomainAttributes!): DnsDomain + createGroup(attributes: GroupAttributes!): Group + createGroupMember(groupId: ID!, userId: ID!): GroupMember + createIncident(attributes: IncidentAttributes!, repository: String, repositoryId: ID): Incident + createInstallation(repositoryId: ID!): Installation + createIntegration(attributes: IntegrationAttributes!, repositoryName: String!): Integration + createIntegrationWebhook(attributes: IntegrationWebhookAttributes!): IntegrationWebhook + createInvite(attributes: InviteAttributes!): Invite + createKeyBackup(attributes: KeyBackupAttributes!): KeyBackup + createMessage(attributes: IncidentMessageAttributes!, incidentId: ID!): IncidentMessage + createOauthIntegration(attributes: OauthAttributes!): OauthIntegration + createOidcProvider( + attributes: OidcAttributes!, + "The installation ID" + installationId: ID! + ): OidcProvider + createPlan(attributes: PlanAttributes!, repositoryId: ID!): Plan + createPlatformSubscription(planId: ID!): PlatformSubscription + createPublicKey(attributes: PublicKeyAttributes!): PublicKey + createPublisher(attributes: PublisherAttributes!): Publisher + createQueue(attributes: UpgradeQueueAttributes!): UpgradeQueue + createReaction(messageId: ID!, name: String!): IncidentMessage + createRecipe(attributes: RecipeAttributes!, repositoryId: String, repositoryName: String): Recipe + createRepository(attributes: RepositoryAttributes!, id: ID): Repository + createResetToken(attributes: ResetTokenAttributes!): Boolean + createRole(attributes: RoleAttributes!): Role + createServiceAccount(attributes: ServiceAccountAttributes!): User + createShell(attributes: CloudShellAttributes!): CloudShell + createStack(attributes: StackAttributes!): Stack + createSubscription(attributes: SubscriptionAttributes, installationId: ID!, planId: ID!): RepositorySubscription + createTerraform(attributes: TerraformAttributes!, repositoryId: ID!): Terraform + createTest(attributes: TestAttributes!, name: String, repositoryId: ID): Test + createToken: PersistedToken + createUserEvent(attributes: UserEventAttributes!): Boolean + createWebhook(attributes: WebhookAttributes!): Webhook + createZoom(attributes: MeetingAttributes!): ZoomMeeting + deleteCard(id: ID!): Account + deleteChartInstallation(id: ID!): ChartInstallation + "Delete a cluster." + deleteCluster( + "The name of the cluster." + name: String!, + "The cluster's cloud provider." + provider: Provider! + ): Cluster + deleteDemoProject: DemoProject + deleteDnsRecord(name: String!, type: DnsRecordType!): DnsRecord + deleteDomain(id: ID!): DnsDomain + deleteEabKey(cluster: String, id: ID, provider: Provider): EabCredential + deleteGroup(groupId: ID!): Group + deleteGroupMember(groupId: ID!, userId: ID!): GroupMember + deleteIncident(id: ID!): Incident + deleteInstallation(id: ID!): Installation + deleteIntegrationWebhook(id: ID!): IntegrationWebhook + deleteInvite(id: ID, secureId: String): Invite + deleteKeyBackup(name: String!): KeyBackup + deleteMessage(id: ID!): IncidentMessage + deletePlatformSubscription: Account + deletePublicKey(id: ID!): PublicKey + deleteReaction(messageId: ID!, name: String!): IncidentMessage + deleteRecipe(id: ID!): Recipe + deleteRepository(repositoryId: ID!): Repository + deleteRole(id: ID!): Role + deleteShell: CloudShell + deleteStack(name: String!): Stack + deleteTerraform(id: ID!): Terraform + deleteToken(id: ID!): PersistedToken + deleteUser(id: ID!): User + destroyCluster(domain: String!, name: String!, provider: Provider!): Boolean + deviceLogin: DeviceLogin + externalToken: String + followIncident(attributes: FollowerAttributes!, id: ID!): Follower + impersonateServiceAccount(email: String, id: ID): User + installBundle(context: ContextAttributes!, name: String!, oidc: Boolean!, repo: String!): [Installation] + installChart(attributes: ChartInstallationAttributes!, installationId: ID!): ChartInstallation + installRecipe(context: Map!, recipeId: ID!): [Installation] + installStack(name: String!, provider: Provider!): [Recipe] + installStackShell(context: ContextAttributes!, name: String!, oidc: Boolean!): [Recipe] + installTerraform(attributes: TerraformInstallationAttributes!, installationId: ID!): TerraformInstallation + linkPublisher(token: String!): Publisher + login(deviceToken: String, email: String!, password: String!): User + loginToken(deviceToken: String, token: String!): User + oauthCallback(code: String!, deviceToken: String, host: String, provider: OauthProvider!): User + oauthConsent(challenge: String!, scopes: [String]): OauthResponse + passwordlessLogin(token: String!): User + pingWebhook(id: ID!, message: String, repo: String!): WebhookResponse + "moves up the upgrade waterline for a user" + promote: User + provisionDomain(name: String!): DnsDomain + publishLogs(id: ID!, logs: String!): TestStep + quickStack(provider: Provider!, repositoryIds: [ID]): Stack + readNotifications(incidentId: ID): Int + realizeInvite(id: String!): User + realizeResetToken(attributes: ResetTokenRealization!, id: ID!): Boolean + rebootShell: CloudShell + releaseLock(attributes: LockAttributes!, repository: String!): ApplyLock + resetInstallations: Int + restartShell: Boolean + setupShell: CloudShell + signup(account: AccountAttributes, attributes: UserAttributes!, deviceToken: String, inviteId: String): User + ssoCallback(code: String!, deviceToken: String): User + stopShell: Boolean + transferDemoProject(organizationId: String!): DemoProject + unfollowIncident(id: ID!): Follower + uninstallTerraform(id: ID!): TerraformInstallation + unlockRepository(name: String!): Int + updateAccount(attributes: AccountAttributes!): Account + updateChart(attributes: ChartAttributes!, id: ID!): Chart + updateChartInstallation(attributes: ChartInstallationAttributes!, chartInstallationId: ID!): ChartInstallation + updateDockerRepository(attributes: DockerRepositoryAttributes!, id: ID!): DockerRepository + updateDomain(attributes: DnsDomainAttributes!, id: ID!): DnsDomain + updateGroup(attributes: GroupAttributes!, groupId: ID!): Group + updateIncident(attributes: IncidentAttributes!, id: ID!): Incident + updateInstallation(attributes: InstallationAttributes!, id: ID!): Installation + updateIntegrationWebhook(attributes: IntegrationWebhookAttributes!, id: ID!): IntegrationWebhook + updateLineItem(attributes: LimitAttributes!, subscriptionId: ID!): RepositorySubscription + updateMessage(attributes: IncidentMessageAttributes!, id: ID!): IncidentMessage + updateOidcProvider(attributes: OidcAttributes!, installationId: ID!): OidcProvider + updatePlan(planId: ID!, subscriptionId: ID!): RepositorySubscription + updatePlanAttributes(attributes: UpdatablePlanAttributes!, id: ID!): Plan + updatePlatformPlan(planId: ID!): PlatformSubscription + updatePublisher(attributes: PublisherAttributes!): Publisher + updateRepository(attributes: RepositoryAttributes!, repositoryId: ID, repositoryName: String): Repository + updateRole(attributes: RoleAttributes!, id: ID!): Role + updateServiceAccount(attributes: ServiceAccountAttributes!, id: ID!): User + updateShell(attributes: CloudShellAttributes!): CloudShell + updateShellConfiguration(context: Map!): Boolean + updateStep(attributes: TestStepAttributes!, id: ID!): TestStep + updateTerraform(attributes: TerraformAttributes!, id: ID!): Terraform + updateTest(attributes: TestAttributes!, id: ID!): Test + updateUser(attributes: UserAttributes!, id: ID): User + updateVersion(attributes: VersionAttributes!, id: ID, spec: VersionSpec): Version + uploadTerraform(attributes: TerraformAttributes!, name: String!, repositoryName: String!): Terraform + upsertOidcProvider(attributes: OidcAttributes!, installationId: ID!): OidcProvider + upsertRepository(attributes: RepositoryAttributes!, name: String!, publisher: String!): Repository +} + +type RootQueryType { + account: Account + auditMetrics: [GeoMetric] + audits(after: String, before: String, first: Int, last: Int): AuditConnection + categories: [CategoryInfo] + category(name: Category!): CategoryInfo + chart(id: ID!): Chart + chartInstallations(after: String, before: String, first: Int, last: Int, repositoryId: ID!): ChartInstallationConnection + charts(after: String, before: String, first: Int, last: Int, repositoryId: ID!): ChartConnection + closure(id: ID!, type: DependencyType!): [ClosureItem] + "Get a cluster by its ID." + cluster( + "The ID of the cluster." + id: ID! + ): Cluster + "Get a list of clusters owned by the current account." + clusters(after: String, before: String, first: Int, last: Int): ClusterConnection + configuration: PluralConfiguration + deferredUpdates(after: String, before: String, chartInstallationId: ID, first: Int, last: Int, terraformInstallationId: ID): DeferredUpdateConnection + demoProject(id: ID): DemoProject + dnsDomain(id: ID!): DnsDomain + dnsDomains(after: String, before: String, first: Int, last: Int, q: String): DnsDomainConnection + dnsRecords(after: String, before: String, cluster: String, domainId: ID, first: Int, last: Int, provider: Provider): DnsRecordConnection + dockerImage(id: ID!): DockerImage + dockerImages(after: String, before: String, dockerRepositoryId: ID!, first: Int, last: Int, q: String): DockerImageConnection + dockerRepositories(after: String, before: String, first: Int, last: Int, repositoryId: ID!): DockerRepositoryConnection + eabCredential(cluster: String!, provider: Provider!): EabCredential + eabCredentials: [EabCredential] + groupMembers(after: String, before: String, first: Int, groupId: ID!, last: Int): GroupMemberConnection + groups(after: String, before: String, first: Int, last: Int, q: String): GroupConnection + helpQuestion(prompt: String!): String + incident(id: ID!): Incident + incidents(after: String, before: String, filters: [IncidentFilter], first: Int, last: Int, order: Order, q: String, repositoryId: ID, sort: IncidentSort, supports: Boolean): IncidentConnection + installation(id: ID, name: String): Installation + installations(after: String, before: String, first: Int, last: Int): InstallationConnection + integrationWebhook(id: ID!): IntegrationWebhook + integrationWebhooks(after: String, before: String, first: Int, last: Int): IntegrationWebhookConnection + integrations(after: String, before: String, first: Int, last: Int, repositoryId: ID, repositoryName: String, tag: String, type: String): IntegrationConnection + invite(id: String!): Invite + invites(after: String, before: String, first: Int, last: Int): InviteConnection + invoices(after: String, before: String, first: Int, last: Int): InvoiceConnection + keyBackup(name: String!): KeyBackup + keyBackups(after: String, before: String, first: Int, last: Int): KeyBackupConnection + loginMethod(email: String!, host: String): LoginMethodResponse + loginMetrics: [GeoMetric] + me: User + notifications(after: String, before: String, cli: Boolean, first: Int, incidentId: ID, last: Int): NotificationConnection + oauthConsent(challenge: String!): Repository + oauthIntegrations: [OauthIntegration] + oauthLogin(challenge: String!): Repository + oauthUrls(host: String): [OauthInfo] + oidcConsent(challenge: String!): OidcStepResponse + oidcLogin(challenge: String!): OidcStepResponse + oidcLogins(after: String, before: String, first: Int, last: Int): OidcLoginConnection + platformMetrics: PlatformMetrics + platformPlans: [PlatformPlan] + platformSubscription: PlatformSubscription + publicKeys(after: String, before: String, emails: [String], first: Int, last: Int): PublicKeyConnection + publisher(id: ID): Publisher + publishers(accountId: ID, after: String, before: String, first: Int, last: Int, publishable: Boolean): PublisherConnection + recipe(id: ID, name: String, repo: String): Recipe + recipes(after: String, before: String, first: Int, last: Int, provider: Provider, repositoryId: ID, repositoryName: String): RecipeConnection + repositories(after: String, before: String, categories: [Category], category: Category, first: Int, installed: Boolean, last: Int, provider: Provider, publisherId: ID, publishers: [ID], q: String, supports: Boolean, tag: String, tags: [String]): RepositoryConnection + "Get an application by its ID or name." + repository( + "The ID of the application." + id: ID, + "The name of the application." + name: String + ): Repository + repositorySubscription(id: ID!): RepositorySubscription + resetToken(id: ID!): ResetToken + role(id: ID!): Role + roles(after: String, before: String, first: Int, last: Int, q: String, userId: ID): RoleConnection + rollouts(after: String, before: String, first: Int, last: Int, repositoryId: ID!): RolloutConnection + scaffold(application: String!, category: Category!, ingress: Boolean, postgres: Boolean, publisher: String!): [ScaffoldFile] + scmAuthorization: [AuthorizationUrl] + scmToken(code: String!, provider: ScmProvider!): String + searchRepositories(after: String, before: String, first: Int, last: Int, query: String!): RepositoryConnection + searchUsers(after: String, before: String, first: Int, incidentId: ID!, last: Int, q: String!): UserConnection + shell: CloudShell + shellConfiguration: ShellConfiguration + stack(name: String!, provider: Provider!): Stack + stacks(after: String, before: String, featured: Boolean, first: Int, last: Int): StackConnection + subscriptions(after: String, before: String, first: Int, last: Int): RepositorySubscriptionConnection + tags(after: String, before: String, first: Int, id: ID, last: Int, q: String, type: TagGroup!): GroupedTagConnection + terraform(after: String, before: String, first: Int, last: Int, repositoryId: ID!): TerraformConnection + terraformInstallations(after: String, before: String, first: Int, last: Int, repositoryId: ID!): TerraformInstallationConnection + terraformModule(id: ID!): Terraform + terraformProvider(name: Provider!, vsn: String): TerraformProvider + terraformProviders: [Provider] + test(id: ID!): Test + testLogs(id: ID!, step: ID!): String + tests(after: String, before: String, first: Int, last: Int, repositoryId: ID, versionId: ID): TestConnection + token(id: ID!): PersistedToken + tokens(after: String, before: String, first: Int, last: Int): PersistedTokenConnection + upgradeQueue(id: ID): UpgradeQueue + upgradeQueues: [UpgradeQueue] + users(after: String, all: Boolean, before: String, first: Int, last: Int, q: String, serviceAccount: Boolean): UserConnection + versions(after: String, before: String, chartId: ID, first: Int, last: Int, terraformId: ID): VersionConnection + webhooks(after: String, before: String, first: Int, last: Int): WebhookConnection +} + +type RootSubscriptionType { + incidentDelta(incidentId: ID, repositoryId: ID): IncidentDelta + incidentMessageDelta(incidentId: ID): IncidentMessageDelta + notification: Notification + rolloutDelta(repositoryId: ID!): RolloutDelta + testDelta(repositoryId: ID!): TestDelta + testLogs(testId: ID!): StepLogs + upgrade(id: ID): Upgrade + upgradeQueueDelta: UpgradeQueueDelta +} + +type ScaffoldFile { + content: String + path: String +} + +type ScanError { + message: String +} + +type ScanViolation { + category: String + description: String + file: String + insertedAt: DateTime + line: Int + resourceName: String + resourceType: String + ruleId: String + ruleName: String + severity: VulnGrade + updatedAt: DateTime +} + +type ServiceLevel { + maxSeverity: Int + minSeverity: Int + responseTime: Int +} + +type ShellConfiguration { + buckets: [String] + contextConfiguration: Map + domains: [String] + git: GitConfiguration + workspace: ShellWorkspace +} + +type ShellStatus { + containersReady: Boolean + initialized: Boolean + podScheduled: Boolean + ready: Boolean +} + +type ShellWorkspace { + bucketPrefix: String + cluster: String + network: NetworkConfiguration + region: String +} + +type SlimSubscription { + id: ID! + lineItems: SubscriptionLineItems + plan: Plan +} + +type Stack { + bundles: [Recipe] + collections: [StackCollection] + community: Community + creator: User + description: String + displayName: String + featured: Boolean + id: ID! + insertedAt: DateTime + name: String! + sections: [RecipeSection] + updatedAt: DateTime +} + +type StackCollection { + bundles: [StackRecipe] + id: ID! + insertedAt: DateTime + provider: Provider! + updatedAt: DateTime +} + +type StackConnection { + edges: [StackEdge] + pageInfo: PageInfo! +} + +type StackEdge { + cursor: String + node: Stack +} + +type StackRecipe { + id: ID! + insertedAt: DateTime + recipe: Recipe! + updatedAt: DateTime +} + +type StepLogs { + logs: [String] + step: TestStep +} + +type SubscriptionLineItems { + items: [Limit] +} + +type Tag { + id: ID! + tag: String! +} + +type Terraform { + dependencies: Dependencies + description: String + editable: Boolean + id: ID + insertedAt: DateTime + installation: TerraformInstallation + latestVersion: String + name: String + package: String + readme: String + repository: Repository + updatedAt: DateTime + valuesTemplate: String +} + +type TerraformConnection { + edges: [TerraformEdge] + pageInfo: PageInfo! +} + +type TerraformEdge { + cursor: String + node: Terraform +} + +type TerraformInstallation { + id: ID + insertedAt: DateTime + installation: Installation + terraform: Terraform + updatedAt: DateTime + version: Version +} + +type TerraformInstallationConnection { + edges: [TerraformInstallationEdge] + pageInfo: PageInfo! +} + +type TerraformInstallationEdge { + cursor: String + node: TerraformInstallation +} + +type TerraformProvider { + content: String + name: Provider +} + +type Test { + creator: User + id: ID! + insertedAt: DateTime + name: String + promoteTag: String! + repository: Repository + sourceTag: String! + status: TestStatus! + steps: [TestStep] + tags: [String!] + updatedAt: DateTime +} + +type TestArgument { + key: String! + name: String! + repo: String! +} + +type TestConnection { + edges: [TestEdge] + pageInfo: PageInfo! +} + +type TestDelta { + delta: Delta + payload: Test +} + +type TestEdge { + cursor: String + node: Test +} + +type TestStep { + description: String! + hasLogs: Boolean + id: ID! + insertedAt: DateTime + name: String! + status: TestStatus! + updatedAt: DateTime +} + +type Upgrade { + id: ID! + insertedAt: DateTime + message: String + repository: Repository + type: UpgradeType + updatedAt: DateTime +} + +type UpgradeConnection { + edges: [UpgradeEdge] + pageInfo: PageInfo! +} + +type UpgradeEdge { + cursor: String + node: Upgrade +} + +"The pending upgrades for a repository" +type UpgradeInfo { + count: Int + installation: Installation +} + +type UpgradeQueue { + acked: ID + domain: String + git: String + id: ID! + insertedAt: DateTime + name: String + pingedAt: DateTime + provider: Provider + updatedAt: DateTime + upgrades(after: String, before: String, first: Int, last: Int): UpgradeConnection + user: User! +} + +type UpgradeQueueDelta { + delta: Delta + payload: UpgradeQueue +} + +type User { + account: Account! + address: Address + avatar: String + backgroundColor: String + boundRoles: [Role] + cards(after: String, before: String, first: Int, last: Int): CardConnection + defaultQueueId: ID + "If a user has reached the demo project usage limit." + demoed: Boolean + demoing: Boolean + email: String! + emailConfirmBy: DateTime + emailConfirmed: Boolean + hasInstallations: Boolean + id: ID! + impersonationPolicy: ImpersonationPolicy + insertedAt: DateTime + jwt: String + loginMethod: LoginMethod + name: String! + onboarding: OnboardingState + onboardingChecklist: OnboardingChecklist + phone: String + provider: Provider + publisher: Publisher + roles: Roles + serviceAccount: Boolean + updatedAt: DateTime +} + +type UserConnection { + edges: [UserEdge] + pageInfo: PageInfo! +} + +type UserEdge { + cursor: String + node: User +} + +"The version of a package." +type Version { + chart: Chart + crds: [Crd] + dependencies: Dependencies + helm: Map + id: ID! + imageDependencies: [ImageDependency] + insertedAt: DateTime + package: String + readme: String + scan: PackageScan + tags: [VersionTag] + "The template engine used to render the valuesTemplate." + templateType: TemplateType + terraform: Terraform + updatedAt: DateTime + valuesTemplate: String + version: String! +} + +type VersionConnection { + edges: [VersionEdge] + pageInfo: PageInfo! +} + +type VersionEdge { + cursor: String + node: Version +} + +type VersionTag { + chart: Chart + id: ID! + insertedAt: DateTime + tag: String! + updatedAt: DateTime + version: Version +} + +type Vulnerability { + cvss: Cvss + description: String + fixedVersion: String + id: ID! + insertedAt: DateTime + installedVersion: String + layer: ImageLayer + package: String + score: Float + severity: VulnGrade + source: String + title: String + updatedAt: DateTime + url: String + vulnerabilityId: String +} + +type Webhook { + id: ID + insertedAt: DateTime + secret: String + updatedAt: DateTime + url: String + user: User +} + +type WebhookConnection { + edges: [WebhookEdge] + pageInfo: PageInfo! +} + +type WebhookEdge { + cursor: String + node: Webhook +} + +type WebhookLog { + id: ID! + insertedAt: DateTime + payload: Map + response: String + state: WebhookLogState! + status: Int + updatedAt: DateTime + webhook: IntegrationWebhook +} + +type WebhookLogConnection { + edges: [WebhookLogEdge] + pageInfo: PageInfo! +} + +type WebhookLogEdge { + cursor: String + node: WebhookLog +} + +type WebhookResponse { + body: String + headers: Map + statusCode: Int! +} + +type Wirings { + helm: Map + terraform: Map +} + +type ZoomMeeting { + joinUrl: String! + password: String +} + +enum ActionItemType { + BLOG + ISSUE + PULL +} + +enum ArtifactPlatform { + ANDROID + FREEBSD + LINUX + MAC + OPENBSD + SOLARIS + WINDOWS +} + +enum ArtifactType { + CLI + DESKTOP + MOBILE +} + +"Application categories." +enum Category { + DATA + DATABASE + DEVOPS + MESSAGING + NETWORK + PRODUCTIVITY + SECURITY + STORAGE +} + +enum Datatype { + BOOL + BUCKET + DOMAIN + FILE + FUNCTION + INT + PASSWORD + STRING +} + +enum Delta { + CREATE + DELETE + UPDATE +} + +enum DemoProjectState { + CREATED + ENABLED + READY +} + +enum DependencyType { + HELM + TERRAFORM +} + +enum DnsRecordType { + A + AAAA + CNAME + TXT +} + +enum ImageGrade { + A + B + C + D + F +} + +enum IncidentAction { + ACCEPT + COMPLETE + CREATE + EDIT + SEVERITY + STATUS +} + +enum IncidentFilterType { + FOLLOWING + NOTIFICATIONS + STATUS + TAG +} + +enum IncidentSort { + INSERTED_AT + SEVERITY + STATUS + TITLE +} + +enum IncidentStatus { + COMPLETE + IN_PROGRESS + OPEN + RESOLVED +} + +enum LineItemDimension { + CLUSTER + USER +} + +enum LoginMethod { + GITHUB + GOOGLE + PASSWORD + PASSWORDLESS + SSO +} + +enum MediaType { + AUDIO + IMAGE + OTHER + PDF + VIDEO +} + +enum MessageEntityType { + EMOJI + MENTION +} + +enum NotificationType { + INCIDENT_UPDATE + LOCKED + MENTION + MESSAGE +} + +enum OauthProvider { + GITHUB + GITLAB + GOOGLE +} + +enum OauthService { + ZOOM +} + +"Supported OIDC authentication methods." +enum OidcAuthMethod { + BASIC + POST +} + +enum OnboardingChecklistState { + CONFIGURED + CONSOLE_INSTALLED + FINISHED + NEW +} + +enum OnboardingState { + ACTIVE + INSTALLED + NEW + ONBOARDED +} + +enum Operation { + EQ + GT + GTE + LT + LTE + NOT + PREFIX + SUFFIX +} + +enum Order { + ASC + DESC +} + +enum PaymentPeriod { + MONTHLY + YEARLY +} + +enum Permission { + BILLING + INSTALL + INTEGRATIONS + PUBLISH + SUPPORT + USERS +} + +enum PlanType { + LICENSED + METERED +} + +enum Provider { + AWS + AZURE + CUSTOM + EQUINIX + GCP + GENERIC + KIND + KUBERNETES +} + +enum RecipeItemType { + HELM + TERRAFORM +} + +enum ResetTokenType { + EMAIL + PASSWORD +} + +enum RolloutStatus { + FINISHED + QUEUED + RUNNING +} + +enum ScmProvider { + DEMO + GITHUB + GITLAB + MANUAL +} + +"Possible cluster sources." +enum Source { + DEFAULT + DEMO + SHELL +} + +enum SpecDatatype { + BOOL + FLOAT + INT + LIST + OBJECT + STRING +} + +enum TagGroup { + INTEGRATIONS + REPOSITORIES +} + +"Template engines that can be used at build time." +enum TemplateType { + GOTEMPLATE + JAVASCRIPT + LUA +} + +enum TestStatus { + FAILED + QUEUED + RUNNING + SUCCEEDED +} + +enum TestType { + GIT +} + +enum UpgradeType { + APPROVAL + BOUNCE + DEDICATED + DEPLOY +} + +enum UserEventStatus { + ERROR + OK +} + +enum ValidationType { + REGEX +} + +enum VulnGrade { + CRITICAL + HIGH + LOW + MEDIUM + NONE +} + +enum VulnRequirement { + NONE + REQUIRED +} + +enum VulnVector { + ADJACENT + LOCAL + NETWORK + PHYSICAL +} + +enum WebhookLogState { + DELIVERED + FAILED + SENDING +} + +""" + +The `DateTime` scalar type represents a date and time in the UTC +timezone. The DateTime appears in a JSON response as an ISO8601 formatted +string, including UTC timezone ("Z"). The parsed date and time string will +be converted to UTC if there is an offset. +""" +scalar DateTime + +scalar Map + +scalar UploadOrUrl + +scalar Yaml + +input AccountAttributes { + billingAddress: AddressAttributes + domainMappings: [DomainMappingInput] + icon: UploadOrUrl + name: String +} + +input ActionItemAttributes { + link: String! + type: ActionItemType! +} + +input AddressAttributes { + city: String! + country: String! + line1: String! + line2: String! + name: String + state: String! + zip: String! +} + +input ArtifactAttributes { + arch: String + blob: UploadOrUrl + name: String! + platform: String! + readme: String! + type: String! +} + +input AwsShellCredentialsAttributes { + accessKeyId: String! + secretAccessKey: String! +} + +input AzureShellCredentialsAttributes { + clientId: String! + clientSecret: String! + storageAccount: String! + subscriptionId: String! + tenantId: String! +} + +input BindingAttributes { + groupId: ID + id: ID + userId: ID +} + +input ChartAttributes { + tags: [VersionTagAttributes] +} + +input ChartInstallationAttributes { + chartId: ID + versionId: ID +} + +input ChartName { + chart: String + repo: String +} + +input CloudShellAttributes { + credentials: ShellCredentialsAttributes! + demoId: ID + provider: Provider + scm: ScmAttributes + workspace: WorkspaceAttributes! +} + +"Input for creating or updating a cluster." +input ClusterAttributes { + "The URL of the console running on the cluster." + consoleUrl: String + "The domain name used for applications deployed on the cluster." + domain: String + "The git repository URL for the cluster." + gitUrl: String + "The name of the cluster." + name: String! + "The cluster's cloud provider." + provider: Provider! + "The source of the cluster." + source: Source +} + +input ClusterInformationAttributes { + gitCommit: String + platform: String + version: String +} + +"Input for creating or updating the community links of an application." +input CommunityAttributes { + "The application's Discord server." + discord: String + "The application's git URL." + gitUrl: String + "The application's homepage." + homepage: String + "The application's Slack channel." + slack: String + "The application's Twitter account." + twitter: String + "The videos of the application." + videos: [String] +} + +input ContextAttributes { + buckets: [String] + configuration: Map! + domains: [String] +} + +input CrdAttributes { + blob: UploadOrUrl + name: String! +} + +input DnsAccessPolicyAttributes { + bindings: [BindingAttributes] + id: ID +} + +input DnsDomainAttributes { + accessPolicy: DnsAccessPolicyAttributes + name: String +} + +input DnsRecordAttributes { + name: String! + records: [String] + type: DnsRecordType! +} + +input DockerRepositoryAttributes { + public: Boolean! +} + +input DomainMappingInput { + domain: String + enableSso: Boolean + id: ID +} + +input EntityAttributes { + endIndex: Int + startIndex: Int + text: String + type: MessageEntityType! + userId: ID +} + +input FileAttributes { + blob: UploadOrUrl +} + +input FollowerAttributes { + preferences: NotificationPreferencesAttributes +} + +input GcpShellCredentialsAttributes { + applicationCredentials: String! +} + +input GroupAttributes { + description: String + global: Boolean + name: String! +} + +input ImpersonationPolicyAttributes { + bindings: [ImpersonationPolicyBindingAttributes] + id: ID +} + +input ImpersonationPolicyBindingAttributes { + groupId: ID + id: ID + userId: ID +} + +input IncidentAttributes { + clusterInformation: ClusterInformationAttributes + description: String + severity: Int + status: IncidentStatus + tags: [TagAttributes] + title: String +} + +input IncidentFilter { + statuses: [IncidentStatus] + type: IncidentFilterType! + value: String +} + +input IncidentMessageAttributes { + entities: [EntityAttributes] + file: FileAttributes + text: String! +} + +"Input for creating or updating the tag attributes of an application installation." +input InstallationAttributes { + "Whether the application should auto upgrade." + autoUpgrade: Boolean + "A YAML object of context." + context: Yaml + "The tag to track for auto upgrades." + trackTag: String +} + +input IntegrationAttributes { + description: String + icon: UploadOrUrl + name: String! + sourceUrl: String + spec: Yaml + tags: [TagAttributes] + type: String +} + +input IntegrationWebhookAttributes { + actions: [String] + name: String! + url: String! +} + +input InviteAttributes { + email: String +} + +input KeyBackupAttributes { + key: String! + name: String! + repositories: [String] +} + +input LimitAttributes { + dimension: String! + quantity: Int! +} + +input LineItemAttributes { + cost: Int! + dimension: String! + name: String! + period: String! + type: PlanType +} + +input LockAttributes { + lock: String! +} + +input MeetingAttributes { + incidentId: ID + topic: String! +} + +input NotificationPreferencesAttributes { + incidentUpdate: Boolean! + mention: Boolean! + message: Boolean! +} + +input OauthAttributes { + code: String + redirectUri: String + service: OauthService +} + +"Input for the application's OAuth settings." +input OauthSettingsAttributes { + "The authentication method for the OAuth provider." + authMethod: OidcAuthMethod! + "The URI format for the OAuth provider." + uriFormat: String! +} + +"Input for creating or updating the OIDC attributes of an application installation." +input OidcAttributes { + "The authentication method for the OIDC provider." + authMethod: OidcAuthMethod! + "The users or groups that can login through the OIDC provider." + bindings: [BindingAttributes] + "The redirect URIs for the OIDC provider." + redirectUris: [String] +} + +input OidcSettingsAttributes { + authMethod: OidcAuthMethod! + domainKey: String + subdomain: Boolean + uriFormat: String + uriFormats: [String] +} + +input OnboardingChecklistAttributes { + dismissed: Boolean + status: OnboardingChecklistState +} + +input PlanAttributes { + cost: Int! + default: Boolean + lineItems: PlanLineItemAttributes + metadata: PlanMetadataAttributes + name: String! + period: String! + serviceLevels: [ServiceLevelAttributes] +} + +input PlanFeatureAttributes { + description: String! + name: String! +} + +input PlanLineItemAttributes { + included: [LimitAttributes] + items: [LineItemAttributes] +} + +input PlanMetadataAttributes { + features: [PlanFeatureAttributes] + freeform: Yaml +} + +input PostmortemAttributes { + actionItems: [ActionItemAttributes] + content: String! +} + +input PublicKeyAttributes { + content: String! + name: String! +} + +input PublisherAttributes { + address: AddressAttributes + avatar: UploadOrUrl + community: CommunityAttributes + description: String + name: String + phone: String +} + +input RecipeAttributes { + dependencies: [RecipeReference] + description: String + name: String! + oidcSettings: OidcSettingsAttributes + primary: Boolean + private: Boolean + provider: Provider + restricted: Boolean + sections: [RecipeSectionAttributes] + tests: [RecipeTestAttributes] +} + +input RecipeConditionAttributes { + field: String! + operation: Operation! + value: String +} + +input RecipeConfigurationAttributes { + condition: RecipeConditionAttributes + default: String + documentation: String + functionName: String + longform: String + name: String! + optional: Boolean + placeholder: String + type: Datatype! + validation: RecipeValidationAttributes +} + +input RecipeItemAttributes { + configuration: [RecipeConfigurationAttributes] + name: String! + type: RecipeItemType! +} + +input RecipeReference { + name: String! + repo: String! +} + +input RecipeSectionAttributes { + configuration: [RecipeConfigurationAttributes] + items: [RecipeItemAttributes] + name: String! +} + +input RecipeTestAttributes { + args: [TestArgumentAttributes] + message: String + name: String! + type: TestType! +} + +input RecipeValidationAttributes { + message: String! + regex: String + type: ValidationType! +} + +"Input for creating or updating an application's attributes." +input RepositoryAttributes { + "The category of the application." + category: Category + "The application's community links." + community: CommunityAttributes + "The application's dark icon." + darkIcon: UploadOrUrl + "The default tag to use when deploying the application." + defaultTag: String + "A short description of the application." + description: String + "The application's documentation." + docs: UploadOrUrl + "A link to the application's documentation." + documentation: String + "The application's git URL." + gitUrl: String + "The application's homepage." + homepage: String + "The application's icon." + icon: UploadOrUrl + "The application's integration resource definition." + integrationResourceDefinition: ResourceDefinitionAttributes + "The name of the application." + name: String + "Notes about the application rendered after deploying and displayed to the user." + notes: String + "The application's OAuth settings." + oauthSettings: OauthSettingsAttributes + "Whether the application is private." + private: Boolean + "The application's README." + readme: String + "A YAML object of secrets." + secrets: Yaml + "The application's tags." + tags: [TagAttributes] + "Whether the application is trending." + trending: Boolean + "Whether the application is verified." + verified: Boolean +} + +input ResetTokenAttributes { + email: String + type: ResetTokenType! +} + +input ResetTokenRealization { + password: String +} + +input ResourceDefinitionAttributes { + name: String! + spec: [SpecificationAttributes] +} + +input RoleAttributes { + description: String + name: String + permissions: [Permission] + repositories: [String] + roleBindings: [BindingAttributes] +} + +input RolesAttributes { + admin: Boolean +} + +input ScmAttributes { + gitUrl: String + name: String + org: String + privateKey: String + provider: ScmProvider + publicKey: String + token: String +} + +input ServiceAccountAttributes { + email: String + impersonationPolicy: ImpersonationPolicyAttributes + name: String +} + +input ServiceLevelAttributes { + maxSeverity: Int + minSeverity: Int + responseTime: Int +} + +input ShellCredentialsAttributes { + aws: AwsShellCredentialsAttributes + azure: AzureShellCredentialsAttributes + gcp: GcpShellCredentialsAttributes +} + +input SpecificationAttributes { + inner: SpecDatatype + name: String! + required: Boolean + spec: [SpecificationAttributes] + type: SpecDatatype! +} + +input StackAttributes { + collections: [StackCollectionAttributes] + community: CommunityAttributes + description: String + displayName: String + featured: Boolean + name: String! +} + +input StackCollectionAttributes { + bundles: [RecipeReference] + provider: Provider! +} + +input SubscriptionAttributes { + lineItems: SubscriptionLineItemAttributes +} + +input SubscriptionLineItemAttributes { + items: [LimitAttributes] +} + +input TagAttributes { + tag: String! +} + +input TerraformAttributes { + dependencies: Yaml + description: String + name: String + package: UploadOrUrl + version: String +} + +input TerraformInstallationAttributes { + terraformId: ID + versionId: ID +} + +input TestArgumentAttributes { + key: String! + name: String! + repo: String! +} + +input TestAttributes { + name: String + promoteTag: String + status: TestStatus + steps: [TestStepAttributes] + tags: [String] +} + +input TestStepAttributes { + description: String + id: ID + logs: UploadOrUrl + name: String + status: TestStatus +} + +input UpdatablePlanAttributes { + default: Boolean + serviceLevels: [ServiceLevelAttributes] +} + +input UpgradeQueueAttributes { + domain: String + git: String + name: String! + provider: Provider +} + +input UserAttributes { + avatar: UploadOrUrl + confirm: String + email: String + loginMethod: LoginMethod + name: String + onboarding: OnboardingState + onboardingChecklist: OnboardingChecklistAttributes + password: String + roles: RolesAttributes +} + +input UserEventAttributes { + data: String + event: String! + status: UserEventStatus +} + +input VersionAttributes { + tags: [VersionTagAttributes] +} + +input VersionSpec { + chart: String + repository: String + terraform: String + version: String +} + +input VersionTagAttributes { + tag: String! + versionId: ID +} + +input WebhookAttributes { + url: String! +} + +input WorkspaceAttributes { + bucketPrefix: String! + cluster: String! + project: String + region: String! + subdomain: String! +} diff --git a/pkg/ui/web/src/Plural.tsx b/pkg/ui/web/src/Plural.tsx new file mode 100644 index 00000000..40084811 --- /dev/null +++ b/pkg/ui/web/src/Plural.tsx @@ -0,0 +1,46 @@ +import { theme } from '@pluralsh/design-system' +import { HonorableTheme, ThemeProvider as HonorableThemeProvider } from 'honorable' +import React, { useCallback, useMemo } from 'react' +import { RouterProvider } from 'react-router-dom' +import { ThemeProvider } from 'styled-components' + +import Loader from './components/loader/Loader' +import { WailsContext, WailsContextProps } from './context/wails' +import { useWailsQuery } from './hooks/useWails' +import { router } from './routes/router' +import { Binding } from './services/wails' +import { FontStyles } from './styled/fonts' +import { GlobalStyles } from './styled/global' +import { ScrollbarStyles } from './styled/scrollbar' +import { theme as styledTheme } from './styled/theme' +import { PluralProject } from './types/client' + +function Plural(): React.ReactElement { + const { data: context } = useWailsQuery(Binding.Context) + const { data: project = {} as PluralProject } = useWailsQuery(Binding.Project) + const { data: token } = useWailsQuery(Binding.Token) + + const isReady = useMemo(() => !!context && !!project && !!token, [context, project, token]) + const fixProjectProvider = useCallback((project: PluralProject) => ({ ...project, provider: project.provider?.toUpperCase() }), []) + const wailsContext = useMemo(() => ({ + context, + project: fixProjectProvider(project), + token, + } as WailsContextProps), [context, fixProjectProvider, project, token]) + + return ( + + + + + + + {isReady && } + {!isReady && } + + + + ) +} + +export default Plural diff --git a/pkg/ui/web/src/components/loader/Loader.tsx b/pkg/ui/web/src/components/loader/Loader.tsx new file mode 100644 index 00000000..73c909c4 --- /dev/null +++ b/pkg/ui/web/src/components/loader/Loader.tsx @@ -0,0 +1,20 @@ +import { LoopingLogo } from '@pluralsh/design-system' +import React from 'react' +import styled from 'styled-components' + +const Loader = styled(LoaderUnstyled)(() => ({ + height: '100%', + display: 'flex', + justifyContent: 'center', + alignItems: 'center', +})) + +function LoaderUnstyled({ ...props }): React.ReactElement { + return ( +
+ +
+ ) +} + +export default Loader diff --git a/pkg/ui/web/src/context/wails.ts b/pkg/ui/web/src/context/wails.ts new file mode 100644 index 00000000..aa965284 --- /dev/null +++ b/pkg/ui/web/src/context/wails.ts @@ -0,0 +1,17 @@ +import { createContext } from 'react' + +import { PluralContext, PluralProject } from '../types/client' + +interface WailsContextProps { + token: string; + project: PluralProject + context: PluralContext +} + +const WailsContext = createContext({ + project: {}, + context: {}, +} as WailsContextProps) + +export type { WailsContextProps, PluralContext } +export { WailsContext } diff --git a/pkg/ui/web/src/graphql/account.graphql b/pkg/ui/web/src/graphql/account.graphql new file mode 100644 index 00000000..837185b0 --- /dev/null +++ b/pkg/ui/web/src/graphql/account.graphql @@ -0,0 +1,64 @@ +fragment Audit on Audit { + id + action + ip + country + city + latitude + longitude + actor { ...User } + repository { ...Repo } + group { ...Group } + integrationWebhook { ...IntegrationWebhook } + role { ...Role } + version { ...Version } + image { id tag dockerRepository { name } } + insertedAt +} + +fragment PolicyBinding on PolicyBinding { + id + group { id name } + user { id name email } +} + +fragment DnsDomain on DnsDomain { + id + name + creator { ...User } + accessPolicy { + id + bindings { ...PolicyBinding } + } + insertedAt +} + +fragment Invite on Invite { + id + secureId + email + insertedAt +} + +fragment OidcLogin on OidcLogin { + ip + country + city + latitude + longitude + user { ...User } + owner { ...User } + repository { ...Repo } + insertedAt +} + +mutation UpdateAccount($attributes: AccountAttributes!) { + updateAccount(attributes: $attributes) { + ...Account + domainMappings { + id + domain + enableSso + } + } +} diff --git a/pkg/ui/web/src/graphql/artifacts.graphql b/pkg/ui/web/src/graphql/artifacts.graphql new file mode 100644 index 00000000..da767f75 --- /dev/null +++ b/pkg/ui/web/src/graphql/artifacts.graphql @@ -0,0 +1,32 @@ +fragment Artifact on Artifact { + id + name + blob + type + platform + arch + filesize + sha + readme + insertedAt + updatedAt +} + +query ListArtifacts($id: ID!) { + repository(id: $id) { + artifacts { ...Artifact } + } +} + +mutation CreateArtifact($repoName: String!, $name: String!, $readme: String!, $artifactType: String!, $platform: String!, $blob: UploadOrUrl!, $arch: String) { + createArtifact(repositoryName: $repoName, attributes: { + name: $name, + blob: $blob, + readme: $readme, + type: $artifactType, + platform: $platform, + arch: $arch + }) { + ...Artifact + } +} diff --git a/pkg/ui/web/src/graphql/charts.graphql b/pkg/ui/web/src/graphql/charts.graphql new file mode 100644 index 00000000..4b1fa61c --- /dev/null +++ b/pkg/ui/web/src/graphql/charts.graphql @@ -0,0 +1,91 @@ +fragment Chart on Chart { + id + name + description + latestVersion + dependencies { ...Dependencies } + insertedAt +} + +fragment Crd on Crd { + id + name + blob +} + +fragment ChartInstallation on ChartInstallation { + id + chart { + ...Chart + dependencies { ...Dependencies } + } + version { ...Version } +} + +fragment ScanViolation on ScanViolation { + ruleName + description + ruleId + severity + category + resourceName + resourceType + file + line +} + +fragment ScanError on ScanError { + message +} + +fragment PackageScan on PackageScan { + id + grade + violations { ...ScanViolation } + errors { ...ScanError } +} + +query GetCharts($id: ID!) { + charts(repositoryId: $id, first: 100) { + edges { + node { + ...Chart + } + } + } +} + +query GetVersions($id: ID!) { + versions(chartId: $id, first: 100) { + edges { + node { + ...Version + } + } + } +} + +query GetChartInstallations($id: ID!) { + chartInstallations(repositoryId: $id, first: 100) { + edges { node { ...ChartInstallation } } + } +} + +query GetPackageInstallations($id: ID!) { + chartInstallations(repositoryId: $id, first: 100) { + edges { node { ...ChartInstallation } } + } + terraformInstallations(repositoryId: $id, first: 100) { + edges { node { ...TerraformInstallation } } + } +} + +mutation CreateCrd($chartName: ChartName!, $name: String!, $blob: UploadOrUrl!) { + createCrd(chartName: $chartName, attributes: {name:$name, blob:$blob}) { + id + } +} + +mutation UninstallChart($id: ID!) { + deleteChartInstallation(id: $id) { id } +} diff --git a/pkg/ui/web/src/graphql/dns.graphql b/pkg/ui/web/src/graphql/dns.graphql new file mode 100644 index 00000000..08953c5e --- /dev/null +++ b/pkg/ui/web/src/graphql/dns.graphql @@ -0,0 +1,28 @@ +fragment DnsRecord on DnsRecord { + id + name + type + records + cluster + provider + creator { ...User } + insertedAt +} + +query GetDnsRecords($cluster: String!, $provider: Provider!) { + dnsRecords(cluster: $cluster, provider: $provider, first: 500) { + edges { node { ...DnsRecord } } + } +} + +mutation CreateDnsRecord($cluster: String!, $provider: Provider!, $attributes: DnsRecordAttributes!) { + createDnsRecord(cluster: $cluster, provider: $provider, attributes: $attributes) { + ...DnsRecord + } +} + +mutation DeleteDnsRecord($name: String!, $type: DnsRecordType!) { + deleteDnsRecord(name: $name, type: $type) { + ...DnsRecord + } +} diff --git a/pkg/ui/web/src/graphql/docker.graphql b/pkg/ui/web/src/graphql/docker.graphql new file mode 100644 index 00000000..5ccb1369 --- /dev/null +++ b/pkg/ui/web/src/graphql/docker.graphql @@ -0,0 +1,44 @@ +fragment DockerRepo on DockerRepository { + id + name + public + repository { id name } + insertedAt + updatedAt +} + +fragment DockerRepository on DockerRepository { + id + name + public + repository { id name editable } + insertedAt + updatedAt +} + +fragment DockerImage on DockerImage { + id + tag + digest + scannedAt + grade + insertedAt + updatedAt +} + + +fragment Vulnerability on Vulnerability { + id + title + description + vulnerabilityId + package + installedVersion + fixedVersion + source + url + severity + score + cvss { attackVector attackComplexity privilegesRequired userInteraction confidentiality integrity availability } + layer { digest diffId } +} diff --git a/pkg/ui/web/src/graphql/domains.graphql b/pkg/ui/web/src/graphql/domains.graphql new file mode 100644 index 00000000..9f002762 --- /dev/null +++ b/pkg/ui/web/src/graphql/domains.graphql @@ -0,0 +1,5 @@ +mutation CreateDomain($name: String!) { + provisionDomain(name: $name) { + ...DnsDomain + } +} diff --git a/pkg/ui/web/src/graphql/generated/graphql.ts b/pkg/ui/web/src/graphql/generated/graphql.ts new file mode 100644 index 00000000..625a3aaf --- /dev/null +++ b/pkg/ui/web/src/graphql/generated/graphql.ts @@ -0,0 +1,9949 @@ +/* eslint-disable */ +import { gql } from '@apollo/client'; +import * as Apollo from '@apollo/client'; +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 }; +const defaultOptions = {} as const; +/** All built-in and custom scalars, mapped to their actual values */ +export type Scalars = { + ID: string; + String: string; + Boolean: boolean; + Int: number; + Float: number; + /** + * The `DateTime` scalar type represents a date and time in the UTC + * timezone. The DateTime appears in a JSON response as an ISO8601 formatted + * string, including UTC timezone ("Z"). The parsed date and time string will + * be converted to UTC if there is an offset. + */ + DateTime: Date; + Map: Map; + UploadOrUrl: string; + Yaml: unknown; +}; + +export type RootQueryType = { + __typename?: 'RootQueryType'; + account?: Maybe; + auditMetrics?: Maybe>>; + audits?: Maybe; + categories?: Maybe>>; + category?: Maybe; + chart?: Maybe; + chartInstallations?: Maybe; + charts?: Maybe; + closure?: Maybe>>; + /** Get a cluster by its ID. */ + cluster?: Maybe; + /** Get a list of clusters owned by the current account. */ + clusters?: Maybe; + configuration?: Maybe; + deferredUpdates?: Maybe; + demoProject?: Maybe; + dnsDomain?: Maybe; + dnsDomains?: Maybe; + dnsRecords?: Maybe; + dockerImage?: Maybe; + dockerImages?: Maybe; + dockerRepositories?: Maybe; + eabCredential?: Maybe; + eabCredentials?: Maybe>>; + groupMembers?: Maybe; + groups?: Maybe; + helpQuestion?: Maybe; + incident?: Maybe; + incidents?: Maybe; + installation?: Maybe; + installations?: Maybe; + integrations?: Maybe; + integrationWebhook?: Maybe; + integrationWebhooks?: Maybe; + invite?: Maybe; + invites?: Maybe; + invoices?: Maybe; + keyBackup?: Maybe; + keyBackups?: Maybe; + loginMethod?: Maybe; + loginMetrics?: Maybe>>; + me?: Maybe; + notifications?: Maybe; + oauthConsent?: Maybe; + oauthIntegrations?: Maybe>>; + oauthLogin?: Maybe; + oauthUrls?: Maybe>>; + oidcConsent?: Maybe; + oidcLogin?: Maybe; + oidcLogins?: Maybe; + platformMetrics?: Maybe; + platformPlans?: Maybe>>; + platformSubscription?: Maybe; + publicKeys?: Maybe; + publisher?: Maybe; + publishers?: Maybe; + recipe?: Maybe; + recipes?: Maybe; + repositories?: Maybe; + /** Get an application by its ID or name. */ + repository?: Maybe; + repositorySubscription?: Maybe; + resetToken?: Maybe; + role?: Maybe; + roles?: Maybe; + rollouts?: Maybe; + scaffold?: Maybe>>; + scmAuthorization?: Maybe>>; + scmToken?: Maybe; + searchRepositories?: Maybe; + searchUsers?: Maybe; + shell?: Maybe; + shellConfiguration?: Maybe; + stack?: Maybe; + stacks?: Maybe; + subscriptions?: Maybe; + tags?: Maybe; + terraform?: Maybe; + terraformInstallations?: Maybe; + terraformModule?: Maybe; + terraformProvider?: Maybe; + terraformProviders?: Maybe>>; + test?: Maybe; + testLogs?: Maybe; + tests?: Maybe; + token?: Maybe; + tokens?: Maybe; + upgradeQueue?: Maybe; + upgradeQueues?: Maybe>>; + users?: Maybe; + versions?: Maybe; + webhooks?: Maybe; +}; + + +export type RootQueryTypeAuditsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + + +export type RootQueryTypeCategoryArgs = { + name: Category; +}; + + +export type RootQueryTypeChartArgs = { + id: Scalars['ID']; +}; + + +export type RootQueryTypeChartInstallationsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + repositoryId: Scalars['ID']; +}; + + +export type RootQueryTypeChartsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + repositoryId: Scalars['ID']; +}; + + +export type RootQueryTypeClosureArgs = { + id: Scalars['ID']; + type: DependencyType; +}; + + +export type RootQueryTypeClusterArgs = { + id: Scalars['ID']; +}; + + +export type RootQueryTypeClustersArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + + +export type RootQueryTypeDeferredUpdatesArgs = { + after?: InputMaybe; + before?: InputMaybe; + chartInstallationId?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + terraformInstallationId?: InputMaybe; +}; + + +export type RootQueryTypeDemoProjectArgs = { + id?: InputMaybe; +}; + + +export type RootQueryTypeDnsDomainArgs = { + id: Scalars['ID']; +}; + + +export type RootQueryTypeDnsDomainsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + q?: InputMaybe; +}; + + +export type RootQueryTypeDnsRecordsArgs = { + after?: InputMaybe; + before?: InputMaybe; + cluster?: InputMaybe; + domainId?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + provider?: InputMaybe; +}; + + +export type RootQueryTypeDockerImageArgs = { + id: Scalars['ID']; +}; + + +export type RootQueryTypeDockerImagesArgs = { + after?: InputMaybe; + before?: InputMaybe; + dockerRepositoryId: Scalars['ID']; + first?: InputMaybe; + last?: InputMaybe; + q?: InputMaybe; +}; + + +export type RootQueryTypeDockerRepositoriesArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + repositoryId: Scalars['ID']; +}; + + +export type RootQueryTypeEabCredentialArgs = { + cluster: Scalars['String']; + provider: Provider; +}; + + +export type RootQueryTypeGroupMembersArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + groupId: Scalars['ID']; + last?: InputMaybe; +}; + + +export type RootQueryTypeGroupsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + q?: InputMaybe; +}; + + +export type RootQueryTypeHelpQuestionArgs = { + prompt: Scalars['String']; +}; + + +export type RootQueryTypeIncidentArgs = { + id: Scalars['ID']; +}; + + +export type RootQueryTypeIncidentsArgs = { + after?: InputMaybe; + before?: InputMaybe; + filters?: InputMaybe>>; + first?: InputMaybe; + last?: InputMaybe; + order?: InputMaybe; + q?: InputMaybe; + repositoryId?: InputMaybe; + sort?: InputMaybe; + supports?: InputMaybe; +}; + + +export type RootQueryTypeInstallationArgs = { + id?: InputMaybe; + name?: InputMaybe; +}; + + +export type RootQueryTypeInstallationsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + + +export type RootQueryTypeIntegrationsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + repositoryId?: InputMaybe; + repositoryName?: InputMaybe; + tag?: InputMaybe; + type?: InputMaybe; +}; + + +export type RootQueryTypeIntegrationWebhookArgs = { + id: Scalars['ID']; +}; + + +export type RootQueryTypeIntegrationWebhooksArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + + +export type RootQueryTypeInviteArgs = { + id: Scalars['String']; +}; + + +export type RootQueryTypeInvitesArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + + +export type RootQueryTypeInvoicesArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + + +export type RootQueryTypeKeyBackupArgs = { + name: Scalars['String']; +}; + + +export type RootQueryTypeKeyBackupsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + + +export type RootQueryTypeLoginMethodArgs = { + email: Scalars['String']; + host?: InputMaybe; +}; + + +export type RootQueryTypeNotificationsArgs = { + after?: InputMaybe; + before?: InputMaybe; + cli?: InputMaybe; + first?: InputMaybe; + incidentId?: InputMaybe; + last?: InputMaybe; +}; + + +export type RootQueryTypeOauthConsentArgs = { + challenge: Scalars['String']; +}; + + +export type RootQueryTypeOauthLoginArgs = { + challenge: Scalars['String']; +}; + + +export type RootQueryTypeOauthUrlsArgs = { + host?: InputMaybe; +}; + + +export type RootQueryTypeOidcConsentArgs = { + challenge: Scalars['String']; +}; + + +export type RootQueryTypeOidcLoginArgs = { + challenge: Scalars['String']; +}; + + +export type RootQueryTypeOidcLoginsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + + +export type RootQueryTypePublicKeysArgs = { + after?: InputMaybe; + before?: InputMaybe; + emails?: InputMaybe>>; + first?: InputMaybe; + last?: InputMaybe; +}; + + +export type RootQueryTypePublisherArgs = { + id?: InputMaybe; +}; + + +export type RootQueryTypePublishersArgs = { + accountId?: InputMaybe; + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + publishable?: InputMaybe; +}; + + +export type RootQueryTypeRecipeArgs = { + id?: InputMaybe; + name?: InputMaybe; + repo?: InputMaybe; +}; + + +export type RootQueryTypeRecipesArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + provider?: InputMaybe; + repositoryId?: InputMaybe; + repositoryName?: InputMaybe; +}; + + +export type RootQueryTypeRepositoriesArgs = { + after?: InputMaybe; + before?: InputMaybe; + categories?: InputMaybe>>; + category?: InputMaybe; + first?: InputMaybe; + installed?: InputMaybe; + last?: InputMaybe; + provider?: InputMaybe; + publisherId?: InputMaybe; + publishers?: InputMaybe>>; + q?: InputMaybe; + supports?: InputMaybe; + tag?: InputMaybe; + tags?: InputMaybe>>; +}; + + +export type RootQueryTypeRepositoryArgs = { + id?: InputMaybe; + name?: InputMaybe; +}; + + +export type RootQueryTypeRepositorySubscriptionArgs = { + id: Scalars['ID']; +}; + + +export type RootQueryTypeResetTokenArgs = { + id: Scalars['ID']; +}; + + +export type RootQueryTypeRoleArgs = { + id: Scalars['ID']; +}; + + +export type RootQueryTypeRolesArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + q?: InputMaybe; + userId?: InputMaybe; +}; + + +export type RootQueryTypeRolloutsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + repositoryId: Scalars['ID']; +}; + + +export type RootQueryTypeScaffoldArgs = { + application: Scalars['String']; + category: Category; + ingress?: InputMaybe; + postgres?: InputMaybe; + publisher: Scalars['String']; +}; + + +export type RootQueryTypeScmTokenArgs = { + code: Scalars['String']; + provider: ScmProvider; +}; + + +export type RootQueryTypeSearchRepositoriesArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + query: Scalars['String']; +}; + + +export type RootQueryTypeSearchUsersArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + incidentId: Scalars['ID']; + last?: InputMaybe; + q: Scalars['String']; +}; + + +export type RootQueryTypeStackArgs = { + name: Scalars['String']; + provider: Provider; +}; + + +export type RootQueryTypeStacksArgs = { + after?: InputMaybe; + before?: InputMaybe; + featured?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + + +export type RootQueryTypeSubscriptionsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + + +export type RootQueryTypeTagsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + id?: InputMaybe; + last?: InputMaybe; + q?: InputMaybe; + type: TagGroup; +}; + + +export type RootQueryTypeTerraformArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + repositoryId: Scalars['ID']; +}; + + +export type RootQueryTypeTerraformInstallationsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + repositoryId: Scalars['ID']; +}; + + +export type RootQueryTypeTerraformModuleArgs = { + id: Scalars['ID']; +}; + + +export type RootQueryTypeTerraformProviderArgs = { + name: Provider; + vsn?: InputMaybe; +}; + + +export type RootQueryTypeTestArgs = { + id: Scalars['ID']; +}; + + +export type RootQueryTypeTestLogsArgs = { + id: Scalars['ID']; + step: Scalars['ID']; +}; + + +export type RootQueryTypeTestsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + repositoryId?: InputMaybe; + versionId?: InputMaybe; +}; + + +export type RootQueryTypeTokenArgs = { + id: Scalars['ID']; +}; + + +export type RootQueryTypeTokensArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + + +export type RootQueryTypeUpgradeQueueArgs = { + id?: InputMaybe; +}; + + +export type RootQueryTypeUsersArgs = { + after?: InputMaybe; + all?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + q?: InputMaybe; + serviceAccount?: InputMaybe; +}; + + +export type RootQueryTypeVersionsArgs = { + after?: InputMaybe; + before?: InputMaybe; + chartId?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + terraformId?: InputMaybe; +}; + + +export type RootQueryTypeWebhooksArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + +export type Account = { + __typename?: 'Account'; + availableFeatures?: Maybe; + backgroundColor?: Maybe; + billingAddress?: Maybe
; + billingCustomerId?: Maybe; + clusterCount?: Maybe; + delinquentAt?: Maybe; + domainMappings?: Maybe>>; + grandfatheredUntil?: Maybe; + icon?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + name?: Maybe; + rootUser?: Maybe; + subscription?: Maybe; + updatedAt?: Maybe; + userCount?: Maybe; + workosConnectionId?: Maybe; +}; + +export type PlanFeatures = { + __typename?: 'PlanFeatures'; + audit?: Maybe; + userManagement?: Maybe; + vpn?: Maybe; +}; + +export type Address = { + __typename?: 'Address'; + city?: Maybe; + country?: Maybe; + line1?: Maybe; + line2?: Maybe; + name?: Maybe; + state?: Maybe; + zip?: Maybe; +}; + +export type DomainMapping = { + __typename?: 'DomainMapping'; + account?: Maybe; + domain: Scalars['String']; + enableSso?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + updatedAt?: Maybe; +}; + +export type User = { + __typename?: 'User'; + account: Account; + address?: Maybe
; + avatar?: Maybe; + backgroundColor?: Maybe; + boundRoles?: Maybe>>; + cards?: Maybe; + defaultQueueId?: Maybe; + /** If a user has reached the demo project usage limit. */ + demoed?: Maybe; + demoing?: Maybe; + email: Scalars['String']; + emailConfirmBy?: Maybe; + emailConfirmed?: Maybe; + hasInstallations?: Maybe; + id: Scalars['ID']; + impersonationPolicy?: Maybe; + insertedAt?: Maybe; + jwt?: Maybe; + loginMethod?: Maybe; + name: Scalars['String']; + onboarding?: Maybe; + onboardingChecklist?: Maybe; + phone?: Maybe; + provider?: Maybe; + publisher?: Maybe; + roles?: Maybe; + serviceAccount?: Maybe; + updatedAt?: Maybe; +}; + + +export type UserCardsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + +export type Role = { + __typename?: 'Role'; + account?: Maybe; + description?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + name: Scalars['String']; + permissions?: Maybe>>; + repositories?: Maybe>>; + roleBindings?: Maybe>>; + updatedAt?: Maybe; +}; + +export enum Permission { + Billing = 'BILLING', + Install = 'INSTALL', + Integrations = 'INTEGRATIONS', + Publish = 'PUBLISH', + Support = 'SUPPORT', + Users = 'USERS' +} + +export type RoleBinding = { + __typename?: 'RoleBinding'; + group?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + updatedAt?: Maybe; + user?: Maybe; +}; + +export type Group = { + __typename?: 'Group'; + description?: Maybe; + global?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + name: Scalars['String']; + updatedAt?: Maybe; +}; + +export type CardConnection = { + __typename?: 'CardConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type CardEdge = { + __typename?: 'CardEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type Card = { + __typename?: 'Card'; + brand: Scalars['String']; + expMonth: Scalars['Int']; + expYear: Scalars['Int']; + id: Scalars['ID']; + last4: Scalars['String']; + name?: Maybe; +}; + +export type PageInfo = { + __typename?: 'PageInfo'; + /** When paginating forwards, the cursor to continue. */ + endCursor?: Maybe; + /** When paginating forwards, are there more items? */ + hasNextPage: Scalars['Boolean']; + /** When paginating backwards, are there more items? */ + hasPreviousPage: Scalars['Boolean']; + /** When paginating backwards, the cursor to continue. */ + startCursor?: Maybe; +}; + +export type ImpersonationPolicy = { + __typename?: 'ImpersonationPolicy'; + bindings?: Maybe>>; + id: Scalars['ID']; + insertedAt?: Maybe; + updatedAt?: Maybe; +}; + +export type ImpersonationPolicyBinding = { + __typename?: 'ImpersonationPolicyBinding'; + group?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + updatedAt?: Maybe; + user?: Maybe; +}; + +export enum LoginMethod { + Github = 'GITHUB', + Google = 'GOOGLE', + Password = 'PASSWORD', + Passwordless = 'PASSWORDLESS', + Sso = 'SSO' +} + +export enum OnboardingState { + Active = 'ACTIVE', + Installed = 'INSTALLED', + New = 'NEW', + Onboarded = 'ONBOARDED' +} + +export type OnboardingChecklist = { + __typename?: 'OnboardingChecklist'; + dismissed?: Maybe; + status?: Maybe; +}; + +export enum OnboardingChecklistState { + Configured = 'CONFIGURED', + ConsoleInstalled = 'CONSOLE_INSTALLED', + Finished = 'FINISHED', + New = 'NEW' +} + +export enum Provider { + Aws = 'AWS', + Azure = 'AZURE', + Custom = 'CUSTOM', + Equinix = 'EQUINIX', + Gcp = 'GCP', + Generic = 'GENERIC', + Kind = 'KIND', + Kubernetes = 'KUBERNETES' +} + +export type Publisher = { + __typename?: 'Publisher'; + address?: Maybe
; + avatar?: Maybe; + backgroundColor?: Maybe; + billingAccountId?: Maybe; + community?: Maybe; + description?: Maybe; + id?: Maybe; + insertedAt?: Maybe; + name: Scalars['String']; + owner?: Maybe; + phone?: Maybe; + repositories?: Maybe>>; + updatedAt?: Maybe; +}; + +export type Community = { + __typename?: 'Community'; + discord?: Maybe; + gitUrl?: Maybe; + homepage?: Maybe; + slack?: Maybe; + twitter?: Maybe; + videos?: Maybe>>; +}; + +/** Container for all resources to create an application. */ +export type Repository = { + __typename?: 'Repository'; + /** The artifacts of the application. */ + artifacts?: Maybe>>; + /** The category of the application. */ + category?: Maybe; + /** The community links of the application. */ + community?: Maybe; + darkIcon?: Maybe; + /** The default tag to deploy. */ + defaultTag?: Maybe; + /** The description of the application. */ + description?: Maybe; + /** The documentation of the application. */ + docs?: Maybe>>; + /** The documentation of the application. */ + documentation?: Maybe; + /** If the application can be edited by the current user. */ + editable?: Maybe; + /** The git URL of the application. */ + gitUrl?: Maybe; + /** The homepage of the application. */ + homepage?: Maybe; + icon?: Maybe; + /** The application's ID. */ + id: Scalars['ID']; + insertedAt?: Maybe; + /** The installation of the application by a user. */ + installation?: Maybe; + /** The license of the application. */ + license?: Maybe; + /** The main branch of the application. */ + mainBranch?: Maybe; + /** The name of the application. */ + name: Scalars['String']; + /** Notes about the application rendered after deploying and displayed to the user. */ + notes?: Maybe; + /** The OAuth settings for the application. */ + oauthSettings?: Maybe; + /** The available plans for the application. */ + plans?: Maybe>>; + /** Whether the application is private. */ + private?: Maybe; + /** The application's public key. */ + publicKey?: Maybe; + /** The application publisher. */ + publisher?: Maybe; + /** The README of the application. */ + readme?: Maybe; + /** The recipes used to install the application. */ + recipes?: Maybe>>; + /** A map of secrets of the application. */ + secrets?: Maybe; + /** The tags of the application. */ + tags?: Maybe>>; + /** Whether the application is trending. */ + trending?: Maybe; + updatedAt?: Maybe; + /** Whether the application is verified. */ + verified?: Maybe; +}; + +export type Artifact = { + __typename?: 'Artifact'; + arch?: Maybe; + blob?: Maybe; + filesize?: Maybe; + id?: Maybe; + insertedAt?: Maybe; + name?: Maybe; + platform?: Maybe; + readme?: Maybe; + sha?: Maybe; + type?: Maybe; + updatedAt?: Maybe; +}; + +export enum ArtifactPlatform { + Android = 'ANDROID', + Freebsd = 'FREEBSD', + Linux = 'LINUX', + Mac = 'MAC', + Openbsd = 'OPENBSD', + Solaris = 'SOLARIS', + Windows = 'WINDOWS' +} + +export enum ArtifactType { + Cli = 'CLI', + Desktop = 'DESKTOP', + Mobile = 'MOBILE' +} + +/** Application categories. */ +export enum Category { + Data = 'DATA', + Database = 'DATABASE', + Devops = 'DEVOPS', + Messaging = 'MESSAGING', + Network = 'NETWORK', + Productivity = 'PRODUCTIVITY', + Security = 'SECURITY', + Storage = 'STORAGE' +} + +export type FileContent = { + __typename?: 'FileContent'; + content: Scalars['String']; + path: Scalars['String']; +}; + +/** An installation of an application. */ +export type Installation = { + __typename?: 'Installation'; + acmeKeyId?: Maybe; + acmeSecret?: Maybe; + /** Whether the application should auto upgrade. */ + autoUpgrade?: Maybe; + /** A YAML object of context. */ + context?: Maybe; + /** The installation's ID. */ + id: Scalars['ID']; + insertedAt?: Maybe; + license?: Maybe; + /** The license key for the application. */ + licenseKey?: Maybe; + /** The OIDC provider for the application. */ + oidcProvider?: Maybe; + /** The last ping time of an installed application. */ + pingedAt?: Maybe; + /** The application that was installed. */ + repository?: Maybe; + /** The subscription for the application. */ + subscription?: Maybe; + /** The tag to track for auto upgrades. */ + trackTag: Scalars['String']; + updatedAt?: Maybe; + /** The user that installed the application. */ + user?: Maybe; +}; + +export type OidcProvider = { + __typename?: 'OidcProvider'; + authMethod: OidcAuthMethod; + bindings?: Maybe>>; + clientId: Scalars['String']; + clientSecret: Scalars['String']; + configuration?: Maybe; + consent?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + redirectUris?: Maybe>>; + updatedAt?: Maybe; +}; + +/** Supported OIDC authentication methods. */ +export enum OidcAuthMethod { + Basic = 'BASIC', + Post = 'POST' +} + +export type OidcProviderBinding = { + __typename?: 'OidcProviderBinding'; + group?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + updatedAt?: Maybe; + user?: Maybe; +}; + +export type OuathConfiguration = { + __typename?: 'OuathConfiguration'; + authorizationEndpoint?: Maybe; + issuer?: Maybe; + jwksUri?: Maybe; + tokenEndpoint?: Maybe; + userinfoEndpoint?: Maybe; +}; + +export type ConsentRequest = { + __typename?: 'ConsentRequest'; + requestedScope?: Maybe>>; + skip?: Maybe; +}; + +export type RepositorySubscription = { + __typename?: 'RepositorySubscription'; + customerId?: Maybe; + externalId?: Maybe; + id: Scalars['ID']; + installation?: Maybe; + invoices?: Maybe; + lineItems?: Maybe; + plan?: Maybe; +}; + + +export type RepositorySubscriptionInvoicesArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + +export type InvoiceConnection = { + __typename?: 'InvoiceConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type InvoiceEdge = { + __typename?: 'InvoiceEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type Invoice = { + __typename?: 'Invoice'; + amountDue: Scalars['Int']; + amountPaid: Scalars['Int']; + createdAt?: Maybe; + currency: Scalars['String']; + hostedInvoiceUrl?: Maybe; + lines?: Maybe>>; + number: Scalars['String']; + status?: Maybe; +}; + +export type InvoiceItem = { + __typename?: 'InvoiceItem'; + amount: Scalars['Int']; + currency: Scalars['String']; + description?: Maybe; +}; + +export type SubscriptionLineItems = { + __typename?: 'SubscriptionLineItems'; + items?: Maybe>>; +}; + +export type Limit = { + __typename?: 'Limit'; + dimension: Scalars['String']; + quantity: Scalars['Int']; +}; + +export type Plan = { + __typename?: 'Plan'; + cost: Scalars['Int']; + default?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + lineItems?: Maybe; + metadata?: Maybe; + name: Scalars['String']; + period?: Maybe; + serviceLevels?: Maybe>>; + updatedAt?: Maybe; + visible: Scalars['Boolean']; +}; + +export type PlanLineItems = { + __typename?: 'PlanLineItems'; + included?: Maybe>>; + items?: Maybe>>; +}; + +export type LineItem = { + __typename?: 'LineItem'; + cost: Scalars['Int']; + dimension: Scalars['String']; + name: Scalars['String']; + period?: Maybe; + type?: Maybe; +}; + +export enum PlanType { + Licensed = 'LICENSED', + Metered = 'METERED' +} + +export type PlanMetadata = { + __typename?: 'PlanMetadata'; + features?: Maybe>>; + freeform?: Maybe; +}; + +export type PlanFeature = { + __typename?: 'PlanFeature'; + description: Scalars['String']; + name: Scalars['String']; +}; + +export type ServiceLevel = { + __typename?: 'ServiceLevel'; + maxSeverity?: Maybe; + minSeverity?: Maybe; + responseTime?: Maybe; +}; + +export type License = { + __typename?: 'License'; + name?: Maybe; + url?: Maybe; +}; + +export type OauthSettings = { + __typename?: 'OauthSettings'; + authMethod: OidcAuthMethod; + uriFormat: Scalars['String']; +}; + +export type Recipe = { + __typename?: 'Recipe'; + description?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + name: Scalars['String']; + oidcEnabled?: Maybe; + oidcSettings?: Maybe; + primary?: Maybe; + private?: Maybe; + provider?: Maybe; + recipeDependencies?: Maybe>>; + recipeSections?: Maybe>>; + repository?: Maybe; + restricted?: Maybe; + tests?: Maybe>>; + updatedAt?: Maybe; +}; + +export type OidcSettings = { + __typename?: 'OidcSettings'; + authMethod: OidcAuthMethod; + domainKey?: Maybe; + subdomain?: Maybe; + uriFormat?: Maybe; + uriFormats?: Maybe>>; +}; + +export type RecipeSection = { + __typename?: 'RecipeSection'; + configuration?: Maybe>>; + id?: Maybe; + index?: Maybe; + insertedAt?: Maybe; + recipe?: Maybe; + recipeItems?: Maybe>>; + repository?: Maybe; + updatedAt?: Maybe; +}; + +export type RecipeConfiguration = { + __typename?: 'RecipeConfiguration'; + args?: Maybe>>; + condition?: Maybe; + default?: Maybe; + documentation?: Maybe; + functionName?: Maybe; + longform?: Maybe; + name?: Maybe; + optional?: Maybe; + placeholder?: Maybe; + type?: Maybe; + validation?: Maybe; +}; + +export type RecipeCondition = { + __typename?: 'RecipeCondition'; + field: Scalars['String']; + operation: Operation; + value?: Maybe; +}; + +export enum Operation { + Eq = 'EQ', + Gt = 'GT', + Gte = 'GTE', + Lt = 'LT', + Lte = 'LTE', + Not = 'NOT', + Prefix = 'PREFIX', + Suffix = 'SUFFIX' +} + +export enum Datatype { + Bool = 'BOOL', + Bucket = 'BUCKET', + Domain = 'DOMAIN', + File = 'FILE', + Function = 'FUNCTION', + Int = 'INT', + Password = 'PASSWORD', + String = 'STRING' +} + +export type RecipeValidation = { + __typename?: 'RecipeValidation'; + message: Scalars['String']; + regex?: Maybe; + type: ValidationType; +}; + +export enum ValidationType { + Regex = 'REGEX' +} + +export type RecipeItem = { + __typename?: 'RecipeItem'; + chart?: Maybe; + configuration?: Maybe>>; + id?: Maybe; + insertedAt?: Maybe; + recipeSection?: Maybe; + terraform?: Maybe; + updatedAt?: Maybe; +}; + +export type Chart = { + __typename?: 'Chart'; + dependencies?: Maybe; + description?: Maybe; + id?: Maybe; + insertedAt?: Maybe; + installation?: Maybe; + latestVersion?: Maybe; + name: Scalars['String']; + repository?: Maybe; + tags?: Maybe>>; + updatedAt?: Maybe; +}; + +export type Dependencies = { + __typename?: 'Dependencies'; + application?: Maybe; + breaking?: Maybe; + cliVsn?: Maybe; + dependencies?: Maybe>>; + instructions?: Maybe; + outputs?: Maybe; + providers?: Maybe>>; + providerVsn?: Maybe; + providerWirings?: Maybe; + secrets?: Maybe>>; + wait?: Maybe; + wirings?: Maybe; +}; + +export type Dependency = { + __typename?: 'Dependency'; + name?: Maybe; + optional?: Maybe; + repo?: Maybe; + type?: Maybe; + version?: Maybe; +}; + +export enum DependencyType { + Helm = 'HELM', + Terraform = 'TERRAFORM' +} + +export type ChangeInstructions = { + __typename?: 'ChangeInstructions'; + instructions?: Maybe; + script?: Maybe; +}; + +export type Wirings = { + __typename?: 'Wirings'; + helm?: Maybe; + terraform?: Maybe; +}; + +export type ChartInstallation = { + __typename?: 'ChartInstallation'; + chart?: Maybe; + id?: Maybe; + insertedAt?: Maybe; + installation?: Maybe; + updatedAt?: Maybe; + version?: Maybe; +}; + +/** The version of a package. */ +export type Version = { + __typename?: 'Version'; + chart?: Maybe; + crds?: Maybe>>; + dependencies?: Maybe; + helm?: Maybe; + id: Scalars['ID']; + imageDependencies?: Maybe>>; + insertedAt?: Maybe; + package?: Maybe; + readme?: Maybe; + scan?: Maybe; + tags?: Maybe>>; + /** The template engine used to render the valuesTemplate. */ + templateType?: Maybe; + terraform?: Maybe; + updatedAt?: Maybe; + valuesTemplate?: Maybe; + version: Scalars['String']; +}; + +export type Crd = { + __typename?: 'Crd'; + blob?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + name: Scalars['String']; + updatedAt?: Maybe; +}; + +export type ImageDependency = { + __typename?: 'ImageDependency'; + id: Scalars['ID']; + image: DockerImage; + insertedAt?: Maybe; + updatedAt?: Maybe; + version: Version; +}; + +export type DockerImage = { + __typename?: 'DockerImage'; + digest: Scalars['String']; + dockerRepository?: Maybe; + grade?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + scanCompletedAt?: Maybe; + scannedAt?: Maybe; + tag?: Maybe; + updatedAt?: Maybe; + vulnerabilities?: Maybe>>; +}; + +export type DockerRepository = { + __typename?: 'DockerRepository'; + id: Scalars['ID']; + insertedAt?: Maybe; + metrics?: Maybe>>; + name: Scalars['String']; + public?: Maybe; + repository?: Maybe; + updatedAt?: Maybe; +}; + + +export type DockerRepositoryMetricsArgs = { + offset?: InputMaybe; + precision?: InputMaybe; + tag?: InputMaybe; +}; + +export type Metric = { + __typename?: 'Metric'; + name: Scalars['String']; + tags?: Maybe>>; + values?: Maybe>>; +}; + +export type MetricTag = { + __typename?: 'MetricTag'; + name: Scalars['String']; + value: Scalars['String']; +}; + +export type MetricValue = { + __typename?: 'MetricValue'; + time?: Maybe; + value?: Maybe; +}; + +export enum ImageGrade { + A = 'A', + B = 'B', + C = 'C', + D = 'D', + F = 'F' +} + +export type Vulnerability = { + __typename?: 'Vulnerability'; + cvss?: Maybe; + description?: Maybe; + fixedVersion?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + installedVersion?: Maybe; + layer?: Maybe; + package?: Maybe; + score?: Maybe; + severity?: Maybe; + source?: Maybe; + title?: Maybe; + updatedAt?: Maybe; + url?: Maybe; + vulnerabilityId?: Maybe; +}; + +export type Cvss = { + __typename?: 'Cvss'; + attackComplexity?: Maybe; + attackVector?: Maybe; + availability?: Maybe; + confidentiality?: Maybe; + integrity?: Maybe; + privilegesRequired?: Maybe; + userInteraction?: Maybe; +}; + +export enum VulnGrade { + Critical = 'CRITICAL', + High = 'HIGH', + Low = 'LOW', + Medium = 'MEDIUM', + None = 'NONE' +} + +export enum VulnVector { + Adjacent = 'ADJACENT', + Local = 'LOCAL', + Network = 'NETWORK', + Physical = 'PHYSICAL' +} + +export enum VulnRequirement { + None = 'NONE', + Required = 'REQUIRED' +} + +export type ImageLayer = { + __typename?: 'ImageLayer'; + diffId?: Maybe; + digest?: Maybe; +}; + +export type PackageScan = { + __typename?: 'PackageScan'; + errors?: Maybe>>; + grade?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + updatedAt?: Maybe; + violations?: Maybe>>; +}; + +export type ScanError = { + __typename?: 'ScanError'; + message?: Maybe; +}; + +export type ScanViolation = { + __typename?: 'ScanViolation'; + category?: Maybe; + description?: Maybe; + file?: Maybe; + insertedAt?: Maybe; + line?: Maybe; + resourceName?: Maybe; + resourceType?: Maybe; + ruleId?: Maybe; + ruleName?: Maybe; + severity?: Maybe; + updatedAt?: Maybe; +}; + +export type VersionTag = { + __typename?: 'VersionTag'; + chart?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + tag: Scalars['String']; + updatedAt?: Maybe; + version?: Maybe; +}; + +/** Template engines that can be used at build time. */ +export enum TemplateType { + Gotemplate = 'GOTEMPLATE', + Javascript = 'JAVASCRIPT', + Lua = 'LUA' +} + +export type Terraform = { + __typename?: 'Terraform'; + dependencies?: Maybe; + description?: Maybe; + editable?: Maybe; + id?: Maybe; + insertedAt?: Maybe; + installation?: Maybe; + latestVersion?: Maybe; + name?: Maybe; + package?: Maybe; + readme?: Maybe; + repository?: Maybe; + updatedAt?: Maybe; + valuesTemplate?: Maybe; +}; + +export type TerraformInstallation = { + __typename?: 'TerraformInstallation'; + id?: Maybe; + insertedAt?: Maybe; + installation?: Maybe; + terraform?: Maybe; + updatedAt?: Maybe; + version?: Maybe; +}; + +export type RecipeTest = { + __typename?: 'RecipeTest'; + args?: Maybe>>; + message?: Maybe; + name: Scalars['String']; + type: TestType; +}; + +export type TestArgument = { + __typename?: 'TestArgument'; + key: Scalars['String']; + name: Scalars['String']; + repo: Scalars['String']; +}; + +export enum TestType { + Git = 'GIT' +} + +export type Tag = { + __typename?: 'Tag'; + id: Scalars['ID']; + tag: Scalars['String']; +}; + +export type Roles = { + __typename?: 'Roles'; + admin?: Maybe; +}; + +export type PlatformSubscription = { + __typename?: 'PlatformSubscription'; + externalId?: Maybe; + id: Scalars['ID']; + lineItems?: Maybe>>; + plan?: Maybe; +}; + +export type PlatformSubscriptionLineItems = { + __typename?: 'PlatformSubscriptionLineItems'; + dimension: LineItemDimension; + externalId?: Maybe; + quantity: Scalars['Int']; +}; + +export enum LineItemDimension { + Cluster = 'CLUSTER', + User = 'USER' +} + +export type PlatformPlan = { + __typename?: 'PlatformPlan'; + cost: Scalars['Int']; + enterprise?: Maybe; + features?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + lineItems?: Maybe>>; + name: Scalars['String']; + period: PaymentPeriod; + updatedAt?: Maybe; + visible: Scalars['Boolean']; +}; + +export type PlatformPlanItem = { + __typename?: 'PlatformPlanItem'; + cost: Scalars['Int']; + dimension: LineItemDimension; + externalId?: Maybe; + name: Scalars['String']; + period: PaymentPeriod; +}; + +export enum PaymentPeriod { + Monthly = 'MONTHLY', + Yearly = 'YEARLY' +} + +export type GeoMetric = { + __typename?: 'GeoMetric'; + count?: Maybe; + country?: Maybe; +}; + +export type AuditConnection = { + __typename?: 'AuditConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type AuditEdge = { + __typename?: 'AuditEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type Audit = { + __typename?: 'Audit'; + action: Scalars['String']; + actor?: Maybe; + city?: Maybe; + country?: Maybe; + group?: Maybe; + id: Scalars['ID']; + image?: Maybe; + insertedAt?: Maybe; + integrationWebhook?: Maybe; + ip?: Maybe; + latitude?: Maybe; + longitude?: Maybe; + repository?: Maybe; + role?: Maybe; + updatedAt?: Maybe; + user?: Maybe; + version?: Maybe; +}; + +export type IntegrationWebhook = { + __typename?: 'IntegrationWebhook'; + account?: Maybe; + actions?: Maybe>>; + id: Scalars['ID']; + insertedAt?: Maybe; + logs?: Maybe; + name: Scalars['String']; + secret: Scalars['String']; + updatedAt?: Maybe; + url: Scalars['String']; +}; + + +export type IntegrationWebhookLogsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + +export type WebhookLogConnection = { + __typename?: 'WebhookLogConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type WebhookLogEdge = { + __typename?: 'WebhookLogEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type WebhookLog = { + __typename?: 'WebhookLog'; + id: Scalars['ID']; + insertedAt?: Maybe; + payload?: Maybe; + response?: Maybe; + state: WebhookLogState; + status?: Maybe; + updatedAt?: Maybe; + webhook?: Maybe; +}; + +export enum WebhookLogState { + Delivered = 'DELIVERED', + Failed = 'FAILED', + Sending = 'SENDING' +} + +export type CategoryInfo = { + __typename?: 'CategoryInfo'; + category?: Maybe; + count?: Maybe; + tags?: Maybe; +}; + + +export type CategoryInfoTagsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; + q?: InputMaybe; +}; + +export type GroupedTagConnection = { + __typename?: 'GroupedTagConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type GroupedTagEdge = { + __typename?: 'GroupedTagEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type GroupedTag = { + __typename?: 'GroupedTag'; + count: Scalars['Int']; + tag: Scalars['String']; +}; + +export type ChartInstallationConnection = { + __typename?: 'ChartInstallationConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type ChartInstallationEdge = { + __typename?: 'ChartInstallationEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type ChartConnection = { + __typename?: 'ChartConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type ChartEdge = { + __typename?: 'ChartEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type ClosureItem = { + __typename?: 'ClosureItem'; + dep?: Maybe; + helm?: Maybe; + terraform?: Maybe; +}; + +/** A Kubernetes cluster that can be used to deploy applications on with Plural. */ +export type Cluster = { + __typename?: 'Cluster'; + /** The account that the cluster belongs to. */ + account?: Maybe; + /** The URL of the console running on the cluster. */ + consoleUrl?: Maybe; + /** The domain name used for applications deployed on the cluster. */ + domain?: Maybe; + /** The git repository URL for the cluster. */ + gitUrl?: Maybe; + /** The ID of the cluster. */ + id: Scalars['ID']; + insertedAt?: Maybe; + /** The name of the cluster. */ + name: Scalars['String']; + /** The user that owns the cluster. */ + owner?: Maybe; + /** The last time the cluster was pinged. */ + pingedAt?: Maybe; + /** The cluster's cloud provider. */ + provider: Provider; + /** The upgrade queue for applications running on the cluster. */ + queue?: Maybe; + /** The source of the cluster. */ + source?: Maybe; + updatedAt?: Maybe; + /** pending upgrades for each installed app */ + upgradeInfo?: Maybe>>; +}; + +export type UpgradeQueue = { + __typename?: 'UpgradeQueue'; + acked?: Maybe; + domain?: Maybe; + git?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + name?: Maybe; + pingedAt?: Maybe; + provider?: Maybe; + updatedAt?: Maybe; + upgrades?: Maybe; + user: User; +}; + + +export type UpgradeQueueUpgradesArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + +export type UpgradeConnection = { + __typename?: 'UpgradeConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type UpgradeEdge = { + __typename?: 'UpgradeEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type Upgrade = { + __typename?: 'Upgrade'; + id: Scalars['ID']; + insertedAt?: Maybe; + message?: Maybe; + repository?: Maybe; + type?: Maybe; + updatedAt?: Maybe; +}; + +export enum UpgradeType { + Approval = 'APPROVAL', + Bounce = 'BOUNCE', + Dedicated = 'DEDICATED', + Deploy = 'DEPLOY' +} + +/** Possible cluster sources. */ +export enum Source { + Default = 'DEFAULT', + Demo = 'DEMO', + Shell = 'SHELL' +} + +/** The pending upgrades for a repository */ +export type UpgradeInfo = { + __typename?: 'UpgradeInfo'; + count?: Maybe; + installation?: Maybe; +}; + +export type ClusterConnection = { + __typename?: 'ClusterConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type ClusterEdge = { + __typename?: 'ClusterEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type PluralConfiguration = { + __typename?: 'PluralConfiguration'; + gitCommit?: Maybe; + registry?: Maybe; + stripeConnectId?: Maybe; + stripePublishableKey?: Maybe; +}; + +export type DeferredUpdateConnection = { + __typename?: 'DeferredUpdateConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type DeferredUpdateEdge = { + __typename?: 'DeferredUpdateEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type DeferredUpdate = { + __typename?: 'DeferredUpdate'; + attempts?: Maybe; + chartInstallation?: Maybe; + dequeueAt?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + messages?: Maybe>>; + pending?: Maybe; + terraformInstallation?: Maybe; + updatedAt?: Maybe; + version?: Maybe; +}; + +export type DeferredReason = { + __typename?: 'DeferredReason'; + message?: Maybe; + package?: Maybe; + repository?: Maybe; +}; + +export type DemoProject = { + __typename?: 'DemoProject'; + credentials?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + projectId: Scalars['String']; + ready?: Maybe; + state?: Maybe; + updatedAt?: Maybe; +}; + +export enum DemoProjectState { + Created = 'CREATED', + Enabled = 'ENABLED', + Ready = 'READY' +} + +export type DnsDomain = { + __typename?: 'DnsDomain'; + accessPolicy?: Maybe; + account?: Maybe; + creator?: Maybe; + dnsRecords?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + name: Scalars['String']; + updatedAt?: Maybe; +}; + + +export type DnsDomainDnsRecordsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + +export type DnsAccessPolicy = { + __typename?: 'DnsAccessPolicy'; + bindings?: Maybe>>; + id: Scalars['ID']; + insertedAt?: Maybe; + updatedAt?: Maybe; +}; + +export type PolicyBinding = { + __typename?: 'PolicyBinding'; + group?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + updatedAt?: Maybe; + user?: Maybe; +}; + +export type DnsRecordConnection = { + __typename?: 'DnsRecordConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type DnsRecordEdge = { + __typename?: 'DnsRecordEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type DnsRecord = { + __typename?: 'DnsRecord'; + cluster: Scalars['String']; + creator?: Maybe; + domain?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + name: Scalars['String']; + provider: Provider; + records?: Maybe>>; + type: DnsRecordType; + updatedAt?: Maybe; +}; + +export enum DnsRecordType { + A = 'A', + Aaaa = 'AAAA', + Cname = 'CNAME', + Txt = 'TXT' +} + +export type DnsDomainConnection = { + __typename?: 'DnsDomainConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type DnsDomainEdge = { + __typename?: 'DnsDomainEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type DockerImageConnection = { + __typename?: 'DockerImageConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type DockerImageEdge = { + __typename?: 'DockerImageEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type DockerRepositoryConnection = { + __typename?: 'DockerRepositoryConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type DockerRepositoryEdge = { + __typename?: 'DockerRepositoryEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type EabCredential = { + __typename?: 'EabCredential'; + cluster: Scalars['String']; + hmacKey: Scalars['String']; + id: Scalars['ID']; + insertedAt?: Maybe; + keyId: Scalars['String']; + provider: Provider; + updatedAt?: Maybe; +}; + +export type GroupMemberConnection = { + __typename?: 'GroupMemberConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type GroupMemberEdge = { + __typename?: 'GroupMemberEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type GroupMember = { + __typename?: 'GroupMember'; + group?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + updatedAt?: Maybe; + user?: Maybe; +}; + +export type GroupConnection = { + __typename?: 'GroupConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type GroupEdge = { + __typename?: 'GroupEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type Incident = { + __typename?: 'Incident'; + clusterInformation?: Maybe; + creator: User; + description?: Maybe; + files?: Maybe; + follower?: Maybe; + followers?: Maybe; + history?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + messages?: Maybe; + nextResponseAt?: Maybe; + notificationCount?: Maybe; + owner?: Maybe; + postmortem?: Maybe; + repository: Repository; + severity: Scalars['Int']; + status: IncidentStatus; + subscription?: Maybe; + tags?: Maybe>>; + title: Scalars['String']; + updatedAt?: Maybe; +}; + + +export type IncidentFilesArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + + +export type IncidentFollowersArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + + +export type IncidentHistoryArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + + +export type IncidentMessagesArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + +export type ClusterInformation = { + __typename?: 'ClusterInformation'; + gitCommit?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + platform?: Maybe; + updatedAt?: Maybe; + version?: Maybe; +}; + +export type FileConnection = { + __typename?: 'FileConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type FileEdge = { + __typename?: 'FileEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type File = { + __typename?: 'File'; + blob: Scalars['String']; + contentType?: Maybe; + filename?: Maybe; + filesize?: Maybe; + height?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + mediaType?: Maybe; + message: IncidentMessage; + updatedAt?: Maybe; + width?: Maybe; +}; + +export enum MediaType { + Audio = 'AUDIO', + Image = 'IMAGE', + Other = 'OTHER', + Pdf = 'PDF', + Video = 'VIDEO' +} + +export type IncidentMessage = { + __typename?: 'IncidentMessage'; + creator: User; + entities?: Maybe>>; + file?: Maybe; + id: Scalars['ID']; + incident: Incident; + insertedAt?: Maybe; + reactions?: Maybe>>; + text: Scalars['String']; + updatedAt?: Maybe; +}; + +export type MessageEntity = { + __typename?: 'MessageEntity'; + endIndex?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + startIndex?: Maybe; + text?: Maybe; + type: MessageEntityType; + updatedAt?: Maybe; + user?: Maybe; +}; + +export enum MessageEntityType { + Emoji = 'EMOJI', + Mention = 'MENTION' +} + +export type Reaction = { + __typename?: 'Reaction'; + creator: User; + insertedAt?: Maybe; + message: IncidentMessage; + name: Scalars['String']; + updatedAt?: Maybe; +}; + +export type Follower = { + __typename?: 'Follower'; + id: Scalars['ID']; + incident?: Maybe; + insertedAt?: Maybe; + preferences?: Maybe; + updatedAt?: Maybe; + user: User; +}; + +export type NotificationPreferences = { + __typename?: 'NotificationPreferences'; + incidentUpdate?: Maybe; + mention?: Maybe; + message?: Maybe; +}; + +export type FollowerConnection = { + __typename?: 'FollowerConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type FollowerEdge = { + __typename?: 'FollowerEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type IncidentHistoryConnection = { + __typename?: 'IncidentHistoryConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type IncidentHistoryEdge = { + __typename?: 'IncidentHistoryEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type IncidentHistory = { + __typename?: 'IncidentHistory'; + action: IncidentAction; + actor: User; + changes?: Maybe>>; + id: Scalars['ID']; + incident: Incident; + insertedAt?: Maybe; + updatedAt?: Maybe; +}; + +export enum IncidentAction { + Accept = 'ACCEPT', + Complete = 'COMPLETE', + Create = 'CREATE', + Edit = 'EDIT', + Severity = 'SEVERITY', + Status = 'STATUS' +} + +export type IncidentChange = { + __typename?: 'IncidentChange'; + key: Scalars['String']; + next?: Maybe; + prev?: Maybe; +}; + +export type IncidentMessageConnection = { + __typename?: 'IncidentMessageConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type IncidentMessageEdge = { + __typename?: 'IncidentMessageEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type Postmortem = { + __typename?: 'Postmortem'; + actionItems?: Maybe>>; + content: Scalars['String']; + creator: User; + id: Scalars['ID']; + insertedAt?: Maybe; + updatedAt?: Maybe; +}; + +export type ActionItem = { + __typename?: 'ActionItem'; + link: Scalars['String']; + type: ActionItemType; +}; + +export enum ActionItemType { + Blog = 'BLOG', + Issue = 'ISSUE', + Pull = 'PULL' +} + +export enum IncidentStatus { + Complete = 'COMPLETE', + InProgress = 'IN_PROGRESS', + Open = 'OPEN', + Resolved = 'RESOLVED' +} + +export type SlimSubscription = { + __typename?: 'SlimSubscription'; + id: Scalars['ID']; + lineItems?: Maybe; + plan?: Maybe; +}; + +export type IncidentFilter = { + statuses?: InputMaybe>>; + type: IncidentFilterType; + value?: InputMaybe; +}; + +export enum IncidentFilterType { + Following = 'FOLLOWING', + Notifications = 'NOTIFICATIONS', + Status = 'STATUS', + Tag = 'TAG' +} + +export enum Order { + Asc = 'ASC', + Desc = 'DESC' +} + +export enum IncidentSort { + InsertedAt = 'INSERTED_AT', + Severity = 'SEVERITY', + Status = 'STATUS', + Title = 'TITLE' +} + +export type IncidentConnection = { + __typename?: 'IncidentConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type IncidentEdge = { + __typename?: 'IncidentEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type InstallationConnection = { + __typename?: 'InstallationConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type InstallationEdge = { + __typename?: 'InstallationEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type IntegrationConnection = { + __typename?: 'IntegrationConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type IntegrationEdge = { + __typename?: 'IntegrationEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type Integration = { + __typename?: 'Integration'; + description?: Maybe; + icon?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + name: Scalars['String']; + publisher?: Maybe; + repository?: Maybe; + sourceUrl?: Maybe; + spec?: Maybe; + tags?: Maybe>>; + type?: Maybe; + updatedAt?: Maybe; +}; + +export type IntegrationWebhookConnection = { + __typename?: 'IntegrationWebhookConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type IntegrationWebhookEdge = { + __typename?: 'IntegrationWebhookEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type Invite = { + __typename?: 'Invite'; + account?: Maybe; + email?: Maybe; + existing: Scalars['Boolean']; + expiresAt?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + secureId?: Maybe; + updatedAt?: Maybe; + user?: Maybe; +}; + +export type InviteConnection = { + __typename?: 'InviteConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type InviteEdge = { + __typename?: 'InviteEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type KeyBackup = { + __typename?: 'KeyBackup'; + digest: Scalars['String']; + id: Scalars['ID']; + insertedAt?: Maybe; + name: Scalars['String']; + repositories?: Maybe>; + updatedAt?: Maybe; + user: User; + value: Scalars['String']; +}; + +export type KeyBackupConnection = { + __typename?: 'KeyBackupConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type KeyBackupEdge = { + __typename?: 'KeyBackupEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type LoginMethodResponse = { + __typename?: 'LoginMethodResponse'; + authorizeUrl?: Maybe; + loginMethod: LoginMethod; + token?: Maybe; +}; + +export type NotificationConnection = { + __typename?: 'NotificationConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type NotificationEdge = { + __typename?: 'NotificationEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type Notification = { + __typename?: 'Notification'; + actor: User; + id: Scalars['ID']; + incident?: Maybe; + insertedAt?: Maybe; + message?: Maybe; + msg?: Maybe; + repository?: Maybe; + type: NotificationType; + updatedAt?: Maybe; + user: User; +}; + +export enum NotificationType { + IncidentUpdate = 'INCIDENT_UPDATE', + Locked = 'LOCKED', + Mention = 'MENTION', + Message = 'MESSAGE' +} + +export type OauthIntegration = { + __typename?: 'OauthIntegration'; + account?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + service: OauthService; + updatedAt?: Maybe; +}; + +export enum OauthService { + Zoom = 'ZOOM' +} + +export type OauthInfo = { + __typename?: 'OauthInfo'; + authorizeUrl: Scalars['String']; + provider: OauthProvider; +}; + +export enum OauthProvider { + Github = 'GITHUB', + Gitlab = 'GITLAB', + Google = 'GOOGLE' +} + +export type OidcStepResponse = { + __typename?: 'OidcStepResponse'; + consent?: Maybe; + login?: Maybe; + repository?: Maybe; +}; + +export type LoginRequest = { + __typename?: 'LoginRequest'; + requestedScope?: Maybe>>; + subject?: Maybe; +}; + +export type OidcLoginConnection = { + __typename?: 'OidcLoginConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type OidcLoginEdge = { + __typename?: 'OidcLoginEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type OidcLogin = { + __typename?: 'OidcLogin'; + city?: Maybe; + country?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + ip?: Maybe; + latitude?: Maybe; + longitude?: Maybe; + owner?: Maybe; + repository?: Maybe; + updatedAt?: Maybe; + user?: Maybe; +}; + +export type PlatformMetrics = { + __typename?: 'PlatformMetrics'; + clusters?: Maybe; + publishers?: Maybe; + repositories?: Maybe; + rollouts?: Maybe; +}; + +export type PublicKeyConnection = { + __typename?: 'PublicKeyConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type PublicKeyEdge = { + __typename?: 'PublicKeyEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type PublicKey = { + __typename?: 'PublicKey'; + content: Scalars['String']; + digest: Scalars['String']; + id: Scalars['ID']; + insertedAt?: Maybe; + name: Scalars['String']; + updatedAt?: Maybe; + user: User; +}; + +export type PublisherConnection = { + __typename?: 'PublisherConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type PublisherEdge = { + __typename?: 'PublisherEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type RecipeConnection = { + __typename?: 'RecipeConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type RecipeEdge = { + __typename?: 'RecipeEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type RepositoryConnection = { + __typename?: 'RepositoryConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type RepositoryEdge = { + __typename?: 'RepositoryEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type ResetToken = { + __typename?: 'ResetToken'; + email: Scalars['String']; + externalId: Scalars['ID']; + id: Scalars['ID']; + insertedAt?: Maybe; + type: ResetTokenType; + updatedAt?: Maybe; + user: User; +}; + +export enum ResetTokenType { + Email = 'EMAIL', + Password = 'PASSWORD' +} + +export type RoleConnection = { + __typename?: 'RoleConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type RoleEdge = { + __typename?: 'RoleEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type RolloutConnection = { + __typename?: 'RolloutConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type RolloutEdge = { + __typename?: 'RolloutEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type Rollout = { + __typename?: 'Rollout'; + count?: Maybe; + cursor?: Maybe; + event?: Maybe; + heartbeat?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + repository?: Maybe; + status: RolloutStatus; + updatedAt?: Maybe; +}; + +export enum RolloutStatus { + Finished = 'FINISHED', + Queued = 'QUEUED', + Running = 'RUNNING' +} + +export type ScaffoldFile = { + __typename?: 'ScaffoldFile'; + content?: Maybe; + path?: Maybe; +}; + +export type AuthorizationUrl = { + __typename?: 'AuthorizationUrl'; + provider: ScmProvider; + url: Scalars['String']; +}; + +export enum ScmProvider { + Demo = 'DEMO', + Github = 'GITHUB', + Gitlab = 'GITLAB', + Manual = 'MANUAL' +} + +export type UserConnection = { + __typename?: 'UserConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type UserEdge = { + __typename?: 'UserEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type CloudShell = { + __typename?: 'CloudShell'; + aesKey: Scalars['String']; + alive: Scalars['Boolean']; + cluster: Scalars['String']; + gitUrl: Scalars['String']; + id: Scalars['ID']; + insertedAt?: Maybe; + missing?: Maybe>>; + provider: Provider; + region: Scalars['String']; + status?: Maybe; + subdomain: Scalars['String']; + updatedAt?: Maybe; +}; + +export type ShellStatus = { + __typename?: 'ShellStatus'; + containersReady?: Maybe; + initialized?: Maybe; + podScheduled?: Maybe; + ready?: Maybe; +}; + +export type ShellConfiguration = { + __typename?: 'ShellConfiguration'; + buckets?: Maybe>>; + contextConfiguration?: Maybe; + domains?: Maybe>>; + git?: Maybe; + workspace?: Maybe; +}; + +export type GitConfiguration = { + __typename?: 'GitConfiguration'; + branch?: Maybe; + name?: Maybe; + root?: Maybe; + url?: Maybe; +}; + +export type ShellWorkspace = { + __typename?: 'ShellWorkspace'; + bucketPrefix?: Maybe; + cluster?: Maybe; + network?: Maybe; + region?: Maybe; +}; + +export type NetworkConfiguration = { + __typename?: 'NetworkConfiguration'; + pluralDns?: Maybe; + subdomain?: Maybe; +}; + +export type Stack = { + __typename?: 'Stack'; + bundles?: Maybe>>; + collections?: Maybe>>; + community?: Maybe; + creator?: Maybe; + description?: Maybe; + displayName?: Maybe; + featured?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + name: Scalars['String']; + sections?: Maybe>>; + updatedAt?: Maybe; +}; + +export type StackCollection = { + __typename?: 'StackCollection'; + bundles?: Maybe>>; + id: Scalars['ID']; + insertedAt?: Maybe; + provider: Provider; + updatedAt?: Maybe; +}; + +export type StackRecipe = { + __typename?: 'StackRecipe'; + id: Scalars['ID']; + insertedAt?: Maybe; + recipe: Recipe; + updatedAt?: Maybe; +}; + +export type StackConnection = { + __typename?: 'StackConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type StackEdge = { + __typename?: 'StackEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type RepositorySubscriptionConnection = { + __typename?: 'RepositorySubscriptionConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type RepositorySubscriptionEdge = { + __typename?: 'RepositorySubscriptionEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export enum TagGroup { + Integrations = 'INTEGRATIONS', + Repositories = 'REPOSITORIES' +} + +export type TerraformConnection = { + __typename?: 'TerraformConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type TerraformEdge = { + __typename?: 'TerraformEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type TerraformInstallationConnection = { + __typename?: 'TerraformInstallationConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type TerraformInstallationEdge = { + __typename?: 'TerraformInstallationEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type TerraformProvider = { + __typename?: 'TerraformProvider'; + content?: Maybe; + name?: Maybe; +}; + +export type Test = { + __typename?: 'Test'; + creator?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + name?: Maybe; + promoteTag: Scalars['String']; + repository?: Maybe; + sourceTag: Scalars['String']; + status: TestStatus; + steps?: Maybe>>; + tags?: Maybe>; + updatedAt?: Maybe; +}; + +export enum TestStatus { + Failed = 'FAILED', + Queued = 'QUEUED', + Running = 'RUNNING', + Succeeded = 'SUCCEEDED' +} + +export type TestStep = { + __typename?: 'TestStep'; + description: Scalars['String']; + hasLogs?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + name: Scalars['String']; + status: TestStatus; + updatedAt?: Maybe; +}; + +export type TestConnection = { + __typename?: 'TestConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type TestEdge = { + __typename?: 'TestEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type PersistedToken = { + __typename?: 'PersistedToken'; + audits?: Maybe; + id?: Maybe; + insertedAt?: Maybe; + metrics?: Maybe>>; + token?: Maybe; + updatedAt?: Maybe; +}; + + +export type PersistedTokenAuditsArgs = { + after?: InputMaybe; + before?: InputMaybe; + first?: InputMaybe; + last?: InputMaybe; +}; + +export type PersistedTokenAuditConnection = { + __typename?: 'PersistedTokenAuditConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type PersistedTokenAuditEdge = { + __typename?: 'PersistedTokenAuditEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type PersistedTokenAudit = { + __typename?: 'PersistedTokenAudit'; + city?: Maybe; + count?: Maybe; + country?: Maybe; + id?: Maybe; + insertedAt?: Maybe; + ip?: Maybe; + latitude?: Maybe; + longitude?: Maybe; + timestamp?: Maybe; + updatedAt?: Maybe; +}; + +export type PersistedTokenConnection = { + __typename?: 'PersistedTokenConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type PersistedTokenEdge = { + __typename?: 'PersistedTokenEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type VersionConnection = { + __typename?: 'VersionConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type VersionEdge = { + __typename?: 'VersionEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type WebhookConnection = { + __typename?: 'WebhookConnection'; + edges?: Maybe>>; + pageInfo: PageInfo; +}; + +export type WebhookEdge = { + __typename?: 'WebhookEdge'; + cursor?: Maybe; + node?: Maybe; +}; + +export type Webhook = { + __typename?: 'Webhook'; + id?: Maybe; + insertedAt?: Maybe; + secret?: Maybe; + updatedAt?: Maybe; + url?: Maybe; + user?: Maybe; +}; + +export type RootMutationType = { + __typename?: 'RootMutationType'; + acceptIncident?: Maybe; + acceptLogin?: Maybe; + acquireLock?: Maybe; + cancelPlatformSubscription?: Maybe; + completeIncident?: Maybe; + createArtifact?: Maybe; + createCard?: Maybe; + /** Create a new cluster. */ + createCluster?: Maybe; + /** adds a dependency for this cluster to gate future upgrades */ + createClusterDependency?: Maybe; + createCrd?: Maybe; + createDemoProject?: Maybe; + createDnsRecord?: Maybe; + createDomain?: Maybe; + createGroup?: Maybe; + createGroupMember?: Maybe; + createIncident?: Maybe; + createInstallation?: Maybe; + createIntegration?: Maybe; + createIntegrationWebhook?: Maybe; + createInvite?: Maybe; + createKeyBackup?: Maybe; + createMessage?: Maybe; + createOauthIntegration?: Maybe; + createOidcProvider?: Maybe; + createPlan?: Maybe; + createPlatformSubscription?: Maybe; + createPublicKey?: Maybe; + createPublisher?: Maybe; + createQueue?: Maybe; + createReaction?: Maybe; + createRecipe?: Maybe; + createRepository?: Maybe; + createResetToken?: Maybe; + createRole?: Maybe; + createServiceAccount?: Maybe; + createShell?: Maybe; + createStack?: Maybe; + createSubscription?: Maybe; + createTerraform?: Maybe; + createTest?: Maybe; + createToken?: Maybe; + createUserEvent?: Maybe; + createWebhook?: Maybe; + createZoom?: Maybe; + deleteCard?: Maybe; + deleteChartInstallation?: Maybe; + /** Delete a cluster. */ + deleteCluster?: Maybe; + deleteDemoProject?: Maybe; + deleteDnsRecord?: Maybe; + deleteDomain?: Maybe; + deleteEabKey?: Maybe; + deleteGroup?: Maybe; + deleteGroupMember?: Maybe; + deleteIncident?: Maybe; + deleteInstallation?: Maybe; + deleteIntegrationWebhook?: Maybe; + deleteInvite?: Maybe; + deleteKeyBackup?: Maybe; + deleteMessage?: Maybe; + deletePlatformSubscription?: Maybe; + deletePublicKey?: Maybe; + deleteReaction?: Maybe; + deleteRecipe?: Maybe; + deleteRepository?: Maybe; + deleteRole?: Maybe; + deleteShell?: Maybe; + deleteStack?: Maybe; + deleteTerraform?: Maybe; + deleteToken?: Maybe; + deleteUser?: Maybe; + destroyCluster?: Maybe; + deviceLogin?: Maybe; + externalToken?: Maybe; + followIncident?: Maybe; + impersonateServiceAccount?: Maybe; + installBundle?: Maybe>>; + installChart?: Maybe; + installRecipe?: Maybe>>; + installStack?: Maybe>>; + installStackShell?: Maybe>>; + installTerraform?: Maybe; + linkPublisher?: Maybe; + login?: Maybe; + loginToken?: Maybe; + oauthCallback?: Maybe; + oauthConsent?: Maybe; + passwordlessLogin?: Maybe; + pingWebhook?: Maybe; + /** moves up the upgrade waterline for a user */ + promote?: Maybe; + provisionDomain?: Maybe; + publishLogs?: Maybe; + quickStack?: Maybe; + readNotifications?: Maybe; + realizeInvite?: Maybe; + realizeResetToken?: Maybe; + rebootShell?: Maybe; + releaseLock?: Maybe; + resetInstallations?: Maybe; + restartShell?: Maybe; + setupShell?: Maybe; + signup?: Maybe; + ssoCallback?: Maybe; + stopShell?: Maybe; + transferDemoProject?: Maybe; + unfollowIncident?: Maybe; + uninstallTerraform?: Maybe; + unlockRepository?: Maybe; + updateAccount?: Maybe; + updateChart?: Maybe; + updateChartInstallation?: Maybe; + updateDockerRepository?: Maybe; + updateDomain?: Maybe; + updateGroup?: Maybe; + updateIncident?: Maybe; + updateInstallation?: Maybe; + updateIntegrationWebhook?: Maybe; + updateLineItem?: Maybe; + updateMessage?: Maybe; + updateOidcProvider?: Maybe; + updatePlan?: Maybe; + updatePlanAttributes?: Maybe; + updatePlatformPlan?: Maybe; + updatePublisher?: Maybe; + updateRepository?: Maybe; + updateRole?: Maybe; + updateServiceAccount?: Maybe; + updateShell?: Maybe; + updateShellConfiguration?: Maybe; + updateStep?: Maybe; + updateTerraform?: Maybe; + updateTest?: Maybe; + updateUser?: Maybe; + updateVersion?: Maybe; + uploadTerraform?: Maybe; + upsertOidcProvider?: Maybe; + upsertRepository?: Maybe; +}; + + +export type RootMutationTypeAcceptIncidentArgs = { + id: Scalars['ID']; +}; + + +export type RootMutationTypeAcceptLoginArgs = { + challenge: Scalars['String']; +}; + + +export type RootMutationTypeAcquireLockArgs = { + repository: Scalars['String']; +}; + + +export type RootMutationTypeCompleteIncidentArgs = { + id: Scalars['ID']; + postmortem: PostmortemAttributes; +}; + + +export type RootMutationTypeCreateArtifactArgs = { + attributes: ArtifactAttributes; + repositoryId?: InputMaybe; + repositoryName?: InputMaybe; +}; + + +export type RootMutationTypeCreateCardArgs = { + address?: InputMaybe; + source: Scalars['String']; +}; + + +export type RootMutationTypeCreateClusterArgs = { + attributes: ClusterAttributes; +}; + + +export type RootMutationTypeCreateClusterDependencyArgs = { + destId: Scalars['ID']; + sourceId: Scalars['ID']; +}; + + +export type RootMutationTypeCreateCrdArgs = { + attributes: CrdAttributes; + chartId?: InputMaybe; + chartName?: InputMaybe; +}; + + +export type RootMutationTypeCreateDnsRecordArgs = { + attributes: DnsRecordAttributes; + cluster: Scalars['String']; + provider: Provider; +}; + + +export type RootMutationTypeCreateDomainArgs = { + attributes: DnsDomainAttributes; +}; + + +export type RootMutationTypeCreateGroupArgs = { + attributes: GroupAttributes; +}; + + +export type RootMutationTypeCreateGroupMemberArgs = { + groupId: Scalars['ID']; + userId: Scalars['ID']; +}; + + +export type RootMutationTypeCreateIncidentArgs = { + attributes: IncidentAttributes; + repository?: InputMaybe; + repositoryId?: InputMaybe; +}; + + +export type RootMutationTypeCreateInstallationArgs = { + repositoryId: Scalars['ID']; +}; + + +export type RootMutationTypeCreateIntegrationArgs = { + attributes: IntegrationAttributes; + repositoryName: Scalars['String']; +}; + + +export type RootMutationTypeCreateIntegrationWebhookArgs = { + attributes: IntegrationWebhookAttributes; +}; + + +export type RootMutationTypeCreateInviteArgs = { + attributes: InviteAttributes; +}; + + +export type RootMutationTypeCreateKeyBackupArgs = { + attributes: KeyBackupAttributes; +}; + + +export type RootMutationTypeCreateMessageArgs = { + attributes: IncidentMessageAttributes; + incidentId: Scalars['ID']; +}; + + +export type RootMutationTypeCreateOauthIntegrationArgs = { + attributes: OauthAttributes; +}; + + +export type RootMutationTypeCreateOidcProviderArgs = { + attributes: OidcAttributes; + installationId: Scalars['ID']; +}; + + +export type RootMutationTypeCreatePlanArgs = { + attributes: PlanAttributes; + repositoryId: Scalars['ID']; +}; + + +export type RootMutationTypeCreatePlatformSubscriptionArgs = { + planId: Scalars['ID']; +}; + + +export type RootMutationTypeCreatePublicKeyArgs = { + attributes: PublicKeyAttributes; +}; + + +export type RootMutationTypeCreatePublisherArgs = { + attributes: PublisherAttributes; +}; + + +export type RootMutationTypeCreateQueueArgs = { + attributes: UpgradeQueueAttributes; +}; + + +export type RootMutationTypeCreateReactionArgs = { + messageId: Scalars['ID']; + name: Scalars['String']; +}; + + +export type RootMutationTypeCreateRecipeArgs = { + attributes: RecipeAttributes; + repositoryId?: InputMaybe; + repositoryName?: InputMaybe; +}; + + +export type RootMutationTypeCreateRepositoryArgs = { + attributes: RepositoryAttributes; + id?: InputMaybe; +}; + + +export type RootMutationTypeCreateResetTokenArgs = { + attributes: ResetTokenAttributes; +}; + + +export type RootMutationTypeCreateRoleArgs = { + attributes: RoleAttributes; +}; + + +export type RootMutationTypeCreateServiceAccountArgs = { + attributes: ServiceAccountAttributes; +}; + + +export type RootMutationTypeCreateShellArgs = { + attributes: CloudShellAttributes; +}; + + +export type RootMutationTypeCreateStackArgs = { + attributes: StackAttributes; +}; + + +export type RootMutationTypeCreateSubscriptionArgs = { + attributes?: InputMaybe; + installationId: Scalars['ID']; + planId: Scalars['ID']; +}; + + +export type RootMutationTypeCreateTerraformArgs = { + attributes: TerraformAttributes; + repositoryId: Scalars['ID']; +}; + + +export type RootMutationTypeCreateTestArgs = { + attributes: TestAttributes; + name?: InputMaybe; + repositoryId?: InputMaybe; +}; + + +export type RootMutationTypeCreateUserEventArgs = { + attributes: UserEventAttributes; +}; + + +export type RootMutationTypeCreateWebhookArgs = { + attributes: WebhookAttributes; +}; + + +export type RootMutationTypeCreateZoomArgs = { + attributes: MeetingAttributes; +}; + + +export type RootMutationTypeDeleteCardArgs = { + id: Scalars['ID']; +}; + + +export type RootMutationTypeDeleteChartInstallationArgs = { + id: Scalars['ID']; +}; + + +export type RootMutationTypeDeleteClusterArgs = { + name: Scalars['String']; + provider: Provider; +}; + + +export type RootMutationTypeDeleteDnsRecordArgs = { + name: Scalars['String']; + type: DnsRecordType; +}; + + +export type RootMutationTypeDeleteDomainArgs = { + id: Scalars['ID']; +}; + + +export type RootMutationTypeDeleteEabKeyArgs = { + cluster?: InputMaybe; + id?: InputMaybe; + provider?: InputMaybe; +}; + + +export type RootMutationTypeDeleteGroupArgs = { + groupId: Scalars['ID']; +}; + + +export type RootMutationTypeDeleteGroupMemberArgs = { + groupId: Scalars['ID']; + userId: Scalars['ID']; +}; + + +export type RootMutationTypeDeleteIncidentArgs = { + id: Scalars['ID']; +}; + + +export type RootMutationTypeDeleteInstallationArgs = { + id: Scalars['ID']; +}; + + +export type RootMutationTypeDeleteIntegrationWebhookArgs = { + id: Scalars['ID']; +}; + + +export type RootMutationTypeDeleteInviteArgs = { + id?: InputMaybe; + secureId?: InputMaybe; +}; + + +export type RootMutationTypeDeleteKeyBackupArgs = { + name: Scalars['String']; +}; + + +export type RootMutationTypeDeleteMessageArgs = { + id: Scalars['ID']; +}; + + +export type RootMutationTypeDeletePublicKeyArgs = { + id: Scalars['ID']; +}; + + +export type RootMutationTypeDeleteReactionArgs = { + messageId: Scalars['ID']; + name: Scalars['String']; +}; + + +export type RootMutationTypeDeleteRecipeArgs = { + id: Scalars['ID']; +}; + + +export type RootMutationTypeDeleteRepositoryArgs = { + repositoryId: Scalars['ID']; +}; + + +export type RootMutationTypeDeleteRoleArgs = { + id: Scalars['ID']; +}; + + +export type RootMutationTypeDeleteStackArgs = { + name: Scalars['String']; +}; + + +export type RootMutationTypeDeleteTerraformArgs = { + id: Scalars['ID']; +}; + + +export type RootMutationTypeDeleteTokenArgs = { + id: Scalars['ID']; +}; + + +export type RootMutationTypeDeleteUserArgs = { + id: Scalars['ID']; +}; + + +export type RootMutationTypeDestroyClusterArgs = { + domain: Scalars['String']; + name: Scalars['String']; + provider: Provider; +}; + + +export type RootMutationTypeFollowIncidentArgs = { + attributes: FollowerAttributes; + id: Scalars['ID']; +}; + + +export type RootMutationTypeImpersonateServiceAccountArgs = { + email?: InputMaybe; + id?: InputMaybe; +}; + + +export type RootMutationTypeInstallBundleArgs = { + context: ContextAttributes; + name: Scalars['String']; + oidc: Scalars['Boolean']; + repo: Scalars['String']; +}; + + +export type RootMutationTypeInstallChartArgs = { + attributes: ChartInstallationAttributes; + installationId: Scalars['ID']; +}; + + +export type RootMutationTypeInstallRecipeArgs = { + context: Scalars['Map']; + recipeId: Scalars['ID']; +}; + + +export type RootMutationTypeInstallStackArgs = { + name: Scalars['String']; + provider: Provider; +}; + + +export type RootMutationTypeInstallStackShellArgs = { + context: ContextAttributes; + name: Scalars['String']; + oidc: Scalars['Boolean']; +}; + + +export type RootMutationTypeInstallTerraformArgs = { + attributes: TerraformInstallationAttributes; + installationId: Scalars['ID']; +}; + + +export type RootMutationTypeLinkPublisherArgs = { + token: Scalars['String']; +}; + + +export type RootMutationTypeLoginArgs = { + deviceToken?: InputMaybe; + email: Scalars['String']; + password: Scalars['String']; +}; + + +export type RootMutationTypeLoginTokenArgs = { + deviceToken?: InputMaybe; + token: Scalars['String']; +}; + + +export type RootMutationTypeOauthCallbackArgs = { + code: Scalars['String']; + deviceToken?: InputMaybe; + host?: InputMaybe; + provider: OauthProvider; +}; + + +export type RootMutationTypeOauthConsentArgs = { + challenge: Scalars['String']; + scopes?: InputMaybe>>; +}; + + +export type RootMutationTypePasswordlessLoginArgs = { + token: Scalars['String']; +}; + + +export type RootMutationTypePingWebhookArgs = { + id: Scalars['ID']; + message?: InputMaybe; + repo: Scalars['String']; +}; + + +export type RootMutationTypeProvisionDomainArgs = { + name: Scalars['String']; +}; + + +export type RootMutationTypePublishLogsArgs = { + id: Scalars['ID']; + logs: Scalars['String']; +}; + + +export type RootMutationTypeQuickStackArgs = { + provider: Provider; + repositoryIds?: InputMaybe>>; +}; + + +export type RootMutationTypeReadNotificationsArgs = { + incidentId?: InputMaybe; +}; + + +export type RootMutationTypeRealizeInviteArgs = { + id: Scalars['String']; +}; + + +export type RootMutationTypeRealizeResetTokenArgs = { + attributes: ResetTokenRealization; + id: Scalars['ID']; +}; + + +export type RootMutationTypeReleaseLockArgs = { + attributes: LockAttributes; + repository: Scalars['String']; +}; + + +export type RootMutationTypeSignupArgs = { + account?: InputMaybe; + attributes: UserAttributes; + deviceToken?: InputMaybe; + inviteId?: InputMaybe; +}; + + +export type RootMutationTypeSsoCallbackArgs = { + code: Scalars['String']; + deviceToken?: InputMaybe; +}; + + +export type RootMutationTypeTransferDemoProjectArgs = { + organizationId: Scalars['String']; +}; + + +export type RootMutationTypeUnfollowIncidentArgs = { + id: Scalars['ID']; +}; + + +export type RootMutationTypeUninstallTerraformArgs = { + id: Scalars['ID']; +}; + + +export type RootMutationTypeUnlockRepositoryArgs = { + name: Scalars['String']; +}; + + +export type RootMutationTypeUpdateAccountArgs = { + attributes: AccountAttributes; +}; + + +export type RootMutationTypeUpdateChartArgs = { + attributes: ChartAttributes; + id: Scalars['ID']; +}; + + +export type RootMutationTypeUpdateChartInstallationArgs = { + attributes: ChartInstallationAttributes; + chartInstallationId: Scalars['ID']; +}; + + +export type RootMutationTypeUpdateDockerRepositoryArgs = { + attributes: DockerRepositoryAttributes; + id: Scalars['ID']; +}; + + +export type RootMutationTypeUpdateDomainArgs = { + attributes: DnsDomainAttributes; + id: Scalars['ID']; +}; + + +export type RootMutationTypeUpdateGroupArgs = { + attributes: GroupAttributes; + groupId: Scalars['ID']; +}; + + +export type RootMutationTypeUpdateIncidentArgs = { + attributes: IncidentAttributes; + id: Scalars['ID']; +}; + + +export type RootMutationTypeUpdateInstallationArgs = { + attributes: InstallationAttributes; + id: Scalars['ID']; +}; + + +export type RootMutationTypeUpdateIntegrationWebhookArgs = { + attributes: IntegrationWebhookAttributes; + id: Scalars['ID']; +}; + + +export type RootMutationTypeUpdateLineItemArgs = { + attributes: LimitAttributes; + subscriptionId: Scalars['ID']; +}; + + +export type RootMutationTypeUpdateMessageArgs = { + attributes: IncidentMessageAttributes; + id: Scalars['ID']; +}; + + +export type RootMutationTypeUpdateOidcProviderArgs = { + attributes: OidcAttributes; + installationId: Scalars['ID']; +}; + + +export type RootMutationTypeUpdatePlanArgs = { + planId: Scalars['ID']; + subscriptionId: Scalars['ID']; +}; + + +export type RootMutationTypeUpdatePlanAttributesArgs = { + attributes: UpdatablePlanAttributes; + id: Scalars['ID']; +}; + + +export type RootMutationTypeUpdatePlatformPlanArgs = { + planId: Scalars['ID']; +}; + + +export type RootMutationTypeUpdatePublisherArgs = { + attributes: PublisherAttributes; +}; + + +export type RootMutationTypeUpdateRepositoryArgs = { + attributes: RepositoryAttributes; + repositoryId?: InputMaybe; + repositoryName?: InputMaybe; +}; + + +export type RootMutationTypeUpdateRoleArgs = { + attributes: RoleAttributes; + id: Scalars['ID']; +}; + + +export type RootMutationTypeUpdateServiceAccountArgs = { + attributes: ServiceAccountAttributes; + id: Scalars['ID']; +}; + + +export type RootMutationTypeUpdateShellArgs = { + attributes: CloudShellAttributes; +}; + + +export type RootMutationTypeUpdateShellConfigurationArgs = { + context: Scalars['Map']; +}; + + +export type RootMutationTypeUpdateStepArgs = { + attributes: TestStepAttributes; + id: Scalars['ID']; +}; + + +export type RootMutationTypeUpdateTerraformArgs = { + attributes: TerraformAttributes; + id: Scalars['ID']; +}; + + +export type RootMutationTypeUpdateTestArgs = { + attributes: TestAttributes; + id: Scalars['ID']; +}; + + +export type RootMutationTypeUpdateUserArgs = { + attributes: UserAttributes; + id?: InputMaybe; +}; + + +export type RootMutationTypeUpdateVersionArgs = { + attributes: VersionAttributes; + id?: InputMaybe; + spec?: InputMaybe; +}; + + +export type RootMutationTypeUploadTerraformArgs = { + attributes: TerraformAttributes; + name: Scalars['String']; + repositoryName: Scalars['String']; +}; + + +export type RootMutationTypeUpsertOidcProviderArgs = { + attributes: OidcAttributes; + installationId: Scalars['ID']; +}; + + +export type RootMutationTypeUpsertRepositoryArgs = { + attributes: RepositoryAttributes; + name: Scalars['String']; + publisher: Scalars['String']; +}; + +export type OauthResponse = { + __typename?: 'OauthResponse'; + redirectTo: Scalars['String']; +}; + +export type ApplyLock = { + __typename?: 'ApplyLock'; + id: Scalars['ID']; + insertedAt?: Maybe; + lock?: Maybe; + owner?: Maybe; + repository?: Maybe; + updatedAt?: Maybe; +}; + +export type PostmortemAttributes = { + actionItems?: InputMaybe>>; + content: Scalars['String']; +}; + +export type ActionItemAttributes = { + link: Scalars['String']; + type: ActionItemType; +}; + +export type ArtifactAttributes = { + arch?: InputMaybe; + blob?: InputMaybe; + name: Scalars['String']; + platform: Scalars['String']; + readme: Scalars['String']; + type: Scalars['String']; +}; + +export type AddressAttributes = { + city: Scalars['String']; + country: Scalars['String']; + line1: Scalars['String']; + line2: Scalars['String']; + name?: InputMaybe; + state: Scalars['String']; + zip: Scalars['String']; +}; + +/** Input for creating or updating a cluster. */ +export type ClusterAttributes = { + /** The URL of the console running on the cluster. */ + consoleUrl?: InputMaybe; + /** The domain name used for applications deployed on the cluster. */ + domain?: InputMaybe; + /** The git repository URL for the cluster. */ + gitUrl?: InputMaybe; + /** The name of the cluster. */ + name: Scalars['String']; + /** The cluster's cloud provider. */ + provider: Provider; + /** The source of the cluster. */ + source?: InputMaybe; +}; + +/** A dependncy reference between clusters */ +export type ClusterDependency = { + __typename?: 'ClusterDependency'; + /** the cluster holding this dependency */ + cluster?: Maybe; + /** the source cluster of this dependency */ + dependency?: Maybe; + id: Scalars['ID']; + insertedAt?: Maybe; + updatedAt?: Maybe; +}; + +export type CrdAttributes = { + blob?: InputMaybe; + name: Scalars['String']; +}; + +export type ChartName = { + chart?: InputMaybe; + repo?: InputMaybe; +}; + +export type DnsRecordAttributes = { + name: Scalars['String']; + records?: InputMaybe>>; + type: DnsRecordType; +}; + +export type DnsDomainAttributes = { + accessPolicy?: InputMaybe; + name?: InputMaybe; +}; + +export type DnsAccessPolicyAttributes = { + bindings?: InputMaybe>>; + id?: InputMaybe; +}; + +export type BindingAttributes = { + groupId?: InputMaybe; + id?: InputMaybe; + userId?: InputMaybe; +}; + +export type GroupAttributes = { + description?: InputMaybe; + global?: InputMaybe; + name: Scalars['String']; +}; + +export type IncidentAttributes = { + clusterInformation?: InputMaybe; + description?: InputMaybe; + severity?: InputMaybe; + status?: InputMaybe; + tags?: InputMaybe>>; + title?: InputMaybe; +}; + +export type ClusterInformationAttributes = { + gitCommit?: InputMaybe; + platform?: InputMaybe; + version?: InputMaybe; +}; + +export type TagAttributes = { + tag: Scalars['String']; +}; + +export type IntegrationAttributes = { + description?: InputMaybe; + icon?: InputMaybe; + name: Scalars['String']; + sourceUrl?: InputMaybe; + spec?: InputMaybe; + tags?: InputMaybe>>; + type?: InputMaybe; +}; + +export type IntegrationWebhookAttributes = { + actions?: InputMaybe>>; + name: Scalars['String']; + url: Scalars['String']; +}; + +export type InviteAttributes = { + email?: InputMaybe; +}; + +export type KeyBackupAttributes = { + key: Scalars['String']; + name: Scalars['String']; + repositories?: InputMaybe>>; +}; + +export type IncidentMessageAttributes = { + entities?: InputMaybe>>; + file?: InputMaybe; + text: Scalars['String']; +}; + +export type EntityAttributes = { + endIndex?: InputMaybe; + startIndex?: InputMaybe; + text?: InputMaybe; + type: MessageEntityType; + userId?: InputMaybe; +}; + +export type FileAttributes = { + blob?: InputMaybe; +}; + +export type OauthAttributes = { + code?: InputMaybe; + redirectUri?: InputMaybe; + service?: InputMaybe; +}; + +/** Input for creating or updating the OIDC attributes of an application installation. */ +export type OidcAttributes = { + /** The authentication method for the OIDC provider. */ + authMethod: OidcAuthMethod; + /** The users or groups that can login through the OIDC provider. */ + bindings?: InputMaybe>>; + /** The redirect URIs for the OIDC provider. */ + redirectUris?: InputMaybe>>; +}; + +export type PlanAttributes = { + cost: Scalars['Int']; + default?: InputMaybe; + lineItems?: InputMaybe; + metadata?: InputMaybe; + name: Scalars['String']; + period: Scalars['String']; + serviceLevels?: InputMaybe>>; +}; + +export type PlanLineItemAttributes = { + included?: InputMaybe>>; + items?: InputMaybe>>; +}; + +export type LimitAttributes = { + dimension: Scalars['String']; + quantity: Scalars['Int']; +}; + +export type LineItemAttributes = { + cost: Scalars['Int']; + dimension: Scalars['String']; + name: Scalars['String']; + period: Scalars['String']; + type?: InputMaybe; +}; + +export type PlanMetadataAttributes = { + features?: InputMaybe>>; + freeform?: InputMaybe; +}; + +export type PlanFeatureAttributes = { + description: Scalars['String']; + name: Scalars['String']; +}; + +export type ServiceLevelAttributes = { + maxSeverity?: InputMaybe; + minSeverity?: InputMaybe; + responseTime?: InputMaybe; +}; + +export type PublicKeyAttributes = { + content: Scalars['String']; + name: Scalars['String']; +}; + +export type PublisherAttributes = { + address?: InputMaybe; + avatar?: InputMaybe; + community?: InputMaybe; + description?: InputMaybe; + name?: InputMaybe; + phone?: InputMaybe; +}; + +/** Input for creating or updating the community links of an application. */ +export type CommunityAttributes = { + /** The application's Discord server. */ + discord?: InputMaybe; + /** The application's git URL. */ + gitUrl?: InputMaybe; + /** The application's homepage. */ + homepage?: InputMaybe; + /** The application's Slack channel. */ + slack?: InputMaybe; + /** The application's Twitter account. */ + twitter?: InputMaybe; + /** The videos of the application. */ + videos?: InputMaybe>>; +}; + +export type UpgradeQueueAttributes = { + domain?: InputMaybe; + git?: InputMaybe; + name: Scalars['String']; + provider?: InputMaybe; +}; + +export type RecipeAttributes = { + dependencies?: InputMaybe>>; + description?: InputMaybe; + name: Scalars['String']; + oidcSettings?: InputMaybe; + primary?: InputMaybe; + private?: InputMaybe; + provider?: InputMaybe; + restricted?: InputMaybe; + sections?: InputMaybe>>; + tests?: InputMaybe>>; +}; + +export type RecipeReference = { + name: Scalars['String']; + repo: Scalars['String']; +}; + +export type OidcSettingsAttributes = { + authMethod: OidcAuthMethod; + domainKey?: InputMaybe; + subdomain?: InputMaybe; + uriFormat?: InputMaybe; + uriFormats?: InputMaybe>>; +}; + +export type RecipeSectionAttributes = { + configuration?: InputMaybe>>; + items?: InputMaybe>>; + name: Scalars['String']; +}; + +export type RecipeConfigurationAttributes = { + condition?: InputMaybe; + default?: InputMaybe; + documentation?: InputMaybe; + functionName?: InputMaybe; + longform?: InputMaybe; + name: Scalars['String']; + optional?: InputMaybe; + placeholder?: InputMaybe; + type: Datatype; + validation?: InputMaybe; +}; + +export type RecipeConditionAttributes = { + field: Scalars['String']; + operation: Operation; + value?: InputMaybe; +}; + +export type RecipeValidationAttributes = { + message: Scalars['String']; + regex?: InputMaybe; + type: ValidationType; +}; + +export type RecipeItemAttributes = { + configuration?: InputMaybe>>; + name: Scalars['String']; + type: RecipeItemType; +}; + +export enum RecipeItemType { + Helm = 'HELM', + Terraform = 'TERRAFORM' +} + +export type RecipeTestAttributes = { + args?: InputMaybe>>; + message?: InputMaybe; + name: Scalars['String']; + type: TestType; +}; + +export type TestArgumentAttributes = { + key: Scalars['String']; + name: Scalars['String']; + repo: Scalars['String']; +}; + +/** Input for creating or updating an application's attributes. */ +export type RepositoryAttributes = { + /** The category of the application. */ + category?: InputMaybe; + /** The application's community links. */ + community?: InputMaybe; + /** The application's dark icon. */ + darkIcon?: InputMaybe; + /** The default tag to use when deploying the application. */ + defaultTag?: InputMaybe; + /** A short description of the application. */ + description?: InputMaybe; + /** The application's documentation. */ + docs?: InputMaybe; + /** A link to the application's documentation. */ + documentation?: InputMaybe; + /** The application's git URL. */ + gitUrl?: InputMaybe; + /** The application's homepage. */ + homepage?: InputMaybe; + /** The application's icon. */ + icon?: InputMaybe; + /** The application's integration resource definition. */ + integrationResourceDefinition?: InputMaybe; + /** The name of the application. */ + name?: InputMaybe; + /** Notes about the application rendered after deploying and displayed to the user. */ + notes?: InputMaybe; + /** The application's OAuth settings. */ + oauthSettings?: InputMaybe; + /** Whether the application is private. */ + private?: InputMaybe; + /** The application's README. */ + readme?: InputMaybe; + /** A YAML object of secrets. */ + secrets?: InputMaybe; + /** The application's tags. */ + tags?: InputMaybe>>; + /** Whether the application is trending. */ + trending?: InputMaybe; + /** Whether the application is verified. */ + verified?: InputMaybe; +}; + +export type ResourceDefinitionAttributes = { + name: Scalars['String']; + spec?: InputMaybe>>; +}; + +export type SpecificationAttributes = { + inner?: InputMaybe; + name: Scalars['String']; + required?: InputMaybe; + spec?: InputMaybe>>; + type: SpecDatatype; +}; + +export enum SpecDatatype { + Bool = 'BOOL', + Float = 'FLOAT', + Int = 'INT', + List = 'LIST', + Object = 'OBJECT', + String = 'STRING' +} + +/** Input for the application's OAuth settings. */ +export type OauthSettingsAttributes = { + /** The authentication method for the OAuth provider. */ + authMethod: OidcAuthMethod; + /** The URI format for the OAuth provider. */ + uriFormat: Scalars['String']; +}; + +export type ResetTokenAttributes = { + email?: InputMaybe; + type: ResetTokenType; +}; + +export type RoleAttributes = { + description?: InputMaybe; + name?: InputMaybe; + permissions?: InputMaybe>>; + repositories?: InputMaybe>>; + roleBindings?: InputMaybe>>; +}; + +export type ServiceAccountAttributes = { + email?: InputMaybe; + impersonationPolicy?: InputMaybe; + name?: InputMaybe; +}; + +export type ImpersonationPolicyAttributes = { + bindings?: InputMaybe>>; + id?: InputMaybe; +}; + +export type ImpersonationPolicyBindingAttributes = { + groupId?: InputMaybe; + id?: InputMaybe; + userId?: InputMaybe; +}; + +export type CloudShellAttributes = { + credentials: ShellCredentialsAttributes; + demoId?: InputMaybe; + provider?: InputMaybe; + scm?: InputMaybe; + workspace: WorkspaceAttributes; +}; + +export type ShellCredentialsAttributes = { + aws?: InputMaybe; + azure?: InputMaybe; + gcp?: InputMaybe; +}; + +export type AwsShellCredentialsAttributes = { + accessKeyId: Scalars['String']; + secretAccessKey: Scalars['String']; +}; + +export type AzureShellCredentialsAttributes = { + clientId: Scalars['String']; + clientSecret: Scalars['String']; + storageAccount: Scalars['String']; + subscriptionId: Scalars['String']; + tenantId: Scalars['String']; +}; + +export type GcpShellCredentialsAttributes = { + applicationCredentials: Scalars['String']; +}; + +export type ScmAttributes = { + gitUrl?: InputMaybe; + name?: InputMaybe; + org?: InputMaybe; + privateKey?: InputMaybe; + provider?: InputMaybe; + publicKey?: InputMaybe; + token?: InputMaybe; +}; + +export type WorkspaceAttributes = { + bucketPrefix: Scalars['String']; + cluster: Scalars['String']; + project?: InputMaybe; + region: Scalars['String']; + subdomain: Scalars['String']; +}; + +export type StackAttributes = { + collections?: InputMaybe>>; + community?: InputMaybe; + description?: InputMaybe; + displayName?: InputMaybe; + featured?: InputMaybe; + name: Scalars['String']; +}; + +export type StackCollectionAttributes = { + bundles?: InputMaybe>>; + provider: Provider; +}; + +export type SubscriptionAttributes = { + lineItems?: InputMaybe; +}; + +export type SubscriptionLineItemAttributes = { + items?: InputMaybe>>; +}; + +export type TerraformAttributes = { + dependencies?: InputMaybe; + description?: InputMaybe; + name?: InputMaybe; + package?: InputMaybe; + version?: InputMaybe; +}; + +export type TestAttributes = { + name?: InputMaybe; + promoteTag?: InputMaybe; + status?: InputMaybe; + steps?: InputMaybe>>; + tags?: InputMaybe>>; +}; + +export type TestStepAttributes = { + description?: InputMaybe; + id?: InputMaybe; + logs?: InputMaybe; + name?: InputMaybe; + status?: InputMaybe; +}; + +export type UserEventAttributes = { + data?: InputMaybe; + event: Scalars['String']; + status?: InputMaybe; +}; + +export enum UserEventStatus { + Error = 'ERROR', + Ok = 'OK' +} + +export type WebhookAttributes = { + url: Scalars['String']; +}; + +export type MeetingAttributes = { + incidentId?: InputMaybe; + topic: Scalars['String']; +}; + +export type ZoomMeeting = { + __typename?: 'ZoomMeeting'; + joinUrl: Scalars['String']; + password?: Maybe; +}; + +export type DeviceLogin = { + __typename?: 'DeviceLogin'; + deviceToken: Scalars['String']; + loginUrl: Scalars['String']; +}; + +export type FollowerAttributes = { + preferences?: InputMaybe; +}; + +export type NotificationPreferencesAttributes = { + incidentUpdate: Scalars['Boolean']; + mention: Scalars['Boolean']; + message: Scalars['Boolean']; +}; + +export type ContextAttributes = { + buckets?: InputMaybe>>; + configuration: Scalars['Map']; + domains?: InputMaybe>>; +}; + +export type ChartInstallationAttributes = { + chartId?: InputMaybe; + versionId?: InputMaybe; +}; + +export type TerraformInstallationAttributes = { + terraformId?: InputMaybe; + versionId?: InputMaybe; +}; + +export type WebhookResponse = { + __typename?: 'WebhookResponse'; + body?: Maybe; + headers?: Maybe; + statusCode: Scalars['Int']; +}; + +export type ResetTokenRealization = { + password?: InputMaybe; +}; + +export type LockAttributes = { + lock: Scalars['String']; +}; + +export type AccountAttributes = { + billingAddress?: InputMaybe; + domainMappings?: InputMaybe>>; + icon?: InputMaybe; + name?: InputMaybe; +}; + +export type DomainMappingInput = { + domain?: InputMaybe; + enableSso?: InputMaybe; + id?: InputMaybe; +}; + +export type UserAttributes = { + avatar?: InputMaybe; + confirm?: InputMaybe; + email?: InputMaybe; + loginMethod?: InputMaybe; + name?: InputMaybe; + onboarding?: InputMaybe; + onboardingChecklist?: InputMaybe; + password?: InputMaybe; + roles?: InputMaybe; +}; + +export type OnboardingChecklistAttributes = { + dismissed?: InputMaybe; + status?: InputMaybe; +}; + +export type RolesAttributes = { + admin?: InputMaybe; +}; + +export type ChartAttributes = { + tags?: InputMaybe>>; +}; + +export type VersionTagAttributes = { + tag: Scalars['String']; + versionId?: InputMaybe; +}; + +export type DockerRepositoryAttributes = { + public: Scalars['Boolean']; +}; + +/** Input for creating or updating the tag attributes of an application installation. */ +export type InstallationAttributes = { + /** Whether the application should auto upgrade. */ + autoUpgrade?: InputMaybe; + /** A YAML object of context. */ + context?: InputMaybe; + /** The tag to track for auto upgrades. */ + trackTag?: InputMaybe; +}; + +export type UpdatablePlanAttributes = { + default?: InputMaybe; + serviceLevels?: InputMaybe>>; +}; + +export type VersionAttributes = { + tags?: InputMaybe>>; +}; + +export type VersionSpec = { + chart?: InputMaybe; + repository?: InputMaybe; + terraform?: InputMaybe; + version?: InputMaybe; +}; + +export type RootSubscriptionType = { + __typename?: 'RootSubscriptionType'; + incidentDelta?: Maybe; + incidentMessageDelta?: Maybe; + notification?: Maybe; + rolloutDelta?: Maybe; + testDelta?: Maybe; + testLogs?: Maybe; + upgrade?: Maybe; + upgradeQueueDelta?: Maybe; +}; + + +export type RootSubscriptionTypeIncidentDeltaArgs = { + incidentId?: InputMaybe; + repositoryId?: InputMaybe; +}; + + +export type RootSubscriptionTypeIncidentMessageDeltaArgs = { + incidentId?: InputMaybe; +}; + + +export type RootSubscriptionTypeRolloutDeltaArgs = { + repositoryId: Scalars['ID']; +}; + + +export type RootSubscriptionTypeTestDeltaArgs = { + repositoryId: Scalars['ID']; +}; + + +export type RootSubscriptionTypeTestLogsArgs = { + testId: Scalars['ID']; +}; + + +export type RootSubscriptionTypeUpgradeArgs = { + id?: InputMaybe; +}; + +export type IncidentDelta = { + __typename?: 'IncidentDelta'; + delta?: Maybe; + payload?: Maybe; +}; + +export enum Delta { + Create = 'CREATE', + Delete = 'DELETE', + Update = 'UPDATE' +} + +export type IncidentMessageDelta = { + __typename?: 'IncidentMessageDelta'; + delta?: Maybe; + payload?: Maybe; +}; + +export type RolloutDelta = { + __typename?: 'RolloutDelta'; + delta?: Maybe; + payload?: Maybe; +}; + +export type TestDelta = { + __typename?: 'TestDelta'; + delta?: Maybe; + payload?: Maybe; +}; + +export type StepLogs = { + __typename?: 'StepLogs'; + logs?: Maybe>>; + step?: Maybe; +}; + +export type UpgradeQueueDelta = { + __typename?: 'UpgradeQueueDelta'; + delta?: Maybe; + payload?: Maybe; +}; + +export type AuditFragment = { __typename?: 'Audit', id: string, action: string, ip?: string | null, country?: string | null, city?: string | null, latitude?: string | null, longitude?: string | null, insertedAt?: Date | null, actor?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, repository?: { __typename?: 'Repository', id: string, name: string, notes?: string | null, description?: string | null, documentation?: string | null, icon?: string | null, darkIcon?: string | null, private?: boolean | null, trending?: boolean | null, verified?: boolean | null, category?: Category | null, oauthSettings?: { __typename?: 'OauthSettings', uriFormat: string, authMethod: OidcAuthMethod } | null, publisher?: { __typename?: 'Publisher', id?: string | null, name: string, phone?: string | null, avatar?: string | null, description?: string | null, backgroundColor?: string | null, owner?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, address?: { __typename?: 'Address', line1?: string | null, line2?: string | null, city?: string | null, country?: string | null, state?: string | null, zip?: string | null } | null } | null, recipes?: Array<{ __typename?: 'Recipe', name: string, provider?: Provider | null, description?: string | null } | null> | null } | null, group?: { __typename?: 'Group', id: string, name: string, global?: boolean | null, description?: string | null } | null, integrationWebhook?: { __typename?: 'IntegrationWebhook', id: string, name: string, url: string, secret: string, actions?: Array | null } | null, role?: { __typename?: 'Role', id: string, name: string, description?: string | null, repositories?: Array | null, permissions?: Array | null, roleBindings?: Array<{ __typename?: 'RoleBinding', id: string, user?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, group?: { __typename?: 'Group', id: string, name: string, global?: boolean | null, description?: string | null } | null } | null> | null } | null, version?: { __typename?: 'Version', id: string, helm?: Map | null, readme?: string | null, valuesTemplate?: string | null, version: string, insertedAt?: Date | null, package?: string | null, crds?: Array<{ __typename?: 'Crd', id: string, name: string, blob?: string | null } | null> | null, chart?: { __typename?: 'Chart', id?: string | null, name: string, description?: string | null, latestVersion?: string | null, insertedAt?: Date | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null, terraform?: { __typename?: 'Terraform', id?: string | null, name?: string | null } | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null, image?: { __typename?: 'DockerImage', id: string, tag?: string | null, dockerRepository?: { __typename?: 'DockerRepository', name: string } | null } | null }; + +export type PolicyBindingFragment = { __typename?: 'PolicyBinding', id: string, group?: { __typename?: 'Group', id: string, name: string } | null, user?: { __typename?: 'User', id: string, name: string, email: string } | null }; + +export type DnsDomainFragment = { __typename?: 'DnsDomain', id: string, name: string, insertedAt?: Date | null, creator?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, accessPolicy?: { __typename?: 'DnsAccessPolicy', id: string, bindings?: Array<{ __typename?: 'PolicyBinding', id: string, group?: { __typename?: 'Group', id: string, name: string } | null, user?: { __typename?: 'User', id: string, name: string, email: string } | null } | null> | null } | null }; + +export type InviteFragment = { __typename?: 'Invite', id: string, secureId?: string | null, email?: string | null, insertedAt?: Date | null }; + +export type OidcLoginFragment = { __typename?: 'OidcLogin', ip?: string | null, country?: string | null, city?: string | null, latitude?: string | null, longitude?: string | null, insertedAt?: Date | null, user?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, owner?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, repository?: { __typename?: 'Repository', id: string, name: string, notes?: string | null, description?: string | null, documentation?: string | null, icon?: string | null, darkIcon?: string | null, private?: boolean | null, trending?: boolean | null, verified?: boolean | null, category?: Category | null, oauthSettings?: { __typename?: 'OauthSettings', uriFormat: string, authMethod: OidcAuthMethod } | null, publisher?: { __typename?: 'Publisher', id?: string | null, name: string, phone?: string | null, avatar?: string | null, description?: string | null, backgroundColor?: string | null, owner?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, address?: { __typename?: 'Address', line1?: string | null, line2?: string | null, city?: string | null, country?: string | null, state?: string | null, zip?: string | null } | null } | null, recipes?: Array<{ __typename?: 'Recipe', name: string, provider?: Provider | null, description?: string | null } | null> | null } | null }; + +export type UpdateAccountMutationVariables = Exact<{ + attributes: AccountAttributes; +}>; + + +export type UpdateAccountMutation = { __typename?: 'RootMutationType', updateAccount?: { __typename?: 'Account', id: string, name?: string | null, billingCustomerId?: string | null, backgroundColor?: string | null, domainMappings?: Array<{ __typename?: 'DomainMapping', id: string, domain: string, enableSso?: boolean | null } | null> | null } | null }; + +export type ArtifactFragment = { __typename?: 'Artifact', id?: string | null, name?: string | null, blob?: string | null, type?: ArtifactType | null, platform?: ArtifactPlatform | null, arch?: string | null, filesize?: number | null, sha?: string | null, readme?: string | null, insertedAt?: Date | null, updatedAt?: Date | null }; + +export type ListArtifactsQueryVariables = Exact<{ + id: Scalars['ID']; +}>; + + +export type ListArtifactsQuery = { __typename?: 'RootQueryType', repository?: { __typename?: 'Repository', artifacts?: Array<{ __typename?: 'Artifact', id?: string | null, name?: string | null, blob?: string | null, type?: ArtifactType | null, platform?: ArtifactPlatform | null, arch?: string | null, filesize?: number | null, sha?: string | null, readme?: string | null, insertedAt?: Date | null, updatedAt?: Date | null } | null> | null } | null }; + +export type CreateArtifactMutationVariables = Exact<{ + repoName: Scalars['String']; + name: Scalars['String']; + readme: Scalars['String']; + artifactType: Scalars['String']; + platform: Scalars['String']; + blob: Scalars['UploadOrUrl']; + arch?: InputMaybe; +}>; + + +export type CreateArtifactMutation = { __typename?: 'RootMutationType', createArtifact?: { __typename?: 'Artifact', id?: string | null, name?: string | null, blob?: string | null, type?: ArtifactType | null, platform?: ArtifactPlatform | null, arch?: string | null, filesize?: number | null, sha?: string | null, readme?: string | null, insertedAt?: Date | null, updatedAt?: Date | null } | null }; + +export type ChartFragment = { __typename?: 'Chart', id?: string | null, name: string, description?: string | null, latestVersion?: string | null, insertedAt?: Date | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null }; + +export type CrdFragment = { __typename?: 'Crd', id: string, name: string, blob?: string | null }; + +export type ChartInstallationFragment = { __typename?: 'ChartInstallation', id?: string | null, chart?: { __typename?: 'Chart', id?: string | null, name: string, description?: string | null, latestVersion?: string | null, insertedAt?: Date | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null, version?: { __typename?: 'Version', id: string, helm?: Map | null, readme?: string | null, valuesTemplate?: string | null, version: string, insertedAt?: Date | null, package?: string | null, crds?: Array<{ __typename?: 'Crd', id: string, name: string, blob?: string | null } | null> | null, chart?: { __typename?: 'Chart', id?: string | null, name: string, description?: string | null, latestVersion?: string | null, insertedAt?: Date | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null, terraform?: { __typename?: 'Terraform', id?: string | null, name?: string | null } | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null }; + +export type ScanViolationFragment = { __typename?: 'ScanViolation', ruleName?: string | null, description?: string | null, ruleId?: string | null, severity?: VulnGrade | null, category?: string | null, resourceName?: string | null, resourceType?: string | null, file?: string | null, line?: number | null }; + +export type ScanErrorFragment = { __typename?: 'ScanError', message?: string | null }; + +export type PackageScanFragment = { __typename?: 'PackageScan', id: string, grade?: ImageGrade | null, violations?: Array<{ __typename?: 'ScanViolation', ruleName?: string | null, description?: string | null, ruleId?: string | null, severity?: VulnGrade | null, category?: string | null, resourceName?: string | null, resourceType?: string | null, file?: string | null, line?: number | null } | null> | null, errors?: Array<{ __typename?: 'ScanError', message?: string | null } | null> | null }; + +export type GetChartsQueryVariables = Exact<{ + id: Scalars['ID']; +}>; + + +export type GetChartsQuery = { __typename?: 'RootQueryType', charts?: { __typename?: 'ChartConnection', edges?: Array<{ __typename?: 'ChartEdge', node?: { __typename?: 'Chart', id?: string | null, name: string, description?: string | null, latestVersion?: string | null, insertedAt?: Date | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null } | null> | null } | null }; + +export type GetVersionsQueryVariables = Exact<{ + id: Scalars['ID']; +}>; + + +export type GetVersionsQuery = { __typename?: 'RootQueryType', versions?: { __typename?: 'VersionConnection', edges?: Array<{ __typename?: 'VersionEdge', node?: { __typename?: 'Version', id: string, helm?: Map | null, readme?: string | null, valuesTemplate?: string | null, version: string, insertedAt?: Date | null, package?: string | null, crds?: Array<{ __typename?: 'Crd', id: string, name: string, blob?: string | null } | null> | null, chart?: { __typename?: 'Chart', id?: string | null, name: string, description?: string | null, latestVersion?: string | null, insertedAt?: Date | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null, terraform?: { __typename?: 'Terraform', id?: string | null, name?: string | null } | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null } | null> | null } | null }; + +export type GetChartInstallationsQueryVariables = Exact<{ + id: Scalars['ID']; +}>; + + +export type GetChartInstallationsQuery = { __typename?: 'RootQueryType', chartInstallations?: { __typename?: 'ChartInstallationConnection', edges?: Array<{ __typename?: 'ChartInstallationEdge', node?: { __typename?: 'ChartInstallation', id?: string | null, chart?: { __typename?: 'Chart', id?: string | null, name: string, description?: string | null, latestVersion?: string | null, insertedAt?: Date | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null, version?: { __typename?: 'Version', id: string, helm?: Map | null, readme?: string | null, valuesTemplate?: string | null, version: string, insertedAt?: Date | null, package?: string | null, crds?: Array<{ __typename?: 'Crd', id: string, name: string, blob?: string | null } | null> | null, chart?: { __typename?: 'Chart', id?: string | null, name: string, description?: string | null, latestVersion?: string | null, insertedAt?: Date | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null, terraform?: { __typename?: 'Terraform', id?: string | null, name?: string | null } | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null } | null } | null> | null } | null }; + +export type GetPackageInstallationsQueryVariables = Exact<{ + id: Scalars['ID']; +}>; + + +export type GetPackageInstallationsQuery = { __typename?: 'RootQueryType', chartInstallations?: { __typename?: 'ChartInstallationConnection', edges?: Array<{ __typename?: 'ChartInstallationEdge', node?: { __typename?: 'ChartInstallation', id?: string | null, chart?: { __typename?: 'Chart', id?: string | null, name: string, description?: string | null, latestVersion?: string | null, insertedAt?: Date | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null, version?: { __typename?: 'Version', id: string, helm?: Map | null, readme?: string | null, valuesTemplate?: string | null, version: string, insertedAt?: Date | null, package?: string | null, crds?: Array<{ __typename?: 'Crd', id: string, name: string, blob?: string | null } | null> | null, chart?: { __typename?: 'Chart', id?: string | null, name: string, description?: string | null, latestVersion?: string | null, insertedAt?: Date | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null, terraform?: { __typename?: 'Terraform', id?: string | null, name?: string | null } | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null } | null } | null> | null } | null, terraformInstallations?: { __typename?: 'TerraformInstallationConnection', edges?: Array<{ __typename?: 'TerraformInstallationEdge', node?: { __typename?: 'TerraformInstallation', id?: string | null, terraform?: { __typename?: 'Terraform', id?: string | null, name?: string | null, readme?: string | null, package?: string | null, description?: string | null, latestVersion?: string | null, valuesTemplate?: string | null, insertedAt?: Date | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null, version?: { __typename?: 'Version', id: string, helm?: Map | null, readme?: string | null, valuesTemplate?: string | null, version: string, insertedAt?: Date | null, package?: string | null, crds?: Array<{ __typename?: 'Crd', id: string, name: string, blob?: string | null } | null> | null, chart?: { __typename?: 'Chart', id?: string | null, name: string, description?: string | null, latestVersion?: string | null, insertedAt?: Date | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null, terraform?: { __typename?: 'Terraform', id?: string | null, name?: string | null } | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null } | null } | null> | null } | null }; + +export type CreateCrdMutationVariables = Exact<{ + chartName: ChartName; + name: Scalars['String']; + blob: Scalars['UploadOrUrl']; +}>; + + +export type CreateCrdMutation = { __typename?: 'RootMutationType', createCrd?: { __typename?: 'Crd', id: string } | null }; + +export type UninstallChartMutationVariables = Exact<{ + id: Scalars['ID']; +}>; + + +export type UninstallChartMutation = { __typename?: 'RootMutationType', deleteChartInstallation?: { __typename?: 'ChartInstallation', id?: string | null } | null }; + +export type DnsRecordFragment = { __typename?: 'DnsRecord', id: string, name: string, type: DnsRecordType, records?: Array | null, cluster: string, provider: Provider, insertedAt?: Date | null, creator?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null }; + +export type GetDnsRecordsQueryVariables = Exact<{ + cluster: Scalars['String']; + provider: Provider; +}>; + + +export type GetDnsRecordsQuery = { __typename?: 'RootQueryType', dnsRecords?: { __typename?: 'DnsRecordConnection', edges?: Array<{ __typename?: 'DnsRecordEdge', node?: { __typename?: 'DnsRecord', id: string, name: string, type: DnsRecordType, records?: Array | null, cluster: string, provider: Provider, insertedAt?: Date | null, creator?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null } | null } | null> | null } | null }; + +export type CreateDnsRecordMutationVariables = Exact<{ + cluster: Scalars['String']; + provider: Provider; + attributes: DnsRecordAttributes; +}>; + + +export type CreateDnsRecordMutation = { __typename?: 'RootMutationType', createDnsRecord?: { __typename?: 'DnsRecord', id: string, name: string, type: DnsRecordType, records?: Array | null, cluster: string, provider: Provider, insertedAt?: Date | null, creator?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null } | null }; + +export type DeleteDnsRecordMutationVariables = Exact<{ + name: Scalars['String']; + type: DnsRecordType; +}>; + + +export type DeleteDnsRecordMutation = { __typename?: 'RootMutationType', deleteDnsRecord?: { __typename?: 'DnsRecord', id: string, name: string, type: DnsRecordType, records?: Array | null, cluster: string, provider: Provider, insertedAt?: Date | null, creator?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null } | null }; + +export type DockerRepoFragment = { __typename?: 'DockerRepository', id: string, name: string, public?: boolean | null, insertedAt?: Date | null, updatedAt?: Date | null, repository?: { __typename?: 'Repository', id: string, name: string } | null }; + +export type DockerRepositoryFragment = { __typename?: 'DockerRepository', id: string, name: string, public?: boolean | null, insertedAt?: Date | null, updatedAt?: Date | null, repository?: { __typename?: 'Repository', id: string, name: string, editable?: boolean | null } | null }; + +export type DockerImageFragment = { __typename?: 'DockerImage', id: string, tag?: string | null, digest: string, scannedAt?: Date | null, grade?: ImageGrade | null, insertedAt?: Date | null, updatedAt?: Date | null }; + +export type VulnerabilityFragment = { __typename?: 'Vulnerability', id: string, title?: string | null, description?: string | null, vulnerabilityId?: string | null, package?: string | null, installedVersion?: string | null, fixedVersion?: string | null, source?: string | null, url?: string | null, severity?: VulnGrade | null, score?: number | null, cvss?: { __typename?: 'Cvss', attackVector?: VulnVector | null, attackComplexity?: VulnGrade | null, privilegesRequired?: VulnGrade | null, userInteraction?: VulnRequirement | null, confidentiality?: VulnGrade | null, integrity?: VulnGrade | null, availability?: VulnGrade | null } | null, layer?: { __typename?: 'ImageLayer', digest?: string | null, diffId?: string | null } | null }; + +export type CreateDomainMutationVariables = Exact<{ + name: Scalars['String']; +}>; + + +export type CreateDomainMutation = { __typename?: 'RootMutationType', provisionDomain?: { __typename?: 'DnsDomain', id: string, name: string, insertedAt?: Date | null, creator?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, accessPolicy?: { __typename?: 'DnsAccessPolicy', id: string, bindings?: Array<{ __typename?: 'PolicyBinding', id: string, group?: { __typename?: 'Group', id: string, name: string } | null, user?: { __typename?: 'User', id: string, name: string, email: string } | null } | null> | null } | null } | null }; + +export type GroupMembersQueryVariables = Exact<{ + cursor?: InputMaybe; + id: Scalars['ID']; +}>; + + +export type GroupMembersQuery = { __typename?: 'RootQueryType', groupMembers?: { __typename?: 'GroupMemberConnection', pageInfo: { __typename?: 'PageInfo', endCursor?: string | null, hasNextPage: boolean }, edges?: Array<{ __typename?: 'GroupMemberEdge', node?: { __typename?: 'GroupMember', id: string, user?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null } | null } | null> | null } | null }; + +export type CreateGroupMemberMutationVariables = Exact<{ + groupId: Scalars['ID']; + userId: Scalars['ID']; +}>; + + +export type CreateGroupMemberMutation = { __typename?: 'RootMutationType', createGroupMember?: { __typename?: 'GroupMember', id: string, user?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null } | null }; + +export type DeleteGroupMemberMutationVariables = Exact<{ + groupId: Scalars['ID']; + userId: Scalars['ID']; +}>; + + +export type DeleteGroupMemberMutation = { __typename?: 'RootMutationType', deleteGroupMember?: { __typename?: 'GroupMember', id: string, user?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null } | null }; + +export type CreateGroupMutationVariables = Exact<{ + attributes: GroupAttributes; +}>; + + +export type CreateGroupMutation = { __typename?: 'RootMutationType', createGroup?: { __typename?: 'Group', id: string, name: string, global?: boolean | null, description?: string | null } | null }; + +export type UpdateGroupMutationVariables = Exact<{ + id: Scalars['ID']; + attributes: GroupAttributes; +}>; + + +export type UpdateGroupMutation = { __typename?: 'RootMutationType', updateGroup?: { __typename?: 'Group', id: string, name: string, global?: boolean | null, description?: string | null } | null }; + +export type DeleteGroupMutationVariables = Exact<{ + id: Scalars['ID']; +}>; + + +export type DeleteGroupMutation = { __typename?: 'RootMutationType', deleteGroup?: { __typename?: 'Group', id: string, name: string, global?: boolean | null, description?: string | null } | null }; + +export type GroupsQueryVariables = Exact<{ + q?: InputMaybe; + cursor?: InputMaybe; +}>; + + +export type GroupsQuery = { __typename?: 'RootQueryType', groups?: { __typename?: 'GroupConnection', pageInfo: { __typename?: 'PageInfo', endCursor?: string | null, hasNextPage: boolean }, edges?: Array<{ __typename?: 'GroupEdge', node?: { __typename?: 'Group', id: string, name: string, global?: boolean | null, description?: string | null } | null } | null> | null } | null }; + +export type PostmortemFragment = { __typename?: 'Postmortem', id: string, content: string, actionItems?: Array<{ __typename?: 'ActionItem', type: ActionItemType, link: string } | null> | null }; + +export type FollowerFragment = { __typename?: 'Follower', id: string, incident?: { __typename?: 'Incident', id: string } | null, user: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null }, preferences?: { __typename?: 'NotificationPreferences', message?: boolean | null, incidentUpdate?: boolean | null, mention?: boolean | null } | null }; + +export type SlimSubscriptionFragment = { __typename?: 'SlimSubscription', id: string, lineItems?: { __typename?: 'SubscriptionLineItems', items?: Array<{ __typename?: 'Limit', dimension: string, quantity: number } | null> | null } | null, plan?: { __typename?: 'Plan', id: string, name: string, cost: number, period?: string | null, serviceLevels?: Array<{ __typename?: 'ServiceLevel', minSeverity?: number | null, maxSeverity?: number | null, responseTime?: number | null } | null> | null, lineItems?: { __typename?: 'PlanLineItems', included?: Array<{ __typename?: 'Limit', dimension: string, quantity: number } | null> | null, items?: Array<{ __typename?: 'LineItem', name: string, dimension: string, cost: number, period?: string | null, type?: PlanType | null } | null> | null } | null, metadata?: { __typename?: 'PlanMetadata', features?: Array<{ __typename?: 'PlanFeature', name: string, description: string } | null> | null } | null } | null }; + +export type ClusterInformationFragment = { __typename?: 'ClusterInformation', version?: string | null, gitCommit?: string | null, platform?: string | null }; + +export type IncidentFragment = { __typename?: 'Incident', id: string, title: string, description?: string | null, severity: number, status: IncidentStatus, notificationCount?: number | null, nextResponseAt?: Date | null, insertedAt?: Date | null, creator: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null }, owner?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, repository: { __typename?: 'Repository', id: string, name: string, notes?: string | null, description?: string | null, documentation?: string | null, icon?: string | null, darkIcon?: string | null, private?: boolean | null, trending?: boolean | null, verified?: boolean | null, category?: Category | null, oauthSettings?: { __typename?: 'OauthSettings', uriFormat: string, authMethod: OidcAuthMethod } | null, publisher?: { __typename?: 'Publisher', id?: string | null, name: string, phone?: string | null, avatar?: string | null, description?: string | null, backgroundColor?: string | null, owner?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, address?: { __typename?: 'Address', line1?: string | null, line2?: string | null, city?: string | null, country?: string | null, state?: string | null, zip?: string | null } | null } | null, recipes?: Array<{ __typename?: 'Recipe', name: string, provider?: Provider | null, description?: string | null } | null> | null }, subscription?: { __typename?: 'SlimSubscription', id: string, lineItems?: { __typename?: 'SubscriptionLineItems', items?: Array<{ __typename?: 'Limit', dimension: string, quantity: number } | null> | null } | null, plan?: { __typename?: 'Plan', id: string, name: string, cost: number, period?: string | null, serviceLevels?: Array<{ __typename?: 'ServiceLevel', minSeverity?: number | null, maxSeverity?: number | null, responseTime?: number | null } | null> | null, lineItems?: { __typename?: 'PlanLineItems', included?: Array<{ __typename?: 'Limit', dimension: string, quantity: number } | null> | null, items?: Array<{ __typename?: 'LineItem', name: string, dimension: string, cost: number, period?: string | null, type?: PlanType | null } | null> | null } | null, metadata?: { __typename?: 'PlanMetadata', features?: Array<{ __typename?: 'PlanFeature', name: string, description: string } | null> | null } | null } | null } | null, clusterInformation?: { __typename?: 'ClusterInformation', version?: string | null, gitCommit?: string | null, platform?: string | null } | null, tags?: Array<{ __typename?: 'Tag', tag: string } | null> | null }; + +export type IncidentHistoryFragment = { __typename?: 'IncidentHistory', id: string, action: IncidentAction, insertedAt?: Date | null, changes?: Array<{ __typename?: 'IncidentChange', key: string, prev?: string | null, next?: string | null } | null> | null, actor: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } }; + +export type FileFragment = { __typename?: 'File', id: string, blob: string, mediaType?: MediaType | null, contentType?: string | null, filesize?: number | null, filename?: string | null }; + +export type IncidentMessageFragment = { __typename?: 'IncidentMessage', id: string, text: string, insertedAt?: Date | null, creator: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null }, reactions?: Array<{ __typename?: 'Reaction', name: string, creator: { __typename?: 'User', id: string, email: string } } | null> | null, file?: { __typename?: 'File', id: string, blob: string, mediaType?: MediaType | null, contentType?: string | null, filesize?: number | null, filename?: string | null } | null, entities?: Array<{ __typename?: 'MessageEntity', type: MessageEntityType, text?: string | null, startIndex?: number | null, endIndex?: number | null, user?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null } | null> | null }; + +export type NotificationFragment = { __typename?: 'Notification', id: string, type: NotificationType, msg?: string | null, insertedAt?: Date | null, actor: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null }, incident?: { __typename?: 'Incident', id: string, title: string, repository: { __typename?: 'Repository', id: string, name: string, icon?: string | null, darkIcon?: string | null } } | null, message?: { __typename?: 'IncidentMessage', text: string } | null, repository?: { __typename?: 'Repository', id: string, name: string, icon?: string | null, darkIcon?: string | null } | null }; + +export type InstallationFragment = { __typename?: 'Installation', id: string, context?: Map | null, license?: string | null, licenseKey?: string | null, acmeKeyId?: string | null, acmeSecret?: string | null, autoUpgrade?: boolean | null, trackTag: string, repository?: { __typename?: 'Repository', id: string, name: string, notes?: string | null, description?: string | null, documentation?: string | null, icon?: string | null, darkIcon?: string | null, private?: boolean | null, trending?: boolean | null, verified?: boolean | null, category?: Category | null, oauthSettings?: { __typename?: 'OauthSettings', uriFormat: string, authMethod: OidcAuthMethod } | null, publisher?: { __typename?: 'Publisher', id?: string | null, name: string, phone?: string | null, avatar?: string | null, description?: string | null, backgroundColor?: string | null, owner?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, address?: { __typename?: 'Address', line1?: string | null, line2?: string | null, city?: string | null, country?: string | null, state?: string | null, zip?: string | null } | null } | null, recipes?: Array<{ __typename?: 'Recipe', name: string, provider?: Provider | null, description?: string | null } | null> | null } | null, user?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, oidcProvider?: { __typename?: 'OidcProvider', id: string, clientId: string, authMethod: OidcAuthMethod, clientSecret: string, redirectUris?: Array | null, bindings?: Array<{ __typename?: 'OidcProviderBinding', id: string, user?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, group?: { __typename?: 'Group', id: string, name: string, global?: boolean | null, description?: string | null } | null } | null> | null, configuration?: { __typename?: 'OuathConfiguration', issuer?: string | null, authorizationEndpoint?: string | null, tokenEndpoint?: string | null, jwksUri?: string | null, userinfoEndpoint?: string | null } | null } | null }; + +export type GetInstallationQueryVariables = Exact<{ + name?: InputMaybe; +}>; + + +export type GetInstallationQuery = { __typename?: 'RootQueryType', installation?: { __typename?: 'Installation', id: string, context?: Map | null, license?: string | null, licenseKey?: string | null, acmeKeyId?: string | null, acmeSecret?: string | null, autoUpgrade?: boolean | null, trackTag: string, repository?: { __typename?: 'Repository', id: string, name: string, notes?: string | null, description?: string | null, documentation?: string | null, icon?: string | null, darkIcon?: string | null, private?: boolean | null, trending?: boolean | null, verified?: boolean | null, category?: Category | null, oauthSettings?: { __typename?: 'OauthSettings', uriFormat: string, authMethod: OidcAuthMethod } | null, publisher?: { __typename?: 'Publisher', id?: string | null, name: string, phone?: string | null, avatar?: string | null, description?: string | null, backgroundColor?: string | null, owner?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, address?: { __typename?: 'Address', line1?: string | null, line2?: string | null, city?: string | null, country?: string | null, state?: string | null, zip?: string | null } | null } | null, recipes?: Array<{ __typename?: 'Recipe', name: string, provider?: Provider | null, description?: string | null } | null> | null } | null, user?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, oidcProvider?: { __typename?: 'OidcProvider', id: string, clientId: string, authMethod: OidcAuthMethod, clientSecret: string, redirectUris?: Array | null, bindings?: Array<{ __typename?: 'OidcProviderBinding', id: string, user?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, group?: { __typename?: 'Group', id: string, name: string, global?: boolean | null, description?: string | null } | null } | null> | null, configuration?: { __typename?: 'OuathConfiguration', issuer?: string | null, authorizationEndpoint?: string | null, tokenEndpoint?: string | null, jwksUri?: string | null, userinfoEndpoint?: string | null } | null } | null } | null }; + +export type GetInstallationByIdQueryVariables = Exact<{ + id?: InputMaybe; +}>; + + +export type GetInstallationByIdQuery = { __typename?: 'RootQueryType', installation?: { __typename?: 'Installation', id: string, context?: Map | null, license?: string | null, licenseKey?: string | null, acmeKeyId?: string | null, acmeSecret?: string | null, autoUpgrade?: boolean | null, trackTag: string, repository?: { __typename?: 'Repository', id: string, name: string, notes?: string | null, description?: string | null, documentation?: string | null, icon?: string | null, darkIcon?: string | null, private?: boolean | null, trending?: boolean | null, verified?: boolean | null, category?: Category | null, oauthSettings?: { __typename?: 'OauthSettings', uriFormat: string, authMethod: OidcAuthMethod } | null, publisher?: { __typename?: 'Publisher', id?: string | null, name: string, phone?: string | null, avatar?: string | null, description?: string | null, backgroundColor?: string | null, owner?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, address?: { __typename?: 'Address', line1?: string | null, line2?: string | null, city?: string | null, country?: string | null, state?: string | null, zip?: string | null } | null } | null, recipes?: Array<{ __typename?: 'Recipe', name: string, provider?: Provider | null, description?: string | null } | null> | null } | null, user?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, oidcProvider?: { __typename?: 'OidcProvider', id: string, clientId: string, authMethod: OidcAuthMethod, clientSecret: string, redirectUris?: Array | null, bindings?: Array<{ __typename?: 'OidcProviderBinding', id: string, user?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, group?: { __typename?: 'Group', id: string, name: string, global?: boolean | null, description?: string | null } | null } | null> | null, configuration?: { __typename?: 'OuathConfiguration', issuer?: string | null, authorizationEndpoint?: string | null, tokenEndpoint?: string | null, jwksUri?: string | null, userinfoEndpoint?: string | null } | null } | null } | null }; + +export type GetInstallationsQueryVariables = Exact<{ + first?: InputMaybe; +}>; + + +export type GetInstallationsQuery = { __typename?: 'RootQueryType', installations?: { __typename?: 'InstallationConnection', edges?: Array<{ __typename?: 'InstallationEdge', node?: { __typename?: 'Installation', id: string, context?: Map | null, license?: string | null, licenseKey?: string | null, acmeKeyId?: string | null, acmeSecret?: string | null, autoUpgrade?: boolean | null, trackTag: string, repository?: { __typename?: 'Repository', id: string, name: string, notes?: string | null, description?: string | null, documentation?: string | null, icon?: string | null, darkIcon?: string | null, private?: boolean | null, trending?: boolean | null, verified?: boolean | null, category?: Category | null, oauthSettings?: { __typename?: 'OauthSettings', uriFormat: string, authMethod: OidcAuthMethod } | null, publisher?: { __typename?: 'Publisher', id?: string | null, name: string, phone?: string | null, avatar?: string | null, description?: string | null, backgroundColor?: string | null, owner?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, address?: { __typename?: 'Address', line1?: string | null, line2?: string | null, city?: string | null, country?: string | null, state?: string | null, zip?: string | null } | null } | null, recipes?: Array<{ __typename?: 'Recipe', name: string, provider?: Provider | null, description?: string | null } | null> | null } | null, user?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, oidcProvider?: { __typename?: 'OidcProvider', id: string, clientId: string, authMethod: OidcAuthMethod, clientSecret: string, redirectUris?: Array | null, bindings?: Array<{ __typename?: 'OidcProviderBinding', id: string, user?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, group?: { __typename?: 'Group', id: string, name: string, global?: boolean | null, description?: string | null } | null } | null> | null, configuration?: { __typename?: 'OuathConfiguration', issuer?: string | null, authorizationEndpoint?: string | null, tokenEndpoint?: string | null, jwksUri?: string | null, userinfoEndpoint?: string | null } | null } | null } | null } | null> | null } | null }; + +export type UpsertOidcProviderMutationVariables = Exact<{ + id: Scalars['ID']; + attributes: OidcAttributes; +}>; + + +export type UpsertOidcProviderMutation = { __typename?: 'RootMutationType', upsertOidcProvider?: { __typename?: 'OidcProvider', id: string } | null }; + +export type IntegrationWebhookFragment = { __typename?: 'IntegrationWebhook', id: string, name: string, url: string, secret: string, actions?: Array | null }; + +export type WebhookLogFragment = { __typename?: 'WebhookLog', id: string, state: WebhookLogState, status?: number | null, payload?: Map | null, response?: string | null, insertedAt?: Date | null }; + +export type OauthIntegrationFragment = { __typename?: 'OauthIntegration', id: string, service: OauthService, insertedAt?: Date | null }; + +export type ZoomMeetingFragment = { __typename?: 'ZoomMeeting', joinUrl: string, password?: string | null }; + +export type SignupInviteMutationVariables = Exact<{ + attributes: UserAttributes; + inviteId: Scalars['String']; +}>; + + +export type SignupInviteMutation = { __typename?: 'RootMutationType', signup?: { __typename?: 'User', jwt?: string | null } | null }; + +export type RealizeInviteMutationVariables = Exact<{ + id: Scalars['String']; +}>; + + +export type RealizeInviteMutation = { __typename?: 'RootMutationType', realizeInvite?: { __typename?: 'User', jwt?: string | null } | null }; + +export type InviteQueryVariables = Exact<{ + id: Scalars['String']; +}>; + + +export type InviteQuery = { __typename?: 'RootQueryType', invite?: { __typename?: 'Invite', id: string, email?: string | null, existing: boolean, account?: { __typename?: 'Account', id: string, name?: string | null, billingCustomerId?: string | null, backgroundColor?: string | null } | null, user?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, account: { __typename?: 'Account', id: string, name?: string | null, billingCustomerId?: string | null, backgroundColor?: string | null }, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null } | null }; + +export type MetricFragment = { __typename?: 'Metric', name: string, tags?: Array<{ __typename?: 'MetricTag', name: string, value: string } | null> | null, values?: Array<{ __typename?: 'MetricValue', time?: Date | null, value?: number | null } | null> | null }; + +export type PageInfoFragment = { __typename?: 'PageInfo', endCursor?: string | null, hasNextPage: boolean }; + +export type OidcProviderFragment = { __typename?: 'OidcProvider', id: string, clientId: string, authMethod: OidcAuthMethod, clientSecret: string, redirectUris?: Array | null, bindings?: Array<{ __typename?: 'OidcProviderBinding', id: string, user?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, group?: { __typename?: 'Group', id: string, name: string, global?: boolean | null, description?: string | null } | null } | null> | null, configuration?: { __typename?: 'OuathConfiguration', issuer?: string | null, authorizationEndpoint?: string | null, tokenEndpoint?: string | null, jwksUri?: string | null, userinfoEndpoint?: string | null } | null }; + +export type OAuthInfoFragment = { __typename?: 'OauthInfo', provider: OauthProvider, authorizeUrl: string }; + +export type LimitFragment = { __typename?: 'Limit', dimension: string, quantity: number }; + +export type LineItemFragment = { __typename?: 'LineItem', name: string, dimension: string, cost: number, period?: string | null, type?: PlanType | null }; + +export type ServiceLevelFragment = { __typename?: 'ServiceLevel', minSeverity?: number | null, maxSeverity?: number | null, responseTime?: number | null }; + +export type PlanFragment = { __typename?: 'Plan', id: string, name: string, cost: number, period?: string | null, serviceLevels?: Array<{ __typename?: 'ServiceLevel', minSeverity?: number | null, maxSeverity?: number | null, responseTime?: number | null } | null> | null, lineItems?: { __typename?: 'PlanLineItems', included?: Array<{ __typename?: 'Limit', dimension: string, quantity: number } | null> | null, items?: Array<{ __typename?: 'LineItem', name: string, dimension: string, cost: number, period?: string | null, type?: PlanType | null } | null> | null } | null, metadata?: { __typename?: 'PlanMetadata', features?: Array<{ __typename?: 'PlanFeature', name: string, description: string } | null> | null } | null }; + +export type SubscriptionFragment = { __typename?: 'RepositorySubscription', id: string, plan?: { __typename?: 'Plan', id: string, name: string, cost: number, period?: string | null, serviceLevels?: Array<{ __typename?: 'ServiceLevel', minSeverity?: number | null, maxSeverity?: number | null, responseTime?: number | null } | null> | null, lineItems?: { __typename?: 'PlanLineItems', included?: Array<{ __typename?: 'Limit', dimension: string, quantity: number } | null> | null, items?: Array<{ __typename?: 'LineItem', name: string, dimension: string, cost: number, period?: string | null, type?: PlanType | null } | null> | null } | null, metadata?: { __typename?: 'PlanMetadata', features?: Array<{ __typename?: 'PlanFeature', name: string, description: string } | null> | null } | null } | null, lineItems?: { __typename?: 'SubscriptionLineItems', items?: Array<{ __typename?: 'Limit', dimension: string, quantity: number } | null> | null } | null }; + +export type InvoiceItemFragment = { __typename?: 'InvoiceItem', amount: number, currency: string, description?: string | null }; + +export type InvoiceFragment = { __typename?: 'Invoice', number: string, amountDue: number, amountPaid: number, currency: string, status?: string | null, createdAt?: Date | null, hostedInvoiceUrl?: string | null, lines?: Array<{ __typename?: 'InvoiceItem', amount: number, currency: string, description?: string | null } | null> | null }; + +export type CardFragment = { __typename?: 'Card', id: string, last4: string, expMonth: number, expYear: number, name?: string | null, brand: string }; + +export type SubscriptionQueryVariables = Exact<{ [key: string]: never; }>; + + +export type SubscriptionQuery = { __typename?: 'RootQueryType', account?: { __typename?: 'Account', billingCustomerId?: string | null, grandfatheredUntil?: Date | null, delinquentAt?: Date | null, userCount?: string | null, clusterCount?: string | null, availableFeatures?: { __typename?: 'PlanFeatures', userManagement?: boolean | null, audit?: boolean | null } | null, subscription?: { __typename?: 'PlatformSubscription', id: string, plan?: { __typename?: 'PlatformPlan', id: string, period: PaymentPeriod, lineItems?: Array<{ __typename?: 'PlatformPlanItem', dimension: LineItemDimension, cost: number } | null> | null } | null } | null, billingAddress?: { __typename?: 'Address', name?: string | null, line1?: string | null, line2?: string | null, zip?: string | null, state?: string | null, city?: string | null, country?: string | null } | null } | null }; + +export type UpdateAccountBillingMutationVariables = Exact<{ + attributes: AccountAttributes; +}>; + + +export type UpdateAccountBillingMutation = { __typename?: 'RootMutationType', updateAccount?: { __typename?: 'Account', id: string } | null }; + +export type UpgradeToProfessionalPlanMutationVariables = Exact<{ + planId: Scalars['ID']; +}>; + + +export type UpgradeToProfessionalPlanMutation = { __typename?: 'RootMutationType', createPlatformSubscription?: { __typename?: 'PlatformSubscription', id: string } | null }; + +export type DowngradeToFreePlanMutationMutationVariables = Exact<{ [key: string]: never; }>; + + +export type DowngradeToFreePlanMutationMutation = { __typename?: 'RootMutationType', deletePlatformSubscription?: { __typename?: 'Account', id: string } | null }; + +export type CardsQueryVariables = Exact<{ [key: string]: never; }>; + + +export type CardsQuery = { __typename?: 'RootQueryType', me?: { __typename?: 'User', id: string, cards?: { __typename?: 'CardConnection', edges?: Array<{ __typename?: 'CardEdge', node?: { __typename?: 'Card', id: string, last4: string, expMonth: number, expYear: number, name?: string | null, brand: string } | null } | null> | null } | null } | null }; + +export type CreateCardMutationVariables = Exact<{ + source: Scalars['String']; + address?: InputMaybe; +}>; + + +export type CreateCardMutation = { __typename?: 'RootMutationType', createCard?: { __typename?: 'Account', id: string } | null }; + +export type DeleteCardMutationVariables = Exact<{ + id: Scalars['ID']; +}>; + + +export type DeleteCardMutation = { __typename?: 'RootMutationType', deleteCard?: { __typename?: 'Account', id: string } | null }; + +export type RecipeFragment = { __typename?: 'Recipe', id: string, name: string, description?: string | null, restricted?: boolean | null, provider?: Provider | null, tests?: Array<{ __typename?: 'RecipeTest', type: TestType, name: string, message?: string | null, args?: Array<{ __typename?: 'TestArgument', name: string, repo: string, key: string } | null> | null } | null> | null, repository?: { __typename?: 'Repository', id: string, name: string } | null, oidcSettings?: { __typename?: 'OidcSettings', uriFormat?: string | null, uriFormats?: Array | null, authMethod: OidcAuthMethod, domainKey?: string | null, subdomain?: boolean | null } | null, recipeSections?: Array<{ __typename?: 'RecipeSection', index?: number | null, repository?: { __typename?: 'Repository', id: string, name: string, notes?: string | null, description?: string | null, documentation?: string | null, icon?: string | null, darkIcon?: string | null, private?: boolean | null, trending?: boolean | null, verified?: boolean | null, category?: Category | null, installation?: { __typename?: 'Installation', id: string, context?: Map | null, license?: string | null, licenseKey?: string | null, acmeKeyId?: string | null, acmeSecret?: string | null, autoUpgrade?: boolean | null, trackTag: string, repository?: { __typename?: 'Repository', id: string, name: string, notes?: string | null, description?: string | null, documentation?: string | null, icon?: string | null, darkIcon?: string | null, private?: boolean | null, trending?: boolean | null, verified?: boolean | null, category?: Category | null, oauthSettings?: { __typename?: 'OauthSettings', uriFormat: string, authMethod: OidcAuthMethod } | null, publisher?: { __typename?: 'Publisher', id?: string | null, name: string, phone?: string | null, avatar?: string | null, description?: string | null, backgroundColor?: string | null, owner?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, address?: { __typename?: 'Address', line1?: string | null, line2?: string | null, city?: string | null, country?: string | null, state?: string | null, zip?: string | null } | null } | null, recipes?: Array<{ __typename?: 'Recipe', name: string, provider?: Provider | null, description?: string | null } | null> | null } | null, user?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, oidcProvider?: { __typename?: 'OidcProvider', id: string, clientId: string, authMethod: OidcAuthMethod, clientSecret: string, redirectUris?: Array | null, bindings?: Array<{ __typename?: 'OidcProviderBinding', id: string, user?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, group?: { __typename?: 'Group', id: string, name: string, global?: boolean | null, description?: string | null } | null } | null> | null, configuration?: { __typename?: 'OuathConfiguration', issuer?: string | null, authorizationEndpoint?: string | null, tokenEndpoint?: string | null, jwksUri?: string | null, userinfoEndpoint?: string | null } | null } | null } | null, oauthSettings?: { __typename?: 'OauthSettings', uriFormat: string, authMethod: OidcAuthMethod } | null, publisher?: { __typename?: 'Publisher', id?: string | null, name: string, phone?: string | null, avatar?: string | null, description?: string | null, backgroundColor?: string | null, owner?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, address?: { __typename?: 'Address', line1?: string | null, line2?: string | null, city?: string | null, country?: string | null, state?: string | null, zip?: string | null } | null } | null, recipes?: Array<{ __typename?: 'Recipe', name: string, provider?: Provider | null, description?: string | null } | null> | null } | null, recipeItems?: Array<{ __typename?: 'RecipeItem', id?: string | null, chart?: { __typename?: 'Chart', id?: string | null, name: string, description?: string | null, latestVersion?: string | null, insertedAt?: Date | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null, terraform?: { __typename?: 'Terraform', id?: string | null, name?: string | null, readme?: string | null, package?: string | null, description?: string | null, latestVersion?: string | null, valuesTemplate?: string | null, insertedAt?: Date | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null, configuration?: Array<{ __typename?: 'RecipeConfiguration', name?: string | null, type?: Datatype | null, default?: string | null, documentation?: string | null, optional?: boolean | null, placeholder?: string | null, functionName?: string | null, condition?: { __typename?: 'RecipeCondition', field: string, operation: Operation, value?: string | null } | null, validation?: { __typename?: 'RecipeValidation', type: ValidationType, regex?: string | null, message: string } | null } | null> | null } | null> | null, configuration?: Array<{ __typename?: 'RecipeConfiguration', name?: string | null, type?: Datatype | null, default?: string | null, documentation?: string | null, optional?: boolean | null, placeholder?: string | null, functionName?: string | null, condition?: { __typename?: 'RecipeCondition', field: string, operation: Operation, value?: string | null } | null, validation?: { __typename?: 'RecipeValidation', type: ValidationType, regex?: string | null, message: string } | null } | null> | null } | null> | null }; + +export type RecipeItemFragment = { __typename?: 'RecipeItem', id?: string | null, chart?: { __typename?: 'Chart', id?: string | null, name: string, description?: string | null, latestVersion?: string | null, insertedAt?: Date | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null, terraform?: { __typename?: 'Terraform', id?: string | null, name?: string | null, readme?: string | null, package?: string | null, description?: string | null, latestVersion?: string | null, valuesTemplate?: string | null, insertedAt?: Date | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null, configuration?: Array<{ __typename?: 'RecipeConfiguration', name?: string | null, type?: Datatype | null, default?: string | null, documentation?: string | null, optional?: boolean | null, placeholder?: string | null, functionName?: string | null, condition?: { __typename?: 'RecipeCondition', field: string, operation: Operation, value?: string | null } | null, validation?: { __typename?: 'RecipeValidation', type: ValidationType, regex?: string | null, message: string } | null } | null> | null }; + +export type RecipeSectionFragment = { __typename?: 'RecipeSection', index?: number | null, repository?: { __typename?: 'Repository', id: string, name: string, notes?: string | null, description?: string | null, documentation?: string | null, icon?: string | null, darkIcon?: string | null, private?: boolean | null, trending?: boolean | null, verified?: boolean | null, category?: Category | null, installation?: { __typename?: 'Installation', id: string, context?: Map | null, license?: string | null, licenseKey?: string | null, acmeKeyId?: string | null, acmeSecret?: string | null, autoUpgrade?: boolean | null, trackTag: string, repository?: { __typename?: 'Repository', id: string, name: string, notes?: string | null, description?: string | null, documentation?: string | null, icon?: string | null, darkIcon?: string | null, private?: boolean | null, trending?: boolean | null, verified?: boolean | null, category?: Category | null, oauthSettings?: { __typename?: 'OauthSettings', uriFormat: string, authMethod: OidcAuthMethod } | null, publisher?: { __typename?: 'Publisher', id?: string | null, name: string, phone?: string | null, avatar?: string | null, description?: string | null, backgroundColor?: string | null, owner?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, address?: { __typename?: 'Address', line1?: string | null, line2?: string | null, city?: string | null, country?: string | null, state?: string | null, zip?: string | null } | null } | null, recipes?: Array<{ __typename?: 'Recipe', name: string, provider?: Provider | null, description?: string | null } | null> | null } | null, user?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, oidcProvider?: { __typename?: 'OidcProvider', id: string, clientId: string, authMethod: OidcAuthMethod, clientSecret: string, redirectUris?: Array | null, bindings?: Array<{ __typename?: 'OidcProviderBinding', id: string, user?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, group?: { __typename?: 'Group', id: string, name: string, global?: boolean | null, description?: string | null } | null } | null> | null, configuration?: { __typename?: 'OuathConfiguration', issuer?: string | null, authorizationEndpoint?: string | null, tokenEndpoint?: string | null, jwksUri?: string | null, userinfoEndpoint?: string | null } | null } | null } | null, oauthSettings?: { __typename?: 'OauthSettings', uriFormat: string, authMethod: OidcAuthMethod } | null, publisher?: { __typename?: 'Publisher', id?: string | null, name: string, phone?: string | null, avatar?: string | null, description?: string | null, backgroundColor?: string | null, owner?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, address?: { __typename?: 'Address', line1?: string | null, line2?: string | null, city?: string | null, country?: string | null, state?: string | null, zip?: string | null } | null } | null, recipes?: Array<{ __typename?: 'Recipe', name: string, provider?: Provider | null, description?: string | null } | null> | null } | null, recipeItems?: Array<{ __typename?: 'RecipeItem', id?: string | null, chart?: { __typename?: 'Chart', id?: string | null, name: string, description?: string | null, latestVersion?: string | null, insertedAt?: Date | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null, terraform?: { __typename?: 'Terraform', id?: string | null, name?: string | null, readme?: string | null, package?: string | null, description?: string | null, latestVersion?: string | null, valuesTemplate?: string | null, insertedAt?: Date | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null, configuration?: Array<{ __typename?: 'RecipeConfiguration', name?: string | null, type?: Datatype | null, default?: string | null, documentation?: string | null, optional?: boolean | null, placeholder?: string | null, functionName?: string | null, condition?: { __typename?: 'RecipeCondition', field: string, operation: Operation, value?: string | null } | null, validation?: { __typename?: 'RecipeValidation', type: ValidationType, regex?: string | null, message: string } | null } | null> | null } | null> | null, configuration?: Array<{ __typename?: 'RecipeConfiguration', name?: string | null, type?: Datatype | null, default?: string | null, documentation?: string | null, optional?: boolean | null, placeholder?: string | null, functionName?: string | null, condition?: { __typename?: 'RecipeCondition', field: string, operation: Operation, value?: string | null } | null, validation?: { __typename?: 'RecipeValidation', type: ValidationType, regex?: string | null, message: string } | null } | null> | null }; + +export type RecipeConfigurationFragment = { __typename?: 'RecipeConfiguration', name?: string | null, type?: Datatype | null, default?: string | null, documentation?: string | null, optional?: boolean | null, placeholder?: string | null, functionName?: string | null, condition?: { __typename?: 'RecipeCondition', field: string, operation: Operation, value?: string | null } | null, validation?: { __typename?: 'RecipeValidation', type: ValidationType, regex?: string | null, message: string } | null }; + +export type StackFragment = { __typename?: 'Stack', id: string, name: string, displayName?: string | null, description?: string | null, featured?: boolean | null, creator?: { __typename?: 'User', id: string, name: string } | null, collections?: Array<{ __typename?: 'StackCollection', id: string, provider: Provider, bundles?: Array<{ __typename?: 'StackRecipe', recipe: { __typename?: 'Recipe', repository?: { __typename?: 'Repository', id: string, name: string, notes?: string | null, description?: string | null, documentation?: string | null, icon?: string | null, darkIcon?: string | null, private?: boolean | null, trending?: boolean | null, verified?: boolean | null, category?: Category | null, tags?: Array<{ __typename?: 'Tag', tag: string } | null> | null, oauthSettings?: { __typename?: 'OauthSettings', uriFormat: string, authMethod: OidcAuthMethod } | null, publisher?: { __typename?: 'Publisher', id?: string | null, name: string, phone?: string | null, avatar?: string | null, description?: string | null, backgroundColor?: string | null, owner?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, address?: { __typename?: 'Address', line1?: string | null, line2?: string | null, city?: string | null, country?: string | null, state?: string | null, zip?: string | null } | null } | null, recipes?: Array<{ __typename?: 'Recipe', name: string, provider?: Provider | null, description?: string | null } | null> | null } | null } } | null> | null } | null> | null }; + +export type GetRecipeQueryVariables = Exact<{ + repo?: InputMaybe; + name?: InputMaybe; + id?: InputMaybe; +}>; + + +export type GetRecipeQuery = { __typename?: 'RootQueryType', recipe?: { __typename?: 'Recipe', id: string, name: string, description?: string | null, restricted?: boolean | null, provider?: Provider | null, recipeDependencies?: Array<{ __typename?: 'Recipe', id: string, name: string, description?: string | null, restricted?: boolean | null, provider?: Provider | null, tests?: Array<{ __typename?: 'RecipeTest', type: TestType, name: string, message?: string | null, args?: Array<{ __typename?: 'TestArgument', name: string, repo: string, key: string } | null> | null } | null> | null, repository?: { __typename?: 'Repository', id: string, name: string } | null, oidcSettings?: { __typename?: 'OidcSettings', uriFormat?: string | null, uriFormats?: Array | null, authMethod: OidcAuthMethod, domainKey?: string | null, subdomain?: boolean | null } | null, recipeSections?: Array<{ __typename?: 'RecipeSection', index?: number | null, repository?: { __typename?: 'Repository', id: string, name: string, notes?: string | null, description?: string | null, documentation?: string | null, icon?: string | null, darkIcon?: string | null, private?: boolean | null, trending?: boolean | null, verified?: boolean | null, category?: Category | null, installation?: { __typename?: 'Installation', id: string, context?: Map | null, license?: string | null, licenseKey?: string | null, acmeKeyId?: string | null, acmeSecret?: string | null, autoUpgrade?: boolean | null, trackTag: string, repository?: { __typename?: 'Repository', id: string, name: string, notes?: string | null, description?: string | null, documentation?: string | null, icon?: string | null, darkIcon?: string | null, private?: boolean | null, trending?: boolean | null, verified?: boolean | null, category?: Category | null, oauthSettings?: { __typename?: 'OauthSettings', uriFormat: string, authMethod: OidcAuthMethod } | null, publisher?: { __typename?: 'Publisher', id?: string | null, name: string, phone?: string | null, avatar?: string | null, description?: string | null, backgroundColor?: string | null, owner?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, address?: { __typename?: 'Address', line1?: string | null, line2?: string | null, city?: string | null, country?: string | null, state?: string | null, zip?: string | null } | null } | null, recipes?: Array<{ __typename?: 'Recipe', name: string, provider?: Provider | null, description?: string | null } | null> | null } | null, user?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, oidcProvider?: { __typename?: 'OidcProvider', id: string, clientId: string, authMethod: OidcAuthMethod, clientSecret: string, redirectUris?: Array | null, bindings?: Array<{ __typename?: 'OidcProviderBinding', id: string, user?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, group?: { __typename?: 'Group', id: string, name: string, global?: boolean | null, description?: string | null } | null } | null> | null, configuration?: { __typename?: 'OuathConfiguration', issuer?: string | null, authorizationEndpoint?: string | null, tokenEndpoint?: string | null, jwksUri?: string | null, userinfoEndpoint?: string | null } | null } | null } | null, oauthSettings?: { __typename?: 'OauthSettings', uriFormat: string, authMethod: OidcAuthMethod } | null, publisher?: { __typename?: 'Publisher', id?: string | null, name: string, phone?: string | null, avatar?: string | null, description?: string | null, backgroundColor?: string | null, owner?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, address?: { __typename?: 'Address', line1?: string | null, line2?: string | null, city?: string | null, country?: string | null, state?: string | null, zip?: string | null } | null } | null, recipes?: Array<{ __typename?: 'Recipe', name: string, provider?: Provider | null, description?: string | null } | null> | null } | null, recipeItems?: Array<{ __typename?: 'RecipeItem', id?: string | null, chart?: { __typename?: 'Chart', id?: string | null, name: string, description?: string | null, latestVersion?: string | null, insertedAt?: Date | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null, terraform?: { __typename?: 'Terraform', id?: string | null, name?: string | null, readme?: string | null, package?: string | null, description?: string | null, latestVersion?: string | null, valuesTemplate?: string | null, insertedAt?: Date | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null, configuration?: Array<{ __typename?: 'RecipeConfiguration', name?: string | null, type?: Datatype | null, default?: string | null, documentation?: string | null, optional?: boolean | null, placeholder?: string | null, functionName?: string | null, condition?: { __typename?: 'RecipeCondition', field: string, operation: Operation, value?: string | null } | null, validation?: { __typename?: 'RecipeValidation', type: ValidationType, regex?: string | null, message: string } | null } | null> | null } | null> | null, configuration?: Array<{ __typename?: 'RecipeConfiguration', name?: string | null, type?: Datatype | null, default?: string | null, documentation?: string | null, optional?: boolean | null, placeholder?: string | null, functionName?: string | null, condition?: { __typename?: 'RecipeCondition', field: string, operation: Operation, value?: string | null } | null, validation?: { __typename?: 'RecipeValidation', type: ValidationType, regex?: string | null, message: string } | null } | null> | null } | null> | null } | null> | null, tests?: Array<{ __typename?: 'RecipeTest', type: TestType, name: string, message?: string | null, args?: Array<{ __typename?: 'TestArgument', name: string, repo: string, key: string } | null> | null } | null> | null, repository?: { __typename?: 'Repository', id: string, name: string } | null, oidcSettings?: { __typename?: 'OidcSettings', uriFormat?: string | null, uriFormats?: Array | null, authMethod: OidcAuthMethod, domainKey?: string | null, subdomain?: boolean | null } | null, recipeSections?: Array<{ __typename?: 'RecipeSection', index?: number | null, repository?: { __typename?: 'Repository', id: string, name: string, notes?: string | null, description?: string | null, documentation?: string | null, icon?: string | null, darkIcon?: string | null, private?: boolean | null, trending?: boolean | null, verified?: boolean | null, category?: Category | null, installation?: { __typename?: 'Installation', id: string, context?: Map | null, license?: string | null, licenseKey?: string | null, acmeKeyId?: string | null, acmeSecret?: string | null, autoUpgrade?: boolean | null, trackTag: string, repository?: { __typename?: 'Repository', id: string, name: string, notes?: string | null, description?: string | null, documentation?: string | null, icon?: string | null, darkIcon?: string | null, private?: boolean | null, trending?: boolean | null, verified?: boolean | null, category?: Category | null, oauthSettings?: { __typename?: 'OauthSettings', uriFormat: string, authMethod: OidcAuthMethod } | null, publisher?: { __typename?: 'Publisher', id?: string | null, name: string, phone?: string | null, avatar?: string | null, description?: string | null, backgroundColor?: string | null, owner?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, address?: { __typename?: 'Address', line1?: string | null, line2?: string | null, city?: string | null, country?: string | null, state?: string | null, zip?: string | null } | null } | null, recipes?: Array<{ __typename?: 'Recipe', name: string, provider?: Provider | null, description?: string | null } | null> | null } | null, user?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, oidcProvider?: { __typename?: 'OidcProvider', id: string, clientId: string, authMethod: OidcAuthMethod, clientSecret: string, redirectUris?: Array | null, bindings?: Array<{ __typename?: 'OidcProviderBinding', id: string, user?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, group?: { __typename?: 'Group', id: string, name: string, global?: boolean | null, description?: string | null } | null } | null> | null, configuration?: { __typename?: 'OuathConfiguration', issuer?: string | null, authorizationEndpoint?: string | null, tokenEndpoint?: string | null, jwksUri?: string | null, userinfoEndpoint?: string | null } | null } | null } | null, oauthSettings?: { __typename?: 'OauthSettings', uriFormat: string, authMethod: OidcAuthMethod } | null, publisher?: { __typename?: 'Publisher', id?: string | null, name: string, phone?: string | null, avatar?: string | null, description?: string | null, backgroundColor?: string | null, owner?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, address?: { __typename?: 'Address', line1?: string | null, line2?: string | null, city?: string | null, country?: string | null, state?: string | null, zip?: string | null } | null } | null, recipes?: Array<{ __typename?: 'Recipe', name: string, provider?: Provider | null, description?: string | null } | null> | null } | null, recipeItems?: Array<{ __typename?: 'RecipeItem', id?: string | null, chart?: { __typename?: 'Chart', id?: string | null, name: string, description?: string | null, latestVersion?: string | null, insertedAt?: Date | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null, terraform?: { __typename?: 'Terraform', id?: string | null, name?: string | null, readme?: string | null, package?: string | null, description?: string | null, latestVersion?: string | null, valuesTemplate?: string | null, insertedAt?: Date | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null, configuration?: Array<{ __typename?: 'RecipeConfiguration', name?: string | null, type?: Datatype | null, default?: string | null, documentation?: string | null, optional?: boolean | null, placeholder?: string | null, functionName?: string | null, condition?: { __typename?: 'RecipeCondition', field: string, operation: Operation, value?: string | null } | null, validation?: { __typename?: 'RecipeValidation', type: ValidationType, regex?: string | null, message: string } | null } | null> | null } | null> | null, configuration?: Array<{ __typename?: 'RecipeConfiguration', name?: string | null, type?: Datatype | null, default?: string | null, documentation?: string | null, optional?: boolean | null, placeholder?: string | null, functionName?: string | null, condition?: { __typename?: 'RecipeCondition', field: string, operation: Operation, value?: string | null } | null, validation?: { __typename?: 'RecipeValidation', type: ValidationType, regex?: string | null, message: string } | null } | null> | null } | null> | null } | null }; + +export type ListRecipesQueryVariables = Exact<{ + repositoryName?: InputMaybe; + repositoryId?: InputMaybe; + provider?: InputMaybe; +}>; + + +export type ListRecipesQuery = { __typename?: 'RootQueryType', recipes?: { __typename?: 'RecipeConnection', edges?: Array<{ __typename?: 'RecipeEdge', node?: { __typename?: 'Recipe', id: string, name: string, description?: string | null, restricted?: boolean | null, provider?: Provider | null, tests?: Array<{ __typename?: 'RecipeTest', type: TestType, name: string, message?: string | null, args?: Array<{ __typename?: 'TestArgument', name: string, repo: string, key: string } | null> | null } | null> | null, repository?: { __typename?: 'Repository', id: string, name: string } | null, oidcSettings?: { __typename?: 'OidcSettings', uriFormat?: string | null, uriFormats?: Array | null, authMethod: OidcAuthMethod, domainKey?: string | null, subdomain?: boolean | null } | null, recipeSections?: Array<{ __typename?: 'RecipeSection', index?: number | null, repository?: { __typename?: 'Repository', id: string, name: string, notes?: string | null, description?: string | null, documentation?: string | null, icon?: string | null, darkIcon?: string | null, private?: boolean | null, trending?: boolean | null, verified?: boolean | null, category?: Category | null, installation?: { __typename?: 'Installation', id: string, context?: Map | null, license?: string | null, licenseKey?: string | null, acmeKeyId?: string | null, acmeSecret?: string | null, autoUpgrade?: boolean | null, trackTag: string, repository?: { __typename?: 'Repository', id: string, name: string, notes?: string | null, description?: string | null, documentation?: string | null, icon?: string | null, darkIcon?: string | null, private?: boolean | null, trending?: boolean | null, verified?: boolean | null, category?: Category | null, oauthSettings?: { __typename?: 'OauthSettings', uriFormat: string, authMethod: OidcAuthMethod } | null, publisher?: { __typename?: 'Publisher', id?: string | null, name: string, phone?: string | null, avatar?: string | null, description?: string | null, backgroundColor?: string | null, owner?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, address?: { __typename?: 'Address', line1?: string | null, line2?: string | null, city?: string | null, country?: string | null, state?: string | null, zip?: string | null } | null } | null, recipes?: Array<{ __typename?: 'Recipe', name: string, provider?: Provider | null, description?: string | null } | null> | null } | null, user?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, oidcProvider?: { __typename?: 'OidcProvider', id: string, clientId: string, authMethod: OidcAuthMethod, clientSecret: string, redirectUris?: Array | null, bindings?: Array<{ __typename?: 'OidcProviderBinding', id: string, user?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, group?: { __typename?: 'Group', id: string, name: string, global?: boolean | null, description?: string | null } | null } | null> | null, configuration?: { __typename?: 'OuathConfiguration', issuer?: string | null, authorizationEndpoint?: string | null, tokenEndpoint?: string | null, jwksUri?: string | null, userinfoEndpoint?: string | null } | null } | null } | null, oauthSettings?: { __typename?: 'OauthSettings', uriFormat: string, authMethod: OidcAuthMethod } | null, publisher?: { __typename?: 'Publisher', id?: string | null, name: string, phone?: string | null, avatar?: string | null, description?: string | null, backgroundColor?: string | null, owner?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, address?: { __typename?: 'Address', line1?: string | null, line2?: string | null, city?: string | null, country?: string | null, state?: string | null, zip?: string | null } | null } | null, recipes?: Array<{ __typename?: 'Recipe', name: string, provider?: Provider | null, description?: string | null } | null> | null } | null, recipeItems?: Array<{ __typename?: 'RecipeItem', id?: string | null, chart?: { __typename?: 'Chart', id?: string | null, name: string, description?: string | null, latestVersion?: string | null, insertedAt?: Date | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null, terraform?: { __typename?: 'Terraform', id?: string | null, name?: string | null, readme?: string | null, package?: string | null, description?: string | null, latestVersion?: string | null, valuesTemplate?: string | null, insertedAt?: Date | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null, configuration?: Array<{ __typename?: 'RecipeConfiguration', name?: string | null, type?: Datatype | null, default?: string | null, documentation?: string | null, optional?: boolean | null, placeholder?: string | null, functionName?: string | null, condition?: { __typename?: 'RecipeCondition', field: string, operation: Operation, value?: string | null } | null, validation?: { __typename?: 'RecipeValidation', type: ValidationType, regex?: string | null, message: string } | null } | null> | null } | null> | null, configuration?: Array<{ __typename?: 'RecipeConfiguration', name?: string | null, type?: Datatype | null, default?: string | null, documentation?: string | null, optional?: boolean | null, placeholder?: string | null, functionName?: string | null, condition?: { __typename?: 'RecipeCondition', field: string, operation: Operation, value?: string | null } | null, validation?: { __typename?: 'RecipeValidation', type: ValidationType, regex?: string | null, message: string } | null } | null> | null } | null> | null } | null } | null> | null } | null }; + +export type CreateRecipeMutationVariables = Exact<{ + name: Scalars['String']; + attributes: RecipeAttributes; +}>; + + +export type CreateRecipeMutation = { __typename?: 'RootMutationType', createRecipe?: { __typename?: 'Recipe', id: string } | null }; + +export type InstallRecipeMutationVariables = Exact<{ + id: Scalars['ID']; +}>; + + +export type InstallRecipeMutation = { __typename?: 'RootMutationType', installRecipe?: Array<{ __typename?: 'Installation', id: string } | null> | null }; + +export type CreateStackMutationVariables = Exact<{ + attributes: StackAttributes; +}>; + + +export type CreateStackMutation = { __typename?: 'RootMutationType', createStack?: { __typename?: 'Stack', id: string } | null }; + +export type GetStackQueryVariables = Exact<{ + name: Scalars['String']; + provider: Provider; +}>; + + +export type GetStackQuery = { __typename?: 'RootQueryType', stack?: { __typename?: 'Stack', id: string, name: string, displayName?: string | null, description?: string | null, featured?: boolean | null, creator?: { __typename?: 'User', id: string, name: string } | null, collections?: Array<{ __typename?: 'StackCollection', id: string, provider: Provider, bundles?: Array<{ __typename?: 'StackRecipe', recipe: { __typename?: 'Recipe', repository?: { __typename?: 'Repository', id: string, name: string, notes?: string | null, description?: string | null, documentation?: string | null, icon?: string | null, darkIcon?: string | null, private?: boolean | null, trending?: boolean | null, verified?: boolean | null, category?: Category | null, tags?: Array<{ __typename?: 'Tag', tag: string } | null> | null, oauthSettings?: { __typename?: 'OauthSettings', uriFormat: string, authMethod: OidcAuthMethod } | null, publisher?: { __typename?: 'Publisher', id?: string | null, name: string, phone?: string | null, avatar?: string | null, description?: string | null, backgroundColor?: string | null, owner?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, address?: { __typename?: 'Address', line1?: string | null, line2?: string | null, city?: string | null, country?: string | null, state?: string | null, zip?: string | null } | null } | null, recipes?: Array<{ __typename?: 'Recipe', name: string, provider?: Provider | null, description?: string | null } | null> | null } | null } } | null> | null } | null> | null } | null }; + +export type ListStacksQueryVariables = Exact<{ + featured?: InputMaybe; + cursor?: InputMaybe; +}>; + + +export type ListStacksQuery = { __typename?: 'RootQueryType', stacks?: { __typename?: 'StackConnection', edges?: Array<{ __typename?: 'StackEdge', node?: { __typename?: 'Stack', id: string, name: string, displayName?: string | null, description?: string | null, featured?: boolean | null, creator?: { __typename?: 'User', id: string, name: string } | null, collections?: Array<{ __typename?: 'StackCollection', id: string, provider: Provider, bundles?: Array<{ __typename?: 'StackRecipe', recipe: { __typename?: 'Recipe', repository?: { __typename?: 'Repository', id: string, name: string, notes?: string | null, description?: string | null, documentation?: string | null, icon?: string | null, darkIcon?: string | null, private?: boolean | null, trending?: boolean | null, verified?: boolean | null, category?: Category | null, tags?: Array<{ __typename?: 'Tag', tag: string } | null> | null, oauthSettings?: { __typename?: 'OauthSettings', uriFormat: string, authMethod: OidcAuthMethod } | null, publisher?: { __typename?: 'Publisher', id?: string | null, name: string, phone?: string | null, avatar?: string | null, description?: string | null, backgroundColor?: string | null, owner?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, address?: { __typename?: 'Address', line1?: string | null, line2?: string | null, city?: string | null, country?: string | null, state?: string | null, zip?: string | null } | null } | null, recipes?: Array<{ __typename?: 'Recipe', name: string, provider?: Provider | null, description?: string | null } | null> | null } | null } } | null> | null } | null> | null } | null } | null> | null } | null }; + +export type CreateQuickStackMutationVariables = Exact<{ + applicationIds?: InputMaybe> | InputMaybe>; + provider: Provider; +}>; + + +export type CreateQuickStackMutation = { __typename?: 'RootMutationType', quickStack?: { __typename?: 'Stack', id: string, name: string } | null }; + +export type InstallStackShellMutationVariables = Exact<{ + name: Scalars['String']; + context: ContextAttributes; + oidc: Scalars['Boolean']; +}>; + + +export type InstallStackShellMutation = { __typename?: 'RootMutationType', installStackShell?: Array<{ __typename?: 'Recipe', id: string, name: string } | null> | null }; + +export type ApplyLockFragment = { __typename?: 'ApplyLock', id: string, lock?: string | null }; + +export type CategoryFragment = { __typename?: 'CategoryInfo', category?: Category | null, count?: number | null }; + +export type RepoFragment = { __typename?: 'Repository', id: string, name: string, notes?: string | null, description?: string | null, documentation?: string | null, icon?: string | null, darkIcon?: string | null, private?: boolean | null, trending?: boolean | null, verified?: boolean | null, category?: Category | null, oauthSettings?: { __typename?: 'OauthSettings', uriFormat: string, authMethod: OidcAuthMethod } | null, publisher?: { __typename?: 'Publisher', id?: string | null, name: string, phone?: string | null, avatar?: string | null, description?: string | null, backgroundColor?: string | null, owner?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, address?: { __typename?: 'Address', line1?: string | null, line2?: string | null, city?: string | null, country?: string | null, state?: string | null, zip?: string | null } | null } | null, recipes?: Array<{ __typename?: 'Recipe', name: string, provider?: Provider | null, description?: string | null } | null> | null }; + +export type RepositoryFragment = { __typename?: 'Repository', id: string, name: string, notes?: string | null, icon?: string | null, darkIcon?: string | null, description?: string | null, publisher?: { __typename?: 'Publisher', name: string } | null, recipes?: Array<{ __typename?: 'Recipe', name: string } | null> | null }; + +export type DependenciesFragment = { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null }; + +export type IntegrationFragment = { __typename?: 'Integration', id: string, name: string, icon?: string | null, sourceUrl?: string | null, description?: string | null, tags?: Array<{ __typename?: 'Tag', tag: string } | null> | null, publisher?: { __typename?: 'Publisher', id?: string | null, name: string, phone?: string | null, avatar?: string | null, description?: string | null, backgroundColor?: string | null, owner?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, address?: { __typename?: 'Address', line1?: string | null, line2?: string | null, city?: string | null, country?: string | null, state?: string | null, zip?: string | null } | null } | null }; + +export type RepositoryQueryVariables = Exact<{ + id?: InputMaybe; + name?: InputMaybe; +}>; + + +export type RepositoryQuery = { __typename?: 'RootQueryType', repository?: { __typename?: 'Repository', editable?: boolean | null, publicKey?: string | null, secrets?: Map | null, readme?: string | null, mainBranch?: string | null, gitUrl?: string | null, homepage?: string | null, documentation?: string | null, id: string, name: string, notes?: string | null, description?: string | null, icon?: string | null, darkIcon?: string | null, private?: boolean | null, trending?: boolean | null, verified?: boolean | null, category?: Category | null, artifacts?: Array<{ __typename?: 'Artifact', id?: string | null, name?: string | null, blob?: string | null, type?: ArtifactType | null, platform?: ArtifactPlatform | null, arch?: string | null, filesize?: number | null, sha?: string | null, readme?: string | null, insertedAt?: Date | null, updatedAt?: Date | null } | null> | null, installation?: { __typename?: 'Installation', id: string, context?: Map | null, license?: string | null, licenseKey?: string | null, acmeKeyId?: string | null, acmeSecret?: string | null, autoUpgrade?: boolean | null, trackTag: string, oidcProvider?: { __typename?: 'OidcProvider', id: string, clientId: string, authMethod: OidcAuthMethod, clientSecret: string, redirectUris?: Array | null, bindings?: Array<{ __typename?: 'OidcProviderBinding', id: string, user?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, group?: { __typename?: 'Group', id: string, name: string, global?: boolean | null, description?: string | null } | null } | null> | null, configuration?: { __typename?: 'OuathConfiguration', issuer?: string | null, authorizationEndpoint?: string | null, tokenEndpoint?: string | null, jwksUri?: string | null, userinfoEndpoint?: string | null } | null } | null, repository?: { __typename?: 'Repository', id: string, name: string, notes?: string | null, description?: string | null, documentation?: string | null, icon?: string | null, darkIcon?: string | null, private?: boolean | null, trending?: boolean | null, verified?: boolean | null, category?: Category | null, oauthSettings?: { __typename?: 'OauthSettings', uriFormat: string, authMethod: OidcAuthMethod } | null, publisher?: { __typename?: 'Publisher', id?: string | null, name: string, phone?: string | null, avatar?: string | null, description?: string | null, backgroundColor?: string | null, owner?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, address?: { __typename?: 'Address', line1?: string | null, line2?: string | null, city?: string | null, country?: string | null, state?: string | null, zip?: string | null } | null } | null, recipes?: Array<{ __typename?: 'Recipe', name: string, provider?: Provider | null, description?: string | null } | null> | null } | null, user?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null } | null, tags?: Array<{ __typename?: 'Tag', tag: string } | null> | null, license?: { __typename?: 'License', name?: string | null, url?: string | null } | null, community?: { __typename?: 'Community', discord?: string | null, slack?: string | null, homepage?: string | null, gitUrl?: string | null, twitter?: string | null } | null, oauthSettings?: { __typename?: 'OauthSettings', uriFormat: string, authMethod: OidcAuthMethod } | null, publisher?: { __typename?: 'Publisher', id?: string | null, name: string, phone?: string | null, avatar?: string | null, description?: string | null, backgroundColor?: string | null, owner?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, address?: { __typename?: 'Address', line1?: string | null, line2?: string | null, city?: string | null, country?: string | null, state?: string | null, zip?: string | null } | null } | null, recipes?: Array<{ __typename?: 'Recipe', name: string, provider?: Provider | null, description?: string | null } | null> | null } | null }; + +export type CreateResourceDefinitionMutationVariables = Exact<{ + name: Scalars['String']; + input: ResourceDefinitionAttributes; +}>; + + +export type CreateResourceDefinitionMutation = { __typename?: 'RootMutationType', updateRepository?: { __typename?: 'Repository', id: string } | null }; + +export type CreateIntegrationMutationVariables = Exact<{ + name: Scalars['String']; + attrs: IntegrationAttributes; +}>; + + +export type CreateIntegrationMutation = { __typename?: 'RootMutationType', createIntegration?: { __typename?: 'Integration', id: string } | null }; + +export type UpdateRepositoryMutationVariables = Exact<{ + name: Scalars['String']; + attrs: RepositoryAttributes; +}>; + + +export type UpdateRepositoryMutation = { __typename?: 'RootMutationType', updateRepository?: { __typename?: 'Repository', id: string } | null }; + +export type CreateRepositoryMutationVariables = Exact<{ + name: Scalars['String']; + publisher: Scalars['String']; + attributes: RepositoryAttributes; +}>; + + +export type CreateRepositoryMutation = { __typename?: 'RootMutationType', upsertRepository?: { __typename?: 'Repository', id: string } | null }; + +export type AcquireLockMutationVariables = Exact<{ + name: Scalars['String']; +}>; + + +export type AcquireLockMutation = { __typename?: 'RootMutationType', acquireLock?: { __typename?: 'ApplyLock', id: string, lock?: string | null } | null }; + +export type ReleaseLockMutationVariables = Exact<{ + name: Scalars['String']; + attrs: LockAttributes; +}>; + + +export type ReleaseLockMutation = { __typename?: 'RootMutationType', releaseLock?: { __typename?: 'ApplyLock', id: string, lock?: string | null } | null }; + +export type UnlockRepositoryMutationVariables = Exact<{ + name: Scalars['String']; +}>; + + +export type UnlockRepositoryMutation = { __typename?: 'RootMutationType', unlockRepository?: number | null }; + +export type ListRepositoriesQueryVariables = Exact<{ + q?: InputMaybe; + installed?: InputMaybe; + first?: InputMaybe; + provider?: InputMaybe; +}>; + + +export type ListRepositoriesQuery = { __typename?: 'RootQueryType', repositories?: { __typename?: 'RepositoryConnection', edges?: Array<{ __typename?: 'RepositoryEdge', node?: { __typename?: 'Repository', id: string, name: string, notes?: string | null, icon?: string | null, darkIcon?: string | null, description?: string | null, publisher?: { __typename?: 'Publisher', name: string } | null, recipes?: Array<{ __typename?: 'Recipe', name: string } | null> | null } | null } | null> | null } | null }; + +export type ScaffoldsQueryVariables = Exact<{ + app: Scalars['String']; + pub: Scalars['String']; + cat: Category; + ing?: InputMaybe; + pg?: InputMaybe; +}>; + + +export type ScaffoldsQuery = { __typename?: 'RootQueryType', scaffold?: Array<{ __typename?: 'ScaffoldFile', path?: string | null, content?: string | null } | null> | null }; + +export type DeleteRepositoryMutationVariables = Exact<{ + id: Scalars['ID']; +}>; + + +export type DeleteRepositoryMutation = { __typename?: 'RootMutationType', deleteRepository?: { __typename?: 'Repository', id: string } | null }; + +export type GetTfProvidersQueryVariables = Exact<{ [key: string]: never; }>; + + +export type GetTfProvidersQuery = { __typename?: 'RootQueryType', terraformProviders?: Array | null }; + +export type GetTfProviderScaffoldQueryVariables = Exact<{ + name: Provider; + vsn?: InputMaybe; +}>; + + +export type GetTfProviderScaffoldQuery = { __typename?: 'RootQueryType', terraformProvider?: { __typename?: 'TerraformProvider', name?: Provider | null, content?: string | null } | null }; + +export type CloudShellFragment = { __typename?: 'CloudShell', id: string, aesKey: string, gitUrl: string, alive: boolean, provider: Provider, subdomain: string, cluster: string, status?: { __typename?: 'ShellStatus', ready?: boolean | null, initialized?: boolean | null, containersReady?: boolean | null, podScheduled?: boolean | null } | null }; + +export type DemoProjectFragment = { __typename?: 'DemoProject', id: string, projectId: string, credentials?: string | null, ready?: boolean | null, state?: DemoProjectState | null }; + +export type GetShellQueryVariables = Exact<{ [key: string]: never; }>; + + +export type GetShellQuery = { __typename?: 'RootQueryType', shell?: { __typename?: 'CloudShell', id: string, aesKey: string, gitUrl: string, alive: boolean, provider: Provider, subdomain: string, cluster: string, status?: { __typename?: 'ShellStatus', ready?: boolean | null, initialized?: boolean | null, containersReady?: boolean | null, podScheduled?: boolean | null } | null } | null }; + +export type DeleteShellMutationVariables = Exact<{ [key: string]: never; }>; + + +export type DeleteShellMutation = { __typename?: 'RootMutationType', deleteShell?: { __typename?: 'CloudShell', id: string, aesKey: string, gitUrl: string, alive: boolean, provider: Provider, subdomain: string, cluster: string, status?: { __typename?: 'ShellStatus', ready?: boolean | null, initialized?: boolean | null, containersReady?: boolean | null, podScheduled?: boolean | null } | null } | null }; + +export type TerraformFragment = { __typename?: 'Terraform', id?: string | null, name?: string | null, readme?: string | null, package?: string | null, description?: string | null, latestVersion?: string | null, valuesTemplate?: string | null, insertedAt?: Date | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null }; + +export type TerraformInstallationFragment = { __typename?: 'TerraformInstallation', id?: string | null, terraform?: { __typename?: 'Terraform', id?: string | null, name?: string | null, readme?: string | null, package?: string | null, description?: string | null, latestVersion?: string | null, valuesTemplate?: string | null, insertedAt?: Date | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null, version?: { __typename?: 'Version', id: string, helm?: Map | null, readme?: string | null, valuesTemplate?: string | null, version: string, insertedAt?: Date | null, package?: string | null, crds?: Array<{ __typename?: 'Crd', id: string, name: string, blob?: string | null } | null> | null, chart?: { __typename?: 'Chart', id?: string | null, name: string, description?: string | null, latestVersion?: string | null, insertedAt?: Date | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null, terraform?: { __typename?: 'Terraform', id?: string | null, name?: string | null } | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null }; + +export type GetTerraformQueryVariables = Exact<{ + id: Scalars['ID']; +}>; + + +export type GetTerraformQuery = { __typename?: 'RootQueryType', terraform?: { __typename?: 'TerraformConnection', edges?: Array<{ __typename?: 'TerraformEdge', node?: { __typename?: 'Terraform', id?: string | null, name?: string | null, readme?: string | null, package?: string | null, description?: string | null, latestVersion?: string | null, valuesTemplate?: string | null, insertedAt?: Date | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null } | null> | null } | null }; + +export type GetTerraformInstallationsQueryVariables = Exact<{ + id: Scalars['ID']; +}>; + + +export type GetTerraformInstallationsQuery = { __typename?: 'RootQueryType', terraformInstallations?: { __typename?: 'TerraformInstallationConnection', edges?: Array<{ __typename?: 'TerraformInstallationEdge', node?: { __typename?: 'TerraformInstallation', id?: string | null, terraform?: { __typename?: 'Terraform', id?: string | null, name?: string | null, readme?: string | null, package?: string | null, description?: string | null, latestVersion?: string | null, valuesTemplate?: string | null, insertedAt?: Date | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null, version?: { __typename?: 'Version', id: string, helm?: Map | null, readme?: string | null, valuesTemplate?: string | null, version: string, insertedAt?: Date | null, package?: string | null, crds?: Array<{ __typename?: 'Crd', id: string, name: string, blob?: string | null } | null> | null, chart?: { __typename?: 'Chart', id?: string | null, name: string, description?: string | null, latestVersion?: string | null, insertedAt?: Date | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null, terraform?: { __typename?: 'Terraform', id?: string | null, name?: string | null } | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null } | null } | null> | null } | null }; + +export type UploadTerraformMutationVariables = Exact<{ + repoName: Scalars['String']; + name: Scalars['String']; + uploadOrUrl: Scalars['UploadOrUrl']; +}>; + + +export type UploadTerraformMutation = { __typename?: 'RootMutationType', uploadTerraform?: { __typename?: 'Terraform', id?: string | null, name?: string | null, readme?: string | null, package?: string | null, description?: string | null, latestVersion?: string | null, valuesTemplate?: string | null, insertedAt?: Date | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null }; + +export type UninstallTerraformMutationVariables = Exact<{ + id: Scalars['ID']; +}>; + + +export type UninstallTerraformMutation = { __typename?: 'RootMutationType', uninstallTerraform?: { __typename?: 'TerraformInstallation', id?: string | null } | null }; + +export type StepFragment = { __typename?: 'TestStep', id: string, name: string, status: TestStatus, hasLogs?: boolean | null, description: string, insertedAt?: Date | null, updatedAt?: Date | null }; + +export type TestFragment = { __typename?: 'Test', id: string, name?: string | null, promoteTag: string, status: TestStatus, insertedAt?: Date | null, updatedAt?: Date | null, steps?: Array<{ __typename?: 'TestStep', id: string, name: string, status: TestStatus, hasLogs?: boolean | null, description: string, insertedAt?: Date | null, updatedAt?: Date | null } | null> | null }; + +export type CreateTestMutationVariables = Exact<{ + name: Scalars['String']; + attrs: TestAttributes; +}>; + + +export type CreateTestMutation = { __typename?: 'RootMutationType', createTest?: { __typename?: 'Test', id: string, name?: string | null, promoteTag: string, status: TestStatus, insertedAt?: Date | null, updatedAt?: Date | null, steps?: Array<{ __typename?: 'TestStep', id: string, name: string, status: TestStatus, hasLogs?: boolean | null, description: string, insertedAt?: Date | null, updatedAt?: Date | null } | null> | null } | null }; + +export type UpdateTestMutationVariables = Exact<{ + id: Scalars['ID']; + attrs: TestAttributes; +}>; + + +export type UpdateTestMutation = { __typename?: 'RootMutationType', updateTest?: { __typename?: 'Test', id: string, name?: string | null, promoteTag: string, status: TestStatus, insertedAt?: Date | null, updatedAt?: Date | null, steps?: Array<{ __typename?: 'TestStep', id: string, name: string, status: TestStatus, hasLogs?: boolean | null, description: string, insertedAt?: Date | null, updatedAt?: Date | null } | null> | null } | null }; + +export type UpdateStepMutationVariables = Exact<{ + id: Scalars['ID']; + logs: Scalars['UploadOrUrl']; +}>; + + +export type UpdateStepMutation = { __typename?: 'RootMutationType', updateStep?: { __typename?: 'TestStep', id: string } | null }; + +export type PublishLogsMutationVariables = Exact<{ + id: Scalars['ID']; + logs: Scalars['String']; +}>; + + +export type PublishLogsMutation = { __typename?: 'RootMutationType', publishLogs?: { __typename?: 'TestStep', id: string } | null }; + +export type UpgradeQueueFragment = { __typename?: 'UpgradeQueue', id: string, acked?: string | null, name?: string | null, domain?: string | null, git?: string | null, pingedAt?: Date | null, provider?: Provider | null }; + +export type RolloutFragment = { __typename?: 'Rollout', id: string, event?: string | null, cursor?: string | null, count?: number | null, status: RolloutStatus, heartbeat?: Date | null }; + +export type UpgradeFragment = { __typename?: 'Upgrade', id: string, message?: string | null, insertedAt?: Date | null, repository?: { __typename?: 'Repository', id: string, name: string, notes?: string | null, description?: string | null, documentation?: string | null, icon?: string | null, darkIcon?: string | null, private?: boolean | null, trending?: boolean | null, verified?: boolean | null, category?: Category | null, oauthSettings?: { __typename?: 'OauthSettings', uriFormat: string, authMethod: OidcAuthMethod } | null, publisher?: { __typename?: 'Publisher', id?: string | null, name: string, phone?: string | null, avatar?: string | null, description?: string | null, backgroundColor?: string | null, owner?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, address?: { __typename?: 'Address', line1?: string | null, line2?: string | null, city?: string | null, country?: string | null, state?: string | null, zip?: string | null } | null } | null, recipes?: Array<{ __typename?: 'Recipe', name: string, provider?: Provider | null, description?: string | null } | null> | null } | null }; + +export type DeferredUpdateFragment = { __typename?: 'DeferredUpdate', id: string, dequeueAt?: Date | null, attempts?: number | null, insertedAt?: Date | null, version?: { __typename?: 'Version', version: string } | null }; + +export type AccountFragment = { __typename?: 'Account', id: string, name?: string | null, billingCustomerId?: string | null, backgroundColor?: string | null }; + +export type GroupFragment = { __typename?: 'Group', id: string, name: string, global?: boolean | null, description?: string | null }; + +export type UserFragment = { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null }; + +export type ImpersonationPolicyFragment = { __typename?: 'ImpersonationPolicy', id: string, bindings?: Array<{ __typename?: 'ImpersonationPolicyBinding', id: string, group?: { __typename?: 'Group', id: string, name: string } | null, user?: { __typename?: 'User', id: string, name: string, email: string } | null } | null> | null }; + +export type GroupMemberFragment = { __typename?: 'GroupMember', id: string, user?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null }; + +export type TokenFragment = { __typename?: 'PersistedToken', id?: string | null, token?: string | null, insertedAt?: Date | null }; + +export type TokenAuditFragment = { __typename?: 'PersistedTokenAudit', ip?: string | null, timestamp?: Date | null, count?: number | null, country?: string | null, city?: string | null, latitude?: string | null, longitude?: string | null }; + +export type AddressFragment = { __typename?: 'Address', line1?: string | null, line2?: string | null, city?: string | null, country?: string | null, state?: string | null, zip?: string | null }; + +export type PublisherFragment = { __typename?: 'Publisher', id?: string | null, name: string, phone?: string | null, avatar?: string | null, description?: string | null, backgroundColor?: string | null, owner?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, address?: { __typename?: 'Address', line1?: string | null, line2?: string | null, city?: string | null, country?: string | null, state?: string | null, zip?: string | null } | null }; + +export type WebhookFragment = { __typename?: 'Webhook', id?: string | null, url?: string | null, secret?: string | null, insertedAt?: Date | null }; + +export type RoleBindingFragment = { __typename?: 'RoleBinding', id: string, user?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, group?: { __typename?: 'Group', id: string, name: string, global?: boolean | null, description?: string | null } | null }; + +export type RoleFragment = { __typename?: 'Role', id: string, name: string, description?: string | null, repositories?: Array | null, permissions?: Array | null, roleBindings?: Array<{ __typename?: 'RoleBinding', id: string, user?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, group?: { __typename?: 'Group', id: string, name: string, global?: boolean | null, description?: string | null } | null } | null> | null }; + +export type PublicKeyFragment = { __typename?: 'PublicKey', id: string, name: string, digest: string, insertedAt?: Date | null, content: string, user: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } }; + +export type EabCredentialFragment = { __typename?: 'EabCredential', id: string, keyId: string, hmacKey: string, cluster: string, provider: Provider, insertedAt?: Date | null }; + +export type MeQueryVariables = Exact<{ [key: string]: never; }>; + + +export type MeQuery = { __typename?: 'RootQueryType', me?: { __typename?: 'User', loginMethod?: LoginMethod | null, hasInstallations?: boolean | null, id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, account: { __typename?: 'Account', id: string, name?: string | null, billingCustomerId?: string | null, backgroundColor?: string | null, rootUser?: { __typename?: 'User', id: string, name: string, email: string } | null, domainMappings?: Array<{ __typename?: 'DomainMapping', id: string, domain: string, enableSso?: boolean | null } | null> | null }, publisher?: { __typename?: 'Publisher', billingAccountId?: string | null, id?: string | null, name: string, phone?: string | null, avatar?: string | null, description?: string | null, backgroundColor?: string | null, owner?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, address?: { __typename?: 'Address', line1?: string | null, line2?: string | null, city?: string | null, country?: string | null, state?: string | null, zip?: string | null } | null } | null, boundRoles?: Array<{ __typename?: 'Role', id: string, name: string, description?: string | null, repositories?: Array | null, permissions?: Array | null, roleBindings?: Array<{ __typename?: 'RoleBinding', id: string, user?: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, group?: { __typename?: 'Group', id: string, name: string, global?: boolean | null, description?: string | null } | null } | null> | null } | null> | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } | null, configuration?: { __typename?: 'PluralConfiguration', stripeConnectId?: string | null, stripePublishableKey?: string | null, registry?: string | null, gitCommit?: string | null } | null }; + +export type GetLoginMethodQueryVariables = Exact<{ + email: Scalars['String']; +}>; + + +export type GetLoginMethodQuery = { __typename?: 'RootQueryType', loginMethod?: { __typename?: 'LoginMethodResponse', loginMethod: LoginMethod, token?: string | null } | null }; + +export type ListTokensQueryVariables = Exact<{ [key: string]: never; }>; + + +export type ListTokensQuery = { __typename?: 'RootQueryType', tokens?: { __typename?: 'PersistedTokenConnection', edges?: Array<{ __typename?: 'PersistedTokenEdge', node?: { __typename?: 'PersistedToken', token?: string | null } | null } | null> | null } | null }; + +export type ListKeysQueryVariables = Exact<{ + emails?: InputMaybe> | InputMaybe>; +}>; + + +export type ListKeysQuery = { __typename?: 'RootQueryType', publicKeys?: { __typename?: 'PublicKeyConnection', edges?: Array<{ __typename?: 'PublicKeyEdge', node?: { __typename?: 'PublicKey', id: string, name: string, digest: string, insertedAt?: Date | null, content: string, user: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } } | null } | null> | null } | null }; + +export type GetEabCredentialQueryVariables = Exact<{ + cluster: Scalars['String']; + provider: Provider; +}>; + + +export type GetEabCredentialQuery = { __typename?: 'RootQueryType', eabCredential?: { __typename?: 'EabCredential', id: string, keyId: string, hmacKey: string, cluster: string, provider: Provider, insertedAt?: Date | null } | null }; + +export type DevLoginMutationVariables = Exact<{ [key: string]: never; }>; + + +export type DevLoginMutation = { __typename?: 'RootMutationType', deviceLogin?: { __typename?: 'DeviceLogin', loginUrl: string, deviceToken: string } | null }; + +export type LoginMutationVariables = Exact<{ + email: Scalars['String']; + password: Scalars['String']; + deviceToken?: InputMaybe; +}>; + + +export type LoginMutation = { __typename?: 'RootMutationType', login?: { __typename?: 'User', jwt?: string | null } | null }; + +export type ImpersonateServiceAccountMutationVariables = Exact<{ + email?: InputMaybe; +}>; + + +export type ImpersonateServiceAccountMutation = { __typename?: 'RootMutationType', impersonateServiceAccount?: { __typename?: 'User', jwt?: string | null, email: string } | null }; + +export type CreateAccessTokenMutationVariables = Exact<{ [key: string]: never; }>; + + +export type CreateAccessTokenMutation = { __typename?: 'RootMutationType', createToken?: { __typename?: 'PersistedToken', token?: string | null } | null }; + +export type CreateKeyMutationVariables = Exact<{ + key: Scalars['String']; + name: Scalars['String']; +}>; + + +export type CreateKeyMutation = { __typename?: 'RootMutationType', createPublicKey?: { __typename?: 'PublicKey', id: string } | null }; + +export type DeleteEabCredentialMutationVariables = Exact<{ + cluster: Scalars['String']; + provider: Provider; +}>; + + +export type DeleteEabCredentialMutation = { __typename?: 'RootMutationType', deleteEabKey?: { __typename?: 'EabCredential', id: string } | null }; + +export type CreateEventMutationVariables = Exact<{ + attrs: UserEventAttributes; +}>; + + +export type CreateEventMutation = { __typename?: 'RootMutationType', createUserEvent?: boolean | null }; + +export type LoginMethodQueryVariables = Exact<{ + email: Scalars['String']; + host?: InputMaybe; +}>; + + +export type LoginMethodQuery = { __typename?: 'RootQueryType', loginMethod?: { __typename?: 'LoginMethodResponse', loginMethod: LoginMethod, token?: string | null, authorizeUrl?: string | null } | null }; + +export type SignupMutationVariables = Exact<{ + attributes: UserAttributes; + account?: InputMaybe; + deviceToken?: InputMaybe; +}>; + + +export type SignupMutation = { __typename?: 'RootMutationType', signup?: { __typename?: 'User', jwt?: string | null, onboarding?: OnboardingState | null } | null }; + +export type PasswordlessLoginMutationVariables = Exact<{ + token: Scalars['String']; +}>; + + +export type PasswordlessLoginMutation = { __typename?: 'RootMutationType', passwordlessLogin?: { __typename?: 'User', jwt?: string | null } | null }; + +export type PollLoginTokenMutationVariables = Exact<{ + token: Scalars['String']; + deviceToken?: InputMaybe; +}>; + + +export type PollLoginTokenMutation = { __typename?: 'RootMutationType', loginToken?: { __typename?: 'User', jwt?: string | null } | null }; + +export type OauthUrlsQueryVariables = Exact<{ + host?: InputMaybe; +}>; + + +export type OauthUrlsQuery = { __typename?: 'RootQueryType', oauthUrls?: Array<{ __typename?: 'OauthInfo', provider: OauthProvider, authorizeUrl: string } | null> | null }; + +export type AcceptLoginMutationVariables = Exact<{ + challenge: Scalars['String']; +}>; + + +export type AcceptLoginMutation = { __typename?: 'RootMutationType', acceptLogin?: { __typename?: 'OauthResponse', redirectTo: string } | null }; + +export type CreateResetTokenMutationVariables = Exact<{ + attributes: ResetTokenAttributes; +}>; + + +export type CreateResetTokenMutation = { __typename?: 'RootMutationType', createResetToken?: boolean | null }; + +export type RealizeResetTokenMutationVariables = Exact<{ + id: Scalars['ID']; + attributes: ResetTokenRealization; +}>; + + +export type RealizeResetTokenMutation = { __typename?: 'RootMutationType', realizeResetToken?: boolean | null }; + +export type ResetTokenQueryVariables = Exact<{ + id: Scalars['ID']; +}>; + + +export type ResetTokenQuery = { __typename?: 'RootQueryType', resetToken?: { __typename?: 'ResetToken', type: ResetTokenType, user: { __typename?: 'User', id: string, name: string, email: string, avatar?: string | null, provider?: Provider | null, demoing?: boolean | null, demoed?: boolean | null, onboarding?: OnboardingState | null, emailConfirmed?: boolean | null, emailConfirmBy?: Date | null, backgroundColor?: string | null, serviceAccount?: boolean | null, onboardingChecklist?: { __typename?: 'OnboardingChecklist', dismissed?: boolean | null, status?: OnboardingChecklistState | null } | null, roles?: { __typename?: 'Roles', admin?: boolean | null } | null } } | null }; + +export type VersionTagFragment = { __typename?: 'VersionTag', id: string, tag: string, version?: { __typename?: 'Version', id: string } | null }; + +export type VersionFragment = { __typename?: 'Version', id: string, helm?: Map | null, readme?: string | null, valuesTemplate?: string | null, version: string, insertedAt?: Date | null, package?: string | null, crds?: Array<{ __typename?: 'Crd', id: string, name: string, blob?: string | null } | null> | null, chart?: { __typename?: 'Chart', id?: string | null, name: string, description?: string | null, latestVersion?: string | null, insertedAt?: Date | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null } | null, terraform?: { __typename?: 'Terraform', id?: string | null, name?: string | null } | null, dependencies?: { __typename?: 'Dependencies', wait?: boolean | null, application?: boolean | null, providers?: Array | null, secrets?: Array | null, providerWirings?: Map | null, outputs?: Map | null, dependencies?: Array<{ __typename?: 'Dependency', name?: string | null, repo?: string | null, type?: DependencyType | null, version?: string | null, optional?: boolean | null } | null> | null, wirings?: { __typename?: 'Wirings', terraform?: Map | null, helm?: Map | null } | null } | null }; + +export type UpdateVersionMutationVariables = Exact<{ + spec?: InputMaybe; + attributes: VersionAttributes; +}>; + + +export type UpdateVersionMutation = { __typename?: 'RootMutationType', updateVersion?: { __typename?: 'Version', id: string } | null }; + +export const UserFragmentDoc = gql` + fragment User on User { + id + name + email + avatar + provider + demoing + demoed + onboarding + onboardingChecklist { + dismissed + status + } + emailConfirmed + emailConfirmBy + backgroundColor + serviceAccount + roles { + admin + } +} + `; +export const AddressFragmentDoc = gql` + fragment Address on Address { + line1 + line2 + city + country + state + zip +} + `; +export const PublisherFragmentDoc = gql` + fragment Publisher on Publisher { + id + name + phone + avatar + description + backgroundColor + owner { + ...User + } + address { + ...Address + } +} + ${UserFragmentDoc} +${AddressFragmentDoc}`; +export const RepoFragmentDoc = gql` + fragment Repo on Repository { + id + name + notes + description + documentation + icon + darkIcon + private + trending + verified + category + oauthSettings { + uriFormat + authMethod + } + publisher { + ...Publisher + } + recipes { + name + provider + description + } +} + ${PublisherFragmentDoc}`; +export const GroupFragmentDoc = gql` + fragment Group on Group { + id + name + global + description +} + `; +export const IntegrationWebhookFragmentDoc = gql` + fragment IntegrationWebhook on IntegrationWebhook { + id + name + url + secret + actions +} + `; +export const RoleBindingFragmentDoc = gql` + fragment RoleBinding on RoleBinding { + id + user { + ...User + } + group { + ...Group + } +} + ${UserFragmentDoc} +${GroupFragmentDoc}`; +export const RoleFragmentDoc = gql` + fragment Role on Role { + id + name + description + repositories + permissions + roleBindings { + ...RoleBinding + } +} + ${RoleBindingFragmentDoc}`; +export const CrdFragmentDoc = gql` + fragment Crd on Crd { + id + name + blob +} + `; +export const DependenciesFragmentDoc = gql` + fragment Dependencies on Dependencies { + dependencies { + name + repo + type + version + optional + } + wait + application + providers + secrets + wirings { + terraform + helm + } + providerWirings + outputs +} + `; +export const ChartFragmentDoc = gql` + fragment Chart on Chart { + id + name + description + latestVersion + dependencies { + ...Dependencies + } + insertedAt +} + ${DependenciesFragmentDoc}`; +export const VersionFragmentDoc = gql` + fragment Version on Version { + id + helm + readme + valuesTemplate + version + insertedAt + package + crds { + ...Crd + } + chart { + ...Chart + } + terraform { + id + name + } + dependencies { + ...Dependencies + } +} + ${CrdFragmentDoc} +${ChartFragmentDoc} +${DependenciesFragmentDoc}`; +export const AuditFragmentDoc = gql` + fragment Audit on Audit { + id + action + ip + country + city + latitude + longitude + actor { + ...User + } + repository { + ...Repo + } + group { + ...Group + } + integrationWebhook { + ...IntegrationWebhook + } + role { + ...Role + } + version { + ...Version + } + image { + id + tag + dockerRepository { + name + } + } + insertedAt +} + ${UserFragmentDoc} +${RepoFragmentDoc} +${GroupFragmentDoc} +${IntegrationWebhookFragmentDoc} +${RoleFragmentDoc} +${VersionFragmentDoc}`; +export const PolicyBindingFragmentDoc = gql` + fragment PolicyBinding on PolicyBinding { + id + group { + id + name + } + user { + id + name + email + } +} + `; +export const DnsDomainFragmentDoc = gql` + fragment DnsDomain on DnsDomain { + id + name + creator { + ...User + } + accessPolicy { + id + bindings { + ...PolicyBinding + } + } + insertedAt +} + ${UserFragmentDoc} +${PolicyBindingFragmentDoc}`; +export const InviteFragmentDoc = gql` + fragment Invite on Invite { + id + secureId + email + insertedAt +} + `; +export const OidcLoginFragmentDoc = gql` + fragment OidcLogin on OidcLogin { + ip + country + city + latitude + longitude + user { + ...User + } + owner { + ...User + } + repository { + ...Repo + } + insertedAt +} + ${UserFragmentDoc} +${RepoFragmentDoc}`; +export const ArtifactFragmentDoc = gql` + fragment Artifact on Artifact { + id + name + blob + type + platform + arch + filesize + sha + readme + insertedAt + updatedAt +} + `; +export const ChartInstallationFragmentDoc = gql` + fragment ChartInstallation on ChartInstallation { + id + chart { + ...Chart + dependencies { + ...Dependencies + } + } + version { + ...Version + } +} + ${ChartFragmentDoc} +${DependenciesFragmentDoc} +${VersionFragmentDoc}`; +export const ScanViolationFragmentDoc = gql` + fragment ScanViolation on ScanViolation { + ruleName + description + ruleId + severity + category + resourceName + resourceType + file + line +} + `; +export const ScanErrorFragmentDoc = gql` + fragment ScanError on ScanError { + message +} + `; +export const PackageScanFragmentDoc = gql` + fragment PackageScan on PackageScan { + id + grade + violations { + ...ScanViolation + } + errors { + ...ScanError + } +} + ${ScanViolationFragmentDoc} +${ScanErrorFragmentDoc}`; +export const DnsRecordFragmentDoc = gql` + fragment DnsRecord on DnsRecord { + id + name + type + records + cluster + provider + creator { + ...User + } + insertedAt +} + ${UserFragmentDoc}`; +export const DockerRepoFragmentDoc = gql` + fragment DockerRepo on DockerRepository { + id + name + public + repository { + id + name + } + insertedAt + updatedAt +} + `; +export const DockerRepositoryFragmentDoc = gql` + fragment DockerRepository on DockerRepository { + id + name + public + repository { + id + name + editable + } + insertedAt + updatedAt +} + `; +export const DockerImageFragmentDoc = gql` + fragment DockerImage on DockerImage { + id + tag + digest + scannedAt + grade + insertedAt + updatedAt +} + `; +export const VulnerabilityFragmentDoc = gql` + fragment Vulnerability on Vulnerability { + id + title + description + vulnerabilityId + package + installedVersion + fixedVersion + source + url + severity + score + cvss { + attackVector + attackComplexity + privilegesRequired + userInteraction + confidentiality + integrity + availability + } + layer { + digest + diffId + } +} + `; +export const PostmortemFragmentDoc = gql` + fragment Postmortem on Postmortem { + id + content + actionItems { + type + link + } +} + `; +export const FollowerFragmentDoc = gql` + fragment Follower on Follower { + id + incident { + id + } + user { + ...User + } + preferences { + message + incidentUpdate + mention + } +} + ${UserFragmentDoc}`; +export const ServiceLevelFragmentDoc = gql` + fragment ServiceLevel on ServiceLevel { + minSeverity + maxSeverity + responseTime +} + `; +export const LimitFragmentDoc = gql` + fragment Limit on Limit { + dimension + quantity +} + `; +export const LineItemFragmentDoc = gql` + fragment LineItem on LineItem { + name + dimension + cost + period + type +} + `; +export const PlanFragmentDoc = gql` + fragment Plan on Plan { + id + name + cost + period + serviceLevels { + ...ServiceLevel + } + lineItems { + included { + ...Limit + } + items { + ...LineItem + } + } + metadata { + features { + name + description + } + } +} + ${ServiceLevelFragmentDoc} +${LimitFragmentDoc} +${LineItemFragmentDoc}`; +export const SlimSubscriptionFragmentDoc = gql` + fragment SlimSubscription on SlimSubscription { + id + lineItems { + items { + dimension + quantity + } + } + plan { + ...Plan + } +} + ${PlanFragmentDoc}`; +export const ClusterInformationFragmentDoc = gql` + fragment ClusterInformation on ClusterInformation { + version + gitCommit + platform +} + `; +export const IncidentFragmentDoc = gql` + fragment Incident on Incident { + id + title + description + severity + status + notificationCount + nextResponseAt + creator { + ...User + } + owner { + ...User + } + repository { + ...Repo + } + subscription { + ...SlimSubscription + } + clusterInformation { + ...ClusterInformation + } + tags { + tag + } + insertedAt +} + ${UserFragmentDoc} +${RepoFragmentDoc} +${SlimSubscriptionFragmentDoc} +${ClusterInformationFragmentDoc}`; +export const IncidentHistoryFragmentDoc = gql` + fragment IncidentHistory on IncidentHistory { + id + action + changes { + key + prev + next + } + actor { + ...User + } + insertedAt +} + ${UserFragmentDoc}`; +export const FileFragmentDoc = gql` + fragment File on File { + id + blob + mediaType + contentType + filesize + filename +} + `; +export const IncidentMessageFragmentDoc = gql` + fragment IncidentMessage on IncidentMessage { + id + text + creator { + ...User + } + reactions { + name + creator { + id + email + } + } + file { + ...File + } + entities { + type + user { + ...User + } + text + startIndex + endIndex + } + insertedAt +} + ${UserFragmentDoc} +${FileFragmentDoc}`; +export const NotificationFragmentDoc = gql` + fragment Notification on Notification { + id + type + msg + actor { + ...User + } + incident { + id + title + repository { + id + name + icon + darkIcon + } + } + message { + text + } + repository { + id + name + icon + darkIcon + } + insertedAt +} + ${UserFragmentDoc}`; +export const WebhookLogFragmentDoc = gql` + fragment WebhookLog on WebhookLog { + id + state + status + payload + response + insertedAt +} + `; +export const OauthIntegrationFragmentDoc = gql` + fragment OauthIntegration on OauthIntegration { + id + service + insertedAt +} + `; +export const ZoomMeetingFragmentDoc = gql` + fragment ZoomMeeting on ZoomMeeting { + joinUrl + password +} + `; +export const MetricFragmentDoc = gql` + fragment Metric on Metric { + name + tags { + name + value + } + values { + time + value + } +} + `; +export const PageInfoFragmentDoc = gql` + fragment PageInfo on PageInfo { + endCursor + hasNextPage +} + `; +export const OAuthInfoFragmentDoc = gql` + fragment OAuthInfo on OauthInfo { + provider + authorizeUrl +} + `; +export const SubscriptionFragmentDoc = gql` + fragment Subscription on RepositorySubscription { + id + plan { + ...Plan + } + lineItems { + items { + ...Limit + } + } +} + ${PlanFragmentDoc} +${LimitFragmentDoc}`; +export const InvoiceItemFragmentDoc = gql` + fragment InvoiceItem on InvoiceItem { + amount + currency + description +} + `; +export const InvoiceFragmentDoc = gql` + fragment Invoice on Invoice { + number + amountDue + amountPaid + currency + status + createdAt + hostedInvoiceUrl + lines { + ...InvoiceItem + } +} + ${InvoiceItemFragmentDoc}`; +export const CardFragmentDoc = gql` + fragment Card on Card { + id + last4 + expMonth + expYear + name + brand +} + `; +export const OidcProviderFragmentDoc = gql` + fragment OIDCProvider on OidcProvider { + id + clientId + authMethod + clientSecret + redirectUris + bindings { + id + user { + ...User + } + group { + ...Group + } + } + configuration { + issuer + authorizationEndpoint + tokenEndpoint + jwksUri + userinfoEndpoint + } +} + ${UserFragmentDoc} +${GroupFragmentDoc}`; +export const InstallationFragmentDoc = gql` + fragment Installation on Installation { + id + context + license + licenseKey + acmeKeyId + acmeSecret + autoUpgrade + trackTag + repository { + ...Repo + } + user { + ...User + } + oidcProvider { + ...OIDCProvider + } +} + ${RepoFragmentDoc} +${UserFragmentDoc} +${OidcProviderFragmentDoc}`; +export const TerraformFragmentDoc = gql` + fragment Terraform on Terraform { + id + name + readme + package + description + latestVersion + dependencies { + ...Dependencies + } + valuesTemplate + insertedAt +} + ${DependenciesFragmentDoc}`; +export const RecipeConfigurationFragmentDoc = gql` + fragment RecipeConfiguration on RecipeConfiguration { + name + type + default + documentation + optional + placeholder + functionName + condition { + field + operation + value + } + validation { + type + regex + message + } +} + `; +export const RecipeItemFragmentDoc = gql` + fragment RecipeItem on RecipeItem { + id + chart { + ...Chart + } + terraform { + ...Terraform + } + configuration { + ...RecipeConfiguration + } +} + ${ChartFragmentDoc} +${TerraformFragmentDoc} +${RecipeConfigurationFragmentDoc}`; +export const RecipeSectionFragmentDoc = gql` + fragment RecipeSection on RecipeSection { + index + repository { + ...Repo + installation { + ...Installation + } + } + recipeItems { + ...RecipeItem + } + configuration { + ...RecipeConfiguration + } +} + ${RepoFragmentDoc} +${InstallationFragmentDoc} +${RecipeItemFragmentDoc} +${RecipeConfigurationFragmentDoc}`; +export const RecipeFragmentDoc = gql` + fragment Recipe on Recipe { + id + name + description + restricted + provider + tests { + type + name + message + args { + name + repo + key + } + } + repository { + id + name + } + oidcSettings { + uriFormat + uriFormats + authMethod + domainKey + subdomain + } + recipeSections { + ...RecipeSection + } +} + ${RecipeSectionFragmentDoc}`; +export const StackFragmentDoc = gql` + fragment Stack on Stack { + id + name + displayName + description + featured + creator { + id + name + } + collections { + id + provider + bundles { + recipe { + repository { + ...Repo + tags { + tag + } + } + } + } + } +} + ${RepoFragmentDoc}`; +export const ApplyLockFragmentDoc = gql` + fragment ApplyLock on ApplyLock { + id + lock +} + `; +export const CategoryFragmentDoc = gql` + fragment Category on CategoryInfo { + category + count +} + `; +export const RepositoryFragmentDoc = gql` + fragment Repository on Repository { + id + name + notes + icon + darkIcon + description + publisher { + name + } + recipes { + name + } +} + `; +export const IntegrationFragmentDoc = gql` + fragment Integration on Integration { + id + name + icon + sourceUrl + description + tags { + tag + } + publisher { + ...Publisher + } +} + ${PublisherFragmentDoc}`; +export const CloudShellFragmentDoc = gql` + fragment CloudShell on CloudShell { + id + aesKey + gitUrl + alive + provider + subdomain + cluster + status { + ready + initialized + containersReady + podScheduled + } +} + `; +export const DemoProjectFragmentDoc = gql` + fragment DemoProject on DemoProject { + id + projectId + credentials + ready + state +} + `; +export const TerraformInstallationFragmentDoc = gql` + fragment TerraformInstallation on TerraformInstallation { + id + terraform { + ...Terraform + } + version { + ...Version + } +} + ${TerraformFragmentDoc} +${VersionFragmentDoc}`; +export const StepFragmentDoc = gql` + fragment Step on TestStep { + id + name + status + hasLogs + description + insertedAt + updatedAt +} + `; +export const TestFragmentDoc = gql` + fragment Test on Test { + id + name + promoteTag + status + insertedAt + updatedAt + steps { + ...Step + } +} + ${StepFragmentDoc}`; +export const UpgradeQueueFragmentDoc = gql` + fragment UpgradeQueue on UpgradeQueue { + id + acked + name + domain + git + pingedAt + provider +} + `; +export const RolloutFragmentDoc = gql` + fragment Rollout on Rollout { + id + event + cursor + count + status + heartbeat +} + `; +export const UpgradeFragmentDoc = gql` + fragment Upgrade on Upgrade { + id + message + repository { + ...Repo + } + insertedAt +} + ${RepoFragmentDoc}`; +export const DeferredUpdateFragmentDoc = gql` + fragment DeferredUpdate on DeferredUpdate { + id + dequeueAt + attempts + version { + version + } + insertedAt +} + `; +export const AccountFragmentDoc = gql` + fragment Account on Account { + id + name + billingCustomerId + backgroundColor +} + `; +export const ImpersonationPolicyFragmentDoc = gql` + fragment ImpersonationPolicy on ImpersonationPolicy { + id + bindings { + id + group { + id + name + } + user { + id + name + email + } + } +} + `; +export const GroupMemberFragmentDoc = gql` + fragment GroupMember on GroupMember { + id + user { + ...User + } +} + ${UserFragmentDoc}`; +export const TokenFragmentDoc = gql` + fragment Token on PersistedToken { + id + token + insertedAt +} + `; +export const TokenAuditFragmentDoc = gql` + fragment TokenAudit on PersistedTokenAudit { + ip + timestamp + count + country + city + latitude + longitude +} + `; +export const WebhookFragmentDoc = gql` + fragment Webhook on Webhook { + id + url + secret + insertedAt +} + `; +export const PublicKeyFragmentDoc = gql` + fragment PublicKey on PublicKey { + id + name + digest + insertedAt + content + user { + ...User + } +} + ${UserFragmentDoc}`; +export const EabCredentialFragmentDoc = gql` + fragment EabCredential on EabCredential { + id + keyId + hmacKey + cluster + provider + insertedAt +} + `; +export const VersionTagFragmentDoc = gql` + fragment VersionTag on VersionTag { + id + tag + version { + id + } +} + `; +export const UpdateAccountDocument = gql` + mutation UpdateAccount($attributes: AccountAttributes!) { + updateAccount(attributes: $attributes) { + ...Account + domainMappings { + id + domain + enableSso + } + } +} + ${AccountFragmentDoc}`; +export type UpdateAccountMutationFn = Apollo.MutationFunction; + +/** + * __useUpdateAccountMutation__ + * + * To run a mutation, you first call `useUpdateAccountMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useUpdateAccountMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [updateAccountMutation, { data, loading, error }] = useUpdateAccountMutation({ + * variables: { + * attributes: // value for 'attributes' + * }, + * }); + */ +export function useUpdateAccountMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(UpdateAccountDocument, options); + } +export type UpdateAccountMutationHookResult = ReturnType; +export type UpdateAccountMutationResult = Apollo.MutationResult; +export type UpdateAccountMutationOptions = Apollo.BaseMutationOptions; +export const ListArtifactsDocument = gql` + query ListArtifacts($id: ID!) { + repository(id: $id) { + artifacts { + ...Artifact + } + } +} + ${ArtifactFragmentDoc}`; + +/** + * __useListArtifactsQuery__ + * + * To run a query within a React component, call `useListArtifactsQuery` and pass it any options that fit your needs. + * When your component renders, `useListArtifactsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useListArtifactsQuery({ + * variables: { + * id: // value for 'id' + * }, + * }); + */ +export function useListArtifactsQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ListArtifactsDocument, options); + } +export function useListArtifactsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ListArtifactsDocument, options); + } +export type ListArtifactsQueryHookResult = ReturnType; +export type ListArtifactsLazyQueryHookResult = ReturnType; +export type ListArtifactsQueryResult = Apollo.QueryResult; +export const CreateArtifactDocument = gql` + mutation CreateArtifact($repoName: String!, $name: String!, $readme: String!, $artifactType: String!, $platform: String!, $blob: UploadOrUrl!, $arch: String) { + createArtifact(repositoryName: $repoName, attributes: {name: $name, blob: $blob, readme: $readme, type: $artifactType, platform: $platform, arch: $arch}) { + ...Artifact + } +} + ${ArtifactFragmentDoc}`; +export type CreateArtifactMutationFn = Apollo.MutationFunction; + +/** + * __useCreateArtifactMutation__ + * + * To run a mutation, you first call `useCreateArtifactMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useCreateArtifactMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [createArtifactMutation, { data, loading, error }] = useCreateArtifactMutation({ + * variables: { + * repoName: // value for 'repoName' + * name: // value for 'name' + * readme: // value for 'readme' + * artifactType: // value for 'artifactType' + * platform: // value for 'platform' + * blob: // value for 'blob' + * arch: // value for 'arch' + * }, + * }); + */ +export function useCreateArtifactMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(CreateArtifactDocument, options); + } +export type CreateArtifactMutationHookResult = ReturnType; +export type CreateArtifactMutationResult = Apollo.MutationResult; +export type CreateArtifactMutationOptions = Apollo.BaseMutationOptions; +export const GetChartsDocument = gql` + query GetCharts($id: ID!) { + charts(repositoryId: $id, first: 100) { + edges { + node { + ...Chart + } + } + } +} + ${ChartFragmentDoc}`; + +/** + * __useGetChartsQuery__ + * + * To run a query within a React component, call `useGetChartsQuery` and pass it any options that fit your needs. + * When your component renders, `useGetChartsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useGetChartsQuery({ + * variables: { + * id: // value for 'id' + * }, + * }); + */ +export function useGetChartsQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(GetChartsDocument, options); + } +export function useGetChartsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(GetChartsDocument, options); + } +export type GetChartsQueryHookResult = ReturnType; +export type GetChartsLazyQueryHookResult = ReturnType; +export type GetChartsQueryResult = Apollo.QueryResult; +export const GetVersionsDocument = gql` + query GetVersions($id: ID!) { + versions(chartId: $id, first: 100) { + edges { + node { + ...Version + } + } + } +} + ${VersionFragmentDoc}`; + +/** + * __useGetVersionsQuery__ + * + * To run a query within a React component, call `useGetVersionsQuery` and pass it any options that fit your needs. + * When your component renders, `useGetVersionsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useGetVersionsQuery({ + * variables: { + * id: // value for 'id' + * }, + * }); + */ +export function useGetVersionsQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(GetVersionsDocument, options); + } +export function useGetVersionsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(GetVersionsDocument, options); + } +export type GetVersionsQueryHookResult = ReturnType; +export type GetVersionsLazyQueryHookResult = ReturnType; +export type GetVersionsQueryResult = Apollo.QueryResult; +export const GetChartInstallationsDocument = gql` + query GetChartInstallations($id: ID!) { + chartInstallations(repositoryId: $id, first: 100) { + edges { + node { + ...ChartInstallation + } + } + } +} + ${ChartInstallationFragmentDoc}`; + +/** + * __useGetChartInstallationsQuery__ + * + * To run a query within a React component, call `useGetChartInstallationsQuery` and pass it any options that fit your needs. + * When your component renders, `useGetChartInstallationsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useGetChartInstallationsQuery({ + * variables: { + * id: // value for 'id' + * }, + * }); + */ +export function useGetChartInstallationsQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(GetChartInstallationsDocument, options); + } +export function useGetChartInstallationsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(GetChartInstallationsDocument, options); + } +export type GetChartInstallationsQueryHookResult = ReturnType; +export type GetChartInstallationsLazyQueryHookResult = ReturnType; +export type GetChartInstallationsQueryResult = Apollo.QueryResult; +export const GetPackageInstallationsDocument = gql` + query GetPackageInstallations($id: ID!) { + chartInstallations(repositoryId: $id, first: 100) { + edges { + node { + ...ChartInstallation + } + } + } + terraformInstallations(repositoryId: $id, first: 100) { + edges { + node { + ...TerraformInstallation + } + } + } +} + ${ChartInstallationFragmentDoc} +${TerraformInstallationFragmentDoc}`; + +/** + * __useGetPackageInstallationsQuery__ + * + * To run a query within a React component, call `useGetPackageInstallationsQuery` and pass it any options that fit your needs. + * When your component renders, `useGetPackageInstallationsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useGetPackageInstallationsQuery({ + * variables: { + * id: // value for 'id' + * }, + * }); + */ +export function useGetPackageInstallationsQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(GetPackageInstallationsDocument, options); + } +export function useGetPackageInstallationsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(GetPackageInstallationsDocument, options); + } +export type GetPackageInstallationsQueryHookResult = ReturnType; +export type GetPackageInstallationsLazyQueryHookResult = ReturnType; +export type GetPackageInstallationsQueryResult = Apollo.QueryResult; +export const CreateCrdDocument = gql` + mutation CreateCrd($chartName: ChartName!, $name: String!, $blob: UploadOrUrl!) { + createCrd(chartName: $chartName, attributes: {name: $name, blob: $blob}) { + id + } +} + `; +export type CreateCrdMutationFn = Apollo.MutationFunction; + +/** + * __useCreateCrdMutation__ + * + * To run a mutation, you first call `useCreateCrdMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useCreateCrdMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [createCrdMutation, { data, loading, error }] = useCreateCrdMutation({ + * variables: { + * chartName: // value for 'chartName' + * name: // value for 'name' + * blob: // value for 'blob' + * }, + * }); + */ +export function useCreateCrdMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(CreateCrdDocument, options); + } +export type CreateCrdMutationHookResult = ReturnType; +export type CreateCrdMutationResult = Apollo.MutationResult; +export type CreateCrdMutationOptions = Apollo.BaseMutationOptions; +export const UninstallChartDocument = gql` + mutation UninstallChart($id: ID!) { + deleteChartInstallation(id: $id) { + id + } +} + `; +export type UninstallChartMutationFn = Apollo.MutationFunction; + +/** + * __useUninstallChartMutation__ + * + * To run a mutation, you first call `useUninstallChartMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useUninstallChartMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [uninstallChartMutation, { data, loading, error }] = useUninstallChartMutation({ + * variables: { + * id: // value for 'id' + * }, + * }); + */ +export function useUninstallChartMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(UninstallChartDocument, options); + } +export type UninstallChartMutationHookResult = ReturnType; +export type UninstallChartMutationResult = Apollo.MutationResult; +export type UninstallChartMutationOptions = Apollo.BaseMutationOptions; +export const GetDnsRecordsDocument = gql` + query GetDnsRecords($cluster: String!, $provider: Provider!) { + dnsRecords(cluster: $cluster, provider: $provider, first: 500) { + edges { + node { + ...DnsRecord + } + } + } +} + ${DnsRecordFragmentDoc}`; + +/** + * __useGetDnsRecordsQuery__ + * + * To run a query within a React component, call `useGetDnsRecordsQuery` and pass it any options that fit your needs. + * When your component renders, `useGetDnsRecordsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useGetDnsRecordsQuery({ + * variables: { + * cluster: // value for 'cluster' + * provider: // value for 'provider' + * }, + * }); + */ +export function useGetDnsRecordsQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(GetDnsRecordsDocument, options); + } +export function useGetDnsRecordsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(GetDnsRecordsDocument, options); + } +export type GetDnsRecordsQueryHookResult = ReturnType; +export type GetDnsRecordsLazyQueryHookResult = ReturnType; +export type GetDnsRecordsQueryResult = Apollo.QueryResult; +export const CreateDnsRecordDocument = gql` + mutation CreateDnsRecord($cluster: String!, $provider: Provider!, $attributes: DnsRecordAttributes!) { + createDnsRecord(cluster: $cluster, provider: $provider, attributes: $attributes) { + ...DnsRecord + } +} + ${DnsRecordFragmentDoc}`; +export type CreateDnsRecordMutationFn = Apollo.MutationFunction; + +/** + * __useCreateDnsRecordMutation__ + * + * To run a mutation, you first call `useCreateDnsRecordMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useCreateDnsRecordMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [createDnsRecordMutation, { data, loading, error }] = useCreateDnsRecordMutation({ + * variables: { + * cluster: // value for 'cluster' + * provider: // value for 'provider' + * attributes: // value for 'attributes' + * }, + * }); + */ +export function useCreateDnsRecordMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(CreateDnsRecordDocument, options); + } +export type CreateDnsRecordMutationHookResult = ReturnType; +export type CreateDnsRecordMutationResult = Apollo.MutationResult; +export type CreateDnsRecordMutationOptions = Apollo.BaseMutationOptions; +export const DeleteDnsRecordDocument = gql` + mutation DeleteDnsRecord($name: String!, $type: DnsRecordType!) { + deleteDnsRecord(name: $name, type: $type) { + ...DnsRecord + } +} + ${DnsRecordFragmentDoc}`; +export type DeleteDnsRecordMutationFn = Apollo.MutationFunction; + +/** + * __useDeleteDnsRecordMutation__ + * + * To run a mutation, you first call `useDeleteDnsRecordMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useDeleteDnsRecordMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [deleteDnsRecordMutation, { data, loading, error }] = useDeleteDnsRecordMutation({ + * variables: { + * name: // value for 'name' + * type: // value for 'type' + * }, + * }); + */ +export function useDeleteDnsRecordMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(DeleteDnsRecordDocument, options); + } +export type DeleteDnsRecordMutationHookResult = ReturnType; +export type DeleteDnsRecordMutationResult = Apollo.MutationResult; +export type DeleteDnsRecordMutationOptions = Apollo.BaseMutationOptions; +export const CreateDomainDocument = gql` + mutation CreateDomain($name: String!) { + provisionDomain(name: $name) { + ...DnsDomain + } +} + ${DnsDomainFragmentDoc}`; +export type CreateDomainMutationFn = Apollo.MutationFunction; + +/** + * __useCreateDomainMutation__ + * + * To run a mutation, you first call `useCreateDomainMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useCreateDomainMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [createDomainMutation, { data, loading, error }] = useCreateDomainMutation({ + * variables: { + * name: // value for 'name' + * }, + * }); + */ +export function useCreateDomainMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(CreateDomainDocument, options); + } +export type CreateDomainMutationHookResult = ReturnType; +export type CreateDomainMutationResult = Apollo.MutationResult; +export type CreateDomainMutationOptions = Apollo.BaseMutationOptions; +export const GroupMembersDocument = gql` + query GroupMembers($cursor: String, $id: ID!) { + groupMembers(groupId: $id, after: $cursor, first: 20) { + pageInfo { + ...PageInfo + } + edges { + node { + ...GroupMember + } + } + } +} + ${PageInfoFragmentDoc} +${GroupMemberFragmentDoc}`; + +/** + * __useGroupMembersQuery__ + * + * To run a query within a React component, call `useGroupMembersQuery` and pass it any options that fit your needs. + * When your component renders, `useGroupMembersQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useGroupMembersQuery({ + * variables: { + * cursor: // value for 'cursor' + * id: // value for 'id' + * }, + * }); + */ +export function useGroupMembersQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(GroupMembersDocument, options); + } +export function useGroupMembersLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(GroupMembersDocument, options); + } +export type GroupMembersQueryHookResult = ReturnType; +export type GroupMembersLazyQueryHookResult = ReturnType; +export type GroupMembersQueryResult = Apollo.QueryResult; +export const CreateGroupMemberDocument = gql` + mutation CreateGroupMember($groupId: ID!, $userId: ID!) { + createGroupMember(groupId: $groupId, userId: $userId) { + ...GroupMember + } +} + ${GroupMemberFragmentDoc}`; +export type CreateGroupMemberMutationFn = Apollo.MutationFunction; + +/** + * __useCreateGroupMemberMutation__ + * + * To run a mutation, you first call `useCreateGroupMemberMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useCreateGroupMemberMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [createGroupMemberMutation, { data, loading, error }] = useCreateGroupMemberMutation({ + * variables: { + * groupId: // value for 'groupId' + * userId: // value for 'userId' + * }, + * }); + */ +export function useCreateGroupMemberMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(CreateGroupMemberDocument, options); + } +export type CreateGroupMemberMutationHookResult = ReturnType; +export type CreateGroupMemberMutationResult = Apollo.MutationResult; +export type CreateGroupMemberMutationOptions = Apollo.BaseMutationOptions; +export const DeleteGroupMemberDocument = gql` + mutation DeleteGroupMember($groupId: ID!, $userId: ID!) { + deleteGroupMember(groupId: $groupId, userId: $userId) { + ...GroupMember + } +} + ${GroupMemberFragmentDoc}`; +export type DeleteGroupMemberMutationFn = Apollo.MutationFunction; + +/** + * __useDeleteGroupMemberMutation__ + * + * To run a mutation, you first call `useDeleteGroupMemberMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useDeleteGroupMemberMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [deleteGroupMemberMutation, { data, loading, error }] = useDeleteGroupMemberMutation({ + * variables: { + * groupId: // value for 'groupId' + * userId: // value for 'userId' + * }, + * }); + */ +export function useDeleteGroupMemberMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(DeleteGroupMemberDocument, options); + } +export type DeleteGroupMemberMutationHookResult = ReturnType; +export type DeleteGroupMemberMutationResult = Apollo.MutationResult; +export type DeleteGroupMemberMutationOptions = Apollo.BaseMutationOptions; +export const CreateGroupDocument = gql` + mutation CreateGroup($attributes: GroupAttributes!) { + createGroup(attributes: $attributes) { + ...Group + } +} + ${GroupFragmentDoc}`; +export type CreateGroupMutationFn = Apollo.MutationFunction; + +/** + * __useCreateGroupMutation__ + * + * To run a mutation, you first call `useCreateGroupMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useCreateGroupMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [createGroupMutation, { data, loading, error }] = useCreateGroupMutation({ + * variables: { + * attributes: // value for 'attributes' + * }, + * }); + */ +export function useCreateGroupMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(CreateGroupDocument, options); + } +export type CreateGroupMutationHookResult = ReturnType; +export type CreateGroupMutationResult = Apollo.MutationResult; +export type CreateGroupMutationOptions = Apollo.BaseMutationOptions; +export const UpdateGroupDocument = gql` + mutation UpdateGroup($id: ID!, $attributes: GroupAttributes!) { + updateGroup(groupId: $id, attributes: $attributes) { + ...Group + } +} + ${GroupFragmentDoc}`; +export type UpdateGroupMutationFn = Apollo.MutationFunction; + +/** + * __useUpdateGroupMutation__ + * + * To run a mutation, you first call `useUpdateGroupMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useUpdateGroupMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [updateGroupMutation, { data, loading, error }] = useUpdateGroupMutation({ + * variables: { + * id: // value for 'id' + * attributes: // value for 'attributes' + * }, + * }); + */ +export function useUpdateGroupMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(UpdateGroupDocument, options); + } +export type UpdateGroupMutationHookResult = ReturnType; +export type UpdateGroupMutationResult = Apollo.MutationResult; +export type UpdateGroupMutationOptions = Apollo.BaseMutationOptions; +export const DeleteGroupDocument = gql` + mutation DeleteGroup($id: ID!) { + deleteGroup(groupId: $id) { + ...Group + } +} + ${GroupFragmentDoc}`; +export type DeleteGroupMutationFn = Apollo.MutationFunction; + +/** + * __useDeleteGroupMutation__ + * + * To run a mutation, you first call `useDeleteGroupMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useDeleteGroupMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [deleteGroupMutation, { data, loading, error }] = useDeleteGroupMutation({ + * variables: { + * id: // value for 'id' + * }, + * }); + */ +export function useDeleteGroupMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(DeleteGroupDocument, options); + } +export type DeleteGroupMutationHookResult = ReturnType; +export type DeleteGroupMutationResult = Apollo.MutationResult; +export type DeleteGroupMutationOptions = Apollo.BaseMutationOptions; +export const GroupsDocument = gql` + query Groups($q: String, $cursor: String) { + groups(q: $q, first: 20, after: $cursor) { + pageInfo { + ...PageInfo + } + edges { + node { + ...Group + } + } + } +} + ${PageInfoFragmentDoc} +${GroupFragmentDoc}`; + +/** + * __useGroupsQuery__ + * + * To run a query within a React component, call `useGroupsQuery` and pass it any options that fit your needs. + * When your component renders, `useGroupsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useGroupsQuery({ + * variables: { + * q: // value for 'q' + * cursor: // value for 'cursor' + * }, + * }); + */ +export function useGroupsQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(GroupsDocument, options); + } +export function useGroupsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(GroupsDocument, options); + } +export type GroupsQueryHookResult = ReturnType; +export type GroupsLazyQueryHookResult = ReturnType; +export type GroupsQueryResult = Apollo.QueryResult; +export const GetInstallationDocument = gql` + query GetInstallation($name: String) { + installation(name: $name) { + ...Installation + } +} + ${InstallationFragmentDoc}`; + +/** + * __useGetInstallationQuery__ + * + * To run a query within a React component, call `useGetInstallationQuery` and pass it any options that fit your needs. + * When your component renders, `useGetInstallationQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useGetInstallationQuery({ + * variables: { + * name: // value for 'name' + * }, + * }); + */ +export function useGetInstallationQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(GetInstallationDocument, options); + } +export function useGetInstallationLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(GetInstallationDocument, options); + } +export type GetInstallationQueryHookResult = ReturnType; +export type GetInstallationLazyQueryHookResult = ReturnType; +export type GetInstallationQueryResult = Apollo.QueryResult; +export const GetInstallationByIdDocument = gql` + query GetInstallationById($id: ID) { + installation(id: $id) { + ...Installation + } +} + ${InstallationFragmentDoc}`; + +/** + * __useGetInstallationByIdQuery__ + * + * To run a query within a React component, call `useGetInstallationByIdQuery` and pass it any options that fit your needs. + * When your component renders, `useGetInstallationByIdQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useGetInstallationByIdQuery({ + * variables: { + * id: // value for 'id' + * }, + * }); + */ +export function useGetInstallationByIdQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(GetInstallationByIdDocument, options); + } +export function useGetInstallationByIdLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(GetInstallationByIdDocument, options); + } +export type GetInstallationByIdQueryHookResult = ReturnType; +export type GetInstallationByIdLazyQueryHookResult = ReturnType; +export type GetInstallationByIdQueryResult = Apollo.QueryResult; +export const GetInstallationsDocument = gql` + query GetInstallations($first: Int) { + installations(first: $first) { + edges { + node { + ...Installation + } + } + } +} + ${InstallationFragmentDoc}`; + +/** + * __useGetInstallationsQuery__ + * + * To run a query within a React component, call `useGetInstallationsQuery` and pass it any options that fit your needs. + * When your component renders, `useGetInstallationsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useGetInstallationsQuery({ + * variables: { + * first: // value for 'first' + * }, + * }); + */ +export function useGetInstallationsQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(GetInstallationsDocument, options); + } +export function useGetInstallationsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(GetInstallationsDocument, options); + } +export type GetInstallationsQueryHookResult = ReturnType; +export type GetInstallationsLazyQueryHookResult = ReturnType; +export type GetInstallationsQueryResult = Apollo.QueryResult; +export const UpsertOidcProviderDocument = gql` + mutation UpsertOidcProvider($id: ID!, $attributes: OidcAttributes!) { + upsertOidcProvider(installationId: $id, attributes: $attributes) { + id + } +} + `; +export type UpsertOidcProviderMutationFn = Apollo.MutationFunction; + +/** + * __useUpsertOidcProviderMutation__ + * + * To run a mutation, you first call `useUpsertOidcProviderMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useUpsertOidcProviderMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [upsertOidcProviderMutation, { data, loading, error }] = useUpsertOidcProviderMutation({ + * variables: { + * id: // value for 'id' + * attributes: // value for 'attributes' + * }, + * }); + */ +export function useUpsertOidcProviderMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(UpsertOidcProviderDocument, options); + } +export type UpsertOidcProviderMutationHookResult = ReturnType; +export type UpsertOidcProviderMutationResult = Apollo.MutationResult; +export type UpsertOidcProviderMutationOptions = Apollo.BaseMutationOptions; +export const SignupInviteDocument = gql` + mutation SignupInvite($attributes: UserAttributes!, $inviteId: String!) { + signup(attributes: $attributes, inviteId: $inviteId) { + jwt + } +} + `; +export type SignupInviteMutationFn = Apollo.MutationFunction; + +/** + * __useSignupInviteMutation__ + * + * To run a mutation, you first call `useSignupInviteMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useSignupInviteMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [signupInviteMutation, { data, loading, error }] = useSignupInviteMutation({ + * variables: { + * attributes: // value for 'attributes' + * inviteId: // value for 'inviteId' + * }, + * }); + */ +export function useSignupInviteMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(SignupInviteDocument, options); + } +export type SignupInviteMutationHookResult = ReturnType; +export type SignupInviteMutationResult = Apollo.MutationResult; +export type SignupInviteMutationOptions = Apollo.BaseMutationOptions; +export const RealizeInviteDocument = gql` + mutation RealizeInvite($id: String!) { + realizeInvite(id: $id) { + jwt + } +} + `; +export type RealizeInviteMutationFn = Apollo.MutationFunction; + +/** + * __useRealizeInviteMutation__ + * + * To run a mutation, you first call `useRealizeInviteMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useRealizeInviteMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [realizeInviteMutation, { data, loading, error }] = useRealizeInviteMutation({ + * variables: { + * id: // value for 'id' + * }, + * }); + */ +export function useRealizeInviteMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(RealizeInviteDocument, options); + } +export type RealizeInviteMutationHookResult = ReturnType; +export type RealizeInviteMutationResult = Apollo.MutationResult; +export type RealizeInviteMutationOptions = Apollo.BaseMutationOptions; +export const InviteDocument = gql` + query Invite($id: String!) { + invite(id: $id) { + id + email + existing + account { + ...Account + } + user { + ...User + account { + ...Account + } + } + } +} + ${AccountFragmentDoc} +${UserFragmentDoc}`; + +/** + * __useInviteQuery__ + * + * To run a query within a React component, call `useInviteQuery` and pass it any options that fit your needs. + * When your component renders, `useInviteQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useInviteQuery({ + * variables: { + * id: // value for 'id' + * }, + * }); + */ +export function useInviteQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(InviteDocument, options); + } +export function useInviteLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(InviteDocument, options); + } +export type InviteQueryHookResult = ReturnType; +export type InviteLazyQueryHookResult = ReturnType; +export type InviteQueryResult = Apollo.QueryResult; +export const SubscriptionDocument = gql` + query Subscription { + account { + billingCustomerId + grandfatheredUntil + delinquentAt + userCount + clusterCount + availableFeatures { + userManagement + audit + } + subscription { + id + plan { + id + period + lineItems { + dimension + cost + } + } + } + billingAddress { + name + line1 + line2 + zip + state + city + country + } + } +} + `; + +/** + * __useSubscriptionQuery__ + * + * To run a query within a React component, call `useSubscriptionQuery` and pass it any options that fit your needs. + * When your component renders, `useSubscriptionQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useSubscriptionQuery({ + * variables: { + * }, + * }); + */ +export function useSubscriptionQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(SubscriptionDocument, options); + } +export function useSubscriptionLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(SubscriptionDocument, options); + } +export type SubscriptionQueryHookResult = ReturnType; +export type SubscriptionLazyQueryHookResult = ReturnType; +export type SubscriptionQueryResult = Apollo.QueryResult; +export const UpdateAccountBillingDocument = gql` + mutation UpdateAccountBilling($attributes: AccountAttributes!) { + updateAccount(attributes: $attributes) { + id + } +} + `; +export type UpdateAccountBillingMutationFn = Apollo.MutationFunction; + +/** + * __useUpdateAccountBillingMutation__ + * + * To run a mutation, you first call `useUpdateAccountBillingMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useUpdateAccountBillingMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [updateAccountBillingMutation, { data, loading, error }] = useUpdateAccountBillingMutation({ + * variables: { + * attributes: // value for 'attributes' + * }, + * }); + */ +export function useUpdateAccountBillingMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(UpdateAccountBillingDocument, options); + } +export type UpdateAccountBillingMutationHookResult = ReturnType; +export type UpdateAccountBillingMutationResult = Apollo.MutationResult; +export type UpdateAccountBillingMutationOptions = Apollo.BaseMutationOptions; +export const UpgradeToProfessionalPlanDocument = gql` + mutation UpgradeToProfessionalPlan($planId: ID!) { + createPlatformSubscription(planId: $planId) { + id + } +} + `; +export type UpgradeToProfessionalPlanMutationFn = Apollo.MutationFunction; + +/** + * __useUpgradeToProfessionalPlanMutation__ + * + * To run a mutation, you first call `useUpgradeToProfessionalPlanMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useUpgradeToProfessionalPlanMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [upgradeToProfessionalPlanMutation, { data, loading, error }] = useUpgradeToProfessionalPlanMutation({ + * variables: { + * planId: // value for 'planId' + * }, + * }); + */ +export function useUpgradeToProfessionalPlanMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(UpgradeToProfessionalPlanDocument, options); + } +export type UpgradeToProfessionalPlanMutationHookResult = ReturnType; +export type UpgradeToProfessionalPlanMutationResult = Apollo.MutationResult; +export type UpgradeToProfessionalPlanMutationOptions = Apollo.BaseMutationOptions; +export const DowngradeToFreePlanMutationDocument = gql` + mutation DowngradeToFreePlanMutation { + deletePlatformSubscription { + id + } +} + `; +export type DowngradeToFreePlanMutationMutationFn = Apollo.MutationFunction; + +/** + * __useDowngradeToFreePlanMutationMutation__ + * + * To run a mutation, you first call `useDowngradeToFreePlanMutationMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useDowngradeToFreePlanMutationMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [downgradeToFreePlanMutationMutation, { data, loading, error }] = useDowngradeToFreePlanMutationMutation({ + * variables: { + * }, + * }); + */ +export function useDowngradeToFreePlanMutationMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(DowngradeToFreePlanMutationDocument, options); + } +export type DowngradeToFreePlanMutationMutationHookResult = ReturnType; +export type DowngradeToFreePlanMutationMutationResult = Apollo.MutationResult; +export type DowngradeToFreePlanMutationMutationOptions = Apollo.BaseMutationOptions; +export const CardsDocument = gql` + query Cards { + me { + id + cards(first: 100) { + edges { + node { + ...Card + } + } + } + } +} + ${CardFragmentDoc}`; + +/** + * __useCardsQuery__ + * + * To run a query within a React component, call `useCardsQuery` and pass it any options that fit your needs. + * When your component renders, `useCardsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useCardsQuery({ + * variables: { + * }, + * }); + */ +export function useCardsQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(CardsDocument, options); + } +export function useCardsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(CardsDocument, options); + } +export type CardsQueryHookResult = ReturnType; +export type CardsLazyQueryHookResult = ReturnType; +export type CardsQueryResult = Apollo.QueryResult; +export const CreateCardDocument = gql` + mutation CreateCard($source: String!, $address: AddressAttributes) { + createCard(source: $source, address: $address) { + id + } +} + `; +export type CreateCardMutationFn = Apollo.MutationFunction; + +/** + * __useCreateCardMutation__ + * + * To run a mutation, you first call `useCreateCardMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useCreateCardMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [createCardMutation, { data, loading, error }] = useCreateCardMutation({ + * variables: { + * source: // value for 'source' + * address: // value for 'address' + * }, + * }); + */ +export function useCreateCardMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(CreateCardDocument, options); + } +export type CreateCardMutationHookResult = ReturnType; +export type CreateCardMutationResult = Apollo.MutationResult; +export type CreateCardMutationOptions = Apollo.BaseMutationOptions; +export const DeleteCardDocument = gql` + mutation DeleteCard($id: ID!) { + deleteCard(id: $id) { + id + } +} + `; +export type DeleteCardMutationFn = Apollo.MutationFunction; + +/** + * __useDeleteCardMutation__ + * + * To run a mutation, you first call `useDeleteCardMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useDeleteCardMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [deleteCardMutation, { data, loading, error }] = useDeleteCardMutation({ + * variables: { + * id: // value for 'id' + * }, + * }); + */ +export function useDeleteCardMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(DeleteCardDocument, options); + } +export type DeleteCardMutationHookResult = ReturnType; +export type DeleteCardMutationResult = Apollo.MutationResult; +export type DeleteCardMutationOptions = Apollo.BaseMutationOptions; +export const GetRecipeDocument = gql` + query GetRecipe($repo: String, $name: String, $id: ID) { + recipe(repo: $repo, name: $name, id: $id) { + ...Recipe + recipeDependencies { + ...Recipe + } + } +} + ${RecipeFragmentDoc}`; + +/** + * __useGetRecipeQuery__ + * + * To run a query within a React component, call `useGetRecipeQuery` and pass it any options that fit your needs. + * When your component renders, `useGetRecipeQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useGetRecipeQuery({ + * variables: { + * repo: // value for 'repo' + * name: // value for 'name' + * id: // value for 'id' + * }, + * }); + */ +export function useGetRecipeQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(GetRecipeDocument, options); + } +export function useGetRecipeLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(GetRecipeDocument, options); + } +export type GetRecipeQueryHookResult = ReturnType; +export type GetRecipeLazyQueryHookResult = ReturnType; +export type GetRecipeQueryResult = Apollo.QueryResult; +export const ListRecipesDocument = gql` + query ListRecipes($repositoryName: String, $repositoryId: ID, $provider: Provider) { + recipes(repositoryName: $repositoryName, provider: $provider, first: 500, repositoryId: $repositoryId) { + edges { + node { + ...Recipe + } + } + } +} + ${RecipeFragmentDoc}`; + +/** + * __useListRecipesQuery__ + * + * To run a query within a React component, call `useListRecipesQuery` and pass it any options that fit your needs. + * When your component renders, `useListRecipesQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useListRecipesQuery({ + * variables: { + * repositoryName: // value for 'repositoryName' + * repositoryId: // value for 'repositoryId' + * provider: // value for 'provider' + * }, + * }); + */ +export function useListRecipesQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ListRecipesDocument, options); + } +export function useListRecipesLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ListRecipesDocument, options); + } +export type ListRecipesQueryHookResult = ReturnType; +export type ListRecipesLazyQueryHookResult = ReturnType; +export type ListRecipesQueryResult = Apollo.QueryResult; +export const CreateRecipeDocument = gql` + mutation CreateRecipe($name: String!, $attributes: RecipeAttributes!) { + createRecipe(repositoryName: $name, attributes: $attributes) { + id + } +} + `; +export type CreateRecipeMutationFn = Apollo.MutationFunction; + +/** + * __useCreateRecipeMutation__ + * + * To run a mutation, you first call `useCreateRecipeMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useCreateRecipeMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [createRecipeMutation, { data, loading, error }] = useCreateRecipeMutation({ + * variables: { + * name: // value for 'name' + * attributes: // value for 'attributes' + * }, + * }); + */ +export function useCreateRecipeMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(CreateRecipeDocument, options); + } +export type CreateRecipeMutationHookResult = ReturnType; +export type CreateRecipeMutationResult = Apollo.MutationResult; +export type CreateRecipeMutationOptions = Apollo.BaseMutationOptions; +export const InstallRecipeDocument = gql` + mutation InstallRecipe($id: ID!) { + installRecipe(recipeId: $id, context: "{}") { + id + } +} + `; +export type InstallRecipeMutationFn = Apollo.MutationFunction; + +/** + * __useInstallRecipeMutation__ + * + * To run a mutation, you first call `useInstallRecipeMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useInstallRecipeMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [installRecipeMutation, { data, loading, error }] = useInstallRecipeMutation({ + * variables: { + * id: // value for 'id' + * }, + * }); + */ +export function useInstallRecipeMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(InstallRecipeDocument, options); + } +export type InstallRecipeMutationHookResult = ReturnType; +export type InstallRecipeMutationResult = Apollo.MutationResult; +export type InstallRecipeMutationOptions = Apollo.BaseMutationOptions; +export const CreateStackDocument = gql` + mutation CreateStack($attributes: StackAttributes!) { + createStack(attributes: $attributes) { + id + } +} + `; +export type CreateStackMutationFn = Apollo.MutationFunction; + +/** + * __useCreateStackMutation__ + * + * To run a mutation, you first call `useCreateStackMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useCreateStackMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [createStackMutation, { data, loading, error }] = useCreateStackMutation({ + * variables: { + * attributes: // value for 'attributes' + * }, + * }); + */ +export function useCreateStackMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(CreateStackDocument, options); + } +export type CreateStackMutationHookResult = ReturnType; +export type CreateStackMutationResult = Apollo.MutationResult; +export type CreateStackMutationOptions = Apollo.BaseMutationOptions; +export const GetStackDocument = gql` + query GetStack($name: String!, $provider: Provider!) { + stack(name: $name, provider: $provider) { + ...Stack + } +} + ${StackFragmentDoc}`; + +/** + * __useGetStackQuery__ + * + * To run a query within a React component, call `useGetStackQuery` and pass it any options that fit your needs. + * When your component renders, `useGetStackQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useGetStackQuery({ + * variables: { + * name: // value for 'name' + * provider: // value for 'provider' + * }, + * }); + */ +export function useGetStackQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(GetStackDocument, options); + } +export function useGetStackLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(GetStackDocument, options); + } +export type GetStackQueryHookResult = ReturnType; +export type GetStackLazyQueryHookResult = ReturnType; +export type GetStackQueryResult = Apollo.QueryResult; +export const ListStacksDocument = gql` + query ListStacks($featured: Boolean, $cursor: String) { + stacks(first: 100, after: $cursor, featured: $featured) { + edges { + node { + ...Stack + } + } + } +} + ${StackFragmentDoc}`; + +/** + * __useListStacksQuery__ + * + * To run a query within a React component, call `useListStacksQuery` and pass it any options that fit your needs. + * When your component renders, `useListStacksQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useListStacksQuery({ + * variables: { + * featured: // value for 'featured' + * cursor: // value for 'cursor' + * }, + * }); + */ +export function useListStacksQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ListStacksDocument, options); + } +export function useListStacksLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ListStacksDocument, options); + } +export type ListStacksQueryHookResult = ReturnType; +export type ListStacksLazyQueryHookResult = ReturnType; +export type ListStacksQueryResult = Apollo.QueryResult; +export const CreateQuickStackDocument = gql` + mutation CreateQuickStack($applicationIds: [ID], $provider: Provider!) { + quickStack(repositoryIds: $applicationIds, provider: $provider) { + id + name + } +} + `; +export type CreateQuickStackMutationFn = Apollo.MutationFunction; + +/** + * __useCreateQuickStackMutation__ + * + * To run a mutation, you first call `useCreateQuickStackMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useCreateQuickStackMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [createQuickStackMutation, { data, loading, error }] = useCreateQuickStackMutation({ + * variables: { + * applicationIds: // value for 'applicationIds' + * provider: // value for 'provider' + * }, + * }); + */ +export function useCreateQuickStackMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(CreateQuickStackDocument, options); + } +export type CreateQuickStackMutationHookResult = ReturnType; +export type CreateQuickStackMutationResult = Apollo.MutationResult; +export type CreateQuickStackMutationOptions = Apollo.BaseMutationOptions; +export const InstallStackShellDocument = gql` + mutation InstallStackShell($name: String!, $context: ContextAttributes!, $oidc: Boolean!) { + installStackShell(name: $name, context: $context, oidc: $oidc) { + id + name + } +} + `; +export type InstallStackShellMutationFn = Apollo.MutationFunction; + +/** + * __useInstallStackShellMutation__ + * + * To run a mutation, you first call `useInstallStackShellMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useInstallStackShellMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [installStackShellMutation, { data, loading, error }] = useInstallStackShellMutation({ + * variables: { + * name: // value for 'name' + * context: // value for 'context' + * oidc: // value for 'oidc' + * }, + * }); + */ +export function useInstallStackShellMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(InstallStackShellDocument, options); + } +export type InstallStackShellMutationHookResult = ReturnType; +export type InstallStackShellMutationResult = Apollo.MutationResult; +export type InstallStackShellMutationOptions = Apollo.BaseMutationOptions; +export const RepositoryDocument = gql` + query Repository($id: ID, $name: String) { + repository(id: $id, name: $name) { + ...Repo + editable + publicKey + secrets + artifacts { + ...Artifact + } + installation { + ...Installation + oidcProvider { + ...OIDCProvider + } + } + tags { + tag + } + readme + mainBranch + gitUrl + homepage + license { + name + url + } + documentation + community { + discord + slack + homepage + gitUrl + twitter + } + } +} + ${RepoFragmentDoc} +${ArtifactFragmentDoc} +${InstallationFragmentDoc} +${OidcProviderFragmentDoc}`; + +/** + * __useRepositoryQuery__ + * + * To run a query within a React component, call `useRepositoryQuery` and pass it any options that fit your needs. + * When your component renders, `useRepositoryQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useRepositoryQuery({ + * variables: { + * id: // value for 'id' + * name: // value for 'name' + * }, + * }); + */ +export function useRepositoryQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(RepositoryDocument, options); + } +export function useRepositoryLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(RepositoryDocument, options); + } +export type RepositoryQueryHookResult = ReturnType; +export type RepositoryLazyQueryHookResult = ReturnType; +export type RepositoryQueryResult = Apollo.QueryResult; +export const CreateResourceDefinitionDocument = gql` + mutation CreateResourceDefinition($name: String!, $input: ResourceDefinitionAttributes!) { + updateRepository(repositoryName: $name, attributes: {integrationResourceDefinition: $input}) { + id + } +} + `; +export type CreateResourceDefinitionMutationFn = Apollo.MutationFunction; + +/** + * __useCreateResourceDefinitionMutation__ + * + * To run a mutation, you first call `useCreateResourceDefinitionMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useCreateResourceDefinitionMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [createResourceDefinitionMutation, { data, loading, error }] = useCreateResourceDefinitionMutation({ + * variables: { + * name: // value for 'name' + * input: // value for 'input' + * }, + * }); + */ +export function useCreateResourceDefinitionMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(CreateResourceDefinitionDocument, options); + } +export type CreateResourceDefinitionMutationHookResult = ReturnType; +export type CreateResourceDefinitionMutationResult = Apollo.MutationResult; +export type CreateResourceDefinitionMutationOptions = Apollo.BaseMutationOptions; +export const CreateIntegrationDocument = gql` + mutation CreateIntegration($name: String!, $attrs: IntegrationAttributes!) { + createIntegration(repositoryName: $name, attributes: $attrs) { + id + } +} + `; +export type CreateIntegrationMutationFn = Apollo.MutationFunction; + +/** + * __useCreateIntegrationMutation__ + * + * To run a mutation, you first call `useCreateIntegrationMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useCreateIntegrationMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [createIntegrationMutation, { data, loading, error }] = useCreateIntegrationMutation({ + * variables: { + * name: // value for 'name' + * attrs: // value for 'attrs' + * }, + * }); + */ +export function useCreateIntegrationMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(CreateIntegrationDocument, options); + } +export type CreateIntegrationMutationHookResult = ReturnType; +export type CreateIntegrationMutationResult = Apollo.MutationResult; +export type CreateIntegrationMutationOptions = Apollo.BaseMutationOptions; +export const UpdateRepositoryDocument = gql` + mutation UpdateRepository($name: String!, $attrs: RepositoryAttributes!) { + updateRepository(repositoryName: $name, attributes: $attrs) { + id + } +} + `; +export type UpdateRepositoryMutationFn = Apollo.MutationFunction; + +/** + * __useUpdateRepositoryMutation__ + * + * To run a mutation, you first call `useUpdateRepositoryMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useUpdateRepositoryMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [updateRepositoryMutation, { data, loading, error }] = useUpdateRepositoryMutation({ + * variables: { + * name: // value for 'name' + * attrs: // value for 'attrs' + * }, + * }); + */ +export function useUpdateRepositoryMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(UpdateRepositoryDocument, options); + } +export type UpdateRepositoryMutationHookResult = ReturnType; +export type UpdateRepositoryMutationResult = Apollo.MutationResult; +export type UpdateRepositoryMutationOptions = Apollo.BaseMutationOptions; +export const CreateRepositoryDocument = gql` + mutation CreateRepository($name: String!, $publisher: String!, $attributes: RepositoryAttributes!) { + upsertRepository(name: $name, publisher: $publisher, attributes: $attributes) { + id + } +} + `; +export type CreateRepositoryMutationFn = Apollo.MutationFunction; + +/** + * __useCreateRepositoryMutation__ + * + * To run a mutation, you first call `useCreateRepositoryMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useCreateRepositoryMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [createRepositoryMutation, { data, loading, error }] = useCreateRepositoryMutation({ + * variables: { + * name: // value for 'name' + * publisher: // value for 'publisher' + * attributes: // value for 'attributes' + * }, + * }); + */ +export function useCreateRepositoryMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(CreateRepositoryDocument, options); + } +export type CreateRepositoryMutationHookResult = ReturnType; +export type CreateRepositoryMutationResult = Apollo.MutationResult; +export type CreateRepositoryMutationOptions = Apollo.BaseMutationOptions; +export const AcquireLockDocument = gql` + mutation AcquireLock($name: String!) { + acquireLock(repository: $name) { + ...ApplyLock + } +} + ${ApplyLockFragmentDoc}`; +export type AcquireLockMutationFn = Apollo.MutationFunction; + +/** + * __useAcquireLockMutation__ + * + * To run a mutation, you first call `useAcquireLockMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useAcquireLockMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [acquireLockMutation, { data, loading, error }] = useAcquireLockMutation({ + * variables: { + * name: // value for 'name' + * }, + * }); + */ +export function useAcquireLockMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(AcquireLockDocument, options); + } +export type AcquireLockMutationHookResult = ReturnType; +export type AcquireLockMutationResult = Apollo.MutationResult; +export type AcquireLockMutationOptions = Apollo.BaseMutationOptions; +export const ReleaseLockDocument = gql` + mutation ReleaseLock($name: String!, $attrs: LockAttributes!) { + releaseLock(repository: $name, attributes: $attrs) { + ...ApplyLock + } +} + ${ApplyLockFragmentDoc}`; +export type ReleaseLockMutationFn = Apollo.MutationFunction; + +/** + * __useReleaseLockMutation__ + * + * To run a mutation, you first call `useReleaseLockMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useReleaseLockMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [releaseLockMutation, { data, loading, error }] = useReleaseLockMutation({ + * variables: { + * name: // value for 'name' + * attrs: // value for 'attrs' + * }, + * }); + */ +export function useReleaseLockMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(ReleaseLockDocument, options); + } +export type ReleaseLockMutationHookResult = ReturnType; +export type ReleaseLockMutationResult = Apollo.MutationResult; +export type ReleaseLockMutationOptions = Apollo.BaseMutationOptions; +export const UnlockRepositoryDocument = gql` + mutation UnlockRepository($name: String!) { + unlockRepository(name: $name) +} + `; +export type UnlockRepositoryMutationFn = Apollo.MutationFunction; + +/** + * __useUnlockRepositoryMutation__ + * + * To run a mutation, you first call `useUnlockRepositoryMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useUnlockRepositoryMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [unlockRepositoryMutation, { data, loading, error }] = useUnlockRepositoryMutation({ + * variables: { + * name: // value for 'name' + * }, + * }); + */ +export function useUnlockRepositoryMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(UnlockRepositoryDocument, options); + } +export type UnlockRepositoryMutationHookResult = ReturnType; +export type UnlockRepositoryMutationResult = Apollo.MutationResult; +export type UnlockRepositoryMutationOptions = Apollo.BaseMutationOptions; +export const ListRepositoriesDocument = gql` + query ListRepositories($q: String, $installed: Boolean, $first: Int = 100, $provider: Provider = null) { + repositories(q: $q, first: $first, installed: $installed, provider: $provider) { + edges { + node { + ...Repository + } + } + } +} + ${RepositoryFragmentDoc}`; + +/** + * __useListRepositoriesQuery__ + * + * To run a query within a React component, call `useListRepositoriesQuery` and pass it any options that fit your needs. + * When your component renders, `useListRepositoriesQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useListRepositoriesQuery({ + * variables: { + * q: // value for 'q' + * installed: // value for 'installed' + * first: // value for 'first' + * provider: // value for 'provider' + * }, + * }); + */ +export function useListRepositoriesQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ListRepositoriesDocument, options); + } +export function useListRepositoriesLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ListRepositoriesDocument, options); + } +export type ListRepositoriesQueryHookResult = ReturnType; +export type ListRepositoriesLazyQueryHookResult = ReturnType; +export type ListRepositoriesQueryResult = Apollo.QueryResult; +export const ScaffoldsDocument = gql` + query Scaffolds($app: String!, $pub: String!, $cat: Category!, $ing: Boolean, $pg: Boolean) { + scaffold(application: $app, publisher: $pub, category: $cat, ingress: $ing, postgres: $pg) { + path + content + } +} + `; + +/** + * __useScaffoldsQuery__ + * + * To run a query within a React component, call `useScaffoldsQuery` and pass it any options that fit your needs. + * When your component renders, `useScaffoldsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useScaffoldsQuery({ + * variables: { + * app: // value for 'app' + * pub: // value for 'pub' + * cat: // value for 'cat' + * ing: // value for 'ing' + * pg: // value for 'pg' + * }, + * }); + */ +export function useScaffoldsQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ScaffoldsDocument, options); + } +export function useScaffoldsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ScaffoldsDocument, options); + } +export type ScaffoldsQueryHookResult = ReturnType; +export type ScaffoldsLazyQueryHookResult = ReturnType; +export type ScaffoldsQueryResult = Apollo.QueryResult; +export const DeleteRepositoryDocument = gql` + mutation DeleteRepository($id: ID!) { + deleteRepository(repositoryId: $id) { + id + } +} + `; +export type DeleteRepositoryMutationFn = Apollo.MutationFunction; + +/** + * __useDeleteRepositoryMutation__ + * + * To run a mutation, you first call `useDeleteRepositoryMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useDeleteRepositoryMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [deleteRepositoryMutation, { data, loading, error }] = useDeleteRepositoryMutation({ + * variables: { + * id: // value for 'id' + * }, + * }); + */ +export function useDeleteRepositoryMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(DeleteRepositoryDocument, options); + } +export type DeleteRepositoryMutationHookResult = ReturnType; +export type DeleteRepositoryMutationResult = Apollo.MutationResult; +export type DeleteRepositoryMutationOptions = Apollo.BaseMutationOptions; +export const GetTfProvidersDocument = gql` + query GetTfProviders { + terraformProviders +} + `; + +/** + * __useGetTfProvidersQuery__ + * + * To run a query within a React component, call `useGetTfProvidersQuery` and pass it any options that fit your needs. + * When your component renders, `useGetTfProvidersQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useGetTfProvidersQuery({ + * variables: { + * }, + * }); + */ +export function useGetTfProvidersQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(GetTfProvidersDocument, options); + } +export function useGetTfProvidersLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(GetTfProvidersDocument, options); + } +export type GetTfProvidersQueryHookResult = ReturnType; +export type GetTfProvidersLazyQueryHookResult = ReturnType; +export type GetTfProvidersQueryResult = Apollo.QueryResult; +export const GetTfProviderScaffoldDocument = gql` + query GetTfProviderScaffold($name: Provider!, $vsn: String) { + terraformProvider(name: $name, vsn: $vsn) { + name + content + } +} + `; + +/** + * __useGetTfProviderScaffoldQuery__ + * + * To run a query within a React component, call `useGetTfProviderScaffoldQuery` and pass it any options that fit your needs. + * When your component renders, `useGetTfProviderScaffoldQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useGetTfProviderScaffoldQuery({ + * variables: { + * name: // value for 'name' + * vsn: // value for 'vsn' + * }, + * }); + */ +export function useGetTfProviderScaffoldQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(GetTfProviderScaffoldDocument, options); + } +export function useGetTfProviderScaffoldLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(GetTfProviderScaffoldDocument, options); + } +export type GetTfProviderScaffoldQueryHookResult = ReturnType; +export type GetTfProviderScaffoldLazyQueryHookResult = ReturnType; +export type GetTfProviderScaffoldQueryResult = Apollo.QueryResult; +export const GetShellDocument = gql` + query GetShell { + shell { + ...CloudShell + } +} + ${CloudShellFragmentDoc}`; + +/** + * __useGetShellQuery__ + * + * To run a query within a React component, call `useGetShellQuery` and pass it any options that fit your needs. + * When your component renders, `useGetShellQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useGetShellQuery({ + * variables: { + * }, + * }); + */ +export function useGetShellQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(GetShellDocument, options); + } +export function useGetShellLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(GetShellDocument, options); + } +export type GetShellQueryHookResult = ReturnType; +export type GetShellLazyQueryHookResult = ReturnType; +export type GetShellQueryResult = Apollo.QueryResult; +export const DeleteShellDocument = gql` + mutation DeleteShell { + deleteShell { + ...CloudShell + } +} + ${CloudShellFragmentDoc}`; +export type DeleteShellMutationFn = Apollo.MutationFunction; + +/** + * __useDeleteShellMutation__ + * + * To run a mutation, you first call `useDeleteShellMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useDeleteShellMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [deleteShellMutation, { data, loading, error }] = useDeleteShellMutation({ + * variables: { + * }, + * }); + */ +export function useDeleteShellMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(DeleteShellDocument, options); + } +export type DeleteShellMutationHookResult = ReturnType; +export type DeleteShellMutationResult = Apollo.MutationResult; +export type DeleteShellMutationOptions = Apollo.BaseMutationOptions; +export const GetTerraformDocument = gql` + query GetTerraform($id: ID!) { + terraform(repositoryId: $id, first: 100) { + edges { + node { + ...Terraform + } + } + } +} + ${TerraformFragmentDoc}`; + +/** + * __useGetTerraformQuery__ + * + * To run a query within a React component, call `useGetTerraformQuery` and pass it any options that fit your needs. + * When your component renders, `useGetTerraformQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useGetTerraformQuery({ + * variables: { + * id: // value for 'id' + * }, + * }); + */ +export function useGetTerraformQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(GetTerraformDocument, options); + } +export function useGetTerraformLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(GetTerraformDocument, options); + } +export type GetTerraformQueryHookResult = ReturnType; +export type GetTerraformLazyQueryHookResult = ReturnType; +export type GetTerraformQueryResult = Apollo.QueryResult; +export const GetTerraformInstallationsDocument = gql` + query GetTerraformInstallations($id: ID!) { + terraformInstallations(repositoryId: $id, first: 100) { + edges { + node { + ...TerraformInstallation + } + } + } +} + ${TerraformInstallationFragmentDoc}`; + +/** + * __useGetTerraformInstallationsQuery__ + * + * To run a query within a React component, call `useGetTerraformInstallationsQuery` and pass it any options that fit your needs. + * When your component renders, `useGetTerraformInstallationsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useGetTerraformInstallationsQuery({ + * variables: { + * id: // value for 'id' + * }, + * }); + */ +export function useGetTerraformInstallationsQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(GetTerraformInstallationsDocument, options); + } +export function useGetTerraformInstallationsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(GetTerraformInstallationsDocument, options); + } +export type GetTerraformInstallationsQueryHookResult = ReturnType; +export type GetTerraformInstallationsLazyQueryHookResult = ReturnType; +export type GetTerraformInstallationsQueryResult = Apollo.QueryResult; +export const UploadTerraformDocument = gql` + mutation UploadTerraform($repoName: String!, $name: String!, $uploadOrUrl: UploadOrUrl!) { + uploadTerraform(repositoryName: $repoName, name: $name, attributes: {name: $name, package: $uploadOrUrl}) { + ...Terraform + } +} + ${TerraformFragmentDoc}`; +export type UploadTerraformMutationFn = Apollo.MutationFunction; + +/** + * __useUploadTerraformMutation__ + * + * To run a mutation, you first call `useUploadTerraformMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useUploadTerraformMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [uploadTerraformMutation, { data, loading, error }] = useUploadTerraformMutation({ + * variables: { + * repoName: // value for 'repoName' + * name: // value for 'name' + * uploadOrUrl: // value for 'uploadOrUrl' + * }, + * }); + */ +export function useUploadTerraformMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(UploadTerraformDocument, options); + } +export type UploadTerraformMutationHookResult = ReturnType; +export type UploadTerraformMutationResult = Apollo.MutationResult; +export type UploadTerraformMutationOptions = Apollo.BaseMutationOptions; +export const UninstallTerraformDocument = gql` + mutation UninstallTerraform($id: ID!) { + uninstallTerraform(id: $id) { + id + } +} + `; +export type UninstallTerraformMutationFn = Apollo.MutationFunction; + +/** + * __useUninstallTerraformMutation__ + * + * To run a mutation, you first call `useUninstallTerraformMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useUninstallTerraformMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [uninstallTerraformMutation, { data, loading, error }] = useUninstallTerraformMutation({ + * variables: { + * id: // value for 'id' + * }, + * }); + */ +export function useUninstallTerraformMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(UninstallTerraformDocument, options); + } +export type UninstallTerraformMutationHookResult = ReturnType; +export type UninstallTerraformMutationResult = Apollo.MutationResult; +export type UninstallTerraformMutationOptions = Apollo.BaseMutationOptions; +export const CreateTestDocument = gql` + mutation CreateTest($name: String!, $attrs: TestAttributes!) { + createTest(name: $name, attributes: $attrs) { + ...Test + } +} + ${TestFragmentDoc}`; +export type CreateTestMutationFn = Apollo.MutationFunction; + +/** + * __useCreateTestMutation__ + * + * To run a mutation, you first call `useCreateTestMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useCreateTestMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [createTestMutation, { data, loading, error }] = useCreateTestMutation({ + * variables: { + * name: // value for 'name' + * attrs: // value for 'attrs' + * }, + * }); + */ +export function useCreateTestMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(CreateTestDocument, options); + } +export type CreateTestMutationHookResult = ReturnType; +export type CreateTestMutationResult = Apollo.MutationResult; +export type CreateTestMutationOptions = Apollo.BaseMutationOptions; +export const UpdateTestDocument = gql` + mutation UpdateTest($id: ID!, $attrs: TestAttributes!) { + updateTest(id: $id, attributes: $attrs) { + ...Test + } +} + ${TestFragmentDoc}`; +export type UpdateTestMutationFn = Apollo.MutationFunction; + +/** + * __useUpdateTestMutation__ + * + * To run a mutation, you first call `useUpdateTestMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useUpdateTestMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [updateTestMutation, { data, loading, error }] = useUpdateTestMutation({ + * variables: { + * id: // value for 'id' + * attrs: // value for 'attrs' + * }, + * }); + */ +export function useUpdateTestMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(UpdateTestDocument, options); + } +export type UpdateTestMutationHookResult = ReturnType; +export type UpdateTestMutationResult = Apollo.MutationResult; +export type UpdateTestMutationOptions = Apollo.BaseMutationOptions; +export const UpdateStepDocument = gql` + mutation UpdateStep($id: ID!, $logs: UploadOrUrl!) { + updateStep(id: $id, attributes: {logs: $logs}) { + id + } +} + `; +export type UpdateStepMutationFn = Apollo.MutationFunction; + +/** + * __useUpdateStepMutation__ + * + * To run a mutation, you first call `useUpdateStepMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useUpdateStepMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [updateStepMutation, { data, loading, error }] = useUpdateStepMutation({ + * variables: { + * id: // value for 'id' + * logs: // value for 'logs' + * }, + * }); + */ +export function useUpdateStepMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(UpdateStepDocument, options); + } +export type UpdateStepMutationHookResult = ReturnType; +export type UpdateStepMutationResult = Apollo.MutationResult; +export type UpdateStepMutationOptions = Apollo.BaseMutationOptions; +export const PublishLogsDocument = gql` + mutation PublishLogs($id: ID!, $logs: String!) { + publishLogs(id: $id, logs: $logs) { + id + } +} + `; +export type PublishLogsMutationFn = Apollo.MutationFunction; + +/** + * __usePublishLogsMutation__ + * + * To run a mutation, you first call `usePublishLogsMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `usePublishLogsMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [publishLogsMutation, { data, loading, error }] = usePublishLogsMutation({ + * variables: { + * id: // value for 'id' + * logs: // value for 'logs' + * }, + * }); + */ +export function usePublishLogsMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(PublishLogsDocument, options); + } +export type PublishLogsMutationHookResult = ReturnType; +export type PublishLogsMutationResult = Apollo.MutationResult; +export type PublishLogsMutationOptions = Apollo.BaseMutationOptions; +export const MeDocument = gql` + query Me { + me { + ...User + loginMethod + hasInstallations + account { + ...Account + rootUser { + id + name + email + } + domainMappings { + id + domain + enableSso + } + } + publisher { + ...Publisher + billingAccountId + } + boundRoles { + ...Role + } + } + configuration { + stripeConnectId + stripePublishableKey + registry + gitCommit + } +} + ${UserFragmentDoc} +${AccountFragmentDoc} +${PublisherFragmentDoc} +${RoleFragmentDoc}`; + +/** + * __useMeQuery__ + * + * To run a query within a React component, call `useMeQuery` and pass it any options that fit your needs. + * When your component renders, `useMeQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useMeQuery({ + * variables: { + * }, + * }); + */ +export function useMeQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(MeDocument, options); + } +export function useMeLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(MeDocument, options); + } +export type MeQueryHookResult = ReturnType; +export type MeLazyQueryHookResult = ReturnType; +export type MeQueryResult = Apollo.QueryResult; +export const GetLoginMethodDocument = gql` + query GetLoginMethod($email: String!) { + loginMethod(email: $email) { + loginMethod + token + } +} + `; + +/** + * __useGetLoginMethodQuery__ + * + * To run a query within a React component, call `useGetLoginMethodQuery` and pass it any options that fit your needs. + * When your component renders, `useGetLoginMethodQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useGetLoginMethodQuery({ + * variables: { + * email: // value for 'email' + * }, + * }); + */ +export function useGetLoginMethodQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(GetLoginMethodDocument, options); + } +export function useGetLoginMethodLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(GetLoginMethodDocument, options); + } +export type GetLoginMethodQueryHookResult = ReturnType; +export type GetLoginMethodLazyQueryHookResult = ReturnType; +export type GetLoginMethodQueryResult = Apollo.QueryResult; +export const ListTokensDocument = gql` + query ListTokens { + tokens(first: 3) { + edges { + node { + token + } + } + } +} + `; + +/** + * __useListTokensQuery__ + * + * To run a query within a React component, call `useListTokensQuery` and pass it any options that fit your needs. + * When your component renders, `useListTokensQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useListTokensQuery({ + * variables: { + * }, + * }); + */ +export function useListTokensQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ListTokensDocument, options); + } +export function useListTokensLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ListTokensDocument, options); + } +export type ListTokensQueryHookResult = ReturnType; +export type ListTokensLazyQueryHookResult = ReturnType; +export type ListTokensQueryResult = Apollo.QueryResult; +export const ListKeysDocument = gql` + query ListKeys($emails: [String]) { + publicKeys(emails: $emails, first: 1000) { + edges { + node { + ...PublicKey + } + } + } +} + ${PublicKeyFragmentDoc}`; + +/** + * __useListKeysQuery__ + * + * To run a query within a React component, call `useListKeysQuery` and pass it any options that fit your needs. + * When your component renders, `useListKeysQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useListKeysQuery({ + * variables: { + * emails: // value for 'emails' + * }, + * }); + */ +export function useListKeysQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ListKeysDocument, options); + } +export function useListKeysLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ListKeysDocument, options); + } +export type ListKeysQueryHookResult = ReturnType; +export type ListKeysLazyQueryHookResult = ReturnType; +export type ListKeysQueryResult = Apollo.QueryResult; +export const GetEabCredentialDocument = gql` + query GetEabCredential($cluster: String!, $provider: Provider!) { + eabCredential(cluster: $cluster, provider: $provider) { + ...EabCredential + } +} + ${EabCredentialFragmentDoc}`; + +/** + * __useGetEabCredentialQuery__ + * + * To run a query within a React component, call `useGetEabCredentialQuery` and pass it any options that fit your needs. + * When your component renders, `useGetEabCredentialQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useGetEabCredentialQuery({ + * variables: { + * cluster: // value for 'cluster' + * provider: // value for 'provider' + * }, + * }); + */ +export function useGetEabCredentialQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(GetEabCredentialDocument, options); + } +export function useGetEabCredentialLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(GetEabCredentialDocument, options); + } +export type GetEabCredentialQueryHookResult = ReturnType; +export type GetEabCredentialLazyQueryHookResult = ReturnType; +export type GetEabCredentialQueryResult = Apollo.QueryResult; +export const DevLoginDocument = gql` + mutation DevLogin { + deviceLogin { + loginUrl + deviceToken + } +} + `; +export type DevLoginMutationFn = Apollo.MutationFunction; + +/** + * __useDevLoginMutation__ + * + * To run a mutation, you first call `useDevLoginMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useDevLoginMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [devLoginMutation, { data, loading, error }] = useDevLoginMutation({ + * variables: { + * }, + * }); + */ +export function useDevLoginMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(DevLoginDocument, options); + } +export type DevLoginMutationHookResult = ReturnType; +export type DevLoginMutationResult = Apollo.MutationResult; +export type DevLoginMutationOptions = Apollo.BaseMutationOptions; +export const LoginDocument = gql` + mutation Login($email: String!, $password: String!, $deviceToken: String) { + login(email: $email, password: $password, deviceToken: $deviceToken) { + jwt + } +} + `; +export type LoginMutationFn = Apollo.MutationFunction; + +/** + * __useLoginMutation__ + * + * To run a mutation, you first call `useLoginMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useLoginMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [loginMutation, { data, loading, error }] = useLoginMutation({ + * variables: { + * email: // value for 'email' + * password: // value for 'password' + * deviceToken: // value for 'deviceToken' + * }, + * }); + */ +export function useLoginMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(LoginDocument, options); + } +export type LoginMutationHookResult = ReturnType; +export type LoginMutationResult = Apollo.MutationResult; +export type LoginMutationOptions = Apollo.BaseMutationOptions; +export const ImpersonateServiceAccountDocument = gql` + mutation ImpersonateServiceAccount($email: String) { + impersonateServiceAccount(email: $email) { + jwt + email + } +} + `; +export type ImpersonateServiceAccountMutationFn = Apollo.MutationFunction; + +/** + * __useImpersonateServiceAccountMutation__ + * + * To run a mutation, you first call `useImpersonateServiceAccountMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useImpersonateServiceAccountMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [impersonateServiceAccountMutation, { data, loading, error }] = useImpersonateServiceAccountMutation({ + * variables: { + * email: // value for 'email' + * }, + * }); + */ +export function useImpersonateServiceAccountMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(ImpersonateServiceAccountDocument, options); + } +export type ImpersonateServiceAccountMutationHookResult = ReturnType; +export type ImpersonateServiceAccountMutationResult = Apollo.MutationResult; +export type ImpersonateServiceAccountMutationOptions = Apollo.BaseMutationOptions; +export const CreateAccessTokenDocument = gql` + mutation CreateAccessToken { + createToken { + token + } +} + `; +export type CreateAccessTokenMutationFn = Apollo.MutationFunction; + +/** + * __useCreateAccessTokenMutation__ + * + * To run a mutation, you first call `useCreateAccessTokenMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useCreateAccessTokenMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [createAccessTokenMutation, { data, loading, error }] = useCreateAccessTokenMutation({ + * variables: { + * }, + * }); + */ +export function useCreateAccessTokenMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(CreateAccessTokenDocument, options); + } +export type CreateAccessTokenMutationHookResult = ReturnType; +export type CreateAccessTokenMutationResult = Apollo.MutationResult; +export type CreateAccessTokenMutationOptions = Apollo.BaseMutationOptions; +export const CreateKeyDocument = gql` + mutation CreateKey($key: String!, $name: String!) { + createPublicKey(attributes: {content: $key, name: $name}) { + id + } +} + `; +export type CreateKeyMutationFn = Apollo.MutationFunction; + +/** + * __useCreateKeyMutation__ + * + * To run a mutation, you first call `useCreateKeyMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useCreateKeyMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [createKeyMutation, { data, loading, error }] = useCreateKeyMutation({ + * variables: { + * key: // value for 'key' + * name: // value for 'name' + * }, + * }); + */ +export function useCreateKeyMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(CreateKeyDocument, options); + } +export type CreateKeyMutationHookResult = ReturnType; +export type CreateKeyMutationResult = Apollo.MutationResult; +export type CreateKeyMutationOptions = Apollo.BaseMutationOptions; +export const DeleteEabCredentialDocument = gql` + mutation DeleteEabCredential($cluster: String!, $provider: Provider!) { + deleteEabKey(cluster: $cluster, provider: $provider) { + id + } +} + `; +export type DeleteEabCredentialMutationFn = Apollo.MutationFunction; + +/** + * __useDeleteEabCredentialMutation__ + * + * To run a mutation, you first call `useDeleteEabCredentialMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useDeleteEabCredentialMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [deleteEabCredentialMutation, { data, loading, error }] = useDeleteEabCredentialMutation({ + * variables: { + * cluster: // value for 'cluster' + * provider: // value for 'provider' + * }, + * }); + */ +export function useDeleteEabCredentialMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(DeleteEabCredentialDocument, options); + } +export type DeleteEabCredentialMutationHookResult = ReturnType; +export type DeleteEabCredentialMutationResult = Apollo.MutationResult; +export type DeleteEabCredentialMutationOptions = Apollo.BaseMutationOptions; +export const CreateEventDocument = gql` + mutation CreateEvent($attrs: UserEventAttributes!) { + createUserEvent(attributes: $attrs) +} + `; +export type CreateEventMutationFn = Apollo.MutationFunction; + +/** + * __useCreateEventMutation__ + * + * To run a mutation, you first call `useCreateEventMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useCreateEventMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [createEventMutation, { data, loading, error }] = useCreateEventMutation({ + * variables: { + * attrs: // value for 'attrs' + * }, + * }); + */ +export function useCreateEventMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(CreateEventDocument, options); + } +export type CreateEventMutationHookResult = ReturnType; +export type CreateEventMutationResult = Apollo.MutationResult; +export type CreateEventMutationOptions = Apollo.BaseMutationOptions; +export const LoginMethodDocument = gql` + query LoginMethod($email: String!, $host: String) { + loginMethod(email: $email, host: $host) { + loginMethod + token + authorizeUrl + } +} + `; + +/** + * __useLoginMethodQuery__ + * + * To run a query within a React component, call `useLoginMethodQuery` and pass it any options that fit your needs. + * When your component renders, `useLoginMethodQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useLoginMethodQuery({ + * variables: { + * email: // value for 'email' + * host: // value for 'host' + * }, + * }); + */ +export function useLoginMethodQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(LoginMethodDocument, options); + } +export function useLoginMethodLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(LoginMethodDocument, options); + } +export type LoginMethodQueryHookResult = ReturnType; +export type LoginMethodLazyQueryHookResult = ReturnType; +export type LoginMethodQueryResult = Apollo.QueryResult; +export const SignupDocument = gql` + mutation Signup($attributes: UserAttributes!, $account: AccountAttributes, $deviceToken: String) { + signup(attributes: $attributes, account: $account, deviceToken: $deviceToken) { + jwt + onboarding + } +} + `; +export type SignupMutationFn = Apollo.MutationFunction; + +/** + * __useSignupMutation__ + * + * To run a mutation, you first call `useSignupMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useSignupMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [signupMutation, { data, loading, error }] = useSignupMutation({ + * variables: { + * attributes: // value for 'attributes' + * account: // value for 'account' + * deviceToken: // value for 'deviceToken' + * }, + * }); + */ +export function useSignupMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(SignupDocument, options); + } +export type SignupMutationHookResult = ReturnType; +export type SignupMutationResult = Apollo.MutationResult; +export type SignupMutationOptions = Apollo.BaseMutationOptions; +export const PasswordlessLoginDocument = gql` + mutation PasswordlessLogin($token: String!) { + passwordlessLogin(token: $token) { + jwt + } +} + `; +export type PasswordlessLoginMutationFn = Apollo.MutationFunction; + +/** + * __usePasswordlessLoginMutation__ + * + * To run a mutation, you first call `usePasswordlessLoginMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `usePasswordlessLoginMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [passwordlessLoginMutation, { data, loading, error }] = usePasswordlessLoginMutation({ + * variables: { + * token: // value for 'token' + * }, + * }); + */ +export function usePasswordlessLoginMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(PasswordlessLoginDocument, options); + } +export type PasswordlessLoginMutationHookResult = ReturnType; +export type PasswordlessLoginMutationResult = Apollo.MutationResult; +export type PasswordlessLoginMutationOptions = Apollo.BaseMutationOptions; +export const PollLoginTokenDocument = gql` + mutation PollLoginToken($token: String!, $deviceToken: String) { + loginToken(token: $token, deviceToken: $deviceToken) { + jwt + } +} + `; +export type PollLoginTokenMutationFn = Apollo.MutationFunction; + +/** + * __usePollLoginTokenMutation__ + * + * To run a mutation, you first call `usePollLoginTokenMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `usePollLoginTokenMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [pollLoginTokenMutation, { data, loading, error }] = usePollLoginTokenMutation({ + * variables: { + * token: // value for 'token' + * deviceToken: // value for 'deviceToken' + * }, + * }); + */ +export function usePollLoginTokenMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(PollLoginTokenDocument, options); + } +export type PollLoginTokenMutationHookResult = ReturnType; +export type PollLoginTokenMutationResult = Apollo.MutationResult; +export type PollLoginTokenMutationOptions = Apollo.BaseMutationOptions; +export const OauthUrlsDocument = gql` + query OauthUrls($host: String) { + oauthUrls(host: $host) { + provider + authorizeUrl + } +} + `; + +/** + * __useOauthUrlsQuery__ + * + * To run a query within a React component, call `useOauthUrlsQuery` and pass it any options that fit your needs. + * When your component renders, `useOauthUrlsQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useOauthUrlsQuery({ + * variables: { + * host: // value for 'host' + * }, + * }); + */ +export function useOauthUrlsQuery(baseOptions?: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(OauthUrlsDocument, options); + } +export function useOauthUrlsLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(OauthUrlsDocument, options); + } +export type OauthUrlsQueryHookResult = ReturnType; +export type OauthUrlsLazyQueryHookResult = ReturnType; +export type OauthUrlsQueryResult = Apollo.QueryResult; +export const AcceptLoginDocument = gql` + mutation AcceptLogin($challenge: String!) { + acceptLogin(challenge: $challenge) { + redirectTo + } +} + `; +export type AcceptLoginMutationFn = Apollo.MutationFunction; + +/** + * __useAcceptLoginMutation__ + * + * To run a mutation, you first call `useAcceptLoginMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useAcceptLoginMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [acceptLoginMutation, { data, loading, error }] = useAcceptLoginMutation({ + * variables: { + * challenge: // value for 'challenge' + * }, + * }); + */ +export function useAcceptLoginMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(AcceptLoginDocument, options); + } +export type AcceptLoginMutationHookResult = ReturnType; +export type AcceptLoginMutationResult = Apollo.MutationResult; +export type AcceptLoginMutationOptions = Apollo.BaseMutationOptions; +export const CreateResetTokenDocument = gql` + mutation CreateResetToken($attributes: ResetTokenAttributes!) { + createResetToken(attributes: $attributes) +} + `; +export type CreateResetTokenMutationFn = Apollo.MutationFunction; + +/** + * __useCreateResetTokenMutation__ + * + * To run a mutation, you first call `useCreateResetTokenMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useCreateResetTokenMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [createResetTokenMutation, { data, loading, error }] = useCreateResetTokenMutation({ + * variables: { + * attributes: // value for 'attributes' + * }, + * }); + */ +export function useCreateResetTokenMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(CreateResetTokenDocument, options); + } +export type CreateResetTokenMutationHookResult = ReturnType; +export type CreateResetTokenMutationResult = Apollo.MutationResult; +export type CreateResetTokenMutationOptions = Apollo.BaseMutationOptions; +export const RealizeResetTokenDocument = gql` + mutation RealizeResetToken($id: ID!, $attributes: ResetTokenRealization!) { + realizeResetToken(id: $id, attributes: $attributes) +} + `; +export type RealizeResetTokenMutationFn = Apollo.MutationFunction; + +/** + * __useRealizeResetTokenMutation__ + * + * To run a mutation, you first call `useRealizeResetTokenMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useRealizeResetTokenMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [realizeResetTokenMutation, { data, loading, error }] = useRealizeResetTokenMutation({ + * variables: { + * id: // value for 'id' + * attributes: // value for 'attributes' + * }, + * }); + */ +export function useRealizeResetTokenMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(RealizeResetTokenDocument, options); + } +export type RealizeResetTokenMutationHookResult = ReturnType; +export type RealizeResetTokenMutationResult = Apollo.MutationResult; +export type RealizeResetTokenMutationOptions = Apollo.BaseMutationOptions; +export const ResetTokenDocument = gql` + query ResetToken($id: ID!) { + resetToken(id: $id) { + type + user { + ...User + } + } +} + ${UserFragmentDoc}`; + +/** + * __useResetTokenQuery__ + * + * To run a query within a React component, call `useResetTokenQuery` and pass it any options that fit your needs. + * When your component renders, `useResetTokenQuery` returns an object from Apollo Client that contains loading, error, and data properties + * you can use to render your UI. + * + * @param baseOptions options that will be passed into the query, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options; + * + * @example + * const { data, loading, error } = useResetTokenQuery({ + * variables: { + * id: // value for 'id' + * }, + * }); + */ +export function useResetTokenQuery(baseOptions: Apollo.QueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useQuery(ResetTokenDocument, options); + } +export function useResetTokenLazyQuery(baseOptions?: Apollo.LazyQueryHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useLazyQuery(ResetTokenDocument, options); + } +export type ResetTokenQueryHookResult = ReturnType; +export type ResetTokenLazyQueryHookResult = ReturnType; +export type ResetTokenQueryResult = Apollo.QueryResult; +export const UpdateVersionDocument = gql` + mutation UpdateVersion($spec: VersionSpec, $attributes: VersionAttributes!) { + updateVersion(spec: $spec, attributes: $attributes) { + id + } +} + `; +export type UpdateVersionMutationFn = Apollo.MutationFunction; + +/** + * __useUpdateVersionMutation__ + * + * To run a mutation, you first call `useUpdateVersionMutation` within a React component and pass it any options that fit your needs. + * When your component renders, `useUpdateVersionMutation` returns a tuple that includes: + * - A mutate function that you can call at any time to execute the mutation + * - An object with fields that represent the current status of the mutation's execution + * + * @param baseOptions options that will be passed into the mutation, supported options are listed on: https://www.apollographql.com/docs/react/api/react-hooks/#options-2; + * + * @example + * const [updateVersionMutation, { data, loading, error }] = useUpdateVersionMutation({ + * variables: { + * spec: // value for 'spec' + * attributes: // value for 'attributes' + * }, + * }); + */ +export function useUpdateVersionMutation(baseOptions?: Apollo.MutationHookOptions) { + const options = {...defaultOptions, ...baseOptions} + return Apollo.useMutation(UpdateVersionDocument, options); + } +export type UpdateVersionMutationHookResult = ReturnType; +export type UpdateVersionMutationResult = Apollo.MutationResult; +export type UpdateVersionMutationOptions = Apollo.BaseMutationOptions; \ No newline at end of file diff --git a/pkg/ui/web/src/graphql/groups.graphql b/pkg/ui/web/src/graphql/groups.graphql new file mode 100644 index 00000000..1363fb51 --- /dev/null +++ b/pkg/ui/web/src/graphql/groups.graphql @@ -0,0 +1,55 @@ +query GroupMembers($cursor: String, $id: ID!) { + groupMembers(groupId: $id, after: $cursor, first: 20) { + pageInfo { + ...PageInfo + } + edges { + node { + ...GroupMember + } + } + } +} + +mutation CreateGroupMember($groupId: ID!, $userId: ID!) { + createGroupMember(groupId: $groupId, userId: $userId) { + ...GroupMember + } +} + +mutation DeleteGroupMember($groupId: ID!, $userId: ID!) { + deleteGroupMember(groupId: $groupId, userId: $userId) { + ...GroupMember + } +} + +mutation CreateGroup($attributes: GroupAttributes!) { + createGroup(attributes: $attributes) { + ...Group + } +} + +mutation UpdateGroup($id: ID!, $attributes: GroupAttributes!) { + updateGroup(groupId: $id, attributes: $attributes) { + ...Group + } +} + +mutation DeleteGroup($id: ID!) { + deleteGroup(groupId: $id) { + ...Group + } +} + +query Groups($q: String, $cursor: String) { + groups(q: $q, first: 20, after: $cursor) { + pageInfo { + ...PageInfo + } + edges { + node { + ...Group + } + } + } +} diff --git a/pkg/ui/web/src/graphql/incidents.graphql b/pkg/ui/web/src/graphql/incidents.graphql new file mode 100644 index 00000000..c9b0fd62 --- /dev/null +++ b/pkg/ui/web/src/graphql/incidents.graphql @@ -0,0 +1,82 @@ +fragment Postmortem on Postmortem { + id + content + actionItems { type link } +} + +fragment Follower on Follower { + id + incident { id } + user { ...User } + preferences { message incidentUpdate mention } +} + +#TODO: not that this was changed as it needs to be unique. Whatever queries/mutations use this fragment needs to be updated +fragment SlimSubscription on SlimSubscription { + id + lineItems { items { dimension quantity } } + plan { ...Plan } +} + + +fragment ClusterInformation on ClusterInformation { + version + gitCommit + platform +} + + +fragment Incident on Incident { + id + title + description + severity + status + notificationCount + nextResponseAt + creator { ...User } + owner { ...User } + repository { ...Repo } + subscription { ...SlimSubscription } + clusterInformation { ...ClusterInformation } + tags { tag } + insertedAt +} + +fragment IncidentHistory on IncidentHistory { + id + action + changes { key prev next } + actor { ...User } + insertedAt +} + +fragment File on File { + id + blob + mediaType + contentType + filesize + filename +} + +fragment IncidentMessage on IncidentMessage { + id + text + creator { ...User } + reactions { name creator { id email } } + file { ...File } + entities { type user { ...User } text startIndex endIndex } + insertedAt +} + +fragment Notification on Notification { + id + type + msg + actor { ...User } + incident { id title repository { id name icon darkIcon } } + message { text } + repository { id name icon darkIcon } + insertedAt +} diff --git a/pkg/ui/web/src/graphql/installations.graphql b/pkg/ui/web/src/graphql/installations.graphql new file mode 100644 index 00000000..e3a0873d --- /dev/null +++ b/pkg/ui/web/src/graphql/installations.graphql @@ -0,0 +1,38 @@ +fragment Installation on Installation { + id + context + license + licenseKey + acmeKeyId + acmeSecret + autoUpgrade + trackTag + repository { ...Repo } + # repository { ...Repository } + user { ...User } + oidcProvider { ...OIDCProvider } +} + +query GetInstallation($name: String) { + installation(name: $name) { + ...Installation + } +} + +query GetInstallationById($id: ID) { + installation(id: $id) { + ...Installation + } +} + +query GetInstallations($first: Int) { + installations(first: $first) { + edges { node { ...Installation } } + } +} + +mutation UpsertOidcProvider($id: ID!, $attributes: OidcAttributes!) { + upsertOidcProvider(installationId: $id, attributes: $attributes) { + id + } +} diff --git a/pkg/ui/web/src/graphql/integrations.graphql b/pkg/ui/web/src/graphql/integrations.graphql new file mode 100644 index 00000000..9e0d57fe --- /dev/null +++ b/pkg/ui/web/src/graphql/integrations.graphql @@ -0,0 +1,27 @@ +fragment IntegrationWebhook on IntegrationWebhook { + id + name + url + secret + actions +} + +fragment WebhookLog on WebhookLog { + id + state + status + payload + response + insertedAt +} + +fragment OauthIntegration on OauthIntegration { + id + service + insertedAt +} + +fragment ZoomMeeting on ZoomMeeting { + joinUrl + password +} diff --git a/pkg/ui/web/src/graphql/invite.graphql b/pkg/ui/web/src/graphql/invite.graphql new file mode 100644 index 00000000..ece3e5e4 --- /dev/null +++ b/pkg/ui/web/src/graphql/invite.graphql @@ -0,0 +1,28 @@ +mutation SignupInvite($attributes: UserAttributes!, $inviteId: String!) { + signup(attributes: $attributes, inviteId: $inviteId) { + jwt + } +} + +mutation RealizeInvite($id: String!) { + realizeInvite(id: $id) { + jwt + } +} + +query Invite($id: String!) { + invite(id: $id) { + id + email + existing + account { + ...Account + } + user { + ...User + account { + ...Account + } + } + } +} diff --git a/pkg/ui/web/src/graphql/metrics.graphql b/pkg/ui/web/src/graphql/metrics.graphql new file mode 100644 index 00000000..6e99c9cb --- /dev/null +++ b/pkg/ui/web/src/graphql/metrics.graphql @@ -0,0 +1,5 @@ +fragment Metric on Metric { + name + tags { name value } + values { time value } +} diff --git a/pkg/ui/web/src/graphql/misc.graphql b/pkg/ui/web/src/graphql/misc.graphql new file mode 100644 index 00000000..0ab1b147 --- /dev/null +++ b/pkg/ui/web/src/graphql/misc.graphql @@ -0,0 +1,4 @@ +fragment PageInfo on PageInfo { + endCursor + hasNextPage +} diff --git a/pkg/ui/web/src/graphql/oauth.graphql b/pkg/ui/web/src/graphql/oauth.graphql new file mode 100644 index 00000000..175cee84 --- /dev/null +++ b/pkg/ui/web/src/graphql/oauth.graphql @@ -0,0 +1,24 @@ +fragment OIDCProvider on OidcProvider { + id + clientId + authMethod + clientSecret + redirectUris + bindings { + id + user { ...User } + group { ...Group } + } + configuration { + issuer + authorizationEndpoint + tokenEndpoint + jwksUri + userinfoEndpoint + } +} + +fragment OAuthInfo on OauthInfo { + provider + authorizeUrl +} diff --git a/pkg/ui/web/src/graphql/payments.graphql b/pkg/ui/web/src/graphql/payments.graphql new file mode 100644 index 00000000..d92afd13 --- /dev/null +++ b/pkg/ui/web/src/graphql/payments.graphql @@ -0,0 +1,142 @@ +fragment Limit on Limit { + dimension + quantity +} + +fragment LineItem on LineItem { + name + dimension + cost + period + type +} + +fragment ServiceLevel on ServiceLevel { + minSeverity + maxSeverity + responseTime +} + +fragment Plan on Plan { + id + name + cost + period + serviceLevels { ...ServiceLevel } + lineItems { + included { ...Limit } + items { ...LineItem } + } + metadata { features { name description } } +} + +fragment Subscription on RepositorySubscription { + id + plan { ...Plan } + lineItems { items { ...Limit } } +} + + +fragment InvoiceItem on InvoiceItem { + amount + currency + description +} + + +fragment Invoice on Invoice { + number + amountDue + amountPaid + currency + status + createdAt + hostedInvoiceUrl + lines { ...InvoiceItem } +} + +fragment Card on Card { + id + last4 + expMonth + expYear + name + brand +} + +query Subscription { + account { + billingCustomerId + grandfatheredUntil + delinquentAt + userCount + clusterCount + availableFeatures { + userManagement + audit + } + subscription { + id + plan { + id + period + lineItems { + dimension + cost + } + } + } + billingAddress { + name + line1 + line2 + zip + state + city + country + } + } +} + +mutation UpdateAccountBilling($attributes: AccountAttributes!) { + updateAccount(attributes: $attributes) { + id + } +} + +mutation UpgradeToProfessionalPlan($planId: ID!) { + createPlatformSubscription(planId: $planId) { + id + } +} + +mutation DowngradeToFreePlanMutation { + deletePlatformSubscription { + id + } +} + +query Cards { + me { + id + cards(first: 100) { + edges { + node { + ...Card + } + } + } + } +} + +mutation CreateCard($source: String!, $address: AddressAttributes) { + createCard(source: $source, address: $address) { + id + } +} + +mutation DeleteCard($id: ID!) { + deleteCard(id: $id) { + id + } +} diff --git a/pkg/ui/web/src/graphql/recipes.graphql b/pkg/ui/web/src/graphql/recipes.graphql new file mode 100644 index 00000000..d12aeb87 --- /dev/null +++ b/pkg/ui/web/src/graphql/recipes.graphql @@ -0,0 +1,134 @@ +fragment Recipe on Recipe { + id + name + description + restricted + provider + tests { + type + name + message + args { name repo key } + } + repository { id name } + oidcSettings { + uriFormat + uriFormats + authMethod + domainKey + subdomain + } + recipeSections { ...RecipeSection } +} + +fragment RecipeItem on RecipeItem { + id + chart { ...Chart } + terraform { ...Terraform } + configuration { ...RecipeConfiguration } +} + +fragment RecipeSection on RecipeSection { + index + repository { + ...Repo + installation { ...Installation } + } + recipeItems { ...RecipeItem } + configuration { ...RecipeConfiguration } +} + +fragment RecipeConfiguration on RecipeConfiguration { + name + type + default + documentation + optional + placeholder + functionName + condition { field operation value } + validation { type regex message } +} + +fragment Stack on Stack { + id + name + displayName + description + featured + creator { + id + name + } + collections { + id + provider + bundles { + recipe { + repository { + ...Repo + tags { + tag + } + } + } + } + } +} + +query GetRecipe($repo: String, $name: String, $id: ID) { + recipe(repo: $repo, name: $name, id: $id) { + ...Recipe + recipeDependencies { ...Recipe } + } +} + +query ListRecipes($repositoryName: String, $repositoryId: ID, $provider: Provider) { + recipes(repositoryName: $repositoryName, provider: $provider, first: 500, repositoryId: $repositoryId) { + edges { node { ...Recipe } } + } +} + +mutation CreateRecipe($name: String!, $attributes: RecipeAttributes!) { + createRecipe(repositoryName: $name, attributes: $attributes) { + id + } +} + +mutation InstallRecipe($id: ID!) { + installRecipe(recipeId: $id, context: "{}") { + id + } +} + +mutation CreateStack($attributes: StackAttributes!) { + createStack(attributes: $attributes) { + id + } +} + +query GetStack($name: String!, $provider: Provider!) { + stack(name: $name, provider: $provider) { + ...Stack + } +} + +query ListStacks($featured: Boolean, $cursor: String) { + stacks(first: 100, after: $cursor, featured: $featured) { + edges { node { ...Stack } } + } +} + +mutation CreateQuickStack($applicationIds: [ID], $provider: Provider!) { + quickStack(repositoryIds: $applicationIds, provider: $provider) { + id + name + } +} + +mutation InstallStackShell($name: String!, $context: ContextAttributes!, $oidc: Boolean!) { + installStackShell(name: $name, context: $context, oidc: $oidc) { + id + name + } +} \ No newline at end of file diff --git a/pkg/ui/web/src/graphql/repos.graphql b/pkg/ui/web/src/graphql/repos.graphql new file mode 100644 index 00000000..1eb5512c --- /dev/null +++ b/pkg/ui/web/src/graphql/repos.graphql @@ -0,0 +1,160 @@ +fragment ApplyLock on ApplyLock { + id + lock +} + +fragment Category on CategoryInfo { + category + count +} + +fragment Repo on Repository { + id + name + notes + description + documentation + icon + darkIcon + private + trending + verified + category + oauthSettings { + uriFormat + authMethod + } + publisher { + ...Publisher + } + recipes { + name + provider + description + } +} + +fragment Repository on Repository { + id + name + notes + icon + darkIcon + description + publisher { name } + recipes { name } +} + +fragment Dependencies on Dependencies { + dependencies { + name + repo + type + version + optional + } + wait + application + providers + secrets + wirings { terraform helm } + providerWirings + outputs +} + + +fragment Integration on Integration { + id + name + icon + sourceUrl + description + tags { tag } + publisher { ...Publisher } +} + +query Repository($id: ID, $name: String) { + repository(id: $id, name: $name) { + ...Repo + editable + publicKey + secrets + artifacts { + ...Artifact + } + installation { + ...Installation + oidcProvider { + ...OIDCProvider + } + } + tags { + tag + } + readme + mainBranch + gitUrl + homepage + license { + name + url + } + documentation + community { + discord + slack + homepage + gitUrl + twitter + } + } +} + +mutation CreateResourceDefinition($name: String!, $input: ResourceDefinitionAttributes!) { + updateRepository(repositoryName: $name, attributes: {integrationResourceDefinition: $input}) { + id + } +} + +mutation CreateIntegration($name: String!, $attrs: IntegrationAttributes!) { + createIntegration(repositoryName: $name, attributes: $attrs) { id } +} + +mutation UpdateRepository($name: String!, $attrs: RepositoryAttributes!) { + updateRepository(repositoryName: $name, attributes: $attrs) { id } +} + +mutation CreateRepository($name: String!, $publisher: String!, $attributes: RepositoryAttributes!) { + upsertRepository(name: $name, publisher: $publisher, attributes: $attributes) { id } +} + +mutation AcquireLock($name: String!) { + acquireLock(repository: $name) { ...ApplyLock } +} + +mutation ReleaseLock($name: String!, $attrs: LockAttributes!) { + releaseLock(repository: $name, attributes: $attrs) { ...ApplyLock } +} + +mutation UnlockRepository($name: String!) { + unlockRepository(name: $name) +} + +query ListRepositories($q: String, $installed: Boolean, $first: Int = 100, $provider: Provider = null) { + repositories(q: $q, first: $first, installed: $installed, provider: $provider) { + edges { node { ...Repository } } + } +} + +query Scaffolds($app: String!, $pub: String!, $cat: Category!, $ing: Boolean, $pg: Boolean) { + scaffold(application: $app, publisher: $pub, category: $cat, ingress: $ing, postgres: $pg) { + path + content + } +} + +mutation DeleteRepository($id: ID!) { + deleteRepository(repositoryId: $id){ + id + } +} diff --git a/pkg/ui/web/src/graphql/scaffolds.graphql b/pkg/ui/web/src/graphql/scaffolds.graphql new file mode 100644 index 00000000..e75fb666 --- /dev/null +++ b/pkg/ui/web/src/graphql/scaffolds.graphql @@ -0,0 +1,10 @@ +query GetTfProviders{ + terraformProviders +} + +query GetTfProviderScaffold($name: Provider!, $vsn: String) { + terraformProvider(name: $name, vsn: $vsn) { + name + content + } +} diff --git a/pkg/ui/web/src/graphql/shells.graphql b/pkg/ui/web/src/graphql/shells.graphql new file mode 100644 index 00000000..80be3d27 --- /dev/null +++ b/pkg/ui/web/src/graphql/shells.graphql @@ -0,0 +1,31 @@ +fragment CloudShell on CloudShell { + id + aesKey + gitUrl + alive + provider + subdomain + cluster + status { + ready + initialized + containersReady + podScheduled + } +} + +fragment DemoProject on DemoProject { + id + projectId + credentials + ready + state +} + +query GetShell { + shell { ...CloudShell } +} + +mutation DeleteShell { + deleteShell { ...CloudShell } +} diff --git a/pkg/ui/web/src/graphql/terraforms.graphql b/pkg/ui/web/src/graphql/terraforms.graphql new file mode 100644 index 00000000..766efca6 --- /dev/null +++ b/pkg/ui/web/src/graphql/terraforms.graphql @@ -0,0 +1,47 @@ +fragment Terraform on Terraform { + id + name + readme + package + description + latestVersion + dependencies { ...Dependencies } + valuesTemplate + insertedAt +} + +fragment TerraformInstallation on TerraformInstallation { + id + terraform { ...Terraform } + version { ...Version } +} + +query GetTerraform($id: ID!) { + terraform(repositoryId: $id, first: 100) { + edges { + node { + ...Terraform + } + } + } +} + +query GetTerraformInstallations($id: ID!) { + terraformInstallations(repositoryId: $id, first: 100) { + edges { + node { + ...TerraformInstallation + } + } + } +} + +mutation UploadTerraform($repoName: String!, $name: String!, $uploadOrUrl: UploadOrUrl!) { + uploadTerraform(repositoryName: $repoName, name: $name, attributes: {name: $name, package: $uploadOrUrl}) { + ...Terraform + } +} + +mutation UninstallTerraform($id: ID!) { + uninstallTerraform(id: $id) { id } +} diff --git a/pkg/ui/web/src/graphql/tests.graphql b/pkg/ui/web/src/graphql/tests.graphql new file mode 100644 index 00000000..0a7afde4 --- /dev/null +++ b/pkg/ui/web/src/graphql/tests.graphql @@ -0,0 +1,40 @@ +fragment Step on TestStep { + id + name + status + hasLogs + description + insertedAt + updatedAt +} + + +fragment Test on Test { + id + name + promoteTag + status + insertedAt + updatedAt + steps { ...Step } +} + +mutation CreateTest($name: String!, $attrs: TestAttributes!) { + createTest(name: $name, attributes: $attrs) { + ...Test + } +} + +mutation UpdateTest($id: ID!, $attrs: TestAttributes!) { + updateTest(id: $id, attributes: $attrs) { + ...Test + } +} + +mutation UpdateStep($id: ID!, $logs: UploadOrUrl!) { + updateStep(id: $id, attributes: {logs: $logs}) { id } +} + +mutation PublishLogs($id: ID!, $logs: String!) { + publishLogs(id: $id, logs: $logs) { id } +} diff --git a/pkg/ui/web/src/graphql/upgrades.graphql b/pkg/ui/web/src/graphql/upgrades.graphql new file mode 100644 index 00000000..4d9feb2b --- /dev/null +++ b/pkg/ui/web/src/graphql/upgrades.graphql @@ -0,0 +1,33 @@ +fragment UpgradeQueue on UpgradeQueue { + id + acked + name + domain + git + pingedAt + provider +} + +fragment Rollout on Rollout { + id + event + cursor + count + status + heartbeat +} + +fragment Upgrade on Upgrade { + id + message + repository { ...Repo } + insertedAt +} + +fragment DeferredUpdate on DeferredUpdate { + id + dequeueAt + attempts + version { version } + insertedAt +} diff --git a/pkg/ui/web/src/graphql/users.graphql b/pkg/ui/web/src/graphql/users.graphql new file mode 100644 index 00000000..9c831d13 --- /dev/null +++ b/pkg/ui/web/src/graphql/users.graphql @@ -0,0 +1,278 @@ +fragment Account on Account { + id + name + billingCustomerId + backgroundColor +} + +fragment Group on Group { + id + name + global + description +} + +fragment User on User { + id + name + email + avatar + provider + demoing + demoed + onboarding + onboardingChecklist { dismissed status } + emailConfirmed + emailConfirmBy + backgroundColor + serviceAccount + roles { admin } +} + +fragment ImpersonationPolicy on ImpersonationPolicy { + id + bindings { + id + group { id name } + user { id name email } + } +} + +fragment GroupMember on GroupMember { + id + user { ...User } +} + +fragment Token on PersistedToken { + id + token + insertedAt +} + +fragment TokenAudit on PersistedTokenAudit { + ip + timestamp + count + country + city + latitude + longitude +} + +fragment Address on Address { + line1 + line2 + city + country + state + zip +} + +fragment Publisher on Publisher { + id + name + phone + avatar + description + backgroundColor + owner { ...User } + address { ...Address } +} + +fragment Webhook on Webhook { + id + url + secret + insertedAt +} + +fragment RoleBinding on RoleBinding { + id + user { ...User } + group { ...Group } +} + +fragment Role on Role { + id + name + description + repositories + permissions + roleBindings { ...RoleBinding } +} + +fragment PublicKey on PublicKey { + id + name + digest + insertedAt + content + user { ...User } +} + +fragment EabCredential on EabCredential { + id + keyId + hmacKey + cluster + provider + insertedAt +} + +query Me{ + me { + ...User + loginMethod + hasInstallations + account { + ...Account + rootUser { id, name, email } + domainMappings { id domain enableSso } + } + publisher { + ...Publisher + billingAccountId + } + boundRoles { ...Role } + } + configuration { + stripeConnectId + stripePublishableKey + registry + gitCommit + } +} + +query GetLoginMethod($email: String!) { + loginMethod(email: $email) { loginMethod token } +} + +query ListTokens{ + tokens(first: 3) { + edges { node { token } } + } +} + +query ListKeys($emails: [String]) { + publicKeys(emails: $emails, first: 1000) { + edges { node { ...PublicKey } } + } +} + +query GetEabCredential($cluster: String!, $provider: Provider!) { + eabCredential(cluster: $cluster, provider: $provider) { + ...EabCredential + } +} + +mutation DevLogin { + deviceLogin { loginUrl deviceToken } +} + +mutation Login($email: String!, $password: String!, $deviceToken: String) { + login(email: $email, password: $password, deviceToken: $deviceToken) { + jwt + } +} + +mutation ImpersonateServiceAccount($email: String) { + impersonateServiceAccount(email: $email) { jwt email } +} + +mutation CreateAccessToken{ + createToken { token } +} + +mutation CreateKey($key: String!, $name: String!) { + createPublicKey(attributes: {content: $key, name: $name}) { id } +} + +mutation DeleteEabCredential($cluster: String!, $provider: Provider!) { + deleteEabKey(cluster: $cluster, provider: $provider) { + id + } +} + +mutation CreateEvent($attrs: UserEventAttributes!) { + createUserEvent(attributes: $attrs) +} + +query LoginMethod($email: String!, $host: String) { + loginMethod(email: $email, host: $host) { + loginMethod + token + authorizeUrl + } +} + +mutation Signup( + $attributes: UserAttributes! + $account: AccountAttributes + $deviceToken: String +) { + signup( + attributes: $attributes + account: $account + deviceToken: $deviceToken + ) { + jwt + onboarding + } +} + +mutation PasswordlessLogin($token: String!) { + passwordlessLogin(token: $token) { + jwt + } +} + +mutation PollLoginToken($token: String!, $deviceToken: String) { + loginToken(token: $token, deviceToken: $deviceToken) { + jwt + } +} + +query OauthUrls($host: String) { + oauthUrls(host: $host) { + provider + authorizeUrl + } +} + +query LoginMethod($email: String!, $host: String) { + loginMethod(email: $email, host: $host) { + loginMethod + token + authorizeUrl + } +} + +query OauthUrls($host: String) { + oauthUrls(host: $host) { + provider + authorizeUrl + } +} + +mutation AcceptLogin($challenge: String!) { + acceptLogin(challenge: $challenge) { + redirectTo + } +} + +mutation CreateResetToken($attributes: ResetTokenAttributes!) { + createResetToken(attributes: $attributes) +} + +mutation RealizeResetToken($id: ID!, $attributes: ResetTokenRealization!) { + realizeResetToken(id: $id, attributes: $attributes) +} + +query ResetToken($id: ID!) { + resetToken(id: $id) { + type + user { + ...User + } + } +} diff --git a/pkg/ui/web/src/graphql/versions.graphql b/pkg/ui/web/src/graphql/versions.graphql new file mode 100644 index 00000000..62661b90 --- /dev/null +++ b/pkg/ui/web/src/graphql/versions.graphql @@ -0,0 +1,23 @@ +fragment VersionTag on VersionTag { + id + tag + version { id } +} + +fragment Version on Version { + id + helm + readme + valuesTemplate + version + insertedAt + package + crds { ...Crd } + chart { ...Chart } + terraform { id name } + dependencies { ...Dependencies } +} + +mutation UpdateVersion($spec: VersionSpec, $attributes: VersionAttributes!) { + updateVersion(spec: $spec, attributes: $attributes) { id } +} diff --git a/pkg/ui/web/src/grommet/fileInputTheme.tsx b/pkg/ui/web/src/grommet/fileInputTheme.tsx new file mode 100644 index 00000000..d36c647c --- /dev/null +++ b/pkg/ui/web/src/grommet/fileInputTheme.tsx @@ -0,0 +1,56 @@ +import { CloseIcon } from '@pluralsh/design-system' + +export const fileInputTheme = ({ + selected = false, error = false, theme, +}: { + selected?: boolean; + error?: boolean; + theme: any; +}) => ({ + fileInput: { + message: { + size: 'small', + }, + hover: { + border: { + color: error + ? theme.colors['border-error'] + : selected + ? theme.colors['border-success'] + : theme.colors['border-input'], + }, + background: { + color: theme.colors['fill-one-hover'], + opacity: 1, + }, + }, + dragOver: { + border: { + color: theme.colors['border-outline-focused'], + }, + background: { + color: theme.colors['fill-one-hover'], + opacity: 1, + }, + }, + background: { + color: theme.colors['fill-one'], + opacity: 1, + }, + round: { + size: `${theme.borderRadiuses.medium}px`, + }, + border: { + size: `${theme.borderWidths.default}px`, + opacity: false, + color: error + ? theme.colors['border-error'] + : selected + ? theme.colors['border-success'] + : theme.colors['border-input'], + }, + icons: { + remove: CloseIcon, + }, + }, +}) diff --git a/pkg/ui/web/src/hooks/useWails.ts b/pkg/ui/web/src/hooks/useWails.ts new file mode 100644 index 00000000..37196714 --- /dev/null +++ b/pkg/ui/web/src/hooks/useWails.ts @@ -0,0 +1,89 @@ +import { + Dispatch, + useCallback, + useEffect, + useState, +} from 'react' + +import { Binding, ClientBindingFactory } from '../services/wails' + +type Error = any // TODO: figure out the type + +interface QueryResponse { + data?: T + error: Error + loading: boolean + refetch: Dispatch +} + +type OperationVariables = Record; + +interface QueryOptions { + variables?: TVariables +} + +function useWailsQuery(binding: Binding, + options?: QueryOptions): QueryResponse { + const bindingFn = ClientBindingFactory(binding) + const [loading, setLoading] = useState(false) + const [data, setData] = useState() + const [error, setError] = useState() + + const fetch = useCallback(() => { + setLoading(true) + setError(undefined) + setData(undefined) + + bindingFn(options?.variables ?? {}).then(res => setData(res)) + .catch(err => setError(err)) + .finally(() => setLoading(false)) + }, [bindingFn, options?.variables]) + + const refetch = useCallback(() => { + if (loading) return + + fetch() + }, [fetch, loading]) + + useEffect(() => fetch(), [fetch]) + + return { + data, + loading, + error, + refetch, + } as QueryResponse +} + +interface UpdateReponse { + error: Error + loading: boolean + update: Dispatch + data?: T +} + +function useWailsUpdate(binding: Binding, + options?: QueryOptions): UpdateReponse { + const bindingFn = ClientBindingFactory(binding) + const [loading, setLoading] = useState(false) + const [data, setData] = useState() + const [error, setError] = useState() + + const update = useCallback(() => { + setLoading(true) + + bindingFn(options?.variables ?? {}) + .then(data => setData(data)) + .catch(err => setError(err)) + .finally(() => setLoading(false)) + }, [bindingFn, options?.variables]) + + return { + error, + loading, + update, + data, + } +} + +export { useWailsQuery, useWailsUpdate } diff --git a/pkg/ui/web/src/layout/Header.tsx b/pkg/ui/web/src/layout/Header.tsx new file mode 100644 index 00000000..6b7ba181 --- /dev/null +++ b/pkg/ui/web/src/layout/Header.tsx @@ -0,0 +1,45 @@ +import { Button, CloseIcon, PluralLogoFull } from '@pluralsh/design-system' +import React, { useCallback } from 'react' +import styled from 'styled-components' + +import { Close } from '../../wailsjs/go/ui/Window' + +const Header = styled(HeaderUnstyled)(({ theme }) => ({ + // Make window draggable via header + ...theme.partials.draggable, + + // Layout + display: 'flex', + alignItems: 'center', + justifyContent: 'space-between', + + // Spacing + padding: `${theme.spacing.medium}px ${theme.spacing.large}px`, + + // Theming + background: theme.colors['fill-one'], + borderBottom: theme.borders.default, +})) + +function HeaderUnstyled({ ...props }): React.ReactElement { + const onClose = useCallback(Close, []) + + return ( +
+ + +
+ ) +} + +export default Header diff --git a/pkg/ui/web/src/main.tsx b/pkg/ui/web/src/main.tsx new file mode 100644 index 00000000..95bde501 --- /dev/null +++ b/pkg/ui/web/src/main.tsx @@ -0,0 +1,9 @@ +import React from 'react' +import { createRoot } from 'react-dom/client' + +import Plural from './Plural' + +const container = document.getElementById('root') +const root = createRoot(container!) + +root.render() diff --git a/pkg/ui/web/src/routes/installer/Application.tsx b/pkg/ui/web/src/routes/installer/Application.tsx new file mode 100644 index 00000000..6240e046 --- /dev/null +++ b/pkg/ui/web/src/routes/installer/Application.tsx @@ -0,0 +1,138 @@ +import { useQuery } from '@apollo/client' +import { Chip, WizardStep, useActive } from '@pluralsh/design-system' +import { Div, Span } from 'honorable' +import { + ReactElement, + useContext, + useEffect, + useMemo, + useState, +} from 'react' + +import Loader from '../../components/loader/Loader' +import { WailsContext } from '../../context/wails' +import { + GetRecipeDocument, + ListRecipesDocument, + Recipe, + RecipeEdge, +} from '../../graphql/generated/graphql' + +import { Configuration } from './Configuration' + +interface StepData { + id: string | undefined, + context: Record + oidc: boolean + skipped?: boolean, +} + +const toConfig = config => (config ? Object.keys(config) + .map(key => ({ [key]: { value: config[key], valid: true } })) + .reduce((acc, entry) => ({ ...acc, ...entry }), {}) : undefined) + +export function Application({ provider, ...props }: any): ReactElement { + const { active, setData } = useActive() + const { context: { configuration } } = useContext(WailsContext) + const [context, setContext] = useState>(active.data?.context || {}) + const [valid, setValid] = useState(true) + const [oidc, setOIDC] = useState(active.data?.oidc ?? true) + const { data: { recipes: { edges: recipeEdges } = { edges: undefined } } = {} } = useQuery(ListRecipesDocument, { + variables: { repositoryId: active.key }, + }) + + const { node: recipeBase } = recipeEdges?.find((recipe: RecipeEdge) => recipe!.node!.provider === provider) || { node: undefined } + const { data: recipe } = useQuery<{recipe: Recipe}>(GetRecipeDocument, { + variables: { id: recipeBase?.id }, + skip: !recipeBase, + }) + + const recipeContext = useMemo(() => toConfig(configuration?.[active.label!]), [active.label, configuration]) + const mergedContext = useMemo>(() => ({ ...recipeContext, ...context }), [recipeContext, context]) + const stepData = useMemo(() => ({ + ...active.data, ...{ id: recipe?.recipe.id }, ...{ context: mergedContext }, ...{ oidc }, + }), [active.data, recipe?.recipe.id, mergedContext, oidc]) + + useEffect(() => { + const valid = Object.values(context).every(({ valid }) => valid) + + setValid(valid) + }, [context, setValid]) + + // Update step data on change + useEffect(() => setData(stepData), [stepData, setData]) + + if (!recipe) { + return ( + + + + ) + } + + if (recipe.recipe?.restricted) { + return ( + +
+ Cannot install app + + This application has been marked restricted because it requires configuration, like ssh keys, that are only able to be securely configured locally. + +
+
+ ) + } + + return ( + +
+ + configure {active.label} + + {active.isDependency && ( + Dependency + + )} +
+ +
+ ) +} diff --git a/pkg/ui/web/src/routes/installer/Configuration.tsx b/pkg/ui/web/src/routes/installer/Configuration.tsx new file mode 100644 index 00000000..2d1e6d9a --- /dev/null +++ b/pkg/ui/web/src/routes/installer/Configuration.tsx @@ -0,0 +1,111 @@ +import { + Dispatch, + ReactElement, + SetStateAction, + useCallback, + useEffect, + useMemo, +} from 'react' +import { Flex, Span, Switch } from 'honorable' +import { useActive, useNavigation } from '@pluralsh/design-system' + +import { + Datatype, + Maybe, + Operation as OperationType, + Recipe, + RecipeConfiguration, +} from '../../graphql/generated/graphql' + +import { ConfigurationItem } from './ConfigurationItem' + +const available = (config, context) => { + if (!config.condition) return true + + const { condition } = config + + switch (condition.operation) { + case OperationType.Not: + return !(context[condition.field]?.value) + case OperationType.Prefix: + return context[condition.field]?.value?.startsWith(condition.value) ?? false + case OperationType.Eq: + return context[condition.field]?.value + } + + return true +} + +interface ConfigurationProps { + recipe: Recipe, + context: Record + setContext: Dispatch>> + oidc?: boolean + setOIDC: Dispatch +} + +export function Configuration({ + recipe, context, setContext, oidc, setOIDC, +}: ConfigurationProps): ReactElement { + const { + active, completed, setCompleted, setData, + } = useActive>() + const { onNext } = useNavigation() + const sections = recipe.recipeSections + const configurations = sections!.filter(section => section!.repository!.name === active.label).map(section => section!.configuration).flat().filter(c => !!c) + const setValue = useCallback(( + fieldName, value, valid = true, type = Datatype.String + ) => setContext(context => ({ ...context, ...{ [fieldName]: { value, valid, type } } })), [setContext]) + const hiddenConfigurations = useMemo(() => configurations.filter(conf => !available(conf, context)), [configurations, context]) + + useEffect(() => { + hiddenConfigurations.forEach(conf => { + setContext(context => ({ ...context, ...{ [conf!.name!]: { value: context[conf!.name!]?.value, valid: true, type: Datatype.String } } })) + }) + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [hiddenConfigurations.length, setContext]) + + useEffect(() => { + if (configurations.length === 0 && !completed && active.data?.id) setCompleted(true) + }, [configurations.length, completed, active.data?.id, setCompleted]) + + useEffect(() => { + if (configurations.length === 0 && !active.data?.skipped && completed) { + setData({ ...active.data, ...{ skipped: true } }) + onNext() + } + }, [active.data, completed, configurations.length, onNext, setData]) + + return ( + + {configurations.filter(conf => available(conf, context)).map((conf?: Maybe) => ( + + ))} + {configurations?.length === 0 && ( + Nothing needs doing here! You can continue. + + )} + {recipe.oidcEnabled && ( +
+ setOIDC(checked)} + >Enable OIDC + +
+ )} +
+ ) +} diff --git a/pkg/ui/web/src/routes/installer/ConfigurationFileInput.tsx b/pkg/ui/web/src/routes/installer/ConfigurationFileInput.tsx new file mode 100644 index 00000000..ac3948ac --- /dev/null +++ b/pkg/ui/web/src/routes/installer/ConfigurationFileInput.tsx @@ -0,0 +1,51 @@ +import { ComponentProps, useCallback, useState } from 'react' +import { Span } from 'honorable' +import { FileInput, ThemeContext } from 'grommet' +import { useTheme } from 'styled-components' + +import { fileInputTheme } from '../../grommet/fileInputTheme' + +export default function ConfigurationFileInput({ + value, + onChange, ...props +}: { onChange: (f:{file: File | null, text: string}) => void; value: string } & Omit< + ComponentProps, 'onChange' +>) { + const [fileSelected, setFileSelected] = useState(!!value) + const theme = useTheme() + + const readFile = useCallback(async (files: FileList | undefined | null) => { + setFileSelected(false) + + const file = files?.item(0) ?? null + const text = await file?.text() ?? '' + + setFileSelected(!!file) + onChange({ text, file }) + }, + [onChange]) + + const messages = value ? { dropPrompt: '********', browse: 'Choose a different file' } : { + dropPrompt: 'Drop your file here', + browse: 'Select file', + } + + return ( + + readFile(event?.target?.files)} + renderFile={file => ( + + {file.name} + + )} + {...props} + /> + + ) +} diff --git a/pkg/ui/web/src/routes/installer/ConfigurationItem.tsx b/pkg/ui/web/src/routes/installer/ConfigurationItem.tsx new file mode 100644 index 00000000..1397cfc4 --- /dev/null +++ b/pkg/ui/web/src/routes/installer/ConfigurationItem.tsx @@ -0,0 +1,183 @@ +import { FormField, Input } from '@pluralsh/design-system' +import { Switch } from 'honorable' +import StartCase from 'lodash/startCase' +import { + useContext, + useEffect, + useMemo, + useState, +} from 'react' + +import { WailsContext } from '../../context/wails' +import { Datatype } from '../../graphql/generated/graphql' +import { PluralProject } from '../../types/client' + +import ConfigurationFileInput from './ConfigurationFileInput' + +type ModifierFunction = (value: string, trim?: boolean) => string + +const modifierFactory = (type: Datatype, project: PluralProject): ModifierFunction => { + switch (type) { + case Datatype.String: + case Datatype.Int: + case Datatype.Password: + return stringModifier + case Datatype.Bucket: + return bucketModifier.bind({ project }) + case Datatype.Domain: + return domainModifier.bind({ project }) + } + + return stringModifier +} + +const stringModifier = value => value + +function bucketModifier(this: {project: PluralProject}, value: string, trim = false) { + const { project } = this + const bucketPrefix = project?.bucketPrefix + const cluster = project?.cluster + const prefix = `${bucketPrefix}-${cluster}-` + + if (trim) return value?.replace(prefix, '') + + return bucketPrefix && cluster ? `${prefix}${value}` : value +} +function domainModifier(this: {project: PluralProject}, value: string, trim = false) { + const { project } = this + const subdomain = project?.network?.subdomain || '' + const suffix = subdomain ? `.${subdomain}` : '' + + if (trim) return value?.replace(suffix, '') + + return subdomain ? `${value}${suffix}` : value +} + +const createValidator = (regex: RegExp, optional: boolean, error: string) => (value): {valid: boolean, message: string} => ({ + valid: (value ? regex.test(value) : optional), + message: error, +}) + +function ConfigurationField({ + config, ctx, setValue, +}) { + const { + name, + default: defaultValue, + placeholder, + documentation, + validation, + optional, + type, + } = config + const { project } = useContext(WailsContext) + + const value = useMemo(() => ctx[name]?.value, [ctx, name]) + const validator = useMemo(() => createValidator(new RegExp(validation?.regex ? `^${validation?.regex}$` : /.*/), + config.optional, + validation?.message), + [config.optional, validation?.message, validation?.regex]) + const { valid, message } = useMemo(() => validator(value), [validator, value]) + const modifier = useMemo(() => modifierFactory(config.type, project), + [config.type, project]) + + const isFile = type === Datatype.File + + const [local, setLocal] = useState(modifier(value, true) || (isFile ? null : defaultValue)) + + useEffect(() => (local + ? setValue( + name, modifier(local), valid, type + ) + : setValue( + name, local, valid, type + )), + [local, modifier, name, setValue, type, valid]) + + const isInt = type === Datatype.Int + const isPassword + = type === Datatype.Password + || ['private_key', 'public_key'].includes(config.name) + + const inputFieldType = isInt + ? 'number' + : isPassword + ? 'password' + : 'text' + + return ( + + {isFile ? ( + { + setLocal(val?.text ?? '') + }} + /> + ) : ( + setLocal(value)} + /> + )} + + ) +} + +function BoolConfiguration({ config: { name, default: def }, ctx, setValue }) { + const value: boolean = `${ctx[name]?.value}`.toLowerCase() === 'true' + + useEffect(() => { + if (value === undefined && def) { + setValue(name, def) + } + }, [value, def, name, setValue]) + + return ( + setValue(name, checked)} + > + {StartCase(name)} + + ) +} + +export function ConfigurationItem({ config, ctx, setValue }) { + switch (config.type) { + case Datatype.Bool: + return ( + + ) + default: + return ( + + ) + } +} diff --git a/pkg/ui/web/src/routes/installer/Installer.tsx b/pkg/ui/web/src/routes/installer/Installer.tsx new file mode 100644 index 00000000..28147984 --- /dev/null +++ b/pkg/ui/web/src/routes/installer/Installer.tsx @@ -0,0 +1,113 @@ +import { ApolloError, useApolloClient, useQuery } from '@apollo/client' +import { + GraphQLToast, + Wizard, + WizardNavigation, + WizardStepConfig, + WizardStepper, +} from '@pluralsh/design-system' +import React, { + useCallback, + useContext, + useEffect, + useMemo, + useState, +} from 'react' +import { useNavigate } from 'react-router-dom' +import styled from 'styled-components' + +import Loader from '../../components/loader/Loader' +import { WailsContext } from '../../context/wails' +import { ListRepositoriesDocument, ListRepositoriesQueryVariables, RootQueryType } from '../../graphql/generated/graphql' +import { Routes } from '../routes' + +import { buildSteps, install, toDefaultSteps } from './helpers' + +const FILTERED_APPS = ['bootstrap', 'ingress-nginx', 'postgres'] +const FORCED_APPS = { + console: 'The Plural Console will allow you to monitor, upgrade, and deploy applications easily from one centralized place.', +} + +const Installer = styled(InstallerUnstyled)(() => ({ + height: '100%', +})) + +function InstallerUnstyled({ ...props }): React.ReactElement { + const navigate = useNavigate() + const client = useApolloClient() + const { project: { provider } } = useContext(WailsContext) + + const [stepsLoading, setStepsLoading] = useState(false) + const [steps, setSteps] = useState>() + const [error, setError] = useState() + const [defaultSteps, setDefaultSteps] = useState>([]) + + const { data: connection } = useQuery, ListRepositoriesQueryVariables>(ListRepositoriesDocument, { + variables: { + installed: false, + provider, + }, + fetchPolicy: 'network-only', + }) + + const applications = useMemo(() => connection + ?.repositories + ?.edges + ?.map(repo => repo!.node) + .filter(app => ((!app?.private ?? true)) && !FILTERED_APPS.includes(app!.name)), [connection?.repositories?.edges]) + + const onInstall = useCallback((payload: Array) => { + setStepsLoading(true) + + install(client, payload) + .then(() => navigate(Routes.Next)) + .catch(err => setError(err)) + .finally(() => setStepsLoading(false)) + }, [client, navigate]) + + const onSelect = useCallback((selectedApplications: Array) => { + const build = async () => { + const steps = await buildSteps(client, provider!, selectedApplications) + + setSteps(steps) + } + + setStepsLoading(true) + build().finally(() => setStepsLoading(false)) + }, [client, provider]) + + useEffect(() => setDefaultSteps(toDefaultSteps(applications, provider!, { ...FORCED_APPS })), [applications?.length, provider]) + + if (!applications || defaultSteps.length === 0) { + return + } + + return ( +
+ + {{ + stepper: , + navigation: , + }} + + + {error && ( + setError(undefined)} + margin="medium" + closeTimeout={20000} + /> + )} +
+ ) +} + +export default Installer diff --git a/pkg/ui/web/src/routes/installer/helpers.tsx b/pkg/ui/web/src/routes/installer/helpers.tsx new file mode 100644 index 00000000..425f2108 --- /dev/null +++ b/pkg/ui/web/src/routes/installer/helpers.tsx @@ -0,0 +1,121 @@ +import { ApolloClient } from '@apollo/client' + +import { + AppsIcon, + InstallIcon, + WizardInstaller, + WizardPicker, + WizardStepConfig, +} from '@pluralsh/design-system' + +import { + Datatype, + GetRecipeDocument, + ListRecipesDocument, + Provider, + Recipe, + RecipeSection, + RootQueryType, +} from '../../graphql/generated/graphql' +import { Binding, ClientBindingFactory } from '../../services/wails' + +import { Application } from './Application' + +const toPickerItems = (applications: Array, provider: Provider, forcedApps: any): Array => applications?.map(app => ({ + key: app.id, + label: app.name, + imageUrl: app.icon, + node: , + isRequired: Object.keys(forcedApps).includes(app.name), + tooltip: forcedApps[app.name], +})) || [] + +const toDefaultSteps = (applications: any, provider: Provider, forcedApps: any): Array => [{ + key: 'apps', + label: 'Apps', + Icon: AppsIcon, + node: , + isDefault: true, +}, +{ + key: 'placeholder', + isPlaceholder: true, +}, +{ + key: 'install', + label: 'Install', + Icon: InstallIcon, + node: , + isDefault: true, +}] + +const toDependencySteps = (applications: {section: RecipeSection, dependencyOf: Set}[], provider: Provider): Array => [...applications.map(app => ({ + key: app.section.repository!.id, + label: app.section.repository!.name, + imageUrl: app.section.repository!.icon!, + node: , + isDependency: true, + dependencyOf: app.dependencyOf, +}))] + +const buildSteps = async (client: ApolloClient, provider: Provider, selectedApplications: Array) => { + const dependencyMap = new Map}>() + + for (const app of selectedApplications) { + const { data: { recipes } = {} } = await client.query>({ + query: ListRecipesDocument, + variables: { repositoryId: app.key }, + }) + + const { node: recipeBase } = recipes?.edges?.find(edge => edge!.node!.provider === provider) || { node: undefined } + + if (!recipeBase) continue + + const { data: recipe } = await client.query<{recipe: Recipe}>({ + query: GetRecipeDocument, + variables: { id: recipeBase?.id }, + }) + + const sections = recipe.recipe.recipeSections!.filter(section => section!.repository!.name !== app.label) + + sections.forEach(section => { + if (selectedApplications.find(app => app.key === section!.repository!.id)) return + + if (!dependencyMap.has(section!.repository!.name)) { + dependencyMap.set(section!.repository!.name, { section: section!, dependencyOf: new Set([app.label!]) }) + + return + } + + const dep = dependencyMap.get(section!.repository!.name)! + const dependencyOf: Array = [...Array.from(dep.dependencyOf.values()), app.label!] + + dependencyMap.set(section!.repository!.name, { section: section!, dependencyOf: new Set(dependencyOf) }) + }) + } + + return toDependencySteps(Array.from(dependencyMap.values()), provider) +} + +const install = async (client: ApolloClient, apps: Array>) => { + const toAPIContext = context => ({ ...Object.keys(context || {}).reduce((acc, key) => ({ ...acc, [key]: context[key].value }), {}) }) + const toDataTypeValues = (context, datatype) => Object.keys(context || {}).reduce((acc: Array, key) => (context[key].type === datatype ? [...acc, context[key].value] : [...acc]), []) + const install = ClientBindingFactory(Binding.Install) + const domains = apps.reduce((acc: Array, app) => [...acc, ...toDataTypeValues(app.data?.context || {}, Datatype.Domain)], []) + const buckets = apps.reduce((acc: Array, app) => [...acc, ...toDataTypeValues(app.data?.context || {}, Datatype.Bucket)], []) + + // Filter out some form validation fields from context + apps = apps.map(app => ({ ...app, data: { ...app.data, context: toAPIContext(app.data.context ?? {}) } })) + + return install(apps.map(app => ({ ...app, dependencyOf: Array.from(app.dependencyOf ?? []) })), domains, buckets) +} + +export { + toDependencySteps, toDefaultSteps, buildSteps, toPickerItems, install, +} diff --git a/pkg/ui/web/src/routes/installer/route.tsx b/pkg/ui/web/src/routes/installer/route.tsx new file mode 100644 index 00000000..e94d78a0 --- /dev/null +++ b/pkg/ui/web/src/routes/installer/route.tsx @@ -0,0 +1,12 @@ +import React from 'react' +import { DataRouteObject } from 'react-router-dom' + +const Installer = React.lazy(() => import('./Installer')) + +const route: DataRouteObject = { + id: 'installer', + index: true, + element: , +} + +export { route as installerRoute } diff --git a/pkg/ui/web/src/routes/nextsteps/NextSteps.tsx b/pkg/ui/web/src/routes/nextsteps/NextSteps.tsx new file mode 100644 index 00000000..9e263c36 --- /dev/null +++ b/pkg/ui/web/src/routes/nextsteps/NextSteps.tsx @@ -0,0 +1,87 @@ +import { Button, Codeline } from '@pluralsh/design-system' +import React, { useCallback } from 'react' +import { useNavigate } from 'react-router-dom' +import styled from 'styled-components' + +import { Close, SetClipboard } from '../../../wailsjs/go/ui/Window' +import { Routes } from '../routes' + +const NextSteps = styled(NextStepsUnstyled)(({ theme }) => ({ + height: '100%', + display: 'flex', + flexDirection: 'column', + justifyContent: 'center', + gap: theme.spacing.medium, + + '.title': { + ...theme.partials.text.title2, + + display: 'flex', + flexDirection: 'column', + alignSelf: 'center', + alignItems: 'center', + textAlign: 'center', + paddingBottom: theme.spacing.xxxlarge, + }, + + '.description': { + ...theme.partials.text.body1, + + alignSelf: 'center', + }, + + '.codeline': { + ...theme.partials.text.body2, + + paddingTop: theme.spacing.xxlarge, + }, + + '.actions': { + display: 'flex', + justifyContent: 'space-between', + paddingTop: theme.spacing.xlarge, + }, +})) + +function NextStepsUnstyled({ ...props }): React.ReactElement { + const onClose = useCallback(Close, []) + const onCopy = useCallback((text: string) => SetClipboard(text), []) + const navigate = useNavigate() + + return ( +
+ + Almost done! + Follow the next steps to complete your installations. + + + Copy and run below command to build your applications: + plural build + + + Copy and run below command to deploy your applications: + plural deploy --commit "Installed few apps with Plural" + + +
+ + +
+
+ ) +} + +export default NextSteps diff --git a/pkg/ui/web/src/routes/nextsteps/route.tsx b/pkg/ui/web/src/routes/nextsteps/route.tsx new file mode 100644 index 00000000..48236b8f --- /dev/null +++ b/pkg/ui/web/src/routes/nextsteps/route.tsx @@ -0,0 +1,14 @@ +import React from 'react' +import { DataRouteObject } from 'react-router-dom' + +import { Routes } from '../routes' + +const NextSteps = React.lazy(() => import('./NextSteps')) + +const route: DataRouteObject = { + id: 'next', + path: Routes.Next, + element: , +} + +export { route as nextStepsRoute } diff --git a/pkg/ui/web/src/routes/root.tsx b/pkg/ui/web/src/routes/root.tsx new file mode 100644 index 00000000..dd818656 --- /dev/null +++ b/pkg/ui/web/src/routes/root.tsx @@ -0,0 +1,51 @@ +import { ApolloProvider } from '@apollo/client' +import { LoadingSpinner } from '@pluralsh/design-system' +import React, { Suspense, useContext, useMemo } from 'react' +import { + DataRouteObject, + Outlet, + RouteObject, + useNavigate, +} from 'react-router-dom' +import styled from 'styled-components' + +import { WailsContext } from '../context/wails' +import Header from '../layout/Header' +import { newApolloClient } from '../services/apollo' + +import { Routes } from './routes' + +const Root = styled(RootUnstyled)(({ theme }) => ({ + display: 'flex', + flexDirection: 'column' as const, + height: '100%', + overflow: 'hidden', + + '.content': { + padding: theme.spacing.xxlarge, + flexGrow: 1, + overflowY: 'auto', + }, +})) + +function RootUnstyled({ ...props }): React.ReactElement { + const { token } = useContext(WailsContext) + const client = useMemo(() => newApolloClient(token), [token]) + + return ( +
+ +
+
+ +
+ ) +} + +const route = (children: Array): RouteObject => ({ + path: Routes.Root, + element: }>, + children, +}) + +export { route as createRootRoute } diff --git a/pkg/ui/web/src/routes/router.tsx b/pkg/ui/web/src/routes/router.tsx new file mode 100644 index 00000000..b0f47bd6 --- /dev/null +++ b/pkg/ui/web/src/routes/router.tsx @@ -0,0 +1,15 @@ +import { createHashRouter } from 'react-router-dom' + +import { installerRoute } from './installer/route' +import { nextStepsRoute } from './nextsteps/route' + +import { createRootRoute } from './root' + +const router = createHashRouter([ + createRootRoute([ + installerRoute, + nextStepsRoute, + ]), +]) + +export { router } diff --git a/pkg/ui/web/src/routes/routes.ts b/pkg/ui/web/src/routes/routes.ts new file mode 100644 index 00000000..fe9825e2 --- /dev/null +++ b/pkg/ui/web/src/routes/routes.ts @@ -0,0 +1,6 @@ +enum Routes { + Root = '/', + Next = 'next', +} + +export { Routes } diff --git a/pkg/ui/web/src/services/apollo.ts b/pkg/ui/web/src/services/apollo.ts new file mode 100644 index 00000000..6159c00a --- /dev/null +++ b/pkg/ui/web/src/services/apollo.ts @@ -0,0 +1,46 @@ +import { create } from '@absinthe/socket' +import { createAbsintheSocketLink } from '@absinthe/socket-apollo-link' +import { + ApolloClient, + ApolloLink, + HttpLink, + InMemoryCache, + NormalizedCacheObject, +} from '@apollo/client' +import { setContext } from '@apollo/client/link/context' +import { RetryLink } from '@apollo/client/link/retry' +import { Socket as PhoenixSocket } from 'phoenix' + +const API_HOST = 'app.plural.sh' +const GQL_URL = `https://${API_HOST}/gql` +const WS_URI = `wss://${API_HOST}/socket` + +// const splitLink = split(({ query }) => { +// const definition = getMainDefinition(query) +// +// return ( +// definition.kind === 'OperationDefinition' +// && definition.operation === 'subscription' +// ) +// }, +// socketLink, +// retryLink.concat(resetToken).concat(httpLink),) + +export function newApolloClient(token: string): ApolloClient { + const authLink = setContext(() => ({ headers: token ? { authorization: `Bearer ${token}` } : {} })) + const httpLink = new HttpLink({ uri: GQL_URL }) + const absintheSocket = create(new PhoenixSocket(WS_URI, { params: () => (token ? { Authorization: `Bearer ${token}` } : {}) })) + const socketLink = createAbsintheSocketLink(absintheSocket) + const retryLink = new RetryLink({ + delay: { initial: 200 }, + attempts: { + max: Infinity, + retryIf: error => !!error, + }, + }) + + return new ApolloClient({ + link: ApolloLink.from([authLink, httpLink]), + cache: new InMemoryCache(), + }) +} diff --git a/pkg/ui/web/src/services/wails.ts b/pkg/ui/web/src/services/wails.ts new file mode 100644 index 00000000..d8d273bb --- /dev/null +++ b/pkg/ui/web/src/services/wails.ts @@ -0,0 +1,59 @@ +import { WizardStepConfig } from '@pluralsh/design-system' + +import { ui } from '../../wailsjs/go/models' +import { + Context, + Install, + Project, + Token, +} from '../../wailsjs/go/ui/Client' +import { SetClipboard } from '../../wailsjs/go/ui/Window' +import { + Client, + ClientBinding, + PluralContext, + PluralProject, +} from '../types/client' + +import Application = ui.Application; + +/** + * List of supported client methods based on API Go client. + * @see pkg/api/client.go + */ +enum Binding { + Token = 'Token', + Project = 'Project', + Context = 'Context', + Install = 'Install', + SetClipboard = 'SetClipboard', +} + +/** + * Client mapping from defined bindings to exposed Go backend methods. + * Abstracts the backend calls and wraps them with proper return types + * to simplify usage in the UI. + * @see Binding + */ +const Plural: Client = { + [Binding.Token]: (): Promise => Token(), + [Binding.Project]: (): Promise => Project() as Promise, + [Binding.Context]: (): Promise => Context() as Promise, + [Binding.Install]: (apps: Array, domains: Array, buckets: Array): Promise => Install(apps as Array, domains, buckets) as Promise, + [Binding.SetClipboard]: (text: string): Promise => SetClipboard(text), +} + +/** + * Factory that simplifies getting wrapped client binding methods. + * @param binding + * @constructor + */ +function ClientBindingFactory(binding: Binding): ClientBinding { + const bindingFn: ClientBinding = Plural[binding] as ClientBinding + + if (!bindingFn) throw new Error(`Unsupported client endpoint: ${binding}`) + + return bindingFn +} + +export { ClientBindingFactory, Binding } diff --git a/pkg/ui/web/src/styled/fonts.ts b/pkg/ui/web/src/styled/fonts.ts new file mode 100644 index 00000000..f0ab91ff --- /dev/null +++ b/pkg/ui/web/src/styled/fonts.ts @@ -0,0 +1,87 @@ +import { createGlobalStyle } from 'styled-components' + +// language=SCSS +const FontStyles = createGlobalStyle(() => ` + @font-face { + font-family: 'Monument'; + src: url("/fonts/monument-regular.otf") format("opentype"); + font-weight: 400; + } + + @font-face { + font-family: 'Monument'; + src: url("/fonts/monument-medium.woff") format("woff"); + font-weight: 450; + } + + @font-face { + font-family: 'Monument'; + src: url("/fonts/monument-medium.woff") format("woff"); + font-weight: 500; + } + + @font-face { + font-family: 'Monument'; + src: url("/fonts/monument-bold.woff") format("woff"); + font-weight: 500; + } + + @font-face { + font-family: 'Monument'; + src: url("/fonts/monument-regular-italic.woff") format("woff"); + font-weight: 400; + font-style: italic; + } + + @font-face { + font-family: 'Monument'; + src: url("/fonts/monument-medium-italic.woff") format("woff"); + font-weight: 500; + font-style: italic; + } + + @font-face { + font-family: 'Monument'; + src: url("/fonts/monument-bold-italic.woff") format("woff"); + font-weight: 600; + font-style: italic; + } + + @font-face { + font-family: 'Monument Semi-Mono'; + src: url("/fonts/ABCMonumentGroteskSemi-Mono-Regular.woff") format("woff"); + font-weight: 400; + } + + @font-face { + font-family: 'Monument Semi-Mono'; + src: url("/fonts/ABCMonumentGroteskSemi-Mono-Medium.woff") format("woff"); + font-weight: 500; + } + + @font-face { + font-family: 'Monument Semi-Mono'; + src: url("/fonts/ABCMonumentGroteskSemi-Mono-Heavy.woff") format("woff"); + font-weight: 600; + } + + @font-face { + font-family: 'Monument Mono'; + src: url("/fonts/ABCMonumentGroteskMono-Regular.woff") format("woff"); + font-weight: 400; + } + + @font-face { + font-family: 'Monument Mono'; + src: url("/fonts/ABCMonumentGroteskMono-Medium.woff") format("woff"); + font-weight: 500; + } + + @font-face { + font-family: 'Monument Mono'; + src: url("/fonts/ABCMonumentGroteskMono-Heavy.woff") format("woff"); + font-weight: 600; + } +`) + +export { FontStyles } diff --git a/pkg/ui/web/src/styled/global.ts b/pkg/ui/web/src/styled/global.ts new file mode 100644 index 00000000..5f2d90f9 --- /dev/null +++ b/pkg/ui/web/src/styled/global.ts @@ -0,0 +1,22 @@ +import { createGlobalStyle } from 'styled-components' + +// language=SCSS +const GlobalStyles = createGlobalStyle(({ theme }) => ` + html, body, #root { + // Layout + height: 100vh; + padding: 0; + margin: 0; + + // Fonts + font-size: 14px; + font-family: Inter, Helvetica, Arial, "sans-serif"; + line-height: 20px; + + // Theming + background: ${theme.colors['fill-zero']}; + color: ${theme.colors.text}; + } +`) + +export { GlobalStyles } diff --git a/pkg/ui/web/src/styled/scrollbar.ts b/pkg/ui/web/src/styled/scrollbar.ts new file mode 100644 index 00000000..95f4c5ef --- /dev/null +++ b/pkg/ui/web/src/styled/scrollbar.ts @@ -0,0 +1,5 @@ +import { createGlobalStyle } from 'styled-components' + +const ScrollbarStyles = createGlobalStyle(({ theme }) => theme.partials.scrollBar({ fillLevel: 0 })) + +export { ScrollbarStyles } diff --git a/pkg/ui/web/src/styled/theme.ts b/pkg/ui/web/src/styled/theme.ts new file mode 100644 index 00000000..d0ef4f2a --- /dev/null +++ b/pkg/ui/web/src/styled/theme.ts @@ -0,0 +1,11 @@ +import { styledTheme } from '@pluralsh/design-system' + +const theme = { + ...styledTheme, + partials: { + ...styledTheme.partials, + draggable: { '--wails-draggable': 'drag' }, + }, +} + +export { theme } diff --git a/pkg/ui/web/src/types/client.d.ts b/pkg/ui/web/src/types/client.d.ts new file mode 100644 index 00000000..bfdc8f04 --- /dev/null +++ b/pkg/ui/web/src/types/client.d.ts @@ -0,0 +1,31 @@ +import { Provider } from '../graphql/generated/graphql' +import { Binding } from '../services/client' + +type ClientBinding = (...args: any) => Promise +type Client = {[key in Binding]: ClientBinding} + +interface NetworkConfig { + subdomain: string + pluralDns: bool +} + +interface PluralProject { + cluster: string + bucket: string + project: string + provider: Provider + region: string + bucketPrefix: string + network: NetworkConfig + context: Map +} + +interface PluralContext { + buckets: Array + domains: Array + configuration: Record> +} + +export type { + Client, ClientBinding, PluralProject, PluralContext, +} diff --git a/pkg/ui/web/src/types/styled.d.ts b/pkg/ui/web/src/types/styled.d.ts new file mode 100644 index 00000000..fe94d823 --- /dev/null +++ b/pkg/ui/web/src/types/styled.d.ts @@ -0,0 +1,13 @@ +// import original module declarations +import 'styled-components' +import { theme } from '../styled/theme' + +import { DEFAULT_THEME } from '../theme' + +type StyledTheme = typeof theme & typeof DEFAULT_THEME + +// and extend them! +declare module 'styled-components' { + // eslint-disable-next-line @typescript-eslint/no-empty-interface + export interface DefaultTheme extends StyledTheme {} +} diff --git a/pkg/ui/web/src/vite-env.d.ts b/pkg/ui/web/src/vite-env.d.ts new file mode 100644 index 00000000..11f02fe2 --- /dev/null +++ b/pkg/ui/web/src/vite-env.d.ts @@ -0,0 +1 @@ +/// diff --git a/pkg/ui/web/style.css b/pkg/ui/web/style.css new file mode 100644 index 00000000..061c2db8 --- /dev/null +++ b/pkg/ui/web/style.css @@ -0,0 +1,3 @@ +html, body { + width: 100vh; +} \ No newline at end of file diff --git a/pkg/ui/web/tsconfig.json b/pkg/ui/web/tsconfig.json new file mode 100644 index 00000000..49e6a537 --- /dev/null +++ b/pkg/ui/web/tsconfig.json @@ -0,0 +1,32 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "lib": [ + "DOM", + "DOM.Iterable", + "ESNext" + ], + "allowJs": false, + "skipLibCheck": true, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true, + "forceConsistentCasingInFileNames": true, + "module": "ESNext", + "moduleResolution": "Node", + "resolveJsonModule": true, + "isolatedModules": true, + "noEmit": true, + "jsx": "react-jsx", + "noImplicitAny": false + }, + "include": [ + "src" + ], + "references": [ + { + "path": "./tsconfig.node.json" + } + ] +} diff --git a/pkg/ui/web/tsconfig.node.json b/pkg/ui/web/tsconfig.node.json new file mode 100644 index 00000000..b8afcc8f --- /dev/null +++ b/pkg/ui/web/tsconfig.node.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "composite": true, + "module": "ESNext", + "moduleResolution": "Node", + "allowSyntheticDefaultImports": true + }, + "include": [ + "vite.config.ts" + ] +} diff --git a/pkg/ui/web/vite.config.ts b/pkg/ui/web/vite.config.ts new file mode 100644 index 00000000..5a33944a --- /dev/null +++ b/pkg/ui/web/vite.config.ts @@ -0,0 +1,7 @@ +import { defineConfig } from 'vite' +import react from '@vitejs/plugin-react' + +// https://vitejs.dev/config/ +export default defineConfig({ + plugins: [react()], +}) diff --git a/pkg/ui/web/wailsjs/go/models.ts b/pkg/ui/web/wailsjs/go/models.ts new file mode 100755 index 00000000..4119e4dc --- /dev/null +++ b/pkg/ui/web/wailsjs/go/models.ts @@ -0,0 +1,77 @@ +export namespace manifest { + + export class Context { + protect?: string[]; + // Go type: Globals + globals?: any; + + static createFrom(source: any = {}) { + return new Context(source); + } + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.protect = source["protect"]; + this.globals = this.convertValues(source["globals"], null); + } + + convertValues(a: any, classs: any, asMap: boolean = false): any { + if (!a) { + return a; + } + if (a.slice) { + return (a as any[]).map(elem => this.convertValues(elem, classs)); + } else if ("object" === typeof a) { + if (asMap) { + for (const key of Object.keys(a)) { + a[key] = new classs(a[key]); + } + return a; + } + return new classs(a); + } + return a; + } + } + export class NetworkConfig { + subdomain: string; + pluralDns: boolean; + + static createFrom(source: any = {}) { + return new NetworkConfig(source); + } + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.subdomain = source["subdomain"]; + this.pluralDns = source["pluralDns"]; + } + } + +} + +export namespace ui { + + export class Application { + key: string; + label: string; + isDependency: boolean; + dependencyOf: {[key: string]: any}; + data: {[key: string]: any}; + + static createFrom(source: any = {}) { + return new Application(source); + } + + constructor(source: any = {}) { + if ('string' === typeof source) source = JSON.parse(source); + this.key = source["key"]; + this.label = source["label"]; + this.isDependency = source["isDependency"]; + this.dependencyOf = source["dependencyOf"]; + this.data = source["data"]; + } + } + +} + diff --git a/pkg/ui/web/wailsjs/go/ui/Client.d.ts b/pkg/ui/web/wailsjs/go/ui/Client.d.ts new file mode 100755 index 00000000..90dacd19 --- /dev/null +++ b/pkg/ui/web/wailsjs/go/ui/Client.d.ts @@ -0,0 +1,11 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT +import {ui} from '../models'; + +export function Context():Promise; + +export function Install(arg1:Array,arg2:Array,arg3:Array):Promise; + +export function Project():Promise; + +export function Token():Promise; diff --git a/pkg/ui/web/wailsjs/go/ui/Client.js b/pkg/ui/web/wailsjs/go/ui/Client.js new file mode 100755 index 00000000..88c3440e --- /dev/null +++ b/pkg/ui/web/wailsjs/go/ui/Client.js @@ -0,0 +1,19 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +export function Context() { + return window['go']['ui']['Client']['Context'](); +} + +export function Install(arg1, arg2, arg3) { + return window['go']['ui']['Client']['Install'](arg1, arg2, arg3); +} + +export function Project() { + return window['go']['ui']['Client']['Project'](); +} + +export function Token() { + return window['go']['ui']['Client']['Token'](); +} diff --git a/pkg/ui/web/wailsjs/go/ui/Window.d.ts b/pkg/ui/web/wailsjs/go/ui/Window.d.ts new file mode 100755 index 00000000..ec70ec46 --- /dev/null +++ b/pkg/ui/web/wailsjs/go/ui/Window.d.ts @@ -0,0 +1,6 @@ +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +export function Close():Promise; + +export function SetClipboard(arg1:string):Promise; diff --git a/pkg/ui/web/wailsjs/go/ui/Window.js b/pkg/ui/web/wailsjs/go/ui/Window.js new file mode 100755 index 00000000..8b1baf3b --- /dev/null +++ b/pkg/ui/web/wailsjs/go/ui/Window.js @@ -0,0 +1,11 @@ +// @ts-check +// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL +// This file is automatically generated. DO NOT EDIT + +export function Close() { + return window['go']['ui']['Window']['Close'](); +} + +export function SetClipboard(arg1) { + return window['go']['ui']['Window']['SetClipboard'](arg1); +} diff --git a/pkg/ui/web/wailsjs/runtime/package.json b/pkg/ui/web/wailsjs/runtime/package.json new file mode 100755 index 00000000..1e7c8a5d --- /dev/null +++ b/pkg/ui/web/wailsjs/runtime/package.json @@ -0,0 +1,24 @@ +{ + "name": "@wailsapp/runtime", + "version": "2.0.0", + "description": "Wails Javascript runtime library", + "main": "runtime.js", + "types": "runtime.d.ts", + "scripts": { + }, + "repository": { + "type": "git", + "url": "git+https://github.com/wailsapp/wails.git" + }, + "keywords": [ + "Wails", + "Javascript", + "Go" + ], + "author": "Lea Anthony ", + "license": "MIT", + "bugs": { + "url": "https://github.com/wailsapp/wails/issues" + }, + "homepage": "https://github.com/wailsapp/wails#readme" +} diff --git a/pkg/ui/web/wailsjs/runtime/runtime.d.ts b/pkg/ui/web/wailsjs/runtime/runtime.d.ts new file mode 100755 index 00000000..a3723f94 --- /dev/null +++ b/pkg/ui/web/wailsjs/runtime/runtime.d.ts @@ -0,0 +1,235 @@ +/* + _ __ _ __ +| | / /___ _(_) /____ +| | /| / / __ `/ / / ___/ +| |/ |/ / /_/ / / (__ ) +|__/|__/\__,_/_/_/____/ +The electron alternative for Go +(c) Lea Anthony 2019-present +*/ + +export interface Position { + x: number; + y: number; +} + +export interface Size { + w: number; + h: number; +} + +export interface Screen { + isCurrent: boolean; + isPrimary: boolean; + width : number + height : number +} + +// Environment information such as platform, buildtype, ... +export interface EnvironmentInfo { + buildType: string; + platform: string; + arch: string; +} + +// [EventsEmit](https://wails.io/docs/reference/runtime/events#eventsemit) +// emits the given event. Optional data may be passed with the event. +// This will trigger any event listeners. +export function EventsEmit(eventName: string, ...data: any): void; + +// [EventsOn](https://wails.io/docs/reference/runtime/events#eventson) sets up a listener for the given event name. +export function EventsOn(eventName: string, callback: (...data: any) => void): () => void; + +// [EventsOnMultiple](https://wails.io/docs/reference/runtime/events#eventsonmultiple) +// sets up a listener for the given event name, but will only trigger a given number times. +export function EventsOnMultiple(eventName: string, callback: (...data: any) => void, maxCallbacks: number): () => void; + +// [EventsOnce](https://wails.io/docs/reference/runtime/events#eventsonce) +// sets up a listener for the given event name, but will only trigger once. +export function EventsOnce(eventName: string, callback: (...data: any) => void): () => void; + +// [EventsOff](https://wails.io/docs/reference/runtime/events#eventsoff) +// unregisters the listener for the given event name. +export function EventsOff(eventName: string, ...additionalEventNames: string[]): void; + +// [EventsOffAll](https://wails.io/docs/reference/runtime/events#eventsoffall) +// unregisters all listeners. +export function EventsOffAll(): void; + +// [LogPrint](https://wails.io/docs/reference/runtime/log#logprint) +// logs the given message as a raw message +export function LogPrint(message: string): void; + +// [LogTrace](https://wails.io/docs/reference/runtime/log#logtrace) +// logs the given message at the `trace` log level. +export function LogTrace(message: string): void; + +// [LogDebug](https://wails.io/docs/reference/runtime/log#logdebug) +// logs the given message at the `debug` log level. +export function LogDebug(message: string): void; + +// [LogError](https://wails.io/docs/reference/runtime/log#logerror) +// logs the given message at the `error` log level. +export function LogError(message: string): void; + +// [LogFatal](https://wails.io/docs/reference/runtime/log#logfatal) +// logs the given message at the `fatal` log level. +// The application will quit after calling this method. +export function LogFatal(message: string): void; + +// [LogInfo](https://wails.io/docs/reference/runtime/log#loginfo) +// logs the given message at the `info` log level. +export function LogInfo(message: string): void; + +// [LogWarning](https://wails.io/docs/reference/runtime/log#logwarning) +// logs the given message at the `warning` log level. +export function LogWarning(message: string): void; + +// [WindowReload](https://wails.io/docs/reference/runtime/window#windowreload) +// Forces a reload by the main application as well as connected browsers. +export function WindowReload(): void; + +// [WindowReloadApp](https://wails.io/docs/reference/runtime/window#windowreloadapp) +// Reloads the application frontend. +export function WindowReloadApp(): void; + +// [WindowSetAlwaysOnTop](https://wails.io/docs/reference/runtime/window#windowsetalwaysontop) +// Sets the window AlwaysOnTop or not on top. +export function WindowSetAlwaysOnTop(b: boolean): void; + +// [WindowSetSystemDefaultTheme](https://wails.io/docs/next/reference/runtime/window#windowsetsystemdefaulttheme) +// *Windows only* +// Sets window theme to system default (dark/light). +export function WindowSetSystemDefaultTheme(): void; + +// [WindowSetLightTheme](https://wails.io/docs/next/reference/runtime/window#windowsetlighttheme) +// *Windows only* +// Sets window to light theme. +export function WindowSetLightTheme(): void; + +// [WindowSetDarkTheme](https://wails.io/docs/next/reference/runtime/window#windowsetdarktheme) +// *Windows only* +// Sets window to dark theme. +export function WindowSetDarkTheme(): void; + +// [WindowCenter](https://wails.io/docs/reference/runtime/window#windowcenter) +// Centers the window on the monitor the window is currently on. +export function WindowCenter(): void; + +// [WindowSetTitle](https://wails.io/docs/reference/runtime/window#windowsettitle) +// Sets the text in the window title bar. +export function WindowSetTitle(title: string): void; + +// [WindowFullscreen](https://wails.io/docs/reference/runtime/window#windowfullscreen) +// Makes the window full screen. +export function WindowFullscreen(): void; + +// [WindowUnfullscreen](https://wails.io/docs/reference/runtime/window#windowunfullscreen) +// Restores the previous window dimensions and position prior to full screen. +export function WindowUnfullscreen(): void; + +// [WindowIsFullscreen](https://wails.io/docs/reference/runtime/window#windowisfullscreen) +// Returns the state of the window, i.e. whether the window is in full screen mode or not. +export function WindowIsFullscreen(): Promise; + +// [WindowSetSize](https://wails.io/docs/reference/runtime/window#windowsetsize) +// Sets the width and height of the window. +export function WindowSetSize(width: number, height: number): Promise; + +// [WindowGetSize](https://wails.io/docs/reference/runtime/window#windowgetsize) +// Gets the width and height of the window. +export function WindowGetSize(): Promise; + +// [WindowSetMaxSize](https://wails.io/docs/reference/runtime/window#windowsetmaxsize) +// Sets the maximum window size. Will resize the window if the window is currently larger than the given dimensions. +// Setting a size of 0,0 will disable this constraint. +export function WindowSetMaxSize(width: number, height: number): void; + +// [WindowSetMinSize](https://wails.io/docs/reference/runtime/window#windowsetminsize) +// Sets the minimum window size. Will resize the window if the window is currently smaller than the given dimensions. +// Setting a size of 0,0 will disable this constraint. +export function WindowSetMinSize(width: number, height: number): void; + +// [WindowSetPosition](https://wails.io/docs/reference/runtime/window#windowsetposition) +// Sets the window position relative to the monitor the window is currently on. +export function WindowSetPosition(x: number, y: number): void; + +// [WindowGetPosition](https://wails.io/docs/reference/runtime/window#windowgetposition) +// Gets the window position relative to the monitor the window is currently on. +export function WindowGetPosition(): Promise; + +// [WindowHide](https://wails.io/docs/reference/runtime/window#windowhide) +// Hides the window. +export function WindowHide(): void; + +// [WindowShow](https://wails.io/docs/reference/runtime/window#windowshow) +// Shows the window, if it is currently hidden. +export function WindowShow(): void; + +// [WindowMaximise](https://wails.io/docs/reference/runtime/window#windowmaximise) +// Maximises the window to fill the screen. +export function WindowMaximise(): void; + +// [WindowToggleMaximise](https://wails.io/docs/reference/runtime/window#windowtogglemaximise) +// Toggles between Maximised and UnMaximised. +export function WindowToggleMaximise(): void; + +// [WindowUnmaximise](https://wails.io/docs/reference/runtime/window#windowunmaximise) +// Restores the window to the dimensions and position prior to maximising. +export function WindowUnmaximise(): void; + +// [WindowIsMaximised](https://wails.io/docs/reference/runtime/window#windowismaximised) +// Returns the state of the window, i.e. whether the window is maximised or not. +export function WindowIsMaximised(): Promise; + +// [WindowMinimise](https://wails.io/docs/reference/runtime/window#windowminimise) +// Minimises the window. +export function WindowMinimise(): void; + +// [WindowUnminimise](https://wails.io/docs/reference/runtime/window#windowunminimise) +// Restores the window to the dimensions and position prior to minimising. +export function WindowUnminimise(): void; + +// [WindowIsMinimised](https://wails.io/docs/reference/runtime/window#windowisminimised) +// Returns the state of the window, i.e. whether the window is minimised or not. +export function WindowIsMinimised(): Promise; + +// [WindowIsNormal](https://wails.io/docs/reference/runtime/window#windowisnormal) +// Returns the state of the window, i.e. whether the window is normal or not. +export function WindowIsNormal(): Promise; + +// [WindowSetBackgroundColour](https://wails.io/docs/reference/runtime/window#windowsetbackgroundcolour) +// Sets the background colour of the window to the given RGBA colour definition. This colour will show through for all transparent pixels. +export function WindowSetBackgroundColour(R: number, G: number, B: number, A: number): void; + +// [ScreenGetAll](https://wails.io/docs/reference/runtime/window#screengetall) +// Gets the all screens. Call this anew each time you want to refresh data from the underlying windowing system. +export function ScreenGetAll(): Promise; + +// [BrowserOpenURL](https://wails.io/docs/reference/runtime/browser#browseropenurl) +// Opens the given URL in the system browser. +export function BrowserOpenURL(url: string): void; + +// [Environment](https://wails.io/docs/reference/runtime/intro#environment) +// Returns information about the environment +export function Environment(): Promise; + +// [Quit](https://wails.io/docs/reference/runtime/intro#quit) +// Quits the application. +export function Quit(): void; + +// [Hide](https://wails.io/docs/reference/runtime/intro#hide) +// Hides the application. +export function Hide(): void; + +// [Show](https://wails.io/docs/reference/runtime/intro#show) +// Shows the application. +export function Show(): void; + +// [ClipboardGetText](https://wails.io/docs/reference/runtime/clipboard#clipboardgettext) +// Returns the current text stored on clipboard +export function ClipboardGetText(): Promise; + +// [ClipboardSetText](https://wails.io/docs/reference/runtime/clipboard#clipboardsettext) +// Sets a text on the clipboard +export function ClipboardSetText(text: string): Promise; diff --git a/pkg/ui/web/wailsjs/runtime/runtime.js b/pkg/ui/web/wailsjs/runtime/runtime.js new file mode 100755 index 00000000..bd4f371a --- /dev/null +++ b/pkg/ui/web/wailsjs/runtime/runtime.js @@ -0,0 +1,202 @@ +/* + _ __ _ __ +| | / /___ _(_) /____ +| | /| / / __ `/ / / ___/ +| |/ |/ / /_/ / / (__ ) +|__/|__/\__,_/_/_/____/ +The electron alternative for Go +(c) Lea Anthony 2019-present +*/ + +export function LogPrint(message) { + window.runtime.LogPrint(message); +} + +export function LogTrace(message) { + window.runtime.LogTrace(message); +} + +export function LogDebug(message) { + window.runtime.LogDebug(message); +} + +export function LogInfo(message) { + window.runtime.LogInfo(message); +} + +export function LogWarning(message) { + window.runtime.LogWarning(message); +} + +export function LogError(message) { + window.runtime.LogError(message); +} + +export function LogFatal(message) { + window.runtime.LogFatal(message); +} + +export function EventsOnMultiple(eventName, callback, maxCallbacks) { + return window.runtime.EventsOnMultiple(eventName, callback, maxCallbacks); +} + +export function EventsOn(eventName, callback) { + return EventsOnMultiple(eventName, callback, -1); +} + +export function EventsOff(eventName, ...additionalEventNames) { + return window.runtime.EventsOff(eventName, ...additionalEventNames); +} + +export function EventsOnce(eventName, callback) { + return EventsOnMultiple(eventName, callback, 1); +} + +export function EventsEmit(eventName) { + let args = [eventName].slice.call(arguments); + return window.runtime.EventsEmit.apply(null, args); +} + +export function WindowReload() { + window.runtime.WindowReload(); +} + +export function WindowReloadApp() { + window.runtime.WindowReloadApp(); +} + +export function WindowSetAlwaysOnTop(b) { + window.runtime.WindowSetAlwaysOnTop(b); +} + +export function WindowSetSystemDefaultTheme() { + window.runtime.WindowSetSystemDefaultTheme(); +} + +export function WindowSetLightTheme() { + window.runtime.WindowSetLightTheme(); +} + +export function WindowSetDarkTheme() { + window.runtime.WindowSetDarkTheme(); +} + +export function WindowCenter() { + window.runtime.WindowCenter(); +} + +export function WindowSetTitle(title) { + window.runtime.WindowSetTitle(title); +} + +export function WindowFullscreen() { + window.runtime.WindowFullscreen(); +} + +export function WindowUnfullscreen() { + window.runtime.WindowUnfullscreen(); +} + +export function WindowIsFullscreen() { + return window.runtime.WindowIsFullscreen(); +} + +export function WindowGetSize() { + return window.runtime.WindowGetSize(); +} + +export function WindowSetSize(width, height) { + window.runtime.WindowSetSize(width, height); +} + +export function WindowSetMaxSize(width, height) { + window.runtime.WindowSetMaxSize(width, height); +} + +export function WindowSetMinSize(width, height) { + window.runtime.WindowSetMinSize(width, height); +} + +export function WindowSetPosition(x, y) { + window.runtime.WindowSetPosition(x, y); +} + +export function WindowGetPosition() { + return window.runtime.WindowGetPosition(); +} + +export function WindowHide() { + window.runtime.WindowHide(); +} + +export function WindowShow() { + window.runtime.WindowShow(); +} + +export function WindowMaximise() { + window.runtime.WindowMaximise(); +} + +export function WindowToggleMaximise() { + window.runtime.WindowToggleMaximise(); +} + +export function WindowUnmaximise() { + window.runtime.WindowUnmaximise(); +} + +export function WindowIsMaximised() { + return window.runtime.WindowIsMaximised(); +} + +export function WindowMinimise() { + window.runtime.WindowMinimise(); +} + +export function WindowUnminimise() { + window.runtime.WindowUnminimise(); +} + +export function WindowSetBackgroundColour(R, G, B, A) { + window.runtime.WindowSetBackgroundColour(R, G, B, A); +} + +export function ScreenGetAll() { + return window.runtime.ScreenGetAll(); +} + +export function WindowIsMinimised() { + return window.runtime.WindowIsMinimised(); +} + +export function WindowIsNormal() { + return window.runtime.WindowIsNormal(); +} + +export function BrowserOpenURL(url) { + window.runtime.BrowserOpenURL(url); +} + +export function Environment() { + return window.runtime.Environment(); +} + +export function Quit() { + window.runtime.Quit(); +} + +export function Hide() { + window.runtime.Hide(); +} + +export function Show() { + window.runtime.Show(); +} + +export function ClipboardGetText() { + return window.runtime.ClipboardGetText(); +} + +export function ClipboardSetText(text) { + return window.runtime.ClipboardSetText(text); +} \ No newline at end of file diff --git a/pkg/ui/web/yarn.lock b/pkg/ui/web/yarn.lock new file mode 100644 index 00000000..4f2b311b --- /dev/null +++ b/pkg/ui/web/yarn.lock @@ -0,0 +1,11336 @@ +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + +__metadata: + version: 6 + cacheKey: 8 + +"@absinthe/socket-apollo-link@npm:0.2.1": + version: 0.2.1 + resolution: "@absinthe/socket-apollo-link@npm:0.2.1" + dependencies: + "@absinthe/socket": 0.2.1 + "@babel/runtime": 7.2.0 + apollo-link: 1.2.5 + core-js: 2.6.0 + flow-static-land: 0.2.8 + graphql: 14.0.2 + zen-observable: 0.8.11 + checksum: 238c276a8995e6a316561aeb43eb1b36da8b778ccc4cb556d6ddbfd75b233b359dbdf3c957823234b13194d357ae7536d93848689767896787ba3c360e33e2ec + languageName: node + linkType: hard + +"@absinthe/socket@npm:0.2.1": + version: 0.2.1 + resolution: "@absinthe/socket@npm:0.2.1" + dependencies: + "@babel/runtime": 7.2.0 + "@jumpn/utils-array": 0.3.4 + "@jumpn/utils-composite": 0.7.0 + "@jumpn/utils-graphql": 0.6.0 + core-js: 2.6.0 + zen-observable: 0.8.11 + peerDependencies: + phoenix: ^1.4.0 + checksum: c9601b18f5036b123a82b5c59fbb2ca3c8031ccb510d1cf70e0dda5fcba88979886caff1fc4c8590ab2e8c8e98004a37421d404261343351adab7ec6ef1f82fd + languageName: node + linkType: hard + +"@ampproject/remapping@npm:^2.1.0, @ampproject/remapping@npm:^2.2.0": + version: 2.2.0 + resolution: "@ampproject/remapping@npm:2.2.0" + dependencies: + "@jridgewell/gen-mapping": ^0.1.0 + "@jridgewell/trace-mapping": ^0.3.9 + checksum: d74d170d06468913921d72430259424b7e4c826b5a7d39ff839a29d547efb97dc577caa8ba3fb5cf023624e9af9d09651afc3d4112a45e2050328abc9b3a2292 + languageName: node + linkType: hard + +"@apollo/client@npm:3.7.10": + version: 3.7.10 + resolution: "@apollo/client@npm:3.7.10" + dependencies: + "@graphql-typed-document-node/core": ^3.1.1 + "@wry/context": ^0.7.0 + "@wry/equality": ^0.5.0 + "@wry/trie": ^0.3.0 + graphql-tag: ^2.12.6 + hoist-non-react-statics: ^3.3.2 + optimism: ^0.16.1 + prop-types: ^15.7.2 + response-iterator: ^0.2.6 + symbol-observable: ^4.0.0 + ts-invariant: ^0.10.3 + tslib: ^2.3.0 + zen-observable-ts: ^1.2.5 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + graphql-ws: ^5.5.5 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.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 + checksum: d74a68f8042e76e3a81990c79a89aefc07c8899d354f3b469591356508001005106bba0fa953652c3ec19756d44bdec6730ac98f62fa836bd76acbcb7eff42ce + languageName: node + linkType: hard + +"@ardatan/relay-compiler@npm:12.0.0": + version: 12.0.0 + resolution: "@ardatan/relay-compiler@npm:12.0.0" + dependencies: + "@babel/core": ^7.14.0 + "@babel/generator": ^7.14.0 + "@babel/parser": ^7.14.0 + "@babel/runtime": ^7.0.0 + "@babel/traverse": ^7.14.0 + "@babel/types": ^7.0.0 + babel-preset-fbjs: ^3.4.0 + chalk: ^4.0.0 + fb-watchman: ^2.0.0 + fbjs: ^3.0.0 + glob: ^7.1.1 + immutable: ~3.7.6 + invariant: ^2.2.4 + nullthrows: ^1.1.1 + relay-runtime: 12.0.0 + signedsource: ^1.0.0 + yargs: ^15.3.1 + peerDependencies: + graphql: "*" + bin: + relay-compiler: bin/relay-compiler + checksum: f0cec120d02961ee8652e0dde72d9e425bc97cad5d0f767d8764cfd30952294eb2838432f33e4da8bb6999d0c13dcd1df128280666bfea373294d98aa8033ae7 + languageName: node + linkType: hard + +"@ardatan/sync-fetch@npm:^0.0.1": + version: 0.0.1 + resolution: "@ardatan/sync-fetch@npm:0.0.1" + dependencies: + node-fetch: ^2.6.1 + checksum: af39bdfb4c2b35bd2c6acc540a5e302730dae17e73d3a18cd1a4aa50c1c741cb1869dffdef1379c491da5ad2e3cfa2bf3a8064e6046c12b46c6a97f54f100a8d + languageName: node + linkType: hard + +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/code-frame@npm:7.18.6" + dependencies: + "@babel/highlight": ^7.18.6 + checksum: 195e2be3172d7684bf95cff69ae3b7a15a9841ea9d27d3c843662d50cdd7d6470fd9c8e64be84d031117e4a4083486effba39f9aef6bbb2c89f7f21bcfba33ba + languageName: node + linkType: hard + +"@babel/compat-data@npm:^7.17.7, @babel/compat-data@npm:^7.20.1, @babel/compat-data@npm:^7.20.5": + version: 7.21.0 + resolution: "@babel/compat-data@npm:7.21.0" + checksum: dbf632c532f9c75ba0be7d1dc9f6cd3582501af52f10a6b90415d634ec5878735bd46064c91673b10317af94d4cc99c4da5bd9d955978cdccb7905fc33291e4d + languageName: node + linkType: hard + +"@babel/core@npm:7.20.12": + version: 7.20.12 + resolution: "@babel/core@npm:7.20.12" + dependencies: + "@ampproject/remapping": ^2.1.0 + "@babel/code-frame": ^7.18.6 + "@babel/generator": ^7.20.7 + "@babel/helper-compilation-targets": ^7.20.7 + "@babel/helper-module-transforms": ^7.20.11 + "@babel/helpers": ^7.20.7 + "@babel/parser": ^7.20.7 + "@babel/template": ^7.20.7 + "@babel/traverse": ^7.20.12 + "@babel/types": ^7.20.7 + convert-source-map: ^1.7.0 + debug: ^4.1.0 + gensync: ^1.0.0-beta.2 + json5: ^2.2.2 + semver: ^6.3.0 + checksum: 62e6c3e2149a70b5c9729ef5f0d3e2e97e9dcde89fc039c8d8e3463d5d7ba9b29ee84d10faf79b61532ac1645aa62f2bd42338320617e6e3a8a4d8e2a27076e7 + languageName: node + linkType: hard + +"@babel/core@npm:^7.14.0, @babel/core@npm:^7.20.12": + version: 7.21.3 + resolution: "@babel/core@npm:7.21.3" + dependencies: + "@ampproject/remapping": ^2.2.0 + "@babel/code-frame": ^7.18.6 + "@babel/generator": ^7.21.3 + "@babel/helper-compilation-targets": ^7.20.7 + "@babel/helper-module-transforms": ^7.21.2 + "@babel/helpers": ^7.21.0 + "@babel/parser": ^7.21.3 + "@babel/template": ^7.20.7 + "@babel/traverse": ^7.21.3 + "@babel/types": ^7.21.3 + convert-source-map: ^1.7.0 + debug: ^4.1.0 + gensync: ^1.0.0-beta.2 + json5: ^2.2.2 + semver: ^6.3.0 + checksum: bef25fbea96f461bf79bd1d0e4f0cdce679fd5ada464a89c1141ddba59ae1adfdbb23e04440c266ed525712d33d5ffd818cd8b0c25b1dee0e648d5559516153a + languageName: node + linkType: hard + +"@babel/eslint-parser@npm:7.19.1": + version: 7.19.1 + resolution: "@babel/eslint-parser@npm:7.19.1" + dependencies: + "@nicolo-ribaudo/eslint-scope-5-internals": 5.1.1-v1 + eslint-visitor-keys: ^2.1.0 + semver: ^6.3.0 + peerDependencies: + "@babel/core": ">=7.11.0" + eslint: ^7.5.0 || ^8.0.0 + checksum: 6d5360f62f25ed097250657deb1bc4c4f51a5f5f2fe456e98cda13727753fdf7a11a109b4cfa03ef0dd6ced3beaeb703b76193c1141e29434d1f91f1bac0517d + languageName: node + linkType: hard + +"@babel/generator@npm:^7.14.0, @babel/generator@npm:^7.18.13, @babel/generator@npm:^7.20.7, @babel/generator@npm:^7.21.3": + version: 7.21.3 + resolution: "@babel/generator@npm:7.21.3" + dependencies: + "@babel/types": ^7.21.3 + "@jridgewell/gen-mapping": ^0.3.2 + "@jridgewell/trace-mapping": ^0.3.17 + jsesc: ^2.5.1 + checksum: be6bb5a32a0273260b91210d4137b7b5da148a2db8dd324654275cb0af865ae59de5e1536e93ac83423b2586415059e1c24cf94293026755cf995757238da749 + languageName: node + linkType: hard + +"@babel/generator@npm:^7.21.1": + version: 7.21.1 + resolution: "@babel/generator@npm:7.21.1" + dependencies: + "@babel/types": ^7.21.0 + "@jridgewell/gen-mapping": ^0.3.2 + "@jridgewell/trace-mapping": ^0.3.17 + jsesc: ^2.5.1 + checksum: 69085a211ff91a7a608ee3f86e6fcb9cf5e724b756d792a713b0c328a671cd3e423e1ef1b12533f366baba0616caffe0a7ba9d328727eab484de5961badbef00 + languageName: node + linkType: hard + +"@babel/helper-annotate-as-pure@npm:^7.16.0, @babel/helper-annotate-as-pure@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/helper-annotate-as-pure@npm:7.18.6" + dependencies: + "@babel/types": ^7.18.6 + checksum: 88ccd15ced475ef2243fdd3b2916a29ea54c5db3cd0cfabf9d1d29ff6e63b7f7cd1c27264137d7a40ac2e978b9b9a542c332e78f40eb72abe737a7400788fc1b + languageName: node + linkType: hard + +"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.18.6": + version: 7.18.9 + resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.18.9" + dependencies: + "@babel/helper-explode-assignable-expression": ^7.18.6 + "@babel/types": ^7.18.9 + checksum: b4bc214cb56329daff6cc18a7f7a26aeafb55a1242e5362f3d47fe3808421f8c7cd91fff95d6b9b7ccb67e14e5a67d944e49dbe026942bfcbfda19b1c72a8e72 + languageName: node + linkType: hard + +"@babel/helper-compilation-targets@npm:^7.17.7, @babel/helper-compilation-targets@npm:^7.18.9, @babel/helper-compilation-targets@npm:^7.20.0, @babel/helper-compilation-targets@npm:^7.20.7": + version: 7.20.7 + resolution: "@babel/helper-compilation-targets@npm:7.20.7" + dependencies: + "@babel/compat-data": ^7.20.5 + "@babel/helper-validator-option": ^7.18.6 + browserslist: ^4.21.3 + lru-cache: ^5.1.1 + semver: ^6.3.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 8c32c873ba86e2e1805b30e0807abd07188acbe00ebb97576f0b09061cc65007f1312b589eccb4349c5a8c7f8bb9f2ab199d41da7030bf103d9f347dcd3a3cf4 + languageName: node + linkType: hard + +"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.21.0": + version: 7.21.0 + resolution: "@babel/helper-create-class-features-plugin@npm:7.21.0" + dependencies: + "@babel/helper-annotate-as-pure": ^7.18.6 + "@babel/helper-environment-visitor": ^7.18.9 + "@babel/helper-function-name": ^7.21.0 + "@babel/helper-member-expression-to-functions": ^7.21.0 + "@babel/helper-optimise-call-expression": ^7.18.6 + "@babel/helper-replace-supers": ^7.20.7 + "@babel/helper-skip-transparent-expression-wrappers": ^7.20.0 + "@babel/helper-split-export-declaration": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 3e781d91d1056ea9b3a0395f3017492594a8b86899119b4a1645227c31727b8bec9bc8f6b72e86b1c5cf2dd6690893d2e8c5baff4974c429e616ead089552a21 + languageName: node + linkType: hard + +"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.20.5": + version: 7.21.0 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.21.0" + dependencies: + "@babel/helper-annotate-as-pure": ^7.18.6 + regexpu-core: ^5.3.1 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 63a6396a4e9444edc7e97617845583ea5cf059573d0b4cc566869f38576d543e37fde0edfcc21d6dfb7962ed241e909561714dc41c5213198bac04e0983b04f2 + languageName: node + linkType: hard + +"@babel/helper-define-polyfill-provider@npm:^0.3.3": + version: 0.3.3 + resolution: "@babel/helper-define-polyfill-provider@npm:0.3.3" + dependencies: + "@babel/helper-compilation-targets": ^7.17.7 + "@babel/helper-plugin-utils": ^7.16.7 + debug: ^4.1.1 + lodash.debounce: ^4.0.8 + resolve: ^1.14.2 + semver: ^6.1.2 + peerDependencies: + "@babel/core": ^7.4.0-0 + checksum: 8e3fe75513302e34f6d92bd67b53890e8545e6c5bca8fe757b9979f09d68d7e259f6daea90dc9e01e332c4f8781bda31c5fe551c82a277f9bc0bec007aed497c + languageName: node + linkType: hard + +"@babel/helper-environment-visitor@npm:^7.18.9": + version: 7.18.9 + resolution: "@babel/helper-environment-visitor@npm:7.18.9" + checksum: b25101f6162ddca2d12da73942c08ad203d7668e06663df685634a8fde54a98bc015f6f62938e8554457a592a024108d45b8f3e651fd6dcdb877275b73cc4420 + languageName: node + linkType: hard + +"@babel/helper-explode-assignable-expression@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/helper-explode-assignable-expression@npm:7.18.6" + dependencies: + "@babel/types": ^7.18.6 + checksum: 225cfcc3376a8799023d15dc95000609e9d4e7547b29528c7f7111a0e05493ffb12c15d70d379a0bb32d42752f340233c4115bded6d299bc0c3ab7a12be3d30f + languageName: node + linkType: hard + +"@babel/helper-function-name@npm:^7.18.9, @babel/helper-function-name@npm:^7.19.0, @babel/helper-function-name@npm:^7.21.0": + version: 7.21.0 + resolution: "@babel/helper-function-name@npm:7.21.0" + dependencies: + "@babel/template": ^7.20.7 + "@babel/types": ^7.21.0 + checksum: d63e63c3e0e3e8b3138fa47b0cd321148a300ef12b8ee951196994dcd2a492cc708aeda94c2c53759a5c9177fffaac0fd8778791286746f72a000976968daf4e + languageName: node + linkType: hard + +"@babel/helper-hoist-variables@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/helper-hoist-variables@npm:7.18.6" + dependencies: + "@babel/types": ^7.18.6 + checksum: fd9c35bb435fda802bf9ff7b6f2df06308a21277c6dec2120a35b09f9de68f68a33972e2c15505c1a1a04b36ec64c9ace97d4a9e26d6097b76b4396b7c5fa20f + languageName: node + linkType: hard + +"@babel/helper-member-expression-to-functions@npm:^7.20.7, @babel/helper-member-expression-to-functions@npm:^7.21.0": + version: 7.21.0 + resolution: "@babel/helper-member-expression-to-functions@npm:7.21.0" + dependencies: + "@babel/types": ^7.21.0 + checksum: 49cbb865098195fe82ba22da3a8fe630cde30dcd8ebf8ad5f9a24a2b685150c6711419879cf9d99b94dad24cff9244d8c2a890d3d7ec75502cd01fe58cff5b5d + languageName: node + linkType: hard + +"@babel/helper-module-imports@npm:^7.0.0, @babel/helper-module-imports@npm:^7.16.0, @babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/helper-module-imports@npm:7.18.6" + dependencies: + "@babel/types": ^7.18.6 + checksum: f393f8a3b3304b1b7a288a38c10989de754f01d29caf62ce7c4e5835daf0a27b81f3ac687d9d2780d39685aae7b55267324b512150e7b2be967b0c493b6a1def + languageName: node + linkType: hard + +"@babel/helper-module-transforms@npm:^7.18.6, @babel/helper-module-transforms@npm:^7.20.11, @babel/helper-module-transforms@npm:^7.21.2": + version: 7.21.2 + resolution: "@babel/helper-module-transforms@npm:7.21.2" + dependencies: + "@babel/helper-environment-visitor": ^7.18.9 + "@babel/helper-module-imports": ^7.18.6 + "@babel/helper-simple-access": ^7.20.2 + "@babel/helper-split-export-declaration": ^7.18.6 + "@babel/helper-validator-identifier": ^7.19.1 + "@babel/template": ^7.20.7 + "@babel/traverse": ^7.21.2 + "@babel/types": ^7.21.2 + checksum: 8a1c129a4f90bdf97d8b6e7861732c9580f48f877aaaafbc376ce2482febebcb8daaa1de8bc91676d12886487603f8c62a44f9e90ee76d6cac7f9225b26a49e1 + languageName: node + linkType: hard + +"@babel/helper-optimise-call-expression@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/helper-optimise-call-expression@npm:7.18.6" + dependencies: + "@babel/types": ^7.18.6 + checksum: e518fe8418571405e21644cfb39cf694f30b6c47b10b006609a92469ae8b8775cbff56f0b19732343e2ea910641091c5a2dc73b56ceba04e116a33b0f8bd2fbd + languageName: node + linkType: hard + +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.16.7, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.18.9, @babel/helper-plugin-utils@npm:^7.19.0, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": + version: 7.20.2 + resolution: "@babel/helper-plugin-utils@npm:7.20.2" + checksum: f6cae53b7fdb1bf3abd50fa61b10b4470985b400cc794d92635da1e7077bb19729f626adc0741b69403d9b6e411cddddb9c0157a709cc7c4eeb41e663be5d74b + languageName: node + linkType: hard + +"@babel/helper-remap-async-to-generator@npm:^7.18.9": + version: 7.18.9 + resolution: "@babel/helper-remap-async-to-generator@npm:7.18.9" + dependencies: + "@babel/helper-annotate-as-pure": ^7.18.6 + "@babel/helper-environment-visitor": ^7.18.9 + "@babel/helper-wrap-function": ^7.18.9 + "@babel/types": ^7.18.9 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 4be6076192308671b046245899b703ba090dbe7ad03e0bea897bb2944ae5b88e5e85853c9d1f83f643474b54c578d8ac0800b80341a86e8538264a725fbbefec + languageName: node + linkType: hard + +"@babel/helper-replace-supers@npm:^7.18.6, @babel/helper-replace-supers@npm:^7.20.7": + version: 7.20.7 + resolution: "@babel/helper-replace-supers@npm:7.20.7" + dependencies: + "@babel/helper-environment-visitor": ^7.18.9 + "@babel/helper-member-expression-to-functions": ^7.20.7 + "@babel/helper-optimise-call-expression": ^7.18.6 + "@babel/template": ^7.20.7 + "@babel/traverse": ^7.20.7 + "@babel/types": ^7.20.7 + checksum: b8e0087c9b0c1446e3c6f3f72b73b7e03559c6b570e2cfbe62c738676d9ebd8c369a708cf1a564ef88113b4330750a50232ee1131d303d478b7a5e65e46fbc7c + languageName: node + linkType: hard + +"@babel/helper-simple-access@npm:^7.20.2": + version: 7.20.2 + resolution: "@babel/helper-simple-access@npm:7.20.2" + dependencies: + "@babel/types": ^7.20.2 + checksum: ad1e96ee2e5f654ffee2369a586e5e8d2722bf2d8b028a121b4c33ebae47253f64d420157b9f0a8927aea3a9e0f18c0103e74fdd531815cf3650a0a4adca11a1 + languageName: node + linkType: hard + +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.20.0": + version: 7.20.0 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.20.0" + dependencies: + "@babel/types": ^7.20.0 + checksum: 34da8c832d1c8a546e45d5c1d59755459ffe43629436707079989599b91e8c19e50e73af7a4bd09c95402d389266731b0d9c5f69e372d8ebd3a709c05c80d7dd + languageName: node + linkType: hard + +"@babel/helper-split-export-declaration@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/helper-split-export-declaration@npm:7.18.6" + dependencies: + "@babel/types": ^7.18.6 + checksum: c6d3dede53878f6be1d869e03e9ffbbb36f4897c7cc1527dc96c56d127d834ffe4520a6f7e467f5b6f3c2843ea0e81a7819d66ae02f707f6ac057f3d57943a2b + languageName: node + linkType: hard + +"@babel/helper-string-parser@npm:^7.19.4": + version: 7.19.4 + resolution: "@babel/helper-string-parser@npm:7.19.4" + checksum: b2f8a3920b30dfac81ec282ac4ad9598ea170648f8254b10f475abe6d944808fb006aab325d3eb5a8ad3bea8dfa888cfa6ef471050dae5748497c110ec060943 + languageName: node + linkType: hard + +"@babel/helper-validator-identifier@npm:^7.18.6, @babel/helper-validator-identifier@npm:^7.19.1": + version: 7.19.1 + resolution: "@babel/helper-validator-identifier@npm:7.19.1" + checksum: 0eca5e86a729162af569b46c6c41a63e18b43dbe09fda1d2a3c8924f7d617116af39cac5e4cd5d431bb760b4dca3c0970e0c444789b1db42bcf1fa41fbad0a3a + languageName: node + linkType: hard + +"@babel/helper-validator-option@npm:^7.18.6": + version: 7.21.0 + resolution: "@babel/helper-validator-option@npm:7.21.0" + checksum: 8ece4c78ffa5461fd8ab6b6e57cc51afad59df08192ed5d84b475af4a7193fc1cb794b59e3e7be64f3cdc4df7ac78bf3dbb20c129d7757ae078e6279ff8c2f07 + languageName: node + linkType: hard + +"@babel/helper-wrap-function@npm:^7.18.9": + version: 7.20.5 + resolution: "@babel/helper-wrap-function@npm:7.20.5" + dependencies: + "@babel/helper-function-name": ^7.19.0 + "@babel/template": ^7.18.10 + "@babel/traverse": ^7.20.5 + "@babel/types": ^7.20.5 + checksum: 11a6fc28334368a193a9cb3ad16f29cd7603bab958433efc82ebe59fa6556c227faa24f07ce43983f7a85df826f71d441638442c4315e90a554fe0a70ca5005b + languageName: node + linkType: hard + +"@babel/helpers@npm:^7.20.7, @babel/helpers@npm:^7.21.0": + version: 7.21.0 + resolution: "@babel/helpers@npm:7.21.0" + dependencies: + "@babel/template": ^7.20.7 + "@babel/traverse": ^7.21.0 + "@babel/types": ^7.21.0 + checksum: 9370dad2bb665c551869a08ac87c8bdafad53dbcdce1f5c5d498f51811456a3c005d9857562715151a0f00b2e912ac8d89f56574f837b5689f5f5072221cdf54 + languageName: node + linkType: hard + +"@babel/highlight@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/highlight@npm:7.18.6" + dependencies: + "@babel/helper-validator-identifier": ^7.18.6 + chalk: ^2.0.0 + js-tokens: ^4.0.0 + checksum: 92d8ee61549de5ff5120e945e774728e5ccd57fd3b2ed6eace020ec744823d4a98e242be1453d21764a30a14769ecd62170fba28539b211799bbaf232bbb2789 + languageName: node + linkType: hard + +"@babel/parser@npm:^7.14.0, @babel/parser@npm:^7.16.8, @babel/parser@npm:^7.21.3": + version: 7.21.3 + resolution: "@babel/parser@npm:7.21.3" + bin: + parser: ./bin/babel-parser.js + checksum: a71e6456a1260c2a943736b56cc0acdf5f2a53c6c79e545f56618967e51f9b710d1d3359264e7c979313a7153741b1d95ad8860834cc2ab4ce4f428b13cc07be + languageName: node + linkType: hard + +"@babel/parser@npm:^7.20.7, @babel/parser@npm:^7.21.2": + version: 7.21.2 + resolution: "@babel/parser@npm:7.21.2" + bin: + parser: ./bin/babel-parser.js + checksum: e2b89de2c63d4cdd2cafeaea34f389bba729727eec7a8728f736bc472a59396059e3e9fe322c9bed8fd126d201fb609712949dc8783f4cae4806acd9a73da6ff + languageName: node + linkType: hard + +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 845bd280c55a6a91d232cfa54eaf9708ec71e594676fe705794f494bb8b711d833b752b59d1a5c154695225880c23dbc9cab0e53af16fd57807976cd3ff41b8d + languageName: node + linkType: hard + +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.18.9": + version: 7.20.7 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.20.7" + dependencies: + "@babel/helper-plugin-utils": ^7.20.2 + "@babel/helper-skip-transparent-expression-wrappers": ^7.20.0 + "@babel/plugin-proposal-optional-chaining": ^7.20.7 + peerDependencies: + "@babel/core": ^7.13.0 + checksum: d610f532210bee5342f5b44a12395ccc6d904e675a297189bc1e401cc185beec09873da523466d7fec34ae1574f7a384235cba1ccc9fe7b89ba094167897c845 + languageName: node + linkType: hard + +"@babel/plugin-proposal-async-generator-functions@npm:^7.20.1": + version: 7.20.7 + resolution: "@babel/plugin-proposal-async-generator-functions@npm:7.20.7" + dependencies: + "@babel/helper-environment-visitor": ^7.18.9 + "@babel/helper-plugin-utils": ^7.20.2 + "@babel/helper-remap-async-to-generator": ^7.18.9 + "@babel/plugin-syntax-async-generators": ^7.8.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 111109ee118c9e69982f08d5e119eab04190b36a0f40e22e873802d941956eee66d2aa5a15f5321e51e3f9aa70a91136451b987fe15185ef8cc547ac88937723 + languageName: node + linkType: hard + +"@babel/plugin-proposal-class-properties@npm:^7.0.0, @babel/plugin-proposal-class-properties@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-proposal-class-properties@npm:7.18.6" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 49a78a2773ec0db56e915d9797e44fd079ab8a9b2e1716e0df07c92532f2c65d76aeda9543883916b8e0ff13606afeffa67c5b93d05b607bc87653ad18a91422 + languageName: node + linkType: hard + +"@babel/plugin-proposal-class-static-block@npm:^7.18.6": + version: 7.21.0 + resolution: "@babel/plugin-proposal-class-static-block@npm:7.21.0" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.21.0 + "@babel/helper-plugin-utils": ^7.20.2 + "@babel/plugin-syntax-class-static-block": ^7.14.5 + peerDependencies: + "@babel/core": ^7.12.0 + checksum: 236c0ad089e7a7acab776cc1d355330193314bfcd62e94e78f2df35817c6144d7e0e0368976778afd6b7c13e70b5068fa84d7abbf967d4f182e60d03f9ef802b + languageName: node + linkType: hard + +"@babel/plugin-proposal-dynamic-import@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-proposal-dynamic-import@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + "@babel/plugin-syntax-dynamic-import": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 96b1c8a8ad8171d39e9ab106be33bde37ae09b22fb2c449afee9a5edf3c537933d79d963dcdc2694d10677cb96da739cdf1b53454e6a5deab9801f28a818bb2f + languageName: node + linkType: hard + +"@babel/plugin-proposal-export-namespace-from@npm:^7.18.9": + version: 7.18.9 + resolution: "@babel/plugin-proposal-export-namespace-from@npm:7.18.9" + dependencies: + "@babel/helper-plugin-utils": ^7.18.9 + "@babel/plugin-syntax-export-namespace-from": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 84ff22bacc5d30918a849bfb7e0e90ae4c5b8d8b65f2ac881803d1cf9068dffbe53bd657b0e4bc4c20b4db301b1c85f1e74183cf29a0dd31e964bd4e97c363ef + languageName: node + linkType: hard + +"@babel/plugin-proposal-json-strings@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-proposal-json-strings@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + "@babel/plugin-syntax-json-strings": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 25ba0e6b9d6115174f51f7c6787e96214c90dd4026e266976b248a2ed417fe50fddae72843ffb3cbe324014a18632ce5648dfac77f089da858022b49fd608cb3 + languageName: node + linkType: hard + +"@babel/plugin-proposal-logical-assignment-operators@npm:^7.18.9": + version: 7.20.7 + resolution: "@babel/plugin-proposal-logical-assignment-operators@npm:7.20.7" + dependencies: + "@babel/helper-plugin-utils": ^7.20.2 + "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: cdd7b8136cc4db3f47714d5266f9e7b592a2ac5a94a5878787ce08890e97c8ab1ca8e94b27bfeba7b0f2b1549a026d9fc414ca2196de603df36fb32633bbdc19 + languageName: node + linkType: hard + +"@babel/plugin-proposal-nullish-coalescing-operator@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-proposal-nullish-coalescing-operator@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 949c9ddcdecdaec766ee610ef98f965f928ccc0361dd87cf9f88cf4896a6ccd62fce063d4494778e50da99dea63d270a1be574a62d6ab81cbe9d85884bf55a7d + languageName: node + linkType: hard + +"@babel/plugin-proposal-numeric-separator@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-proposal-numeric-separator@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + "@babel/plugin-syntax-numeric-separator": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: f370ea584c55bf4040e1f78c80b4eeb1ce2e6aaa74f87d1a48266493c33931d0b6222d8cee3a082383d6bb648ab8d6b7147a06f974d3296ef3bc39c7851683ec + languageName: node + linkType: hard + +"@babel/plugin-proposal-object-rest-spread@npm:^7.0.0, @babel/plugin-proposal-object-rest-spread@npm:^7.20.2": + version: 7.20.7 + resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.20.7" + dependencies: + "@babel/compat-data": ^7.20.5 + "@babel/helper-compilation-targets": ^7.20.7 + "@babel/helper-plugin-utils": ^7.20.2 + "@babel/plugin-syntax-object-rest-spread": ^7.8.3 + "@babel/plugin-transform-parameters": ^7.20.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 1329db17009964bc644484c660eab717cb3ca63ac0ab0f67c651a028d1bc2ead51dc4064caea283e46994f1b7221670a35cbc0b4beb6273f55e915494b5aa0b2 + languageName: node + linkType: hard + +"@babel/plugin-proposal-optional-catch-binding@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-proposal-optional-catch-binding@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7b5b39fb5d8d6d14faad6cb68ece5eeb2fd550fb66b5af7d7582402f974f5bc3684641f7c192a5a57e0f59acfae4aada6786be1eba030881ddc590666eff4d1e + languageName: node + linkType: hard + +"@babel/plugin-proposal-optional-chaining@npm:^7.18.9, @babel/plugin-proposal-optional-chaining@npm:^7.20.7": + version: 7.21.0 + resolution: "@babel/plugin-proposal-optional-chaining@npm:7.21.0" + dependencies: + "@babel/helper-plugin-utils": ^7.20.2 + "@babel/helper-skip-transparent-expression-wrappers": ^7.20.0 + "@babel/plugin-syntax-optional-chaining": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 11c5449e01b18bb8881e8e005a577fa7be2fe5688e2382c8822d51f8f7005342a301a46af7b273b1f5645f9a7b894c428eee8526342038a275ef6ba4c8d8d746 + languageName: node + linkType: hard + +"@babel/plugin-proposal-private-methods@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-proposal-private-methods@npm:7.18.6" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 22d8502ee96bca99ad2c8393e8493e2b8d4507576dd054490fd8201a36824373440106f5b098b6d821b026c7e72b0424ff4aeca69ed5f42e48f029d3a156d5ad + languageName: node + linkType: hard + +"@babel/plugin-proposal-private-property-in-object@npm:^7.18.6": + version: 7.21.0 + resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.0" + dependencies: + "@babel/helper-annotate-as-pure": ^7.18.6 + "@babel/helper-create-class-features-plugin": ^7.21.0 + "@babel/helper-plugin-utils": ^7.20.2 + "@babel/plugin-syntax-private-property-in-object": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: add881a6a836635c41d2710551fdf777e2c07c0b691bf2baacc5d658dd64107479df1038680d6e67c468bfc6f36fb8920025d6bac2a1df0a81b867537d40ae78 + languageName: node + linkType: hard + +"@babel/plugin-proposal-unicode-property-regex@npm:^7.18.6, @babel/plugin-proposal-unicode-property-regex@npm:^7.4.4": + version: 7.18.6 + resolution: "@babel/plugin-proposal-unicode-property-regex@npm:7.18.6" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a8575ecb7ff24bf6c6e94808d5c84bb5a0c6dd7892b54f09f4646711ba0ee1e1668032b3c43e3e1dfec2c5716c302e851ac756c1645e15882d73df6ad21ae951 + languageName: node + linkType: hard + +"@babel/plugin-syntax-async-generators@npm:^7.8.4": + version: 7.8.4 + resolution: "@babel/plugin-syntax-async-generators@npm:7.8.4" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7ed1c1d9b9e5b64ef028ea5e755c0be2d4e5e4e3d6cf7df757b9a8c4cfa4193d268176d0f1f7fbecdda6fe722885c7fda681f480f3741d8a2d26854736f05367 + languageName: node + linkType: hard + +"@babel/plugin-syntax-class-properties@npm:^7.0.0, @babel/plugin-syntax-class-properties@npm:^7.12.13": + version: 7.12.13 + resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" + dependencies: + "@babel/helper-plugin-utils": ^7.12.13 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 24f34b196d6342f28d4bad303612d7ff566ab0a013ce89e775d98d6f832969462e7235f3e7eaf17678a533d4be0ba45d3ae34ab4e5a9dcbda5d98d49e5efa2fc + languageName: node + linkType: hard + +"@babel/plugin-syntax-class-static-block@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/plugin-syntax-class-static-block@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 3e80814b5b6d4fe17826093918680a351c2d34398a914ce6e55d8083d72a9bdde4fbaf6a2dcea0e23a03de26dc2917ae3efd603d27099e2b98380345703bf948 + languageName: node + linkType: hard + +"@babel/plugin-syntax-dynamic-import@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ce307af83cf433d4ec42932329fad25fa73138ab39c7436882ea28742e1c0066626d224e0ad2988724c82644e41601cef607b36194f695cb78a1fcdc959637bd + languageName: node + linkType: hard + +"@babel/plugin-syntax-export-namespace-from@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-export-namespace-from@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 85740478be5b0de185228e7814451d74ab8ce0a26fcca7613955262a26e99e8e15e9da58f60c754b84515d4c679b590dbd3f2148f0f58025f4ae706f1c5a5d4a + languageName: node + linkType: hard + +"@babel/plugin-syntax-flow@npm:^7.0.0, @babel/plugin-syntax-flow@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-syntax-flow@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: abe82062b3eef14de7d2b3c0e4fecf80a3e796ca497e9df616d12dd250968abf71495ee85a955b43a6c827137203f0c409450cf792732ed0d6907c806580ea71 + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-assertions@npm:7.20.0, @babel/plugin-syntax-import-assertions@npm:^7.20.0": + version: 7.20.0 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.20.0" + dependencies: + "@babel/helper-plugin-utils": ^7.19.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 6a86220e0aae40164cd3ffaf80e7c076a1be02a8f3480455dddbae05fda8140f429290027604df7a11b3f3f124866e8a6d69dbfa1dda61ee7377b920ad144d5b + languageName: node + linkType: hard + +"@babel/plugin-syntax-json-strings@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-json-strings@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: bf5aea1f3188c9a507e16efe030efb996853ca3cadd6512c51db7233cc58f3ac89ff8c6bdfb01d30843b161cfe7d321e1bf28da82f7ab8d7e6bc5464666f354a + languageName: node + linkType: hard + +"@babel/plugin-syntax-jsx@npm:^7.0.0, @babel/plugin-syntax-jsx@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-syntax-jsx@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 6d37ea972970195f1ffe1a54745ce2ae456e0ac6145fae9aa1480f297248b262ea6ebb93010eddb86ebfacb94f57c05a1fc5d232b9a67325b09060299d515c67 + languageName: node + linkType: hard + +"@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: aff33577037e34e515911255cdbb1fd39efee33658aa00b8a5fd3a4b903585112d037cce1cc9e4632f0487dc554486106b79ccd5ea63a2e00df4363f6d4ff886 + languageName: node + linkType: hard + +"@babel/plugin-syntax-nullish-coalescing-operator@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-nullish-coalescing-operator@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 87aca4918916020d1fedba54c0e232de408df2644a425d153be368313fdde40d96088feed6c4e5ab72aac89be5d07fef2ddf329a15109c5eb65df006bf2580d1 + languageName: node + linkType: hard + +"@babel/plugin-syntax-numeric-separator@npm:^7.10.4": + version: 7.10.4 + resolution: "@babel/plugin-syntax-numeric-separator@npm:7.10.4" + dependencies: + "@babel/helper-plugin-utils": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 01ec5547bd0497f76cc903ff4d6b02abc8c05f301c88d2622b6d834e33a5651aa7c7a3d80d8d57656a4588f7276eba357f6b7e006482f5b564b7a6488de493a1 + languageName: node + linkType: hard + +"@babel/plugin-syntax-object-rest-spread@npm:^7.0.0, @babel/plugin-syntax-object-rest-spread@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-object-rest-spread@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: fddcf581a57f77e80eb6b981b10658421bc321ba5f0a5b754118c6a92a5448f12a0c336f77b8abf734841e102e5126d69110a306eadb03ca3e1547cab31f5cbf + languageName: node + linkType: hard + +"@babel/plugin-syntax-optional-catch-binding@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-optional-catch-binding@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 910d90e72bc90ea1ce698e89c1027fed8845212d5ab588e35ef91f13b93143845f94e2539d831dc8d8ededc14ec02f04f7bd6a8179edd43a326c784e7ed7f0b9 + languageName: node + linkType: hard + +"@babel/plugin-syntax-optional-chaining@npm:^7.8.3": + version: 7.8.3 + resolution: "@babel/plugin-syntax-optional-chaining@npm:7.8.3" + dependencies: + "@babel/helper-plugin-utils": ^7.8.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: eef94d53a1453361553c1f98b68d17782861a04a392840341bc91780838dd4e695209c783631cf0de14c635758beafb6a3a65399846ffa4386bff90639347f30 + languageName: node + linkType: hard + +"@babel/plugin-syntax-private-property-in-object@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/plugin-syntax-private-property-in-object@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b317174783e6e96029b743ccff2a67d63d38756876e7e5d0ba53a322e38d9ca452c13354a57de1ad476b4c066dbae699e0ca157441da611117a47af88985ecda + languageName: node + linkType: hard + +"@babel/plugin-syntax-top-level-await@npm:^7.14.5": + version: 7.14.5 + resolution: "@babel/plugin-syntax-top-level-await@npm:7.14.5" + dependencies: + "@babel/helper-plugin-utils": ^7.14.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: bbd1a56b095be7820029b209677b194db9b1d26691fe999856462e66b25b281f031f3dfd91b1619e9dcf95bebe336211833b854d0fb8780d618e35667c2d0d7e + languageName: node + linkType: hard + +"@babel/plugin-transform-arrow-functions@npm:^7.0.0, @babel/plugin-transform-arrow-functions@npm:^7.18.6": + version: 7.20.7 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.20.7" + dependencies: + "@babel/helper-plugin-utils": ^7.20.2 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b43cabe3790c2de7710abe32df9a30005eddb2050dadd5d122c6872f679e5710e410f1b90c8f99a2aff7b614cccfecf30e7fd310236686f60d3ed43fd80b9847 + languageName: node + linkType: hard + +"@babel/plugin-transform-async-to-generator@npm:^7.18.6": + version: 7.20.7 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.20.7" + dependencies: + "@babel/helper-module-imports": ^7.18.6 + "@babel/helper-plugin-utils": ^7.20.2 + "@babel/helper-remap-async-to-generator": ^7.18.9 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: fe9ee8a5471b4317c1b9ea92410ace8126b52a600d7cfbfe1920dcac6fb0fad647d2e08beb4fd03c630eb54430e6c72db11e283e3eddc49615c68abd39430904 + languageName: node + linkType: hard + +"@babel/plugin-transform-block-scoped-functions@npm:^7.0.0, @babel/plugin-transform-block-scoped-functions@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 0a0df61f94601e3666bf39f2cc26f5f7b22a94450fb93081edbed967bd752ce3f81d1227fefd3799f5ee2722171b5e28db61379234d1bb85b6ec689589f99d7e + languageName: node + linkType: hard + +"@babel/plugin-transform-block-scoping@npm:^7.0.0, @babel/plugin-transform-block-scoping@npm:^7.20.2": + version: 7.21.0 + resolution: "@babel/plugin-transform-block-scoping@npm:7.21.0" + dependencies: + "@babel/helper-plugin-utils": ^7.20.2 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 15aacaadbecf96b53a750db1be4990b0d89c7f5bc3e1794b63b49fb219638c1fd25d452d15566d7e5ddf5b5f4e1a0a0055c35c1c7aee323c7b114bf49f66f4b0 + languageName: node + linkType: hard + +"@babel/plugin-transform-classes@npm:^7.0.0, @babel/plugin-transform-classes@npm:^7.20.2": + version: 7.21.0 + resolution: "@babel/plugin-transform-classes@npm:7.21.0" + dependencies: + "@babel/helper-annotate-as-pure": ^7.18.6 + "@babel/helper-compilation-targets": ^7.20.7 + "@babel/helper-environment-visitor": ^7.18.9 + "@babel/helper-function-name": ^7.21.0 + "@babel/helper-optimise-call-expression": ^7.18.6 + "@babel/helper-plugin-utils": ^7.20.2 + "@babel/helper-replace-supers": ^7.20.7 + "@babel/helper-split-export-declaration": ^7.18.6 + globals: ^11.1.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 088ae152074bd0e90f64659169255bfe50393e637ec8765cb2a518848b11b0299e66b91003728fd0a41563a6fdc6b8d548ece698a314fd5447f5489c22e466b7 + languageName: node + linkType: hard + +"@babel/plugin-transform-computed-properties@npm:^7.0.0, @babel/plugin-transform-computed-properties@npm:^7.18.9": + version: 7.20.7 + resolution: "@babel/plugin-transform-computed-properties@npm:7.20.7" + dependencies: + "@babel/helper-plugin-utils": ^7.20.2 + "@babel/template": ^7.20.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: be70e54bda8b469146459f429e5f2bd415023b87b2d5af8b10e48f465ffb02847a3ed162ca60378c004b82db848e4d62e90010d41ded7e7176b6d8d1c2911139 + languageName: node + linkType: hard + +"@babel/plugin-transform-destructuring@npm:^7.0.0, @babel/plugin-transform-destructuring@npm:^7.20.2": + version: 7.21.3 + resolution: "@babel/plugin-transform-destructuring@npm:7.21.3" + dependencies: + "@babel/helper-plugin-utils": ^7.20.2 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 43ebbe0bfa20287e34427be7c2200ce096c20913775ea75268fb47fe0e55f9510800587e6052c42fe6dffa0daaad95dd465c3e312fd1ef9785648384c45417ac + languageName: node + linkType: hard + +"@babel/plugin-transform-dotall-regex@npm:^7.18.6, @babel/plugin-transform-dotall-regex@npm:^7.4.4": + version: 7.18.6 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.18.6" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: cbe5d7063eb8f8cca24cd4827bc97f5641166509e58781a5f8aa47fb3d2d786ce4506a30fca2e01f61f18792783a5cb5d96bf5434c3dd1ad0de8c9cc625a53da + languageName: node + linkType: hard + +"@babel/plugin-transform-duplicate-keys@npm:^7.18.9": + version: 7.18.9 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.18.9" + dependencies: + "@babel/helper-plugin-utils": ^7.18.9 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 220bf4a9fec5c4d4a7b1de38810350260e8ea08481bf78332a464a21256a95f0df8cd56025f346238f09b04f8e86d4158fafc9f4af57abaef31637e3b58bd4fe + languageName: node + linkType: hard + +"@babel/plugin-transform-exponentiation-operator@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.18.6" + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7f70222f6829c82a36005508d34ddbe6fd0974ae190683a8670dd6ff08669aaf51fef2209d7403f9bd543cb2d12b18458016c99a6ed0332ccedb3ea127b01229 + languageName: node + linkType: hard + +"@babel/plugin-transform-flow-strip-types@npm:^7.0.0": + version: 7.21.0 + resolution: "@babel/plugin-transform-flow-strip-types@npm:7.21.0" + dependencies: + "@babel/helper-plugin-utils": ^7.20.2 + "@babel/plugin-syntax-flow": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a45951c57265c366f95db9a5e70a62cfc3eafafa3f3d23295357577b5fc139d053d45416cdbdf4a0a387e41cefc434ab94dd6c3048d03b094ff6d041dd10a0b0 + languageName: node + linkType: hard + +"@babel/plugin-transform-for-of@npm:^7.0.0, @babel/plugin-transform-for-of@npm:^7.18.8": + version: 7.21.0 + resolution: "@babel/plugin-transform-for-of@npm:7.21.0" + dependencies: + "@babel/helper-plugin-utils": ^7.20.2 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 2f3f86ca1fab2929fcda6a87e4303d5c635b5f96dc9a45fd4ca083308a3020c79ac33b9543eb4640ef2b79f3586a00ab2d002a7081adb9e9d7440dce30781034 + languageName: node + linkType: hard + +"@babel/plugin-transform-function-name@npm:^7.0.0, @babel/plugin-transform-function-name@npm:^7.18.9": + version: 7.18.9 + resolution: "@babel/plugin-transform-function-name@npm:7.18.9" + dependencies: + "@babel/helper-compilation-targets": ^7.18.9 + "@babel/helper-function-name": ^7.18.9 + "@babel/helper-plugin-utils": ^7.18.9 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 62dd9c6cdc9714704efe15545e782ee52d74dc73916bf954b4d3bee088fb0ec9e3c8f52e751252433656c09f744b27b757fc06ed99bcde28e8a21600a1d8e597 + languageName: node + linkType: hard + +"@babel/plugin-transform-literals@npm:^7.0.0, @babel/plugin-transform-literals@npm:^7.18.9": + version: 7.18.9 + resolution: "@babel/plugin-transform-literals@npm:7.18.9" + dependencies: + "@babel/helper-plugin-utils": ^7.18.9 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 3458dd2f1a47ac51d9d607aa18f3d321cbfa8560a985199185bed5a906bb0c61ba85575d386460bac9aed43fdd98940041fae5a67dff286f6f967707cff489f8 + languageName: node + linkType: hard + +"@babel/plugin-transform-member-expression-literals@npm:^7.0.0, @babel/plugin-transform-member-expression-literals@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 35a3d04f6693bc6b298c05453d85ee6e41cc806538acb6928427e0e97ae06059f97d2f07d21495fcf5f70d3c13a242e2ecbd09d5c1fcb1b1a73ff528dcb0b695 + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-amd@npm:^7.19.6": + version: 7.20.11 + resolution: "@babel/plugin-transform-modules-amd@npm:7.20.11" + dependencies: + "@babel/helper-module-transforms": ^7.20.11 + "@babel/helper-plugin-utils": ^7.20.2 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 23665c1c20c8f11c89382b588fb9651c0756d130737a7625baeaadbd3b973bc5bfba1303bedffa8fb99db1e6d848afb01016e1df2b69b18303e946890c790001 + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-commonjs@npm:^7.0.0, @babel/plugin-transform-modules-commonjs@npm:^7.19.6": + version: 7.21.2 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.21.2" + dependencies: + "@babel/helper-module-transforms": ^7.21.2 + "@babel/helper-plugin-utils": ^7.20.2 + "@babel/helper-simple-access": ^7.20.2 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 65aa06e3e3792f39b99eb5f807034693ff0ecf80438580f7ae504f4c4448ef04147b1889ea5e6f60f3ad4a12ebbb57c6f1f979a249dadbd8d11fe22f4441918b + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-systemjs@npm:^7.19.6": + version: 7.20.11 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.20.11" + dependencies: + "@babel/helper-hoist-variables": ^7.18.6 + "@babel/helper-module-transforms": ^7.20.11 + "@babel/helper-plugin-utils": ^7.20.2 + "@babel/helper-validator-identifier": ^7.19.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 4546c47587f88156d66c7eb7808e903cf4bb3f6ba6ac9bc8e3af2e29e92eb9f0b3f44d52043bfd24eb25fa7827fd7b6c8bfeac0cac7584e019b87e1ecbd0e673 + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-umd@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-modules-umd@npm:7.18.6" + dependencies: + "@babel/helper-module-transforms": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c3b6796c6f4579f1ba5ab0cdcc73910c1e9c8e1e773c507c8bb4da33072b3ae5df73c6d68f9126dab6e99c24ea8571e1563f8710d7c421fac1cde1e434c20153 + languageName: node + linkType: hard + +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.19.1": + version: 7.20.5 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.20.5" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.20.5 + "@babel/helper-plugin-utils": ^7.20.2 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 528c95fb1087e212f17e1c6456df041b28a83c772b9c93d2e407c9d03b72182b0d9d126770c1d6e0b23aab052599ceaf25ed6a2c0627f4249be34a83f6fae853 + languageName: node + linkType: hard + +"@babel/plugin-transform-new-target@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-new-target@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: bd780e14f46af55d0ae8503b3cb81ca86dcc73ed782f177e74f498fff934754f9e9911df1f8f3bd123777eed7c1c1af4d66abab87c8daae5403e7719a6b845d1 + languageName: node + linkType: hard + +"@babel/plugin-transform-object-super@npm:^7.0.0, @babel/plugin-transform-object-super@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-object-super@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-replace-supers": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 0fcb04e15deea96ae047c21cb403607d49f06b23b4589055993365ebd7a7d7541334f06bf9642e90075e66efce6ebaf1eb0ef066fbbab802d21d714f1aac3aef + languageName: node + linkType: hard + +"@babel/plugin-transform-parameters@npm:^7.0.0, @babel/plugin-transform-parameters@npm:^7.20.1, @babel/plugin-transform-parameters@npm:^7.20.7": + version: 7.21.3 + resolution: "@babel/plugin-transform-parameters@npm:7.21.3" + dependencies: + "@babel/helper-plugin-utils": ^7.20.2 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c92128d7b1fcf54e2cab186c196bbbf55a9a6de11a83328dc2602649c9dc6d16ef73712beecd776cd49bfdc624b5f56740f4a53568d3deb9505ec666bc869da3 + languageName: node + linkType: hard + +"@babel/plugin-transform-property-literals@npm:^7.0.0, @babel/plugin-transform-property-literals@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-property-literals@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 1c16e64de554703f4b547541de2edda6c01346dd3031d4d29e881aa7733785cd26d53611a4ccf5353f4d3e69097bb0111c0a93ace9e683edd94fea28c4484144 + languageName: node + linkType: hard + +"@babel/plugin-transform-react-display-name@npm:^7.0.0, @babel/plugin-transform-react-display-name@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-react-display-name@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 51c087ab9e41ef71a29335587da28417536c6f816c292e092ffc0e0985d2f032656801d4dd502213ce32481f4ba6c69402993ffa67f0818a07606ff811e4be49 + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx-development@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-react-jsx-development@npm:7.18.6" + dependencies: + "@babel/plugin-transform-react-jsx": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ec9fa65db66f938b75c45e99584367779ac3e0af8afc589187262e1337c7c4205ea312877813ae4df9fb93d766627b8968d74ac2ba702e4883b1dbbe4953ecee + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx-self@npm:^7.18.6": + version: 7.21.0 + resolution: "@babel/plugin-transform-react-jsx-self@npm:7.21.0" + dependencies: + "@babel/helper-plugin-utils": ^7.20.2 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 696f74c04a265409ccd46e333ff762e6011d394e6972128b5d97db4c1647289141bc7ebd45ab2bab99b60932f9793e8f89ee9432d3bde19962de2100456f6147 + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx-source@npm:^7.19.6": + version: 7.19.6 + resolution: "@babel/plugin-transform-react-jsx-source@npm:7.19.6" + dependencies: + "@babel/helper-plugin-utils": ^7.19.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 1e9e29a4efc5b79840bd4f68e404f5ab7765ce48c7bd22f12f2b185f9c782c66933bdf54a1b21879e4e56e6b50b4e88aca82789ecb1f61123af6dfa9ab16c555 + languageName: node + linkType: hard + +"@babel/plugin-transform-react-jsx@npm:^7.0.0, @babel/plugin-transform-react-jsx@npm:^7.18.6": + version: 7.21.0 + resolution: "@babel/plugin-transform-react-jsx@npm:7.21.0" + dependencies: + "@babel/helper-annotate-as-pure": ^7.18.6 + "@babel/helper-module-imports": ^7.18.6 + "@babel/helper-plugin-utils": ^7.20.2 + "@babel/plugin-syntax-jsx": ^7.18.6 + "@babel/types": ^7.21.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c77d277d2e55b489a9b9be185c3eed5d8e2c87046778810f8e47ee3c87b47e64cad93c02211c968486c7958fd05ce203c66779446484c98a7b3a69bec687d5dc + languageName: node + linkType: hard + +"@babel/plugin-transform-react-pure-annotations@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.18.6" + dependencies: + "@babel/helper-annotate-as-pure": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 97c4873d409088f437f9084d084615948198dd87fc6723ada0e7e29c5a03623c2f3e03df3f52e7e7d4d23be32a08ea00818bff302812e48713c706713bd06219 + languageName: node + linkType: hard + +"@babel/plugin-transform-regenerator@npm:^7.18.6": + version: 7.20.5 + resolution: "@babel/plugin-transform-regenerator@npm:7.20.5" + dependencies: + "@babel/helper-plugin-utils": ^7.20.2 + regenerator-transform: ^0.15.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 13164861e71fb23d84c6270ef5330b03c54d5d661c2c7468f28e21c4f8598558ca0c8c3cb1d996219352946e849d270a61372bc93c8fbe9676e78e3ffd0dea07 + languageName: node + linkType: hard + +"@babel/plugin-transform-reserved-words@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-reserved-words@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 0738cdc30abdae07c8ec4b233b30c31f68b3ff0eaa40eddb45ae607c066127f5fa99ddad3c0177d8e2832e3a7d3ad115775c62b431ebd6189c40a951b867a80c + languageName: node + linkType: hard + +"@babel/plugin-transform-shorthand-properties@npm:^7.0.0, @babel/plugin-transform-shorthand-properties@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b8e4e8acc2700d1e0d7d5dbfd4fdfb935651913de6be36e6afb7e739d8f9ca539a5150075a0f9b79c88be25ddf45abb912fe7abf525f0b80f5b9d9860de685d7 + languageName: node + linkType: hard + +"@babel/plugin-transform-spread@npm:^7.0.0, @babel/plugin-transform-spread@npm:^7.19.0": + version: 7.20.7 + resolution: "@babel/plugin-transform-spread@npm:7.20.7" + dependencies: + "@babel/helper-plugin-utils": ^7.20.2 + "@babel/helper-skip-transparent-expression-wrappers": ^7.20.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 8ea698a12da15718aac7489d4cde10beb8a3eea1f66167d11ab1e625033641e8b328157fd1a0b55dd6531933a160c01fc2e2e61132a385cece05f26429fd0cc2 + languageName: node + linkType: hard + +"@babel/plugin-transform-sticky-regex@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 68ea18884ae9723443ffa975eb736c8c0d751265859cd3955691253f7fee37d7a0f7efea96c8a062876af49a257a18ea0ed5fea0d95a7b3611ce40f7ee23aee3 + languageName: node + linkType: hard + +"@babel/plugin-transform-template-literals@npm:^7.0.0, @babel/plugin-transform-template-literals@npm:^7.18.9": + version: 7.18.9 + resolution: "@babel/plugin-transform-template-literals@npm:7.18.9" + dependencies: + "@babel/helper-plugin-utils": ^7.18.9 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 3d2fcd79b7c345917f69b92a85bdc3ddd68ce2c87dc70c7d61a8373546ccd1f5cb8adc8540b49dfba08e1b82bb7b3bbe23a19efdb2b9c994db2db42906ca9fb2 + languageName: node + linkType: hard + +"@babel/plugin-transform-typeof-symbol@npm:^7.18.9": + version: 7.18.9 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.18.9" + dependencies: + "@babel/helper-plugin-utils": ^7.18.9 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: e754e0d8b8a028c52e10c148088606e3f7a9942c57bd648fc0438e5b4868db73c386a5ed47ab6d6f0594aae29ee5ffc2ffc0f7ebee7fae560a066d6dea811cd4 + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-escapes@npm:^7.18.10": + version: 7.18.10 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.18.10" + dependencies: + "@babel/helper-plugin-utils": ^7.18.9 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: f5baca55cb3c11bc08ec589f5f522d85c1ab509b4d11492437e45027d64ae0b22f0907bd1381e8d7f2a436384bb1f9ad89d19277314242c5c2671a0f91d0f9cd + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-regex@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.18.6" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d9e18d57536a2d317fb0b7c04f8f55347f3cfacb75e636b4c6fa2080ab13a3542771b5120e726b598b815891fc606d1472ac02b749c69fd527b03847f22dc25e + languageName: node + linkType: hard + +"@babel/preset-env@npm:7.20.2": + version: 7.20.2 + resolution: "@babel/preset-env@npm:7.20.2" + dependencies: + "@babel/compat-data": ^7.20.1 + "@babel/helper-compilation-targets": ^7.20.0 + "@babel/helper-plugin-utils": ^7.20.2 + "@babel/helper-validator-option": ^7.18.6 + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.18.6 + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.18.9 + "@babel/plugin-proposal-async-generator-functions": ^7.20.1 + "@babel/plugin-proposal-class-properties": ^7.18.6 + "@babel/plugin-proposal-class-static-block": ^7.18.6 + "@babel/plugin-proposal-dynamic-import": ^7.18.6 + "@babel/plugin-proposal-export-namespace-from": ^7.18.9 + "@babel/plugin-proposal-json-strings": ^7.18.6 + "@babel/plugin-proposal-logical-assignment-operators": ^7.18.9 + "@babel/plugin-proposal-nullish-coalescing-operator": ^7.18.6 + "@babel/plugin-proposal-numeric-separator": ^7.18.6 + "@babel/plugin-proposal-object-rest-spread": ^7.20.2 + "@babel/plugin-proposal-optional-catch-binding": ^7.18.6 + "@babel/plugin-proposal-optional-chaining": ^7.18.9 + "@babel/plugin-proposal-private-methods": ^7.18.6 + "@babel/plugin-proposal-private-property-in-object": ^7.18.6 + "@babel/plugin-proposal-unicode-property-regex": ^7.18.6 + "@babel/plugin-syntax-async-generators": ^7.8.4 + "@babel/plugin-syntax-class-properties": ^7.12.13 + "@babel/plugin-syntax-class-static-block": ^7.14.5 + "@babel/plugin-syntax-dynamic-import": ^7.8.3 + "@babel/plugin-syntax-export-namespace-from": ^7.8.3 + "@babel/plugin-syntax-import-assertions": ^7.20.0 + "@babel/plugin-syntax-json-strings": ^7.8.3 + "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 + "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 + "@babel/plugin-syntax-numeric-separator": ^7.10.4 + "@babel/plugin-syntax-object-rest-spread": ^7.8.3 + "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 + "@babel/plugin-syntax-optional-chaining": ^7.8.3 + "@babel/plugin-syntax-private-property-in-object": ^7.14.5 + "@babel/plugin-syntax-top-level-await": ^7.14.5 + "@babel/plugin-transform-arrow-functions": ^7.18.6 + "@babel/plugin-transform-async-to-generator": ^7.18.6 + "@babel/plugin-transform-block-scoped-functions": ^7.18.6 + "@babel/plugin-transform-block-scoping": ^7.20.2 + "@babel/plugin-transform-classes": ^7.20.2 + "@babel/plugin-transform-computed-properties": ^7.18.9 + "@babel/plugin-transform-destructuring": ^7.20.2 + "@babel/plugin-transform-dotall-regex": ^7.18.6 + "@babel/plugin-transform-duplicate-keys": ^7.18.9 + "@babel/plugin-transform-exponentiation-operator": ^7.18.6 + "@babel/plugin-transform-for-of": ^7.18.8 + "@babel/plugin-transform-function-name": ^7.18.9 + "@babel/plugin-transform-literals": ^7.18.9 + "@babel/plugin-transform-member-expression-literals": ^7.18.6 + "@babel/plugin-transform-modules-amd": ^7.19.6 + "@babel/plugin-transform-modules-commonjs": ^7.19.6 + "@babel/plugin-transform-modules-systemjs": ^7.19.6 + "@babel/plugin-transform-modules-umd": ^7.18.6 + "@babel/plugin-transform-named-capturing-groups-regex": ^7.19.1 + "@babel/plugin-transform-new-target": ^7.18.6 + "@babel/plugin-transform-object-super": ^7.18.6 + "@babel/plugin-transform-parameters": ^7.20.1 + "@babel/plugin-transform-property-literals": ^7.18.6 + "@babel/plugin-transform-regenerator": ^7.18.6 + "@babel/plugin-transform-reserved-words": ^7.18.6 + "@babel/plugin-transform-shorthand-properties": ^7.18.6 + "@babel/plugin-transform-spread": ^7.19.0 + "@babel/plugin-transform-sticky-regex": ^7.18.6 + "@babel/plugin-transform-template-literals": ^7.18.9 + "@babel/plugin-transform-typeof-symbol": ^7.18.9 + "@babel/plugin-transform-unicode-escapes": ^7.18.10 + "@babel/plugin-transform-unicode-regex": ^7.18.6 + "@babel/preset-modules": ^0.1.5 + "@babel/types": ^7.20.2 + babel-plugin-polyfill-corejs2: ^0.3.3 + babel-plugin-polyfill-corejs3: ^0.6.0 + babel-plugin-polyfill-regenerator: ^0.4.1 + core-js-compat: ^3.25.1 + semver: ^6.3.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ece2d7e9c7789db6116e962b8e1a55eb55c110c44c217f0c8f6ffea4ca234954e66557f7bd019b7affadf7fbb3a53ccc807e93fc935aacd48146234b73b6947e + languageName: node + linkType: hard + +"@babel/preset-modules@npm:^0.1.5": + version: 0.1.5 + resolution: "@babel/preset-modules@npm:0.1.5" + dependencies: + "@babel/helper-plugin-utils": ^7.0.0 + "@babel/plugin-proposal-unicode-property-regex": ^7.4.4 + "@babel/plugin-transform-dotall-regex": ^7.4.4 + "@babel/types": ^7.4.4 + esutils: ^2.0.2 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 8430e0e9e9d520b53e22e8c4c6a5a080a12b63af6eabe559c2310b187bd62ae113f3da82ba33e9d1d0f3230930ca702843aae9dd226dec51f7d7114dc1f51c10 + languageName: node + linkType: hard + +"@babel/preset-react@npm:7.18.6": + version: 7.18.6 + resolution: "@babel/preset-react@npm:7.18.6" + dependencies: + "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-validator-option": ^7.18.6 + "@babel/plugin-transform-react-display-name": ^7.18.6 + "@babel/plugin-transform-react-jsx": ^7.18.6 + "@babel/plugin-transform-react-jsx-development": ^7.18.6 + "@babel/plugin-transform-react-pure-annotations": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 540d9cf0a0cc0bb07e6879994e6fb7152f87dafbac880b56b65e2f528134c7ba33e0cd140b58700c77b2ebf4c81fa6468fed0ba391462d75efc7f8c1699bb4c3 + languageName: node + linkType: hard + +"@babel/regjsgen@npm:^0.8.0": + version: 0.8.0 + resolution: "@babel/regjsgen@npm:0.8.0" + checksum: 89c338fee774770e5a487382170711014d49a68eb281e74f2b5eac88f38300a4ad545516a7786a8dd5702e9cf009c94c2f582d200f077ac5decd74c56b973730 + languageName: node + linkType: hard + +"@babel/runtime@npm:7.2.0": + version: 7.2.0 + resolution: "@babel/runtime@npm:7.2.0" + dependencies: + regenerator-runtime: ^0.12.0 + checksum: c0f156eba9700f8e467926a668d5eb77a83f2630873dac7f5cbf77f1a1807299c2cca6a6231c0a494164c279e8c30ca15572d15ecd9fe20b2f20c21764bde543 + languageName: node + linkType: hard + +"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.10.2, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7": + version: 7.21.0 + resolution: "@babel/runtime@npm:7.21.0" + dependencies: + regenerator-runtime: ^0.13.11 + checksum: 7b33e25bfa9e0e1b9e8828bb61b2d32bdd46b41b07ba7cb43319ad08efc6fda8eb89445193e67d6541814627df0ca59122c0ea795e412b99c5183a0540d338ab + languageName: node + linkType: hard + +"@babel/template@npm:^7.18.10, @babel/template@npm:^7.20.7": + version: 7.20.7 + resolution: "@babel/template@npm:7.20.7" + dependencies: + "@babel/code-frame": ^7.18.6 + "@babel/parser": ^7.20.7 + "@babel/types": ^7.20.7 + checksum: 2eb1a0ab8d415078776bceb3473d07ab746e6bb4c2f6ca46ee70efb284d75c4a32bb0cd6f4f4946dec9711f9c0780e8e5d64b743208deac6f8e9858afadc349e + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.14.0, @babel/traverse@npm:^7.16.8, @babel/traverse@npm:^7.20.12, @babel/traverse@npm:^7.20.5, @babel/traverse@npm:^7.20.7, @babel/traverse@npm:^7.21.3, @babel/traverse@npm:^7.4.5": + version: 7.21.3 + resolution: "@babel/traverse@npm:7.21.3" + dependencies: + "@babel/code-frame": ^7.18.6 + "@babel/generator": ^7.21.3 + "@babel/helper-environment-visitor": ^7.18.9 + "@babel/helper-function-name": ^7.21.0 + "@babel/helper-hoist-variables": ^7.18.6 + "@babel/helper-split-export-declaration": ^7.18.6 + "@babel/parser": ^7.21.3 + "@babel/types": ^7.21.3 + debug: ^4.1.0 + globals: ^11.1.0 + checksum: 0af5bcd47a2fc501592b90ac1feae9d449afb9ab0772a4f6e68230f4cd3a475795d538c1de3f880fe3414b6c2820bac84d02c6549eea796f39d74a603717447b + languageName: node + linkType: hard + +"@babel/traverse@npm:^7.21.0, @babel/traverse@npm:^7.21.2": + version: 7.21.2 + resolution: "@babel/traverse@npm:7.21.2" + dependencies: + "@babel/code-frame": ^7.18.6 + "@babel/generator": ^7.21.1 + "@babel/helper-environment-visitor": ^7.18.9 + "@babel/helper-function-name": ^7.21.0 + "@babel/helper-hoist-variables": ^7.18.6 + "@babel/helper-split-export-declaration": ^7.18.6 + "@babel/parser": ^7.21.2 + "@babel/types": ^7.21.2 + debug: ^4.1.0 + globals: ^11.1.0 + checksum: d851e3f5cfbdc2fac037a014eae7b0707709de50f7d2fbb82ffbf932d3eeba90a77431529371d6e544f8faaf8c6540eeb18fdd8d1c6fa2b61acea0fb47e18d4b + languageName: node + linkType: hard + +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.16.8, @babel/types@npm:^7.18.13, @babel/types@npm:^7.18.9, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.5, @babel/types@npm:^7.21.3, @babel/types@npm:^7.4.4": + version: 7.21.3 + resolution: "@babel/types@npm:7.21.3" + dependencies: + "@babel/helper-string-parser": ^7.19.4 + "@babel/helper-validator-identifier": ^7.19.1 + to-fast-properties: ^2.0.0 + checksum: b750274718ba9cefd0b81836c464009bb6ba339fccce51b9baff497a0a2d96c044c61dc90cf203cec0adc770454b53a9681c3f7716883c802b85ab84c365ba35 + languageName: node + linkType: hard + +"@babel/types@npm:^7.18.6, @babel/types@npm:^7.20.2, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.0, @babel/types@npm:^7.21.2, @babel/types@npm:^7.8.3": + version: 7.21.2 + resolution: "@babel/types@npm:7.21.2" + dependencies: + "@babel/helper-string-parser": ^7.19.4 + "@babel/helper-validator-identifier": ^7.19.1 + to-fast-properties: ^2.0.0 + checksum: a45a52acde139e575502c6de42c994bdbe262bafcb92ae9381fb54cdf1a3672149086843fda655c7683ce9806e998fd002bbe878fa44984498d0fdc7935ce7ff + languageName: node + linkType: hard + +"@emotion/babel-plugin@npm:^11.10.6": + version: 11.10.6 + resolution: "@emotion/babel-plugin@npm:11.10.6" + dependencies: + "@babel/helper-module-imports": ^7.16.7 + "@babel/runtime": ^7.18.3 + "@emotion/hash": ^0.9.0 + "@emotion/memoize": ^0.8.0 + "@emotion/serialize": ^1.1.1 + babel-plugin-macros: ^3.1.0 + convert-source-map: ^1.5.0 + escape-string-regexp: ^4.0.0 + find-root: ^1.1.0 + source-map: ^0.5.7 + stylis: 4.1.3 + checksum: 3eed138932e8edf2598352e69ad949b9db3051a4d6fcff190dacbac9aa838d7ef708b9f3e6c48660625d9311dae82d73477ae4e7a31139feef5eb001a5528421 + languageName: node + linkType: hard + +"@emotion/cache@npm:^11.10.5": + version: 11.10.5 + resolution: "@emotion/cache@npm:11.10.5" + dependencies: + "@emotion/memoize": ^0.8.0 + "@emotion/sheet": ^1.2.1 + "@emotion/utils": ^1.2.0 + "@emotion/weak-memoize": ^0.3.0 + stylis: 4.1.3 + checksum: 1dd2d9af2d3ecbd3d4469ecdf91a335eef6034c851b57a474471b2d2280613eb35bbed98c0368cc4625f188619fbdaf04cf07e8107aaffce94b2178444c0fe7b + languageName: node + linkType: hard + +"@emotion/hash@npm:^0.9.0": + version: 0.9.0 + resolution: "@emotion/hash@npm:0.9.0" + checksum: b63428f7c8186607acdca5d003700cecf0ded519d0b5c5cc3b3154eafcad6ff433f8361bd2bac8882715b557e6f06945694aeb6ba8b25c6095d7a88570e2e0bb + languageName: node + linkType: hard + +"@emotion/is-prop-valid@npm:^1.1.0, @emotion/is-prop-valid@npm:^1.2.0": + version: 1.2.0 + resolution: "@emotion/is-prop-valid@npm:1.2.0" + dependencies: + "@emotion/memoize": ^0.8.0 + checksum: cc7a19850a4c5b24f1514665289442c8c641709e6f7711067ad550e05df331da0692a16148e85eda6f47e31b3261b64d74c5e25194d053223be16231f969d633 + languageName: node + linkType: hard + +"@emotion/memoize@npm:^0.8.0": + version: 0.8.0 + resolution: "@emotion/memoize@npm:0.8.0" + checksum: c87bb110b829edd8e1c13b90a6bc37cebc39af29c7599a1e66a48e06f9bec43e8e53495ba86278cc52e7589549492c8dfdc81d19f4fdec0cee6ba13d2ad2c928 + languageName: node + linkType: hard + +"@emotion/react@npm:11.10.6": + version: 11.10.6 + resolution: "@emotion/react@npm:11.10.6" + dependencies: + "@babel/runtime": ^7.18.3 + "@emotion/babel-plugin": ^11.10.6 + "@emotion/cache": ^11.10.5 + "@emotion/serialize": ^1.1.1 + "@emotion/use-insertion-effect-with-fallbacks": ^1.0.0 + "@emotion/utils": ^1.2.0 + "@emotion/weak-memoize": ^0.3.0 + hoist-non-react-statics: ^3.3.1 + peerDependencies: + react: ">=16.8.0" + peerDependenciesMeta: + "@types/react": + optional: true + checksum: 4762042e39126ffaffe76052dc65c9bb0ba6b8893013687ba3cc13ed4dd834c31597f1230684c3c078e90aecc13ab6cd0e3cde0dec8b7761affd2571f4d80019 + languageName: node + linkType: hard + +"@emotion/serialize@npm:^1.1.1": + version: 1.1.1 + resolution: "@emotion/serialize@npm:1.1.1" + dependencies: + "@emotion/hash": ^0.9.0 + "@emotion/memoize": ^0.8.0 + "@emotion/unitless": ^0.8.0 + "@emotion/utils": ^1.2.0 + csstype: ^3.0.2 + checksum: 24cfd5b16e6f2335c032ca33804a876e0442aaf8f9c94d269d23735ebd194fb1ed142542dd92191a3e6ef8bad5bd560dfc5aaf363a1b70954726dbd4dd93085c + languageName: node + linkType: hard + +"@emotion/sheet@npm:^1.2.1": + version: 1.2.1 + resolution: "@emotion/sheet@npm:1.2.1" + checksum: ce78763588ea522438156344d9f592203e2da582d8d67b32e1b0b98eaba26994c6c270f8c7ad46442fc9c0a9f048685d819cd73ca87e544520fd06f0e24a1562 + languageName: node + linkType: hard + +"@emotion/styled@npm:11.10.6": + version: 11.10.6 + resolution: "@emotion/styled@npm:11.10.6" + dependencies: + "@babel/runtime": ^7.18.3 + "@emotion/babel-plugin": ^11.10.6 + "@emotion/is-prop-valid": ^1.2.0 + "@emotion/serialize": ^1.1.1 + "@emotion/use-insertion-effect-with-fallbacks": ^1.0.0 + "@emotion/utils": ^1.2.0 + peerDependencies: + "@emotion/react": ^11.0.0-rc.0 + react: ">=16.8.0" + peerDependenciesMeta: + "@types/react": + optional: true + checksum: ed0ee4bec3b63ee9c5eb8216b22646313ff1ada06c5183f128d25b73252126e9fde625e81c868be7ccd666b686a73076f923ce188dac25e93d5062ddffdad46f + languageName: node + linkType: hard + +"@emotion/stylis@npm:^0.8.4": + version: 0.8.5 + resolution: "@emotion/stylis@npm:0.8.5" + checksum: 67ff5958449b2374b329fb96e83cb9025775ffe1e79153b499537c6c8b2eb64b77f32d7b5d004d646973662356ceb646afd9269001b97c54439fceea3203ce65 + languageName: node + linkType: hard + +"@emotion/unitless@npm:^0.7.4": + version: 0.7.5 + resolution: "@emotion/unitless@npm:0.7.5" + checksum: f976e5345b53fae9414a7b2e7a949aa6b52f8bdbcc84458b1ddc0729e77ba1d1dfdff9960e0da60183877873d3a631fa24d9695dd714ed94bcd3ba5196586a6b + languageName: node + linkType: hard + +"@emotion/unitless@npm:^0.8.0": + version: 0.8.0 + resolution: "@emotion/unitless@npm:0.8.0" + checksum: 176141117ed23c0eb6e53a054a69c63e17ae532ec4210907a20b2208f91771821835f1c63dd2ec63e30e22fcc984026d7f933773ee6526dd038e0850919fae7a + languageName: node + linkType: hard + +"@emotion/use-insertion-effect-with-fallbacks@npm:^1.0.0": + version: 1.0.0 + resolution: "@emotion/use-insertion-effect-with-fallbacks@npm:1.0.0" + peerDependencies: + react: ">=16.8.0" + checksum: 4f06a3b48258c832aa8022a262572061a31ff078d377e9164cccc99951309d70f4466e774fe704461b2f8715007a82ed625a54a5c7a127c89017d3ce3187d4f1 + languageName: node + linkType: hard + +"@emotion/utils@npm:^1.2.0": + version: 1.2.0 + resolution: "@emotion/utils@npm:1.2.0" + checksum: 55457a49ddd4db6a014ea0454dc09eaa23eedfb837095c8ff90470cb26a303f7ceb5fcc1e2190ef64683e64cfd33d3ba3ca3109cd87d12bc9e379e4195c9a4dd + languageName: node + linkType: hard + +"@emotion/weak-memoize@npm:^0.3.0": + version: 0.3.0 + resolution: "@emotion/weak-memoize@npm:0.3.0" + checksum: f43ef4c8b7de70d9fa5eb3105921724651e4188e895beb71f0c5919dc899a7b8743e1fdd99d38b9092dd5722c7be2312ebb47fbdad0c4e38bea58f6df5885cc0 + languageName: node + linkType: hard + +"@esbuild/android-arm64@npm:0.17.12": + version: 0.17.12 + resolution: "@esbuild/android-arm64@npm:0.17.12" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/android-arm@npm:0.17.12": + version: 0.17.12 + resolution: "@esbuild/android-arm@npm:0.17.12" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@esbuild/android-x64@npm:0.17.12": + version: 0.17.12 + resolution: "@esbuild/android-x64@npm:0.17.12" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/darwin-arm64@npm:0.17.12": + version: 0.17.12 + resolution: "@esbuild/darwin-arm64@npm:0.17.12" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/darwin-x64@npm:0.17.12": + version: 0.17.12 + resolution: "@esbuild/darwin-x64@npm:0.17.12" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/freebsd-arm64@npm:0.17.12": + version: 0.17.12 + resolution: "@esbuild/freebsd-arm64@npm:0.17.12" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/freebsd-x64@npm:0.17.12": + version: 0.17.12 + resolution: "@esbuild/freebsd-x64@npm:0.17.12" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/linux-arm64@npm:0.17.12": + version: 0.17.12 + resolution: "@esbuild/linux-arm64@npm:0.17.12" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/linux-arm@npm:0.17.12": + version: 0.17.12 + resolution: "@esbuild/linux-arm@npm:0.17.12" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@esbuild/linux-ia32@npm:0.17.12": + version: 0.17.12 + resolution: "@esbuild/linux-ia32@npm:0.17.12" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.17.12": + version: 0.17.12 + resolution: "@esbuild/linux-loong64@npm:0.17.12" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + +"@esbuild/linux-mips64el@npm:0.17.12": + version: 0.17.12 + resolution: "@esbuild/linux-mips64el@npm:0.17.12" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"@esbuild/linux-ppc64@npm:0.17.12": + version: 0.17.12 + resolution: "@esbuild/linux-ppc64@npm:0.17.12" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/linux-riscv64@npm:0.17.12": + version: 0.17.12 + resolution: "@esbuild/linux-riscv64@npm:0.17.12" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"@esbuild/linux-s390x@npm:0.17.12": + version: 0.17.12 + resolution: "@esbuild/linux-s390x@npm:0.17.12" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"@esbuild/linux-x64@npm:0.17.12": + version: 0.17.12 + resolution: "@esbuild/linux-x64@npm:0.17.12" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/netbsd-x64@npm:0.17.12": + version: 0.17.12 + resolution: "@esbuild/netbsd-x64@npm:0.17.12" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openbsd-x64@npm:0.17.12": + version: 0.17.12 + resolution: "@esbuild/openbsd-x64@npm:0.17.12" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/sunos-x64@npm:0.17.12": + version: 0.17.12 + resolution: "@esbuild/sunos-x64@npm:0.17.12" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/win32-arm64@npm:0.17.12": + version: 0.17.12 + resolution: "@esbuild/win32-arm64@npm:0.17.12" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/win32-ia32@npm:0.17.12": + version: 0.17.12 + resolution: "@esbuild/win32-ia32@npm:0.17.12" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/win32-x64@npm:0.17.12": + version: 0.17.12 + resolution: "@esbuild/win32-x64@npm:0.17.12" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@eslint-community/eslint-utils@npm:^4.2.0": + version: 4.3.0 + resolution: "@eslint-community/eslint-utils@npm:4.3.0" + dependencies: + eslint-visitor-keys: ^3.3.0 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + checksum: f487760a692f0f1fef76e248ad72976919576ba57edc2b1b1dc1d182553bae6b5bf7b078e654da85d04f0af8a485d20bd26280002768f4fbcd2e330078340cb0 + languageName: node + linkType: hard + +"@eslint-community/regexpp@npm:^4.4.0": + version: 4.4.0 + resolution: "@eslint-community/regexpp@npm:4.4.0" + checksum: 2d127af0c752b80e8a782eacfe996a86925d21de92da3ffc6f9e615e701145e44a62e26bdd88bfac2cd76779c39ba8d9875a91046ec5e7e5f23cb647c247ea6a + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^1.4.1": + version: 1.4.1 + resolution: "@eslint/eslintrc@npm:1.4.1" + dependencies: + ajv: ^6.12.4 + debug: ^4.3.2 + espree: ^9.4.0 + globals: ^13.19.0 + ignore: ^5.2.0 + import-fresh: ^3.2.1 + js-yaml: ^4.1.0 + minimatch: ^3.1.2 + strip-json-comments: ^3.1.1 + checksum: cd3e5a8683db604739938b1c1c8b77927dc04fce3e28e0c88e7f2cd4900b89466baf83dfbad76b2b9e4d2746abdd00dd3f9da544d3e311633d8693f327d04cd7 + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^2.0.1": + version: 2.0.1 + resolution: "@eslint/eslintrc@npm:2.0.1" + dependencies: + ajv: ^6.12.4 + debug: ^4.3.2 + espree: ^9.5.0 + globals: ^13.19.0 + ignore: ^5.2.0 + import-fresh: ^3.2.1 + js-yaml: ^4.1.0 + minimatch: ^3.1.2 + strip-json-comments: ^3.1.1 + checksum: 56b9192a687a450db53a7b883daf9f0f447c43b3510189cf88808a7a2467c2a302a42a50f184cc6d5a9faf3d1df890a2ef0fd0d60b751f32a3e9dfea717c6b48 + languageName: node + linkType: hard + +"@eslint/js@npm:8.36.0": + version: 8.36.0 + resolution: "@eslint/js@npm:8.36.0" + checksum: b7d6b84b823c8c7784be390741196617565527b1f7c0977fde9455bfb57fd88f81c074a03dd878757d2c33fa29f24291e9ecbc1425710f067917324b55e1bf3a + languageName: node + linkType: hard + +"@floating-ui/core@npm:^1.2.4": + version: 1.2.4 + resolution: "@floating-ui/core@npm:1.2.4" + checksum: 1c163ea1804e2b0a28fda6e32efed0e242d0db8081fd24aab9d1cbb100f94a558709231c483bf74bf09a9204ea6e7845813d43b5322ceb6ee63285308f68f65b + languageName: node + linkType: hard + +"@floating-ui/dom@npm:^1.2.1": + version: 1.2.5 + resolution: "@floating-ui/dom@npm:1.2.5" + dependencies: + "@floating-ui/core": ^1.2.4 + checksum: a21c272a36c7cd7d337eaed82c1f8a81ccc5003d04cefa07591dc7fbb0a24d57a2c097b410593b5416145a68ac10a7a7a745c3cc4f8196268fa002364d28804b + languageName: node + linkType: hard + +"@floating-ui/react-dom-interactions@npm:0.13.3": + version: 0.13.3 + resolution: "@floating-ui/react-dom-interactions@npm:0.13.3" + dependencies: + "@floating-ui/react-dom": ^1.0.1 + aria-hidden: ^1.1.3 + tabbable: ^6.0.1 + peerDependencies: + react: ">=16.8.0" + react-dom: ">=16.8.0" + checksum: a72a036628b9c423114b3654ae239b50fac14c191fcad402ebc4cd4818b7fe2fdce000791487cf6afcafd1b7eff35a99ffe15df4e1c3b3271fbb617717fc4df2 + languageName: node + linkType: hard + +"@floating-ui/react-dom@npm:^1.0.1": + version: 1.3.0 + resolution: "@floating-ui/react-dom@npm:1.3.0" + dependencies: + "@floating-ui/dom": ^1.2.1 + peerDependencies: + react: ">=16.8.0" + react-dom: ">=16.8.0" + checksum: ce0ad3e3bbe43cfd15a6a0d5cccede02175c845862bfab52027995ab99c6b29630180dc7d146f76ebb34730f90a6ab9bf193c8984fe8d7f56062308e4ca98f77 + languageName: node + linkType: hard + +"@formatjs/ecma402-abstract@npm:1.14.3": + version: 1.14.3 + resolution: "@formatjs/ecma402-abstract@npm:1.14.3" + dependencies: + "@formatjs/intl-localematcher": 0.2.32 + tslib: ^2.4.0 + checksum: 504ae9775094adec611aa0bbc6dadec2360ba30c13331f376feacd75b23f856ac1e45e3c88a572fb91ff917e726d0cc7e6e1b6c5b73af48f53896592362c91d5 + languageName: node + linkType: hard + +"@formatjs/fast-memoize@npm:2.0.1": + version: 2.0.1 + resolution: "@formatjs/fast-memoize@npm:2.0.1" + dependencies: + tslib: ^2.4.0 + checksum: e434cdc53354666459c47556c403f0ed3391ebab0e851a64e5622d8d81e3b684a74a09c4bf5189885c66e743004601f64e2e2c8c70adf6b00071d4afea20f69d + languageName: node + linkType: hard + +"@formatjs/icu-messageformat-parser@npm:2.3.0": + version: 2.3.0 + resolution: "@formatjs/icu-messageformat-parser@npm:2.3.0" + dependencies: + "@formatjs/ecma402-abstract": 1.14.3 + "@formatjs/icu-skeleton-parser": 1.3.18 + tslib: ^2.4.0 + checksum: e8aca733bed81c94ec16fa9f1a88dbaf93a644a8c5796a6ab1e795112dd1f6c1e92528a123483d3034ac5e6b2b454481ef61f7e56e6e77f1467f9524be7fe331 + languageName: node + linkType: hard + +"@formatjs/icu-skeleton-parser@npm:1.3.18": + version: 1.3.18 + resolution: "@formatjs/icu-skeleton-parser@npm:1.3.18" + dependencies: + "@formatjs/ecma402-abstract": 1.14.3 + tslib: ^2.4.0 + checksum: 19655c452ed3c45db07b03c90fbfe6172655b0babb9579f2d9397ca2b3c56e5e17a3beed1d13af12104313e6ed1f14976d7c996756f1a59c977d6f3228518fad + languageName: node + linkType: hard + +"@formatjs/intl-localematcher@npm:0.2.32": + version: 0.2.32 + resolution: "@formatjs/intl-localematcher@npm:0.2.32" + dependencies: + tslib: ^2.4.0 + checksum: 477e18aabaf2e6e90fc12952a3cb6c0ebb40ad99414d6b9d2501c6348fbad58cacb433ec6630955cfd1491ea7630f32a9dc280bb27d0fb8a784251404a54140a + languageName: node + linkType: hard + +"@gar/promisify@npm:^1.1.3": + version: 1.1.3 + resolution: "@gar/promisify@npm:1.1.3" + checksum: 4059f790e2d07bf3c3ff3e0fec0daa8144fe35c1f6e0111c9921bd32106adaa97a4ab096ad7dab1e28ee6a9060083c4d1a4ada42a7f5f3f7a96b8812e2b757c1 + languageName: node + linkType: hard + +"@graphql-codegen/add@npm:4.0.1": + version: 4.0.1 + resolution: "@graphql-codegen/add@npm:4.0.1" + dependencies: + "@graphql-codegen/plugin-helpers": ^4.1.0 + tslib: ~2.5.0 + 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 + checksum: 0a1ee993cda0fd2adbffd79db03007e9eaa32830607ba6d46c12414bd9e0f568cee8c0d9ad976915b35a4647ff3201364383e57e023ab7dfd3b18f7c69c464e8 + languageName: node + linkType: hard + +"@graphql-codegen/cli@npm:3.2.2": + version: 3.2.2 + resolution: "@graphql-codegen/cli@npm:3.2.2" + dependencies: + "@babel/generator": ^7.18.13 + "@babel/template": ^7.18.10 + "@babel/types": ^7.18.13 + "@graphql-codegen/core": ^3.1.0 + "@graphql-codegen/plugin-helpers": ^4.1.0 + "@graphql-tools/apollo-engine-loader": ^7.3.6 + "@graphql-tools/code-file-loader": ^7.3.17 + "@graphql-tools/git-loader": ^7.2.13 + "@graphql-tools/github-loader": ^7.3.20 + "@graphql-tools/graphql-file-loader": ^7.5.0 + "@graphql-tools/json-file-loader": ^7.4.1 + "@graphql-tools/load": ^7.8.0 + "@graphql-tools/prisma-loader": ^7.2.49 + "@graphql-tools/url-loader": ^7.13.2 + "@graphql-tools/utils": ^9.0.0 + "@parcel/watcher": ^2.1.0 + "@whatwg-node/fetch": ^0.8.0 + chalk: ^4.1.0 + cosmiconfig: ^7.0.0 + debounce: ^1.2.0 + detect-indent: ^6.0.0 + graphql-config: ^4.5.0 + inquirer: ^8.0.0 + is-glob: ^4.0.1 + jiti: ^1.17.1 + json-to-pretty-yaml: ^1.2.2 + listr2: ^4.0.5 + log-symbols: ^4.0.0 + micromatch: ^4.0.5 + shell-quote: ^1.7.3 + string-env-interpolation: ^1.0.1 + ts-log: ^2.2.3 + tslib: ^2.4.0 + yaml: ^1.10.0 + yargs: ^17.0.0 + 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 + bin: + gql-gen: cjs/bin.js + graphql-code-generator: cjs/bin.js + graphql-codegen: cjs/bin.js + graphql-codegen-esm: esm/bin.js + checksum: b94284ac538a3504f96c7d507c140b7cfee30042209c4230ffc3068f05b6b27c75e1922b31c696363ab43e34e472ed194cc72996bbb10f59991cd2a4a35ff36e + languageName: node + linkType: hard + +"@graphql-codegen/core@npm:^3.1.0": + version: 3.1.0 + resolution: "@graphql-codegen/core@npm:3.1.0" + dependencies: + "@graphql-codegen/plugin-helpers": ^4.1.0 + "@graphql-tools/schema": ^9.0.0 + "@graphql-tools/utils": ^9.1.1 + tslib: ~2.5.0 + 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 + checksum: 7ace2b185242d00575b877b0bbb884c66915d246ba17a98c0ab82c2ee3a93ff2c9ae9d7d75a1d346de02ca8f12eb02801ffe2da4846da6e164b43176cd02dd8c + languageName: node + linkType: hard + +"@graphql-codegen/introspection@npm:3.0.1": + version: 3.0.1 + resolution: "@graphql-codegen/introspection@npm:3.0.1" + dependencies: + "@graphql-codegen/plugin-helpers": ^4.1.0 + "@graphql-codegen/visitor-plugin-common": ^3.0.1 + tslib: ~2.5.0 + 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 + checksum: 054ce28956e63ec2e5dbc4b0d812d2ca6784c72a17c936e0066b3792071749ec14bc39a73cea2407221b503a26cd65cb2eb3da59d632681b60aeee767024bbe2 + languageName: node + linkType: hard + +"@graphql-codegen/plugin-helpers@npm:^2.7.2": + version: 2.7.2 + resolution: "@graphql-codegen/plugin-helpers@npm:2.7.2" + dependencies: + "@graphql-tools/utils": ^8.8.0 + change-case-all: 1.0.14 + common-tags: 1.8.2 + import-from: 4.0.0 + lodash: ~4.17.0 + tslib: ~2.4.0 + 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 + checksum: 66e0d507ad5db60b67092ebf7632d464d56ab446ac8fd87c293e00d9016944912d8cf9199e3e026b0a9247a50f50c4118a44f49e13675db64211652cd6259b05 + languageName: node + linkType: hard + +"@graphql-codegen/plugin-helpers@npm:^4.1.0": + version: 4.1.0 + resolution: "@graphql-codegen/plugin-helpers@npm:4.1.0" + dependencies: + "@graphql-tools/utils": ^9.0.0 + change-case-all: 1.0.15 + common-tags: 1.8.2 + import-from: 4.0.0 + lodash: ~4.17.0 + tslib: ~2.5.0 + 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 + checksum: a4d89909d7a62bd7a93041b6073b1d46e912b42f7af1d15c44f7ed595ab1185b6c257cccf8272e0ae36ba22724578449d0e21524e8dbc21fb375da0620687868 + languageName: node + linkType: hard + +"@graphql-codegen/schema-ast@npm:^3.0.1": + version: 3.0.1 + resolution: "@graphql-codegen/schema-ast@npm:3.0.1" + dependencies: + "@graphql-codegen/plugin-helpers": ^4.1.0 + "@graphql-tools/utils": ^9.0.0 + tslib: ~2.5.0 + 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 + checksum: 620aa67a4ae59ccb4609763b7347d05e2cec62bf1362be3e1e01fc00969cdbb858398542aa261128e5b5e3cb6808b77861bdcf82662e80326e72b418f25f465f + languageName: node + linkType: hard + +"@graphql-codegen/typescript-operations@npm:3.0.2": + version: 3.0.2 + resolution: "@graphql-codegen/typescript-operations@npm:3.0.2" + dependencies: + "@graphql-codegen/plugin-helpers": ^4.1.0 + "@graphql-codegen/typescript": ^3.0.2 + "@graphql-codegen/visitor-plugin-common": 3.0.2 + auto-bind: ~4.0.0 + tslib: ~2.5.0 + 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 + checksum: 35005e34b978db6226c4e7018eaf346c77f0efcd2b121eb69af4669a2604a172415b50244867cc9701c41134a7a4312b92eeec82dcb756e282ba755aea1c4a28 + languageName: node + linkType: hard + +"@graphql-codegen/typescript-react-apollo@npm:3.3.7": + version: 3.3.7 + resolution: "@graphql-codegen/typescript-react-apollo@npm:3.3.7" + dependencies: + "@graphql-codegen/plugin-helpers": ^2.7.2 + "@graphql-codegen/visitor-plugin-common": 2.13.1 + auto-bind: ~4.0.0 + change-case-all: 1.0.14 + tslib: ~2.4.0 + 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-tag: ^2.0.0 + checksum: e21d111ce1c968499a7f233d15801725f67745c53b70a3d6c6076824f81787e7dda34b248e8f606c8a4920dd0c078db1cf644ebd6ffde9b4e7b5b0cd652a4127 + languageName: node + linkType: hard + +"@graphql-codegen/typescript@npm:3.0.2, @graphql-codegen/typescript@npm:^3.0.2": + version: 3.0.2 + resolution: "@graphql-codegen/typescript@npm:3.0.2" + dependencies: + "@graphql-codegen/plugin-helpers": ^4.1.0 + "@graphql-codegen/schema-ast": ^3.0.1 + "@graphql-codegen/visitor-plugin-common": 3.0.2 + auto-bind: ~4.0.0 + tslib: ~2.5.0 + peerDependencies: + graphql: ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: e92dc54804b6ad45fb2499b91cb89743e455a984684e2b1df1b1a8f479a0bbffa5c625be97ccb55874ac8b7316a820b546e9e312b22eda78012acd5c27594a28 + languageName: node + linkType: hard + +"@graphql-codegen/visitor-plugin-common@npm:2.13.1": + version: 2.13.1 + resolution: "@graphql-codegen/visitor-plugin-common@npm:2.13.1" + dependencies: + "@graphql-codegen/plugin-helpers": ^2.7.2 + "@graphql-tools/optimize": ^1.3.0 + "@graphql-tools/relay-operation-optimizer": ^6.5.0 + "@graphql-tools/utils": ^8.8.0 + auto-bind: ~4.0.0 + change-case-all: 1.0.14 + dependency-graph: ^0.11.0 + graphql-tag: ^2.11.0 + parse-filepath: ^1.0.2 + tslib: ~2.4.0 + 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 + checksum: 0c329aa6e435602f2f6c1569ec2091b7850f58cc5dca7ac763c38c82588545ec1110c1de587f5f3949b11ff96f94401d1e63e329607d78424583b276fd08f1ae + languageName: node + linkType: hard + +"@graphql-codegen/visitor-plugin-common@npm:3.0.2, @graphql-codegen/visitor-plugin-common@npm:^3.0.1": + version: 3.0.2 + resolution: "@graphql-codegen/visitor-plugin-common@npm:3.0.2" + dependencies: + "@graphql-codegen/plugin-helpers": ^4.1.0 + "@graphql-tools/optimize": ^1.3.0 + "@graphql-tools/relay-operation-optimizer": ^6.5.0 + "@graphql-tools/utils": ^9.0.0 + auto-bind: ~4.0.0 + change-case-all: 1.0.15 + dependency-graph: ^0.11.0 + graphql-tag: ^2.11.0 + parse-filepath: ^1.0.2 + tslib: ~2.5.0 + 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 + checksum: c8f941df7f8304b722b492ceaf15dddcf33e3a69bc29b54970908ffa12b14d92276958005bd307648e0cdc55f9e243d0fb390862f73a17a26bd50f6484ac42d6 + languageName: node + linkType: hard + +"@graphql-tools/apollo-engine-loader@npm:^7.3.6": + version: 7.3.26 + resolution: "@graphql-tools/apollo-engine-loader@npm:7.3.26" + dependencies: + "@ardatan/sync-fetch": ^0.0.1 + "@graphql-tools/utils": ^9.2.1 + "@whatwg-node/fetch": ^0.8.0 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 2dd0324cd677c0a399a3cda6f155e4367ac38c8f6ec8a36c50931e97ce93d70f716f95575bcfda33d5a5b3c75f0ba04c73b82d22613f1a89e3c31965f576ae22 + languageName: node + linkType: hard + +"@graphql-tools/batch-execute@npm:^8.5.18": + version: 8.5.18 + resolution: "@graphql-tools/batch-execute@npm:8.5.18" + dependencies: + "@graphql-tools/utils": 9.2.1 + dataloader: 2.2.2 + tslib: ^2.4.0 + value-or-promise: 1.0.12 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 4a5b5dec502a91bd657a4ddad74965d050d3994c89f036225fac58657b5a275bb374224b20484e3ba773525e75a5552c4a5af7b6d52859ce3a3b32aec2412b6e + languageName: node + linkType: hard + +"@graphql-tools/code-file-loader@npm:^7.3.17": + version: 7.3.21 + resolution: "@graphql-tools/code-file-loader@npm:7.3.21" + dependencies: + "@graphql-tools/graphql-tag-pluck": 7.5.0 + "@graphql-tools/utils": 9.2.1 + globby: ^11.0.3 + tslib: ^2.4.0 + unixify: ^1.0.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 5d0d0a70bac673b4925a65f2283e3fcc5c093d2466a144cc577cb515d3de92ca2458d92842e02fe82a95d57d30ce6d2998b8ee5674393f7cd3df52f69671d565 + languageName: node + linkType: hard + +"@graphql-tools/delegate@npm:9.0.28, @graphql-tools/delegate@npm:^9.0.27": + version: 9.0.28 + resolution: "@graphql-tools/delegate@npm:9.0.28" + dependencies: + "@graphql-tools/batch-execute": ^8.5.18 + "@graphql-tools/executor": ^0.0.15 + "@graphql-tools/schema": ^9.0.16 + "@graphql-tools/utils": ^9.2.1 + dataloader: ^2.2.2 + tslib: ^2.5.0 + value-or-promise: ^1.0.12 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: e24c757ea15a2b654268194bbf76188fca6692486d1b019b0ad7d48c264f92b7b681a43c8a8355ace48a29f9dd566c20e8707b6cef281331a813f23ee1c94375 + languageName: node + linkType: hard + +"@graphql-tools/executor-graphql-ws@npm:^0.0.12": + version: 0.0.12 + resolution: "@graphql-tools/executor-graphql-ws@npm:0.0.12" + dependencies: + "@graphql-tools/utils": 9.2.1 + "@repeaterjs/repeater": 3.0.4 + "@types/ws": ^8.0.0 + graphql-ws: 5.12.0 + isomorphic-ws: 5.0.0 + tslib: ^2.4.0 + ws: 8.12.1 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 017f970c19e843c24da9f2b2cf45b5d922f5652b05e34c69fb27c3882618c8cc6a6ee008d4e767c1e74b2ba8630147ec8c7821996ff0eb1724f15dc27b95d1fd + languageName: node + linkType: hard + +"@graphql-tools/executor-http@npm:^0.1.7": + version: 0.1.9 + resolution: "@graphql-tools/executor-http@npm:0.1.9" + dependencies: + "@graphql-tools/utils": ^9.2.1 + "@repeaterjs/repeater": ^3.0.4 + "@whatwg-node/fetch": ^0.8.1 + dset: ^3.1.2 + extract-files: ^11.0.0 + meros: ^1.2.1 + tslib: ^2.4.0 + value-or-promise: ^1.0.12 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: de62f839c3775141f444a6a453bf8cd01e42257a915845180b7f840b59bb781c21eeb59f68b609dcbab5bae73bc9fa40f3d16449f23410bc616b1f347dedf1d1 + languageName: node + linkType: hard + +"@graphql-tools/executor-legacy-ws@npm:^0.0.9": + version: 0.0.9 + resolution: "@graphql-tools/executor-legacy-ws@npm:0.0.9" + dependencies: + "@graphql-tools/utils": 9.2.1 + "@types/ws": ^8.0.0 + isomorphic-ws: 5.0.0 + tslib: ^2.4.0 + ws: 8.12.1 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 9f35a38d1e064d4c82eee8d91d0b12552f75b65a413e1defc3831c726c6304f26b3651d3bd26aff3f58e049e40639ddf9b27f681a8bc49fdf11fb693e0d05392 + languageName: node + linkType: hard + +"@graphql-tools/executor@npm:^0.0.15": + version: 0.0.15 + resolution: "@graphql-tools/executor@npm:0.0.15" + dependencies: + "@graphql-tools/utils": 9.2.1 + "@graphql-typed-document-node/core": 3.1.2 + "@repeaterjs/repeater": 3.0.4 + tslib: ^2.4.0 + value-or-promise: 1.0.12 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 7a963d6fcd00bd9c2a42f35a33bc9178576a1eeac755ce69981aa1e2c61238953b7ab9c11ffcfc86e49fdcf4fc057698c6f7169d6be580298e286076276b1295 + languageName: node + linkType: hard + +"@graphql-tools/git-loader@npm:^7.2.13": + version: 7.2.20 + resolution: "@graphql-tools/git-loader@npm:7.2.20" + dependencies: + "@graphql-tools/graphql-tag-pluck": 7.5.0 + "@graphql-tools/utils": 9.2.1 + is-glob: 4.0.3 + micromatch: ^4.0.4 + tslib: ^2.4.0 + unixify: ^1.0.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: a0f16d44c60261eb9680f907d56b86ce3dda4642118ef3c436946f8e5dc1390151b9fd5ae75d34736c78d16e3e1191c1596bd8a86866fe2384ee7b73b9000e29 + languageName: node + linkType: hard + +"@graphql-tools/github-loader@npm:^7.3.20": + version: 7.3.27 + resolution: "@graphql-tools/github-loader@npm:7.3.27" + dependencies: + "@ardatan/sync-fetch": ^0.0.1 + "@graphql-tools/graphql-tag-pluck": ^7.4.6 + "@graphql-tools/utils": ^9.2.1 + "@whatwg-node/fetch": ^0.8.0 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 467d5c9f0df5a26656dbd5939768335277eb25023331a359fd4748c2cd85de85affe8d7ac93ac9d51202ed208c54357561e32e2520fae28fdbc42dda72dd99f4 + languageName: node + linkType: hard + +"@graphql-tools/graphql-file-loader@npm:^7.3.7, @graphql-tools/graphql-file-loader@npm:^7.5.0": + version: 7.5.16 + resolution: "@graphql-tools/graphql-file-loader@npm:7.5.16" + dependencies: + "@graphql-tools/import": 6.7.17 + "@graphql-tools/utils": 9.2.1 + globby: ^11.0.3 + tslib: ^2.4.0 + unixify: ^1.0.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 5f9af56511a2f791677ad2601e745053d3f28b3afdf5542261e4bbf9924b9872244dcb0c9f6c7ca7fe91b658c12f4d91529efd9638653e112ad75bf79c915d78 + languageName: node + linkType: hard + +"@graphql-tools/graphql-tag-pluck@npm:7.5.0, @graphql-tools/graphql-tag-pluck@npm:^7.4.6": + version: 7.5.0 + resolution: "@graphql-tools/graphql-tag-pluck@npm:7.5.0" + dependencies: + "@babel/parser": ^7.16.8 + "@babel/plugin-syntax-import-assertions": 7.20.0 + "@babel/traverse": ^7.16.8 + "@babel/types": ^7.16.8 + "@graphql-tools/utils": 9.2.1 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 47edaacdeafc4a464f8a51e047cafbb82a9a2700536a5b075eb4afad43c80b513a7b0ac4ad49a1e8a74b566ed7dfd677ebb0d0a967fe1e2ee66408cd5d4f294b + languageName: node + linkType: hard + +"@graphql-tools/import@npm:6.7.17": + version: 6.7.17 + resolution: "@graphql-tools/import@npm:6.7.17" + dependencies: + "@graphql-tools/utils": 9.2.1 + resolve-from: 5.0.0 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 232debc4abed340f9ab04a9474e6f1af0f50d5b6b66dc6f7b7307872a27bd00745bc4fad1d7d00bf3503686766d2e26c9c42c4f1e2409111799ad80119a8303a + languageName: node + linkType: hard + +"@graphql-tools/json-file-loader@npm:^7.3.7, @graphql-tools/json-file-loader@npm:^7.4.1": + version: 7.4.17 + resolution: "@graphql-tools/json-file-loader@npm:7.4.17" + dependencies: + "@graphql-tools/utils": 9.2.1 + globby: ^11.0.3 + tslib: ^2.4.0 + unixify: ^1.0.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 54e4d1acf5bb1b55d72500b2ebb521d821edfb99ad7c1b0f0d6b2e3f87cfcda2d61ce6d4a886117ac11fb94354da6f7435f35a1ffdc359cf2e39da1d0fde76c5 + languageName: node + linkType: hard + +"@graphql-tools/load@npm:^7.5.5, @graphql-tools/load@npm:^7.8.0": + version: 7.8.13 + resolution: "@graphql-tools/load@npm:7.8.13" + dependencies: + "@graphql-tools/schema": 9.0.17 + "@graphql-tools/utils": 9.2.1 + p-limit: 3.1.0 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: f8dafe3b1575a33234b798751a6ec4ee9d78bfb32055395da45f7081737d30f863fe5bb2cc8c2aadd5b46d3a443d1dec75d7f2cc58399c071ac35c8470cb7ff6 + languageName: node + linkType: hard + +"@graphql-tools/merge@npm:8.4.0, @graphql-tools/merge@npm:^8.2.6": + version: 8.4.0 + resolution: "@graphql-tools/merge@npm:8.4.0" + dependencies: + "@graphql-tools/utils": 9.2.1 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 32265749833615ac2cb3d958318f5c46b7bd5ec858acfbad7136d379594ec3c98ba67ba5f04f4061187e5dfd52bb277155cd98fdeb2b4c5535c16bdb4f117ae0 + languageName: node + linkType: hard + +"@graphql-tools/optimize@npm:^1.3.0": + version: 1.3.1 + resolution: "@graphql-tools/optimize@npm:1.3.1" + dependencies: + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 4eed041bc3199a70ab426eeb10bc4af65f18fa0c5907613aec236fd7e14918d0f895e12489df6ff501562415eef64c99777a3ca6f6a4ee3c796b68e7cb778342 + languageName: node + linkType: hard + +"@graphql-tools/prisma-loader@npm:^7.2.49": + version: 7.2.65 + resolution: "@graphql-tools/prisma-loader@npm:7.2.65" + dependencies: + "@graphql-tools/url-loader": 7.17.14 + "@graphql-tools/utils": 9.2.1 + "@types/js-yaml": ^4.0.0 + "@types/json-stable-stringify": ^1.0.32 + chalk: ^4.1.0 + debug: ^4.3.1 + dotenv: ^16.0.0 + graphql-request: ^5.0.0 + http-proxy-agent: ^5.0.0 + https-proxy-agent: ^5.0.0 + isomorphic-fetch: ^3.0.0 + jose: ^4.11.4 + js-yaml: ^4.0.0 + json-stable-stringify: ^1.0.1 + lodash: ^4.17.20 + scuid: ^1.1.0 + tslib: ^2.4.0 + yaml-ast-parser: ^0.0.43 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 2354b7e2074b7a519984bb36f1923a1d24c26b83db5e3ad9c319a3e94365c469984fd8e0a442b9a1d6740e7b25830ae31069c89c2ae3c1ac63fa87b444d2b58f + languageName: node + linkType: hard + +"@graphql-tools/relay-operation-optimizer@npm:^6.5.0": + version: 6.5.17 + resolution: "@graphql-tools/relay-operation-optimizer@npm:6.5.17" + dependencies: + "@ardatan/relay-compiler": 12.0.0 + "@graphql-tools/utils": 9.2.1 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 1e5163390b2834c2246c4842c9ca7b9a63cdff17f5b5afe5934bbb837b5b26e14e2144ef3fad992e3618d4012fb6736a71c34a38e1fdb4e628e3de7f74fac8bd + languageName: node + linkType: hard + +"@graphql-tools/schema@npm:9.0.17, @graphql-tools/schema@npm:^9.0.0, @graphql-tools/schema@npm:^9.0.16": + version: 9.0.17 + resolution: "@graphql-tools/schema@npm:9.0.17" + dependencies: + "@graphql-tools/merge": 8.4.0 + "@graphql-tools/utils": 9.2.1 + tslib: ^2.4.0 + value-or-promise: 1.0.12 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 1c6513dd88b47d07702d01a48941ee164c4090c69b2475b1dde48a3d8866ed48fd39a33d15510682f6d8c18d19ceb72b77104eb4edbb194f96a129cc03909e89 + languageName: node + linkType: hard + +"@graphql-tools/url-loader@npm:7.17.14, @graphql-tools/url-loader@npm:^7.13.2, @graphql-tools/url-loader@npm:^7.9.7": + version: 7.17.14 + resolution: "@graphql-tools/url-loader@npm:7.17.14" + dependencies: + "@ardatan/sync-fetch": ^0.0.1 + "@graphql-tools/delegate": ^9.0.27 + "@graphql-tools/executor-graphql-ws": ^0.0.12 + "@graphql-tools/executor-http": ^0.1.7 + "@graphql-tools/executor-legacy-ws": ^0.0.9 + "@graphql-tools/utils": ^9.2.1 + "@graphql-tools/wrap": ^9.3.8 + "@types/ws": ^8.0.0 + "@whatwg-node/fetch": ^0.8.0 + isomorphic-ws: ^5.0.0 + tslib: ^2.4.0 + value-or-promise: ^1.0.11 + ws: ^8.12.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: a9473c0d49299d4807c5ab881407b7e96989a06cc583bddd34eb059295fd847df982bf95b82fc713150ac60fe1ccdd1db78bc17e3903db44684b5cce0f7cb82a + languageName: node + linkType: hard + +"@graphql-tools/utils@npm:9.2.1, @graphql-tools/utils@npm:^9.0.0, @graphql-tools/utils@npm:^9.1.1, @graphql-tools/utils@npm:^9.2.1": + version: 9.2.1 + resolution: "@graphql-tools/utils@npm:9.2.1" + dependencies: + "@graphql-typed-document-node/core": ^3.1.1 + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 94ed12df5f49e5c338322ffd931236a687a3d5c443bf499f9baab5d4fcd9792234111142be8aa506a01ca2e82732996c4e1d8f6159ff9cc7fdc5c97f63e55226 + languageName: node + linkType: hard + +"@graphql-tools/utils@npm:^8.8.0": + version: 8.13.1 + resolution: "@graphql-tools/utils@npm:8.13.1" + dependencies: + tslib: ^2.4.0 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: ff04fdeb29e9ac596ea53386cd5b23cd741bb14c1997c6b0ba3c34ca165bd82b528a355e8c8e2ba726eb39e833ba9cbb0851ba0addb8c6d367089a1145bf9a49 + languageName: node + linkType: hard + +"@graphql-tools/wrap@npm:^9.3.8": + version: 9.3.8 + resolution: "@graphql-tools/wrap@npm:9.3.8" + dependencies: + "@graphql-tools/delegate": 9.0.28 + "@graphql-tools/schema": 9.0.17 + "@graphql-tools/utils": 9.2.1 + tslib: ^2.4.0 + value-or-promise: 1.0.12 + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 1f280b939f1c8c33be8fbd92c0584e9125e30c59ce6f75f20657235d24e5a2c01eb3214eda9ae74d431d9da072cdfa6cedeafdc5b352dd33de439ba42402efcb + languageName: node + linkType: hard + +"@graphql-typed-document-node/core@npm:3.1.2": + version: 3.1.2 + resolution: "@graphql-typed-document-node/core@npm:3.1.2" + 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 + checksum: a61afa025acdabd7833e4f654a5802fc1a526171f81e0c435c8e651050a5a0682499a2c7a51304ceb61fde36cd69fc7975ce5e1b16b9ba7ea474c649f33eea8b + languageName: node + linkType: hard + +"@graphql-typed-document-node/core@npm:^3.1.1": + version: 3.2.0 + resolution: "@graphql-typed-document-node/core@npm:3.2.0" + 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 + checksum: fa44443accd28c8cf4cb96aaaf39d144a22e8b091b13366843f4e97d19c7bfeaf609ce3c7603a4aeffe385081eaf8ea245d078633a7324c11c5ec4b2011bb76d + languageName: node + linkType: hard + +"@humanwhocodes/config-array@npm:^0.11.8": + version: 0.11.8 + resolution: "@humanwhocodes/config-array@npm:0.11.8" + dependencies: + "@humanwhocodes/object-schema": ^1.2.1 + debug: ^4.1.1 + minimatch: ^3.0.5 + checksum: 0fd6b3c54f1674ce0a224df09b9c2f9846d20b9e54fabae1281ecfc04f2e6ad69bf19e1d6af6a28f88e8aa3990168b6cb9e1ef755868c3256a630605ec2cb1d3 + languageName: node + linkType: hard + +"@humanwhocodes/module-importer@npm:^1.0.1": + version: 1.0.1 + resolution: "@humanwhocodes/module-importer@npm:1.0.1" + checksum: 0fd22007db8034a2cdf2c764b140d37d9020bbfce8a49d3ec5c05290e77d4b0263b1b972b752df8c89e5eaa94073408f2b7d977aed131faf6cf396ebb5d7fb61 + languageName: node + linkType: hard + +"@humanwhocodes/object-schema@npm:^1.2.1": + version: 1.2.1 + resolution: "@humanwhocodes/object-schema@npm:1.2.1" + checksum: a824a1ec31591231e4bad5787641f59e9633827d0a2eaae131a288d33c9ef0290bd16fda8da6f7c0fcb014147865d12118df10db57f27f41e20da92369fcb3f1 + languageName: node + linkType: hard + +"@internationalized/date@npm:^3.1.0": + version: 3.1.0 + resolution: "@internationalized/date@npm:3.1.0" + dependencies: + "@swc/helpers": ^0.4.14 + checksum: 7ff8dd994a6efddcbe7d0c762504f81b2b9f87de858245fd974e9f87f7fb4cfe54918cc910f14aadadbb7575597e51ef10afa7cb529f4fd07fbc7ad72bdc9550 + languageName: node + linkType: hard + +"@internationalized/message@npm:^3.1.0": + version: 3.1.0 + resolution: "@internationalized/message@npm:3.1.0" + dependencies: + "@swc/helpers": ^0.4.14 + intl-messageformat: ^10.1.0 + checksum: 4e0be02342938369a384275be0fcc90677af7d710137b247248346c590f9f33314bf4c760a95205388f5c1e95dfaad2603988cdb2fefac06a677d59bee64dd11 + languageName: node + linkType: hard + +"@internationalized/number@npm:^3.2.0": + version: 3.2.0 + resolution: "@internationalized/number@npm:3.2.0" + dependencies: + "@swc/helpers": ^0.4.14 + checksum: 1e61b62a4f763b4327fa5687948792a95eb03b919696c64b27835e6e217462997e1b23d4fc984f45568bcb13174df0db7c0f5177d25fde9824d5a42333fc369a + languageName: node + linkType: hard + +"@internationalized/string@npm:^3.1.0": + version: 3.1.0 + resolution: "@internationalized/string@npm:3.1.0" + dependencies: + "@swc/helpers": ^0.4.14 + checksum: 0a47b1dcc2d75207ff1f7e9ffe300cfec94a3b9f361f309c76dfa0614babb8e48f788c6d23c33637f337b752c458731e495ca9c398eb00756efc229e591b12e9 + languageName: node + linkType: hard + +"@jridgewell/gen-mapping@npm:^0.1.0": + version: 0.1.1 + resolution: "@jridgewell/gen-mapping@npm:0.1.1" + dependencies: + "@jridgewell/set-array": ^1.0.0 + "@jridgewell/sourcemap-codec": ^1.4.10 + checksum: 3bcc21fe786de6ffbf35c399a174faab05eb23ce6a03e8769569de28abbf4facc2db36a9ddb0150545ae23a8d35a7cf7237b2aa9e9356a7c626fb4698287d5cc + languageName: node + linkType: hard + +"@jridgewell/gen-mapping@npm:^0.3.2": + version: 0.3.2 + resolution: "@jridgewell/gen-mapping@npm:0.3.2" + dependencies: + "@jridgewell/set-array": ^1.0.1 + "@jridgewell/sourcemap-codec": ^1.4.10 + "@jridgewell/trace-mapping": ^0.3.9 + checksum: 1832707a1c476afebe4d0fbbd4b9434fdb51a4c3e009ab1e9938648e21b7a97049fa6009393bdf05cab7504108413441df26d8a3c12193996e65493a4efb6882 + languageName: node + linkType: hard + +"@jridgewell/resolve-uri@npm:3.1.0": + version: 3.1.0 + resolution: "@jridgewell/resolve-uri@npm:3.1.0" + checksum: b5ceaaf9a110fcb2780d1d8f8d4a0bfd216702f31c988d8042e5f8fbe353c55d9b0f55a1733afdc64806f8e79c485d2464680ac48a0d9fcadb9548ee6b81d267 + languageName: node + linkType: hard + +"@jridgewell/set-array@npm:^1.0.0, @jridgewell/set-array@npm:^1.0.1": + version: 1.1.2 + resolution: "@jridgewell/set-array@npm:1.1.2" + checksum: 69a84d5980385f396ff60a175f7177af0b8da4ddb81824cb7016a9ef914eee9806c72b6b65942003c63f7983d4f39a5c6c27185bbca88eb4690b62075602e28e + languageName: node + linkType: hard + +"@jridgewell/sourcemap-codec@npm:1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.13": + version: 1.4.14 + resolution: "@jridgewell/sourcemap-codec@npm:1.4.14" + checksum: 61100637b6d173d3ba786a5dff019e1a74b1f394f323c1fee337ff390239f053b87266c7a948777f4b1ee68c01a8ad0ab61e5ff4abb5a012a0b091bec391ab97 + languageName: node + linkType: hard + +"@jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.9": + version: 0.3.17 + resolution: "@jridgewell/trace-mapping@npm:0.3.17" + dependencies: + "@jridgewell/resolve-uri": 3.1.0 + "@jridgewell/sourcemap-codec": 1.4.14 + checksum: 9d703b859cff5cd83b7308fd457a431387db5db96bd781a63bf48e183418dd9d3d44e76b9e4ae13237f6abeeb25d739ec9215c1d5bfdd08f66f750a50074a339 + languageName: node + linkType: hard + +"@jumpn/utils-array@npm:0.3.4": + version: 0.3.4 + resolution: "@jumpn/utils-array@npm:0.3.4" + dependencies: + babel-polyfill: 6.26.0 + babel-runtime: 6.26.0 + flow-static-land: 0.2.7 + checksum: 4133d46ee6291a97aebe7972c9ad11ed5c3a180490d71649e06eda22a61212f391dc44529c4e5057971066dacce8557018fbcd54ff832390f12acaa01547a36d + languageName: node + linkType: hard + +"@jumpn/utils-composite@npm:0.7.0": + version: 0.7.0 + resolution: "@jumpn/utils-composite@npm:0.7.0" + dependencies: + "@jumpn/utils-array": 0.3.4 + babel-polyfill: 6.26.0 + babel-runtime: 6.26.0 + fast-deep-equal: 1.0.0 + flow-static-land: 0.2.8 + checksum: 1f835367ea3a320870498b8a0263f77b96e20ecd5facdfd7c5e8e2a5a1c1987ea28ecebb6b7b92db42c16d72383446a4f8e42b30e893379e62149cdc827dd3fa + languageName: node + linkType: hard + +"@jumpn/utils-graphql@npm:0.6.0": + version: 0.6.0 + resolution: "@jumpn/utils-graphql@npm:0.6.0" + dependencies: + "@babel/runtime": 7.2.0 + core-js: 2.6.0 + graphql: 14.0.2 + checksum: 66ec04d8a2170112160b42fdc506d366f1b64844de3ac06c10fd0d9ccc5a80f9aa0daae567a9d0a0b3a4ec537d17bc2eb0c03c514f08d07b9f64ba3bc857d8eb + languageName: node + linkType: hard + +"@monaco-editor/loader@npm:^1.3.2": + version: 1.3.2 + resolution: "@monaco-editor/loader@npm:1.3.2" + dependencies: + state-local: ^1.0.6 + peerDependencies: + monaco-editor: ">= 0.21.0 < 1" + checksum: 7a1b65052bbaf4ef826392687bd7cfaf839509611034d2d616783b5d3fee91ed304d9086517c3b5f9099707828c57c855ff43407b3c2f5ae480faebb104d4343 + languageName: node + linkType: hard + +"@monaco-editor/react@npm:4.4.6": + version: 4.4.6 + resolution: "@monaco-editor/react@npm:4.4.6" + dependencies: + "@monaco-editor/loader": ^1.3.2 + prop-types: ^15.7.2 + peerDependencies: + monaco-editor: ">= 0.25.0 < 1" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: cb25b5ce153608c2a4291390456488e100c5e3ac48a913875c98182836e2a9f315d4f96e85cf6f7d4b1eadff8d08d13356e38891b472894155bcb2c4aeaf3b1c + languageName: node + linkType: hard + +"@nicolo-ribaudo/eslint-scope-5-internals@npm:5.1.1-v1": + version: 5.1.1-v1 + resolution: "@nicolo-ribaudo/eslint-scope-5-internals@npm:5.1.1-v1" + dependencies: + eslint-scope: 5.1.1 + checksum: f2e3b2d6a6e2d9f163ca22105910c9f850dc4897af0aea3ef0a5886b63d8e1ba6505b71c99cb78a3bba24a09557d601eb21c8dede3f3213753fcfef364eb0e57 + languageName: node + linkType: hard + +"@nodelib/fs.scandir@npm:2.1.5": + version: 2.1.5 + resolution: "@nodelib/fs.scandir@npm:2.1.5" + dependencies: + "@nodelib/fs.stat": 2.0.5 + run-parallel: ^1.1.9 + checksum: a970d595bd23c66c880e0ef1817791432dbb7acbb8d44b7e7d0e7a22f4521260d4a83f7f9fd61d44fda4610105577f8f58a60718105fb38352baed612fd79e59 + languageName: node + linkType: hard + +"@nodelib/fs.stat@npm:2.0.5, @nodelib/fs.stat@npm:^2.0.2": + version: 2.0.5 + resolution: "@nodelib/fs.stat@npm:2.0.5" + checksum: 012480b5ca9d97bff9261571dbbec7bbc6033f69cc92908bc1ecfad0792361a5a1994bc48674b9ef76419d056a03efadfce5a6cf6dbc0a36559571a7a483f6f0 + languageName: node + linkType: hard + +"@nodelib/fs.walk@npm:^1.2.3, @nodelib/fs.walk@npm:^1.2.8": + version: 1.2.8 + resolution: "@nodelib/fs.walk@npm:1.2.8" + dependencies: + "@nodelib/fs.scandir": 2.1.5 + fastq: ^1.6.0 + checksum: 190c643f156d8f8f277bf2a6078af1ffde1fd43f498f187c2db24d35b4b4b5785c02c7dc52e356497b9a1b65b13edc996de08de0b961c32844364da02986dc53 + languageName: node + linkType: hard + +"@npmcli/fs@npm:^2.1.0": + version: 2.1.2 + resolution: "@npmcli/fs@npm:2.1.2" + dependencies: + "@gar/promisify": ^1.1.3 + semver: ^7.3.5 + checksum: 405074965e72d4c9d728931b64d2d38e6ea12066d4fad651ac253d175e413c06fe4350970c783db0d749181da8fe49c42d3880bd1cbc12cd68e3a7964d820225 + languageName: node + linkType: hard + +"@npmcli/move-file@npm:^2.0.0": + version: 2.0.1 + resolution: "@npmcli/move-file@npm:2.0.1" + dependencies: + mkdirp: ^1.0.4 + rimraf: ^3.0.2 + checksum: 52dc02259d98da517fae4cb3a0a3850227bdae4939dda1980b788a7670636ca2b4a01b58df03dd5f65c1e3cb70c50fa8ce5762b582b3f499ec30ee5ce1fd9380 + languageName: node + linkType: hard + +"@parcel/watcher@npm:^2.1.0": + version: 2.1.0 + resolution: "@parcel/watcher@npm:2.1.0" + dependencies: + is-glob: ^4.0.3 + micromatch: ^4.0.5 + node-addon-api: ^3.2.1 + node-gyp: latest + node-gyp-build: ^4.3.0 + checksum: 17f512ad6d5dbb40053ceea7091f8af754afc63786b8f050b225b89a8ba24900468aad8bc4edb25c0349b4c0c8d061f50aa19242c0af52cbc30e6ebf50c7bf4c + languageName: node + linkType: hard + +"@peculiar/asn1-schema@npm:^2.3.6": + version: 2.3.6 + resolution: "@peculiar/asn1-schema@npm:2.3.6" + dependencies: + asn1js: ^3.0.5 + pvtsutils: ^1.3.2 + tslib: ^2.4.0 + checksum: fc09387c6e3dea07fca21b54ea8c71ce3ec0f8c92377237e51aef729f0c2df92781aa7a18a546a6fe809519faeaa222df576ec21a35c6095037a78677204a55b + languageName: node + linkType: hard + +"@peculiar/json-schema@npm:^1.1.12": + version: 1.1.12 + resolution: "@peculiar/json-schema@npm:1.1.12" + dependencies: + tslib: ^2.0.0 + checksum: b26ececdc23c5ef25837f8be8d1eb5e1c8bb6e9ae7227ac59ffea57fff56bd05137734e7685e9100595d3d88d906dff638ef8d1df54264c388d3eac1b05aa060 + languageName: node + linkType: hard + +"@peculiar/webcrypto@npm:^1.4.0": + version: 1.4.3 + resolution: "@peculiar/webcrypto@npm:1.4.3" + dependencies: + "@peculiar/asn1-schema": ^2.3.6 + "@peculiar/json-schema": ^1.1.12 + pvtsutils: ^1.3.2 + tslib: ^2.5.0 + webcrypto-core: ^1.7.7 + checksum: 5604c02b7e9a8cef61bb4430e733e939c7737533ba65ba5fac4beb3a6d613add478ab45455cb57506789b6d00704d83e4965a0f712de3e8f40706e0961670e5c + languageName: node + linkType: hard + +"@pluralsh/design-system@npm:1.330.1": + version: 1.330.1 + resolution: "@pluralsh/design-system@npm:1.330.1" + dependencies: + "@floating-ui/react-dom-interactions": 0.13.3 + "@monaco-editor/react": 4.4.6 + "@react-aria/button": 3.7.0 + "@react-aria/checkbox": 3.8.0 + "@react-aria/combobox": 3.5.0 + "@react-aria/focus": 3.11.0 + "@react-aria/interactions": 3.14.0 + "@react-aria/listbox": 3.8.0 + "@react-aria/overlays": 3.13.0 + "@react-aria/radio": 3.5.0 + "@react-aria/select": 3.9.0 + "@react-aria/slider": 3.3.0 + "@react-aria/tabs": 3.4.0 + "@react-aria/utils": 3.15.0 + "@react-aria/visually-hidden": 3.7.0 + "@react-stately/collections": 3.6.0 + "@react-stately/combobox": 3.4.0 + "@react-stately/overlays": 3.5.0 + "@react-stately/radio": 3.7.0 + "@react-stately/slider": 3.3.0 + "@react-stately/tabs": 3.3.0 + "@react-stately/toggle": 3.5.0 + "@react-types/shared": 3.17.0 + "@tanstack/match-sorter-utils": 8.7.6 + "@tanstack/react-table": 8.7.9 + "@tanstack/react-virtual": 3.0.0-beta.48 + "@types/chroma-js": 2.1.5 + chroma-js: 2.4.2 + classnames: 2.3.2 + grommet: 2.29.1 + grommet-icons: 4.9.0 + highlight.js: 11.7.0 + honorable-recipe-mapper: 0.2.0 + immer: 9.0.19 + moment: 2.29.4 + prop-types: 15.8.1 + react-animate-height: 3.1.0 + react-markdown: 8.0.5 + react-merge-refs: 2.0.1 + react-spring: 9.6.1 + react-use-measure: 2.1.1 + react-virtual: 2.10.4 + rehype-raw: 6.1.1 + resize-observer-polyfill: 1.5.1 + styled-container-query: 1.3.5 + use-immer: 0.8.1 + peerDependencies: + "@emotion/react": ">=11.9.3" + "@emotion/styled": ">=11.9.3" + honorable: ">=1.0.0-beta.17" + honorable-theme-default: ">=1.0.0-beta.5" + react: ">=16.0.0" + react-dom: ">=16.0.0" + react-transition-group: ">=4.4.2" + styled-components: ">=5.3.5" + checksum: 66c28d9ce652d6a16095b56bee9a6aa6559400e839079df9fd7aae9811adb0866f3420d1209c208aba85c6e96360e5cf97d9527f2229ab614b4a5e5d52426e15 + languageName: node + linkType: hard + +"@pluralsh/eslint-config-pluralsh@npm:1.4.13": + version: 1.4.13 + resolution: "@pluralsh/eslint-config-pluralsh@npm:1.4.13" + dependencies: + eslint: 8.32.0 + eslint-config-airbnb: 19.0.4 + eslint-plugin-import: 2.27.5 + eslint-plugin-import-newlines: ^1.2.3 + eslint-plugin-jsx-a11y: 6.7.1 + eslint-plugin-react: 7.32.1 + eslint-plugin-react-hooks: 4.6.0 + checksum: 4755f86ae2643616cd7e4fd6c72e9b41632c1aef2029fa95c526b0256848d1a20ebaf01ed3505eaeaaaca209039c1873823a0c30ef5a055bb9371f7d46662632 + languageName: node + linkType: hard + +"@pluralsh/eslint-config-typescript@npm:2.5.41": + version: 2.5.41 + resolution: "@pluralsh/eslint-config-typescript@npm:2.5.41" + dependencies: + "@babel/core": 7.20.12 + "@babel/eslint-parser": 7.19.1 + "@babel/preset-env": 7.20.2 + "@babel/preset-react": 7.18.6 + "@pluralsh/eslint-config-pluralsh": 1.4.13 + "@types/node": 18.15.5 + "@typescript-eslint/eslint-plugin": 5.49.0 + "@typescript-eslint/parser": 5.49.0 + eslint: 8.36.0 + typescript: 4.9.4 + checksum: f6e34884b0b54ecd7fd484373ff67c0aad2d344c27c103f552fb871b123b3ad252973c1dd16ff1fc6e61dffd31a11f34342427554c65c69880596850133a1e56 + languageName: node + linkType: hard + +"@reach/observe-rect@npm:^1.1.0": + version: 1.2.0 + resolution: "@reach/observe-rect@npm:1.2.0" + checksum: 7dd903eeaad0e22c6d973bd26265d91eadba56ab5134701ceb3e85214db75339fae94aa7e8b88a65e8daa64bc7cf1b915d4ffcdfd324466b561dc6adc3c6e070 + languageName: node + linkType: hard + +"@react-aria/button@npm:3.7.0": + version: 3.7.0 + resolution: "@react-aria/button@npm:3.7.0" + dependencies: + "@react-aria/focus": ^3.11.0 + "@react-aria/interactions": ^3.14.0 + "@react-aria/utils": ^3.15.0 + "@react-stately/toggle": ^3.5.0 + "@react-types/button": ^3.7.1 + "@react-types/shared": ^3.17.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: cddf62f9163d51d1284f540650a8904f81c1172798f05936fb386db572bb185d5e08e16d44313c0965293632ac845b4f8feb229231791a43015857768c822de9 + languageName: node + linkType: hard + +"@react-aria/checkbox@npm:3.8.0": + version: 3.8.0 + resolution: "@react-aria/checkbox@npm:3.8.0" + dependencies: + "@react-aria/label": ^3.5.0 + "@react-aria/toggle": ^3.5.0 + "@react-aria/utils": ^3.15.0 + "@react-stately/checkbox": ^3.4.0 + "@react-stately/toggle": ^3.5.0 + "@react-types/checkbox": ^3.4.2 + "@react-types/shared": ^3.17.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: 848e88d2fc7168dfda5e95c60b0e232a16cfc3a4ffca6db45449f3569e3562acfd7786ea676c2f6dc53b3da2b00d396eca71c757cbad9416d703c559bcbd847a + languageName: node + linkType: hard + +"@react-aria/combobox@npm:3.5.0": + version: 3.5.0 + resolution: "@react-aria/combobox@npm:3.5.0" + dependencies: + "@react-aria/i18n": ^3.7.0 + "@react-aria/interactions": ^3.14.0 + "@react-aria/listbox": ^3.8.0 + "@react-aria/live-announcer": ^3.2.0 + "@react-aria/menu": ^3.8.0 + "@react-aria/overlays": ^3.13.0 + "@react-aria/selection": ^3.13.0 + "@react-aria/textfield": ^3.9.0 + "@react-aria/utils": ^3.15.0 + "@react-stately/collections": ^3.6.0 + "@react-stately/combobox": ^3.4.0 + "@react-stately/layout": ^3.11.0 + "@react-types/button": ^3.7.1 + "@react-types/combobox": ^3.6.0 + "@react-types/shared": ^3.17.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: 5f0c0586eae1a341a7b5cf950035fc6c105662222d8ac873d02e4473a67f360d6b949784db790e85893dc15bc8d366f4d335b6c3e0acffe5628a856c591b0fba + languageName: node + linkType: hard + +"@react-aria/focus@npm:3.11.0, @react-aria/focus@npm:^3.11.0": + version: 3.11.0 + resolution: "@react-aria/focus@npm:3.11.0" + dependencies: + "@react-aria/interactions": ^3.14.0 + "@react-aria/utils": ^3.15.0 + "@react-types/shared": ^3.17.0 + "@swc/helpers": ^0.4.14 + clsx: ^1.1.1 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: f734d7f8d10b5088257742090e9881cea3e634bdc547a9daf8b4afaf67d691ff61457a4d5abec5b4a2faab26cc142f444737286f821a6e8e5014195340708114 + languageName: node + linkType: hard + +"@react-aria/i18n@npm:^3.7.0": + version: 3.7.0 + resolution: "@react-aria/i18n@npm:3.7.0" + dependencies: + "@internationalized/date": ^3.1.0 + "@internationalized/message": ^3.1.0 + "@internationalized/number": ^3.2.0 + "@internationalized/string": ^3.1.0 + "@react-aria/ssr": ^3.5.0 + "@react-aria/utils": ^3.15.0 + "@react-types/shared": ^3.17.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: cdbfe335f66964b08111743b6e575a364f1cdac26c357ed134356448fd99d0e4810156992cca7e63de2d9abf536e879169586df88d0bb6491e31efd9f5ad6fc3 + languageName: node + linkType: hard + +"@react-aria/interactions@npm:3.14.0, @react-aria/interactions@npm:^3.14.0": + version: 3.14.0 + resolution: "@react-aria/interactions@npm:3.14.0" + dependencies: + "@react-aria/utils": ^3.15.0 + "@react-types/shared": ^3.17.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: d4e2dd2617bdaa60025a9f50e2c314b2a74c56dba40cc536b909b78bb1c1268a25c5593f28661c86b1d2d37a443878dcacf86a3d6d597abfe8afee258b103ed8 + languageName: node + linkType: hard + +"@react-aria/label@npm:^3.5.0": + version: 3.5.0 + resolution: "@react-aria/label@npm:3.5.0" + dependencies: + "@react-aria/utils": ^3.15.0 + "@react-types/label": ^3.7.2 + "@react-types/shared": ^3.17.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: 598fd0ffb2ec42b9d778fb0152df656fc5c93df151ebd5462875170b592c8f548658c05c8d8bd676da6a98d764ee195a7f3323dc1e485d28963d5789cdf5307a + languageName: node + linkType: hard + +"@react-aria/listbox@npm:3.8.0": + version: 3.8.0 + resolution: "@react-aria/listbox@npm:3.8.0" + dependencies: + "@react-aria/focus": ^3.11.0 + "@react-aria/interactions": ^3.14.0 + "@react-aria/label": ^3.5.0 + "@react-aria/selection": ^3.13.0 + "@react-aria/utils": ^3.15.0 + "@react-stately/collections": ^3.6.0 + "@react-stately/list": ^3.7.0 + "@react-types/listbox": ^3.4.0 + "@react-types/shared": ^3.17.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: 99b3ab140d024a8740545a76c04311d76e4403038b2b3fee7f89a180af9350a06a450796c88d8df012b9325d4234fd8dadbd9e8b821aeb0f83f67e7e71271cf7 + languageName: node + linkType: hard + +"@react-aria/listbox@npm:^3.8.0": + version: 3.8.1 + resolution: "@react-aria/listbox@npm:3.8.1" + dependencies: + "@react-aria/focus": ^3.11.0 + "@react-aria/interactions": ^3.14.0 + "@react-aria/label": ^3.5.0 + "@react-aria/selection": ^3.13.1 + "@react-aria/utils": ^3.15.0 + "@react-stately/collections": ^3.6.0 + "@react-stately/list": ^3.7.0 + "@react-types/listbox": ^3.4.0 + "@react-types/shared": ^3.17.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: 7848de8a89384a6ab29fb37ed6ef05fa5d7e05861e8c6ecf1fda7979a9fa80edfa3b7c321c5b5e0e2bad944f50d65a7baf2b0f6f69193f4a540dd3038851bc22 + languageName: node + linkType: hard + +"@react-aria/live-announcer@npm:^3.2.0": + version: 3.2.0 + resolution: "@react-aria/live-announcer@npm:3.2.0" + dependencies: + "@swc/helpers": ^0.4.14 + checksum: 5d76e24ab71aa9b8abc6440cb2786ef1e862edbd4539944f987b0e9f1cfaa2d50d4baaed9f695266455c151b3e76d6ee341b2699f7e95872d9bbdf4ab4fdf31d + languageName: node + linkType: hard + +"@react-aria/menu@npm:^3.8.0": + version: 3.8.1 + resolution: "@react-aria/menu@npm:3.8.1" + dependencies: + "@react-aria/i18n": ^3.7.0 + "@react-aria/interactions": ^3.14.0 + "@react-aria/overlays": ^3.13.0 + "@react-aria/selection": ^3.13.1 + "@react-aria/utils": ^3.15.0 + "@react-stately/collections": ^3.6.0 + "@react-stately/menu": ^3.5.0 + "@react-stately/tree": ^3.5.0 + "@react-types/button": ^3.7.1 + "@react-types/menu": ^3.8.0 + "@react-types/shared": ^3.17.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: 8a8155dcbb6b1bae31e575d528c9dece97b694862dd9080c7025c1f30dd4f02a087f53c6422769900e9c48af4c0682a863e7095d72930e7e8e3becc3a3271b95 + languageName: node + linkType: hard + +"@react-aria/overlays@npm:3.13.0, @react-aria/overlays@npm:^3.13.0": + version: 3.13.0 + resolution: "@react-aria/overlays@npm:3.13.0" + dependencies: + "@react-aria/focus": ^3.11.0 + "@react-aria/i18n": ^3.7.0 + "@react-aria/interactions": ^3.14.0 + "@react-aria/ssr": ^3.5.0 + "@react-aria/utils": ^3.15.0 + "@react-aria/visually-hidden": ^3.7.0 + "@react-stately/overlays": ^3.5.0 + "@react-types/button": ^3.7.1 + "@react-types/overlays": ^3.7.0 + "@react-types/shared": ^3.17.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: 5b88f3bc54da7b9adc773abe604049e9d63dabba527ad581a85a916b267c3fb68352aea55660c2aaf8f6a8a1002335cf6b805e261a0410f771d05913b0239d24 + languageName: node + linkType: hard + +"@react-aria/radio@npm:3.5.0": + version: 3.5.0 + resolution: "@react-aria/radio@npm:3.5.0" + dependencies: + "@react-aria/focus": ^3.11.0 + "@react-aria/i18n": ^3.7.0 + "@react-aria/interactions": ^3.14.0 + "@react-aria/label": ^3.5.0 + "@react-aria/utils": ^3.15.0 + "@react-stately/radio": ^3.7.0 + "@react-types/radio": ^3.4.0 + "@react-types/shared": ^3.17.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: 165d185e078ddf6a3c2d74a8725bea69130bb31b48507df669019a13250e6881650374fdf7d7f9912f100c5e86fe288005d0557f4c93a7135b40d5d89ec246f6 + languageName: node + linkType: hard + +"@react-aria/select@npm:3.9.0": + version: 3.9.0 + resolution: "@react-aria/select@npm:3.9.0" + dependencies: + "@react-aria/i18n": ^3.7.0 + "@react-aria/interactions": ^3.14.0 + "@react-aria/label": ^3.5.0 + "@react-aria/listbox": ^3.8.0 + "@react-aria/menu": ^3.8.0 + "@react-aria/selection": ^3.13.0 + "@react-aria/utils": ^3.15.0 + "@react-aria/visually-hidden": ^3.7.0 + "@react-stately/select": ^3.4.0 + "@react-types/button": ^3.7.1 + "@react-types/select": ^3.7.0 + "@react-types/shared": ^3.17.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: de5e1d3c8508a909bed03ab99c76125f18224eff5571270237c2b7161b8d15ad8d2a379b52e433ee77d76aa3fbbe0130c18364cdd926c0c434d508fd69443667 + languageName: node + linkType: hard + +"@react-aria/selection@npm:^3.13.0, @react-aria/selection@npm:^3.13.1": + version: 3.13.1 + resolution: "@react-aria/selection@npm:3.13.1" + dependencies: + "@react-aria/focus": ^3.11.0 + "@react-aria/i18n": ^3.7.0 + "@react-aria/interactions": ^3.14.0 + "@react-aria/utils": ^3.15.0 + "@react-stately/collections": ^3.6.0 + "@react-stately/selection": ^3.12.0 + "@react-types/shared": ^3.17.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: 240766af913c9b0f55782bb8ce4163ba993e626597999152ff2ccfcd852fc344d4eb3c7e71417b0eb18e430d2fec459c1ac30e5272905f1572427bfc01413cbb + languageName: node + linkType: hard + +"@react-aria/slider@npm:3.3.0": + version: 3.3.0 + resolution: "@react-aria/slider@npm:3.3.0" + dependencies: + "@react-aria/focus": ^3.11.0 + "@react-aria/i18n": ^3.7.0 + "@react-aria/interactions": ^3.14.0 + "@react-aria/label": ^3.5.0 + "@react-aria/utils": ^3.15.0 + "@react-stately/radio": ^3.7.0 + "@react-stately/slider": ^3.3.0 + "@react-types/radio": ^3.4.0 + "@react-types/shared": ^3.17.0 + "@react-types/slider": ^3.4.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: 136493430c64f38f1147a6f94c4f3560f8b58adc0efce168190064c1c1ceb2b9a560194552b8315390183a33523b858589feb46a9e59424255df8d332ea78fa4 + languageName: node + linkType: hard + +"@react-aria/ssr@npm:^3.5.0": + version: 3.5.0 + resolution: "@react-aria/ssr@npm:3.5.0" + dependencies: + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: 3287fe756ff458a3ce46ba0fabe2ede349bff0b232cce30aab0f50afa1c0ac7604809d229b8b19a62a5116cf12bc8099d2c9c72335126499c55c794dd3419dbd + languageName: node + linkType: hard + +"@react-aria/tabs@npm:3.4.0": + version: 3.4.0 + resolution: "@react-aria/tabs@npm:3.4.0" + dependencies: + "@react-aria/focus": ^3.11.0 + "@react-aria/i18n": ^3.7.0 + "@react-aria/interactions": ^3.14.0 + "@react-aria/selection": ^3.13.0 + "@react-aria/utils": ^3.15.0 + "@react-stately/list": ^3.7.0 + "@react-stately/tabs": ^3.3.0 + "@react-types/shared": ^3.17.0 + "@react-types/tabs": ^3.2.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: 9e7c928660dc16766d7767d41d3b03f251decd65591ac0ed61a12599969e27ed6eb40cd8992b17b1fc7e438f7c285b688d8852fcbaa429630175fb4c39cd47c3 + languageName: node + linkType: hard + +"@react-aria/textfield@npm:^3.9.0": + version: 3.9.0 + resolution: "@react-aria/textfield@npm:3.9.0" + dependencies: + "@react-aria/focus": ^3.11.0 + "@react-aria/label": ^3.5.0 + "@react-aria/utils": ^3.15.0 + "@react-types/shared": ^3.17.0 + "@react-types/textfield": ^3.7.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: a46a20330c1d152eb45a669c01ee52bfe95af09b2d1714aa3c1e75f534926117406b42426c29902d0a7dde37ce70289c515b26731bc2de2b71d88daa5f972490 + languageName: node + linkType: hard + +"@react-aria/toggle@npm:^3.5.0": + version: 3.5.0 + resolution: "@react-aria/toggle@npm:3.5.0" + dependencies: + "@react-aria/focus": ^3.11.0 + "@react-aria/interactions": ^3.14.0 + "@react-aria/utils": ^3.15.0 + "@react-stately/toggle": ^3.5.0 + "@react-types/checkbox": ^3.4.2 + "@react-types/shared": ^3.17.0 + "@react-types/switch": ^3.3.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: ccf8ab5bd0e189ac50a42c00ff37bf73a48961d0a76eaa5f735c4f79ab6d597a7d1e9a08b0811b49437ae4181ea81ae5f58b9f7d1082fa9ba4071753830432d1 + languageName: node + linkType: hard + +"@react-aria/utils@npm:3.15.0, @react-aria/utils@npm:^3.15.0": + version: 3.15.0 + resolution: "@react-aria/utils@npm:3.15.0" + dependencies: + "@react-aria/ssr": ^3.5.0 + "@react-stately/utils": ^3.6.0 + "@react-types/shared": ^3.17.0 + "@swc/helpers": ^0.4.14 + clsx: ^1.1.1 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: 9d852b3a8ca492b5e8c733f6258437430d050950d4cbdb99ab221d1a076ebca2625d45384bfb7b651072adc93368462445061c83ceac079418c8deafca2b47c3 + languageName: node + linkType: hard + +"@react-aria/visually-hidden@npm:3.7.0, @react-aria/visually-hidden@npm:^3.7.0": + version: 3.7.0 + resolution: "@react-aria/visually-hidden@npm:3.7.0" + dependencies: + "@react-aria/interactions": ^3.14.0 + "@react-aria/utils": ^3.15.0 + "@react-types/shared": ^3.17.0 + "@swc/helpers": ^0.4.14 + clsx: ^1.1.1 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: b0278501901e012018540488f0a4fba5dabe3e136aa6912016add3f7d2dd94bac91c477712cd5c4561b405b43bdaa8921742b5db59f8c68417a53c441874d5f0 + languageName: node + linkType: hard + +"@react-spring/animated@npm:~9.6.1": + version: 9.6.1 + resolution: "@react-spring/animated@npm:9.6.1" + dependencies: + "@react-spring/shared": ~9.6.1 + "@react-spring/types": ~9.6.1 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: fd8b3dbb1ad3195d510888bd7ea2e2790ea4505442b70b19b30c462c2b68f56c9d66febbb7e4fa32a21e31b03c423176f6257879be80b22c0286e56789547ee3 + languageName: node + linkType: hard + +"@react-spring/core@npm:~9.6.1": + version: 9.6.1 + resolution: "@react-spring/core@npm:9.6.1" + dependencies: + "@react-spring/animated": ~9.6.1 + "@react-spring/rafz": ~9.6.1 + "@react-spring/shared": ~9.6.1 + "@react-spring/types": ~9.6.1 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: 7e0aaec8a6f68b3f2399533947cdbf1b2c4f94a6b01eb1d577516af7385cd302d775f1f3f10b838581edd70773d314ba066dbce0b63169b4cf2fd7791acc3d13 + languageName: node + linkType: hard + +"@react-spring/konva@npm:~9.6.1": + version: 9.6.1 + resolution: "@react-spring/konva@npm:9.6.1" + dependencies: + "@react-spring/animated": ~9.6.1 + "@react-spring/core": ~9.6.1 + "@react-spring/shared": ~9.6.1 + "@react-spring/types": ~9.6.1 + peerDependencies: + konva: ">=2.6" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-konva: ^16.8.0 || ^17.0.0 + checksum: 6dce3db0183514495dd30825c0605f1eecb3fa4184a45d214cc81ccd48ec7eec6e54913fba54401cc7997d47da36b6bca9d49fc5bfc507159be6ea515144f883 + languageName: node + linkType: hard + +"@react-spring/native@npm:~9.6.1": + version: 9.6.1 + resolution: "@react-spring/native@npm:9.6.1" + dependencies: + "@react-spring/animated": ~9.6.1 + "@react-spring/core": ~9.6.1 + "@react-spring/shared": ~9.6.1 + "@react-spring/types": ~9.6.1 + peerDependencies: + react: ^16.8.0 || >=17.0.0 || >=18.0.0 + react-native: ">=0.58" + checksum: 11489382636b00d3c9f14e2c4c74da30d72129ed8accd4c21fce57fd813ffd13f088793f9d227c657ad04588f8c4cbefa800955c62e745cf59696d5539acc07a + languageName: node + linkType: hard + +"@react-spring/rafz@npm:~9.6.1": + version: 9.6.1 + resolution: "@react-spring/rafz@npm:9.6.1" + checksum: 3c8967b01ad29d212244a572193b465087104064b043e6bb303e4498e165f73bb8ef20d46af7bcdd351dc3370fb190fcee76a31d80a8b2c09cf04ef976e34556 + languageName: node + linkType: hard + +"@react-spring/shared@npm:~9.6.1": + version: 9.6.1 + resolution: "@react-spring/shared@npm:9.6.1" + dependencies: + "@react-spring/rafz": ~9.6.1 + "@react-spring/types": ~9.6.1 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: 4e2c905a1804fe0402753ce50fc563faa87dec7b6dd348cc21800c213ce71d77db4e299cf1b9c47a8ee557220b62ee64ac934867c11881b1124b63f59eb4c9f3 + languageName: node + linkType: hard + +"@react-spring/three@npm:~9.6.1": + version: 9.6.1 + resolution: "@react-spring/three@npm:9.6.1" + dependencies: + "@react-spring/animated": ~9.6.1 + "@react-spring/core": ~9.6.1 + "@react-spring/shared": ~9.6.1 + "@react-spring/types": ~9.6.1 + peerDependencies: + "@react-three/fiber": ">=6.0" + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + three: ">=0.126" + checksum: 7d53e6673efd4dc063a475bbbfbac687c717695ffff0d03d3f7e4d8adaa39ebe0455d099337871f281ab5f2bab872886f782cf269722deb907b0446388a818b4 + languageName: node + linkType: hard + +"@react-spring/types@npm:~9.6.1": + version: 9.6.1 + resolution: "@react-spring/types@npm:9.6.1" + checksum: 803dc6c2d67773ee1e5d00d2feac291dad32cf4ca6a790554d6133dd4cd39aeb89b3beea4cc67f91c2d2e4bdbd1a995540dc7fee117138e207a105d255d39c1c + languageName: node + linkType: hard + +"@react-spring/web@npm:~9.6.1": + version: 9.6.1 + resolution: "@react-spring/web@npm:9.6.1" + dependencies: + "@react-spring/animated": ~9.6.1 + "@react-spring/core": ~9.6.1 + "@react-spring/shared": ~9.6.1 + "@react-spring/types": ~9.6.1 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: 3c336a9d162136c0d1ec8adad31d8534d4309de46eea9fa50f735aa9ea0cd3350320654160ea1fc731ba06a3b4342c508d7b5b9035b7816ab0285f5e952dd118 + languageName: node + linkType: hard + +"@react-spring/zdog@npm:~9.6.1": + version: 9.6.1 + resolution: "@react-spring/zdog@npm:9.6.1" + dependencies: + "@react-spring/animated": ~9.6.1 + "@react-spring/core": ~9.6.1 + "@react-spring/shared": ~9.6.1 + "@react-spring/types": ~9.6.1 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-zdog: ">=1.0" + zdog: ">=1.0" + checksum: 269bd52bbc5dc5fa0cf1aa20c28d96668f2231aacc781ff762328185f70877bc4a867d9ad8f4a873c507df94832be25dc0047352621b1de1f85b345981bdf050 + languageName: node + linkType: hard + +"@react-stately/checkbox@npm:^3.4.0": + version: 3.4.0 + resolution: "@react-stately/checkbox@npm:3.4.0" + dependencies: + "@react-stately/toggle": ^3.5.0 + "@react-stately/utils": ^3.6.0 + "@react-types/checkbox": ^3.4.2 + "@react-types/shared": ^3.17.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: 1886962262d63ae7bef433df75770ae19e2080c6165a0703d492351c286fd3b6fd8d8d91eec7bed45cd38d7453b66682c5479e3089b4c1f1e5e6895dcf5064cb + languageName: node + linkType: hard + +"@react-stately/collections@npm:3.6.0, @react-stately/collections@npm:^3.6.0": + version: 3.6.0 + resolution: "@react-stately/collections@npm:3.6.0" + dependencies: + "@react-types/shared": ^3.17.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: e7fa7adbbfeb981c5723630a6cab4a79f4330efba02124ab339fdc850143d198334af446c37be73fed84ef7ae061214dcc8c1aa1efaf9e41789e80d835bf8e7a + languageName: node + linkType: hard + +"@react-stately/combobox@npm:3.4.0, @react-stately/combobox@npm:^3.4.0": + version: 3.4.0 + resolution: "@react-stately/combobox@npm:3.4.0" + dependencies: + "@react-stately/list": ^3.7.0 + "@react-stately/menu": ^3.5.0 + "@react-stately/select": ^3.4.0 + "@react-stately/utils": ^3.6.0 + "@react-types/combobox": ^3.6.0 + "@react-types/shared": ^3.17.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: a950546563598bd4ef574dbdccffe0e12818fa015680429556a8c01d9f69b04bc3c4e5059a606a69f548fb1b8a6061f031c03f9704506e69a5e2e6faaacd0220 + languageName: node + linkType: hard + +"@react-stately/grid@npm:^3.5.0": + version: 3.5.0 + resolution: "@react-stately/grid@npm:3.5.0" + dependencies: + "@react-stately/selection": ^3.12.0 + "@react-types/grid": ^3.1.6 + "@react-types/shared": ^3.17.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: f458e3d2232c803231e0baadf8c66f4e61eb4acec6d53fc103e489f7421226ff9281b841d9e40889484b8aa364169a9b6c89df7e43a7f091ce074c4bb6d7ea0f + languageName: node + linkType: hard + +"@react-stately/layout@npm:^3.11.0": + version: 3.11.0 + resolution: "@react-stately/layout@npm:3.11.0" + dependencies: + "@react-stately/table": ^3.8.0 + "@react-stately/virtualizer": ^3.5.0 + "@react-types/grid": ^3.1.6 + "@react-types/shared": ^3.17.0 + "@react-types/table": ^3.5.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: 14545dbfbd079599ba4106bead2ae7f91ee22090b3a2dbc1df789e431190d8afef9957bc02bd4efceceb8c9b202abe32856b0a7fc2f303571496a6fec0acf6b7 + languageName: node + linkType: hard + +"@react-stately/list@npm:^3.7.0": + version: 3.7.0 + resolution: "@react-stately/list@npm:3.7.0" + dependencies: + "@react-stately/collections": ^3.6.0 + "@react-stately/selection": ^3.12.0 + "@react-stately/utils": ^3.6.0 + "@react-types/shared": ^3.17.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: 3c893b0d6fdbf38719485c6e722f4836b4d6785ca50a092cf6406ec4fb6c5f094964b71eecb8abd2f7b796898172facdd04683d7860c9424e7283253d468961a + languageName: node + linkType: hard + +"@react-stately/menu@npm:^3.5.0": + version: 3.5.0 + resolution: "@react-stately/menu@npm:3.5.0" + dependencies: + "@react-stately/overlays": ^3.5.0 + "@react-stately/utils": ^3.6.0 + "@react-types/menu": ^3.8.0 + "@react-types/shared": ^3.17.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: e39ff40d7fcf2136adde097bfbf63ddbb31995f2e3b22a30eb0d1dcae5a482bb51db0ea7f927769b0deba49c9bbb962c26d3a8fe40d691b06ac7a2c8bdae9a4d + languageName: node + linkType: hard + +"@react-stately/overlays@npm:3.5.0, @react-stately/overlays@npm:^3.5.0": + version: 3.5.0 + resolution: "@react-stately/overlays@npm:3.5.0" + dependencies: + "@react-stately/utils": ^3.6.0 + "@react-types/overlays": ^3.7.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: 7422e0e4f146bfef5c1a5386627008033e26e4ebcc857469009011a5d1d2440d7d74088b1e8fbb1fb23fbfdc129b745a9e9388b6ad6c8aefd3388f260c9a68f8 + languageName: node + linkType: hard + +"@react-stately/radio@npm:3.7.0, @react-stately/radio@npm:^3.7.0": + version: 3.7.0 + resolution: "@react-stately/radio@npm:3.7.0" + dependencies: + "@react-stately/utils": ^3.6.0 + "@react-types/radio": ^3.4.0 + "@react-types/shared": ^3.17.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: 91eea7a9ee6f2660ffcae161c6d1397442702afd7048a54444c8c7b2fbd2f89898af6ba4ee94c9313aca72d87ecf2eec666e086e7c9be317fbcffe3110890b81 + languageName: node + linkType: hard + +"@react-stately/select@npm:^3.4.0": + version: 3.4.0 + resolution: "@react-stately/select@npm:3.4.0" + dependencies: + "@react-stately/collections": ^3.6.0 + "@react-stately/list": ^3.7.0 + "@react-stately/menu": ^3.5.0 + "@react-stately/selection": ^3.12.0 + "@react-stately/utils": ^3.6.0 + "@react-types/select": ^3.7.0 + "@react-types/shared": ^3.17.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: 6a4c71d780779a63180ee5cee5d8bf7a04f8d63bbbbe82996bbd415a6ca002f2f62a5a36aade77106554e3385b09391512042662df16eafcbd61fadfe2f4b839 + languageName: node + linkType: hard + +"@react-stately/selection@npm:^3.12.0": + version: 3.12.0 + resolution: "@react-stately/selection@npm:3.12.0" + dependencies: + "@react-stately/collections": ^3.6.0 + "@react-stately/utils": ^3.6.0 + "@react-types/shared": ^3.17.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: 9a71f78b4f5e105602120e6682b3cf3aad467a3d85010bafa08cbfc7d0ba34bc7d77cff8e1f165f46083aecfb897308b130a4dad7512fb8c83823283813b80c7 + languageName: node + linkType: hard + +"@react-stately/slider@npm:3.3.0, @react-stately/slider@npm:^3.3.0": + version: 3.3.0 + resolution: "@react-stately/slider@npm:3.3.0" + dependencies: + "@react-aria/i18n": ^3.7.0 + "@react-aria/utils": ^3.15.0 + "@react-stately/utils": ^3.6.0 + "@react-types/shared": ^3.17.0 + "@react-types/slider": ^3.4.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: 07f4c7e367cc5f1a017c5acb84fef11e6468528289c58003a9629c9c2a12b31d1800b766b46729fcfa9ad6d428b931ea05231f2782f3b357f873b5a6df158bed + languageName: node + linkType: hard + +"@react-stately/table@npm:^3.8.0": + version: 3.8.0 + resolution: "@react-stately/table@npm:3.8.0" + dependencies: + "@react-stately/collections": ^3.6.0 + "@react-stately/grid": ^3.5.0 + "@react-stately/selection": ^3.12.0 + "@react-types/grid": ^3.1.6 + "@react-types/shared": ^3.17.0 + "@react-types/table": ^3.5.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: 6032c40065f8bd44fe69219ce6d0dc970ec43f3a1393ad22645ce2bfb2ca63f5ca904e3b27baf2a28907e886e63931ae368c84c7587a221693491b30265cd924 + languageName: node + linkType: hard + +"@react-stately/tabs@npm:3.3.0, @react-stately/tabs@npm:^3.3.0": + version: 3.3.0 + resolution: "@react-stately/tabs@npm:3.3.0" + dependencies: + "@react-stately/list": ^3.7.0 + "@react-stately/utils": ^3.6.0 + "@react-types/tabs": ^3.2.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: a66bd3101831decec4c2d63dcb0b026fdfa899b9ff91c2b50aecc5711c88d0c4e4aaf687847da364b4af9b6a82748f19979459b8354cadc06b5f0d6897e2e989 + languageName: node + linkType: hard + +"@react-stately/toggle@npm:3.5.0, @react-stately/toggle@npm:^3.5.0": + version: 3.5.0 + resolution: "@react-stately/toggle@npm:3.5.0" + dependencies: + "@react-stately/utils": ^3.6.0 + "@react-types/checkbox": ^3.4.2 + "@react-types/shared": ^3.17.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: 3cc5d150c0effc216f6b56a17a05917affbb7f374239053e69d42117c13d488a6939469d14d7c4a4fd2422416c5ae0b9147e454e8717ab1b3b95196c7eb0c79d + languageName: node + linkType: hard + +"@react-stately/tree@npm:^3.5.0": + version: 3.5.0 + resolution: "@react-stately/tree@npm:3.5.0" + dependencies: + "@react-stately/collections": ^3.6.0 + "@react-stately/selection": ^3.12.0 + "@react-stately/utils": ^3.6.0 + "@react-types/shared": ^3.17.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: cc22dce2314104802b42f76c287165f1b7c5e69c6f45876027d7f58d43039c8126b2d58cbec6942ed27990d51a58962027166959348f9467d869d97e6f937ad1 + languageName: node + linkType: hard + +"@react-stately/utils@npm:^3.6.0": + version: 3.6.0 + resolution: "@react-stately/utils@npm:3.6.0" + dependencies: + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: d2ff4cfed5555b112ad71b9bc1837abd777d8fa225043c476b7c9417f8b21a0bcddad0d7127e0acdbf4d85dc9a260c9ae97722b4e9507e6243b412c2724c5f54 + languageName: node + linkType: hard + +"@react-stately/virtualizer@npm:^3.5.0": + version: 3.5.0 + resolution: "@react-stately/virtualizer@npm:3.5.0" + dependencies: + "@react-aria/utils": ^3.15.0 + "@react-types/shared": ^3.17.0 + "@swc/helpers": ^0.4.14 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: df5bb6658f8b43b1d5166f3f4f9d6317b403dee142a291601be57553be9fa38d0182275f2cac0fe779d8ff3203030b02a26da9cf287bd9bd296c9d7f16146578 + languageName: node + linkType: hard + +"@react-types/button@npm:^3.7.1": + version: 3.7.1 + resolution: "@react-types/button@npm:3.7.1" + dependencies: + "@react-types/shared": ^3.17.0 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: 4002e7af86a2673e0d1855ccadda4afd13579b5c3a71cf423465d4f5c2f26270d9ca4ce831a0ae23b503c59c8e3ee21c7f8a792a26abba381a7662b945f43cc3 + languageName: node + linkType: hard + +"@react-types/checkbox@npm:^3.4.2": + version: 3.4.2 + resolution: "@react-types/checkbox@npm:3.4.2" + dependencies: + "@react-types/shared": ^3.17.0 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: c34eceb3fe16e5722b2847e9db1d6a921acb8a5e7a924a6b494f692894a3dcca2bd242ae395d4fe43b1de6c6f3dd9a3450c9894d05ea5b38342bee6ad098fcf8 + languageName: node + linkType: hard + +"@react-types/combobox@npm:^3.6.0": + version: 3.6.0 + resolution: "@react-types/combobox@npm:3.6.0" + dependencies: + "@react-types/shared": ^3.17.0 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: aee7bffcae621d99a04464670971e116e2b3e3ddb510c6ffdfa2b923d075e4a2b7b80fde4bf5d2670861eb7d9744b0e7d83dee0063027af8a601617a7d378969 + languageName: node + linkType: hard + +"@react-types/grid@npm:^3.1.6": + version: 3.1.6 + resolution: "@react-types/grid@npm:3.1.6" + dependencies: + "@react-types/shared": ^3.17.0 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: d88c4fa8a08c9c66514e8291de328ef02a306d27fa48b6a20537cda5e212f2bca1a00d11cdf54091c452f25dbda968b0c8d2d0f158926b68cc4cf4e8b6e6518c + languageName: node + linkType: hard + +"@react-types/label@npm:^3.7.2": + version: 3.7.2 + resolution: "@react-types/label@npm:3.7.2" + dependencies: + "@react-types/shared": ^3.17.0 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: 5053a575933033e78b4cbfbeca08fb3052e81c0e2b50811677bda2e9d3188f16dc9b0381d21d49cf3ce7b7b3d6518d0d7658fc23c9498b02be60b22ef0a0d9b5 + languageName: node + linkType: hard + +"@react-types/listbox@npm:^3.4.0": + version: 3.4.0 + resolution: "@react-types/listbox@npm:3.4.0" + dependencies: + "@react-types/shared": ^3.17.0 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: b5bb085f48c16e132b87cdc5840198f6c65afbb21c2f3dfb45d511181502f1388d7b0569a8ec2a5d04eaba5d972dd2210bb1ba8b2c2b97a91b65e19548869ddd + languageName: node + linkType: hard + +"@react-types/menu@npm:^3.8.0": + version: 3.8.0 + resolution: "@react-types/menu@npm:3.8.0" + dependencies: + "@react-types/overlays": ^3.7.0 + "@react-types/shared": ^3.17.0 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: 0ad6b69cc4ebda76f7a056f01913544d0904d53e6722f909234bcc42af3081d22ee9fec632692024acae910e5d7f2f200868022130983c548482c4b7100df133 + languageName: node + linkType: hard + +"@react-types/overlays@npm:^3.7.0": + version: 3.7.0 + resolution: "@react-types/overlays@npm:3.7.0" + dependencies: + "@react-types/shared": ^3.17.0 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: eff974d34a0372000924340f8ee3fecbb09060d4c903db95eb6033d382f5957253be403e6b205259f230af80e1d2f42d5f9eb77f115f991c1efda50336c249de + languageName: node + linkType: hard + +"@react-types/radio@npm:^3.4.0": + version: 3.4.0 + resolution: "@react-types/radio@npm:3.4.0" + dependencies: + "@react-types/shared": ^3.17.0 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: efec133f004b3fbf0d551f9a842e2279d71c3bc3faacddbf997188c7bc88bf980efbcdb0ca883bc145f85024b0e64a5f3997cbcf4f88c6efd29b36bc49efa4f4 + languageName: node + linkType: hard + +"@react-types/select@npm:^3.7.0": + version: 3.7.0 + resolution: "@react-types/select@npm:3.7.0" + dependencies: + "@react-types/shared": ^3.17.0 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: bc721d66fa472357a0566c51e66b0deebaad07b3403fda316fe9848c204c620f7b35c9d03a3330b2d610d8f607829bcc22b241e55ff4be92a0b6f1ea8cd708e1 + languageName: node + linkType: hard + +"@react-types/shared@npm:3.17.0, @react-types/shared@npm:^3.17.0": + version: 3.17.0 + resolution: "@react-types/shared@npm:3.17.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: 004fc58ab0d3d64a84ce5a98e7e201b88bbb64f8b4a8309d50be30fe6172d0f172f00c666074aa96f13bbbfbced8b986901ad6b35b6d2d32d8dc25e251fcdb31 + languageName: node + linkType: hard + +"@react-types/slider@npm:^3.4.0": + version: 3.4.0 + resolution: "@react-types/slider@npm:3.4.0" + dependencies: + "@react-types/shared": ^3.17.0 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: df6bc5b3713984d8f8416ad4f4f7e86388e72cb1a40b1d860dcf23bc52787e3044690b29ee3633510b85471b8336be8f0b7b7a4b2bc16128078865779bbdf521 + languageName: node + linkType: hard + +"@react-types/switch@npm:^3.3.0": + version: 3.3.0 + resolution: "@react-types/switch@npm:3.3.0" + dependencies: + "@react-types/checkbox": ^3.4.2 + "@react-types/shared": ^3.17.0 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: f310ab1488704f6caabc1c5f958b9ce0b0df4cbf164e061119aff7a41af540f9b83f9013b848f8966665607d41fbe66e2d45271ab3c5e6da64fb252ab22fca90 + languageName: node + linkType: hard + +"@react-types/table@npm:^3.5.0": + version: 3.5.0 + resolution: "@react-types/table@npm:3.5.0" + dependencies: + "@react-types/grid": ^3.1.6 + "@react-types/shared": ^3.17.0 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: c1e22f3f7ab41f9800b1ed205101a895ac599ba5d34159668837bf097e5856e68b8754e555e7ef4daf3bd2168069d8ef54978b4dc631d589fc5bef92fcc0e5c6 + languageName: node + linkType: hard + +"@react-types/tabs@npm:^3.2.0": + version: 3.2.0 + resolution: "@react-types/tabs@npm:3.2.0" + dependencies: + "@react-types/shared": ^3.17.0 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: 5162e0e864e73cc149b214561da1e708ecbf171815db0bfefac77f8eb279d5a5e2ab0ef9a86f339bc98082542a55fec72122d1b1e90a6fde2c60e0c107104803 + languageName: node + linkType: hard + +"@react-types/textfield@npm:^3.7.0": + version: 3.7.0 + resolution: "@react-types/textfield@npm:3.7.0" + dependencies: + "@react-types/shared": ^3.17.0 + peerDependencies: + react: ^16.8.0 || ^17.0.0-rc.1 || ^18.0.0 + checksum: b6e72d2c971be528ba0c3e8cfb4f0937104e1413a372455399ed27ce42dbe89ffc5f8689a6a778b8cc049e8b020c8e94e2bda07101a238f4b6bf3b34c34fa774 + languageName: node + linkType: hard + +"@remix-run/router@npm:1.4.0": + version: 1.4.0 + resolution: "@remix-run/router@npm:1.4.0" + checksum: 707dce35a2b8138005cf19e63f6fd3c4da05b4b892e9e9118e8b727c3b95953efe27307ca2df35084044df30fa1fc367cf0bbc98d1ded9020c82e61e6242caaf + languageName: node + linkType: hard + +"@repeaterjs/repeater@npm:3.0.4, @repeaterjs/repeater@npm:^3.0.4": + version: 3.0.4 + resolution: "@repeaterjs/repeater@npm:3.0.4" + checksum: cca0db3e802bc26fcce0b4a574074d9956da53bf43094de03c0e4732d05e13441279a92f0b96e2a7a39da50933684947a138c1213406eaafe39cfd4683d6c0df + languageName: node + linkType: hard + +"@swc/helpers@npm:^0.4.14": + version: 0.4.14 + resolution: "@swc/helpers@npm:0.4.14" + dependencies: + tslib: ^2.4.0 + checksum: 273fd3f3fc461a92f3790cc551ea054745c6d6959afbe1232e6d7aa1c722bbc114d308aab96bef5c78fc0303c85c7b472ef00e2253251cc89737f3b1af56e5a5 + languageName: node + linkType: hard + +"@tanstack/match-sorter-utils@npm:8.7.6": + version: 8.7.6 + resolution: "@tanstack/match-sorter-utils@npm:8.7.6" + dependencies: + remove-accents: 0.4.2 + checksum: 3f3dda277e6e55ca1224a28b38a2deb3ac912c2f2f5263a32fa0d9126c6b6d05feb475539729fd248f1eb88b612109db90b847ec8fdfc05d0f4073c900a2d3f6 + languageName: node + linkType: hard + +"@tanstack/react-table@npm:8.7.9": + version: 8.7.9 + resolution: "@tanstack/react-table@npm:8.7.9" + dependencies: + "@tanstack/table-core": 8.7.9 + peerDependencies: + react: ">=16" + react-dom: ">=16" + checksum: 3c704ac903405972641c9857e1466025bcdac04ee4890d64b018386cad5a778aca3a8d3f78542ae7a0ed609841d32ef3a7e563b079e87fa93b9ae8570a310499 + languageName: node + linkType: hard + +"@tanstack/react-virtual@npm:3.0.0-beta.48": + version: 3.0.0-beta.48 + resolution: "@tanstack/react-virtual@npm:3.0.0-beta.48" + dependencies: + "@tanstack/virtual-core": 3.0.0-beta.48 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: 3c0d75570b2b316edbf4f658f7fc398a63467d305cd3b69450febd9ab470b65f00948561c9e8f315a6756564c5164e51ff276f1d2e76c196c7a6110ef115afea + languageName: node + linkType: hard + +"@tanstack/table-core@npm:8.7.9": + version: 8.7.9 + resolution: "@tanstack/table-core@npm:8.7.9" + checksum: 78d2314928c29559088e4bada0248cc7f94e93756e1a2c1f37a651db30276e9ae960d647bd3a61b67b3f0f9f7e4dec5dd58eb49b8adb80ee5952ef417b6e581f + languageName: node + linkType: hard + +"@tanstack/virtual-core@npm:3.0.0-beta.48": + version: 3.0.0-beta.48 + resolution: "@tanstack/virtual-core@npm:3.0.0-beta.48" + checksum: 2bc41ad00aaeb7c07ec1ba5987e795aacef01e1bc32ca75c65f3357aa2b202bfd0aece73b4eb79241d0166ee19956e99e3789ee0edbb55cafb2714adde9b07c2 + languageName: node + linkType: hard + +"@tootallnate/once@npm:2": + version: 2.0.0 + resolution: "@tootallnate/once@npm:2.0.0" + checksum: ad87447820dd3f24825d2d947ebc03072b20a42bfc96cbafec16bff8bbda6c1a81fcb0be56d5b21968560c5359a0af4038a68ba150c3e1694fe4c109a063bed8 + languageName: node + linkType: hard + +"@types/absinthe__socket-apollo-link@npm:0.2.1": + version: 0.2.1 + resolution: "@types/absinthe__socket-apollo-link@npm:0.2.1" + dependencies: + "@types/absinthe__socket": "*" + apollo-link: ">=1.2.5" + apollo-link-http-common: ^0.2.4 + graphql: ^14.5.3 + checksum: 56b8df10e6a3a5110226b572ef7fa41ad68a6b09dcf658a7cf7dde5bd4bbecbaa1e2970891d2427d243c384a0cb5da72e79a40e06afdb50a0ee8ca2c82d78d96 + languageName: node + linkType: hard + +"@types/absinthe__socket@npm:*, @types/absinthe__socket@npm:0.2.3": + version: 0.2.3 + resolution: "@types/absinthe__socket@npm:0.2.3" + dependencies: + "@types/phoenix": "*" + checksum: 6c4855ab1eb31af58a788205b7cc52743e800abc3fce5437abd935c333785ad31b343d4e355f9b59bd4843a3164f41c4775f5a75918366fff54eff2ff72bca36 + languageName: node + linkType: hard + +"@types/chroma-js@npm:2.1.5": + version: 2.1.5 + resolution: "@types/chroma-js@npm:2.1.5" + checksum: 7cc7ba5d024f9048f11cf045b6f0a2d7025ecd930e89867cbcc35b4f668ebb0fbaf4231de418d3c447bf21b71fa25cce1b3c8d17d3d3de4ddbe38f66d469f106 + languageName: node + linkType: hard + +"@types/debug@npm:^4.0.0": + version: 4.1.7 + resolution: "@types/debug@npm:4.1.7" + dependencies: + "@types/ms": "*" + checksum: 0a7b89d8ed72526858f0b61c6fd81f477853e8c4415bb97f48b1b5545248d2ae389931680b94b393b993a7cfe893537a200647d93defe6d87159b96812305adc + languageName: node + linkType: hard + +"@types/hast@npm:^2.0.0": + version: 2.3.4 + resolution: "@types/hast@npm:2.3.4" + dependencies: + "@types/unist": "*" + checksum: fff47998f4c11e21a7454b58673f70478740ecdafd95aaf50b70a3daa7da9cdc57315545bf9c039613732c40b7b0e9e49d11d03fe9a4304721cdc3b29a88141e + languageName: node + linkType: hard + +"@types/hoist-non-react-statics@npm:*": + version: 3.3.1 + resolution: "@types/hoist-non-react-statics@npm:3.3.1" + dependencies: + "@types/react": "*" + hoist-non-react-statics: ^3.3.0 + checksum: 2c0778570d9a01d05afabc781b32163f28409bb98f7245c38d5eaf082416fdb73034003f5825eb5e21313044e8d2d9e1f3fe2831e345d3d1b1d20bcd12270719 + languageName: node + linkType: hard + +"@types/js-yaml@npm:^4.0.0": + version: 4.0.5 + resolution: "@types/js-yaml@npm:4.0.5" + checksum: 7dcac8c50fec31643cc9d6444b5503239a861414cdfaa7ae9a38bc22597c4d850c4b8cec3d82d73b3fbca408348ce223b0408d598b32e094470dfffc6d486b4d + languageName: node + linkType: hard + +"@types/json-schema@npm:^7.0.9": + version: 7.0.11 + resolution: "@types/json-schema@npm:7.0.11" + checksum: 527bddfe62db9012fccd7627794bd4c71beb77601861055d87e3ee464f2217c85fca7a4b56ae677478367bbd248dbde13553312b7d4dbc702a2f2bbf60c4018d + languageName: node + linkType: hard + +"@types/json-stable-stringify@npm:^1.0.32": + version: 1.0.34 + resolution: "@types/json-stable-stringify@npm:1.0.34" + checksum: 45767ecef0f6aae5680c3be6488d5c493f16046e34f182d7e6a2c69a667aab035799752c6f03017c883b134ad3f80e3f78d7e7da81a9c1f3d01676126baf5d0e + languageName: node + linkType: hard + +"@types/json5@npm:^0.0.29": + version: 0.0.29 + resolution: "@types/json5@npm:0.0.29" + checksum: e60b153664572116dfea673c5bda7778dbff150498f44f998e34b5886d8afc47f16799280e4b6e241c0472aef1bc36add771c569c68fc5125fc2ae519a3eb9ac + languageName: node + linkType: hard + +"@types/mdast@npm:^3.0.0": + version: 3.0.11 + resolution: "@types/mdast@npm:3.0.11" + dependencies: + "@types/unist": "*" + checksum: 3b04cf465535553b47a1811c247668bd6cfeb54d99a2c9dbb82ccd0f5145d271d10c3169f929701d8cd55fd569f0d2e459a50845813ba3261f1fb0395a288cea + languageName: node + linkType: hard + +"@types/ms@npm:*": + version: 0.7.31 + resolution: "@types/ms@npm:0.7.31" + checksum: daadd354aedde024cce6f5aa873fefe7b71b22cd0e28632a69e8b677aeb48ae8caa1c60e5919bb781df040d116b01cb4316335167a3fc0ef6a63fa3614c0f6da + languageName: node + linkType: hard + +"@types/node@npm:*": + version: 18.15.10 + resolution: "@types/node@npm:18.15.10" + checksum: 9aeae0b683eda82892def5315812bdee3f1a28c4898b7e70f8e2514564538b16c4dccbe8339c1266f8fc1d707a48f152689264a854f5ebc2eba5011e793612d9 + languageName: node + linkType: hard + +"@types/node@npm:18.15.5": + version: 18.15.5 + resolution: "@types/node@npm:18.15.5" + checksum: 5fbf3453bd5ce1402bb2964e55d928fc8a8a7de5451b1b0fe66587fecb8a3eb86854ca9cefa5076a5971e2cff00e1773ceeb5d872a54f6c6ddfbbc1064b4e91a + languageName: node + linkType: hard + +"@types/parse-json@npm:^4.0.0": + version: 4.0.0 + resolution: "@types/parse-json@npm:4.0.0" + checksum: fd6bce2b674b6efc3db4c7c3d336bd70c90838e8439de639b909ce22f3720d21344f52427f1d9e57b265fcb7f6c018699b99e5e0c208a1a4823014269a6bf35b + languageName: node + linkType: hard + +"@types/parse5@npm:^6.0.0": + version: 6.0.3 + resolution: "@types/parse5@npm:6.0.3" + checksum: ddb59ee4144af5dfcc508a8dcf32f37879d11e12559561e65788756b95b33e6f03ea027d88e1f5408f9b7bfb656bf630ace31a2169edf44151daaf8dd58df1b7 + languageName: node + linkType: hard + +"@types/phoenix@npm:*, @types/phoenix@npm:1.5.5": + version: 1.5.5 + resolution: "@types/phoenix@npm:1.5.5" + checksum: 2dfb59c51c3f4b79ba9422f4f778695adc45a5ed55450b59e882da86835d4489483b3cb5a372bab1506b98a46c7830b1dda4bbdbb83c6787b619065d7eb99816 + languageName: node + linkType: hard + +"@types/prop-types@npm:*, @types/prop-types@npm:^15.0.0": + version: 15.7.5 + resolution: "@types/prop-types@npm:15.7.5" + checksum: 5b43b8b15415e1f298243165f1d44390403bb2bd42e662bca3b5b5633fdd39c938e91b7fce3a9483699db0f7a715d08cef220c121f723a634972fdf596aec980 + languageName: node + linkType: hard + +"@types/react-dom@npm:18.0.11": + version: 18.0.11 + resolution: "@types/react-dom@npm:18.0.11" + dependencies: + "@types/react": "*" + checksum: 579691e4d5ec09688087568037c35edf8cfb1ab3e07f6c60029280733ee7b5c06d66df6fcc90786702c93ac8cb13bc7ff16c79ddfc75d082938fbaa36e1cdbf4 + languageName: node + linkType: hard + +"@types/react@npm:*, @types/react@npm:18.0.28": + version: 18.0.28 + resolution: "@types/react@npm:18.0.28" + dependencies: + "@types/prop-types": "*" + "@types/scheduler": "*" + csstype: ^3.0.2 + checksum: e752df961105e5127652460504785897ca6e77259e0da8f233f694f9e8f451cde7fa0709d4456ade0ff600c8ce909cfe29f9b08b9c247fa9b734e126ec53edd7 + languageName: node + linkType: hard + +"@types/scheduler@npm:*": + version: 0.16.2 + resolution: "@types/scheduler@npm:0.16.2" + checksum: b6b4dcfeae6deba2e06a70941860fb1435730576d3689225a421280b7742318d1548b3d22c1f66ab68e414f346a9542f29240bc955b6332c5b11e561077583bc + languageName: node + linkType: hard + +"@types/semver@npm:^7.3.12": + version: 7.3.13 + resolution: "@types/semver@npm:7.3.13" + checksum: 00c0724d54757c2f4bc60b5032fe91cda6410e48689633d5f35ece8a0a66445e3e57fa1d6e07eb780f792e82ac542948ec4d0b76eb3484297b79bd18b8cf1cb0 + languageName: node + linkType: hard + +"@types/styled-components@npm:5.1.26": + version: 5.1.26 + resolution: "@types/styled-components@npm:5.1.26" + dependencies: + "@types/hoist-non-react-statics": "*" + "@types/react": "*" + csstype: ^3.0.2 + checksum: 84f53b3101739b20d1731554fb7735bc2f3f5d050a8b392e9845403c8c8bbd729737d033978649f9195a97b557875b010d46e35a4538564a2d0dbcce661dbf76 + languageName: node + linkType: hard + +"@types/unist@npm:*, @types/unist@npm:^2.0.0": + version: 2.0.6 + resolution: "@types/unist@npm:2.0.6" + checksum: 25cb860ff10dde48b54622d58b23e66214211a61c84c0f15f88d38b61aa1b53d4d46e42b557924a93178c501c166aa37e28d7f6d994aba13d24685326272d5db + languageName: node + linkType: hard + +"@types/ws@npm:^8.0.0": + version: 8.5.4 + resolution: "@types/ws@npm:8.5.4" + dependencies: + "@types/node": "*" + checksum: fefbad20d211929bb996285c4e6f699b12192548afedbe4930ab4384f8a94577c9cd421acaad163cacd36b88649509970a05a0b8f20615b30c501ed5269038d1 + languageName: node + linkType: hard + +"@typescript-eslint/eslint-plugin@npm:5.49.0": + version: 5.49.0 + resolution: "@typescript-eslint/eslint-plugin@npm:5.49.0" + dependencies: + "@typescript-eslint/scope-manager": 5.49.0 + "@typescript-eslint/type-utils": 5.49.0 + "@typescript-eslint/utils": 5.49.0 + debug: ^4.3.4 + ignore: ^5.2.0 + natural-compare-lite: ^1.4.0 + regexpp: ^3.2.0 + semver: ^7.3.7 + tsutils: ^3.21.0 + peerDependencies: + "@typescript-eslint/parser": ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 15423cd9fde1ac3f8ba34526a07e537464e70463f1af784be5567fdc78e5745352fa0a2c3be0c13d066bc4b9720b5fa438d64647f624d29722eb4f158c039dcc + languageName: node + linkType: hard + +"@typescript-eslint/eslint-plugin@npm:5.56.0": + version: 5.56.0 + resolution: "@typescript-eslint/eslint-plugin@npm:5.56.0" + dependencies: + "@eslint-community/regexpp": ^4.4.0 + "@typescript-eslint/scope-manager": 5.56.0 + "@typescript-eslint/type-utils": 5.56.0 + "@typescript-eslint/utils": 5.56.0 + debug: ^4.3.4 + grapheme-splitter: ^1.0.4 + ignore: ^5.2.0 + natural-compare-lite: ^1.4.0 + semver: ^7.3.7 + tsutils: ^3.21.0 + peerDependencies: + "@typescript-eslint/parser": ^5.0.0 + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 2eed4a4ed8279950ad553252e8623e947ffdee39b0d677a13f6e4e2d863ea1cbc5d683ff189e55d0de6fd5a25afd72d3c3a9ab7ae417d5405a21ead907e1b154 + languageName: node + linkType: hard + +"@typescript-eslint/parser@npm:5.49.0": + version: 5.49.0 + resolution: "@typescript-eslint/parser@npm:5.49.0" + dependencies: + "@typescript-eslint/scope-manager": 5.49.0 + "@typescript-eslint/types": 5.49.0 + "@typescript-eslint/typescript-estree": 5.49.0 + debug: ^4.3.4 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 87b3760cfc29b3edd3d28fe0d5e9e5a3833d60398d7779ecc657b9e3bfec624cd464176e26b24b0761fb79cc88daddae19560340f91119c4856b91f9663594dd + languageName: node + linkType: hard + +"@typescript-eslint/scope-manager@npm:5.49.0": + version: 5.49.0 + resolution: "@typescript-eslint/scope-manager@npm:5.49.0" + dependencies: + "@typescript-eslint/types": 5.49.0 + "@typescript-eslint/visitor-keys": 5.49.0 + checksum: 466047e24ff8a4195f14aadde39375f22891bdaced09e58c89f2c32af0aa4a0d87e71a5f006f6ab76858e6f30c4b764b1e0ef7bc26713bb78add30638108c45f + languageName: node + linkType: hard + +"@typescript-eslint/scope-manager@npm:5.56.0": + version: 5.56.0 + resolution: "@typescript-eslint/scope-manager@npm:5.56.0" + dependencies: + "@typescript-eslint/types": 5.56.0 + "@typescript-eslint/visitor-keys": 5.56.0 + checksum: bacac255ee52148cee6622be2811c0d7e25419058b89f1a11f4c1303faef4535a0a1237549f9556ec1d7a297c640ce4357183a1a8465d72e1393b7d8fb43874b + languageName: node + linkType: hard + +"@typescript-eslint/type-utils@npm:5.49.0": + version: 5.49.0 + resolution: "@typescript-eslint/type-utils@npm:5.49.0" + dependencies: + "@typescript-eslint/typescript-estree": 5.49.0 + "@typescript-eslint/utils": 5.49.0 + debug: ^4.3.4 + tsutils: ^3.21.0 + peerDependencies: + eslint: "*" + peerDependenciesMeta: + typescript: + optional: true + checksum: 9dcee0a21cfdb3549e2305120535af5ab2c5d0cafdd410827e79d7548f8fc4e7da7cbb77a4338ade8b8b8aaf246fee56b919f1857931bbe2ac5df2fbb5e62ee6 + languageName: node + linkType: hard + +"@typescript-eslint/type-utils@npm:5.56.0": + version: 5.56.0 + resolution: "@typescript-eslint/type-utils@npm:5.56.0" + dependencies: + "@typescript-eslint/typescript-estree": 5.56.0 + "@typescript-eslint/utils": 5.56.0 + debug: ^4.3.4 + tsutils: ^3.21.0 + peerDependencies: + eslint: "*" + peerDependenciesMeta: + typescript: + optional: true + checksum: 3dd1fcfadad18790b900a3d90f6617904adb6b0e2bd1e1edb6ebf239e1399865ca9098647405385feb4252d8b2b4577883e6fd3ef8d00bdd521d6070972d486b + languageName: node + linkType: hard + +"@typescript-eslint/types@npm:5.49.0": + version: 5.49.0 + resolution: "@typescript-eslint/types@npm:5.49.0" + checksum: 41f72a043007fc3f3356b5a38d7bfa54871545b4a309810a062f044cff25122413a9660ce6d83d1221762f60d067351d020b0cb68f7e1279817f53e77ce8f33d + languageName: node + linkType: hard + +"@typescript-eslint/types@npm:5.56.0": + version: 5.56.0 + resolution: "@typescript-eslint/types@npm:5.56.0" + checksum: 82ca11553bbb1bbfcaf7e7760b03c0d898940238dc002552c21af3e58f7d482c64c3c6cf0666521aff2a1e7b4b58bb6e4d9a00b1e4998a16b5039f5d288d003a + languageName: node + linkType: hard + +"@typescript-eslint/typescript-estree@npm:5.49.0": + version: 5.49.0 + resolution: "@typescript-eslint/typescript-estree@npm:5.49.0" + dependencies: + "@typescript-eslint/types": 5.49.0 + "@typescript-eslint/visitor-keys": 5.49.0 + debug: ^4.3.4 + globby: ^11.1.0 + is-glob: ^4.0.3 + semver: ^7.3.7 + tsutils: ^3.21.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: f331af9f0ef3ce3157c421b8cc727dec5aa0a60add305aa4c676a02c63ec07799105268af192c5ed193a682b7ed804564d29d49bdbd2019678e495d80e65e29a + languageName: node + linkType: hard + +"@typescript-eslint/typescript-estree@npm:5.56.0": + version: 5.56.0 + resolution: "@typescript-eslint/typescript-estree@npm:5.56.0" + dependencies: + "@typescript-eslint/types": 5.56.0 + "@typescript-eslint/visitor-keys": 5.56.0 + debug: ^4.3.4 + globby: ^11.1.0 + is-glob: ^4.0.3 + semver: ^7.3.7 + tsutils: ^3.21.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: ec3e85201786aa9adddba7cb834a9f330a7f55c729ee9ccf847dbdc2f7437b760f3774152ccad6d0aa48d13fd78df766c880e3a7ca42e01a20aba0e1a1ed61c5 + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:5.49.0": + version: 5.49.0 + resolution: "@typescript-eslint/utils@npm:5.49.0" + dependencies: + "@types/json-schema": ^7.0.9 + "@types/semver": ^7.3.12 + "@typescript-eslint/scope-manager": 5.49.0 + "@typescript-eslint/types": 5.49.0 + "@typescript-eslint/typescript-estree": 5.49.0 + eslint-scope: ^5.1.1 + eslint-utils: ^3.0.0 + semver: ^7.3.7 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: 8218c566637d5104dfb2346216f8cb4c244f31c2a39e261aafe554b8abd48bd630a0d0807a0a8d776af8f9d9914c8776d86abf0a523049f3c5619c498a7e5b1e + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:5.56.0": + version: 5.56.0 + resolution: "@typescript-eslint/utils@npm:5.56.0" + dependencies: + "@eslint-community/eslint-utils": ^4.2.0 + "@types/json-schema": ^7.0.9 + "@types/semver": ^7.3.12 + "@typescript-eslint/scope-manager": 5.56.0 + "@typescript-eslint/types": 5.56.0 + "@typescript-eslint/typescript-estree": 5.56.0 + eslint-scope: ^5.1.1 + semver: ^7.3.7 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: 413e8d4bf7023ee5ba4f695b62e796a1f94930bb92fe5aa0cee58f63b9837116c23f618825a9c671f610e50f5630188b6059b4ed6b05a2a3336f01d8e977becb + languageName: node + linkType: hard + +"@typescript-eslint/visitor-keys@npm:5.49.0": + version: 5.49.0 + resolution: "@typescript-eslint/visitor-keys@npm:5.49.0" + dependencies: + "@typescript-eslint/types": 5.49.0 + eslint-visitor-keys: ^3.3.0 + checksum: 46dc7bc713e8825d1fccba521fdf7c6e2f8829e491c2afd44dbe4105c6432e3c3dfe7e1ecb221401269d639264bb4af77b60a7b65521fcff9ab02cd31d8ef782 + languageName: node + linkType: hard + +"@typescript-eslint/visitor-keys@npm:5.56.0": + version: 5.56.0 + resolution: "@typescript-eslint/visitor-keys@npm:5.56.0" + dependencies: + "@typescript-eslint/types": 5.56.0 + eslint-visitor-keys: ^3.3.0 + checksum: 568fda40134e153d7befb59b55698f7919ba780d2d3431d8745feabf2e0fbb8aa7a02173b3c467dd20a0f6594e5248a1f82bb25d6c37827716d77452e86cad29 + languageName: node + linkType: hard + +"@vitejs/plugin-react@npm:3.1.0": + version: 3.1.0 + resolution: "@vitejs/plugin-react@npm:3.1.0" + dependencies: + "@babel/core": ^7.20.12 + "@babel/plugin-transform-react-jsx-self": ^7.18.6 + "@babel/plugin-transform-react-jsx-source": ^7.19.6 + magic-string: ^0.27.0 + react-refresh: ^0.14.0 + peerDependencies: + vite: ^4.1.0-beta.0 + checksum: 450fac79e67cba9e1581c860f78e687b44108ab4117663ef20db279316e03cd8e87f94fef376e27cc5e200bd52813dcc09b70ea570c7c7cc291fcd47eb260fbc + languageName: node + linkType: hard + +"@whatwg-node/events@npm:^0.0.2": + version: 0.0.2 + resolution: "@whatwg-node/events@npm:0.0.2" + checksum: 6d491801d36967d5d62443cca6ef39d41cf882d575839d2e9d1a5f394722cd24ef84fe9e897bb72c01bd198871fda9ff0e8b1ac5aa6f3f814f87d92b7f28fdcc + languageName: node + linkType: hard + +"@whatwg-node/fetch@npm:^0.8.0, @whatwg-node/fetch@npm:^0.8.1": + version: 0.8.4 + resolution: "@whatwg-node/fetch@npm:0.8.4" + dependencies: + "@peculiar/webcrypto": ^1.4.0 + "@whatwg-node/node-fetch": ^0.3.3 + busboy: ^1.6.0 + urlpattern-polyfill: ^6.0.2 + web-streams-polyfill: ^3.2.1 + checksum: 7e40311424a069e5e35d580b65373d0cb63034b39cdce7089d7681d0f354bc7132d1140be5ad39478aa3dbaf62a0053fbf64d77bf3bb3f45d65d8442ef61d4ea + languageName: node + linkType: hard + +"@whatwg-node/node-fetch@npm:^0.3.3": + version: 0.3.4 + resolution: "@whatwg-node/node-fetch@npm:0.3.4" + dependencies: + "@whatwg-node/events": ^0.0.2 + busboy: ^1.6.0 + fast-querystring: ^1.1.1 + fast-url-parser: ^1.1.3 + tslib: ^2.3.1 + checksum: 11bcb83eddc9276ce3c97ae63c015dc1aacaa81210bd0986a53ca5fd290fe470d3f937432e3d84cc3c0ad6e8431ef5e0a2c6115e99b1863076c13d5584c8f6fb + languageName: node + linkType: hard + +"@wry/context@npm:^0.7.0": + version: 0.7.0 + resolution: "@wry/context@npm:0.7.0" + dependencies: + tslib: ^2.3.0 + checksum: f4ff78023a0b949122037aae766232b7d2284dc415204d22d9ea6d7969ff8f5f29b18128bc9a40e68dc054c8a12b1bf5868a357fdb50c398c447290c3a5b0496 + languageName: node + linkType: hard + +"@wry/equality@npm:^0.1.2": + version: 0.1.11 + resolution: "@wry/equality@npm:0.1.11" + dependencies: + tslib: ^1.9.3 + checksum: 1a26a0fd11e3e3a6a197d9a54a5bec523caf693daa24ad2709f496e43dd3cd12290a0d17df81f8a783437795f6c64a1ca2717cdac6e79022bde4450c11e705c9 + languageName: node + linkType: hard + +"@wry/equality@npm:^0.5.0": + version: 0.5.3 + resolution: "@wry/equality@npm:0.5.3" + dependencies: + tslib: ^2.3.0 + checksum: 7ea8ded51462911217183b93cc3ffbb4d18dc02a62d4a79e0d9983463739bf54106aaeb25649bf33168120bd044b61d135018bfcf4fefad8099c13eac9238aa6 + languageName: node + linkType: hard + +"@wry/trie@npm:^0.3.0": + version: 0.3.2 + resolution: "@wry/trie@npm:0.3.2" + dependencies: + tslib: ^2.3.0 + checksum: 151d06b519e1ff1c3acf6ee6846161b1d7d50bbecd4c48e5cd1b05f9e37c30602aff02e88f20105f6e6c54ae4123f9c4eb7715044d7fd927d4ba4ec3e755cd36 + languageName: node + linkType: hard + +"abbrev@npm:^1.0.0": + version: 1.1.1 + resolution: "abbrev@npm:1.1.1" + checksum: a4a97ec07d7ea112c517036882b2ac22f3109b7b19077dc656316d07d308438aac28e4d9746dc4d84bf6b1e75b4a7b0a5f3cb30592419f128ca9a8cee3bcfa17 + languageName: node + linkType: hard + +"acorn-jsx@npm:^5.3.2": + version: 5.3.2 + resolution: "acorn-jsx@npm:5.3.2" + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: c3d3b2a89c9a056b205b69530a37b972b404ee46ec8e5b341666f9513d3163e2a4f214a71f4dfc7370f5a9c07472d2fd1c11c91c3f03d093e37637d95da98950 + languageName: node + linkType: hard + +"acorn@npm:^8.8.0": + version: 8.8.2 + resolution: "acorn@npm:8.8.2" + bin: + acorn: bin/acorn + checksum: f790b99a1bf63ef160c967e23c46feea7787e531292bb827126334612c234ed489a0dc2c7ba33156416f0ffa8d25bf2b0fdb7f35c2ba60eb3e960572bece4001 + languageName: node + linkType: hard + +"agent-base@npm:6, agent-base@npm:^6.0.2": + version: 6.0.2 + resolution: "agent-base@npm:6.0.2" + dependencies: + debug: 4 + checksum: f52b6872cc96fd5f622071b71ef200e01c7c4c454ee68bc9accca90c98cfb39f2810e3e9aa330435835eedc8c23f4f8a15267f67c6e245d2b33757575bdac49d + languageName: node + linkType: hard + +"agentkeepalive@npm:^4.2.1": + version: 4.3.0 + resolution: "agentkeepalive@npm:4.3.0" + dependencies: + debug: ^4.1.0 + depd: ^2.0.0 + humanize-ms: ^1.2.1 + checksum: 982453aa44c11a06826c836025e5162c846e1200adb56f2d075400da7d32d87021b3b0a58768d949d824811f5654223d5a8a3dad120921a2439625eb847c6260 + languageName: node + linkType: hard + +"aggregate-error@npm:^3.0.0": + version: 3.1.0 + resolution: "aggregate-error@npm:3.1.0" + dependencies: + clean-stack: ^2.0.0 + indent-string: ^4.0.0 + checksum: 1101a33f21baa27a2fa8e04b698271e64616b886795fd43c31068c07533c7b3facfcaf4e9e0cab3624bd88f729a592f1c901a1a229c9e490eafce411a8644b79 + languageName: node + linkType: hard + +"ajv@npm:^6.10.0, ajv@npm:^6.12.4": + version: 6.12.6 + resolution: "ajv@npm:6.12.6" + dependencies: + fast-deep-equal: ^3.1.1 + fast-json-stable-stringify: ^2.0.0 + json-schema-traverse: ^0.4.1 + uri-js: ^4.2.2 + checksum: 874972efe5c4202ab0a68379481fbd3d1b5d0a7bd6d3cc21d40d3536ebff3352a2a1fabb632d4fd2cc7fe4cbdcd5ed6782084c9bbf7f32a1536d18f9da5007d4 + languageName: node + linkType: hard + +"ansi-escapes@npm:^4.2.1, ansi-escapes@npm:^4.3.0": + version: 4.3.2 + resolution: "ansi-escapes@npm:4.3.2" + dependencies: + type-fest: ^0.21.3 + checksum: 93111c42189c0a6bed9cdb4d7f2829548e943827ee8479c74d6e0b22ee127b2a21d3f8b5ca57723b8ef78ce011fbfc2784350eb2bde3ccfccf2f575fa8489815 + languageName: node + linkType: hard + +"ansi-regex@npm:^5.0.1": + version: 5.0.1 + resolution: "ansi-regex@npm:5.0.1" + checksum: 2aa4bb54caf2d622f1afdad09441695af2a83aa3fe8b8afa581d205e57ed4261c183c4d3877cee25794443fde5876417d859c108078ab788d6af7e4fe52eb66b + languageName: node + linkType: hard + +"ansi-styles@npm:^3.2.1": + version: 3.2.1 + resolution: "ansi-styles@npm:3.2.1" + dependencies: + color-convert: ^1.9.0 + checksum: d85ade01c10e5dd77b6c89f34ed7531da5830d2cb5882c645f330079975b716438cd7ebb81d0d6e6b4f9c577f19ae41ab55f07f19786b02f9dfd9e0377395665 + languageName: node + linkType: hard + +"ansi-styles@npm:^4.0.0, ansi-styles@npm:^4.1.0": + version: 4.3.0 + resolution: "ansi-styles@npm:4.3.0" + dependencies: + color-convert: ^2.0.1 + checksum: 513b44c3b2105dd14cc42a19271e80f386466c4be574bccf60b627432f9198571ebf4ab1e4c3ba17347658f4ee1711c163d574248c0c1cdc2d5917a0ad582ec4 + languageName: node + linkType: hard + +"apollo-link-http-common@npm:^0.2.4": + version: 0.2.16 + resolution: "apollo-link-http-common@npm:0.2.16" + dependencies: + apollo-link: ^1.2.14 + ts-invariant: ^0.4.0 + tslib: ^1.9.3 + peerDependencies: + graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 + checksum: 46672f2b10a01f495ed91d32b9d21ed0747bf23c8c23a2041ca41dd92a05e0e18d7842d29c958f6ddfaee03bd89202788f593cdcb96d4167191aff125f109c67 + languageName: node + linkType: hard + +"apollo-link@npm:1.2.5": + version: 1.2.5 + resolution: "apollo-link@npm:1.2.5" + dependencies: + apollo-utilities: ^1.0.0 + zen-observable-ts: ^0.8.12 + peerDependencies: + graphql: ^0.11.3 || ^0.12.3 || ^0.13.0 || ^14.0.0 + checksum: 4f28eaced42e75c9b0402b89c994cc8e20dd60566e4478e19900c1a88f08fe6a1f126181f5454d45e9b20720e0f243462b7f95fa13a06f9008c7728acf83e8f8 + languageName: node + linkType: hard + +"apollo-link@npm:>=1.2.5, apollo-link@npm:^1.2.14": + version: 1.2.14 + resolution: "apollo-link@npm:1.2.14" + dependencies: + apollo-utilities: ^1.3.0 + ts-invariant: ^0.4.0 + tslib: ^1.9.3 + zen-observable-ts: ^0.8.21 + peerDependencies: + graphql: ^0.11.3 || ^0.12.3 || ^0.13.0 || ^14.0.0 || ^15.0.0 + checksum: ad8d051ffceb270cdbbcc71d499bce2fda437a65fac6edc859a9e2dc0dbcb10b6a3f4da41789e786270aa358719c8b71315f383a698a74957df0d7aeea042918 + languageName: node + linkType: hard + +"apollo-utilities@npm:^1.0.0, apollo-utilities@npm:^1.3.0": + version: 1.3.4 + resolution: "apollo-utilities@npm:1.3.4" + dependencies: + "@wry/equality": ^0.1.2 + fast-json-stable-stringify: ^2.0.0 + ts-invariant: ^0.4.0 + tslib: ^1.10.0 + peerDependencies: + graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 + checksum: 6e0192a3420782909c930f5230808d7fbbdbcdfccddd960120e19bab251b77a16e590b05dbb4a7da2c27c59077fbfd53e56819a9fae694debe7f898e8b0ec1e9 + languageName: node + linkType: hard + +"aproba@npm:^1.0.3 || ^2.0.0": + version: 2.0.0 + resolution: "aproba@npm:2.0.0" + checksum: 5615cadcfb45289eea63f8afd064ab656006361020e1735112e346593856f87435e02d8dcc7ff0d11928bc7d425f27bc7c2a84f6c0b35ab0ff659c814c138a24 + languageName: node + linkType: hard + +"are-we-there-yet@npm:^3.0.0": + version: 3.0.1 + resolution: "are-we-there-yet@npm:3.0.1" + dependencies: + delegates: ^1.0.0 + readable-stream: ^3.6.0 + checksum: 52590c24860fa7173bedeb69a4c05fb573473e860197f618b9a28432ee4379049336727ae3a1f9c4cb083114601c1140cee578376164d0e651217a9843f9fe83 + languageName: node + linkType: hard + +"argparse@npm:^2.0.1": + version: 2.0.1 + resolution: "argparse@npm:2.0.1" + checksum: 83644b56493e89a254bae05702abf3a1101b4fa4d0ca31df1c9985275a5a5bd47b3c27b7fa0b71098d41114d8ca000e6ed90cad764b306f8a503665e4d517ced + languageName: node + linkType: hard + +"aria-hidden@npm:^1.1.3": + version: 1.2.3 + resolution: "aria-hidden@npm:1.2.3" + dependencies: + tslib: ^2.0.0 + checksum: 7d7d211629eef315e94ed3b064c6823d13617e609d3f9afab1c2ed86399bb8e90405f9bdd358a85506802766f3ecb468af985c67c846045a34b973bcc0289db9 + languageName: node + linkType: hard + +"aria-query@npm:^5.1.3": + version: 5.1.3 + resolution: "aria-query@npm:5.1.3" + dependencies: + deep-equal: ^2.0.5 + checksum: 929ff95f02857b650fb4cbcd2f41072eee2f46159a6605ea03bf63aa572e35ffdff43d69e815ddc462e16e07de8faba3978afc2813650b4448ee18c9895d982b + languageName: node + linkType: hard + +"array-buffer-byte-length@npm:^1.0.0": + version: 1.0.0 + resolution: "array-buffer-byte-length@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + is-array-buffer: ^3.0.1 + checksum: 044e101ce150f4804ad19c51d6c4d4cfa505c5b2577bd179256e4aa3f3f6a0a5e9874c78cd428ee566ac574c8a04d7ce21af9fe52e844abfdccb82b33035a7c3 + languageName: node + linkType: hard + +"array-includes@npm:^3.1.5, array-includes@npm:^3.1.6": + version: 3.1.6 + resolution: "array-includes@npm:3.1.6" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + get-intrinsic: ^1.1.3 + is-string: ^1.0.7 + checksum: f22f8cd8ba8a6448d91eebdc69f04e4e55085d09232b5216ee2d476dab3ef59984e8d1889e662c6a0ed939dcb1b57fd05b2c0209c3370942fc41b752c82a2ca5 + languageName: node + linkType: hard + +"array-union@npm:^2.1.0": + version: 2.1.0 + resolution: "array-union@npm:2.1.0" + checksum: 5bee12395cba82da674931df6d0fea23c4aa4660cb3b338ced9f828782a65caa232573e6bf3968f23e0c5eb301764a382cef2f128b170a9dc59de0e36c39f98d + languageName: node + linkType: hard + +"array.prototype.flat@npm:^1.3.1": + version: 1.3.1 + resolution: "array.prototype.flat@npm:1.3.1" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + es-shim-unscopables: ^1.0.0 + checksum: 5a8415949df79bf6e01afd7e8839bbde5a3581300e8ad5d8449dea52639e9e59b26a467665622783697917b43bf39940a6e621877c7dd9b3d1c1f97484b9b88b + languageName: node + linkType: hard + +"array.prototype.flatmap@npm:^1.3.1": + version: 1.3.1 + resolution: "array.prototype.flatmap@npm:1.3.1" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + es-shim-unscopables: ^1.0.0 + checksum: 8c1c43a4995f12cf12523436da28515184c753807b3f0bc2ca6c075f71c470b099e2090cc67dba8e5280958fea401c1d0c59e1db0143272aef6cd1103921a987 + languageName: node + linkType: hard + +"array.prototype.tosorted@npm:^1.1.1": + version: 1.1.1 + resolution: "array.prototype.tosorted@npm:1.1.1" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + es-shim-unscopables: ^1.0.0 + get-intrinsic: ^1.1.3 + checksum: 7923324a67e70a2fc0a6e40237405d92395e45ebd76f5cb89c2a5cf1e66b47aca6baacd0cd628ffd88830b90d47fff268071493d09c9ae123645613dac2c2ca3 + languageName: node + linkType: hard + +"asap@npm:~2.0.3": + version: 2.0.6 + resolution: "asap@npm:2.0.6" + checksum: b296c92c4b969e973260e47523207cd5769abd27c245a68c26dc7a0fe8053c55bb04360237cb51cab1df52be939da77150ace99ad331fb7fb13b3423ed73ff3d + languageName: node + linkType: hard + +"asn1js@npm:^3.0.1, asn1js@npm:^3.0.5": + version: 3.0.5 + resolution: "asn1js@npm:3.0.5" + dependencies: + pvtsutils: ^1.3.2 + pvutils: ^1.1.3 + tslib: ^2.4.0 + checksum: 3b6af1bbadd5762ef8ead5daf2f6bda1bc9e23bc825c4dcc996aa1f9521ad7390a64028565d95d98090d69c8431f004c71cccb866004759169d7c203cf9075eb + languageName: node + linkType: hard + +"ast-types-flow@npm:^0.0.7": + version: 0.0.7 + resolution: "ast-types-flow@npm:0.0.7" + checksum: a26dcc2182ffee111cad7c471759b0bda22d3b7ebacf27c348b22c55f16896b18ab0a4d03b85b4020dce7f3e634b8f00b593888f622915096ea1927fa51866c4 + languageName: node + linkType: hard + +"astral-regex@npm:^2.0.0": + version: 2.0.0 + resolution: "astral-regex@npm:2.0.0" + checksum: 876231688c66400473ba505731df37ea436e574dd524520294cc3bbc54ea40334865e01fa0d074d74d036ee874ee7e62f486ea38bc421ee8e6a871c06f011766 + languageName: node + linkType: hard + +"asynckit@npm:^0.4.0": + version: 0.4.0 + resolution: "asynckit@npm:0.4.0" + checksum: 7b78c451df768adba04e2d02e63e2d0bf3b07adcd6e42b4cf665cb7ce899bedd344c69a1dcbce355b5f972d597b25aaa1c1742b52cffd9caccb22f348114f6be + languageName: node + linkType: hard + +"auto-bind@npm:~4.0.0": + version: 4.0.0 + resolution: "auto-bind@npm:4.0.0" + checksum: 00cad71cce5742faccb7dd65c1b55ebc4f45add4b0c9a1547b10b05bab22813230133b0c892c67ba3eb969a4524710c5e43cc45c72898ec84e56f3a596e7a04f + languageName: node + linkType: hard + +"available-typed-arrays@npm:^1.0.5": + version: 1.0.5 + resolution: "available-typed-arrays@npm:1.0.5" + checksum: 20eb47b3cefd7db027b9bbb993c658abd36d4edd3fe1060e83699a03ee275b0c9b216cc076ff3f2db29073225fb70e7613987af14269ac1fe2a19803ccc97f1a + languageName: node + linkType: hard + +"axe-core@npm:^4.6.2": + version: 4.6.3 + resolution: "axe-core@npm:4.6.3" + checksum: d0c46be92b9707c48b88a53cd5f471b155a2bfc8bf6beffb514ecd14e30b4863e340b5fc4f496d82a3c562048088c1f3ff5b93b9b3b026cb9c3bfacfd535da10 + languageName: node + linkType: hard + +"axobject-query@npm:^3.1.1": + version: 3.1.1 + resolution: "axobject-query@npm:3.1.1" + dependencies: + deep-equal: ^2.0.5 + checksum: c12a5da10dc7bab75e1cda9b6a3b5fcf10eba426ddf1a17b71ef65a434ed707ede7d1c4f013ba1609e970bc8c0cddac01365080d376204314e9b294719acd8a5 + languageName: node + linkType: hard + +"babel-plugin-macros@npm:^3.1.0": + version: 3.1.0 + resolution: "babel-plugin-macros@npm:3.1.0" + dependencies: + "@babel/runtime": ^7.12.5 + cosmiconfig: ^7.0.0 + resolve: ^1.19.0 + checksum: 765de4abebd3e4688ebdfbff8571ddc8cd8061f839bb6c3e550b0344a4027b04c60491f843296ce3f3379fb356cc873d57a9ee6694262547eb822c14a25be9a6 + languageName: node + linkType: hard + +"babel-plugin-polyfill-corejs2@npm:^0.3.3": + version: 0.3.3 + resolution: "babel-plugin-polyfill-corejs2@npm:0.3.3" + dependencies: + "@babel/compat-data": ^7.17.7 + "@babel/helper-define-polyfill-provider": ^0.3.3 + semver: ^6.1.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7db3044993f3dddb3cc3d407bc82e640964a3bfe22de05d90e1f8f7a5cb71460011ab136d3c03c6c1ba428359ebf635688cd6205e28d0469bba221985f5c6179 + languageName: node + linkType: hard + +"babel-plugin-polyfill-corejs3@npm:^0.6.0": + version: 0.6.0 + resolution: "babel-plugin-polyfill-corejs3@npm:0.6.0" + dependencies: + "@babel/helper-define-polyfill-provider": ^0.3.3 + core-js-compat: ^3.25.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 470bb8c59f7c0912bd77fe1b5a2e72f349b3f65bbdee1d60d6eb7e1f4a085c6f24b2dd5ab4ac6c2df6444a96b070ef6790eccc9edb6a2668c60d33133bfb62c6 + languageName: node + linkType: hard + +"babel-plugin-polyfill-regenerator@npm:^0.4.1": + version: 0.4.1 + resolution: "babel-plugin-polyfill-regenerator@npm:0.4.1" + dependencies: + "@babel/helper-define-polyfill-provider": ^0.3.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ab0355efbad17d29492503230387679dfb780b63b25408990d2e4cf421012dae61d6199ddc309f4d2409ce4e9d3002d187702700dd8f4f8770ebbba651ed066c + languageName: node + linkType: hard + +"babel-plugin-styled-components@npm:>= 1.12.0": + version: 2.0.7 + resolution: "babel-plugin-styled-components@npm:2.0.7" + dependencies: + "@babel/helper-annotate-as-pure": ^7.16.0 + "@babel/helper-module-imports": ^7.16.0 + babel-plugin-syntax-jsx: ^6.18.0 + lodash: ^4.17.11 + picomatch: ^2.3.0 + peerDependencies: + styled-components: ">= 2" + checksum: 80b06b10db02d749432a0ac43a5feedd686f6b648628d7433a39b1844260b2b7c72431f6e705c82636ee025fcfd4f6c32fc05677e44033b8a39ddcd4488b3147 + languageName: node + linkType: hard + +"babel-plugin-syntax-jsx@npm:^6.18.0": + version: 6.18.0 + resolution: "babel-plugin-syntax-jsx@npm:6.18.0" + checksum: 0c7ce5b81d6cfc01a7dd7a76a9a8f090ee02ba5c890310f51217ef1a7e6163fb7848994bbc14fd560117892e82240df9c7157ad0764da67ca5f2afafb73a7d27 + languageName: node + linkType: hard + +"babel-plugin-syntax-trailing-function-commas@npm:^7.0.0-beta.0": + version: 7.0.0-beta.0 + resolution: "babel-plugin-syntax-trailing-function-commas@npm:7.0.0-beta.0" + checksum: e37509156ca945dd9e4b82c66dd74f2d842ad917bd280cb5aa67960942300cd065eeac476d2514bdcdedec071277a358f6d517c31d9f9244d9bbc3619a8ecf8a + languageName: node + linkType: hard + +"babel-polyfill@npm:6.26.0": + version: 6.26.0 + resolution: "babel-polyfill@npm:6.26.0" + dependencies: + babel-runtime: ^6.26.0 + core-js: ^2.5.0 + regenerator-runtime: ^0.10.5 + checksum: 6fb1a3c0bfe1b6fc56ce1afcf531878aa629b309277a05fbf3fe950589b24cb4052a6e487db21d318eb5336b68730a21f5ef62166b6cc8aea3406261054d1118 + languageName: node + linkType: hard + +"babel-preset-fbjs@npm:^3.4.0": + version: 3.4.0 + resolution: "babel-preset-fbjs@npm:3.4.0" + dependencies: + "@babel/plugin-proposal-class-properties": ^7.0.0 + "@babel/plugin-proposal-object-rest-spread": ^7.0.0 + "@babel/plugin-syntax-class-properties": ^7.0.0 + "@babel/plugin-syntax-flow": ^7.0.0 + "@babel/plugin-syntax-jsx": ^7.0.0 + "@babel/plugin-syntax-object-rest-spread": ^7.0.0 + "@babel/plugin-transform-arrow-functions": ^7.0.0 + "@babel/plugin-transform-block-scoped-functions": ^7.0.0 + "@babel/plugin-transform-block-scoping": ^7.0.0 + "@babel/plugin-transform-classes": ^7.0.0 + "@babel/plugin-transform-computed-properties": ^7.0.0 + "@babel/plugin-transform-destructuring": ^7.0.0 + "@babel/plugin-transform-flow-strip-types": ^7.0.0 + "@babel/plugin-transform-for-of": ^7.0.0 + "@babel/plugin-transform-function-name": ^7.0.0 + "@babel/plugin-transform-literals": ^7.0.0 + "@babel/plugin-transform-member-expression-literals": ^7.0.0 + "@babel/plugin-transform-modules-commonjs": ^7.0.0 + "@babel/plugin-transform-object-super": ^7.0.0 + "@babel/plugin-transform-parameters": ^7.0.0 + "@babel/plugin-transform-property-literals": ^7.0.0 + "@babel/plugin-transform-react-display-name": ^7.0.0 + "@babel/plugin-transform-react-jsx": ^7.0.0 + "@babel/plugin-transform-shorthand-properties": ^7.0.0 + "@babel/plugin-transform-spread": ^7.0.0 + "@babel/plugin-transform-template-literals": ^7.0.0 + babel-plugin-syntax-trailing-function-commas: ^7.0.0-beta.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: b3352cf690729125997f254bc31b9c4db347f8646f1571958ced1c45f0da89439e183e1c88e35397eb0361b9e1fbb1dd8142d3f4647814deb427e53c54f44d5f + languageName: node + linkType: hard + +"babel-runtime@npm:6.26.0, babel-runtime@npm:^6.26.0": + version: 6.26.0 + resolution: "babel-runtime@npm:6.26.0" + dependencies: + core-js: ^2.4.0 + regenerator-runtime: ^0.11.0 + checksum: 8aeade94665e67a73c1ccc10f6fd42ba0c689b980032b70929de7a6d9a12eb87ef51902733f8fefede35afea7a5c3ef7e916a64d503446c1eedc9e3284bd3d50 + languageName: node + linkType: hard + +"bail@npm:^2.0.0": + version: 2.0.2 + resolution: "bail@npm:2.0.2" + checksum: aab4e8ccdc8d762bf3fdfce8e706601695620c0c2eda256dd85088dc0be3cfd7ff126f6e99c2bee1f24f5d418414aacf09d7f9702f16d6963df2fa488cda8824 + languageName: node + linkType: hard + +"balanced-match@npm:^1.0.0": + version: 1.0.2 + resolution: "balanced-match@npm:1.0.2" + checksum: 9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65 + languageName: node + linkType: hard + +"base64-js@npm:^1.3.1": + version: 1.5.1 + resolution: "base64-js@npm:1.5.1" + checksum: 669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005 + languageName: node + linkType: hard + +"bl@npm:^4.1.0": + version: 4.1.0 + resolution: "bl@npm:4.1.0" + dependencies: + buffer: ^5.5.0 + inherits: ^2.0.4 + readable-stream: ^3.4.0 + checksum: 9e8521fa7e83aa9427c6f8ccdcba6e8167ef30cc9a22df26effcc5ab682ef91d2cbc23a239f945d099289e4bbcfae7a192e9c28c84c6202e710a0dfec3722662 + languageName: node + linkType: hard + +"brace-expansion@npm:^1.1.7": + version: 1.1.11 + resolution: "brace-expansion@npm:1.1.11" + dependencies: + balanced-match: ^1.0.0 + concat-map: 0.0.1 + checksum: faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07 + languageName: node + linkType: hard + +"brace-expansion@npm:^2.0.1": + version: 2.0.1 + resolution: "brace-expansion@npm:2.0.1" + dependencies: + balanced-match: ^1.0.0 + checksum: a61e7cd2e8a8505e9f0036b3b6108ba5e926b4b55089eeb5550cd04a471fe216c96d4fe7e4c7f995c728c554ae20ddfc4244cad10aef255e72b62930afd233d1 + languageName: node + linkType: hard + +"braces@npm:^3.0.2": + version: 3.0.2 + resolution: "braces@npm:3.0.2" + dependencies: + fill-range: ^7.0.1 + checksum: e2a8e769a863f3d4ee887b5fe21f63193a891c68b612ddb4b68d82d1b5f3ff9073af066c343e9867a393fe4c2555dcb33e89b937195feb9c1613d259edfcd459 + languageName: node + linkType: hard + +"browserslist@npm:^4.21.3, browserslist@npm:^4.21.5": + version: 4.21.5 + resolution: "browserslist@npm:4.21.5" + dependencies: + caniuse-lite: ^1.0.30001449 + electron-to-chromium: ^1.4.284 + node-releases: ^2.0.8 + update-browserslist-db: ^1.0.10 + bin: + browserslist: cli.js + checksum: 9755986b22e73a6a1497fd8797aedd88e04270be33ce66ed5d85a1c8a798292a65e222b0f251bafa1c2522261e237d73b08b58689d4920a607e5a53d56dc4706 + languageName: node + linkType: hard + +"bser@npm:2.1.1": + version: 2.1.1 + resolution: "bser@npm:2.1.1" + dependencies: + node-int64: ^0.4.0 + checksum: 9ba4dc58ce86300c862bffc3ae91f00b2a03b01ee07f3564beeeaf82aa243b8b03ba53f123b0b842c190d4399b94697970c8e7cf7b1ea44b61aa28c3526a4449 + languageName: node + linkType: hard + +"buffer@npm:^5.5.0": + version: 5.7.1 + resolution: "buffer@npm:5.7.1" + dependencies: + base64-js: ^1.3.1 + ieee754: ^1.1.13 + checksum: e2cf8429e1c4c7b8cbd30834ac09bd61da46ce35f5c22a78e6c2f04497d6d25541b16881e30a019c6fd3154150650ccee27a308eff3e26229d788bbdeb08ab84 + languageName: node + linkType: hard + +"busboy@npm:^1.6.0": + version: 1.6.0 + resolution: "busboy@npm:1.6.0" + dependencies: + streamsearch: ^1.1.0 + checksum: 32801e2c0164e12106bf236291a00795c3c4e4b709ae02132883fe8478ba2ae23743b11c5735a0aae8afe65ac4b6ca4568b91f0d9fed1fdbc32ede824a73746e + languageName: node + linkType: hard + +"cacache@npm:^16.1.0": + version: 16.1.3 + resolution: "cacache@npm:16.1.3" + dependencies: + "@npmcli/fs": ^2.1.0 + "@npmcli/move-file": ^2.0.0 + chownr: ^2.0.0 + fs-minipass: ^2.1.0 + glob: ^8.0.1 + infer-owner: ^1.0.4 + lru-cache: ^7.7.1 + minipass: ^3.1.6 + minipass-collect: ^1.0.2 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + mkdirp: ^1.0.4 + p-map: ^4.0.0 + promise-inflight: ^1.0.1 + rimraf: ^3.0.2 + ssri: ^9.0.0 + tar: ^6.1.11 + unique-filename: ^2.0.0 + checksum: d91409e6e57d7d9a3a25e5dcc589c84e75b178ae8ea7de05cbf6b783f77a5fae938f6e8fda6f5257ed70000be27a681e1e44829251bfffe4c10216002f8f14e6 + languageName: node + linkType: hard + +"call-bind@npm:^1.0.0, call-bind@npm:^1.0.2": + version: 1.0.2 + resolution: "call-bind@npm:1.0.2" + dependencies: + function-bind: ^1.1.1 + get-intrinsic: ^1.0.2 + checksum: f8e31de9d19988a4b80f3e704788c4a2d6b6f3d17cfec4f57dc29ced450c53a49270dc66bf0fbd693329ee948dd33e6c90a329519aef17474a4d961e8d6426b0 + languageName: node + linkType: hard + +"callsites@npm:^3.0.0": + version: 3.1.0 + resolution: "callsites@npm:3.1.0" + checksum: 072d17b6abb459c2ba96598918b55868af677154bec7e73d222ef95a8fdb9bbf7dae96a8421085cdad8cd190d86653b5b6dc55a4484f2e5b2e27d5e0c3fc15b3 + languageName: node + linkType: hard + +"camel-case@npm:^4.1.2": + version: 4.1.2 + resolution: "camel-case@npm:4.1.2" + dependencies: + pascal-case: ^3.1.2 + tslib: ^2.0.3 + checksum: bcbd25cd253b3cbc69be3f535750137dbf2beb70f093bdc575f73f800acc8443d34fd52ab8f0a2413c34f1e8203139ffc88428d8863e4dfe530cfb257a379ad6 + languageName: node + linkType: hard + +"camelcase@npm:^5.0.0": + version: 5.3.1 + resolution: "camelcase@npm:5.3.1" + checksum: e6effce26b9404e3c0f301498184f243811c30dfe6d0b9051863bd8e4034d09c8c2923794f280d6827e5aa055f6c434115ff97864a16a963366fb35fd673024b + languageName: node + linkType: hard + +"camelize@npm:^1.0.0": + version: 1.0.1 + resolution: "camelize@npm:1.0.1" + checksum: 91d8611d09af725e422a23993890d22b2b72b4cabf7239651856950c76b4bf53fe0d0da7c5e4db05180e898e4e647220e78c9fbc976113bd96d603d1fcbfcb99 + languageName: node + linkType: hard + +"caniuse-lite@npm:^1.0.30001449": + version: 1.0.30001465 + resolution: "caniuse-lite@npm:1.0.30001465" + checksum: c991ecdfff378a22b268f9b1eb732d003c8ad89db3241a4cdec3b3ec3354aa966a44171cb806c90abe2e3f0573d67dc29a7dce2478b1f070b23747c392244c5d + languageName: node + linkType: hard + +"capital-case@npm:^1.0.4": + version: 1.0.4 + resolution: "capital-case@npm:1.0.4" + dependencies: + no-case: ^3.0.4 + tslib: ^2.0.3 + upper-case-first: ^2.0.2 + checksum: 41fa8fa87f6d24d0835a2b4a9341a3eaecb64ac29cd7c5391f35d6175a0fa98ab044e7f2602e1ec3afc886231462ed71b5b80c590b8b41af903ec2c15e5c5931 + languageName: node + linkType: hard + +"chalk@npm:^2.0.0": + version: 2.4.2 + resolution: "chalk@npm:2.4.2" + dependencies: + ansi-styles: ^3.2.1 + escape-string-regexp: ^1.0.5 + supports-color: ^5.3.0 + checksum: ec3661d38fe77f681200f878edbd9448821924e0f93a9cefc0e26a33b145f1027a2084bf19967160d11e1f03bfe4eaffcabf5493b89098b2782c3fe0b03d80c2 + languageName: node + linkType: hard + +"chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.1": + version: 4.1.2 + resolution: "chalk@npm:4.1.2" + dependencies: + ansi-styles: ^4.1.0 + supports-color: ^7.1.0 + checksum: fe75c9d5c76a7a98d45495b91b2172fa3b7a09e0cc9370e5c8feb1c567b85c4288e2b3fded7cfdd7359ac28d6b3844feb8b82b8686842e93d23c827c417e83fc + languageName: node + linkType: hard + +"change-case-all@npm:1.0.14": + version: 1.0.14 + resolution: "change-case-all@npm:1.0.14" + dependencies: + change-case: ^4.1.2 + is-lower-case: ^2.0.2 + is-upper-case: ^2.0.2 + lower-case: ^2.0.2 + lower-case-first: ^2.0.2 + sponge-case: ^1.0.1 + swap-case: ^2.0.2 + title-case: ^3.0.3 + upper-case: ^2.0.2 + upper-case-first: ^2.0.2 + checksum: 6ff893e005e1bf115cc2969cc5ca3610f7c6ece9e90b7927ed12c980c7d3ea9a565150d246c6dba0fee21aaacbd38d69b98a4670d96b892c76f66e46616506d3 + languageName: node + linkType: hard + +"change-case-all@npm:1.0.15": + version: 1.0.15 + resolution: "change-case-all@npm:1.0.15" + dependencies: + change-case: ^4.1.2 + is-lower-case: ^2.0.2 + is-upper-case: ^2.0.2 + lower-case: ^2.0.2 + lower-case-first: ^2.0.2 + sponge-case: ^1.0.1 + swap-case: ^2.0.2 + title-case: ^3.0.3 + upper-case: ^2.0.2 + upper-case-first: ^2.0.2 + checksum: e1dabdcd8447a3690f3faf15f92979dfbc113109b50916976e1d5e518e6cfdebee4f05f54d0ca24fb79a4bf835185b59ae25e967bb3dc10bd236a775b19ecc52 + languageName: node + linkType: hard + +"change-case@npm:^4.1.2": + version: 4.1.2 + resolution: "change-case@npm:4.1.2" + dependencies: + camel-case: ^4.1.2 + capital-case: ^1.0.4 + constant-case: ^3.0.4 + dot-case: ^3.0.4 + header-case: ^2.0.4 + no-case: ^3.0.4 + param-case: ^3.0.4 + pascal-case: ^3.1.2 + path-case: ^3.0.4 + sentence-case: ^3.0.4 + snake-case: ^3.0.4 + tslib: ^2.0.3 + checksum: e4bc4a093a1f7cce8b33896665cf9e456e3bc3cc0def2ad7691b1994cfca99b3188d0a513b16855b01a6bd20692fcde12a7d4d87a5615c4c515bbbf0e651f116 + languageName: node + linkType: hard + +"character-entities@npm:^2.0.0": + version: 2.0.2 + resolution: "character-entities@npm:2.0.2" + checksum: cf1643814023697f725e47328fcec17923b8f1799102a8a79c1514e894815651794a2bffd84bb1b3a4b124b050154e4529ed6e81f7c8068a734aecf07a6d3def + languageName: node + linkType: hard + +"chardet@npm:^0.7.0": + version: 0.7.0 + resolution: "chardet@npm:0.7.0" + checksum: 6fd5da1f5d18ff5712c1e0aed41da200d7c51c28f11b36ee3c7b483f3696dabc08927fc6b227735eb8f0e1215c9a8abd8154637f3eff8cada5959df7f58b024d + languageName: node + linkType: hard + +"chownr@npm:^2.0.0": + version: 2.0.0 + resolution: "chownr@npm:2.0.0" + checksum: c57cf9dd0791e2f18a5ee9c1a299ae6e801ff58fee96dc8bfd0dcb4738a6ce58dd252a3605b1c93c6418fe4f9d5093b28ffbf4d66648cb2a9c67eaef9679be2f + languageName: node + linkType: hard + +"chroma-js@npm:2.4.2": + version: 2.4.2 + resolution: "chroma-js@npm:2.4.2" + checksum: cf9884c02d406286e4370599bcd1afbf089384407df46b3a69edfedcba7bb99e8f959a5cfdbfec750b305c441c06ca40cd1f70ba3a6c2ce739ac09a92520ddae + languageName: node + linkType: hard + +"classnames@npm:2.3.2, classnames@npm:^2.2.6": + version: 2.3.2 + resolution: "classnames@npm:2.3.2" + checksum: 2c62199789618d95545c872787137262e741f9db13328e216b093eea91c85ef2bfb152c1f9e63027204e2559a006a92eb74147d46c800a9f96297ae1d9f96f4e + languageName: node + linkType: hard + +"clean-stack@npm:^2.0.0": + version: 2.2.0 + resolution: "clean-stack@npm:2.2.0" + checksum: 2ac8cd2b2f5ec986a3c743935ec85b07bc174d5421a5efc8017e1f146a1cf5f781ae962618f416352103b32c9cd7e203276e8c28241bbe946160cab16149fb68 + languageName: node + linkType: hard + +"cli-cursor@npm:^3.1.0": + version: 3.1.0 + resolution: "cli-cursor@npm:3.1.0" + dependencies: + restore-cursor: ^3.1.0 + checksum: 2692784c6cd2fd85cfdbd11f53aea73a463a6d64a77c3e098b2b4697a20443f430c220629e1ca3b195ea5ac4a97a74c2ee411f3807abf6df2b66211fec0c0a29 + languageName: node + linkType: hard + +"cli-spinners@npm:^2.5.0": + version: 2.7.0 + resolution: "cli-spinners@npm:2.7.0" + checksum: a9afaf73f58d1f951fb23742f503631b3cf513f43f4c7acb1b640100eb76bfa16efbcd1994d149ffc6603a6d75dd3d4a516a76f125f90dce437de9b16fd0ee6f + languageName: node + linkType: hard + +"cli-truncate@npm:^2.1.0": + version: 2.1.0 + resolution: "cli-truncate@npm:2.1.0" + dependencies: + slice-ansi: ^3.0.0 + string-width: ^4.2.0 + checksum: bf1e4e6195392dc718bf9cd71f317b6300dc4a9191d052f31046b8773230ece4fa09458813bf0e3455a5e68c0690d2ea2c197d14a8b85a7b5e01c97f4b5feb5d + languageName: node + linkType: hard + +"cli-width@npm:^3.0.0": + version: 3.0.0 + resolution: "cli-width@npm:3.0.0" + checksum: 4c94af3769367a70e11ed69aa6095f1c600c0ff510f3921ab4045af961820d57c0233acfa8b6396037391f31b4c397e1f614d234294f979ff61430a6c166c3f6 + languageName: node + linkType: hard + +"cliui@npm:^6.0.0": + version: 6.0.0 + resolution: "cliui@npm:6.0.0" + dependencies: + string-width: ^4.2.0 + strip-ansi: ^6.0.0 + wrap-ansi: ^6.2.0 + checksum: 4fcfd26d292c9f00238117f39fc797608292ae36bac2168cfee4c85923817d0607fe21b3329a8621e01aedf512c99b7eaa60e363a671ffd378df6649fb48ae42 + languageName: node + linkType: hard + +"cliui@npm:^8.0.1": + version: 8.0.1 + resolution: "cliui@npm:8.0.1" + dependencies: + string-width: ^4.2.0 + strip-ansi: ^6.0.1 + wrap-ansi: ^7.0.0 + checksum: 79648b3b0045f2e285b76fb2e24e207c6db44323581e421c3acbd0e86454cba1b37aea976ab50195a49e7384b871e6dfb2247ad7dec53c02454ac6497394cb56 + languageName: node + linkType: hard + +"clone@npm:^1.0.2": + version: 1.0.4 + resolution: "clone@npm:1.0.4" + checksum: d06418b7335897209e77bdd430d04f882189582e67bd1f75a04565f3f07f5b3f119a9d670c943b6697d0afb100f03b866b3b8a1f91d4d02d72c4ecf2bb64b5dd + languageName: node + linkType: hard + +"clsx@npm:^1.1.1": + version: 1.2.1 + resolution: "clsx@npm:1.2.1" + checksum: 30befca8019b2eb7dbad38cff6266cf543091dae2825c856a62a8ccf2c3ab9c2907c4d12b288b73101196767f66812365400a227581484a05f968b0307cfaf12 + languageName: node + linkType: hard + +"color-convert@npm:^1.9.0": + version: 1.9.3 + resolution: "color-convert@npm:1.9.3" + dependencies: + color-name: 1.1.3 + checksum: fd7a64a17cde98fb923b1dd05c5f2e6f7aefda1b60d67e8d449f9328b4e53b228a428fd38bfeaeb2db2ff6b6503a776a996150b80cdf224062af08a5c8a3a203 + languageName: node + linkType: hard + +"color-convert@npm:^2.0.1": + version: 2.0.1 + resolution: "color-convert@npm:2.0.1" + dependencies: + color-name: ~1.1.4 + checksum: 79e6bdb9fd479a205c71d89574fccfb22bd9053bd98c6c4d870d65c132e5e904e6034978e55b43d69fcaa7433af2016ee203ce76eeba9cfa554b373e7f7db336 + languageName: node + linkType: hard + +"color-name@npm:1.1.3": + version: 1.1.3 + resolution: "color-name@npm:1.1.3" + checksum: 09c5d3e33d2105850153b14466501f2bfb30324a2f76568a408763a3b7433b0e50e5b4ab1947868e65cb101bb7cb75029553f2c333b6d4b8138a73fcc133d69d + languageName: node + linkType: hard + +"color-name@npm:~1.1.4": + version: 1.1.4 + resolution: "color-name@npm:1.1.4" + checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 + languageName: node + linkType: hard + +"color-support@npm:^1.1.3": + version: 1.1.3 + resolution: "color-support@npm:1.1.3" + bin: + color-support: bin.js + checksum: 9b7356817670b9a13a26ca5af1c21615463b500783b739b7634a0c2047c16cef4b2865d7576875c31c3cddf9dd621fa19285e628f20198b233a5cfdda6d0793b + languageName: node + linkType: hard + +"colorette@npm:^2.0.16": + version: 2.0.19 + resolution: "colorette@npm:2.0.19" + checksum: 888cf5493f781e5fcf54ce4d49e9d7d698f96ea2b2ef67906834bb319a392c667f9ec69f4a10e268d2946d13a9503d2d19b3abaaaf174e3451bfe91fb9d82427 + languageName: node + linkType: hard + +"combined-stream@npm:^1.0.8": + version: 1.0.8 + resolution: "combined-stream@npm:1.0.8" + dependencies: + delayed-stream: ~1.0.0 + checksum: 49fa4aeb4916567e33ea81d088f6584749fc90c7abec76fd516bf1c5aa5c79f3584b5ba3de6b86d26ddd64bae5329c4c7479343250cfe71c75bb366eae53bb7c + languageName: node + linkType: hard + +"comma-separated-tokens@npm:^2.0.0": + version: 2.0.3 + resolution: "comma-separated-tokens@npm:2.0.3" + checksum: e3bf9e0332a5c45f49b90e79bcdb4a7a85f28d6a6f0876a94f1bb9b2bfbdbbb9292aac50e1e742d8c0db1e62a0229a106f57917e2d067fca951d81737651700d + languageName: node + linkType: hard + +"common-tags@npm:1.8.2": + version: 1.8.2 + resolution: "common-tags@npm:1.8.2" + checksum: 767a6255a84bbc47df49a60ab583053bb29a7d9687066a18500a516188a062c4e4cd52de341f22de0b07062e699b1b8fe3cfa1cb55b241cb9301aeb4f45b4dff + languageName: node + linkType: hard + +"concat-map@npm:0.0.1": + version: 0.0.1 + resolution: "concat-map@npm:0.0.1" + checksum: 902a9f5d8967a3e2faf138d5cb784b9979bad2e6db5357c5b21c568df4ebe62bcb15108af1b2253744844eb964fc023fbd9afbbbb6ddd0bcc204c6fb5b7bf3af + languageName: node + linkType: hard + +"confusing-browser-globals@npm:^1.0.10": + version: 1.0.11 + resolution: "confusing-browser-globals@npm:1.0.11" + checksum: 3afc635abd37e566477f610e7978b15753f0e84025c25d49236f1f14d480117185516bdd40d2a2167e6bed8048641a9854964b9c067e3dcdfa6b5d0ad3c3a5ef + languageName: node + linkType: hard + +"console-control-strings@npm:^1.1.0": + version: 1.1.0 + resolution: "console-control-strings@npm:1.1.0" + checksum: 8755d76787f94e6cf79ce4666f0c5519906d7f5b02d4b884cf41e11dcd759ed69c57da0670afd9236d229a46e0f9cf519db0cd829c6dca820bb5a5c3def584ed + languageName: node + linkType: hard + +"constant-case@npm:^3.0.4": + version: 3.0.4 + resolution: "constant-case@npm:3.0.4" + dependencies: + no-case: ^3.0.4 + tslib: ^2.0.3 + upper-case: ^2.0.2 + checksum: 6c3346d51afc28d9fae922e966c68eb77a19d94858dba230dd92d7b918b37d36db50f0311e9ecf6847e43e934b1c01406a0936973376ab17ec2c471fbcfb2cf3 + languageName: node + linkType: hard + +"convert-source-map@npm:^1.5.0, convert-source-map@npm:^1.7.0": + version: 1.9.0 + resolution: "convert-source-map@npm:1.9.0" + checksum: dc55a1f28ddd0e9485ef13565f8f756b342f9a46c4ae18b843fe3c30c675d058d6a4823eff86d472f187b176f0adf51ea7b69ea38be34be4a63cbbf91b0593c8 + languageName: node + linkType: hard + +"core-js-compat@npm:^3.25.1": + version: 3.29.1 + resolution: "core-js-compat@npm:3.29.1" + dependencies: + browserslist: ^4.21.5 + checksum: 7260f6bbaa98836cda09a3b61aa721149d3ae95040302fb3b27eb153ae9bbddc8dee5249e72004cdc9552532029de4d50a5b2b066c37414421d2929d6091b18f + languageName: node + linkType: hard + +"core-js@npm:2.6.0": + version: 2.6.0 + resolution: "core-js@npm:2.6.0" + checksum: 8341d307b07ef31098c8bf4d9d0bec2e77373c42289b36748ae48425f2854db65feced74a81e2198e68041256f9a157e4b129f317967bdf38934f4307d9d415d + languageName: node + linkType: hard + +"core-js@npm:^2.4.0, core-js@npm:^2.5.0": + version: 2.6.12 + resolution: "core-js@npm:2.6.12" + checksum: 44fa9934a85f8c78d61e0c8b7b22436330471ffe59ec5076fe7f324d6e8cf7f824b14b1c81ca73608b13bdb0fef035bd820989bf059767ad6fa13123bb8bd016 + languageName: node + linkType: hard + +"cosmiconfig@npm:8.0.0": + version: 8.0.0 + resolution: "cosmiconfig@npm:8.0.0" + dependencies: + import-fresh: ^3.2.1 + js-yaml: ^4.1.0 + parse-json: ^5.0.0 + path-type: ^4.0.0 + checksum: ff4cdf89ac1ae52e7520816622c21a9e04380d04b82d653f5139ec581aa4f7f29e096d46770bc76c4a63c225367e88a1dfa233ea791669a35101f5f9b972c7d1 + languageName: node + linkType: hard + +"cosmiconfig@npm:^7.0.0": + version: 7.1.0 + resolution: "cosmiconfig@npm:7.1.0" + dependencies: + "@types/parse-json": ^4.0.0 + import-fresh: ^3.2.1 + parse-json: ^5.0.0 + path-type: ^4.0.0 + yaml: ^1.10.0 + checksum: c53bf7befc1591b2651a22414a5e786cd5f2eeaa87f3678a3d49d6069835a9d8d1aef223728e98aa8fec9a95bf831120d245096db12abe019fecb51f5696c96f + languageName: node + linkType: hard + +"cross-fetch@npm:^3.1.5": + version: 3.1.5 + resolution: "cross-fetch@npm:3.1.5" + dependencies: + node-fetch: 2.6.7 + checksum: f6b8c6ee3ef993ace6277fd789c71b6acf1b504fd5f5c7128df4ef2f125a429e29cd62dc8c127523f04a5f2fa4771ed80e3f3d9695617f441425045f505cf3bb + languageName: node + linkType: hard + +"cross-spawn@npm:^7.0.2": + version: 7.0.3 + resolution: "cross-spawn@npm:7.0.3" + dependencies: + path-key: ^3.1.0 + shebang-command: ^2.0.0 + which: ^2.0.1 + checksum: 671cc7c7288c3a8406f3c69a3ae2fc85555c04169e9d611def9a675635472614f1c0ed0ef80955d5b6d4e724f6ced67f0ad1bb006c2ea643488fcfef994d7f52 + languageName: node + linkType: hard + +"css-color-keywords@npm:^1.0.0": + version: 1.0.0 + resolution: "css-color-keywords@npm:1.0.0" + checksum: 8f125e3ad477bd03c77b533044bd9e8a6f7c0da52d49bbc0bbe38327b3829d6ba04d368ca49dd9ff3b667d2fc8f1698d891c198bbf8feade1a5501bf5a296408 + languageName: node + linkType: hard + +"css-to-react-native@npm:^3.0.0": + version: 3.2.0 + resolution: "css-to-react-native@npm:3.2.0" + dependencies: + camelize: ^1.0.0 + css-color-keywords: ^1.0.0 + postcss-value-parser: ^4.0.2 + checksum: 263be65e805aef02c3f20c064665c998a8c35293e1505dbe6e3054fb186b01a9897ac6cf121f9840e5a9dfe3fb3994f6fcd0af84a865f1df78ba5bf89e77adce + languageName: node + linkType: hard + +"csstype@npm:^3.0.2": + version: 3.1.1 + resolution: "csstype@npm:3.1.1" + checksum: 1f7b4f5fdd955b7444b18ebdddf3f5c699159f13e9cf8ac9027ae4a60ae226aef9bbb14a6e12ca7dba3358b007cee6354b116e720262867c398de6c955ea451d + languageName: node + linkType: hard + +"damerau-levenshtein@npm:^1.0.8": + version: 1.0.8 + resolution: "damerau-levenshtein@npm:1.0.8" + checksum: d240b7757544460ae0586a341a53110ab0a61126570ef2d8c731e3eab3f0cb6e488e2609e6a69b46727635de49be20b071688698744417ff1b6c1d7ccd03e0de + languageName: node + linkType: hard + +"dataloader@npm:2.2.2, dataloader@npm:^2.2.2": + version: 2.2.2 + resolution: "dataloader@npm:2.2.2" + checksum: 4dabd247089c29f194e94d5434d504f99156c5c214a03463c20f3f17f40398d7e179edee69a27c16e315519ac8739042a810090087ae26449a0e685156a02c65 + languageName: node + linkType: hard + +"debounce@npm:^1.2.0, debounce@npm:^1.2.1": + version: 1.2.1 + resolution: "debounce@npm:1.2.1" + checksum: 682a89506d9e54fb109526f4da255c5546102fbb8e3ae75eef3b04effaf5d4853756aee97475cd4650641869794e44f410eeb20ace2b18ea592287ab2038519e + languageName: node + linkType: hard + +"debug@npm:4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.3, debug@npm:^4.3.4": + version: 4.3.4 + resolution: "debug@npm:4.3.4" + dependencies: + ms: 2.1.2 + peerDependenciesMeta: + supports-color: + optional: true + checksum: 3dbad3f94ea64f34431a9cbf0bafb61853eda57bff2880036153438f50fb5a84f27683ba0d8e5426bf41a8c6ff03879488120cf5b3a761e77953169c0600a708 + languageName: node + linkType: hard + +"debug@npm:^3.2.7": + version: 3.2.7 + resolution: "debug@npm:3.2.7" + dependencies: + ms: ^2.1.1 + checksum: b3d8c5940799914d30314b7c3304a43305fd0715581a919dacb8b3176d024a782062368405b47491516d2091d6462d4d11f2f4974a405048094f8bfebfa3071c + languageName: node + linkType: hard + +"decamelize@npm:^1.2.0": + version: 1.2.0 + resolution: "decamelize@npm:1.2.0" + checksum: ad8c51a7e7e0720c70ec2eeb1163b66da03e7616d7b98c9ef43cce2416395e84c1e9548dd94f5f6ffecfee9f8b94251fc57121a8b021f2ff2469b2bae247b8aa + languageName: node + linkType: hard + +"decode-named-character-reference@npm:^1.0.0": + version: 1.0.2 + resolution: "decode-named-character-reference@npm:1.0.2" + dependencies: + character-entities: ^2.0.0 + checksum: f4c71d3b93105f20076052f9cb1523a22a9c796b8296cd35eef1ca54239c78d182c136a848b83ff8da2071e3ae2b1d300bf29d00650a6d6e675438cc31b11d78 + languageName: node + linkType: hard + +"deep-equal@npm:^2.0.5": + version: 2.2.0 + resolution: "deep-equal@npm:2.2.0" + dependencies: + call-bind: ^1.0.2 + es-get-iterator: ^1.1.2 + get-intrinsic: ^1.1.3 + is-arguments: ^1.1.1 + is-array-buffer: ^3.0.1 + is-date-object: ^1.0.5 + is-regex: ^1.1.4 + is-shared-array-buffer: ^1.0.2 + isarray: ^2.0.5 + object-is: ^1.1.5 + object-keys: ^1.1.1 + object.assign: ^4.1.4 + regexp.prototype.flags: ^1.4.3 + side-channel: ^1.0.4 + which-boxed-primitive: ^1.0.2 + which-collection: ^1.0.1 + which-typed-array: ^1.1.9 + checksum: 46a34509d2766d6c6dc5aec4756089cf0cc137e46787e91f08f1ee0bb570d874f19f0493146907df0cf18aed4a7b4b50f6f62c899240a76c323f057528b122e3 + languageName: node + linkType: hard + +"deep-is@npm:^0.1.3": + version: 0.1.4 + resolution: "deep-is@npm:0.1.4" + checksum: edb65dd0d7d1b9c40b2f50219aef30e116cedd6fc79290e740972c132c09106d2e80aa0bc8826673dd5a00222d4179c84b36a790eef63a4c4bca75a37ef90804 + languageName: node + linkType: hard + +"defaults@npm:^1.0.3": + version: 1.0.4 + resolution: "defaults@npm:1.0.4" + dependencies: + clone: ^1.0.2 + checksum: 3a88b7a587fc076b84e60affad8b85245c01f60f38fc1d259e7ac1d89eb9ce6abb19e27215de46b98568dd5bc48471730b327637e6f20b0f1bc85cf00440c80a + languageName: node + linkType: hard + +"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4": + version: 1.2.0 + resolution: "define-properties@npm:1.2.0" + dependencies: + has-property-descriptors: ^1.0.0 + object-keys: ^1.1.1 + checksum: e60aee6a19b102df4e2b1f301816804e81ab48bb91f00d0d935f269bf4b3f79c88b39e4f89eaa132890d23267335fd1140dfcd8d5ccd61031a0a2c41a54e33a6 + languageName: node + linkType: hard + +"delayed-stream@npm:~1.0.0": + version: 1.0.0 + resolution: "delayed-stream@npm:1.0.0" + checksum: 46fe6e83e2cb1d85ba50bd52803c68be9bd953282fa7096f51fc29edd5d67ff84ff753c51966061e5ba7cb5e47ef6d36a91924eddb7f3f3483b1c560f77a0020 + languageName: node + linkType: hard + +"delegates@npm:^1.0.0": + version: 1.0.0 + resolution: "delegates@npm:1.0.0" + checksum: a51744d9b53c164ba9c0492471a1a2ffa0b6727451bdc89e31627fdf4adda9d51277cfcbfb20f0a6f08ccb3c436f341df3e92631a3440226d93a8971724771fd + languageName: node + linkType: hard + +"depd@npm:^2.0.0": + version: 2.0.0 + resolution: "depd@npm:2.0.0" + checksum: abbe19c768c97ee2eed6282d8ce3031126662252c58d711f646921c9623f9052e3e1906443066beec1095832f534e57c523b7333f8e7e0d93051ab6baef5ab3a + languageName: node + linkType: hard + +"dependency-graph@npm:^0.11.0": + version: 0.11.0 + resolution: "dependency-graph@npm:0.11.0" + checksum: 477204beaa9be69e642bc31ffe7a8c383d0cf48fa27acbc91c5df01431ab913e65c154213d2ef83d034c98d77280743ec85e5da018a97a18dd43d3c0b78b28cd + languageName: node + linkType: hard + +"dequal@npm:^2.0.0": + version: 2.0.3 + resolution: "dequal@npm:2.0.3" + checksum: 8679b850e1a3d0ebbc46ee780d5df7b478c23f335887464023a631d1b9af051ad4a6595a44220f9ff8ff95a8ddccf019b5ad778a976fd7bbf77383d36f412f90 + languageName: node + linkType: hard + +"detect-indent@npm:^6.0.0": + version: 6.1.0 + resolution: "detect-indent@npm:6.1.0" + checksum: ab953a73c72dbd4e8fc68e4ed4bfd92c97eb6c43734af3900add963fd3a9316f3bc0578b018b24198d4c31a358571eff5f0656e81a1f3b9ad5c547d58b2d093d + languageName: node + linkType: hard + +"diff@npm:^5.0.0": + version: 5.1.0 + resolution: "diff@npm:5.1.0" + checksum: c7bf0df7c9bfbe1cf8a678fd1b2137c4fb11be117a67bc18a0e03ae75105e8533dbfb1cda6b46beb3586ef5aed22143ef9d70713977d5fb1f9114e21455fba90 + languageName: node + linkType: hard + +"dir-glob@npm:^3.0.1": + version: 3.0.1 + resolution: "dir-glob@npm:3.0.1" + dependencies: + path-type: ^4.0.0 + checksum: fa05e18324510d7283f55862f3161c6759a3f2f8dbce491a2fc14c8324c498286c54282c1f0e933cb930da8419b30679389499b919122952a4f8592362ef4615 + languageName: node + linkType: hard + +"doctrine@npm:^2.1.0": + version: 2.1.0 + resolution: "doctrine@npm:2.1.0" + dependencies: + esutils: ^2.0.2 + checksum: a45e277f7feaed309fe658ace1ff286c6e2002ac515af0aaf37145b8baa96e49899638c7cd47dccf84c3d32abfc113246625b3ac8f552d1046072adee13b0dc8 + languageName: node + linkType: hard + +"doctrine@npm:^3.0.0": + version: 3.0.0 + resolution: "doctrine@npm:3.0.0" + dependencies: + esutils: ^2.0.2 + checksum: fd7673ca77fe26cd5cba38d816bc72d641f500f1f9b25b83e8ce28827fe2da7ad583a8da26ab6af85f834138cf8dae9f69b0cd6ab925f52ddab1754db44d99ce + languageName: node + linkType: hard + +"dom-helpers@npm:^5.0.1": + version: 5.2.1 + resolution: "dom-helpers@npm:5.2.1" + dependencies: + "@babel/runtime": ^7.8.7 + csstype: ^3.0.2 + checksum: 863ba9e086f7093df3376b43e74ce4422571d404fc9828bf2c56140963d5edf0e56160f9b2f3bb61b282c07f8fc8134f023c98fd684bddcb12daf7b0f14d951c + languageName: node + linkType: hard + +"dot-case@npm:^3.0.4": + version: 3.0.4 + resolution: "dot-case@npm:3.0.4" + dependencies: + no-case: ^3.0.4 + tslib: ^2.0.3 + checksum: a65e3519414856df0228b9f645332f974f2bf5433370f544a681122eab59e66038fc3349b4be1cdc47152779dac71a5864f1ccda2f745e767c46e9c6543b1169 + languageName: node + linkType: hard + +"dotenv@npm:^16.0.0": + version: 16.0.3 + resolution: "dotenv@npm:16.0.3" + checksum: afcf03f373d7a6d62c7e9afea6328e62851d627a4e73f2e12d0a8deae1cd375892004f3021883f8aec85932cd2834b091f568ced92b4774625b321db83b827f8 + languageName: node + linkType: hard + +"dset@npm:^3.1.2": + version: 3.1.2 + resolution: "dset@npm:3.1.2" + checksum: 4f8066f517aa0a70af688c66e9a0a5590f0aada76f6edc7ba9ddb309e27d3a6d65c0a2e31ab2a84005d4c791e5327773cdde59b8ab169050330a0dc283663e87 + languageName: node + linkType: hard + +"electron-to-chromium@npm:^1.4.284": + version: 1.4.328 + resolution: "electron-to-chromium@npm:1.4.328" + checksum: 82c1617a77e40ac4ca5011749318a2fee8f8c75f8b517fcff7602219c85fd97a9fab2d5a1353ea10fb7f9c7d18acb90c9ed58c2292256f81e2ffa42ee66c4b0b + languageName: node + linkType: hard + +"emoji-regex@npm:^8.0.0": + version: 8.0.0 + resolution: "emoji-regex@npm:8.0.0" + checksum: d4c5c39d5a9868b5fa152f00cada8a936868fd3367f33f71be515ecee4c803132d11b31a6222b2571b1e5f7e13890156a94880345594d0ce7e3c9895f560f192 + languageName: node + linkType: hard + +"emoji-regex@npm:^9.2.2": + version: 9.2.2 + resolution: "emoji-regex@npm:9.2.2" + checksum: 8487182da74aabd810ac6d6f1994111dfc0e331b01271ae01ec1eb0ad7b5ecc2bbbbd2f053c05cb55a1ac30449527d819bbfbf0e3de1023db308cbcb47f86601 + languageName: node + linkType: hard + +"encoding@npm:^0.1.13": + version: 0.1.13 + resolution: "encoding@npm:0.1.13" + dependencies: + iconv-lite: ^0.6.2 + checksum: bb98632f8ffa823996e508ce6a58ffcf5856330fde839ae42c9e1f436cc3b5cc651d4aeae72222916545428e54fd0f6aa8862fd8d25bdbcc4589f1e3f3715e7f + languageName: node + linkType: hard + +"env-paths@npm:^2.2.0": + version: 2.2.1 + resolution: "env-paths@npm:2.2.1" + checksum: 65b5df55a8bab92229ab2b40dad3b387fad24613263d103a97f91c9fe43ceb21965cd3392b1ccb5d77088021e525c4e0481adb309625d0cb94ade1d1fb8dc17e + languageName: node + linkType: hard + +"err-code@npm:^2.0.2": + version: 2.0.3 + resolution: "err-code@npm:2.0.3" + checksum: 8b7b1be20d2de12d2255c0bc2ca638b7af5171142693299416e6a9339bd7d88fc8d7707d913d78e0993176005405a236b066b45666b27b797252c771156ace54 + languageName: node + linkType: hard + +"error-ex@npm:^1.3.1": + version: 1.3.2 + resolution: "error-ex@npm:1.3.2" + dependencies: + is-arrayish: ^0.2.1 + checksum: c1c2b8b65f9c91b0f9d75f0debaa7ec5b35c266c2cac5de412c1a6de86d4cbae04ae44e510378cb14d032d0645a36925d0186f8bb7367bcc629db256b743a001 + languageName: node + linkType: hard + +"es-abstract@npm:^1.19.0, es-abstract@npm:^1.20.4": + version: 1.21.2 + resolution: "es-abstract@npm:1.21.2" + dependencies: + array-buffer-byte-length: ^1.0.0 + available-typed-arrays: ^1.0.5 + call-bind: ^1.0.2 + es-set-tostringtag: ^2.0.1 + es-to-primitive: ^1.2.1 + function.prototype.name: ^1.1.5 + get-intrinsic: ^1.2.0 + get-symbol-description: ^1.0.0 + globalthis: ^1.0.3 + gopd: ^1.0.1 + has: ^1.0.3 + has-property-descriptors: ^1.0.0 + has-proto: ^1.0.1 + has-symbols: ^1.0.3 + internal-slot: ^1.0.5 + is-array-buffer: ^3.0.2 + is-callable: ^1.2.7 + is-negative-zero: ^2.0.2 + is-regex: ^1.1.4 + is-shared-array-buffer: ^1.0.2 + is-string: ^1.0.7 + is-typed-array: ^1.1.10 + is-weakref: ^1.0.2 + object-inspect: ^1.12.3 + object-keys: ^1.1.1 + object.assign: ^4.1.4 + regexp.prototype.flags: ^1.4.3 + safe-regex-test: ^1.0.0 + string.prototype.trim: ^1.2.7 + string.prototype.trimend: ^1.0.6 + string.prototype.trimstart: ^1.0.6 + typed-array-length: ^1.0.4 + unbox-primitive: ^1.0.2 + which-typed-array: ^1.1.9 + checksum: 037f55ee5e1cdf2e5edbab5524095a4f97144d95b94ea29e3611b77d852fd8c8a40e7ae7101fa6a759a9b9b1405f188c3c70928f2d3cd88d543a07fc0d5ad41a + languageName: node + linkType: hard + +"es-get-iterator@npm:^1.1.2": + version: 1.1.3 + resolution: "es-get-iterator@npm:1.1.3" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.1.3 + has-symbols: ^1.0.3 + is-arguments: ^1.1.1 + is-map: ^2.0.2 + is-set: ^2.0.2 + is-string: ^1.0.7 + isarray: ^2.0.5 + stop-iteration-iterator: ^1.0.0 + checksum: 8fa118da42667a01a7c7529f8a8cca514feeff243feec1ce0bb73baaa3514560bd09d2b3438873cf8a5aaec5d52da248131de153b28e2638a061b6e4df13267d + languageName: node + linkType: hard + +"es-set-tostringtag@npm:^2.0.1": + version: 2.0.1 + resolution: "es-set-tostringtag@npm:2.0.1" + dependencies: + get-intrinsic: ^1.1.3 + has: ^1.0.3 + has-tostringtag: ^1.0.0 + checksum: ec416a12948cefb4b2a5932e62093a7cf36ddc3efd58d6c58ca7ae7064475ace556434b869b0bbeb0c365f1032a8ccd577211101234b69837ad83ad204fff884 + languageName: node + linkType: hard + +"es-shim-unscopables@npm:^1.0.0": + version: 1.0.0 + resolution: "es-shim-unscopables@npm:1.0.0" + dependencies: + has: ^1.0.3 + checksum: 83e95cadbb6ee44d3644dfad60dcad7929edbc42c85e66c3e99aefd68a3a5c5665f2686885cddb47dfeabfd77bd5ea5a7060f2092a955a729bbd8834f0d86fa1 + languageName: node + linkType: hard + +"es-to-primitive@npm:^1.2.1": + version: 1.2.1 + resolution: "es-to-primitive@npm:1.2.1" + dependencies: + is-callable: ^1.1.4 + is-date-object: ^1.0.1 + is-symbol: ^1.0.2 + checksum: 4ead6671a2c1402619bdd77f3503991232ca15e17e46222b0a41a5d81aebc8740a77822f5b3c965008e631153e9ef0580540007744521e72de8e33599fca2eed + languageName: node + linkType: hard + +"esbuild@npm:^0.17.5": + version: 0.17.12 + resolution: "esbuild@npm:0.17.12" + dependencies: + "@esbuild/android-arm": 0.17.12 + "@esbuild/android-arm64": 0.17.12 + "@esbuild/android-x64": 0.17.12 + "@esbuild/darwin-arm64": 0.17.12 + "@esbuild/darwin-x64": 0.17.12 + "@esbuild/freebsd-arm64": 0.17.12 + "@esbuild/freebsd-x64": 0.17.12 + "@esbuild/linux-arm": 0.17.12 + "@esbuild/linux-arm64": 0.17.12 + "@esbuild/linux-ia32": 0.17.12 + "@esbuild/linux-loong64": 0.17.12 + "@esbuild/linux-mips64el": 0.17.12 + "@esbuild/linux-ppc64": 0.17.12 + "@esbuild/linux-riscv64": 0.17.12 + "@esbuild/linux-s390x": 0.17.12 + "@esbuild/linux-x64": 0.17.12 + "@esbuild/netbsd-x64": 0.17.12 + "@esbuild/openbsd-x64": 0.17.12 + "@esbuild/sunos-x64": 0.17.12 + "@esbuild/win32-arm64": 0.17.12 + "@esbuild/win32-ia32": 0.17.12 + "@esbuild/win32-x64": 0.17.12 + dependenciesMeta: + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: ea6d33eb1bc6c9e00dcee5e253c7e935251b4801d376661fd9f19a9dcffc27f970078a6f7116d6c78ee825ceff9b974594b0b616bd560ce4d875a951aa92977b + languageName: node + linkType: hard + +"escalade@npm:^3.1.1": + version: 3.1.1 + resolution: "escalade@npm:3.1.1" + checksum: a3e2a99f07acb74b3ad4989c48ca0c3140f69f923e56d0cba0526240ee470b91010f9d39001f2a4a313841d237ede70a729e92125191ba5d21e74b106800b133 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^1.0.5": + version: 1.0.5 + resolution: "escape-string-regexp@npm:1.0.5" + checksum: 6092fda75c63b110c706b6a9bfde8a612ad595b628f0bd2147eea1d3406723020810e591effc7db1da91d80a71a737a313567c5abb3813e8d9c71f4aa595b410 + languageName: node + linkType: hard + +"escape-string-regexp@npm:^4.0.0": + version: 4.0.0 + resolution: "escape-string-regexp@npm:4.0.0" + checksum: 98b48897d93060f2322108bf29db0feba7dd774be96cd069458d1453347b25ce8682ecc39859d4bca2203cc0ab19c237bcc71755eff49a0f8d90beadeeba5cc5 + languageName: node + linkType: hard + +"eslint-config-airbnb-base@npm:^15.0.0": + version: 15.0.0 + resolution: "eslint-config-airbnb-base@npm:15.0.0" + dependencies: + confusing-browser-globals: ^1.0.10 + object.assign: ^4.1.2 + object.entries: ^1.1.5 + semver: ^6.3.0 + peerDependencies: + eslint: ^7.32.0 || ^8.2.0 + eslint-plugin-import: ^2.25.2 + checksum: 38626bad2ce2859fccac86b30cd2b86c9b7d8d71d458331860861dc05290a5b198bded2f4fb89efcb9046ec48f8ab4c4fb00365ba8916f27b172671da28b93ea + languageName: node + linkType: hard + +"eslint-config-airbnb@npm:19.0.4": + version: 19.0.4 + resolution: "eslint-config-airbnb@npm:19.0.4" + dependencies: + eslint-config-airbnb-base: ^15.0.0 + object.assign: ^4.1.2 + object.entries: ^1.1.5 + peerDependencies: + eslint: ^7.32.0 || ^8.2.0 + eslint-plugin-import: ^2.25.3 + eslint-plugin-jsx-a11y: ^6.5.1 + eslint-plugin-react: ^7.28.0 + eslint-plugin-react-hooks: ^4.3.0 + checksum: 253178689c3c80eef2567e3aaf0612e18973bc9cf51d9be36074b5dd58210e8b6942200a424bcccbb81ac884e41303479ab09f251a2a97addc2de61efdc9576c + languageName: node + linkType: hard + +"eslint-import-resolver-node@npm:^0.3.7": + version: 0.3.7 + resolution: "eslint-import-resolver-node@npm:0.3.7" + dependencies: + debug: ^3.2.7 + is-core-module: ^2.11.0 + resolve: ^1.22.1 + checksum: 3379aacf1d2c6952c1b9666c6fa5982c3023df695430b0d391c0029f6403a7775414873d90f397e98ba6245372b6c8960e16e74d9e4a3b0c0a4582f3bdbe3d6e + languageName: node + linkType: hard + +"eslint-module-utils@npm:^2.7.4": + version: 2.7.4 + resolution: "eslint-module-utils@npm:2.7.4" + dependencies: + debug: ^3.2.7 + peerDependenciesMeta: + eslint: + optional: true + checksum: 5da13645daff145a5c922896b258f8bba560722c3767254e458d894ff5fbb505d6dfd945bffa932a5b0ae06714da2379bd41011c4c20d2d59cc83e23895360f7 + languageName: node + linkType: hard + +"eslint-plugin-import-newlines@npm:1.3.1, eslint-plugin-import-newlines@npm:^1.2.3": + version: 1.3.1 + resolution: "eslint-plugin-import-newlines@npm:1.3.1" + peerDependencies: + eslint: ">=6.0.0" + bin: + import-linter: lib/index.js + checksum: f1ee861d8d955393f68d489bc8e7755f708d4945ef8097b28dca3c801f28f8092c9621816de45b38f3d999295b4e360acf4134f495bc51966e18ca906757d1b7 + languageName: node + linkType: hard + +"eslint-plugin-import@npm:2.27.5": + version: 2.27.5 + resolution: "eslint-plugin-import@npm:2.27.5" + dependencies: + array-includes: ^3.1.6 + array.prototype.flat: ^1.3.1 + array.prototype.flatmap: ^1.3.1 + debug: ^3.2.7 + doctrine: ^2.1.0 + eslint-import-resolver-node: ^0.3.7 + eslint-module-utils: ^2.7.4 + has: ^1.0.3 + is-core-module: ^2.11.0 + is-glob: ^4.0.3 + minimatch: ^3.1.2 + object.values: ^1.1.6 + resolve: ^1.22.1 + semver: ^6.3.0 + tsconfig-paths: ^3.14.1 + peerDependencies: + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + checksum: f500571a380167e25d72a4d925ef9a7aae8899eada57653e5f3051ec3d3c16d08271fcefe41a30a9a2f4fefc232f066253673ee4ea77b30dba65ae173dade85d + languageName: node + linkType: hard + +"eslint-plugin-jsx-a11y@npm:6.7.1": + version: 6.7.1 + resolution: "eslint-plugin-jsx-a11y@npm:6.7.1" + dependencies: + "@babel/runtime": ^7.20.7 + aria-query: ^5.1.3 + array-includes: ^3.1.6 + array.prototype.flatmap: ^1.3.1 + ast-types-flow: ^0.0.7 + axe-core: ^4.6.2 + axobject-query: ^3.1.1 + damerau-levenshtein: ^1.0.8 + emoji-regex: ^9.2.2 + has: ^1.0.3 + jsx-ast-utils: ^3.3.3 + language-tags: =1.0.5 + minimatch: ^3.1.2 + object.entries: ^1.1.6 + object.fromentries: ^2.0.6 + semver: ^6.3.0 + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + checksum: f166dd5fe7257c7b891c6692e6a3ede6f237a14043ae3d97581daf318fc5833ddc6b4871aa34ab7656187430170500f6d806895747ea17ecdf8231a666c3c2fd + languageName: node + linkType: hard + +"eslint-plugin-react-hooks@npm:4.6.0": + version: 4.6.0 + resolution: "eslint-plugin-react-hooks@npm:4.6.0" + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + checksum: 23001801f14c1d16bf0a837ca7970d9dd94e7b560384b41db378b49b6e32dc43d6e2790de1bd737a652a86f81a08d6a91f402525061b47719328f586a57e86c3 + languageName: node + linkType: hard + +"eslint-plugin-react@npm:7.32.1": + version: 7.32.1 + resolution: "eslint-plugin-react@npm:7.32.1" + dependencies: + array-includes: ^3.1.6 + array.prototype.flatmap: ^1.3.1 + array.prototype.tosorted: ^1.1.1 + doctrine: ^2.1.0 + estraverse: ^5.3.0 + jsx-ast-utils: ^2.4.1 || ^3.0.0 + minimatch: ^3.1.2 + object.entries: ^1.1.6 + object.fromentries: ^2.0.6 + object.hasown: ^1.1.2 + object.values: ^1.1.6 + prop-types: ^15.8.1 + resolve: ^2.0.0-next.4 + semver: ^6.3.0 + string.prototype.matchall: ^4.0.8 + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + checksum: e20eab61161a3db6211c2bd1eb9be3e407fd14e72c06c5f39a078b6ac37427b2af6056ee70e3954249bca0a04088ae797a0c8ba909fb8802e29712de2a41262d + languageName: node + linkType: hard + +"eslint-plugin-react@npm:7.32.2": + version: 7.32.2 + resolution: "eslint-plugin-react@npm:7.32.2" + dependencies: + array-includes: ^3.1.6 + array.prototype.flatmap: ^1.3.1 + array.prototype.tosorted: ^1.1.1 + doctrine: ^2.1.0 + estraverse: ^5.3.0 + jsx-ast-utils: ^2.4.1 || ^3.0.0 + minimatch: ^3.1.2 + object.entries: ^1.1.6 + object.fromentries: ^2.0.6 + object.hasown: ^1.1.2 + object.values: ^1.1.6 + prop-types: ^15.8.1 + resolve: ^2.0.0-next.4 + semver: ^6.3.0 + string.prototype.matchall: ^4.0.8 + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 + checksum: 2232b3b8945aa50b7773919c15cd96892acf35d2f82503667a79e2f55def90f728ed4f0e496f0f157acbe1bd4397c5615b676ae7428fe84488a544ca53feb944 + languageName: node + linkType: hard + +"eslint-scope@npm:5.1.1, eslint-scope@npm:^5.1.1": + version: 5.1.1 + resolution: "eslint-scope@npm:5.1.1" + dependencies: + esrecurse: ^4.3.0 + estraverse: ^4.1.1 + checksum: 47e4b6a3f0cc29c7feedee6c67b225a2da7e155802c6ea13bbef4ac6b9e10c66cd2dcb987867ef176292bf4e64eccc680a49e35e9e9c669f4a02bac17e86abdb + languageName: node + linkType: hard + +"eslint-scope@npm:^7.1.1": + version: 7.1.1 + resolution: "eslint-scope@npm:7.1.1" + dependencies: + esrecurse: ^4.3.0 + estraverse: ^5.2.0 + checksum: 9f6e974ab2db641ca8ab13508c405b7b859e72afe9f254e8131ff154d2f40c99ad4545ce326fd9fde3212ff29707102562a4834f1c48617b35d98c71a97fbf3e + languageName: node + linkType: hard + +"eslint-utils@npm:^3.0.0": + version: 3.0.0 + resolution: "eslint-utils@npm:3.0.0" + dependencies: + eslint-visitor-keys: ^2.0.0 + peerDependencies: + eslint: ">=5" + checksum: 0668fe02f5adab2e5a367eee5089f4c39033af20499df88fe4e6aba2015c20720404d8c3d6349b6f716b08fdf91b9da4e5d5481f265049278099c4c836ccb619 + languageName: node + linkType: hard + +"eslint-visitor-keys@npm:^2.0.0, eslint-visitor-keys@npm:^2.1.0": + version: 2.1.0 + resolution: "eslint-visitor-keys@npm:2.1.0" + checksum: e3081d7dd2611a35f0388bbdc2f5da60b3a3c5b8b6e928daffff7391146b434d691577aa95064c8b7faad0b8a680266bcda0a42439c18c717b80e6718d7e267d + languageName: node + linkType: hard + +"eslint-visitor-keys@npm:^3.3.0": + version: 3.3.0 + resolution: "eslint-visitor-keys@npm:3.3.0" + checksum: d59e68a7c5a6d0146526b0eec16ce87fbf97fe46b8281e0d41384224375c4e52f5ffb9e16d48f4ea50785cde93f766b0c898e31ab89978d88b0e1720fbfb7808 + languageName: node + linkType: hard + +"eslint@npm:8.32.0": + version: 8.32.0 + resolution: "eslint@npm:8.32.0" + dependencies: + "@eslint/eslintrc": ^1.4.1 + "@humanwhocodes/config-array": ^0.11.8 + "@humanwhocodes/module-importer": ^1.0.1 + "@nodelib/fs.walk": ^1.2.8 + ajv: ^6.10.0 + chalk: ^4.0.0 + cross-spawn: ^7.0.2 + debug: ^4.3.2 + doctrine: ^3.0.0 + escape-string-regexp: ^4.0.0 + eslint-scope: ^7.1.1 + eslint-utils: ^3.0.0 + eslint-visitor-keys: ^3.3.0 + espree: ^9.4.0 + esquery: ^1.4.0 + esutils: ^2.0.2 + fast-deep-equal: ^3.1.3 + file-entry-cache: ^6.0.1 + find-up: ^5.0.0 + glob-parent: ^6.0.2 + globals: ^13.19.0 + grapheme-splitter: ^1.0.4 + ignore: ^5.2.0 + import-fresh: ^3.0.0 + imurmurhash: ^0.1.4 + is-glob: ^4.0.0 + is-path-inside: ^3.0.3 + js-sdsl: ^4.1.4 + js-yaml: ^4.1.0 + json-stable-stringify-without-jsonify: ^1.0.1 + levn: ^0.4.1 + lodash.merge: ^4.6.2 + minimatch: ^3.1.2 + natural-compare: ^1.4.0 + optionator: ^0.9.1 + regexpp: ^3.2.0 + strip-ansi: ^6.0.1 + strip-json-comments: ^3.1.0 + text-table: ^0.2.0 + bin: + eslint: bin/eslint.js + checksum: 23c8fb3c57291eecd9c1448faf603226a8f885022a2cd96e303459bf72e39b7f54987c6fb948f0f9eecaf7085600e6eb0663482a35ea83da12e9f9141a22b91e + languageName: node + linkType: hard + +"eslint@npm:8.33.0": + version: 8.33.0 + resolution: "eslint@npm:8.33.0" + dependencies: + "@eslint/eslintrc": ^1.4.1 + "@humanwhocodes/config-array": ^0.11.8 + "@humanwhocodes/module-importer": ^1.0.1 + "@nodelib/fs.walk": ^1.2.8 + ajv: ^6.10.0 + chalk: ^4.0.0 + cross-spawn: ^7.0.2 + debug: ^4.3.2 + doctrine: ^3.0.0 + escape-string-regexp: ^4.0.0 + eslint-scope: ^7.1.1 + eslint-utils: ^3.0.0 + eslint-visitor-keys: ^3.3.0 + espree: ^9.4.0 + esquery: ^1.4.0 + esutils: ^2.0.2 + fast-deep-equal: ^3.1.3 + file-entry-cache: ^6.0.1 + find-up: ^5.0.0 + glob-parent: ^6.0.2 + globals: ^13.19.0 + grapheme-splitter: ^1.0.4 + ignore: ^5.2.0 + import-fresh: ^3.0.0 + imurmurhash: ^0.1.4 + is-glob: ^4.0.0 + is-path-inside: ^3.0.3 + js-sdsl: ^4.1.4 + js-yaml: ^4.1.0 + json-stable-stringify-without-jsonify: ^1.0.1 + levn: ^0.4.1 + lodash.merge: ^4.6.2 + minimatch: ^3.1.2 + natural-compare: ^1.4.0 + optionator: ^0.9.1 + regexpp: ^3.2.0 + strip-ansi: ^6.0.1 + strip-json-comments: ^3.1.0 + text-table: ^0.2.0 + bin: + eslint: bin/eslint.js + checksum: 727e63ab8b7acf281442323c5971f6afdd5b656fbcebc4476cf54e35af51b2f180617433fc5e1952f0449ca3f43a905527f9407ea4b8a7ea7562fc9c3f278d4c + languageName: node + linkType: hard + +"eslint@npm:8.36.0": + version: 8.36.0 + resolution: "eslint@npm:8.36.0" + dependencies: + "@eslint-community/eslint-utils": ^4.2.0 + "@eslint-community/regexpp": ^4.4.0 + "@eslint/eslintrc": ^2.0.1 + "@eslint/js": 8.36.0 + "@humanwhocodes/config-array": ^0.11.8 + "@humanwhocodes/module-importer": ^1.0.1 + "@nodelib/fs.walk": ^1.2.8 + ajv: ^6.10.0 + chalk: ^4.0.0 + cross-spawn: ^7.0.2 + debug: ^4.3.2 + doctrine: ^3.0.0 + escape-string-regexp: ^4.0.0 + eslint-scope: ^7.1.1 + eslint-visitor-keys: ^3.3.0 + espree: ^9.5.0 + esquery: ^1.4.2 + esutils: ^2.0.2 + fast-deep-equal: ^3.1.3 + file-entry-cache: ^6.0.1 + find-up: ^5.0.0 + glob-parent: ^6.0.2 + globals: ^13.19.0 + grapheme-splitter: ^1.0.4 + ignore: ^5.2.0 + import-fresh: ^3.0.0 + imurmurhash: ^0.1.4 + is-glob: ^4.0.0 + is-path-inside: ^3.0.3 + js-sdsl: ^4.1.4 + js-yaml: ^4.1.0 + json-stable-stringify-without-jsonify: ^1.0.1 + levn: ^0.4.1 + lodash.merge: ^4.6.2 + minimatch: ^3.1.2 + natural-compare: ^1.4.0 + optionator: ^0.9.1 + strip-ansi: ^6.0.1 + strip-json-comments: ^3.1.0 + text-table: ^0.2.0 + bin: + eslint: bin/eslint.js + checksum: e9a961fc3b3de5cff5a1cb2c92eeffaa7e155a715489e30b3e1e76f186bd1255e0481e09564f2094733c0b1dbd3453499fb72ae7c043c83156e11e6d965b2304 + languageName: node + linkType: hard + +"espree@npm:^9.4.0, espree@npm:^9.5.0": + version: 9.5.0 + resolution: "espree@npm:9.5.0" + dependencies: + acorn: ^8.8.0 + acorn-jsx: ^5.3.2 + eslint-visitor-keys: ^3.3.0 + checksum: a7f110aefb6407e0d3237aa635ab3cea87106ae63748dd23c67031afccc640d04c4209fca2daf16e2233c82efb505faead0fb84097478fd9cc6e8f8dd80bf99d + languageName: node + linkType: hard + +"esquery@npm:^1.4.0, esquery@npm:^1.4.2": + version: 1.5.0 + resolution: "esquery@npm:1.5.0" + dependencies: + estraverse: ^5.1.0 + checksum: aefb0d2596c230118656cd4ec7532d447333a410a48834d80ea648b1e7b5c9bc9ed8b5e33a89cb04e487b60d622f44cf5713bf4abed7c97343edefdc84a35900 + languageName: node + linkType: hard + +"esrecurse@npm:^4.3.0": + version: 4.3.0 + resolution: "esrecurse@npm:4.3.0" + dependencies: + estraverse: ^5.2.0 + checksum: ebc17b1a33c51cef46fdc28b958994b1dc43cd2e86237515cbc3b4e5d2be6a811b2315d0a1a4d9d340b6d2308b15322f5c8291059521cc5f4802f65e7ec32837 + languageName: node + linkType: hard + +"estraverse@npm:^4.1.1": + version: 4.3.0 + resolution: "estraverse@npm:4.3.0" + checksum: a6299491f9940bb246124a8d44b7b7a413a8336f5436f9837aaa9330209bd9ee8af7e91a654a3545aee9c54b3308e78ee360cef1d777d37cfef77d2fa33b5827 + languageName: node + linkType: hard + +"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0, estraverse@npm:^5.3.0": + version: 5.3.0 + resolution: "estraverse@npm:5.3.0" + checksum: 072780882dc8416ad144f8fe199628d2b3e7bbc9989d9ed43795d2c90309a2047e6bc5979d7e2322a341163d22cfad9e21f4110597fe487519697389497e4e2b + languageName: node + linkType: hard + +"esutils@npm:^2.0.2": + version: 2.0.3 + resolution: "esutils@npm:2.0.3" + checksum: 22b5b08f74737379a840b8ed2036a5fb35826c709ab000683b092d9054e5c2a82c27818f12604bfc2a9a76b90b6834ef081edbc1c7ae30d1627012e067c6ec87 + languageName: node + linkType: hard + +"extend@npm:^3.0.0": + version: 3.0.2 + resolution: "extend@npm:3.0.2" + checksum: a50a8309ca65ea5d426382ff09f33586527882cf532931cb08ca786ea3146c0553310bda688710ff61d7668eba9f96b923fe1420cdf56a2c3eaf30fcab87b515 + languageName: node + linkType: hard + +"external-editor@npm:^3.0.3": + version: 3.1.0 + resolution: "external-editor@npm:3.1.0" + dependencies: + chardet: ^0.7.0 + iconv-lite: ^0.4.24 + tmp: ^0.0.33 + checksum: 1c2a616a73f1b3435ce04030261bed0e22d4737e14b090bb48e58865da92529c9f2b05b893de650738d55e692d071819b45e1669259b2b354bc3154d27a698c7 + languageName: node + linkType: hard + +"extract-files@npm:^11.0.0": + version: 11.0.0 + resolution: "extract-files@npm:11.0.0" + checksum: 39ebd92772e9a1e30d1e3112fb7db85d353c8243640635668b615ac1d605ceb79fbb13d17829dd308993ef37bb189ad99817f79ab164ae95c9bb3df9f440bd16 + languageName: node + linkType: hard + +"extract-files@npm:^9.0.0": + version: 9.0.0 + resolution: "extract-files@npm:9.0.0" + checksum: c31781d090f8d8f62cc541f1023b39ea863f24bd6fb3d4011922d71cbded70cef8191f2b70b43ec6cb5c5907cdad1dc5e9f29f78228936c10adc239091d8ab64 + languageName: node + linkType: hard + +"fast-decode-uri-component@npm:^1.0.1": + version: 1.0.1 + resolution: "fast-decode-uri-component@npm:1.0.1" + checksum: 427a48fe0907e76f0e9a2c228e253b4d8a8ab21d130ee9e4bb8339c5ba4086235cf9576831f7b20955a752eae4b525a177ff9d5825dd8d416e7726939194fbee + languageName: node + linkType: hard + +"fast-deep-equal@npm:1.0.0": + version: 1.0.0 + resolution: "fast-deep-equal@npm:1.0.0" + checksum: 9af727dacb3defa3ee2792b5c154ce3dacf20dc850dceea1eb231096fcff4cf91013d13f30d87b4c19c4ff7c6911c978334333d794b82e296a38a507a8503e59 + languageName: node + linkType: hard + +"fast-deep-equal@npm:^3.1.1, fast-deep-equal@npm:^3.1.3": + version: 3.1.3 + resolution: "fast-deep-equal@npm:3.1.3" + checksum: e21a9d8d84f53493b6aa15efc9cfd53dd5b714a1f23f67fb5dc8f574af80df889b3bce25dc081887c6d25457cce704e636395333abad896ccdec03abaf1f3f9d + languageName: node + linkType: hard + +"fast-glob@npm:^3.2.9": + version: 3.2.12 + resolution: "fast-glob@npm:3.2.12" + dependencies: + "@nodelib/fs.stat": ^2.0.2 + "@nodelib/fs.walk": ^1.2.3 + glob-parent: ^5.1.2 + merge2: ^1.3.0 + micromatch: ^4.0.4 + checksum: 0b1990f6ce831c7e28c4d505edcdaad8e27e88ab9fa65eedadb730438cfc7cde4910d6c975d6b7b8dc8a73da4773702ebcfcd6e3518e73938bb1383badfe01c2 + languageName: node + linkType: hard + +"fast-json-stable-stringify@npm:^2.0.0": + version: 2.1.0 + resolution: "fast-json-stable-stringify@npm:2.1.0" + checksum: b191531e36c607977e5b1c47811158733c34ccb3bfde92c44798929e9b4154884378536d26ad90dfecd32e1ffc09c545d23535ad91b3161a27ddbb8ebe0cbecb + languageName: node + linkType: hard + +"fast-levenshtein@npm:^2.0.6": + version: 2.0.6 + resolution: "fast-levenshtein@npm:2.0.6" + checksum: 92cfec0a8dfafd9c7a15fba8f2cc29cd0b62b85f056d99ce448bbcd9f708e18ab2764bda4dd5158364f4145a7c72788538994f0d1787b956ef0d1062b0f7c24c + languageName: node + linkType: hard + +"fast-querystring@npm:^1.1.1": + version: 1.1.1 + resolution: "fast-querystring@npm:1.1.1" + dependencies: + fast-decode-uri-component: ^1.0.1 + checksum: 86d2b75b9b299a552353532fb1a542f09730ee2a61e657d68710971d9a2afc9a3c5c7b7e106b6534f4cc506d2ff1c08ab0fda4ae614b4e7720798c9ac2a88e02 + languageName: node + linkType: hard + +"fast-url-parser@npm:^1.1.3": + version: 1.1.3 + resolution: "fast-url-parser@npm:1.1.3" + dependencies: + punycode: ^1.3.2 + checksum: 5043d0c4a8d775ff58504d56c096563c11b113e4cb8a2668c6f824a1cd4fb3812e2fdf76537eb24a7ce4ae7def6bd9747da630c617cf2a4b6ce0c42514e4f21c + languageName: node + linkType: hard + +"fastq@npm:^1.6.0": + version: 1.15.0 + resolution: "fastq@npm:1.15.0" + dependencies: + reusify: ^1.0.4 + checksum: 0170e6bfcd5d57a70412440b8ef600da6de3b2a6c5966aeaf0a852d542daff506a0ee92d6de7679d1de82e644bce69d7a574a6c93f0b03964b5337eed75ada1a + languageName: node + linkType: hard + +"fb-watchman@npm:^2.0.0": + version: 2.0.2 + resolution: "fb-watchman@npm:2.0.2" + dependencies: + bser: 2.1.1 + checksum: b15a124cef28916fe07b400eb87cbc73ca082c142abf7ca8e8de6af43eca79ca7bd13eb4d4d48240b3bd3136eaac40d16e42d6edf87a8e5d1dd8070626860c78 + languageName: node + linkType: hard + +"fbjs-css-vars@npm:^1.0.0": + version: 1.0.2 + resolution: "fbjs-css-vars@npm:1.0.2" + checksum: 72baf6d22c45b75109118b4daecb6c8016d4c83c8c0f23f683f22e9d7c21f32fff6201d288df46eb561e3c7d4bb4489b8ad140b7f56444c453ba407e8bd28511 + languageName: node + linkType: hard + +"fbjs@npm:^3.0.0": + version: 3.0.4 + resolution: "fbjs@npm:3.0.4" + dependencies: + cross-fetch: ^3.1.5 + fbjs-css-vars: ^1.0.0 + loose-envify: ^1.0.0 + object-assign: ^4.1.0 + promise: ^7.1.1 + setimmediate: ^1.0.5 + ua-parser-js: ^0.7.30 + checksum: 8b23a3550fcda8a9109fca9475a3416590c18bb6825ea884192864ed686f67fcd618e308a140c9e5444fbd0168732e1ff3c092ba3d0c0ae1768969f32ba280c7 + languageName: node + linkType: hard + +"figures@npm:^3.0.0": + version: 3.2.0 + resolution: "figures@npm:3.2.0" + dependencies: + escape-string-regexp: ^1.0.5 + checksum: 85a6ad29e9aca80b49b817e7c89ecc4716ff14e3779d9835af554db91bac41c0f289c418923519392a1e582b4d10482ad282021330cd045bb7b80c84152f2a2b + languageName: node + linkType: hard + +"file-entry-cache@npm:^6.0.1": + version: 6.0.1 + resolution: "file-entry-cache@npm:6.0.1" + dependencies: + flat-cache: ^3.0.4 + checksum: f49701feaa6314c8127c3c2f6173cfefff17612f5ed2daaafc6da13b5c91fd43e3b2a58fd0d63f9f94478a501b167615931e7200e31485e320f74a33885a9c74 + languageName: node + linkType: hard + +"fill-range@npm:^7.0.1": + version: 7.0.1 + resolution: "fill-range@npm:7.0.1" + dependencies: + to-regex-range: ^5.0.1 + checksum: cc283f4e65b504259e64fd969bcf4def4eb08d85565e906b7d36516e87819db52029a76b6363d0f02d0d532f0033c9603b9e2d943d56ee3b0d4f7ad3328ff917 + languageName: node + linkType: hard + +"find-root@npm:^1.1.0": + version: 1.1.0 + resolution: "find-root@npm:1.1.0" + checksum: b2a59fe4b6c932eef36c45a048ae8f93c85640212ebe8363164814990ee20f154197505965f3f4f102efc33bfb1cbc26fd17c4a2fc739ebc51b886b137cbefaf + languageName: node + linkType: hard + +"find-up@npm:^4.1.0": + version: 4.1.0 + resolution: "find-up@npm:4.1.0" + dependencies: + locate-path: ^5.0.0 + path-exists: ^4.0.0 + checksum: 4c172680e8f8c1f78839486e14a43ef82e9decd0e74145f40707cc42e7420506d5ec92d9a11c22bd2c48fb0c384ea05dd30e10dd152fefeec6f2f75282a8b844 + languageName: node + linkType: hard + +"find-up@npm:^5.0.0": + version: 5.0.0 + resolution: "find-up@npm:5.0.0" + dependencies: + locate-path: ^6.0.0 + path-exists: ^4.0.0 + checksum: 07955e357348f34660bde7920783204ff5a26ac2cafcaa28bace494027158a97b9f56faaf2d89a6106211a8174db650dd9f503f9c0d526b1202d5554a00b9095 + languageName: node + linkType: hard + +"flat-cache@npm:^3.0.4": + version: 3.0.4 + resolution: "flat-cache@npm:3.0.4" + dependencies: + flatted: ^3.1.0 + rimraf: ^3.0.2 + checksum: 4fdd10ecbcbf7d520f9040dd1340eb5dfe951e6f0ecf2252edeec03ee68d989ec8b9a20f4434270e71bcfd57800dc09b3344fca3966b2eb8f613072c7d9a2365 + languageName: node + linkType: hard + +"flatted@npm:^3.1.0": + version: 3.2.7 + resolution: "flatted@npm:3.2.7" + checksum: 427633049d55bdb80201c68f7eb1cbd533e03eac541f97d3aecab8c5526f12a20ccecaeede08b57503e772c769e7f8680b37e8d482d1e5f8d7e2194687f9ea35 + languageName: node + linkType: hard + +"flow-static-land@npm:0.2.7": + version: 0.2.7 + resolution: "flow-static-land@npm:0.2.7" + checksum: 38dbca39ad8d7c3a8a1bf8287d5fab33af043a223169e180ae963e66fe677a6ea2c7f982dd86643aea33ae941b3dc610aa44e78113eb360c45501b5712b40a95 + languageName: node + linkType: hard + +"flow-static-land@npm:0.2.8": + version: 0.2.8 + resolution: "flow-static-land@npm:0.2.8" + checksum: 601041728f26baac08de972301360877407109d9b7cb78241126d9bf787ecc97eb48b978c58711208a4a83a1a2faab70700de99a4a517d6f129fb92f3493a0d1 + languageName: node + linkType: hard + +"for-each@npm:^0.3.3": + version: 0.3.3 + resolution: "for-each@npm:0.3.3" + dependencies: + is-callable: ^1.1.3 + checksum: 6c48ff2bc63362319c65e2edca4a8e1e3483a2fabc72fbe7feaf8c73db94fc7861bd53bc02c8a66a0c1dd709da6b04eec42e0abdd6b40ce47305ae92a25e5d28 + languageName: node + linkType: hard + +"form-data@npm:^3.0.0": + version: 3.0.1 + resolution: "form-data@npm:3.0.1" + dependencies: + asynckit: ^0.4.0 + combined-stream: ^1.0.8 + mime-types: ^2.1.12 + checksum: b019e8d35c8afc14a2bd8a7a92fa4f525a4726b6d5a9740e8d2623c30e308fbb58dc8469f90415a856698933c8479b01646a9dff33c87cc4e76d72aedbbf860d + languageName: node + linkType: hard + +"frontend@workspace:.": + version: 0.0.0-use.local + resolution: "frontend@workspace:." + dependencies: + "@absinthe/socket": 0.2.1 + "@absinthe/socket-apollo-link": 0.2.1 + "@apollo/client": 3.7.10 + "@emotion/react": 11.10.6 + "@emotion/styled": 11.10.6 + "@graphql-codegen/add": 4.0.1 + "@graphql-codegen/cli": 3.2.2 + "@graphql-codegen/introspection": 3.0.1 + "@graphql-codegen/typescript": 3.0.2 + "@graphql-codegen/typescript-operations": 3.0.2 + "@graphql-codegen/typescript-react-apollo": 3.3.7 + "@pluralsh/design-system": 1.330.1 + "@pluralsh/eslint-config-typescript": 2.5.41 + "@types/absinthe__socket": 0.2.3 + "@types/absinthe__socket-apollo-link": 0.2.1 + "@types/phoenix": 1.5.5 + "@types/react": 18.0.28 + "@types/react-dom": 18.0.11 + "@types/styled-components": 5.1.26 + "@typescript-eslint/eslint-plugin": 5.56.0 + "@vitejs/plugin-react": 3.1.0 + eslint: 8.33.0 + eslint-plugin-import: 2.27.5 + eslint-plugin-import-newlines: 1.3.1 + eslint-plugin-jsx-a11y: 6.7.1 + eslint-plugin-react: 7.32.2 + eslint-plugin-react-hooks: 4.6.0 + honorable: 0.194.0 + honorable-theme-default: 0.77.0 + lodash: 4.17.21 + phoenix: 1.7.2 + react: 18.2.0 + react-dom: 18.2.0 + react-router-dom: 6.9.0 + styled-components: 5.3.9 + typescript: 5.0.2 + vite: 4.2.1 + languageName: unknown + linkType: soft + +"fs-minipass@npm:^2.0.0, fs-minipass@npm:^2.1.0": + version: 2.1.0 + resolution: "fs-minipass@npm:2.1.0" + dependencies: + minipass: ^3.0.0 + checksum: 1b8d128dae2ac6cc94230cc5ead341ba3e0efaef82dab46a33d171c044caaa6ca001364178d42069b2809c35a1c3c35079a32107c770e9ffab3901b59af8c8b1 + languageName: node + linkType: hard + +"fs.realpath@npm:^1.0.0": + version: 1.0.0 + resolution: "fs.realpath@npm:1.0.0" + checksum: 99ddea01a7e75aa276c250a04eedeffe5662bce66c65c07164ad6264f9de18fb21be9433ead460e54cff20e31721c811f4fb5d70591799df5f85dce6d6746fd0 + languageName: node + linkType: hard + +"fsevents@npm:~2.3.2": + version: 2.3.2 + resolution: "fsevents@npm:2.3.2" + dependencies: + node-gyp: latest + checksum: 97ade64e75091afee5265e6956cb72ba34db7819b4c3e94c431d4be2b19b8bb7a2d4116da417950c3425f17c8fe693d25e20212cac583ac1521ad066b77ae31f + conditions: os=darwin + languageName: node + linkType: hard + +"fsevents@patch:fsevents@~2.3.2#~builtin": + version: 2.3.2 + resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin::version=2.3.2&hash=df0bf1" + dependencies: + node-gyp: latest + conditions: os=darwin + languageName: node + linkType: hard + +"function-bind@npm:^1.1.1": + version: 1.1.1 + resolution: "function-bind@npm:1.1.1" + checksum: b32fbaebb3f8ec4969f033073b43f5c8befbb58f1a79e12f1d7490358150359ebd92f49e72ff0144f65f2c48ea2a605bff2d07965f548f6474fd8efd95bf361a + languageName: node + linkType: hard + +"function.prototype.name@npm:^1.1.5": + version: 1.1.5 + resolution: "function.prototype.name@npm:1.1.5" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.3 + es-abstract: ^1.19.0 + functions-have-names: ^1.2.2 + checksum: acd21d733a9b649c2c442f067567743214af5fa248dbeee69d8278ce7df3329ea5abac572be9f7470b4ec1cd4d8f1040e3c5caccf98ebf2bf861a0deab735c27 + languageName: node + linkType: hard + +"functions-have-names@npm:^1.2.2": + version: 1.2.3 + resolution: "functions-have-names@npm:1.2.3" + checksum: c3f1f5ba20f4e962efb71344ce0a40722163e85bee2101ce25f88214e78182d2d2476aa85ef37950c579eb6cf6ee811c17b3101bb84004bb75655f3e33f3fdb5 + languageName: node + linkType: hard + +"gauge@npm:^4.0.3": + version: 4.0.4 + resolution: "gauge@npm:4.0.4" + dependencies: + aproba: ^1.0.3 || ^2.0.0 + color-support: ^1.1.3 + console-control-strings: ^1.1.0 + has-unicode: ^2.0.1 + signal-exit: ^3.0.7 + string-width: ^4.2.3 + strip-ansi: ^6.0.1 + wide-align: ^1.1.5 + checksum: 788b6bfe52f1dd8e263cda800c26ac0ca2ff6de0b6eee2fe0d9e3abf15e149b651bd27bf5226be10e6e3edb5c4e5d5985a5a1a98137e7a892f75eff76467ad2d + languageName: node + linkType: hard + +"gensync@npm:^1.0.0-beta.2": + version: 1.0.0-beta.2 + resolution: "gensync@npm:1.0.0-beta.2" + checksum: a7437e58c6be12aa6c90f7730eac7fa9833dc78872b4ad2963d2031b00a3367a93f98aec75f9aaac7220848e4026d67a8655e870b24f20a543d103c0d65952ec + languageName: node + linkType: hard + +"get-caller-file@npm:^2.0.1, get-caller-file@npm:^2.0.5": + version: 2.0.5 + resolution: "get-caller-file@npm:2.0.5" + checksum: b9769a836d2a98c3ee734a88ba712e62703f1df31b94b784762c433c27a386dd6029ff55c2a920c392e33657d80191edbf18c61487e198844844516f843496b9 + languageName: node + linkType: hard + +"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.0": + version: 1.2.0 + resolution: "get-intrinsic@npm:1.2.0" + dependencies: + function-bind: ^1.1.1 + has: ^1.0.3 + has-symbols: ^1.0.3 + checksum: 78fc0487b783f5c58cf2dccafc3ae656ee8d2d8062a8831ce4a95e7057af4587a1d4882246c033aca0a7b4965276f4802b45cc300338d1b77a73d3e3e3f4877d + languageName: node + linkType: hard + +"get-symbol-description@npm:^1.0.0": + version: 1.0.0 + resolution: "get-symbol-description@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.1.1 + checksum: 9ceff8fe968f9270a37a1f73bf3f1f7bda69ca80f4f80850670e0e7b9444ff99323f7ac52f96567f8b5f5fbe7ac717a0d81d3407c7313e82810c6199446a5247 + languageName: node + linkType: hard + +"glob-parent@npm:^5.1.2": + version: 5.1.2 + resolution: "glob-parent@npm:5.1.2" + dependencies: + is-glob: ^4.0.1 + checksum: f4f2bfe2425296e8a47e36864e4f42be38a996db40420fe434565e4480e3322f18eb37589617a98640c5dc8fdec1a387007ee18dbb1f3f5553409c34d17f425e + languageName: node + linkType: hard + +"glob-parent@npm:^6.0.2": + version: 6.0.2 + resolution: "glob-parent@npm:6.0.2" + dependencies: + is-glob: ^4.0.3 + checksum: c13ee97978bef4f55106b71e66428eb1512e71a7466ba49025fc2aec59a5bfb0954d5abd58fc5ee6c9b076eef4e1f6d3375c2e964b88466ca390da4419a786a8 + languageName: node + linkType: hard + +"glob@npm:^7.1.1, glob@npm:^7.1.3, glob@npm:^7.1.4": + version: 7.2.3 + resolution: "glob@npm:7.2.3" + dependencies: + fs.realpath: ^1.0.0 + inflight: ^1.0.4 + inherits: 2 + minimatch: ^3.1.1 + once: ^1.3.0 + path-is-absolute: ^1.0.0 + checksum: 29452e97b38fa704dabb1d1045350fb2467cf0277e155aa9ff7077e90ad81d1ea9d53d3ee63bd37c05b09a065e90f16aec4a65f5b8de401d1dac40bc5605d133 + languageName: node + linkType: hard + +"glob@npm:^8.0.1": + version: 8.1.0 + resolution: "glob@npm:8.1.0" + dependencies: + fs.realpath: ^1.0.0 + inflight: ^1.0.4 + inherits: 2 + minimatch: ^5.0.1 + once: ^1.3.0 + checksum: 92fbea3221a7d12075f26f0227abac435de868dd0736a17170663783296d0dd8d3d532a5672b4488a439bf5d7fb85cdd07c11185d6cd39184f0385cbdfb86a47 + languageName: node + linkType: hard + +"globals@npm:^11.1.0": + version: 11.12.0 + resolution: "globals@npm:11.12.0" + checksum: 67051a45eca3db904aee189dfc7cd53c20c7d881679c93f6146ddd4c9f4ab2268e68a919df740d39c71f4445d2b38ee360fc234428baea1dbdfe68bbcb46979e + languageName: node + linkType: hard + +"globals@npm:^13.19.0": + version: 13.20.0 + resolution: "globals@npm:13.20.0" + dependencies: + type-fest: ^0.20.2 + checksum: ad1ecf914bd051325faad281d02ea2c0b1df5d01bd94d368dcc5513340eac41d14b3c61af325768e3c7f8d44576e72780ec0b6f2d366121f8eec6e03c3a3b97a + languageName: node + linkType: hard + +"globalthis@npm:^1.0.3": + version: 1.0.3 + resolution: "globalthis@npm:1.0.3" + dependencies: + define-properties: ^1.1.3 + checksum: fbd7d760dc464c886d0196166d92e5ffb4c84d0730846d6621a39fbbc068aeeb9c8d1421ad330e94b7bca4bb4ea092f5f21f3d36077812af5d098b4dc006c998 + languageName: node + linkType: hard + +"globby@npm:^11.0.3, globby@npm:^11.1.0": + version: 11.1.0 + resolution: "globby@npm:11.1.0" + dependencies: + array-union: ^2.1.0 + dir-glob: ^3.0.1 + fast-glob: ^3.2.9 + ignore: ^5.2.0 + merge2: ^1.4.1 + slash: ^3.0.0 + checksum: b4be8885e0cfa018fc783792942d53926c35c50b3aefd3fdcfb9d22c627639dc26bd2327a40a0b74b074100ce95bb7187bfeae2f236856aa3de183af7a02aea6 + languageName: node + linkType: hard + +"gopd@npm:^1.0.1": + version: 1.0.1 + resolution: "gopd@npm:1.0.1" + dependencies: + get-intrinsic: ^1.1.3 + checksum: a5ccfb8806e0917a94e0b3de2af2ea4979c1da920bc381667c260e00e7cafdbe844e2cb9c5bcfef4e5412e8bf73bab837285bc35c7ba73aaaf0134d4583393a6 + languageName: node + linkType: hard + +"graceful-fs@npm:^4.2.6": + version: 4.2.10 + resolution: "graceful-fs@npm:4.2.10" + checksum: 3f109d70ae123951905d85032ebeae3c2a5a7a997430df00ea30df0e3a6c60cf6689b109654d6fdacd28810a053348c4d14642da1d075049e6be1ba5216218da + languageName: node + linkType: hard + +"grapheme-splitter@npm:^1.0.4": + version: 1.0.4 + resolution: "grapheme-splitter@npm:1.0.4" + checksum: 0c22ec54dee1b05cd480f78cf14f732cb5b108edc073572c4ec205df4cd63f30f8db8025afc5debc8835a8ddeacf648a1c7992fe3dcd6ad38f9a476d84906620 + languageName: node + linkType: hard + +"graphql-config@npm:^4.5.0": + version: 4.5.0 + resolution: "graphql-config@npm:4.5.0" + dependencies: + "@graphql-tools/graphql-file-loader": ^7.3.7 + "@graphql-tools/json-file-loader": ^7.3.7 + "@graphql-tools/load": ^7.5.5 + "@graphql-tools/merge": ^8.2.6 + "@graphql-tools/url-loader": ^7.9.7 + "@graphql-tools/utils": ^9.0.0 + cosmiconfig: 8.0.0 + jiti: 1.17.1 + minimatch: 4.2.3 + string-env-interpolation: 1.0.1 + tslib: ^2.4.0 + peerDependencies: + cosmiconfig-toml-loader: ^1.0.0 + graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + peerDependenciesMeta: + cosmiconfig-toml-loader: + optional: true + checksum: 8ab1a3ce3534598ddac2df213b6af2eecd9ebcca2268d39cc3e87a6e55749483389a6df222e9e0acd638dd2479378a5c8e8d90f980e6a54e700c4c4ae3522123 + languageName: node + linkType: hard + +"graphql-request@npm:^5.0.0": + version: 5.2.0 + resolution: "graphql-request@npm:5.2.0" + dependencies: + "@graphql-typed-document-node/core": ^3.1.1 + cross-fetch: ^3.1.5 + extract-files: ^9.0.0 + form-data: ^3.0.0 + peerDependencies: + graphql: 14 - 16 + checksum: a8aa37816378898e6fc8c4db04a1c114c98f98d90718cf1680bd96b22724bd43b1210619f9b0d328b5c1acb4f7b76d2227a2537cd5ab059bb54cf0debecb33bf + languageName: node + linkType: hard + +"graphql-tag@npm:^2.11.0, graphql-tag@npm:^2.12.6": + version: 2.12.6 + resolution: "graphql-tag@npm:2.12.6" + dependencies: + tslib: ^2.1.0 + 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 + checksum: b15162a3d62f17b9b79302445b9ee330e041582f1c7faca74b9dec5daa74272c906ec1c34e1c50592bb6215e5c3eba80a309103f6ba9e4c1cddc350c46f010df + languageName: node + linkType: hard + +"graphql-ws@npm:5.12.0": + version: 5.12.0 + resolution: "graphql-ws@npm:5.12.0" + peerDependencies: + graphql: ">=0.11 <=16" + checksum: 5c683e2d5bdadfcfec0639eda69b8a66ef275e68e64f662bd75da6779a87b34395cbce8e37cb66830a9febca1871f7dc2575e6814f6f6e899904fe72e245f216 + languageName: node + linkType: hard + +"graphql@npm:14.0.2": + version: 14.0.2 + resolution: "graphql@npm:14.0.2" + dependencies: + iterall: ^1.2.2 + checksum: 789cf582d3b7493bfe9372d28b0c124a992165082b111972b4b7171dc55db0eda6288a946759972e83788c584246d5ebcaec403d6b6e1292e266b74e14198bf7 + languageName: node + linkType: hard + +"graphql@npm:^14.5.3": + version: 14.7.0 + resolution: "graphql@npm:14.7.0" + dependencies: + iterall: ^1.2.2 + checksum: e5f4e60799421a573904f390e1ec0aa76360f751688dbbe62e9c35baa0d3727c8d59a659bfc524f126dffe3518da87fd8ecaa78c94fd5c0fe4e035c670745242 + languageName: node + linkType: hard + +"grommet-icons@npm:4.9.0": + version: 4.9.0 + resolution: "grommet-icons@npm:4.9.0" + dependencies: + grommet-styles: ^0.2.0 + peerDependencies: + react: ^16.6.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 + styled-components: ">= 5.x" + checksum: b978c087a16341d75f3f8e9f57484fab9c4fdf64ab7d89a46246d7bff024120cce50167e1af49048a492fb30cc3e59c7ffc0e8dbd25733521864147f071dc3d3 + languageName: node + linkType: hard + +"grommet-icons@npm:^4.8.0": + version: 4.10.0 + resolution: "grommet-icons@npm:4.10.0" + dependencies: + grommet-styles: ^0.2.0 + peerDependencies: + react: ^16.6.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 + styled-components: ">= 5.x" + checksum: 69745341a65f4e4d05bd5b207f7243b5ffa54d13a8195093cae7fb32d57b38ab55ed30cfee341b9f1f659b99743f721ee04c7ab9decd7dd7f171fcc4947af048 + languageName: node + linkType: hard + +"grommet-styles@npm:^0.2.0": + version: 0.2.0 + resolution: "grommet-styles@npm:0.2.0" + peerDependencies: + react: ">= 16.4.1" + react-dom: ">= 16.4.1" + styled-components: ">= 4.X" + checksum: 7b29e6fd773a29a9f7b48e5b0a163e1c51b3b196891228d88a0e5b99faab4ece03b5410a97665105fe886402016a337237b956d5f46af06ec2e06e2b328a0757 + languageName: node + linkType: hard + +"grommet@npm:2.29.1": + version: 2.29.1 + resolution: "grommet@npm:2.29.1" + dependencies: + grommet-icons: ^4.8.0 + hoist-non-react-statics: ^3.2.0 + markdown-to-jsx: ^7.1.5 + prop-types: ^15.8.1 + peerDependencies: + react: ^16.6.1 || ^17.0.0 || ^18.0.0 + react-dom: ^16.6.1 || ^17.0.0 || ^18.0.0 + styled-components: ">= 5.1" + checksum: f16f68ad7a0d5984bd5f3a6f84d84575bc168a3f9eb53095f80a7da702e3a6113b6e465390c8045650aedce813d0a3165cad96508939ff8463b00f99eefd54d1 + languageName: node + linkType: hard + +"has-bigints@npm:^1.0.1, has-bigints@npm:^1.0.2": + version: 1.0.2 + resolution: "has-bigints@npm:1.0.2" + checksum: 390e31e7be7e5c6fe68b81babb73dfc35d413604d7ee5f56da101417027a4b4ce6a27e46eff97ad040c835b5d228676eae99a9b5c3bc0e23c8e81a49241ff45b + languageName: node + linkType: hard + +"has-flag@npm:^3.0.0": + version: 3.0.0 + resolution: "has-flag@npm:3.0.0" + checksum: 4a15638b454bf086c8148979aae044dd6e39d63904cd452d970374fa6a87623423da485dfb814e7be882e05c096a7ccf1ebd48e7e7501d0208d8384ff4dea73b + languageName: node + linkType: hard + +"has-flag@npm:^4.0.0": + version: 4.0.0 + resolution: "has-flag@npm:4.0.0" + checksum: 261a1357037ead75e338156b1f9452c016a37dcd3283a972a30d9e4a87441ba372c8b81f818cd0fbcd9c0354b4ae7e18b9e1afa1971164aef6d18c2b6095a8ad + languageName: node + linkType: hard + +"has-property-descriptors@npm:^1.0.0": + version: 1.0.0 + resolution: "has-property-descriptors@npm:1.0.0" + dependencies: + get-intrinsic: ^1.1.1 + checksum: a6d3f0a266d0294d972e354782e872e2fe1b6495b321e6ef678c9b7a06a40408a6891817350c62e752adced73a94ac903c54734fee05bf65b1905ee1368194bb + languageName: node + linkType: hard + +"has-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "has-proto@npm:1.0.1" + checksum: febc5b5b531de8022806ad7407935e2135f1cc9e64636c3916c6842bd7995994ca3b29871ecd7954bd35f9e2986c17b3b227880484d22259e2f8e6ce63fd383e + languageName: node + linkType: hard + +"has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": + version: 1.0.3 + resolution: "has-symbols@npm:1.0.3" + checksum: a054c40c631c0d5741a8285010a0777ea0c068f99ed43e5d6eb12972da223f8af553a455132fdb0801bdcfa0e0f443c0c03a68d8555aa529b3144b446c3f2410 + languageName: node + linkType: hard + +"has-tostringtag@npm:^1.0.0": + version: 1.0.0 + resolution: "has-tostringtag@npm:1.0.0" + dependencies: + has-symbols: ^1.0.2 + checksum: cc12eb28cb6ae22369ebaad3a8ab0799ed61270991be88f208d508076a1e99abe4198c965935ce85ea90b60c94ddda73693b0920b58e7ead048b4a391b502c1c + languageName: node + linkType: hard + +"has-unicode@npm:^2.0.1": + version: 2.0.1 + resolution: "has-unicode@npm:2.0.1" + checksum: 1eab07a7436512db0be40a710b29b5dc21fa04880b7f63c9980b706683127e3c1b57cb80ea96d47991bdae2dfe479604f6a1ba410106ee1046a41d1bd0814400 + languageName: node + linkType: hard + +"has@npm:^1.0.3": + version: 1.0.3 + resolution: "has@npm:1.0.3" + dependencies: + function-bind: ^1.1.1 + checksum: b9ad53d53be4af90ce5d1c38331e712522417d017d5ef1ebd0507e07c2fbad8686fffb8e12ddecd4c39ca9b9b47431afbb975b8abf7f3c3b82c98e9aad052792 + languageName: node + linkType: hard + +"hast-util-from-parse5@npm:^7.0.0": + version: 7.1.2 + resolution: "hast-util-from-parse5@npm:7.1.2" + dependencies: + "@types/hast": ^2.0.0 + "@types/unist": ^2.0.0 + hastscript: ^7.0.0 + property-information: ^6.0.0 + vfile: ^5.0.0 + vfile-location: ^4.0.0 + web-namespaces: ^2.0.0 + checksum: 7b4ed5b508b1352127c6719f7b0c0880190cf9859fe54ccaf7c9228ecf623d36cef3097910b3874d2fe1aac6bf4cf45d3cc2303daac3135a05e9ade6534ddddb + languageName: node + linkType: hard + +"hast-util-parse-selector@npm:^3.0.0": + version: 3.1.1 + resolution: "hast-util-parse-selector@npm:3.1.1" + dependencies: + "@types/hast": ^2.0.0 + checksum: 511d373465f60dd65e924f88bf0954085f4fb6e3a2b062a4b5ac43b93cbfd36a8dce6234b5d1e3e63499d936375687e83fc5da55628b22bd6b581b5ee167d1c4 + languageName: node + linkType: hard + +"hast-util-raw@npm:^7.2.0": + version: 7.2.3 + resolution: "hast-util-raw@npm:7.2.3" + dependencies: + "@types/hast": ^2.0.0 + "@types/parse5": ^6.0.0 + hast-util-from-parse5: ^7.0.0 + hast-util-to-parse5: ^7.0.0 + html-void-elements: ^2.0.0 + parse5: ^6.0.0 + unist-util-position: ^4.0.0 + unist-util-visit: ^4.0.0 + vfile: ^5.0.0 + web-namespaces: ^2.0.0 + zwitch: ^2.0.0 + checksum: 21857eea3ffb8fd92d2d9be7793b56d0b2c40db03c4cfa14828855ae41d7c584917aa83efb7157220b2e41e25e95f81f24679ac342c35145e5f1c1d39015f81f + languageName: node + linkType: hard + +"hast-util-to-parse5@npm:^7.0.0": + version: 7.1.0 + resolution: "hast-util-to-parse5@npm:7.1.0" + dependencies: + "@types/hast": ^2.0.0 + comma-separated-tokens: ^2.0.0 + property-information: ^6.0.0 + space-separated-tokens: ^2.0.0 + web-namespaces: ^2.0.0 + zwitch: ^2.0.0 + checksum: 3a7f2175a3db599bbae7e49ba73d3e5e688e5efca7590ff50130ba108ad649f728402815d47db49146f6b94c14c934bf119915da9f6964e38802c122bcc8af6b + languageName: node + linkType: hard + +"hast-util-whitespace@npm:^2.0.0": + version: 2.0.1 + resolution: "hast-util-whitespace@npm:2.0.1" + checksum: 431be6b2f35472f951615540d7a53f69f39461e5e080c0190268bdeb2be9ab9b1dddfd1f467dd26c1de7e7952df67beb1307b6ee940baf78b24a71b5e0663868 + languageName: node + linkType: hard + +"hastscript@npm:^7.0.0": + version: 7.2.0 + resolution: "hastscript@npm:7.2.0" + dependencies: + "@types/hast": ^2.0.0 + comma-separated-tokens: ^2.0.0 + hast-util-parse-selector: ^3.0.0 + property-information: ^6.0.0 + space-separated-tokens: ^2.0.0 + checksum: 928a21576ff7b9a8c945e7940bcbf2d27f770edb4279d4d04b33dc90753e26ca35c1172d626f54afebd377b2afa32331e399feb3eb0f7b91a399dca5927078ae + languageName: node + linkType: hard + +"header-case@npm:^2.0.4": + version: 2.0.4 + resolution: "header-case@npm:2.0.4" + dependencies: + capital-case: ^1.0.4 + tslib: ^2.0.3 + checksum: 571c83eeb25e8130d172218712f807c0b96d62b020981400bccc1503a7cf14b09b8b10498a962d2739eccf231d950e3848ba7d420b58a6acd2f9283439546cd9 + languageName: node + linkType: hard + +"highlight.js@npm:11.7.0": + version: 11.7.0 + resolution: "highlight.js@npm:11.7.0" + checksum: 19e3fb8b56f4b361b057a8523b989dfeb6479bbd1e29cec3fac6fa5c78d09927d5fa61b7dba6631fdb57cfdca9b3084aa4da49405ceaf4a67f67beae2ed5b77d + languageName: node + linkType: hard + +"hoist-non-react-statics@npm:^3.0.0, hoist-non-react-statics@npm:^3.2.0, hoist-non-react-statics@npm:^3.3.0, hoist-non-react-statics@npm:^3.3.1, hoist-non-react-statics@npm:^3.3.2": + version: 3.3.2 + resolution: "hoist-non-react-statics@npm:3.3.2" + dependencies: + react-is: ^16.7.0 + checksum: b1538270429b13901ee586aa44f4cc3ecd8831c061d06cb8322e50ea17b3f5ce4d0e2e66394761e6c8e152cd8c34fb3b4b690116c6ce2bd45b18c746516cb9e8 + languageName: node + linkType: hard + +"honorable-recipe-mapper@npm:0.2.0": + version: 0.2.0 + resolution: "honorable-recipe-mapper@npm:0.2.0" + checksum: 86521c78ff616ceb76685a1117e90991670f789cb1e9efaed1963295b170ba1bcdeed2998408433e79c94315f1ba0cb9896272f2e2fb5e8495f06b8f715b351b + languageName: node + linkType: hard + +"honorable-theme-default@npm:0.77.0": + version: 0.77.0 + resolution: "honorable-theme-default@npm:0.77.0" + peerDependencies: + "@emotion/react": ">=10.0.0" + checksum: 008e34e25ff4e7d56e67d52296b495fa28caaacea67eb6e18b28e0283a71099fee647dbe43e0996e93472217fe9ed94d77e0bd1c73dc9c4a5ec205528790f328 + languageName: node + linkType: hard + +"honorable@npm:0.194.0": + version: 0.194.0 + resolution: "honorable@npm:0.194.0" + dependencies: + "@emotion/is-prop-valid": ^1.2.0 + "@floating-ui/react-dom": ^1.0.1 + lodash.merge: ^4.6.2 + lodash.mergewith: ^4.6.2 + prop-types: ^15.8.1 + react-textarea-autosize: ^8.4.0 + react-transition-group: ^4.4.5 + peerDependencies: + "@emotion/react": ">=10.0.0" + "@emotion/styled": ">=10.0.0" + react: ">=16.0.0" + react-dom: ">=16.0.0" + checksum: 4ada627c577ad63de48bbf7d76ee6d3c9f36a7b0e01606988d9f975cbacb9beb644626ed6a5e20f65554bf0ac72ab046503168be58d10249e58c26fbf997d174 + languageName: node + linkType: hard + +"html-void-elements@npm:^2.0.0": + version: 2.0.1 + resolution: "html-void-elements@npm:2.0.1" + checksum: 06d41f13b9d5d6e0f39861c4bec9a9196fa4906d56cd5cf6cf54ad2e52a85bf960cca2bf9600026bde16c8331db171bedba5e5a35e2e43630c8f1d497b2fb658 + languageName: node + linkType: hard + +"http-cache-semantics@npm:^4.1.0": + version: 4.1.1 + resolution: "http-cache-semantics@npm:4.1.1" + checksum: 83ac0bc60b17a3a36f9953e7be55e5c8f41acc61b22583060e8dedc9dd5e3607c823a88d0926f9150e571f90946835c7fe150732801010845c72cd8bbff1a236 + languageName: node + linkType: hard + +"http-proxy-agent@npm:^5.0.0": + version: 5.0.0 + resolution: "http-proxy-agent@npm:5.0.0" + dependencies: + "@tootallnate/once": 2 + agent-base: 6 + debug: 4 + checksum: e2ee1ff1656a131953839b2a19cd1f3a52d97c25ba87bd2559af6ae87114abf60971e498021f9b73f9fd78aea8876d1fb0d4656aac8a03c6caa9fc175f22b786 + languageName: node + linkType: hard + +"https-proxy-agent@npm:^5.0.0": + version: 5.0.1 + resolution: "https-proxy-agent@npm:5.0.1" + dependencies: + agent-base: 6 + debug: 4 + checksum: 571fccdf38184f05943e12d37d6ce38197becdd69e58d03f43637f7fa1269cf303a7d228aa27e5b27bbd3af8f09fd938e1c91dcfefff2df7ba77c20ed8dfc765 + languageName: node + linkType: hard + +"humanize-ms@npm:^1.2.1": + version: 1.2.1 + resolution: "humanize-ms@npm:1.2.1" + dependencies: + ms: ^2.0.0 + checksum: 9c7a74a2827f9294c009266c82031030eae811ca87b0da3dceb8d6071b9bde22c9f3daef0469c3c533cc67a97d8a167cd9fc0389350e5f415f61a79b171ded16 + languageName: node + linkType: hard + +"iconv-lite@npm:^0.4.24": + version: 0.4.24 + resolution: "iconv-lite@npm:0.4.24" + dependencies: + safer-buffer: ">= 2.1.2 < 3" + checksum: bd9f120f5a5b306f0bc0b9ae1edeb1577161503f5f8252a20f1a9e56ef8775c9959fd01c55f2d3a39d9a8abaf3e30c1abeb1895f367dcbbe0a8fd1c9ca01c4f6 + languageName: node + linkType: hard + +"iconv-lite@npm:^0.6.2": + version: 0.6.3 + resolution: "iconv-lite@npm:0.6.3" + dependencies: + safer-buffer: ">= 2.1.2 < 3.0.0" + checksum: 3f60d47a5c8fc3313317edfd29a00a692cc87a19cac0159e2ce711d0ebc9019064108323b5e493625e25594f11c6236647d8e256fbe7a58f4a3b33b89e6d30bf + languageName: node + linkType: hard + +"ieee754@npm:^1.1.13": + version: 1.2.1 + resolution: "ieee754@npm:1.2.1" + checksum: 5144c0c9815e54ada181d80a0b810221a253562422e7c6c3a60b1901154184f49326ec239d618c416c1c5945a2e197107aee8d986a3dd836b53dffefd99b5e7e + languageName: node + linkType: hard + +"ignore@npm:^5.2.0": + version: 5.2.4 + resolution: "ignore@npm:5.2.4" + checksum: 3d4c309c6006e2621659311783eaea7ebcd41fe4ca1d78c91c473157ad6666a57a2df790fe0d07a12300d9aac2888204d7be8d59f9aaf665b1c7fcdb432517ef + languageName: node + linkType: hard + +"immer@npm:9.0.19": + version: 9.0.19 + resolution: "immer@npm:9.0.19" + checksum: f02ee53989989c287cd548a3d817fccf0bfe56db919755ee94a72ea3ae78a00363fba93ee6c010fe54a664380c29c53d44ed4091c6a86cae60957ad2cfabc010 + languageName: node + linkType: hard + +"immutable@npm:~3.7.6": + version: 3.7.6 + resolution: "immutable@npm:3.7.6" + checksum: 8cccfb22d3ecf14fe0c474612e96d6bb5d117493e7639fe6642fb81e78c9ac4b698dd8a322c105001a709ad873ffc90e30bad7db5d9a3ef0b54a6e1db0258e8e + languageName: node + linkType: hard + +"import-fresh@npm:^3.0.0, import-fresh@npm:^3.2.1": + version: 3.3.0 + resolution: "import-fresh@npm:3.3.0" + dependencies: + parent-module: ^1.0.0 + resolve-from: ^4.0.0 + checksum: 2cacfad06e652b1edc50be650f7ec3be08c5e5a6f6d12d035c440a42a8cc028e60a5b99ca08a77ab4d6b1346da7d971915828f33cdab730d3d42f08242d09baa + languageName: node + linkType: hard + +"import-from@npm:4.0.0": + version: 4.0.0 + resolution: "import-from@npm:4.0.0" + checksum: 1fa29c05b048da18914e91d9a529e5d9b91774bebbfab10e53f59bcc1667917672b971cf102fee857f142e5e433ce69fa1f0a596e1c7d82f9947a5ec352694b9 + languageName: node + linkType: hard + +"imurmurhash@npm:^0.1.4": + version: 0.1.4 + resolution: "imurmurhash@npm:0.1.4" + checksum: 7cae75c8cd9a50f57dadd77482359f659eaebac0319dd9368bcd1714f55e65badd6929ca58569da2b6494ef13fdd5598cd700b1eba23f8b79c5f19d195a3ecf7 + languageName: node + linkType: hard + +"indent-string@npm:^4.0.0": + version: 4.0.0 + resolution: "indent-string@npm:4.0.0" + checksum: 824cfb9929d031dabf059bebfe08cf3137365e112019086ed3dcff6a0a7b698cb80cf67ccccde0e25b9e2d7527aa6cc1fed1ac490c752162496caba3e6699612 + languageName: node + linkType: hard + +"infer-owner@npm:^1.0.4": + version: 1.0.4 + resolution: "infer-owner@npm:1.0.4" + checksum: 181e732764e4a0611576466b4b87dac338972b839920b2a8cde43642e4ed6bd54dc1fb0b40874728f2a2df9a1b097b8ff83b56d5f8f8e3927f837fdcb47d8a89 + languageName: node + linkType: hard + +"inflight@npm:^1.0.4": + version: 1.0.6 + resolution: "inflight@npm:1.0.6" + dependencies: + once: ^1.3.0 + wrappy: 1 + checksum: f4f76aa072ce19fae87ce1ef7d221e709afb59d445e05d47fba710e85470923a75de35bfae47da6de1b18afc3ce83d70facf44cfb0aff89f0a3f45c0a0244dfd + languageName: node + linkType: hard + +"inherits@npm:2, inherits@npm:^2.0.3, inherits@npm:^2.0.4": + version: 2.0.4 + resolution: "inherits@npm:2.0.4" + checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 + languageName: node + linkType: hard + +"inline-style-parser@npm:0.1.1": + version: 0.1.1 + resolution: "inline-style-parser@npm:0.1.1" + checksum: 5d545056a3e1f2bf864c928a886a0e1656a3517127d36917b973de581bd54adc91b4bf1febcb0da054f204b4934763f1a4e09308b4d55002327cf1d48ac5d966 + languageName: node + linkType: hard + +"inquirer@npm:^8.0.0": + version: 8.2.5 + resolution: "inquirer@npm:8.2.5" + dependencies: + ansi-escapes: ^4.2.1 + chalk: ^4.1.1 + cli-cursor: ^3.1.0 + cli-width: ^3.0.0 + external-editor: ^3.0.3 + figures: ^3.0.0 + lodash: ^4.17.21 + mute-stream: 0.0.8 + ora: ^5.4.1 + run-async: ^2.4.0 + rxjs: ^7.5.5 + string-width: ^4.1.0 + strip-ansi: ^6.0.0 + through: ^2.3.6 + wrap-ansi: ^7.0.0 + checksum: f13ee4c444187786fb393609dedf6b30870115a57b603f2e6424f29a99abc13446fd45ee22461c33c9c40a92a60a8df62d0d6b25d74fc6676fa4cb211de55b55 + languageName: node + linkType: hard + +"internal-slot@npm:^1.0.3, internal-slot@npm:^1.0.4, internal-slot@npm:^1.0.5": + version: 1.0.5 + resolution: "internal-slot@npm:1.0.5" + dependencies: + get-intrinsic: ^1.2.0 + has: ^1.0.3 + side-channel: ^1.0.4 + checksum: 97e84046bf9e7574d0956bd98d7162313ce7057883b6db6c5c7b5e5f05688864b0978ba07610c726d15d66544ffe4b1050107d93f8a39ebc59b15d8b429b497a + languageName: node + linkType: hard + +"intl-messageformat@npm:^10.1.0": + version: 10.3.3 + resolution: "intl-messageformat@npm:10.3.3" + dependencies: + "@formatjs/ecma402-abstract": 1.14.3 + "@formatjs/fast-memoize": 2.0.1 + "@formatjs/icu-messageformat-parser": 2.3.0 + tslib: ^2.4.0 + checksum: 05baee05d31b911dc4bb1774ddf0799dc136723203461f73fecb185e2e2d18b148311db7ef14294d664a6212311c5d9116c3e850cf609dd6348e347f3d07e660 + languageName: node + linkType: hard + +"invariant@npm:^2.2.4": + version: 2.2.4 + resolution: "invariant@npm:2.2.4" + dependencies: + loose-envify: ^1.0.0 + checksum: cc3182d793aad82a8d1f0af697b462939cb46066ec48bbf1707c150ad5fad6406137e91a262022c269702e01621f35ef60269f6c0d7fd178487959809acdfb14 + languageName: node + linkType: hard + +"ip@npm:^2.0.0": + version: 2.0.0 + resolution: "ip@npm:2.0.0" + checksum: cfcfac6b873b701996d71ec82a7dd27ba92450afdb421e356f44044ed688df04567344c36cbacea7d01b1c39a4c732dc012570ebe9bebfb06f27314bca625349 + languageName: node + linkType: hard + +"is-absolute@npm:^1.0.0": + version: 1.0.0 + resolution: "is-absolute@npm:1.0.0" + dependencies: + is-relative: ^1.0.0 + is-windows: ^1.0.1 + checksum: 9d16b2605eda3f3ce755410f1d423e327ad3a898bcb86c9354cf63970ed3f91ba85e9828aa56f5d6a952b9fae43d0477770f78d37409ae8ecc31e59ebc279b27 + languageName: node + linkType: hard + +"is-arguments@npm:^1.1.1": + version: 1.1.1 + resolution: "is-arguments@npm:1.1.1" + dependencies: + call-bind: ^1.0.2 + has-tostringtag: ^1.0.0 + checksum: 7f02700ec2171b691ef3e4d0e3e6c0ba408e8434368504bb593d0d7c891c0dbfda6d19d30808b904a6cb1929bca648c061ba438c39f296c2a8ca083229c49f27 + languageName: node + linkType: hard + +"is-array-buffer@npm:^3.0.1, is-array-buffer@npm:^3.0.2": + version: 3.0.2 + resolution: "is-array-buffer@npm:3.0.2" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.2.0 + is-typed-array: ^1.1.10 + checksum: dcac9dda66ff17df9cabdc58214172bf41082f956eab30bb0d86bc0fab1e44b690fc8e1f855cf2481245caf4e8a5a006a982a71ddccec84032ed41f9d8da8c14 + languageName: node + linkType: hard + +"is-arrayish@npm:^0.2.1": + version: 0.2.1 + resolution: "is-arrayish@npm:0.2.1" + checksum: eef4417e3c10e60e2c810b6084942b3ead455af16c4509959a27e490e7aee87cfb3f38e01bbde92220b528a0ee1a18d52b787e1458ee86174d8c7f0e58cd488f + languageName: node + linkType: hard + +"is-bigint@npm:^1.0.1": + version: 1.0.4 + resolution: "is-bigint@npm:1.0.4" + dependencies: + has-bigints: ^1.0.1 + checksum: c56edfe09b1154f8668e53ebe8252b6f185ee852a50f9b41e8d921cb2bed425652049fbe438723f6cb48a63ca1aa051e948e7e401e093477c99c84eba244f666 + languageName: node + linkType: hard + +"is-boolean-object@npm:^1.1.0": + version: 1.1.2 + resolution: "is-boolean-object@npm:1.1.2" + dependencies: + call-bind: ^1.0.2 + has-tostringtag: ^1.0.0 + checksum: c03b23dbaacadc18940defb12c1c0e3aaece7553ef58b162a0f6bba0c2a7e1551b59f365b91e00d2dbac0522392d576ef322628cb1d036a0fe51eb466db67222 + languageName: node + linkType: hard + +"is-buffer@npm:^2.0.0": + version: 2.0.5 + resolution: "is-buffer@npm:2.0.5" + checksum: 764c9ad8b523a9f5a32af29bdf772b08eb48c04d2ad0a7240916ac2688c983bf5f8504bf25b35e66240edeb9d9085461f9b5dae1f3d2861c6b06a65fe983de42 + languageName: node + linkType: hard + +"is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7": + version: 1.2.7 + resolution: "is-callable@npm:1.2.7" + checksum: 61fd57d03b0d984e2ed3720fb1c7a897827ea174bd44402878e059542ea8c4aeedee0ea0985998aa5cc2736b2fa6e271c08587addb5b3959ac52cf665173d1ac + languageName: node + linkType: hard + +"is-core-module@npm:^2.11.0, is-core-module@npm:^2.9.0": + version: 2.11.0 + resolution: "is-core-module@npm:2.11.0" + dependencies: + has: ^1.0.3 + checksum: f96fd490c6b48eb4f6d10ba815c6ef13f410b0ba6f7eb8577af51697de523e5f2cd9de1c441b51d27251bf0e4aebc936545e33a5d26d5d51f28d25698d4a8bab + languageName: node + linkType: hard + +"is-date-object@npm:^1.0.1, is-date-object@npm:^1.0.5": + version: 1.0.5 + resolution: "is-date-object@npm:1.0.5" + dependencies: + has-tostringtag: ^1.0.0 + checksum: baa9077cdf15eb7b58c79398604ca57379b2fc4cf9aa7a9b9e295278648f628c9b201400c01c5e0f7afae56507d741185730307cbe7cad3b9f90a77e5ee342fc + languageName: node + linkType: hard + +"is-extglob@npm:^2.1.1": + version: 2.1.1 + resolution: "is-extglob@npm:2.1.1" + checksum: df033653d06d0eb567461e58a7a8c9f940bd8c22274b94bf7671ab36df5719791aae15eef6d83bbb5e23283967f2f984b8914559d4449efda578c775c4be6f85 + languageName: node + linkType: hard + +"is-fullwidth-code-point@npm:^3.0.0": + version: 3.0.0 + resolution: "is-fullwidth-code-point@npm:3.0.0" + checksum: 44a30c29457c7fb8f00297bce733f0a64cd22eca270f83e58c105e0d015e45c019491a4ab2faef91ab51d4738c670daff901c799f6a700e27f7314029e99e348 + languageName: node + linkType: hard + +"is-glob@npm:4.0.3, is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3": + version: 4.0.3 + resolution: "is-glob@npm:4.0.3" + dependencies: + is-extglob: ^2.1.1 + checksum: d381c1319fcb69d341cc6e6c7cd588e17cd94722d9a32dbd60660b993c4fb7d0f19438674e68dfec686d09b7c73139c9166b47597f846af387450224a8101ab4 + languageName: node + linkType: hard + +"is-interactive@npm:^1.0.0": + version: 1.0.0 + resolution: "is-interactive@npm:1.0.0" + checksum: 824808776e2d468b2916cdd6c16acacebce060d844c35ca6d82267da692e92c3a16fdba624c50b54a63f38bdc4016055b6f443ce57d7147240de4f8cdabaf6f9 + languageName: node + linkType: hard + +"is-lambda@npm:^1.0.1": + version: 1.0.1 + resolution: "is-lambda@npm:1.0.1" + checksum: 93a32f01940220532e5948538699ad610d5924ac86093fcee83022252b363eb0cc99ba53ab084a04e4fb62bf7b5731f55496257a4c38adf87af9c4d352c71c35 + languageName: node + linkType: hard + +"is-lower-case@npm:^2.0.2": + version: 2.0.2 + resolution: "is-lower-case@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: ba57dd1201e15fd9b590654736afccf1b3b68e919f40c23ef13b00ebcc639b1d9c2f81fe86415bff3e8eccffec459786c9ac9dc8f3a19cfa4484206c411c1d7d + languageName: node + linkType: hard + +"is-map@npm:^2.0.1, is-map@npm:^2.0.2": + version: 2.0.2 + resolution: "is-map@npm:2.0.2" + checksum: ace3d0ecd667bbdefdb1852de601268f67f2db725624b1958f279316e13fecb8fa7df91fd60f690d7417b4ec180712f5a7ee967008e27c65cfd475cc84337728 + languageName: node + linkType: hard + +"is-negative-zero@npm:^2.0.2": + version: 2.0.2 + resolution: "is-negative-zero@npm:2.0.2" + checksum: f3232194c47a549da60c3d509c9a09be442507616b69454716692e37ae9f37c4dea264fb208ad0c9f3efd15a796a46b79df07c7e53c6227c32170608b809149a + languageName: node + linkType: hard + +"is-number-object@npm:^1.0.4": + version: 1.0.7 + resolution: "is-number-object@npm:1.0.7" + dependencies: + has-tostringtag: ^1.0.0 + checksum: d1e8d01bb0a7134c74649c4e62da0c6118a0bfc6771ea3c560914d52a627873e6920dd0fd0ebc0e12ad2ff4687eac4c308f7e80320b973b2c8a2c8f97a7524f7 + languageName: node + linkType: hard + +"is-number@npm:^7.0.0": + version: 7.0.0 + resolution: "is-number@npm:7.0.0" + checksum: 456ac6f8e0f3111ed34668a624e45315201dff921e5ac181f8ec24923b99e9f32ca1a194912dc79d539c97d33dba17dc635202ff0b2cf98326f608323276d27a + languageName: node + linkType: hard + +"is-path-inside@npm:^3.0.3": + version: 3.0.3 + resolution: "is-path-inside@npm:3.0.3" + checksum: abd50f06186a052b349c15e55b182326f1936c89a78bf6c8f2b707412517c097ce04bc49a0ca221787bc44e1049f51f09a2ffb63d22899051988d3a618ba13e9 + languageName: node + linkType: hard + +"is-plain-obj@npm:^4.0.0": + version: 4.1.0 + resolution: "is-plain-obj@npm:4.1.0" + checksum: 6dc45da70d04a81f35c9310971e78a6a3c7a63547ef782e3a07ee3674695081b6ca4e977fbb8efc48dae3375e0b34558d2bcd722aec9bddfa2d7db5b041be8ce + languageName: node + linkType: hard + +"is-regex@npm:^1.1.4": + version: 1.1.4 + resolution: "is-regex@npm:1.1.4" + dependencies: + call-bind: ^1.0.2 + has-tostringtag: ^1.0.0 + checksum: 362399b33535bc8f386d96c45c9feb04cf7f8b41c182f54174c1a45c9abbbe5e31290bbad09a458583ff6bf3b2048672cdb1881b13289569a7c548370856a652 + languageName: node + linkType: hard + +"is-relative@npm:^1.0.0": + version: 1.0.0 + resolution: "is-relative@npm:1.0.0" + dependencies: + is-unc-path: ^1.0.0 + checksum: 3271a0df109302ef5e14a29dcd5d23d9788e15ade91a40b942b035827ffbb59f7ce9ff82d036ea798541a52913cbf9d2d0b66456340887b51f3542d57b5a4c05 + languageName: node + linkType: hard + +"is-set@npm:^2.0.1, is-set@npm:^2.0.2": + version: 2.0.2 + resolution: "is-set@npm:2.0.2" + checksum: b64343faf45e9387b97a6fd32be632ee7b269bd8183701f3b3f5b71a7cf00d04450ed8669d0bd08753e08b968beda96fca73a10fd0ff56a32603f64deba55a57 + languageName: node + linkType: hard + +"is-shared-array-buffer@npm:^1.0.2": + version: 1.0.2 + resolution: "is-shared-array-buffer@npm:1.0.2" + dependencies: + call-bind: ^1.0.2 + checksum: 9508929cf14fdc1afc9d61d723c6e8d34f5e117f0bffda4d97e7a5d88c3a8681f633a74f8e3ad1fe92d5113f9b921dc5ca44356492079612f9a247efbce7032a + languageName: node + linkType: hard + +"is-string@npm:^1.0.5, is-string@npm:^1.0.7": + version: 1.0.7 + resolution: "is-string@npm:1.0.7" + dependencies: + has-tostringtag: ^1.0.0 + checksum: 323b3d04622f78d45077cf89aab783b2f49d24dc641aa89b5ad1a72114cfeff2585efc8c12ef42466dff32bde93d839ad321b26884cf75e5a7892a938b089989 + languageName: node + linkType: hard + +"is-symbol@npm:^1.0.2, is-symbol@npm:^1.0.3": + version: 1.0.4 + resolution: "is-symbol@npm:1.0.4" + dependencies: + has-symbols: ^1.0.2 + checksum: 92805812ef590738d9de49d677cd17dfd486794773fb6fa0032d16452af46e9b91bb43ffe82c983570f015b37136f4b53b28b8523bfb10b0ece7a66c31a54510 + languageName: node + linkType: hard + +"is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.9": + version: 1.1.10 + resolution: "is-typed-array@npm:1.1.10" + dependencies: + available-typed-arrays: ^1.0.5 + call-bind: ^1.0.2 + for-each: ^0.3.3 + gopd: ^1.0.1 + has-tostringtag: ^1.0.0 + checksum: aac6ecb59d4c56a1cdeb69b1f129154ef462bbffe434cb8a8235ca89b42f258b7ae94073c41b3cb7bce37f6a1733ad4499f07882d5d5093a7ba84dfc4ebb8017 + languageName: node + linkType: hard + +"is-unc-path@npm:^1.0.0": + version: 1.0.0 + resolution: "is-unc-path@npm:1.0.0" + dependencies: + unc-path-regex: ^0.1.2 + checksum: e8abfde203f7409f5b03a5f1f8636e3a41e78b983702ef49d9343eb608cdfe691429398e8815157519b987b739bcfbc73ae7cf4c8582b0ab66add5171088eab6 + languageName: node + linkType: hard + +"is-unicode-supported@npm:^0.1.0": + version: 0.1.0 + resolution: "is-unicode-supported@npm:0.1.0" + checksum: a2aab86ee7712f5c2f999180daaba5f361bdad1efadc9610ff5b8ab5495b86e4f627839d085c6530363c6d6d4ecbde340fb8e54bdb83da4ba8e0865ed5513c52 + languageName: node + linkType: hard + +"is-upper-case@npm:^2.0.2": + version: 2.0.2 + resolution: "is-upper-case@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: cf4fd43c00c2e72cd5cff911923070b89f0933b464941bd782e2315385f80b5a5acd772db3b796542e5e3cfed735f4dffd88c54d62db1ebfc5c3daa7b1af2bc6 + languageName: node + linkType: hard + +"is-weakmap@npm:^2.0.1": + version: 2.0.1 + resolution: "is-weakmap@npm:2.0.1" + checksum: 1222bb7e90c32bdb949226e66d26cb7bce12e1e28e3e1b40bfa6b390ba3e08192a8664a703dff2a00a84825f4e022f9cd58c4599ff9981ab72b1d69479f4f7f6 + languageName: node + linkType: hard + +"is-weakref@npm:^1.0.2": + version: 1.0.2 + resolution: "is-weakref@npm:1.0.2" + dependencies: + call-bind: ^1.0.2 + checksum: 95bd9a57cdcb58c63b1c401c60a474b0f45b94719c30f548c891860f051bc2231575c290a6b420c6bc6e7ed99459d424c652bd5bf9a1d5259505dc35b4bf83de + languageName: node + linkType: hard + +"is-weakset@npm:^2.0.1": + version: 2.0.2 + resolution: "is-weakset@npm:2.0.2" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.1.1 + checksum: 5d8698d1fa599a0635d7ca85be9c26d547b317ed8fd83fc75f03efbe75d50001b5eececb1e9971de85fcde84f69ae6f8346bc92d20d55d46201d328e4c74a367 + languageName: node + linkType: hard + +"is-windows@npm:^1.0.1": + version: 1.0.2 + resolution: "is-windows@npm:1.0.2" + checksum: 438b7e52656fe3b9b293b180defb4e448088e7023a523ec21a91a80b9ff8cdb3377ddb5b6e60f7c7de4fa8b63ab56e121b6705fe081b3cf1b828b0a380009ad7 + languageName: node + linkType: hard + +"isarray@npm:^2.0.5": + version: 2.0.5 + resolution: "isarray@npm:2.0.5" + checksum: bd5bbe4104438c4196ba58a54650116007fa0262eccef13a4c55b2e09a5b36b59f1e75b9fcc49883dd9d4953892e6fc007eef9e9155648ceea036e184b0f930a + languageName: node + linkType: hard + +"isexe@npm:^2.0.0": + version: 2.0.0 + resolution: "isexe@npm:2.0.0" + checksum: 26bf6c5480dda5161c820c5b5c751ae1e766c587b1f951ea3fcfc973bafb7831ae5b54a31a69bd670220e42e99ec154475025a468eae58ea262f813fdc8d1c62 + languageName: node + linkType: hard + +"isomorphic-fetch@npm:^3.0.0": + version: 3.0.0 + resolution: "isomorphic-fetch@npm:3.0.0" + dependencies: + node-fetch: ^2.6.1 + whatwg-fetch: ^3.4.1 + checksum: e5ab79a56ce5af6ddd21265f59312ad9a4bc5a72cebc98b54797b42cb30441d5c5f8d17c5cd84a99e18101c8af6f90c081ecb8d12fd79e332be1778d58486d75 + languageName: node + linkType: hard + +"isomorphic-ws@npm:5.0.0, isomorphic-ws@npm:^5.0.0": + version: 5.0.0 + resolution: "isomorphic-ws@npm:5.0.0" + peerDependencies: + ws: "*" + checksum: e20eb2aee09ba96247465fda40c6d22c1153394c0144fa34fe6609f341af4c8c564f60ea3ba762335a7a9c306809349f9b863c8beedf2beea09b299834ad5398 + languageName: node + linkType: hard + +"iterall@npm:^1.2.2": + version: 1.3.0 + resolution: "iterall@npm:1.3.0" + checksum: c78b99678f8c99be488cca7f33e4acca9b72c1326e050afbaf023f086e55619ee466af0464af94a0cb3f292e60cb5bac53a8fd86bd4249ecad26e09f17bb158b + languageName: node + linkType: hard + +"jiti@npm:1.17.1": + version: 1.17.1 + resolution: "jiti@npm:1.17.1" + bin: + jiti: bin/jiti.js + checksum: 56c6d8488e7e9cc6ee66a0f0d5e18db6669cb12b2e93364f393442289a9bc75a8e8c796249f59015e01c3ebdf9478e2ca8b76c30e29072c678ee00d39de757c7 + languageName: node + linkType: hard + +"jiti@npm:^1.17.1": + version: 1.18.2 + resolution: "jiti@npm:1.18.2" + bin: + jiti: bin/jiti.js + checksum: 46c41cd82d01c6efdee3fc0ae9b3e86ed37457192d6366f19157d863d64961b07982ab04e9d5879576a1af99cc4d132b0b73b336094f86a5ce9fb1029ec2d29f + languageName: node + linkType: hard + +"jose@npm:^4.11.4": + version: 4.13.1 + resolution: "jose@npm:4.13.1" + checksum: 89be959573beee69bd443493887d78799fd42340b45afa2c6681beda30314bcdfa5575f6977203c199e4c3e0ec2fc18d3c94745e7f0d59db51dedfae0efee63d + languageName: node + linkType: hard + +"js-sdsl@npm:^4.1.4": + version: 4.3.0 + resolution: "js-sdsl@npm:4.3.0" + checksum: ce908257cf6909e213af580af3a691a736f5ee8b16315454768f917a682a4ea0c11bde1b241bbfaecedc0eb67b72101b2c2df2ffaed32aed5d539fca816f054e + languageName: node + linkType: hard + +"js-tokens@npm:^3.0.0 || ^4.0.0, js-tokens@npm:^4.0.0": + version: 4.0.0 + resolution: "js-tokens@npm:4.0.0" + checksum: 8a95213a5a77deb6cbe94d86340e8d9ace2b93bc367790b260101d2f36a2eaf4e4e22d9fa9cf459b38af3a32fb4190e638024cf82ec95ef708680e405ea7cc78 + languageName: node + linkType: hard + +"js-yaml@npm:^4.0.0, js-yaml@npm:^4.1.0": + version: 4.1.0 + resolution: "js-yaml@npm:4.1.0" + dependencies: + argparse: ^2.0.1 + bin: + js-yaml: bin/js-yaml.js + checksum: c7830dfd456c3ef2c6e355cc5a92e6700ceafa1d14bba54497b34a99f0376cecbb3e9ac14d3e5849b426d5a5140709a66237a8c991c675431271c4ce5504151a + languageName: node + linkType: hard + +"jsesc@npm:^2.5.1": + version: 2.5.2 + resolution: "jsesc@npm:2.5.2" + bin: + jsesc: bin/jsesc + checksum: 4dc190771129e12023f729ce20e1e0bfceac84d73a85bc3119f7f938843fe25a4aeccb54b6494dce26fcf263d815f5f31acdefac7cc9329efb8422a4f4d9fa9d + languageName: node + linkType: hard + +"jsesc@npm:~0.5.0": + version: 0.5.0 + resolution: "jsesc@npm:0.5.0" + bin: + jsesc: bin/jsesc + checksum: b8b44cbfc92f198ad972fba706ee6a1dfa7485321ee8c0b25f5cedd538dcb20cde3197de16a7265430fce8277a12db066219369e3d51055038946039f6e20e17 + languageName: node + linkType: hard + +"json-parse-even-better-errors@npm:^2.3.0": + version: 2.3.1 + resolution: "json-parse-even-better-errors@npm:2.3.1" + checksum: 798ed4cf3354a2d9ccd78e86d2169515a0097a5c133337807cdf7f1fc32e1391d207ccfc276518cc1d7d8d4db93288b8a50ba4293d212ad1336e52a8ec0a941f + languageName: node + linkType: hard + +"json-schema-traverse@npm:^0.4.1": + version: 0.4.1 + resolution: "json-schema-traverse@npm:0.4.1" + checksum: 7486074d3ba247769fda17d5181b345c9fb7d12e0da98b22d1d71a5db9698d8b4bd900a3ec1a4ffdd60846fc2556274a5c894d0c48795f14cb03aeae7b55260b + languageName: node + linkType: hard + +"json-stable-stringify-without-jsonify@npm:^1.0.1": + version: 1.0.1 + resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" + checksum: cff44156ddce9c67c44386ad5cddf91925fe06b1d217f2da9c4910d01f358c6e3989c4d5a02683c7a5667f9727ff05831f7aa8ae66c8ff691c556f0884d49215 + languageName: node + linkType: hard + +"json-stable-stringify@npm:^1.0.1": + version: 1.0.2 + resolution: "json-stable-stringify@npm:1.0.2" + dependencies: + jsonify: ^0.0.1 + checksum: ec10863493fb728481ed7576551382768a173d5b884758db530def00523b862083a3fd70fee24b39e2f47f5f502e22f9a1489dd66da3535b63bf6241dbfca800 + languageName: node + linkType: hard + +"json-to-pretty-yaml@npm:^1.2.2": + version: 1.2.2 + resolution: "json-to-pretty-yaml@npm:1.2.2" + dependencies: + remedial: ^1.0.7 + remove-trailing-spaces: ^1.0.6 + checksum: 4b78480f426e176e5fdac073e05877683bb026f1175deb52d0941b992f9c91a58a812c020f00aa67ba1fc7cadb220539a264146f222e48a48c8bb2a0931cac9b + languageName: node + linkType: hard + +"json5@npm:^1.0.2": + version: 1.0.2 + resolution: "json5@npm:1.0.2" + dependencies: + minimist: ^1.2.0 + bin: + json5: lib/cli.js + checksum: 866458a8c58a95a49bef3adba929c625e82532bcff1fe93f01d29cb02cac7c3fe1f4b79951b7792c2da9de0b32871a8401a6e3c5b36778ad852bf5b8a61165d7 + languageName: node + linkType: hard + +"json5@npm:^2.2.2": + version: 2.2.3 + resolution: "json5@npm:2.2.3" + bin: + json5: lib/cli.js + checksum: 2a7436a93393830bce797d4626275152e37e877b265e94ca69c99e3d20c2b9dab021279146a39cdb700e71b2dd32a4cebd1514cd57cee102b1af906ce5040349 + languageName: node + linkType: hard + +"jsonify@npm:^0.0.1": + version: 0.0.1 + resolution: "jsonify@npm:0.0.1" + checksum: 027287e1c0294fce15f18c0ff990cfc2318e7f01fb76515f784d5cd0784abfec6fc5c2355c3a2f2cb0ad7f4aa2f5b74ebbfe4e80476c35b2d13cabdb572e1134 + languageName: node + linkType: hard + +"jsx-ast-utils@npm:^2.4.1 || ^3.0.0, jsx-ast-utils@npm:^3.3.3": + version: 3.3.3 + resolution: "jsx-ast-utils@npm:3.3.3" + dependencies: + array-includes: ^3.1.5 + object.assign: ^4.1.3 + checksum: a2ed78cac49a0f0c4be8b1eafe3c5257a1411341d8e7f1ac740debae003de04e5f6372bfcfbd9d082e954ffd99aac85bcda85b7c6bc11609992483f4cdc0f745 + languageName: node + linkType: hard + +"kleur@npm:^4.0.3": + version: 4.1.5 + resolution: "kleur@npm:4.1.5" + checksum: 1dc476e32741acf0b1b5b0627ffd0d722e342c1b0da14de3e8ae97821327ca08f9fb944542fb3c126d90ac5f27f9d804edbe7c585bf7d12ef495d115e0f22c12 + languageName: node + linkType: hard + +"language-subtag-registry@npm:~0.3.2": + version: 0.3.22 + resolution: "language-subtag-registry@npm:0.3.22" + checksum: 8ab70a7e0e055fe977ac16ea4c261faec7205ac43db5e806f72e5b59606939a3b972c4bd1e10e323b35d6ffa97c3e1c4c99f6553069dad2dfdd22020fa3eb56a + languageName: node + linkType: hard + +"language-tags@npm:=1.0.5": + version: 1.0.5 + resolution: "language-tags@npm:1.0.5" + dependencies: + language-subtag-registry: ~0.3.2 + checksum: c81b5d8b9f5f9cfd06ee71ada6ddfe1cf83044dd5eeefcd1e420ad491944da8957688db4a0a9bc562df4afdc2783425cbbdfd152c01d93179cf86888903123cf + languageName: node + linkType: hard + +"levn@npm:^0.4.1": + version: 0.4.1 + resolution: "levn@npm:0.4.1" + dependencies: + prelude-ls: ^1.2.1 + type-check: ~0.4.0 + checksum: 12c5021c859bd0f5248561bf139121f0358285ec545ebf48bb3d346820d5c61a4309535c7f387ed7d84361cf821e124ce346c6b7cef8ee09a67c1473b46d0fc4 + languageName: node + linkType: hard + +"lines-and-columns@npm:^1.1.6": + version: 1.2.4 + resolution: "lines-and-columns@npm:1.2.4" + checksum: 0c37f9f7fa212b38912b7145e1cd16a5f3cd34d782441c3e6ca653485d326f58b3caccda66efce1c5812bde4961bbde3374fae4b0d11bf1226152337f3894aa5 + languageName: node + linkType: hard + +"listr2@npm:^4.0.5": + version: 4.0.5 + resolution: "listr2@npm:4.0.5" + dependencies: + cli-truncate: ^2.1.0 + colorette: ^2.0.16 + log-update: ^4.0.0 + p-map: ^4.0.0 + rfdc: ^1.3.0 + rxjs: ^7.5.5 + through: ^2.3.8 + wrap-ansi: ^7.0.0 + peerDependencies: + enquirer: ">= 2.3.0 < 3" + peerDependenciesMeta: + enquirer: + optional: true + checksum: 7af31851abe25969ef0581c6db808117e36af15b131401795182427769d9824f451ba9e8aff6ccd25b6a4f6c8796f816292caf08e5f1f9b1775e8e9c313dc6c5 + languageName: node + linkType: hard + +"locate-path@npm:^5.0.0": + version: 5.0.0 + resolution: "locate-path@npm:5.0.0" + dependencies: + p-locate: ^4.1.0 + checksum: 83e51725e67517287d73e1ded92b28602e3ae5580b301fe54bfb76c0c723e3f285b19252e375712316774cf52006cb236aed5704692c32db0d5d089b69696e30 + languageName: node + linkType: hard + +"locate-path@npm:^6.0.0": + version: 6.0.0 + resolution: "locate-path@npm:6.0.0" + dependencies: + p-locate: ^5.0.0 + checksum: 72eb661788a0368c099a184c59d2fee760b3831c9c1c33955e8a19ae4a21b4116e53fa736dc086cdeb9fce9f7cc508f2f92d2d3aae516f133e16a2bb59a39f5a + languageName: node + linkType: hard + +"lodash.debounce@npm:^4.0.8": + version: 4.0.8 + resolution: "lodash.debounce@npm:4.0.8" + checksum: a3f527d22c548f43ae31c861ada88b2637eb48ac6aa3eb56e82d44917971b8aa96fbb37aa60efea674dc4ee8c42074f90f7b1f772e9db375435f6c83a19b3bc6 + languageName: node + linkType: hard + +"lodash.merge@npm:^4.6.2": + version: 4.6.2 + resolution: "lodash.merge@npm:4.6.2" + checksum: ad580b4bdbb7ca1f7abf7e1bce63a9a0b98e370cf40194b03380a46b4ed799c9573029599caebc1b14e3f24b111aef72b96674a56cfa105e0f5ac70546cdc005 + languageName: node + linkType: hard + +"lodash.mergewith@npm:^4.6.2": + version: 4.6.2 + resolution: "lodash.mergewith@npm:4.6.2" + checksum: a6db2a9339752411f21b956908c404ec1e088e783a65c8b29e30ae5b3b6384f82517662d6f425cc97c2070b546cc2c7daaa8d33f78db7b6e9be06cd834abdeb8 + languageName: node + linkType: hard + +"lodash@npm:4.17.21, lodash@npm:^4.17.11, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:~4.17.0": + version: 4.17.21 + resolution: "lodash@npm:4.17.21" + checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 + languageName: node + linkType: hard + +"log-symbols@npm:^4.0.0, log-symbols@npm:^4.1.0": + version: 4.1.0 + resolution: "log-symbols@npm:4.1.0" + dependencies: + chalk: ^4.1.0 + is-unicode-supported: ^0.1.0 + checksum: fce1497b3135a0198803f9f07464165e9eb83ed02ceb2273930a6f8a508951178d8cf4f0378e9d28300a2ed2bc49050995d2bd5f53ab716bb15ac84d58c6ef74 + languageName: node + linkType: hard + +"log-update@npm:^4.0.0": + version: 4.0.0 + resolution: "log-update@npm:4.0.0" + dependencies: + ansi-escapes: ^4.3.0 + cli-cursor: ^3.1.0 + slice-ansi: ^4.0.0 + wrap-ansi: ^6.2.0 + checksum: ae2f85bbabc1906034154fb7d4c4477c79b3e703d22d78adee8b3862fa913942772e7fa11713e3d96fb46de4e3cabefbf5d0a544344f03b58d3c4bff52aa9eb2 + languageName: node + linkType: hard + +"loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0": + version: 1.4.0 + resolution: "loose-envify@npm:1.4.0" + dependencies: + js-tokens: ^3.0.0 || ^4.0.0 + bin: + loose-envify: cli.js + checksum: 6517e24e0cad87ec9888f500c5b5947032cdfe6ef65e1c1936a0c48a524b81e65542c9c3edc91c97d5bddc806ee2a985dbc79be89215d613b1de5db6d1cfe6f4 + languageName: node + linkType: hard + +"lower-case-first@npm:^2.0.2": + version: 2.0.2 + resolution: "lower-case-first@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: 33e3da1098ddda219ce125d4ab7a78a944972c0ee8872e95b6ccc35df8ad405284ab233b0ba4d72315ad1a06fe2f0d418ee4cba9ec1ef1c386dea78899fc8958 + languageName: node + linkType: hard + +"lower-case@npm:^2.0.2": + version: 2.0.2 + resolution: "lower-case@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: 83a0a5f159ad7614bee8bf976b96275f3954335a84fad2696927f609ddae902802c4f3312d86668722e668bef41400254807e1d3a7f2e8c3eede79691aa1f010 + languageName: node + linkType: hard + +"lru-cache@npm:^5.1.1": + version: 5.1.1 + resolution: "lru-cache@npm:5.1.1" + dependencies: + yallist: ^3.0.2 + checksum: c154ae1cbb0c2206d1501a0e94df349653c92c8cbb25236d7e85190bcaf4567a03ac6eb43166fabfa36fd35623694da7233e88d9601fbf411a9a481d85dbd2cb + languageName: node + linkType: hard + +"lru-cache@npm:^6.0.0": + version: 6.0.0 + resolution: "lru-cache@npm:6.0.0" + dependencies: + yallist: ^4.0.0 + checksum: f97f499f898f23e4585742138a22f22526254fdba6d75d41a1c2526b3b6cc5747ef59c5612ba7375f42aca4f8461950e925ba08c991ead0651b4918b7c978297 + languageName: node + linkType: hard + +"lru-cache@npm:^7.7.1": + version: 7.18.3 + resolution: "lru-cache@npm:7.18.3" + checksum: e550d772384709deea3f141af34b6d4fa392e2e418c1498c078de0ee63670f1f46f5eee746e8ef7e69e1c895af0d4224e62ee33e66a543a14763b0f2e74c1356 + languageName: node + linkType: hard + +"magic-string@npm:^0.27.0": + version: 0.27.0 + resolution: "magic-string@npm:0.27.0" + dependencies: + "@jridgewell/sourcemap-codec": ^1.4.13 + checksum: 273faaa50baadb7a2df6e442eac34ad611304fc08fe16e24fe2e472fd944bfcb73ffb50d2dc972dc04e92784222002af46868cb9698b1be181c81830fd95a13e + languageName: node + linkType: hard + +"make-fetch-happen@npm:^10.0.3": + version: 10.2.1 + resolution: "make-fetch-happen@npm:10.2.1" + dependencies: + agentkeepalive: ^4.2.1 + cacache: ^16.1.0 + http-cache-semantics: ^4.1.0 + http-proxy-agent: ^5.0.0 + https-proxy-agent: ^5.0.0 + is-lambda: ^1.0.1 + lru-cache: ^7.7.1 + minipass: ^3.1.6 + minipass-collect: ^1.0.2 + minipass-fetch: ^2.0.3 + minipass-flush: ^1.0.5 + minipass-pipeline: ^1.2.4 + negotiator: ^0.6.3 + promise-retry: ^2.0.1 + socks-proxy-agent: ^7.0.0 + ssri: ^9.0.0 + checksum: 2332eb9a8ec96f1ffeeea56ccefabcb4193693597b132cd110734d50f2928842e22b84cfa1508e921b8385cdfd06dda9ad68645fed62b50fff629a580f5fb72c + languageName: node + linkType: hard + +"map-cache@npm:^0.2.0": + version: 0.2.2 + resolution: "map-cache@npm:0.2.2" + checksum: 3067cea54285c43848bb4539f978a15dedc63c03022abeec6ef05c8cb6829f920f13b94bcaf04142fc6a088318e564c4785704072910d120d55dbc2e0c421969 + languageName: node + linkType: hard + +"markdown-to-jsx@npm:^7.1.5": + version: 7.2.0 + resolution: "markdown-to-jsx@npm:7.2.0" + peerDependencies: + react: ">= 0.14.0" + checksum: ea417e684d7eec9f1beebc9423aba377116ef77c3cd83a2d622df1b9030ffef99aa9b3f431192b94f3237943a33560e6dda9be8a4c1d25187518d09986dad22f + languageName: node + linkType: hard + +"mdast-util-definitions@npm:^5.0.0": + version: 5.1.2 + resolution: "mdast-util-definitions@npm:5.1.2" + dependencies: + "@types/mdast": ^3.0.0 + "@types/unist": ^2.0.0 + unist-util-visit: ^4.0.0 + checksum: 2544daccab744ea1ede76045c2577ae4f1cc1b9eb1ea51ab273fe1dca8db5a8d6f50f87759c0ce6484975914b144b7f40316f805cb9c86223a78db8de0b77bae + languageName: node + linkType: hard + +"mdast-util-from-markdown@npm:^1.0.0": + version: 1.3.0 + resolution: "mdast-util-from-markdown@npm:1.3.0" + dependencies: + "@types/mdast": ^3.0.0 + "@types/unist": ^2.0.0 + decode-named-character-reference: ^1.0.0 + mdast-util-to-string: ^3.1.0 + micromark: ^3.0.0 + micromark-util-decode-numeric-character-reference: ^1.0.0 + micromark-util-decode-string: ^1.0.0 + micromark-util-normalize-identifier: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + unist-util-stringify-position: ^3.0.0 + uvu: ^0.5.0 + checksum: cc971d1ad381150f6504fd753fbcffcc64c0abb527540ce343625c2bba76104505262122ef63d14ab66eb47203f323267017c6d09abfa8535ee6a8e14069595f + languageName: node + linkType: hard + +"mdast-util-to-hast@npm:^12.1.0": + version: 12.3.0 + resolution: "mdast-util-to-hast@npm:12.3.0" + dependencies: + "@types/hast": ^2.0.0 + "@types/mdast": ^3.0.0 + mdast-util-definitions: ^5.0.0 + micromark-util-sanitize-uri: ^1.1.0 + trim-lines: ^3.0.0 + unist-util-generated: ^2.0.0 + unist-util-position: ^4.0.0 + unist-util-visit: ^4.0.0 + checksum: ea40c9f07dd0b731754434e81c913590c611b1fd753fa02550a1492aadfc30fb3adecaf62345ebb03cea2ddd250c15ab6e578fffde69c19955c9b87b10f2a9bb + languageName: node + linkType: hard + +"mdast-util-to-string@npm:^3.1.0": + version: 3.1.1 + resolution: "mdast-util-to-string@npm:3.1.1" + dependencies: + "@types/mdast": ^3.0.0 + checksum: 5e9375e1757ebf2950e122ef3538e4257ed2b6f43ab1d3e9c45db5dd5d5b5d14fd041490afcde00934f1cdb4b99877597ae04eb810d313ec7b38c6009058dddd + languageName: node + linkType: hard + +"merge2@npm:^1.3.0, merge2@npm:^1.4.1": + version: 1.4.1 + resolution: "merge2@npm:1.4.1" + checksum: 7268db63ed5169466540b6fb947aec313200bcf6d40c5ab722c22e242f651994619bcd85601602972d3c85bd2cc45a358a4c61937e9f11a061919a1da569b0c2 + languageName: node + linkType: hard + +"meros@npm:^1.2.1": + version: 1.2.1 + resolution: "meros@npm:1.2.1" + peerDependencies: + "@types/node": ">=13" + peerDependenciesMeta: + "@types/node": + optional: true + checksum: 2201c3f7c58ad2a5b5f7d6b1c644d79bde513e25cb64b51a8c41381ec74bc02cd3423425e34f60c96bf3991f1ec51d65dc8b8e3354cbb060cc9f8226b4666a5a + languageName: node + linkType: hard + +"micromark-core-commonmark@npm:^1.0.1": + version: 1.0.6 + resolution: "micromark-core-commonmark@npm:1.0.6" + dependencies: + decode-named-character-reference: ^1.0.0 + micromark-factory-destination: ^1.0.0 + micromark-factory-label: ^1.0.0 + micromark-factory-space: ^1.0.0 + micromark-factory-title: ^1.0.0 + micromark-factory-whitespace: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-chunked: ^1.0.0 + micromark-util-classify-character: ^1.0.0 + micromark-util-html-tag-name: ^1.0.0 + micromark-util-normalize-identifier: ^1.0.0 + micromark-util-resolve-all: ^1.0.0 + micromark-util-subtokenize: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.1 + uvu: ^0.5.0 + checksum: 4b483c46077f696ed310f6d709bb9547434c218ceb5c1220fde1707175f6f68b44da15ab8668f9c801e1a123210071e3af883a7d1215122c913fd626f122bfc2 + languageName: node + linkType: hard + +"micromark-factory-destination@npm:^1.0.0": + version: 1.0.0 + resolution: "micromark-factory-destination@npm:1.0.0" + dependencies: + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: 8e733ae9c1c2342f14ff290bf09946e20f6f540117d80342377a765cac48df2ea5e748f33c8b07501ad7a43414b1a6597c8510ede2052b6bf1251fab89748e20 + languageName: node + linkType: hard + +"micromark-factory-label@npm:^1.0.0": + version: 1.0.2 + resolution: "micromark-factory-label@npm:1.0.2" + dependencies: + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + uvu: ^0.5.0 + checksum: 957e9366bdc8dbc1437c0706ff96972fa985ab4b1274abcae12f6094f527cbf5c69e7f2304c23c7f4b96e311ff7911d226563b8b43dcfcd4091e8c985fb97ce6 + languageName: node + linkType: hard + +"micromark-factory-space@npm:^1.0.0": + version: 1.0.0 + resolution: "micromark-factory-space@npm:1.0.0" + dependencies: + micromark-util-character: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: 70d3aafde4e68ef4e509a3b644e9a29e4aada00801279e346577b008cbca06d78051bcd62aa7ea7425856ed73f09abd2b36607803055f726f52607ee7cb706b0 + languageName: node + linkType: hard + +"micromark-factory-title@npm:^1.0.0": + version: 1.0.2 + resolution: "micromark-factory-title@npm:1.0.2" + dependencies: + micromark-factory-space: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + uvu: ^0.5.0 + checksum: 9a9cf66babde0bad1e25d6c1087082bfde6dfc319a36cab67c89651cc1a53d0e21cdec83262b5a4c33bff49f0e3c8dc2a7bd464e991d40dbea166a8f9b37e5b2 + languageName: node + linkType: hard + +"micromark-factory-whitespace@npm:^1.0.0": + version: 1.0.0 + resolution: "micromark-factory-whitespace@npm:1.0.0" + dependencies: + micromark-factory-space: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: 0888386e6ea2dd665a5182c570d9b3d0a172d3f11694ca5a2a84e552149c9f1429f5b975ec26e1f0fa4388c55a656c9f359ce5e0603aff6175ba3e255076f20b + languageName: node + linkType: hard + +"micromark-util-character@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-character@npm:1.1.0" + dependencies: + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: 504a4e3321f69bddf3fec9f0c1058239fc23336bda5be31d532b150491eda47965a251b37f8a7a9db0c65933b3aaa49cf88044fb1028be3af7c5ee6212bf8d5f + languageName: node + linkType: hard + +"micromark-util-chunked@npm:^1.0.0": + version: 1.0.0 + resolution: "micromark-util-chunked@npm:1.0.0" + dependencies: + micromark-util-symbol: ^1.0.0 + checksum: c1efd56e8c4217bcf1c6f1a9fb9912b4a2a5503b00d031da902be922fb3fee60409ac53f11739991291357b2784fb0647ddfc74c94753a068646c0cb0fd71421 + languageName: node + linkType: hard + +"micromark-util-classify-character@npm:^1.0.0": + version: 1.0.0 + resolution: "micromark-util-classify-character@npm:1.0.0" + dependencies: + micromark-util-character: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: 180446e6a1dec653f625ded028f244784e1db8d10ad05c5d70f08af9de393b4a03dc6cf6fa5ed8ccc9c24bbece7837abf3bf66681c0b4adf159364b7d5236dfd + languageName: node + linkType: hard + +"micromark-util-combine-extensions@npm:^1.0.0": + version: 1.0.0 + resolution: "micromark-util-combine-extensions@npm:1.0.0" + dependencies: + micromark-util-chunked: ^1.0.0 + micromark-util-types: ^1.0.0 + checksum: 5304a820ef75340e1be69d6ad167055b6ba9a3bafe8171e5945a935752f462415a9dd61eb3490220c055a8a11167209a45bfa73f278338b7d3d61fa1464d3f35 + languageName: node + linkType: hard + +"micromark-util-decode-numeric-character-reference@npm:^1.0.0": + version: 1.0.0 + resolution: "micromark-util-decode-numeric-character-reference@npm:1.0.0" + dependencies: + micromark-util-symbol: ^1.0.0 + checksum: f3ae2bb582a80f1e9d3face026f585c0c472335c064bd850bde152376f0394cb2831746749b6be6e0160f7d73626f67d10716026c04c87f402c0dd45a1a28633 + languageName: node + linkType: hard + +"micromark-util-decode-string@npm:^1.0.0": + version: 1.0.2 + resolution: "micromark-util-decode-string@npm:1.0.2" + dependencies: + decode-named-character-reference: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-decode-numeric-character-reference: ^1.0.0 + micromark-util-symbol: ^1.0.0 + checksum: 2dbb41c9691cc71505d39706405139fb7d6699429d577a524c7c248ac0cfd09d3dd212ad8e91c143a00b2896f26f81136edc67c5bda32d20446f0834d261b17a + languageName: node + linkType: hard + +"micromark-util-encode@npm:^1.0.0": + version: 1.0.1 + resolution: "micromark-util-encode@npm:1.0.1" + checksum: 9290583abfdc79ea3e7eb92c012c47a0e14327888f8aaa6f57ff79b3058d8e7743716b9d91abca3646f15ab3d78fdad9779fdb4ccf13349cd53309dfc845253a + languageName: node + linkType: hard + +"micromark-util-html-tag-name@npm:^1.0.0": + version: 1.1.0 + resolution: "micromark-util-html-tag-name@npm:1.1.0" + checksum: a9b783cec89ec813648d59799464c1950fe281ae797b2a965f98ad0167d7fa1a247718eff023b4c015f47211a172f9446b8e6b98aad50e3cd44a3337317dad2c + languageName: node + linkType: hard + +"micromark-util-normalize-identifier@npm:^1.0.0": + version: 1.0.0 + resolution: "micromark-util-normalize-identifier@npm:1.0.0" + dependencies: + micromark-util-symbol: ^1.0.0 + checksum: d7c09d5e8318fb72f194af72664bd84a48a2928e3550b2b21c8fbc0ec22524f2a72e0f6663d2b95dc189a6957d3d7759b60716e888909710767cd557be821f8b + languageName: node + linkType: hard + +"micromark-util-resolve-all@npm:^1.0.0": + version: 1.0.0 + resolution: "micromark-util-resolve-all@npm:1.0.0" + dependencies: + micromark-util-types: ^1.0.0 + checksum: 409667f2bd126ef8acce009270d2aecaaa5584c5807672bc657b09e50aa91bd2e552cf41e5be1e6469244a83349cbb71daf6059b746b1c44e3f35446fef63e50 + languageName: node + linkType: hard + +"micromark-util-sanitize-uri@npm:^1.0.0, micromark-util-sanitize-uri@npm:^1.1.0": + version: 1.1.0 + resolution: "micromark-util-sanitize-uri@npm:1.1.0" + dependencies: + micromark-util-character: ^1.0.0 + micromark-util-encode: ^1.0.0 + micromark-util-symbol: ^1.0.0 + checksum: fe6093faa0adeb8fad606184d927ce37f207dcc2ec7256438e7f273c8829686245dd6161b597913ef25a3c4fb61863d3612a40cb04cf15f83ba1b4087099996b + languageName: node + linkType: hard + +"micromark-util-subtokenize@npm:^1.0.0": + version: 1.0.2 + resolution: "micromark-util-subtokenize@npm:1.0.2" + dependencies: + micromark-util-chunked: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.0 + uvu: ^0.5.0 + checksum: c32ee58a7e1384ab1161a9ee02fbb04ad7b6e96d0b8c93dba9803c329a53d07f22ab394c7a96b2e30d6b8fbe3585b85817dba07277b1317111fc234e166bd2d1 + languageName: node + linkType: hard + +"micromark-util-symbol@npm:^1.0.0": + version: 1.0.1 + resolution: "micromark-util-symbol@npm:1.0.1" + checksum: c6a3023b3a7432c15864b5e33a1bcb5042ac7aa097f2f452e587bef45433d42d39e0a5cce12fbea91e0671098ba0c3f62a2b30ce1cde66ecbb5e8336acf4391d + languageName: node + linkType: hard + +"micromark-util-types@npm:^1.0.0, micromark-util-types@npm:^1.0.1": + version: 1.0.2 + resolution: "micromark-util-types@npm:1.0.2" + checksum: 08dc901b7c06ee3dfeb54befca05cbdab9525c1cf1c1080967c3878c9e72cb9856c7e8ff6112816e18ead36ce6f99d55aaa91560768f2f6417b415dcba1244df + languageName: node + linkType: hard + +"micromark@npm:^3.0.0": + version: 3.1.0 + resolution: "micromark@npm:3.1.0" + dependencies: + "@types/debug": ^4.0.0 + debug: ^4.0.0 + decode-named-character-reference: ^1.0.0 + micromark-core-commonmark: ^1.0.1 + micromark-factory-space: ^1.0.0 + micromark-util-character: ^1.0.0 + micromark-util-chunked: ^1.0.0 + micromark-util-combine-extensions: ^1.0.0 + micromark-util-decode-numeric-character-reference: ^1.0.0 + micromark-util-encode: ^1.0.0 + micromark-util-normalize-identifier: ^1.0.0 + micromark-util-resolve-all: ^1.0.0 + micromark-util-sanitize-uri: ^1.0.0 + micromark-util-subtokenize: ^1.0.0 + micromark-util-symbol: ^1.0.0 + micromark-util-types: ^1.0.1 + uvu: ^0.5.0 + checksum: 5fe5bc3bf92e2ddd37b5f0034080fc3a4d4b3c1130dd5e435bb96ec75e9453091272852e71a4d74906a8fcf992d6f79d794607657c534bda49941e9950a92e28 + languageName: node + linkType: hard + +"micromatch@npm:^4.0.4, micromatch@npm:^4.0.5": + version: 4.0.5 + resolution: "micromatch@npm:4.0.5" + dependencies: + braces: ^3.0.2 + picomatch: ^2.3.1 + checksum: 02a17b671c06e8fefeeb6ef996119c1e597c942e632a21ef589154f23898c9c6a9858526246abb14f8bca6e77734aa9dcf65476fca47cedfb80d9577d52843fc + languageName: node + linkType: hard + +"mime-db@npm:1.52.0": + version: 1.52.0 + resolution: "mime-db@npm:1.52.0" + checksum: 0d99a03585f8b39d68182803b12ac601d9c01abfa28ec56204fa330bc9f3d1c5e14beb049bafadb3dbdf646dfb94b87e24d4ec7b31b7279ef906a8ea9b6a513f + languageName: node + linkType: hard + +"mime-types@npm:^2.1.12": + version: 2.1.35 + resolution: "mime-types@npm:2.1.35" + dependencies: + mime-db: 1.52.0 + checksum: 89a5b7f1def9f3af5dad6496c5ed50191ae4331cc5389d7c521c8ad28d5fdad2d06fd81baf38fed813dc4e46bb55c8145bb0ff406330818c9cf712fb2e9b3836 + languageName: node + linkType: hard + +"mimic-fn@npm:^2.1.0": + version: 2.1.0 + resolution: "mimic-fn@npm:2.1.0" + checksum: d2421a3444848ce7f84bd49115ddacff29c15745db73f54041edc906c14b131a38d05298dae3081667627a59b2eb1ca4b436ff2e1b80f69679522410418b478a + languageName: node + linkType: hard + +"minimatch@npm:4.2.3": + version: 4.2.3 + resolution: "minimatch@npm:4.2.3" + dependencies: + brace-expansion: ^1.1.7 + checksum: 3392388e3ef7de7ae9a3a48d48a27a323934452f4af81b925dfbe85ce2dc07da855e3dbcc69229888be4e5118f6c0b79847d30f3e7c0e0017b25e423c11c0409 + languageName: node + linkType: hard + +"minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": + version: 3.1.2 + resolution: "minimatch@npm:3.1.2" + dependencies: + brace-expansion: ^1.1.7 + checksum: c154e566406683e7bcb746e000b84d74465b3a832c45d59912b9b55cd50dee66e5c4b1e5566dba26154040e51672f9aa450a9aef0c97cfc7336b78b7afb9540a + languageName: node + linkType: hard + +"minimatch@npm:^5.0.1": + version: 5.1.6 + resolution: "minimatch@npm:5.1.6" + dependencies: + brace-expansion: ^2.0.1 + checksum: 7564208ef81d7065a370f788d337cd80a689e981042cb9a1d0e6580b6c6a8c9279eba80010516e258835a988363f99f54a6f711a315089b8b42694f5da9d0d77 + languageName: node + linkType: hard + +"minimist@npm:^1.2.0, minimist@npm:^1.2.6": + version: 1.2.8 + resolution: "minimist@npm:1.2.8" + checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0 + languageName: node + linkType: hard + +"minipass-collect@npm:^1.0.2": + version: 1.0.2 + resolution: "minipass-collect@npm:1.0.2" + dependencies: + minipass: ^3.0.0 + checksum: 14df761028f3e47293aee72888f2657695ec66bd7d09cae7ad558da30415fdc4752bbfee66287dcc6fd5e6a2fa3466d6c484dc1cbd986525d9393b9523d97f10 + languageName: node + linkType: hard + +"minipass-fetch@npm:^2.0.3": + version: 2.1.2 + resolution: "minipass-fetch@npm:2.1.2" + dependencies: + encoding: ^0.1.13 + minipass: ^3.1.6 + minipass-sized: ^1.0.3 + minizlib: ^2.1.2 + dependenciesMeta: + encoding: + optional: true + checksum: 3f216be79164e915fc91210cea1850e488793c740534985da017a4cbc7a5ff50506956d0f73bb0cb60e4fe91be08b6b61ef35101706d3ef5da2c8709b5f08f91 + languageName: node + linkType: hard + +"minipass-flush@npm:^1.0.5": + version: 1.0.5 + resolution: "minipass-flush@npm:1.0.5" + dependencies: + minipass: ^3.0.0 + checksum: 56269a0b22bad756a08a94b1ffc36b7c9c5de0735a4dd1ab2b06c066d795cfd1f0ac44a0fcae13eece5589b908ecddc867f04c745c7009be0b566421ea0944cf + languageName: node + linkType: hard + +"minipass-pipeline@npm:^1.2.4": + version: 1.2.4 + resolution: "minipass-pipeline@npm:1.2.4" + dependencies: + minipass: ^3.0.0 + checksum: b14240dac0d29823c3d5911c286069e36d0b81173d7bdf07a7e4a91ecdef92cdff4baaf31ea3746f1c61e0957f652e641223970870e2353593f382112257971b + languageName: node + linkType: hard + +"minipass-sized@npm:^1.0.3": + version: 1.0.3 + resolution: "minipass-sized@npm:1.0.3" + dependencies: + minipass: ^3.0.0 + checksum: 79076749fcacf21b5d16dd596d32c3b6bf4d6e62abb43868fac21674078505c8b15eaca4e47ed844985a4514854f917d78f588fcd029693709417d8f98b2bd60 + languageName: node + linkType: hard + +"minipass@npm:^3.0.0, minipass@npm:^3.1.1, minipass@npm:^3.1.6": + version: 3.3.6 + resolution: "minipass@npm:3.3.6" + dependencies: + yallist: ^4.0.0 + checksum: a30d083c8054cee83cdcdc97f97e4641a3f58ae743970457b1489ce38ee1167b3aaf7d815cd39ec7a99b9c40397fd4f686e83750e73e652b21cb516f6d845e48 + languageName: node + linkType: hard + +"minipass@npm:^4.0.0": + version: 4.2.5 + resolution: "minipass@npm:4.2.5" + checksum: 4f9c19af23a5d4a9e7156feefc9110634b178a8cff8f8271af16ec5ebf7e221725a97429952c856f5b17b30c2065ebd24c81722d90c93d2122611d75b952b48f + languageName: node + linkType: hard + +"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": + version: 2.1.2 + resolution: "minizlib@npm:2.1.2" + dependencies: + minipass: ^3.0.0 + yallist: ^4.0.0 + checksum: f1fdeac0b07cf8f30fcf12f4b586795b97be856edea22b5e9072707be51fc95d41487faec3f265b42973a304fe3a64acd91a44a3826a963e37b37bafde0212c3 + languageName: node + linkType: hard + +"mkdirp@npm:^1.0.3, mkdirp@npm:^1.0.4": + version: 1.0.4 + resolution: "mkdirp@npm:1.0.4" + bin: + mkdirp: bin/cmd.js + checksum: a96865108c6c3b1b8e1d5e9f11843de1e077e57737602de1b82030815f311be11f96f09cce59bd5b903d0b29834733e5313f9301e3ed6d6f6fba2eae0df4298f + languageName: node + linkType: hard + +"moment@npm:2.29.4": + version: 2.29.4 + resolution: "moment@npm:2.29.4" + checksum: 0ec3f9c2bcba38dc2451b1daed5daded747f17610b92427bebe1d08d48d8b7bdd8d9197500b072d14e326dd0ccf3e326b9e3d07c5895d3d49e39b6803b76e80e + languageName: node + linkType: hard + +"mri@npm:^1.1.0": + version: 1.2.0 + resolution: "mri@npm:1.2.0" + checksum: 83f515abbcff60150873e424894a2f65d68037e5a7fcde8a9e2b285ee9c13ac581b63cfc1e6826c4732de3aeb84902f7c1e16b7aff46cd3f897a0f757a894e85 + languageName: node + linkType: hard + +"ms@npm:2.1.2": + version: 2.1.2 + resolution: "ms@npm:2.1.2" + checksum: 673cdb2c3133eb050c745908d8ce632ed2c02d85640e2edb3ace856a2266a813b30c613569bf3354fdf4ea7d1a1494add3bfa95e2713baa27d0c2c71fc44f58f + languageName: node + linkType: hard + +"ms@npm:^2.0.0, ms@npm:^2.1.1": + version: 2.1.3 + resolution: "ms@npm:2.1.3" + checksum: aa92de608021b242401676e35cfa5aa42dd70cbdc082b916da7fb925c542173e36bce97ea3e804923fe92c0ad991434e4a38327e15a1b5b5f945d66df615ae6d + languageName: node + linkType: hard + +"mute-stream@npm:0.0.8": + version: 0.0.8 + resolution: "mute-stream@npm:0.0.8" + checksum: ff48d251fc3f827e5b1206cda0ffdaec885e56057ee86a3155e1951bc940fd5f33531774b1cc8414d7668c10a8907f863f6561875ee6e8768931a62121a531a1 + languageName: node + linkType: hard + +"nanoid@npm:^3.3.4": + version: 3.3.4 + resolution: "nanoid@npm:3.3.4" + bin: + nanoid: bin/nanoid.cjs + checksum: 2fddd6dee994b7676f008d3ffa4ab16035a754f4bb586c61df5a22cf8c8c94017aadd360368f47d653829e0569a92b129979152ff97af23a558331e47e37cd9c + languageName: node + linkType: hard + +"natural-compare-lite@npm:^1.4.0": + version: 1.4.0 + resolution: "natural-compare-lite@npm:1.4.0" + checksum: 5222ac3986a2b78dd6069ac62cbb52a7bf8ffc90d972ab76dfe7b01892485d229530ed20d0c62e79a6b363a663b273db3bde195a1358ce9e5f779d4453887225 + languageName: node + linkType: hard + +"natural-compare@npm:^1.4.0": + version: 1.4.0 + resolution: "natural-compare@npm:1.4.0" + checksum: 23ad088b08f898fc9b53011d7bb78ec48e79de7627e01ab5518e806033861bef68d5b0cd0e2205c2f36690ac9571ff6bcb05eb777ced2eeda8d4ac5b44592c3d + languageName: node + linkType: hard + +"negotiator@npm:^0.6.3": + version: 0.6.3 + resolution: "negotiator@npm:0.6.3" + checksum: b8ffeb1e262eff7968fc90a2b6767b04cfd9842582a9d0ece0af7049537266e7b2506dfb1d107a32f06dd849ab2aea834d5830f7f4d0e5cb7d36e1ae55d021d9 + languageName: node + linkType: hard + +"no-case@npm:^3.0.4": + version: 3.0.4 + resolution: "no-case@npm:3.0.4" + dependencies: + lower-case: ^2.0.2 + tslib: ^2.0.3 + checksum: 0b2ebc113dfcf737d48dde49cfebf3ad2d82a8c3188e7100c6f375e30eafbef9e9124aadc3becef237b042fd5eb0aad2fd78669c20972d045bbe7fea8ba0be5c + languageName: node + linkType: hard + +"node-addon-api@npm:^3.2.1": + version: 3.2.1 + resolution: "node-addon-api@npm:3.2.1" + dependencies: + node-gyp: latest + checksum: 2369986bb0881ccd9ef6bacdf39550e07e089a9c8ede1cbc5fc7712d8e2faa4d50da0e487e333d4125f8c7a616c730131d1091676c9d499af1d74560756b4a18 + languageName: node + linkType: hard + +"node-fetch@npm:2.6.7": + version: 2.6.7 + resolution: "node-fetch@npm:2.6.7" + dependencies: + whatwg-url: ^5.0.0 + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + checksum: 8d816ffd1ee22cab8301c7756ef04f3437f18dace86a1dae22cf81db8ef29c0bf6655f3215cb0cdb22b420b6fe141e64b26905e7f33f9377a7fa59135ea3e10b + languageName: node + linkType: hard + +"node-fetch@npm:^2.6.1": + version: 2.6.9 + resolution: "node-fetch@npm:2.6.9" + dependencies: + whatwg-url: ^5.0.0 + peerDependencies: + encoding: ^0.1.0 + peerDependenciesMeta: + encoding: + optional: true + checksum: acb04f9ce7224965b2b59e71b33c639794d8991efd73855b0b250921382b38331ffc9d61bce502571f6cc6e11a8905ca9b1b6d4aeb586ab093e2756a1fd190d0 + languageName: node + linkType: hard + +"node-gyp-build@npm:^4.3.0": + version: 4.6.0 + resolution: "node-gyp-build@npm:4.6.0" + bin: + node-gyp-build: bin.js + node-gyp-build-optional: optional.js + node-gyp-build-test: build-test.js + checksum: 25d78c5ef1f8c24291f4a370c47ba52fcea14f39272041a90a7894cd50d766f7c8cb8fb06c0f42bf6f69b204b49d9be3c8fc344aac09714d5bdb95965499eb15 + languageName: node + linkType: hard + +"node-gyp@npm:latest": + version: 9.3.1 + resolution: "node-gyp@npm:9.3.1" + dependencies: + env-paths: ^2.2.0 + glob: ^7.1.4 + graceful-fs: ^4.2.6 + make-fetch-happen: ^10.0.3 + nopt: ^6.0.0 + npmlog: ^6.0.0 + rimraf: ^3.0.2 + semver: ^7.3.5 + tar: ^6.1.2 + which: ^2.0.2 + bin: + node-gyp: bin/node-gyp.js + checksum: b860e9976fa645ca0789c69e25387401b4396b93c8375489b5151a6c55cf2640a3b6183c212b38625ef7c508994930b72198338e3d09b9d7ade5acc4aaf51ea7 + languageName: node + linkType: hard + +"node-int64@npm:^0.4.0": + version: 0.4.0 + resolution: "node-int64@npm:0.4.0" + checksum: d0b30b1ee6d961851c60d5eaa745d30b5c95d94bc0e74b81e5292f7c42a49e3af87f1eb9e89f59456f80645d679202537de751b7d72e9e40ceea40c5e449057e + languageName: node + linkType: hard + +"node-releases@npm:^2.0.8": + version: 2.0.10 + resolution: "node-releases@npm:2.0.10" + checksum: d784ecde25696a15d449c4433077f5cce620ed30a1656c4abf31282bfc691a70d9618bae6868d247a67914d1be5cc4fde22f65a05f4398cdfb92e0fc83cadfbc + languageName: node + linkType: hard + +"nopt@npm:^6.0.0": + version: 6.0.0 + resolution: "nopt@npm:6.0.0" + dependencies: + abbrev: ^1.0.0 + bin: + nopt: bin/nopt.js + checksum: 82149371f8be0c4b9ec2f863cc6509a7fd0fa729929c009f3a58e4eb0c9e4cae9920e8f1f8eb46e7d032fec8fb01bede7f0f41a67eb3553b7b8e14fa53de1dac + languageName: node + linkType: hard + +"normalize-path@npm:^2.1.1": + version: 2.1.1 + resolution: "normalize-path@npm:2.1.1" + dependencies: + remove-trailing-separator: ^1.0.1 + checksum: 7e9cbdcf7f5b8da7aa191fbfe33daf290cdcd8c038f422faf1b8a83c972bf7a6d94c5be34c4326cb00fb63bc0fd97d9fbcfaf2e5d6142332c2cd36d2e1b86cea + languageName: node + linkType: hard + +"npmlog@npm:^6.0.0": + version: 6.0.2 + resolution: "npmlog@npm:6.0.2" + dependencies: + are-we-there-yet: ^3.0.0 + console-control-strings: ^1.1.0 + gauge: ^4.0.3 + set-blocking: ^2.0.0 + checksum: ae238cd264a1c3f22091cdd9e2b106f684297d3c184f1146984ecbe18aaa86343953f26b9520dedd1b1372bc0316905b736c1932d778dbeb1fcf5a1001390e2a + languageName: node + linkType: hard + +"nullthrows@npm:^1.1.1": + version: 1.1.1 + resolution: "nullthrows@npm:1.1.1" + checksum: 10806b92121253eb1b08ecf707d92480f5331ba8ae5b23fa3eb0548ad24196eb797ed47606153006568a5733ea9e528a3579f21421f7828e09e7756f4bdd386f + languageName: node + linkType: hard + +"object-assign@npm:^4.1.0, object-assign@npm:^4.1.1": + version: 4.1.1 + resolution: "object-assign@npm:4.1.1" + checksum: fcc6e4ea8c7fe48abfbb552578b1c53e0d194086e2e6bbbf59e0a536381a292f39943c6e9628af05b5528aa5e3318bb30d6b2e53cadaf5b8fe9e12c4b69af23f + languageName: node + linkType: hard + +"object-inspect@npm:^1.12.3, object-inspect@npm:^1.9.0": + version: 1.12.3 + resolution: "object-inspect@npm:1.12.3" + checksum: dabfd824d97a5f407e6d5d24810d888859f6be394d8b733a77442b277e0808860555176719c5905e765e3743a7cada6b8b0a3b85e5331c530fd418cc8ae991db + languageName: node + linkType: hard + +"object-is@npm:^1.1.5": + version: 1.1.5 + resolution: "object-is@npm:1.1.5" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.3 + checksum: 989b18c4cba258a6b74dc1d74a41805c1a1425bce29f6cabb50dcb1a6a651ea9104a1b07046739a49a5bb1bc49727bcb00efd5c55f932f6ea04ec8927a7901fe + languageName: node + linkType: hard + +"object-keys@npm:^1.1.1": + version: 1.1.1 + resolution: "object-keys@npm:1.1.1" + checksum: b363c5e7644b1e1b04aa507e88dcb8e3a2f52b6ffd0ea801e4c7a62d5aa559affe21c55a07fd4b1fd55fc03a33c610d73426664b20032405d7b92a1414c34d6a + languageName: node + linkType: hard + +"object.assign@npm:^4.1.2, object.assign@npm:^4.1.3, object.assign@npm:^4.1.4": + version: 4.1.4 + resolution: "object.assign@npm:4.1.4" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + has-symbols: ^1.0.3 + object-keys: ^1.1.1 + checksum: 76cab513a5999acbfe0ff355f15a6a125e71805fcf53de4e9d4e082e1989bdb81d1e329291e1e4e0ae7719f0e4ef80e88fb2d367ae60500d79d25a6224ac8864 + languageName: node + linkType: hard + +"object.entries@npm:^1.1.5, object.entries@npm:^1.1.6": + version: 1.1.6 + resolution: "object.entries@npm:1.1.6" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: 0f8c47517e6a9a980241eafe3b73de11e59511883173c2b93d67424a008e47e11b77c80e431ad1d8a806f6108b225a1cab9223e53e555776c612a24297117d28 + languageName: node + linkType: hard + +"object.fromentries@npm:^2.0.6": + version: 2.0.6 + resolution: "object.fromentries@npm:2.0.6" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: 453c6d694180c0c30df451b60eaf27a5b9bca3fb43c37908fd2b78af895803dc631242bcf05582173afa40d8d0e9c96e16e8874b39471aa53f3ac1f98a085d85 + languageName: node + linkType: hard + +"object.hasown@npm:^1.1.2": + version: 1.1.2 + resolution: "object.hasown@npm:1.1.2" + dependencies: + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: b936572536db0cdf38eb30afd2f1026a8b6f2cc5d2c4497c9d9bbb01eaf3e980dead4fd07580cfdd098e6383e5a9db8212d3ea0c6bdd2b5e68c60aa7e3b45566 + languageName: node + linkType: hard + +"object.values@npm:^1.1.6": + version: 1.1.6 + resolution: "object.values@npm:1.1.6" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: f6fff9fd817c24cfd8107f50fb33061d81cd11bacc4e3dbb3852e9ff7692fde4dbce823d4333ea27cd9637ef1b6690df5fbb61f1ed314fa2959598dc3ae23d8e + languageName: node + linkType: hard + +"once@npm:^1.3.0": + version: 1.4.0 + resolution: "once@npm:1.4.0" + dependencies: + wrappy: 1 + checksum: cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68 + languageName: node + linkType: hard + +"onetime@npm:^5.1.0": + version: 5.1.2 + resolution: "onetime@npm:5.1.2" + dependencies: + mimic-fn: ^2.1.0 + checksum: 2478859ef817fc5d4e9c2f9e5728512ddd1dbc9fb7829ad263765bb6d3b91ce699d6e2332eef6b7dff183c2f490bd3349f1666427eaba4469fba0ac38dfd0d34 + languageName: node + linkType: hard + +"optimism@npm:^0.16.1": + version: 0.16.2 + resolution: "optimism@npm:0.16.2" + dependencies: + "@wry/context": ^0.7.0 + "@wry/trie": ^0.3.0 + checksum: a98ed9a0b8ee2b031010222099b60860d52860bf8182889f2695a7cf2185f21aca59020f78e2b47c0ae7697843caa576798d792967314ff59f6aa7c5d9de7f3a + languageName: node + linkType: hard + +"optionator@npm:^0.9.1": + version: 0.9.1 + resolution: "optionator@npm:0.9.1" + dependencies: + deep-is: ^0.1.3 + fast-levenshtein: ^2.0.6 + levn: ^0.4.1 + prelude-ls: ^1.2.1 + type-check: ^0.4.0 + word-wrap: ^1.2.3 + checksum: dbc6fa065604b24ea57d734261914e697bd73b69eff7f18e967e8912aa2a40a19a9f599a507fa805be6c13c24c4eae8c71306c239d517d42d4c041c942f508a0 + languageName: node + linkType: hard + +"ora@npm:^5.4.1": + version: 5.4.1 + resolution: "ora@npm:5.4.1" + dependencies: + bl: ^4.1.0 + chalk: ^4.1.0 + cli-cursor: ^3.1.0 + cli-spinners: ^2.5.0 + is-interactive: ^1.0.0 + is-unicode-supported: ^0.1.0 + log-symbols: ^4.1.0 + strip-ansi: ^6.0.0 + wcwidth: ^1.0.1 + checksum: 28d476ee6c1049d68368c0dc922e7225e3b5600c3ede88fade8052837f9ed342625fdaa84a6209302587c8ddd9b664f71f0759833cbdb3a4cf81344057e63c63 + languageName: node + linkType: hard + +"os-tmpdir@npm:~1.0.2": + version: 1.0.2 + resolution: "os-tmpdir@npm:1.0.2" + checksum: 5666560f7b9f10182548bf7013883265be33620b1c1b4a4d405c25be2636f970c5488ff3e6c48de75b55d02bde037249fe5dbfbb4c0fb7714953d56aed062e6d + languageName: node + linkType: hard + +"p-limit@npm:3.1.0, p-limit@npm:^3.0.2": + version: 3.1.0 + resolution: "p-limit@npm:3.1.0" + dependencies: + yocto-queue: ^0.1.0 + checksum: 7c3690c4dbf62ef625671e20b7bdf1cbc9534e83352a2780f165b0d3ceba21907e77ad63401708145ca4e25bfc51636588d89a8c0aeb715e6c37d1c066430360 + languageName: node + linkType: hard + +"p-limit@npm:^2.2.0": + version: 2.3.0 + resolution: "p-limit@npm:2.3.0" + dependencies: + p-try: ^2.0.0 + checksum: 84ff17f1a38126c3314e91ecfe56aecbf36430940e2873dadaa773ffe072dc23b7af8e46d4b6485d302a11673fe94c6b67ca2cfbb60c989848b02100d0594ac1 + languageName: node + linkType: hard + +"p-locate@npm:^4.1.0": + version: 4.1.0 + resolution: "p-locate@npm:4.1.0" + dependencies: + p-limit: ^2.2.0 + checksum: 513bd14a455f5da4ebfcb819ef706c54adb09097703de6aeaa5d26fe5ea16df92b48d1ac45e01e3944ce1e6aa2a66f7f8894742b8c9d6e276e16cd2049a2b870 + languageName: node + linkType: hard + +"p-locate@npm:^5.0.0": + version: 5.0.0 + resolution: "p-locate@npm:5.0.0" + dependencies: + p-limit: ^3.0.2 + checksum: 1623088f36cf1cbca58e9b61c4e62bf0c60a07af5ae1ca99a720837356b5b6c5ba3eb1b2127e47a06865fee59dd0453cad7cc844cda9d5a62ac1a5a51b7c86d3 + languageName: node + linkType: hard + +"p-map@npm:^4.0.0": + version: 4.0.0 + resolution: "p-map@npm:4.0.0" + dependencies: + aggregate-error: ^3.0.0 + checksum: cb0ab21ec0f32ddffd31dfc250e3afa61e103ef43d957cc45497afe37513634589316de4eb88abdfd969fe6410c22c0b93ab24328833b8eb1ccc087fc0442a1c + languageName: node + linkType: hard + +"p-try@npm:^2.0.0": + version: 2.2.0 + resolution: "p-try@npm:2.2.0" + checksum: f8a8e9a7693659383f06aec604ad5ead237c7a261c18048a6e1b5b85a5f8a067e469aa24f5bc009b991ea3b058a87f5065ef4176793a200d4917349881216cae + languageName: node + linkType: hard + +"param-case@npm:^3.0.4": + version: 3.0.4 + resolution: "param-case@npm:3.0.4" + dependencies: + dot-case: ^3.0.4 + tslib: ^2.0.3 + checksum: b34227fd0f794e078776eb3aa6247442056cb47761e9cd2c4c881c86d84c64205f6a56ef0d70b41ee7d77da02c3f4ed2f88e3896a8fefe08bdfb4deca037c687 + languageName: node + linkType: hard + +"parent-module@npm:^1.0.0": + version: 1.0.1 + resolution: "parent-module@npm:1.0.1" + dependencies: + callsites: ^3.0.0 + checksum: 6ba8b255145cae9470cf5551eb74be2d22281587af787a2626683a6c20fbb464978784661478dd2a3f1dad74d1e802d403e1b03c1a31fab310259eec8ac560ff + languageName: node + linkType: hard + +"parse-filepath@npm:^1.0.2": + version: 1.0.2 + resolution: "parse-filepath@npm:1.0.2" + dependencies: + is-absolute: ^1.0.0 + map-cache: ^0.2.0 + path-root: ^0.1.1 + checksum: 6794c3f38d3921f0f7cc63fb1fb0c4d04cd463356ad389c8ce6726d3c50793b9005971f4138975a6d7025526058d5e65e9bfe634d0765e84c4e2571152665a69 + languageName: node + linkType: hard + +"parse-json@npm:^5.0.0": + version: 5.2.0 + resolution: "parse-json@npm:5.2.0" + dependencies: + "@babel/code-frame": ^7.0.0 + error-ex: ^1.3.1 + json-parse-even-better-errors: ^2.3.0 + lines-and-columns: ^1.1.6 + checksum: 62085b17d64da57f40f6afc2ac1f4d95def18c4323577e1eced571db75d9ab59b297d1d10582920f84b15985cbfc6b6d450ccbf317644cfa176f3ed982ad87e2 + languageName: node + linkType: hard + +"parse5@npm:^6.0.0": + version: 6.0.1 + resolution: "parse5@npm:6.0.1" + checksum: 7d569a176c5460897f7c8f3377eff640d54132b9be51ae8a8fa4979af940830b2b0c296ce75e5bd8f4041520aadde13170dbdec44889975f906098ea0002f4bd + languageName: node + linkType: hard + +"pascal-case@npm:^3.1.2": + version: 3.1.2 + resolution: "pascal-case@npm:3.1.2" + dependencies: + no-case: ^3.0.4 + tslib: ^2.0.3 + checksum: ba98bfd595fc91ef3d30f4243b1aee2f6ec41c53b4546bfa3039487c367abaa182471dcfc830a1f9e1a0df00c14a370514fa2b3a1aacc68b15a460c31116873e + languageName: node + linkType: hard + +"path-case@npm:^3.0.4": + version: 3.0.4 + resolution: "path-case@npm:3.0.4" + dependencies: + dot-case: ^3.0.4 + tslib: ^2.0.3 + checksum: 61de0526222629f65038a66f63330dd22d5b54014ded6636283e1d15364da38b3cf29e4433aa3f9d8b0dba407ae2b059c23b0104a34ee789944b1bc1c5c7e06d + languageName: node + linkType: hard + +"path-exists@npm:^4.0.0": + version: 4.0.0 + resolution: "path-exists@npm:4.0.0" + checksum: 505807199dfb7c50737b057dd8d351b82c033029ab94cb10a657609e00c1bc53b951cfdbccab8de04c5584d5eff31128ce6afd3db79281874a5ef2adbba55ed1 + languageName: node + linkType: hard + +"path-is-absolute@npm:^1.0.0": + version: 1.0.1 + resolution: "path-is-absolute@npm:1.0.1" + checksum: 060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8 + languageName: node + linkType: hard + +"path-key@npm:^3.1.0": + version: 3.1.1 + resolution: "path-key@npm:3.1.1" + checksum: 55cd7a9dd4b343412a8386a743f9c746ef196e57c823d90ca3ab917f90ab9f13dd0ded27252ba49dbdfcab2b091d998bc446f6220cd3cea65db407502a740020 + languageName: node + linkType: hard + +"path-parse@npm:^1.0.7": + version: 1.0.7 + resolution: "path-parse@npm:1.0.7" + checksum: 49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a + languageName: node + linkType: hard + +"path-root-regex@npm:^0.1.0": + version: 0.1.2 + resolution: "path-root-regex@npm:0.1.2" + checksum: dcd75d1f8e93faabe35a58e875b0f636839b3658ff2ad8c289463c40bc1a844debe0dab73c3398ef9dc8f6ec6c319720aff390cf4633763ddcf3cf4b1bbf7e8b + languageName: node + linkType: hard + +"path-root@npm:^0.1.1": + version: 0.1.1 + resolution: "path-root@npm:0.1.1" + dependencies: + path-root-regex: ^0.1.0 + checksum: ff88aebfc1c59ace510cc06703d67692a11530989920427625e52b66a303ca9b3d4059b0b7d0b2a73248d1ad29bcb342b8b786ec00592f3101d38a45fd3b2e08 + languageName: node + linkType: hard + +"path-type@npm:^4.0.0": + version: 4.0.0 + resolution: "path-type@npm:4.0.0" + checksum: 5b1e2daa247062061325b8fdbfd1fb56dde0a448fb1455453276ea18c60685bdad23a445dc148cf87bc216be1573357509b7d4060494a6fd768c7efad833ee45 + languageName: node + linkType: hard + +"phoenix@npm:1.7.2": + version: 1.7.2 + resolution: "phoenix@npm:1.7.2" + checksum: f493d8325f83a5cc3db913fff68ba1c3eca1574ddeccf701000d4278533cb8371620fcabb8576eed0e0069aaaeb76aa2a21018d5c14de664334e10ce7d244cd8 + languageName: node + linkType: hard + +"picocolors@npm:^1.0.0": + version: 1.0.0 + resolution: "picocolors@npm:1.0.0" + checksum: a2e8092dd86c8396bdba9f2b5481032848525b3dc295ce9b57896f931e63fc16f79805144321f72976383fc249584672a75cc18d6777c6b757603f372f745981 + languageName: node + linkType: hard + +"picomatch@npm:^2.3.0, picomatch@npm:^2.3.1": + version: 2.3.1 + resolution: "picomatch@npm:2.3.1" + checksum: 050c865ce81119c4822c45d3c84f1ced46f93a0126febae20737bd05ca20589c564d6e9226977df859ed5e03dc73f02584a2b0faad36e896936238238b0446cf + languageName: node + linkType: hard + +"postcss-value-parser@npm:^4.0.2": + version: 4.2.0 + resolution: "postcss-value-parser@npm:4.2.0" + checksum: 819ffab0c9d51cf0acbabf8996dffbfafbafa57afc0e4c98db88b67f2094cb44488758f06e5da95d7036f19556a4a732525e84289a425f4f6fd8e412a9d7442f + languageName: node + linkType: hard + +"postcss@npm:^8.4.21": + version: 8.4.21 + resolution: "postcss@npm:8.4.21" + dependencies: + nanoid: ^3.3.4 + picocolors: ^1.0.0 + source-map-js: ^1.0.2 + checksum: e39ac60ccd1542d4f9d93d894048aac0d686b3bb38e927d8386005718e6793dbbb46930f0a523fe382f1bbd843c6d980aaea791252bf5e176180e5a4336d9679 + languageName: node + linkType: hard + +"prelude-ls@npm:^1.2.1": + version: 1.2.1 + resolution: "prelude-ls@npm:1.2.1" + checksum: cd192ec0d0a8e4c6da3bb80e4f62afe336df3f76271ac6deb0e6a36187133b6073a19e9727a1ff108cd8b9982e4768850d413baa71214dd80c7979617dca827a + languageName: node + linkType: hard + +"promise-inflight@npm:^1.0.1": + version: 1.0.1 + resolution: "promise-inflight@npm:1.0.1" + checksum: 22749483091d2c594261517f4f80e05226d4d5ecc1fc917e1886929da56e22b5718b7f2a75f3807e7a7d471bc3be2907fe92e6e8f373ddf5c64bae35b5af3981 + languageName: node + linkType: hard + +"promise-retry@npm:^2.0.1": + version: 2.0.1 + resolution: "promise-retry@npm:2.0.1" + dependencies: + err-code: ^2.0.2 + retry: ^0.12.0 + checksum: f96a3f6d90b92b568a26f71e966cbbc0f63ab85ea6ff6c81284dc869b41510e6cdef99b6b65f9030f0db422bf7c96652a3fff9f2e8fb4a0f069d8f4430359429 + languageName: node + linkType: hard + +"promise@npm:^7.1.1": + version: 7.3.1 + resolution: "promise@npm:7.3.1" + dependencies: + asap: ~2.0.3 + checksum: 475bb069130179fbd27ed2ab45f26d8862376a137a57314cf53310bdd85cc986a826fd585829be97ebc0aaf10e9d8e68be1bfe5a4a0364144b1f9eedfa940cf1 + languageName: node + linkType: hard + +"prop-types@npm:15.8.1, prop-types@npm:^15.0.0, prop-types@npm:^15.6.2, prop-types@npm:^15.7.2, prop-types@npm:^15.8.1": + version: 15.8.1 + resolution: "prop-types@npm:15.8.1" + dependencies: + loose-envify: ^1.4.0 + object-assign: ^4.1.1 + react-is: ^16.13.1 + checksum: c056d3f1c057cb7ff8344c645450e14f088a915d078dcda795041765047fa080d38e5d626560ccaac94a4e16e3aa15f3557c1a9a8d1174530955e992c675e459 + languageName: node + linkType: hard + +"property-information@npm:^6.0.0": + version: 6.2.0 + resolution: "property-information@npm:6.2.0" + checksum: 23afce07ba821cbe7d926e63cdd680991961c82be4bbb6c0b17c47f48894359c1be6e51cd74485fc10a9d3fd361b475388e1e39311ed2b53127718f72aab1955 + languageName: node + linkType: hard + +"punycode@npm:^1.3.2": + version: 1.4.1 + resolution: "punycode@npm:1.4.1" + checksum: fa6e698cb53db45e4628559e557ddaf554103d2a96a1d62892c8f4032cd3bc8871796cae9eabc1bc700e2b6677611521ce5bb1d9a27700086039965d0cf34518 + languageName: node + linkType: hard + +"punycode@npm:^2.1.0": + version: 2.3.0 + resolution: "punycode@npm:2.3.0" + checksum: 39f760e09a2a3bbfe8f5287cf733ecdad69d6af2fe6f97ca95f24b8921858b91e9ea3c9eeec6e08cede96181b3bb33f95c6ffd8c77e63986508aa2e8159fa200 + languageName: node + linkType: hard + +"pvtsutils@npm:^1.3.2": + version: 1.3.2 + resolution: "pvtsutils@npm:1.3.2" + dependencies: + tslib: ^2.4.0 + checksum: 9b8155611363e2f40276879f2454e60204b45be0cd0482f9373f369308a2e9c76d5d74cdf661a3f5aae8022d75ea159eb0ba38ee78fc782ee3051e4722db98d0 + languageName: node + linkType: hard + +"pvutils@npm:^1.1.3": + version: 1.1.3 + resolution: "pvutils@npm:1.1.3" + checksum: 2ee26a9e5176c348977d6ec00d8ee80bff62f51743b1c5fe8abeeb4c5d29d9959cdfe0ce146707a9e6801bce88190fed3002d720b072dc87d031c692820b44c9 + languageName: node + linkType: hard + +"queue-microtask@npm:^1.2.2": + version: 1.2.3 + resolution: "queue-microtask@npm:1.2.3" + checksum: b676f8c040cdc5b12723ad2f91414d267605b26419d5c821ff03befa817ddd10e238d22b25d604920340fd73efd8ba795465a0377c4adf45a4a41e4234e42dc4 + languageName: node + linkType: hard + +"react-animate-height@npm:3.1.0": + version: 3.1.0 + resolution: "react-animate-height@npm:3.1.0" + peerDependencies: + react: ">=16.8.0" + react-dom: ">=16.8.0" + checksum: 46f802fe1e70d5d451d74fabece0dc8e2060543ea106dd56fc0ff544391e8939f8876af480323854dc39cbefd286d8cece29e509de3fb2d231fa9f77097532af + languageName: node + linkType: hard + +"react-dom@npm:18.2.0": + version: 18.2.0 + resolution: "react-dom@npm:18.2.0" + dependencies: + loose-envify: ^1.1.0 + scheduler: ^0.23.0 + peerDependencies: + react: ^18.2.0 + checksum: 7d323310bea3a91be2965f9468d552f201b1c27891e45ddc2d6b8f717680c95a75ae0bc1e3f5cf41472446a2589a75aed4483aee8169287909fcd59ad149e8cc + languageName: node + linkType: hard + +"react-is@npm:^16.13.1, react-is@npm:^16.7.0": + version: 16.13.1 + resolution: "react-is@npm:16.13.1" + checksum: f7a19ac3496de32ca9ae12aa030f00f14a3d45374f1ceca0af707c831b2a6098ef0d6bdae51bd437b0a306d7f01d4677fcc8de7c0d331eb47ad0f46130e53c5f + languageName: node + linkType: hard + +"react-is@npm:^18.0.0": + version: 18.2.0 + resolution: "react-is@npm:18.2.0" + checksum: e72d0ba81b5922759e4aff17e0252bd29988f9642ed817f56b25a3e217e13eea8a7f2322af99a06edb779da12d5d636e9fda473d620df9a3da0df2a74141d53e + languageName: node + linkType: hard + +"react-markdown@npm:8.0.5": + version: 8.0.5 + resolution: "react-markdown@npm:8.0.5" + dependencies: + "@types/hast": ^2.0.0 + "@types/prop-types": ^15.0.0 + "@types/unist": ^2.0.0 + comma-separated-tokens: ^2.0.0 + hast-util-whitespace: ^2.0.0 + prop-types: ^15.0.0 + property-information: ^6.0.0 + react-is: ^18.0.0 + remark-parse: ^10.0.0 + remark-rehype: ^10.0.0 + space-separated-tokens: ^2.0.0 + style-to-object: ^0.4.0 + unified: ^10.0.0 + unist-util-visit: ^4.0.0 + vfile: ^5.0.0 + peerDependencies: + "@types/react": ">=16" + react: ">=16" + checksum: 9d11b7aba16216d590e56b4744e05d2925141bfb0f5885b3d9400ccf006cd24b79ce3b3d20af8a083a01324215b58fa4c5979e44f69d54123ff1dd5dacb0dc89 + languageName: node + linkType: hard + +"react-merge-refs@npm:2.0.1": + version: 2.0.1 + resolution: "react-merge-refs@npm:2.0.1" + checksum: c0b6fdb384a92e9b2bb7d56128244a2db97b9343c0dcae70f172352c3732312266c078495902707e45f523625afcba78996a22edea3a8e7b2b17fe97347059fe + languageName: node + linkType: hard + +"react-refresh@npm:^0.14.0": + version: 0.14.0 + resolution: "react-refresh@npm:0.14.0" + checksum: dc69fa8c993df512f42dd0f1b604978ae89bd747c0ed5ec595c0cc50d535fb2696619ccd98ae28775cc01d0a7c146a532f0f7fb81dc22e1977c242a4912312f4 + languageName: node + linkType: hard + +"react-router-dom@npm:6.9.0": + version: 6.9.0 + resolution: "react-router-dom@npm:6.9.0" + dependencies: + "@remix-run/router": 1.4.0 + react-router: 6.9.0 + peerDependencies: + react: ">=16.8" + react-dom: ">=16.8" + checksum: 4d593491ab8db5611feda70002c62902baebb84d5c1c5e5b6172496f31f91130deee132bf4240dea634a88cb86c76d6da348f15b9cd5e5197be455efd88edf72 + languageName: node + linkType: hard + +"react-router@npm:6.9.0": + version: 6.9.0 + resolution: "react-router@npm:6.9.0" + dependencies: + "@remix-run/router": 1.4.0 + peerDependencies: + react: ">=16.8" + checksum: b2a5f42e042bee7a7f116ca7817b0e58359e5353d84887c9fe7a633d7490c03b1e0ae37cd01830c2a381e3d1e7d501bb4751e53cc3d491e25f36582d3f6e0546 + languageName: node + linkType: hard + +"react-spring@npm:9.6.1": + version: 9.6.1 + resolution: "react-spring@npm:9.6.1" + dependencies: + "@react-spring/core": ~9.6.1 + "@react-spring/konva": ~9.6.1 + "@react-spring/native": ~9.6.1 + "@react-spring/three": ~9.6.1 + "@react-spring/web": ~9.6.1 + "@react-spring/zdog": ~9.6.1 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: ee18d0fc4aa98b952c2d8c2a939c5fb05f160ca30d92b5b4a7d932910c1146120118f0506deb73fd671e147f891391a3556de512fb2cdf88b795a3c6f3b53219 + languageName: node + linkType: hard + +"react-textarea-autosize@npm:^8.4.0": + version: 8.4.0 + resolution: "react-textarea-autosize@npm:8.4.0" + dependencies: + "@babel/runtime": ^7.10.2 + use-composed-ref: ^1.3.0 + use-latest: ^1.2.1 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: 055fb51b74e1ab6b286490cfcd8ed77a760f6fc90706053b5dfcb138199d02c56289a1060a1daf9f3ae37ffd66f73e9553f026d0fad446bc2243b713acf48e05 + languageName: node + linkType: hard + +"react-transition-group@npm:^4.4.5": + version: 4.4.5 + resolution: "react-transition-group@npm:4.4.5" + dependencies: + "@babel/runtime": ^7.5.5 + dom-helpers: ^5.0.1 + loose-envify: ^1.4.0 + prop-types: ^15.6.2 + peerDependencies: + react: ">=16.6.0" + react-dom: ">=16.6.0" + checksum: 75602840106aa9c6545149d6d7ae1502fb7b7abadcce70a6954c4b64a438ff1cd16fc77a0a1e5197cdd72da398f39eb929ea06f9005c45b132ed34e056ebdeb1 + languageName: node + linkType: hard + +"react-use-measure@npm:2.1.1": + version: 2.1.1 + resolution: "react-use-measure@npm:2.1.1" + dependencies: + debounce: ^1.2.1 + peerDependencies: + react: ">=16.13" + react-dom: ">=16.13" + checksum: b8e8939229d463c3c505f7b617925c0228efae0cd6f651371f463846417b06c9170be57df51293a61027c41770f8a090fdb8a08717c4e36290ccb496e0318f1f + languageName: node + linkType: hard + +"react-virtual@npm:2.10.4": + version: 2.10.4 + resolution: "react-virtual@npm:2.10.4" + dependencies: + "@reach/observe-rect": ^1.1.0 + peerDependencies: + react: ^16.6.3 || ^17.0.0 + checksum: 1bebc741b01057829a7d7f29256114caecf0597d41b187cb41e75af77f24a87c780bc1a81ec11205b78ee2e9c801fc5e36b20a9e1ab7ddc70a18dd95417795f8 + languageName: node + linkType: hard + +"react@npm:18.2.0": + version: 18.2.0 + resolution: "react@npm:18.2.0" + dependencies: + loose-envify: ^1.1.0 + checksum: 88e38092da8839b830cda6feef2e8505dec8ace60579e46aa5490fc3dc9bba0bd50336507dc166f43e3afc1c42939c09fe33b25fae889d6f402721dcd78fca1b + languageName: node + linkType: hard + +"readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0": + version: 3.6.2 + resolution: "readable-stream@npm:3.6.2" + dependencies: + inherits: ^2.0.3 + string_decoder: ^1.1.1 + util-deprecate: ^1.0.1 + checksum: bdcbe6c22e846b6af075e32cf8f4751c2576238c5043169a1c221c92ee2878458a816a4ea33f4c67623c0b6827c8a400409bfb3cf0bf3381392d0b1dfb52ac8d + languageName: node + linkType: hard + +"regenerate-unicode-properties@npm:^10.1.0": + version: 10.1.0 + resolution: "regenerate-unicode-properties@npm:10.1.0" + dependencies: + regenerate: ^1.4.2 + checksum: b1a8929588433ab8b9dc1a34cf3665b3b472f79f2af6ceae00d905fc496b332b9af09c6718fb28c730918f19a00dc1d7310adbaa9b72a2ec7ad2f435da8ace17 + languageName: node + linkType: hard + +"regenerate@npm:^1.4.2": + version: 1.4.2 + resolution: "regenerate@npm:1.4.2" + checksum: 3317a09b2f802da8db09aa276e469b57a6c0dd818347e05b8862959c6193408242f150db5de83c12c3fa99091ad95fb42a6db2c3329bfaa12a0ea4cbbeb30cb0 + languageName: node + linkType: hard + +"regenerator-runtime@npm:^0.10.5": + version: 0.10.5 + resolution: "regenerator-runtime@npm:0.10.5" + checksum: 35b33dbe5381d268b2be98f4ee4b028702acb38b012bff90723df067f915a337e5c979cce4dab4ed23febb223bbebb8820d46902f897742c55818c22c14e2a7c + languageName: node + linkType: hard + +"regenerator-runtime@npm:^0.11.0": + version: 0.11.1 + resolution: "regenerator-runtime@npm:0.11.1" + checksum: 3c97bd2c7b2b3247e6f8e2147a002eb78c995323732dad5dc70fac8d8d0b758d0295e7015b90d3d444446ae77cbd24b9f9123ec3a77018e81d8999818301b4f4 + languageName: node + linkType: hard + +"regenerator-runtime@npm:^0.12.0": + version: 0.12.1 + resolution: "regenerator-runtime@npm:0.12.1" + checksum: 348c401336bcebe2be17fd4f24c5b0a1ed75bff3024dc817a69cdc776b48b98c7f6f3b98e1baa4220569440bb9215e1fff3dcb01c8aad3ff2ed3732e30d017bf + languageName: node + linkType: hard + +"regenerator-runtime@npm:^0.13.11": + version: 0.13.11 + resolution: "regenerator-runtime@npm:0.13.11" + checksum: 27481628d22a1c4e3ff551096a683b424242a216fee44685467307f14d58020af1e19660bf2e26064de946bad7eff28950eae9f8209d55723e2d9351e632bbb4 + languageName: node + linkType: hard + +"regenerator-transform@npm:^0.15.1": + version: 0.15.1 + resolution: "regenerator-transform@npm:0.15.1" + dependencies: + "@babel/runtime": ^7.8.4 + checksum: 2d15bdeadbbfb1d12c93f5775493d85874dbe1d405bec323da5c61ec6e701bc9eea36167483e1a5e752de9b2df59ab9a2dfff6bf3784f2b28af2279a673d29a4 + languageName: node + linkType: hard + +"regexp.prototype.flags@npm:^1.4.3": + version: 1.4.3 + resolution: "regexp.prototype.flags@npm:1.4.3" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.3 + functions-have-names: ^1.2.2 + checksum: 51228bae732592adb3ededd5e15426be25f289e9c4ef15212f4da73f4ec3919b6140806374b8894036a86020d054a8d2657d3fee6bb9b4d35d8939c20030b7a6 + languageName: node + linkType: hard + +"regexpp@npm:^3.2.0": + version: 3.2.0 + resolution: "regexpp@npm:3.2.0" + checksum: a78dc5c7158ad9ddcfe01aa9144f46e192ddbfa7b263895a70a5c6c73edd9ce85faf7c0430e59ac38839e1734e275b9c3de5c57ee3ab6edc0e0b1bdebefccef8 + languageName: node + linkType: hard + +"regexpu-core@npm:^5.3.1": + version: 5.3.2 + resolution: "regexpu-core@npm:5.3.2" + dependencies: + "@babel/regjsgen": ^0.8.0 + regenerate: ^1.4.2 + regenerate-unicode-properties: ^10.1.0 + regjsparser: ^0.9.1 + unicode-match-property-ecmascript: ^2.0.0 + unicode-match-property-value-ecmascript: ^2.1.0 + checksum: 95bb97088419f5396e07769b7de96f995f58137ad75fac5811fb5fe53737766dfff35d66a0ee66babb1eb55386ef981feaef392f9df6d671f3c124812ba24da2 + languageName: node + linkType: hard + +"regjsparser@npm:^0.9.1": + version: 0.9.1 + resolution: "regjsparser@npm:0.9.1" + dependencies: + jsesc: ~0.5.0 + bin: + regjsparser: bin/parser + checksum: 5e1b76afe8f1d03c3beaf9e0d935dd467589c3625f6d65fb8ffa14f224d783a0fed4bf49c2c1b8211043ef92b6117313419edf055a098ed8342e340586741afc + languageName: node + linkType: hard + +"rehype-raw@npm:6.1.1": + version: 6.1.1 + resolution: "rehype-raw@npm:6.1.1" + dependencies: + "@types/hast": ^2.0.0 + hast-util-raw: ^7.2.0 + unified: ^10.0.0 + checksum: a1f9d309e609f49fb1f1e06e722705f4dd2e569653a89f756eaccb33b612cf1bb511216a81d10a619d11d047afc161e4b3cb99b957df05a8ba8fdbd5843f949a + languageName: node + linkType: hard + +"relay-runtime@npm:12.0.0": + version: 12.0.0 + resolution: "relay-runtime@npm:12.0.0" + dependencies: + "@babel/runtime": ^7.0.0 + fbjs: ^3.0.0 + invariant: ^2.2.4 + checksum: 51cdc8a5e04188982452ae4e7c6ac7d6375ee769130d24ce8e8f9cdd45aa7e11ecd68670f56e30dcee1b4974585e88ecce19e69a9868b80cda0db7678c3b8f0a + languageName: node + linkType: hard + +"remark-parse@npm:^10.0.0": + version: 10.0.1 + resolution: "remark-parse@npm:10.0.1" + dependencies: + "@types/mdast": ^3.0.0 + mdast-util-from-markdown: ^1.0.0 + unified: ^10.0.0 + checksum: 505088e564ab53ff054433368adbb7b551f69240c7d9768975529837a86f1d0f085e72d6211929c5c42db315273df4afc94f3d3a8662ffdb69468534c6643d29 + languageName: node + linkType: hard + +"remark-rehype@npm:^10.0.0": + version: 10.1.0 + resolution: "remark-rehype@npm:10.1.0" + dependencies: + "@types/hast": ^2.0.0 + "@types/mdast": ^3.0.0 + mdast-util-to-hast: ^12.1.0 + unified: ^10.0.0 + checksum: b9ac8acff3383b204dfdc2599d0bdf86e6ca7e837033209584af2e6aaa6a9013e519a379afa3201299798cab7298c8f4b388de118c312c67234c133318aec084 + languageName: node + linkType: hard + +"remedial@npm:^1.0.7": + version: 1.0.8 + resolution: "remedial@npm:1.0.8" + checksum: 12df7c55eb92501d7f33cfe5f5ad12be13bb6ac0c53f494aaa9963d5a5155bb8be2143e8d5e17afa1a500ef5dc71d13642920d35350f2a31b65a9778afab6869 + languageName: node + linkType: hard + +"remove-accents@npm:0.4.2": + version: 0.4.2 + resolution: "remove-accents@npm:0.4.2" + checksum: 84a6988555dea24115e2d1954db99509588d43fe55a1590f0b5894802776f7b488b3151c37ceb9e4f4b646f26b80b7325dcea2fae58bc3865df146e1fa606711 + languageName: node + linkType: hard + +"remove-trailing-separator@npm:^1.0.1": + version: 1.1.0 + resolution: "remove-trailing-separator@npm:1.1.0" + checksum: d3c20b5a2d987db13e1cca9385d56ecfa1641bae143b620835ac02a6b70ab88f68f117a0021838db826c57b31373d609d52e4f31aca75fc490c862732d595419 + languageName: node + linkType: hard + +"remove-trailing-spaces@npm:^1.0.6": + version: 1.0.8 + resolution: "remove-trailing-spaces@npm:1.0.8" + checksum: 81f615c5cd8dd6a5e3017dcc9af598965575d176d42ef99cfd7b894529991f464e629fd68aba089f5c6bebf5bb8070a5eee56f3b621aba55e8ef524d6a4d4f69 + languageName: node + linkType: hard + +"require-directory@npm:^2.1.1": + version: 2.1.1 + resolution: "require-directory@npm:2.1.1" + checksum: fb47e70bf0001fdeabdc0429d431863e9475e7e43ea5f94ad86503d918423c1543361cc5166d713eaa7029dd7a3d34775af04764bebff99ef413111a5af18c80 + languageName: node + linkType: hard + +"require-main-filename@npm:^2.0.0": + version: 2.0.0 + resolution: "require-main-filename@npm:2.0.0" + checksum: e9e294695fea08b076457e9ddff854e81bffbe248ed34c1eec348b7abbd22a0d02e8d75506559e2265e96978f3c4720bd77a6dad84755de8162b357eb6c778c7 + languageName: node + linkType: hard + +"resize-observer-polyfill@npm:1.5.1": + version: 1.5.1 + resolution: "resize-observer-polyfill@npm:1.5.1" + checksum: 57e7f79489867b00ba43c9c051524a5c8f162a61d5547e99333549afc23e15c44fd43f2f318ea0261ea98c0eb3158cca261e6f48d66e1ed1cd1f340a43977094 + languageName: node + linkType: hard + +"resize-observer@npm:^1.0.0": + version: 1.0.4 + resolution: "resize-observer@npm:1.0.4" + checksum: 43e2f45e40507279cad474f6bd2fe62e92de1fd1d67cd5285ece1fec6c1b664c4d3795b094b2be292244bf542b1b5402578670400beadc2cfedac8fb483a0976 + languageName: node + linkType: hard + +"resolve-from@npm:5.0.0": + version: 5.0.0 + resolution: "resolve-from@npm:5.0.0" + checksum: 4ceeb9113e1b1372d0cd969f3468fa042daa1dd9527b1b6bb88acb6ab55d8b9cd65dbf18819f9f9ddf0db804990901dcdaade80a215e7b2c23daae38e64f5bdf + languageName: node + linkType: hard + +"resolve-from@npm:^4.0.0": + version: 4.0.0 + resolution: "resolve-from@npm:4.0.0" + checksum: f4ba0b8494846a5066328ad33ef8ac173801a51739eb4d63408c847da9a2e1c1de1e6cbbf72699211f3d13f8fc1325648b169bd15eb7da35688e30a5fb0e4a7f + languageName: node + linkType: hard + +"resolve@npm:^1.14.2, resolve@npm:^1.19.0, resolve@npm:^1.22.1": + version: 1.22.1 + resolution: "resolve@npm:1.22.1" + dependencies: + is-core-module: ^2.9.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: 07af5fc1e81aa1d866cbc9e9460fbb67318a10fa3c4deadc35c3ad8a898ee9a71a86a65e4755ac3195e0ea0cfbe201eb323ebe655ce90526fd61917313a34e4e + languageName: node + linkType: hard + +"resolve@npm:^2.0.0-next.4": + version: 2.0.0-next.4 + resolution: "resolve@npm:2.0.0-next.4" + dependencies: + is-core-module: ^2.9.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: c438ac9a650f2030fd074219d7f12ceb983b475da2d89ad3d6dd05fbf6b7a0a8cd37d4d10b43cb1f632bc19f22246ab7f36ebda54d84a29bfb2910a0680906d3 + languageName: node + linkType: hard + +"resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin": + version: 1.22.1 + resolution: "resolve@patch:resolve@npm%3A1.22.1#~builtin::version=1.22.1&hash=c3c19d" + dependencies: + is-core-module: ^2.9.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: 5656f4d0bedcf8eb52685c1abdf8fbe73a1603bb1160a24d716e27a57f6cecbe2432ff9c89c2bd57542c3a7b9d14b1882b73bfe2e9d7849c9a4c0b8b39f02b8b + languageName: node + linkType: hard + +"resolve@patch:resolve@^2.0.0-next.4#~builtin": + version: 2.0.0-next.4 + resolution: "resolve@patch:resolve@npm%3A2.0.0-next.4#~builtin::version=2.0.0-next.4&hash=c3c19d" + dependencies: + is-core-module: ^2.9.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: 4bf9f4f8a458607af90518ff73c67a4bc1a38b5a23fef2bb0ccbd45e8be89820a1639b637b0ba377eb2be9eedfb1739a84cde24fe4cd670c8207d8fea922b011 + languageName: node + linkType: hard + +"response-iterator@npm:^0.2.6": + version: 0.2.6 + resolution: "response-iterator@npm:0.2.6" + checksum: b0db3c0665a0d698d65512951de9623c086b9c84ce015a76076d4bd0bf733779601d0b41f0931d16ae38132fba29e1ce291c1f8e6550fc32daaa2dc3ab4f338d + languageName: node + linkType: hard + +"restore-cursor@npm:^3.1.0": + version: 3.1.0 + resolution: "restore-cursor@npm:3.1.0" + dependencies: + onetime: ^5.1.0 + signal-exit: ^3.0.2 + checksum: f877dd8741796b909f2a82454ec111afb84eb45890eb49ac947d87991379406b3b83ff9673a46012fca0d7844bb989f45cc5b788254cf1a39b6b5a9659de0630 + languageName: node + linkType: hard + +"retry@npm:^0.12.0": + version: 0.12.0 + resolution: "retry@npm:0.12.0" + checksum: 623bd7d2e5119467ba66202d733ec3c2e2e26568074923bc0585b6b99db14f357e79bdedb63cab56cec47491c4a0da7e6021a7465ca6dc4f481d3898fdd3158c + languageName: node + linkType: hard + +"reusify@npm:^1.0.4": + version: 1.0.4 + resolution: "reusify@npm:1.0.4" + checksum: c3076ebcc22a6bc252cb0b9c77561795256c22b757f40c0d8110b1300723f15ec0fc8685e8d4ea6d7666f36c79ccc793b1939c748bf36f18f542744a4e379fcc + languageName: node + linkType: hard + +"rfdc@npm:^1.3.0": + version: 1.3.0 + resolution: "rfdc@npm:1.3.0" + checksum: fb2ba8512e43519983b4c61bd3fa77c0f410eff6bae68b08614437bc3f35f91362215f7b4a73cbda6f67330b5746ce07db5dd9850ad3edc91271ad6deea0df32 + languageName: node + linkType: hard + +"rimraf@npm:^3.0.2": + version: 3.0.2 + resolution: "rimraf@npm:3.0.2" + dependencies: + glob: ^7.1.3 + bin: + rimraf: bin.js + checksum: 87f4164e396f0171b0a3386cc1877a817f572148ee13a7e113b238e48e8a9f2f31d009a92ec38a591ff1567d9662c6b67fd8818a2dbbaed74bc26a87a2a4a9a0 + languageName: node + linkType: hard + +"rollup@npm:^3.18.0": + version: 3.20.0 + resolution: "rollup@npm:3.20.0" + dependencies: + fsevents: ~2.3.2 + dependenciesMeta: + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: ebf75f48eb81234f8233b4ed145b00841cefba26802d4f069f161247ffba085ca5bb165cc3cd662d9c36cfc135a67660dfff9088d3da2d2c6a70addc15f3233a + languageName: node + linkType: hard + +"run-async@npm:^2.4.0": + version: 2.4.1 + resolution: "run-async@npm:2.4.1" + checksum: a2c88aa15df176f091a2878eb840e68d0bdee319d8d97bbb89112223259cebecb94bc0defd735662b83c2f7a30bed8cddb7d1674eb48ae7322dc602b22d03797 + languageName: node + linkType: hard + +"run-parallel@npm:^1.1.9": + version: 1.2.0 + resolution: "run-parallel@npm:1.2.0" + dependencies: + queue-microtask: ^1.2.2 + checksum: cb4f97ad25a75ebc11a8ef4e33bb962f8af8516bb2001082ceabd8902e15b98f4b84b4f8a9b222e5d57fc3bd1379c483886ed4619367a7680dad65316993021d + languageName: node + linkType: hard + +"rxjs@npm:^7.5.5": + version: 7.8.0 + resolution: "rxjs@npm:7.8.0" + dependencies: + tslib: ^2.1.0 + checksum: 61b4d4fd323c1043d8d6ceb91f24183b28bcf5def4f01ca111511d5c6b66755bc5578587fe714ef5d67cf4c9f2e26f4490d4e1d8cabf9bd5967687835e9866a2 + languageName: node + linkType: hard + +"sade@npm:^1.7.3": + version: 1.8.1 + resolution: "sade@npm:1.8.1" + dependencies: + mri: ^1.1.0 + checksum: 0756e5b04c51ccdc8221ebffd1548d0ce5a783a44a0fa9017a026659b97d632913e78f7dca59f2496aa996a0be0b0c322afd87ca72ccd909406f49dbffa0f45d + languageName: node + linkType: hard + +"safe-buffer@npm:~5.2.0": + version: 5.2.1 + resolution: "safe-buffer@npm:5.2.1" + checksum: b99c4b41fdd67a6aaf280fcd05e9ffb0813654894223afb78a31f14a19ad220bba8aba1cb14eddce1fcfb037155fe6de4e861784eb434f7d11ed58d1e70dd491 + languageName: node + linkType: hard + +"safe-regex-test@npm:^1.0.0": + version: 1.0.0 + resolution: "safe-regex-test@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.1.3 + is-regex: ^1.1.4 + checksum: bc566d8beb8b43c01b94e67de3f070fd2781685e835959bbbaaec91cc53381145ca91f69bd837ce6ec244817afa0a5e974fc4e40a2957f0aca68ac3add1ddd34 + languageName: node + linkType: hard + +"safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0": + version: 2.1.2 + resolution: "safer-buffer@npm:2.1.2" + checksum: cab8f25ae6f1434abee8d80023d7e72b598cf1327164ddab31003c51215526801e40b66c5e65d658a0af1e9d6478cadcb4c745f4bd6751f97d8644786c0978b0 + languageName: node + linkType: hard + +"scheduler@npm:^0.23.0": + version: 0.23.0 + resolution: "scheduler@npm:0.23.0" + dependencies: + loose-envify: ^1.1.0 + checksum: d79192eeaa12abef860c195ea45d37cbf2bbf5f66e3c4dcd16f54a7da53b17788a70d109ee3d3dde1a0fd50e6a8fc171f4300356c5aee4fc0171de526bf35f8a + languageName: node + linkType: hard + +"scuid@npm:^1.1.0": + version: 1.1.0 + resolution: "scuid@npm:1.1.0" + checksum: cd094ac3718b0070a222f9a499b280c698fdea10268cc163fa244421099544c1766dd893fdee0e2a8eba5d53ab9d0bcb11067bedff166665030fa6fda25a096b + languageName: node + linkType: hard + +"semver@npm:^6.1.1, semver@npm:^6.1.2, semver@npm:^6.3.0": + version: 6.3.0 + resolution: "semver@npm:6.3.0" + bin: + semver: ./bin/semver.js + checksum: 1b26ecf6db9e8292dd90df4e781d91875c0dcc1b1909e70f5d12959a23c7eebb8f01ea581c00783bbee72ceeaad9505797c381756326073850dc36ed284b21b9 + languageName: node + linkType: hard + +"semver@npm:^7.3.5, semver@npm:^7.3.7": + version: 7.3.8 + resolution: "semver@npm:7.3.8" + dependencies: + lru-cache: ^6.0.0 + bin: + semver: bin/semver.js + checksum: ba9c7cbbf2b7884696523450a61fee1a09930d888b7a8d7579025ad93d459b2d1949ee5bbfeb188b2be5f4ac163544c5e98491ad6152df34154feebc2cc337c1 + languageName: node + linkType: hard + +"sentence-case@npm:^3.0.4": + version: 3.0.4 + resolution: "sentence-case@npm:3.0.4" + dependencies: + no-case: ^3.0.4 + tslib: ^2.0.3 + upper-case-first: ^2.0.2 + checksum: 3cfe6c0143e649132365695706702d7f729f484fa7b25f43435876efe7af2478243eefb052bacbcce10babf9319fd6b5b6bc59b94c80a1c819bcbb40651465d5 + languageName: node + linkType: hard + +"set-blocking@npm:^2.0.0": + version: 2.0.0 + resolution: "set-blocking@npm:2.0.0" + checksum: 6e65a05f7cf7ebdf8b7c75b101e18c0b7e3dff4940d480efed8aad3a36a4005140b660fa1d804cb8bce911cac290441dc728084a30504d3516ac2ff7ad607b02 + languageName: node + linkType: hard + +"setimmediate@npm:^1.0.5": + version: 1.0.5 + resolution: "setimmediate@npm:1.0.5" + checksum: c9a6f2c5b51a2dabdc0247db9c46460152ffc62ee139f3157440bd48e7c59425093f42719ac1d7931f054f153e2d26cf37dfeb8da17a794a58198a2705e527fd + languageName: node + linkType: hard + +"shallowequal@npm:^1.1.0": + version: 1.1.0 + resolution: "shallowequal@npm:1.1.0" + checksum: f4c1de0837f106d2dbbfd5d0720a5d059d1c66b42b580965c8f06bb1db684be8783538b684092648c981294bf817869f743a066538771dbecb293df78f765e00 + languageName: node + linkType: hard + +"shebang-command@npm:^2.0.0": + version: 2.0.0 + resolution: "shebang-command@npm:2.0.0" + dependencies: + shebang-regex: ^3.0.0 + checksum: 6b52fe87271c12968f6a054e60f6bde5f0f3d2db483a1e5c3e12d657c488a15474121a1d55cd958f6df026a54374ec38a4a963988c213b7570e1d51575cea7fa + languageName: node + linkType: hard + +"shebang-regex@npm:^3.0.0": + version: 3.0.0 + resolution: "shebang-regex@npm:3.0.0" + checksum: 1a2bcae50de99034fcd92ad4212d8e01eedf52c7ec7830eedcf886622804fe36884278f2be8be0ea5fde3fd1c23911643a4e0f726c8685b61871c8908af01222 + languageName: node + linkType: hard + +"shell-quote@npm:^1.7.3": + version: 1.8.0 + resolution: "shell-quote@npm:1.8.0" + checksum: 6ef7c5e308b9c77eedded882653a132214fa98b4a1512bb507588cf6cd2fc78bfee73e945d0c3211af028a1eabe09c6a19b96edd8977dc149810797e93809749 + languageName: node + linkType: hard + +"shorthash@npm:0.0.2": + version: 0.0.2 + resolution: "shorthash@npm:0.0.2" + checksum: 4048833f2a7f324350cc1a48a6b64bca268e5a2e9c59cb6cad3607c41fd800bf1739498fe4b8b6737709cdb540fb74125fb7254eba98bdd3dc41e8d9f7990b20 + languageName: node + linkType: hard + +"side-channel@npm:^1.0.4": + version: 1.0.4 + resolution: "side-channel@npm:1.0.4" + dependencies: + call-bind: ^1.0.0 + get-intrinsic: ^1.0.2 + object-inspect: ^1.9.0 + checksum: 351e41b947079c10bd0858364f32bb3a7379514c399edb64ab3dce683933483fc63fb5e4efe0a15a2e8a7e3c436b6a91736ddb8d8c6591b0460a24bb4a1ee245 + languageName: node + linkType: hard + +"signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.7": + version: 3.0.7 + resolution: "signal-exit@npm:3.0.7" + checksum: a2f098f247adc367dffc27845853e9959b9e88b01cb301658cfe4194352d8d2bb32e18467c786a7fe15f1d44b233ea35633d076d5e737870b7139949d1ab6318 + languageName: node + linkType: hard + +"signedsource@npm:^1.0.0": + version: 1.0.0 + resolution: "signedsource@npm:1.0.0" + checksum: 64b2c8d7a48de9009cfd3aff62bb7c88abf3b8e0421f17ebb1d7f5ca9cc9c3ad10f5a1e3ae6cd804e4e6121c87b668202ae9057065f058ddfbf34ea65f63945d + languageName: node + linkType: hard + +"slash@npm:^3.0.0": + version: 3.0.0 + resolution: "slash@npm:3.0.0" + checksum: 94a93fff615f25a999ad4b83c9d5e257a7280c90a32a7cb8b4a87996e4babf322e469c42b7f649fd5796edd8687652f3fb452a86dc97a816f01113183393f11c + languageName: node + linkType: hard + +"slice-ansi@npm:^3.0.0": + version: 3.0.0 + resolution: "slice-ansi@npm:3.0.0" + dependencies: + ansi-styles: ^4.0.0 + astral-regex: ^2.0.0 + is-fullwidth-code-point: ^3.0.0 + checksum: 5ec6d022d12e016347e9e3e98a7eb2a592213a43a65f1b61b74d2c78288da0aded781f665807a9f3876b9daa9ad94f64f77d7633a0458876c3a4fdc4eb223f24 + languageName: node + linkType: hard + +"slice-ansi@npm:^4.0.0": + version: 4.0.0 + resolution: "slice-ansi@npm:4.0.0" + dependencies: + ansi-styles: ^4.0.0 + astral-regex: ^2.0.0 + is-fullwidth-code-point: ^3.0.0 + checksum: 4a82d7f085b0e1b070e004941ada3c40d3818563ac44766cca4ceadd2080427d337554f9f99a13aaeb3b4a94d9964d9466c807b3d7b7541d1ec37ee32d308756 + languageName: node + linkType: hard + +"smart-buffer@npm:^4.2.0": + version: 4.2.0 + resolution: "smart-buffer@npm:4.2.0" + checksum: b5167a7142c1da704c0e3af85c402002b597081dd9575031a90b4f229ca5678e9a36e8a374f1814c8156a725d17008ae3bde63b92f9cfd132526379e580bec8b + languageName: node + linkType: hard + +"snake-case@npm:^3.0.4": + version: 3.0.4 + resolution: "snake-case@npm:3.0.4" + dependencies: + dot-case: ^3.0.4 + tslib: ^2.0.3 + checksum: 0a7a79900bbb36f8aaa922cf111702a3647ac6165736d5dc96d3ef367efc50465cac70c53cd172c382b022dac72ec91710608e5393de71f76d7142e6fd80e8a3 + languageName: node + linkType: hard + +"socks-proxy-agent@npm:^7.0.0": + version: 7.0.0 + resolution: "socks-proxy-agent@npm:7.0.0" + dependencies: + agent-base: ^6.0.2 + debug: ^4.3.3 + socks: ^2.6.2 + checksum: 720554370154cbc979e2e9ce6a6ec6ced205d02757d8f5d93fe95adae454fc187a5cbfc6b022afab850a5ce9b4c7d73e0f98e381879cf45f66317a4895953846 + languageName: node + linkType: hard + +"socks@npm:^2.6.2": + version: 2.7.1 + resolution: "socks@npm:2.7.1" + dependencies: + ip: ^2.0.0 + smart-buffer: ^4.2.0 + checksum: 259d9e3e8e1c9809a7f5c32238c3d4d2a36b39b83851d0f573bfde5f21c4b1288417ce1af06af1452569cd1eb0841169afd4998f0e04ba04656f6b7f0e46d748 + languageName: node + linkType: hard + +"source-map-js@npm:^1.0.2": + version: 1.0.2 + resolution: "source-map-js@npm:1.0.2" + checksum: c049a7fc4deb9a7e9b481ae3d424cc793cb4845daa690bc5a05d428bf41bf231ced49b4cf0c9e77f9d42fdb3d20d6187619fc586605f5eabe995a316da8d377c + languageName: node + linkType: hard + +"source-map@npm:^0.5.7": + version: 0.5.7 + resolution: "source-map@npm:0.5.7" + checksum: 5dc2043b93d2f194142c7f38f74a24670cd7a0063acdaf4bf01d2964b402257ae843c2a8fa822ad5b71013b5fcafa55af7421383da919752f22ff488bc553f4d + languageName: node + linkType: hard + +"space-separated-tokens@npm:^2.0.0": + version: 2.0.2 + resolution: "space-separated-tokens@npm:2.0.2" + checksum: 202e97d7ca1ba0758a0aa4fe226ff98142073bcceeff2da3aad037968878552c3bbce3b3231970025375bbba5aee00c5b8206eda408da837ab2dc9c0f26be990 + languageName: node + linkType: hard + +"sponge-case@npm:^1.0.1": + version: 1.0.1 + resolution: "sponge-case@npm:1.0.1" + dependencies: + tslib: ^2.0.3 + checksum: 64f53d930f63c5a9e59d4cae487c1ffa87d25eab682833b01d572cc885e7e3fdbad4f03409a41f03ecb27f1f8959432253eb48332c7007c3388efddb24ba2792 + languageName: node + linkType: hard + +"ssri@npm:^9.0.0": + version: 9.0.1 + resolution: "ssri@npm:9.0.1" + dependencies: + minipass: ^3.1.1 + checksum: fb58f5e46b6923ae67b87ad5ef1c5ab6d427a17db0bead84570c2df3cd50b4ceb880ebdba2d60726588272890bae842a744e1ecce5bd2a2a582fccd5068309eb + languageName: node + linkType: hard + +"state-local@npm:^1.0.6": + version: 1.0.7 + resolution: "state-local@npm:1.0.7" + checksum: d1afcf1429e7e6eb08685b3a94be8797db847369316d4776fd51f3962b15b984dacc7f8e401ad20968e5798c9565b4b377afedf4e4c4d60fe7495e1cbe14a251 + languageName: node + linkType: hard + +"stop-iteration-iterator@npm:^1.0.0": + version: 1.0.0 + resolution: "stop-iteration-iterator@npm:1.0.0" + dependencies: + internal-slot: ^1.0.4 + checksum: d04173690b2efa40e24ab70e5e51a3ff31d56d699550cfad084104ab3381390daccb36652b25755e420245f3b0737de66c1879eaa2a8d4fc0a78f9bf892fcb42 + languageName: node + linkType: hard + +"streamsearch@npm:^1.1.0": + version: 1.1.0 + resolution: "streamsearch@npm:1.1.0" + checksum: 1cce16cea8405d7a233d32ca5e00a00169cc0e19fbc02aa839959985f267335d435c07f96e5e0edd0eadc6d39c98d5435fb5bbbdefc62c41834eadc5622ad942 + languageName: node + linkType: hard + +"string-env-interpolation@npm:1.0.1, string-env-interpolation@npm:^1.0.1": + version: 1.0.1 + resolution: "string-env-interpolation@npm:1.0.1" + checksum: d126329587f635bee65300e4451e7352b9b67e03daeb62f006ca84244cac12a1f6e45176b018653ba0c3ec3b5d980f9ca59d2eeed99cf799501cdaa7f871dc6f + languageName: node + linkType: hard + +"string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": + version: 4.2.3 + resolution: "string-width@npm:4.2.3" + dependencies: + emoji-regex: ^8.0.0 + is-fullwidth-code-point: ^3.0.0 + strip-ansi: ^6.0.1 + checksum: e52c10dc3fbfcd6c3a15f159f54a90024241d0f149cf8aed2982a2d801d2e64df0bf1dc351cf8e95c3319323f9f220c16e740b06faecd53e2462df1d2b5443fb + languageName: node + linkType: hard + +"string.prototype.matchall@npm:^4.0.8": + version: 4.0.8 + resolution: "string.prototype.matchall@npm:4.0.8" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + get-intrinsic: ^1.1.3 + has-symbols: ^1.0.3 + internal-slot: ^1.0.3 + regexp.prototype.flags: ^1.4.3 + side-channel: ^1.0.4 + checksum: 952da3a818de42ad1c10b576140a5e05b4de7b34b8d9dbf00c3ac8c1293e9c0f533613a39c5cda53e0a8221f2e710bc2150e730b1c2278d60004a8a35726efb6 + languageName: node + linkType: hard + +"string.prototype.trim@npm:^1.2.7": + version: 1.2.7 + resolution: "string.prototype.trim@npm:1.2.7" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: 05b7b2d6af63648e70e44c4a8d10d8cc457536df78b55b9d6230918bde75c5987f6b8604438c4c8652eb55e4fc9725d2912789eb4ec457d6995f3495af190c09 + languageName: node + linkType: hard + +"string.prototype.trimend@npm:^1.0.6": + version: 1.0.6 + resolution: "string.prototype.trimend@npm:1.0.6" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: 0fdc34645a639bd35179b5a08227a353b88dc089adf438f46be8a7c197fc3f22f8514c1c9be4629b3cd29c281582730a8cbbad6466c60f76b5f99cf2addb132e + languageName: node + linkType: hard + +"string.prototype.trimstart@npm:^1.0.6": + version: 1.0.6 + resolution: "string.prototype.trimstart@npm:1.0.6" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: 89080feef416621e6ef1279588994305477a7a91648d9436490d56010a1f7adc39167cddac7ce0b9884b8cdbef086987c4dcb2960209f2af8bac0d23ceff4f41 + languageName: node + linkType: hard + +"string_decoder@npm:^1.1.1": + version: 1.3.0 + resolution: "string_decoder@npm:1.3.0" + dependencies: + safe-buffer: ~5.2.0 + checksum: 8417646695a66e73aefc4420eb3b84cc9ffd89572861fe004e6aeb13c7bc00e2f616247505d2dbbef24247c372f70268f594af7126f43548565c68c117bdeb56 + languageName: node + linkType: hard + +"strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": + version: 6.0.1 + resolution: "strip-ansi@npm:6.0.1" + dependencies: + ansi-regex: ^5.0.1 + checksum: f3cd25890aef3ba6e1a74e20896c21a46f482e93df4a06567cebf2b57edabb15133f1f94e57434e0a958d61186087b1008e89c94875d019910a213181a14fc8c + languageName: node + linkType: hard + +"strip-bom@npm:^3.0.0": + version: 3.0.0 + resolution: "strip-bom@npm:3.0.0" + checksum: 8d50ff27b7ebe5ecc78f1fe1e00fcdff7af014e73cf724b46fb81ef889eeb1015fc5184b64e81a2efe002180f3ba431bdd77e300da5c6685d702780fbf0c8d5b + languageName: node + linkType: hard + +"strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1": + version: 3.1.1 + resolution: "strip-json-comments@npm:3.1.1" + checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 + languageName: node + linkType: hard + +"style-to-object@npm:^0.4.0": + version: 0.4.1 + resolution: "style-to-object@npm:0.4.1" + dependencies: + inline-style-parser: 0.1.1 + checksum: 2ea213e98eed21764ae1d1dc9359231a9f2d480d6ba55344c4c15eb275f0809f1845786e66d4caf62414a5cc8f112ce9425a58d251c77224060373e0db48f8c2 + languageName: node + linkType: hard + +"styled-components@npm:5.3.9": + version: 5.3.9 + resolution: "styled-components@npm:5.3.9" + dependencies: + "@babel/helper-module-imports": ^7.0.0 + "@babel/traverse": ^7.4.5 + "@emotion/is-prop-valid": ^1.1.0 + "@emotion/stylis": ^0.8.4 + "@emotion/unitless": ^0.7.4 + babel-plugin-styled-components: ">= 1.12.0" + css-to-react-native: ^3.0.0 + hoist-non-react-statics: ^3.0.0 + shallowequal: ^1.1.0 + supports-color: ^5.5.0 + peerDependencies: + react: ">= 16.8.0" + react-dom: ">= 16.8.0" + react-is: ">= 16.8.0" + checksum: 404311cc7028259218674d3f9f39bdda2342fc02f2ebbba8f057ef560b2ad205c5bd63b82deed4d0bf217ac7eb960d0e1127510b0b606e32cbd5a48c10373ce8 + languageName: node + linkType: hard + +"styled-container-query@npm:1.3.5": + version: 1.3.5 + resolution: "styled-container-query@npm:1.3.5" + dependencies: + classnames: ^2.2.6 + hoist-non-react-statics: ^3.3.2 + resize-observer: ^1.0.0 + shorthash: 0.0.2 + peerDependencies: + react: ^16.9.0 + react-dom: ^16.9.0 + styled-components: ^4.3.2 + checksum: 4bc8e046234ce39b33df199603bf4a3887abb5239966d5b3904b45b79889385320bd0df7129a0805c945947aa692ca6b950296d041ee68b6b667f912926c3b77 + languageName: node + linkType: hard + +"stylis@npm:4.1.3": + version: 4.1.3 + resolution: "stylis@npm:4.1.3" + checksum: d04dbffcb9bf2c5ca8d8dc09534203c75df3bf711d33973ea22038a99cc475412a350b661ebd99cbc01daa50d7eedcf0d130d121800eb7318759a197023442a6 + languageName: node + linkType: hard + +"supports-color@npm:^5.3.0, supports-color@npm:^5.5.0": + version: 5.5.0 + resolution: "supports-color@npm:5.5.0" + dependencies: + has-flag: ^3.0.0 + checksum: 95f6f4ba5afdf92f495b5a912d4abee8dcba766ae719b975c56c084f5004845f6f5a5f7769f52d53f40e21952a6d87411bafe34af4a01e65f9926002e38e1dac + languageName: node + linkType: hard + +"supports-color@npm:^7.1.0": + version: 7.2.0 + resolution: "supports-color@npm:7.2.0" + dependencies: + has-flag: ^4.0.0 + checksum: 3dda818de06ebbe5b9653e07842d9479f3555ebc77e9a0280caf5a14fb877ffee9ed57007c3b78f5a6324b8dbeec648d9e97a24e2ed9fdb81ddc69ea07100f4a + languageName: node + linkType: hard + +"supports-preserve-symlinks-flag@npm:^1.0.0": + version: 1.0.0 + resolution: "supports-preserve-symlinks-flag@npm:1.0.0" + checksum: 53b1e247e68e05db7b3808b99b892bd36fb096e6fba213a06da7fab22045e97597db425c724f2bbd6c99a3c295e1e73f3e4de78592289f38431049e1277ca0ae + languageName: node + linkType: hard + +"swap-case@npm:^2.0.2": + version: 2.0.2 + resolution: "swap-case@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: 6e21c9e1b3cd5735eb2af679a99ec3efc78a14e3d4d5e3fd594e254b91cfd37185b3d1c6e41b22f53a2cdf5d1b963ce30c0fe8b78337e3fd43d0137084670a5f + languageName: node + linkType: hard + +"symbol-observable@npm:^4.0.0": + version: 4.0.0 + resolution: "symbol-observable@npm:4.0.0" + checksum: 212c7edce6186634d671336a88c0e0bbd626c2ab51ed57498dc90698cce541839a261b969c2a1e8dd43762133d47672e8b62e0b1ce9cf4157934ba45fd172ba8 + languageName: node + linkType: hard + +"tabbable@npm:^6.0.1": + version: 6.1.1 + resolution: "tabbable@npm:6.1.1" + checksum: 348639497262241ce8e0ccb0664ea582a386183107299ee8f27cf7b56bc84f36e09eaf667d3cb4201e789634012a91f7129bcbd49760abe874fbace35b4cf429 + languageName: node + linkType: hard + +"tar@npm:^6.1.11, tar@npm:^6.1.2": + version: 6.1.13 + resolution: "tar@npm:6.1.13" + dependencies: + chownr: ^2.0.0 + fs-minipass: ^2.0.0 + minipass: ^4.0.0 + minizlib: ^2.1.1 + mkdirp: ^1.0.3 + yallist: ^4.0.0 + checksum: 8a278bed123aa9f53549b256a36b719e317c8b96fe86a63406f3c62887f78267cea9b22dc6f7007009738509800d4a4dccc444abd71d762287c90f35b002eb1c + languageName: node + linkType: hard + +"text-table@npm:^0.2.0": + version: 0.2.0 + resolution: "text-table@npm:0.2.0" + checksum: b6937a38c80c7f84d9c11dd75e49d5c44f71d95e810a3250bd1f1797fc7117c57698204adf676b71497acc205d769d65c16ae8fa10afad832ae1322630aef10a + languageName: node + linkType: hard + +"through@npm:^2.3.6, through@npm:^2.3.8": + version: 2.3.8 + resolution: "through@npm:2.3.8" + checksum: a38c3e059853c494af95d50c072b83f8b676a9ba2818dcc5b108ef252230735c54e0185437618596c790bbba8fcdaef5b290405981ffa09dce67b1f1bf190cbd + languageName: node + linkType: hard + +"title-case@npm:^3.0.3": + version: 3.0.3 + resolution: "title-case@npm:3.0.3" + dependencies: + tslib: ^2.0.3 + checksum: e8b7ea006b53cf3208d278455d9f1e22c409459d7f9878da324fa3b18cc0aef8560924c19c744e870394a5d9cddfdbe029ebae9875909ee7f4fc562e7cbfc53e + languageName: node + linkType: hard + +"tmp@npm:^0.0.33": + version: 0.0.33 + resolution: "tmp@npm:0.0.33" + dependencies: + os-tmpdir: ~1.0.2 + checksum: 902d7aceb74453ea02abbf58c203f4a8fc1cead89b60b31e354f74ed5b3fb09ea817f94fb310f884a5d16987dd9fa5a735412a7c2dd088dd3d415aa819ae3a28 + languageName: node + linkType: hard + +"to-fast-properties@npm:^2.0.0": + version: 2.0.0 + resolution: "to-fast-properties@npm:2.0.0" + checksum: be2de62fe58ead94e3e592680052683b1ec986c72d589e7b21e5697f8744cdbf48c266fa72f6c15932894c10187b5f54573a3bcf7da0bfd964d5caf23d436168 + languageName: node + linkType: hard + +"to-regex-range@npm:^5.0.1": + version: 5.0.1 + resolution: "to-regex-range@npm:5.0.1" + dependencies: + is-number: ^7.0.0 + checksum: f76fa01b3d5be85db6a2a143e24df9f60dd047d151062d0ba3df62953f2f697b16fe5dad9b0ac6191c7efc7b1d9dcaa4b768174b7b29da89d4428e64bc0a20ed + languageName: node + linkType: hard + +"tr46@npm:~0.0.3": + version: 0.0.3 + resolution: "tr46@npm:0.0.3" + checksum: 726321c5eaf41b5002e17ffbd1fb7245999a073e8979085dacd47c4b4e8068ff5777142fc6726d6ca1fd2ff16921b48788b87225cbc57c72636f6efa8efbffe3 + languageName: node + linkType: hard + +"trim-lines@npm:^3.0.0": + version: 3.0.1 + resolution: "trim-lines@npm:3.0.1" + checksum: e241da104682a0e0d807222cc1496b92e716af4db7a002f4aeff33ae6a0024fef93165d49eab11aa07c71e1347c42d46563f91dfaa4d3fb945aa535cdead53ed + languageName: node + linkType: hard + +"trough@npm:^2.0.0": + version: 2.1.0 + resolution: "trough@npm:2.1.0" + checksum: a577bb561c2b401cc0e1d9e188fcfcdf63b09b151ff56a668da12197fe97cac15e3d77d5b51f426ccfd94255744a9118e9e9935afe81a3644fa1be9783c82886 + languageName: node + linkType: hard + +"ts-invariant@npm:^0.10.3": + version: 0.10.3 + resolution: "ts-invariant@npm:0.10.3" + dependencies: + tslib: ^2.1.0 + checksum: bb07d56fe4aae69d8860e0301dfdee2d375281159054bc24bf1e49e513fb0835bf7f70a11351344d213a79199c5e695f37ebbf5a447188a377ce0cd81d91ddb5 + languageName: node + linkType: hard + +"ts-invariant@npm:^0.4.0": + version: 0.4.4 + resolution: "ts-invariant@npm:0.4.4" + dependencies: + tslib: ^1.9.3 + checksum: 58b32fb6b7c479e602e55b9eb63bb99a203c5db09367d3aa7c3cbe000ba62f919eea7f031f55172df9b6d362a6f1a87e906df84b04b8c74c88e507ac58f7a554 + languageName: node + linkType: hard + +"ts-log@npm:^2.2.3": + version: 2.2.5 + resolution: "ts-log@npm:2.2.5" + checksum: 28f78ab15b8555d56c089dbc243327d8ce4331219956242a29fc4cb3bad6bb0cb8234dd17a292381a1b1dba99a7e4849a2181b2e1a303e8247e9f4ca4e284f2d + languageName: node + linkType: hard + +"tsconfig-paths@npm:^3.14.1": + version: 3.14.2 + resolution: "tsconfig-paths@npm:3.14.2" + dependencies: + "@types/json5": ^0.0.29 + json5: ^1.0.2 + minimist: ^1.2.6 + strip-bom: ^3.0.0 + checksum: a6162eaa1aed680537f93621b82399c7856afd10ec299867b13a0675e981acac4e0ec00896860480efc59fc10fd0b16fdc928c0b885865b52be62cadac692447 + languageName: node + linkType: hard + +"tslib@npm:^1.10.0, tslib@npm:^1.8.1, tslib@npm:^1.9.3": + version: 1.14.1 + resolution: "tslib@npm:1.14.1" + checksum: dbe628ef87f66691d5d2959b3e41b9ca0045c3ee3c7c7b906cc1e328b39f199bb1ad9e671c39025bd56122ac57dfbf7385a94843b1cc07c60a4db74795829acd + languageName: node + linkType: hard + +"tslib@npm:^2.0.0, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0, tslib@npm:^2.5.0, tslib@npm:~2.5.0": + version: 2.5.0 + resolution: "tslib@npm:2.5.0" + checksum: ae3ed5f9ce29932d049908ebfdf21b3a003a85653a9a140d614da6b767a93ef94f460e52c3d787f0e4f383546981713f165037dc2274df212ea9f8a4541004e1 + languageName: node + linkType: hard + +"tslib@npm:~2.4.0": + version: 2.4.1 + resolution: "tslib@npm:2.4.1" + checksum: 19480d6e0313292bd6505d4efe096a6b31c70e21cf08b5febf4da62e95c265c8f571f7b36fcc3d1a17e068032f59c269fab3459d6cd3ed6949eafecf64315fca + languageName: node + linkType: hard + +"tsutils@npm:^3.21.0": + version: 3.21.0 + resolution: "tsutils@npm:3.21.0" + dependencies: + tslib: ^1.8.1 + peerDependencies: + typescript: ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + checksum: 1843f4c1b2e0f975e08c4c21caa4af4f7f65a12ac1b81b3b8489366826259323feb3fc7a243123453d2d1a02314205a7634e048d4a8009921da19f99755cdc48 + languageName: node + linkType: hard + +"type-check@npm:^0.4.0, type-check@npm:~0.4.0": + version: 0.4.0 + resolution: "type-check@npm:0.4.0" + dependencies: + prelude-ls: ^1.2.1 + checksum: ec688ebfc9c45d0c30412e41ca9c0cdbd704580eb3a9ccf07b9b576094d7b86a012baebc95681999dd38f4f444afd28504cb3a89f2ef16b31d4ab61a0739025a + languageName: node + linkType: hard + +"type-fest@npm:^0.20.2": + version: 0.20.2 + resolution: "type-fest@npm:0.20.2" + checksum: 4fb3272df21ad1c552486f8a2f8e115c09a521ad7a8db3d56d53718d0c907b62c6e9141ba5f584af3f6830d0872c521357e512381f24f7c44acae583ad517d73 + languageName: node + linkType: hard + +"type-fest@npm:^0.21.3": + version: 0.21.3 + resolution: "type-fest@npm:0.21.3" + checksum: e6b32a3b3877f04339bae01c193b273c62ba7bfc9e325b8703c4ee1b32dc8fe4ef5dfa54bf78265e069f7667d058e360ae0f37be5af9f153b22382cd55a9afe0 + languageName: node + linkType: hard + +"typed-array-length@npm:^1.0.4": + version: 1.0.4 + resolution: "typed-array-length@npm:1.0.4" + dependencies: + call-bind: ^1.0.2 + for-each: ^0.3.3 + is-typed-array: ^1.1.9 + checksum: 2228febc93c7feff142b8c96a58d4a0d7623ecde6c7a24b2b98eb3170e99f7c7eff8c114f9b283085cd59dcd2bd43aadf20e25bba4b034a53c5bb292f71f8956 + languageName: node + linkType: hard + +"typescript@npm:4.9.4": + version: 4.9.4 + resolution: "typescript@npm:4.9.4" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: e782fb9e0031cb258a80000f6c13530288c6d63f1177ed43f770533fdc15740d271554cdae86701c1dd2c83b082cea808b07e97fd68b38a172a83dbf9e0d0ef9 + languageName: node + linkType: hard + +"typescript@npm:5.0.2": + version: 5.0.2 + resolution: "typescript@npm:5.0.2" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: bef1dcd166acfc6934b2ec4d72f93edb8961a5fab36b8dd2aaf6f4f4cd5c0210f2e0850aef4724f3b4913d5aef203a94a28ded731b370880c8bcff7e4ff91fc1 + languageName: node + linkType: hard + +"typescript@patch:typescript@4.9.4#~builtin": + version: 4.9.4 + resolution: "typescript@patch:typescript@npm%3A4.9.4#~builtin::version=4.9.4&hash=23ec76" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 3e2ab0772908676d9b9cb83398c70003a3b08e1c6b3b122409df9f4b520f2fdaefa20c3d7d57dce283fed760ac94b3ce94d4a7fa875127b67852904425a1f0dc + languageName: node + linkType: hard + +"typescript@patch:typescript@5.0.2#~builtin": + version: 5.0.2 + resolution: "typescript@patch:typescript@npm%3A5.0.2#~builtin::version=5.0.2&hash=1f5320" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: bdbf3d0aac0d6cf010fbe0536753dc19f278eb4aba88140dcd25487dfe1c56ca8b33abc0dcd42078790a939b08ebc4046f3e9bb961d77d3d2c3cfa9829da4d53 + languageName: node + linkType: hard + +"ua-parser-js@npm:^0.7.30": + version: 0.7.34 + resolution: "ua-parser-js@npm:0.7.34" + checksum: ddb7b8b590af49f37eaac37579ac98274f59fff3990610f45e33893aa62ce5b8fc265459cb78b9c9fa3fbbbaad5b2d7939303f18cbd7e8c25c96e57009443c42 + languageName: node + linkType: hard + +"unbox-primitive@npm:^1.0.2": + version: 1.0.2 + resolution: "unbox-primitive@npm:1.0.2" + dependencies: + call-bind: ^1.0.2 + has-bigints: ^1.0.2 + has-symbols: ^1.0.3 + which-boxed-primitive: ^1.0.2 + checksum: b7a1cf5862b5e4b5deb091672ffa579aa274f648410009c81cca63fed3b62b610c4f3b773f912ce545bb4e31edc3138975b5bc777fc6e4817dca51affb6380e9 + languageName: node + linkType: hard + +"unc-path-regex@npm:^0.1.2": + version: 0.1.2 + resolution: "unc-path-regex@npm:0.1.2" + checksum: a05fa2006bf4606051c10fc7968f08ce7b28fa646befafa282813aeb1ac1a56f65cb1b577ca7851af2726198d59475bb49b11776036257b843eaacee2860a4ec + languageName: node + linkType: hard + +"unicode-canonical-property-names-ecmascript@npm:^2.0.0": + version: 2.0.0 + resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.0" + checksum: 39be078afd014c14dcd957a7a46a60061bc37c4508ba146517f85f60361acf4c7539552645ece25de840e17e293baa5556268d091ca6762747fdd0c705001a45 + languageName: node + linkType: hard + +"unicode-match-property-ecmascript@npm:^2.0.0": + version: 2.0.0 + resolution: "unicode-match-property-ecmascript@npm:2.0.0" + dependencies: + unicode-canonical-property-names-ecmascript: ^2.0.0 + unicode-property-aliases-ecmascript: ^2.0.0 + checksum: 1f34a7434a23df4885b5890ac36c5b2161a809887000be560f56ad4b11126d433c0c1c39baf1016bdabed4ec54829a6190ee37aa24919aa116dc1a5a8a62965a + languageName: node + linkType: hard + +"unicode-match-property-value-ecmascript@npm:^2.1.0": + version: 2.1.0 + resolution: "unicode-match-property-value-ecmascript@npm:2.1.0" + checksum: 8d6f5f586b9ce1ed0e84a37df6b42fdba1317a05b5df0c249962bd5da89528771e2d149837cad11aa26bcb84c35355cb9f58a10c3d41fa3b899181ece6c85220 + languageName: node + linkType: hard + +"unicode-property-aliases-ecmascript@npm:^2.0.0": + version: 2.1.0 + resolution: "unicode-property-aliases-ecmascript@npm:2.1.0" + checksum: 243524431893649b62cc674d877bd64ef292d6071dd2fd01ab4d5ad26efbc104ffcd064f93f8a06b7e4ec54c172bf03f6417921a0d8c3a9994161fe1f88f815b + languageName: node + linkType: hard + +"unified@npm:^10.0.0": + version: 10.1.2 + resolution: "unified@npm:10.1.2" + dependencies: + "@types/unist": ^2.0.0 + bail: ^2.0.0 + extend: ^3.0.0 + is-buffer: ^2.0.0 + is-plain-obj: ^4.0.0 + trough: ^2.0.0 + vfile: ^5.0.0 + checksum: 053e7c65ede644607f87bd625a299e4b709869d2f76ec8138569e6e886903b6988b21cd9699e471eda42bee189527be0a9dac05936f1d069a5e65d0125d5d756 + languageName: node + linkType: hard + +"unique-filename@npm:^2.0.0": + version: 2.0.1 + resolution: "unique-filename@npm:2.0.1" + dependencies: + unique-slug: ^3.0.0 + checksum: 807acf3381aff319086b64dc7125a9a37c09c44af7620bd4f7f3247fcd5565660ac12d8b80534dcbfd067e6fe88a67e621386dd796a8af828d1337a8420a255f + languageName: node + linkType: hard + +"unique-slug@npm:^3.0.0": + version: 3.0.0 + resolution: "unique-slug@npm:3.0.0" + dependencies: + imurmurhash: ^0.1.4 + checksum: 49f8d915ba7f0101801b922062ee46b7953256c93ceca74303bd8e6413ae10aa7e8216556b54dc5382895e8221d04f1efaf75f945c2e4a515b4139f77aa6640c + languageName: node + linkType: hard + +"unist-util-generated@npm:^2.0.0": + version: 2.0.1 + resolution: "unist-util-generated@npm:2.0.1" + checksum: 6221ad0571dcc9c8964d6b054f39ef6571ed59cc0ce3e88ae97ea1c70afe76b46412a5ffaa91f96814644ac8477e23fb1b477d71f8d70e625728c5258f5c0d99 + languageName: node + linkType: hard + +"unist-util-is@npm:^5.0.0": + version: 5.2.1 + resolution: "unist-util-is@npm:5.2.1" + dependencies: + "@types/unist": ^2.0.0 + checksum: ae76fdc3d35352cd92f1bedc3a0d407c3b9c42599a52ab9141fe89bdd786b51f0ec5a2ab68b93fb532e239457cae62f7e39eaa80229e1cb94875da2eafcbe5c4 + languageName: node + linkType: hard + +"unist-util-position@npm:^4.0.0": + version: 4.0.4 + resolution: "unist-util-position@npm:4.0.4" + dependencies: + "@types/unist": ^2.0.0 + checksum: e7487b6cec9365299695e3379ded270a1717074fa11fd2407c9b934fb08db6fe1d9077ddeaf877ecf1813665f8ccded5171693d3d9a7a01a125ec5cdd5e88691 + languageName: node + linkType: hard + +"unist-util-stringify-position@npm:^3.0.0": + version: 3.0.3 + resolution: "unist-util-stringify-position@npm:3.0.3" + dependencies: + "@types/unist": ^2.0.0 + checksum: dbd66c15183607ca942a2b1b7a9f6a5996f91c0d30cf8966fb88955a02349d9eefd3974e9010ee67e71175d784c5a9fea915b0aa0b0df99dcb921b95c4c9e124 + languageName: node + linkType: hard + +"unist-util-visit-parents@npm:^5.1.1": + version: 5.1.3 + resolution: "unist-util-visit-parents@npm:5.1.3" + dependencies: + "@types/unist": ^2.0.0 + unist-util-is: ^5.0.0 + checksum: 8ecada5978994f846b64658cf13b4092cd78dea39e1ba2f5090a5de842ba4852712c02351a8ae95250c64f864635e7b02aedf3b4a093552bb30cf1bd160efbaa + languageName: node + linkType: hard + +"unist-util-visit@npm:^4.0.0": + version: 4.1.2 + resolution: "unist-util-visit@npm:4.1.2" + dependencies: + "@types/unist": ^2.0.0 + unist-util-is: ^5.0.0 + unist-util-visit-parents: ^5.1.1 + checksum: 95a34e3f7b5b2d4b68fd722b6229972099eb97b6df18913eda44a5c11df8b1e27efe7206dd7b88c4ed244a48c474a5b2e2629ab79558ff9eb936840295549cee + languageName: node + linkType: hard + +"unixify@npm:^1.0.0": + version: 1.0.0 + resolution: "unixify@npm:1.0.0" + dependencies: + normalize-path: ^2.1.1 + checksum: 3be30e48579fc6c7390bd59b4ab9e745fede0c164dfb7351cf710bd1dbef8484b1441186205af6bcb13b731c0c88caf9b33459f7bf8c89e79c046e656ae433f0 + languageName: node + linkType: hard + +"update-browserslist-db@npm:^1.0.10": + version: 1.0.10 + resolution: "update-browserslist-db@npm:1.0.10" + dependencies: + escalade: ^3.1.1 + picocolors: ^1.0.0 + peerDependencies: + browserslist: ">= 4.21.0" + bin: + browserslist-lint: cli.js + checksum: 12db73b4f63029ac407b153732e7cd69a1ea8206c9100b482b7d12859cd3cd0bc59c602d7ae31e652706189f1acb90d42c53ab24a5ba563ed13aebdddc5561a0 + languageName: node + linkType: hard + +"upper-case-first@npm:^2.0.2": + version: 2.0.2 + resolution: "upper-case-first@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: 4487db4701effe3b54ced4b3e4aa4d9ab06c548f97244d04aafb642eedf96a76d5a03cf5f38f10f415531d5792d1ac6e1b50f2a76984dc6964ad530f12876409 + languageName: node + linkType: hard + +"upper-case@npm:^2.0.2": + version: 2.0.2 + resolution: "upper-case@npm:2.0.2" + dependencies: + tslib: ^2.0.3 + checksum: 508723a2b03ab90cf1d6b7e0397513980fab821cbe79c87341d0e96cedefadf0d85f9d71eac24ab23f526a041d585a575cfca120a9f920e44eb4f8a7cf89121c + languageName: node + linkType: hard + +"uri-js@npm:^4.2.2": + version: 4.4.1 + resolution: "uri-js@npm:4.4.1" + dependencies: + punycode: ^2.1.0 + checksum: 7167432de6817fe8e9e0c9684f1d2de2bb688c94388f7569f7dbdb1587c9f4ca2a77962f134ec90be0cc4d004c939ff0d05acc9f34a0db39a3c797dada262633 + languageName: node + linkType: hard + +"urlpattern-polyfill@npm:^6.0.2": + version: 6.0.2 + resolution: "urlpattern-polyfill@npm:6.0.2" + dependencies: + braces: ^3.0.2 + checksum: 564fb223761b67ea76d015f11dfec145db98c71cc35641015d1c9ec164da494b1fab614e652a844e14a72cda31236b9c3a59b22fdcca71166c315ab059fab676 + languageName: node + linkType: hard + +"use-composed-ref@npm:^1.3.0": + version: 1.3.0 + resolution: "use-composed-ref@npm:1.3.0" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + checksum: f771cbadfdc91e03b7ab9eb32d0fc0cc647755711801bf507e891ad38c4bbc5f02b2509acadf9c965ec9c5f2f642fd33bdfdfb17b0873c4ad0a9b1f5e5e724bf + languageName: node + linkType: hard + +"use-immer@npm:0.8.1": + version: 0.8.1 + resolution: "use-immer@npm:0.8.1" + peerDependencies: + immer: ">=2.0.0" + react: ^16.8.0 || ^17.0.1 || ^18.0.0 + checksum: 9ffc1a201a92b6b026c420718e6a00e72ba48b62420bb515927b379bb1d791b5b4766b57c755b4851c0e1f80000e639bc1cf8e73424e44466741c159391d35dd + languageName: node + linkType: hard + +"use-isomorphic-layout-effect@npm:^1.1.1": + version: 1.1.2 + resolution: "use-isomorphic-layout-effect@npm:1.1.2" + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: a6532f7fc9ae222c3725ff0308aaf1f1ddbd3c00d685ef9eee6714fd0684de5cb9741b432fbf51e61a784e2955424864f7ea9f99734a02f237b17ad3e18ea5cb + languageName: node + linkType: hard + +"use-latest@npm:^1.2.1": + version: 1.2.1 + resolution: "use-latest@npm:1.2.1" + dependencies: + use-isomorphic-layout-effect: ^1.1.1 + peerDependencies: + react: ^16.8.0 || ^17.0.0 || ^18.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + checksum: ed3f2ddddf6f21825e2ede4c2e0f0db8dcce5129802b69d1f0575fc1b42380436e8c76a6cd885d4e9aa8e292e60fb8b959c955f33c6a9123b83814a1a1875367 + languageName: node + linkType: hard + +"util-deprecate@npm:^1.0.1": + version: 1.0.2 + resolution: "util-deprecate@npm:1.0.2" + checksum: 474acf1146cb2701fe3b074892217553dfcf9a031280919ba1b8d651a068c9b15d863b7303cb15bd00a862b498e6cf4ad7b4a08fb134edd5a6f7641681cb54a2 + languageName: node + linkType: hard + +"uvu@npm:^0.5.0": + version: 0.5.6 + resolution: "uvu@npm:0.5.6" + dependencies: + dequal: ^2.0.0 + diff: ^5.0.0 + kleur: ^4.0.3 + sade: ^1.7.3 + bin: + uvu: bin.js + checksum: 09460a37975627de9fcad396e5078fb844d01aaf64a6399ebfcfd9e55f1c2037539b47611e8631f89be07656962af0cf48c334993db82b9ae9c3d25ce3862168 + languageName: node + linkType: hard + +"value-or-promise@npm:1.0.12, value-or-promise@npm:^1.0.11, value-or-promise@npm:^1.0.12": + version: 1.0.12 + resolution: "value-or-promise@npm:1.0.12" + checksum: f53a66c75b7447c90bbaf946a757ca09c094629cb80ba742f59c980ec3a69be0a385a0e75505dedb4e757862f1a994ca4beaf083a831f24d3ffb3d4bb18cd1e1 + languageName: node + linkType: hard + +"vfile-location@npm:^4.0.0": + version: 4.1.0 + resolution: "vfile-location@npm:4.1.0" + dependencies: + "@types/unist": ^2.0.0 + vfile: ^5.0.0 + checksum: c894e8e5224170d1f85288f4a1d1ebcee0780823ea2b49d881648ab360ebf01b37ecb09b1c4439a75f9a51f31a9f9742cd045e987763e367c352a1ef7c50d446 + languageName: node + linkType: hard + +"vfile-message@npm:^3.0.0": + version: 3.1.4 + resolution: "vfile-message@npm:3.1.4" + dependencies: + "@types/unist": ^2.0.0 + unist-util-stringify-position: ^3.0.0 + checksum: d0ee7da1973ad76513c274e7912adbed4d08d180eaa34e6bd40bc82459f4b7bc50fcaff41556135e3339995575eac5f6f709aba9332b80f775618ea4880a1367 + languageName: node + linkType: hard + +"vfile@npm:^5.0.0": + version: 5.3.7 + resolution: "vfile@npm:5.3.7" + dependencies: + "@types/unist": ^2.0.0 + is-buffer: ^2.0.0 + unist-util-stringify-position: ^3.0.0 + vfile-message: ^3.0.0 + checksum: 642cce703afc186dbe7cabf698dc954c70146e853491086f5da39e1ce850676fc96b169fcf7898aa3ff245e9313aeec40da93acd1e1fcc0c146dc4f6308b4ef9 + languageName: node + linkType: hard + +"vite@npm:4.2.1": + version: 4.2.1 + resolution: "vite@npm:4.2.1" + dependencies: + esbuild: ^0.17.5 + fsevents: ~2.3.2 + postcss: ^8.4.21 + resolve: ^1.22.1 + rollup: ^3.18.0 + peerDependencies: + "@types/node": ">= 14" + less: "*" + sass: "*" + stylus: "*" + sugarss: "*" + terser: ^5.4.0 + dependenciesMeta: + fsevents: + optional: true + peerDependenciesMeta: + "@types/node": + optional: true + less: + optional: true + sass: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + bin: + vite: bin/vite.js + checksum: 70eb162ffc299017a3c310e3adc95e9661def6b17aafd1f8e5e02e516766060435590dbe3df1e4e95acc3583c728a76e91f07c546221d1e701f1b2b021293f45 + languageName: node + linkType: hard + +"wcwidth@npm:^1.0.1": + version: 1.0.1 + resolution: "wcwidth@npm:1.0.1" + dependencies: + defaults: ^1.0.3 + checksum: 814e9d1ddcc9798f7377ffa448a5a3892232b9275ebb30a41b529607691c0491de47cba426e917a4d08ded3ee7e9ba2f3fe32e62ee3cd9c7d3bafb7754bd553c + languageName: node + linkType: hard + +"web-namespaces@npm:^2.0.0": + version: 2.0.1 + resolution: "web-namespaces@npm:2.0.1" + checksum: b6d9f02f1a43d0ef0848a812d89c83801d5bbad57d8bb61f02eb6d7eb794c3736f6cc2e1191664bb26136594c8218ac609f4069722c6f56d9fc2d808fa9271c6 + languageName: node + linkType: hard + +"web-streams-polyfill@npm:^3.2.1": + version: 3.2.1 + resolution: "web-streams-polyfill@npm:3.2.1" + checksum: b119c78574b6d65935e35098c2afdcd752b84268e18746606af149e3c424e15621b6f1ff0b42b2676dc012fc4f0d313f964b41a4b5031e525faa03997457da02 + languageName: node + linkType: hard + +"webcrypto-core@npm:^1.7.7": + version: 1.7.7 + resolution: "webcrypto-core@npm:1.7.7" + dependencies: + "@peculiar/asn1-schema": ^2.3.6 + "@peculiar/json-schema": ^1.1.12 + asn1js: ^3.0.1 + pvtsutils: ^1.3.2 + tslib: ^2.4.0 + checksum: 1dc5aedb250372dd95e175a671b990ae50e36974f99c4efc85d88e6528c1bc52dd964d44a41b68043c21fb26aabfe8aad4f05a1c39ca28d61de5ca7388413d52 + languageName: node + linkType: hard + +"webidl-conversions@npm:^3.0.0": + version: 3.0.1 + resolution: "webidl-conversions@npm:3.0.1" + checksum: c92a0a6ab95314bde9c32e1d0a6dfac83b578f8fa5f21e675bc2706ed6981bc26b7eb7e6a1fab158e5ce4adf9caa4a0aee49a52505d4d13c7be545f15021b17c + languageName: node + linkType: hard + +"whatwg-fetch@npm:^3.4.1": + version: 3.6.2 + resolution: "whatwg-fetch@npm:3.6.2" + checksum: ee976b7249e7791edb0d0a62cd806b29006ad7ec3a3d89145921ad8c00a3a67e4be8f3fb3ec6bc7b58498724fd568d11aeeeea1f7827e7e1e5eae6c8a275afed + languageName: node + linkType: hard + +"whatwg-url@npm:^5.0.0": + version: 5.0.0 + resolution: "whatwg-url@npm:5.0.0" + dependencies: + tr46: ~0.0.3 + webidl-conversions: ^3.0.0 + checksum: b8daed4ad3356cc4899048a15b2c143a9aed0dfae1f611ebd55073310c7b910f522ad75d727346ad64203d7e6c79ef25eafd465f4d12775ca44b90fa82ed9e2c + languageName: node + linkType: hard + +"which-boxed-primitive@npm:^1.0.2": + version: 1.0.2 + resolution: "which-boxed-primitive@npm:1.0.2" + dependencies: + is-bigint: ^1.0.1 + is-boolean-object: ^1.1.0 + is-number-object: ^1.0.4 + is-string: ^1.0.5 + is-symbol: ^1.0.3 + checksum: 53ce774c7379071729533922adcca47220228405e1895f26673bbd71bdf7fb09bee38c1d6399395927c6289476b5ae0629863427fd151491b71c4b6cb04f3a5e + languageName: node + linkType: hard + +"which-collection@npm:^1.0.1": + version: 1.0.1 + resolution: "which-collection@npm:1.0.1" + dependencies: + is-map: ^2.0.1 + is-set: ^2.0.1 + is-weakmap: ^2.0.1 + is-weakset: ^2.0.1 + checksum: c815bbd163107ef9cb84f135e6f34453eaf4cca994e7ba85ddb0d27cea724c623fae2a473ceccfd5549c53cc65a5d82692de418166df3f858e1e5dc60818581c + languageName: node + linkType: hard + +"which-module@npm:^2.0.0": + version: 2.0.0 + resolution: "which-module@npm:2.0.0" + checksum: 809f7fd3dfcb2cdbe0180b60d68100c88785084f8f9492b0998c051d7a8efe56784492609d3f09ac161635b78ea29219eb1418a98c15ce87d085bce905705c9c + languageName: node + linkType: hard + +"which-typed-array@npm:^1.1.9": + version: 1.1.9 + resolution: "which-typed-array@npm:1.1.9" + dependencies: + available-typed-arrays: ^1.0.5 + call-bind: ^1.0.2 + for-each: ^0.3.3 + gopd: ^1.0.1 + has-tostringtag: ^1.0.0 + is-typed-array: ^1.1.10 + checksum: fe0178ca44c57699ca2c0e657b64eaa8d2db2372a4e2851184f568f98c478ae3dc3fdb5f7e46c384487046b0cf9e23241423242b277e03e8ba3dabc7c84c98ef + languageName: node + linkType: hard + +"which@npm:^2.0.1, which@npm:^2.0.2": + version: 2.0.2 + resolution: "which@npm:2.0.2" + dependencies: + isexe: ^2.0.0 + bin: + node-which: ./bin/node-which + checksum: 1a5c563d3c1b52d5f893c8b61afe11abc3bab4afac492e8da5bde69d550de701cf9806235f20a47b5c8fa8a1d6a9135841de2596535e998027a54589000e66d1 + languageName: node + linkType: hard + +"wide-align@npm:^1.1.5": + version: 1.1.5 + resolution: "wide-align@npm:1.1.5" + dependencies: + string-width: ^1.0.2 || 2 || 3 || 4 + checksum: d5fc37cd561f9daee3c80e03b92ed3e84d80dde3365a8767263d03dacfc8fa06b065ffe1df00d8c2a09f731482fcacae745abfbb478d4af36d0a891fad4834d3 + languageName: node + linkType: hard + +"word-wrap@npm:^1.2.3": + version: 1.2.3 + resolution: "word-wrap@npm:1.2.3" + checksum: 30b48f91fcf12106ed3186ae4fa86a6a1842416df425be7b60485de14bec665a54a68e4b5156647dec3a70f25e84d270ca8bc8cd23182ed095f5c7206a938c1f + languageName: node + linkType: hard + +"wrap-ansi@npm:^6.2.0": + version: 6.2.0 + resolution: "wrap-ansi@npm:6.2.0" + dependencies: + ansi-styles: ^4.0.0 + string-width: ^4.1.0 + strip-ansi: ^6.0.0 + checksum: 6cd96a410161ff617b63581a08376f0cb9162375adeb7956e10c8cd397821f7eb2a6de24eb22a0b28401300bf228c86e50617cd568209b5f6775b93c97d2fe3a + languageName: node + linkType: hard + +"wrap-ansi@npm:^7.0.0": + version: 7.0.0 + resolution: "wrap-ansi@npm:7.0.0" + dependencies: + ansi-styles: ^4.0.0 + string-width: ^4.1.0 + strip-ansi: ^6.0.0 + checksum: a790b846fd4505de962ba728a21aaeda189b8ee1c7568ca5e817d85930e06ef8d1689d49dbf0e881e8ef84436af3a88bc49115c2e2788d841ff1b8b5b51a608b + languageName: node + linkType: hard + +"wrappy@npm:1": + version: 1.0.2 + resolution: "wrappy@npm:1.0.2" + checksum: 159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5 + languageName: node + linkType: hard + +"ws@npm:8.12.1": + version: 8.12.1 + resolution: "ws@npm:8.12.1" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 97301c1c4d838fc81bd413f370f75c12aabe44527b31323b761eab3043a9ecb7e32ffd668548382c9a6a5ad3a1c3a9249608e8338e6b939f2f9540f1e21970b5 + languageName: node + linkType: hard + +"ws@npm:^8.12.0": + version: 8.13.0 + resolution: "ws@npm:8.13.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 53e991bbf928faf5dc6efac9b8eb9ab6497c69feeb94f963d648b7a3530a720b19ec2e0ec037344257e05a4f35bd9ad04d9de6f289615ffb133282031b18c61c + languageName: node + linkType: hard + +"y18n@npm:^4.0.0": + version: 4.0.3 + resolution: "y18n@npm:4.0.3" + checksum: 014dfcd9b5f4105c3bb397c1c8c6429a9df004aa560964fb36732bfb999bfe83d45ae40aeda5b55d21b1ee53d8291580a32a756a443e064317953f08025b1aa4 + languageName: node + linkType: hard + +"y18n@npm:^5.0.5": + version: 5.0.8 + resolution: "y18n@npm:5.0.8" + checksum: 54f0fb95621ee60898a38c572c515659e51cc9d9f787fb109cef6fde4befbe1c4602dc999d30110feee37456ad0f1660fa2edcfde6a9a740f86a290999550d30 + languageName: node + linkType: hard + +"yallist@npm:^3.0.2": + version: 3.1.1 + resolution: "yallist@npm:3.1.1" + checksum: 48f7bb00dc19fc635a13a39fe547f527b10c9290e7b3e836b9a8f1ca04d4d342e85714416b3c2ab74949c9c66f9cebb0473e6bc353b79035356103b47641285d + languageName: node + linkType: hard + +"yallist@npm:^4.0.0": + version: 4.0.0 + resolution: "yallist@npm:4.0.0" + checksum: 343617202af32df2a15a3be36a5a8c0c8545208f3d3dfbc6bb7c3e3b7e8c6f8e7485432e4f3b88da3031a6e20afa7c711eded32ddfb122896ac5d914e75848d5 + languageName: node + linkType: hard + +"yaml-ast-parser@npm:^0.0.43": + version: 0.0.43 + resolution: "yaml-ast-parser@npm:0.0.43" + checksum: fb5df4c067b6ccbd00953a46faf6ff27f0e290d623c712dc41f330251118f110e22cfd184bbff498bd969cbcda3cd27e0f9d0adb9e6d90eb60ccafc0d8e28077 + languageName: node + linkType: hard + +"yaml@npm:^1.10.0": + version: 1.10.2 + resolution: "yaml@npm:1.10.2" + checksum: ce4ada136e8a78a0b08dc10b4b900936912d15de59905b2bf415b4d33c63df1d555d23acb2a41b23cf9fb5da41c256441afca3d6509de7247daa062fd2c5ea5f + languageName: node + linkType: hard + +"yargs-parser@npm:^18.1.2": + version: 18.1.3 + resolution: "yargs-parser@npm:18.1.3" + dependencies: + camelcase: ^5.0.0 + decamelize: ^1.2.0 + checksum: 60e8c7d1b85814594d3719300ecad4e6ae3796748b0926137bfec1f3042581b8646d67e83c6fc80a692ef08b8390f21ddcacb9464476c39bbdf52e34961dd4d9 + languageName: node + linkType: hard + +"yargs-parser@npm:^21.1.1": + version: 21.1.1 + resolution: "yargs-parser@npm:21.1.1" + checksum: ed2d96a616a9e3e1cc7d204c62ecc61f7aaab633dcbfab2c6df50f7f87b393993fe6640d017759fe112d0cb1e0119f2b4150a87305cc873fd90831c6a58ccf1c + languageName: node + linkType: hard + +"yargs@npm:^15.3.1": + version: 15.4.1 + resolution: "yargs@npm:15.4.1" + dependencies: + cliui: ^6.0.0 + decamelize: ^1.2.0 + find-up: ^4.1.0 + get-caller-file: ^2.0.1 + require-directory: ^2.1.1 + require-main-filename: ^2.0.0 + set-blocking: ^2.0.0 + string-width: ^4.2.0 + which-module: ^2.0.0 + y18n: ^4.0.0 + yargs-parser: ^18.1.2 + checksum: 40b974f508d8aed28598087720e086ecd32a5fd3e945e95ea4457da04ee9bdb8bdd17fd91acff36dc5b7f0595a735929c514c40c402416bbb87c03f6fb782373 + languageName: node + linkType: hard + +"yargs@npm:^17.0.0": + version: 17.7.1 + resolution: "yargs@npm:17.7.1" + dependencies: + cliui: ^8.0.1 + escalade: ^3.1.1 + get-caller-file: ^2.0.5 + require-directory: ^2.1.1 + string-width: ^4.2.3 + y18n: ^5.0.5 + yargs-parser: ^21.1.1 + checksum: 3d8a43c336a4942bc68080768664aca85c7bd406f018bad362fd255c41c8f4e650277f42fd65d543fce99e084124ddafee7bbfc1a5c6a8fda4cec78609dcf8d4 + languageName: node + linkType: hard + +"yocto-queue@npm:^0.1.0": + version: 0.1.0 + resolution: "yocto-queue@npm:0.1.0" + checksum: f77b3d8d00310def622123df93d4ee654fc6a0096182af8bd60679ddcdfb3474c56c6c7190817c84a2785648cdee9d721c0154eb45698c62176c322fb46fc700 + languageName: node + linkType: hard + +"zen-observable-ts@npm:^0.8.12, zen-observable-ts@npm:^0.8.21": + version: 0.8.21 + resolution: "zen-observable-ts@npm:0.8.21" + dependencies: + tslib: ^1.9.3 + zen-observable: ^0.8.0 + checksum: 2931628598937effcc77acf88ac8d3468c0584bbc4488726ae2c94f6a02615ff80e9d6dc0943b71bc874466ab371837737ce8245eed3bfea38daa466a2fdc6ce + languageName: node + linkType: hard + +"zen-observable-ts@npm:^1.2.5": + version: 1.2.5 + resolution: "zen-observable-ts@npm:1.2.5" + dependencies: + zen-observable: 0.8.15 + checksum: 3b707b7a0239a9bc40f73ba71b27733a689a957c1f364fabb9fa9cbd7d04b7c2faf0d517bf17004e3ed3f4330ac613e84c0d32313e450ddaa046f3350af44541 + languageName: node + linkType: hard + +"zen-observable@npm:0.8.11": + version: 0.8.11 + resolution: "zen-observable@npm:0.8.11" + checksum: 4b5e61c46cc5fc3906a5f30b6d3ac4c3c92f5101ff2867fd5ab1b147484a4117b440980d86cba22f3a44c9107ea19c6e9cd01789ec641a56b390e58550e1fcd6 + languageName: node + linkType: hard + +"zen-observable@npm:0.8.15, zen-observable@npm:^0.8.0": + version: 0.8.15 + resolution: "zen-observable@npm:0.8.15" + checksum: b7289084bc1fc74a559b7259faa23d3214b14b538a8843d2b001a35e27147833f4107590b1b44bf5bc7f6dfe6f488660d3a3725f268e09b3925b3476153b7821 + languageName: node + linkType: hard + +"zwitch@npm:^2.0.0": + version: 2.0.4 + resolution: "zwitch@npm:2.0.4" + checksum: f22ec5fc2d5f02c423c93d35cdfa83573a3a3bd98c66b927c368ea4d0e7252a500df2a90a6b45522be536a96a73404393c958e945fdba95e6832c200791702b6 + languageName: node + linkType: hard diff --git a/pkg/ui/window.go b/pkg/ui/window.go new file mode 100644 index 00000000..ddb4bb20 --- /dev/null +++ b/pkg/ui/window.go @@ -0,0 +1,48 @@ +//go:build ui || generate + +package ui + +import ( + "context" + + "github.com/wailsapp/wails/v2/pkg/runtime" +) + +const ( + Width = 1024 + Height = 768 +) + +// Window struct +type Window struct { + ctx context.Context +} + +// startup is called when the app starts. The context is saved +// so we can call the runtime methods. +func (this *Window) startup(ctx context.Context) { + this.ctx = ctx +} + +func (this *Window) width() int { + return Width +} + +func (this *Window) height() int { + return Height +} + +// Close closes the application +func (this *Window) Close() { + runtime.Quit(this.ctx) +} + +// SetClipboard allows to copy provided text to OS clipboard +func (this *Window) SetClipboard(text string) error { + return runtime.ClipboardSetText(this.ctx, text) +} + +// NewWindow creates a new App application struct +func NewWindow() *Window { + return &Window{} +} diff --git a/wails.json b/wails.json new file mode 100644 index 00000000..6bbc76ba --- /dev/null +++ b/wails.json @@ -0,0 +1,15 @@ +{ + "$schema": "https://wails.io/schemas/config.v2.json", + "name": "plural", + "appargs": "install", + "outputfilename": "plural", + "frontend:dir": "pkg/ui/web", + "frontend:install": "yarn install", + "frontend:build": "yarn build", + "frontend:dev:watcher": "yarn dev", + "frontend:dev:serverUrl": "auto", + "author": { + "name": "Sebastian Florek", + "email": "sebastian@plural.sh" + } +}