diff --git a/.claude/CLAUDE.md b/.claude/CLAUDE.md index c384ef811..3871dd674 100644 --- a/.claude/CLAUDE.md +++ b/.claude/CLAUDE.md @@ -42,7 +42,7 @@ If a doc above is silent on a question you need to answer, say so explicitly rat ## Three components, three toolchains - **`operator/`** — Go controller-manager (controller-runtime, Kubebuilder v4). Go 1.26.5, vendored (`GOFLAGS=-mod=vendor`). Also hosts the CLI (`cmd/cli`) built as a kubectl plugin. -- **`agent/skyhook-agent/`** — Python 3.10+ package (hatch-managed). Runs inside every package container; reads `/skyhook-package/config.json` and executes lifecycle steps (apply / config / interrupt / post-interrupt / upgrade / uninstall). Tests via pytest, vendored deps under `agent/vendor/`. +- **`agent/`** — Go module (`github.com/NVIDIA/nodewright/agent`), Go 1.27, vendored. A single static binary that runs inside every package container; reads `/skyhook-package/config.json` and executes lifecycle steps (apply / config / interrupt / post-interrupt / upgrade / uninstall). Tests via Ginkgo/Gomega; tooling is installed into `agent/bin/` by `agent/deps.mk`. - **`chart/`** — Helm chart. Generated from `operator/config/` via `helmify` (`make generate-helm`) but hand-edited after; don't regenerate blindly. - **`tools/`**: Go module for release tooling, holding `cmd/openvex` (binds `.openvex.json` to a platform digest and validates it against the OpenVEX v0.2.0 contract) and `tests/releasepolicy`, a nested module pinning the release evidence policy. Two rules: it stays **stdlib-only**, because the release job runs `go run ./cmd/openvex` with a toolchain and no module download, so a dependency turns every release into a fetch; and its tests are **stdlib `testing`**, not Ginkgo. The policy tests live in their own nested module precisely so a YAML parser can be used there without reaching the release path. @@ -91,9 +91,13 @@ go test -mod=vendor -run TestName ./internal/graph/... Agent commands run from `agent/`: ```bash -make venv # one-time: create ./venv and install hatch -make test # hatch test with coverage -make build # hatch build → dist/ +make test lint # exactly what CI's agent lanes run +make test # ginkgo unit tests with coverage, writes to reporting/ +make lint # golangci-lint + license-header check +make build # agent binary → bin/agent +make fmt # gofmt + license headers +make generate-mocks # regenerate mockery mocks — REQUIRED after editing mocked interfaces +make docker-build # local container image from containers/agent.Dockerfile ``` E2E tests use [chainsaw](https://kyverno.github.io/chainsaw/) against a real cluster, driven from `k8s-tests/chainsaw/{skyhook,cli,helm,deployment-policy}`. They require a kind cluster set up via `make create-kind-cluster` (or the 15-node variant for deployment-policy). `operator-agent-tests` additionally requires `AGENT_IMAGE=…` to be set. @@ -102,7 +106,7 @@ E2E tests use [chainsaw](https://kyverno.github.io/chainsaw/) against a real clu Run the make targets CI runs, on your machine, before you push. This applies to a coding agent exactly as it does to a person. -- **CI runs the Makefile, so you should too.** The operator workflow runs `make $MAKE_TARGETS` from `operator/`, and its unit lane is `vet lint unit-tests`. `make vet lint unit-tests` locally is the gate itself, not an approximation of it. Run all three: `make unit-tests` alone does not lint, only `make test` (the heavy full suite) pulls in `fmt vet lint`. For the agent, it is `make test` from `agent/`. Docs-only changes need none of this. +- **CI runs the Makefile, so you should too.** The operator workflow runs `make $MAKE_TARGETS` from `operator/`, and its unit lane is `vet lint unit-tests`. `make vet lint unit-tests` locally is the gate itself, not an approximation of it. Run all three: `make unit-tests` alone does not lint, only `make test` (the heavy full suite) pulls in `fmt vet lint`. For the agent, it is `make test lint` from `agent/`. Docs-only changes need none of this. - **Never reach for raw `go test` / `go build` / `golangci-lint run` instead.** The targets pass `-mod=vendor`, apply license headers, sequence CRD/deepcopy/mock generation, and install most of their own dependencies (envtest, ginkgo, golangci-lint) into `operator/bin/`. A missing tool is not a reason to skip a suite; it means the target was bypassed. `make help` lists the targets. - **Unit tests and lint need nothing external. The e2e suites need a working `kind` and a running container runtime, and the Makefile installs neither.** The kind version is pinned in `operator/versions.yaml`; `DOCKER_CMD` defaults to `docker`, pass `DOCKER_CMD=podman` otherwise. ctlptl and chainsaw are downloaded for you. `make test` additionally needs `AGENT_IMAGE` set to the pin in `chart/values.yaml`: it defaults to an agentless image that passes the agent suite without executing anything. - **On a fork this is the fast path, not the slow one.** Workflow runs from a fork wait for a maintainer to approve them by hand, so pushing to see what CI says can cost hours where the same checks locally cost minutes. @@ -149,17 +153,17 @@ Packages run through stages in this order (from `README.md` §Stages): Semantic versioning is strictly enforced so the operator can detect upgrade vs. downgrade vs. fresh-apply. State is persisted as annotations on the Node (`nodewright.nvidia.com/nodeState_`, where `` is the CR's `metadata.name`), not on the NodeWright CR. -### Agent (Python) +### Agent (Go, `agent/`) The agent is a container entrypoint the operator injects alongside every package. It: -- Reads `/skyhook-package/config.json` (validated against `schemas/`) -- Dispatches to the requested stage/step -- Uses `chroot_exec.py` to run step scripts inside the host root mount -- Writes completion flag files so subsequent stages skip already-done work +- Reads `/skyhook-package/config.json` (validated against the JSON schemas embedded from `internal/config/schemas/`) +- Dispatches to the requested stage/step (`internal/agent`, with `internal/step` and `internal/interrupts` owning the per-step and per-interrupt behaviour) +- Runs step scripts through `internal/command`, inside a chroot of the host root mount, or against the agent's own filesystem for `on_host: false` +- Writes completion flag files (`internal/flags`) so subsequent stages skip already-done work. Both the legacy marker name and a fingerprint marker are written, so state is honoured across `agent/v6.x` (Python) and `v7.x` (Go) in either direction, with the one exception (the Go-only pending `node_restart` marker) recorded in `agent/RELEASE_NOTES.md` - Gates interrupt re-runs on `SKYHOOK_RESOURCE_ID` (unique per package config) -Relevant env vars are documented in `agent/README.md`. +The agent logs with `log/slog`; the `logr` rule in the Go style section below is about the operator. Relevant env vars are documented in `agent/README.md`. ### CLI (`operator/cmd/cli/`) diff --git a/.claude/skills/nodewright-managing-openvex/SKILL.md b/.claude/skills/nodewright-managing-openvex/SKILL.md index bcbcb40bb..d9ec9af53 100644 --- a/.claude/skills/nodewright-managing-openvex/SKILL.md +++ b/.claude/skills/nodewright-managing-openvex/SKILL.md @@ -77,15 +77,12 @@ these images most findings are **not** direct dependencies. Check the artifact type in the scan output first (`.matches[].artifact.type`) and follow it: ```bash -# Go modules (artifact.type == "go-module"): operator, and the Go agent. -grep -n '' operator/go.mod agent/go/go.mod -git log --oneline -5 -- operator/go.mod agent/go/go.mod +# Go modules (artifact.type == "go-module"): operator and agent. +grep -n '' operator/go.mod agent/go.mod +git log --oneline -5 -- operator/go.mod agent/go.mod -# Python packages (artifact.type == "python") in the agent venv. -grep -rn '' agent/skyhook-agent/pyproject.toml agent/vendor/ - -# deb packages and the CPython binary (artifact.type == "deb" or "binary") come -# from the base image, not from our source. Nothing in this repo pins their +# Base-image contents (artifact.type == "deb" or "binary") come from the +# distroless base, not from our source. Nothing in this repo pins their # versions: `scripts/latest-distroless.sh` resolves the newest base at build # time, so "is it fixed on main?" means "does a newer base carry the fix?". grep -n 'DISTROLESS_VERSION\|FROM nvcr.io' containers/agent.Dockerfile containers/operator.Dockerfile diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 59d5d2bd9..283ab4d35 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -5,7 +5,7 @@ ## How this was verified - + diff --git a/.github/actions/dump-operator-agent-diagnostics/action.yml b/.github/actions/dump-operator-agent-diagnostics/action.yml index 7a92da371..4eb08c887 100644 --- a/.github/actions/dump-operator-agent-diagnostics/action.yml +++ b/.github/actions/dump-operator-agent-diagnostics/action.yml @@ -17,8 +17,8 @@ name: Dump operator-agent diagnostics description: > Dump agent pod logs and the agent's on-node state after an operator-agent - chainsaw failure. Shared by the Python and Go suites so a parity failure is - diagnosed from the same evidence on both sides. + chainsaw failure. Shared by every workflow that runs the suite (agent-ci and + operator-ci) so a failure is diagnosed from the same evidence wherever it runs. inputs: node: diff --git a/.github/renovate.json5 b/.github/renovate.json5 index 00e80dd3b..aa1b159f4 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -46,7 +46,7 @@ { // Dependency notices are release artifacts. Refresh them once after all // updates on a branch, and commit only the three generated outputs. - matchManagers: ["gomod", "pep621"], + matchManagers: ["gomod"], postUpgradeTasks: { commands: ["make notices"], fileFilters: [ @@ -111,20 +111,9 @@ }, { matchManagers: ["gomod"], - matchFileNames: ["agent/go/**"], - addLabels: ["component/agent"], - }, - { - matchManagers: ["pep621"], - matchFileNames: ["agent/skyhook-agent/**"], + matchFileNames: ["agent/**"], addLabels: ["component/agent"], }, - { - // The Python compatibility floor is a support decision, not a dependency. - matchManagers: ["pep621"], - matchDepTypes: ["requires-python"], - enabled: false, - }, { matchManagers: ["dockerfile"], matchFileNames: ["containers/**"], diff --git a/.github/workflows/agent-ci.yaml b/.github/workflows/agent-ci.yaml index 92a26b594..f6b80e1e7 100644 --- a/.github/workflows/agent-ci.yaml +++ b/.github/workflows/agent-ci.yaml @@ -21,9 +21,8 @@ on: - main paths: - agent/** - - '!agent/go/**' - - k8s-tests/operator-agent/** - containers/agent.Dockerfile + - k8s-tests/operator-agent/** - .github/actions/** - operator/versions.yaml - operator/versions.sh @@ -36,22 +35,25 @@ on: - agent/* paths: - agent/** - - '!agent/go/**' - - k8s-tests/operator-agent/** - containers/agent.Dockerfile + - k8s-tests/operator-agent/** - .github/actions/** - operator/versions.yaml - operator/versions.sh - scripts/latest-distroless.sh - .github/workflows/agent-ci.yaml + +permissions: + contents: read + env: REGISTRY: ghcr.io IMAGE_NAME: ${{ github.repository }} - PYTHON_VERSION: 3.13 DEBIAN_VERSION: trixie PUSH_TO_REGISTRY: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }} # Opt all JS actions into Node 24 ahead of GitHub's Node 20 phase-out. FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true + jobs: fetch-distroless-versions: name: Resolve Distroless Base Image @@ -62,18 +64,19 @@ jobs: distroless-version: ${{ steps.fetch.outputs.distroless-version }} distroless-digest: ${{ steps.fetch.outputs.distroless-digest }} steps: - - uses: actions/checkout@v7 + - name: Checkout repository + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false - uses: ./.github/actions/setup-oras - - name: Resolve newest published distroless/python + - name: Resolve newest published distroless/static id: fetch run: | - # distroless/python tags carry the interpreter version, e.g. 3.13-v4.0.8. ./scripts/latest-distroless.sh \ - --repo nvcr.io/nvidia/distroless/python \ + --repo nvcr.io/nvidia/distroless/static \ --major 4 \ - --tag-prefix "${PYTHON_VERSION}-" \ --print | tee -a "$GITHUB_OUTPUT" - + compute-metadata: name: Compute Image Metadata runs-on: ubuntu-latest @@ -84,74 +87,100 @@ jobs: tags: ${{ steps.meta.outputs.tags }} steps: - name: Checkout repository - uses: actions/checkout@v7 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false - name: Fetch all tags run: git fetch --tags --force - name: Compute metadata id: meta run: | - export GIT_SHA=$(git rev-parse --short ${{ github.sha }}) - echo "git-sha=${GIT_SHA}" >> $GITHUB_OUTPUT - + GIT_SHA=$(git rev-parse --short ${{ github.sha }}) + echo "git-sha=${GIT_SHA}" >> "$GITHUB_OUTPUT" + case ${{ github.ref_type }} in branch) - # The last tag + current git sha - export AGENT_VERSION=$(git tag --list 'agent*' --sort=-v:refname | head -n 1 | cut -d/ -f2)+${GIT_SHA} - # Convert + to - for docker tag compliance - export AGENT_IMAGE_TAG=$(echo "${AGENT_VERSION}" | tr + -) - TAGS="${GIT_SHA} ${AGENT_IMAGE_TAG}" - ;; + # The last release tag plus the current git sha + AGENT_VERSION=$(git tag --list 'agent/*' --sort=-v:refname | head -n 1 | cut -d/ -f2)+${GIT_SHA} + # Convert + to - for docker tag compliance + AGENT_IMAGE_TAG=$(echo "${AGENT_VERSION}" | tr + -) + TAGS="${GIT_SHA} ${AGENT_IMAGE_TAG}" + ;; tag) - # The version part of the tag - export AGENT_VERSION=$(echo "${{ github.ref_name }}" | cut -f 2 -d /) - export AGENT_IMAGE_TAG="${AGENT_VERSION}" - TAGS="${GIT_SHA} ${AGENT_VERSION}" - ;; + # The version part of the tag. latest is not in this list: the + # create-manifest job moves it only for the newest stable release. + AGENT_VERSION=$(echo "${{ github.ref_name }}" | cut -f 2 -d /) + AGENT_IMAGE_TAG="${AGENT_VERSION}" + TAGS="${GIT_SHA} ${AGENT_VERSION}" + ;; *) - echo "Unknown type ${{ github.ref_type }}" - exit 1 - ;; + echo "Unknown ref type ${{ github.ref_type }}" + exit 1 + ;; esac - - echo "agent-version=${AGENT_VERSION}" >> $GITHUB_OUTPUT - echo "agent-image-tag=${AGENT_IMAGE_TAG}" >> $GITHUB_OUTPUT - echo "tags=${TAGS}" >> $GITHUB_OUTPUT + + echo "agent-version=${AGENT_VERSION}" >> "$GITHUB_OUTPUT" + echo "agent-image-tag=${AGENT_IMAGE_TAG}" >> "$GITHUB_OUTPUT" + echo "tags=${TAGS}" >> "$GITHUB_OUTPUT" echo "📦 Agent Version: ${AGENT_VERSION}" echo "🏷️ Image Tag: ${AGENT_IMAGE_TAG}" echo "🏷️ All Tags: ${TAGS}" - + test: - name: Skyhook Agent Unit Tests + name: Agent Unit Tests runs-on: ubuntu-latest - permissions: - contents: read - issues: read - checks: write - pull-requests: write + container: + image: ubuntu:latest steps: - - uses: actions/checkout@v7 - - name: Set up Python - uses: actions/setup-python@v7 - with: - python-version: ${{ env.PYTHON_VERSION }} - - name: Run unittests + - name: Install test dependencies run: | - cd agent - make test - - name: Generate Summary - uses: test-summary/action@v2.6 - if: always() + apt-get update + apt-get install --yes --no-install-recommends ca-certificates make + - name: Checkout repository + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: - paths: "agent/skyhook-agent/test-results.xml" - output: test-summary.md - - name: Display Summary - if: always() - run: | - cat test-summary.md >> $GITHUB_STEP_SUMMARY - # Build container images on native architecture runners (much faster than QEMU) + persist-credentials: false + - name: Set up Go + uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0 + with: + go-version-file: agent/go.mod + cache-dependency-path: agent/go.sum + - name: Run tests with coverage + working-directory: agent + run: CGO_ENABLED=0 make test + - name: Upload coverage artifact + if: hashFiles('agent/reporting/cover.out') != '' + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 + with: + name: coverage-agent-unit-tests + path: agent/reporting/cover.out + retention-days: 1 + if-no-files-found: ignore + + lint: + name: Agent Lint + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + - name: Set up Go + uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0 + with: + go-version-file: agent/go.mod + cache-dependency-path: agent/go.sum + # make lint installs the golangci-lint pinned in agent/deps.mk and runs the + # license-header check, so CI and a local `make test lint` use the same + # linter version and report the same findings. + - name: Lint + working-directory: agent + run: make lint + build-agent: + name: Build Agent (${{ matrix.platform }}) runs-on: ${{ matrix.runner }} - needs: [test, compute-metadata, fetch-distroless-versions] # Don't run the build and push if the unit tests fail + needs: [test, lint, compute-metadata, fetch-distroless-versions] strategy: matrix: include: @@ -162,76 +191,79 @@ jobs: permissions: contents: read packages: write - attestations: write - id-token: write steps: - name: Checkout repository - uses: actions/checkout@v7 - - name: Fetch all tags - run: git fetch --tags --force + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false - name: Log in to the Container registry - uses: docker/login-action@v4 + uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 - - # Build and tag container image for single platform on native hardware - - name: Build the agent container image (${{ matrix.platform }}) - id: build + uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4.3.0 + - name: Build and smoke-test the agent container image env: GIT_SHA: ${{ needs.compute-metadata.outputs.git-sha }} AGENT_VERSION: ${{ needs.compute-metadata.outputs.agent-version }} PLATFORM: ${{ matrix.platform }} run: | cd agent - PLATFORM_TAG=$(echo "$PLATFORM" | tr '/' '-') - - # Lowercase for Docker compliance - IMAGE_NAME=$(echo "${{env.IMAGE_NAME}}" | tr '[:upper:]' '[:lower:]') - REGISTRY=$(echo "${{env.REGISTRY}}" | tr '[:upper:]' '[:lower:]') - - # Build platform-specific tags for all target tags - TAGS="" - for TAG in ${{ needs.compute-metadata.outputs.tags }}; do - TAGS="$TAGS -t ${REGISTRY}/${IMAGE_NAME}/agent:${TAG}-${PLATFORM_TAG}" - done + GO_VERSION=$(awk '/^go /{go=$2} /^toolchain /{tc=$2; sub(/^go/,"",tc)} END{print (tc!=""?tc:go)}' go.mod) + IMAGE="nodewright-agent:${GIT_SHA}" - if [ "${PUSH_TO_REGISTRY}" = "true" ]; then - PUSH_OR_LOAD="--push" - else - PUSH_OR_LOAD="--load" - echo "Fork PR build: building image without pushing to registry" - fi - set -x + # Built with --load rather than pushed directly: the --version smoke + # test below needs the image present locally, and buildx rejects --load + # together with --push. The platform tags are pushed afterwards. docker buildx build \ --build-arg GIT_SHA=${GIT_SHA} \ --build-arg AGENT_VERSION=${AGENT_VERSION} \ - --build-arg PYTHON_VERSION=${{ env.PYTHON_VERSION }} \ + --build-arg GO_VERSION="${GO_VERSION}" \ --build-arg DEBIAN_VERSION=${{ env.DEBIAN_VERSION }} \ --build-arg DISTROLESS_VERSION=${{ needs.fetch-distroless-versions.outputs.distroless-version }} \ --build-arg DISTROLESS_DIGEST_SUFFIX="@${{ needs.fetch-distroless-versions.outputs.distroless-digest }}" \ - ${PUSH_OR_LOAD} \ + --load \ --platform "$PLATFORM" \ --provenance=false \ - ${TAGS@L} \ - --metadata-file=metadata.json \ + --tag "$IMAGE" \ -f ../containers/agent.Dockerfile . - - echo "digest=$(cat metadata.json | jq -r .\"containerimage.digest\")" >> $GITHUB_OUTPUT + + VERSION_OUTPUT=$(docker run --rm --platform "$PLATFORM" "$IMAGE" --version) + if [ "$VERSION_OUTPUT" != "$AGENT_VERSION" ]; then + echo "Expected agent version ${AGENT_VERSION}, got ${VERSION_OUTPUT}" + exit 1 + fi + + - name: Push platform tags + env: + GIT_SHA: ${{ needs.compute-metadata.outputs.git-sha }} + PLATFORM: ${{ matrix.platform }} + run: | + if [ "${PUSH_TO_REGISTRY}" != "true" ]; then + echo "Fork PR build: image built and smoke-tested without pushing to registry" + exit 0 + fi + + PLATFORM_TAG=$(echo "$PLATFORM" | tr '/' '-') + IMAGE_NAME=$(echo "${{ env.IMAGE_NAME }}" | tr '[:upper:]' '[:lower:]') + REGISTRY=$(echo "${{ env.REGISTRY }}" | tr '[:upper:]' '[:lower:]') + + set -x + for TAG in ${{ needs.compute-metadata.outputs.tags }}; do + FULL_TAG="${REGISTRY}/${IMAGE_NAME}/agent:${TAG}-${PLATFORM_TAG}" + docker tag "nodewright-agent:${GIT_SHA}" "${FULL_TAG}" + docker push "${FULL_TAG}" + done # Create multi-platform manifest from individual architecture builds create-manifest: if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository + name: Create Agent Manifest runs-on: ubuntu-latest needs: [compute-metadata, build-agent] - outputs: - digest: ${{ steps.digest.outputs.digest }} - subject-name: ${{ steps.manifest.outputs.subject-name }} permissions: contents: read packages: write @@ -239,27 +271,26 @@ jobs: id-token: write steps: - name: Checkout repository - uses: actions/checkout@v7 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false - name: Log in to the Container registry - uses: docker/login-action@v4 + uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v4 - - # Create and push multi-platform manifests, then delete platform-specific tags - - name: Create manifests and cleanup + uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4.3.0 + + - name: Create manifests id: manifest run: | - # Lowercase for Docker compliance - IMAGE_NAME=$(echo "${{env.IMAGE_NAME}}" | tr '[:upper:]' '[:lower:]') - REGISTRY=$(echo "${{env.REGISTRY}}" | tr '[:upper:]' '[:lower:]') - - # Create manifest for each tag combining amd64 and arm64 images + IMAGE_NAME=$(echo "${{ env.IMAGE_NAME }}" | tr '[:upper:]' '[:lower:]') + REGISTRY=$(echo "${{ env.REGISTRY }}" | tr '[:upper:]' '[:lower:]') + for TAG in ${{ needs.compute-metadata.outputs.tags }}; do FULL_TAG="${REGISTRY}/${IMAGE_NAME}/agent:${TAG}" echo "📦 Creating manifest for $FULL_TAG" @@ -270,11 +301,9 @@ jobs: echo "✅ Pushed $FULL_TAG" done - echo "subject-name=${REGISTRY}/${IMAGE_NAME}/agent" >> $GITHUB_OUTPUT - - # Note: Platform-specific tags (e.g., v1.0.0-linux-amd64) are left in registry - # as intermediate artifacts. Users should pull the multi-platform manifest tags. - # GitHub Container Registry doesn't easily support programmatic tag deletion. + echo "subject-name=${REGISTRY}/${IMAGE_NAME}/agent" >> "$GITHUB_OUTPUT" + # Platform-specific tags (e.g. v7.0.0-linux-amd64) are left in the + # registry as intermediate artifacts; users pull the manifest tags. echo "✅ Multi-platform manifests created successfully" # latest tracks the newest stable release, so an RC or a patch on an older release line @@ -326,6 +355,10 @@ jobs: arm64-digest: ${{ steps.attest.outputs.arm64-digest }} certificate-identity-regexp: ^https://github.com/${{ github.repository }}/\.github/workflows/agent-ci\.yaml@refs/tags/agent/.*$ + # The operator-side contract suite (k8s-tests/operator-agent/) against the + # image this run just built. operator-ci.yaml runs the same scenarios against + # the released agent pinned in chart/values.yaml; the scenarios are shared, + # never forked. operator-agent-tests: if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository name: Operator Agent Integration Tests @@ -336,19 +369,20 @@ jobs: packages: read steps: - name: Checkout repository - uses: actions/checkout@v7 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: fetch-tags: true fetch-depth: 0 - + persist-credentials: false + - name: Set up Go - uses: actions/setup-go@v7 + uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0 with: go-version-file: operator/go.mod cache-dependency-path: operator/go.sum - + - name: Log in to the Container registry - uses: docker/login-action@v4 + uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} @@ -367,40 +401,40 @@ jobs: run: | cd operator make validate-kind-node-image KIND_NODE_IMAGE_VERSION="$K8S_VERSION" - + - name: Create Kubernetes KinD Cluster - uses: helm/kind-action@v1.15.0 + uses: helm/kind-action@06c1ae10762d3b9c1644e7fe69596ae519e015a2 # v1.15.0 with: version: ${{ steps.k8s-versions.outputs.kind-binary }} node_image: kindest/node:v${{ steps.k8s-versions.outputs.kind-nodeimage }} config: operator/config/local-dev/kind-config.yaml cluster_name: kind - + - name: Restore cached Binaries id: cached-binaries - uses: actions/cache/restore@v6 + uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 with: key: ${{ runner.os }}-${{ runner.arch }}-bin-${{ hashFiles('operator/go.mod', 'operator/deps.mk', 'operator/versions.yaml', 'operator/versions.sh') }} restore-keys: ${{ runner.os }}-${{ runner.arch }}-bin- path: | ${{ github.workspace }}/operator/bin ~/.cache/go-build - + - name: Install dependencies if: steps.cached-binaries.outputs.cache-hit != 'true' run: | cd operator make install-deps - + - name: Save cached Binaries if: steps.cached-binaries.outputs.cache-hit != 'true' - uses: actions/cache/save@v6 + uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 with: key: ${{ runner.os }}-${{ runner.arch }}-bin-${{ hashFiles('operator/go.mod', 'operator/deps.mk', 'operator/versions.yaml', 'operator/versions.sh') }} path: | ${{ github.workspace }}/operator/bin ~/.cache/go-build - + - name: Run operator-agent tests env: AGENT_IMAGE: ${{ format('{0}/{1}/agent:{2}', env.REGISTRY, github.repository, needs.compute-metadata.outputs.agent-image-tag) }} @@ -415,21 +449,55 @@ jobs: if: failure() uses: ./.github/actions/dump-operator-agent-diagnostics - # See operator-ci.yaml's ci-gate for rationale. operator-ci, agent-ci, - # and lint-ci all publish a check named `ci-gate` — GitHub composes - # same-named required checks, so every ci-gate that posts must pass. - # lint-ci has no path filter so a ci-gate always appears on every PR. - # needs: only includes jobs that ALWAYS run. create-manifest and - # operator-agent-tests skip on fork PRs (need GHCR write secrets) — - # including either would make the gate fail red on legitimate skips. + # See operator-ci.yaml's ci-gate for the "skipped == green" rationale, but note + # this gate cannot use the usual shape. The sibling gates exclude conditionally + # skipped jobs from needs:, which is safe when those jobs are incidental -- + # here operator-agent-tests is the whole point of the workflow, and a job + # absent from needs: cannot fail the gate at all. Both registry-dependent jobs + # are therefore included and split out below: required to succeed when they can + # run, required to be skipped when they cannot, so neither a real failure nor a + # silently-missing run reads as green. ci-gate: name: ci-gate - needs: [test, build-agent] + needs: + - fetch-distroless-versions + - compute-metadata + - test + - lint + - build-agent + - create-manifest + - operator-agent-tests if: always() runs-on: ubuntu-latest steps: - name: Verify all required jobs passed + env: + # Passed through the environment rather than interpolated into the jq + # program: a needs result is a fixed enum, but keeping the payload out + # of the script text avoids building a program from workflow context. + # PUSH_TO_REGISTRY is already a workflow-level env var. + RESULTS: ${{ toJSON(needs) }} run: | - results='${{ toJSON(needs) }}' - echo "$results" - echo "$results" | jq -e 'to_entries | all(.value.result == "success")' + set -euo pipefail + echo "$RESULTS" + + # Jobs with no `if:` run on every event, including fork PRs. + echo "$RESULTS" | jq -e ' + to_entries + | map(select(.key != "create-manifest" and .key != "operator-agent-tests")) + | all(.value.result == "success")' + + # create-manifest and operator-agent-tests need GHCR write, so they + # skip on fork PRs. Asserting the expected state in both directions + # keeps a skip from hiding a run that should have happened. + if [ "$PUSH_TO_REGISTRY" = "true" ]; then + echo "$RESULTS" | jq -e ' + to_entries + | map(select(.key == "create-manifest" or .key == "operator-agent-tests")) + | all(.value.result == "success")' + else + echo "$RESULTS" | jq -e ' + to_entries + | map(select(.key == "create-manifest" or .key == "operator-agent-tests")) + | all(.value.result == "skipped")' + fi diff --git a/.github/workflows/agent-go-ci.yaml b/.github/workflows/agent-go-ci.yaml deleted file mode 100644 index 560977681..000000000 --- a/.github/workflows/agent-go-ci.yaml +++ /dev/null @@ -1,436 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 -# -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -name: Agent Go CI -on: - pull_request: - branches: - - main - paths: - - agent/go/** - - containers/agent-go.Dockerfile - - k8s-tests/operator-agent/** - - .github/actions/** - - operator/versions.yaml - - operator/versions.sh - - scripts/latest-distroless.sh - - .github/workflows/agent-go-ci.yaml - push: - branches: - - main - paths: - - agent/go/** - - containers/agent-go.Dockerfile - - k8s-tests/operator-agent/** - - .github/actions/** - - operator/versions.yaml - - operator/versions.sh - - scripts/latest-distroless.sh - - .github/workflows/agent-go-ci.yaml - -permissions: - contents: read - -env: - REGISTRY: ghcr.io - IMAGE_NAME: ${{ github.repository }} - DEBIAN_VERSION: trixie - PUSH_TO_REGISTRY: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }} - # Opt all JS actions into Node 24 ahead of GitHub's Node 20 phase-out. - FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true - -jobs: - fetch-distroless-versions: - name: Resolve Distroless Base Image - runs-on: ubuntu-latest - permissions: - contents: read - outputs: - distroless-version: ${{ steps.fetch.outputs.distroless-version }} - distroless-digest: ${{ steps.fetch.outputs.distroless-digest }} - steps: - - name: Checkout repository - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - with: - persist-credentials: false - - uses: ./.github/actions/setup-oras - - name: Resolve newest published distroless/static - id: fetch - run: | - ./scripts/latest-distroless.sh \ - --repo nvcr.io/nvidia/distroless/static \ - --major 4 \ - --print | tee -a "$GITHUB_OUTPUT" - - compute-metadata: - name: Compute Image Metadata - runs-on: ubuntu-latest - outputs: - git-sha: ${{ steps.meta.outputs.git-sha }} - agent-version: ${{ steps.meta.outputs.agent-version }} - agent-image-tag: ${{ steps.meta.outputs.agent-image-tag }} - tags: ${{ steps.meta.outputs.tags }} - steps: - - name: Checkout repository - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - with: - persist-credentials: false - - name: Fetch all tags - run: git fetch --tags --force - - name: Compute metadata - id: meta - run: | - GIT_SHA=$(git rev-parse --short ${{ github.sha }}) - echo "git-sha=${GIT_SHA}" >> "$GITHUB_OUTPUT" - - AGENT_VERSION=$(git tag --list 'agent/*' --sort=-v:refname | head -n 1 | cut -d/ -f2)+${GIT_SHA} - # Convert + to - for docker tag compliance - AGENT_IMAGE_TAG=$(echo "${AGENT_VERSION}" | tr + -) - TAGS="${GIT_SHA} ${AGENT_IMAGE_TAG}" - - echo "agent-version=${AGENT_VERSION}" >> "$GITHUB_OUTPUT" - echo "agent-image-tag=${AGENT_IMAGE_TAG}" >> "$GITHUB_OUTPUT" - echo "tags=${TAGS}" >> "$GITHUB_OUTPUT" - echo "📦 Agent Version: ${AGENT_VERSION}" - echo "🏷️ Image Tag: ${AGENT_IMAGE_TAG}" - echo "🏷️ All Tags: ${TAGS}" - - test: - name: Agent Go Unit Tests - runs-on: ubuntu-latest - container: - image: ubuntu:latest - steps: - - name: Install test dependencies - run: | - apt-get update - apt-get install --yes --no-install-recommends ca-certificates make - - name: Checkout repository - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - with: - persist-credentials: false - - name: Set up Go - uses: actions/setup-go@v7 - with: - go-version-file: agent/go/go.mod - cache-dependency-path: agent/go/go.sum - - name: Run tests with coverage - working-directory: agent/go - run: CGO_ENABLED=0 make test - - name: Upload coverage artifact - if: hashFiles('agent/go/reporting/cover.out') != '' - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 - with: - name: coverage-agent-go-unit-tests - path: agent/go/reporting/cover.out - retention-days: 1 - if-no-files-found: ignore - - lint: - name: Agent Go Lint - runs-on: ubuntu-latest - steps: - - name: Checkout repository - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - with: - persist-credentials: false - - name: Set up Go - uses: actions/setup-go@v7 - with: - go-version-file: agent/go/go.mod - cache-dependency-path: agent/go/go.sum - - name: Check license headers - working-directory: agent/go - run: make license-header-check - - name: Run golangci-lint - uses: golangci/golangci-lint-action@v9 - with: - version: v2.13.1 ## need to make this auto match - working-directory: agent/go - - build-agent-go: - name: Build Agent Go (${{ matrix.platform }}) - runs-on: ${{ matrix.runner }} - needs: [test, lint, compute-metadata, fetch-distroless-versions] - strategy: - matrix: - include: - - platform: linux/amd64 - runner: ubuntu-latest - - platform: linux/arm64 - runner: ubuntu-24.04-arm - permissions: - contents: read - packages: write - steps: - - name: Checkout repository - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - with: - persist-credentials: false - - name: Log in to the Container registry - uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4.3.0 - - name: Build and smoke-test the agent-go container image - env: - GIT_SHA: ${{ needs.compute-metadata.outputs.git-sha }} - AGENT_VERSION: ${{ needs.compute-metadata.outputs.agent-version }} - PLATFORM: ${{ matrix.platform }} - run: | - cd agent/go - GO_VERSION=$(awk '/^go /{go=$2} /^toolchain /{tc=$2; sub(/^go/,"",tc)} END{print (tc!=""?tc:go)}' go.mod) - IMAGE="nodewright-agent-go:${GIT_SHA}" - - set -x - # Unlike agent-ci's build-agent, this builds with --load rather than - # pushing directly: the --version smoke test below needs the image - # present locally, and buildx rejects --load together with --push. The - # platform tags are pushed afterwards, so GHCR ends up identical. - docker buildx build \ - --build-arg GIT_SHA=${GIT_SHA} \ - --build-arg AGENT_VERSION=${AGENT_VERSION} \ - --build-arg GO_VERSION="${GO_VERSION}" \ - --build-arg DEBIAN_VERSION=${{ env.DEBIAN_VERSION }} \ - --build-arg DISTROLESS_VERSION=${{ needs.fetch-distroless-versions.outputs.distroless-version }} \ - --build-arg DISTROLESS_DIGEST_SUFFIX="@${{ needs.fetch-distroless-versions.outputs.distroless-digest }}" \ - --load \ - --platform "$PLATFORM" \ - --provenance=false \ - --tag "$IMAGE" \ - -f ../../containers/agent-go.Dockerfile . - - VERSION_OUTPUT=$(docker run --rm --platform "$PLATFORM" "$IMAGE" --version) - if [ "$VERSION_OUTPUT" != "$AGENT_VERSION" ]; then - echo "Expected agent version ${AGENT_VERSION}, got ${VERSION_OUTPUT}" - exit 1 - fi - - - name: Push platform tags - env: - GIT_SHA: ${{ needs.compute-metadata.outputs.git-sha }} - PLATFORM: ${{ matrix.platform }} - run: | - if [ "${PUSH_TO_REGISTRY}" != "true" ]; then - echo "Fork PR build: image built and smoke-tested without pushing to registry" - exit 0 - fi - - PLATFORM_TAG=$(echo "$PLATFORM" | tr '/' '-') - IMAGE_NAME=$(echo "${{ env.IMAGE_NAME }}" | tr '[:upper:]' '[:lower:]') - REGISTRY=$(echo "${{ env.REGISTRY }}" | tr '[:upper:]' '[:lower:]') - - set -x - for TAG in ${{ needs.compute-metadata.outputs.tags }}; do - FULL_TAG="${REGISTRY}/${IMAGE_NAME}/agent-go:${TAG}-${PLATFORM_TAG}" - docker tag "nodewright-agent-go:${GIT_SHA}" "${FULL_TAG}" - docker push "${FULL_TAG}" - done - - # Create multi-platform manifest from individual architecture builds - create-manifest: - if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository - name: Create Agent Go Manifest - runs-on: ubuntu-latest - needs: [compute-metadata, build-agent-go] - permissions: - contents: read - packages: write - steps: - - name: Checkout repository - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - with: - persist-credentials: false - - - name: Log in to the Container registry - uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@37fe631027851001ddb9b187196cc803df7f5f0e # v4.3.0 - - # No cosign signing or provenance attestation here, unlike agent-ci's - # create-manifest: those steps are gated on refs/tags/agent/ and agent-go - # has no release tags yet. Add them when it is released, not before. - - name: Create manifests - run: | - IMAGE_NAME=$(echo "${{ env.IMAGE_NAME }}" | tr '[:upper:]' '[:lower:]') - REGISTRY=$(echo "${{ env.REGISTRY }}" | tr '[:upper:]' '[:lower:]') - - for TAG in ${{ needs.compute-metadata.outputs.tags }}; do - FULL_TAG="${REGISTRY}/${IMAGE_NAME}/agent-go:${TAG}" - echo "📦 Creating manifest for $FULL_TAG" - docker manifest create $FULL_TAG \ - ${FULL_TAG}-linux-amd64 \ - ${FULL_TAG}-linux-arm64 - docker manifest push $FULL_TAG - echo "✅ Pushed $FULL_TAG" - done - - echo "✅ Multi-platform manifests created successfully" - - # Parity safety net for the Go cutover: the same chainsaw suite the Python - # agent runs in agent-ci.yaml, pointed at the agent-go image. The suite is the - # operator-side contract, so it is deliberately shared rather than forked -- - # a change under k8s-tests/operator-agent/ triggers both workflows. - operator-agent-go-tests: - if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository - name: Operator Agent Go Integration Tests - runs-on: ubuntu-latest - needs: [compute-metadata, create-manifest] - permissions: - contents: read - packages: read - steps: - - name: Checkout repository - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - with: - fetch-tags: true - fetch-depth: 0 - persist-credentials: false - - - name: Set up Go - uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0 - with: - go-version-file: operator/go.mod - cache-dependency-path: operator/go.sum - - - name: Log in to the Container registry - uses: docker/login-action@dbcb813823bdd20940b903addbd779551569679f # v4.6.0 - with: - registry: ${{ env.REGISTRY }} - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Load Kubernetes test versions - id: k8s-versions - run: | - cd operator - make yq - YQ="$PWD/bin/yq" ./versions.sh --print >> "$GITHUB_OUTPUT" - - - name: Validate KinD node image - env: - K8S_VERSION: ${{ steps.k8s-versions.outputs.kind-nodeimage }} - run: | - cd operator - make validate-kind-node-image KIND_NODE_IMAGE_VERSION="$K8S_VERSION" - - - name: Create Kubernetes KinD Cluster - uses: helm/kind-action@06c1ae10762d3b9c1644e7fe69596ae519e015a2 # v1.15.0 - with: - version: ${{ steps.k8s-versions.outputs.kind-binary }} - node_image: kindest/node:v${{ steps.k8s-versions.outputs.kind-nodeimage }} - config: operator/config/local-dev/kind-config.yaml - cluster_name: kind - - - name: Restore cached Binaries - id: cached-binaries - uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 - with: - key: ${{ runner.os }}-${{ runner.arch }}-bin-${{ hashFiles('operator/go.mod', 'operator/deps.mk', 'operator/versions.yaml', 'operator/versions.sh') }} - restore-keys: ${{ runner.os }}-${{ runner.arch }}-bin- - path: | - ${{ github.workspace }}/operator/bin - ~/.cache/go-build - - - name: Install dependencies - if: steps.cached-binaries.outputs.cache-hit != 'true' - run: | - cd operator - make install-deps - - - name: Save cached Binaries - if: steps.cached-binaries.outputs.cache-hit != 'true' - uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 - with: - key: ${{ runner.os }}-${{ runner.arch }}-bin-${{ hashFiles('operator/go.mod', 'operator/deps.mk', 'operator/versions.yaml', 'operator/versions.sh') }} - path: | - ${{ github.workspace }}/operator/bin - ~/.cache/go-build - - - name: Run operator-agent tests - env: - AGENT_IMAGE: ${{ format('{0}/{1}/agent-go:{2}', env.REGISTRY, github.repository, needs.compute-metadata.outputs.agent-image-tag) }} - run: | - cd operator - export AGENT_IMAGE="${AGENT_IMAGE,,}" - echo "Testing with agent image: ${AGENT_IMAGE}" - make build-cli - make setup-kind-cluster operator-agent-tests - - - name: Dump diagnostics on failure - if: failure() - uses: ./.github/actions/dump-operator-agent-diagnostics - - # See operator-ci.yaml's ci-gate for the "skipped == green" rationale, but note - # this gate cannot use the usual shape. The sibling gates exclude conditionally - # skipped jobs from needs:, which is safe when those jobs are incidental -- - # here operator-agent-go-tests is the whole point of the workflow, and a job - # absent from needs: cannot fail the gate at all. Both registry-dependent jobs - # are therefore included and split out below: required to succeed when they can - # run, required to be skipped when they cannot, so neither a real failure nor a - # silently-missing run reads as green. - ci-gate: - name: ci-gate - needs: - - fetch-distroless-versions - - compute-metadata - - test - - lint - - build-agent-go - - create-manifest - - operator-agent-go-tests - if: always() - runs-on: ubuntu-latest - steps: - - name: Verify all required jobs passed - env: - # Passed through the environment rather than interpolated into the jq - # program: a needs result is a fixed enum, but keeping the payload out - # of the script text avoids building a program from workflow context. - # PUSH_TO_REGISTRY is already a workflow-level env var. - RESULTS: ${{ toJSON(needs) }} - run: | - set -euo pipefail - echo "$RESULTS" - - # Jobs with no `if:` run on every event, including fork PRs. - echo "$RESULTS" | jq -e ' - to_entries - | map(select(.key != "create-manifest" and .key != "operator-agent-go-tests")) - | all(.value.result == "success")' - - # create-manifest and operator-agent-go-tests need GHCR write, so they - # skip on fork PRs. Asserting the expected state in both directions - # keeps a skip from hiding a run that should have happened. - if [ "$PUSH_TO_REGISTRY" = "true" ]; then - echo "$RESULTS" | jq -e ' - to_entries - | map(select(.key == "create-manifest" or .key == "operator-agent-go-tests")) - | all(.value.result == "success")' - else - echo "$RESULTS" | jq -e ' - to_entries - | map(select(.key == "create-manifest" or .key == "operator-agent-go-tests")) - | all(.value.result == "skipped")' - fi diff --git a/.github/workflows/codeql.yaml b/.github/workflows/codeql.yaml index a2e5ffac8..b27361243 100644 --- a/.github/workflows/codeql.yaml +++ b/.github/workflows/codeql.yaml @@ -14,10 +14,9 @@ # See the License for the specific language governing permissions and # limitations under the License. -# CodeQL static analysis for the Go (operator + CLI + agent/go + tools) and -# Python (agent) sources. Runs weekly and on demand. Go uses manual build-mode -# with an explicit build of every module (CodeQL has no build-mode: none for -# Go); Python needs no build. +# CodeQL static analysis for the Go sources (operator + CLI, agent, and tools). +# Runs weekly and on demand. Go uses manual build-mode with an explicit build of +# every module (CodeQL has no build-mode: none for Go). # # `tools` is built too, and is the one module here with no vendor directory: it # has no third-party dependencies, which is what lets the release job run it @@ -49,14 +48,11 @@ jobs: include: - language: go build-mode: manual - - language: python - build-mode: none steps: - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 with: persist-credentials: false - - if: matrix.language == 'go' - uses: actions/setup-go@v7 + - uses: actions/setup-go@b7ad1dad31e06c5925ef5d2fc7ad053ef454303e # v7.0.0 with: go-version-file: operator/go.mod - uses: github/codeql-action/init@1c5b675653bb5c22dbe9b12b556ec555138e09fd # v4.38.1 @@ -64,13 +60,12 @@ jobs: languages: ${{ matrix.language }} build-mode: ${{ matrix.build-mode }} # Manual build for Go: compile every module so CodeQL can trace the - # build. operator and agent/go are vendored; tools is stdlib-only and has - # no vendor directory, so it builds without the flag. - - if: matrix.language == 'go' - run: | + # build. operator and agent are vendored; tools is stdlib-only and has no + # vendor directory, so it builds without the flag. + - run: | set -euo pipefail (cd operator && GOFLAGS=-mod=vendor go build ./...) - (cd agent/go && GOFLAGS=-mod=vendor go build ./...) + (cd agent && GOFLAGS=-mod=vendor go build ./...) (cd tools && go build ./...) - uses: github/codeql-action/analyze@1c5b675653bb5c22dbe9b12b556ec555138e09fd # v4.38.1 with: diff --git a/.github/workflows/lint-ci.yaml b/.github/workflows/lint-ci.yaml index ee742cd18..f47e2ce5b 100644 --- a/.github/workflows/lint-ci.yaml +++ b/.github/workflows/lint-ci.yaml @@ -127,7 +127,6 @@ jobs: --exclude-file ci/lycheeignore \ --exclude-path THIRD_PARTY_NOTICES.md \ --exclude-path agent/THIRD_PARTY_NOTICES.md \ - --exclude-path agent/go/vendor \ --exclude-path agent/vendor \ --exclude-path operator/THIRD_PARTY_NOTICES.md \ --exclude-path operator/vendor \ @@ -162,7 +161,6 @@ jobs: --exclude-file ci/lycheeignore \ --exclude-path THIRD_PARTY_NOTICES.md \ --exclude-path agent/THIRD_PARTY_NOTICES.md \ - --exclude-path agent/go/vendor \ --exclude-path agent/vendor \ --exclude-path operator/THIRD_PARTY_NOTICES.md \ --exclude-path operator/vendor \ diff --git a/.github/workflows/merge-gate.yaml b/.github/workflows/merge-gate.yaml index e011e7b83..fb2b9fe25 100644 --- a/.github/workflows/merge-gate.yaml +++ b/.github/workflows/merge-gate.yaml @@ -36,8 +36,9 @@ jobs: - 'operator/go.mod' - 'operator/go.sum' - 'operator/vendor/**' - - 'agent/go/go.mod' - - 'agent/go/go.sum' + - 'agent/go.mod' + - 'agent/go.sum' + - 'agent/vendor/**' renovate: - '.github/dependabot.yml' - '.github/renovate.json5' @@ -50,12 +51,11 @@ jobs: - 'operator/deps.mk' - 'operator/Makefile' - 'agent/vendor/**' - - 'agent/skyhook-agent/pyproject.toml' - - 'agent/go/go.mod' - - 'agent/go/go.sum' - - 'agent/go/deps.mk' - - 'agent/go/Makefile' - - 'agent/go/LICENSE' + - 'agent/go.mod' + - 'agent/go.sum' + - 'agent/deps.mk' + - 'agent/Makefile' + - 'agent/LICENSE' - 'scripts/generate-notices.py' - 'scripts/generate-notices_test.py' - 'Makefile' @@ -112,20 +112,20 @@ jobs: run: make -C operator license-check - uses: actions/setup-go@v7 with: - go-version-file: agent/go/go.mod + go-version-file: agent/go.mod cache: false - - name: Install go-licenses (agent/go) - run: make -C agent/go go-licenses - - name: Report licenses (agent/go) - working-directory: agent/go + - name: Install go-licenses (agent) + run: make -C agent go-licenses + - name: Report licenses (agent) + working-directory: agent run: | echo "=== Dependency Licenses ===" ./bin/go-licenses report ./... 2>/dev/null | sort -t',' -k3 | column -t -s',' echo "" echo "=== License Summary ===" ./bin/go-licenses report ./... 2>/dev/null | cut -d',' -f3 | sort | uniq -c | sort -rn - - name: Check licenses (agent/go) - run: make -C agent/go license-check + - name: Check licenses (agent) + run: make -C agent license-check verify-notices: needs: [check-paths] diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index fd31f7870..762fbd667 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -157,8 +157,7 @@ jobs: - name: Set up Python uses: actions/setup-python@v7 with: - # Pinned to match agent-ci.yaml PYTHON_VERSION so notices generation - # uses the same interpreter as the agent build. + # scripts/generate-notices.py is a Python script; nothing shipped is. python-version: '3.13' - name: Install go-licenses diff --git a/.github/workflows/tools-ci.yaml b/.github/workflows/tools-ci.yaml index 1b1eb0874..578c21172 100644 --- a/.github/workflows/tools-ci.yaml +++ b/.github/workflows/tools-ci.yaml @@ -83,7 +83,7 @@ jobs: # `make test` runs fmt-check, vet and the unit tests. The targets live in # tools/Makefile rather than being spelled out here, matching how - # agent-go-ci.yaml calls `make test` for its module. + # agent-ci.yaml calls `make test` for its module. # # The release-policy tests execute the real platform-resolution script, # which uses an associative array and so needs bash 4 or newer. The diff --git a/.gitignore b/.gitignore index ac0fabbc8..4dc6f2068 100644 --- a/.gitignore +++ b/.gitignore @@ -14,8 +14,6 @@ docs/superpowers/* .claude/settings.local.json # Generated by 'make notices' (license cache directory) .licenses-cache/ -# Generated by 'make notices' / 'make notices-agent' (pip-licenses venv) -agent/.notices-venv/ __pycache__/ .triage diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 5025b45fb..d7c9c4c59 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -48,7 +48,7 @@ Reference the issue in your PR description (`closes #1234`) so it closes on merg 1. Fork the repository and create a branch from `main`. 2. Make your changes, then run the tests and linters locally. This is a requirement, not a suggestion; see [Running the CI checks locally](#running-the-ci-checks-locally) for the commands and for why running them yourself is faster than waiting on CI. 3. Run `make fmt` to format code and add license headers. -4. When you bump a Go or Python dependency, run `make notices` and commit the refreshed `THIRD_PARTY_NOTICES.md` files alongside your change. See [`docs/contributing/release-process.md`](docs/contributing/release-process.md) for the workflow. +4. When you bump a Go dependency, run `make notices` and commit the refreshed `THIRD_PARTY_NOTICES.md` files alongside your change. See [`docs/contributing/release-process.md`](docs/contributing/release-process.md) for the workflow. 5. Commit with a [Conventional Commits](https://www.conventionalcommits.org/) message, signed and signed off: `git commit -s -S` (see [Developer Certificate of Origin and commit signing](#developer-certificate-of-origin-and-commit-signing)). 6. Open a pull request against `main`. The PR template will guide you through the checklist. @@ -71,8 +71,10 @@ make fmt # gofmt + license headers; CI fails if this leaves a di make test # the full suite: unit + e2e + cli-e2e + helm + operator-agent # Agent (from agent/) -make test # hatch test with coverage -make fmt +make test lint # exactly what CI's agent lanes run +make test # ginkgo unit tests with coverage +make lint # golangci-lint + license check +make fmt # gofmt + license headers # Repo-wide (from the root) make license-header-check # the same gate CI runs @@ -84,9 +86,9 @@ make license-header-check # the same gate CI runs ### Dependency updates -Renovate owns Go module, Go toolchain, Python, and container dependency updates. Dependabot owns GitHub Actions updates because the token used by the self-hosted Renovate workflow cannot modify workflow files. +Renovate owns Go module, Go toolchain, and container dependency updates. Dependabot owns GitHub Actions updates because the token used by the self-hosted Renovate workflow cannot modify workflow files. -The `go` directives in `operator/go.mod` and `agent/go/go.mod` are the source of truth for the toolchain used by CI and release builds. Renovate updates both directives in one standalone pull request, then runs `go mod tidy`, `go mod vendor`, and `make notices` so vendored builds and third-party notices remain reproducible. +The `go` directives in `operator/go.mod` and `agent/go.mod` are the source of truth for the toolchain used by CI and release builds. Renovate updates both directives in one standalone pull request, then runs `go mod tidy`, `go mod vendor`, and `make notices` so vendored builds and third-party notices remain reproducible. Before changing `.github/renovate.json5`, run `make renovate-config-check`. The Renovate workflow can also be dispatched manually with `dryRun` enabled to inspect proposed updates without creating branches or pull requests. @@ -280,12 +282,7 @@ By making a contribution to this project, I certify that: We use [Conventional Commits](https://www.conventionalcommits.org/) for our commit messages. -### Python (Agent) - -We use [Black](https://github.com/psf/black) for Python code style. -For testing, we use [pytest](https://docs.pytest.org/en/stable/). - -### Golang (Operator / CLI) +### Go (Operator / CLI / Agent) We use [gofmt](https://pkg.go.dev/cmd/gofmt) for Golang code style. For testing, we use [Ginkgo](https://github.com/onsi/ginkgo) and [Gomega](https://github.com/onsi/gomega). diff --git a/GOVERNANCE.md b/GOVERNANCE.md index f762b8b10..35f6ca6a6 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -36,7 +36,7 @@ Maintainers have merge rights, make and ratify project decisions, manage release Path-level ownership is authoritative in [`.github/CODEOWNERS`](.github/CODEOWNERS). At a high level the project is organized into: - **Operator** (`operator/`): the controller-manager, CRDs, reconcile loop, and the `kubectl nodewright` CLI under `operator/cmd/cli/`. -- **Agent** (`agent/`): the Python package that runs inside every package container and executes lifecycle steps. +- **Agent** (`agent/`): the Go binary that runs inside every package container and executes lifecycle steps. - **Chart and deployment surface** (`chart/`, `operator/config/`): the Helm chart and the kustomize manifests it mirrors. - **Containers** (`containers/`): base images and container build tooling. - **Documentation** (`docs/`, root project docs): domain concepts and behavioral contracts. diff --git a/Makefile b/Makefile index 057abb278..dcaacfb23 100644 --- a/Makefile +++ b/Makefile @@ -101,7 +101,7 @@ diagrams: ## Regenerate the architecture diagram PNGs from docs/architecture/ima .PHONY: notices notices: ## Regenerate operator/, agent/, and root THIRD_PARTY_NOTICES.md files. $(MAKE) -C operator go-licenses - $(MAKE) -C agent/go go-licenses + $(MAKE) -C agent go-licenses @python3 scripts/generate-notices.py all .PHONY: notices-operator @@ -111,7 +111,7 @@ notices-operator: ## Regenerate only operator/THIRD_PARTY_NOTICES.md. .PHONY: notices-agent notices-agent: ## Regenerate only agent/THIRD_PARTY_NOTICES.md. - $(MAKE) -C agent/go go-licenses + $(MAKE) -C agent go-licenses @python3 scripts/generate-notices.py agent .PHONY: notices-rollup diff --git a/ROADMAP.md b/ROADMAP.md index fd6999129..d98d2ff21 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -40,13 +40,13 @@ v1 is the first release we declare stable and production-ready. It is a promise, ### 2. Feature Completeness -**The shared core: Go agent and OCI/ORAS packages.** 🟡 Completing the Python-to-Go agent rewrite and moving packages to OCI artifacts ([#194](https://github.com/NVIDIA/nodewright/issues/194), [#214](https://github.com/NVIDIA/nodewright/issues/214)–[#222](https://github.com/NVIDIA/nodewright/issues/222)) is the keystone of v1. Today the Python agent is a black box the operator can only run and watch. Once the agent is Go and packages are OCI artifacts, package-handling becomes one shared Go library that all three binaries use, each in its own role: the operator reads a package to drive orchestration (its steps, interrupts, uninstall support, schema, dependencies) without executing it; the CLI uses the same library to validate a package locally before it is applied; the agent streams and applies the layers. +**The shared core: Go agent and OCI/ORAS packages.** 🟡 The Go agent rewrite is complete; moving packages to OCI artifacts ([#194](https://github.com/NVIDIA/nodewright/issues/194), [#214](https://github.com/NVIDIA/nodewright/issues/214)–[#222](https://github.com/NVIDIA/nodewright/issues/222)) is the keystone of v1. Before the rewrite the Python agent was a black box the operator could only run and watch. Now that the agent is Go, once packages are OCI artifacts, package-handling becomes one shared Go library that all three binaries use, each in its own role: the operator reads a package to drive orchestration (its steps, interrupts, uninstall support, schema, dependencies) without executing it; the CLI uses the same library to validate a package locally before it is applied; the agent streams and applies the layers. -The Go agent's internals are largely in place under `agent/go/`: module bootstrap and pure-data types ([#213](https://github.com/NVIDIA/nodewright/issues/213)), the config loader with embedded JSON schemas and step validation ([#214](https://github.com/NVIDIA/nodewright/issues/214)), filesystem/path/log helpers and the package history store ([#215](https://github.com/NVIDIA/nodewright/issues/215)), the `chroot-exec` subcommand and command runners ([#216](https://github.com/NVIDIA/nodewright/issues/216)), `tee` streaming and `run_step` ([#217](https://github.com/NVIDIA/nodewright/issues/217)), `do_interrupt` including the NodeRestart `-15` special case ([#218](https://github.com/NVIDIA/nodewright/issues/218)), and `Run()` on both the Step and Interrupt interfaces. +The Go agent shipped with the cutover ([#222](https://github.com/NVIDIA/nodewright/issues/222)) and lives at `agent/`: module bootstrap and pure-data types ([#213](https://github.com/NVIDIA/nodewright/issues/213)), the config loader with embedded JSON schemas and step validation ([#214](https://github.com/NVIDIA/nodewright/issues/214)), filesystem/path/log helpers and the package history store ([#215](https://github.com/NVIDIA/nodewright/issues/215)), the `chroot-exec` subcommand and command runners ([#216](https://github.com/NVIDIA/nodewright/issues/216)), `tee` streaming and `run_step` ([#217](https://github.com/NVIDIA/nodewright/issues/217)), `do_interrupt` including the NodeRestart `-15` special case ([#218](https://github.com/NVIDIA/nodewright/issues/218)), and `Run()` on both the Step and Interrupt interfaces. -*Remaining on the agent:* the controller `main`/`agent_main` entrypoint and CLI parsing ([#219](https://github.com/NVIDIA/nodewright/issues/219)), the `agent-go` Dockerfile and container CI ([#220](https://github.com/NVIDIA/nodewright/issues/220)), running the `operator-agent` chainsaw suite against the Go image ([#221](https://github.com/NVIDIA/nodewright/issues/221)), and the cutover that flips the default to Go and deletes the Python agent ([#222](https://github.com/NVIDIA/nodewright/issues/222)). 🔴 The OCI/ORAS package format itself ([#194](https://github.com/NVIDIA/nodewright/issues/194)) has not started. +The entrypoint and CLI parsing ([#219](https://github.com/NVIDIA/nodewright/issues/219)), the container build and CI ([#220](https://github.com/NVIDIA/nodewright/issues/220)), the `operator-agent` chainsaw suite against the Go image ([#221](https://github.com/NVIDIA/nodewright/issues/221)) and the cutover itself ([#222](https://github.com/NVIDIA/nodewright/issues/222)) have all landed. 🔴 The OCI/ORAS package format itself ([#194](https://github.com/NVIDIA/nodewright/issues/194)) has not started. -This cutover must complete before GA. Shipping v1 on the Python agent and swapping the runtime to Go afterward would be too disruptive for users, so the cutover is a v1 blocker rather than a 1.x follow-up. +The cutover landed ahead of GA, so v1 ships on the Go agent rather than swapping the runtime out from under users afterwards. **Bring-your-own, discovered interrupts.** 🔴 Interrupts stop being a fixed enum the operator and agent both hardcode (NoOp, NodeRestart, ServiceRestart). A package declares its own interrupt, and the operator discovers what a package needs by reading it. The package becomes the source of truth; the operator orchestrates whatever it finds. Interrupts configured in the spec do not go away: they become an **override** of the discovered behavior, so an operator can force or suppress an interrupt when they need to deviate from what the package reports. diff --git a/THIRD_PARTY_NOTICES.md b/THIRD_PARTY_NOTICES.md index f4874d154..2b3ae36fb 100644 --- a/THIRD_PARTY_NOTICES.md +++ b/THIRD_PARTY_NOTICES.md @@ -20054,59 +20054,24 @@ Apache license: Agent tag: `agent/v6.4.2` -### Python Dependencies - -| Package | Version | License | Source | -|---|---|---|---| -| `jsonschema` | 4.23.0 | MIT License | https://github.com/python-jsonschema/jsonschema | - -#### License Texts - -##### jsonschema 4.23.0 - -* License: MIT License -* Source: https://github.com/python-jsonschema/jsonschema - -```text -Copyright (c) 2013 Julian Berman - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -``` - ### Go Dependencies | Package | License | Source | |---|---|---| -| `github.com/santhosh-tekuri/jsonschema/v6` | Apache-2.0 | https://github.com/NVIDIA/nodewright/blob/HEAD/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/LICENSE | -| `github.com/stretchr/objx` | MIT | https://github.com/NVIDIA/nodewright/blob/HEAD/agent/go/vendor/github.com/stretchr/objx/LICENSE | -| `github.com/stretchr/testify` | MIT | https://github.com/NVIDIA/nodewright/blob/HEAD/agent/go/vendor/github.com/stretchr/testify/LICENSE | -| `github.com/stretchr/testify/internal/difflib` | BSD-3-Clause | https://github.com/NVIDIA/nodewright/blob/HEAD/agent/go/vendor/github.com/stretchr/testify/internal/difflib/LICENSE | -| `github.com/stretchr/testify/internal/spew` | ISC | https://github.com/NVIDIA/nodewright/blob/HEAD/agent/go/vendor/github.com/stretchr/testify/internal/spew/LICENSE | -| `go.yaml.in/yaml/v3` | MIT | https://github.com/NVIDIA/nodewright/blob/HEAD/agent/go/vendor/go.yaml.in/yaml/v3/LICENSE | -| `golang.org/x/text` | BSD-3-Clause | https://github.com/NVIDIA/nodewright/blob/HEAD/agent/go/vendor/golang.org/x/text/LICENSE | +| `github.com/santhosh-tekuri/jsonschema/v6` | Apache-2.0 | https://github.com/NVIDIA/nodewright/blob/HEAD/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/LICENSE | +| `github.com/stretchr/objx` | MIT | https://github.com/NVIDIA/nodewright/blob/HEAD/agent/vendor/github.com/stretchr/objx/LICENSE | +| `github.com/stretchr/testify` | MIT | https://github.com/NVIDIA/nodewright/blob/HEAD/agent/vendor/github.com/stretchr/testify/LICENSE | +| `github.com/stretchr/testify/internal/difflib` | BSD-3-Clause | https://github.com/NVIDIA/nodewright/blob/HEAD/agent/vendor/github.com/stretchr/testify/internal/difflib/LICENSE | +| `github.com/stretchr/testify/internal/spew` | ISC | https://github.com/NVIDIA/nodewright/blob/HEAD/agent/vendor/github.com/stretchr/testify/internal/spew/LICENSE | +| `go.yaml.in/yaml/v3` | MIT | https://github.com/NVIDIA/nodewright/blob/HEAD/agent/vendor/go.yaml.in/yaml/v3/LICENSE | +| `golang.org/x/text` | BSD-3-Clause | https://github.com/NVIDIA/nodewright/blob/HEAD/agent/vendor/golang.org/x/text/LICENSE | #### License Texts ##### github.com/santhosh-tekuri/jsonschema/v6 * License: Apache-2.0 -* Source: https://github.com/NVIDIA/nodewright/blob/HEAD/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/LICENSE +* Source: https://github.com/NVIDIA/nodewright/blob/HEAD/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/LICENSE ###### LICENSE @@ -20291,7 +20256,7 @@ THE SOFTWARE. ##### github.com/stretchr/objx * License: MIT -* Source: https://github.com/NVIDIA/nodewright/blob/HEAD/agent/go/vendor/github.com/stretchr/objx/LICENSE +* Source: https://github.com/NVIDIA/nodewright/blob/HEAD/agent/vendor/github.com/stretchr/objx/LICENSE ###### LICENSE @@ -20323,7 +20288,7 @@ SOFTWARE. ##### github.com/stretchr/testify * License: MIT -* Source: https://github.com/NVIDIA/nodewright/blob/HEAD/agent/go/vendor/github.com/stretchr/testify/LICENSE +* Source: https://github.com/NVIDIA/nodewright/blob/HEAD/agent/vendor/github.com/stretchr/testify/LICENSE ###### LICENSE @@ -20354,7 +20319,7 @@ SOFTWARE. ##### github.com/stretchr/testify/internal/difflib * License: BSD-3-Clause -* Source: https://github.com/NVIDIA/nodewright/blob/HEAD/agent/go/vendor/github.com/stretchr/testify/internal/difflib/LICENSE +* Source: https://github.com/NVIDIA/nodewright/blob/HEAD/agent/vendor/github.com/stretchr/testify/internal/difflib/LICENSE ###### LICENSE @@ -20391,7 +20356,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ##### github.com/stretchr/testify/internal/spew * License: ISC -* Source: https://github.com/NVIDIA/nodewright/blob/HEAD/agent/go/vendor/github.com/stretchr/testify/internal/spew/LICENSE +* Source: https://github.com/NVIDIA/nodewright/blob/HEAD/agent/vendor/github.com/stretchr/testify/internal/spew/LICENSE ###### LICENSE @@ -20416,7 +20381,7 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ##### go.yaml.in/yaml/v3 * License: MIT -* Source: https://github.com/NVIDIA/nodewright/blob/HEAD/agent/go/vendor/go.yaml.in/yaml/v3/LICENSE +* Source: https://github.com/NVIDIA/nodewright/blob/HEAD/agent/vendor/go.yaml.in/yaml/v3/LICENSE ###### LICENSE @@ -20494,7 +20459,7 @@ limitations under the License. ##### golang.org/x/text * License: BSD-3-Clause -* Source: https://github.com/NVIDIA/nodewright/blob/HEAD/agent/go/vendor/golang.org/x/text/LICENSE +* Source: https://github.com/NVIDIA/nodewright/blob/HEAD/agent/vendor/golang.org/x/text/LICENSE ###### LICENSE diff --git a/agent/.dockerignore b/agent/.dockerignore index 30ff25440..1c07ab9a9 100644 --- a/agent/.dockerignore +++ b/agent/.dockerignore @@ -1,14 +1,4 @@ -go/ -venv -root_mount -root - -__pycache__ -.pytest_cache -dist -.coverage -.coverage.* -coverage.xml -test-results.xml - -vendor/lock_file.bak \ No newline at end of file +# More info: https://docs.docker.com/engine/reference/builder/#dockerignore-file +# Ignore build and test binaries. +bin/ +reporting/ diff --git a/agent/.gitignore b/agent/.gitignore index e77d9a4c5..2ec00eaae 100644 --- a/agent/.gitignore +++ b/agent/.gitignore @@ -1,13 +1,2 @@ -venv -root_mount -root - -__pycache__ -.pytest_cache -dist -.coverage -.coverage.* -coverage.xml -test-results.xml - -vendor/lock_file.bak \ No newline at end of file +bin/ +reporting/ diff --git a/agent/go/.golangci.yml b/agent/.golangci.yml similarity index 100% rename from agent/go/.golangci.yml rename to agent/.golangci.yml diff --git a/agent/go/.mockery.yaml b/agent/.mockery.yaml similarity index 100% rename from agent/go/.mockery.yaml rename to agent/.mockery.yaml diff --git a/agent/go/LICENSE b/agent/LICENSE similarity index 100% rename from agent/go/LICENSE rename to agent/LICENSE diff --git a/agent/Makefile b/agent/Makefile index c9ca8ca8e..ed7fc1675 100644 --- a/agent/Makefile +++ b/agent/Makefile @@ -1,10 +1,12 @@ -# Copyright (c) NVIDIA CORPORATION. All rights reserved. +# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 +# # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # -# http://www.apache.org/licenses/LICENSE-2.0 +# http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, @@ -12,52 +14,43 @@ # See the License for the specific language governing permissions and # limitations under the License. -VENV := ./venv/bin/ -REGISTRY ?= ghcr.io -AGENT_IMAGE ?= nvidia/nodewright/agent -DOCKER_CMD ?= docker -PYTHON_VERSION ?= 3.13 -DEBIAN_VERSION ?= trixie -DISTROLESS_VERSION ?= 4.0.1 +include deps.mk + +SHELL = /usr/bin/env bash -o pipefail +.SHELLFLAGS = -ec + +GO ?= go +BINARY_DIR ?= ./bin +AGENT_BINARY ?= $(BINARY_DIR)/agent +REPORTING ?= $(shell pwd)/reporting +COVERAGE_DATA_DIR ?= $(REPORTING)/coverdata +COVDATA = $(shell $(GO) tool -n covdata >/dev/null 2>&1 && echo "$(GO) tool covdata" || echo "$(GO) run $(shell $(GO) env GOROOT)/src/cmd/covdata") .PHONY: all -all: venv test +all: build +##@ General .PHONY: help help: ## Display this help. @awk 'BEGIN {FS = ":.*##"; printf "\n\033[1;31mUsage:\033[0m\n make \033[3;1;36m\033[0m\n"} /^[a-zA-Z_0-9-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1;31m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST) -.PHONY: venv -venv: ## Sets up a python venv at `./venv` - python3 -m venv venv - $(VENV)pip install hatch coverage - $(VENV)hatch config set dirs.project "[\"$(shell pwd)\"]" - -##@ Test -.PHONY: test -test: venv ## Test using hatch, prints coverage and outputs a report to coverage.xml - $(VENV)hatch -p skyhook-agent test --cover-quiet --junit-xml=test-results.xml - $(VENV)coverage report --show-missing --data-file=skyhook-agent/.coverage - $(VENV)coverage xml --data-file=skyhook-agent/.coverage +##@ Development -## The agent target owns both the legacy Python sources and the Go rewrite. -## Enumerating tracked files avoids rewriting vendored dependencies or local virtualenvs. +## addlicense takes explicit paths, so enumerate tracked sources from agent/ rather +## than letting it walk outside this component or rewrite untracked local files. LICENSE_HOLDER ?= NVIDIA CORPORATION & AFFILIATES LICENSE_TEMPLATE ?= ../scripts/license-header.tmpl -ADDLICENSE ?= $(CURDIR)/go/bin/addlicense license_files = git ls-files -- '*.go' '*.py' '*.sh' '*.yaml' '*.yml' 'Dockerfile' '*.Dockerfile' \ - | grep -vE '^(vendor|go/vendor)/' - -.PHONY: addlicense -addlicense: - $(MAKE) -C go addlicense + | grep -vE '^vendor/' .PHONY: license-fmt -license-fmt: addlicense ## Add the Apache-2.0 header to tracked agent source files. +license-fmt: addlicense ## Add the Apache-2.0 header to any agent Go source file missing one. $(license_files) | xargs $(ADDLICENSE) -c "$(LICENSE_HOLDER)" -f $(LICENSE_TEMPLATE) +## addlicense -check accepts any license marker, so verify the required SPDX +## identifier separately for every non-generated tracked source. .PHONY: license-header-check -license-header-check: addlicense ## Fail if a tracked agent source file is missing an Apache-2.0 header. +license-header-check: addlicense ## Fail if any agent Go source file is missing an Apache-2.0 header. $(license_files) | xargs $(ADDLICENSE) -check -c "$(LICENSE_HOLDER)" -f $(LICENSE_TEMPLATE) @wrong=$$($(license_files) | while read -r f; do \ grep -qE '^.{1,2} Code generated .* DO NOT EDIT\.$$' "$$f" && continue; \ @@ -68,47 +61,108 @@ license-header-check: addlicense ## Fail if a tracked agent source file is missi fi .PHONY: fmt -fmt: license-fmt ## Format agent source files. - @echo "formattted" +fmt: license-fmt ## Format go files and update license headers. + $(GO) fmt ./... + +.PHONY: generate-mocks +generate-mocks: mockery ## Generate interface mocks. + $(MOCKERY) --config .mockery.yaml + $(MAKE) fmt + +.PHONY: vet +vet: ## Run go vet against code. + $(GO) vet ./... + +.PHONY: test +test: unit-tests ## Run unit tests and report coverage. + $(MAKE) merge-coverage + @test -f $(REPORTING)/cover.out || { echo "Coverage output was not generated" >&2; exit 1; } + $(GO) tool cover -func=$(REPORTING)/cover.out + +.PHONY: reporting +reporting: $(REPORTING) + +$(REPORTING): + mkdir -p $@ + +# Command and step tests re-execute covered test binaries. GOCOVERDIR prevents +# runtime warnings from those child processes. +.PHONY: unit-tests +unit-tests: reporting ginkgo ## Run Ginkgo/Gomega unit tests with coverage. + rm -rf $(COVERAGE_DATA_DIR) + mkdir -p $(COVERAGE_DATA_DIR) + GOCOVERDIR=$(abspath $(COVERAGE_DATA_DIR)) $(GINKGO) run --cover --coverprofile=unit.coverprofile --output-dir=$(REPORTING) ./... + +.PHONY: merge-coverage +merge-coverage: reporting ## Merge test coverage profiles. + rm -f $(REPORTING)/cover.out $(REPORTING)/raw.coverprofile $(REPORTING)/temp-cover.out + @if [ -d "$(COVERAGE_DATA_DIR)" ] && [ -n "$$(ls -A $(COVERAGE_DATA_DIR) 2>/dev/null)" ]; then \ + $(COVDATA) textfmt -i=$(abspath $(COVERAGE_DATA_DIR)) -o=$(REPORTING)/raw.coverprofile; \ + fi + @if ls $(REPORTING)/*.coverprofile 1> /dev/null 2>&1; then \ + cat $(REPORTING)/*.coverprofile > $(REPORTING)/temp-cover.out; \ + echo "mode: set" > $(REPORTING)/cover.out; \ + tail -n +2 $(REPORTING)/temp-cover.out | sed '/mode: set/d' >> $(REPORTING)/cover.out; \ + rm -f $(REPORTING)/temp-cover.out; \ + else \ + echo "No coverage files found - skipping merge"; \ + fi + +## go-licenses v2 refuses to resolve standard-library packages rather than skipping +## them, so pass the same ignore list the notices generator uses: every std package +## by full path (a bare `go` prefix would also match go.opentelemetry.io and friends) +## plus this module. +GO_LICENSES_IGNORE = $$(go list std | paste -sd, -),$$(go list -m) + +.PHONY: license-check +license-check: go-licenses ## Run go-licenses check against code. + $(GO_LICENSES) check --allowed_licenses=MIT,BSD-2-Clause,BSD-3-Clause,Apache-2.0,ISC,Zlib --ignore=$(GO_LICENSES_IGNORE) ./... + +.PHONY: lint +lint: golangci-lint license-header-check ## Run golangci-lint. + $(GOLANGCI_LINT) run ./... + +.PHONY: lint-fix +lint-fix: golangci-lint ## Run golangci-lint and apply fixes. + $(GOLANGCI_LINT) run --fix ./... ##@ Build .PHONY: build -build: ## Builds using hatch to `dist` - $(VENV)hatch -p skyhook-agent version $(build_version) - $(VENV)hatch -p skyhook-agent build -c - -docker-setup: - test ! $($(DOCKER_CMD) context ls | grep builder) || $(DOCKER_CMD) context create builder; - $(DOCKER_CMD) buildx create --platform linux/amd64,linux/arm64 --use builder - $(DOCKER_CMD) run --privileged --rm tonistiigi/binfmt --install amd64,arm64 - -GIT_SHA=$(shell git rev-parse --short HEAD) -ACTUAL_TAGS=$(shell echo "-t $(REGISTRY)/$(AGENT_IMAGE):$(shell date +%y.%m.%d-%H%M%S)-$(GIT_SHA) $(TAGS)" | tr A-Z a-z) -.PHONY: docker-build-only -docker-build-only: - @echo "Building skyhook-agent $(DOCKER_CMD) image with tags: $(ACTUAL_TAGS)" - $(DOCKER_CMD) buildx build $(BUILD_ARGS) --build-arg AGENT_VERSION=$(AGENT_VERSION) \ +build: ## Build agent binary. + mkdir -p $(BINARY_DIR) + $(GO) build -o $(AGENT_BINARY) ./cmd/agent + +##@ Container + +REGISTRY ?= ghcr.io +AGENT_IMAGE ?= nvidia/nodewright/agent +DOCKER_CMD ?= docker +DEBIAN_VERSION ?= trixie +DISTROLESS_VERSION ?= 4.0.1 +# The toolchain directive wins over the go directive when present, matching how +# agent-ci.yaml picks the builder image. +GO_VERSION ?= $(shell awk '/^go /{go=$$2} /^toolchain /{tc=$$2; sub(/^go/,"",tc)} END{print (tc!=""?tc:go)}' go.mod) +GIT_SHA ?= $(shell git rev-parse --short HEAD) +AGENT_LAST_TAG := $(shell git tag --list 'agent/*' --sort=-v:refname | head -n 1 | cut -d/ -f2) +# A shallow clone has no agent/* tag; without the fallback the image tag would +# start with a dash and docker would reject it. +AGENT_VERSION ?= $(if $(AGENT_LAST_TAG),$(AGENT_LAST_TAG),v0.0.0)+$(GIT_SHA) +AGENT_IMAGE_TAG ?= $(subst +,-,$(AGENT_VERSION)) + +.PHONY: docker-build +docker-build: ## Build the agent container image for the local platform as $(REGISTRY)/$(AGENT_IMAGE):$(AGENT_IMAGE_TAG). + $(DOCKER_CMD) build \ --build-arg GIT_SHA=$(GIT_SHA) \ - --build-arg DISTROLESS_VERSION=$(DISTROLESS_VERSION) \ - --build-arg PYTHON_VERSION=$(PYTHON_VERSION) \ + --build-arg AGENT_VERSION=$(AGENT_VERSION) \ + --build-arg GO_VERSION=$(GO_VERSION) \ --build-arg DEBIAN_VERSION=$(DEBIAN_VERSION) \ - --platform linux/amd64,linux/arm64 $(ACTUAL_TAGS) --metadata-file=metadata.json -f ../containers/agent.Dockerfile . - -##@ Vendor -.PHONY: vendor -vendor: ## Uses Unearth to vendor all dependencies locally. - python3 -m venv ./venv_vendor - ./venv_vendor/bin/pip install unearth toml - dependencies=$(shell python -c 'import toml; print(" ".join(toml.loads(open("skyhook-agent/pyproject.toml","r").read())["project"]["dependencies"]))') - rm -rf vendor - mkdir -p vendor - for dep in $(dependencies); do \ - ./venv_vendor/bin/unearth --no-binary -d ./vendor $(dep) >> vendor/lock_file; \ - done + --build-arg DISTROLESS_VERSION=$(DISTROLESS_VERSION) \ + -t $(REGISTRY)/$(AGENT_IMAGE):$(AGENT_IMAGE_TAG) \ + -f ../containers/agent.Dockerfile . ##@ Clean .PHONY: clean -clean: ## Removes all pycache and venv directories from your local copy. - rm -rf __pycache__ - rm -rf venv - rm -rf venv_vendor +clean: ## Remove local build artifacts. + rm -rf $(BINARY_DIR) + rm -rf $(LOCALBIN) + rm -rf $(REPORTING) diff --git a/agent/README.md b/agent/README.md index 54b58e296..11ef888e1 100644 --- a/agent/README.md +++ b/agent/README.md @@ -1,25 +1,35 @@ +# NodeWright agent -A basic example of using a container overlay +The agent is the Go binary the operator injects into every package container. +It reads `/skyhook-package/config.json`, runs the package's lifecycle steps and +interrupts against the host through the mounted root filesystem, and records +what it has completed on the host so a retry or a later stage can skip it. ## Development -### To build locally: - -1. `make test` -1. `make build` +The module is `github.com/NVIDIA/nodewright/agent`, vendored, with its tooling +installed into `bin/` by `deps.mk` on first use. + +```bash +make test lint # exactly what CI's agent lanes run +make test # Ginkgo/Gomega unit tests with coverage, written to reporting/ +make lint # golangci-lint plus the license-header check +make build # bin/agent +make fmt # gofmt plus license headers +make generate-mocks # regenerate the mockery mocks after editing a mocked interface +make docker-build # local container image from ../containers/agent.Dockerfile +``` ### Development workflow -1. Do code changes -1. Write unit tests for code changes -1. Run `make test` to run the tests -1. Run `make fmt` to format the code -1. Push code to and make an MR +1. Make the change and write or update its unit tests. +1. Run `make test lint`. +1. Run `make fmt`. +1. Open a pull request. -### Go agent execution contracts +### Execution contracts -The Go rewrite under `agent/go` shares execution policy between steps and -interrupts through `execution.Config`. A `Config` composes the host root mount, +Steps and interrupts share execution policy through `execution.Config`. A `Config` composes the host root mount, the package directories inside that host, and the stdout and stderr writers that receive raw command output. Non-host steps resolve those directories through the mounted host root before execution. Operations report @@ -33,7 +43,7 @@ overwrite matching keys from a package's configured `env`. For host steps, `STEP_ROOT` and `SKYHOOK_DIR` are host-absolute paths. For non-host steps, they are paths inside the agent container, resolved through the mounted host root. -Each Go interrupt owns its command construction and execution. The `Interrupt` +Each interrupt owns its command construction and execution. The `Interrupt` contract exposes `Type` for the wire identity, `Run` for execution using an `execution.Config`, and `Serialize` for the operator-facing representation. The orchestration layer uses the legacy agent's indexed completion-marker names @@ -47,7 +57,7 @@ Successful steps write both the legacy-compatible completion marker and the Go-native fingerprint marker. Either marker prevents a step from running again, which preserves idempotence when moving between agent implementations. -The Go entrypoint accepts the current operator forms: +The entrypoint accepts the current operator forms: ```text agent MODE ROOT_MOUNT COPY_DIR @@ -76,13 +86,24 @@ operator diagnostics and end-to-end tests consume that output. Before each step that runs, it also prints the legacy-compatible execution header: `MODE PATH ARGUMENTS RETURNCODES IDEMPOTENCE ON_HOST`. -### Container Image Build - -The production legacy image continues to build from -`containers/agent.Dockerfile`. During pre-cutover validation, CI builds and -smoke-tests the Go agent separately from `containers/agent-go.Dockerfile`, but -does not publish it. Agent release tags continue to publish only the production -legacy image until the full cutover. +### Container image build + +`containers/agent.Dockerfile` compiles a static `CGO_ENABLED=0` binary from the +vendored module and copies it into `nvcr.io/nvidia/distroless/static`, running +as root so it can chroot into the host. CI (`.github/workflows/agent-ci.yaml`) +builds it for `linux/amd64` and `linux/arm64`, smoke-tests each with +`agent --version`, pushes a multi-arch manifest to `ghcr.io/nvidia/nodewright/agent`, +and on an `agent/v*` tag also signs it, attaches an SBOM and attests provenance. +`make docker-build` builds the same image locally for the current platform. + +The Python implementation shipped as `agent/v6.x`; the Go implementation +continues the same version stream from `agent/v7.0.0`. Both write and honour +the same on-host state, so a node can move between the two in either direction +without re-running completed steps or interrupts, with one exception: the Go +agent records a started `node_restart` as a pending marker until the host boot +ID changes, and the Python agent does not read that marker, so a reboot the Go +agent started but had not yet confirmed runs once more after a rollback to +`v6.x`. ## Environment variables diff --git a/agent/RELEASE_NOTES.md b/agent/RELEASE_NOTES.md index 9c5a89d11..61a3b3579 100644 --- a/agent/RELEASE_NOTES.md +++ b/agent/RELEASE_NOTES.md @@ -5,8 +5,33 @@ For the full commit-level log see CHANGELOG.md. ## Unreleased +### Breaking + +- **The agent is now implemented in Go, and the Python implementation is + removed.** The next release is `agent/v7.0.0`; `agent/v6.x` images are the + Python agent and stay on GHCR. The operator-facing contract is unchanged: + positional arguments, environment variables, exit codes, and the flag, + history, interrupt-marker and log paths written on the host, as verified by + the operator-agent chainsaw suite that ran against both implementations + before the cutover. Both implementations honour each other's on-host state, + so moving a node between `v6.x` and `v7.x` in either direction does not + re-run completed steps or interrupts, with the single `node_restart` + exception described under Upgrade and Rollback below. + ### Behavior Changes +- **`on_host: false` now takes effect.** The Python agent printed the flag but + ran every step inside the host chroot regardless. The Go agent runs an + `on_host: false` step inside the agent container instead, against the host + paths reached through the root mount, with `STEP_ROOT` and `SKYHOOK_DIR` + resolved accordingly. Packages that set `on_host: false` and relied on it + being ignored will see their step run where the flag said it should. +- **Host log files no longer prefix each line with `[out]`/`[err]` and a + timestamp.** Step and interrupt output is written to the log file as the + script produced it. Anything parsing those files for the prefix must stop + expecting it. +- **`SKYHOOK_AGENT_BUFFER_LIMIT` is no longer read or printed.** It only tuned + the Python agent's stream reader and had no equivalent in Go. - **The CycloneDX SBOM moved from the multi-platform index digest to each platform manifest digest, and an OpenVEX document is now published alongside it.** An SBOM describes exactly one root filesystem, so one attached to a multi-platform index described neither child truthfully, and a consumer who resolved `linux/amd64` and enumerated referrers on that manifest found nothing. **You will notice this if you verify release artifacts.** `cosign verify-attestation --type cyclonedx ` was the documented command and now finds nothing on this release. Resolve the platform manifest and verify against that instead: @@ -19,3 +44,16 @@ For the full commit-level log see CHANGELOG.md. ``` The signature and the SLSA provenance have not moved: both still verify against the index digest, which is what a tag resolves to and what you pull. Tags published before this release keep the old layout, with the SBOM on the index and no OpenVEX document. `SECURITY.md` carries the full recipe. + +### Upgrade and Rollback + +- Rolling back is a matter of pinning the agent image back to image tag + `v6.4.2` (`ghcr.io/nvidia/nodewright/agent:v6.4.2`, through the chart's + `agent.tag` and `agent.digest` or the per-package image in the NodeWright CR; + the git tag `agent/v6.4.2` is not a valid image tag). One caveat: the Go + agent records a started `node_restart` as a pending marker and confirms it by + a changed host boot ID on its next run. + The Python agent does not read that marker, so a node whose reboot the Go + agent started but had not yet confirmed at the moment of rollback will be + rebooted once more by the Python agent. Every other kind of in-flight state + is picked up where it was left. diff --git a/agent/THIRD_PARTY_NOTICES.md b/agent/THIRD_PARTY_NOTICES.md index 6e0d28a54..8c6631e47 100644 --- a/agent/THIRD_PARTY_NOTICES.md +++ b/agent/THIRD_PARTY_NOTICES.md @@ -2,59 +2,24 @@ Agent tag: `agent/v6.4.2` -## Python Dependencies - -| Package | Version | License | Source | -|---|---|---|---| -| `jsonschema` | 4.23.0 | MIT License | https://github.com/python-jsonschema/jsonschema | - -### License Texts - -#### jsonschema 4.23.0 - -* License: MIT License -* Source: https://github.com/python-jsonschema/jsonschema - -```text -Copyright (c) 2013 Julian Berman - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -``` - ## Go Dependencies | Package | License | Source | |---|---|---| -| `github.com/santhosh-tekuri/jsonschema/v6` | Apache-2.0 | https://github.com/NVIDIA/nodewright/blob/HEAD/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/LICENSE | -| `github.com/stretchr/objx` | MIT | https://github.com/NVIDIA/nodewright/blob/HEAD/agent/go/vendor/github.com/stretchr/objx/LICENSE | -| `github.com/stretchr/testify` | MIT | https://github.com/NVIDIA/nodewright/blob/HEAD/agent/go/vendor/github.com/stretchr/testify/LICENSE | -| `github.com/stretchr/testify/internal/difflib` | BSD-3-Clause | https://github.com/NVIDIA/nodewright/blob/HEAD/agent/go/vendor/github.com/stretchr/testify/internal/difflib/LICENSE | -| `github.com/stretchr/testify/internal/spew` | ISC | https://github.com/NVIDIA/nodewright/blob/HEAD/agent/go/vendor/github.com/stretchr/testify/internal/spew/LICENSE | -| `go.yaml.in/yaml/v3` | MIT | https://github.com/NVIDIA/nodewright/blob/HEAD/agent/go/vendor/go.yaml.in/yaml/v3/LICENSE | -| `golang.org/x/text` | BSD-3-Clause | https://github.com/NVIDIA/nodewright/blob/HEAD/agent/go/vendor/golang.org/x/text/LICENSE | +| `github.com/santhosh-tekuri/jsonschema/v6` | Apache-2.0 | https://github.com/NVIDIA/nodewright/blob/HEAD/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/LICENSE | +| `github.com/stretchr/objx` | MIT | https://github.com/NVIDIA/nodewright/blob/HEAD/agent/vendor/github.com/stretchr/objx/LICENSE | +| `github.com/stretchr/testify` | MIT | https://github.com/NVIDIA/nodewright/blob/HEAD/agent/vendor/github.com/stretchr/testify/LICENSE | +| `github.com/stretchr/testify/internal/difflib` | BSD-3-Clause | https://github.com/NVIDIA/nodewright/blob/HEAD/agent/vendor/github.com/stretchr/testify/internal/difflib/LICENSE | +| `github.com/stretchr/testify/internal/spew` | ISC | https://github.com/NVIDIA/nodewright/blob/HEAD/agent/vendor/github.com/stretchr/testify/internal/spew/LICENSE | +| `go.yaml.in/yaml/v3` | MIT | https://github.com/NVIDIA/nodewright/blob/HEAD/agent/vendor/go.yaml.in/yaml/v3/LICENSE | +| `golang.org/x/text` | BSD-3-Clause | https://github.com/NVIDIA/nodewright/blob/HEAD/agent/vendor/golang.org/x/text/LICENSE | ### License Texts #### github.com/santhosh-tekuri/jsonschema/v6 * License: Apache-2.0 -* Source: https://github.com/NVIDIA/nodewright/blob/HEAD/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/LICENSE +* Source: https://github.com/NVIDIA/nodewright/blob/HEAD/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/LICENSE ##### LICENSE @@ -239,7 +204,7 @@ THE SOFTWARE. #### github.com/stretchr/objx * License: MIT -* Source: https://github.com/NVIDIA/nodewright/blob/HEAD/agent/go/vendor/github.com/stretchr/objx/LICENSE +* Source: https://github.com/NVIDIA/nodewright/blob/HEAD/agent/vendor/github.com/stretchr/objx/LICENSE ##### LICENSE @@ -271,7 +236,7 @@ SOFTWARE. #### github.com/stretchr/testify * License: MIT -* Source: https://github.com/NVIDIA/nodewright/blob/HEAD/agent/go/vendor/github.com/stretchr/testify/LICENSE +* Source: https://github.com/NVIDIA/nodewright/blob/HEAD/agent/vendor/github.com/stretchr/testify/LICENSE ##### LICENSE @@ -302,7 +267,7 @@ SOFTWARE. #### github.com/stretchr/testify/internal/difflib * License: BSD-3-Clause -* Source: https://github.com/NVIDIA/nodewright/blob/HEAD/agent/go/vendor/github.com/stretchr/testify/internal/difflib/LICENSE +* Source: https://github.com/NVIDIA/nodewright/blob/HEAD/agent/vendor/github.com/stretchr/testify/internal/difflib/LICENSE ##### LICENSE @@ -339,7 +304,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #### github.com/stretchr/testify/internal/spew * License: ISC -* Source: https://github.com/NVIDIA/nodewright/blob/HEAD/agent/go/vendor/github.com/stretchr/testify/internal/spew/LICENSE +* Source: https://github.com/NVIDIA/nodewright/blob/HEAD/agent/vendor/github.com/stretchr/testify/internal/spew/LICENSE ##### LICENSE @@ -364,7 +329,7 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #### go.yaml.in/yaml/v3 * License: MIT -* Source: https://github.com/NVIDIA/nodewright/blob/HEAD/agent/go/vendor/go.yaml.in/yaml/v3/LICENSE +* Source: https://github.com/NVIDIA/nodewright/blob/HEAD/agent/vendor/go.yaml.in/yaml/v3/LICENSE ##### LICENSE @@ -442,7 +407,7 @@ limitations under the License. #### golang.org/x/text * License: BSD-3-Clause -* Source: https://github.com/NVIDIA/nodewright/blob/HEAD/agent/go/vendor/golang.org/x/text/LICENSE +* Source: https://github.com/NVIDIA/nodewright/blob/HEAD/agent/vendor/golang.org/x/text/LICENSE ##### LICENSE diff --git a/agent/go/cmd/agent/main.go b/agent/cmd/agent/main.go similarity index 100% rename from agent/go/cmd/agent/main.go rename to agent/cmd/agent/main.go diff --git a/agent/go/deps.mk b/agent/deps.mk similarity index 78% rename from agent/go/deps.mk rename to agent/deps.mk index 488509bef..619c542cb 100644 --- a/agent/go/deps.mk +++ b/agent/deps.mk @@ -18,13 +18,18 @@ ## its included in the main makefile, but its a lot to look at these ## plus ci can watch this file to know to build a new build image +# renovate: datasource=github-releases depName=golangci/golangci-lint GOLANGCI_LINT_VERSION ?= v2.13.1 +# renovate: datasource=go depName=github.com/onsi/ginkgo/v2 GINKGO_VERSION ?= v2.32.1 +# renovate: datasource=go depName=github.com/vektra/mockery/v3 MOCKERY_VERSION ?= v3.7.0 # Mockery interprets MOCKERY_VERSION as its boolean version configuration. unexport MOCKERY_VERSION +# renovate: datasource=go depName=github.com/google/addlicense ADDLICENSE_VERSION ?= v1.2.0 -GO_LICENSES_VERSION ?= v1.6.0 +# renovate: datasource=go depName=github.com/google/go-licenses/v2 +GO_LICENSES_VERSION ?= v2.0.1 ## Location to install dependencies to LOCALBIN ?= $(shell pwd)/bin @@ -42,9 +47,13 @@ install-deps: golangci-lint ginkgo mockery addlicense go-licenses ## Install all .PHONY: go-licenses go-licenses: $(LOCALBIN) ## Download go-licenses locally if necessary. + @# Version-checked: v1 picks one license at random from a multi-license file + @# while v2 reports the full set deterministically, so a stale v1 binary + @# produces notices that fail `make notices-check` in CI (see + @# docs/contributing/release-process.md, Third-Party Notices). @test -x $(GO_LICENSES) \ - && go version -m $(GO_LICENSES) | awk '$$1 == "mod" && $$2 == "github.com/google/go-licenses" && $$3 == "$(GO_LICENSES_VERSION)" { found = 1 } END { exit !found }' \ - || GOBIN=$(LOCALBIN) go install github.com/google/go-licenses@$(GO_LICENSES_VERSION) + && go version -m $(GO_LICENSES) | awk '$$1 == "mod" && $$2 == "github.com/google/go-licenses/v2" && $$3 == "$(GO_LICENSES_VERSION)" { found = 1 } END { exit !found }' \ + || GOBIN=$(LOCALBIN) go install github.com/google/go-licenses/v2@$(GO_LICENSES_VERSION) .PHONY: golangci-lint golangci-lint: $(LOCALBIN) ## Download golangci-lint locally if necessary. diff --git a/agent/go/go.mod b/agent/go.mod similarity index 100% rename from agent/go/go.mod rename to agent/go.mod diff --git a/agent/go/go.sum b/agent/go.sum similarity index 100% rename from agent/go/go.sum rename to agent/go.sum diff --git a/agent/go/.dockerignore b/agent/go/.dockerignore deleted file mode 100644 index 1c07ab9a9..000000000 --- a/agent/go/.dockerignore +++ /dev/null @@ -1,4 +0,0 @@ -# More info: https://docs.docker.com/engine/reference/builder/#dockerignore-file -# Ignore build and test binaries. -bin/ -reporting/ diff --git a/agent/go/.gitignore b/agent/go/.gitignore deleted file mode 100644 index 2ec00eaae..000000000 --- a/agent/go/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -bin/ -reporting/ diff --git a/agent/go/Makefile b/agent/go/Makefile deleted file mode 100644 index 7e338e74b..000000000 --- a/agent/go/Makefile +++ /dev/null @@ -1,134 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 -# -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -include deps.mk - -SHELL = /usr/bin/env bash -o pipefail -.SHELLFLAGS = -ec - -GO ?= go -BINARY_DIR ?= ./bin -AGENT_BINARY ?= $(BINARY_DIR)/agent -REPORTING ?= $(shell pwd)/reporting -COVERAGE_DATA_DIR ?= $(REPORTING)/coverdata -COVDATA = $(shell $(GO) tool -n covdata >/dev/null 2>&1 && echo "$(GO) tool covdata" || echo "$(GO) run $(shell $(GO) env GOROOT)/src/cmd/covdata") - -.PHONY: all -all: build - -##@ General -.PHONY: help -help: ## Display this help. - @awk 'BEGIN {FS = ":.*##"; printf "\n\033[1;31mUsage:\033[0m\n make \033[3;1;36m\033[0m\n"} /^[a-zA-Z_0-9-]+:.*?##/ { printf " \033[36m%-15s\033[0m %s\n", $$1, $$2 } /^##@/ { printf "\n\033[1;31m%s\033[0m\n", substr($$0, 5) } ' $(MAKEFILE_LIST) - -##@ Development - -## addlicense takes explicit paths, so enumerate tracked sources from agent/go rather -## than letting it walk outside this component or rewrite untracked local files. -LICENSE_HOLDER ?= NVIDIA CORPORATION & AFFILIATES -LICENSE_TEMPLATE ?= ../../scripts/license-header.tmpl -license_files = git ls-files -- '*.go' '*.py' '*.sh' '*.yaml' '*.yml' 'Dockerfile' '*.Dockerfile' \ - | grep -vE '^vendor/' - -.PHONY: license-fmt -license-fmt: addlicense ## Add the Apache-2.0 header to any agent Go source file missing one. - $(license_files) | xargs $(ADDLICENSE) -c "$(LICENSE_HOLDER)" -f $(LICENSE_TEMPLATE) - -## addlicense -check accepts any license marker, so verify the required SPDX -## identifier separately for every non-generated tracked source. -.PHONY: license-header-check -license-header-check: addlicense ## Fail if any agent Go source file is missing an Apache-2.0 header. - $(license_files) | xargs $(ADDLICENSE) -check -c "$(LICENSE_HOLDER)" -f $(LICENSE_TEMPLATE) - @wrong=$$($(license_files) | while read -r f; do \ - grep -qE '^.{1,2} Code generated .* DO NOT EDIT\.$$' "$$f" && continue; \ - head -20 "$$f" | grep -q 'SPDX-License-Identifier: Apache-2.0' || echo " $$f"; \ - done); \ - if [ -n "$$wrong" ]; then \ - echo "ERROR: header present but not Apache-2.0:"; echo "$$wrong"; exit 1; \ - fi - -.PHONY: fmt -fmt: license-fmt ## Format go files and update license headers. - $(GO) fmt ./... - -.PHONY: generate-mocks -generate-mocks: mockery ## Generate interface mocks. - $(MOCKERY) --config .mockery.yaml - $(MAKE) fmt - -.PHONY: vet -vet: ## Run go vet against code. - $(GO) vet ./... - -.PHONY: test -test: unit-tests ## Run unit tests and report coverage. - $(MAKE) merge-coverage - @test -f $(REPORTING)/cover.out || { echo "Coverage output was not generated" >&2; exit 1; } - $(GO) tool cover -func=$(REPORTING)/cover.out - -.PHONY: reporting -reporting: $(REPORTING) - -$(REPORTING): - mkdir -p $@ - -# Command and step tests re-execute covered test binaries. GOCOVERDIR prevents -# runtime warnings from those child processes. -.PHONY: unit-tests -unit-tests: reporting ginkgo ## Run Ginkgo/Gomega unit tests with coverage. - rm -rf $(COVERAGE_DATA_DIR) - mkdir -p $(COVERAGE_DATA_DIR) - GOCOVERDIR=$(abspath $(COVERAGE_DATA_DIR)) $(GINKGO) run --cover --coverprofile=unit.coverprofile --output-dir=$(REPORTING) ./... - -.PHONY: merge-coverage -merge-coverage: reporting ## Merge test coverage profiles. - rm -f $(REPORTING)/cover.out $(REPORTING)/raw.coverprofile $(REPORTING)/temp-cover.out - @if [ -d "$(COVERAGE_DATA_DIR)" ] && [ -n "$$(ls -A $(COVERAGE_DATA_DIR) 2>/dev/null)" ]; then \ - $(COVDATA) textfmt -i=$(abspath $(COVERAGE_DATA_DIR)) -o=$(REPORTING)/raw.coverprofile; \ - fi - @if ls $(REPORTING)/*.coverprofile 1> /dev/null 2>&1; then \ - cat $(REPORTING)/*.coverprofile > $(REPORTING)/temp-cover.out; \ - echo "mode: set" > $(REPORTING)/cover.out; \ - tail -n +2 $(REPORTING)/temp-cover.out | sed '/mode: set/d' >> $(REPORTING)/cover.out; \ - rm -f $(REPORTING)/temp-cover.out; \ - else \ - echo "No coverage files found - skipping merge"; \ - fi - -.PHONY: license-check -license-check: go-licenses ## Run go-licenses check against code. - $(GO_LICENSES) check --allowed_licenses=MIT,BSD-2-Clause,BSD-3-Clause,Apache-2.0,ISC,Zlib ./... - -.PHONY: lint -lint: golangci-lint license-header-check ## Run golangci-lint. - $(GOLANGCI_LINT) run ./... - -.PHONY: lint-fix -lint-fix: golangci-lint ## Run golangci-lint and apply fixes. - $(GOLANGCI_LINT) run --fix ./... - -##@ Build -.PHONY: build -build: ## Build agent binary. - mkdir -p $(BINARY_DIR) - $(GO) build -o $(AGENT_BINARY) ./cmd/agent - -##@ Clean -.PHONY: clean -clean: ## Remove local build artifacts. - rm -rf $(BINARY_DIR) - rm -rf $(LOCALBIN) - rm -rf $(REPORTING) diff --git a/agent/hatch.toml b/agent/hatch.toml deleted file mode 100644 index e0567e395..000000000 --- a/agent/hatch.toml +++ /dev/null @@ -1,44 +0,0 @@ -mode = "local" - -[envs.default] -dependencies = [ - "coverage[toml]", - "pytest", -] -[envs.default.scripts] -test = "pytest {args:tests}" -test-cov = "coverage run -m pytest {args:tests}" -cov-report = [ - "- coverage combine", - "coverage report --show-missing", -] -cov = [ - "test-cov", - "cov-report", -] - -[[envs.all.matrix]] -python = ["3.13"] - -[envs.lint] -detached = true -dependencies = [ - "black>=22.10.0", - "mypy>=0.991", - "ruff>=0.0.166", -] -[envs.lint.scripts] -typing = "mypy --install-types --non-interactive {args:hatch_vcs tests}" -style = [ - "ruff check {args:.}", - "black --check --diff {args:.}", -] -fmt = [ - "black {args:.}", - "ruff --fix {args:.}", - "style", -] -all = [ - "style", - "typing", -] diff --git a/agent/go/internal/agent/agent.go b/agent/internal/agent/agent.go similarity index 100% rename from agent/go/internal/agent/agent.go rename to agent/internal/agent/agent.go diff --git a/agent/go/internal/agent/agent_test.go b/agent/internal/agent/agent_test.go similarity index 100% rename from agent/go/internal/agent/agent_test.go rename to agent/internal/agent/agent_test.go diff --git a/agent/go/internal/agent/interrupt.go b/agent/internal/agent/interrupt.go similarity index 100% rename from agent/go/internal/agent/interrupt.go rename to agent/internal/agent/interrupt.go diff --git a/agent/go/internal/agent/interrupt_test.go b/agent/internal/agent/interrupt_test.go similarity index 100% rename from agent/go/internal/agent/interrupt_test.go rename to agent/internal/agent/interrupt_test.go diff --git a/agent/go/internal/agent/log.go b/agent/internal/agent/log.go similarity index 100% rename from agent/go/internal/agent/log.go rename to agent/internal/agent/log.go diff --git a/agent/go/internal/agent/log_test.go b/agent/internal/agent/log_test.go similarity index 100% rename from agent/go/internal/agent/log_test.go rename to agent/internal/agent/log_test.go diff --git a/agent/go/internal/agent/package.go b/agent/internal/agent/package.go similarity index 100% rename from agent/go/internal/agent/package.go rename to agent/internal/agent/package.go diff --git a/agent/go/internal/agent/package_test.go b/agent/internal/agent/package_test.go similarity index 100% rename from agent/go/internal/agent/package_test.go rename to agent/internal/agent/package_test.go diff --git a/agent/go/internal/agent/steps.go b/agent/internal/agent/steps.go similarity index 100% rename from agent/go/internal/agent/steps.go rename to agent/internal/agent/steps.go diff --git a/agent/go/internal/agent/steps_test.go b/agent/internal/agent/steps_test.go similarity index 100% rename from agent/go/internal/agent/steps_test.go rename to agent/internal/agent/steps_test.go diff --git a/agent/go/internal/command/chroot_command_runner.go b/agent/internal/command/chroot_command_runner.go similarity index 100% rename from agent/go/internal/command/chroot_command_runner.go rename to agent/internal/command/chroot_command_runner.go diff --git a/agent/go/internal/command/chroot_command_runner_linux_test.go b/agent/internal/command/chroot_command_runner_linux_test.go similarity index 100% rename from agent/go/internal/command/chroot_command_runner_linux_test.go rename to agent/internal/command/chroot_command_runner_linux_test.go diff --git a/agent/go/internal/command/chroot_command_runner_test.go b/agent/internal/command/chroot_command_runner_test.go similarity index 100% rename from agent/go/internal/command/chroot_command_runner_test.go rename to agent/internal/command/chroot_command_runner_test.go diff --git a/agent/go/internal/command/command.go b/agent/internal/command/command.go similarity index 100% rename from agent/go/internal/command/command.go rename to agent/internal/command/command.go diff --git a/agent/go/internal/command/command_runner.go b/agent/internal/command/command_runner.go similarity index 100% rename from agent/go/internal/command/command_runner.go rename to agent/internal/command/command_runner.go diff --git a/agent/go/internal/command/command_runner_test.go b/agent/internal/command/command_runner_test.go similarity index 100% rename from agent/go/internal/command/command_runner_test.go rename to agent/internal/command/command_runner_test.go diff --git a/agent/go/internal/command/command_test.go b/agent/internal/command/command_test.go similarity index 100% rename from agent/go/internal/command/command_test.go rename to agent/internal/command/command_test.go diff --git a/agent/go/internal/command/process.go b/agent/internal/command/process.go similarity index 100% rename from agent/go/internal/command/process.go rename to agent/internal/command/process.go diff --git a/agent/go/internal/command/process_test.go b/agent/internal/command/process_test.go similarity index 100% rename from agent/go/internal/command/process_test.go rename to agent/internal/command/process_test.go diff --git a/agent/go/internal/command/runner.go b/agent/internal/command/runner.go similarity index 100% rename from agent/go/internal/command/runner.go rename to agent/internal/command/runner.go diff --git a/agent/go/internal/command/runner_test.go b/agent/internal/command/runner_test.go similarity index 100% rename from agent/go/internal/command/runner_test.go rename to agent/internal/command/runner_test.go diff --git a/agent/go/internal/config/config.go b/agent/internal/config/config.go similarity index 100% rename from agent/go/internal/config/config.go rename to agent/internal/config/config.go diff --git a/agent/go/internal/config/config_test.go b/agent/internal/config/config_test.go similarity index 100% rename from agent/go/internal/config/config_test.go rename to agent/internal/config/config_test.go diff --git a/agent/go/internal/config/mock/SchemaValidator.go b/agent/internal/config/mock/SchemaValidator.go similarity index 100% rename from agent/go/internal/config/mock/SchemaValidator.go rename to agent/internal/config/mock/SchemaValidator.go diff --git a/agent/go/internal/config/schemas/v1/skyhook-agent-schema.json b/agent/internal/config/schemas/v1/skyhook-agent-schema.json similarity index 100% rename from agent/go/internal/config/schemas/v1/skyhook-agent-schema.json rename to agent/internal/config/schemas/v1/skyhook-agent-schema.json diff --git a/agent/go/internal/config/schemas/v1/step-schema.json b/agent/internal/config/schemas/v1/step-schema.json similarity index 100% rename from agent/go/internal/config/schemas/v1/step-schema.json rename to agent/internal/config/schemas/v1/step-schema.json diff --git a/agent/go/internal/config/validate.go b/agent/internal/config/validate.go similarity index 100% rename from agent/go/internal/config/validate.go rename to agent/internal/config/validate.go diff --git a/agent/go/internal/config/validate_test.go b/agent/internal/config/validate_test.go similarity index 100% rename from agent/go/internal/config/validate_test.go rename to agent/internal/config/validate_test.go diff --git a/agent/go/internal/execution/execution.go b/agent/internal/execution/execution.go similarity index 100% rename from agent/go/internal/execution/execution.go rename to agent/internal/execution/execution.go diff --git a/agent/go/internal/execution/execution_test.go b/agent/internal/execution/execution_test.go similarity index 100% rename from agent/go/internal/execution/execution_test.go rename to agent/internal/execution/execution_test.go diff --git a/agent/go/internal/flags/flags.go b/agent/internal/flags/flags.go similarity index 100% rename from agent/go/internal/flags/flags.go rename to agent/internal/flags/flags.go diff --git a/agent/go/internal/flags/flags_test.go b/agent/internal/flags/flags_test.go similarity index 100% rename from agent/go/internal/flags/flags_test.go rename to agent/internal/flags/flags_test.go diff --git a/agent/go/internal/flags/layout.go b/agent/internal/flags/layout.go similarity index 100% rename from agent/go/internal/flags/layout.go rename to agent/internal/flags/layout.go diff --git a/agent/go/internal/flags/layout_test.go b/agent/internal/flags/layout_test.go similarity index 100% rename from agent/go/internal/flags/layout_test.go rename to agent/internal/flags/layout_test.go diff --git a/agent/go/internal/flags/logs.go b/agent/internal/flags/logs.go similarity index 100% rename from agent/go/internal/flags/logs.go rename to agent/internal/flags/logs.go diff --git a/agent/go/internal/flags/logs_test.go b/agent/internal/flags/logs_test.go similarity index 100% rename from agent/go/internal/flags/logs_test.go rename to agent/internal/flags/logs_test.go diff --git a/agent/go/internal/history/history.go b/agent/internal/history/history.go similarity index 100% rename from agent/go/internal/history/history.go rename to agent/internal/history/history.go diff --git a/agent/go/internal/history/history_test.go b/agent/internal/history/history_test.go similarity index 100% rename from agent/go/internal/history/history_test.go rename to agent/internal/history/history_test.go diff --git a/agent/go/internal/history/mock/Store.go b/agent/internal/history/mock/Store.go similarity index 100% rename from agent/go/internal/history/mock/Store.go rename to agent/internal/history/mock/Store.go diff --git a/agent/go/internal/hostfs/copy.go b/agent/internal/hostfs/copy.go similarity index 100% rename from agent/go/internal/hostfs/copy.go rename to agent/internal/hostfs/copy.go diff --git a/agent/go/internal/hostfs/copy_test.go b/agent/internal/hostfs/copy_test.go similarity index 100% rename from agent/go/internal/hostfs/copy_test.go rename to agent/internal/hostfs/copy_test.go diff --git a/agent/go/internal/hostfs/hostfs.go b/agent/internal/hostfs/hostfs.go similarity index 100% rename from agent/go/internal/hostfs/hostfs.go rename to agent/internal/hostfs/hostfs.go diff --git a/agent/go/internal/hostfs/hostfs_test.go b/agent/internal/hostfs/hostfs_test.go similarity index 100% rename from agent/go/internal/hostfs/hostfs_test.go rename to agent/internal/hostfs/hostfs_test.go diff --git a/agent/go/internal/interrupts/interrupts.go b/agent/internal/interrupts/interrupts.go similarity index 100% rename from agent/go/internal/interrupts/interrupts.go rename to agent/internal/interrupts/interrupts.go diff --git a/agent/go/internal/interrupts/interrupts_linux_test.go b/agent/internal/interrupts/interrupts_linux_test.go similarity index 100% rename from agent/go/internal/interrupts/interrupts_linux_test.go rename to agent/internal/interrupts/interrupts_linux_test.go diff --git a/agent/go/internal/interrupts/interrupts_test.go b/agent/internal/interrupts/interrupts_test.go similarity index 100% rename from agent/go/internal/interrupts/interrupts_test.go rename to agent/internal/interrupts/interrupts_test.go diff --git a/agent/go/internal/interrupts/mock/Interrupt.go b/agent/internal/interrupts/mock/Interrupt.go similarity index 100% rename from agent/go/internal/interrupts/mock/Interrupt.go rename to agent/internal/interrupts/mock/Interrupt.go diff --git a/agent/go/internal/interrupts/no_op.go b/agent/internal/interrupts/no_op.go similarity index 100% rename from agent/go/internal/interrupts/no_op.go rename to agent/internal/interrupts/no_op.go diff --git a/agent/go/internal/interrupts/no_op_test.go b/agent/internal/interrupts/no_op_test.go similarity index 100% rename from agent/go/internal/interrupts/no_op_test.go rename to agent/internal/interrupts/no_op_test.go diff --git a/agent/go/internal/interrupts/node_restart.go b/agent/internal/interrupts/node_restart.go similarity index 100% rename from agent/go/internal/interrupts/node_restart.go rename to agent/internal/interrupts/node_restart.go diff --git a/agent/go/internal/interrupts/node_restart_test.go b/agent/internal/interrupts/node_restart_test.go similarity index 100% rename from agent/go/internal/interrupts/node_restart_test.go rename to agent/internal/interrupts/node_restart_test.go diff --git a/agent/go/internal/interrupts/restart_all_services.go b/agent/internal/interrupts/restart_all_services.go similarity index 100% rename from agent/go/internal/interrupts/restart_all_services.go rename to agent/internal/interrupts/restart_all_services.go diff --git a/agent/go/internal/interrupts/restart_all_services_test.go b/agent/internal/interrupts/restart_all_services_test.go similarity index 100% rename from agent/go/internal/interrupts/restart_all_services_test.go rename to agent/internal/interrupts/restart_all_services_test.go diff --git a/agent/go/internal/interrupts/script_interrupt.go b/agent/internal/interrupts/script_interrupt.go similarity index 100% rename from agent/go/internal/interrupts/script_interrupt.go rename to agent/internal/interrupts/script_interrupt.go diff --git a/agent/go/internal/interrupts/script_interrupt_test.go b/agent/internal/interrupts/script_interrupt_test.go similarity index 100% rename from agent/go/internal/interrupts/script_interrupt_test.go rename to agent/internal/interrupts/script_interrupt_test.go diff --git a/agent/go/internal/interrupts/service_restart.go b/agent/internal/interrupts/service_restart.go similarity index 100% rename from agent/go/internal/interrupts/service_restart.go rename to agent/internal/interrupts/service_restart.go diff --git a/agent/go/internal/interrupts/service_restart_test.go b/agent/internal/interrupts/service_restart_test.go similarity index 100% rename from agent/go/internal/interrupts/service_restart_test.go rename to agent/internal/interrupts/service_restart_test.go diff --git a/agent/go/internal/schema/schema.go b/agent/internal/schema/schema.go similarity index 100% rename from agent/go/internal/schema/schema.go rename to agent/internal/schema/schema.go diff --git a/agent/go/internal/schema/schema_test.go b/agent/internal/schema/schema_test.go similarity index 100% rename from agent/go/internal/schema/schema_test.go rename to agent/internal/schema/schema_test.go diff --git a/agent/go/internal/stage/stage.go b/agent/internal/stage/stage.go similarity index 100% rename from agent/go/internal/stage/stage.go rename to agent/internal/stage/stage.go diff --git a/agent/go/internal/stage/stage_test.go b/agent/internal/stage/stage_test.go similarity index 100% rename from agent/go/internal/stage/stage_test.go rename to agent/internal/stage/stage_test.go diff --git a/agent/go/internal/step/idempotence.go b/agent/internal/step/idempotence.go similarity index 100% rename from agent/go/internal/step/idempotence.go rename to agent/internal/step/idempotence.go diff --git a/agent/go/internal/step/idempotence_test.go b/agent/internal/step/idempotence_test.go similarity index 100% rename from agent/go/internal/step/idempotence_test.go rename to agent/internal/step/idempotence_test.go diff --git a/agent/go/internal/step/mock/Step.go b/agent/internal/step/mock/Step.go similarity index 100% rename from agent/go/internal/step/mock/Step.go rename to agent/internal/step/mock/Step.go diff --git a/agent/go/internal/step/regular_step.go b/agent/internal/step/regular_step.go similarity index 100% rename from agent/go/internal/step/regular_step.go rename to agent/internal/step/regular_step.go diff --git a/agent/go/internal/step/regular_step_test.go b/agent/internal/step/regular_step_test.go similarity index 100% rename from agent/go/internal/step/regular_step_test.go rename to agent/internal/step/regular_step_test.go diff --git a/agent/go/internal/step/shared.go b/agent/internal/step/shared.go similarity index 100% rename from agent/go/internal/step/shared.go rename to agent/internal/step/shared.go diff --git a/agent/go/internal/step/shared_linux_test.go b/agent/internal/step/shared_linux_test.go similarity index 100% rename from agent/go/internal/step/shared_linux_test.go rename to agent/internal/step/shared_linux_test.go diff --git a/agent/go/internal/step/shared_test.go b/agent/internal/step/shared_test.go similarity index 100% rename from agent/go/internal/step/shared_test.go rename to agent/internal/step/shared_test.go diff --git a/agent/go/internal/step/step.go b/agent/internal/step/step.go similarity index 100% rename from agent/go/internal/step/step.go rename to agent/internal/step/step.go diff --git a/agent/go/internal/step/step_test.go b/agent/internal/step/step_test.go similarity index 100% rename from agent/go/internal/step/step_test.go rename to agent/internal/step/step_test.go diff --git a/agent/go/internal/step/upgrade_step.go b/agent/internal/step/upgrade_step.go similarity index 100% rename from agent/go/internal/step/upgrade_step.go rename to agent/internal/step/upgrade_step.go diff --git a/agent/go/internal/step/upgrade_step_test.go b/agent/internal/step/upgrade_step_test.go similarity index 100% rename from agent/go/internal/step/upgrade_step_test.go rename to agent/internal/step/upgrade_step_test.go diff --git a/agent/go/internal/version/version.go b/agent/internal/version/version.go similarity index 100% rename from agent/go/internal/version/version.go rename to agent/internal/version/version.go diff --git a/agent/go/internal/version/version_test.go b/agent/internal/version/version_test.go similarity index 100% rename from agent/go/internal/version/version_test.go rename to agent/internal/version/version_test.go diff --git a/agent/skyhook-agent/NOTICE b/agent/skyhook-agent/NOTICE deleted file mode 100644 index 5c1afaf19..000000000 --- a/agent/skyhook-agent/NOTICE +++ /dev/null @@ -1,8 +0,0 @@ -Skyhook Open Source Software -Copyright (c) 2024, NVIDIA CORPORATION. - -This product includes software developed at -NVIDIA CORPORATION (https://www.nvidia.com/). - -This software make use of code with licenses: - * jsonschema: MIT https://github.com/python-jsonschema/jsonschema/blob/main/COPYING \ No newline at end of file diff --git a/agent/skyhook-agent/README.md b/agent/skyhook-agent/README.md deleted file mode 100644 index e69de29bb..000000000 diff --git a/agent/skyhook-agent/pyproject.toml b/agent/skyhook-agent/pyproject.toml deleted file mode 100644 index 3b6675832..000000000 --- a/agent/skyhook-agent/pyproject.toml +++ /dev/null @@ -1,73 +0,0 @@ -[build-system] -requires = ["hatchling"] -build-backend = "hatchling.build" - -[project] -name = "skyhook-agent" -dynamic = ["version"] -description = '' -readme = "README.md" -license = "Apache-2.0" -requires-python = ">= 3.10" -keywords = [ - "skyhook", -] -authors = [ - { name = "Alex Yuskauskas", email = "ayuskauskas@nvidia.com" }, - { name = "Brian Lockwood", email = "blockwood@nvidia.com" }, - { name = "Riley Rice", email = "rrice@nvidia.com"} -] -classifiers = [ - "Development Status :: 4 - Beta", - "Programming Language :: Python", - "Programming Language :: Python :: 3.10" -] -dependencies = [ - "jsonschema" -] - -[project.urls] -Documentation = "https://github.com/nvidia.com/skyhook#readme" -Issues = "https://github.com/nvidia.com/skyhook/issues" -Source = "https://github.com/nvidia.com/skyhook" - -[project.scripts] -controller = "skyhook_agent.controller:cli" - - -[tool.hatch.version] -path = "src/skyhook_agent/__about__.py" - -[tool.hatch.envs.types] -extra-dependencies = [ - "mypy>=1.0.0", -] -[tool.hatch.envs.types.scripts] -check = "mypy --install-types --non-interactive {args:src/skyhook_agent tests}" - -[tool.hatch.build.targets.wheel] -packages = ["src/skyhook_agent"] -include = [ - "schemas/*" -] - -[tool.coverage.run] -source_pkgs = ["skyhook_agent", "tests"] -branch = true -parallel = true -omit = [ - "src/skyhook_agent/__about__.py", - "tests/*", - "__init__.py" -] - -[tool.coverage.paths] -skyhook_agent = ["src/skyhook_agent", "*/src/skyhook_agent"] -tests = ["tests", "*/tests"] - -[tool.coverage.report] -exclude_lines = [ - "no cov", - "if __name__ == .__main__.:", - "if TYPE_CHECKING:", -] diff --git a/agent/skyhook-agent/src/skyhook_agent/__about__.py b/agent/skyhook-agent/src/skyhook_agent/__about__.py deleted file mode 100644 index 3bbe5a542..000000000 --- a/agent/skyhook-agent/src/skyhook_agent/__about__.py +++ /dev/null @@ -1,17 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 -# -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -__version__ = "0.0.0" diff --git a/agent/skyhook-agent/src/skyhook_agent/__init__.py b/agent/skyhook-agent/src/skyhook_agent/__init__.py deleted file mode 100644 index 0b73ad0e7..000000000 --- a/agent/skyhook-agent/src/skyhook_agent/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 -# -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. diff --git a/agent/skyhook-agent/src/skyhook_agent/chroot_exec.py b/agent/skyhook-agent/src/skyhook_agent/chroot_exec.py deleted file mode 100644 index aae36d1dd..000000000 --- a/agent/skyhook-agent/src/skyhook_agent/chroot_exec.py +++ /dev/null @@ -1,82 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 -# -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -import os -import stat -import json -import sys -import subprocess -import shutil - - -def _get_process_env(container_env: dict, skyhook_env: dict, chroot_env: dict): - # Set this first with the container environment. - # We need to do this because the skyhook package could set any env var they want so that needs - # to get replicated down. BUT we are in distroless so we then need to overwrite with the chroot environment - # so things like path/user resolution work. - process_env = dict(container_env) - # Overwrite the container environment with the chroot environment - process_env.update(chroot_env) - # Inject the skyhook environment variables - process_env.update(skyhook_env) - return process_env - -def _get_chroot_env(): - results = subprocess.run(["env"], capture_output=True, text=True) - env = {} - for line in results.stdout.split("\n"): - if "=" in line: - k, v = line.split("=", 1) - env[k] = v - return env - -def chroot_exec(config: dict, chroot_dir: str): - cmds = config["cmd"] - no_chmod = config["no_chmod"] - skyhook_env = config["env"] - if "copy_dir" not in config or config["copy_dir"] is None: - raise ValueError("copy_dir must be set in config") - copy_dir = config["copy_dir"] - - # Capture container environment before chroot - container_env = dict(os.environ) - - if chroot_dir != "local": - os.chroot(chroot_dir) - os.chdir("/") - try: - if not no_chmod: - # chmod +x the step - os.chmod(cmds[0], os.stat(cmds[0]).st_mode | stat.S_IXGRP | stat.S_IXUSR | stat.S_IXOTH) - - process_env = _get_process_env(container_env, skyhook_env, _get_chroot_env()) - - if not copy_dir.startswith("/"): - raise ValueError(f"copy_dir must be an absolute path: {copy_dir}") - subprocess.run(cmds, check=True, env=process_env, cwd=copy_dir) - except: - raise - - -if __name__ == "__main__": - control_file = sys.argv[1] - chroot_dir = sys.argv[2] - - with open(control_file, "r") as f: - config = json.load(f) - - chroot_exec(config, chroot_dir) diff --git a/agent/skyhook-agent/src/skyhook_agent/config.py b/agent/skyhook-agent/src/skyhook_agent/config.py deleted file mode 100644 index 0d9b80b6d..000000000 --- a/agent/skyhook-agent/src/skyhook_agent/config.py +++ /dev/null @@ -1,88 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 -# -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from enum import Enum -import json -import os, sys - -from . import step, enums - -from referencing import Registry, Resource -from jsonschema import validate, ValidationError - -default_schema_directory = f"{os.path.dirname(os.path.abspath(__file__))}/schemas" - -def load(data: dict, step_root_dir: str, schema_root: str=default_schema_directory) -> dict: - registry = load_schema_registry(schema_root=schema_root) - # Check the data as it comes in that it is valid - check(data, registry) - - # Migrate to the latest - data = migrate(data) - - # Check the migrated version is valid - check(data, registry) - - # Convert the steps section to step classes - data['modes'] = step.Steps.load(data['modes'], step_root_dir) - - return data - - -def dump(package_name: str, package_version: str, root_dir: str, steps: dict[step.Mode, list[step.Step|step.UpgradeStep]], expected_config_files: list[str]=[]): - """ - Only ever dump to the latest schema version - """ - return { - "schema_version": enums.get_latest_schema().value, - "root_dir": root_dir, - "expected_config_files": expected_config_files, - "package_name": package_name, - "package_version": package_version, - "modes": step.Steps.dump(steps, validate=False, root_dir=root_dir) - } - -def check(config: dict, registry: Registry): - config_schema_version = config['schema_version'] - schema = registry.get(f"{config_schema_version}/skyhook-agent-schema.json") - - if schema is None: - raise ValidationError(f"Unknown skyhook-agent schema version: {config_schema_version}") - - validate(config, schema.contents, registry=registry) - - -def migrate(config: dict) -> dict: - """ - Migrate config up to latest version - """ - config_schema_version = config['schema_version'] - if config_schema_version == enums.get_latest_schema(): - return config - - return ValidationError(f"Unknown skyhook-agent schema version: {config_schema_version}") - -def load_schema_registry(schema_root: str=default_schema_directory) -> Registry: - uri_to_schema = {} - for dirpath, _, filenames in os.walk(schema_root): - for filename in filenames: - if filename.endswith(".json"): - with open(f"{dirpath}/{filename}") as f: - data = Resource.from_contents(json.load(f)) - uri_to_schema[f"{dirpath.replace(schema_root + '/','')}/{filename}"] = data - registry = Registry().with_resources(uri_to_schema.items()) - - return registry diff --git a/agent/skyhook-agent/src/skyhook_agent/controller.py b/agent/skyhook-agent/src/skyhook_agent/controller.py deleted file mode 100644 index f352089c0..000000000 --- a/agent/skyhook-agent/src/skyhook_agent/controller.py +++ /dev/null @@ -1,718 +0,0 @@ -#!/bin/python - -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 -# -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - - -import contextlib -from multiprocessing import context -import sys -import os -import shutil -import subprocess -import base64 -import asyncio -from datetime import datetime, timezone -from io import TextIOBase -import time -import json -import os -import shutil -import glob -import signal -import tempfile -from skyhook_agent.step import Step, UpgradeStep, Idempotence, Mode, CHECK_TO_APPLY -from skyhook_agent import interrupts, config -from typing import List - -import logging as logger - -# Global flag to track if we received SIGTERM -received_sigterm = False - -def sigterm_handler(signum, frame): - """Handle SIGTERM by setting a global flag and logging the event""" - global received_sigterm - received_sigterm = True - logger.info("Received SIGTERM signal - initiating graceful shutdown") - -# Register the SIGTERM handler -signal.signal(signal.SIGTERM, sigterm_handler) - -class SkyhookValidationError(Exception): - pass - - -buff_size = int(os.getenv("SKYHOOK_AGENT_BUFFER_LIMIT", 1024 * 8)) - -def _get_env_config() -> tuple[str]: - - # Used as an identifier in operator mode to be able to know if it has already run - # an interrupt or not. This id is 1:1 with a given skyhook custom resource instance - SKYHOOK_RESOURCE_ID = os.getenv("SKYHOOK_RESOURCE_ID", "") - - # This needs to be set to support legacy mode and should be where skyhook files are on the container - SKYHOOK_DATA_DIR = os.getenv("SKYHOOK_DATA_DIR", "/skyhook-package") - - SKYHOOK_ROOT_DIR = os.getenv("SKYHOOK_ROOT_DIR", "/etc/skyhook") - - SKYHOOK_LOG_DIR = os.getenv("SKYHOOK_LOG_DIR", "/var/log/skyhook") - - SKYHOOK_AGENT_WRITE_LOGS = os.getenv("SKYHOOK_AGENT_WRITE_LOGS", "true").lower() == 'true' - - return SKYHOOK_RESOURCE_ID, SKYHOOK_DATA_DIR, SKYHOOK_ROOT_DIR, SKYHOOK_LOG_DIR, SKYHOOK_AGENT_WRITE_LOGS - -def _get_package_information(config_data: dict) -> tuple[str, str]: - return config_data["package_name"], config_data["package_version"] - -async def _stream_process( - stream: asyncio.StreamReader, sinks: List[TextIOBase], label: str = "", limit: int=buff_size -): - """ - Timestamp each line read from stream into the sinks flushing on each write. - Each line can optionally be prefixed with the label. - """ - - # This is to be able to add the prefix to the very first data read - is_first_line = True - while True: - try: - data = await stream.read(limit) - if not data: - break - - # Decode the data - data_str = data.decode("UTF-8", errors="replace") - - # Add timestamp and label - t = datetime.now().isoformat() - if is_first_line: - data_str = f"{label}{t} {data_str}" - is_first_line = False - - # Add timestamp to each newline - data_str = data_str.replace("\n", f"\n{label}{t} ") - - # Write to all sinks - for sink in sinks: - sink.write(data_str) - sink.flush() - - except asyncio.IncompleteReadError as e: - # Handle partial data at end of stream - if e.partial: - data_str = e.partial.decode("UTF-8", errors="replace") - t = datetime.now().isoformat() - if is_first_line: - data_str = f"{label}{t} {data_str}" - is_first_line = False - data_str = data_str.replace("\n", f"\n{label}{t} ") - - for sink in sinks: - sink.write(data_str) - sink.flush() - break - except Exception as e: - # Log any errors but don't crash - error_msg = f"{label}{datetime.now().isoformat()} ERROR reading stream: {str(e)}\n" - for sink in sinks: - sink.write(error_msg) - sink.flush() - break - -# A file like context manager that black holes all writes to it. Does not need to implement read -class NullWriter: - """A file-like context manager that discards all writes.""" - - def write(self, *args, **kwargs): - # Swallow everything and return len to mimic file behaviour if needed - if args: - return len(args[0]) - return 0 - - def flush(self): - pass - - def close(self): - pass - - def __enter__(self): - return self - - def __exit__(self, exc_type, exc_val, exc_tb): - # Nothing to cleanup, obviously - return False - - -async def tee(chroot_dir: str, cmd: List[str], stdout_sink_path: str, stderr_sink_path: str, copy_dir: str, write_cmds=False, no_chmod=False, env: dict[str, str] = {}, write_logs: bool=True, **kwargs): - """ - Run the cmd in a subprocess and keep the stream of stdout/stderr and merge both into - the sink_path as a log. - """ - # get the directory of the script - script_dir = os.path.dirname(os.path.abspath(__file__)) - # Switch out the opens with nulls in the event of not wanting to write files - if write_logs: - files = (lambda : open(stdout_sink_path, 'w'), lambda: open(stderr_sink_path, 'w')) - else: - files = (lambda: NullWriter(), lambda: NullWriter()) - with files[0]() as stdout_sink_f, files[1]() as stderr_sink_f: - if write_cmds: - sys.stdout.write(" ".join(cmd) + "\n") - stdout_sink_f.write(" ".join(cmd) + "\n") - with tempfile.NamedTemporaryFile(mode="w", delete=True) as f: - f.write(json.dumps({"cmd": cmd, "no_chmod": no_chmod, "env": env, "copy_dir": copy_dir})) - f.flush() - - # Run the special chroot_exec.py script to chroot into the directory and run the command - # This is necessary because the this is expected to run in a distroless container and we - # want the chroot to only persist for the duration of the command. - new_cmd = [sys.executable, os.path.join(script_dir, "chroot_exec.py"), f.name, chroot_dir] - p = await asyncio.create_subprocess_exec( - *new_cmd, - limit=buff_size, - stdin=None, - stdout=asyncio.subprocess.PIPE, - stderr=asyncio.subprocess.PIPE, - executable=sys.executable, - **kwargs, - ) - - # Wait for both stream processing and subprocess completion - await asyncio.gather( - _stream_process(p.stdout, [sys.stdout, stdout_sink_f], label="[out]"), - _stream_process(p.stderr, [sys.stderr, stderr_sink_f], label="[err]"), - p.wait(), # Wait for subprocess to complete - ) - - return subprocess.CompletedProcess(cmd, p.returncode) - -def get_host_path_for_steps(copy_dir: str): - return f"{copy_dir}/skyhook_dir" - -def get_skyhook_directory(root_mount: str) -> str: - _, _, SKYHOOK_ROOT_DIR, _, _ = _get_env_config() - return f"{root_mount}{SKYHOOK_ROOT_DIR}" - -def get_flag_dir(root_mount: str) -> str: - return f"{get_skyhook_directory(root_mount)}/flags" - -def get_history_dir(root_mount: str) -> str: - return f"{get_skyhook_directory(root_mount)}/history" - -def get_log_dir(root_mount: str) -> str: - _, _, _, SKYHOOK_LOG_DIR, _ = _get_env_config() - return f"{root_mount}{SKYHOOK_LOG_DIR}" - -def get_log_file(step_path: str, copy_dir: str, config_data: dict, root_mount: str, timestamp: str=None) -> str: - if timestamp is None: - timestamp = datetime.now(timezone.utc).strftime("%Y-%m-%d-%H%M%S") - package_name, package_current_version = _get_package_information(config_data) - log_file = f"{get_log_dir(root_mount)}/{package_name}/{package_current_version}/{step_path.replace(get_host_path_for_steps(copy_dir), '')}-{timestamp}.log" - os.makedirs(os.path.dirname(log_file), exist_ok=True) - return log_file - -def cleanup_old_logs(log_file_glob: str) -> None: - """ - Remove all logs except the current and last 4 (5 total) - """ - log_dir = os.path.dirname(log_file_glob) - if not os.path.exists(log_dir): - return - log_files = sorted(((log_file, os.stat(log_file).st_mtime) for log_file in glob.glob(log_file_glob)), key=lambda x: x[1], reverse=True) - for log_file, _ in log_files[5:]: - os.remove(log_file) - - -def make_flag_path( - step: Step|UpgradeStep, config_data: dict, root_mount: str -) -> str: - flag_dir = get_flag_dir(root_mount) - package_name, package_current_version = _get_package_information(config_data) - marker = base64.b64encode(bytes(f"{step.arguments}_{step.returncodes}", "utf-8")).decode("utf-8") - return f"{flag_dir}/{package_name}/{package_current_version}/{step.path}_{marker}" - - -def set_flag(flag_file: str, msg: str = "") -> None: - os.makedirs(os.path.dirname(flag_file), exist_ok=True) - with open(flag_file, "w") as f: - f.write(msg) - - -def _run(chroot_dir: str, cmds: list[str], log_path: str|None, copy_dir: str, write_cmds=False, no_chmod=False, env: dict[str, str] = {}, write_logs: bool=True, **kwargs) -> int: - """ - Synchronous wrapper around the tee command to have logs written to disk - """ - # "tee" the stdout and stderr to a file to log the step results - stderr_path = f"{log_path}.err" if log_path else None - - result = asyncio.run( - tee( - chroot_dir, - cmds, - log_path, - stderr_path, - write_cmds=write_cmds, - no_chmod=no_chmod, - env=env, - write_logs=write_logs, - copy_dir=copy_dir, - **kwargs - ) - ) - return result.returncode - - -def run_step( - step: Step|UpgradeStep, - chroot_dir: str, - copy_dir: str, - config_data: dict -) -> bool: - """ - Run the given Step. - Any arguments for the step that start with "env:" will be sourced from their environment variable. - Any environment variables that do not exist will fail the run. - The following environment variables are also set into the steps execution environment: - STEP_ROOT: The path on the host to the root directory of all the steps - SKYHOOK_DIR: The path on the host to where the skyhook is run. This includes all configmaps and any artifacts packaged with the Overlay. - - Args: - step(Step): Object of class Step. - copy_dir(str): Directory path containing all the step scripts. - config_data(dict): The config data. Must contain package_name and package_version - Returns: bool of return codes - """ - - step_path = f"{get_host_path_for_steps(copy_dir)}/{step.path}" - - # Loop through the arguments to check if any need to be replaced by an environment value - # The pattern for this is "env:{environment variable name}" ie "env:FOO" - errors = [] - for i, arg in enumerate(step.arguments): - if arg.startswith("env:"): - env_var_name = arg.split("env:")[1] - try: - step.arguments[i] = os.environ[env_var_name] - except KeyError: - ## TODO: would be nice if there were not required or could have defaults - errors.append( - f"{step.path}: Expected environment variable did not exist: {env_var_name}" - ) - if errors: - for msg in errors: - print(msg) - return True - - time.sleep(1) - _, _, _, _, SKYHOOK_AGENT_WRITE_LOGS = _get_env_config() - if SKYHOOK_AGENT_WRITE_LOGS: - log_file = get_log_file(step_path, copy_dir, config_data, chroot_dir) - else: - log_file = None - - # Compile additional environment variables - env = {} - env.update(step.env) - env.update({"STEP_ROOT": get_host_path_for_steps(copy_dir), "SKYHOOK_DIR": copy_dir}) - - return_code = _run( - chroot_dir, - [step_path, *step.arguments], - log_file, - env=env, - write_logs=SKYHOOK_AGENT_WRITE_LOGS, - copy_dir=copy_dir) - - if SKYHOOK_AGENT_WRITE_LOGS: - cleanup_old_logs(get_log_file(step_path, copy_dir, config_data, chroot_dir, "*")) - if return_code not in step.returncodes: - print(f"FAILED: {step.path} {' '.join(step.arguments)} {return_code}") - return True - print(f"SUCEEDED: {step.path} {' '.join(step.arguments)}") - return False - - -def check_flag_file( - step: Step|UpgradeStep, flag_file: str, always_run_step: bool, mode: Mode -) -> bool: - """ - Checks if the flag file exists. - Always returns False if mode config is uninstall or idempotency is disabled. - """ - if os.path.exists(flag_file): - if always_run_step: - print( - f"WARNING: {flag_file} exists for {step.path} but OVERLAY_ALWAYS_RUN_STEP flag is set so running anyway." - ) - return False - if mode in [Mode.CONFIG, Mode.UNINSTALL, Mode.UPGRADE]: - print( - f"Flag exists but CONFIG, UNINSTALL, and UPGRADE mode don't support idempotence so running step anyway." - ) - return False - if step.idempotence == Idempotence.Disabled: - print( - f"Flag exists but idempotence is {Idempotence.Disabled} so running step." - ) - return False - print(f"Skipping {step.path} because {flag_file} exists.") - return True - return False - -def get_or_update_history(root_mount: str, config_data: dict, write: bool = False, step: Step|UpgradeStep = None, mode: Mode = None) -> None: - """ - Manages the history file for tracking version changes, and auditing purposes. - - Args: - write (bool): If True, updates the history file. If False, reads from the history file. Defaults to False. - step (Step | UpgradeStep): The current step being processed. Required when reading the history. - mode (Mode): The mode the controller is running in. Required when writing to the history. - - Write Mode: - Updates the history file with the current version and time based on the given mode. When writing with the - UNINSTALL_CHECK mode the history file's current version will be updated to be "uninstalled". - - Read Mode: - Retrieves the current and previous versions from the history file and sets them as environment variables for the step. - If the step is an UpgradeStep, the versions are also passed as arguments. - """ - package_name, package_current_version = _get_package_information(config_data) - # Create history dir if it doesn't already exist - history_dir = get_history_dir(root_mount) - os.makedirs(history_dir, exist_ok=True) - - history_file = f"{history_dir}/{package_name}.json" - - # Load existing history if it exists - history_data = { - "current-version": "", - "history": [], - } - if os.path.exists(history_file): - with open(history_file, "r") as f: - try: - history_data = json.load(f) - except json.JSONDecodeError: - # Move the corrupted file to a backup location - os.rename(history_file, f"{history_file}.backup") - print(f"Failed to load existing history, corrupt history file moved to {history_file}.backup...") - else: - ## history doesn't exist for this framework so pass to the upgrade step - ## that it's currently uninstalled - history_data["current-version"] = "unknown" - print(f"no existing history found for {package_name}, could be first installation...") - - if write: - if mode == Mode.UNINSTALL_CHECK: - # Update history that package was uninstalled - history_data["current-version"] = "uninstalled" - history_data["history"].insert(0, {"version": "uninstalled", "time": datetime.now(timezone.utc).isoformat()}) - else: - # Update history - history_data["current-version"] = package_current_version - history_data["history"].insert(0, {"version": package_current_version, "time": datetime.now(timezone.utc).isoformat()}) - - # Save updated history - with open(history_file, "w") as f: - json.dump(history_data, f) - else: - # Set from and to versions for upgrade and upgrade-check steps - step.env["CURRENT_VERSION"] = package_current_version - step.env["PREVIOUS_VERSION"] = history_data["current-version"] - - if step and isinstance(step, UpgradeStep): - step.arguments.extend([history_data["current-version"], package_current_version]) - -def summarize_check_results(results: list[bool], step_data: dict[Mode, list[Step|UpgradeStep]], step_selector: Mode, root_mount: str) -> bool: - """ - Returning True means there is at least one failure - """ - flag_dir = get_flag_dir(root_mount) - if len(results) != len(step_data[step_selector]): - print("It does not look like you have successfully run all check steps yet.") - return True - - # Any failure fails the whole thing - with open(f"{flag_dir}/check_results", "w") as f: - f.write( - "\n".join( - map(" ".join, zip((step.path for step in step_data[step_selector]), map(str, results))) - ) - ) - - if any(results): - return True - - with open(f"{flag_dir}/{str(step_selector)}_ALL_CHECKED", "w") as f: - f.write("") - - return False - -def make_config_data_from_resource_id() -> dict: - SKYHOOK_RESOURCE_ID, _, _, _, _ = _get_env_config() - - # Interrupts don't really have config data we can read from the Package as it is run standalone. - # So read it off of SKYHOOK_RESOURCE_ID instead - # customer-f5a1d42e-74e5-4606-8bbc-b504fbe0074d-1_tuning_2.0.2 - _, package, version = SKYHOOK_RESOURCE_ID.split("_") - config_data = { - "package_name": package, - "package_version": version, - } - return config_data - -def do_interrupt(interrupt_data: str, root_mount: str, copy_dir: str) -> bool: - """ - Run an interrupt if there hasn't been an interrupt already for the skyhook ID. - """ - - def _make_interrupt_flag(interrupt_dir: str, interrupt_id: int) -> str: - return f"{interrupt_dir}/{interrupt_id}.complete" - - SKYHOOK_RESOURCE_ID, _, _, _, _ = _get_env_config() - config_data = make_config_data_from_resource_id() - - interrupt = interrupts.inflate(interrupt_data) - - # Check if the interrupt has already been run for this particular skyhook resource - interrupt_dir = f"{get_skyhook_directory(root_mount)}/interrupts/flags/{SKYHOOK_RESOURCE_ID}" - os.makedirs(interrupt_dir, exist_ok=True) - - if interrupt.type == interrupts.NoOp._type(): - # NoOp interrupts dont do anything and so don't need to be run - interrupt_flag = _make_interrupt_flag(interrupt_dir, interrupt.type) - with open(interrupt_flag, 'w') as f: - f.write(str(time.time())) - return False - - for i, cmd in enumerate(interrupt.interrupt_cmd): - interrupt_id = f"{interrupt._type()}_{i}" - interrupt_flag = _make_interrupt_flag(interrupt_dir, interrupt_id) - - if os.path.exists(interrupt_flag): - print(f"Skipping interrupt {interrupt_id} because it was already run for {SKYHOOK_RESOURCE_ID}") - continue - - with open(interrupt_flag, 'w') as f: - f.write(str(time.time())) - - return_code = _run( - root_mount, - cmd, - get_log_file(f"interrupts/{interrupt_id}", copy_dir, config_data, root_mount), - copy_dir=copy_dir, - write_cmds=True, - no_chmod=True - ) - - if return_code != 0: - # Special case: preserve flags only for reboot with a return code of -15 - # (SIGTERM signal sent to the process by OS because of reboot) - if not (interrupt.type == interrupts.NodeRestart._type() and return_code == -15): - print(f"INTERRUPT FAILED: {cmd} return_code: {return_code}") - - # If this is not removed then we will skip all failing interrupts and it will look - # like the interrupt was successful when it was not. - os.remove(interrupt_flag) - - return True - - return False - -## Remove all step flags after uninstall -def remove_flags(step_data: dict[Mode, list[Step|UpgradeStep]], config_data: dict, root_mount: str) -> None: - for step in [step for steps in step_data.values() for step in steps]: - flag_file = make_flag_path(step, config_data, root_mount) - if os.path.exists(flag_file): # Check if the file exists before trying to remove it - os.remove(flag_file) - -def main(mode: Mode, root_mount: str, copy_dir: str, interrupt_data: None|str, always_run_step=False) -> bool: - ''' - returns True if the there is a failure in the steps, otherwise returns False - ''' - - if mode not in set(map(str, Mode)): - logger.warning(f"This version of the Agent doesn't support the {mode} mode. Options are: {','.join(map(str, Mode))}.") - return False - - _, SKYHOOK_DATA_DIR, _, _, _ = _get_env_config() - - # Check to see if the directory has already been copied down. If it hasn't assume that we - # are running in legacy mode and copy the directory down. - if not os.path.exists(f"{root_mount}/{copy_dir}"): - shutil.copytree(SKYHOOK_DATA_DIR, f"{root_mount}/{copy_dir}", dirs_exist_ok=True) - - # Copy the legacy node files that are created by the operator - if os.path.exists("/etc/nvidia-bootstrap/node-files"): - shutil.copytree("/etc/nvidia-bootstrap/node-files/", f"{root_mount}/{copy_dir}/", dirs_exist_ok=True) - - if mode == Mode.INTERRUPT: - return do_interrupt(interrupt_data, root_mount, copy_dir) - - # Read the configuration file - with open(f"{root_mount}/{copy_dir}/config.json", 'r') as f: - config_data = config.load(json.load(f), step_root_dir=f"{root_mount}/{copy_dir}/skyhook_dir") - - # Some things we DONT want to do in uninstall modes because they alter the state of the system - # or expect things to exist that don't exist in uninstall mode - if mode not in (Mode.UNINSTALL, Mode.UNINSTALL_CHECK): - # Copy the root_dir to the root_mount if it exists to allow packages to populate files easily - if os.path.exists(f"{root_mount}/{copy_dir}/root_dir"): - shutil.copytree(f"{root_mount}/{copy_dir}/root_dir", root_mount, dirs_exist_ok=True) - - for f in config_data["expected_config_files"]: - if not os.path.exists(f"{root_mount}/{copy_dir}/configmaps/{f}"): - raise SkyhookValidationError(f"Expected config file {f} not found in configmaps directory.") - - try: - return agent_main(mode, root_mount, copy_dir, config_data, interrupt_data, always_run_step) - except Exception as e: - if received_sigterm: - logger.info("Gracefully shutting down due to SIGTERM") - # Perform any cleanup if needed - return True - raise - -def agent_main(mode: Mode, root_mount: str, copy_dir: str, config_data: dict, interrupt_data: None|str, always_run_step=False) -> bool: - ''' - returns True if the there is a failure in the steps, otherwise returns False - ''' - - # Pull out step_data so it matches with existing code - step_data = config_data["modes"] - # Make a flag to mark Skyhook has started - set_flag(f"{get_flag_dir(root_mount)}/START") - results = [] - - # If no steps configured for this mode but being run output warning that this is a no-op - if not step_data.get(mode, []): - logger.warning(f" There are no {mode} steps defined. This will be ran as a no-op.") - - for step in step_data.get(mode, []): - # Check for SIGTERM - if received_sigterm: - logger.info("SIGTERM received, stopping step execution") - return True - - # Make the flag file without the host path argument (first one). This is because in operator world - # the host path is going to change every time the Skyhook Custom Resource changes so it would - # look like a step hasn't been run when it fact it had. - flag_file = make_flag_path(step, config_data, root_mount) - - # If upgrading get the from and to versions from the history file - # so it can be passed to the upgrade steps via args or environment vars - if mode == Mode.UPGRADE or mode == Mode.UPGRADE_CHECK: - get_or_update_history(root_mount, config_data, step=step) - - if not str(mode).endswith("-check"): - if check_flag_file(step, flag_file, always_run_step, mode): - continue - print(f"{mode} {step.path} {step.arguments} {step.returncodes} {step.idempotence} {step.on_host}") - - failed = run_step(step, root_mount, copy_dir, config_data) - if failed: - return True - - set_flag( - flag_file, - f"last_run: {datetime.now().isoformat()}\nstep_always_runs: {step.idempotence == Idempotence.Disabled}", - ) - else: - print(f"{mode} {step.path} {step.arguments} {step.returncodes} {step.idempotence} {step.on_host}") - results.append(run_step(step, root_mount, copy_dir, config_data)) - - - if mode in CHECK_TO_APPLY and len(step_data.get(mode, [])) > 0: - if summarize_check_results(results, step_data, mode, root_mount): - return True - - ## If APPLY_CHECK, UPGRADE_CHECK, or UNINSTALL_CHECK finished successfully update installed version history - if mode in [Mode.APPLY_CHECK, Mode.UPGRADE_CHECK, Mode.UNINSTALL_CHECK]: - get_or_update_history(root_mount, config_data, write=True, mode=mode) - - ## We also want to remove the flags if the package was uninstalled - if mode == Mode.UNINSTALL_CHECK: - remove_flags(step_data, config_data, root_mount) - - return False - -def cli(sys_argv: list[str]=sys.argv): - # Old way - # controller mode copy_dir interrupt_data - - # new way - # controller ${mode} ${mount_dir} ${copy_dir} ${interrupt_data} - args = sys_argv[1:] - interrupt_data = None - - if len(args) == 2: - # old way - mode, copy_dir = args - root_mount = "/root" - - if len(args) == 3: - if args[0] == str(Mode.INTERRUPT): - # old way - mode, copy_dir, interrupt_data = args - root_mount = "/root" - else: - # new way - mode, root_mount, copy_dir = args - - if len(args) == 4: - # new way with interrupt data - mode, root_mount, copy_dir, interrupt_data = args - - copy_resolv = os.getenv("COPY_RESOLV", "true").lower() == "true" - if copy_resolv: - shutil.copyfile("/etc/resolv.conf", f"{root_mount}/etc/resolv.conf") - - always_run_step = os.getenv("OVERLAY_ALWAYS_RUN_STEP", "false").lower() == "true" - - # Print all of the configuration flags as a separate line - print("-" * 20) - print(str.center("CLI CONFIGURATION", 20, "-")) - print(f"mode: {mode}") - print(f"root_mount: {root_mount}") - print(f"copy_dir: {copy_dir}") - print(f"interrupt_data: {interrupt_data}") - print(f"always_run_step: {always_run_step}") - print(str.center("ENV CONFIGURATION", 20, "-")) - print(f"COPY_RESOLV: {copy_resolv}") - print(f"OVERLAY_ALWAYS_RUN_STEP: {always_run_step}") - SKYHOOK_RESOURCE_ID, SKYHOOK_DATA_DIR, SKYHOOK_ROOT_DIR, SKYHOOK_LOG_DIR, SKYHOOK_AGENT_WRITE_LOGS = _get_env_config() - print(f"SKYHOOK_RESOURCE_ID: {SKYHOOK_RESOURCE_ID}") - print(f"SKYHOOK_DATA_DIR: {SKYHOOK_DATA_DIR}") - print(f"SKYHOOK_ROOT_DIR: {SKYHOOK_ROOT_DIR}") - print(f"SKYHOOK_LOG_DIR: {SKYHOOK_LOG_DIR}") - print(f"SKYHOOK_AGENT_BUFFER_LIMIT: {buff_size}") - print(f"SKYHOOK_AGENT_WRITE_LOGS: {SKYHOOK_AGENT_WRITE_LOGS}") - print(str.center("Directory CONFIGURATION", 20, "-")) - # print flag dir and log dir - config_data = make_config_data_from_resource_id() - print(f"flag_dir: {get_flag_dir("")}/{config_data['package_name']}/{config_data['package_version']}") - log_dir = '/'.join(get_log_file('step', copy_dir, config_data, "", timestamp='timestamp').split('/')[:-1]) - print(f"log_dir: {log_dir}") - print(f"history_file: {get_history_dir("")}/{config_data['package_name']}.json") - print("-" * 20) - - return main(mode, root_mount, copy_dir, interrupt_data, always_run_step) - - -if __name__ == "__main__": - if cli(sys.argv): - sys.exit(1) diff --git a/agent/skyhook-agent/src/skyhook_agent/enums.py b/agent/skyhook-agent/src/skyhook_agent/enums.py deleted file mode 100644 index 002a8f157..000000000 --- a/agent/skyhook-agent/src/skyhook_agent/enums.py +++ /dev/null @@ -1,73 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 -# -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from enum import Enum - -class SortableEnum(Enum): - - LATEST: str - - def __str__(self): - return self.value - - def __eq__(self, other): - if isinstance(other, SortableEnum): - return self.value == other.value - elif isinstance(other, str): - return self.value == other - return False - - def __ne__(self, other): - return not self.__eq__(other) - - def __lt__(self, other): - if self.__eq__(other): - return False - if isinstance(other, SortableEnum): - if other == self.LATEST: - return True - if self == self.LATEST: - return False - return int(self.value.strip('v')) < int(other.value.strip('v')) - elif isinstance(other, str): - if other == self.LATEST.value: - return True - if self == self.LATEST: - return False - return int(self.value.strip('v')) < int(other.lower().strip('v')) - return NotImplemented - - def __le__(self, other): - return self.__eq__(other) or self.__lt__(other) - - def __gt__(self, other): - if self.__eq__(other): - return False - return not self.__le__(other) - - def __ge__(self, other): - return self.__eq__(other) or not self.__lt__(other) - -class SchemaVersion(SortableEnum): - V1 = "v1" - LATEST = "latest" - - -# schema is passable here to make it testable. Not expected to be used in production -def get_latest_schema(schema=SchemaVersion) -> SchemaVersion: - key_to_value = [(k, int(v.value.lower().replace('v',''))) for k,v in schema._member_map_.items() if v != 'latest'] - latest_key, _ = sorted(key_to_value, key=lambda x: x[1])[-1] - return schema[latest_key] diff --git a/agent/skyhook-agent/src/skyhook_agent/interrupts.py b/agent/skyhook-agent/src/skyhook_agent/interrupts.py deleted file mode 100644 index 140f79e74..000000000 --- a/agent/skyhook-agent/src/skyhook_agent/interrupts.py +++ /dev/null @@ -1,128 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 -# -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import string -import base64 -import json -import inspect -import sys - -class Interrupt(object): - data: dict[str, any] = {} - - # These are the command(s) to be run to perform the interrupt. - # It is a list of subprocess.run list form. - # Set this to empty list if you do NOT want anything run. - - interrupt_cmd: list[list[str]] - - @classmethod - def _type(cls): - return ''.join(c.lower() if c in string.ascii_lowercase or i == 0 else f"_{c.lower()}" for i,c in enumerate(cls.__name__)) - - @property - def type(self): - return self._type() - - def serialize(self) -> dict[str, str|dict[str,str]]: - return dict(type=self.type, **self.data) - - def make_controller_input(self) -> str: - """ - Available as an example of the expected input to the inflate method - """ - return base64.b64encode(str.encode(json.dumps(self.serialize()), 'utf-8')) - -class NodeRestart(Interrupt): - """ - Operator will do the interrupt for you by restarting the node. - """ - - interrupt_cmd = [["reboot",]] - -class ServiceRestart(Interrupt): - """ - Operator will do the interrupt for you by restarting the given service. - """ - - def __init__(self, services: list[str]): - self.data = { - "services": services - } - - self.interrupt_cmd = [ - ["systemctl", "daemon-reload"] - ] - self.interrupt_cmd += [["systemctl", "restart", s] for s in services] - -class RestartAllServices(Interrupt): - """ - Operator will do the interrupt for you by restarting all services - """ - - interrupt_cmd = [ - ["service" ,"procps", "force-reload"] - ] - -class NoOp(Interrupt): - """ - Operator will do nothing - """ - interrupt_cmd = [] - -class ScriptInterrupt(Interrupt): - """ - The apply script will do the interrupt. - """ - interrupt_cmd = [] - -### DO NOT PUT INTERRUPTS BELOW THIS - -def _make_map(): - """ - Generate a map of all classes above this to use with inflate. - """ - interrupt_map = {} - for _, member in inspect.getmembers(sys.modules[__name__], lambda x: inspect.isclass(x) and issubclass(x, Interrupt) and x != Interrupt): - interrupt_map[member._type()] = member - - return interrupt_map - - -def inflate(serialized_value: str) -> Interrupt: - """ - Convert base64 encoded Interrupt.serialize() back into its original - Interrupt. - """ - interrupt_map = _make_map() - - try: - serialized_data = json.loads(base64.b64decode(serialized_value)) - except: - raise ValueError("Serialized interrupt must be base64 encoded {'type': str, **kwargs: dict[str, any]}") - - try: - interrupt_type = serialized_data['type'] - except KeyError: - raise ValueError("Serialized interrupt must be base64 encoded {'type': str, **kwargs: dict[str, any]}") - - interrupt_data = dict((k,v) for k, v in serialized_data.items() if k != "type") - try: - interrupt = interrupt_map[interrupt_type](**interrupt_data) - except KeyError: - raise ValueError(f"Unknown interrupt {interrupt_type} must be one of: {', '.join(interrupt_map.keys())}") - - return interrupt diff --git a/agent/skyhook-agent/src/skyhook_agent/schemas/v1/skyhook-agent-schema.json b/agent/skyhook-agent/src/skyhook_agent/schemas/v1/skyhook-agent-schema.json deleted file mode 100644 index a9765b7b5..000000000 --- a/agent/skyhook-agent/src/skyhook_agent/schemas/v1/skyhook-agent-schema.json +++ /dev/null @@ -1,114 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "v1/skyhook-agent-schema.json", - "title": "Skyhook-Agent", - "description": "Step Configuration for Skyhook-Agent", - "type": "object", - "properties": { - "schema_version": { - "description": "Version of the schema", - "type": "string" - }, - "package_name": { - "description": "The name of the skyhook package", - "type": "string" - }, - "package_version": { - "description": "The version of the skyhook package. Supports semver", - "type": "string", - "pattern": "^(0|[1-9][0-9]*)[.](0|[1-9][0-9]*)[.](0|[1-9][0-9]*)(?:-((?:0|[1-9][0-9]*|[0-9]*[a-zA-Z-][0-9a-zA-Z-]*)(?:[.](?:0|[1-9][0-9]*|[0-9]*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:[+]([0-9a-zA-Z-]+(?:[.][0-9a-zA-Z-]+)*))?$" - }, - "expected_config_files": { - "description": "List of expected config files. Files within SKYHOOK_DIR/configmaps", - "type": "array", - "items": { - "type": "string" - }, - "minItems": 0 - }, - "modes": { - "description": "What steps to run for each mode", - "type": "object", - "properties": { - "apply": { - "description": "Steps to run for APPLY mode", - "type": "array", - "items": { - "$ref": "v1/step-schema.json" - } - }, - "apply-check": { - "description": "Steps to run to check the work done by APPLY mode", - "type": "array", - "items": { - "$ref": "v1/step-schema.json" - } - }, - "config": { - "description": "Steps to run for CONFIG mode", - "type": "array", - "items": { - "$ref": "v1/step-schema.json" - } - }, - "config-check": { - "description": "Steps to run check the work done by CONFIG mode", - "type": "array", - "items": { - "$ref": "v1/step-schema.json" - } - }, - "post-interrupt": { - "description": "Steps to run after interrupt has been done", - "type": "array", - "items": { - "$ref": "v1/step-schema.json" - } - }, - "post-interrupt-check": { - "description": "Steps to run check the work done by POST-INTERRUPT mode", - "type": "array", - "items": { - "$ref": "v1/step-schema.json" - } - }, - "uninstall": { - "description": "Steps to run to uninstall", - "type": "array", - "items": { - "$ref": "v1/step-schema.json" - } - }, - "uninstall-check": { - "description": "Steps to run to check the work done by UNINSTALL mode", - "type": "array", - "items": { - "$ref": "v1/step-schema.json" - } - }, - "upgrade": { - "description": "Steps to run to upgrade", - "type": "array", - "items": { - "$ref": "v1/step-schema.json" - } - }, - "upgrade-check": { - "description": "Steps to run to check the work done by UPGRADE mode", - "type": "array", - "items": { - "$ref": "v1/step-schema.json" - } - } - } - } - }, - "required": [ - "schema_version", - "package_name", - "package_version", - "expected_config_files", - "modes" - ] -} - diff --git a/agent/skyhook-agent/src/skyhook_agent/schemas/v1/step-schema.json b/agent/skyhook-agent/src/skyhook_agent/schemas/v1/step-schema.json deleted file mode 100644 index 6adbc7cee..000000000 --- a/agent/skyhook-agent/src/skyhook_agent/schemas/v1/step-schema.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "v1/step-schema.json", - "title": "Step", - "description": "Definition of a step for skyhook-agent", - "type": "object", - "properties": { - "name": { - "description": "Name of the step", - "type": "string", - "pattern": "^[a-zA-Z0-9_\\-.]+$" - }, - "path": { - "description": "Path to the step from within the root_dir as set in the main config", - "type": "string" - }, - "arguments": { - "description": "Arguments to pass to the step", - "type": "array", - "items": { - "type": "string" - }, - "minItems": 0 - }, - "returncodes": { - "description": "Return codes that are considered successful", - "type": "array", - "items": { - "type": "integer" - }, - "minItems": 1 - }, - "on_host": { - "description": "Run the step on the host or inside the agent", - "type": "boolean" - }, - "env": { - "description": "Environment variables to set for the step. STEP_ROOT and SKYHOOK_DIR are reserved for every step; PREVIOUS_VERSION and CURRENT_VERSION are also reserved for upgrade steps. Agent runtime values overwrite configured values for those keys.", - "type": "object", - "patternProperties": { - ".*": { "type": "string" } - } - }, - "idempotence": { - "description": "Whether the step will manage its own idempotence", - "type": "boolean" - }, - "upgrade_step": { - "description": "Whether the step is an upgrade step", - "type": "boolean" - }, - "requires_interrupt": { - "description": "Whether completing this step requires an interrupt", - "type": "boolean" - } - }, - "required": [ - "name", - "path", - "arguments", - "returncodes", - "on_host", - "idempotence", - "upgrade_step" - ] -} diff --git a/agent/skyhook-agent/src/skyhook_agent/step.py b/agent/skyhook-agent/src/skyhook_agent/step.py deleted file mode 100644 index 9c75dc5f5..000000000 --- a/agent/skyhook-agent/src/skyhook_agent/step.py +++ /dev/null @@ -1,215 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 -# -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from typing import IO -from enum import Enum -import json -import os - -import logging as logger - -from .enums import SchemaVersion - -""" -THIS FILE IS SYMLINKED IN ./builds/validator/frameworks/ TO NOT COPY CODE... IF WE HAVE MORE OF THIS -WE WILL NEED TO MAKE A MODULE -""" - -class Mode(str, Enum): - UNINSTALL = "uninstall" - UNINSTALL_CHECK = "uninstall-check" - UPGRADE = "upgrade" - UPGRADE_CHECK = "upgrade-check" - APPLY = "apply" - APPLY_CHECK = "apply-check" - CONFIG = "config" - CONFIG_CHECK = "config-check" - INTERRUPT = "interrupt" - POST_INTERRUPT = "post-interrupt" - POST_INTERRUPT_CHECK = "post-interrupt-check" - - def __str__(self): - return self.value - -NON_STEP_MODES = [Mode.INTERRUPT] - -APPLY_TO_CHECK = { - Mode.UNINSTALL: Mode.UNINSTALL_CHECK, - Mode.UPGRADE: Mode.UPGRADE_CHECK, - Mode.APPLY: Mode.APPLY_CHECK, - Mode.CONFIG: Mode.CONFIG_CHECK, - Mode.POST_INTERRUPT: Mode.POST_INTERRUPT_CHECK -} - -CHECK_TO_APPLY = {v: k for k,v in APPLY_TO_CHECK.items()} - - -class Idempotence(str, Enum): - Auto = "auto" # Skyhook fully manages this, your script will be called once or until success - Disabled = ( - "disabled" # you do it yourself however you like, called it many times possibly - ) - - @staticmethod - def validate(i): - match i: - case Idempotence.Auto | Idempotence.Disabled: - return - case _: - raise ValueError(f"{i} is not a valid mode") - - -class Step: - name: str - path: str - arguments: list[str] - on_host: bool - returncodes: set[int] - env: dict[str, str] - idempotence: Idempotence - requires_interrupt: bool - - def __init__(self, path: str, name: str = None, arguments: list[str] = None, returncodes: set[int] = [0], idempotence: Idempotence|str = Idempotence.Auto, requires_interrupt: bool=False, on_host: bool=True, env: dict[str, str] = {}) -> None: - Idempotence.validate(idempotence) - self.name = name if name is not None else path - self.path = path - self.arguments = arguments if arguments is not None else [] - self.on_host = on_host - self.returncodes = returncodes - self.env = env - self.idempotence = idempotence - self.requires_interrupt = requires_interrupt - - def __eq__(self, other): - if not isinstance(other, Step): - return False - return self.__dict__ == other.__dict__ - - def __str__(self) -> str: - return f'{self.name} {self.path} [{", ".join(self.arguments)}] -> {self.returncodes}: mode {self.idempotence} requires_interrupt: {self.requires_interrupt} on_host: {self.on_host} env: {self.env}' - - def __repr__(self) -> str: - return str(self) - - @classmethod - def load(cls, data: dict) -> 'Step': - if data.get('env') is None: - data['env'] = {} - data['idempotence'] = Idempotence.Disabled if data['idempotence'] else Idempotence.Auto - - upgrade_step = data.pop('upgrade_step', False) - if upgrade_step: - return UpgradeStep(**data) - return cls(**data) - - def dump(self) -> dict: - data = { - "name": self.name, - "path": self.path, - "arguments": self.arguments, - "returncodes": list(self.returncodes), - "on_host": self.on_host, - "idempotence": self.idempotence == Idempotence.Disabled, - "upgrade_step": False - } - if self.env: - data['env'] = self.env - return data - - -class UpgradeStep(Step): - def __init__(self, path: str, name: str = None, arguments: list[str] = None, returncodes: set[int] = [0], idempotence: Idempotence|str = Idempotence.Auto, requires_interrupt: bool=False, on_host: bool=True, env: dict[str, str] = None) -> None: - super().__init__(path, name, arguments=arguments, returncodes=returncodes, idempotence=idempotence, requires_interrupt=requires_interrupt, on_host=on_host, env=env) - if arguments: - if len(arguments) != 0: - raise StepError(f"UpgradeStep {self.name} can not have any arguments, but found: {arguments}") - - def dump(self): - data = super().dump() - data['upgrade_step'] = True - return data - -class StepError(Exception): - pass - -class Steps: - - @classmethod - def load(cls, data: dict[str, list[dict]], root_dir: str) -> dict[Mode, list[Step]]: - steps = {} - for mode, step_list in data.items(): - steps[Mode(mode)] = [Step.load(step) for step in step_list] - cls.validate(steps, root_dir=root_dir) - - return steps - - @classmethod - def dump(cls, steps: dict[Mode, list[Step|UpgradeStep]], validate: bool=True, root_dir: str=None) -> dict: - if validate: - if root_dir is None: - raise ValueError("root_dir must be provided to validate steps") - cls.validate(steps, root_dir) - - return {mode.value: [step.dump() for step in step_list] for mode, step_list in steps.items()} - - @classmethod - def validate(self, steps: dict[Mode, list[Step|UpgradeStep]], root_dir: str) -> None: - """ - This method validates that the given steps dict is valid. - Checks will be searched for by appending {step_name}_check.{extension} - to the name of each step. - For every non check mode there has to be at least one matching check mode. - """ - if all(len(steps.get(mode, [])) == 0 for mode in list(Mode)): - raise StepError("There are no defined steps.") - - check_modes = CHECK_TO_APPLY.keys() - non_check_modes = APPLY_TO_CHECK.keys() - - if all(mode not in steps for mode in non_check_modes): - raise StepError(f"There are only check modes defined. You must define at least one of {', '.join(m.name for m in non_check_modes)}") - - for mode in [m for m in non_check_modes if m not in NON_STEP_MODES]: - if steps.get(mode, []) and not steps.get(Mode[f"{mode.name}_CHECK"], []): - raise StepError(f"Couldn't validate steps. There are no checks for any of the {mode} steps.") - - # Validation for UpgradeStep: No args allowed and must be only defined in the - # UPGRADE or UPGRADE_CHECK modes - for mode, step_list in steps.items(): - for step in step_list: - if mode not in [Mode.UPGRADE, Mode.UPGRADE_CHECK] and isinstance(step, UpgradeStep): - raise StepError(f"UpgradeStep {step.path} defined in the {mode} mode but can only be defined in the UPGRADE or UPGRADE_CHECK modes.") - - stepSet = set() - checkSet = set([step.path for mode in check_modes for step in steps.get(mode, [])]) - - for step in (step for mode in non_check_modes if mode not in NON_STEP_MODES for step in steps.get(mode, [])): - name, extension = step.path.rsplit(".", 1) if "." in step.path else (step.path, "") - target = name + "_check." + extension if extension else name + "_check" - stepSet.add(target) - - warnings = stepSet.difference(checkSet) - for name in warnings: - logger.warning(f" {name} doesn't exist. Checks ensure that all tasks in the step will complete.") - - errors = [] - for mode, step_list in steps.items(): - for step in step_list: - if not os.path.exists(f"{root_dir}/{step.path}"): - errors.append(step.path) - - if errors: - raise ValueError("Following steps did not exist:" + ", ".join(errors)) diff --git a/agent/skyhook-agent/tests/__init__.py b/agent/skyhook-agent/tests/__init__.py deleted file mode 100644 index 0b73ad0e7..000000000 --- a/agent/skyhook-agent/tests/__init__.py +++ /dev/null @@ -1,15 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 -# -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. diff --git a/agent/skyhook-agent/tests/test_chroot_exec.py b/agent/skyhook-agent/tests/test_chroot_exec.py deleted file mode 100644 index 3da9b0da9..000000000 --- a/agent/skyhook-agent/tests/test_chroot_exec.py +++ /dev/null @@ -1,295 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 -# -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import unittest -from unittest import mock -from skyhook_agent.chroot_exec import _get_process_env, _get_chroot_env, chroot_exec - - -class TestChrootExec(unittest.TestCase): - - def test_get_process_env_basic_functionality(self): - """Test _get_process_env with non-overlapping keys""" - container_env = {"CONTAINER_VAR": "container_value"} - chroot_env = {"CHROOT_VAR": "chroot_value"} - skyhook_env = {"SKYHOOK_VAR": "skyhook_value"} - - result = _get_process_env(container_env, skyhook_env, chroot_env) - - expected = { - "CONTAINER_VAR": "container_value", - "CHROOT_VAR": "chroot_value", - "SKYHOOK_VAR": "skyhook_value" - } - self.assertEqual(result, expected) - - def test_get_process_env_chroot_overrides_container(self): - """Test that chroot_env overrides container_env for same keys""" - container_env = {"SAME_VAR": "container_value", "CONTAINER_VAR": "container_value"} - chroot_env = {"SAME_VAR": "chroot_value", "CHROOT_VAR": "chroot_value"} - skyhook_env = {"SKYHOOK_VAR": "skyhook_value"} - - result = _get_process_env(container_env, skyhook_env, chroot_env) - - expected = { - "SAME_VAR": "chroot_value", # chroot overrides container - "CONTAINER_VAR": "container_value", - "CHROOT_VAR": "chroot_value", - "SKYHOOK_VAR": "skyhook_value" - } - self.assertEqual(result, expected) - - def test_get_process_env_skyhook_overrides_all(self): - """Test that skyhook_env has highest priority and overrides both chroot and container""" - container_env = {"SAME_VAR": "container_value", "CONTAINER_VAR": "container_value"} - chroot_env = {"SAME_VAR": "chroot_value", "CHROOT_VAR": "chroot_value"} - skyhook_env = {"SAME_VAR": "skyhook_value", "SKYHOOK_VAR": "skyhook_value"} - - result = _get_process_env(container_env, skyhook_env, chroot_env) - - expected = { - "SAME_VAR": "skyhook_value", # skyhook overrides both chroot and container - "CONTAINER_VAR": "container_value", - "CHROOT_VAR": "chroot_value", - "SKYHOOK_VAR": "skyhook_value" - } - self.assertEqual(result, expected) - - def test_get_process_env_with_empty_dicts(self): - """Test _get_process_env with empty dictionaries""" - result = _get_process_env({}, {}, {}) - self.assertEqual(result, {}) - - # Test with only one dict having values - container_env = {"VAR": "value"} - result = _get_process_env(container_env, {}, {}) - self.assertEqual(result, {"VAR": "value"}) - - chroot_env = {"VAR": "value"} - result = _get_process_env({}, {}, chroot_env) - self.assertEqual(result, {"VAR": "value"}) - - skyhook_env = {"VAR": "value"} - result = _get_process_env({}, skyhook_env, {}) - self.assertEqual(result, {"VAR": "value"}) - - def test_get_process_env_precedence_order(self): - """Test complete precedence order: skyhook > chroot > container""" - container_env = { - "PATH": "/container/path", - "HOME": "/container/home", - "USER": "container_user", - "ONLY_CONTAINER": "container_only" - } - chroot_env = { - "PATH": "/chroot/path", - "HOME": "/chroot/home", - "ONLY_CHROOT": "chroot_only" - } - skyhook_env = { - "PATH": "/skyhook/path", - "ONLY_SKYHOOK": "skyhook_only" - } - - result = _get_process_env(container_env, skyhook_env, chroot_env) - - expected = { - "PATH": "/skyhook/path", # skyhook wins - "HOME": "/chroot/home", # chroot wins over container - "USER": "container_user", # only in container - "ONLY_CONTAINER": "container_only", - "ONLY_CHROOT": "chroot_only", - "ONLY_SKYHOOK": "skyhook_only" - } - self.assertEqual(result, expected) - - def test_get_process_env_does_not_modify_input_dicts(self): - """Test that input dictionaries are not modified""" - container_env = {"VAR": "container"} - chroot_env = {"VAR": "chroot"} - skyhook_env = {"VAR": "skyhook"} - - # Keep original references - original_container = container_env.copy() - original_chroot = chroot_env.copy() - original_skyhook = skyhook_env.copy() - - result = _get_process_env(container_env, skyhook_env, chroot_env) - - # Verify input dicts weren't modified - self.assertEqual(container_env, original_container) - self.assertEqual(chroot_env, original_chroot) - self.assertEqual(skyhook_env, original_skyhook) - - # Verify result is correct - self.assertEqual(result, {"VAR": "skyhook"}) - - @mock.patch('skyhook_agent.chroot_exec.subprocess.run') - def test_get_chroot_env_basic_functionality(self, mock_subprocess): - """Test _get_chroot_env with typical environment output""" - mock_result = mock.MagicMock() - mock_result.stdout = "PATH=/usr/bin:/bin\nHOME=/root\nUSER=root\n" - mock_subprocess.return_value = mock_result - - result = _get_chroot_env() - - expected = { - "PATH": "/usr/bin:/bin", - "HOME": "/root", - "USER": "root" - } - self.assertEqual(result, expected) - mock_subprocess.assert_called_once_with(["env"], capture_output=True, text=True) - - @mock.patch('skyhook_agent.chroot_exec.subprocess.run') - def test_get_chroot_env_with_multiple_equals(self, mock_subprocess): - """Test _get_chroot_env correctly handles lines with multiple '=' characters""" - mock_result = mock.MagicMock() - mock_result.stdout = "VAR1=value=with=equals\nVAR2=simple_value\n" - mock_subprocess.return_value = mock_result - - result = _get_chroot_env() - - expected = { - "VAR1": "value=with=equals", # Should split only on first = - "VAR2": "simple_value" - } - self.assertEqual(result, expected) - - @mock.patch('skyhook_agent.chroot_exec.subprocess.run') - def test_get_chroot_env_ignores_lines_without_equals(self, mock_subprocess): - """Test _get_chroot_env ignores lines that don't contain '='""" - mock_result = mock.MagicMock() - mock_result.stdout = "PATH=/usr/bin\ninvalid_line_no_equals\nHOME=/root\n\n" - mock_subprocess.return_value = mock_result - - result = _get_chroot_env() - - expected = { - "PATH": "/usr/bin", - "HOME": "/root" - } - self.assertEqual(result, expected) - - @mock.patch('skyhook_agent.chroot_exec.subprocess.run') - def test_get_chroot_env_with_empty_output(self, mock_subprocess): - """Test _get_chroot_env with empty subprocess output""" - mock_result = mock.MagicMock() - mock_result.stdout = "" - mock_subprocess.return_value = mock_result - - result = _get_chroot_env() - - self.assertEqual(result, {}) - mock_subprocess.assert_called_once_with(["env"], capture_output=True, text=True) - - @mock.patch('skyhook_agent.chroot_exec.subprocess.run') - def test_get_chroot_env_with_empty_values(self, mock_subprocess): - """Test _get_chroot_env handles environment variables with empty values""" - mock_result = mock.MagicMock() - mock_result.stdout = "EMPTY_VAR=\nNORM_VAR=value\nANOTHER_EMPTY=\n" - mock_subprocess.return_value = mock_result - - result = _get_chroot_env() - - expected = { - "EMPTY_VAR": "", - "NORM_VAR": "value", - "ANOTHER_EMPTY": "" - } - self.assertEqual(result, expected) - - @mock.patch('skyhook_agent.chroot_exec.subprocess.run') - def test_get_chroot_env_with_whitespace_and_special_chars(self, mock_subprocess): - """Test _get_chroot_env handles values with whitespace and special characters""" - mock_result = mock.MagicMock() - mock_result.stdout = "VAR_WITH_SPACES=value with spaces\nSPECIAL_CHARS=!@#$%^&*()\nPATH=/usr/bin:/bin\n" - mock_subprocess.return_value = mock_result - - result = _get_chroot_env() - - expected = { - "VAR_WITH_SPACES": "value with spaces", - "SPECIAL_CHARS": "!@#$%^&*()", - "PATH": "/usr/bin:/bin" - } - self.assertEqual(result, expected) - - @mock.patch('skyhook_agent.chroot_exec.subprocess.run') - @mock.patch('skyhook_agent.chroot_exec._get_chroot_env') - @mock.patch('skyhook_agent.chroot_exec.os.chmod') - @mock.patch('skyhook_agent.chroot_exec.os.chdir') - @mock.patch('skyhook_agent.chroot_exec.os.chroot') - def test_chroot_exec_without_copy_dir_raises( - self, mock_chroot, mock_chdir, mock_chmod, mock_get_chroot_env, mock_subprocess_run - ): - """Test chroot_exec with no copy_dir in config raises ValueError""" - config = { - "cmd": ["/some/step.sh", "arg1"], - "no_chmod": True, - "env": {}, - } - with self.assertRaises(ValueError) as ctx: - chroot_exec(config, "/chroot/path") - self.assertIn("copy_dir must be set in config", str(ctx.exception)) - mock_subprocess_run.assert_not_called() - - @mock.patch('skyhook_agent.chroot_exec.subprocess.run') - @mock.patch('skyhook_agent.chroot_exec._get_chroot_env') - @mock.patch('skyhook_agent.chroot_exec.os.chmod') - @mock.patch('skyhook_agent.chroot_exec.os.chdir') - @mock.patch('skyhook_agent.chroot_exec.os.chroot') - def test_chroot_exec_with_copy_dir_relative_raises( - self, mock_chroot, mock_chdir, mock_chmod, mock_get_chroot_env, mock_subprocess_run - ): - """Test chroot_exec with relative copy_dir raises ValueError""" - mock_get_chroot_env.return_value = {} - mock_subprocess_run.return_value = mock.MagicMock(returncode=0) - config = { - "cmd": ["/skyhook_data/skyhook_dir/step.sh"], - "no_chmod": True, - "env": {}, - "copy_dir": "skyhook_data", - } - with self.assertRaises(ValueError) as ctx: - chroot_exec(config, "/chroot/path") - self.assertIn("copy_dir must be an absolute path", str(ctx.exception)) - mock_subprocess_run.assert_not_called() - - @mock.patch('skyhook_agent.chroot_exec.subprocess.run') - @mock.patch('skyhook_agent.chroot_exec._get_chroot_env') - @mock.patch('skyhook_agent.chroot_exec.os.chmod') - @mock.patch('skyhook_agent.chroot_exec.os.chdir') - @mock.patch('skyhook_agent.chroot_exec.os.chroot') - def test_chroot_exec_with_copy_dir_absolute_sets_cwd_as_given( - self, mock_chroot, mock_chdir, mock_chmod, mock_get_chroot_env, mock_subprocess_run - ): - """Test chroot_exec with absolute copy_dir passes cwd through to subprocess.run""" - mock_get_chroot_env.return_value = {} - mock_subprocess_run.return_value = mock.MagicMock(returncode=0) - config = { - "cmd": ["/skyhook_data/skyhook_dir/step.sh"], - "no_chmod": True, - "env": {}, - "copy_dir": "/skyhook_data", - } - chroot_exec(config, "/chroot/path") - call_kwargs = mock_subprocess_run.call_args[1] - self.assertEqual(call_kwargs["cwd"], "/skyhook_data") - - -if __name__ == '__main__': - unittest.main() \ No newline at end of file diff --git a/agent/skyhook-agent/tests/test_config.py b/agent/skyhook-agent/tests/test_config.py deleted file mode 100644 index a5623f089..000000000 --- a/agent/skyhook-agent/tests/test_config.py +++ /dev/null @@ -1,131 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 -# -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import unittest -from tempfile import TemporaryDirectory - -from jsonschema import ValidationError - -from skyhook_agent import config, step - -class TestConfig(unittest.TestCase): - def setUp(self): - self._config = { - "schema_version": "v1", - "root_dir": "/", - "expected_config_files": ["path"], - "package_name": "package", - "package_version": "1.0.0", - "modes": { - "apply": [ - { - "name": "a", - "path": "a-path", - "arguments": [], - "returncodes": [0], - "on_host": True, - "env": {"hello": "world"}, - "idempotence": False, - "upgrade_step": False - } - ], - "apply-check": [ - { - "name": "b", - "path": "b-path", - "arguments": [], - "returncodes": [0], - "on_host": True, - "idempotence": False, - "upgrade_step": False - } - ] - } - } - - - _steps = { - step.Mode.APPLY: [ - step.Step("a-path", "a", env={"hello": "world"}), - ], - step.Mode.APPLY_CHECK: [ - step.Step("b-path", "b"), - ] - } - - def test_load(self): - this_config = self._config.copy() - with TemporaryDirectory() as temp_dir: - for conf in this_config["modes"].values(): - with open(f"{temp_dir}/{conf[0]['path']}", "w") as f: - f.write("") - config.load(this_config, step_root_dir=temp_dir) - - def test_dump(self): - dumped_config = config.dump("package", "1.0.0", "/", self._steps, expected_config_files=["path"]) - self.assertDictEqual(dumped_config, self._config) - - def test_check_smoke(self): - registry = config.load_schema_registry() - this_config = self._config.copy() - config.check(this_config, registry) - - def test_check_error_on_bad_version(self): - with self.assertRaises(ValidationError): - config.check({"schema_version": "bad"}, config.load_schema_registry()) - - def test_check_error_on_bad_config(self): - with self.assertRaises(ValidationError): - config.check({"schema_version": "v1"}, config.load_schema_registry()) - - def test_migrate(self): - """ - Not much of a test right now as there is only one schema version - """ - this_config = self._config.copy() - self.assertEqual(config.migrate(this_config), self._config) - - def test_load_schema_restiry(self): - registry = config.load_schema_registry() - self.assertIsNotNone(registry.get("v1/skyhook-agent-schema.json")) - self.assertIsNotNone(registry.get("v1/step-schema.json")) - self.assertIsNone(registry.get("bad/skyhook-agent-schema.json")) - - def test_package_version_validation(self): - valid_versions = [ - "1.0.0", - "1.0.0-dev", - "1.0.0+build1", - "2024.12.19" - ] - - invalid_versions = [ - "1.0", - "a", - "1.0.0-", - "1.0.0_", - "2024.01.01" - ] - registry = config.load_schema_registry() - this_config = self._config.copy() - for v in valid_versions: - this_config["package_version"] = v - config.check(this_config, registry) - - for v in invalid_versions: - this_config["package_version"] = v - with self.assertRaises(ValidationError): - config.check(this_config, registry) diff --git a/agent/skyhook-agent/tests/test_controller.py b/agent/skyhook-agent/tests/test_controller.py deleted file mode 100644 index c1ad57b54..000000000 --- a/agent/skyhook-agent/tests/test_controller.py +++ /dev/null @@ -1,1626 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 -# -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import unittest -import tempfile -import sys -import os -import stat -import json -import asyncio -import textwrap -import shutil -import glob -import time - -from contextlib import contextmanager -from datetime import datetime, timezone -from unittest import mock - -import pytest - -from skyhook_agent import controller, config -from skyhook_agent.step import Step, UpgradeStep, Idempotence, Mode -from skyhook_agent import interrupts - -this_directory = os.path.dirname(os.path.abspath(__file__)) - -os.environ['OVERLAY_FRAMEWORK_VERSION'] = 'testing-1.0.0' - -# A helper to set environment variables within a context -@contextmanager -def set_env(**vars): - """ - Temporarily set environment variables within a context. Once - complete if the environment variable was not set before it will - be deleted. If it was set before it will be restored to its - original value. - """ - prior_values = {k: os.environ[k] for k in vars if k in os.environ} - os.environ.update(vars) - try: - yield - finally: - for k in vars: - if k in prior_values: - os.environ[k] = prior_values[k] - else: - del os.environ[k] - - -class FakeSubprocessResult: - def __init__(self, returncode): - self.returncode = returncode - - -def fake_a_tee(return_code): - async def fake_tee(*args, **kwargs): - return FakeSubprocessResult(return_code) - - return fake_tee - -class FakeIO(): - def __init__(self) -> None: - self.buffer = "" - - def write(self, x): - self.buffer += x - - def read_lines(self): - return self.buffer.split("\n") - - def flush(self): pass - - def read(self): - return self.buffer - - -PYTHON_EXE=os.getenv("PYTHON_EXE", "python") - -class TestHelpers(unittest.TestCase): - def setUp(self): - self.config_data = {"package_name": "foo", "package_version": "1.0.0"} - - def test_nullwriter_discards_writes(self): - """Test that NullWriter discards all writes and behaves like a file.""" - writer = controller.NullWriter() - - # Test write returns length - result = writer.write("test data") - self.assertEqual(result, 9) - - # Test write with empty string - result = writer.write("") - self.assertEqual(result, 0) - - # Test flush and close don't raise - writer.flush() - writer.close() - - def test_nullwriter_context_manager(self): - """Test that NullWriter works as a context manager.""" - with controller.NullWriter() as writer: - writer.write("test") - writer.flush() - # Should exit cleanly without errors - - def test_make_flag_path_uses_args(self): - path_a = controller.make_flag_path(Step("foo.sh", arguments=["1", "2"], returncodes=(0, 1, 2)), self.config_data, "root_mount") - path_b = controller.make_flag_path(Step("foo.sh", arguments=["1"], returncodes=(0, 1, 2)), self.config_data, "root_mount") - - self.assertNotEqual(path_a, path_b) - - def test_make_flag_path_uses_returncodes(self): - path_a = controller.make_flag_path(Step("foo.sh", arguments=["1", "2"], returncodes=(0, 1, 2)), self.config_data, "root_mount") - path_b = controller.make_flag_path(Step("foo.sh", arguments=["1", "2"], returncodes=(0)), self.config_data, "root_mount") - - self.assertNotEqual(path_a, path_b) - - def test_set_flag(self): - with tempfile.TemporaryDirectory() as dir: - path = f"{dir}/foo/bar.sh_123asdas" - controller.set_flag(path) - self.assertTrue(os.path.exists(path)) - - def test_get_history_dir(self): - self.assertEqual(controller.get_history_dir("root_mount"), "root_mount/etc/skyhook/history") - - @mock.patch("skyhook_agent.controller.sys") - def test_tee_adds_cmds(self, sys_mock): - sys_mock.stdout = FakeIO() - sys_mock.stderr = FakeIO() - sys_mock.executable = sys.executable - - with tempfile.TemporaryDirectory() as dir: - with open(f"{dir}/foo", 'w') as f: - f.write("") - - with tempfile.NamedTemporaryFile('w') as f: - result = asyncio.run( - controller.tee("", ["ls", dir], f.name, f"{dir}/foo.err", "tmp", write_cmds=True) - ) - self.assertEqual( - f"ls {dir}", - sys_mock.stdout.read_lines()[0].strip() - ) - with open(f.name, 'r') as read_f: - self.assertEqual( - f"ls {dir}", - read_f.read().split("\n")[0] - ) - - def test_stream_process_deals_with_large_lines(self): - async def make_process(file, buffer): - p = await asyncio.create_subprocess_shell(f"cat {file}", limit=5, stdout=asyncio.subprocess.PIPE) - await(controller._stream_process(p.stdout, [buffer], limit=5)) - - with tempfile.TemporaryDirectory() as dir: - with open(f"{dir}/foo", 'w') as f: - f.write("a" * 1000 + "\n") - f.write("b" * 1000 + "\n") - f.write("c" * 1000 + "\n") - f.flush() - - buffer = FakeIO() - asyncio.run(make_process(f"{dir}/foo", buffer)) - - self.assertEqual(len(buffer.read_lines()), 4) - - def test_get_package_information(self): - name, version = controller._get_package_information(self.config_data) - self.assertEqual(name, "foo") - self.assertEqual(version, "1.0.0") - - @mock.patch("skyhook_agent.controller.datetime") - @mock.patch("skyhook_agent.controller.os.makedirs") - def test_get_log_file(self, os_mock, datetime_mock): - now_mock = mock.MagicMock() - datetime_mock.now.return_value = now_mock - now_mock.strftime.return_value = "12345" - log_file = controller.get_log_file("foo", "copy_dir", self.config_data, "root_mount") - self.assertEqual(log_file, f"root_mount/var/log/skyhook/{self.config_data['package_name']}/{self.config_data['package_version']}/foo-12345.log") - - def test_make_flag_path_has_package_name(self): - flag_path = controller.make_flag_path(Step("foo", returncodes=[0]), self.config_data, "root_mount") - self.assertTrue(flag_path.startswith(f"{controller.get_skyhook_directory("root_mount")}/flags/{self.config_data['package_name']}/{self.config_data['package_version']}")) - - @mock.patch("skyhook_agent.controller.cleanup_old_logs") - @mock.patch("skyhook_agent.controller.get_log_file") - @mock.patch("skyhook_agent.controller.subprocess") - @mock.patch("skyhook_agent.controller.tee") - def test_run_step_is_successful(self, tee_mock, subprocess_mock, log_mock, cleanup_mock): - subprocess_mock.run.return_value = FakeSubprocessResult(0) - tee_mock.return_value = FakeSubprocessResult(0) - - run_step_result = controller.run_step( - Step("foo", arguments=["a", "b"], returncodes=[0]), "chroot_dir", "copy_dir", self.config_data - ) - self.assertFalse(run_step_result) - log_file = controller.get_log_file( - f"{controller.get_host_path_for_steps('copy_dir')}/foo", "copy_dir", self.config_data, "root_mount" - ) - tee_mock.assert_has_calls( - [ - mock.call( - "chroot_dir", - ["copy_dir/skyhook_dir/foo", "a", "b"], - log_file, - f"{log_file}.err", - env={"STEP_ROOT": "copy_dir/skyhook_dir", "SKYHOOK_DIR": "copy_dir"}, - write_cmds=False, - no_chmod=False, - write_logs=True, - copy_dir="copy_dir" - ) - ] - ) - - @mock.patch("skyhook_agent.controller.cleanup_old_logs") - @mock.patch("skyhook_agent.controller.get_log_file") - @mock.patch("skyhook_agent.controller.subprocess") - @mock.patch("skyhook_agent.controller.tee") - @mock.patch("skyhook_agent.controller.os") - def test_run_step_is_failed(self, os_mock, tee_mock, subprocess_mock, get_log_file_mock, cleanup_mock): - # chmod +x will work - subprocess_mock.run.return_value = FakeSubprocessResult(0) - # step will fail - tee_mock.return_value = FakeSubprocessResult(1) - run_step_result = controller.run_step(Step("foo", arguments=["a", "b"], returncodes=[0]), "chroot_dir", "copy_dir", self.config_data) - self.assertTrue(run_step_result) - - @mock.patch("skyhook_agent.controller.cleanup_old_logs") - @mock.patch("skyhook_agent.controller.get_log_file") - @mock.patch("skyhook_agent.controller.subprocess") - @mock.patch("skyhook_agent.controller.tee") - @mock.patch("skyhook_agent.controller.os.makedirs") - @mock.patch("skyhook_agent.controller.os.chmod") - @mock.patch("skyhook_agent.controller.os.stat") - def test_run_step_replaces_environment_variables( - self, stat_mock, chmod_mock, os_mock, tee_mock, subprocess_mock, log_mock, cleanup_mock - ): - subprocess_mock.run.return_value = FakeSubprocessResult(0) - tee_mock.return_value = FakeSubprocessResult(0) - - with set_env(FOO="foo"): - run_step_result = controller.run_step( - Step("foo", arguments=["a", "env:FOO"], returncodes=[0]), "chroot_dir", "copy_dir", self.config_data - ) - self.assertFalse(run_step_result) - - log_file = controller.get_log_file( - f"{controller.get_host_path_for_steps('copy_dir')}/foo", "copy_dir", self.config_data, "root_mount" - ) - tee_mock.assert_has_calls( - [ - mock.call( - "chroot_dir", - ["copy_dir/skyhook_dir/foo", "a", "foo"], - log_file, - f"{log_file}.err", - write_cmds=False, - no_chmod=False, - env={"STEP_ROOT": "copy_dir/skyhook_dir", "SKYHOOK_DIR": "copy_dir"}, - write_logs=True, - copy_dir="copy_dir" - ) - ] - ) - - @mock.patch("builtins.print") - def test_run_step_prints_all_missing_environment_variables(self, print_mock): - run_step_result = controller.run_step( - Step("foo", arguments=["/some/path", "env:BAR", "env:FOO"], returncodes=[0]), "chroot_dir", "copy_dir", self.config_data - ) - self.assertTrue(run_step_result) - - print_mock.assert_has_calls( - [ - mock.call("foo: Expected environment variable did not exist: BAR"), - mock.call("foo: Expected environment variable did not exist: FOO"), - ] - ) - - @mock.patch("skyhook_agent.controller.os") - def test_check_flag_file(self, os_mock): - os_mock.path = mock.MagicMock() - - os_mock.path.exists.return_value = True - self.assertTrue( - controller.check_flag_file(Step("foo", idempotence=Idempotence.Auto), "foo_bar", False, Mode.APPLY) - ) - self.assertFalse( - controller.check_flag_file(Step("foo", idempotence=Idempotence.Disabled), "foo_bar", False, Mode.APPLY) - ) - self.assertFalse( - controller.check_flag_file(Step("foo", idempotence=Idempotence.Disabled), "foo_bar", False, Mode.CONFIG) - ) - self.assertFalse( - controller.check_flag_file(Step("foo", idempotence=Idempotence.Auto), "foo_bar", False, Mode.CONFIG) - ) - self.assertFalse( - controller.check_flag_file(Step("foo", idempotence=Idempotence.Disabled), "foo_bar", False, Mode.UNINSTALL) - ) - self.assertFalse( - controller.check_flag_file(Step("foo", idempotence=Idempotence.Auto), "foo_bar", False, Mode.UNINSTALL) - ) - - os_mock.path.exists.return_value = False - self.assertFalse( - controller.check_flag_file(Step("foo", idempotence=Idempotence.Auto), "foo_bar", False, Mode.APPLY) - ) - - @mock.patch("skyhook_agent.controller.get_flag_dir") - def test_summarize_check_results(self, flag_dir_mock): - with tempfile.TemporaryDirectory() as dir: - flag_dir_mock.return_value = dir - - # Has a failure - steps = { - Mode.APPLY: [ - Step("foo", arguments=[]), - Step("bar", arguments=[]), - Step("baz", arguments=[]), - ] - } - result = controller.summarize_check_results( - [False, False, True], steps, Mode.APPLY, "" - ) - self.assertTrue(result) - with open(f"{dir}/check_results", "r") as f: - self.assertEqual("foo False\nbar False\nbaz True", f.read().strip()) - - # Did not fail - result = controller.summarize_check_results( - [False, False, False], steps, Mode.APPLY, "" - ) - self.assertFalse(result) - with open(f"{dir}/check_results", "r") as f: - self.assertEqual("foo False\nbar False\nbaz False", f.read().strip()) - self.assertTrue(os.path.exists(f"{dir}/{str(Mode.APPLY)}_ALL_CHECKED")) - - -@contextmanager -def setup_for_main(steps=None, agent_mode="legacy"): - if steps is None: - steps = { - Mode.APPLY: [ - Step("foo.sh", arguments=[]), - ], - Mode.APPLY_CHECK: [ - Step("foo_check.sh", arguments=[]), - ], - } - with tempfile.TemporaryDirectory() as container_root_dir: - os.makedirs(f"{container_root_dir}/skyhook_dir") - os.makedirs(f"{container_root_dir}_dir") - os.makedirs(f"{container_root_dir}/configmaps") - # Create the step file so validation doesn't fail - for step_list in steps.values(): - for step in step_list: - with open(f"{container_root_dir}/skyhook_dir/{step.path}", "w") as temp_f: - temp_f.write("") - - config_data = config.dump("foo", "1.0.0", container_root_dir, steps) - with open(f"{container_root_dir}/config.json", "w") as temp_f: - json.dump(config_data, temp_f) - - pass_config_data = config.load(config_data, f"{container_root_dir}/skyhook_dir") - copy_dir = "tmp" - with tempfile.TemporaryDirectory() as root_dir: - with set_env( - SKYHOOK_CONFIGMAP_DIR=f"{container_root_dir}/configmaps", - SKYHOOK_AGENT_MODE=agent_mode, - SKYHOOK_DATA_DIR=container_root_dir): - with mock.patch("skyhook_agent.controller.os.chroot"), \ - mock.patch("skyhook_agent.controller.get_skyhook_directory", return_value=root_dir), \ - mock.patch("skyhook_agent.controller.get_host_path_for_steps", return_value=f"{root_dir}/tmp/skyhook_dir"), \ - mock.patch("skyhook_agent.controller.get_log_dir", return_value=f"{root_dir}/log"): - try: - yield container_root_dir, pass_config_data, root_dir, copy_dir - finally: - shutil.rmtree(container_root_dir) - shutil.rmtree(root_dir) - - -@pytest.fixture -def main_setup(): - with setup_for_main() as setup: - yield setup - - -def test_interrupt_bootstraps_copy_dir_before_running(monkeypatch, main_setup): - calls = [] - - def assert_copy_dir_exists(_interrupt_data, root_mount, copy_dir) -> bool: - calls.append((root_mount, copy_dir)) - assert os.path.exists(f"{root_mount}/{copy_dir}/config.json") - return False - - monkeypatch.setattr(controller, "do_interrupt", assert_copy_dir_exists) - monkeypatch.setenv("SKYHOOK_RESOURCE_ID", "scr-id-1_package_version") - - _, _, root_dir, copy_dir = main_setup - result = controller.main( - Mode.INTERRUPT, - root_dir, - copy_dir, - interrupts.ServiceRestart(["containerd"]).make_controller_input(), - ) - - assert result is False - assert len(calls) == 1 - - -class TestUseCases(unittest.TestCase): - def setUp(self): - self.config_data = {"package_name": "foo", "package_version": "1.0.0"} - - @contextmanager - def _setup_for_main(self, steps=None, agent_mode="legacy"): - with setup_for_main(steps, agent_mode) as setup: - yield setup - - @mock.patch("skyhook_agent.controller._run") - def test_flags_are_removed_after_uninstall(self, run_mock): - run_mock.return_value = 0 - - - steps = { - Mode.UNINSTALL: [Step("foo", arguments=[])], - Mode.UNINSTALL_CHECK: [Step("foo_check", arguments=[])], - Mode.APPLY: [Step("bar", arguments=[])], - Mode.APPLY_CHECK: [Step("bar_check", arguments=[])], - } - - with self._setup_for_main(steps) as (container_dir, config_data, root_dir, copy_dir): - - ## make flags - flags = [] - os.makedirs(controller.get_flag_dir(root_dir), exist_ok=True) - for step in [step for steps in steps.values() for step in steps]: - flag_file = controller.make_flag_path(step, config_data, root_dir) - controller.set_flag(flag_file, "") - flags.append(flag_file) - - ## making flag file that isn't in steps definition to assert that - ## it doesn't get deleted - with open(controller.make_flag_path(Step("bogus"), config_data, root_dir), 'w'): pass - - controller.main(str(Mode.UNINSTALL_CHECK), root_dir, copy_dir, None) - - ## assert the flags were erased - for flag in flags: - self.assertFalse(os.path.exists(flag)) - - self.assertTrue(os.path.exists(controller.make_flag_path(Step("bogus"), config_data, root_dir))) - - @mock.patch("skyhook_agent.controller._run") - def test_flags_arent_removed_after_failed_uninstall(self, run_mock): - run_mock.return_value = 1 ## make uninstall_check fail - - steps = { - Mode.UNINSTALL: [Step("foo", arguments=[])], - Mode.UNINSTALL_CHECK: [Step("foo_check", arguments=[])], - Mode.APPLY: [Step("bar", arguments=[])], - Mode.APPLY_CHECK: [Step("bar_check", arguments=[])], - } - - with self._setup_for_main(steps) as (container_dir, config_data, root_dir, copy_dir): - - ## make flags - flags = [] - os.makedirs(controller.get_flag_dir(root_dir), exist_ok=True) - for step in [step for steps in steps.values() for step in steps]: - flag_file = controller.make_flag_path(step, config_data, root_dir) - controller.set_flag(flag_file, "") - flags.append(flag_file) - - ## making flag file that isn't in steps definition to assert that - ## it doesn't get deleted - with open(controller.make_flag_path(Step("bogus"), config_data, root_dir), 'w'): pass - - controller.main(str(Mode.UNINSTALL_CHECK), root_dir, copy_dir, None) - - ## assert the flags weren't erased - for flag in flags: - self.assertTrue(os.path.exists(flag)) - - self.assertTrue(os.path.exists(controller.make_flag_path(Step("bogus"), config_data, root_dir))) - - @mock.patch("skyhook_agent.controller.datetime") - @mock.patch("skyhook_agent.controller._run") - def test_version_history_is_created_after_apply(self, run_mock, datetime_mock): - run_mock.return_value = 0 - - mock_time = datetime(2024, 8, 28, 12, 0, 0, tzinfo=timezone.utc) - datetime_mock.now.return_value = mock_time - - steps = { - Mode.UPGRADE: [Step("foo", arguments=[])], - Mode.UPGRADE_CHECK: [Step("foo_check", arguments=[])], - Mode.APPLY: [Step("bar", arguments=[])], - Mode.APPLY_CHECK: [Step("bar_check", arguments=[])], - } - - with self._setup_for_main(steps) as (container_dir, config_data, root_dir, copy_dir): - controller.main(str(Mode.APPLY_CHECK), root_dir, copy_dir, None) - with open(f"{controller.get_history_dir(root_dir)}/foo.json", "r") as history_file: - history = json.load(history_file) - - self.assertEqual(history["current-version"], "1.0.0") - - self.assertEqual(len(history["history"]), 1) - self.assertEqual(history["history"][0]["version"], "1.0.0") - self.assertEqual(history["history"][0]["time"], mock_time.isoformat()) - - @mock.patch("skyhook_agent.controller._run") - def test_version_history_isnt_changed_after_check_fails(self, run_mock): - run_mock.return_value = 1 - steps = { - Mode.UPGRADE: [Step("foo", arguments=[])], - Mode.UPGRADE_CHECK: [Step("foo_check", arguments=[])], - Mode.APPLY: [Step("bar", arguments=[])], - Mode.APPLY_CHECK: [Step("bar_check", arguments=[])], - } - - with self._setup_for_main(steps) as (container_dir, config_data, root_dir, copy_dir): - controller.main(str(Mode.APPLY_CHECK), root_dir, copy_dir, None) - self.assertFalse(os.path.exists(f"{root_dir}/etc/skyhook/history/foo.json")) - - @mock.patch("skyhook_agent.controller.datetime") - @mock.patch("skyhook_agent.controller._run") - def test_corrupt_history_file_is_moved_to_backup(self, run_mock, datetime_mock): - run_mock.return_value = 0 - - mock_time = datetime(2024, 8, 28, 12, 0, 0, tzinfo=timezone.utc) - datetime_mock.now.return_value = mock_time - - steps = { - Mode.UPGRADE: [Step("foo", arguments=[])], - Mode.UPGRADE_CHECK: [Step("foo_check", arguments=[])], - Mode.APPLY: [Step("bar", arguments=[])], - Mode.APPLY_CHECK: [Step("bar_check", arguments=[])], - } - - with self._setup_for_main(steps) as (container_dir, config_data, root_dir, copy_dir): - - os.makedirs(controller.get_history_dir(root_dir), exist_ok=True) - with open(f"{controller.get_history_dir(root_dir)}/foo.json", "w") as history_file: - history_file.write("{") ## Corrupt history file - controller.main(str(Mode.APPLY_CHECK), root_dir, copy_dir, None) - - with open(f"{controller.get_history_dir(root_dir)}/foo.json.backup") as backup_file: - backup_data = backup_file.read() - self.assertEqual(backup_data, "{") - - with open(f"{controller.get_history_dir(root_dir)}/foo.json", "r") as history_file: - history = json.load(history_file) - - self.assertEqual(history["current-version"], "1.0.0") - - self.assertEqual(len(history["history"]), 1) - self.assertEqual(history["history"][0]["version"], "1.0.0") - self.assertEqual(history["history"][0]["time"], mock_time.isoformat()) - - @mock.patch("skyhook_agent.controller.datetime") - @mock.patch("skyhook_agent.controller._run") - def test_version_history_is_updated_after_apply(self, run_mock, datetime_mock): - run_mock.return_value = 0 - - mock_time = datetime(2024, 8, 28, 12, 0, 0, tzinfo=timezone.utc) - datetime_mock.now.return_value = mock_time - - steps = { - Mode.UPGRADE: [Step("foo", arguments=[])], - Mode.UPGRADE_CHECK: [Step("foo_check", arguments=[])], - Mode.APPLY: [Step("bar", arguments=[])], - Mode.APPLY_CHECK: [Step("bar_check", arguments=[])], - } - - with self._setup_for_main(steps) as (container_dir, config_data, root_dir, copy_dir): - - os.makedirs(controller.get_history_dir(root_dir), exist_ok=True) - with open(f"{controller.get_history_dir(root_dir)}/foo.json", "w") as history_file: - json.dump({ - "current-version": "0.0.9", - "history": [ - {"version": "0.0.9", "time": "2024-08-28T14:33:20.123456+00:00"} - ] - }, history_file) - - controller.main(str(Mode.APPLY_CHECK), root_dir, copy_dir, None) - - with open(f"{controller.get_history_dir(root_dir)}/foo.json", "r") as history_file: - history = json.load(history_file) - - self.assertEqual(history["current-version"], "1.0.0") - - self.assertEqual(len(history["history"]), 2) - self.assertEqual(history["history"][0]["version"], "1.0.0") - self.assertEqual(history["history"][0]["time"], mock_time.isoformat()) - - self.assertEqual(history["history"][1]["version"], "0.0.9") - self.assertEqual(history["history"][1]["time"], "2024-08-28T14:33:20.123456+00:00") - - @mock.patch("skyhook_agent.controller.datetime") - @mock.patch("skyhook_agent.controller._run") - def test_version_history_is_created_after_upgrade(self, run_mock, datetime_mock): - run_mock.return_value = 0 - - mock_time = datetime(2024, 8, 28, 12, 0, 0, tzinfo=timezone.utc) - datetime_mock.now.return_value = mock_time - - steps = { - Mode.UPGRADE: [Step("foo", arguments=[])], - Mode.UPGRADE_CHECK: [Step("foo_check", arguments=[])], - Mode.APPLY: [Step("bar", arguments=[])], - Mode.APPLY_CHECK: [Step("bar_check", arguments=[])], - } - - with self._setup_for_main(steps) as (container_dir, config_data, root_dir, copy_dir): - controller.main(str(Mode.UPGRADE_CHECK), root_dir, copy_dir, None) - - with open(f"{controller.get_history_dir(root_dir)}/foo.json", "r") as history_file: - history = json.load(history_file) - - self.assertEqual(history["current-version"], "1.0.0") - - self.assertEqual(len(history["history"]), 1) - self.assertEqual(history["history"][0]["version"], "1.0.0") - self.assertEqual(history["history"][0]["time"], mock_time.isoformat()) - - @mock.patch("skyhook_agent.controller.datetime") - @mock.patch("skyhook_agent.controller._run") - def test_version_history_is_updated_after_upgrade(self, run_mock, datetime_mock): - run_mock.return_value = 0 - - mock_time = datetime(2024, 8, 28, 12, 0, 0, tzinfo=timezone.utc) - datetime_mock.now.return_value = mock_time - - steps = { - Mode.UPGRADE: [Step("foo", arguments=[])], - Mode.UPGRADE_CHECK: [Step("foo_check", arguments=[])], - Mode.APPLY: [Step("bar", arguments=[])], - Mode.APPLY_CHECK: [Step("bar_check", arguments=[])], - } - - with self._setup_for_main(steps) as (container_dir, config_data, root_dir, copy_dir): - - os.makedirs(controller.get_history_dir(root_dir), exist_ok=True) - with open(f"{controller.get_history_dir(root_dir)}/foo.json", "w") as history_file: - json.dump({ - "current-version": "0.0.9", - "history": [ - {"version": "0.0.9", "time": "2024-08-28T14:33:20.123456+00:00"} - ] - }, history_file) - - controller.main(str(Mode.UPGRADE_CHECK), root_dir, copy_dir, None) - - with open(f"{controller.get_history_dir(root_dir)}/foo.json", "r") as history_file: - history = json.load(history_file) - - self.assertEqual(history["current-version"], "1.0.0") - - self.assertEqual(len(history["history"]), 2) - self.assertEqual(history["history"][0]["version"], "1.0.0") - self.assertEqual(history["history"][0]["time"], mock_time.isoformat()) - - self.assertEqual(history["history"][1]["version"], "0.0.9") - self.assertEqual(history["history"][1]["time"], "2024-08-28T14:33:20.123456+00:00") - - @mock.patch("skyhook_agent.controller.datetime") - @mock.patch("skyhook_agent.controller._run") - def test_version_history_is_updated_after_uninstall(self, run_mock, datetime_mock): - run_mock.return_value = 0 - - mock_time = datetime(2024, 8, 28, 12, 0, 0, tzinfo=timezone.utc) - datetime_mock.now.return_value = mock_time - steps = { - Mode.UPGRADE: [Step("foo", arguments=[])], - Mode.UPGRADE_CHECK: [Step("foo_check", arguments=[])], - Mode.APPLY: [Step("bar", arguments=[])], - Mode.APPLY_CHECK: [Step("bar_check", arguments=[])], - } - - with self._setup_for_main(steps) as (container_dir, config_data, root_dir, copy_dir): - - os.makedirs(controller.get_history_dir(root_dir), exist_ok=True) - with open(f"{controller.get_history_dir(root_dir)}/foo.json", "w") as history_file: - json.dump({ - "current-version": "0.0.9", - "history": [ - {"version": "0.0.9", "time": "2024-08-28T14:33:20.123456+00:00"} - ] - }, history_file) - - controller.main(str(Mode.UNINSTALL_CHECK), root_dir, copy_dir, None) - - with open(f"{controller.get_history_dir(root_dir)}/foo.json", "r") as history_file: - history = json.load(history_file) - - self.assertEqual(history["current-version"], "uninstalled") - - self.assertEqual(len(history["history"]), 2) - self.assertEqual(history["history"][0]["version"], "uninstalled") - self.assertEqual(history["history"][0]["time"], mock_time.isoformat()) - - self.assertEqual(history["history"][1]["version"], "0.0.9") - self.assertEqual(history["history"][1]["time"], "2024-08-28T14:33:20.123456+00:00") - - @mock.patch("skyhook_agent.controller.datetime") - @mock.patch("skyhook_agent.controller._run") - def test_from_and_to_version_is_given_to_upgrade_step_as_env_var(self, run_mock, datetime_mock): - now_mock = mock.MagicMock() - datetime_mock.now.return_value = now_mock - now_mock.strftime.return_value = "12345" - steps = { - Mode.UPGRADE: [Step("foo", arguments=[])], - Mode.UPGRADE_CHECK: [Step("foo_check", arguments=[])], - Mode.APPLY: [Step("bar", arguments=[])], - Mode.APPLY_CHECK: [Step("bar_check", arguments=[])], - } - - with self._setup_for_main(steps) as (container_dir, config_data, root_dir, copy_dir): - - os.makedirs(controller.get_history_dir(root_dir), exist_ok=True) - with open(f"{controller.get_history_dir(root_dir)}/foo.json", "w") as history_file: - json.dump({ - "current-version": "0.0.9", - "history": [ - {"version": "0.0.9", "time": "2024-08-28T14:33:20.123456+00:00"} - ] - }, history_file) - - controller.main(str(Mode.UPGRADE), root_dir, copy_dir, None) - run_mock.assert_has_calls([ - mock.call( - root_dir, - [f"{controller.get_host_path_for_steps(copy_dir)}/foo"], - controller.get_log_file( - f"{controller.get_host_path_for_steps(copy_dir)}/foo", f"/foo", config_data, root_dir - ), - env=dict( - **{"PREVIOUS_VERSION": "0.0.9", "CURRENT_VERSION": "1.0.0"}, - **{"STEP_ROOT": f"{root_dir}/{copy_dir}/skyhook_dir", "SKYHOOK_DIR": copy_dir}), - write_logs=True, - copy_dir=copy_dir - ) - ]) - - @mock.patch("skyhook_agent.controller.datetime") - @mock.patch("skyhook_agent.controller._run") - def test_from_and_to_version_is_given_to_upgradestep_class_as_env_var_and_args(self, run_mock, datetime_mock): - now_mock = mock.MagicMock() - datetime_mock.now.return_value = now_mock - now_mock.strftime.return_value = "12345" - steps = { - Mode.UPGRADE: [UpgradeStep("foo", arguments=[])], - Mode.UPGRADE_CHECK: [UpgradeStep("foo_check", arguments=[])], - Mode.APPLY: [Step("bar", arguments=[])], - Mode.APPLY_CHECK: [Step("bar_check", arguments=[])], - } - - with self._setup_for_main(steps) as (container_dir, config_data, root_dir, copy_dir): - - os.makedirs(controller.get_history_dir(root_dir), exist_ok=True) - with open(f"{controller.get_history_dir(root_dir)}/foo.json", "w") as history_file: - json.dump({ - "current-version": "2024.07.28", - "history": [ - {"version": "2024.07.28", "time": "2024-08-28T14:33:20.123456+00:00"} - ] - }, history_file) - - controller.main(str(Mode.UPGRADE), root_dir, copy_dir, None) - - run_mock.assert_has_calls([ - mock.call( - root_dir, - [f"{controller.get_host_path_for_steps(copy_dir)}/foo", "2024.07.28", "1.0.0"], - controller.get_log_file( - f"{controller.get_host_path_for_steps(copy_dir)}/foo", f"/foo", config_data, root_dir - ), - env=dict( - **{"PREVIOUS_VERSION": "2024.07.28", "CURRENT_VERSION": "1.0.0"}, - **{"STEP_ROOT": f"{root_dir}/{copy_dir}/skyhook_dir", "SKYHOOK_DIR": copy_dir}), - write_logs=True, - copy_dir=copy_dir - ) - ]) - - @mock.patch("skyhook_agent.controller.datetime") - @mock.patch("skyhook_agent.controller._run") - def test_unkown_is_given_to_upgrade_step_if_history_file_dont_exist(self, run_mock, datetime_mock): - now_mock = mock.MagicMock() - datetime_mock.now.return_value = now_mock - now_mock.strftime.return_value = "12345" - steps = { - Mode.UPGRADE: [Step("foo", arguments=[])], - Mode.UPGRADE_CHECK: [Step("foo_check", arguments=[])], - Mode.APPLY: [Step("bar", arguments=[])], - Mode.APPLY_CHECK: [Step("bar_check", arguments=[])], - } - - with self._setup_for_main(steps) as (container_dir, config_data, root_dir, copy_dir): - - controller.main(str(Mode.UPGRADE), root_dir, copy_dir, None) - - self.assertEqual(run_mock.call_args_list[0].kwargs["env"]["PREVIOUS_VERSION"], "unknown") - self.assertEqual(run_mock.call_args_list[0].kwargs["env"]["CURRENT_VERSION"], "1.0.0") - self.assertEqual(run_mock.call_args_list[0].kwargs["env"]["STEP_ROOT"], controller.get_host_path_for_steps(copy_dir)) - - @mock.patch("skyhook_agent.controller._run") - @mock.patch("skyhook_agent.controller.subprocess") - def test_step_root_is_set_correctly(self, subprocess_mock, run_mock): - run_mock.return_value = 0 - steps = { - Mode.APPLY: [Step("bar", arguments=[])], - Mode.APPLY_CHECK: [Step("bar_check")] - } - with self._setup_for_main(steps) as (container_dir, config_data, root_dir, copy_dir): - controller.main(str(Mode.APPLY), root_dir, copy_dir, None) - - self.assertEqual(run_mock.call_args_list[0].kwargs["env"]["STEP_ROOT"], controller.get_host_path_for_steps(copy_dir)) - self.assertEqual(run_mock.call_args_list[0].kwargs["env"]["SKYHOOK_DIR"], copy_dir) - self.assertEqual(run_mock.call_args_list[0].args[1], [f"{controller.get_host_path_for_steps(copy_dir)}/bar"]) - - @mock.patch("skyhook_agent.controller.logger.warning") - def test_warning_when_running_with_invalid_mode(self, mock_warning): - controller.main("bogus", "root_dir", f"/foo", None) - - mock_warning.assert_called_with(f"This version of the Agent doesn't support the bogus mode. Options are: {','.join(map(str, Mode))}.") - - @mock.patch("skyhook_agent.controller.logger.warning") - def test_no_warning_when_running_with_valid_mode(self, mock_warning): - steps = { - Mode.APPLY: [Step("bar", arguments=[])], - Mode.APPLY_CHECK: [Step("bar_check")], - } - with self._setup_for_main(steps) as (container_dir, config_data, root_dir, copy_dir): - controller.main(str(Mode.APPLY), root_dir, copy_dir, None) - - mock_warning.assert_not_called() - - @mock.patch("skyhook_agent.controller.logger.warning") - def test_warning_when_running_in_config_mode_with_no_config_steps(self, mock_warning): - steps = { - Mode.APPLY: [Step("bar", arguments=[])], - Mode.APPLY_CHECK: [Step("bar_check")] - } - with self._setup_for_main(steps) as (container_dir, config_data, root_dir, copy_dir): - controller.main(str(Mode.CONFIG), root_dir, copy_dir, None) - - mock_warning.assert_called_with(f" There are no config steps defined. This will be ran as a no-op.") - - @mock.patch("skyhook_agent.controller.logger.warning") - def test_no_warning_when_not_running_in_config_mode(self, mock_warning): - steps = { - Mode.APPLY: [Step("bar", arguments=[])], - Mode.APPLY_CHECK: [Step("bar_check")] - } - with self._setup_for_main(steps) as (container_dir, config_data, root_dir, copy_dir): - controller.main(str(Mode.APPLY), root_dir, copy_dir, None) - - mock_warning.assert_not_called() - - @mock.patch("skyhook_agent.controller.logger.warning") - def test_no_warning_when_running_in_config_mode_with_config_steps(self, mock_warning): - steps = { - Mode.APPLY: [Step("bar", arguments=[])], - Mode.APPLY_CHECK: [Step("bar_check")], - Mode.CONFIG: [Step("config", arguments=[])], - Mode.CONFIG_CHECK: [Step("config_check")] - } - with self._setup_for_main(steps) as (container_dir, config_data, root_dir, copy_dir): - controller.main(str(Mode.CONFIG), root_dir, copy_dir, None) - - mock_warning.assert_not_called() - - @mock.patch("skyhook_agent.controller.run_step") - def test_same_steps_different_args_arent_skipped(self, run_step_mock): - run_step_mock.return_value = False - steps = { - Mode.APPLY: [Step("foo", arguments=[]), Step("foo", arguments=[ "a"])], - Mode.APPLY_CHECK: [Step("foo_check")] - } - with self._setup_for_main(steps) as (container_dir, config_data, root_dir, copy_dir): - controller.main(str(Mode.APPLY), root_dir, copy_dir, None) - self.assertEqual(run_step_mock.call_count, 2) - - @mock.patch("skyhook_agent.controller.run_step") - def test_skip_steps_that_have_flags(self, run_step_mock): - run_step_mock.return_value = False - steps = { - Mode.APPLY: [Step("foo", arguments=[]), Step("foo", arguments=[ "a"])], - Mode.APPLY_CHECK: [Step("foo_check")], - } - with self._setup_for_main(steps) as (container_dir, config_data, root_dir, copy_dir): - controller.set_flag(controller.make_flag_path(steps[Mode.APPLY][0], config_data, root_dir)) - controller.main(str(Mode.APPLY), root_dir, copy_dir, None) - self.assertEqual(run_step_mock.call_count, 1) - - @mock.patch("skyhook_agent.controller.run_step") - def test_steps_that_have_flags_arent_skipped_when_always_run_flag_set(self, run_step_mock): - run_step_mock.return_value = False - print(os.getenv("OVERLAY_FRAMEWORK_VERSION")) - steps = { - Mode.APPLY: [Step("foo", arguments=[]), Step("foo", arguments=["a"])], - Mode.APPLY_CHECK: [Step("foo_check")] - } - with self._setup_for_main(steps) as (container_dir, config_data, root_dir, copy_dir): - controller.set_flag(controller.make_flag_path(steps[Mode.APPLY][0], config_data, root_dir)) - controller.main(str(Mode.APPLY), root_dir, copy_dir, None, True) - run_step_mock.assert_has_calls([ - mock.call(Step("foo", arguments=[], returncodes=[0]), root_dir, copy_dir, config_data), - mock.call(Step("foo", arguments=["a"], returncodes=[0]), root_dir, copy_dir, config_data), - ]) - - - # This is invalid. Want to be able to support a re-arrangement of steps? - # def test_same_steps_same_args_arent_skipped(self): pass - - @mock.patch("skyhook_agent.controller.run_step") - def test_when_a_step_fails_next_steps_arent_run(self, run_step_mock): - run_step_mock.side_effect = [False, True, False] - - steps = { - Mode.APPLY: [ - Step("foo", arguments=[]), - Step("foo", arguments=[ "a"]), - Step("bar", arguments=[]), - ], - Mode.APPLY_CHECK: [ - Step("foo_check"), - ] - } - with self._setup_for_main(steps) as (container_dir, config_data, root_dir, copy_dir): - controller.main(str(Mode.APPLY), root_dir, copy_dir, None) - self.assertEqual(2, len(run_step_mock.mock_calls)) - - @mock.patch("skyhook_agent.controller.os.chroot") - @mock.patch("skyhook_agent.controller.get_skyhook_directory") - def test_check_does_not_fail_when_no_steps_are_defined(self, get_skyhook_directory_mock, chroot_mock): - """ - Consider there is a Package that only does config. Apply check SHOULD NOT fail - """ - steps = { - Mode.CONFIG: [ - Step("foo", arguments=[]), - ], - Mode.CONFIG_CHECK: [ - Step("foo_check", arguments=[]), - ] - } - - with self._setup_for_main(steps) as (container_dir, config_data, root_dir, copy_dir): - get_skyhook_directory_mock.return_value = root_dir - # False means it DID NOT error - self.assertFalse(controller.main(str(Mode.APPLY_CHECK), root_dir, copy_dir, None)) - self.assertFalse( - os.path.exists(f"{controller.get_flag_dir(root_dir)}/ALL_CHECKED") - ) - - def test_check_fails_if_there_are_steps_but_none_ran(self): - steps = { - Mode.CONFIG: [ - Step("foo", arguments=[]), - ], - Mode.CONFIG_CHECK: [Step("foo_check", arguments=[])] - } - self.assertTrue(controller.summarize_check_results([], steps, Mode.CONFIG_CHECK, "")) - - @mock.patch("skyhook_agent.controller.run_step") - @mock.patch("skyhook_agent.controller.os.chroot") - def test_any_check_failing_fails_run_but_all_checks_run(self, chroot_mock, run_step_mock): - run_step_mock.side_effect = [False, True, False] - steps = { - Mode.APPLY: [ - Step("foo.sh", arguments=[]), - Step("foo.sh", arguments=[ "a"]), - Step("bar.sh", arguments=[]), - ], - Mode.APPLY_CHECK: [ - Step("foo_check.sh", arguments=[]), - Step("bar_check.sh", arguments=[]) - ] - } - with self._setup_for_main(steps) as (_, _, root_dir, copy_dir): - with mock.patch("skyhook_agent.controller.get_flag_dir") as get_flag_dir_mock: - get_flag_dir_mock.return_value = root_dir - result = controller.main(str(Mode.APPLY_CHECK), root_dir, copy_dir, None) - self.assertFalse(os.path.exists(f"{controller.get_flag_dir(root_dir)}/ALL_CHECKED")) - self.assertTrue(result) - - @mock.patch("skyhook_agent.controller.get_log_file") - @mock.patch("skyhook_agent.controller.datetime") - def test_step_logs_are_sent_to_outputs_and_log_file( - self, datetime_mock, log_file_mock - ): - m = mock.MagicMock() - datetime_mock.now.return_value = m - m.isoformat.return_value = "isoformat" - # Need to close the temp file here because CI doesn't like trying to execute it while a file handle is still open - with tempfile.TemporaryDirectory() as temp_d: - os.makedirs(f"{temp_d}/skyhook_dir") - log_file_mock.return_value = f"{temp_d}/log" - with open(f"{temp_d}/skyhook_dir/foo.sh", "w", newline='\n', encoding='utf-8') as step_file: - # Make simple step script that outputs to stdout and stderr - step_file.write( - textwrap.dedent( - """#!/bin/sh - for i in 1 2; do - echo "$i" - >&2 echo "$i err" - sleep $i - done - """ - ) - ) - os.chmod(f"{temp_d}/skyhook_dir/foo.sh", os.stat(f"{temp_d}/skyhook_dir/foo.sh").st_mode | stat.S_IXGRP | stat.S_IXUSR | stat.S_IXOTH) - stdout_buff, stderr_buff = (FakeIO(), FakeIO()) - with mock.patch.object( - controller.sys, "stderr", stderr_buff - ), mock.patch.object(controller.sys, "stdout", stdout_buff): - failed = controller.run_step(Step("foo.sh", arguments=[], returncodes=[0]), "local", temp_d, config_data=self.config_data) - os.remove(step_file.name) - if failed: - # This means it failed - print(stdout_buff.read()) - print(stderr_buff.read()) - self.fail("Step should not have failed") - with open(f"{temp_d}/log", "r") as log_f: - # Compare sorted to avoid any issues wrt to sequencing of the async writes - self.assertEqual( - sorted(log_f.read().split("\n")), - sorted( - [ - "[out]isoformat ", - "[out]isoformat 1", - "[out]isoformat 2", - ] - ), - ) - with open(f"{temp_d}/log.err", "r") as log_f: - self.assertEqual( - sorted(log_f.read().strip().split("\n")), - sorted( - [ - "[err]isoformat", - "[err]isoformat 1 err", - "[err]isoformat 2 err", - ] - ), - ) - - self.assertEqual( - stdout_buff.read_lines(), - ["[out]isoformat 1", "[out]isoformat 2", "[out]isoformat SUCEEDED: foo.sh ", ""], - ) - - self.assertEqual( - stderr_buff.read_lines(), - ["[err]isoformat 1 err", "[err]isoformat 2 err", "[err]isoformat "], - ) - - @mock.patch("skyhook_agent.controller.os") - @mock.patch("skyhook_agent.controller.glob") - def test_older_log_files_are_cleaned_up(self, glob_mock, os_mock): - log_files = [f"log{i}" for i in range(7)] - os_mock.stat.side_effect = [mock.MagicMock(st_mtime=i) for i in range(7)] - glob_mock.glob.return_value = log_files - controller.cleanup_old_logs("log_files") - - os_mock.remove.assert_has_calls([mock.call(f"log{i}") for i in range(1)]) - - @mock.patch("skyhook_agent.controller.run_step") - def test_self_managed_idempotency_runs_when_flag_exists(self, run_step_mock): - run_step_mock.return_value = False - steps = { - Mode.APPLY: [ - Step("foo.sh", arguments=[]), - Step("bar.sh", arguments=[ "a"]), - Step("baz.sh", arguments=[], idempotence=Idempotence.Disabled), - ], - Mode.APPLY_CHECK: [ - Step("foo_check.sh"), - ] - } - with self._setup_for_main(steps) as (container_root_dir, config_data, root_dir, copy_dir): - for step in steps[Mode.APPLY]: - controller.set_flag(controller.make_flag_path(step, config_data, root_dir)) - controller.main(str(Mode.APPLY), root_dir, copy_dir, None) - - self.assertEqual(run_step_mock.call_count, 1) - - @mock.patch("skyhook_agent.controller.datetime") - @mock.patch("skyhook_agent.controller._run") - def test_interrupt_applies_all_commands(self, run_mock, datetime_mock): - now_mock = mock.MagicMock() - datetime_mock.now.return_value = now_mock - now_mock.strftime.return_value = "12345" - run_mock.return_value = 0 - steps = { - Mode.APPLY: [ - Step("foo.sh", arguments=[]), - ], - Mode.APPLY_CHECK: [ - Step("foo_check.sh", arguments=[]), - ], - } - with self._setup_for_main(steps) as (container_root_dir, config_data, root_dir, copy_dir): - with set_env(SKYHOOK_RESOURCE_ID="scr-id-1_package_version"): - controller.main( - Mode.INTERRUPT, - root_dir, - copy_dir, - interrupts.ServiceRestart(["containerd",]).make_controller_input() - ) - - config_data = { - "package_name": "package", - "package_version": "version" - } - run_mock.assert_has_calls([ - mock.call(root_dir, ["systemctl", "daemon-reload"], controller.get_log_file("interrupts/service_restart_0", copy_dir, config_data, root_dir), copy_dir=copy_dir, write_cmds=True, no_chmod=True), - mock.call(root_dir, ["systemctl", "restart", "containerd"], controller.get_log_file("interrupts/service_restart_1", copy_dir, config_data, root_dir), copy_dir=copy_dir, write_cmds=True, no_chmod=True) - ]) - - @mock.patch("skyhook_agent.controller._run") - def test_interrupt_isnt_run_when_skyhook_resource_id_flag_is_there(self, run_mock): - run_mock.return_value = 0 - SKYHOOK_RESOURCE_ID="scr-id-1_package_version" - with (self._setup_for_main() as (container_root_dir, config_data, root_dir, copy_dir), - set_env(SKYHOOK_RESOURCE_ID=SKYHOOK_RESOURCE_ID)): - os.makedirs(f"{root_dir}/interrupts/flags/{SKYHOOK_RESOURCE_ID}", exist_ok=True) - with open(f"{root_dir}/interrupts/flags/{SKYHOOK_RESOURCE_ID}/node_restart_0.complete", 'w') as f: - f.write("") - controller.do_interrupt(interrupts.NodeRestart().make_controller_input(), root_dir, copy_dir) - - run_mock.assert_not_called() - - @mock.patch("skyhook_agent.controller._run") - def test_interrupt_create_flags_per_cmd(self, run_mock): - run_mock.return_value = 0 - SKYHOOK_RESOURCE_ID="scr-id-1_package_version" - with (self._setup_for_main() as (container_root_dir, config_data, root_dir, copy_dir), - set_env(SKYHOOK_RESOURCE_ID=SKYHOOK_RESOURCE_ID)): - interrupt_dir = f"{controller.get_skyhook_directory(root_dir)}/interrupts/flags/{SKYHOOK_RESOURCE_ID}" - interrupt = interrupts.ServiceRestart(["foo", "bar"]) - controller.do_interrupt(interrupt.make_controller_input(), root_dir, copy_dir) - - for i in range(len(interrupt.interrupt_cmd)): - self.assertTrue(os.path.exists(f"{interrupt_dir}/{interrupt._type()}_{i}.complete")) - - @mock.patch("skyhook_agent.controller._run") - def test_interrupt_failures_remove_flag(self, run_mock): - run_mock.side_effect = [0,1,0] - SKYHOOK_RESOURCE_ID="scr-id-1_package_version" - with (self._setup_for_main() as (container_root_dir, config_data, root_dir, copy_dir), - set_env(SKYHOOK_RESOURCE_ID=SKYHOOK_RESOURCE_ID)): - interrupt_dir = f"{controller.get_skyhook_directory(root_dir)}/interrupts/flags/{SKYHOOK_RESOURCE_ID}" - interrupt = interrupts.ServiceRestart(["foo", "bar"]) - controller.do_interrupt(interrupt.make_controller_input(), root_dir, copy_dir) - - self.assertTrue(os.path.exists(f"{interrupt_dir}/{interrupt._type()}_0.complete")) - self.assertFalse(os.path.exists(f"{interrupt_dir}/{interrupt._type()}_1.complete")) - self.assertFalse(os.path.exists(f"{interrupt_dir}/{interrupt._type()}_1.complete")) - - @mock.patch("skyhook_agent.controller._run") - def test_interrupt_reboot_SIGTERM_preserves_flag(self, run_mock): - run_mock.side_effect = [0, -15, 0] - SKYHOOK_RESOURCE_ID="scr-id-1_package_version" - with (self._setup_for_main() as (container_root_dir, config_data, root_dir, copy_dir), - set_env(SKYHOOK_RESOURCE_ID=SKYHOOK_RESOURCE_ID)): - interrupt_dir = f"{controller.get_skyhook_directory(root_dir)}/interrupts/flags/{SKYHOOK_RESOURCE_ID}" - interrupt = interrupts.NodeRestart() - controller.do_interrupt(interrupt.make_controller_input(), root_dir, copy_dir) - - self.assertTrue(os.path.exists(f"{interrupt_dir}/{interrupt._type()}_0.complete")) - - @mock.patch("skyhook_agent.controller._run") - def test_interrupt_calls_run_with_correct_parameters(self, run_mock): - run_mock.return_value = 0 - SKYHOOK_RESOURCE_ID = "scr-id-1_package_version" - - with (self._setup_for_main() as (container_root_dir, config_data, root_dir, copy_dir), - set_env(SKYHOOK_RESOURCE_ID=SKYHOOK_RESOURCE_ID)): - - interrupt = interrupts.ServiceRestart(["foo", "bar"]) - result = controller.do_interrupt(interrupt.make_controller_input(), root_dir, copy_dir) - - self.assertEqual(result, False) - expected_calls = [ - mock.call(root_dir, ["systemctl", "daemon-reload"], mock.ANY, copy_dir=copy_dir, write_cmds=True, no_chmod=True), - mock.call(root_dir, ["systemctl", "restart", "foo"], mock.ANY, copy_dir=copy_dir, write_cmds=True, no_chmod=True), - mock.call(root_dir, ["systemctl", "restart", "bar"], mock.ANY, copy_dir=copy_dir, write_cmds=True, no_chmod=True) - ] - run_mock.assert_has_calls(expected_calls) - self.assertEqual(run_mock.call_count, 3) - - @mock.patch("skyhook_agent.controller.datetime") - @mock.patch("skyhook_agent.controller._run") - def test_interrupt_failure_fails_controller(self, run_mock, datetime_mock): - now_mock = mock.MagicMock() - datetime_mock.now.return_value = now_mock - now_mock.strftime.return_value = "12345" - run_mock.return_value = 1 - steps = { - Mode.APPLY: [ - Step("foo.sh", arguments=[]), - ], - Mode.APPLY_CHECK: [ - Step("foo_check.sh", arguments=[]), - ], - } - with self._setup_for_main(steps) as (container_root_dir, config_data, root_dir, copy_dir): - with set_env(SKYHOOK_RESOURCE_ID="scr-id-1_package_version"): - result = controller.main( - Mode.INTERRUPT, - root_dir, - copy_dir, - interrupts.ServiceRestart("containerd").make_controller_input() - ) - config_data = { - "package_name": "package", - "package_version": "version" - } - run_mock.assert_has_calls([ - mock.call(root_dir, ["systemctl", "daemon-reload"], controller.get_log_file("interrupts/service_restart_0", "copy_dir", config_data, root_dir), copy_dir=copy_dir, write_cmds=True, no_chmod=True) - ]) - - self.assertEqual(result, True) - - @mock.patch("skyhook_agent.controller.datetime") - @mock.patch("skyhook_agent.controller._run") - def test_interrupt_makes_config_from_skyhook_resource_id(self, run_mock, datetime_mock): - now_mock = mock.MagicMock() - datetime_mock.now.return_value = now_mock - now_mock.strftime.return_value = "12345" - run_mock.return_value = 0 - steps = { - Mode.APPLY: [ - Step("foo.sh", arguments=[]), - ], - Mode.APPLY_CHECK: [ - Step("foo_check.sh", arguments=[]), - ], - } - with self._setup_for_main(steps) as (container_root_dir, config_data, root_dir, copy_dir): - with set_env(SKYHOOK_RESOURCE_ID="scr-id-1_package_version"): - result = controller.main( - Mode.INTERRUPT, - root_dir, - copy_dir, - interrupts.ServiceRestart("containerd").make_controller_input() - ) - config_data = { - "package_name": "package", - "package_version": "version" - } - run_mock.assert_has_calls([ - mock.call(root_dir, ["systemctl", "daemon-reload"], controller.get_log_file("interrupts/service_restart_0", "copy_dir", config_data, root_dir), copy_dir=copy_dir, write_cmds=True, no_chmod=True) - ]) - - def test_interrupt_noop_makes_the_flag_file(self): - with ( - self._setup_for_main() as (_, _, root_dir, copy_dir), - set_env(SKYHOOK_RESOURCE_ID="scr-id-1_package_version"), - ): - controller.main(Mode.INTERRUPT, root_dir, copy_dir, interrupts.NoOp().make_controller_input()) - self.assertTrue(os.path.exists(f"{controller.get_skyhook_directory(root_dir)}/interrupts/flags/scr-id-1_package_version/no_op.complete")) - - @mock.patch("skyhook_agent.controller.main") - @mock.patch("skyhook_agent.controller.get_log_file") - def test_interrupt_mode_reads_extra_argument(self, get_log_file_mock, main_mock): - get_log_file_mock.return_value = "/log/foo.log" - argv = ["controller.py", str(Mode.INTERRUPT), "root_mount", "copy_dir", "interrupt_data"] - with set_env(COPY_RESOLV="false", SKYHOOK_RESOURCE_ID="customer-25633c77-11ac-471a-9928-bc6969cead5f-2_tuning_2.0.2"): - controller.cli(argv) - - main_mock.assert_called_once_with(str(Mode.INTERRUPT), "root_mount", "copy_dir", "interrupt_data", False) - - @mock.patch("skyhook_agent.controller.main") - @mock.patch("skyhook_agent.controller.get_log_file") - def test_cli_overlay_always_run_step_is_correct(self, get_log_file_mock, main_mock): - get_log_file_mock.return_value = "/log/foo.log" - with set_env(OVERLAY_ALWAYS_RUN_STEP="true", COPY_RESOLV="false", - SKYHOOK_RESOURCE_ID="customer-25633c77-11ac-471a-9928-bc6969cead5f-2_tuning_2.0.2"): - controller.cli(["controller.py", str(Mode.APPLY), "root_mount", "copy_dir"]) - - main_mock.assert_called_once_with(str(Mode.APPLY), "root_mount", "copy_dir", None, True) - main_mock.reset_mock() - - with set_env(OVERLAY_ALWAYS_RUN_STEP="false", COPY_RESOLV="false", - SKYHOOK_RESOURCE_ID="customer-25633c77-11ac-471a-9928-bc6969cead5f-2_tuning_2.0.2"): - controller.cli(["controller.py", str(Mode.APPLY), "root_mount", "copy_dir"]) - main_mock.assert_called_once_with(str(Mode.APPLY), "root_mount", "copy_dir", None, False) - - @mock.patch("skyhook_agent.controller.main") - @mock.patch("skyhook_agent.controller.shutil") - @mock.patch("skyhook_agent.controller.get_log_file") - def test_cli_COPY_RESOLV(self, get_log_file_mock, shutil_mock, main_mock): - get_log_file_mock.return_value = "/log/foo.log" - argv = ["controller.py", str(Mode.APPLY), "root_mount", "copy_dir"] - with set_env(COPY_RESOLV="true", SKYHOOK_RESOURCE_ID="customer-25633c77-11ac-471a-9928-bc6969cead5f-2_tuning_2.0.2"): - controller.cli(argv) - - shutil_mock.copyfile.assert_called_once() - shutil_mock.copyfile.reset_mock() - - with set_env(COPY_RESOLV="false", SKYHOOK_RESOURCE_ID="customer-25633c77-11ac-471a-9928-bc6969cead5f-2_tuning_2.0.2"): - controller.cli(argv) - - shutil_mock.copyfile.assert_not_called() - - @mock.patch("skyhook_agent.controller.shutil") - @mock.patch("skyhook_agent.controller.agent_main") - @mock.patch("skyhook_agent.controller.config") - @mock.patch("skyhook_agent.controller.get_log_file") - def test_main_checks_for_legacy_mode(self, get_log_file_mock, config_mock, agent_main_mock, shutil_mock): - get_log_file_mock.return_value = "/log/foo.log" - with tempfile.TemporaryDirectory() as temp_dir: - with mock.patch("builtins.open", mock.mock_open(read_data="{}")): - controller.main(str(Mode.APPLY), temp_dir, "copy_dir", None) - shutil_mock.copytree.assert_called_once_with("/skyhook-package", f"{temp_dir}/copy_dir", dirs_exist_ok=True) - - shutil_mock.copytree.reset_mock() - - with tempfile.TemporaryDirectory() as temp_dir: - os.makedirs(f"{temp_dir}/copy_dir") - # Write a fake config file - with open(f"{temp_dir}/copy_dir/config.json", "w") as f: - f.write("") - - with mock.patch("builtins.open", mock.mock_open(read_data="{}")): - controller.main(str(Mode.APPLY), temp_dir, "copy_dir", None) - - shutil_mock.copytree.assert_not_called() - - @mock.patch("skyhook_agent.controller.shutil") - @mock.patch("skyhook_agent.controller.agent_main") - @mock.patch("skyhook_agent.controller.config") - @mock.patch("skyhook_agent.controller.get_log_file") - def test_main_doesnt_copy_root_dir_on_uninstall(self, get_log_file_mock, config_mock, agent_main_mock, shutil_mock): - get_log_file_mock.return_value = "/log/foo.log" - config_mock.load.return_value = { - "schema_version": "v1", - "root_dir": "/", - "expected_config_files": ["configmap"], - "package_name": "package", - "package_version": "1.0.0", - "modes": { - "apply": [ - { - "name": "a", - "path": "a-path", - "arguments": [], - "returncodes": [0], - "env": {"hello": "world"}, - "idempotence": False, - "upgrade_step": False - } - ], - "apply-check": [ - { - "name": "b", - "path": "b-path", - "arguments": [], - "returncodes": [0], - "idempotence": False, - "upgrade_step": False - } - ] - } - } - - with tempfile.TemporaryDirectory() as temp_dir: - os.makedirs(f"{temp_dir}/copy_dir") - # Write a fake config file - with open(f"{temp_dir}/copy_dir/config.json", "w") as f: - f.write("") - - # This SHOULD NOT ERROR - for mode in (str(Mode.UNINSTALL), str(Mode.UNINSTALL_CHECK)): - with mock.patch("builtins.open", mock.mock_open(read_data="{}")): - controller.main(mode, temp_dir, "copy_dir", None) - - # This SHOULD ERROR - with mock.patch("builtins.open", mock.mock_open(read_data="{}")): - self.assertRaises(controller.SkyhookValidationError, controller.main, str(Mode.APPLY), temp_dir, "copy_dir", None) - - @mock.patch("skyhook_agent.controller.os.path.exists") - @mock.patch("skyhook_agent.controller.shutil") - @mock.patch("skyhook_agent.controller.agent_main") - @mock.patch("skyhook_agent.controller.config") - def test_main_doesnt_copy_root_dir_on_uninstall(self, config_mock, agent_main_mock, shutil_mock, os_mock): - with tempfile.TemporaryDirectory() as temp_dir: - os.makedirs(f"{temp_dir}/copy_dir") - with open(f"{temp_dir}/copy_dir/config.json", "w") as f: - f.write("{}") - - for mode in (str(Mode.UNINSTALL), str(Mode.UNINSTALL_CHECK)): - controller.main(mode, temp_dir, "copy_dir", None) - for call in os_mock.mock_calls: - self.assertNotEqual(call, mock.call(f"{temp_dir}/copy_dir/root_dir")) - - # It should copy now - os_mock.reset_mock() - os_mock.return_value = True - controller.main(Mode.APPLY, temp_dir, "copy_dir", None) - os_mock.assert_has_calls([mock.call(f"{temp_dir}/copy_dir/root_dir")]) - - def test_get_env_config(self): - # Test that environment variables are read - with set_env( - SKYHOOK_RESOURCE_ID="resource_id", - SKYHOOK_DATA_DIR="data_dir", - SKYHOOK_ROOT_DIR="skyhook_dir", - SKYHOOK_LOG_DIR="log_dir", - SKYHOOK_AGENT_WRITE_LOGS="false"): - SKYHOOK_RESOURCE_ID, SKYHOOK_DATA_DIR, SKYHOOK_ROOT_DIR, SKYHOOK_LOG_DIR, SKYHOOK_AGENT_WRITE_LOGS = controller._get_env_config() - self.assertEqual(SKYHOOK_RESOURCE_ID, "resource_id") - self.assertEqual(SKYHOOK_DATA_DIR, "data_dir") - self.assertEqual(SKYHOOK_ROOT_DIR, "skyhook_dir") - self.assertEqual(SKYHOOK_LOG_DIR, "log_dir") - self.assertFalse(SKYHOOK_AGENT_WRITE_LOGS) - - # Test the default values - SKYHOOK_RESOURCE_ID, SKYHOOK_DATA_DIR, SKYHOOK_ROOT_DIR, SKYHOOK_LOG_DIR, SKYHOOK_AGENT_WRITE_LOGS = controller._get_env_config() - self.assertEqual(SKYHOOK_RESOURCE_ID, "") - self.assertEqual(SKYHOOK_DATA_DIR, "/skyhook-package") - self.assertEqual(SKYHOOK_ROOT_DIR, "/etc/skyhook") - self.assertEqual(SKYHOOK_LOG_DIR, "/var/log/skyhook") - self.assertTrue(SKYHOOK_AGENT_WRITE_LOGS) # Default should be True - - def test_get_env_config_write_logs_variations(self): - """Test SKYHOOK_AGENT_WRITE_LOGS with different values.""" - # Test "true" value - with set_env(SKYHOOK_AGENT_WRITE_LOGS="true"): - *_, SKYHOOK_AGENT_WRITE_LOGS = controller._get_env_config() - self.assertTrue(SKYHOOK_AGENT_WRITE_LOGS) - - # Test "True" value (case insensitive) - with set_env(SKYHOOK_AGENT_WRITE_LOGS="True"): - *_, SKYHOOK_AGENT_WRITE_LOGS = controller._get_env_config() - self.assertTrue(SKYHOOK_AGENT_WRITE_LOGS) - - # Test "false" value - with set_env(SKYHOOK_AGENT_WRITE_LOGS="false"): - *_, SKYHOOK_AGENT_WRITE_LOGS = controller._get_env_config() - self.assertFalse(SKYHOOK_AGENT_WRITE_LOGS) - - # Test "False" value (case insensitive) - with set_env(SKYHOOK_AGENT_WRITE_LOGS="False"): - *_, SKYHOOK_AGENT_WRITE_LOGS = controller._get_env_config() - self.assertFalse(SKYHOOK_AGENT_WRITE_LOGS) - - # Test other values default to false - with set_env(SKYHOOK_AGENT_WRITE_LOGS="anything"): - *_, SKYHOOK_AGENT_WRITE_LOGS = controller._get_env_config() - self.assertFalse(SKYHOOK_AGENT_WRITE_LOGS) - - @mock.patch("skyhook_agent.controller.cleanup_old_logs") - @mock.patch("skyhook_agent.controller.tee") - def test_run_step_with_write_logs_false(self, tee_mock, cleanup_mock): - """Test that run_step does not write log files when SKYHOOK_AGENT_WRITE_LOGS is false.""" - tee_mock.return_value = FakeSubprocessResult(0) - - with set_env(SKYHOOK_AGENT_WRITE_LOGS="false"): - run_step_result = controller.run_step( - Step("foo", arguments=["a", "b"], returncodes=[0]), "chroot_dir", "copy_dir", self.config_data - ) - - self.assertFalse(run_step_result) - - # Verify tee was called with write_logs=False and None log paths - tee_mock.assert_has_calls( - [ - mock.call( - "chroot_dir", - ["copy_dir/skyhook_dir/foo", "a", "b"], - None, - None, - env={"STEP_ROOT": "copy_dir/skyhook_dir", "SKYHOOK_DIR": "copy_dir"}, - write_cmds=False, - no_chmod=False, - write_logs=False, - copy_dir="copy_dir" - ) - ] - ) - # cleanup_old_logs should not be called when write_logs is False - cleanup_mock.assert_not_called() - - @mock.patch("skyhook_agent.controller.cleanup_old_logs") - @mock.patch("skyhook_agent.controller.get_log_file") - @mock.patch("skyhook_agent.controller.tee") - def test_run_step_with_write_logs_true(self, tee_mock, get_log_file_mock, cleanup_mock): - """Test that run_step writes log files when SKYHOOK_AGENT_WRITE_LOGS is true.""" - tee_mock.return_value = FakeSubprocessResult(0) - get_log_file_mock.return_value = "/log/file.log" - - with set_env(SKYHOOK_AGENT_WRITE_LOGS="true"): - run_step_result = controller.run_step( - Step("foo", arguments=["a", "b"], returncodes=[0]), "chroot_dir", "copy_dir", self.config_data - ) - - self.assertFalse(run_step_result) - - # Verify tee was called with the log file path and write_logs=True - tee_mock.assert_has_calls( - [ - mock.call( - "chroot_dir", - ["copy_dir/skyhook_dir/foo", "a", "b"], - "/log/file.log", - "/log/file.log.err", - env={"STEP_ROOT": "copy_dir/skyhook_dir", "SKYHOOK_DIR": "copy_dir"}, - write_cmds=False, - no_chmod=False, - write_logs=True, - copy_dir="copy_dir" - ) - ] - ) - # cleanup_old_logs should be called when write_logs is True - cleanup_mock.assert_called_once() - - @mock.patch("skyhook_agent.controller.sys") - def test_tee_with_nullwriter_when_write_logs_false(self, sys_mock): - """Test that tee uses NullWriter when write_logs is False.""" - sys_mock.stdout = FakeIO() - sys_mock.stderr = FakeIO() - sys_mock.executable = sys.executable - - with tempfile.TemporaryDirectory() as dir: - stdout_path = f"{dir}/stdout.log" - stderr_path = f"{dir}/stderr.log" - - # Run tee with write_logs=False - result = asyncio.run( - controller.tee("", ["echo", "test"], stdout_path, stderr_path, "tmp", write_logs=False) - ) - - # Log files should not be created - self.assertFalse(os.path.exists(stdout_path)) - self.assertFalse(os.path.exists(stderr_path)) - - def test_cleanup_old_logs_keeps_only_5_files(self): - """Test that cleanup_old_logs removes all but the 5 most recent log files.""" - with tempfile.TemporaryDirectory() as temp_dir: - # Create directory structure for logs - log_dir = f"{temp_dir}/var/log/skyhook/foo/1.0.0" - os.makedirs(log_dir, exist_ok=True) - - # Create a simple step script that succeeds - step_dir = f"{temp_dir}/skyhook_dir" - os.makedirs(step_dir, exist_ok=True) - step_path = f"{step_dir}/test_step.sh" - with open(step_path, "w") as f: - f.write("#!/bin/sh\necho 'test output'\nexit 0\n") - os.chmod(step_path, os.stat(step_path).st_mode | stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH) - - # Track log files created - log_files_created = [] - - # Mock get_log_file and get_host_path_for_steps to use our temp directories - def mock_get_log_file(step_path_arg, copy_dir, config_data, root_mount, timestamp=None): - if timestamp is None: - timestamp = datetime.now(timezone.utc).strftime("%Y-%m-%d-%H%M%S") - log_file = f"{log_dir}/test_step.sh-{timestamp}.log" - # Only track actual log files, not glob patterns - if timestamp != "*": - log_files_created.append(log_file) - return log_file - - # Run run_step 6 times with delays to ensure different timestamps - # Use chroot_dir="local" to avoid permission issues with chroot - with mock.patch("skyhook_agent.controller.get_log_file", side_effect=mock_get_log_file), \ - mock.patch("skyhook_agent.controller.get_host_path_for_steps", return_value=step_dir), \ - mock.patch("skyhook_agent.controller.get_log_dir", return_value=log_dir): - - for i in range(6): - # Small delay to ensure different timestamps and file modification times - time.sleep(0.05) - - result = controller.run_step( - Step("test_step.sh", arguments=[], returncodes=[0]), - "local", # chroot_dir - "local" skips actual chroot - temp_dir, # copy_dir - self.config_data - ) - self.assertFalse(result, f"Step {i+1} should have succeeded") - - # After 6 runs with cleanup, there should be exactly 5 log files - actual_log_files = sorted(glob.glob(f"{log_dir}/test_step.sh-*.log")) - self.assertEqual(len(actual_log_files), 5, - f"Expected 5 log files after 6 runs, but found {len(actual_log_files)}: {actual_log_files}") - - # Verify the oldest log file was removed - self.assertFalse(os.path.exists(log_files_created[0]), - f"The oldest log file {log_files_created[0]} should have been removed") - - # Verify the 5 most recent log files remain - for log_file in log_files_created[1:]: - self.assertTrue(os.path.exists(log_file), - f"Recent log file {log_file} should still exist") - - # Verify stderr files also exist for remaining logs - for log_file in actual_log_files: - stderr_file = f"{log_file}.err" - self.assertTrue(os.path.exists(stderr_file), - f"Stderr file {stderr_file} should exist") diff --git a/agent/skyhook-agent/tests/test_enums.py b/agent/skyhook-agent/tests/test_enums.py deleted file mode 100644 index c7e12f8e7..000000000 --- a/agent/skyhook-agent/tests/test_enums.py +++ /dev/null @@ -1,91 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 -# -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import unittest - -from skyhook_agent.enums import SortableEnum, get_latest_schema - -class SchemaVersionForTest(SortableEnum): - V1 = "v1" - V2 = "v2" - V3 = "v3" - LATEST = "latest" - -class TestSchemaVersionForTest(unittest.TestCase): - def test_equals(self): - for mode in list(SchemaVersionForTest): - self.assertEqual(mode, mode) - - # Test equality with strings - for mode in list(SchemaVersionForTest): - self.assertEqual(mode, mode.value) - - def test_not_equals(self): - # Test inequality - self.assertNotEqual(SchemaVersionForTest.V1, SchemaVersionForTest.V2) - # With string - self.assertNotEqual(SchemaVersionForTest.V1, SchemaVersionForTest.V2.value) - - def test_comparisons(self): - self.assertLess(SchemaVersionForTest.V1, SchemaVersionForTest.V2) - self.assertGreater(SchemaVersionForTest.V3, SchemaVersionForTest.V2) - self.assertGreaterEqual(SchemaVersionForTest.V3, SchemaVersionForTest.V2) - self.assertLessEqual(SchemaVersionForTest.V2, SchemaVersionForTest.V3) - - # Test comparisons with strings - self.assertLess(SchemaVersionForTest.V1, SchemaVersionForTest.V2.value) - - # Equal values are not less than each other - self.assertFalse(SchemaVersionForTest.V1 < SchemaVersionForTest.V1) - self.assertFalse(SchemaVersionForTest.LATEST < SchemaVersionForTest.LATEST) - - # Equal values are not greater than each other - self.assertFalse(SchemaVersionForTest.V1 > SchemaVersionForTest.V1) - self.assertFalse(SchemaVersionForTest.LATEST > SchemaVersionForTest.LATEST) - - # Equal values are greater than or equal to each other - self.assertTrue(SchemaVersionForTest.V1 >= SchemaVersionForTest.V1) - self.assertTrue(SchemaVersionForTest.LATEST >= SchemaVersionForTest.LATEST) - - # Equal values are less than or equal to each other - self.assertTrue(SchemaVersionForTest.V1 <= SchemaVersionForTest.V1) - self.assertTrue(SchemaVersionForTest.LATEST <= SchemaVersionForTest.LATEST) - - def test_latest(self): - self.assertEqual(SchemaVersionForTest.LATEST, "latest") - self.assertEqual(SchemaVersionForTest.LATEST, SchemaVersionForTest.LATEST) - - # Test that latest is greater than all other versions - for mode in list(SchemaVersionForTest): - if mode != SchemaVersionForTest.LATEST: - self.assertGreater(SchemaVersionForTest.LATEST, mode) - self.assertLess(mode, SchemaVersionForTest.LATEST) - - # Test that latest is greater than all other versions with strings - for mode in list(SchemaVersionForTest): - if mode != SchemaVersionForTest.LATEST: - self.assertGreater(SchemaVersionForTest.LATEST, mode.value) - self.assertLess(mode.value, SchemaVersionForTest.LATEST) - - def test_equality_for_non_versions(self): - self.assertNotEqual(SchemaVersionForTest.V1, None) - self.assertNotEqual(SchemaVersionForTest.V1, 1) - - def test_comparison_for_non_versions(self): - self.assertRaises(TypeError, lambda: SchemaVersionForTest.V1 < 1) - - def test_get_latest_schema(self): - self.assertEqual(get_latest_schema(SchemaVersionForTest), SchemaVersionForTest.V3) diff --git a/agent/skyhook-agent/tests/test_interrupts.py b/agent/skyhook-agent/tests/test_interrupts.py deleted file mode 100644 index 3979b098a..000000000 --- a/agent/skyhook-agent/tests/test_interrupts.py +++ /dev/null @@ -1,63 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 -# -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import unittest -import base64 -import json - -from skyhook_agent import interrupts - -class TestInterrupts(unittest.TestCase): - def test_make_map(self): - interrupt_map = interrupts._make_map() - - for k, v in {"node_restart": interrupts.NodeRestart, "service_restart": interrupts.ServiceRestart}.items(): - self.assertEqual(interrupt_map[k], v) - - def test_name_creation_on_class(self): - self.assertEqual(interrupts.NodeRestart._type(), "node_restart") - - def test_name_as_property(self): - self.assertEqual(interrupts.NodeRestart().type, "node_restart") - - def test_node_restart_command(self): - self.assertEqual([["reboot",]], interrupts.NodeRestart().interrupt_cmd) - - def test_service_restart_command(self): - self.assertEqual( - [["systemctl", "daemon-reload"], - ["systemctl", "restart", "foo"], - ["systemctl", "restart", "bar"]], - interrupts.ServiceRestart(["foo", "bar"]).interrupt_cmd) - - def test_round_trip_serialization(self): - starts = [ - interrupts.ServiceRestart(["containerd"]), - interrupts.NodeRestart(), - interrupts.ScriptInterrupt(), - interrupts.RestartAllServices(), - interrupts.NoOp() - ] - for start in starts: - ends = [ - interrupts.inflate(base64.b64encode(str.encode(json.dumps(start.serialize()), 'utf-8'))), - interrupts.inflate(start.make_controller_input()) - ] - - for i, end in enumerate(ends): - self.assertEqual(start.type, end.type, f"{start.type} end {i}") - self.assertEqual(start.data, end.data, f"{start.type} end {i}") - self.assertEqual(start.interrupt_cmd, end.interrupt_cmd, f"{start.type} end {i}") diff --git a/agent/skyhook-agent/tests/test_steps.py b/agent/skyhook-agent/tests/test_steps.py deleted file mode 100644 index e9e6fa436..000000000 --- a/agent/skyhook-agent/tests/test_steps.py +++ /dev/null @@ -1,216 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 -# -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import unittest, os - -from tempfile import TemporaryDirectory -from contextlib import contextmanager - -from unittest import mock -from skyhook_agent.step import Steps, Step, UpgradeStep, Mode, StepError, APPLY_TO_CHECK - -def _dump_steps(requires_interrupt=False, pass_validation=True): - - steps = { - Mode.UNINSTALL: [Step("uninstall", "uninstall")], - Mode.UNINSTALL_CHECK: [Step("uninstall_check", "uninstall_check")], - Mode.UPGRADE: [Step("upgrade", "upgrade"), UpgradeStep("upgradeStep", "upgradeStep")], - Mode.UPGRADE_CHECK: [Step("upgrade_check", "upgrade_check"), UpgradeStep("upgradeStep_check", "upgradeStep_check")], - Mode.APPLY: [Step("foo", "foo", requires_interrupt=requires_interrupt)], - Mode.APPLY_CHECK: [Step("foobar", "foobar")], - Mode.CONFIG: [Step("foo_config", "foo_config")], - Mode.CONFIG_CHECK: [Step("foo_config_check", "foo_config_check")], - Mode.POST_INTERRUPT: [Step("bar", "bar")], - Mode.POST_INTERRUPT_CHECK: [Step("barfoo", "barfoo")], - } - if not pass_validation: - return Steps.dump(steps, root_dir="/tmp") - # Setup validation passing - with _make_files_for_validation(steps) as tmpdir: - steps = Steps.dump(steps, root_dir=tmpdir) - - return steps - -@contextmanager -def _make_files_for_validation(steps): - with TemporaryDirectory() as tmpdir: - for _, mode_steps in steps.items(): - for step in mode_steps: - with open(f"{tmpdir}/{step.path}", "w") as f: - f.write("#!/bin/bash\n") - yield tmpdir - -class TestStepsSerialization(unittest.TestCase): - def test_serialization(self): - steps = _dump_steps() - expected = { - "uninstall": [{"name": "uninstall", "path": "uninstall", "arguments": [], "returncodes": [0], "on_host": True, "idempotence": False, "upgrade_step": False}], - "uninstall-check": [{"name": "uninstall_check", "path": "uninstall_check", "arguments": [], "returncodes": [0], "on_host": True, "idempotence": False, "upgrade_step": False}], - "upgrade": [ - {"name": "upgrade", "path": "upgrade", "arguments": [], "returncodes": [0], "on_host": True, "idempotence": False, "upgrade_step": False}, - {"name": "upgradeStep", "path": "upgradeStep", "arguments": [], "returncodes": [0], "on_host": True, "idempotence": False, "upgrade_step": True} - ], - "upgrade-check": [ - {"name": "upgrade_check", "path": "upgrade_check", "arguments": [], "returncodes": [0], "on_host": True, "idempotence": False, "upgrade_step": False}, - {"name": "upgradeStep_check", "path": "upgradeStep_check", "arguments": [], "returncodes": [0], "on_host": True, "idempotence": False, "upgrade_step": True} - ], - "apply": [ {"name": "foo", "path": "foo", "arguments": [], "returncodes": [0], "on_host": True, "idempotence": False, "upgrade_step": False},], - "apply-check": [{"name": "foobar", "path": "foobar", "arguments": [], "returncodes": [0], "on_host": True, "idempotence": False, "upgrade_step": False},], - "config": [{"name": "foo_config", "path": "foo_config", "arguments": [], "returncodes": [0], "on_host": True, "idempotence": False, "upgrade_step": False},], - "config-check": [{"name": "foo_config_check", "path": "foo_config_check", "arguments": [], "returncodes": [0], "on_host": True, "idempotence": False, "upgrade_step": False},], - "post-interrupt": [{"name": "bar", "path": "bar", "arguments": [], "returncodes": [0], "on_host": True, "idempotence": False, "upgrade_step": False},], - "post-interrupt-check": [{"name": "barfoo", "path": "barfoo", "arguments": [], "returncodes": [0], "on_host": True, "idempotence": False, "upgrade_step": False},], - } - for mode, mode_steps in steps.items(): - self.assertEqual(expected[mode], mode_steps) - - self.assertRaises(ValueError, _dump_steps, pass_validation=False) - - def test_circular_serialization(self): - steps = _dump_steps() - - copied_steps = {m: [dict(**s) for s in msteps] for m, msteps in steps.items()} - with TemporaryDirectory() as tmpdir: - for _, mode_steps in steps.items(): - for step in mode_steps: - with open(f"{tmpdir}/{step['path']}", "w") as f: - f.write("#!/bin/bash\n") - loaded_steps = Steps.load(copied_steps, root_dir=tmpdir) - - for mode, mode_steps in steps.items(): - for i, step in enumerate(mode_steps): - self.assertEqual(step, loaded_steps[Mode(mode)][i].dump()) - -class TestStep(unittest.TestCase): - def test_idempotence_validation(self): - self.assertRaises(ValueError, Step, "foo", idempotence="a") - - def test_step_name_default(self): - step = Step("foo.sh") - self.assertEqual(step.name, "foo.sh") - - step = Step("foo.sh", name="my_name") - self.assertEqual(step.name, "my_name") - - @unittest.mock.patch("skyhook_agent.step.logger.warning") - def test_step_validation_with_no_warnings(self, mockstep_warning): - steps = { - Mode.APPLY: [Step("foo.sh")], - Mode.APPLY_CHECK: [Step("foo_check.sh")], - Mode.POST_INTERRUPT: [Step("bar.sh")], - Mode.POST_INTERRUPT_CHECK: [Step("bar_check.sh")], - } - with _make_files_for_validation(steps) as tmpdir: - Steps.validate(steps, root_dir=tmpdir) - mockstep_warning.assert_not_called() - - @unittest.mock.patch("skyhook_agent.step.logger.warning") - def test_step_validation_with_one_warning(self, mockstep_warning): - steps = { - Mode.APPLY: [Step("foo.sh")], - Mode.APPLY_CHECK: [Step("barfoo_check.sh")], - Mode.POST_INTERRUPT: [Step("bar.sh")], - Mode.POST_INTERRUPT_CHECK: [Step("bar_check.sh")], - } - with _make_files_for_validation(steps) as tmpdir: - Steps.validate(steps, root_dir=tmpdir) - mockstep_warning.assert_called_with(f" foo_check.sh doesn't exist. Checks ensure that all tasks in the step will complete.") - - @unittest.mock.patch("skyhook_agent.step.logger.warning") - def test_step_validation_with_two_warnings(self, mockstep_warning): - steps = { - Mode.APPLY: [Step("foo")], - Mode.APPLY_CHECK: [Step("barfoo_check.sh")], - Mode.POST_INTERRUPT: [Step("bar")], - Mode.POST_INTERRUPT_CHECK: [Step("barfoo")], - } - with _make_files_for_validation(steps) as tmpdir: - Steps.validate(steps, root_dir=tmpdir) - mockstep_warning.assert_has_calls([ - mock.call(f" bar_check doesn't exist. Checks ensure that all tasks in the step will complete."), - mock.call(f" foo_check doesn't exist. Checks ensure that all tasks in the step will complete."), - ], any_order=True) - - def test_step_validation_errors_with_no_steps(self): - steps = { - } - self.assertRaisesRegex(StepError, "There are no defined steps.", Steps.validate, steps, "/tmp") - - def test_step_validation_errors_with_all_check_steps(self): - steps = { - Mode.APPLY_CHECK: [Step("foo_check.sh")], - } - non_check_modes = APPLY_TO_CHECK.keys() - self.assertRaisesRegex(StepError, f"There are only check modes defined. You must define at least one of {', '.join(m.name for m in non_check_modes)}", Steps.validate, steps, "/tmp") - - def test_step_validation_errors_with_no_apply_checks(self): - steps = { - Mode.APPLY: [Step("foo.sh")] - } - self.assertRaisesRegex(StepError, "Couldn't validate steps. There are no checks for any of the apply steps.", Steps.validate, steps, "/tmp") - - def test_step_validation_errors_with_no_post_interrupt_checks(self): - steps = { - Mode.APPLY: [Step("foo.sh")], - Mode.APPLY_CHECK: [Step("foo_check.sh")], - Mode.POST_INTERRUPT: [Step("bar.sh")], - } - self.assertRaisesRegex(StepError, "Couldn't validate steps. There are no checks for any of the post-interrupt steps.", Steps.validate, steps, "/tmp") - - def test_step_validation_errors_with_no_config_checks(self): - steps = { - Mode.APPLY: [Step("foo.sh")], - Mode.APPLY_CHECK: [Step("foo_check.sh")], - Mode.CONFIG: [Step("foo_config.sh")], - } - self.assertRaisesRegex(StepError, "Couldn't validate steps. There are no checks for any of the config steps.", Steps.validate, steps, "/tmp") - - def test_step_validation_errors_with_no_uninstall_checks(self): - steps = { - Mode.APPLY: [Step("foo.sh")], - Mode.APPLY_CHECK: [Step("foo_check.sh")], - Mode.UNINSTALL: [Step("foo_uninstall.sh")], - } - self.assertRaisesRegex(StepError, "Couldn't validate steps. There are no checks for any of the uninstall steps.", Steps.validate, steps, "/tmp") - - def test_step_validation_errors_with_no_upgrade_checks(self): - steps = { - Mode.APPLY: [Step("foo.sh")], - Mode.APPLY_CHECK: [Step("foo_check.sh")], - Mode.UPGRADE: [Step("foo_upgrade.sh")], - } - self.assertRaisesRegex(StepError, "Couldn't validate steps. There are no checks for any of the upgrade steps.", Steps.validate, steps, "/tmp") - - def test_step_validation_errors_with_upgradestep_not_in_upgrade_or_upgrade_check_modes(self): - steps = { - Mode.APPLY: [Step("foo.sh")], - Mode.APPLY_CHECK: [Step("foo_check.sh")], - Mode.CONFIG: [UpgradeStep("foo_upgrade.sh")], - Mode.CONFIG_CHECK: [UpgradeStep("foo_upgrade_check.sh")], - } - self.assertRaisesRegex(StepError, "UpgradeStep foo_upgrade.sh defined in the config mode but can only be defined in the UPGRADE or UPGRADE_CHECK modes.", Steps.validate, steps, "/tmp") - - def test_step_validation_errors_with_upgradestep_in_upgrade_with_arg(self): - with self.assertRaisesRegex(StepError, "UpgradeStep foo_upgrade\.sh can not have any arguments, but found: \['bogus'\]"): - UpgradeStep("foo_upgrade.sh", arguments=["bogus"]) - - def test_step_validation_checks_for_all_empty_lists(self): - steps = { - Mode.APPLY: [], - Mode.APPLY_CHECK: [], - Mode.CONFIG: [], - } - self.assertRaisesRegex(StepError, "There are no defined steps.", Steps.validate, steps, "/tmp") diff --git a/agent/go/vendor/github.com/Masterminds/semver/v3/.gitignore b/agent/vendor/github.com/Masterminds/semver/v3/.gitignore similarity index 100% rename from agent/go/vendor/github.com/Masterminds/semver/v3/.gitignore rename to agent/vendor/github.com/Masterminds/semver/v3/.gitignore diff --git a/agent/go/vendor/github.com/Masterminds/semver/v3/.golangci.yml b/agent/vendor/github.com/Masterminds/semver/v3/.golangci.yml similarity index 100% rename from agent/go/vendor/github.com/Masterminds/semver/v3/.golangci.yml rename to agent/vendor/github.com/Masterminds/semver/v3/.golangci.yml diff --git a/agent/go/vendor/github.com/Masterminds/semver/v3/CHANGELOG.md b/agent/vendor/github.com/Masterminds/semver/v3/CHANGELOG.md similarity index 100% rename from agent/go/vendor/github.com/Masterminds/semver/v3/CHANGELOG.md rename to agent/vendor/github.com/Masterminds/semver/v3/CHANGELOG.md diff --git a/agent/go/vendor/github.com/Masterminds/semver/v3/LICENSE.txt b/agent/vendor/github.com/Masterminds/semver/v3/LICENSE.txt similarity index 100% rename from agent/go/vendor/github.com/Masterminds/semver/v3/LICENSE.txt rename to agent/vendor/github.com/Masterminds/semver/v3/LICENSE.txt diff --git a/agent/go/vendor/github.com/Masterminds/semver/v3/Makefile b/agent/vendor/github.com/Masterminds/semver/v3/Makefile similarity index 100% rename from agent/go/vendor/github.com/Masterminds/semver/v3/Makefile rename to agent/vendor/github.com/Masterminds/semver/v3/Makefile diff --git a/agent/go/vendor/github.com/Masterminds/semver/v3/README.md b/agent/vendor/github.com/Masterminds/semver/v3/README.md similarity index 100% rename from agent/go/vendor/github.com/Masterminds/semver/v3/README.md rename to agent/vendor/github.com/Masterminds/semver/v3/README.md diff --git a/agent/go/vendor/github.com/Masterminds/semver/v3/SECURITY.md b/agent/vendor/github.com/Masterminds/semver/v3/SECURITY.md similarity index 100% rename from agent/go/vendor/github.com/Masterminds/semver/v3/SECURITY.md rename to agent/vendor/github.com/Masterminds/semver/v3/SECURITY.md diff --git a/agent/go/vendor/github.com/Masterminds/semver/v3/collection.go b/agent/vendor/github.com/Masterminds/semver/v3/collection.go similarity index 100% rename from agent/go/vendor/github.com/Masterminds/semver/v3/collection.go rename to agent/vendor/github.com/Masterminds/semver/v3/collection.go diff --git a/agent/go/vendor/github.com/Masterminds/semver/v3/constraints.go b/agent/vendor/github.com/Masterminds/semver/v3/constraints.go similarity index 100% rename from agent/go/vendor/github.com/Masterminds/semver/v3/constraints.go rename to agent/vendor/github.com/Masterminds/semver/v3/constraints.go diff --git a/agent/go/vendor/github.com/Masterminds/semver/v3/doc.go b/agent/vendor/github.com/Masterminds/semver/v3/doc.go similarity index 100% rename from agent/go/vendor/github.com/Masterminds/semver/v3/doc.go rename to agent/vendor/github.com/Masterminds/semver/v3/doc.go diff --git a/agent/go/vendor/github.com/Masterminds/semver/v3/version.go b/agent/vendor/github.com/Masterminds/semver/v3/version.go similarity index 100% rename from agent/go/vendor/github.com/Masterminds/semver/v3/version.go rename to agent/vendor/github.com/Masterminds/semver/v3/version.go diff --git a/agent/go/vendor/github.com/go-logr/logr/.golangci.yaml b/agent/vendor/github.com/go-logr/logr/.golangci.yaml similarity index 100% rename from agent/go/vendor/github.com/go-logr/logr/.golangci.yaml rename to agent/vendor/github.com/go-logr/logr/.golangci.yaml diff --git a/agent/go/vendor/github.com/go-logr/logr/CHANGELOG.md b/agent/vendor/github.com/go-logr/logr/CHANGELOG.md similarity index 100% rename from agent/go/vendor/github.com/go-logr/logr/CHANGELOG.md rename to agent/vendor/github.com/go-logr/logr/CHANGELOG.md diff --git a/agent/go/vendor/github.com/go-logr/logr/CONTRIBUTING.md b/agent/vendor/github.com/go-logr/logr/CONTRIBUTING.md similarity index 100% rename from agent/go/vendor/github.com/go-logr/logr/CONTRIBUTING.md rename to agent/vendor/github.com/go-logr/logr/CONTRIBUTING.md diff --git a/agent/go/vendor/github.com/go-logr/logr/LICENSE b/agent/vendor/github.com/go-logr/logr/LICENSE similarity index 100% rename from agent/go/vendor/github.com/go-logr/logr/LICENSE rename to agent/vendor/github.com/go-logr/logr/LICENSE diff --git a/agent/go/vendor/github.com/go-logr/logr/README.md b/agent/vendor/github.com/go-logr/logr/README.md similarity index 100% rename from agent/go/vendor/github.com/go-logr/logr/README.md rename to agent/vendor/github.com/go-logr/logr/README.md diff --git a/agent/go/vendor/github.com/go-logr/logr/SECURITY.md b/agent/vendor/github.com/go-logr/logr/SECURITY.md similarity index 100% rename from agent/go/vendor/github.com/go-logr/logr/SECURITY.md rename to agent/vendor/github.com/go-logr/logr/SECURITY.md diff --git a/agent/go/vendor/github.com/go-logr/logr/context.go b/agent/vendor/github.com/go-logr/logr/context.go similarity index 100% rename from agent/go/vendor/github.com/go-logr/logr/context.go rename to agent/vendor/github.com/go-logr/logr/context.go diff --git a/agent/go/vendor/github.com/go-logr/logr/context_noslog.go b/agent/vendor/github.com/go-logr/logr/context_noslog.go similarity index 100% rename from agent/go/vendor/github.com/go-logr/logr/context_noslog.go rename to agent/vendor/github.com/go-logr/logr/context_noslog.go diff --git a/agent/go/vendor/github.com/go-logr/logr/context_slog.go b/agent/vendor/github.com/go-logr/logr/context_slog.go similarity index 100% rename from agent/go/vendor/github.com/go-logr/logr/context_slog.go rename to agent/vendor/github.com/go-logr/logr/context_slog.go diff --git a/agent/go/vendor/github.com/go-logr/logr/discard.go b/agent/vendor/github.com/go-logr/logr/discard.go similarity index 100% rename from agent/go/vendor/github.com/go-logr/logr/discard.go rename to agent/vendor/github.com/go-logr/logr/discard.go diff --git a/agent/go/vendor/github.com/go-logr/logr/funcr/funcr.go b/agent/vendor/github.com/go-logr/logr/funcr/funcr.go similarity index 100% rename from agent/go/vendor/github.com/go-logr/logr/funcr/funcr.go rename to agent/vendor/github.com/go-logr/logr/funcr/funcr.go diff --git a/agent/go/vendor/github.com/go-logr/logr/funcr/slogsink.go b/agent/vendor/github.com/go-logr/logr/funcr/slogsink.go similarity index 100% rename from agent/go/vendor/github.com/go-logr/logr/funcr/slogsink.go rename to agent/vendor/github.com/go-logr/logr/funcr/slogsink.go diff --git a/agent/go/vendor/github.com/go-logr/logr/logr.go b/agent/vendor/github.com/go-logr/logr/logr.go similarity index 100% rename from agent/go/vendor/github.com/go-logr/logr/logr.go rename to agent/vendor/github.com/go-logr/logr/logr.go diff --git a/agent/go/vendor/github.com/go-logr/logr/sloghandler.go b/agent/vendor/github.com/go-logr/logr/sloghandler.go similarity index 100% rename from agent/go/vendor/github.com/go-logr/logr/sloghandler.go rename to agent/vendor/github.com/go-logr/logr/sloghandler.go diff --git a/agent/go/vendor/github.com/go-logr/logr/slogr.go b/agent/vendor/github.com/go-logr/logr/slogr.go similarity index 100% rename from agent/go/vendor/github.com/go-logr/logr/slogr.go rename to agent/vendor/github.com/go-logr/logr/slogr.go diff --git a/agent/go/vendor/github.com/go-logr/logr/slogsink.go b/agent/vendor/github.com/go-logr/logr/slogsink.go similarity index 100% rename from agent/go/vendor/github.com/go-logr/logr/slogsink.go rename to agent/vendor/github.com/go-logr/logr/slogsink.go diff --git a/agent/go/vendor/github.com/go-task/slim-sprig/v3/.editorconfig b/agent/vendor/github.com/go-task/slim-sprig/v3/.editorconfig similarity index 100% rename from agent/go/vendor/github.com/go-task/slim-sprig/v3/.editorconfig rename to agent/vendor/github.com/go-task/slim-sprig/v3/.editorconfig diff --git a/agent/go/vendor/github.com/go-task/slim-sprig/v3/.gitattributes b/agent/vendor/github.com/go-task/slim-sprig/v3/.gitattributes similarity index 100% rename from agent/go/vendor/github.com/go-task/slim-sprig/v3/.gitattributes rename to agent/vendor/github.com/go-task/slim-sprig/v3/.gitattributes diff --git a/agent/go/vendor/github.com/go-task/slim-sprig/v3/.gitignore b/agent/vendor/github.com/go-task/slim-sprig/v3/.gitignore similarity index 100% rename from agent/go/vendor/github.com/go-task/slim-sprig/v3/.gitignore rename to agent/vendor/github.com/go-task/slim-sprig/v3/.gitignore diff --git a/agent/go/vendor/github.com/go-task/slim-sprig/v3/CHANGELOG.md b/agent/vendor/github.com/go-task/slim-sprig/v3/CHANGELOG.md similarity index 100% rename from agent/go/vendor/github.com/go-task/slim-sprig/v3/CHANGELOG.md rename to agent/vendor/github.com/go-task/slim-sprig/v3/CHANGELOG.md diff --git a/agent/go/vendor/github.com/go-task/slim-sprig/v3/LICENSE.txt b/agent/vendor/github.com/go-task/slim-sprig/v3/LICENSE.txt similarity index 100% rename from agent/go/vendor/github.com/go-task/slim-sprig/v3/LICENSE.txt rename to agent/vendor/github.com/go-task/slim-sprig/v3/LICENSE.txt diff --git a/agent/go/vendor/github.com/go-task/slim-sprig/v3/README.md b/agent/vendor/github.com/go-task/slim-sprig/v3/README.md similarity index 100% rename from agent/go/vendor/github.com/go-task/slim-sprig/v3/README.md rename to agent/vendor/github.com/go-task/slim-sprig/v3/README.md diff --git a/agent/go/vendor/github.com/go-task/slim-sprig/v3/Taskfile.yml b/agent/vendor/github.com/go-task/slim-sprig/v3/Taskfile.yml similarity index 100% rename from agent/go/vendor/github.com/go-task/slim-sprig/v3/Taskfile.yml rename to agent/vendor/github.com/go-task/slim-sprig/v3/Taskfile.yml diff --git a/agent/go/vendor/github.com/go-task/slim-sprig/v3/crypto.go b/agent/vendor/github.com/go-task/slim-sprig/v3/crypto.go similarity index 100% rename from agent/go/vendor/github.com/go-task/slim-sprig/v3/crypto.go rename to agent/vendor/github.com/go-task/slim-sprig/v3/crypto.go diff --git a/agent/go/vendor/github.com/go-task/slim-sprig/v3/date.go b/agent/vendor/github.com/go-task/slim-sprig/v3/date.go similarity index 100% rename from agent/go/vendor/github.com/go-task/slim-sprig/v3/date.go rename to agent/vendor/github.com/go-task/slim-sprig/v3/date.go diff --git a/agent/go/vendor/github.com/go-task/slim-sprig/v3/defaults.go b/agent/vendor/github.com/go-task/slim-sprig/v3/defaults.go similarity index 100% rename from agent/go/vendor/github.com/go-task/slim-sprig/v3/defaults.go rename to agent/vendor/github.com/go-task/slim-sprig/v3/defaults.go diff --git a/agent/go/vendor/github.com/go-task/slim-sprig/v3/dict.go b/agent/vendor/github.com/go-task/slim-sprig/v3/dict.go similarity index 100% rename from agent/go/vendor/github.com/go-task/slim-sprig/v3/dict.go rename to agent/vendor/github.com/go-task/slim-sprig/v3/dict.go diff --git a/agent/go/vendor/github.com/go-task/slim-sprig/v3/doc.go b/agent/vendor/github.com/go-task/slim-sprig/v3/doc.go similarity index 100% rename from agent/go/vendor/github.com/go-task/slim-sprig/v3/doc.go rename to agent/vendor/github.com/go-task/slim-sprig/v3/doc.go diff --git a/agent/go/vendor/github.com/go-task/slim-sprig/v3/functions.go b/agent/vendor/github.com/go-task/slim-sprig/v3/functions.go similarity index 100% rename from agent/go/vendor/github.com/go-task/slim-sprig/v3/functions.go rename to agent/vendor/github.com/go-task/slim-sprig/v3/functions.go diff --git a/agent/go/vendor/github.com/go-task/slim-sprig/v3/list.go b/agent/vendor/github.com/go-task/slim-sprig/v3/list.go similarity index 100% rename from agent/go/vendor/github.com/go-task/slim-sprig/v3/list.go rename to agent/vendor/github.com/go-task/slim-sprig/v3/list.go diff --git a/agent/go/vendor/github.com/go-task/slim-sprig/v3/network.go b/agent/vendor/github.com/go-task/slim-sprig/v3/network.go similarity index 100% rename from agent/go/vendor/github.com/go-task/slim-sprig/v3/network.go rename to agent/vendor/github.com/go-task/slim-sprig/v3/network.go diff --git a/agent/go/vendor/github.com/go-task/slim-sprig/v3/numeric.go b/agent/vendor/github.com/go-task/slim-sprig/v3/numeric.go similarity index 100% rename from agent/go/vendor/github.com/go-task/slim-sprig/v3/numeric.go rename to agent/vendor/github.com/go-task/slim-sprig/v3/numeric.go diff --git a/agent/go/vendor/github.com/go-task/slim-sprig/v3/reflect.go b/agent/vendor/github.com/go-task/slim-sprig/v3/reflect.go similarity index 100% rename from agent/go/vendor/github.com/go-task/slim-sprig/v3/reflect.go rename to agent/vendor/github.com/go-task/slim-sprig/v3/reflect.go diff --git a/agent/go/vendor/github.com/go-task/slim-sprig/v3/regex.go b/agent/vendor/github.com/go-task/slim-sprig/v3/regex.go similarity index 100% rename from agent/go/vendor/github.com/go-task/slim-sprig/v3/regex.go rename to agent/vendor/github.com/go-task/slim-sprig/v3/regex.go diff --git a/agent/go/vendor/github.com/go-task/slim-sprig/v3/strings.go b/agent/vendor/github.com/go-task/slim-sprig/v3/strings.go similarity index 100% rename from agent/go/vendor/github.com/go-task/slim-sprig/v3/strings.go rename to agent/vendor/github.com/go-task/slim-sprig/v3/strings.go diff --git a/agent/go/vendor/github.com/go-task/slim-sprig/v3/url.go b/agent/vendor/github.com/go-task/slim-sprig/v3/url.go similarity index 100% rename from agent/go/vendor/github.com/go-task/slim-sprig/v3/url.go rename to agent/vendor/github.com/go-task/slim-sprig/v3/url.go diff --git a/agent/go/vendor/github.com/google/go-cmp/LICENSE b/agent/vendor/github.com/google/go-cmp/LICENSE similarity index 100% rename from agent/go/vendor/github.com/google/go-cmp/LICENSE rename to agent/vendor/github.com/google/go-cmp/LICENSE diff --git a/agent/go/vendor/github.com/google/go-cmp/cmp/compare.go b/agent/vendor/github.com/google/go-cmp/cmp/compare.go similarity index 100% rename from agent/go/vendor/github.com/google/go-cmp/cmp/compare.go rename to agent/vendor/github.com/google/go-cmp/cmp/compare.go diff --git a/agent/go/vendor/github.com/google/go-cmp/cmp/export.go b/agent/vendor/github.com/google/go-cmp/cmp/export.go similarity index 100% rename from agent/go/vendor/github.com/google/go-cmp/cmp/export.go rename to agent/vendor/github.com/google/go-cmp/cmp/export.go diff --git a/agent/go/vendor/github.com/google/go-cmp/cmp/internal/diff/debug_disable.go b/agent/vendor/github.com/google/go-cmp/cmp/internal/diff/debug_disable.go similarity index 100% rename from agent/go/vendor/github.com/google/go-cmp/cmp/internal/diff/debug_disable.go rename to agent/vendor/github.com/google/go-cmp/cmp/internal/diff/debug_disable.go diff --git a/agent/go/vendor/github.com/google/go-cmp/cmp/internal/diff/debug_enable.go b/agent/vendor/github.com/google/go-cmp/cmp/internal/diff/debug_enable.go similarity index 100% rename from agent/go/vendor/github.com/google/go-cmp/cmp/internal/diff/debug_enable.go rename to agent/vendor/github.com/google/go-cmp/cmp/internal/diff/debug_enable.go diff --git a/agent/go/vendor/github.com/google/go-cmp/cmp/internal/diff/diff.go b/agent/vendor/github.com/google/go-cmp/cmp/internal/diff/diff.go similarity index 100% rename from agent/go/vendor/github.com/google/go-cmp/cmp/internal/diff/diff.go rename to agent/vendor/github.com/google/go-cmp/cmp/internal/diff/diff.go diff --git a/agent/go/vendor/github.com/google/go-cmp/cmp/internal/flags/flags.go b/agent/vendor/github.com/google/go-cmp/cmp/internal/flags/flags.go similarity index 100% rename from agent/go/vendor/github.com/google/go-cmp/cmp/internal/flags/flags.go rename to agent/vendor/github.com/google/go-cmp/cmp/internal/flags/flags.go diff --git a/agent/go/vendor/github.com/google/go-cmp/cmp/internal/function/func.go b/agent/vendor/github.com/google/go-cmp/cmp/internal/function/func.go similarity index 100% rename from agent/go/vendor/github.com/google/go-cmp/cmp/internal/function/func.go rename to agent/vendor/github.com/google/go-cmp/cmp/internal/function/func.go diff --git a/agent/go/vendor/github.com/google/go-cmp/cmp/internal/value/name.go b/agent/vendor/github.com/google/go-cmp/cmp/internal/value/name.go similarity index 100% rename from agent/go/vendor/github.com/google/go-cmp/cmp/internal/value/name.go rename to agent/vendor/github.com/google/go-cmp/cmp/internal/value/name.go diff --git a/agent/go/vendor/github.com/google/go-cmp/cmp/internal/value/pointer.go b/agent/vendor/github.com/google/go-cmp/cmp/internal/value/pointer.go similarity index 100% rename from agent/go/vendor/github.com/google/go-cmp/cmp/internal/value/pointer.go rename to agent/vendor/github.com/google/go-cmp/cmp/internal/value/pointer.go diff --git a/agent/go/vendor/github.com/google/go-cmp/cmp/internal/value/sort.go b/agent/vendor/github.com/google/go-cmp/cmp/internal/value/sort.go similarity index 100% rename from agent/go/vendor/github.com/google/go-cmp/cmp/internal/value/sort.go rename to agent/vendor/github.com/google/go-cmp/cmp/internal/value/sort.go diff --git a/agent/go/vendor/github.com/google/go-cmp/cmp/options.go b/agent/vendor/github.com/google/go-cmp/cmp/options.go similarity index 100% rename from agent/go/vendor/github.com/google/go-cmp/cmp/options.go rename to agent/vendor/github.com/google/go-cmp/cmp/options.go diff --git a/agent/go/vendor/github.com/google/go-cmp/cmp/path.go b/agent/vendor/github.com/google/go-cmp/cmp/path.go similarity index 100% rename from agent/go/vendor/github.com/google/go-cmp/cmp/path.go rename to agent/vendor/github.com/google/go-cmp/cmp/path.go diff --git a/agent/go/vendor/github.com/google/go-cmp/cmp/report.go b/agent/vendor/github.com/google/go-cmp/cmp/report.go similarity index 100% rename from agent/go/vendor/github.com/google/go-cmp/cmp/report.go rename to agent/vendor/github.com/google/go-cmp/cmp/report.go diff --git a/agent/go/vendor/github.com/google/go-cmp/cmp/report_compare.go b/agent/vendor/github.com/google/go-cmp/cmp/report_compare.go similarity index 100% rename from agent/go/vendor/github.com/google/go-cmp/cmp/report_compare.go rename to agent/vendor/github.com/google/go-cmp/cmp/report_compare.go diff --git a/agent/go/vendor/github.com/google/go-cmp/cmp/report_references.go b/agent/vendor/github.com/google/go-cmp/cmp/report_references.go similarity index 100% rename from agent/go/vendor/github.com/google/go-cmp/cmp/report_references.go rename to agent/vendor/github.com/google/go-cmp/cmp/report_references.go diff --git a/agent/go/vendor/github.com/google/go-cmp/cmp/report_reflect.go b/agent/vendor/github.com/google/go-cmp/cmp/report_reflect.go similarity index 100% rename from agent/go/vendor/github.com/google/go-cmp/cmp/report_reflect.go rename to agent/vendor/github.com/google/go-cmp/cmp/report_reflect.go diff --git a/agent/go/vendor/github.com/google/go-cmp/cmp/report_slices.go b/agent/vendor/github.com/google/go-cmp/cmp/report_slices.go similarity index 100% rename from agent/go/vendor/github.com/google/go-cmp/cmp/report_slices.go rename to agent/vendor/github.com/google/go-cmp/cmp/report_slices.go diff --git a/agent/go/vendor/github.com/google/go-cmp/cmp/report_text.go b/agent/vendor/github.com/google/go-cmp/cmp/report_text.go similarity index 100% rename from agent/go/vendor/github.com/google/go-cmp/cmp/report_text.go rename to agent/vendor/github.com/google/go-cmp/cmp/report_text.go diff --git a/agent/go/vendor/github.com/google/go-cmp/cmp/report_value.go b/agent/vendor/github.com/google/go-cmp/cmp/report_value.go similarity index 100% rename from agent/go/vendor/github.com/google/go-cmp/cmp/report_value.go rename to agent/vendor/github.com/google/go-cmp/cmp/report_value.go diff --git a/agent/go/vendor/github.com/google/pprof/AUTHORS b/agent/vendor/github.com/google/pprof/AUTHORS similarity index 100% rename from agent/go/vendor/github.com/google/pprof/AUTHORS rename to agent/vendor/github.com/google/pprof/AUTHORS diff --git a/agent/go/vendor/github.com/google/pprof/CONTRIBUTORS b/agent/vendor/github.com/google/pprof/CONTRIBUTORS similarity index 100% rename from agent/go/vendor/github.com/google/pprof/CONTRIBUTORS rename to agent/vendor/github.com/google/pprof/CONTRIBUTORS diff --git a/agent/go/vendor/github.com/google/pprof/LICENSE b/agent/vendor/github.com/google/pprof/LICENSE similarity index 100% rename from agent/go/vendor/github.com/google/pprof/LICENSE rename to agent/vendor/github.com/google/pprof/LICENSE diff --git a/agent/go/vendor/github.com/google/pprof/profile/encode.go b/agent/vendor/github.com/google/pprof/profile/encode.go similarity index 100% rename from agent/go/vendor/github.com/google/pprof/profile/encode.go rename to agent/vendor/github.com/google/pprof/profile/encode.go diff --git a/agent/go/vendor/github.com/google/pprof/profile/filter.go b/agent/vendor/github.com/google/pprof/profile/filter.go similarity index 100% rename from agent/go/vendor/github.com/google/pprof/profile/filter.go rename to agent/vendor/github.com/google/pprof/profile/filter.go diff --git a/agent/go/vendor/github.com/google/pprof/profile/index.go b/agent/vendor/github.com/google/pprof/profile/index.go similarity index 100% rename from agent/go/vendor/github.com/google/pprof/profile/index.go rename to agent/vendor/github.com/google/pprof/profile/index.go diff --git a/agent/go/vendor/github.com/google/pprof/profile/legacy_java_profile.go b/agent/vendor/github.com/google/pprof/profile/legacy_java_profile.go similarity index 100% rename from agent/go/vendor/github.com/google/pprof/profile/legacy_java_profile.go rename to agent/vendor/github.com/google/pprof/profile/legacy_java_profile.go diff --git a/agent/go/vendor/github.com/google/pprof/profile/legacy_profile.go b/agent/vendor/github.com/google/pprof/profile/legacy_profile.go similarity index 100% rename from agent/go/vendor/github.com/google/pprof/profile/legacy_profile.go rename to agent/vendor/github.com/google/pprof/profile/legacy_profile.go diff --git a/agent/go/vendor/github.com/google/pprof/profile/merge.go b/agent/vendor/github.com/google/pprof/profile/merge.go similarity index 100% rename from agent/go/vendor/github.com/google/pprof/profile/merge.go rename to agent/vendor/github.com/google/pprof/profile/merge.go diff --git a/agent/go/vendor/github.com/google/pprof/profile/profile.go b/agent/vendor/github.com/google/pprof/profile/profile.go similarity index 100% rename from agent/go/vendor/github.com/google/pprof/profile/profile.go rename to agent/vendor/github.com/google/pprof/profile/profile.go diff --git a/agent/go/vendor/github.com/google/pprof/profile/proto.go b/agent/vendor/github.com/google/pprof/profile/proto.go similarity index 100% rename from agent/go/vendor/github.com/google/pprof/profile/proto.go rename to agent/vendor/github.com/google/pprof/profile/proto.go diff --git a/agent/go/vendor/github.com/google/pprof/profile/prune.go b/agent/vendor/github.com/google/pprof/profile/prune.go similarity index 100% rename from agent/go/vendor/github.com/google/pprof/profile/prune.go rename to agent/vendor/github.com/google/pprof/profile/prune.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/.gitignore b/agent/vendor/github.com/onsi/ginkgo/v2/.gitignore similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/.gitignore rename to agent/vendor/github.com/onsi/ginkgo/v2/.gitignore diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md b/agent/vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md rename to agent/vendor/github.com/onsi/ginkgo/v2/CHANGELOG.md diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/CONTRIBUTING.md b/agent/vendor/github.com/onsi/ginkgo/v2/CONTRIBUTING.md similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/CONTRIBUTING.md rename to agent/vendor/github.com/onsi/ginkgo/v2/CONTRIBUTING.md diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/LICENSE b/agent/vendor/github.com/onsi/ginkgo/v2/LICENSE similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/LICENSE rename to agent/vendor/github.com/onsi/ginkgo/v2/LICENSE diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/Makefile b/agent/vendor/github.com/onsi/ginkgo/v2/Makefile similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/Makefile rename to agent/vendor/github.com/onsi/ginkgo/v2/Makefile diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/README.md b/agent/vendor/github.com/onsi/ginkgo/v2/README.md similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/README.md rename to agent/vendor/github.com/onsi/ginkgo/v2/README.md diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/RELEASING.md b/agent/vendor/github.com/onsi/ginkgo/v2/RELEASING.md similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/RELEASING.md rename to agent/vendor/github.com/onsi/ginkgo/v2/RELEASING.md diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/config/deprecated.go b/agent/vendor/github.com/onsi/ginkgo/v2/config/deprecated.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/config/deprecated.go rename to agent/vendor/github.com/onsi/ginkgo/v2/config/deprecated.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/core_dsl.go b/agent/vendor/github.com/onsi/ginkgo/v2/core_dsl.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/core_dsl.go rename to agent/vendor/github.com/onsi/ginkgo/v2/core_dsl.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/decorator_dsl.go b/agent/vendor/github.com/onsi/ginkgo/v2/decorator_dsl.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/decorator_dsl.go rename to agent/vendor/github.com/onsi/ginkgo/v2/decorator_dsl.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/deprecated_dsl.go b/agent/vendor/github.com/onsi/ginkgo/v2/deprecated_dsl.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/deprecated_dsl.go rename to agent/vendor/github.com/onsi/ginkgo/v2/deprecated_dsl.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/formatter/colorable_others.go b/agent/vendor/github.com/onsi/ginkgo/v2/formatter/colorable_others.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/formatter/colorable_others.go rename to agent/vendor/github.com/onsi/ginkgo/v2/formatter/colorable_others.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/formatter/colorable_windows.go b/agent/vendor/github.com/onsi/ginkgo/v2/formatter/colorable_windows.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/formatter/colorable_windows.go rename to agent/vendor/github.com/onsi/ginkgo/v2/formatter/colorable_windows.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/formatter/formatter.go b/agent/vendor/github.com/onsi/ginkgo/v2/formatter/formatter.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/formatter/formatter.go rename to agent/vendor/github.com/onsi/ginkgo/v2/formatter/formatter.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/README.md b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/README.md similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/README.md rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/README.md diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/automaxprocs.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/automaxprocs.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/automaxprocs.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/automaxprocs.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cgroup.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cgroup.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cgroup.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cgroup.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cgroups.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cgroups.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cgroups.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cgroups.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cgroups2.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cgroups2.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cgroups2.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cgroups2.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cpu_quota_linux.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cpu_quota_linux.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cpu_quota_linux.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cpu_quota_linux.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cpu_quota_unsupported.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cpu_quota_unsupported.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cpu_quota_unsupported.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/cpu_quota_unsupported.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/errors.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/errors.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/errors.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/errors.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/mountpoint.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/mountpoint.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/mountpoint.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/mountpoint.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/runtime.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/runtime.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/runtime.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/runtime.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/subsys.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/subsys.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/subsys.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/automaxprocs/subsys.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/build/build_command.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/build/build_command.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/build/build_command.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/build/build_command.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/command/abort.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/command/abort.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/command/abort.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/command/abort.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/command/command.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/command/command.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/command/command.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/command/command.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/command/program.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/command/program.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/command/program.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/command/program.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/boostrap_templates.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/boostrap_templates.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/boostrap_templates.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/boostrap_templates.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/bootstrap_command.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/bootstrap_command.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/bootstrap_command.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/bootstrap_command.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_command.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_command.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_command.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_command.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_templates.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_templates.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_templates.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generate_templates.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generators_common.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generators_common.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generators_common.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/generators/generators_common.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/compile.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/compile.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/compile.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/compile.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/gocovmerge.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/gocovmerge.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/gocovmerge.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/gocovmerge.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/profiles_and_reports.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/profiles_and_reports.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/profiles_and_reports.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/profiles_and_reports.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/run.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/run.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/run.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/run.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/test_suite.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/test_suite.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/test_suite.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/test_suite.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/utils.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/utils.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/utils.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/utils.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/verify_version.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/verify_version.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/verify_version.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/internal/verify_version.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/labels/labels_command.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/labels/labels_command.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/labels/labels_command.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/labels/labels_command.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/main.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/main.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/main.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/main.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/ginkgo.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/ginkgo.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/ginkgo.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/ginkgo.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/import.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/import.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/import.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/import.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/outline.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/outline.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/outline.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/outline.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/outline_command.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/outline_command.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/outline_command.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/outline/outline_command.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/run/run_command.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/run/run_command.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/run/run_command.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/run/run_command.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/unfocus/unfocus_command.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/unfocus/unfocus_command.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/unfocus/unfocus_command.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/unfocus/unfocus_command.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/delta.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/delta.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/delta.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/delta.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/delta_tracker.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/delta_tracker.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/delta_tracker.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/delta_tracker.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/dependencies.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/dependencies.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/dependencies.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/dependencies.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/package_hash.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/package_hash.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/package_hash.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/package_hash.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/package_hashes.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/package_hashes.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/package_hashes.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/package_hashes.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/suite.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/suite.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/suite.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/suite.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/watch_command.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/watch_command.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/watch_command.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo/watch/watch_command.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo_cli_dependencies.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo_cli_dependencies.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo_cli_dependencies.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo_cli_dependencies.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo_t_dsl.go b/agent/vendor/github.com/onsi/ginkgo/v2/ginkgo_t_dsl.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/ginkgo_t_dsl.go rename to agent/vendor/github.com/onsi/ginkgo/v2/ginkgo_t_dsl.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/helpergo_dsl.go b/agent/vendor/github.com/onsi/ginkgo/v2/helpergo_dsl.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/helpergo_dsl.go rename to agent/vendor/github.com/onsi/ginkgo/v2/helpergo_dsl.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/around_node.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/around_node.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/around_node.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/around_node.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/counter.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/counter.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/counter.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/counter.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/failer.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/failer.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/failer.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/failer.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/focus.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/focus.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/focus.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/focus.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/global/init.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/global/init.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/global/init.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/global/init.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/group.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/group.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/group.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/group.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/interrupt_handler.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/interrupt_handler.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/interrupt_handler.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/interrupt_handler.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/sigquit_swallower_unix.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/sigquit_swallower_unix.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/sigquit_swallower_unix.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/sigquit_swallower_unix.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/sigquit_swallower_windows.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/sigquit_swallower_windows.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/sigquit_swallower_windows.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/interrupt_handler/sigquit_swallower_windows.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/node.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/node.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/node.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/node.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/ordering.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/ordering.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/ordering.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/ordering.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_unix.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_unix.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_unix.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_unix.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_wasm.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_wasm.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_wasm.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_wasm.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_win.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_win.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_win.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/output_interceptor_win.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/client_server.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/client_server.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/client_server.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/client_server.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/http_client.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/http_client.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/http_client.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/http_client.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/http_server.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/http_server.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/http_server.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/http_server.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/rpc_client.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/rpc_client.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/rpc_client.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/rpc_client.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/rpc_server.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/rpc_server.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/rpc_server.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/rpc_server.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/server_handler.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/server_handler.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/server_handler.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/parallel_support/server_handler.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/progress_report.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/progress_report.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/progress_report.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/progress_report.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/progress_report_bsd.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/progress_report_bsd.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/progress_report_bsd.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/progress_report_bsd.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/progress_report_unix.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/progress_report_unix.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/progress_report_unix.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/progress_report_unix.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/progress_report_wasm.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/progress_report_wasm.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/progress_report_wasm.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/progress_report_wasm.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/progress_report_win.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/progress_report_win.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/progress_report_win.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/progress_report_win.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/progress_reporter_manager.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/progress_reporter_manager.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/progress_reporter_manager.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/progress_reporter_manager.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/report_entry.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/report_entry.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/report_entry.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/report_entry.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/reporters/gojson.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/reporters/gojson.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/reporters/gojson.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/reporters/gojson.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/reporters/gojson_event_writer.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/reporters/gojson_event_writer.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/reporters/gojson_event_writer.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/reporters/gojson_event_writer.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/reporters/gojson_reporter.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/reporters/gojson_reporter.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/reporters/gojson_reporter.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/reporters/gojson_reporter.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/spec.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/spec.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/spec.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/spec.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/spec_context.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/spec_context.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/spec_context.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/spec_context.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/suite.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/suite.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/suite.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/suite.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/testingtproxy/testing_t_proxy.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/testingtproxy/testing_t_proxy.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/testingtproxy/testing_t_proxy.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/testingtproxy/testing_t_proxy.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/tree.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/tree.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/tree.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/tree.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/internal/writer.go b/agent/vendor/github.com/onsi/ginkgo/v2/internal/writer.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/internal/writer.go rename to agent/vendor/github.com/onsi/ginkgo/v2/internal/writer.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/reporters/default_reporter.go b/agent/vendor/github.com/onsi/ginkgo/v2/reporters/default_reporter.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/reporters/default_reporter.go rename to agent/vendor/github.com/onsi/ginkgo/v2/reporters/default_reporter.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/reporters/deprecated_reporter.go b/agent/vendor/github.com/onsi/ginkgo/v2/reporters/deprecated_reporter.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/reporters/deprecated_reporter.go rename to agent/vendor/github.com/onsi/ginkgo/v2/reporters/deprecated_reporter.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/reporters/gojson_report.go b/agent/vendor/github.com/onsi/ginkgo/v2/reporters/gojson_report.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/reporters/gojson_report.go rename to agent/vendor/github.com/onsi/ginkgo/v2/reporters/gojson_report.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/reporters/json_report.go b/agent/vendor/github.com/onsi/ginkgo/v2/reporters/json_report.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/reporters/json_report.go rename to agent/vendor/github.com/onsi/ginkgo/v2/reporters/json_report.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/reporters/junit_report.go b/agent/vendor/github.com/onsi/ginkgo/v2/reporters/junit_report.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/reporters/junit_report.go rename to agent/vendor/github.com/onsi/ginkgo/v2/reporters/junit_report.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/reporters/reporter.go b/agent/vendor/github.com/onsi/ginkgo/v2/reporters/reporter.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/reporters/reporter.go rename to agent/vendor/github.com/onsi/ginkgo/v2/reporters/reporter.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/reporters/teamcity_report.go b/agent/vendor/github.com/onsi/ginkgo/v2/reporters/teamcity_report.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/reporters/teamcity_report.go rename to agent/vendor/github.com/onsi/ginkgo/v2/reporters/teamcity_report.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/reporting_dsl.go b/agent/vendor/github.com/onsi/ginkgo/v2/reporting_dsl.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/reporting_dsl.go rename to agent/vendor/github.com/onsi/ginkgo/v2/reporting_dsl.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/table_dsl.go b/agent/vendor/github.com/onsi/ginkgo/v2/table_dsl.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/table_dsl.go rename to agent/vendor/github.com/onsi/ginkgo/v2/table_dsl.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/types/around_node.go b/agent/vendor/github.com/onsi/ginkgo/v2/types/around_node.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/types/around_node.go rename to agent/vendor/github.com/onsi/ginkgo/v2/types/around_node.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/types/code_location.go b/agent/vendor/github.com/onsi/ginkgo/v2/types/code_location.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/types/code_location.go rename to agent/vendor/github.com/onsi/ginkgo/v2/types/code_location.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/types/config.go b/agent/vendor/github.com/onsi/ginkgo/v2/types/config.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/types/config.go rename to agent/vendor/github.com/onsi/ginkgo/v2/types/config.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/types/deprecated_types.go b/agent/vendor/github.com/onsi/ginkgo/v2/types/deprecated_types.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/types/deprecated_types.go rename to agent/vendor/github.com/onsi/ginkgo/v2/types/deprecated_types.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/types/deprecation_support.go b/agent/vendor/github.com/onsi/ginkgo/v2/types/deprecation_support.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/types/deprecation_support.go rename to agent/vendor/github.com/onsi/ginkgo/v2/types/deprecation_support.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/types/enum_support.go b/agent/vendor/github.com/onsi/ginkgo/v2/types/enum_support.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/types/enum_support.go rename to agent/vendor/github.com/onsi/ginkgo/v2/types/enum_support.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/types/errors.go b/agent/vendor/github.com/onsi/ginkgo/v2/types/errors.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/types/errors.go rename to agent/vendor/github.com/onsi/ginkgo/v2/types/errors.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/types/file_filter.go b/agent/vendor/github.com/onsi/ginkgo/v2/types/file_filter.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/types/file_filter.go rename to agent/vendor/github.com/onsi/ginkgo/v2/types/file_filter.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/types/flags.go b/agent/vendor/github.com/onsi/ginkgo/v2/types/flags.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/types/flags.go rename to agent/vendor/github.com/onsi/ginkgo/v2/types/flags.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/types/label_filter.go b/agent/vendor/github.com/onsi/ginkgo/v2/types/label_filter.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/types/label_filter.go rename to agent/vendor/github.com/onsi/ginkgo/v2/types/label_filter.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/types/report_entry.go b/agent/vendor/github.com/onsi/ginkgo/v2/types/report_entry.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/types/report_entry.go rename to agent/vendor/github.com/onsi/ginkgo/v2/types/report_entry.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/types/semver_filter.go b/agent/vendor/github.com/onsi/ginkgo/v2/types/semver_filter.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/types/semver_filter.go rename to agent/vendor/github.com/onsi/ginkgo/v2/types/semver_filter.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/types/types.go b/agent/vendor/github.com/onsi/ginkgo/v2/types/types.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/types/types.go rename to agent/vendor/github.com/onsi/ginkgo/v2/types/types.go diff --git a/agent/go/vendor/github.com/onsi/ginkgo/v2/types/version.go b/agent/vendor/github.com/onsi/ginkgo/v2/types/version.go similarity index 100% rename from agent/go/vendor/github.com/onsi/ginkgo/v2/types/version.go rename to agent/vendor/github.com/onsi/ginkgo/v2/types/version.go diff --git a/agent/go/vendor/github.com/onsi/gomega/.gitignore b/agent/vendor/github.com/onsi/gomega/.gitignore similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/.gitignore rename to agent/vendor/github.com/onsi/gomega/.gitignore diff --git a/agent/go/vendor/github.com/onsi/gomega/CHANGELOG.md b/agent/vendor/github.com/onsi/gomega/CHANGELOG.md similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/CHANGELOG.md rename to agent/vendor/github.com/onsi/gomega/CHANGELOG.md diff --git a/agent/go/vendor/github.com/onsi/gomega/CONTRIBUTING.md b/agent/vendor/github.com/onsi/gomega/CONTRIBUTING.md similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/CONTRIBUTING.md rename to agent/vendor/github.com/onsi/gomega/CONTRIBUTING.md diff --git a/agent/go/vendor/github.com/onsi/gomega/LICENSE b/agent/vendor/github.com/onsi/gomega/LICENSE similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/LICENSE rename to agent/vendor/github.com/onsi/gomega/LICENSE diff --git a/agent/go/vendor/github.com/onsi/gomega/README.md b/agent/vendor/github.com/onsi/gomega/README.md similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/README.md rename to agent/vendor/github.com/onsi/gomega/README.md diff --git a/agent/go/vendor/github.com/onsi/gomega/RELEASING.md b/agent/vendor/github.com/onsi/gomega/RELEASING.md similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/RELEASING.md rename to agent/vendor/github.com/onsi/gomega/RELEASING.md diff --git a/agent/go/vendor/github.com/onsi/gomega/format/format.go b/agent/vendor/github.com/onsi/gomega/format/format.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/format/format.go rename to agent/vendor/github.com/onsi/gomega/format/format.go diff --git a/agent/go/vendor/github.com/onsi/gomega/gomega_dsl.go b/agent/vendor/github.com/onsi/gomega/gomega_dsl.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/gomega_dsl.go rename to agent/vendor/github.com/onsi/gomega/gomega_dsl.go diff --git a/agent/go/vendor/github.com/onsi/gomega/internal/assertion.go b/agent/vendor/github.com/onsi/gomega/internal/assertion.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/internal/assertion.go rename to agent/vendor/github.com/onsi/gomega/internal/assertion.go diff --git a/agent/go/vendor/github.com/onsi/gomega/internal/async_assertion.go b/agent/vendor/github.com/onsi/gomega/internal/async_assertion.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/internal/async_assertion.go rename to agent/vendor/github.com/onsi/gomega/internal/async_assertion.go diff --git a/agent/go/vendor/github.com/onsi/gomega/internal/duration_bundle.go b/agent/vendor/github.com/onsi/gomega/internal/duration_bundle.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/internal/duration_bundle.go rename to agent/vendor/github.com/onsi/gomega/internal/duration_bundle.go diff --git a/agent/go/vendor/github.com/onsi/gomega/internal/gomega.go b/agent/vendor/github.com/onsi/gomega/internal/gomega.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/internal/gomega.go rename to agent/vendor/github.com/onsi/gomega/internal/gomega.go diff --git a/agent/go/vendor/github.com/onsi/gomega/internal/gutil/post_ioutil.go b/agent/vendor/github.com/onsi/gomega/internal/gutil/post_ioutil.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/internal/gutil/post_ioutil.go rename to agent/vendor/github.com/onsi/gomega/internal/gutil/post_ioutil.go diff --git a/agent/go/vendor/github.com/onsi/gomega/internal/gutil/using_ioutil.go b/agent/vendor/github.com/onsi/gomega/internal/gutil/using_ioutil.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/internal/gutil/using_ioutil.go rename to agent/vendor/github.com/onsi/gomega/internal/gutil/using_ioutil.go diff --git a/agent/go/vendor/github.com/onsi/gomega/internal/polling_signal_error.go b/agent/vendor/github.com/onsi/gomega/internal/polling_signal_error.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/internal/polling_signal_error.go rename to agent/vendor/github.com/onsi/gomega/internal/polling_signal_error.go diff --git a/agent/go/vendor/github.com/onsi/gomega/internal/vetoptdesc.go b/agent/vendor/github.com/onsi/gomega/internal/vetoptdesc.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/internal/vetoptdesc.go rename to agent/vendor/github.com/onsi/gomega/internal/vetoptdesc.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers.go b/agent/vendor/github.com/onsi/gomega/matchers.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers.go rename to agent/vendor/github.com/onsi/gomega/matchers.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/and.go b/agent/vendor/github.com/onsi/gomega/matchers/and.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/and.go rename to agent/vendor/github.com/onsi/gomega/matchers/and.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/assignable_to_type_of_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/assignable_to_type_of_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/assignable_to_type_of_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/assignable_to_type_of_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/attributes_slice.go b/agent/vendor/github.com/onsi/gomega/matchers/attributes_slice.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/attributes_slice.go rename to agent/vendor/github.com/onsi/gomega/matchers/attributes_slice.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/be_a_directory.go b/agent/vendor/github.com/onsi/gomega/matchers/be_a_directory.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/be_a_directory.go rename to agent/vendor/github.com/onsi/gomega/matchers/be_a_directory.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/be_a_regular_file.go b/agent/vendor/github.com/onsi/gomega/matchers/be_a_regular_file.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/be_a_regular_file.go rename to agent/vendor/github.com/onsi/gomega/matchers/be_a_regular_file.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/be_a_slice_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/be_a_slice_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/be_a_slice_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/be_a_slice_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/be_an_array_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/be_an_array_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/be_an_array_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/be_an_array_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/be_an_existing_file.go b/agent/vendor/github.com/onsi/gomega/matchers/be_an_existing_file.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/be_an_existing_file.go rename to agent/vendor/github.com/onsi/gomega/matchers/be_an_existing_file.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/be_closed_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/be_closed_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/be_closed_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/be_closed_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/be_comparable_to_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/be_comparable_to_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/be_comparable_to_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/be_comparable_to_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/be_element_of_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/be_element_of_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/be_element_of_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/be_element_of_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/be_empty_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/be_empty_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/be_empty_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/be_empty_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/be_equivalent_to_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/be_equivalent_to_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/be_equivalent_to_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/be_equivalent_to_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/be_false_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/be_false_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/be_false_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/be_false_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/be_identical_to.go b/agent/vendor/github.com/onsi/gomega/matchers/be_identical_to.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/be_identical_to.go rename to agent/vendor/github.com/onsi/gomega/matchers/be_identical_to.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/be_key_of_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/be_key_of_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/be_key_of_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/be_key_of_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/be_nil_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/be_nil_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/be_nil_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/be_nil_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/be_numerically_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/be_numerically_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/be_numerically_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/be_numerically_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/be_sent_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/be_sent_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/be_sent_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/be_sent_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/be_temporally_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/be_temporally_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/be_temporally_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/be_temporally_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/be_true_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/be_true_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/be_true_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/be_true_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/be_zero_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/be_zero_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/be_zero_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/be_zero_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/consist_of.go b/agent/vendor/github.com/onsi/gomega/matchers/consist_of.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/consist_of.go rename to agent/vendor/github.com/onsi/gomega/matchers/consist_of.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/contain_element_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/contain_element_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/contain_element_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/contain_element_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/contain_elements_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/contain_elements_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/contain_elements_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/contain_elements_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/contain_substring_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/contain_substring_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/contain_substring_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/contain_substring_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/equal_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/equal_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/equal_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/equal_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/have_cap_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/have_cap_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/have_cap_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/have_cap_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/have_each_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/have_each_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/have_each_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/have_each_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/have_exact_elements.go b/agent/vendor/github.com/onsi/gomega/matchers/have_exact_elements.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/have_exact_elements.go rename to agent/vendor/github.com/onsi/gomega/matchers/have_exact_elements.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/have_existing_field_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/have_existing_field_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/have_existing_field_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/have_existing_field_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/have_field.go b/agent/vendor/github.com/onsi/gomega/matchers/have_field.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/have_field.go rename to agent/vendor/github.com/onsi/gomega/matchers/have_field.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/have_http_body_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/have_http_body_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/have_http_body_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/have_http_body_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/have_http_header_with_value_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/have_http_header_with_value_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/have_http_header_with_value_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/have_http_header_with_value_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/have_http_status_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/have_http_status_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/have_http_status_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/have_http_status_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/have_key_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/have_key_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/have_key_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/have_key_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/have_key_with_value_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/have_key_with_value_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/have_key_with_value_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/have_key_with_value_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/have_len_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/have_len_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/have_len_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/have_len_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/have_occurred_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/have_occurred_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/have_occurred_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/have_occurred_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/have_prefix_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/have_prefix_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/have_prefix_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/have_prefix_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/have_suffix_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/have_suffix_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/have_suffix_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/have_suffix_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/have_value.go b/agent/vendor/github.com/onsi/gomega/matchers/have_value.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/have_value.go rename to agent/vendor/github.com/onsi/gomega/matchers/have_value.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/internal/miter/type_support_iter.go b/agent/vendor/github.com/onsi/gomega/matchers/internal/miter/type_support_iter.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/internal/miter/type_support_iter.go rename to agent/vendor/github.com/onsi/gomega/matchers/internal/miter/type_support_iter.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/internal/miter/type_support_noiter.go b/agent/vendor/github.com/onsi/gomega/matchers/internal/miter/type_support_noiter.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/internal/miter/type_support_noiter.go rename to agent/vendor/github.com/onsi/gomega/matchers/internal/miter/type_support_noiter.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/match_error_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/match_error_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/match_error_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/match_error_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/match_error_strictly_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/match_error_strictly_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/match_error_strictly_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/match_error_strictly_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/match_json_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/match_json_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/match_json_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/match_json_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/match_regexp_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/match_regexp_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/match_regexp_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/match_regexp_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/match_xml_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/match_xml_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/match_xml_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/match_xml_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/match_yaml_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/match_yaml_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/match_yaml_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/match_yaml_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/not.go b/agent/vendor/github.com/onsi/gomega/matchers/not.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/not.go rename to agent/vendor/github.com/onsi/gomega/matchers/not.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/or.go b/agent/vendor/github.com/onsi/gomega/matchers/or.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/or.go rename to agent/vendor/github.com/onsi/gomega/matchers/or.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/panic_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/panic_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/panic_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/panic_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/receive_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/receive_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/receive_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/receive_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/satisfy_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/satisfy_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/satisfy_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/satisfy_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/semi_structured_data_support.go b/agent/vendor/github.com/onsi/gomega/matchers/semi_structured_data_support.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/semi_structured_data_support.go rename to agent/vendor/github.com/onsi/gomega/matchers/semi_structured_data_support.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/succeed_matcher.go b/agent/vendor/github.com/onsi/gomega/matchers/succeed_matcher.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/succeed_matcher.go rename to agent/vendor/github.com/onsi/gomega/matchers/succeed_matcher.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/support/goraph/bipartitegraph/bipartitegraph.go b/agent/vendor/github.com/onsi/gomega/matchers/support/goraph/bipartitegraph/bipartitegraph.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/support/goraph/bipartitegraph/bipartitegraph.go rename to agent/vendor/github.com/onsi/gomega/matchers/support/goraph/bipartitegraph/bipartitegraph.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/support/goraph/bipartitegraph/bipartitegraphmatching.go b/agent/vendor/github.com/onsi/gomega/matchers/support/goraph/bipartitegraph/bipartitegraphmatching.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/support/goraph/bipartitegraph/bipartitegraphmatching.go rename to agent/vendor/github.com/onsi/gomega/matchers/support/goraph/bipartitegraph/bipartitegraphmatching.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/support/goraph/edge/edge.go b/agent/vendor/github.com/onsi/gomega/matchers/support/goraph/edge/edge.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/support/goraph/edge/edge.go rename to agent/vendor/github.com/onsi/gomega/matchers/support/goraph/edge/edge.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/support/goraph/node/node.go b/agent/vendor/github.com/onsi/gomega/matchers/support/goraph/node/node.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/support/goraph/node/node.go rename to agent/vendor/github.com/onsi/gomega/matchers/support/goraph/node/node.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/support/goraph/util/util.go b/agent/vendor/github.com/onsi/gomega/matchers/support/goraph/util/util.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/support/goraph/util/util.go rename to agent/vendor/github.com/onsi/gomega/matchers/support/goraph/util/util.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/type_support.go b/agent/vendor/github.com/onsi/gomega/matchers/type_support.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/type_support.go rename to agent/vendor/github.com/onsi/gomega/matchers/type_support.go diff --git a/agent/go/vendor/github.com/onsi/gomega/matchers/with_transform.go b/agent/vendor/github.com/onsi/gomega/matchers/with_transform.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/matchers/with_transform.go rename to agent/vendor/github.com/onsi/gomega/matchers/with_transform.go diff --git a/agent/go/vendor/github.com/onsi/gomega/types/types.go b/agent/vendor/github.com/onsi/gomega/types/types.go similarity index 100% rename from agent/go/vendor/github.com/onsi/gomega/types/types.go rename to agent/vendor/github.com/onsi/gomega/types/types.go diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/.gitmodules b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/.gitmodules similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/.gitmodules rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/.gitmodules diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/.golangci.yml b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/.golangci.yml similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/.golangci.yml rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/.golangci.yml diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/.pre-commit-hooks.yaml b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/.pre-commit-hooks.yaml similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/.pre-commit-hooks.yaml rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/.pre-commit-hooks.yaml diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/LICENSE b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/LICENSE similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/LICENSE rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/LICENSE diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/README.md b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/README.md similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/README.md rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/README.md diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/compiler.go b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/compiler.go similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/compiler.go rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/compiler.go diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/content.go b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/content.go similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/content.go rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/content.go diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/draft.go b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/draft.go similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/draft.go rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/draft.go diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/format.go b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/format.go similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/format.go rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/format.go diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/go.work b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/go.work similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/go.work rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/go.work diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/go.work.sum b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/go.work.sum similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/go.work.sum rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/go.work.sum diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/kind/kind.go b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/kind/kind.go similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/kind/kind.go rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/kind/kind.go diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/loader.go b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/loader.go similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/loader.go rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/loader.go diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft-04/schema b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft-04/schema similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft-04/schema rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft-04/schema diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft-06/schema b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft-06/schema similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft-06/schema rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft-06/schema diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft-07/schema b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft-07/schema similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft-07/schema rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft-07/schema diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2019-09/meta/applicator b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2019-09/meta/applicator similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2019-09/meta/applicator rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2019-09/meta/applicator diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2019-09/meta/content b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2019-09/meta/content similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2019-09/meta/content rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2019-09/meta/content diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2019-09/meta/core b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2019-09/meta/core similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2019-09/meta/core rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2019-09/meta/core diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2019-09/meta/format b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2019-09/meta/format similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2019-09/meta/format rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2019-09/meta/format diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2019-09/meta/meta-data b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2019-09/meta/meta-data similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2019-09/meta/meta-data rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2019-09/meta/meta-data diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2019-09/meta/validation b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2019-09/meta/validation similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2019-09/meta/validation rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2019-09/meta/validation diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2019-09/schema b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2019-09/schema similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2019-09/schema rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2019-09/schema diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/meta/applicator b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/meta/applicator similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/meta/applicator rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/meta/applicator diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/meta/content b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/meta/content similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/meta/content rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/meta/content diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/meta/core b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/meta/core similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/meta/core rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/meta/core diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/meta/format-annotation b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/meta/format-annotation similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/meta/format-annotation rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/meta/format-annotation diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/meta/format-assertion b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/meta/format-assertion similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/meta/format-assertion rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/meta/format-assertion diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/meta/meta-data b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/meta/meta-data similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/meta/meta-data rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/meta/meta-data diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/meta/unevaluated b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/meta/unevaluated similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/meta/unevaluated rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/meta/unevaluated diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/meta/validation b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/meta/validation similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/meta/validation rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/meta/validation diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/schema b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/schema similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/schema rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/metaschemas/draft/2020-12/schema diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/objcompiler.go b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/objcompiler.go similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/objcompiler.go rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/objcompiler.go diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/output.go b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/output.go similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/output.go rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/output.go diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/position.go b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/position.go similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/position.go rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/position.go diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/root.go b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/root.go similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/root.go rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/root.go diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/roots.go b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/roots.go similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/roots.go rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/roots.go diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/schema.go b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/schema.go similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/schema.go rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/schema.go diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/util.go b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/util.go similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/util.go rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/util.go diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/validator.go b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/validator.go similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/validator.go rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/validator.go diff --git a/agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/vocab.go b/agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/vocab.go similarity index 100% rename from agent/go/vendor/github.com/santhosh-tekuri/jsonschema/v6/vocab.go rename to agent/vendor/github.com/santhosh-tekuri/jsonschema/v6/vocab.go diff --git a/agent/go/vendor/github.com/stretchr/objx/.codeclimate.yml b/agent/vendor/github.com/stretchr/objx/.codeclimate.yml similarity index 100% rename from agent/go/vendor/github.com/stretchr/objx/.codeclimate.yml rename to agent/vendor/github.com/stretchr/objx/.codeclimate.yml diff --git a/agent/go/vendor/github.com/stretchr/objx/.gitignore b/agent/vendor/github.com/stretchr/objx/.gitignore similarity index 100% rename from agent/go/vendor/github.com/stretchr/objx/.gitignore rename to agent/vendor/github.com/stretchr/objx/.gitignore diff --git a/agent/go/vendor/github.com/stretchr/objx/LICENSE b/agent/vendor/github.com/stretchr/objx/LICENSE similarity index 100% rename from agent/go/vendor/github.com/stretchr/objx/LICENSE rename to agent/vendor/github.com/stretchr/objx/LICENSE diff --git a/agent/go/vendor/github.com/stretchr/objx/README.md b/agent/vendor/github.com/stretchr/objx/README.md similarity index 100% rename from agent/go/vendor/github.com/stretchr/objx/README.md rename to agent/vendor/github.com/stretchr/objx/README.md diff --git a/agent/go/vendor/github.com/stretchr/objx/Taskfile.yml b/agent/vendor/github.com/stretchr/objx/Taskfile.yml similarity index 100% rename from agent/go/vendor/github.com/stretchr/objx/Taskfile.yml rename to agent/vendor/github.com/stretchr/objx/Taskfile.yml diff --git a/agent/go/vendor/github.com/stretchr/objx/accessors.go b/agent/vendor/github.com/stretchr/objx/accessors.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/objx/accessors.go rename to agent/vendor/github.com/stretchr/objx/accessors.go diff --git a/agent/go/vendor/github.com/stretchr/objx/conversions.go b/agent/vendor/github.com/stretchr/objx/conversions.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/objx/conversions.go rename to agent/vendor/github.com/stretchr/objx/conversions.go diff --git a/agent/go/vendor/github.com/stretchr/objx/doc.go b/agent/vendor/github.com/stretchr/objx/doc.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/objx/doc.go rename to agent/vendor/github.com/stretchr/objx/doc.go diff --git a/agent/go/vendor/github.com/stretchr/objx/map.go b/agent/vendor/github.com/stretchr/objx/map.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/objx/map.go rename to agent/vendor/github.com/stretchr/objx/map.go diff --git a/agent/go/vendor/github.com/stretchr/objx/mutations.go b/agent/vendor/github.com/stretchr/objx/mutations.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/objx/mutations.go rename to agent/vendor/github.com/stretchr/objx/mutations.go diff --git a/agent/go/vendor/github.com/stretchr/objx/security.go b/agent/vendor/github.com/stretchr/objx/security.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/objx/security.go rename to agent/vendor/github.com/stretchr/objx/security.go diff --git a/agent/go/vendor/github.com/stretchr/objx/tests.go b/agent/vendor/github.com/stretchr/objx/tests.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/objx/tests.go rename to agent/vendor/github.com/stretchr/objx/tests.go diff --git a/agent/go/vendor/github.com/stretchr/objx/type_specific.go b/agent/vendor/github.com/stretchr/objx/type_specific.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/objx/type_specific.go rename to agent/vendor/github.com/stretchr/objx/type_specific.go diff --git a/agent/go/vendor/github.com/stretchr/objx/type_specific_codegen.go b/agent/vendor/github.com/stretchr/objx/type_specific_codegen.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/objx/type_specific_codegen.go rename to agent/vendor/github.com/stretchr/objx/type_specific_codegen.go diff --git a/agent/go/vendor/github.com/stretchr/objx/value.go b/agent/vendor/github.com/stretchr/objx/value.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/objx/value.go rename to agent/vendor/github.com/stretchr/objx/value.go diff --git a/agent/go/vendor/github.com/stretchr/testify/LICENSE b/agent/vendor/github.com/stretchr/testify/LICENSE similarity index 100% rename from agent/go/vendor/github.com/stretchr/testify/LICENSE rename to agent/vendor/github.com/stretchr/testify/LICENSE diff --git a/agent/go/vendor/github.com/stretchr/testify/assert/assertion_compare.go b/agent/vendor/github.com/stretchr/testify/assert/assertion_compare.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/testify/assert/assertion_compare.go rename to agent/vendor/github.com/stretchr/testify/assert/assertion_compare.go diff --git a/agent/go/vendor/github.com/stretchr/testify/assert/assertion_format.go b/agent/vendor/github.com/stretchr/testify/assert/assertion_format.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/testify/assert/assertion_format.go rename to agent/vendor/github.com/stretchr/testify/assert/assertion_format.go diff --git a/agent/go/vendor/github.com/stretchr/testify/assert/assertion_format.go.tmpl b/agent/vendor/github.com/stretchr/testify/assert/assertion_format.go.tmpl similarity index 100% rename from agent/go/vendor/github.com/stretchr/testify/assert/assertion_format.go.tmpl rename to agent/vendor/github.com/stretchr/testify/assert/assertion_format.go.tmpl diff --git a/agent/go/vendor/github.com/stretchr/testify/assert/assertion_forward.go b/agent/vendor/github.com/stretchr/testify/assert/assertion_forward.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/testify/assert/assertion_forward.go rename to agent/vendor/github.com/stretchr/testify/assert/assertion_forward.go diff --git a/agent/go/vendor/github.com/stretchr/testify/assert/assertion_forward.go.tmpl b/agent/vendor/github.com/stretchr/testify/assert/assertion_forward.go.tmpl similarity index 100% rename from agent/go/vendor/github.com/stretchr/testify/assert/assertion_forward.go.tmpl rename to agent/vendor/github.com/stretchr/testify/assert/assertion_forward.go.tmpl diff --git a/agent/go/vendor/github.com/stretchr/testify/assert/assertion_order.go b/agent/vendor/github.com/stretchr/testify/assert/assertion_order.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/testify/assert/assertion_order.go rename to agent/vendor/github.com/stretchr/testify/assert/assertion_order.go diff --git a/agent/go/vendor/github.com/stretchr/testify/assert/assertions.go b/agent/vendor/github.com/stretchr/testify/assert/assertions.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/testify/assert/assertions.go rename to agent/vendor/github.com/stretchr/testify/assert/assertions.go diff --git a/agent/go/vendor/github.com/stretchr/testify/assert/doc.go b/agent/vendor/github.com/stretchr/testify/assert/doc.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/testify/assert/doc.go rename to agent/vendor/github.com/stretchr/testify/assert/doc.go diff --git a/agent/go/vendor/github.com/stretchr/testify/assert/errors.go b/agent/vendor/github.com/stretchr/testify/assert/errors.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/testify/assert/errors.go rename to agent/vendor/github.com/stretchr/testify/assert/errors.go diff --git a/agent/go/vendor/github.com/stretchr/testify/assert/forward_assertions.go b/agent/vendor/github.com/stretchr/testify/assert/forward_assertions.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/testify/assert/forward_assertions.go rename to agent/vendor/github.com/stretchr/testify/assert/forward_assertions.go diff --git a/agent/go/vendor/github.com/stretchr/testify/assert/http_assertions.go b/agent/vendor/github.com/stretchr/testify/assert/http_assertions.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/testify/assert/http_assertions.go rename to agent/vendor/github.com/stretchr/testify/assert/http_assertions.go diff --git a/agent/go/vendor/github.com/stretchr/testify/assert/yaml/yaml_custom.go b/agent/vendor/github.com/stretchr/testify/assert/yaml/yaml_custom.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/testify/assert/yaml/yaml_custom.go rename to agent/vendor/github.com/stretchr/testify/assert/yaml/yaml_custom.go diff --git a/agent/go/vendor/github.com/stretchr/testify/assert/yaml/yaml_default.go b/agent/vendor/github.com/stretchr/testify/assert/yaml/yaml_default.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/testify/assert/yaml/yaml_default.go rename to agent/vendor/github.com/stretchr/testify/assert/yaml/yaml_default.go diff --git a/agent/go/vendor/github.com/stretchr/testify/assert/yaml/yaml_fail.go b/agent/vendor/github.com/stretchr/testify/assert/yaml/yaml_fail.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/testify/assert/yaml/yaml_fail.go rename to agent/vendor/github.com/stretchr/testify/assert/yaml/yaml_fail.go diff --git a/agent/go/vendor/github.com/stretchr/testify/internal/difflib/LICENSE b/agent/vendor/github.com/stretchr/testify/internal/difflib/LICENSE similarity index 100% rename from agent/go/vendor/github.com/stretchr/testify/internal/difflib/LICENSE rename to agent/vendor/github.com/stretchr/testify/internal/difflib/LICENSE diff --git a/agent/go/vendor/github.com/stretchr/testify/internal/difflib/difflib.go b/agent/vendor/github.com/stretchr/testify/internal/difflib/difflib.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/testify/internal/difflib/difflib.go rename to agent/vendor/github.com/stretchr/testify/internal/difflib/difflib.go diff --git a/agent/go/vendor/github.com/stretchr/testify/internal/spew/LICENSE b/agent/vendor/github.com/stretchr/testify/internal/spew/LICENSE similarity index 100% rename from agent/go/vendor/github.com/stretchr/testify/internal/spew/LICENSE rename to agent/vendor/github.com/stretchr/testify/internal/spew/LICENSE diff --git a/agent/go/vendor/github.com/stretchr/testify/internal/spew/README.md b/agent/vendor/github.com/stretchr/testify/internal/spew/README.md similarity index 100% rename from agent/go/vendor/github.com/stretchr/testify/internal/spew/README.md rename to agent/vendor/github.com/stretchr/testify/internal/spew/README.md diff --git a/agent/go/vendor/github.com/stretchr/testify/internal/spew/bypass.go b/agent/vendor/github.com/stretchr/testify/internal/spew/bypass.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/testify/internal/spew/bypass.go rename to agent/vendor/github.com/stretchr/testify/internal/spew/bypass.go diff --git a/agent/go/vendor/github.com/stretchr/testify/internal/spew/bypasssafe.go b/agent/vendor/github.com/stretchr/testify/internal/spew/bypasssafe.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/testify/internal/spew/bypasssafe.go rename to agent/vendor/github.com/stretchr/testify/internal/spew/bypasssafe.go diff --git a/agent/go/vendor/github.com/stretchr/testify/internal/spew/common.go b/agent/vendor/github.com/stretchr/testify/internal/spew/common.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/testify/internal/spew/common.go rename to agent/vendor/github.com/stretchr/testify/internal/spew/common.go diff --git a/agent/go/vendor/github.com/stretchr/testify/internal/spew/config.go b/agent/vendor/github.com/stretchr/testify/internal/spew/config.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/testify/internal/spew/config.go rename to agent/vendor/github.com/stretchr/testify/internal/spew/config.go diff --git a/agent/go/vendor/github.com/stretchr/testify/internal/spew/doc.go b/agent/vendor/github.com/stretchr/testify/internal/spew/doc.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/testify/internal/spew/doc.go rename to agent/vendor/github.com/stretchr/testify/internal/spew/doc.go diff --git a/agent/go/vendor/github.com/stretchr/testify/internal/spew/dump.go b/agent/vendor/github.com/stretchr/testify/internal/spew/dump.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/testify/internal/spew/dump.go rename to agent/vendor/github.com/stretchr/testify/internal/spew/dump.go diff --git a/agent/go/vendor/github.com/stretchr/testify/internal/spew/format.go b/agent/vendor/github.com/stretchr/testify/internal/spew/format.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/testify/internal/spew/format.go rename to agent/vendor/github.com/stretchr/testify/internal/spew/format.go diff --git a/agent/go/vendor/github.com/stretchr/testify/internal/spew/spew.go b/agent/vendor/github.com/stretchr/testify/internal/spew/spew.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/testify/internal/spew/spew.go rename to agent/vendor/github.com/stretchr/testify/internal/spew/spew.go diff --git a/agent/go/vendor/github.com/stretchr/testify/mock/doc.go b/agent/vendor/github.com/stretchr/testify/mock/doc.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/testify/mock/doc.go rename to agent/vendor/github.com/stretchr/testify/mock/doc.go diff --git a/agent/go/vendor/github.com/stretchr/testify/mock/mock.go b/agent/vendor/github.com/stretchr/testify/mock/mock.go similarity index 100% rename from agent/go/vendor/github.com/stretchr/testify/mock/mock.go rename to agent/vendor/github.com/stretchr/testify/mock/mock.go diff --git a/agent/go/vendor/go.yaml.in/yaml/v3/LICENSE b/agent/vendor/go.yaml.in/yaml/v3/LICENSE similarity index 100% rename from agent/go/vendor/go.yaml.in/yaml/v3/LICENSE rename to agent/vendor/go.yaml.in/yaml/v3/LICENSE diff --git a/agent/go/vendor/go.yaml.in/yaml/v3/NOTICE b/agent/vendor/go.yaml.in/yaml/v3/NOTICE similarity index 100% rename from agent/go/vendor/go.yaml.in/yaml/v3/NOTICE rename to agent/vendor/go.yaml.in/yaml/v3/NOTICE diff --git a/agent/go/vendor/go.yaml.in/yaml/v3/README.md b/agent/vendor/go.yaml.in/yaml/v3/README.md similarity index 100% rename from agent/go/vendor/go.yaml.in/yaml/v3/README.md rename to agent/vendor/go.yaml.in/yaml/v3/README.md diff --git a/agent/go/vendor/go.yaml.in/yaml/v3/apic.go b/agent/vendor/go.yaml.in/yaml/v3/apic.go similarity index 100% rename from agent/go/vendor/go.yaml.in/yaml/v3/apic.go rename to agent/vendor/go.yaml.in/yaml/v3/apic.go diff --git a/agent/go/vendor/go.yaml.in/yaml/v3/decode.go b/agent/vendor/go.yaml.in/yaml/v3/decode.go similarity index 100% rename from agent/go/vendor/go.yaml.in/yaml/v3/decode.go rename to agent/vendor/go.yaml.in/yaml/v3/decode.go diff --git a/agent/go/vendor/go.yaml.in/yaml/v3/emitterc.go b/agent/vendor/go.yaml.in/yaml/v3/emitterc.go similarity index 100% rename from agent/go/vendor/go.yaml.in/yaml/v3/emitterc.go rename to agent/vendor/go.yaml.in/yaml/v3/emitterc.go diff --git a/agent/go/vendor/go.yaml.in/yaml/v3/encode.go b/agent/vendor/go.yaml.in/yaml/v3/encode.go similarity index 100% rename from agent/go/vendor/go.yaml.in/yaml/v3/encode.go rename to agent/vendor/go.yaml.in/yaml/v3/encode.go diff --git a/agent/go/vendor/go.yaml.in/yaml/v3/parserc.go b/agent/vendor/go.yaml.in/yaml/v3/parserc.go similarity index 100% rename from agent/go/vendor/go.yaml.in/yaml/v3/parserc.go rename to agent/vendor/go.yaml.in/yaml/v3/parserc.go diff --git a/agent/go/vendor/go.yaml.in/yaml/v3/readerc.go b/agent/vendor/go.yaml.in/yaml/v3/readerc.go similarity index 100% rename from agent/go/vendor/go.yaml.in/yaml/v3/readerc.go rename to agent/vendor/go.yaml.in/yaml/v3/readerc.go diff --git a/agent/go/vendor/go.yaml.in/yaml/v3/resolve.go b/agent/vendor/go.yaml.in/yaml/v3/resolve.go similarity index 100% rename from agent/go/vendor/go.yaml.in/yaml/v3/resolve.go rename to agent/vendor/go.yaml.in/yaml/v3/resolve.go diff --git a/agent/go/vendor/go.yaml.in/yaml/v3/scannerc.go b/agent/vendor/go.yaml.in/yaml/v3/scannerc.go similarity index 100% rename from agent/go/vendor/go.yaml.in/yaml/v3/scannerc.go rename to agent/vendor/go.yaml.in/yaml/v3/scannerc.go diff --git a/agent/go/vendor/go.yaml.in/yaml/v3/sorter.go b/agent/vendor/go.yaml.in/yaml/v3/sorter.go similarity index 100% rename from agent/go/vendor/go.yaml.in/yaml/v3/sorter.go rename to agent/vendor/go.yaml.in/yaml/v3/sorter.go diff --git a/agent/go/vendor/go.yaml.in/yaml/v3/writerc.go b/agent/vendor/go.yaml.in/yaml/v3/writerc.go similarity index 100% rename from agent/go/vendor/go.yaml.in/yaml/v3/writerc.go rename to agent/vendor/go.yaml.in/yaml/v3/writerc.go diff --git a/agent/go/vendor/go.yaml.in/yaml/v3/yaml.go b/agent/vendor/go.yaml.in/yaml/v3/yaml.go similarity index 100% rename from agent/go/vendor/go.yaml.in/yaml/v3/yaml.go rename to agent/vendor/go.yaml.in/yaml/v3/yaml.go diff --git a/agent/go/vendor/go.yaml.in/yaml/v3/yamlh.go b/agent/vendor/go.yaml.in/yaml/v3/yamlh.go similarity index 100% rename from agent/go/vendor/go.yaml.in/yaml/v3/yamlh.go rename to agent/vendor/go.yaml.in/yaml/v3/yamlh.go diff --git a/agent/go/vendor/go.yaml.in/yaml/v3/yamlprivateh.go b/agent/vendor/go.yaml.in/yaml/v3/yamlprivateh.go similarity index 100% rename from agent/go/vendor/go.yaml.in/yaml/v3/yamlprivateh.go rename to agent/vendor/go.yaml.in/yaml/v3/yamlprivateh.go diff --git a/agent/go/vendor/golang.org/x/mod/LICENSE b/agent/vendor/golang.org/x/mod/LICENSE similarity index 100% rename from agent/go/vendor/golang.org/x/mod/LICENSE rename to agent/vendor/golang.org/x/mod/LICENSE diff --git a/agent/go/vendor/golang.org/x/mod/PATENTS b/agent/vendor/golang.org/x/mod/PATENTS similarity index 100% rename from agent/go/vendor/golang.org/x/mod/PATENTS rename to agent/vendor/golang.org/x/mod/PATENTS diff --git a/agent/go/vendor/golang.org/x/mod/semver/semver.go b/agent/vendor/golang.org/x/mod/semver/semver.go similarity index 100% rename from agent/go/vendor/golang.org/x/mod/semver/semver.go rename to agent/vendor/golang.org/x/mod/semver/semver.go diff --git a/agent/go/vendor/golang.org/x/net/LICENSE b/agent/vendor/golang.org/x/net/LICENSE similarity index 100% rename from agent/go/vendor/golang.org/x/net/LICENSE rename to agent/vendor/golang.org/x/net/LICENSE diff --git a/agent/go/vendor/golang.org/x/net/PATENTS b/agent/vendor/golang.org/x/net/PATENTS similarity index 100% rename from agent/go/vendor/golang.org/x/net/PATENTS rename to agent/vendor/golang.org/x/net/PATENTS diff --git a/agent/go/vendor/golang.org/x/net/html/atom/atom.go b/agent/vendor/golang.org/x/net/html/atom/atom.go similarity index 100% rename from agent/go/vendor/golang.org/x/net/html/atom/atom.go rename to agent/vendor/golang.org/x/net/html/atom/atom.go diff --git a/agent/go/vendor/golang.org/x/net/html/atom/table.go b/agent/vendor/golang.org/x/net/html/atom/table.go similarity index 100% rename from agent/go/vendor/golang.org/x/net/html/atom/table.go rename to agent/vendor/golang.org/x/net/html/atom/table.go diff --git a/agent/go/vendor/golang.org/x/net/html/charset/charset.go b/agent/vendor/golang.org/x/net/html/charset/charset.go similarity index 100% rename from agent/go/vendor/golang.org/x/net/html/charset/charset.go rename to agent/vendor/golang.org/x/net/html/charset/charset.go diff --git a/agent/go/vendor/golang.org/x/net/html/const.go b/agent/vendor/golang.org/x/net/html/const.go similarity index 100% rename from agent/go/vendor/golang.org/x/net/html/const.go rename to agent/vendor/golang.org/x/net/html/const.go diff --git a/agent/go/vendor/golang.org/x/net/html/doc.go b/agent/vendor/golang.org/x/net/html/doc.go similarity index 100% rename from agent/go/vendor/golang.org/x/net/html/doc.go rename to agent/vendor/golang.org/x/net/html/doc.go diff --git a/agent/go/vendor/golang.org/x/net/html/doctype.go b/agent/vendor/golang.org/x/net/html/doctype.go similarity index 100% rename from agent/go/vendor/golang.org/x/net/html/doctype.go rename to agent/vendor/golang.org/x/net/html/doctype.go diff --git a/agent/go/vendor/golang.org/x/net/html/entity.go b/agent/vendor/golang.org/x/net/html/entity.go similarity index 100% rename from agent/go/vendor/golang.org/x/net/html/entity.go rename to agent/vendor/golang.org/x/net/html/entity.go diff --git a/agent/go/vendor/golang.org/x/net/html/escape.go b/agent/vendor/golang.org/x/net/html/escape.go similarity index 100% rename from agent/go/vendor/golang.org/x/net/html/escape.go rename to agent/vendor/golang.org/x/net/html/escape.go diff --git a/agent/go/vendor/golang.org/x/net/html/foreign.go b/agent/vendor/golang.org/x/net/html/foreign.go similarity index 100% rename from agent/go/vendor/golang.org/x/net/html/foreign.go rename to agent/vendor/golang.org/x/net/html/foreign.go diff --git a/agent/go/vendor/golang.org/x/net/html/iter.go b/agent/vendor/golang.org/x/net/html/iter.go similarity index 100% rename from agent/go/vendor/golang.org/x/net/html/iter.go rename to agent/vendor/golang.org/x/net/html/iter.go diff --git a/agent/go/vendor/golang.org/x/net/html/node.go b/agent/vendor/golang.org/x/net/html/node.go similarity index 100% rename from agent/go/vendor/golang.org/x/net/html/node.go rename to agent/vendor/golang.org/x/net/html/node.go diff --git a/agent/go/vendor/golang.org/x/net/html/nodetype_string.go b/agent/vendor/golang.org/x/net/html/nodetype_string.go similarity index 100% rename from agent/go/vendor/golang.org/x/net/html/nodetype_string.go rename to agent/vendor/golang.org/x/net/html/nodetype_string.go diff --git a/agent/go/vendor/golang.org/x/net/html/parse.go b/agent/vendor/golang.org/x/net/html/parse.go similarity index 100% rename from agent/go/vendor/golang.org/x/net/html/parse.go rename to agent/vendor/golang.org/x/net/html/parse.go diff --git a/agent/go/vendor/golang.org/x/net/html/render.go b/agent/vendor/golang.org/x/net/html/render.go similarity index 100% rename from agent/go/vendor/golang.org/x/net/html/render.go rename to agent/vendor/golang.org/x/net/html/render.go diff --git a/agent/go/vendor/golang.org/x/net/html/token.go b/agent/vendor/golang.org/x/net/html/token.go similarity index 100% rename from agent/go/vendor/golang.org/x/net/html/token.go rename to agent/vendor/golang.org/x/net/html/token.go diff --git a/agent/go/vendor/golang.org/x/sync/LICENSE b/agent/vendor/golang.org/x/sync/LICENSE similarity index 100% rename from agent/go/vendor/golang.org/x/sync/LICENSE rename to agent/vendor/golang.org/x/sync/LICENSE diff --git a/agent/go/vendor/golang.org/x/sync/PATENTS b/agent/vendor/golang.org/x/sync/PATENTS similarity index 100% rename from agent/go/vendor/golang.org/x/sync/PATENTS rename to agent/vendor/golang.org/x/sync/PATENTS diff --git a/agent/go/vendor/golang.org/x/sync/errgroup/errgroup.go b/agent/vendor/golang.org/x/sync/errgroup/errgroup.go similarity index 100% rename from agent/go/vendor/golang.org/x/sync/errgroup/errgroup.go rename to agent/vendor/golang.org/x/sync/errgroup/errgroup.go diff --git a/agent/go/vendor/golang.org/x/sys/LICENSE b/agent/vendor/golang.org/x/sys/LICENSE similarity index 100% rename from agent/go/vendor/golang.org/x/sys/LICENSE rename to agent/vendor/golang.org/x/sys/LICENSE diff --git a/agent/go/vendor/golang.org/x/sys/PATENTS b/agent/vendor/golang.org/x/sys/PATENTS similarity index 100% rename from agent/go/vendor/golang.org/x/sys/PATENTS rename to agent/vendor/golang.org/x/sys/PATENTS diff --git a/agent/go/vendor/golang.org/x/sys/unix/.gitignore b/agent/vendor/golang.org/x/sys/unix/.gitignore similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/.gitignore rename to agent/vendor/golang.org/x/sys/unix/.gitignore diff --git a/agent/go/vendor/golang.org/x/sys/unix/README.md b/agent/vendor/golang.org/x/sys/unix/README.md similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/README.md rename to agent/vendor/golang.org/x/sys/unix/README.md diff --git a/agent/go/vendor/golang.org/x/sys/unix/affinity_linux.go b/agent/vendor/golang.org/x/sys/unix/affinity_linux.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/affinity_linux.go rename to agent/vendor/golang.org/x/sys/unix/affinity_linux.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/aliases.go b/agent/vendor/golang.org/x/sys/unix/aliases.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/aliases.go rename to agent/vendor/golang.org/x/sys/unix/aliases.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s b/agent/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s rename to agent/vendor/golang.org/x/sys/unix/asm_aix_ppc64.s diff --git a/agent/go/vendor/golang.org/x/sys/unix/asm_bsd_386.s b/agent/vendor/golang.org/x/sys/unix/asm_bsd_386.s similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/asm_bsd_386.s rename to agent/vendor/golang.org/x/sys/unix/asm_bsd_386.s diff --git a/agent/go/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s b/agent/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s rename to agent/vendor/golang.org/x/sys/unix/asm_bsd_amd64.s diff --git a/agent/go/vendor/golang.org/x/sys/unix/asm_bsd_arm.s b/agent/vendor/golang.org/x/sys/unix/asm_bsd_arm.s similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/asm_bsd_arm.s rename to agent/vendor/golang.org/x/sys/unix/asm_bsd_arm.s diff --git a/agent/go/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s b/agent/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s rename to agent/vendor/golang.org/x/sys/unix/asm_bsd_arm64.s diff --git a/agent/go/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s b/agent/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s rename to agent/vendor/golang.org/x/sys/unix/asm_bsd_ppc64.s diff --git a/agent/go/vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s b/agent/vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s rename to agent/vendor/golang.org/x/sys/unix/asm_bsd_riscv64.s diff --git a/agent/go/vendor/golang.org/x/sys/unix/asm_linux_386.s b/agent/vendor/golang.org/x/sys/unix/asm_linux_386.s similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/asm_linux_386.s rename to agent/vendor/golang.org/x/sys/unix/asm_linux_386.s diff --git a/agent/go/vendor/golang.org/x/sys/unix/asm_linux_amd64.s b/agent/vendor/golang.org/x/sys/unix/asm_linux_amd64.s similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/asm_linux_amd64.s rename to agent/vendor/golang.org/x/sys/unix/asm_linux_amd64.s diff --git a/agent/go/vendor/golang.org/x/sys/unix/asm_linux_arm.s b/agent/vendor/golang.org/x/sys/unix/asm_linux_arm.s similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/asm_linux_arm.s rename to agent/vendor/golang.org/x/sys/unix/asm_linux_arm.s diff --git a/agent/go/vendor/golang.org/x/sys/unix/asm_linux_arm64.s b/agent/vendor/golang.org/x/sys/unix/asm_linux_arm64.s similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/asm_linux_arm64.s rename to agent/vendor/golang.org/x/sys/unix/asm_linux_arm64.s diff --git a/agent/go/vendor/golang.org/x/sys/unix/asm_linux_loong64.s b/agent/vendor/golang.org/x/sys/unix/asm_linux_loong64.s similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/asm_linux_loong64.s rename to agent/vendor/golang.org/x/sys/unix/asm_linux_loong64.s diff --git a/agent/go/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s b/agent/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s rename to agent/vendor/golang.org/x/sys/unix/asm_linux_mips64x.s diff --git a/agent/go/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s b/agent/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s rename to agent/vendor/golang.org/x/sys/unix/asm_linux_mipsx.s diff --git a/agent/go/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s b/agent/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s rename to agent/vendor/golang.org/x/sys/unix/asm_linux_ppc64x.s diff --git a/agent/go/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s b/agent/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s rename to agent/vendor/golang.org/x/sys/unix/asm_linux_riscv64.s diff --git a/agent/go/vendor/golang.org/x/sys/unix/asm_linux_s390x.s b/agent/vendor/golang.org/x/sys/unix/asm_linux_s390x.s similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/asm_linux_s390x.s rename to agent/vendor/golang.org/x/sys/unix/asm_linux_s390x.s diff --git a/agent/go/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s b/agent/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s rename to agent/vendor/golang.org/x/sys/unix/asm_openbsd_mips64.s diff --git a/agent/go/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s b/agent/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s rename to agent/vendor/golang.org/x/sys/unix/asm_solaris_amd64.s diff --git a/agent/go/vendor/golang.org/x/sys/unix/asm_zos_s390x.s b/agent/vendor/golang.org/x/sys/unix/asm_zos_s390x.s similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/asm_zos_s390x.s rename to agent/vendor/golang.org/x/sys/unix/asm_zos_s390x.s diff --git a/agent/go/vendor/golang.org/x/sys/unix/auxv.go b/agent/vendor/golang.org/x/sys/unix/auxv.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/auxv.go rename to agent/vendor/golang.org/x/sys/unix/auxv.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/auxv_unsupported.go b/agent/vendor/golang.org/x/sys/unix/auxv_unsupported.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/auxv_unsupported.go rename to agent/vendor/golang.org/x/sys/unix/auxv_unsupported.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/bluetooth_linux.go b/agent/vendor/golang.org/x/sys/unix/bluetooth_linux.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/bluetooth_linux.go rename to agent/vendor/golang.org/x/sys/unix/bluetooth_linux.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/bpxsvc_zos.go b/agent/vendor/golang.org/x/sys/unix/bpxsvc_zos.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/bpxsvc_zos.go rename to agent/vendor/golang.org/x/sys/unix/bpxsvc_zos.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/bpxsvc_zos.s b/agent/vendor/golang.org/x/sys/unix/bpxsvc_zos.s similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/bpxsvc_zos.s rename to agent/vendor/golang.org/x/sys/unix/bpxsvc_zos.s diff --git a/agent/go/vendor/golang.org/x/sys/unix/cap_freebsd.go b/agent/vendor/golang.org/x/sys/unix/cap_freebsd.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/cap_freebsd.go rename to agent/vendor/golang.org/x/sys/unix/cap_freebsd.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/constants.go b/agent/vendor/golang.org/x/sys/unix/constants.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/constants.go rename to agent/vendor/golang.org/x/sys/unix/constants.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/dev_aix_ppc.go b/agent/vendor/golang.org/x/sys/unix/dev_aix_ppc.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/dev_aix_ppc.go rename to agent/vendor/golang.org/x/sys/unix/dev_aix_ppc.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go b/agent/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go rename to agent/vendor/golang.org/x/sys/unix/dev_aix_ppc64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/dev_darwin.go b/agent/vendor/golang.org/x/sys/unix/dev_darwin.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/dev_darwin.go rename to agent/vendor/golang.org/x/sys/unix/dev_darwin.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/dev_dragonfly.go b/agent/vendor/golang.org/x/sys/unix/dev_dragonfly.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/dev_dragonfly.go rename to agent/vendor/golang.org/x/sys/unix/dev_dragonfly.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/dev_freebsd.go b/agent/vendor/golang.org/x/sys/unix/dev_freebsd.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/dev_freebsd.go rename to agent/vendor/golang.org/x/sys/unix/dev_freebsd.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/dev_linux.go b/agent/vendor/golang.org/x/sys/unix/dev_linux.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/dev_linux.go rename to agent/vendor/golang.org/x/sys/unix/dev_linux.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/dev_netbsd.go b/agent/vendor/golang.org/x/sys/unix/dev_netbsd.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/dev_netbsd.go rename to agent/vendor/golang.org/x/sys/unix/dev_netbsd.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/dev_openbsd.go b/agent/vendor/golang.org/x/sys/unix/dev_openbsd.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/dev_openbsd.go rename to agent/vendor/golang.org/x/sys/unix/dev_openbsd.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/dev_zos.go b/agent/vendor/golang.org/x/sys/unix/dev_zos.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/dev_zos.go rename to agent/vendor/golang.org/x/sys/unix/dev_zos.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/dirent.go b/agent/vendor/golang.org/x/sys/unix/dirent.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/dirent.go rename to agent/vendor/golang.org/x/sys/unix/dirent.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/endian_big.go b/agent/vendor/golang.org/x/sys/unix/endian_big.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/endian_big.go rename to agent/vendor/golang.org/x/sys/unix/endian_big.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/endian_little.go b/agent/vendor/golang.org/x/sys/unix/endian_little.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/endian_little.go rename to agent/vendor/golang.org/x/sys/unix/endian_little.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/env_unix.go b/agent/vendor/golang.org/x/sys/unix/env_unix.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/env_unix.go rename to agent/vendor/golang.org/x/sys/unix/env_unix.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/fcntl.go b/agent/vendor/golang.org/x/sys/unix/fcntl.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/fcntl.go rename to agent/vendor/golang.org/x/sys/unix/fcntl.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/fcntl_darwin.go b/agent/vendor/golang.org/x/sys/unix/fcntl_darwin.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/fcntl_darwin.go rename to agent/vendor/golang.org/x/sys/unix/fcntl_darwin.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go b/agent/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go rename to agent/vendor/golang.org/x/sys/unix/fcntl_linux_32bit.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/fdset.go b/agent/vendor/golang.org/x/sys/unix/fdset.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/fdset.go rename to agent/vendor/golang.org/x/sys/unix/fdset.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/gccgo.go b/agent/vendor/golang.org/x/sys/unix/gccgo.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/gccgo.go rename to agent/vendor/golang.org/x/sys/unix/gccgo.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/gccgo_c.c b/agent/vendor/golang.org/x/sys/unix/gccgo_c.c similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/gccgo_c.c rename to agent/vendor/golang.org/x/sys/unix/gccgo_c.c diff --git a/agent/go/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go b/agent/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go rename to agent/vendor/golang.org/x/sys/unix/gccgo_linux_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ifreq_linux.go b/agent/vendor/golang.org/x/sys/unix/ifreq_linux.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ifreq_linux.go rename to agent/vendor/golang.org/x/sys/unix/ifreq_linux.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ioctl_linux.go b/agent/vendor/golang.org/x/sys/unix/ioctl_linux.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ioctl_linux.go rename to agent/vendor/golang.org/x/sys/unix/ioctl_linux.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ioctl_signed.go b/agent/vendor/golang.org/x/sys/unix/ioctl_signed.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ioctl_signed.go rename to agent/vendor/golang.org/x/sys/unix/ioctl_signed.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ioctl_unsigned.go b/agent/vendor/golang.org/x/sys/unix/ioctl_unsigned.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ioctl_unsigned.go rename to agent/vendor/golang.org/x/sys/unix/ioctl_unsigned.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ioctl_zos.go b/agent/vendor/golang.org/x/sys/unix/ioctl_zos.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ioctl_zos.go rename to agent/vendor/golang.org/x/sys/unix/ioctl_zos.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/mkall.sh b/agent/vendor/golang.org/x/sys/unix/mkall.sh similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/mkall.sh rename to agent/vendor/golang.org/x/sys/unix/mkall.sh diff --git a/agent/go/vendor/golang.org/x/sys/unix/mkerrors.sh b/agent/vendor/golang.org/x/sys/unix/mkerrors.sh similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/mkerrors.sh rename to agent/vendor/golang.org/x/sys/unix/mkerrors.sh diff --git a/agent/go/vendor/golang.org/x/sys/unix/mmap_nomremap.go b/agent/vendor/golang.org/x/sys/unix/mmap_nomremap.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/mmap_nomremap.go rename to agent/vendor/golang.org/x/sys/unix/mmap_nomremap.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/mremap.go b/agent/vendor/golang.org/x/sys/unix/mremap.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/mremap.go rename to agent/vendor/golang.org/x/sys/unix/mremap.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/pagesize_unix.go b/agent/vendor/golang.org/x/sys/unix/pagesize_unix.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/pagesize_unix.go rename to agent/vendor/golang.org/x/sys/unix/pagesize_unix.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/pledge_openbsd.go b/agent/vendor/golang.org/x/sys/unix/pledge_openbsd.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/pledge_openbsd.go rename to agent/vendor/golang.org/x/sys/unix/pledge_openbsd.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ptrace_darwin.go b/agent/vendor/golang.org/x/sys/unix/ptrace_darwin.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ptrace_darwin.go rename to agent/vendor/golang.org/x/sys/unix/ptrace_darwin.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ptrace_ios.go b/agent/vendor/golang.org/x/sys/unix/ptrace_ios.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ptrace_ios.go rename to agent/vendor/golang.org/x/sys/unix/ptrace_ios.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/race.go b/agent/vendor/golang.org/x/sys/unix/race.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/race.go rename to agent/vendor/golang.org/x/sys/unix/race.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/race0.go b/agent/vendor/golang.org/x/sys/unix/race0.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/race0.go rename to agent/vendor/golang.org/x/sys/unix/race0.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/readdirent_getdents.go b/agent/vendor/golang.org/x/sys/unix/readdirent_getdents.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/readdirent_getdents.go rename to agent/vendor/golang.org/x/sys/unix/readdirent_getdents.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go b/agent/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go rename to agent/vendor/golang.org/x/sys/unix/readdirent_getdirentries.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/readv_unix.go b/agent/vendor/golang.org/x/sys/unix/readv_unix.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/readv_unix.go rename to agent/vendor/golang.org/x/sys/unix/readv_unix.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go b/agent/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go rename to agent/vendor/golang.org/x/sys/unix/sockcmsg_dragonfly.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/sockcmsg_linux.go b/agent/vendor/golang.org/x/sys/unix/sockcmsg_linux.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/sockcmsg_linux.go rename to agent/vendor/golang.org/x/sys/unix/sockcmsg_linux.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/sockcmsg_unix.go b/agent/vendor/golang.org/x/sys/unix/sockcmsg_unix.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/sockcmsg_unix.go rename to agent/vendor/golang.org/x/sys/unix/sockcmsg_unix.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go b/agent/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go rename to agent/vendor/golang.org/x/sys/unix/sockcmsg_unix_other.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/sockcmsg_zos.go b/agent/vendor/golang.org/x/sys/unix/sockcmsg_zos.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/sockcmsg_zos.go rename to agent/vendor/golang.org/x/sys/unix/sockcmsg_zos.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/symaddr_zos_s390x.s b/agent/vendor/golang.org/x/sys/unix/symaddr_zos_s390x.s similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/symaddr_zos_s390x.s rename to agent/vendor/golang.org/x/sys/unix/symaddr_zos_s390x.s diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall.go b/agent/vendor/golang.org/x/sys/unix/syscall.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall.go rename to agent/vendor/golang.org/x/sys/unix/syscall.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_aix.go b/agent/vendor/golang.org/x/sys/unix/syscall_aix.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_aix.go rename to agent/vendor/golang.org/x/sys/unix/syscall_aix.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go b/agent/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go rename to agent/vendor/golang.org/x/sys/unix/syscall_aix_ppc.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go b/agent/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go rename to agent/vendor/golang.org/x/sys/unix/syscall_aix_ppc64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_bsd.go b/agent/vendor/golang.org/x/sys/unix/syscall_bsd.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_bsd.go rename to agent/vendor/golang.org/x/sys/unix/syscall_bsd.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_darwin.go b/agent/vendor/golang.org/x/sys/unix/syscall_darwin.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_darwin.go rename to agent/vendor/golang.org/x/sys/unix/syscall_darwin.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go b/agent/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go rename to agent/vendor/golang.org/x/sys/unix/syscall_darwin_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go b/agent/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go rename to agent/vendor/golang.org/x/sys/unix/syscall_darwin_arm64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go b/agent/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go rename to agent/vendor/golang.org/x/sys/unix/syscall_darwin_libSystem.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_dragonfly.go b/agent/vendor/golang.org/x/sys/unix/syscall_dragonfly.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_dragonfly.go rename to agent/vendor/golang.org/x/sys/unix/syscall_dragonfly.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go b/agent/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go rename to agent/vendor/golang.org/x/sys/unix/syscall_dragonfly_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_freebsd.go b/agent/vendor/golang.org/x/sys/unix/syscall_freebsd.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_freebsd.go rename to agent/vendor/golang.org/x/sys/unix/syscall_freebsd.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go b/agent/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go rename to agent/vendor/golang.org/x/sys/unix/syscall_freebsd_386.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go b/agent/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go rename to agent/vendor/golang.org/x/sys/unix/syscall_freebsd_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go b/agent/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go rename to agent/vendor/golang.org/x/sys/unix/syscall_freebsd_arm.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go b/agent/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go rename to agent/vendor/golang.org/x/sys/unix/syscall_freebsd_arm64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go b/agent/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go rename to agent/vendor/golang.org/x/sys/unix/syscall_freebsd_riscv64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_hurd.go b/agent/vendor/golang.org/x/sys/unix/syscall_hurd.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_hurd.go rename to agent/vendor/golang.org/x/sys/unix/syscall_hurd.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_hurd_386.go b/agent/vendor/golang.org/x/sys/unix/syscall_hurd_386.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_hurd_386.go rename to agent/vendor/golang.org/x/sys/unix/syscall_hurd_386.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_illumos.go b/agent/vendor/golang.org/x/sys/unix/syscall_illumos.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_illumos.go rename to agent/vendor/golang.org/x/sys/unix/syscall_illumos.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_linux.go b/agent/vendor/golang.org/x/sys/unix/syscall_linux.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_linux.go rename to agent/vendor/golang.org/x/sys/unix/syscall_linux.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_linux_386.go b/agent/vendor/golang.org/x/sys/unix/syscall_linux_386.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_linux_386.go rename to agent/vendor/golang.org/x/sys/unix/syscall_linux_386.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go b/agent/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go rename to agent/vendor/golang.org/x/sys/unix/syscall_linux_alarm.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go b/agent/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go rename to agent/vendor/golang.org/x/sys/unix/syscall_linux_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go b/agent/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go rename to agent/vendor/golang.org/x/sys/unix/syscall_linux_amd64_gc.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_linux_arm.go b/agent/vendor/golang.org/x/sys/unix/syscall_linux_arm.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_linux_arm.go rename to agent/vendor/golang.org/x/sys/unix/syscall_linux_arm.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go b/agent/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go rename to agent/vendor/golang.org/x/sys/unix/syscall_linux_arm64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_linux_gc.go b/agent/vendor/golang.org/x/sys/unix/syscall_linux_gc.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_linux_gc.go rename to agent/vendor/golang.org/x/sys/unix/syscall_linux_gc.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go b/agent/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go rename to agent/vendor/golang.org/x/sys/unix/syscall_linux_gc_386.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go b/agent/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go rename to agent/vendor/golang.org/x/sys/unix/syscall_linux_gc_arm.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go b/agent/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go rename to agent/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_386.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go b/agent/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go rename to agent/vendor/golang.org/x/sys/unix/syscall_linux_gccgo_arm.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go b/agent/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go rename to agent/vendor/golang.org/x/sys/unix/syscall_linux_loong64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go b/agent/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go rename to agent/vendor/golang.org/x/sys/unix/syscall_linux_mips64x.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go b/agent/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go rename to agent/vendor/golang.org/x/sys/unix/syscall_linux_mipsx.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go b/agent/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go rename to agent/vendor/golang.org/x/sys/unix/syscall_linux_ppc.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go b/agent/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go rename to agent/vendor/golang.org/x/sys/unix/syscall_linux_ppc64x.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go b/agent/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go rename to agent/vendor/golang.org/x/sys/unix/syscall_linux_riscv64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go b/agent/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go rename to agent/vendor/golang.org/x/sys/unix/syscall_linux_s390x.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go b/agent/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go rename to agent/vendor/golang.org/x/sys/unix/syscall_linux_sparc64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_netbsd.go b/agent/vendor/golang.org/x/sys/unix/syscall_netbsd.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_netbsd.go rename to agent/vendor/golang.org/x/sys/unix/syscall_netbsd.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go b/agent/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go rename to agent/vendor/golang.org/x/sys/unix/syscall_netbsd_386.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go b/agent/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go rename to agent/vendor/golang.org/x/sys/unix/syscall_netbsd_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go b/agent/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go rename to agent/vendor/golang.org/x/sys/unix/syscall_netbsd_arm.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go b/agent/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go rename to agent/vendor/golang.org/x/sys/unix/syscall_netbsd_arm64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_openbsd.go b/agent/vendor/golang.org/x/sys/unix/syscall_openbsd.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_openbsd.go rename to agent/vendor/golang.org/x/sys/unix/syscall_openbsd.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go b/agent/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go rename to agent/vendor/golang.org/x/sys/unix/syscall_openbsd_386.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go b/agent/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go rename to agent/vendor/golang.org/x/sys/unix/syscall_openbsd_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go b/agent/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go rename to agent/vendor/golang.org/x/sys/unix/syscall_openbsd_arm.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go b/agent/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go rename to agent/vendor/golang.org/x/sys/unix/syscall_openbsd_arm64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go b/agent/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go rename to agent/vendor/golang.org/x/sys/unix/syscall_openbsd_libc.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go b/agent/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go rename to agent/vendor/golang.org/x/sys/unix/syscall_openbsd_mips64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go b/agent/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go rename to agent/vendor/golang.org/x/sys/unix/syscall_openbsd_ppc64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go b/agent/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go rename to agent/vendor/golang.org/x/sys/unix/syscall_openbsd_riscv64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_solaris.go b/agent/vendor/golang.org/x/sys/unix/syscall_solaris.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_solaris.go rename to agent/vendor/golang.org/x/sys/unix/syscall_solaris.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go b/agent/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go rename to agent/vendor/golang.org/x/sys/unix/syscall_solaris_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_unix.go b/agent/vendor/golang.org/x/sys/unix/syscall_unix.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_unix.go rename to agent/vendor/golang.org/x/sys/unix/syscall_unix.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_unix_gc.go b/agent/vendor/golang.org/x/sys/unix/syscall_unix_gc.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_unix_gc.go rename to agent/vendor/golang.org/x/sys/unix/syscall_unix_gc.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go b/agent/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go rename to agent/vendor/golang.org/x/sys/unix/syscall_unix_gc_ppc64x.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go b/agent/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go rename to agent/vendor/golang.org/x/sys/unix/syscall_zos_s390x.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/sysvshm_linux.go b/agent/vendor/golang.org/x/sys/unix/sysvshm_linux.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/sysvshm_linux.go rename to agent/vendor/golang.org/x/sys/unix/sysvshm_linux.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/sysvshm_unix.go b/agent/vendor/golang.org/x/sys/unix/sysvshm_unix.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/sysvshm_unix.go rename to agent/vendor/golang.org/x/sys/unix/sysvshm_unix.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go b/agent/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go rename to agent/vendor/golang.org/x/sys/unix/sysvshm_unix_other.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/timestruct.go b/agent/vendor/golang.org/x/sys/unix/timestruct.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/timestruct.go rename to agent/vendor/golang.org/x/sys/unix/timestruct.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/unveil_openbsd.go b/agent/vendor/golang.org/x/sys/unix/unveil_openbsd.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/unveil_openbsd.go rename to agent/vendor/golang.org/x/sys/unix/unveil_openbsd.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/vgetrandom_linux.go b/agent/vendor/golang.org/x/sys/unix/vgetrandom_linux.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/vgetrandom_linux.go rename to agent/vendor/golang.org/x/sys/unix/vgetrandom_linux.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/vgetrandom_unsupported.go b/agent/vendor/golang.org/x/sys/unix/vgetrandom_unsupported.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/vgetrandom_unsupported.go rename to agent/vendor/golang.org/x/sys/unix/vgetrandom_unsupported.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/xattr_bsd.go b/agent/vendor/golang.org/x/sys/unix/xattr_bsd.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/xattr_bsd.go rename to agent/vendor/golang.org/x/sys/unix/xattr_bsd.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go b/agent/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_aix_ppc.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go b/agent/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_aix_ppc64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go b/agent/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_darwin_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go b/agent/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_darwin_arm64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go b/agent/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_dragonfly_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go b/agent/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_freebsd_386.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go b/agent/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_freebsd_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go b/agent/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go b/agent/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_freebsd_arm64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go b/agent/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_freebsd_riscv64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_linux.go b/agent/vendor/golang.org/x/sys/unix/zerrors_linux.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_linux.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_linux.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_linux_386.go b/agent/vendor/golang.org/x/sys/unix/zerrors_linux_386.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_linux_386.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_linux_386.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go b/agent/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_linux_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go b/agent/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_linux_arm.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go b/agent/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_linux_arm64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go b/agent/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go b/agent/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_linux_mips.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go b/agent/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_linux_mips64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go b/agent/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_linux_mips64le.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go b/agent/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_linux_mipsle.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go b/agent/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_linux_ppc.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go b/agent/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go b/agent/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_linux_ppc64le.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go b/agent/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_linux_riscv64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go b/agent/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_linux_s390x.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go b/agent/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_linux_sparc64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go b/agent/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_netbsd_386.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go b/agent/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_netbsd_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go b/agent/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go b/agent/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_netbsd_arm64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go b/agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_386.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go b/agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go b/agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go b/agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_arm64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go b/agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_mips64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go b/agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_ppc64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go b/agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_openbsd_riscv64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go b/agent/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_solaris_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go b/agent/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go rename to agent/vendor/golang.org/x/sys/unix/zerrors_zos_s390x.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go b/agent/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go rename to agent/vendor/golang.org/x/sys/unix/zptrace_armnn_linux.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go b/agent/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go rename to agent/vendor/golang.org/x/sys/unix/zptrace_linux_arm64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go b/agent/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go rename to agent/vendor/golang.org/x/sys/unix/zptrace_mipsnn_linux.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go b/agent/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go rename to agent/vendor/golang.org/x/sys/unix/zptrace_mipsnnle_linux.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go b/agent/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go rename to agent/vendor/golang.org/x/sys/unix/zptrace_x86_linux.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s b/agent/vendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s rename to agent/vendor/golang.org/x/sys/unix/zsymaddr_zos_s390x.s diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gc.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_aix_ppc64_gccgo.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s b/agent/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s rename to agent/vendor/golang.org/x/sys/unix/zsyscall_darwin_amd64.s diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s b/agent/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s rename to agent/vendor/golang.org/x/sys/unix/zsyscall_darwin_arm64.s diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_dragonfly_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_freebsd_386.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_freebsd_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_freebsd_arm64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_freebsd_riscv64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_illumos_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_linux.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_linux.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_linux.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_linux.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_linux_386.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_linux_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_linux_arm64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_linux_loong64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_linux_mips.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_linux_mips64le.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_linux_mipsle.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_linux_ppc64le.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_linux_riscv64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_linux_s390x.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_linux_sparc64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_netbsd_386.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_netbsd_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_netbsd_arm64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s b/agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s rename to agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_386.s diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s b/agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s rename to agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_amd64.s diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s b/agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s rename to agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm.s diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s b/agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s rename to agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_arm64.s diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s b/agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s rename to agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_mips64.s diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s b/agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s rename to agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_ppc64.s diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s b/agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s rename to agent/vendor/golang.org/x/sys/unix/zsyscall_openbsd_riscv64.s diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_solaris_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go b/agent/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go rename to agent/vendor/golang.org/x/sys/unix/zsyscall_zos_s390x.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go b/agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go rename to agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_386.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go b/agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go rename to agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go b/agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go rename to agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go b/agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go rename to agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_arm64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go b/agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go rename to agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_mips64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go b/agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go rename to agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_ppc64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go b/agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go rename to agent/vendor/golang.org/x/sys/unix/zsysctl_openbsd_riscv64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_darwin_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_darwin_arm64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_dragonfly_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_freebsd_386.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_freebsd_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_freebsd_arm64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_freebsd_riscv64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_linux_386.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_linux_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_linux_arm.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_linux_arm64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_linux_mips.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_linux_mips64le.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_linux_mipsle.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_linux_ppc64le.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_linux_riscv64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_linux_s390x.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_linux_sparc64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_netbsd_386.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_netbsd_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_netbsd_arm64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_386.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_arm64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_mips64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_ppc64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_openbsd_riscv64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go b/agent/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go rename to agent/vendor/golang.org/x/sys/unix/zsysnum_zos_s390x.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go b/agent/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_aix_ppc.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go b/agent/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_aix_ppc64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go b/agent/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_darwin_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go b/agent/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_darwin_arm64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go b/agent/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_dragonfly_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go b/agent/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_freebsd_386.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go b/agent/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_freebsd_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go b/agent/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go b/agent/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_freebsd_arm64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go b/agent/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_freebsd_riscv64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_linux.go b/agent/vendor/golang.org/x/sys/unix/ztypes_linux.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_linux.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_linux.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_linux_386.go b/agent/vendor/golang.org/x/sys/unix/ztypes_linux_386.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_linux_386.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_linux_386.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go b/agent/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go b/agent/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go b/agent/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go b/agent/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go b/agent/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go b/agent/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go b/agent/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go b/agent/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go b/agent/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go b/agent/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go b/agent/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go b/agent/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go b/agent/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go b/agent/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go b/agent/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_netbsd_386.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go b/agent/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_netbsd_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go b/agent/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go b/agent/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_netbsd_arm64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go b/agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_386.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go b/agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go b/agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go b/agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_arm64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go b/agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_mips64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go b/agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_ppc64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go b/agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_openbsd_riscv64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go b/agent/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_solaris_amd64.go diff --git a/agent/go/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go b/agent/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go similarity index 100% rename from agent/go/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go rename to agent/vendor/golang.org/x/sys/unix/ztypes_zos_s390x.go diff --git a/agent/go/vendor/golang.org/x/text/LICENSE b/agent/vendor/golang.org/x/text/LICENSE similarity index 100% rename from agent/go/vendor/golang.org/x/text/LICENSE rename to agent/vendor/golang.org/x/text/LICENSE diff --git a/agent/go/vendor/golang.org/x/text/PATENTS b/agent/vendor/golang.org/x/text/PATENTS similarity index 100% rename from agent/go/vendor/golang.org/x/text/PATENTS rename to agent/vendor/golang.org/x/text/PATENTS diff --git a/agent/go/vendor/golang.org/x/text/encoding/charmap/charmap.go b/agent/vendor/golang.org/x/text/encoding/charmap/charmap.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/encoding/charmap/charmap.go rename to agent/vendor/golang.org/x/text/encoding/charmap/charmap.go diff --git a/agent/go/vendor/golang.org/x/text/encoding/charmap/tables.go b/agent/vendor/golang.org/x/text/encoding/charmap/tables.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/encoding/charmap/tables.go rename to agent/vendor/golang.org/x/text/encoding/charmap/tables.go diff --git a/agent/go/vendor/golang.org/x/text/encoding/encoding.go b/agent/vendor/golang.org/x/text/encoding/encoding.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/encoding/encoding.go rename to agent/vendor/golang.org/x/text/encoding/encoding.go diff --git a/agent/go/vendor/golang.org/x/text/encoding/htmlindex/htmlindex.go b/agent/vendor/golang.org/x/text/encoding/htmlindex/htmlindex.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/encoding/htmlindex/htmlindex.go rename to agent/vendor/golang.org/x/text/encoding/htmlindex/htmlindex.go diff --git a/agent/go/vendor/golang.org/x/text/encoding/htmlindex/map.go b/agent/vendor/golang.org/x/text/encoding/htmlindex/map.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/encoding/htmlindex/map.go rename to agent/vendor/golang.org/x/text/encoding/htmlindex/map.go diff --git a/agent/go/vendor/golang.org/x/text/encoding/htmlindex/tables.go b/agent/vendor/golang.org/x/text/encoding/htmlindex/tables.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/encoding/htmlindex/tables.go rename to agent/vendor/golang.org/x/text/encoding/htmlindex/tables.go diff --git a/agent/go/vendor/golang.org/x/text/encoding/internal/identifier/identifier.go b/agent/vendor/golang.org/x/text/encoding/internal/identifier/identifier.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/encoding/internal/identifier/identifier.go rename to agent/vendor/golang.org/x/text/encoding/internal/identifier/identifier.go diff --git a/agent/go/vendor/golang.org/x/text/encoding/internal/identifier/mib.go b/agent/vendor/golang.org/x/text/encoding/internal/identifier/mib.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/encoding/internal/identifier/mib.go rename to agent/vendor/golang.org/x/text/encoding/internal/identifier/mib.go diff --git a/agent/go/vendor/golang.org/x/text/encoding/internal/internal.go b/agent/vendor/golang.org/x/text/encoding/internal/internal.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/encoding/internal/internal.go rename to agent/vendor/golang.org/x/text/encoding/internal/internal.go diff --git a/agent/go/vendor/golang.org/x/text/encoding/japanese/all.go b/agent/vendor/golang.org/x/text/encoding/japanese/all.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/encoding/japanese/all.go rename to agent/vendor/golang.org/x/text/encoding/japanese/all.go diff --git a/agent/go/vendor/golang.org/x/text/encoding/japanese/eucjp.go b/agent/vendor/golang.org/x/text/encoding/japanese/eucjp.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/encoding/japanese/eucjp.go rename to agent/vendor/golang.org/x/text/encoding/japanese/eucjp.go diff --git a/agent/go/vendor/golang.org/x/text/encoding/japanese/iso2022jp.go b/agent/vendor/golang.org/x/text/encoding/japanese/iso2022jp.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/encoding/japanese/iso2022jp.go rename to agent/vendor/golang.org/x/text/encoding/japanese/iso2022jp.go diff --git a/agent/go/vendor/golang.org/x/text/encoding/japanese/shiftjis.go b/agent/vendor/golang.org/x/text/encoding/japanese/shiftjis.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/encoding/japanese/shiftjis.go rename to agent/vendor/golang.org/x/text/encoding/japanese/shiftjis.go diff --git a/agent/go/vendor/golang.org/x/text/encoding/japanese/tables.go b/agent/vendor/golang.org/x/text/encoding/japanese/tables.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/encoding/japanese/tables.go rename to agent/vendor/golang.org/x/text/encoding/japanese/tables.go diff --git a/agent/go/vendor/golang.org/x/text/encoding/korean/euckr.go b/agent/vendor/golang.org/x/text/encoding/korean/euckr.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/encoding/korean/euckr.go rename to agent/vendor/golang.org/x/text/encoding/korean/euckr.go diff --git a/agent/go/vendor/golang.org/x/text/encoding/korean/tables.go b/agent/vendor/golang.org/x/text/encoding/korean/tables.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/encoding/korean/tables.go rename to agent/vendor/golang.org/x/text/encoding/korean/tables.go diff --git a/agent/go/vendor/golang.org/x/text/encoding/simplifiedchinese/all.go b/agent/vendor/golang.org/x/text/encoding/simplifiedchinese/all.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/encoding/simplifiedchinese/all.go rename to agent/vendor/golang.org/x/text/encoding/simplifiedchinese/all.go diff --git a/agent/go/vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go b/agent/vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go rename to agent/vendor/golang.org/x/text/encoding/simplifiedchinese/gbk.go diff --git a/agent/go/vendor/golang.org/x/text/encoding/simplifiedchinese/hzgb2312.go b/agent/vendor/golang.org/x/text/encoding/simplifiedchinese/hzgb2312.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/encoding/simplifiedchinese/hzgb2312.go rename to agent/vendor/golang.org/x/text/encoding/simplifiedchinese/hzgb2312.go diff --git a/agent/go/vendor/golang.org/x/text/encoding/simplifiedchinese/tables.go b/agent/vendor/golang.org/x/text/encoding/simplifiedchinese/tables.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/encoding/simplifiedchinese/tables.go rename to agent/vendor/golang.org/x/text/encoding/simplifiedchinese/tables.go diff --git a/agent/go/vendor/golang.org/x/text/encoding/traditionalchinese/big5.go b/agent/vendor/golang.org/x/text/encoding/traditionalchinese/big5.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/encoding/traditionalchinese/big5.go rename to agent/vendor/golang.org/x/text/encoding/traditionalchinese/big5.go diff --git a/agent/go/vendor/golang.org/x/text/encoding/traditionalchinese/tables.go b/agent/vendor/golang.org/x/text/encoding/traditionalchinese/tables.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/encoding/traditionalchinese/tables.go rename to agent/vendor/golang.org/x/text/encoding/traditionalchinese/tables.go diff --git a/agent/go/vendor/golang.org/x/text/encoding/unicode/override.go b/agent/vendor/golang.org/x/text/encoding/unicode/override.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/encoding/unicode/override.go rename to agent/vendor/golang.org/x/text/encoding/unicode/override.go diff --git a/agent/go/vendor/golang.org/x/text/encoding/unicode/unicode.go b/agent/vendor/golang.org/x/text/encoding/unicode/unicode.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/encoding/unicode/unicode.go rename to agent/vendor/golang.org/x/text/encoding/unicode/unicode.go diff --git a/agent/go/vendor/golang.org/x/text/feature/plural/common.go b/agent/vendor/golang.org/x/text/feature/plural/common.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/feature/plural/common.go rename to agent/vendor/golang.org/x/text/feature/plural/common.go diff --git a/agent/go/vendor/golang.org/x/text/feature/plural/message.go b/agent/vendor/golang.org/x/text/feature/plural/message.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/feature/plural/message.go rename to agent/vendor/golang.org/x/text/feature/plural/message.go diff --git a/agent/go/vendor/golang.org/x/text/feature/plural/plural.go b/agent/vendor/golang.org/x/text/feature/plural/plural.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/feature/plural/plural.go rename to agent/vendor/golang.org/x/text/feature/plural/plural.go diff --git a/agent/go/vendor/golang.org/x/text/feature/plural/tables.go b/agent/vendor/golang.org/x/text/feature/plural/tables.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/feature/plural/tables.go rename to agent/vendor/golang.org/x/text/feature/plural/tables.go diff --git a/agent/go/vendor/golang.org/x/text/internal/catmsg/catmsg.go b/agent/vendor/golang.org/x/text/internal/catmsg/catmsg.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/internal/catmsg/catmsg.go rename to agent/vendor/golang.org/x/text/internal/catmsg/catmsg.go diff --git a/agent/go/vendor/golang.org/x/text/internal/catmsg/codec.go b/agent/vendor/golang.org/x/text/internal/catmsg/codec.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/internal/catmsg/codec.go rename to agent/vendor/golang.org/x/text/internal/catmsg/codec.go diff --git a/agent/go/vendor/golang.org/x/text/internal/catmsg/varint.go b/agent/vendor/golang.org/x/text/internal/catmsg/varint.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/internal/catmsg/varint.go rename to agent/vendor/golang.org/x/text/internal/catmsg/varint.go diff --git a/agent/go/vendor/golang.org/x/text/internal/format/format.go b/agent/vendor/golang.org/x/text/internal/format/format.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/internal/format/format.go rename to agent/vendor/golang.org/x/text/internal/format/format.go diff --git a/agent/go/vendor/golang.org/x/text/internal/format/parser.go b/agent/vendor/golang.org/x/text/internal/format/parser.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/internal/format/parser.go rename to agent/vendor/golang.org/x/text/internal/format/parser.go diff --git a/agent/go/vendor/golang.org/x/text/internal/internal.go b/agent/vendor/golang.org/x/text/internal/internal.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/internal/internal.go rename to agent/vendor/golang.org/x/text/internal/internal.go diff --git a/agent/go/vendor/golang.org/x/text/internal/language/common.go b/agent/vendor/golang.org/x/text/internal/language/common.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/internal/language/common.go rename to agent/vendor/golang.org/x/text/internal/language/common.go diff --git a/agent/go/vendor/golang.org/x/text/internal/language/compact.go b/agent/vendor/golang.org/x/text/internal/language/compact.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/internal/language/compact.go rename to agent/vendor/golang.org/x/text/internal/language/compact.go diff --git a/agent/go/vendor/golang.org/x/text/internal/language/compact/compact.go b/agent/vendor/golang.org/x/text/internal/language/compact/compact.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/internal/language/compact/compact.go rename to agent/vendor/golang.org/x/text/internal/language/compact/compact.go diff --git a/agent/go/vendor/golang.org/x/text/internal/language/compact/language.go b/agent/vendor/golang.org/x/text/internal/language/compact/language.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/internal/language/compact/language.go rename to agent/vendor/golang.org/x/text/internal/language/compact/language.go diff --git a/agent/go/vendor/golang.org/x/text/internal/language/compact/parents.go b/agent/vendor/golang.org/x/text/internal/language/compact/parents.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/internal/language/compact/parents.go rename to agent/vendor/golang.org/x/text/internal/language/compact/parents.go diff --git a/agent/go/vendor/golang.org/x/text/internal/language/compact/tables.go b/agent/vendor/golang.org/x/text/internal/language/compact/tables.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/internal/language/compact/tables.go rename to agent/vendor/golang.org/x/text/internal/language/compact/tables.go diff --git a/agent/go/vendor/golang.org/x/text/internal/language/compact/tags.go b/agent/vendor/golang.org/x/text/internal/language/compact/tags.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/internal/language/compact/tags.go rename to agent/vendor/golang.org/x/text/internal/language/compact/tags.go diff --git a/agent/go/vendor/golang.org/x/text/internal/language/compose.go b/agent/vendor/golang.org/x/text/internal/language/compose.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/internal/language/compose.go rename to agent/vendor/golang.org/x/text/internal/language/compose.go diff --git a/agent/go/vendor/golang.org/x/text/internal/language/coverage.go b/agent/vendor/golang.org/x/text/internal/language/coverage.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/internal/language/coverage.go rename to agent/vendor/golang.org/x/text/internal/language/coverage.go diff --git a/agent/go/vendor/golang.org/x/text/internal/language/language.go b/agent/vendor/golang.org/x/text/internal/language/language.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/internal/language/language.go rename to agent/vendor/golang.org/x/text/internal/language/language.go diff --git a/agent/go/vendor/golang.org/x/text/internal/language/lookup.go b/agent/vendor/golang.org/x/text/internal/language/lookup.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/internal/language/lookup.go rename to agent/vendor/golang.org/x/text/internal/language/lookup.go diff --git a/agent/go/vendor/golang.org/x/text/internal/language/match.go b/agent/vendor/golang.org/x/text/internal/language/match.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/internal/language/match.go rename to agent/vendor/golang.org/x/text/internal/language/match.go diff --git a/agent/go/vendor/golang.org/x/text/internal/language/parse.go b/agent/vendor/golang.org/x/text/internal/language/parse.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/internal/language/parse.go rename to agent/vendor/golang.org/x/text/internal/language/parse.go diff --git a/agent/go/vendor/golang.org/x/text/internal/language/tables.go b/agent/vendor/golang.org/x/text/internal/language/tables.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/internal/language/tables.go rename to agent/vendor/golang.org/x/text/internal/language/tables.go diff --git a/agent/go/vendor/golang.org/x/text/internal/language/tags.go b/agent/vendor/golang.org/x/text/internal/language/tags.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/internal/language/tags.go rename to agent/vendor/golang.org/x/text/internal/language/tags.go diff --git a/agent/go/vendor/golang.org/x/text/internal/match.go b/agent/vendor/golang.org/x/text/internal/match.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/internal/match.go rename to agent/vendor/golang.org/x/text/internal/match.go diff --git a/agent/go/vendor/golang.org/x/text/internal/number/common.go b/agent/vendor/golang.org/x/text/internal/number/common.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/internal/number/common.go rename to agent/vendor/golang.org/x/text/internal/number/common.go diff --git a/agent/go/vendor/golang.org/x/text/internal/number/decimal.go b/agent/vendor/golang.org/x/text/internal/number/decimal.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/internal/number/decimal.go rename to agent/vendor/golang.org/x/text/internal/number/decimal.go diff --git a/agent/go/vendor/golang.org/x/text/internal/number/format.go b/agent/vendor/golang.org/x/text/internal/number/format.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/internal/number/format.go rename to agent/vendor/golang.org/x/text/internal/number/format.go diff --git a/agent/go/vendor/golang.org/x/text/internal/number/number.go b/agent/vendor/golang.org/x/text/internal/number/number.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/internal/number/number.go rename to agent/vendor/golang.org/x/text/internal/number/number.go diff --git a/agent/go/vendor/golang.org/x/text/internal/number/pattern.go b/agent/vendor/golang.org/x/text/internal/number/pattern.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/internal/number/pattern.go rename to agent/vendor/golang.org/x/text/internal/number/pattern.go diff --git a/agent/go/vendor/golang.org/x/text/internal/number/roundingmode_string.go b/agent/vendor/golang.org/x/text/internal/number/roundingmode_string.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/internal/number/roundingmode_string.go rename to agent/vendor/golang.org/x/text/internal/number/roundingmode_string.go diff --git a/agent/go/vendor/golang.org/x/text/internal/number/tables.go b/agent/vendor/golang.org/x/text/internal/number/tables.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/internal/number/tables.go rename to agent/vendor/golang.org/x/text/internal/number/tables.go diff --git a/agent/go/vendor/golang.org/x/text/internal/stringset/set.go b/agent/vendor/golang.org/x/text/internal/stringset/set.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/internal/stringset/set.go rename to agent/vendor/golang.org/x/text/internal/stringset/set.go diff --git a/agent/go/vendor/golang.org/x/text/internal/tag/tag.go b/agent/vendor/golang.org/x/text/internal/tag/tag.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/internal/tag/tag.go rename to agent/vendor/golang.org/x/text/internal/tag/tag.go diff --git a/agent/go/vendor/golang.org/x/text/internal/utf8internal/utf8internal.go b/agent/vendor/golang.org/x/text/internal/utf8internal/utf8internal.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/internal/utf8internal/utf8internal.go rename to agent/vendor/golang.org/x/text/internal/utf8internal/utf8internal.go diff --git a/agent/go/vendor/golang.org/x/text/language/coverage.go b/agent/vendor/golang.org/x/text/language/coverage.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/language/coverage.go rename to agent/vendor/golang.org/x/text/language/coverage.go diff --git a/agent/go/vendor/golang.org/x/text/language/doc.go b/agent/vendor/golang.org/x/text/language/doc.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/language/doc.go rename to agent/vendor/golang.org/x/text/language/doc.go diff --git a/agent/go/vendor/golang.org/x/text/language/language.go b/agent/vendor/golang.org/x/text/language/language.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/language/language.go rename to agent/vendor/golang.org/x/text/language/language.go diff --git a/agent/go/vendor/golang.org/x/text/language/match.go b/agent/vendor/golang.org/x/text/language/match.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/language/match.go rename to agent/vendor/golang.org/x/text/language/match.go diff --git a/agent/go/vendor/golang.org/x/text/language/parse.go b/agent/vendor/golang.org/x/text/language/parse.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/language/parse.go rename to agent/vendor/golang.org/x/text/language/parse.go diff --git a/agent/go/vendor/golang.org/x/text/language/tables.go b/agent/vendor/golang.org/x/text/language/tables.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/language/tables.go rename to agent/vendor/golang.org/x/text/language/tables.go diff --git a/agent/go/vendor/golang.org/x/text/language/tags.go b/agent/vendor/golang.org/x/text/language/tags.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/language/tags.go rename to agent/vendor/golang.org/x/text/language/tags.go diff --git a/agent/go/vendor/golang.org/x/text/message/catalog.go b/agent/vendor/golang.org/x/text/message/catalog.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/message/catalog.go rename to agent/vendor/golang.org/x/text/message/catalog.go diff --git a/agent/go/vendor/golang.org/x/text/message/catalog/catalog.go b/agent/vendor/golang.org/x/text/message/catalog/catalog.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/message/catalog/catalog.go rename to agent/vendor/golang.org/x/text/message/catalog/catalog.go diff --git a/agent/go/vendor/golang.org/x/text/message/catalog/dict.go b/agent/vendor/golang.org/x/text/message/catalog/dict.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/message/catalog/dict.go rename to agent/vendor/golang.org/x/text/message/catalog/dict.go diff --git a/agent/go/vendor/golang.org/x/text/message/doc.go b/agent/vendor/golang.org/x/text/message/doc.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/message/doc.go rename to agent/vendor/golang.org/x/text/message/doc.go diff --git a/agent/go/vendor/golang.org/x/text/message/format.go b/agent/vendor/golang.org/x/text/message/format.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/message/format.go rename to agent/vendor/golang.org/x/text/message/format.go diff --git a/agent/go/vendor/golang.org/x/text/message/message.go b/agent/vendor/golang.org/x/text/message/message.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/message/message.go rename to agent/vendor/golang.org/x/text/message/message.go diff --git a/agent/go/vendor/golang.org/x/text/message/print.go b/agent/vendor/golang.org/x/text/message/print.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/message/print.go rename to agent/vendor/golang.org/x/text/message/print.go diff --git a/agent/go/vendor/golang.org/x/text/runes/cond.go b/agent/vendor/golang.org/x/text/runes/cond.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/runes/cond.go rename to agent/vendor/golang.org/x/text/runes/cond.go diff --git a/agent/go/vendor/golang.org/x/text/runes/runes.go b/agent/vendor/golang.org/x/text/runes/runes.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/runes/runes.go rename to agent/vendor/golang.org/x/text/runes/runes.go diff --git a/agent/go/vendor/golang.org/x/text/transform/transform.go b/agent/vendor/golang.org/x/text/transform/transform.go similarity index 100% rename from agent/go/vendor/golang.org/x/text/transform/transform.go rename to agent/vendor/golang.org/x/text/transform/transform.go diff --git a/agent/go/vendor/golang.org/x/tools/LICENSE b/agent/vendor/golang.org/x/tools/LICENSE similarity index 100% rename from agent/go/vendor/golang.org/x/tools/LICENSE rename to agent/vendor/golang.org/x/tools/LICENSE diff --git a/agent/go/vendor/golang.org/x/tools/PATENTS b/agent/vendor/golang.org/x/tools/PATENTS similarity index 100% rename from agent/go/vendor/golang.org/x/tools/PATENTS rename to agent/vendor/golang.org/x/tools/PATENTS diff --git a/agent/go/vendor/golang.org/x/tools/cover/profile.go b/agent/vendor/golang.org/x/tools/cover/profile.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/cover/profile.go rename to agent/vendor/golang.org/x/tools/cover/profile.go diff --git a/agent/go/vendor/golang.org/x/tools/go/ast/edge/edge.go b/agent/vendor/golang.org/x/tools/go/ast/edge/edge.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/go/ast/edge/edge.go rename to agent/vendor/golang.org/x/tools/go/ast/edge/edge.go diff --git a/agent/go/vendor/golang.org/x/tools/go/ast/inspector/cursor.go b/agent/vendor/golang.org/x/tools/go/ast/inspector/cursor.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/go/ast/inspector/cursor.go rename to agent/vendor/golang.org/x/tools/go/ast/inspector/cursor.go diff --git a/agent/go/vendor/golang.org/x/tools/go/ast/inspector/inspector.go b/agent/vendor/golang.org/x/tools/go/ast/inspector/inspector.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/go/ast/inspector/inspector.go rename to agent/vendor/golang.org/x/tools/go/ast/inspector/inspector.go diff --git a/agent/go/vendor/golang.org/x/tools/go/ast/inspector/iter.go b/agent/vendor/golang.org/x/tools/go/ast/inspector/iter.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/go/ast/inspector/iter.go rename to agent/vendor/golang.org/x/tools/go/ast/inspector/iter.go diff --git a/agent/go/vendor/golang.org/x/tools/go/ast/inspector/typeof.go b/agent/vendor/golang.org/x/tools/go/ast/inspector/typeof.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/go/ast/inspector/typeof.go rename to agent/vendor/golang.org/x/tools/go/ast/inspector/typeof.go diff --git a/agent/go/vendor/golang.org/x/tools/go/ast/inspector/walk.go b/agent/vendor/golang.org/x/tools/go/ast/inspector/walk.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/go/ast/inspector/walk.go rename to agent/vendor/golang.org/x/tools/go/ast/inspector/walk.go diff --git a/agent/go/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go b/agent/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go rename to agent/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go diff --git a/agent/go/vendor/golang.org/x/tools/go/gcexportdata/importer.go b/agent/vendor/golang.org/x/tools/go/gcexportdata/importer.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/go/gcexportdata/importer.go rename to agent/vendor/golang.org/x/tools/go/gcexportdata/importer.go diff --git a/agent/go/vendor/golang.org/x/tools/go/packages/doc.go b/agent/vendor/golang.org/x/tools/go/packages/doc.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/go/packages/doc.go rename to agent/vendor/golang.org/x/tools/go/packages/doc.go diff --git a/agent/go/vendor/golang.org/x/tools/go/packages/external.go b/agent/vendor/golang.org/x/tools/go/packages/external.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/go/packages/external.go rename to agent/vendor/golang.org/x/tools/go/packages/external.go diff --git a/agent/go/vendor/golang.org/x/tools/go/packages/golist.go b/agent/vendor/golang.org/x/tools/go/packages/golist.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/go/packages/golist.go rename to agent/vendor/golang.org/x/tools/go/packages/golist.go diff --git a/agent/go/vendor/golang.org/x/tools/go/packages/golist_overlay.go b/agent/vendor/golang.org/x/tools/go/packages/golist_overlay.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/go/packages/golist_overlay.go rename to agent/vendor/golang.org/x/tools/go/packages/golist_overlay.go diff --git a/agent/go/vendor/golang.org/x/tools/go/packages/loadmode_string.go b/agent/vendor/golang.org/x/tools/go/packages/loadmode_string.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/go/packages/loadmode_string.go rename to agent/vendor/golang.org/x/tools/go/packages/loadmode_string.go diff --git a/agent/go/vendor/golang.org/x/tools/go/packages/packages.go b/agent/vendor/golang.org/x/tools/go/packages/packages.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/go/packages/packages.go rename to agent/vendor/golang.org/x/tools/go/packages/packages.go diff --git a/agent/go/vendor/golang.org/x/tools/go/packages/visit.go b/agent/vendor/golang.org/x/tools/go/packages/visit.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/go/packages/visit.go rename to agent/vendor/golang.org/x/tools/go/packages/visit.go diff --git a/agent/go/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go b/agent/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go rename to agent/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go diff --git a/agent/go/vendor/golang.org/x/tools/go/types/typeutil/callee.go b/agent/vendor/golang.org/x/tools/go/types/typeutil/callee.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/go/types/typeutil/callee.go rename to agent/vendor/golang.org/x/tools/go/types/typeutil/callee.go diff --git a/agent/go/vendor/golang.org/x/tools/go/types/typeutil/imports.go b/agent/vendor/golang.org/x/tools/go/types/typeutil/imports.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/go/types/typeutil/imports.go rename to agent/vendor/golang.org/x/tools/go/types/typeutil/imports.go diff --git a/agent/go/vendor/golang.org/x/tools/go/types/typeutil/map.go b/agent/vendor/golang.org/x/tools/go/types/typeutil/map.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/go/types/typeutil/map.go rename to agent/vendor/golang.org/x/tools/go/types/typeutil/map.go diff --git a/agent/go/vendor/golang.org/x/tools/go/types/typeutil/methodsetcache.go b/agent/vendor/golang.org/x/tools/go/types/typeutil/methodsetcache.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/go/types/typeutil/methodsetcache.go rename to agent/vendor/golang.org/x/tools/go/types/typeutil/methodsetcache.go diff --git a/agent/go/vendor/golang.org/x/tools/go/types/typeutil/ui.go b/agent/vendor/golang.org/x/tools/go/types/typeutil/ui.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/go/types/typeutil/ui.go rename to agent/vendor/golang.org/x/tools/go/types/typeutil/ui.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/aliases/aliases.go b/agent/vendor/golang.org/x/tools/internal/aliases/aliases.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/aliases/aliases.go rename to agent/vendor/golang.org/x/tools/internal/aliases/aliases.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/event/core/event.go b/agent/vendor/golang.org/x/tools/internal/event/core/event.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/event/core/event.go rename to agent/vendor/golang.org/x/tools/internal/event/core/event.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/event/core/export.go b/agent/vendor/golang.org/x/tools/internal/event/core/export.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/event/core/export.go rename to agent/vendor/golang.org/x/tools/internal/event/core/export.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/event/core/fast.go b/agent/vendor/golang.org/x/tools/internal/event/core/fast.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/event/core/fast.go rename to agent/vendor/golang.org/x/tools/internal/event/core/fast.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/event/doc.go b/agent/vendor/golang.org/x/tools/internal/event/doc.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/event/doc.go rename to agent/vendor/golang.org/x/tools/internal/event/doc.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/event/event.go b/agent/vendor/golang.org/x/tools/internal/event/event.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/event/event.go rename to agent/vendor/golang.org/x/tools/internal/event/event.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/event/keys/keys.go b/agent/vendor/golang.org/x/tools/internal/event/keys/keys.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/event/keys/keys.go rename to agent/vendor/golang.org/x/tools/internal/event/keys/keys.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/event/keys/standard.go b/agent/vendor/golang.org/x/tools/internal/event/keys/standard.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/event/keys/standard.go rename to agent/vendor/golang.org/x/tools/internal/event/keys/standard.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/event/keys/util.go b/agent/vendor/golang.org/x/tools/internal/event/keys/util.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/event/keys/util.go rename to agent/vendor/golang.org/x/tools/internal/event/keys/util.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/event/label/label.go b/agent/vendor/golang.org/x/tools/internal/event/label/label.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/event/label/label.go rename to agent/vendor/golang.org/x/tools/internal/event/label/label.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/gcimporter/bimport.go b/agent/vendor/golang.org/x/tools/internal/gcimporter/bimport.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/gcimporter/bimport.go rename to agent/vendor/golang.org/x/tools/internal/gcimporter/bimport.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/gcimporter/exportdata.go b/agent/vendor/golang.org/x/tools/internal/gcimporter/exportdata.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/gcimporter/exportdata.go rename to agent/vendor/golang.org/x/tools/internal/gcimporter/exportdata.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go b/agent/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go rename to agent/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/gcimporter/iexport.go b/agent/vendor/golang.org/x/tools/internal/gcimporter/iexport.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/gcimporter/iexport.go rename to agent/vendor/golang.org/x/tools/internal/gcimporter/iexport.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/gcimporter/iimport.go b/agent/vendor/golang.org/x/tools/internal/gcimporter/iimport.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/gcimporter/iimport.go rename to agent/vendor/golang.org/x/tools/internal/gcimporter/iimport.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/gcimporter/predeclared.go b/agent/vendor/golang.org/x/tools/internal/gcimporter/predeclared.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/gcimporter/predeclared.go rename to agent/vendor/golang.org/x/tools/internal/gcimporter/predeclared.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/gcimporter/support.go b/agent/vendor/golang.org/x/tools/internal/gcimporter/support.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/gcimporter/support.go rename to agent/vendor/golang.org/x/tools/internal/gcimporter/support.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/gcimporter/ureader.go b/agent/vendor/golang.org/x/tools/internal/gcimporter/ureader.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/gcimporter/ureader.go rename to agent/vendor/golang.org/x/tools/internal/gcimporter/ureader.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/gocommand/invoke.go b/agent/vendor/golang.org/x/tools/internal/gocommand/invoke.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/gocommand/invoke.go rename to agent/vendor/golang.org/x/tools/internal/gocommand/invoke.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/gocommand/invoke_notunix.go b/agent/vendor/golang.org/x/tools/internal/gocommand/invoke_notunix.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/gocommand/invoke_notunix.go rename to agent/vendor/golang.org/x/tools/internal/gocommand/invoke_notunix.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/gocommand/invoke_unix.go b/agent/vendor/golang.org/x/tools/internal/gocommand/invoke_unix.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/gocommand/invoke_unix.go rename to agent/vendor/golang.org/x/tools/internal/gocommand/invoke_unix.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/gocommand/vendor.go b/agent/vendor/golang.org/x/tools/internal/gocommand/vendor.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/gocommand/vendor.go rename to agent/vendor/golang.org/x/tools/internal/gocommand/vendor.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/gocommand/version.go b/agent/vendor/golang.org/x/tools/internal/gocommand/version.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/gocommand/version.go rename to agent/vendor/golang.org/x/tools/internal/gocommand/version.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/packagesinternal/packages.go b/agent/vendor/golang.org/x/tools/internal/packagesinternal/packages.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/packagesinternal/packages.go rename to agent/vendor/golang.org/x/tools/internal/packagesinternal/packages.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/pkgbits/codes.go b/agent/vendor/golang.org/x/tools/internal/pkgbits/codes.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/pkgbits/codes.go rename to agent/vendor/golang.org/x/tools/internal/pkgbits/codes.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/pkgbits/decoder.go b/agent/vendor/golang.org/x/tools/internal/pkgbits/decoder.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/pkgbits/decoder.go rename to agent/vendor/golang.org/x/tools/internal/pkgbits/decoder.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/pkgbits/doc.go b/agent/vendor/golang.org/x/tools/internal/pkgbits/doc.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/pkgbits/doc.go rename to agent/vendor/golang.org/x/tools/internal/pkgbits/doc.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/pkgbits/encoder.go b/agent/vendor/golang.org/x/tools/internal/pkgbits/encoder.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/pkgbits/encoder.go rename to agent/vendor/golang.org/x/tools/internal/pkgbits/encoder.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/pkgbits/flags.go b/agent/vendor/golang.org/x/tools/internal/pkgbits/flags.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/pkgbits/flags.go rename to agent/vendor/golang.org/x/tools/internal/pkgbits/flags.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/pkgbits/reloc.go b/agent/vendor/golang.org/x/tools/internal/pkgbits/reloc.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/pkgbits/reloc.go rename to agent/vendor/golang.org/x/tools/internal/pkgbits/reloc.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/pkgbits/support.go b/agent/vendor/golang.org/x/tools/internal/pkgbits/support.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/pkgbits/support.go rename to agent/vendor/golang.org/x/tools/internal/pkgbits/support.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/pkgbits/sync.go b/agent/vendor/golang.org/x/tools/internal/pkgbits/sync.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/pkgbits/sync.go rename to agent/vendor/golang.org/x/tools/internal/pkgbits/sync.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/pkgbits/syncmarker_string.go b/agent/vendor/golang.org/x/tools/internal/pkgbits/syncmarker_string.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/pkgbits/syncmarker_string.go rename to agent/vendor/golang.org/x/tools/internal/pkgbits/syncmarker_string.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/pkgbits/version.go b/agent/vendor/golang.org/x/tools/internal/pkgbits/version.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/pkgbits/version.go rename to agent/vendor/golang.org/x/tools/internal/pkgbits/version.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/stdlib/deps.go b/agent/vendor/golang.org/x/tools/internal/stdlib/deps.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/stdlib/deps.go rename to agent/vendor/golang.org/x/tools/internal/stdlib/deps.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/stdlib/import.go b/agent/vendor/golang.org/x/tools/internal/stdlib/import.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/stdlib/import.go rename to agent/vendor/golang.org/x/tools/internal/stdlib/import.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/stdlib/manifest.go b/agent/vendor/golang.org/x/tools/internal/stdlib/manifest.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/stdlib/manifest.go rename to agent/vendor/golang.org/x/tools/internal/stdlib/manifest.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/stdlib/stdlib.go b/agent/vendor/golang.org/x/tools/internal/stdlib/stdlib.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/stdlib/stdlib.go rename to agent/vendor/golang.org/x/tools/internal/stdlib/stdlib.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/typeparams/common.go b/agent/vendor/golang.org/x/tools/internal/typeparams/common.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/typeparams/common.go rename to agent/vendor/golang.org/x/tools/internal/typeparams/common.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/typeparams/coretype.go b/agent/vendor/golang.org/x/tools/internal/typeparams/coretype.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/typeparams/coretype.go rename to agent/vendor/golang.org/x/tools/internal/typeparams/coretype.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/typeparams/free.go b/agent/vendor/golang.org/x/tools/internal/typeparams/free.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/typeparams/free.go rename to agent/vendor/golang.org/x/tools/internal/typeparams/free.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/typeparams/normalize.go b/agent/vendor/golang.org/x/tools/internal/typeparams/normalize.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/typeparams/normalize.go rename to agent/vendor/golang.org/x/tools/internal/typeparams/normalize.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/typeparams/termlist.go b/agent/vendor/golang.org/x/tools/internal/typeparams/termlist.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/typeparams/termlist.go rename to agent/vendor/golang.org/x/tools/internal/typeparams/termlist.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/typeparams/typeterm.go b/agent/vendor/golang.org/x/tools/internal/typeparams/typeterm.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/typeparams/typeterm.go rename to agent/vendor/golang.org/x/tools/internal/typeparams/typeterm.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/typesinternal/classify_call.go b/agent/vendor/golang.org/x/tools/internal/typesinternal/classify_call.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/typesinternal/classify_call.go rename to agent/vendor/golang.org/x/tools/internal/typesinternal/classify_call.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/typesinternal/element.go b/agent/vendor/golang.org/x/tools/internal/typesinternal/element.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/typesinternal/element.go rename to agent/vendor/golang.org/x/tools/internal/typesinternal/element.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go b/agent/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go rename to agent/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go b/agent/vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go rename to agent/vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/typesinternal/fx.go b/agent/vendor/golang.org/x/tools/internal/typesinternal/fx.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/typesinternal/fx.go rename to agent/vendor/golang.org/x/tools/internal/typesinternal/fx.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/typesinternal/isnamed.go b/agent/vendor/golang.org/x/tools/internal/typesinternal/isnamed.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/typesinternal/isnamed.go rename to agent/vendor/golang.org/x/tools/internal/typesinternal/isnamed.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/typesinternal/qualifier.go b/agent/vendor/golang.org/x/tools/internal/typesinternal/qualifier.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/typesinternal/qualifier.go rename to agent/vendor/golang.org/x/tools/internal/typesinternal/qualifier.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/typesinternal/recv.go b/agent/vendor/golang.org/x/tools/internal/typesinternal/recv.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/typesinternal/recv.go rename to agent/vendor/golang.org/x/tools/internal/typesinternal/recv.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/typesinternal/toonew.go b/agent/vendor/golang.org/x/tools/internal/typesinternal/toonew.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/typesinternal/toonew.go rename to agent/vendor/golang.org/x/tools/internal/typesinternal/toonew.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/typesinternal/types.go b/agent/vendor/golang.org/x/tools/internal/typesinternal/types.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/typesinternal/types.go rename to agent/vendor/golang.org/x/tools/internal/typesinternal/types.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/typesinternal/varkind.go b/agent/vendor/golang.org/x/tools/internal/typesinternal/varkind.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/typesinternal/varkind.go rename to agent/vendor/golang.org/x/tools/internal/typesinternal/varkind.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/typesinternal/varkind_go124.go b/agent/vendor/golang.org/x/tools/internal/typesinternal/varkind_go124.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/typesinternal/varkind_go124.go rename to agent/vendor/golang.org/x/tools/internal/typesinternal/varkind_go124.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/typesinternal/zerovalue.go b/agent/vendor/golang.org/x/tools/internal/typesinternal/zerovalue.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/typesinternal/zerovalue.go rename to agent/vendor/golang.org/x/tools/internal/typesinternal/zerovalue.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/versions/features.go b/agent/vendor/golang.org/x/tools/internal/versions/features.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/versions/features.go rename to agent/vendor/golang.org/x/tools/internal/versions/features.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/versions/gover.go b/agent/vendor/golang.org/x/tools/internal/versions/gover.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/versions/gover.go rename to agent/vendor/golang.org/x/tools/internal/versions/gover.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/versions/types.go b/agent/vendor/golang.org/x/tools/internal/versions/types.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/versions/types.go rename to agent/vendor/golang.org/x/tools/internal/versions/types.go diff --git a/agent/go/vendor/golang.org/x/tools/internal/versions/versions.go b/agent/vendor/golang.org/x/tools/internal/versions/versions.go similarity index 100% rename from agent/go/vendor/golang.org/x/tools/internal/versions/versions.go rename to agent/vendor/golang.org/x/tools/internal/versions/versions.go diff --git a/agent/vendor/jsonschema-4.23.0/.github/FUNDING.yml b/agent/vendor/jsonschema-4.23.0/.github/FUNDING.yml deleted file mode 100644 index 39a1618fb..000000000 --- a/agent/vendor/jsonschema-4.23.0/.github/FUNDING.yml +++ /dev/null @@ -1,4 +0,0 @@ -# These are supported funding model platforms - -github: "Julian" -tidelift: "pypi/jsonschema" diff --git a/agent/vendor/jsonschema-4.23.0/.github/SECURITY.md b/agent/vendor/jsonschema-4.23.0/.github/SECURITY.md deleted file mode 100644 index da795991a..000000000 --- a/agent/vendor/jsonschema-4.23.0/.github/SECURITY.md +++ /dev/null @@ -1,13 +0,0 @@ -# Security Policy - -## Supported Versions - -In general, only the latest released `jsonschema` version is supported and will receive updates. - -## Reporting a Vulnerability - -To report a security vulnerability, please send an email to `Julian+Security@GrayVines.com` with subject line `SECURITY (jsonschema)`. -I will do my best to respond within 48 hours to acknowledge the message and discuss further steps. -If the vulnerability is accepted, an advisory will be sent out via GitHub's security advisory functionality. - -For non-sensitive discussion related to this policy itself, feel free to open an issue on the issue tracker. diff --git a/agent/vendor/jsonschema-4.23.0/.github/dependabot.yml b/agent/vendor/jsonschema-4.23.0/.github/dependabot.yml deleted file mode 100644 index e910012b3..000000000 --- a/agent/vendor/jsonschema-4.23.0/.github/dependabot.yml +++ /dev/null @@ -1,11 +0,0 @@ -version: 2 -updates: - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "weekly" - - - package-ecosystem: "pip" - directory: "/docs" - schedule: - interval: "weekly" diff --git a/agent/vendor/jsonschema-4.23.0/.github/release.yml b/agent/vendor/jsonschema-4.23.0/.github/release.yml deleted file mode 100644 index 9d1e0987b..000000000 --- a/agent/vendor/jsonschema-4.23.0/.github/release.yml +++ /dev/null @@ -1,5 +0,0 @@ -changelog: - exclude: - authors: - - dependabot - - pre-commit-ci diff --git a/agent/vendor/jsonschema-4.23.0/.github/workflows/ci.yml b/agent/vendor/jsonschema-4.23.0/.github/workflows/ci.yml deleted file mode 100644 index a01200b60..000000000 --- a/agent/vendor/jsonschema-4.23.0/.github/workflows/ci.yml +++ /dev/null @@ -1,132 +0,0 @@ -name: CI - -on: - push: - branches-ignore: - - "wip*" - tags: - - "v*" - pull_request: - release: - types: [published] - schedule: - # Daily at 3:21 - - cron: "21 3 * * *" - workflow_dispatch: - -env: - PIP_DISABLE_PIP_VERSION_CHECK: "1" - PIP_NO_PYTHON_VERSION_WARNING: "1" - -jobs: - pre-commit: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-python@v5 - with: - python-version: "3.x" - - uses: pre-commit/action@v3.0.1 - - list: - runs-on: ubuntu-latest - outputs: - noxenvs: ${{ steps.noxenvs-matrix.outputs.noxenvs }} - steps: - - uses: actions/checkout@v4 - - name: Set up nox - uses: wntrblm/nox@2024.04.15 - - id: noxenvs-matrix - run: | - echo >>$GITHUB_OUTPUT noxenvs=$( - nox --list-sessions --json | jq '[.[].session]' - ) - - ci: - needs: list - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - os: [macos-latest, ubuntu-latest, windows-latest] - noxenv: ${{ fromJson(needs.list.outputs.noxenvs) }} - posargs: [""] - include: - - os: ubuntu-latest - noxenv: "tests-3.11(format)" - posargs: coverage github - - os: ubuntu-latest - noxenv: "tests-3.11(no-extras)" - posargs: coverage github - exclude: - - os: windows-latest - noxenv: "docs(dirhtml)" - - os: windows-latest - noxenv: "docs(doctest)" - - os: windows-latest - noxenv: "docs(linkcheck)" - - os: windows-latest - noxenv: "docs(spelling)" - - os: windows-latest - noxenv: "docs(style)" - - steps: - - uses: actions/checkout@v4 - - name: Install dependencies - run: sudo apt-get update && sudo apt-get install -y libenchant-2-dev - if: runner.os == 'Linux' && startsWith(matrix.noxenv, 'docs') - - name: Install dependencies - run: brew install enchant - if: runner.os == 'macOS' && startsWith(matrix.noxenv, 'docs') - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: | - 3.8 - 3.9 - 3.10 - 3.11 - 3.12 - 3.13 - pypy3.10 - allow-prereleases: true - - name: Set up nox - uses: wntrblm/nox@2024.04.15 - - name: Enable UTF-8 on Windows - run: echo "PYTHONUTF8=1" >> $env:GITHUB_ENV - if: runner.os == 'Windows' && startsWith(matrix.noxenv, 'tests') - - name: Run nox - run: nox -s "${{ matrix.noxenv }}" -- ${{ matrix.posargs }} - - packaging: - needs: ci - runs-on: ubuntu-latest - environment: - name: PyPI - url: https://pypi.org/p/jsonschema - permissions: - contents: write - id-token: write - - steps: - - uses: actions/checkout@v4 - with: - fetch-depth: 0 - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: "3.x" - - name: Install dependencies - run: python -m pip install build - - name: Create packages - run: python -m build . - - name: Publish to PyPI - if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') - uses: pypa/gh-action-pypi-publish@release/v1 - - name: Create a Release - if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') - uses: softprops/action-gh-release@v2 - with: - files: | - dist/* - generate_release_notes: true diff --git a/agent/vendor/jsonschema-4.23.0/.github/workflows/documentation-links.yml b/agent/vendor/jsonschema-4.23.0/.github/workflows/documentation-links.yml deleted file mode 100644 index 5757faf47..000000000 --- a/agent/vendor/jsonschema-4.23.0/.github/workflows/documentation-links.yml +++ /dev/null @@ -1,16 +0,0 @@ -name: Read the Docs Pull Request Preview -on: - pull_request_target: - types: - - opened - -permissions: - pull-requests: write - -jobs: - documentation-links: - runs-on: ubuntu-latest - steps: - - uses: readthedocs/actions/preview@v1 - with: - project-slug: "python-jsonschema" diff --git a/agent/vendor/jsonschema-4.23.0/.github/workflows/fuzz.yml b/agent/vendor/jsonschema-4.23.0/.github/workflows/fuzz.yml deleted file mode 100644 index eaabb4fb5..000000000 --- a/agent/vendor/jsonschema-4.23.0/.github/workflows/fuzz.yml +++ /dev/null @@ -1,30 +0,0 @@ -name: CIFuzz - -on: - pull_request: - branches: - - main - -jobs: - Fuzzing: - runs-on: ubuntu-latest - steps: - - name: Build Fuzzers - id: build - uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master - with: - oss-fuzz-project-name: "jsonschema" - language: python - continue-on-error: true - - name: Run Fuzzers - if: steps.build.outcome == 'success' - uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master - with: - oss-fuzz-project-name: "jsonschema" - fuzz-seconds: 30 - - name: Upload Crash - uses: actions/upload-artifact@v4 - if: failure() && steps.build.outcome == 'success' - with: - name: artifacts - path: ./out/artifacts diff --git a/agent/vendor/jsonschema-4.23.0/.gitignore b/agent/vendor/jsonschema-4.23.0/.gitignore deleted file mode 100644 index 05ba8b6d4..000000000 --- a/agent/vendor/jsonschema-4.23.0/.gitignore +++ /dev/null @@ -1,158 +0,0 @@ -/TODO* -/dirhtml/ -_cache -_static -_templates - -# Byte-compiled / optimized / DLL files -__pycache__/ -*.py[cod] -*$py.class - -# C extensions -*.so - -# Distribution / packaging -.Python -build/ -develop-eggs/ -dist/ -downloads/ -eggs/ -.eggs/ -lib/ -lib64/ -parts/ -sdist/ -var/ -wheels/ -share/python-wheels/ -*.egg-info/ -.installed.cfg -*.egg -MANIFEST - -# PyInstaller -# Usually these files are written by a python script from a template -# before PyInstaller builds the exe, so as to inject date/other infos into it. -*.manifest -*.spec - -# Installer logs -pip-log.txt -pip-delete-this-directory.txt - -# Unit test / coverage reports -htmlcov/ -.tox/ -.nox/ -.coverage -.coverage.* -.cache -nosetests.xml -coverage.xml -*.cover -*.py,cover -.hypothesis/ -.pytest_cache/ -cover/ - -# Translations -*.mo -*.pot - -# Django stuff: -*.log -local_settings.py -db.sqlite3 -db.sqlite3-journal - -# Flask stuff: -instance/ -.webassets-cache - -# Scrapy stuff: -.scrapy - -# Sphinx documentation -docs/_build/ - -# PyBuilder -.pybuilder/ -target/ - -# Jupyter Notebook -.ipynb_checkpoints - -# IPython -profile_default/ -ipython_config.py - -# pyenv -# For a library or package, you might want to ignore these files since the code is -# intended to run in multiple environments; otherwise, check them in: -# .python-version - -# pipenv -# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. -# However, in case of collaboration, if having platform-specific dependencies or dependencies -# having no cross-platform support, pipenv may install dependencies that don't work, or not -# install all needed dependencies. -#Pipfile.lock - -# poetry -# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. -# This is especially recommended for binary packages to ensure reproducibility, and is more -# commonly ignored for libraries. -# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control -#poetry.lock - -# PEP 582; used by e.g. github.com/David-OConnor/pyflow -__pypackages__/ - -# Celery stuff -celerybeat-schedule -celerybeat.pid - -# SageMath parsed files -*.sage.py - -# Environments -.env -.venv -env/ -venv/ -ENV/ -env.bak/ -venv.bak/ - -# Spyder project settings -.spyderproject -.spyproject - -# Rope project settings -.ropeproject - -# mkdocs documentation -/site - -# mypy -.mypy_cache/ -.dmypy.json -dmypy.json - -# Pyre type checker -.pyre/ - -# pytype static type analyzer -.pytype/ - -# Cython debug symbols -cython_debug/ - -# PyCharm -# JetBrains specific template is maintainted in a separate JetBrains.gitignore that can -# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore -# and can be added to the global gitignore or merged into this file. For a more nuclear -# option (not recommended) you can uncomment the following to ignore the entire idea folder. -#.idea/ diff --git a/agent/vendor/jsonschema-4.23.0/.pre-commit-config.yaml b/agent/vendor/jsonschema-4.23.0/.pre-commit-config.yaml deleted file mode 100644 index a42390115..000000000 --- a/agent/vendor/jsonschema-4.23.0/.pre-commit-config.yaml +++ /dev/null @@ -1,31 +0,0 @@ -exclude: json/ - -repos: - - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.6.0 - hooks: - - id: check-ast - - id: check-json - - id: check-toml - - id: check-vcs-permalinks - - id: check-yaml - - id: debug-statements - exclude: "^jsonschema/tests/_suite.py$" - - id: end-of-file-fixer - - id: mixed-line-ending - args: [--fix, lf] - - id: trailing-whitespace - - repo: https://github.com/astral-sh/ruff-pre-commit - rev: "v0.5.0" - hooks: - - id: ruff - args: [--fix, --exit-non-zero-on-fix] - - repo: https://github.com/PyCQA/isort - rev: 5.13.2 - hooks: - - id: isort - - repo: https://github.com/pre-commit/mirrors-prettier - rev: "v4.0.0-alpha.8" - hooks: - - id: prettier - exclude: "^jsonschema/benchmarks/issue232/issue.json$" diff --git a/agent/vendor/jsonschema-4.23.0/.pre-commit-hooks.yaml b/agent/vendor/jsonschema-4.23.0/.pre-commit-hooks.yaml deleted file mode 100644 index f80671548..000000000 --- a/agent/vendor/jsonschema-4.23.0/.pre-commit-hooks.yaml +++ /dev/null @@ -1,6 +0,0 @@ -- id: jsonschema - name: jsonschema - description: json schema validation - language: python - pass_filenames: false - entry: jsonschema diff --git a/agent/vendor/jsonschema-4.23.0/.readthedocs.yaml b/agent/vendor/jsonschema-4.23.0/.readthedocs.yaml deleted file mode 100644 index 31043883e..000000000 --- a/agent/vendor/jsonschema-4.23.0/.readthedocs.yaml +++ /dev/null @@ -1,19 +0,0 @@ -version: 2 - -build: - os: ubuntu-22.04 - apt_packages: - - inkscape - tools: - python: "3.11" - -sphinx: - builder: dirhtml - configuration: docs/conf.py - fail_on_warning: true - -formats: all - -python: - install: - - requirements: docs/requirements.txt diff --git a/agent/vendor/jsonschema-4.23.0/CHANGELOG.rst b/agent/vendor/jsonschema-4.23.0/CHANGELOG.rst deleted file mode 100644 index a7b9d86eb..000000000 --- a/agent/vendor/jsonschema-4.23.0/CHANGELOG.rst +++ /dev/null @@ -1,606 +0,0 @@ -v4.23.0 -======= - -* Do not reorder dictionaries (schemas, instances) that are printed as part of validation errors. -* Declare support for Py3.13 - -v4.22.0 -======= - -* Improve ``best_match`` (and thereby error messages from ``jsonschema.validate``) in cases where there are multiple *sibling* errors from applying ``anyOf`` / ``allOf`` -- i.e. when multiple elements of a JSON array have errors, we now do prefer showing errors from earlier elements rather than simply showing an error for the full array (#1250). -* (Micro-)optimize equality checks when comparing for JSON Schema equality by first checking for object identity, as ``==`` would. - -v4.21.1 -======= - -* Slightly speed up the ``contains`` keyword by removing some unnecessary validator (re-)creation. - -v4.21.0 -======= - -* Fix the behavior of ``enum`` in the presence of ``0`` or ``1`` to properly consider ``True`` and ``False`` unequal (#1208). -* Special case the error message for ``{min,max}{Items,Length,Properties}`` when they're checking for emptiness rather than true length. - -v4.20.0 -======= - -* Properly consider items (and properties) to be evaluated by ``unevaluatedItems`` (resp. ``unevaluatedProperties``) when behind a ``$dynamicRef`` as specified by the 2020 and 2019 specifications. -* ``jsonschema.exceptions.ErrorTree.__setitem__`` is now deprecated. - More broadly, in general users of ``jsonschema`` should never be mutating objects owned by the library. - -v4.19.2 -======= - -* Fix the error message for additional items when used with heterogeneous arrays. -* Don't leak the ``additionalItems`` keyword into JSON Schema draft 2020-12, where it was replaced by ``items``. - -v4.19.1 -======= - -* Single label hostnames are now properly considered valid according to the ``hostname`` format. - This is the behavior specified by the relevant RFC (1123). - IDN hostname behavior was already correct. - -v4.19.0 -======= - -* Importing the ``Validator`` protocol directly from the package root is deprecated. - Import it from ``jsonschema.protocols.Validator`` instead. -* Automatic retrieval of remote references (which is still deprecated) now properly succeeds even if the retrieved resource does not declare which version of JSON Schema it uses. - Such resources are assumed to be 2020-12 schemas. - This more closely matches the pre-referencing library behavior. - -v4.18.6 -======= - -* Set a ``jsonschema`` specific user agent when automatically retrieving remote references (which is deprecated). - -v4.18.5 -======= - -* Declare support for Py3.12 - -v4.18.4 -======= - -* Improve the hashability of wrapped referencing exceptions when they contain hashable data. - -v4.18.3 -======= - -* Properly preserve ``applicable_validators`` in extended validators. - Specifically, validators extending early drafts where siblings of ``$ref`` were ignored will properly ignore siblings in the extended validator. - -v4.18.2 -======= - -* Fix an additional regression with the deprecated ``jsonschema.RefResolver`` and pointer resolution. - -v4.18.1 -======= - -* Fix a regression with ``jsonschema.RefResolver`` based resolution when used in combination with a custom validation dialect (via ``jsonschema.validators.create``). - -v4.18.0 -======= - -This release majorly rehauls the way in which JSON Schema reference resolution is configured. -It does so in a way that *should* be backwards compatible, preserving old behavior whilst emitting deprecation warnings. - -* ``jsonschema.RefResolver`` is now deprecated in favor of the new `referencing library `_. - ``referencing`` will begin in beta, but already is more compliant than the existing ``$ref`` support. - This change is a culmination of a meaningful chunk of work to make ``$ref`` resolution more flexible and more correct. - Backwards compatibility *should* be preserved for existing code which uses ``RefResolver``, though doing so is again now deprecated, and all such use cases should be doable using the new APIs. - Please file issues on the ``referencing`` tracker if there is functionality missing from it, or here on the ``jsonschema`` issue tracker if you have issues with existing code not functioning the same, or with figuring out how to change it to use ``referencing``. - In particular, this referencing change includes a change concerning *automatic* retrieval of remote references (retrieving ``http://foo/bar`` automatically within a schema). - This behavior has always been a potential security risk and counter to the recommendations of the JSON Schema specifications; it has survived this long essentially only for backwards compatibility reasons, and now explicitly produces warnings. - The ``referencing`` library itself will *not* automatically retrieve references if you interact directly with it, so the deprecated behavior is only triggered if you fully rely on the default ``$ref`` resolution behavior and also include remote references in your schema, which will still be retrieved during the deprecation period (after which they will become an error). -* Support for Python 3.7 has been dropped, as it is nearing end-of-life. - This should not be a "visible" change in the sense that ``requires-python`` has been updated, so users using 3.7 should still receive ``v4.17.3`` when installing the library. -* On draft 2019-09, ``unevaluatedItems`` now properly does *not* consider items to be evaluated by an ``additionalItems`` schema if ``items`` is missing from the schema, as the specification says in this case that ``additionalItems`` must be completely ignored. -* Fix the ``date`` format checker on Python 3.11 (when format assertion behavior is enabled), where it was too liberal (#1076). -* Speed up validation of ``unevaluatedProperties`` (#1075). - -Deprecations ------------- - -* ``jsonschema.RefResolver`` -- see above for details on the replacement -* ``jsonschema.RefResolutionError`` -- see above for details on the replacement -* relying on automatic resolution of remote references -- see above for details on the replacement -* importing ``jsonschema.ErrorTree`` -- instead import it via ``jsonschema.exceptions.ErrorTree`` -* importing ``jsonschema.FormatError`` -- instead import it via ``jsonschema.exceptions.FormatError`` - -v4.17.3 -======= - -* Fix instantiating validators with cached refs to boolean schemas - rather than objects (#1018). - -v4.17.2 -======= - -* Empty strings are not valid relative JSON Pointers (aren't valid under the - RJP format). -* Durations without (trailing) units are not valid durations (aren't - valid under the duration format). This involves changing the dependency - used for validating durations (from ``isoduration`` to ``isodate``). - -v4.17.1 -======= - -* The error message when using ``unevaluatedProperties`` with a non-trivial - schema value (i.e. something other than ``false``) has been improved (#996). - -v4.17.0 -======= - -* The ``check_schema`` method on ``jsonschema.protocols.Validator`` instances - now *enables* format validation by default when run. This can catch some - additional invalid schemas (e.g. containing invalid regular expressions) - where the issue is indeed uncovered by validating against the metaschema - with format validation enabled as an assertion. -* The ``jsonschema`` CLI (along with ``jsonschema.cli`` the module) are now - deprecated. Use ``check-jsonschema`` instead, which can be installed via - ``pip install check-jsonschema`` and found - `here `_. - -v4.16.1 -======= - -* Make ``ErrorTree`` have a more grammatically correct ``repr``. - -v4.16.0 -======= - -* Improve the base URI behavior when resolving a ``$ref`` to a resolution URI - which is different from the resolved schema's declared ``$id``. -* Accessing ``jsonschema.draftN_format_checker`` is deprecated. Instead, if you - want access to the format checker itself, it is exposed as - ``jsonschema.validators.DraftNValidator.FORMAT_CHECKER`` on any - ``jsonschema.protocols.Validator``. - -v4.15.0 -======= - -* A specific API Reference page is now present in the documentation. -* ``$ref`` on earlier drafts (specifically draft 7 and 6) has been "fixed" to - follow the specified behavior when present alongside a sibling ``$id``. - Specifically the ID is now properly ignored, and references are resolved - against whatever resolution scope was previously relevant. - -v4.14.0 -======= - -* ``FormatChecker.cls_checks`` is deprecated. Use ``FormatChecker.checks`` on - an instance of ``FormatChecker`` instead. -* ``unevaluatedItems`` has been fixed for draft 2019. It's nonetheless - discouraged to use draft 2019 for any schemas, new or old. -* Fix a number of minor annotation issues in ``protocols.Validator`` - -v4.13.0 -======= - -* Add support for creating validator classes whose metaschema uses a different - dialect than its schemas. In other words, they may use draft2020-12 to define - which schemas are valid, but the schemas themselves use draft7 (or a custom - dialect, etc.) to define which *instances* are valid. Doing this is likely - not something most users, even metaschema authors, may need, but occasionally - will be useful for advanced use cases. - -v4.12.1 -======= - -* Fix some stray comments in the README. - -v4.12.0 -======= - -* Warn at runtime when subclassing validator classes. Doing so was not - intended to be public API, though it seems some downstream libraries - do so. A future version will make this an error, as it is brittle and - better served by composing validator objects instead. Feel free to reach - out if there are any cases where changing existing code seems difficult - and I can try to provide guidance. - -v4.11.0 -======= - -* Make the rendered README in PyPI simpler and fancier. Thanks Hynek (#983)! - -v4.10.3 -======= - -* ``jsonschema.validators.validator_for`` now properly uses the explicitly - provided default validator even if the ``$schema`` URI is not found. - -v4.10.2 -======= - -* Fix a second place where subclasses may have added attrs attributes (#982). - -v4.10.1 -======= - -* Fix Validator.evolve (and APIs like ``iter_errors`` which call it) for cases - where the validator class has been subclassed. Doing so wasn't intended to be - public API, but given it didn't warn or raise an error it's of course - understandable. The next release however will make it warn (and a future one - will make it error). If you need help migrating usage of inheriting from a - validator class feel free to open a discussion and I'll try to give some - guidance (#982). - -v4.10.0 -======= - -* Add support for referencing schemas with ``$ref`` across different versions - of the specification than the referrer's - -v4.9.1 -====== - -* Update some documentation examples to use newer validator releases in their - sample code. - -v4.9.0 -====== - -* Fix relative ``$ref`` resolution when the base URI is a URN or other scheme - (#544). -* ``pkgutil.resolve_name`` is now used to retrieve validators - provided on the command line. This function is only available on - 3.9+, so 3.7 and 3.8 (which are still supported) now rely on the - `pkgutil_resolve_name `_ - backport package. Note however that the CLI itself is due - to be deprecated shortly in favor of `check-jsonschema - `_. - -v4.8.0 -====== - -* ``best_match`` no longer traverses into ``anyOf`` and ``oneOf`` when all of - the errors within them seem equally applicable. This should lead to clearer - error messages in some cases where no branches were matched. - -v4.7.2 -====== - -* Also have ``best_match`` handle cases where the ``type`` validator is an - array. - -v4.7.1 -====== - -* Minor tweak of the PyPI hyperlink names - -v4.7.0 -====== - -* Enhance ``best_match`` to prefer errors from branches of the schema which - match the instance's type (#728) - -v4.6.2 -====== - -* Fix a number of minor typos in docstrings, mostly private ones (#969) - -v4.6.1 -====== - -* Gut the (incomplete) implementation of ``recursiveRef`` on draft 2019. It - needs completing, but for now can lead to recursion errors (e.g. #847). - -v4.6.0 -====== - -* Fix ``unevaluatedProperties`` and ``unevaluatedItems`` for types they should - ignore (#949) -* ``jsonschema`` now uses `hatch `_ for its build - process. This should be completely transparent to end-users (and only matters - to contributors). - -v4.5.1 -====== - -* Revert changes to ``$dynamicRef`` which caused a performance regression - in v4.5.0 - -v4.5.0 -====== - -* Validator classes for each version now maintain references to the correct - corresponding format checker (#905) -* Development has moved to a `GitHub organization - `_. - No functional behavior changes are expected from the change. - -v4.4.0 -====== - -* Add ``mypy`` support (#892) -* Add support for Python 3.11 - -v4.3.3 -====== - -* Properly report deprecation warnings at the right stack level (#899) - -v4.3.2 -====== - -* Additional performance improvements for resolving refs (#896) - -v4.3.1 -====== - -* Resolving refs has had performance improvements (#893) - -v4.3.0 -====== - -* Fix undesired fallback to brute force container uniqueness check on - certain input types (#893) -* Implement a PEP544 Protocol for validator classes (#890) - -v4.2.1 -====== - -* Pin ``importlib.resources`` from below (#877) - -v4.2.0 -====== - -* Use ``importlib.resources`` to load schemas (#873) -* Ensure all elements of arrays are verified for uniqueness by ``uniqueItems`` - (#866) - -v4.1.2 -====== - -* Fix ``dependentSchemas`` to properly consider non-object instances to be - valid (#850) - -v4.1.1 -====== - -* Fix ``prefixItems`` not indicating which item was invalid within the instance - path (#862) - -v4.1.0 -====== - -* Add Python 3.10 to the list of supported Python versions - -v4.0.1 -====== - -* Fix the declaration of minimum supported Python version (#846) - -v4.0.0 -====== - -* Partial support for Draft 2020-12 (as well as 2019-09). - Thanks to Thomas Schmidt and Harald Nezbeda. -* ``False`` and ``0`` are now properly considered non-equal even - recursively within a container (#686). As part of this change, - ``uniqueItems`` validation may be *slower* in some cases. Please feel - free to report any significant performance regressions, though in - some cases they may be difficult to address given the specification - requirement. -* The CLI has been improved, and in particular now supports a ``--output`` - option (with ``plain`` (default) or ``pretty`` arguments) to control the - output format. Future work may add additional machine-parsable output - formats. -* Code surrounding ``DEFAULT_TYPES`` and the legacy mechanism for - specifying types to validators have been removed, as per the deprecation - policy. Validators should use the ``TypeChecker`` object to customize - the set of Python types corresponding to JSON Schema types. -* Validation errors now have a ``json_path`` attribute, describing their - location in JSON path format -* Support for the IP address and domain name formats has been improved -* Support for Python 2 and 3.6 has been dropped, with ``python_requires`` - properly set. -* ``multipleOf`` could overflow when given sufficiently large numbers. Now, - when an overflow occurs, ``jsonschema`` will fall back to using fraction - division (#746). -* ``jsonschema.__version__``, ``jsonschema.validators.validators``, - ``jsonschema.validators.meta_schemas`` and - ``jsonschema.RefResolver.in_scope`` have been deprecated, as has - passing a second-argument schema to ``Validator.iter_errors`` and - ``Validator.is_valid``. - -v3.2.0 -====== - -* Added a ``format_nongpl`` setuptools extra, which installs only ``format`` - dependencies that are non-GPL (#619). - -v3.1.1 -====== - -* Temporarily revert the switch to ``js-regex`` until #611 and #612 are - resolved. - -v3.1.0 -====== - -* Regular expressions throughout schemas now respect the ECMA 262 dialect, as - recommended by the specification (#609). - -v3.0.2 -====== - -* Fixed a bug where ``0`` and ``False`` were considered equal by - ``const`` and ``enum`` (#575). - -v3.0.1 -====== - -* Fixed a bug where extending validators did not preserve their notion - of which validator property contains ``$id`` information. - -v3.0.0 -====== - -* Support for Draft 6 and Draft 7 -* Draft 7 is now the default -* New ``TypeChecker`` object for more complex type definitions (and overrides) -* Falling back to isodate for the date-time format checker is no longer - attempted, in accordance with the specification - -v2.6.0 -====== - -* Support for Python 2.6 has been dropped. -* Improve a few error messages for ``uniqueItems`` (#224) and - ``additionalProperties`` (#317) -* Fixed an issue with ``ErrorTree``'s handling of multiple errors (#288) - -v2.5.0 -====== - -* Improved performance on CPython by adding caching around ref resolution - (#203) - -v2.4.0 -====== - -* Added a CLI (#134) -* Added absolute path and absolute schema path to errors (#120) -* Added ``relevance`` -* Meta-schemas are now loaded via ``pkgutil`` - -v2.3.0 -====== - -* Added ``by_relevance`` and ``best_match`` (#91) -* Fixed ``format`` to allow adding formats for non-strings (#125) -* Fixed the ``uri`` format to reject URI references (#131) - -v2.2.0 -====== - -* Compile the host name regex (#127) -* Allow arbitrary objects to be types (#129) - -v2.1.0 -====== - -* Support RFC 3339 datetimes in conformance with the spec -* Fixed error paths for additionalItems + items (#122) -* Fixed wording for min / maxProperties (#117) - - -v2.0.0 -====== - -* Added ``create`` and ``extend`` to ``jsonschema.validators`` -* Removed ``ValidatorMixin`` -* Fixed array indices ref resolution (#95) -* Fixed unknown scheme defragmenting and handling (#102) - - -v1.3.0 -====== - -* Better error tracebacks (#83) -* Raise exceptions in ``ErrorTree``\s for keys not in the instance (#92) -* __cause__ (#93) - - -v1.2.0 -====== - -* More attributes for ValidationError (#86) -* Added ``ValidatorMixin.descend`` -* Fixed bad ``RefResolutionError`` message (#82) - - -v1.1.0 -====== - -* Canonicalize URIs (#70) -* Allow attaching exceptions to ``format`` errors (#77) - - -v1.0.0 -====== - -* Support for Draft 4 -* Support for format -* Longs are ints too! -* Fixed a number of issues with ``$ref`` support (#66) -* Draft4Validator is now the default -* ``ValidationError.path`` is now in sequential order -* Added ``ValidatorMixin`` - - -v0.8.0 -====== - -* Full support for JSON References -* ``validates`` for registering new validators -* Documentation -* Bugfixes - - * uniqueItems not so unique (#34) - * Improper any (#47) - - -v0.7 -==== - -* Partial support for (JSON Pointer) ``$ref`` -* Deprecations - - * ``Validator`` is replaced by ``Draft3Validator`` with a slightly different - interface - * ``validator(meta_validate=False)`` - - -v0.6 -==== - -* Bugfixes - - * Issue #30 - Wrong behavior for the dependencies property validation - * Fixed a miswritten test - - -v0.5 -==== - -* Bugfixes - - * Issue #17 - require path for error objects - * Issue #18 - multiple type validation for non-objects - - -v0.4 -==== - -* Preliminary support for programmatic access to error details (Issue #5). - There are certainly some corner cases that don't do the right thing yet, but - this works mostly. - - In order to make this happen (and also to clean things up a bit), a number - of deprecations are necessary: - - * ``stop_on_error`` is deprecated in ``Validator.__init__``. Use - ``Validator.iter_errors()`` instead. - * ``number_types`` and ``string_types`` are deprecated there as well. - Use ``types={"number" : ..., "string" : ...}`` instead. - * ``meta_validate`` is also deprecated, and instead is now accepted as - an argument to ``validate``, ``iter_errors`` and ``is_valid``. - -* A bugfix or two - - -v0.3 -==== - -* Default for unknown types and properties is now to *not* error (consistent - with the schema). -* Python 3 support -* Removed dependency on SecureTypes now that the hash bug has been resolved. -* "Numerous bug fixes" -- most notably, a divisibleBy error for floats and a - bunch of missing typechecks for irrelevant properties. diff --git a/agent/vendor/jsonschema-4.23.0/CONTRIBUTING.rst b/agent/vendor/jsonschema-4.23.0/CONTRIBUTING.rst deleted file mode 100644 index c051d5697..000000000 --- a/agent/vendor/jsonschema-4.23.0/CONTRIBUTING.rst +++ /dev/null @@ -1,60 +0,0 @@ -============================ -Contributing to `jsonschema` -============================ - -Found a bug? ------------- - -If you suspect you may have found a security-related vulnerability, please follow the instructions in `the security policy `_. - -Otherwise, it is extremely helpful if you first search to see whether your bug has been `previously reported on the Issues tab `_. - -If it doesn't appear to be a known issue, please `file a new one `_, and include a **title and clear description**, along with as much relevant information as possible. -Including a *minimal*, *self-sufficient* bit of code (often an instance and schema) is the fastest way to get attention, along with a description of the behavior you expect, and if you're able, a link to where in the specification contains the behavior you're noticing is incorrect. - -Pull requests to fix your issue are of course very welcome. - - -Fixing a Bug? -------------- - -Please open a new GitHub pull request with the change, along with new tests. - -Ensure the PR description clearly describes the problem and solution. Include the relevant issue number if applicable. - -Continuous integration via GitHub actions should run to indicate whether your change passes both the test suite as well as linters. -Please ensure it passes, or indicate in a comment if you believe it fails spuriously. - - -Adding New Functionality? -------------------------- - -Please discuss any larger changes ahead of time for the sake of your own time! - -Improvements are very welcome, but large pull requests, disruptive ones, or backwards incompatible ones, can lead to long back and forth discussions. - -You're welcome to suggest a change in an issue and thereby get some initial feedback before embarking on an effort that may not get merged. - - -Improving the Documentation? ----------------------------- - -Writing good documentation is challenging both to prioritize and to do well. - -Any help you may have would be great, especially if you're a beginner who's struggled to understand a part of the library. - -Documentation is written in `Sphinx-flavored reStructuredText `_, so you'll want to familiarize yourself a bit with Sphinx. - -Feel free to file issues or pull requests. - - -Have a Question? ----------------- - -Please do not use the issue tracker for questions, it's reserved for things believed to be bugs, or new functionality. - -There is a `discussions tab `_ where general questions can be asked. - -Answers on it are best-effort. - -Any help you can offer to answer others' questions is of course very welcome as well. diff --git a/agent/vendor/jsonschema-4.23.0/COPYING b/agent/vendor/jsonschema-4.23.0/COPYING deleted file mode 100644 index af9cfbdb1..000000000 --- a/agent/vendor/jsonschema-4.23.0/COPYING +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2013 Julian Berman - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/agent/vendor/jsonschema-4.23.0/PKG-INFO b/agent/vendor/jsonschema-4.23.0/PKG-INFO deleted file mode 100644 index d9536b6bf..000000000 --- a/agent/vendor/jsonschema-4.23.0/PKG-INFO +++ /dev/null @@ -1,176 +0,0 @@ -Metadata-Version: 2.3 -Name: jsonschema -Version: 4.23.0 -Summary: An implementation of JSON Schema validation for Python -Project-URL: Homepage, https://github.com/python-jsonschema/jsonschema -Project-URL: Documentation, https://python-jsonschema.readthedocs.io/ -Project-URL: Issues, https://github.com/python-jsonschema/jsonschema/issues/ -Project-URL: Funding, https://github.com/sponsors/Julian -Project-URL: Tidelift, https://tidelift.com/subscription/pkg/pypi-jsonschema?utm_source=pypi-jsonschema&utm_medium=referral&utm_campaign=pypi-link -Project-URL: Changelog, https://github.com/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst -Project-URL: Source, https://github.com/python-jsonschema/jsonschema -Author-email: Julian Berman -License: MIT -License-File: COPYING -Keywords: data validation,json,json schema,jsonschema,validation -Classifier: Development Status :: 5 - Production/Stable -Classifier: Intended Audience :: Developers -Classifier: License :: OSI Approved :: MIT License -Classifier: Operating System :: OS Independent -Classifier: Programming Language :: Python -Classifier: Programming Language :: Python :: 3.8 -Classifier: Programming Language :: Python :: 3.9 -Classifier: Programming Language :: Python :: 3.10 -Classifier: Programming Language :: Python :: 3.11 -Classifier: Programming Language :: Python :: 3.12 -Classifier: Programming Language :: Python :: 3.13 -Classifier: Programming Language :: Python :: Implementation :: CPython -Classifier: Programming Language :: Python :: Implementation :: PyPy -Classifier: Topic :: File Formats :: JSON -Classifier: Topic :: File Formats :: JSON :: JSON Schema -Requires-Python: >=3.8 -Requires-Dist: attrs>=22.2.0 -Requires-Dist: importlib-resources>=1.4.0; python_version < '3.9' -Requires-Dist: jsonschema-specifications>=2023.03.6 -Requires-Dist: pkgutil-resolve-name>=1.3.10; python_version < '3.9' -Requires-Dist: referencing>=0.28.4 -Requires-Dist: rpds-py>=0.7.1 -Provides-Extra: format -Requires-Dist: fqdn; extra == 'format' -Requires-Dist: idna; extra == 'format' -Requires-Dist: isoduration; extra == 'format' -Requires-Dist: jsonpointer>1.13; extra == 'format' -Requires-Dist: rfc3339-validator; extra == 'format' -Requires-Dist: rfc3987; extra == 'format' -Requires-Dist: uri-template; extra == 'format' -Requires-Dist: webcolors>=1.11; extra == 'format' -Provides-Extra: format-nongpl -Requires-Dist: fqdn; extra == 'format-nongpl' -Requires-Dist: idna; extra == 'format-nongpl' -Requires-Dist: isoduration; extra == 'format-nongpl' -Requires-Dist: jsonpointer>1.13; extra == 'format-nongpl' -Requires-Dist: rfc3339-validator; extra == 'format-nongpl' -Requires-Dist: rfc3986-validator>0.1.0; extra == 'format-nongpl' -Requires-Dist: uri-template; extra == 'format-nongpl' -Requires-Dist: webcolors>=24.6.0; extra == 'format-nongpl' -Description-Content-Type: text/x-rst - -========== -jsonschema -========== - -|PyPI| |Pythons| |CI| |ReadTheDocs| |Precommit| |Zenodo| - -.. |PyPI| image:: https://img.shields.io/pypi/v/jsonschema.svg - :alt: PyPI version - :target: https://pypi.org/project/jsonschema/ - -.. |Pythons| image:: https://img.shields.io/pypi/pyversions/jsonschema.svg - :alt: Supported Python versions - :target: https://pypi.org/project/jsonschema/ - -.. |CI| image:: https://github.com/python-jsonschema/jsonschema/workflows/CI/badge.svg - :alt: Build status - :target: https://github.com/python-jsonschema/jsonschema/actions?query=workflow%3ACI - -.. |ReadTheDocs| image:: https://readthedocs.org/projects/python-jsonschema/badge/?version=stable&style=flat - :alt: ReadTheDocs status - :target: https://python-jsonschema.readthedocs.io/en/stable/ - -.. |Precommit| image:: https://results.pre-commit.ci/badge/github/python-jsonschema/jsonschema/main.svg - :alt: pre-commit.ci status - :target: https://results.pre-commit.ci/latest/github/python-jsonschema/jsonschema/main - -.. |Zenodo| image:: https://zenodo.org/badge/3072629.svg - :alt: Zenodo DOI - :target: https://zenodo.org/badge/latestdoi/3072629 - - -``jsonschema`` is an implementation of the `JSON Schema `_ specification for Python. - -.. code:: python - - >>> from jsonschema import validate - - >>> # A sample schema, like what we'd get from json.load() - >>> schema = { - ... "type" : "object", - ... "properties" : { - ... "price" : {"type" : "number"}, - ... "name" : {"type" : "string"}, - ... }, - ... } - - >>> # If no exception is raised by validate(), the instance is valid. - >>> validate(instance={"name" : "Eggs", "price" : 34.99}, schema=schema) - - >>> validate( - ... instance={"name" : "Eggs", "price" : "Invalid"}, schema=schema, - ... ) # doctest: +IGNORE_EXCEPTION_DETAIL - Traceback (most recent call last): - ... - ValidationError: 'Invalid' is not of type 'number' - -It can also be used from the command line by installing `check-jsonschema `_. - -Features --------- - -* Full support for `Draft 2020-12 `_, `Draft 2019-09 `_, `Draft 7 `_, `Draft 6 `_, `Draft 4 `_ and `Draft 3 `_ - -* `Lazy validation `_ that can iteratively report *all* validation errors. - -* `Programmatic querying `_ of which properties or items failed validation. - - -Installation ------------- - -``jsonschema`` is available on `PyPI `_. You can install using `pip `_: - -.. code:: bash - - $ pip install jsonschema - - -Extras -====== - -Two extras are available when installing the package, both currently related to ``format`` validation: - - * ``format`` - * ``format-nongpl`` - -They can be used when installing in order to include additional dependencies, e.g.: - -.. code:: bash - - $ pip install jsonschema'[format]' - -Be aware that the mere presence of these dependencies – or even the specification of ``format`` checks in a schema – do *not* activate format checks (as per the specification). -Please read the `format validation documentation `_ for further details. - -About ------ - -I'm Julian Berman. - -``jsonschema`` is on `GitHub `_. - -Get in touch, via GitHub or otherwise, if you've got something to contribute, it'd be most welcome! - -You can also generally find me on Libera (nick: ``Julian``) in various channels, including ``#python``. - -If you feel overwhelmingly grateful, you can also `sponsor me `_. - -And for companies who appreciate ``jsonschema`` and its continued support and growth, ``jsonschema`` is also now supportable via `TideLift `_. - - -Release Information -------------------- - -v4.23.0 -======= - -* Do not reorder dictionaries (schemas, instances) that are printed as part of validation errors. -* Declare support for Py3.13 diff --git a/agent/vendor/jsonschema-4.23.0/README.rst b/agent/vendor/jsonschema-4.23.0/README.rst deleted file mode 100644 index 4889438ab..000000000 --- a/agent/vendor/jsonschema-4.23.0/README.rst +++ /dev/null @@ -1,141 +0,0 @@ -========== -jsonschema -========== - -|PyPI| |Pythons| |CI| |ReadTheDocs| |Precommit| |Zenodo| - -.. |PyPI| image:: https://img.shields.io/pypi/v/jsonschema.svg - :alt: PyPI version - :target: https://pypi.org/project/jsonschema/ - -.. |Pythons| image:: https://img.shields.io/pypi/pyversions/jsonschema.svg - :alt: Supported Python versions - :target: https://pypi.org/project/jsonschema/ - -.. |CI| image:: https://github.com/python-jsonschema/jsonschema/workflows/CI/badge.svg - :alt: Build status - :target: https://github.com/python-jsonschema/jsonschema/actions?query=workflow%3ACI - -.. |ReadTheDocs| image:: https://readthedocs.org/projects/python-jsonschema/badge/?version=stable&style=flat - :alt: ReadTheDocs status - :target: https://python-jsonschema.readthedocs.io/en/stable/ - -.. |Precommit| image:: https://results.pre-commit.ci/badge/github/python-jsonschema/jsonschema/main.svg - :alt: pre-commit.ci status - :target: https://results.pre-commit.ci/latest/github/python-jsonschema/jsonschema/main - -.. |Zenodo| image:: https://zenodo.org/badge/3072629.svg - :alt: Zenodo DOI - :target: https://zenodo.org/badge/latestdoi/3072629 - - -``jsonschema`` is an implementation of the `JSON Schema `_ specification for Python. - -.. code:: python - - >>> from jsonschema import validate - - >>> # A sample schema, like what we'd get from json.load() - >>> schema = { - ... "type" : "object", - ... "properties" : { - ... "price" : {"type" : "number"}, - ... "name" : {"type" : "string"}, - ... }, - ... } - - >>> # If no exception is raised by validate(), the instance is valid. - >>> validate(instance={"name" : "Eggs", "price" : 34.99}, schema=schema) - - >>> validate( - ... instance={"name" : "Eggs", "price" : "Invalid"}, schema=schema, - ... ) # doctest: +IGNORE_EXCEPTION_DETAIL - Traceback (most recent call last): - ... - ValidationError: 'Invalid' is not of type 'number' - -It can also be used from the command line by installing `check-jsonschema `_. - -Features --------- - -* Full support for `Draft 2020-12 `_, `Draft 2019-09 `_, `Draft 7 `_, `Draft 6 `_, `Draft 4 `_ and `Draft 3 `_ - -* `Lazy validation `_ that can iteratively report *all* validation errors. - -* `Programmatic querying `_ of which properties or items failed validation. - - -Installation ------------- - -``jsonschema`` is available on `PyPI `_. You can install using `pip `_: - -.. code:: bash - - $ pip install jsonschema - - -Extras -====== - -Two extras are available when installing the package, both currently related to ``format`` validation: - - * ``format`` - * ``format-nongpl`` - -They can be used when installing in order to include additional dependencies, e.g.: - -.. code:: bash - - $ pip install jsonschema'[format]' - -Be aware that the mere presence of these dependencies – or even the specification of ``format`` checks in a schema – do *not* activate format checks (as per the specification). -Please read the `format validation documentation `_ for further details. - -.. start cut from PyPI - -Running the Test Suite ----------------------- - -If you have ``nox`` installed (perhaps via ``pipx install nox`` or your package manager), running ``nox`` in the directory of your source checkout will run ``jsonschema``'s test suite on all of the versions of Python ``jsonschema`` supports. -If you don't have all of the versions that ``jsonschema`` is tested under, you'll likely want to run using ``nox``'s ``--no-error-on-missing-interpreters`` option. - -Of course you're also free to just run the tests on a single version with your favorite test runner. -The tests live in the ``jsonschema.tests`` package. - - -Benchmarks ----------- - -``jsonschema``'s benchmarks make use of `pyperf `_. -Running them can be done via:: - - $ nox -s perf - - -Community ---------- - -The JSON Schema specification has `a Slack `_, with an `invite link on its home page `_. -Many folks knowledgeable on authoring schemas can be found there. - -Otherwise, opening a `GitHub discussion `_ or asking questions on Stack Overflow are other means of getting help if you're stuck. - -.. end cut from PyPI - - -About ------ - -I'm Julian Berman. - -``jsonschema`` is on `GitHub `_. - -Get in touch, via GitHub or otherwise, if you've got something to contribute, it'd be most welcome! - -You can also generally find me on Libera (nick: ``Julian``) in various channels, including ``#python``. - -If you feel overwhelmingly grateful, you can also `sponsor me `_. - -And for companies who appreciate ``jsonschema`` and its continued support and growth, ``jsonschema`` is also now supportable via `TideLift `_. diff --git a/agent/vendor/jsonschema-4.23.0/docs/Makefile b/agent/vendor/jsonschema-4.23.0/docs/Makefile deleted file mode 100644 index f6315dfab..000000000 --- a/agent/vendor/jsonschema-4.23.0/docs/Makefile +++ /dev/null @@ -1,227 +0,0 @@ -# Makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -PYTHON = python -PAPER = -BUILDDIR = _build -SOURCEDIR = $(dir $(abspath $(lastword $(MAKEFILE_LIST)))) - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) $(SOURCEDIR) -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . - -.PHONY: help -help: - @echo "Please use \`make ' where is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " applehelp to make an Apple Help Book" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " epub3 to make an epub3" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " xml to make Docutils-native XML files" - @echo " pseudoxml to make pseudoxml-XML files for display purposes" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation" - @echo " coverage to run coverage check of the documentation (if enabled)" - @echo " spelling to run a spell check of the documentation" - @echo " dummy to check syntax errors of document sources" - -.PHONY: clean -clean: - rm -rf $(BUILDDIR)/* - -.PHONY: html -html: - $(PYTHON) -m sphinx -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -.PHONY: dirhtml -dirhtml: - $(PYTHON) -m sphinx -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -.PHONY: singlehtml -singlehtml: - $(PYTHON) -m sphinx -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -.PHONY: json -json: - $(PYTHON) -m sphinx -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -.PHONY: htmlhelp -htmlhelp: - $(PYTHON) -m sphinx -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -.PHONY: qthelp -qthelp: - $(PYTHON) -m sphinx -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/jsonschema.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/jsonschema.qhc" - -.PHONY: applehelp -applehelp: - $(PYTHON) -m sphinx -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp - @echo - @echo "Build finished. The help book is in $(BUILDDIR)/applehelp." - @echo "N.B. You won't be able to view it unless you put it in" \ - "~/Library/Documentation/Help or install it in your application" \ - "bundle." - -.PHONY: devhelp -devhelp: - $(PYTHON) -m sphinx -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/jsonschema" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/jsonschema" - @echo "# devhelp" - -.PHONY: epub -epub: - $(PYTHON) -m sphinx -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -.PHONY: epub3 -epub3: - $(PYTHON) -m sphinx -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3 - @echo - @echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3." - -.PHONY: latex -latex: - $(PYTHON) -m sphinx -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -.PHONY: latexpdf -latexpdf: - $(PYTHON) -m sphinx -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -.PHONY: latexpdfja -latexpdfja: - $(PYTHON) -m sphinx -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through platex and dvipdfmx..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -.PHONY: text -text: - $(PYTHON) -m sphinx -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -.PHONY: man -man: - $(PYTHON) -m sphinx -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -.PHONY: texinfo -texinfo: - $(PYTHON) -m sphinx -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -.PHONY: info -info: - $(PYTHON) -m sphinx -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." - -.PHONY: gettext -gettext: - $(PYTHON) -m sphinx -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -.PHONY: changes -changes: - $(PYTHON) -m sphinx -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -.PHONY: linkcheck -linkcheck: - $(PYTHON) -m sphinx -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -.PHONY: doctest -doctest: - $(PYTHON) -m sphinx -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." - -.PHONY: coverage -coverage: - $(PYTHON) -m sphinx -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage - @echo "Testing of coverage in the sources finished, look at the " \ - "results in $(BUILDDIR)/coverage/python.txt." - -.PHONY: xml -xml: - $(PYTHON) -m sphinx -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml - @echo - @echo "Build finished. The XML files are in $(BUILDDIR)/xml." - -.PHONY: pseudoxml -pseudoxml: - $(PYTHON) -m sphinx -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml - @echo - @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." - -.PHONY: spelling -spelling: - $(PYTHON) -m sphinx -b spelling $(ALLSPHINXOPTS) $(BUILDDIR)/spelling - @echo - @echo "Build finished. The spelling files are in $(BUILDDIR)/spelling." - -.PHONY: dummy -dummy: - $(PYTHON) -m sphinx -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/dummy - @echo - @echo "Build finished. Dummy builder generates no files." diff --git a/agent/vendor/jsonschema-4.23.0/docs/api/index.rst b/agent/vendor/jsonschema-4.23.0/docs/api/index.rst deleted file mode 100644 index 58ec22177..000000000 --- a/agent/vendor/jsonschema-4.23.0/docs/api/index.rst +++ /dev/null @@ -1,24 +0,0 @@ -API Reference -============= - -Submodules ----------- - -.. toctree:: - :titlesonly: - - /api/jsonschema/validators/index - /api/jsonschema/exceptions/index - /api/jsonschema/protocols/index - -:mod:`jsonschema` ------------------ - -.. automodule:: jsonschema - :members: - :imported-members: - :exclude-members: FormatError, Validator, ValidationError - -.. autodata:: jsonschema._format._F - -.. autodata:: jsonschema._typing.id_of diff --git a/agent/vendor/jsonschema-4.23.0/docs/api/jsonschema/exceptions/index.rst b/agent/vendor/jsonschema-4.23.0/docs/api/jsonschema/exceptions/index.rst deleted file mode 100644 index 8fb1f4f3c..000000000 --- a/agent/vendor/jsonschema-4.23.0/docs/api/jsonschema/exceptions/index.rst +++ /dev/null @@ -1,6 +0,0 @@ -:py:mod:`jsonschema.exceptions` -=============================== - -.. automodule:: jsonschema.exceptions - :members: - :undoc-members: diff --git a/agent/vendor/jsonschema-4.23.0/docs/api/jsonschema/protocols/index.rst b/agent/vendor/jsonschema-4.23.0/docs/api/jsonschema/protocols/index.rst deleted file mode 100644 index 195dbeeb2..000000000 --- a/agent/vendor/jsonschema-4.23.0/docs/api/jsonschema/protocols/index.rst +++ /dev/null @@ -1,6 +0,0 @@ -:py:mod:`jsonschema.protocols` -============================== - -.. automodule:: jsonschema.protocols - :members: - :undoc-members: diff --git a/agent/vendor/jsonschema-4.23.0/docs/api/jsonschema/validators/index.rst b/agent/vendor/jsonschema-4.23.0/docs/api/jsonschema/validators/index.rst deleted file mode 100644 index 13a9991ce..000000000 --- a/agent/vendor/jsonschema-4.23.0/docs/api/jsonschema/validators/index.rst +++ /dev/null @@ -1,7 +0,0 @@ -:py:mod:`jsonschema.validators` -=============================== - -.. automodule:: jsonschema.validators - :members: - :undoc-members: - :private-members: _RefResolver diff --git a/agent/vendor/jsonschema-4.23.0/docs/conf.py b/agent/vendor/jsonschema-4.23.0/docs/conf.py deleted file mode 100644 index 4f8d9f157..000000000 --- a/agent/vendor/jsonschema-4.23.0/docs/conf.py +++ /dev/null @@ -1,147 +0,0 @@ -from pathlib import Path -import importlib.metadata -import re - -ROOT = Path(__file__).parent.parent -PACKAGE_SRC = ROOT / "jsonschema" - -project = "jsonschema" -author = "Julian Berman" -copyright = "2013, " + author - -release = importlib.metadata.version("jsonschema") -version = release.partition("-")[0] - -language = "en" -default_role = "any" - -extensions = [ - "sphinx.ext.autodoc", - "sphinx.ext.autosectionlabel", - "sphinx.ext.coverage", - "sphinx.ext.doctest", - "sphinx.ext.extlinks", - "sphinx.ext.imgconverter", - "sphinx.ext.intersphinx", - "sphinx.ext.napoleon", - "sphinx.ext.viewcode", - "sphinx_copybutton", - "sphinx_json_schema_spec", - "sphinxcontrib.spelling", - "sphinxext.opengraph", -] - -cache_path = "_cache" - -pygments_style = "lovelace" -pygments_dark_style = "one-dark" - -html_theme = "furo" - -# See sphinx-doc/sphinx#10785 -_TYPE_ALIASES = { - "jsonschema._format._F": ("data", "_F"), - "_typing.id_of": ("data", "jsonschema._typing.id_of"), -} - - -def _resolve_broken_refs(app, env, node, contnode): - if node["refdomain"] != "py": - return - - if node["reftarget"].startswith("referencing."): # :( :( :( :( :( - node["reftype"] = "data" - from sphinx.ext import intersphinx - return intersphinx.resolve_reference_in_inventory( - env, "referencing", node, contnode, - ) - - kind, target = _TYPE_ALIASES.get(node["reftarget"], (None, None)) - if kind is not None: - return app.env.get_domain("py").resolve_xref( - env, - node["refdoc"], - app.builder, - kind, - target, - node, - contnode, - ) - - -def setup(app): - app.connect("missing-reference", _resolve_broken_refs) - - -# = Builders = - -doctest_global_setup = """ -from jsonschema import * -from jsonschema import exceptions -import jsonschema.validators -""" - - -def entire_domain(host): - return r"http.?://" + re.escape(host) + r"($|/.*)" - - -linkcheck_ignore = [ - entire_domain("img.shields.io"), - "https://github.com/python-jsonschema/jsonschema/actions", - "https://github.com/python-jsonschema/jsonschema/workflows/CI/badge.svg", -] - -# = Extensions = - -# -- autoapi -- - -suppress_warnings = [ - "autoapi.python_import_resolution", - "autoapi.toc_reference", - "epub.duplicated_toc_entry", -] -autoapi_root = "api" -autoapi_ignore = [ - "*/_[a-z]*.py", - "*/__main__.py", - "*/benchmarks/*", - "*/cli.py", - "*/tests/*", -] -autoapi_options = [ - "members", - "undoc-members", - "show-module-summary", - "imported-members", -] - -autoapi_type = "python" -autoapi_dirs = [PACKAGE_SRC] - -# -- autosectionlabel -- - -autosectionlabel_prefix_document = True - -# -- intersphinx -- - -intersphinx_mapping = { - "python": ("https://docs.python.org/3", None), - "referencing": ("https://referencing.readthedocs.io/en/stable/", None), -} - -# -- extlinks -- - -extlinks = { - "ujs": ("https://json-schema.org/understanding-json-schema%s", None), -} -extlinks_detect_hardcoded_links = True -# -- sphinx-copybutton -- - -copybutton_prompt_text = r">>> |\.\.\. |\$" -copybutton_prompt_is_regexp = True - -# -- sphinxcontrib-spelling -- - -spelling_word_list_filename = "spelling-wordlist.txt" -spelling_show_suggestions = True diff --git a/agent/vendor/jsonschema-4.23.0/docs/creating.rst b/agent/vendor/jsonschema-4.23.0/docs/creating.rst deleted file mode 100644 index 72b3590bc..000000000 --- a/agent/vendor/jsonschema-4.23.0/docs/creating.rst +++ /dev/null @@ -1,36 +0,0 @@ -.. currentmodule:: jsonschema.validators - -.. _creating-validators: - -======================================= -Creating or Extending Validator Classes -======================================= - -.. autofunction:: create - :noindex: - -.. autofunction:: extend - :noindex: - -.. autofunction:: validator_for - :noindex: - -.. autofunction:: validates - :noindex: - - -Creating Validation Errors --------------------------- - -Any validating function that validates against a subschema should call -``descend``, rather than ``iter_errors``. If it recurses into the -instance, or schema, it should pass one or both of the ``path`` or -``schema_path`` arguments to ``descend`` in order to properly maintain -where in the instance or schema respectively the error occurred. - -The Validator Protocol ----------------------- - -``jsonschema`` defines a `protocol `, `jsonschema.protocols.Validator` which can be used in type annotations to describe the type of a validator. - -For full details, see `validator-protocol`. diff --git a/agent/vendor/jsonschema-4.23.0/docs/errors.rst b/agent/vendor/jsonschema-4.23.0/docs/errors.rst deleted file mode 100644 index 9e8046ee6..000000000 --- a/agent/vendor/jsonschema-4.23.0/docs/errors.rst +++ /dev/null @@ -1,407 +0,0 @@ -========================== -Handling Validation Errors -========================== - -.. currentmodule:: jsonschema.exceptions - -When an invalid instance is encountered, a `ValidationError` will be -raised or returned, depending on which method or function is used. - -.. autoexception:: ValidationError - :noindex: - - The information carried by an error roughly breaks down into: - - =============== ================= ======================== - What Happened Why Did It Happen What Was Being Validated - =============== ================= ======================== - `message` `context` `instance` - - `cause` `json_path` - - `path` - - `schema` - - `schema_path` - - `validator` - - `validator_value` - =============== ================= ======================== - - - .. attribute:: message - - A human readable message explaining the error. - - .. attribute:: validator - - The name of the failed `keyword - `_. - - .. attribute:: validator_value - - The associated value for the failed keyword in the schema. - - .. attribute:: schema - - The full schema that this error came from. This is potentially a - subschema from within the schema that was passed in originally, - or even an entirely different schema if a :kw:`$ref` was - followed. - - .. attribute:: relative_schema_path - - A `collections.deque` containing the path to the failed keyword - within the schema. - - .. attribute:: absolute_schema_path - - A `collections.deque` containing the path to the failed - keyword within the schema, but always relative to the - *original* schema as opposed to any subschema (i.e. the one - originally passed into a validator class, *not* `schema`\). - - .. attribute:: schema_path - - Same as `relative_schema_path`. - - .. attribute:: relative_path - - A `collections.deque` containing the path to the - offending element within the instance. The deque can be empty if - the error happened at the root of the instance. - - .. attribute:: absolute_path - - A `collections.deque` containing the path to the - offending element within the instance. The absolute path - is always relative to the *original* instance that was - validated (i.e. the one passed into a validation method, *not* - `instance`\). The deque can be empty if the error happened - at the root of the instance. - - .. attribute:: json_path - - A `JSON path `_ - to the offending element within the instance. - - .. attribute:: path - - Same as `relative_path`. - - .. attribute:: instance - - The instance that was being validated. This will differ from - the instance originally passed into ``validate`` if the - validator object was in the process of validating a (possibly - nested) element within the top-level instance. The path within - the top-level instance (i.e. `ValidationError.path`) could - be used to find this object, but it is provided for convenience. - - .. attribute:: context - - If the error was caused by errors in subschemas, the list of errors - from the subschemas will be available on this property. The - `schema_path` and `path` of these errors will be relative - to the parent error. - - .. attribute:: cause - - If the error was caused by a *non*-validation error, the - exception object will be here. Currently this is only used - for the exception raised by a failed format checker in - `jsonschema.FormatChecker.check`. - - .. attribute:: parent - - A validation error which this error is the `context` of. - ``None`` if there wasn't one. - - -In case an invalid schema itself is encountered, a `SchemaError` is -raised. - -.. autoexception:: SchemaError - :noindex: - - The same attributes are present as for `ValidationError`\s. - - -These attributes can be clarified with a short example: - -.. testcode:: - - schema = { - "items": { - "anyOf": [ - {"type": "string", "maxLength": 2}, - {"type": "integer", "minimum": 5} - ] - } - } - instance = [{}, 3, "foo"] - v = Draft202012Validator(schema) - errors = sorted(v.iter_errors(instance), key=lambda e: e.path) - -The error messages in this situation are not very helpful on their own. - -.. testcode:: - - for error in errors: - print(error.message) - -outputs: - -.. testoutput:: - - {} is not valid under any of the given schemas - 3 is not valid under any of the given schemas - 'foo' is not valid under any of the given schemas - -If we look at `ValidationError.path` on each of the errors, we can find -out which elements in the instance correspond to each of the errors. In -this example, `ValidationError.path` will have only one element, which -will be the index in our list. - -.. testcode:: - - for error in errors: - print(list(error.path)) - -.. testoutput:: - - [0] - [1] - [2] - -Since our schema contained nested subschemas, it can be helpful to look at -the specific part of the instance and subschema that caused each of the errors. -This can be seen with the `ValidationError.instance` and -`ValidationError.schema` attributes. - -With keywords like :kw:`anyOf`, the `ValidationError.context` -attribute can be used to see the sub-errors which caused the failure. Since -these errors actually came from two separate subschemas, it can be helpful to -look at the `ValidationError.schema_path` attribute as well to see where -exactly in the schema each of these errors come from. In the case of sub-errors -from the `ValidationError.context` attribute, this path will be relative -to the `ValidationError.schema_path` of the parent error. - -.. testcode:: - - for error in errors: - for suberror in sorted(error.context, key=lambda e: e.schema_path): - print(list(suberror.schema_path), suberror.message, sep=", ") - -.. testoutput:: - - [0, 'type'], {} is not of type 'string' - [1, 'type'], {} is not of type 'integer' - [0, 'type'], 3 is not of type 'string' - [1, 'minimum'], 3 is less than the minimum of 5 - [0, 'maxLength'], 'foo' is too long - [1, 'type'], 'foo' is not of type 'integer' - -The string representation of an error combines some of these attributes for -easier debugging. - -.. testcode:: - - print(errors[1]) - -.. testoutput:: - - 3 is not valid under any of the given schemas - - Failed validating 'anyOf' in schema['items']: - {'anyOf': [{'type': 'string', 'maxLength': 2}, - {'type': 'integer', 'minimum': 5}]} - - On instance[1]: - 3 - - -ErrorTrees ----------- - -If you want to programmatically query which validation keywords -failed when validating a given instance, you may want to do so using -`jsonschema.exceptions.ErrorTree` objects. - -.. autoclass:: jsonschema.exceptions.ErrorTree - :noindex: - :members: - :special-members: - :exclude-members: __dict__,__weakref__ - - .. attribute:: errors - - The mapping of validation keywords to the error objects (usually `jsonschema.exceptions.ValidationError`\s) at this level of the tree. - -Consider the following example: - -.. testcode:: - - schema = { - "type" : "array", - "items" : {"type" : "number", "enum" : [1, 2, 3]}, - "minItems" : 3, - } - instance = ["spam", 2] - -For clarity's sake, the given instance has three errors under this schema: - -.. testcode:: - - v = Draft202012Validator(schema) - for error in sorted(v.iter_errors(["spam", 2]), key=str): - print(error.message) - -.. testoutput:: - - 'spam' is not of type 'number' - 'spam' is not one of [1, 2, 3] - ['spam', 2] is too short - -Let's construct an `jsonschema.exceptions.ErrorTree` so that we -can query the errors a bit more easily than by just iterating over the -error objects. - -.. testcode:: - - from jsonschema.exceptions import ErrorTree - tree = ErrorTree(v.iter_errors(instance)) - -As you can see, `jsonschema.exceptions.ErrorTree` takes an iterable of `ValidationError`\s when constructing a tree so you can directly pass it the return value of a validator's `jsonschema.protocols.Validator.iter_errors` method. - -`ErrorTree`\s support a number of useful operations. The first one we -might want to perform is to check whether a given element in our instance -failed validation. We do so using the :keyword:`in` operator: - -.. doctest:: - - >>> 0 in tree - True - - >>> 1 in tree - False - -The interpretation here is that the 0th index into the instance (``"spam"``) -did have an error (in fact it had 2), while the 1th index (``2``) did not (i.e. -it was valid). - -If we want to see which errors a child had, we index into the tree and look at -the `ErrorTree.errors` attribute. - -.. doctest:: - - >>> sorted(tree[0].errors) - ['enum', 'type'] - -Here we see that the :kw:`enum` and :kw:`type` keywords failed for -index ``0``. In fact `ErrorTree.errors` is a dict, whose values are the -`ValidationError`\s, so we can get at those directly if we want them. - -.. doctest:: - - >>> print(tree[0].errors["type"].message) - 'spam' is not of type 'number' - -Of course this means that if we want to know if a given validation -keyword failed for a given index, we check for its presence in -`ErrorTree.errors`: - -.. doctest:: - - >>> "enum" in tree[0].errors - True - - >>> "minimum" in tree[0].errors - False - -Finally, if you were paying close enough attention, you'll notice that -we haven't seen our :kw:`minItems` error appear anywhere yet. This is -because :kw:`minItems` is an error that applies globally to the instance -itself. So it appears in the root node of the tree. - -.. doctest:: - - >>> "minItems" in tree.errors - True - -That's all you need to know to use error trees. - -To summarize, each tree contains child trees that can be accessed by -indexing the tree to get the corresponding child tree for a given -index into the instance. Each tree and child has a `ErrorTree.errors` -attribute, a dict, that maps the failed validation keyword to the -corresponding validation error. - - -best_match and relevance ------------------------- - -The `best_match` function is a simple but useful function for attempting -to guess the most relevant error in a given bunch. - -.. doctest:: - - >>> from jsonschema import Draft202012Validator - >>> from jsonschema.exceptions import best_match - - >>> schema = { - ... "type": "array", - ... "minItems": 3, - ... } - >>> print(best_match(Draft202012Validator(schema).iter_errors(11)).message) - 11 is not of type 'array' - - -.. autofunction:: best_match - :noindex: - - -.. function:: relevance(validation_error) - :noindex: - - A key function that sorts errors based on heuristic relevance. - - If you want to sort a bunch of errors entirely, you can use - this function to do so. Using this function as a key to e.g. - `sorted` or `max` will cause more relevant errors to be - considered greater than less relevant ones. - - Within the different validation keywords that can fail, this - function considers :kw:`anyOf` and :kw:`oneOf` to be *weak* - validation errors, and will sort them lower than other errors at the - same level in the instance. - - If you want to change the set of weak [or strong] validation - keywords you can create a custom version of this function with - `by_relevance` and provide a different set of each. - -.. doctest:: - - >>> schema = { - ... "properties": { - ... "name": {"type": "string"}, - ... "phones": { - ... "properties": { - ... "home": {"type": "string"} - ... }, - ... }, - ... }, - ... } - >>> instance = {"name": 123, "phones": {"home": [123]}} - >>> errors = Draft202012Validator(schema).iter_errors(instance) - >>> [ - ... e.path[-1] - ... for e in sorted(errors, key=exceptions.relevance) - ... ] - ['home', 'name'] - - -.. autofunction:: by_relevance - :noindex: diff --git a/agent/vendor/jsonschema-4.23.0/docs/faq.rst b/agent/vendor/jsonschema-4.23.0/docs/faq.rst deleted file mode 100644 index b724f4f1c..000000000 --- a/agent/vendor/jsonschema-4.23.0/docs/faq.rst +++ /dev/null @@ -1,260 +0,0 @@ -========================== -Frequently Asked Questions -========================== - -My schema specifies format validation. Why do invalid instances seem valid? ---------------------------------------------------------------------------- - -The :kw:`format` keyword can be a bit of a stumbling block for new -users working with JSON Schema. - -In a schema such as: - -.. code-block:: json - - {"type": "string", "format": "date"} - -JSON Schema specifications have historically differentiated between the -:kw:`format` keyword and other keywords. In particular, the -:kw:`format` keyword was specified to be *informational* as much -as it may be used for validation. - -In other words, for many use cases, schema authors may wish to use -values for the :kw:`format` keyword but have no expectation -they be validated alongside other required assertions in a schema. - -Of course this does not represent all or even most use cases -- many -schema authors *do* wish to assert that instances conform fully, even to -the specific format mentioned. - -In drafts prior to ``draft2019-09``, the decision on whether to -automatically enable :kw:`format` validation was left up to -validation implementations such as this one. - -This library made the choice to leave it off by default, for two reasons: - - * for forward compatibility and implementation complexity reasons - -- if :kw:`format` validation were on by default, and a - future draft of JSON Schema introduced a hard-to-implement format, - either the implementation of that format would block releases of - this library until it were implemented, or the behavior surrounding - :kw:`format` would need to be even more complex than simply - defaulting to be on. It therefore was safer to start with it off, - and defend against the expectation that a given format would always - automatically work. - - * given that a common use of JSON Schema is for portability across - languages (and therefore implementations of JSON Schema), so that - users be aware of this point itself regarding :kw:`format` - validation, and therefore remember to check any *other* - implementations they were using to ensure they too were explicitly - enabled for :kw:`format` validation. - -As of ``draft2019-09`` however, the opt-out by default behavior mentioned here is now *required* for all implementations of JSON Schema. - -Difficult as this may sound for new users, at this point it at least means they should expect the same behavior that has always been implemented here, across any other implementation they encounter. - -.. seealso:: - - `Draft 2019-09's release notes on format `_ - - for upstream details on the behavior of format and how it has changed - in ``draft2019-09`` - - `validating formats` - - for details on how to enable format validation - - `jsonschema.FormatChecker` - - the object which implements format validation - - -Can jsonschema be used to validate YAML, TOML, etc.? ----------------------------------------------------- - -Like most JSON Schema implementations, `jsonschema` doesn't actually deal directly with JSON at all (other than in relation to the :kw:`$ref` keyword, elaborated on below). - -In other words as far as this library is concerned, schemas and instances are simply runtime Python objects. -The JSON object ``{}`` is simply the Python `dict` ``{}``, and a JSON Schema like ``{"type": "object", {"properties": {}}}`` is really an assertion about particular Python objects and their keys. - -.. note:: - - The :kw:`$ref` keyword is a single notable exception. - - Specifically, in the case where `jsonschema` is asked to resolve a remote reference, it has no choice but to assume that the remote reference is serialized as JSON, and to deserialize it using the `json` module. - - One cannot today therefore reference some remote piece of YAML and have it deserialized into Python objects by this library without doing some additional work. - See `Resolving References to Schemas Written in YAML ` for details. - -In practice what this means for JSON-like formats like YAML and TOML is that indeed one can generally schematize and then validate them exactly as if they were JSON by simply first deserializing them using libraries like ``PyYAML`` or the like, and passing the resulting Python objects into functions within this library. - -Beware however that there are cases where the behavior of the JSON Schema specification itself is only well-defined within the data model of JSON itself, and therefore only for Python objects that could have "in theory" come from JSON. -As an example, JSON supports only string-valued keys, whereas YAML supports additional types. -The JSON Schema specification does not deal with how to apply the :kw:`patternProperties` keyword to non-string properties. -The behavior of this library is therefore similarly not defined when presented with Python objects of this form, which could never have come from JSON. -In such cases one is recommended to first pre-process the data such that the resulting behavior is well-defined. -In the previous example, if the desired behavior is to transparently coerce numeric properties to strings, as Javascript might, then do the conversion explicitly before passing data to this library. - - -Why doesn't my schema's default property set the default on my instance? ------------------------------------------------------------------------- - -The basic answer is that the specification does not require that -:kw:`default` actually do anything. - -For an inkling as to *why* it doesn't actually do anything, consider -that none of the other keywords modify the instance either. More -importantly, having :kw:`default` modify the instance can produce -quite peculiar things. It's perfectly valid (and perhaps even useful) -to have a default that is not valid under the schema it lives in! So an -instance modified by the default would pass validation the first time, -but fail the second! - -Still, filling in defaults is a thing that is useful. `jsonschema` -allows you to `define your own validator classes and callables -`, so you can easily create an `jsonschema.protocols.Validator` -that does do default setting. Here's some code to get you started. (In -this code, we add the default properties to each object *before* the -properties are validated, so the default values themselves will need to -be valid under the schema.) - - .. testcode:: - - from jsonschema import Draft202012Validator, validators - - - def extend_with_default(validator_class): - validate_properties = validator_class.VALIDATORS["properties"] - - def set_defaults(validator, properties, instance, schema): - for property, subschema in properties.items(): - if "default" in subschema: - instance.setdefault(property, subschema["default"]) - - for error in validate_properties( - validator, properties, instance, schema, - ): - yield error - - return validators.extend( - validator_class, {"properties" : set_defaults}, - ) - - - DefaultValidatingValidator = extend_with_default(Draft202012Validator) - - - # Example usage: - obj = {} - schema = {'properties': {'foo': {'default': 'bar'}}} - # Note jsonschema.validate(obj, schema, cls=DefaultValidatingValidator) - # will not work because the metaschema contains `default` keywords. - DefaultValidatingValidator(schema).validate(obj) - assert obj == {'foo': 'bar'} - - -See the above-linked document for more info on how this works, -but basically, it just extends the :kw:`properties` keyword on a -`jsonschema.validators.Draft202012Validator` to then go ahead and update -all the defaults. - -.. note:: - - If you're interested in a more interesting solution to a larger - class of these types of transformations, keep an eye on `Seep - `_, which is an experimental - data transformation and extraction library written on top of - `jsonschema`. - - -.. hint:: - - The above code can provide default values for an entire object and - all of its properties, but only if your schema provides a default - value for the object itself, like so: - - .. testcode:: - - schema = { - "type": "object", - "properties": { - "outer-object": { - "type": "object", - "properties" : { - "inner-object": { - "type": "string", - "default": "INNER-DEFAULT" - } - }, - "default": {} # <-- MUST PROVIDE DEFAULT OBJECT - } - } - } - - obj = {} - DefaultValidatingValidator(schema).validate(obj) - assert obj == {'outer-object': {'inner-object': 'INNER-DEFAULT'}} - - ...but if you don't provide a default value for your object, then - it won't be instantiated at all, much less populated with default - properties. - - .. testcode:: - - del schema["properties"]["outer-object"]["default"] - obj2 = {} - DefaultValidatingValidator(schema).validate(obj2) - assert obj2 == {} # whoops - - -How do jsonschema version numbers work? ---------------------------------------- - -``jsonschema`` tries to follow the `Semantic Versioning -`_ specification. - -This means broadly that no backwards-incompatible changes should be made -in minor releases (and certainly not in dot releases). - -The full picture requires defining what constitutes a -backwards-incompatible change. - -The following are simple examples of things considered public API, -and therefore should *not* be changed without bumping a major version -number: - - * module names and contents, when not marked private by Python - convention (a single leading underscore) - - * function and object signature (parameter order and name) - -The following are *not* considered public API and may change without -notice: - - * the exact wording and contents of error messages; typical reasons - to rely on this seem to involve downstream tests in packages using - `jsonschema`. These use cases are encouraged to use the extensive - introspection provided in `jsonschema.exceptions.ValidationError`\s - instead to make meaningful assertions about what failed rather than - relying on *how* what failed is explained to a human. - - * the order in which validation errors are returned or raised - - * the contents of the ``jsonschema.tests`` package - - * the contents of the ``jsonschema.benchmarks`` package - - * the specific non-zero error codes presented by the command line - interface - - * the exact representation of errors presented by the command line - interface, other than that errors represented by the plain outputter - will be reported one per line - - * anything marked private - -With the exception of the last two of those, flippant changes are -avoided, but changes can and will be made if there is improvement to be -had. Feel free to open an issue ticket if there is a specific issue or -question worth raising. diff --git a/agent/vendor/jsonschema-4.23.0/docs/index.rst b/agent/vendor/jsonschema-4.23.0/docs/index.rst deleted file mode 100644 index 949ab448e..000000000 --- a/agent/vendor/jsonschema-4.23.0/docs/index.rst +++ /dev/null @@ -1,24 +0,0 @@ -.. module:: jsonschema - :noindex: - -.. include:: ../README.rst - - -Contents --------- - -.. toctree:: - :maxdepth: 2 - - validate - errors - referencing - creating - faq - api/index - - -Indices and tables -================== - -* `genindex` diff --git a/agent/vendor/jsonschema-4.23.0/docs/make.bat b/agent/vendor/jsonschema-4.23.0/docs/make.bat deleted file mode 100644 index fcb914ff3..000000000 --- a/agent/vendor/jsonschema-4.23.0/docs/make.bat +++ /dev/null @@ -1,190 +0,0 @@ -@ECHO OFF - -REM Command file for Sphinx documentation - -if "%SPHINXBUILD%" == "" ( - set SPHINXBUILD=sphinx-build -) -set BUILDDIR=_build -set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% . -set I18NSPHINXOPTS=%SPHINXOPTS% . -if NOT "%PAPER%" == "" ( - set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS% - set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS% -) - -if "%1" == "" goto help - -if "%1" == "help" ( - :help - echo.Please use `make ^` where ^ is one of - echo. html to make standalone HTML files - echo. dirhtml to make HTML files named index.html in directories - echo. singlehtml to make a single large HTML file - echo. pickle to make pickle files - echo. json to make JSON files - echo. htmlhelp to make HTML files and a HTML help project - echo. qthelp to make HTML files and a qthelp project - echo. devhelp to make HTML files and a Devhelp project - echo. epub to make an epub - echo. latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter - echo. text to make text files - echo. man to make manual pages - echo. texinfo to make Texinfo files - echo. gettext to make PO message catalogs - echo. changes to make an overview over all changed/added/deprecated items - echo. linkcheck to check all external links for integrity - echo. doctest to run all doctests embedded in the documentation if enabled - goto end -) - -if "%1" == "clean" ( - for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i - del /q /s %BUILDDIR%\* - goto end -) - -if "%1" == "html" ( - %SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The HTML pages are in %BUILDDIR%/html. - goto end -) - -if "%1" == "dirhtml" ( - %SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml. - goto end -) - -if "%1" == "singlehtml" ( - %SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml. - goto end -) - -if "%1" == "pickle" ( - %SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; now you can process the pickle files. - goto end -) - -if "%1" == "json" ( - %SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; now you can process the JSON files. - goto end -) - -if "%1" == "htmlhelp" ( - %SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; now you can run HTML Help Workshop with the ^ -.hhp project file in %BUILDDIR%/htmlhelp. - goto end -) - -if "%1" == "qthelp" ( - %SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; now you can run "qcollectiongenerator" with the ^ -.qhcp project file in %BUILDDIR%/qthelp, like this: - echo.^> qcollectiongenerator %BUILDDIR%\qthelp\jsonschema.qhcp - echo.To view the help file: - echo.^> assistant -collectionFile %BUILDDIR%\qthelp\jsonschema.ghc - goto end -) - -if "%1" == "devhelp" ( - %SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. - goto end -) - -if "%1" == "epub" ( - %SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The epub file is in %BUILDDIR%/epub. - goto end -) - -if "%1" == "latex" ( - %SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex - if errorlevel 1 exit /b 1 - echo. - echo.Build finished; the LaTeX files are in %BUILDDIR%/latex. - goto end -) - -if "%1" == "text" ( - %SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The text files are in %BUILDDIR%/text. - goto end -) - -if "%1" == "man" ( - %SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The manual pages are in %BUILDDIR%/man. - goto end -) - -if "%1" == "texinfo" ( - %SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo. - goto end -) - -if "%1" == "gettext" ( - %SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale - if errorlevel 1 exit /b 1 - echo. - echo.Build finished. The message catalogs are in %BUILDDIR%/locale. - goto end -) - -if "%1" == "changes" ( - %SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes - if errorlevel 1 exit /b 1 - echo. - echo.The overview file is in %BUILDDIR%/changes. - goto end -) - -if "%1" == "linkcheck" ( - %SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck - if errorlevel 1 exit /b 1 - echo. - echo.Link check complete; look for any errors in the above output ^ -or in %BUILDDIR%/linkcheck/output.txt. - goto end -) - -if "%1" == "doctest" ( - %SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest - if errorlevel 1 exit /b 1 - echo. - echo.Testing of doctests in the sources finished, look at the ^ -results in %BUILDDIR%/doctest/output.txt. - goto end -) - -:end diff --git a/agent/vendor/jsonschema-4.23.0/docs/referencing.rst b/agent/vendor/jsonschema-4.23.0/docs/referencing.rst deleted file mode 100644 index 425cb13a8..000000000 --- a/agent/vendor/jsonschema-4.23.0/docs/referencing.rst +++ /dev/null @@ -1,389 +0,0 @@ -========================= -JSON (Schema) Referencing -========================= - -The JSON Schema :kw:`$ref` and :kw:`$dynamicRef` keywords allow schema authors to combine multiple schemas (or subschemas) together for reuse or deduplication. - -The `referencing ` library was written in order to provide a simple, well-behaved and well-tested implementation of this kind of reference resolution [1]_. -It has its `own documentation which is worth reviewing `, but this page serves as an introduction which is tailored specifically to JSON Schema, and even more specifically to how to configure `referencing ` for use with `Validator` objects in order to customize the behavior of the :kw:`$ref` keyword and friends in your schemas. - -Configuring `jsonschema` for custom referencing behavior is essentially a two step process: - - * Create a `referencing.Registry` object that behaves the way you wish - - * Pass the `referencing.Registry` to your `Validator` when instantiating it - -The examples below essentially follow these two steps. - -.. [1] One that in fact is independent of this `jsonschema` library itself, and may some day be used by other tools or implementations. - - -Introduction to the `referencing ` API ---------------------------------------------------------- - -There are 3 main objects to be aware of in the `referencing` API: - - * `referencing.Registry`, which represents a specific immutable set of JSON Schemas (either in-memory or retrievable) - * `referencing.Specification`, which represents a specific *version* of the JSON Schema specification, which can have differing referencing behavior. - JSON Schema-specific specifications live in the `referencing.jsonschema` module and are named like `referencing.jsonschema.DRAFT202012`. - * `referencing.Resource`, which represents a specific JSON Schema (often a Python `dict`) *along* with a specific `referencing.Specification` it is to be interpreted under. - -As a concrete example, the simple schema ``{"type": "integer"}`` may be interpreted as a schema under either Draft 2020-12 or Draft 4 of the JSON Schema specification (amongst others); in draft 2020-12, the float ``2.0`` must be considered an integer, whereas in draft 4, it potentially is not. -If you mean the former (i.e. to associate this schema with draft 2020-12), you'd use ``referencing.Resource(contents={"type": "integer"}, specification=referencing.jsonschema.DRAFT202012)``, whereas for the latter you'd use `referencing.jsonschema.DRAFT4`. - -.. seealso:: the JSON Schema :kw:`$schema` keyword - - Which should generally be used to remove all ambiguity and identify *internally* to the schema what version it is written for. - -A schema may be identified via one or more URIs, either because they contain an :kw:`$id` keyword (in suitable versions of the JSON Schema specification) which indicates their canonical URI, or simply because you wish to externally associate a URI with the schema, regardless of whether it contains an ``$id`` keyword. -You could add the aforementioned simple schema to a `referencing.Registry` by creating an empty registry and then identifying it via some URI: - -.. testcode:: - - from referencing import Registry, Resource - from referencing.jsonschema import DRAFT202012 - schema = Resource(contents={"type": "integer"}, specification=DRAFT202012) - registry = Registry().with_resource(uri="http://example.com/my/schema", resource=schema) - print(registry) - -.. testoutput:: - - - -.. note:: - - `referencing.Registry` is an entirely immutable object. - All of its methods which add schemas (resources) to itself return *new* registry objects containing the added schemas. - -You could also confirm your schema is in the registry if you'd like, via `referencing.Registry.contents`, which will show you the contents of a resource at a given URI: - -.. testcode:: - - print(registry.contents("http://example.com/my/schema")) - -.. testoutput:: - - {'type': 'integer'} - -For further details, see the `referencing documentation `. - -Common Scenarios ----------------- - -.. _in-memory-schemas: - -Making Additional In-Memory Schemas Available -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -The most common scenario one is likely to encounter is the desire to include a small number of additional in-memory schemas, making them available for use during validation. - -For instance, imagine the below schema for non-negative integers: - -.. code:: json - - { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "integer", - "minimum": 0 - } - -We may wish to have other schemas we write be able to make use of this schema, and refer to it as ``http://example.com/nonneg-int-schema`` and/or as ``urn:nonneg-integer-schema``. - -To do so we make use of APIs from the referencing library to create a `referencing.Registry` which maps the URIs above to this schema: - -.. testcode:: - - from referencing import Registry, Resource - schema = Resource.from_contents( - { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "integer", - "minimum": 0, - }, - ) - registry = Registry().with_resources( - [ - ("http://example.com/nonneg-int-schema", schema), - ("urn:nonneg-integer-schema", schema), - ], - ) - -What's above is likely mostly self-explanatory, other than the presence of the `referencing.Resource.from_contents` function. -Its purpose is to convert a piece of "opaque" JSON (or really a Python `dict` containing deserialized JSON) into an object which indicates what *version* of JSON Schema the schema is meant to be interpreted under. -Calling it will inspect a :kw:`$schema` keyword present in the given schema and use that to associate the JSON with an appropriate `specification `. -If your schemas do not contain ``$schema`` dialect identifiers, and you intend for them to be interpreted always under a specific dialect -- say Draft 2020-12 of JSON Schema -- you may instead use e.g.: - -.. testcode:: - - from referencing import Registry, Resource - from referencing.jsonschema import DRAFT202012 - schema = DRAFT202012.create_resource({"type": "integer", "minimum": 0}) - registry = Registry().with_resources( - [ - ("http://example.com/nonneg-int-schema", schema), - ("urn:nonneg-integer-schema", schema), - ], - ) - -which has the same functional effect. - -You can now pass this registry to your `Validator`, which allows a schema passed to it to make use of the aforementioned URIs to refer to our non-negative integer schema. -Here for instance is an example which validates that instances are JSON objects with non-negative integral values: - -.. testcode:: - - from jsonschema import Draft202012Validator - validator = Draft202012Validator( - { - "type": "object", - "additionalProperties": {"$ref": "urn:nonneg-integer-schema"}, - }, - registry=registry, # the critical argument, our registry from above - ) - validator.validate({"foo": 37}) - assert not validator.is_valid({"foo": -37}) # Uh oh! - -.. _ref-filesystem: - -Resolving References from the File System -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Another common request from schema authors is to be able to map URIs to the file system, perhaps while developing a set of schemas in different local files. -If you have a set of *fixed* or *static* schemas in a few files, you still likely will want to follow the `above in-memory instructions `, and simply load all of your files by reading them in-memory from your program. -If however you wish to *dynamically* read files off of the file system, perhaps because they may change during the lifetime of your process, then the referencing library supports doing so fully dynamically by configuring a callable which can be used to retrieve any schema which is *not* already pre-loaded in-memory. - -Here we resolve any schema beginning with ``http://localhost`` to a directory ``/tmp/schemas`` on the local filesystem (note of course that this will not work if run directly unless you have populated that directory with some schemas): - -.. testcode:: - - from pathlib import Path - import json - - from referencing import Registry, Resource - from referencing.exceptions import NoSuchResource - - SCHEMAS = Path("/tmp/schemas") - - def retrieve_from_filesystem(uri: str): - if not uri.startswith("http://localhost/"): - raise NoSuchResource(ref=uri) - path = SCHEMAS / Path(uri.removeprefix("http://localhost/")) - contents = json.loads(path.read_text()) - return Resource.from_contents(contents) - - registry = Registry(retrieve=retrieve_from_filesystem) - -Such a registry can then be used with `Validator` objects in the same way shown above, and any such references to URIs which are not already in-memory will be retrieved from the configured directory. - -We can mix the two examples above if we wish for some in-memory schemas to be available in addition to the filesystem schemas, e.g.: - -.. testcode:: - - from referencing.jsonschema import DRAFT7 - registry = Registry(retrieve=retrieve_from_filesystem).with_resource( - "urn:non-empty-array", DRAFT7.create_resource({"type": "array", "minItems": 1}), - ) - -where we've made use of the similar `referencing.Registry.with_resource` function to add a single additional resource. - -Resolving References to Schemas Written in YAML -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Generalizing slightly, the retrieval function provided need not even assume that it is retrieving JSON. -As long as you deserialize what you have retrieved into Python objects, you may equally be retrieving references to YAML documents or any other format. - -Here for instance we retrieve YAML documents in a way similar to the `above ` using PyYAML: - -.. testcode:: - - from pathlib import Path - import yaml - - from referencing import Registry, Resource - from referencing.exceptions import NoSuchResource - - SCHEMAS = Path("/tmp/yaml-schemas") - - def retrieve_yaml(uri: str): - if not uri.startswith("http://localhost/"): - raise NoSuchResource(ref=uri) - path = SCHEMAS / Path(uri.removeprefix("http://localhost/")) - contents = yaml.safe_load(path.read_text()) - return Resource.from_contents(contents) - - registry = Registry(retrieve=retrieve_yaml) - -.. note:: - - Not all YAML fits within the JSON data model. - - JSON Schema is defined specifically for JSON, and has well-defined behavior strictly for Python objects which could have possibly existed as JSON. - - If you stick to the subset of YAML for which this is the case then you shouldn't have issue, but if you pass schemas (or instances) around whose structure could never have possibly existed as JSON (e.g. a mapping whose keys are not strings), all bets are off. - -One could similarly imagine a retrieval function which switches on whether to call ``yaml.safe_load`` or ``json.loads`` by file extension (or some more reliable mechanism) and thereby support retrieving references of various different file formats. - -.. _http: - -Automatically Retrieving Resources Over HTTP -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -In the general case, the JSON Schema specifications tend to `discourage `_ implementations (like this one) from automatically retrieving references over the network, or even assuming such a thing is feasible (as schemas may be identified by URIs which are strictly identifiers, and not necessarily downloadable from the URI even when such a thing is sensical). - -However, if you as a schema author are in a situation where you indeed do wish to do so for convenience (and understand the implications of doing so), you may do so by making use of the ``retrieve`` argument to `referencing.Registry`. - -Here is how one would configure a registry to automatically retrieve schemas from the `JSON Schema Store `_ on the fly using the `httpx `_: - -.. testcode:: - - from referencing import Registry, Resource - import httpx - - def retrieve_via_httpx(uri: str): - response = httpx.get(uri) - return Resource.from_contents(response.json()) - - registry = Registry(retrieve=retrieve_via_httpx) - -Given such a registry, we can now, for instance, validate instances against schemas from the schema store by passing the ``registry`` we configured to our `Validator` as in previous examples: - -.. testsetup:: * - - import sys - - class FakeResource: - def json(self): - return { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "not": True, - } - - class FakeHTTPX: - def get(self, uri): - return FakeResource() - - sys.modules["httpx"] = FakeHTTPX() - -.. testcode:: - - from jsonschema import Draft202012Validator - Draft202012Validator( - {"$ref": "https://json.schemastore.org/pyproject.json"}, - registry=registry, - ).validate({"project": {"name": 12}}) - -which should in this case indicate the example data is invalid: - -.. testoutput:: - - Traceback (most recent call last): - ... - jsonschema.exceptions.ValidationError: 12 is not of type 'string' - - Failed validating 'type' in schema['properties']['project']['properties']['name']: - {'pattern': '^([a-zA-Z\\d]|[a-zA-Z\\d][\\w.-]*[a-zA-Z\\d])$', - 'title': 'Project name', - 'type': 'string'} - - On instance['project']['name']: - 12 - -Retrieving resources from a SQLite database or some other network-accessible resource should be more or less similar, replacing the HTTP client with one for your database of course. - -.. warning:: - - Be sure you understand the security implications of the reference resolution you configure. - And if you accept untrusted schemas, doubly sure! - - You wouldn't want a user causing your machine to go off and retrieve giant files off the network by passing it a ``$ref`` to some huge blob, or exploiting similar vulnerabilities in your setup. - - -Migrating From ``RefResolver`` ------------------------------- - -Older versions of `jsonschema` used a different object -- `_RefResolver` -- for reference resolution, which you a schema author may already be configuring for your own use. - -`_RefResolver` is now fully deprecated and replaced by the use of `referencing.Registry` as shown in examples above. - -If you are not already constructing your own `_RefResolver`, this change should be transparent to you (or even recognizably improved, as the point of the migration was to improve the quality of the referencing implementation and enable some new functionality). - -.. table:: Rough equivalence between `_RefResolver` and `referencing.Registry` APIs - :widths: auto - - =========================================================== ===================================================================================================================== - Old API New API - =========================================================== ===================================================================================================================== - ``RefResolver.from_schema({"$id": "urn:example:foo", ...}`` ``Registry().with_resource(uri="urn:example:foo", resource=Resource.from_contents({"$id": "urn:example:foo", ...}))`` - Overriding ``RefResolver.resolve_from_url`` Passing a callable to `referencing.Registry`\ 's ``retrieve`` argument - ``DraftNValidator(..., resolver=_RefResolver(...))`` `` DraftNValidator(..., registry=Registry().with_resources(...))`` - =========================================================== ===================================================================================================================== - - -Here are some more specifics on how to migrate to the newer APIs: - -The ``store`` argument -~~~~~~~~~~~~~~~~~~~~~~ - -`_RefResolver`\ 's ``store`` argument was essentially the equivalent of `referencing.Registry`\ 's in-memory schema storage. - -If you currently pass a set of schemas via e.g.: - -.. code-block:: python - - from jsonschema import Draft202012Validator, RefResolver - resolver = RefResolver.from_schema( - schema={"title": "my schema"}, - store={"http://example.com": {"type": "integer"}}, - ) - validator = Draft202012Validator( - {"$ref": "http://example.com"}, - resolver=resolver, - ) - validator.validate("foo") - -you should be able to simply move to something like: - -.. testcode:: - - from referencing import Registry - from referencing.jsonschema import DRAFT202012 - - from jsonschema import Draft202012Validator - - registry = Registry().with_resource( - "http://example.com", - DRAFT202012.create_resource({"type": "integer"}), - ) - validator = Draft202012Validator( - {"$ref": "http://example.com"}, - registry=registry, - ) - assert not validator.is_valid("foo") - -Handlers -~~~~~~~~ - -The ``handlers`` functionality from `_RefResolver` was a way to support additional HTTP schemes for schema retrieval. - -Here you should move to a custom ``retrieve`` function which does whatever you'd like. -E.g. in pseudocode: - -.. testcode:: - - from urllib.parse import urlsplit - - def retrieve(uri: str): - parsed = urlsplit(uri) - if parsed.scheme == "file": - ... - elif parsed.scheme == "custom": - ... - - registry = Registry(retrieve=retrieve) - - -Other Key Functional Differences -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Whilst `_RefResolver` *did* automatically retrieve remote references (against the recommendation of the spec, and in a way which therefore could lead to questionable security concerns when combined with untrusted schemas), `referencing.Registry` does *not* do so. -If you rely on this behavior, you should follow the `above example of retrieving resources over HTTP `. diff --git a/agent/vendor/jsonschema-4.23.0/docs/requirements.in b/agent/vendor/jsonschema-4.23.0/docs/requirements.in deleted file mode 100644 index 5a68be72b..000000000 --- a/agent/vendor/jsonschema-4.23.0/docs/requirements.in +++ /dev/null @@ -1,13 +0,0 @@ -file:.#egg=jsonschema -furo -lxml -sphinx!=7.2.5 -sphinx-autoapi -sphinx-autodoc-typehints -sphinx-copybutton -sphinx-json-schema-spec -sphinxcontrib-spelling -sphinxext-opengraph - -# Until pyenchant/pyenchant#302 is released... -pyenchant>=3.3.0rc1 diff --git a/agent/vendor/jsonschema-4.23.0/docs/requirements.txt b/agent/vendor/jsonschema-4.23.0/docs/requirements.txt deleted file mode 100644 index ca1958ab6..000000000 --- a/agent/vendor/jsonschema-4.23.0/docs/requirements.txt +++ /dev/null @@ -1,109 +0,0 @@ -# -# This file is autogenerated by pip-compile with Python 3.12 -# by the following command: -# -# pip-compile --strip-extras docs/requirements.in -# -alabaster==0.7.16 - # via sphinx -astroid==3.2.2 - # via sphinx-autoapi -attrs==23.2.0 - # via - # jsonschema - # referencing -babel==2.15.0 - # via sphinx -beautifulsoup4==4.12.3 - # via furo -certifi==2024.6.2 - # via requests -charset-normalizer==3.3.2 - # via requests -docutils==0.21.2 - # via sphinx -furo==2024.5.6 - # via -r docs/requirements.in -idna==3.7 - # via requests -imagesize==1.4.1 - # via sphinx -jinja2==3.1.4 - # via - # sphinx - # sphinx-autoapi -file:.#egg=jsonschema - # via -r docs/requirements.in -jsonschema-specifications==2023.12.1 - # via jsonschema -lxml==5.2.2 - # via - # -r docs/requirements.in - # sphinx-json-schema-spec -markupsafe==2.1.5 - # via jinja2 -packaging==24.1 - # via sphinx -pyenchant==3.3.0rc1 - # via - # -r docs/requirements.in - # sphinxcontrib-spelling -pygments==2.18.0 - # via - # furo - # sphinx -pyyaml==6.0.1 - # via sphinx-autoapi -referencing==0.35.1 - # via - # jsonschema - # jsonschema-specifications -requests==2.32.3 - # via sphinx -rpds-py==0.18.1 - # via - # jsonschema - # referencing -snowballstemmer==2.2.0 - # via sphinx -soupsieve==2.5 - # via beautifulsoup4 -sphinx==7.3.7 - # via - # -r docs/requirements.in - # furo - # sphinx-autoapi - # sphinx-autodoc-typehints - # sphinx-basic-ng - # sphinx-copybutton - # sphinx-json-schema-spec - # sphinxcontrib-spelling - # sphinxext-opengraph -sphinx-autoapi==3.1.1 - # via -r docs/requirements.in -sphinx-autodoc-typehints==2.1.1 - # via -r docs/requirements.in -sphinx-basic-ng==1.0.0b2 - # via furo -sphinx-copybutton==0.5.2 - # via -r docs/requirements.in -sphinx-json-schema-spec==2024.1.1 - # via -r docs/requirements.in -sphinxcontrib-applehelp==1.0.8 - # via sphinx -sphinxcontrib-devhelp==1.0.6 - # via sphinx -sphinxcontrib-htmlhelp==2.0.5 - # via sphinx -sphinxcontrib-jsmath==1.0.1 - # via sphinx -sphinxcontrib-qthelp==1.0.7 - # via sphinx -sphinxcontrib-serializinghtml==1.1.10 - # via sphinx -sphinxcontrib-spelling==8.0.0 - # via -r docs/requirements.in -sphinxext-opengraph==0.9.1 - # via -r docs/requirements.in -urllib3==2.2.2 - # via requests diff --git a/agent/vendor/jsonschema-4.23.0/docs/spelling-wordlist.txt b/agent/vendor/jsonschema-4.23.0/docs/spelling-wordlist.txt deleted file mode 100644 index 640d56f73..000000000 --- a/agent/vendor/jsonschema-4.23.0/docs/spelling-wordlist.txt +++ /dev/null @@ -1,59 +0,0 @@ -# this appears to be misinterpreting Napoleon types as prose, sigh... -Validator -TypeChecker -UnknownType -ValidationError - -# 0th, sigh... -th -amongst -callables -# non-codeblocked cls from autoapi -cls -deque -deduplication -dereferences -deserialize -deserialized -deserializing -filesystem -hostname -implementers -indices -# ipv4/6, sigh... -ipv -iterable -iteratively -Javascript -jsonschema -majorly -metaschema -online -outputter -pre -programmatically -pseudocode -recurses -regex -repr -runtime -sensical -subclassing -submodule -submodules -subschema -subschemas -subscopes -untrusted -uri -validator -validators -versioned -schemas - -Zac -HD - -Berman -Libera -GPL diff --git a/agent/vendor/jsonschema-4.23.0/docs/validate.rst b/agent/vendor/jsonschema-4.23.0/docs/validate.rst deleted file mode 100644 index 91f0577b9..000000000 --- a/agent/vendor/jsonschema-4.23.0/docs/validate.rst +++ /dev/null @@ -1,306 +0,0 @@ -================= -Schema Validation -================= - - -.. currentmodule:: jsonschema - -.. tip:: - - Most of the documentation for this package assumes you're familiar with the fundamentals of writing JSON schemas themselves, and focuses on how this library helps you validate with them in Python. - - If you aren't already comfortable with writing schemas and need an introduction which teaches about JSON Schema the specification, you may find :ujs:`Understanding JSON Schema ` to be a good read! - - -The Basics ----------- - -The simplest way to validate an instance under a given schema is to use the -`validate ` function. - -.. autofunction:: validate - :noindex: - -.. _validator-protocol: - -The Validator Protocol ----------------------- - -`jsonschema` defines a `protocol ` that all validator classes adhere to. - -.. hint:: - - If you are unfamiliar with protocols, either as a general notion or as specifically implemented by `typing.Protocol`, you can think of them as a set of attributes and methods that all objects satisfying the protocol have. - - Here, in the context of `jsonschema`, the `Validator.iter_errors` method can be called on `jsonschema.validators.Draft202012Validator`, or `jsonschema.validators.Draft7Validator`, or indeed any validator class, as all of them have it, along with all of the other methods described below. - -.. autoclass:: jsonschema.protocols.Validator - :noindex: - :members: - -All of the `versioned validators ` that are included with `jsonschema` adhere to the protocol, and any `extensions of these validators ` will as well. -For more information on `creating ` or `extending ` validators see `creating-validators`. - -Type Checking -------------- - -To handle JSON Schema's :kw:`type` keyword, a `Validator` uses -an associated `TypeChecker`. The type checker provides an immutable -mapping between names of types and functions that can test if an instance is -of that type. The defaults are suitable for most users - each of the -`versioned validators ` that are included with -`jsonschema` have a `TypeChecker` that can correctly handle their respective -versions. - -.. seealso:: `validating-types` - - For an example of providing a custom type check. - -.. autoclass:: TypeChecker - :members: - :noindex: - -.. autoexception:: jsonschema.exceptions.UndefinedTypeCheck - :noindex: - - Raised when trying to remove a type check that is not known to this - TypeChecker, or when calling `jsonschema.TypeChecker.is_type` - directly. - -.. _validating-types: - -Validating With Additional Types -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Occasionally it can be useful to provide additional or alternate types when -validating JSON Schema's :kw:`type` keyword. - -`jsonschema` tries to strike a balance between performance in the common -case and generality. For instance, JSON Schema defines a ``number`` type, which -can be validated with a schema such as ``{"type" : "number"}``. By default, -this will accept instances of Python `numbers.Number`. This includes in -particular `int`\s and `float`\s, along with -`decimal.Decimal` objects, `complex` numbers etc. For -``integer`` and ``object``, however, rather than checking for -`numbers.Integral` and `collections.abc.Mapping`, -`jsonschema` simply checks for `int` and `dict`, since the -more general instance checks can introduce significant slowdown, especially -given how common validating these types are. - -If you *do* want the generality, or just want to add a few specific additional -types as being acceptable for a validator object, then you should update an -existing `jsonschema.TypeChecker` or create a new one. You may then create a new -`Validator` via `jsonschema.validators.extend`. - -.. testcode:: - - from jsonschema import validators - - class MyInteger: - pass - - def is_my_int(checker, instance): - return ( - Draft202012Validator.TYPE_CHECKER.is_type(instance, "number") or - isinstance(instance, MyInteger) - ) - - type_checker = Draft202012Validator.TYPE_CHECKER.redefine( - "number", is_my_int, - ) - - CustomValidator = validators.extend( - Draft202012Validator, - type_checker=type_checker, - ) - validator = CustomValidator(schema={"type" : "number"}) - - -.. autoexception:: jsonschema.exceptions.UnknownType - :noindex: - -.. _versioned-validators: - -Versioned Validators --------------------- - -`jsonschema` ships with validator classes for various versions of the JSON Schema specification. -For details on the methods and attributes that each validator class provides see the `Validator` protocol, which each included validator class implements. - -Each of the below cover a specific release of the JSON Schema specification. - -.. autoclass:: Draft202012Validator - :noindex: - -.. autoclass:: Draft201909Validator - :noindex: - -.. autoclass:: Draft7Validator - :noindex: - -.. autoclass:: Draft6Validator - :noindex: - -.. autoclass:: Draft4Validator - :noindex: - -.. autoclass:: Draft3Validator - :noindex: - - -For example, if you wanted to validate a schema you created against the -Draft 2020-12 meta-schema, you could use: - -.. testcode:: - - from jsonschema import Draft202012Validator - - schema = { - "$schema": Draft202012Validator.META_SCHEMA["$id"], - - "type": "object", - "properties": { - "name": {"type": "string"}, - "email": {"type": "string"}, - }, - "required": ["email"] - } - Draft202012Validator.check_schema(schema) - - -.. _validating formats: - -Validating Formats ------------------- - -JSON Schema defines the :kw:`format` keyword which can be used to check if primitive types (``string``\s, ``number``\s, ``boolean``\s) conform to well-defined formats. -By default, as per the specification, no validation is enforced. -Optionally however, validation can be enabled by hooking a `format-checking object ` into a `Validator`. - -.. doctest:: - - >>> validate("127.0.0.1", {"format" : "ipv4"}) - >>> validate( - ... instance="-12", - ... schema={"format" : "ipv4"}, - ... format_checker=Draft202012Validator.FORMAT_CHECKER, - ... ) - Traceback (most recent call last): - ... - ValidationError: "-12" is not a "ipv4" - - -Some formats require additional dependencies to be installed. - -The easiest way to ensure you have what is needed is to install ``jsonschema`` using the ``format`` or ``format-nongpl`` extras. - -For example: - -.. code:: sh - - $ pip install jsonschema[format] - -Or if you want to avoid GPL dependencies, a second extra is available: - -.. code:: sh - - $ pip install jsonschema[format-nongpl] - -At the moment, it supports all the available checkers except for ``iri`` and ``iri-reference``. - -.. warning:: - - It is your own responsibility ultimately to ensure you are license-compliant, so you should be double checking your own dependencies if you rely on this extra. - -The more specific list of formats along with any additional dependencies they have is shown below. - -.. warning:: - - If a dependency is not installed when using a checker that requires it, validation will succeed without throwing an error, as also specified by the specification. - -========================= ==================== -Checker Notes -========================= ==================== -``color`` requires webcolors_ -``date`` -``date-time`` requires rfc3339-validator_ -``duration`` requires isoduration_ -``email`` -``hostname`` requires fqdn_ -``idn-hostname`` requires idna_ -``ipv4`` -``ipv6`` OS must have `socket.inet_pton` function -``iri`` requires rfc3987_ -``iri-reference`` requires rfc3987_ -``json-pointer`` requires jsonpointer_ -``regex`` -``relative-json-pointer`` requires jsonpointer_ -``time`` requires rfc3339-validator_ -``uri`` requires rfc3987_ or rfc3986-validator_ -``uri-reference`` requires rfc3987_ or rfc3986-validator_ -``uri-template`` requires uri-template_ -========================= ==================== - - -.. _fqdn: https://pypi.org/pypi/fqdn/ -.. _idna: https://pypi.org/pypi/idna/ -.. _isoduration: https://pypi.org/pypi/isoduration/ -.. _jsonpointer: https://pypi.org/pypi/jsonpointer/ -.. _rfc3339-validator: https://pypi.org/project/rfc3339-validator/ -.. _rfc3986-validator: https://pypi.org/project/rfc3986-validator/ -.. _rfc3987: https://pypi.org/pypi/rfc3987/ -.. _uri-template: https://pypi.org/pypi/uri-template/ -.. _webcolors: https://pypi.org/pypi/webcolors/ - -The supported mechanism for ensuring these dependencies are present is again as shown above, not by directly installing the packages. - -.. autoclass:: FormatChecker - :members: - :noindex: - :exclude-members: cls_checks - - .. attribute:: checkers - - A mapping of currently known formats to tuple of functions that validate them and errors that should be caught. - New checkers can be added and removed either per-instance or globally for all checkers using the `FormatChecker.checks` decorator. - - .. classmethod:: cls_checks(format, raises=()) - - Register a decorated function as *globally* validating a new format. - - Any instance created after this function is called will pick up the supplied checker. - - :argument str format: the format that the decorated function will check - :argument Exception raises: the exception(s) raised - by the decorated function when an invalid instance is - found. The exception object will be accessible as the - `jsonschema.exceptions.ValidationError.cause` attribute - of the resulting validation error. - - .. deprecated:: v4.14.0 - - Use `FormatChecker.checks` on an instance instead. - -.. autoexception:: jsonschema.exceptions.FormatError - :noindex: - :members: - - -Format-Specific Notes -~~~~~~~~~~~~~~~~~~~~~ - -regex -^^^^^ - -The JSON Schema specification `recommends (but does not require) `_ that implementations use ECMA 262 regular expressions. - -Given that there is no current library in Python capable of supporting the ECMA 262 dialect, the ``regex`` format will instead validate *Python* regular expressions, which are the ones used by this implementation for other keywords like :kw:`pattern` or :kw:`patternProperties`. - -email -^^^^^ - -Since in most cases "validating" an email address is an attempt instead to confirm that mail sent to it will deliver to a recipient, and that that recipient is the correct one the email is intended for, and since many valid email addresses are in many places incorrectly rejected, and many invalid email addresses are in many places incorrectly accepted, the ``email`` format keyword only provides a sanity check, not full :RFC:`5322` validation. - -The same applies to the ``idn-email`` format. - -If you indeed want a particular well-specified set of emails to be considered valid, you can use `FormatChecker.checks` to provide your specific definition. diff --git a/agent/vendor/jsonschema-4.23.0/json/.editorconfig b/agent/vendor/jsonschema-4.23.0/json/.editorconfig deleted file mode 100644 index 6db6a5bfa..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/.editorconfig +++ /dev/null @@ -1 +0,0 @@ -insert_final_newline = true diff --git a/agent/vendor/jsonschema-4.23.0/json/.github/CODEOWNERS b/agent/vendor/jsonschema-4.23.0/json/.github/CODEOWNERS deleted file mode 100644 index 15f4a2dbc..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/.github/CODEOWNERS +++ /dev/null @@ -1,2 +0,0 @@ -# Ping the entire test suite team by default. -* @json-schema-org/test-suite-team diff --git a/agent/vendor/jsonschema-4.23.0/json/.github/workflows/ci.yml b/agent/vendor/jsonschema-4.23.0/json/.github/workflows/ci.yml deleted file mode 100644 index a826069b5..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/.github/workflows/ci.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: Test Suite Sanity Checking - -on: - push: - pull_request: - release: - types: [published] - schedule: - # Daily at 6:42, arbitrarily as a time that's possibly non-busy - - cron: '42 6 * * *' - -jobs: - ci: - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v3 - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: '3.x' - - name: Install tox - run: python -m pip install tox - - name: Run the sanity checks - run: python -m tox diff --git a/agent/vendor/jsonschema-4.23.0/json/.gitignore b/agent/vendor/jsonschema-4.23.0/json/.gitignore deleted file mode 100644 index 68bc17f9f..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/.gitignore +++ /dev/null @@ -1,160 +0,0 @@ -# Byte-compiled / optimized / DLL files -__pycache__/ -*.py[cod] -*$py.class - -# C extensions -*.so - -# Distribution / packaging -.Python -build/ -develop-eggs/ -dist/ -downloads/ -eggs/ -.eggs/ -lib/ -lib64/ -parts/ -sdist/ -var/ -wheels/ -share/python-wheels/ -*.egg-info/ -.installed.cfg -*.egg -MANIFEST - -# PyInstaller -# Usually these files are written by a python script from a template -# before PyInstaller builds the exe, so as to inject date/other infos into it. -*.manifest -*.spec - -# Installer logs -pip-log.txt -pip-delete-this-directory.txt - -# Unit test / coverage reports -htmlcov/ -.tox/ -.nox/ -.coverage -.coverage.* -.cache -nosetests.xml -coverage.xml -*.cover -*.py,cover -.hypothesis/ -.pytest_cache/ -cover/ - -# Translations -*.mo -*.pot - -# Django stuff: -*.log -local_settings.py -db.sqlite3 -db.sqlite3-journal - -# Flask stuff: -instance/ -.webassets-cache - -# Scrapy stuff: -.scrapy - -# Sphinx documentation -docs/_build/ - -# PyBuilder -.pybuilder/ -target/ - -# Jupyter Notebook -.ipynb_checkpoints - -# IPython -profile_default/ -ipython_config.py - -# pyenv -# For a library or package, you might want to ignore these files since the code is -# intended to run in multiple environments; otherwise, check them in: -# .python-version - -# pipenv -# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. -# However, in case of collaboration, if having platform-specific dependencies or dependencies -# having no cross-platform support, pipenv may install dependencies that don't work, or not -# install all needed dependencies. -#Pipfile.lock - -# poetry -# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. -# This is especially recommended for binary packages to ensure reproducibility, and is more -# commonly ignored for libraries. -# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control -#poetry.lock - -# pdm -# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. -#pdm.lock -# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it -# in version control. -# https://pdm.fming.dev/#use-with-ide -.pdm.toml - -# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm -__pypackages__/ - -# Celery stuff -celerybeat-schedule -celerybeat.pid - -# SageMath parsed files -*.sage.py - -# Environments -.env -.venv -env/ -venv/ -ENV/ -env.bak/ -venv.bak/ - -# Spyder project settings -.spyderproject -.spyproject - -# Rope project settings -.ropeproject - -# mkdocs documentation -/site - -# mypy -.mypy_cache/ -.dmypy.json -dmypy.json - -# Pyre type checker -.pyre/ - -# pytype static type analyzer -.pytype/ - -# Cython debug symbols -cython_debug/ - -# PyCharm -# JetBrains specific template is maintained in a separate JetBrains.gitignore that can -# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore -# and can be added to the global gitignore or merged into this file. For a more nuclear -# option (not recommended) you can uncomment the following to ignore the entire idea folder. -#.idea/ diff --git a/agent/vendor/jsonschema-4.23.0/json/CONTRIBUTING.md b/agent/vendor/jsonschema-4.23.0/json/CONTRIBUTING.md deleted file mode 100644 index 8dab09e61..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/CONTRIBUTING.md +++ /dev/null @@ -1,87 +0,0 @@ -# Contributing to the Suite - -All contributors to the test suite should familiarize themselves with this document. - -Both pull requests *and* reviews are welcome from any and all, regardless of their "formal" relationship (or lack thereof) with the JSON Schema organization. - -## Commit Access - -Any existing members with commit access to the repository may nominate new members to get access, or a contributor may request access for themselves. -Access generally should be granted liberally to anyone who has shown positive contributions to the repository or organization. -All who are active in other parts of the JSON Schema organization should get access to this repository as well. -Access for a former contributor may be removed after long periods of inactivity. - -## Reviewing a Pull Request - -Pull requests may (and often should) be reviewed for approval by a single reviewer whose job it is to confirm the change is specified, correct, minimal and follows general style in the repository. -A reviewer who does not feel comfortable signing off on the correctness of a change is free to comment without explicit approval. -Other contributors are also encouraged to comment on pull requests whenever they have feedback, even if another contributor has submitted review comments. -A submitter may also choose to request additional feedback if they feel the change is particularly technical or complex, or requires expertise in a particular area of the specification. -If additional reviewers have participated in a pull request, the submitter should not rely on a single reviewer's approval without some form of confirmation that all participating reviewers are satisfied. -On the other hand, whenever possible, reviewers who have minor comments should explicitly mention that they are OK with the PR being merged after or potentially *without* addressing them. - -When submitting a change, explicitly soliciting a specific reviewer explicitly is currently not needed, as the entire review team is generally pinged for pull requests. -Nevertheless, submitters may choose to do so if they want specific review from an individual, or if a pull request is sitting without review for a period of time. -For the latter scenario, leaving a comment on the pull request or in Slack is also reasonable. - -Confirming that a pull request runs successfully on an implementation is *not* generally sufficient to merge, though it is helpful evidence, and highly encouraged. -Proposed changes should be confirmed by reading the specification and ensuring the behavior is specified and correct. -Submitters are encouraged to link to the specification whenever doing so will be helpful to a reviewer. - -A reviewer may indicate that the proposed changes are too large for them to review. -In such cases the submitter may wait for another reviewer who is comfortable reviewing the changes, but is generally strongly encouraged to split up the changes into multiple smaller ones. - -Reviewing pull requests is an extremely valuable contribution! -New reviewers are highly encouraged to attempt to review pull requests even if they do not have experience doing so, and to themselves expect feedback from the submitter or from other reviewers on improving the quality of their reviews. -In such cases the submitter should use their judgement to decide whether the new contributor's review is sufficient for merging, or whether they should wait for further feedback. - -## Merging Changes - -Approval of a change may be given using the GitHub UI or via a comment reply. -Once it has been given, the pull request may be merged at any point. - -To merge a pull request, *either* the submitter or reviewer must have commit access to the repo (though this is also partially simply because that party's access is needed to merge). - -*Either* the submitter or reviewer may be the one to do the actual merge (whether via hitting the merge button or externally to the GitHub UI). -If the submitter wishes to make final changes after a review they should attempt to say so (and thereby take responsibility for merging themselves). -Contributors *should not* leave pull requests stagnant whenever possible, and particularly after they have been reviewed and approved. - -Changes should not be merged while continuous integration is failing. -Failures typically are not spurious and indicate issues with the changes. -In the event the change is indeed correct and CI is flaky or itself incorrect, effort should be made by the submitter, reviewer, or a solicited other contributor to fix the CI before the change is made. -Improvements to CI itself are very valuable as well, and reviewers who find repeated issues with proposed changes are highly encouraged to improve CI for any changes which may be automatically detected. - -Changes should be merged *as-is* and not squashed into single commits. -Submitters are free to structure their commits as they wish throughout the review process, or in some cases to restructure the commits after a review is finished and they are merging the branch, but are not required to do so, and reviewers should not do so on behalf of the submitter without being requested to do so. - -Contributors with commit access may choose to merge pull requests (or commit directly) to the repository for trivial changes. -The definition of "trivial" is intentionally slightly ambiguous, and intended to be followed by good-faith contributors. -An example of a trivial change is fixing a typo in the README, or bumping a version of a dependency used by the continuous integration suite. -If another contributor takes issue with a change merged in this fashion, simply commenting politely that they have concerns about the change (either in an issue or directly) is the right remedy. - -## Writing Good Tests - -Be familiar with the test structure and assumptions documented in the [README](README.md). - -Test cases should include both valid and invalid instances which exercise the test case schema whenever possible. -Exceptions include schemas where only one result is ever possible (such as the `false` schema, or ones using keywords which only produce annotations). - -Schemas should be *minimal*, by which we mean that they should contain only those keywords which are being tested by the specific test case, and should not contain complex values when simpler ones would do. -The same applies to instances -- prefer simpler instances to more complex ones, and when testing string instances, consider using ones which are self-descriptive whenever it aids readability. - -Comments can and should be used to explain tests which are unclear or complex. -The `comment` field is present both for test cases and individual tests for this purpose. -Links to the relevant specification sections are also encouraged, though they can be tedious to maintain from one version to the next. - -When adding test cases, they should be added to all past (and future) versions of the specification which they apply to, potentially with minor modifications (e.g. changing `$id` to `id` or accounting for `$ref` not allowing siblings on older drafts). - -Changing the schema used in a particular test case should be done with extra caution, though it is not formally discouraged if the change simplifies the schema. -Contributors should not generally append *additional* behavior to existing test case schemas, unless doing so has specific justification. -Instead, new cases should be added, as it can often be subtle to predict which precise parts of a test case are unique. -Adding additional *tests* however (instances) is of course safe and encouraged if gaps are found. - -Tests which are *incorrect* (against the specification) should be prioritized for fixing or removal whenever possible, as their continued presence in the suite can create confusion for downstream users of the suite. - -## Proposing Changes to the Policy - -This policy itself is of course changeable, and changes to it may be proposed in a discussion. diff --git a/agent/vendor/jsonschema-4.23.0/json/LICENSE b/agent/vendor/jsonschema-4.23.0/json/LICENSE deleted file mode 100644 index c28adbadd..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2012 Julian Berman - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. diff --git a/agent/vendor/jsonschema-4.23.0/json/README.md b/agent/vendor/jsonschema-4.23.0/json/README.md deleted file mode 100644 index bfdcb501c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/README.md +++ /dev/null @@ -1,355 +0,0 @@ -# JSON Schema Test Suite - -[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](https://github.com/json-schema-org/.github/blob/main/CODE_OF_CONDUCT.md) -[![Project Status: Active – The project has reached a stable, usable state and is being actively developed.](https://www.repostatus.org/badges/latest/active.svg)](https://www.repostatus.org/#active) -[![Financial Contributors on Open Collective](https://opencollective.com/json-schema/all/badge.svg?label=financial+contributors)](https://opencollective.com/json-schema) - -[![DOI](https://zenodo.org/badge/5952934.svg)](https://zenodo.org/badge/latestdoi/5952934) -[![Build Status](https://github.com/json-schema-org/JSON-Schema-Test-Suite/workflows/Test%20Suite%20Sanity%20Checking/badge.svg)](https://github.com/json-schema-org/JSON-Schema-Test-Suite/actions?query=workflow%3A%22Test+Suite+Sanity+Checking%22) - -This repository contains a set of JSON objects that implementers of JSON Schema validation libraries can use to test their validators. - -It is meant to be language agnostic and should require only a JSON parser. -The conversion of the JSON objects into tests within a specific language and test framework of choice is left to be done by the validator implementer. - -The recommended workflow of this test suite is to clone the `main` branch of this repository as a `git submodule` or `git subtree`. The `main` branch is always stable. - -## Coverage - -All JSON Schema specification releases should be well covered by this suite, including drafts 2020-12, 2019-09, 07, 06, 04 and 03. -Drafts 04 and 03 are considered "frozen" in that less effort is put in to backport new tests to these versions. - -Additional coverage is always welcome, particularly for bugs encountered in real-world implementations. -If you see anything missing or incorrect, please feel free to [file an issue](https://github.com/json-schema-org/JSON-Schema-Test-Suite/issues) or [submit a PR](https://github.com/json-schema-org/JSON-Schema-Test-Suite). - -@gregsdennis has also started a separate [test suite](https://github.com/gregsdennis/json-schema-vocab-test-suites) that is modelled after this suite to cover third-party vocabularies. - -## Introduction to the Test Suite Structure - -The tests in this suite are contained in the `tests` directory at the root of this repository. -Inside that directory is a subdirectory for each released version of the specification. - -The structure and contents of each file in these directories is described below. - -In addition to the version-specific subdirectories, two additional directories are present: - -1. `draft-next/`: containing tests for the next version of the specification whilst it is in development -2. `latest/`: a symbolic link which points to the directory which is the most recent release (which may be useful for implementations providing specific entry points for validating against the latest version of the specification) - -Inside each version directory there are a number of `.json` files each containing a collection of related tests. -Often the grouping is by property under test, but not always. -In addition to the `.json` files, each version directory contains one or more special subdirectories whose purpose is [described below](#subdirectories-within-each-draft), and which contain additional `.json` files. - -Each `.json` file consists of a single JSON array of test cases. - -### Terminology - -For clarity, we first define this document's usage of some testing terminology: - -| term | definition | -|-----------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| **test suite** | the entirety of the contents of this repository, containing tests for multiple different releases of the JSON Schema specification | -| **test case** | a single schema, along with a description and an array of *test*s | -| **test** | within a *test case*, a single test example, containing a description, instance and a boolean indicating whether the instance is valid under the test case schema | -| **test runner** | a program, external to this repository and authored by a user of this suite, which is executing each of the tests in the suite | - -An example illustrating this structure is immediately below, and a JSON Schema containing a formal definition of the contents of test cases can be found [alongside this README](./test-schema.json). - -### Sample Test Case - -Here is a single *test case*, containing one or more tests: - -```json -{ - "description": "The test case description", - "schema": { "type": "string" }, - "tests": [ - { - "description": "a test with a valid instance", - "data": "a string", - "valid": true - }, - { - "description": "a test with an invalid instance", - "data": 15, - "valid": false - } - ] -} -``` - -### Subdirectories Within Each Draft - -There is currently only one additional subdirectory that may exist within each draft test directory. - -This is: - -1. `optional/`: Contains tests that are considered optional. - -Note, the `optional/` subdirectory today conflates many reasons why a test may be optional -- it may be because tests within a particular file are indeed not required by the specification but still potentially useful to an implementer, or it may be because tests within it only apply to programming languages with particular functionality (in -which case they are not truly optional in such a language). -In the future this directory structure will be made richer to reflect these differences more clearly. - -## Using the Suite to Test a Validator Implementation - -The test suite structure was described [above](#introduction-to-the-test-suite-structure). - -If you are authoring a new validator implementation, or adding support for an additional version of the specification, this section describes: - -1. How to implement a test runner which passes tests to your validator -2. Assumptions the suite makes about how the test runner will configure your validator -3. Invariants the test suite claims to hold for its tests - -### How to Implement a Test Runner - -Presented here is a possible implementation of a test runner. -The precise steps described do not need to be followed exactly, but the results of your own procedure should produce the same effects. - -To test a specific version: - -* For 2019-09 and later published drafts, implementations that are able to detect the draft of each schema via `$schema` SHOULD be configured to do so -* For draft-07 and earlier, draft-next, and implementations unable to detect via `$schema`, implementations MUST be configured to expect the draft matching the test directory name -* Load any remote references [described below](#additional-assumptions) and configure your implementation to retrieve them via their URIs -* Walk the filesystem tree for that version's subdirectory and for each `.json` file found: - - * if the file is located in the root of the version directory: - - * for each test case present in the file: - - * load the schema from the `"schema"` property - * load (or log) the test case description from the `"description"` property for debugging or outputting - * for each test in the `"tests"` property: - - * load the instance to be tested from the `"data"` property - * load (or log) the individual test description from the `"description"` property for debugging or outputting - - * use the schema loaded above to validate whether the instance is considered valid under your implementation - - * if the result from your implementation matches the value found in the `"valid"` property, your implementation correctly implements the specific example - * if the result does not match, or your implementation errors or crashes, your implementation does not correctly implement the specific example - - * otherwise it is located in a special subdirectory as described above. - Follow the additional assumptions and restrictions for the containing subdirectory, then run the test case as above. - -If your implementation supports multiple versions, run the above procedure for each version supported, configuring your implementation as appropriate to call each version individually. - -### Additional Assumptions - -1. The suite, notably in its `refRemote.json` file in each draft, expects a number of remote references to be configured. - These are JSON documents, identified by URI, which are used by the suite to test the behavior of the `$ref` keyword (and related keywords). - Depending on your implementation, you may configure how to "register" these *either*: - - * by directly retrieving them off the filesystem from the `remotes/` directory, in which case you should load each schema with a retrieval URI of `http://localhost:1234` followed by the relative path from the remotes directory -- e.g. a `$ref` to `http://localhost:1234/foo/bar/baz.json` is expected to resolve to the contents of the file at `remotes/foo/bar/baz.json` - - * or alternatively, by executing `bin/jsonschema_suite remotes` using the executable in the `bin/` directory, which will output a JSON object containing all of the remotes combined, e.g.: - - ``` - - $ bin/jsonschema_suite remotes - ``` - ```json - { - "http://localhost:1234/baseUriChange/folderInteger.json": { - "type": "integer" - }, - "http://localhost:1234/baseUriChangeFolder/folderInteger.json": { - "type": "integer" - } - } - ``` - -2. Test cases found within [special subdirectories](#subdirectories-within-each-draft) may require additional configuration to run. - In particular, when running tests within the `optional/format` subdirectory, test runners should configure implementations to enable format validation, where the implementation supports it. - -### Invariants & Guarantees - -The test suite guarantees a number of things about tests it defines. -Any deviation from the below is generally considered a bug. -If you suspect one, please [file an issue](https://github.com/json-schema-org/JSON-Schema-Test-Suite/issues/new): - -1. All files containing test cases are valid JSON. -2. The contents of the `"schema"` property in a test case are always valid - JSON Schemas under the corresponding specification. - - The rationale behind this is that we are testing instances in a test's `"data"` element, and not the schema itself. - A number of tests *do* test the validity of a schema itself, but do so by representing the schema as an instance inside a test, with the associated meta-schema in the `"schema"` property (via the `"$ref"` keyword): - - ```json - { - "description": "Test the \"type\" schema keyword", - "schema": { - "$ref": "https://json-schema.org/draft/2019-09/schema" - }, - "tests": [ - { - "description": "Valid: string", - "data": { - "type": "string" - }, - "valid": true - }, - { - "description": "Invalid: null", - "data": { - "type": null - }, - "valid": false - } - ] - } - ``` - See below for some [known limitations](#known-limitations). - -## Known Limitations - -This suite expresses its assertions about the behavior of an implementation *within* JSON Schema itself. -Each test is the application of a schema to a particular instance. -This means that the suite of tests can test against any behavior a schema can describe, and conversely cannot test against any behavior which a schema is incapable of representing, even if the behavior is mandated by the specification. - -For example, a schema can require that a string is a _URI-reference_ and even that it matches a certain pattern, but even though the specification contains [recommendations about URIs being normalized](https://json-schema.org/draft/2020-12/json-schema-core.html#name-the-id-keyword), a JSON schema cannot today represent this assertion within the core vocabularies of the specifications, so no test covers this behavior. - -## Who Uses the Test Suite - -This suite is being used by: - -### Clojure - -* [jinx](https://github.com/juxt/jinx) -* [json-schema](https://github.com/tatut/json-schema) - -### Coffeescript - -* [jsck](https://github.com/pandastrike/jsck) - -### Common Lisp - -* [json-schema](https://github.com/fisxoj/json-schema) - -### C++ - -* [Modern C++ JSON schema validator](https://github.com/pboettch/json-schema-validator) -* [Valijson](https://github.com/tristanpenman/valijson) - -### Dart - -* [json\_schema](https://github.com/patefacio/json_schema) - -### Elixir - -* [ex\_json\_schema](https://github.com/jonasschmidt/ex_json_schema) - -### Erlang - -* [jesse](https://github.com/for-GET/jesse) - -### Go - -* [gojsonschema](https://github.com/sigu-399/gojsonschema) -* [validate-json](https://github.com/cesanta/validate-json) - -### Haskell - -* [aeson-schema](https://github.com/timjb/aeson-schema) -* [hjsonschema](https://github.com/seagreen/hjsonschema) - -### Java - -* [json-schema-validation-comparison](https://www.creekservice.org/json-schema-validation-comparison/functional) (Comparison site for JVM-based validator implementations) -* [json-schema-validator](https://github.com/daveclayton/json-schema-validator) -* [everit-org/json-schema](https://github.com/everit-org/json-schema) -* [networknt/json-schema-validator](https://github.com/networknt/json-schema-validator) -* [Justify](https://github.com/leadpony/justify) -* [Snow](https://github.com/ssilverman/snowy-json) -* [jsonschemafriend](https://github.com/jimblackler/jsonschemafriend) -* [OpenAPI JSON Schema Generator](https://github.com/openapi-json-schema-tools/openapi-json-schema-generator) - -### JavaScript - -* [json-schema-benchmark](https://github.com/Muscula/json-schema-benchmark) -* [direct-schema](https://github.com/IreneKnapp/direct-schema) -* [is-my-json-valid](https://github.com/mafintosh/is-my-json-valid) -* [jassi](https://github.com/iclanzan/jassi) -* [JaySchema](https://github.com/natesilva/jayschema) -* [json-schema-valid](https://github.com/ericgj/json-schema-valid) -* [Jsonary](https://github.com/jsonary-js/jsonary) -* [jsonschema](https://github.com/tdegrunt/jsonschema) -* [request-validator](https://github.com/bugventure/request-validator) -* [skeemas](https://github.com/Prestaul/skeemas) -* [tv4](https://github.com/geraintluff/tv4) -* [z-schema](https://github.com/zaggino/z-schema) -* [jsen](https://github.com/bugventure/jsen) -* [ajv](https://github.com/epoberezkin/ajv) -* [djv](https://github.com/korzio/djv) - -### Kotlin - -* [json-schema-validation-comparison](https://www.creekservice.org/json-schema-validation-comparison/functional) (Comparison site for JVM-based validator implementations) - -### Node.js - -For node.js developers, the suite is also available as an [npm](https://www.npmjs.com/package/@json-schema-org/tests) package. - -Node-specific support is maintained in a [separate repository](https://github.com/json-schema-org/json-schema-test-suite-npm) which also welcomes your contributions! - -### .NET - -* [JsonSchema.Net](https://github.com/gregsdennis/json-everything) -* [Newtonsoft.Json.Schema](https://github.com/JamesNK/Newtonsoft.Json.Schema) - -### Perl - -* [Test::JSON::Schema::Acceptance](https://github.com/karenetheridge/Test-JSON-Schema-Acceptance) (a wrapper of this test suite) -* [JSON::Schema::Modern](https://github.com/karenetheridge/JSON-Schema-Modern) -* [JSON::Schema::Tiny](https://github.com/karenetheridge/JSON-Schema-Tiny) - -### PHP - -* [opis/json-schema](https://github.com/opis/json-schema) -* [json-schema](https://github.com/justinrainbow/json-schema) -* [json-guard](https://github.com/thephpleague/json-guard) - -### PostgreSQL - -* [postgres-json-schema](https://github.com/gavinwahl/postgres-json-schema) -* [is\_jsonb\_valid](https://github.com/furstenheim/is_jsonb_valid) - -### Python - -* [jsonschema](https://github.com/Julian/jsonschema) -* [fastjsonschema](https://github.com/seznam/python-fastjsonschema) -* [hypothesis-jsonschema](https://github.com/Zac-HD/hypothesis-jsonschema) -* [jschon](https://github.com/marksparkza/jschon) -* [OpenAPI JSON Schema Generator](https://github.com/openapi-json-schema-tools/openapi-json-schema-generator) - -### Ruby - -* [json-schema](https://github.com/hoxworth/json-schema) -* [json\_schemer](https://github.com/davishmcclurg/json_schemer) - -### Rust - -* [jsonschema](https://github.com/Stranger6667/jsonschema-rs) -* [valico](https://github.com/rustless/valico) - -### Scala - -* [json-schema-validation-comparison](https://www.creekservice.org/json-schema-validation-comparison/functional) (Comparison site for JVM-based validator implementations) -* [typed-json](https://github.com/frawa/typed-json) - -### Swift - -* [JSONSchema](https://github.com/kylef/JSONSchema.swift) - -If you use it as well, please fork and send a pull request adding yourself to -the list :). - -## Contributing - -If you see something missing or incorrect, a pull request is most welcome! - -There are some sanity checks in place for testing the test suite. You can run -them with `bin/jsonschema_suite check` or `tox`. They will be run automatically -by [GitHub Actions](https://github.com/json-schema-org/JSON-Schema-Test-Suite/actions?query=workflow%3A%22Test+Suite+Sanity+Checking%22) -as well. - -This repository is maintained by the JSON Schema organization, and will be governed by the JSON Schema steering committee (once it exists). diff --git a/agent/vendor/jsonschema-4.23.0/json/bin/jsonschema_suite b/agent/vendor/jsonschema-4.23.0/json/bin/jsonschema_suite deleted file mode 100755 index c83e7cb2c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/bin/jsonschema_suite +++ /dev/null @@ -1,733 +0,0 @@ -#! /usr/bin/env python3 -from pathlib import Path -from urllib.parse import urljoin -import argparse -import json -import os -import random -import shutil -import sys -import textwrap -import unittest -import warnings - -try: - import jsonschema.validators -except ImportError: - jsonschema = Unresolvable = None - VALIDATORS = {} -else: - from referencing.exceptions import Unresolvable - - VALIDATORS = { - "draft3": jsonschema.validators.Draft3Validator, - "draft4": jsonschema.validators.Draft4Validator, - "draft6": jsonschema.validators.Draft6Validator, - "draft7": jsonschema.validators.Draft7Validator, - "draft2019-09": jsonschema.validators.Draft201909Validator, - "draft2020-12": jsonschema.validators.Draft202012Validator, - "latest": jsonschema.validators.Draft202012Validator, - } - - -ROOT_DIR = Path(__file__).parent.parent -SUITE_ROOT_DIR = ROOT_DIR / "tests" -OUTPUT_ROOT_DIR = ROOT_DIR / "output-tests" - -REMOTES_DIR = ROOT_DIR / "remotes" -REMOTES_BASE_URL = "http://localhost:1234/" - -TEST_SCHEMA = json.loads(ROOT_DIR.joinpath("test-schema.json").read_text()) -OUTPUT_TEST_SCHEMA = json.loads( - ROOT_DIR.joinpath("output-test-schema.json").read_text(), -) - - -def files(paths): - """ - Each test file in the provided paths, as an array of test cases. - """ - for path in paths: - yield path, json.loads(path.read_text()) - - -def cases(paths): - """ - Each test case within each file in the provided paths. - """ - for _, test_file in files(paths): - yield from test_file - - -def tests(paths): - """ - Each individual test within all cases within the provided paths. - """ - for case in cases(paths): - for test in case["tests"]: - test["schema"] = case["schema"] - yield test - - -def collect(root_dir): - """ - All of the test file paths within the given root directory, recursively. - """ - return root_dir.rglob("*.json") - - -def url_for_path(path): - """ - Return the assumed remote URL for a file in the remotes/ directory. - - Tests in the refRemote.json file reference this URL, and assume the - corresponding contents are available at the URL. - """ - - return urljoin( - REMOTES_BASE_URL, - str(path.relative_to(REMOTES_DIR)).replace("\\", "/"), # Windows... - ) - - -def versions_and_validators(): - """ - All versions we can validate schemas from. - """ - - for version in SUITE_ROOT_DIR.iterdir(): - if not version.is_dir(): - continue - - Validator = VALIDATORS.get(version.name) - if Validator is None: - warnings.warn(f"No schema validator for {version.name}") - continue - - yield version, Validator - - -class SanityTests(unittest.TestCase): - @classmethod - def setUpClass(cls): - print(f"Looking for tests in {SUITE_ROOT_DIR}") - print(f"Looking for output tests in {OUTPUT_ROOT_DIR}") - print(f"Looking for remotes in {REMOTES_DIR}") - - cls.test_files = list(collect(SUITE_ROOT_DIR)) - assert cls.test_files, "Didn't find the test files!" - print(f"Found {len(cls.test_files)} test files") - - cls.output_test_files = [ - each - for each in collect(OUTPUT_ROOT_DIR) - if each.name != "output-schema.json" - ] - assert cls.output_test_files, "Didn't find the output test files!" - print(f"Found {len(cls.output_test_files)} output test files") - - cls.remote_files = list(collect(REMOTES_DIR)) - assert cls.remote_files, "Didn't find the remote files!" - print(f"Found {len(cls.remote_files)} remote files") - - def assertUnique(self, iterable): - """ - Assert that the elements of an iterable are unique. - """ - - seen, duplicated = set(), set() - for each in iterable: - if each in seen: - duplicated.add(each) - seen.add(each) - self.assertFalse(duplicated, "Elements are not unique.") - - def assertFollowsDescriptionStyle(self, description): - """ - Instead of saying "test that X frobs" or "X should frob" use "X frobs". - - See e.g. https://jml.io/pages/test-docstrings.html - - This test isn't comprehensive (it doesn't catch all the extra - verbiage there), but it's just to catch whatever it manages to - cover. - """ - - message = ( - "In descriptions, don't say 'Test that X frobs' or 'X should " - "frob' or 'X should be valid'. Just say 'X frobs' or 'X is " - "valid'. It's shorter, and the test suite is entirely about " - "what *should* be already. " - "See https://jml.io/pages/test-docstrings.html for help." - ) - self.assertNotRegex(description, r"\bshould\b", message) - self.assertNotRegex(description, r"(?i)\btest(s)? that\b", message) - - def test_all_json_files_are_valid(self): - """ - All files (tests, output tests, remotes, etc.) contain valid JSON. - """ - for path in collect(ROOT_DIR): - with self.subTest(path=path): - try: - json.loads(path.read_text()) - except ValueError as error: - self.fail(f"{path} contains invalid JSON ({error})") - - def test_all_case_descriptions_have_reasonable_length(self): - """ - All cases have reasonably long descriptions. - """ - for case in cases(self.test_files + self.output_test_files): - with self.subTest(description=case["description"]): - self.assertLess( - len(case["description"]), - 150, - "Description is too long (keep it to less than 150 chars).", - ) - - def test_all_test_descriptions_have_reasonable_length(self): - """ - All tests have reasonably long descriptions. - """ - for count, test in enumerate( - tests(self.test_files + self.output_test_files) - ): - with self.subTest(description=test["description"]): - self.assertLess( - len(test["description"]), - 70, - "Description is too long (keep it to less than 70 chars).", - ) - print(f"Found {count} tests.") - - def test_all_case_descriptions_are_unique(self): - """ - All cases have unique descriptions in their files. - """ - for path, cases in files(self.test_files + self.output_test_files): - with self.subTest(path=path): - self.assertUnique(case["description"] for case in cases) - - def test_all_test_descriptions_are_unique(self): - """ - All test cases have unique test descriptions in their tests. - """ - for count, case in enumerate( - cases(self.test_files + self.output_test_files) - ): - with self.subTest(description=case["description"]): - self.assertUnique( - test["description"] for test in case["tests"] - ) - print(f"Found {count} test cases.") - - def test_case_descriptions_do_not_use_modal_verbs(self): - for case in cases(self.test_files + self.output_test_files): - with self.subTest(description=case["description"]): - self.assertFollowsDescriptionStyle(case["description"]) - - def test_test_descriptions_do_not_use_modal_verbs(self): - for test in tests(self.test_files + self.output_test_files): - with self.subTest(description=test["description"]): - self.assertFollowsDescriptionStyle(test["description"]) - - @unittest.skipIf(jsonschema is None, "Validation library not present!") - def test_all_schemas_are_valid(self): - """ - All schemas are valid under their metaschemas. - """ - for version, Validator in versions_and_validators(): - # Valid (optional test) schemas contain regexes which - # aren't valid Python regexes, so skip checking it - Validator.FORMAT_CHECKER.checkers.pop("regex", None) - - test_files = collect(version) - for case in cases(test_files): - with self.subTest(case=case): - try: - Validator.check_schema( - case["schema"], - format_checker=Validator.FORMAT_CHECKER, - ) - except jsonschema.SchemaError: - self.fail( - "Found an invalid schema. " - "See the traceback for details on why." - ) - - @unittest.skipIf(jsonschema is None, "Validation library not present!") - def test_arbitrary_schemas_do_not_use_unknown_keywords(self): - """ - Test cases do not use unknown keywords. - - (Unless they specifically are testing the specified behavior for - unknown keywords). - - This helps prevent accidental leakage of newer keywords into older - drafts where they didn't exist. - """ - - KNOWN = { - "draft2020-12": { - "$anchor", - "$comment", - "$defs", - "$dynamicAnchor", - "$dynamicRef", - "$id", - "$ref", - "$schema", - "$vocabulary", - "additionalProperties", - "allOf", - "allOf", - "anyOf", - "const", - "contains", - "contentEncoding", - "contentMediaType", - "contentSchema", - "dependencies", - "dependentRequired", - "dependentSchemas", - "description", - "else", - "enum", - "exclusiveMaximum", - "exclusiveMinimum", - "format", - "if", - "items", - "maxContains", - "maxItems", - "maxItems", - "maxLength", - "maxProperties", - "maximum", - "minContains", - "minItems", - "minLength", - "minProperties", - "minimum", - "multipleOf", - "not", - "oneOf", - "pattern", - "patternProperties", - "prefixItems", - "properties", - "propertyNames", - "required", - "then", - "title", - "type", - "unevaluatedItems", - "unevaluatedProperties", - "uniqueItems", - }, - "draft2019-09": { - "$anchor", - "$comment", - "$defs", - "$id", - "$recursiveAnchor", - "$recursiveRef", - "$ref", - "$schema", - "$vocabulary", - "additionalItems", - "additionalProperties", - "allOf", - "anyOf", - "const", - "contains", - "contentEncoding", - "contentMediaType", - "contentSchema", - "dependencies", - "dependentRequired", - "dependentSchemas", - "description", - "else", - "enum", - "exclusiveMaximum", - "exclusiveMinimum", - "format", - "if", - "items", - "maxContains", - "maxItems", - "maxLength", - "maxProperties", - "maximum", - "minContains", - "minItems", - "minLength", - "minProperties", - "minimum", - "multipleOf", - "not", - "oneOf", - "pattern", - "patternProperties", - "properties", - "propertyNames", - "required", - "then", - "title", - "type", - "unevaluatedItems", - "unevaluatedProperties", - "uniqueItems", - }, - "draft7": { - "$comment", - "$id", - "$ref", - "$schema", - "additionalItems", - "additionalProperties", - "allOf", - "anyOf", - "const", - "contains", - "contentEncoding", - "contentMediaType", - "definitions", - "dependencies", - "description", - "else", - "enum", - "exclusiveMaximum", - "exclusiveMinimum", - "format", - "if", - "items", - "maxItems", - "maxLength", - "maxProperties", - "maximum", - "minItems", - "minLength", - "minProperties", - "minimum", - "multipleOf", - "not", - "oneOf", - "pattern", - "patternProperties", - "properties", - "propertyNames", - "required", - "then", - "title", - "type", - "type", - "uniqueItems", - }, - "draft6": { - "$comment", - "$id", - "$ref", - "$schema", - "additionalItems", - "additionalProperties", - "allOf", - "anyOf", - "const", - "contains", - "definitions", - "dependencies", - "description", - "enum", - "exclusiveMaximum", - "exclusiveMinimum", - "format", - "items", - "maxItems", - "maxLength", - "maxProperties", - "maximum", - "minItems", - "minLength", - "minProperties", - "minimum", - "multipleOf", - "not", - "oneOf", - "pattern", - "patternProperties", - "properties", - "propertyNames", - "required", - "title", - "type", - "uniqueItems", - }, - "draft4": { - "$ref", - "$schema", - "additionalItems", - "additionalItems", - "additionalProperties", - "allOf", - "anyOf", - "definitions", - "dependencies", - "description", - "enum", - "exclusiveMaximum", - "exclusiveMinimum", - "format", - "id", - "items", - "maxItems", - "maxLength", - "maxProperties", - "maximum", - "minItems", - "minLength", - "minProperties", - "minimum", - "multipleOf", - "not", - "oneOf", - "pattern", - "patternProperties", - "properties", - "required", - "title", - "type", - "uniqueItems", - - # Technically this is wrong, $comment doesn't exist in this - # draft, but the point of this test is to detect mistakes by, - # test authors, whereas the point of the $comment keyword is - # to just standardize a place for a comment, so it's not a - # mistake to use it in earlier drafts in tests per se. - "$comment", - }, - "draft3": { - "$ref", - "$schema", - "additionalItems", - "additionalProperties", - "definitions", - "dependencies", - "description", - "disallow", - "divisibleBy", - "enum", - "exclusiveMaximum", - "exclusiveMinimum", - "extends", - "format", - "id", - "items", - "maxItems", - "maxLength", - "maximum", - "minItems", - "minLength", - "minimum", - "pattern", - "patternProperties", - "properties", - "title", - "type", - "uniqueItems", - - # Technically this is wrong, $comment doesn't exist in this - # draft, but the point of this test is to detect mistakes by, - # test authors, whereas the point of the $comment keyword is - # to just standardize a place for a comment, so it's not a - # mistake to use it in earlier drafts in tests per se. - "$comment", - }, - } - - def missing(d): - from collections.abc import Mapping - - class BlowUpForUnknownProperties(Mapping): - def __iter__(this): - return iter(d) - - def __getitem__(this, k): - if k not in KNOWN[version.name]: - self.fail( - f"{k} is not a known keyword for {version.name}. " - "If this test is testing behavior related to " - "unknown keywords you may need to add it to the " - "allowlist in the jsonschema_suite checker. " - "Otherwise it may contain a typo!" - ) - return d[k] - - def __len__(this): - return len(d) - - return BlowUpForUnknownProperties() - - for version, Validator in versions_and_validators(): - if version.name == "latest": - continue - - self.addCleanup( - setattr, Validator, "VALIDATORS", Validator.VALIDATORS, - ) - Validator.VALIDATORS = missing(dict(Validator.VALIDATORS)) - - test_files = [ - each for each in collect(version) - if each.stem != "refOfUnknownKeyword" - ] - for case in cases(test_files): - if "unknown keyword" in case["description"]: - continue - with self.subTest(case=case, version=version.name): - try: - Validator(case["schema"]).is_valid(12) - except Unresolvable: - pass - - @unittest.skipIf(jsonschema is None, "Validation library not present!") - def test_suites_are_valid(self): - """ - All test files are valid under test-schema.json. - """ - Validator = jsonschema.validators.validator_for(TEST_SCHEMA) - validator = Validator(TEST_SCHEMA) - for path, cases in files(self.test_files): - with self.subTest(path=path): - try: - validator.validate(cases) - except jsonschema.ValidationError as error: - self.fail(str(error)) - - @unittest.skipIf(jsonschema is None, "Validation library not present!") - def test_output_suites_are_valid(self): - """ - All output test files are valid under output-test-schema.json. - """ - Validator = jsonschema.validators.validator_for(OUTPUT_TEST_SCHEMA) - validator = Validator(OUTPUT_TEST_SCHEMA) - for path, cases in files(self.output_test_files): - with self.subTest(path=path): - try: - validator.validate(cases) - except jsonschema.ValidationError as error: - self.fail(str(error)) - - -def main(arguments): - if arguments.command == "check": - suite = unittest.TestLoader().loadTestsFromTestCase(SanityTests) - result = unittest.TextTestRunner().run(suite) - sys.exit(not result.wasSuccessful()) - elif arguments.command == "flatten": - selected_cases = [case for case in cases(collect(arguments.version))] - - if arguments.randomize: - random.shuffle(selected_cases) - - json.dump(selected_cases, sys.stdout, indent=4, sort_keys=True) - elif arguments.command == "remotes": - remotes = { - url_for_path(path): json.loads(path.read_text()) - for path in collect(REMOTES_DIR) - } - json.dump(remotes, sys.stdout, indent=4, sort_keys=True) - elif arguments.command == "dump_remotes": - if arguments.update: - shutil.rmtree(arguments.out_dir, ignore_errors=True) - - try: - shutil.copytree(REMOTES_DIR, arguments.out_dir) - except FileExistsError: - print(f"{arguments.out_dir} already exists. Aborting.") - sys.exit(1) - elif arguments.command == "serve": - try: - import flask - except ImportError: - print( - textwrap.dedent( - """ - The Flask library is required to serve the remote schemas. - - You can install it by running `pip install Flask`. - - Alternatively, see the `jsonschema_suite remotes` or - `jsonschema_suite dump_remotes` commands to create static files - that can be served with your own web server. - """.strip( - "\n" - ) - ) - ) - sys.exit(1) - - app = flask.Flask(__name__) - - @app.route("/") - def serve_path(path): - return flask.send_from_directory(REMOTES_DIR, path) - - app.run(port=1234) - - -parser = argparse.ArgumentParser( - description="JSON Schema Test Suite utilities", -) -subparsers = parser.add_subparsers( - help="utility commands", dest="command", metavar="COMMAND" -) -subparsers.required = True - -check = subparsers.add_parser("check", help="Sanity check the test suite.") - -flatten = subparsers.add_parser( - "flatten", - help="Output a flattened file containing a selected version's test cases.", -) -flatten.add_argument( - "--randomize", - action="store_true", - help="Randomize the order of the outputted cases.", -) -flatten.add_argument( - "version", - help="The directory containing the version to output", -) - -remotes = subparsers.add_parser( - "remotes", - help="Output the expected URLs and their associated schemas for remote " - "ref tests as a JSON object.", -) - -dump_remotes = subparsers.add_parser( - "dump_remotes", - help="Dump the remote ref schemas into a file tree", -) -dump_remotes.add_argument( - "--update", - action="store_true", - help="Update the remotes in an existing directory.", -) -dump_remotes.add_argument( - "--out-dir", - default=REMOTES_DIR, - type=os.path.abspath, - help="The output directory to create as the root of the file tree", -) - -serve = subparsers.add_parser( - "serve", - help="Start a webserver to serve schemas used by remote ref tests.", -) - -if __name__ == "__main__": - main(parser.parse_args()) diff --git a/agent/vendor/jsonschema-4.23.0/json/output-test-schema.json b/agent/vendor/jsonschema-4.23.0/json/output-test-schema.json deleted file mode 100644 index 02c51ef55..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/output-test-schema.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://json-schema.org/tests/output-test-schema", - "description": "A schema for files contained within this suite", - - "type": "array", - "minItems": 1, - "items": { - "description": "An individual test case, containing multiple tests of a single schema's behavior", - - "type": "object", - "required": [ "description", "schema", "tests" ], - "properties": { - "description": { - "description": "The test case description", - "type": "string" - }, - "comment": { - "description": "Any additional comments about the test case", - "type": "string" - }, - "schema": { - "description": "A valid JSON Schema (one written for the corresponding version directory that the file sits within)." - }, - "tests": { - "description": "A set of related tests all using the same schema", - "type": "array", - "items": { "$ref": "#/$defs/test" }, - "minItems": 1 - } - }, - "additionalProperties": false - }, - - "$defs": { - "test": { - "description": "A single output test", - - "type": "object", - "required": [ "description", "data", "output" ], - "properties": { - "description": { - "description": "The test description, briefly explaining which behavior it exercises", - "type": "string" - }, - "comment": { - "description": "Any additional comments about the test", - "type": "string" - }, - "data": { - "description": "The instance which should be validated against the schema in \"schema\"." - }, - "output": { - "description": "schemas that are used to verify output", - "type": "object", - "properties": { - "flag": { "$ref": "https://json-schema.org/draft/2020-12/schema" }, - "basic": { "$ref": "https://json-schema.org/draft/2020-12/schema" }, - "detailed": { "$ref": "https://json-schema.org/draft/2020-12/schema" }, - "verbose": { "$ref": "https://json-schema.org/draft/2020-12/schema" }, - "list": { "$ref": "https://json-schema.org/draft/2020-12/schema" }, - "hierarchy": { "$ref": "https://json-schema.org/draft/2020-12/schema" } - }, - "minProperties": 1, - "additionalProperties": false - } - } - } - } -} diff --git a/agent/vendor/jsonschema-4.23.0/json/output-tests/README.md b/agent/vendor/jsonschema-4.23.0/json/output-tests/README.md deleted file mode 100644 index d209bdb25..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/output-tests/README.md +++ /dev/null @@ -1,63 +0,0 @@ -These tests are intended to validate that implementations are correctly generating output in accordance with the specification. - -Output was initially specified with draft 2019-09. It remained largely unchanged for draft 2020-12, but will receive an update with the next release. - -_**NOTE** Although the formats didn't change much between 2019-09 and 2020-12, the tests are copied for 2020-12 because the `$schema` is different and implementations may (but shouldn't) produce different output._ - -## Organization - -The tests are organized by specification release and then into two categories: content and structure. - -Content tests verify that the keywords are producing the correct annotations and/or error messages. Since there are no requirements on the content of error messages, there's not much that can be verified for them, but it is possible to identify when a error message _could_ be present. Primarily, these tests need to extensively cover the annotation behaviors of each keyword. The only output format needed for these tests is `basic` for 2019-09/2020-12 and `list` for later versions. - -Structure tests verify that the structures of the various formats (i.e. `flag`, `basic`, `detailed`, `verbose` for 2019-09/2020-12 and `flag`, `list`, `hierarchical` for later versions) are correct. These tests don't need to cover each keyword; rather they need to sufficiently cover the various aspects of building the output structures by using whatever keywords are necessary to do so. - -In each release folder, you'll also find an _output-schema.json_ file that contains the schema from the specification repo that describes output for that release. This schema will need to be loaded as the tests reference it. - -## Test Files - -The content of a test file is similar to the validation tests in `tests/`: for each test case, the `valid` property has been removed, and an `output` property has been added. - -The `output` property itself has a property for each of the output formats where the value is a schema that will successfully validate for compliant output. For the content tests, only `basic`/`list` needs to be present. - -## Other notes - -### Ambiguity around 2020-09/2020-12 `basic` - -The 2019-09/2020-12 specs don't define the structure of `basic` very thoroughly. Specifically there is a nuance where if the list contains a single output node, there are two possible structures, given the text: - -- the output node for the root schema appears in the list with a containing node that just has a `valid` property - ```json - { - "valid": false, - "errors": [ - { - "valid": false, - "keywordLocation": "", - "absoluteKeywordLocation": "https://json-schema.org/tests/content/draft2019-09/general/0", - "instanceLocation": "" - } - ] - } - ``` -- the entire structure is collapsed to just the root output node as `detailed` would do. - ```json - { - "valid": false, - "keywordLocation": "", - "absoluteKeywordLocation": "https://json-schema.org/tests/content/draft2019-09/general/0", - "instanceLocation": "" - } - ``` -As the Test Suite should not prefer one interpretation over another, these cases need to be tested another way. - -A simple solution (though there are likely others) is to force a second output unit by adding an `"anyOf": [ true ]`. This has no impact on the validation result while adding superfluous structure to the output that avoids the above ambiguous scenario. The test schema should still be targeted on what's being tested and ignore any output units generated by this extra keyword. - -## Contributing - -Of course, first and foremost, follow the [Contributing guide](/CONTRIBUTING.md). - -When writing test cases, try to keep output validation schemas targeted to verify a single requirement. Where possible (and where it makes sense), create multiple tests to cover multiple requirements. This will help keep the output validation schemas small and increase readability. (It also increases your test count. 😉) - -For the content tests, there is also a _general.json_ file that contains tests that do not necessarily pertain to any single keyword. - diff --git a/agent/vendor/jsonschema-4.23.0/json/output-tests/draft-next/content/general.json b/agent/vendor/jsonschema-4.23.0/json/output-tests/draft-next/content/general.json deleted file mode 100644 index 23fe1daeb..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/output-tests/draft-next/content/general.json +++ /dev/null @@ -1,43 +0,0 @@ -[ - { - "description": "failed validation produces no annotations", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "https://json-schema.org/tests/content/draft-next/general/0", - "type": "string", - "readOnly": true - }, - "tests": [ - { - "description": "dropped annotations MAY appear in droppedAnnotations", - "data": 1, - "output": { - "list": { - "$id": "https://json-schema.org/tests/content/draft-next/general/0/tests/0/basic", - "$ref": "/draft/next/output/schema", - "properties": { - "details": { - "contains": { - "properties": { - "evaluationPath": {"const": ""}, - "schemaLocation": {"const": "https://json-schema.org/tests/content/draft-next/general/0#"}, - "instanceLocation": {"const": ""}, - "annotations": false, - "droppedAnnotations": { - "properties": { - "readOnly": {"const": true} - }, - "required": ["readOnly"] - } - }, - "required": ["evaluationPath", "schemaLocation", "instanceLocation"] - } - } - }, - "required": ["details"] - } - } - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/output-tests/draft-next/content/readOnly.json b/agent/vendor/jsonschema-4.23.0/json/output-tests/draft-next/content/readOnly.json deleted file mode 100644 index 8d1c2dec2..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/output-tests/draft-next/content/readOnly.json +++ /dev/null @@ -1,41 +0,0 @@ -[ - { - "description": "readOnly generates its value as an annotation", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "https://json-schema.org/tests/content/draft-next/readOnly/0", - "readOnly": true - }, - "tests": [ - { - "description": "readOnly is true", - "data": 1, - "output": { - "list": { - "$id": "https://json-schema.org/tests/content/draft-next/readOnly/0/tests/0/basic", - "$ref": "/draft/next/output/schema", - "properties": { - "details": { - "contains": { - "properties": { - "evaluationPath": {"const": ""}, - "schemaLocation": {"const": "https://json-schema.org/tests/content/draft-next/readOnly/0#"}, - "instanceLocation": {"const": ""}, - "annotations": { - "properties": { - "readOnly": {"const": true} - }, - "required": ["readOnly"] - } - }, - "required": ["evaluationPath", "schemaLocation", "instanceLocation", "annotations"] - } - } - }, - "required": ["details"] - } - } - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/output-tests/draft-next/content/type.json b/agent/vendor/jsonschema-4.23.0/json/output-tests/draft-next/content/type.json deleted file mode 100644 index afc7f5fd1..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/output-tests/draft-next/content/type.json +++ /dev/null @@ -1,39 +0,0 @@ -[ - { - "description": "incorrect type", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "https://json-schema.org/tests/content/draft-next/type/0", - "type": "string" - }, - "tests": [ - { - "description": "incorrect type must be reported, but a message is not required", - "data": 1, - "output": { - "list": { - "$id": "https://json-schema.org/tests/content/draft-next/type/0/tests/0/basic", - "$ref": "/draft/next/output/schema", - "properties": { - "details": { - "contains": { - "properties": { - "evaluationPath": {"const": ""}, - "schemaLocation": {"const": "https://json-schema.org/tests/content/draft-next/type/0#"}, - "instanceLocation": {"const": ""}, - "annotations": false, - "errors": { - "required": ["type"] - } - }, - "required": ["evaluationPath", "schemaLocation", "instanceLocation"] - } - } - }, - "required": ["details"] - } - } - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/output-tests/draft-next/output-schema.json b/agent/vendor/jsonschema-4.23.0/json/output-tests/draft-next/output-schema.json deleted file mode 100644 index 26286fa4d..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/output-tests/draft-next/output-schema.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "https://json-schema.org/draft/next/output/schema", - "description": "A schema that validates the minimum requirements for validation output", - - "anyOf": [ - { "$ref": "#/$defs/flag" }, - { "$ref": "#/$defs/basic" }, - { "$ref": "#/$defs/hierarchical" } - ], - "$defs": { - "outputUnit":{ - "properties": { - "valid": { "type": "boolean" }, - "evaluationPath": { - "type": "string", - "format": "json-pointer" - }, - "schemaLocation": { - "type": "string", - "format": "uri" - }, - "instanceLocation": { - "type": "string", - "format": "json-pointer" - }, - "details": { - "$ref": "#/$defs/outputUnitArray" - }, - "annotations": { - "type": "object", - "additionalProperties": true - }, - "droppedAnnotations": { - "type": "object", - "additionalProperties": true - }, - "errors": { - "type": "object", - "additionalProperties": { "type": "string" } - } - }, - "required": [ "valid", "evaluationPath", "schemaLocation", "instanceLocation" ], - "allOf": [ - { - "if": { - "anyOf": [ - { - "required": [ "errors" ] - }, - { - "required": [ "droppedAnnotations" ] - } - ] - }, - "then": { - "properties": { - "valid": { "const": false } - } - } - }, - { - "if": { - "required": [ "annotations" ] - }, - "then": { - "properties": { - "valid": { "const": true } - } - } - } - ] - }, - "outputUnitArray": { - "type": "array", - "items": { "$ref": "#/$defs/outputUnit" } - }, - "flag": { - "properties": { - "valid": { "type": "boolean" } - }, - "required": [ "valid" ] - }, - "basic": { - "properties": { - "valid": { "type": "boolean" }, - "details": { - "$ref": "#/$defs/outputUnitArray" - } - }, - "required": [ "valid", "details" ] - }, - "hierarchical": { "$ref": "#/$defs/outputUnit" } - } -} diff --git a/agent/vendor/jsonschema-4.23.0/json/output-tests/draft2019-09/content/escape.json b/agent/vendor/jsonschema-4.23.0/json/output-tests/draft2019-09/content/escape.json deleted file mode 100644 index d8cda154b..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/output-tests/draft2019-09/content/escape.json +++ /dev/null @@ -1,38 +0,0 @@ -[ - { - "description": "tilde and forward slash in json-pointer", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "https://json-schema.org/tests/content/draft2019-09/escape/0", - "properties": { - "~a/b": {"type": "number"} - } - }, - "tests": [ - { - "description": "incorrect type must be reported, but a message is not required", - "data": {"~a/b": "foobar"}, - "output": { - "basic": { - "$id": "https://json-schema.org/tests/content/draft2019-09/escape/0/tests/0/basic", - "$ref": "/draft/2019-09/output/schema", - "properties": { - "errors": { - "contains": { - "properties": { - "keywordLocation": {"const": "/properties/~0a~1b/type"}, - "absoluteKeywordLocation": {"const": "https://json-schema.org/tests/content/draft2019-09/escape/0#/properties/~0a~1b/type"}, - "instanceLocation": {"const": "/~0a~1b"}, - "annotation": false - }, - "required": ["keywordLocation", "instanceLocation"] - } - } - }, - "required": ["errors"] - } - } - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/output-tests/draft2019-09/content/general.json b/agent/vendor/jsonschema-4.23.0/json/output-tests/draft2019-09/content/general.json deleted file mode 100644 index 91941700e..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/output-tests/draft2019-09/content/general.json +++ /dev/null @@ -1,34 +0,0 @@ -[ - { - "description": "failed validation produces no annotations", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "https://json-schema.org/tests/content/draft2019-09/general/0", - "type": "string", - "readOnly": true - }, - "tests": [ - { - "description": "readOnly annotation is dropped", - "data": 1, - "output": { - "basic": { - "$id": "https://json-schema.org/tests/content/draft2019-09/general/0/tests/0/basic", - "$ref": "/draft/2019-09/output/schema", - "properties": { - "errors": { - "items": { - "properties": { - "annotation": false - } - } - }, - "annotations": false - }, - "required": ["errors"] - } - } - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/output-tests/draft2019-09/content/readOnly.json b/agent/vendor/jsonschema-4.23.0/json/output-tests/draft2019-09/content/readOnly.json deleted file mode 100644 index 62db1a83c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/output-tests/draft2019-09/content/readOnly.json +++ /dev/null @@ -1,38 +0,0 @@ -[ - { - "description": "readOnly generates its value as an annotation", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "https://json-schema.org/tests/content/draft2019-09/readOnly/0", - "readOnly": true - }, - "tests": [ - { - "description": "readOnly is true", - "data": 1, - "output": { - "basic": { - "$id": "https://json-schema.org/tests/content/draft2019-09/readOnly/0/tests/0/basic", - "$ref": "/draft/2019-09/output/schema", - "properties": { - "annotations": { - "contains": { - "type": "object", - "properties": { - "keywordLocation": {"const": "/readOnly"}, - "absoluteKeywordLocation": {"const": "https://json-schema.org/tests/content/draft2019-09/readOnly/0#/readOnly"}, - "instanceLocation": {"const": ""}, - "annotation": {"const": true} - }, - "required": ["keywordLocation", "instanceLocation", "annotation"] - } - }, - "errors": false - }, - "required": ["annotations"] - } - } - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/output-tests/draft2019-09/content/type.json b/agent/vendor/jsonschema-4.23.0/json/output-tests/draft2019-09/content/type.json deleted file mode 100644 index 21118fd5f..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/output-tests/draft2019-09/content/type.json +++ /dev/null @@ -1,37 +0,0 @@ -[ - { - "description": "validating type", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "https://json-schema.org/tests/content/draft2019-09/type/0", - "type": "string", - "anyOf": [ true ] - }, - "tests": [ - { - "description": "incorrect type must be reported, but a message is not required", - "data": 1, - "output": { - "basic": { - "$id": "https://json-schema.org/tests/content/draft2019-09/type/0/tests/0/basic", - "$ref": "/draft/2019-09/output/schema", - "properties": { - "errors": { - "contains": { - "properties": { - "keywordLocation": {"const": "/type"}, - "absoluteKeywordLocation": {"const": "https://json-schema.org/tests/content/draft2019-09/type/0#/type"}, - "instanceLocation": {"const": ""}, - "annotation": false - }, - "required": ["keywordLocation", "instanceLocation"] - } - } - }, - "required": ["errors"] - } - } - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/output-tests/draft2019-09/output-schema.json b/agent/vendor/jsonschema-4.23.0/json/output-tests/draft2019-09/output-schema.json deleted file mode 100644 index ff523eea5..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/output-tests/draft2019-09/output-schema.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "https://json-schema.org/draft/2019-09/output/schema", - "description": "A schema that validates the minimum requirements for validation output", - - "anyOf": [ - { "$ref": "#/$defs/flag" }, - { "$ref": "#/$defs/basic" }, - { "$ref": "#/$defs/detailed" }, - { "$ref": "#/$defs/verbose" } - ], - "$defs": { - "outputUnit":{ - "properties": { - "valid": { "type": "boolean" }, - "keywordLocation": { - "type": "string", - "format": "json-pointer" - }, - "absoluteKeywordLocation": { - "type": "string", - "format": "uri" - }, - "instanceLocation": { - "type": "string", - "format": "json-pointer" - }, - "error": { - "type": "string" - }, - "errors": { - "$ref": "#/$defs/outputUnitArray" - }, - "annotations": { - "$ref": "#/$defs/outputUnitArray" - } - }, - "required": [ "valid", "keywordLocation", "instanceLocation" ], - "allOf": [ - { - "if": { - "properties": { - "valid": { "const": false } - } - }, - "then": { - "anyOf": [ - { - "required": [ "error" ] - }, - { - "required": [ "errors" ] - } - ] - } - }, - { - "if": { - "anyOf": [ - { - "properties": { - "keywordLocation": { - "pattern": "/\\$ref/" - } - } - }, - { - "properties": { - "keywordLocation": { - "pattern": "/\\$recursiveRef/" - } - } - } - ] - }, - "then": { - "required": [ "absoluteKeywordLocation" ] - } - } - ] - }, - "outputUnitArray": { - "type": "array", - "items": { "$ref": "#/$defs/outputUnit" } - }, - "flag": { - "properties": { - "valid": { "type": "boolean" } - }, - "required": [ "valid" ] - }, - "basic": { "$ref": "#/$defs/outputUnit" }, - "detailed": { "$ref": "#/$defs/outputUnit" }, - "verbose": { "$ref": "#/$defs/outputUnit" } - } -} diff --git a/agent/vendor/jsonschema-4.23.0/json/output-tests/draft2020-12/content/escape.json b/agent/vendor/jsonschema-4.23.0/json/output-tests/draft2020-12/content/escape.json deleted file mode 100644 index c329c919c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/output-tests/draft2020-12/content/escape.json +++ /dev/null @@ -1,38 +0,0 @@ -[ - { - "description": "tilde and forward slash in json-pointer", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://json-schema.org/tests/content/draft2020-12/escape/0", - "properties": { - "~a/b": {"type": "number"} - } - }, - "tests": [ - { - "description": "incorrect type must be reported, but a message is not required", - "data": {"~a/b": "foobar"}, - "output": { - "basic": { - "$id": "https://json-schema.org/tests/content/draft2020-12/escape/0/tests/0/basic", - "$ref": "/draft/2020-12/output/schema", - "properties": { - "errors": { - "contains": { - "properties": { - "keywordLocation": {"const": "/properties/~0a~1b/type"}, - "absoluteKeywordLocation": {"const": "https://json-schema.org/tests/content/draft2020-12/escape/0#/properties/~0a~1b/type"}, - "instanceLocation": {"const": "/~0a~1b"}, - "annotation": false - }, - "required": ["keywordLocation", "instanceLocation"] - } - } - }, - "required": ["errors"] - } - } - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/output-tests/draft2020-12/content/general.json b/agent/vendor/jsonschema-4.23.0/json/output-tests/draft2020-12/content/general.json deleted file mode 100644 index 1f2b370c1..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/output-tests/draft2020-12/content/general.json +++ /dev/null @@ -1,34 +0,0 @@ -[ - { - "description": "failed validation produces no annotations", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://json-schema.org/tests/content/draft2020-12/general/0", - "type": "string", - "readOnly": true - }, - "tests": [ - { - "description": "readOnly annotation is dropped", - "data": 1, - "output": { - "basic": { - "$id": "https://json-schema.org/tests/content/draft2020-12/general/0/tests/0/basic", - "$ref": "/draft/2020-12/output/schema", - "properties": { - "errors": { - "items": { - "properties": { - "annotation": false - } - } - }, - "annotations": false - }, - "required": ["errors"] - } - } - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/output-tests/draft2020-12/content/readOnly.json b/agent/vendor/jsonschema-4.23.0/json/output-tests/draft2020-12/content/readOnly.json deleted file mode 100644 index 9baf48de2..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/output-tests/draft2020-12/content/readOnly.json +++ /dev/null @@ -1,37 +0,0 @@ -[ - { - "description": "readOnly generates its value as an annotation", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://json-schema.org/tests/content/draft2020-12/readOnly/0", - "readOnly": true - }, - "tests": [ - { - "description": "readOnly is true", - "data": 1, - "output": { - "basic": { - "$id": "https://json-schema.org/tests/content/draft2020-12/readOnly/0/tests/0/basic", - "$ref": "/draft/2020-12/output/schema", - "properties": { - "annotations": { - "contains": { - "properties": { - "keywordLocation": {"const": "/readOnly"}, - "absoluteKeywordLocation": {"const": "https://json-schema.org/tests/content/draft2020-12/readOnly/0#/readOnly"}, - "instanceLocation": {"const": ""}, - "annotation": {"const": true} - }, - "required": ["keywordLocation", "instanceLocation", "annotation"] - } - }, - "errors": false - }, - "required": ["annotations"] - } - } - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/output-tests/draft2020-12/content/type.json b/agent/vendor/jsonschema-4.23.0/json/output-tests/draft2020-12/content/type.json deleted file mode 100644 index 2949a6052..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/output-tests/draft2020-12/content/type.json +++ /dev/null @@ -1,37 +0,0 @@ -[ - { - "description": "validating type", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://json-schema.org/tests/content/draft2020-12/type/0", - "type": "string", - "anyOf": [ true ] - }, - "tests": [ - { - "description": "incorrect type must be reported, but a message is not required", - "data": 1, - "output": { - "basic": { - "$id": "https://json-schema.org/tests/content/draft2020-12/type/0/tests/0/basic", - "$ref": "/draft/2020-12/output/schema", - "properties": { - "errors": { - "contains": { - "properties": { - "keywordLocation": {"const": "/type"}, - "absoluteKeywordLocation": {"const": "https://json-schema.org/tests/content/draft2020-12/type/0#/type"}, - "instanceLocation": {"const": ""}, - "annotation": false - }, - "required": ["keywordLocation", "instanceLocation"] - } - } - }, - "required": ["errors"] - } - } - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/output-tests/draft2020-12/output-schema.json b/agent/vendor/jsonschema-4.23.0/json/output-tests/draft2020-12/output-schema.json deleted file mode 100644 index 1eef288ae..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/output-tests/draft2020-12/output-schema.json +++ /dev/null @@ -1,96 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://json-schema.org/draft/2020-12/output/schema", - "description": "A schema that validates the minimum requirements for validation output", - - "anyOf": [ - { "$ref": "#/$defs/flag" }, - { "$ref": "#/$defs/basic" }, - { "$ref": "#/$defs/detailed" }, - { "$ref": "#/$defs/verbose" } - ], - "$defs": { - "outputUnit":{ - "properties": { - "valid": { "type": "boolean" }, - "keywordLocation": { - "type": "string", - "format": "json-pointer" - }, - "absoluteKeywordLocation": { - "type": "string", - "format": "uri" - }, - "instanceLocation": { - "type": "string", - "format": "json-pointer" - }, - "error": { - "type": "string" - }, - "errors": { - "$ref": "#/$defs/outputUnitArray" - }, - "annotations": { - "$ref": "#/$defs/outputUnitArray" - } - }, - "required": [ "valid", "keywordLocation", "instanceLocation" ], - "allOf": [ - { - "if": { - "properties": { - "valid": { "const": false } - } - }, - "then": { - "anyOf": [ - { - "required": [ "error" ] - }, - { - "required": [ "errors" ] - } - ] - } - }, - { - "if": { - "anyOf": [ - { - "properties": { - "keywordLocation": { - "pattern": "/\\$ref/" - } - } - }, - { - "properties": { - "keywordLocation": { - "pattern": "/\\$dynamicRef/" - } - } - } - ] - }, - "then": { - "required": [ "absoluteKeywordLocation" ] - } - } - ] - }, - "outputUnitArray": { - "type": "array", - "items": { "$ref": "#/$defs/outputUnit" } - }, - "flag": { - "properties": { - "valid": { "type": "boolean" } - }, - "required": [ "valid" ] - }, - "basic": { "$ref": "#/$defs/outputUnit" }, - "detailed": { "$ref": "#/$defs/outputUnit" }, - "verbose": { "$ref": "#/$defs/outputUnit" } - } -} diff --git a/agent/vendor/jsonschema-4.23.0/json/package.json b/agent/vendor/jsonschema-4.23.0/json/package.json deleted file mode 100644 index 75da9e29b..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/package.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "json-schema-test-suite", - "version": "0.1.0", - "description": "A language agnostic test suite for the JSON Schema specifications", - "repository": "github:json-schema-org/JSON-Schema-Test-Suite", - "keywords": [ - "json-schema", - "tests" - ], - "author": "http://json-schema.org", - "license": "MIT" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/baseUriChange/folderInteger.json b/agent/vendor/jsonschema-4.23.0/json/remotes/baseUriChange/folderInteger.json deleted file mode 100644 index 8b50ea308..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/baseUriChange/folderInteger.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "integer" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/baseUriChangeFolder/folderInteger.json b/agent/vendor/jsonschema-4.23.0/json/remotes/baseUriChangeFolder/folderInteger.json deleted file mode 100644 index 8b50ea308..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/baseUriChangeFolder/folderInteger.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "integer" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/baseUriChangeFolderInSubschema/folderInteger.json b/agent/vendor/jsonschema-4.23.0/json/remotes/baseUriChangeFolderInSubschema/folderInteger.json deleted file mode 100644 index 8b50ea308..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/baseUriChangeFolderInSubschema/folderInteger.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "integer" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/different-id-ref-string.json b/agent/vendor/jsonschema-4.23.0/json/remotes/different-id-ref-string.json deleted file mode 100644 index 7f8886093..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/different-id-ref-string.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "$id": "http://localhost:1234/real-id-ref-string.json", - "$defs": {"bar": {"type": "string"}}, - "$ref": "#/$defs/bar" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/baseUriChange/folderInteger.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/baseUriChange/folderInteger.json deleted file mode 100644 index 388c88108..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/baseUriChange/folderInteger.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/next/schema", - "type": "integer" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/baseUriChangeFolder/folderInteger.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/baseUriChangeFolder/folderInteger.json deleted file mode 100644 index 388c88108..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/baseUriChangeFolder/folderInteger.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/next/schema", - "type": "integer" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/baseUriChangeFolderInSubschema/folderInteger.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/baseUriChangeFolderInSubschema/folderInteger.json deleted file mode 100644 index 388c88108..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/baseUriChangeFolderInSubschema/folderInteger.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/next/schema", - "type": "integer" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/detached-dynamicref.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/detached-dynamicref.json deleted file mode 100644 index c1a09a583..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/detached-dynamicref.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "$id": "http://localhost:1234/draft-next/detached-dynamicref.json", - "$schema": "https://json-schema.org/draft/next/schema", - "$defs": { - "foo": { - "$dynamicRef": "#detached" - }, - "detached": { - "$dynamicAnchor": "detached", - "type": "integer" - } - } -} \ No newline at end of file diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/detached-ref.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/detached-ref.json deleted file mode 100644 index d01aaa128..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/detached-ref.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "$id": "http://localhost:1234/draft-next/detached-ref.json", - "$schema": "https://json-schema.org/draft/next/schema", - "$defs": { - "foo": { - "$ref": "#detached" - }, - "detached": { - "$anchor": "detached", - "type": "integer" - } - } -} \ No newline at end of file diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/extendible-dynamic-ref.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/extendible-dynamic-ref.json deleted file mode 100644 index e787aa3d2..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/extendible-dynamic-ref.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/next/schema", - "description": "extendible array", - "$id": "http://localhost:1234/draft-next/extendible-dynamic-ref.json", - "type": "object", - "properties": { - "elements": { - "type": "array", - "items": { - "$dynamicRef": "#elements" - } - } - }, - "required": ["elements"], - "additionalProperties": false, - "$defs": { - "elements": { - "$dynamicAnchor": "elements" - } - } -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/format-assertion-false.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/format-assertion-false.json deleted file mode 100644 index 9cbd2a1de..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/format-assertion-false.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "$id": "http://localhost:1234/draft-next/format-assertion-false.json", - "$schema": "https://json-schema.org/draft/next/schema", - "$vocabulary": { - "https://json-schema.org/draft/next/vocab/core": true, - "https://json-schema.org/draft/next/vocab/format-assertion": false - }, - "$dynamicAnchor": "meta", - "allOf": [ - { "$ref": "https://json-schema.org/draft/next/meta/core" }, - { "$ref": "https://json-schema.org/draft/next/meta/format-assertion" } - ] -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/format-assertion-true.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/format-assertion-true.json deleted file mode 100644 index b3ff69f3a..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/format-assertion-true.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "$id": "http://localhost:1234/draft-next/format-assertion-true.json", - "$schema": "https://json-schema.org/draft/next/schema", - "$vocabulary": { - "https://json-schema.org/draft/next/vocab/core": true, - "https://json-schema.org/draft/next/vocab/format-assertion": true - }, - "$dynamicAnchor": "meta", - "allOf": [ - { "$ref": "https://json-schema.org/draft/next/meta/core" }, - { "$ref": "https://json-schema.org/draft/next/meta/format-assertion" } - ] -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/integer.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/integer.json deleted file mode 100644 index 388c88108..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/integer.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/next/schema", - "type": "integer" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/locationIndependentIdentifier.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/locationIndependentIdentifier.json deleted file mode 100644 index 17b4df514..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/locationIndependentIdentifier.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/next/schema", - "$defs": { - "refToInteger": { - "$ref": "#foo" - }, - "A": { - "$anchor": "foo", - "type": "integer" - } - } -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/metaschema-no-validation.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/metaschema-no-validation.json deleted file mode 100644 index 90e32a672..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/metaschema-no-validation.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "http://localhost:1234/draft-next/metaschema-no-validation.json", - "$vocabulary": { - "https://json-schema.org/draft/next/vocab/applicator": true, - "https://json-schema.org/draft/next/vocab/core": true - }, - "$dynamicAnchor": "meta", - "allOf": [ - { "$ref": "https://json-schema.org/draft/next/meta/applicator" }, - { "$ref": "https://json-schema.org/draft/next/meta/core" } - ] -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/metaschema-optional-vocabulary.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/metaschema-optional-vocabulary.json deleted file mode 100644 index 1af0cad4c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/metaschema-optional-vocabulary.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "http://localhost:1234/draft-next/metaschema-optional-vocabulary.json", - "$vocabulary": { - "https://json-schema.org/draft/next/vocab/validation": true, - "https://json-schema.org/draft/next/vocab/core": true, - "http://localhost:1234/draft/next/vocab/custom": false - }, - "$dynamicAnchor": "meta", - "allOf": [ - { "$ref": "https://json-schema.org/draft/next/meta/validation" }, - { "$ref": "https://json-schema.org/draft/next/meta/core" } - ] -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/name-defs.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/name-defs.json deleted file mode 100644 index cdb8c0c3a..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/name-defs.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/next/schema", - "$defs": { - "orNull": { - "anyOf": [ - { - "type": "null" - }, - { - "$ref": "#" - } - ] - } - }, - "type": "string" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/nested/foo-ref-string.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/nested/foo-ref-string.json deleted file mode 100644 index 50bf77f4f..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/nested/foo-ref-string.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "properties": { - "foo": {"$ref": "string.json"} - } -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/nested/string.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/nested/string.json deleted file mode 100644 index 7462207e6..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/nested/string.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/next/schema", - "type": "string" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/ref-and-defs.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/ref-and-defs.json deleted file mode 100644 index 46fafc9c2..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/ref-and-defs.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "http://localhost:1234/draft-next/ref-and-defs.json", - "$defs": { - "inner": { - "properties": { - "bar": { "type": "string" } - } - } - }, - "$ref": "#/$defs/inner" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/subSchemas.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/subSchemas.json deleted file mode 100644 index 75b7583ca..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/subSchemas.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/next/schema", - "$defs": { - "integer": { - "type": "integer" - }, - "refToInteger": { - "$ref": "#/$defs/integer" - } - } -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/tree.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/tree.json deleted file mode 100644 index cad332ad9..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft-next/tree.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/next/schema", - "description": "tree schema, extensible", - "$id": "http://localhost:1234/draft-next/tree.json", - "$dynamicAnchor": "node", - - "type": "object", - "properties": { - "data": true, - "children": { - "type": "array", - "items": { - "$dynamicRef": "#node" - } - } - } -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/baseUriChange/folderInteger.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/baseUriChange/folderInteger.json deleted file mode 100644 index bf679e80d..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/baseUriChange/folderInteger.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "integer" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/baseUriChangeFolder/folderInteger.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/baseUriChangeFolder/folderInteger.json deleted file mode 100644 index bf679e80d..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/baseUriChangeFolder/folderInteger.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "integer" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/baseUriChangeFolderInSubschema/folderInteger.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/baseUriChangeFolderInSubschema/folderInteger.json deleted file mode 100644 index bf679e80d..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/baseUriChangeFolderInSubschema/folderInteger.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "integer" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/dependentRequired.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/dependentRequired.json deleted file mode 100644 index 0d691d964..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/dependentRequired.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$id": "http://localhost:1234/draft2019-09/dependentRequired.json", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "dependentRequired": { - "foo": ["bar"] - } -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/detached-ref.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/detached-ref.json deleted file mode 100644 index 4a3499fd1..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/detached-ref.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "$id": "http://localhost:1234/draft2019-09/detached-ref.json", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$defs": { - "foo": { - "$ref": "#detached" - }, - "detached": { - "$anchor": "detached", - "type": "integer" - } - } -} \ No newline at end of file diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/extendible-dynamic-ref.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/extendible-dynamic-ref.json deleted file mode 100644 index c11bf0a01..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/extendible-dynamic-ref.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "description": "extendible array", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "http://localhost:1234/draft2019-09/extendible-dynamic-ref.json", - "type": "object", - "properties": { - "elements": { - "type": "array", - "items": { - "$dynamicRef": "#elements" - } - } - }, - "required": ["elements"], - "additionalProperties": false, - "$defs": { - "elements": { - "$dynamicAnchor": "elements" - } - } -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/ignore-prefixItems.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/ignore-prefixItems.json deleted file mode 100644 index b5ef3928c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/ignore-prefixItems.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$id": "http://localhost:1234/draft2019-09/ignore-prefixItems.json", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "prefixItems": [ - {"type": "string"} - ] -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/integer.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/integer.json deleted file mode 100644 index bf679e80d..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/integer.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "integer" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/locationIndependentIdentifier.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/locationIndependentIdentifier.json deleted file mode 100644 index a0fb9fbbd..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/locationIndependentIdentifier.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$defs": { - "refToInteger": { - "$ref": "#foo" - }, - "A": { - "$anchor": "foo", - "type": "integer" - } - } -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/metaschema-no-validation.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/metaschema-no-validation.json deleted file mode 100644 index 859006c27..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/metaschema-no-validation.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "http://localhost:1234/draft2019-09/metaschema-no-validation.json", - "$vocabulary": { - "https://json-schema.org/draft/2019-09/vocab/applicator": true, - "https://json-schema.org/draft/2019-09/vocab/core": true - }, - "$recursiveAnchor": true, - "allOf": [ - { "$ref": "https://json-schema.org/draft/2019-09/meta/applicator" }, - { "$ref": "https://json-schema.org/draft/2019-09/meta/core" } - ] -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/metaschema-optional-vocabulary.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/metaschema-optional-vocabulary.json deleted file mode 100644 index 3a7502a21..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/metaschema-optional-vocabulary.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "http://localhost:1234/draft2019-09/metaschema-optional-vocabulary.json", - "$vocabulary": { - "https://json-schema.org/draft/2019-09/vocab/validation": true, - "https://json-schema.org/draft/2019-09/vocab/core": true, - "http://localhost:1234/draft/2019-09/vocab/custom": false - }, - "$recursiveAnchor": true, - "allOf": [ - { "$ref": "https://json-schema.org/draft/2019-09/meta/validation" }, - { "$ref": "https://json-schema.org/draft/2019-09/meta/core" } - ] -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/name-defs.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/name-defs.json deleted file mode 100644 index 8892f16f8..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/name-defs.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$defs": { - "orNull": { - "anyOf": [ - { - "type": "null" - }, - { - "$ref": "#" - } - ] - } - }, - "type": "string" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/nested/foo-ref-string.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/nested/foo-ref-string.json deleted file mode 100644 index fe10748c3..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/nested/foo-ref-string.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "properties": { - "foo": {"$ref": "string.json"} - } -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/nested/string.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/nested/string.json deleted file mode 100644 index 242f71322..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/nested/string.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "string" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/ref-and-defs.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/ref-and-defs.json deleted file mode 100644 index 0ad690dd5..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/ref-and-defs.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "http://localhost:1234/draft2019-09/ref-and-defs.json", - "$defs": { - "inner": { - "properties": { - "bar": { "type": "string" } - } - } - }, - "$ref": "#/$defs/inner" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/subSchemas.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/subSchemas.json deleted file mode 100644 index fdfee68d9..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/subSchemas.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$defs": { - "integer": { - "type": "integer" - }, - "refToInteger": { - "$ref": "#/$defs/integer" - } - } -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/tree.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/tree.json deleted file mode 100644 index fce794126..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2019-09/tree.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "description": "tree schema, extensible", - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "http://localhost:1234/draft2019-09/tree.json", - "$dynamicAnchor": "node", - - "type": "object", - "properties": { - "data": true, - "children": { - "type": "array", - "items": { - "$dynamicRef": "#node" - } - } - } -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/baseUriChange/folderInteger.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/baseUriChange/folderInteger.json deleted file mode 100644 index 1f44a6313..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/baseUriChange/folderInteger.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "integer" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/baseUriChangeFolder/folderInteger.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/baseUriChangeFolder/folderInteger.json deleted file mode 100644 index 1f44a6313..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/baseUriChangeFolder/folderInteger.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "integer" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/baseUriChangeFolderInSubschema/folderInteger.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/baseUriChangeFolderInSubschema/folderInteger.json deleted file mode 100644 index 1f44a6313..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/baseUriChangeFolderInSubschema/folderInteger.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "integer" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/detached-dynamicref.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/detached-dynamicref.json deleted file mode 100644 index 07cce1dac..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/detached-dynamicref.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "$id": "http://localhost:1234/draft2020-12/detached-dynamicref.json", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$defs": { - "foo": { - "$dynamicRef": "#detached" - }, - "detached": { - "$dynamicAnchor": "detached", - "type": "integer" - } - } -} \ No newline at end of file diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/detached-ref.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/detached-ref.json deleted file mode 100644 index 9c2dca93c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/detached-ref.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "$id": "http://localhost:1234/draft2020-12/detached-ref.json", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$defs": { - "foo": { - "$ref": "#detached" - }, - "detached": { - "$anchor": "detached", - "type": "integer" - } - } -} \ No newline at end of file diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/extendible-dynamic-ref.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/extendible-dynamic-ref.json deleted file mode 100644 index 65bc0c217..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/extendible-dynamic-ref.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "description": "extendible array", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "http://localhost:1234/draft2020-12/extendible-dynamic-ref.json", - "type": "object", - "properties": { - "elements": { - "type": "array", - "items": { - "$dynamicRef": "#elements" - } - } - }, - "required": ["elements"], - "additionalProperties": false, - "$defs": { - "elements": { - "$dynamicAnchor": "elements" - } - } -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/format-assertion-false.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/format-assertion-false.json deleted file mode 100644 index 43a711c9d..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/format-assertion-false.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "$id": "http://localhost:1234/draft2020-12/format-assertion-false.json", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$vocabulary": { - "https://json-schema.org/draft/2020-12/vocab/core": true, - "https://json-schema.org/draft/2020-12/vocab/format-assertion": false - }, - "$dynamicAnchor": "meta", - "allOf": [ - { "$ref": "https://json-schema.org/draft/2020-12/meta/core" }, - { "$ref": "https://json-schema.org/draft/2020-12/meta/format-assertion" } - ] -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/format-assertion-true.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/format-assertion-true.json deleted file mode 100644 index 39c6b0abf..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/format-assertion-true.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "$id": "http://localhost:1234/draft2020-12/format-assertion-true.json", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$vocabulary": { - "https://json-schema.org/draft/2020-12/vocab/core": true, - "https://json-schema.org/draft/2020-12/vocab/format-assertion": true - }, - "$dynamicAnchor": "meta", - "allOf": [ - { "$ref": "https://json-schema.org/draft/2020-12/meta/core" }, - { "$ref": "https://json-schema.org/draft/2020-12/meta/format-assertion" } - ] -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/integer.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/integer.json deleted file mode 100644 index 1f44a6313..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/integer.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "integer" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/locationIndependentIdentifier.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/locationIndependentIdentifier.json deleted file mode 100644 index 6565a1ee0..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/locationIndependentIdentifier.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$defs": { - "refToInteger": { - "$ref": "#foo" - }, - "A": { - "$anchor": "foo", - "type": "integer" - } - } -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/metaschema-no-validation.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/metaschema-no-validation.json deleted file mode 100644 index 71be8b5da..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/metaschema-no-validation.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "http://localhost:1234/draft2020-12/metaschema-no-validation.json", - "$vocabulary": { - "https://json-schema.org/draft/2020-12/vocab/applicator": true, - "https://json-schema.org/draft/2020-12/vocab/core": true - }, - "$dynamicAnchor": "meta", - "allOf": [ - { "$ref": "https://json-schema.org/draft/2020-12/meta/applicator" }, - { "$ref": "https://json-schema.org/draft/2020-12/meta/core" } - ] -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/metaschema-optional-vocabulary.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/metaschema-optional-vocabulary.json deleted file mode 100644 index a6963e548..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/metaschema-optional-vocabulary.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "http://localhost:1234/draft2020-12/metaschema-optional-vocabulary.json", - "$vocabulary": { - "https://json-schema.org/draft/2020-12/vocab/validation": true, - "https://json-schema.org/draft/2020-12/vocab/core": true, - "http://localhost:1234/draft/2020-12/vocab/custom": false - }, - "$dynamicAnchor": "meta", - "allOf": [ - { "$ref": "https://json-schema.org/draft/2020-12/meta/validation" }, - { "$ref": "https://json-schema.org/draft/2020-12/meta/core" } - ] -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/name-defs.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/name-defs.json deleted file mode 100644 index 67bc33c51..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/name-defs.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$defs": { - "orNull": { - "anyOf": [ - { - "type": "null" - }, - { - "$ref": "#" - } - ] - } - }, - "type": "string" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/nested/foo-ref-string.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/nested/foo-ref-string.json deleted file mode 100644 index 29661ff9f..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/nested/foo-ref-string.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "foo": {"$ref": "string.json"} - } -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/nested/string.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/nested/string.json deleted file mode 100644 index 6607ac534..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/nested/string.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/prefixItems.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/prefixItems.json deleted file mode 100644 index acd8293c6..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/prefixItems.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$id": "http://localhost:1234/draft2020-12/prefixItems.json", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "prefixItems": [ - {"type": "string"} - ] -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/ref-and-defs.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/ref-and-defs.json deleted file mode 100644 index 16d30fa3a..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/ref-and-defs.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "http://localhost:1234/draft2020-12/ref-and-defs.json", - "$defs": { - "inner": { - "properties": { - "bar": { "type": "string" } - } - } - }, - "$ref": "#/$defs/inner" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/subSchemas.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/subSchemas.json deleted file mode 100644 index 1bb4846d7..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/subSchemas.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$defs": { - "integer": { - "type": "integer" - }, - "refToInteger": { - "$ref": "#/$defs/integer" - } - } -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/tree.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/tree.json deleted file mode 100644 index b07555fb3..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft2020-12/tree.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "description": "tree schema, extensible", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "http://localhost:1234/draft2020-12/tree.json", - "$dynamicAnchor": "node", - - "type": "object", - "properties": { - "data": true, - "children": { - "type": "array", - "items": { - "$dynamicRef": "#node" - } - } - } -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft6/detached-ref.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft6/detached-ref.json deleted file mode 100644 index 05ce071ba..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft6/detached-ref.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "$id": "http://localhost:1234/draft6/detached-ref.json", - "$schema": "http://json-schema.org/draft-06/schema#", - "definitions": { - "foo": { - "$ref": "#detached" - }, - "detached": { - "$id": "#detached", - "type": "integer" - } - } -} \ No newline at end of file diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft7/detached-ref.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft7/detached-ref.json deleted file mode 100644 index 27f2ec80a..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft7/detached-ref.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "$id": "http://localhost:1234/draft7/detached-ref.json", - "$schema": "http://json-schema.org/draft-07/schema#", - "definitions": { - "foo": { - "$ref": "#detached" - }, - "detached": { - "$id": "#detached", - "type": "integer" - } - } -} \ No newline at end of file diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/draft7/ignore-dependentRequired.json b/agent/vendor/jsonschema-4.23.0/json/remotes/draft7/ignore-dependentRequired.json deleted file mode 100644 index 0ea927b50..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/draft7/ignore-dependentRequired.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "$id": "http://localhost:1234/draft7/integer.json", - "$schema": "http://json-schema.org/draft-07/schema#", - "dependentRequired": { - "foo": ["bar"] - } -} \ No newline at end of file diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/extendible-dynamic-ref.json b/agent/vendor/jsonschema-4.23.0/json/remotes/extendible-dynamic-ref.json deleted file mode 100644 index d0bcd37d3..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/extendible-dynamic-ref.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "description": "extendible array", - "$id": "http://localhost:1234/extendible-dynamic-ref.json", - "type": "object", - "properties": { - "elements": { - "type": "array", - "items": { - "$dynamicRef": "#elements" - } - } - }, - "required": ["elements"], - "additionalProperties": false, - "$defs": { - "elements": { - "$dynamicAnchor": "elements" - } - } -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/integer.json b/agent/vendor/jsonschema-4.23.0/json/remotes/integer.json deleted file mode 100644 index 8b50ea308..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/integer.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "integer" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/locationIndependentIdentifier.json b/agent/vendor/jsonschema-4.23.0/json/remotes/locationIndependentIdentifier.json deleted file mode 100644 index 96b17c3f1..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/locationIndependentIdentifier.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "$defs": { - "refToInteger": { - "$ref": "#foo" - }, - "A": { - "$anchor": "foo", - "type": "integer" - } - } -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/locationIndependentIdentifierDraft4.json b/agent/vendor/jsonschema-4.23.0/json/remotes/locationIndependentIdentifierDraft4.json deleted file mode 100644 index eeff1eb23..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/locationIndependentIdentifierDraft4.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "definitions": { - "refToInteger": { - "$ref": "#foo" - }, - "A": { - "id": "#foo", - "type": "integer" - } - } -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/locationIndependentIdentifierPre2019.json b/agent/vendor/jsonschema-4.23.0/json/remotes/locationIndependentIdentifierPre2019.json deleted file mode 100644 index e72815cd5..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/locationIndependentIdentifierPre2019.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "definitions": { - "refToInteger": { - "$ref": "#foo" - }, - "A": { - "$id": "#foo", - "type": "integer" - } - } -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/name-defs.json b/agent/vendor/jsonschema-4.23.0/json/remotes/name-defs.json deleted file mode 100644 index 1dab4a434..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/name-defs.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "$defs": { - "orNull": { - "anyOf": [ - { - "type": "null" - }, - { - "$ref": "#" - } - ] - } - }, - "type": "string" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/name.json b/agent/vendor/jsonschema-4.23.0/json/remotes/name.json deleted file mode 100644 index fceacb809..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/name.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "definitions": { - "orNull": { - "anyOf": [ - { - "type": "null" - }, - { - "$ref": "#" - } - ] - } - }, - "type": "string" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/nested-absolute-ref-to-string.json b/agent/vendor/jsonschema-4.23.0/json/remotes/nested-absolute-ref-to-string.json deleted file mode 100644 index f46c76164..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/nested-absolute-ref-to-string.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "$defs": { - "bar": { - "$id": "http://localhost:1234/the-nested-id.json", - "type": "string" - } - }, - "$ref": "http://localhost:1234/the-nested-id.json" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/nested/foo-ref-string.json b/agent/vendor/jsonschema-4.23.0/json/remotes/nested/foo-ref-string.json deleted file mode 100644 index 9cd2527ed..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/nested/foo-ref-string.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "type": "object", - "properties": { - "foo": {"$ref": "string.json"} - } -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/nested/string.json b/agent/vendor/jsonschema-4.23.0/json/remotes/nested/string.json deleted file mode 100644 index c2d48c068..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/nested/string.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "type": "string" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/ref-and-definitions.json b/agent/vendor/jsonschema-4.23.0/json/remotes/ref-and-definitions.json deleted file mode 100644 index e0ee802a9..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/ref-and-definitions.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "$id": "http://localhost:1234/ref-and-definitions.json", - "definitions": { - "inner": { - "properties": { - "bar": { "type": "string" } - } - } - }, - "allOf": [ { "$ref": "#/definitions/inner" } ] -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/ref-and-defs.json b/agent/vendor/jsonschema-4.23.0/json/remotes/ref-and-defs.json deleted file mode 100644 index 85d06c399..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/ref-and-defs.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "$id": "http://localhost:1234/ref-and-defs.json", - "$defs": { - "inner": { - "properties": { - "bar": { "type": "string" } - } - } - }, - "$ref": "#/$defs/inner" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/subSchemas.json b/agent/vendor/jsonschema-4.23.0/json/remotes/subSchemas.json deleted file mode 100644 index 6e9b3de35..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/subSchemas.json +++ /dev/null @@ -1,10 +0,0 @@ -{ - "definitions": { - "integer": { - "type": "integer" - }, - "refToInteger": { - "$ref": "#/definitions/integer" - } - } -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/tree.json b/agent/vendor/jsonschema-4.23.0/json/remotes/tree.json deleted file mode 100644 index a12d98b07..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/tree.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "description": "tree schema, extensible", - "$id": "http://localhost:1234/tree.json", - "$dynamicAnchor": "node", - - "type": "object", - "properties": { - "data": true, - "children": { - "type": "array", - "items": { - "$dynamicRef": "#node" - } - } - } -} diff --git a/agent/vendor/jsonschema-4.23.0/json/remotes/urn-ref-string.json b/agent/vendor/jsonschema-4.23.0/json/remotes/urn-ref-string.json deleted file mode 100644 index aca2211b7..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/remotes/urn-ref-string.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "$id": "urn:uuid:feebdaed-ffff-0000-ffff-0000deadbeef", - "$defs": {"bar": {"type": "string"}}, - "$ref": "#/$defs/bar" -} diff --git a/agent/vendor/jsonschema-4.23.0/json/test-schema.json b/agent/vendor/jsonschema-4.23.0/json/test-schema.json deleted file mode 100644 index 0087c5e3d..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/test-schema.json +++ /dev/null @@ -1,124 +0,0 @@ -{ - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://json-schema.org/tests/test-schema", - "description": "A schema for files contained within this suite", - - "type": "array", - "minItems": 1, - "items": { - "description": "An individual test case, containing multiple tests of a single schema's behavior", - - "type": "object", - "required": [ "description", "schema", "tests" ], - "properties": { - "description": { - "description": "The test case description", - "type": "string" - }, - "comment": { - "description": "Any additional comments about the test case", - "type": "string" - }, - "schema": { - "description": "A valid JSON Schema (one written for the corresponding version directory that the file sits within)." - }, - "tests": { - "description": "A set of related tests all using the same schema", - "type": "array", - "items": { "$ref": "#/$defs/test" }, - "minItems": 1 - }, - "specification":{ - "description": "A reference to a specification document which defines the behavior tested by this test case. Typically this should be a JSON Schema specification document, though in cases where the JSON Schema specification points to another RFC it should contain *both* the portion of the JSON Schema specification which indicates what RFC (and section) to follow as *well* as information on where in that specification the behavior is specified.", - - "type": "array", - "minItems": 1, - "uniqueItems": true, - "items":{ - "properties": { - "core": { - "description": "A section in official JSON Schema core drafts", - "url": "https://json-schema.org/specification-links", - "pattern": "^[0-9a-zA-Z]+(\\.[0-9a-zA-Z]+)*$", - "type":"string" - }, - "validation": { - "description": "A section in official JSON Schema validation drafts", - "url": "https://json-schema.org/specification-links", - "pattern": "^[0-9a-zA-Z]+(\\.[0-9a-zA-Z]+)*$", - "type":"string" - }, - "ecma262": { - "description": "A section in official ECMA 262 specification for defining regular expressions", - "url": "https://262.ecma-international.org/", - "pattern": "^[0-9a-zA-Z]+(\\.[0-9a-zA-Z]+)*$", - "type":"string" - }, - "perl5": { - "description": "A section name in Perl documentation for defining regular expressions", - "url": "https://perldoc.perl.org/perlre", - "type":"string" - }, - "quote": { - "description": "Quote describing the test case", - "type":"string" - } - }, - "patternProperties": { - "^rfc\\d+$": { - "description": "A section in official RFC for the given rfc number", - "url": "https://www.rfc-editor.org/", - "pattern": "^[0-9a-zA-Z]+(\\.[0-9a-zA-Z]+)*$", - "type":"string" - }, - "^iso\\d+$": { - "description": "A section in official ISO for the given iso number", - "pattern": "^[0-9a-zA-Z]+(\\.[0-9a-zA-Z]+)*$", - "type": "string" - } - }, - "additionalProperties": { "type": "string" }, - "minProperties": 1, - "propertyNames": { - "oneOf": [ - { - "pattern": "^((iso)|(rfc))[0-9]+$" - }, - { - "enum": [ "core", "validation", "ecma262", "perl5", "quote" ] - } - ] - } - } - } - }, - "additionalProperties": false - }, - - "$defs": { - "test": { - "description": "A single test", - - "type": "object", - "required": [ "description", "data", "valid" ], - "properties": { - "description": { - "description": "The test description, briefly explaining which behavior it exercises", - "type": "string" - }, - "comment": { - "description": "Any additional comments about the test", - "type": "string" - }, - "data": { - "description": "The instance which should be validated against the schema in \"schema\"." - }, - "valid": { - "description": "Whether the validation process of this instance should consider the instance valid or not", - "type": "boolean" - } - }, - "additionalProperties": false - } - } -} diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/additionalProperties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/additionalProperties.json deleted file mode 100644 index 51b0edada..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/additionalProperties.json +++ /dev/null @@ -1,248 +0,0 @@ -[ - { - "description": - "additionalProperties being false does not allow other properties", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "properties": {"foo": {}, "bar": {}}, - "patternProperties": { "^v": {} }, - "additionalProperties": false - }, - "tests": [ - { - "description": "no additional properties is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "an additional property is invalid", - "data": {"foo" : 1, "bar" : 2, "quux" : "boom"}, - "valid": false - }, - { - "description": "ignores arrays", - "data": [1, 2, 3], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobarbaz", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - }, - { - "description": "patternProperties are not additional properties", - "data": {"foo":1, "vroom": 2}, - "valid": true - } - ] - }, - { - "description": "non-ASCII pattern with additionalProperties", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "patternProperties": {"^á": {}}, - "additionalProperties": false - }, - "tests": [ - { - "description": "matching the pattern is valid", - "data": {"ármányos": 2}, - "valid": true - }, - { - "description": "not matching the pattern is invalid", - "data": {"élmény": 2}, - "valid": false - } - ] - }, - { - "description": "additionalProperties with schema", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "properties": {"foo": {}, "bar": {}}, - "additionalProperties": {"type": "boolean"} - }, - "tests": [ - { - "description": "no additional properties is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "an additional valid property is valid", - "data": {"foo" : 1, "bar" : 2, "quux" : true}, - "valid": true - }, - { - "description": "an additional invalid property is invalid", - "data": {"foo" : 1, "bar" : 2, "quux" : 12}, - "valid": false - } - ] - }, - { - "description": - "additionalProperties can exist by itself", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "additionalProperties": {"type": "boolean"} - }, - "tests": [ - { - "description": "an additional valid property is valid", - "data": {"foo" : true}, - "valid": true - }, - { - "description": "an additional invalid property is invalid", - "data": {"foo" : 1}, - "valid": false - } - ] - }, - { - "description": "additionalProperties are allowed by default", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "properties": {"foo": {}, "bar": {}} - }, - "tests": [ - { - "description": "additional properties are allowed", - "data": {"foo": 1, "bar": 2, "quux": true}, - "valid": true - } - ] - }, - { - "description": "additionalProperties does not look in applicators", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "allOf": [ - {"properties": {"foo": {}}} - ], - "additionalProperties": {"type": "boolean"} - }, - "tests": [ - { - "description": "properties defined in allOf are not examined", - "data": {"foo": 1, "bar": true}, - "valid": false - } - ] - }, - { - "description": "additionalProperties with null valued instance properties", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "additionalProperties": { - "type": "null" - } - }, - "tests": [ - { - "description": "allows null values", - "data": {"foo": null}, - "valid": true - } - ] - }, - { - "description": "additionalProperties with propertyNames", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "propertyNames": { - "maxLength": 5 - }, - "additionalProperties": { - "type": "number" - } - }, - "tests": [ - { - "description": "Valid against both keywords", - "data": { "apple": 4 }, - "valid": true - }, - { - "description": "Valid against propertyNames, but not additionalProperties", - "data": { "fig": 2, "pear": "available" }, - "valid": false - } - ] - }, - { - "description": "propertyDependencies with additionalProperties", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "properties" : {"foo2" : {}}, - "propertyDependencies": { - "foo" : {}, - "foo2": { - "bar": { - "properties": { - "buz": {} - } - } - } - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "additionalProperties doesn't consider propertyDependencies properties" , - "data": {"foo": ""}, - "valid": false - }, - { - "description": "additionalProperties can't see buz even when foo2 is present", - "data": {"foo2": "bar", "buz": ""}, - "valid": false - }, - { - "description": "additionalProperties can't see buz", - "data": {"buz": ""}, - "valid": false - } - ] - }, - { - "description": "dependentSchemas with additionalProperties", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "properties": {"foo2": {}}, - "dependentSchemas": { - "foo": {}, - "foo2": { - "properties": { - "bar": {} - } - } - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "additionalProperties doesn't consider dependentSchemas", - "data": {"foo": ""}, - "valid": false - }, - { - "description": "additionalProperties can't see bar", - "data": {"bar": ""}, - "valid": false - }, - { - "description": "additionalProperties can't see bar even when foo2 is present", - "data": {"foo2": "", "bar": ""}, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/allOf.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/allOf.json deleted file mode 100644 index 86745da2a..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/allOf.json +++ /dev/null @@ -1,312 +0,0 @@ -[ - { - "description": "allOf", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "allOf": [ - { - "properties": { - "bar": {"type": "integer"} - }, - "required": ["bar"] - }, - { - "properties": { - "foo": {"type": "string"} - }, - "required": ["foo"] - } - ] - }, - "tests": [ - { - "description": "allOf", - "data": {"foo": "baz", "bar": 2}, - "valid": true - }, - { - "description": "mismatch second", - "data": {"foo": "baz"}, - "valid": false - }, - { - "description": "mismatch first", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "wrong type", - "data": {"foo": "baz", "bar": "quux"}, - "valid": false - } - ] - }, - { - "description": "allOf with base schema", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "properties": {"bar": {"type": "integer"}}, - "required": ["bar"], - "allOf" : [ - { - "properties": { - "foo": {"type": "string"} - }, - "required": ["foo"] - }, - { - "properties": { - "baz": {"type": "null"} - }, - "required": ["baz"] - } - ] - }, - "tests": [ - { - "description": "valid", - "data": {"foo": "quux", "bar": 2, "baz": null}, - "valid": true - }, - { - "description": "mismatch base schema", - "data": {"foo": "quux", "baz": null}, - "valid": false - }, - { - "description": "mismatch first allOf", - "data": {"bar": 2, "baz": null}, - "valid": false - }, - { - "description": "mismatch second allOf", - "data": {"foo": "quux", "bar": 2}, - "valid": false - }, - { - "description": "mismatch both", - "data": {"bar": 2}, - "valid": false - } - ] - }, - { - "description": "allOf simple types", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "allOf": [ - {"maximum": 30}, - {"minimum": 20} - ] - }, - "tests": [ - { - "description": "valid", - "data": 25, - "valid": true - }, - { - "description": "mismatch one", - "data": 35, - "valid": false - } - ] - }, - { - "description": "allOf with boolean schemas, all true", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "allOf": [true, true] - }, - "tests": [ - { - "description": "any value is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "allOf with boolean schemas, some false", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "allOf": [true, false] - }, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "allOf with boolean schemas, all false", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "allOf": [false, false] - }, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "allOf with one empty schema", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "allOf": [ - {} - ] - }, - "tests": [ - { - "description": "any data is valid", - "data": 1, - "valid": true - } - ] - }, - { - "description": "allOf with two empty schemas", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "allOf": [ - {}, - {} - ] - }, - "tests": [ - { - "description": "any data is valid", - "data": 1, - "valid": true - } - ] - }, - { - "description": "allOf with the first empty schema", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "allOf": [ - {}, - { "type": "number" } - ] - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "allOf with the last empty schema", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "allOf": [ - { "type": "number" }, - {} - ] - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "nested allOf, to check validation semantics", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "allOf": [ - { - "allOf": [ - { - "type": "null" - } - ] - } - ] - }, - "tests": [ - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "anything non-null is invalid", - "data": 123, - "valid": false - } - ] - }, - { - "description": "allOf combined with anyOf, oneOf", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "allOf": [ { "multipleOf": 2 } ], - "anyOf": [ { "multipleOf": 3 } ], - "oneOf": [ { "multipleOf": 5 } ] - }, - "tests": [ - { - "description": "allOf: false, anyOf: false, oneOf: false", - "data": 1, - "valid": false - }, - { - "description": "allOf: false, anyOf: false, oneOf: true", - "data": 5, - "valid": false - }, - { - "description": "allOf: false, anyOf: true, oneOf: false", - "data": 3, - "valid": false - }, - { - "description": "allOf: false, anyOf: true, oneOf: true", - "data": 15, - "valid": false - }, - { - "description": "allOf: true, anyOf: false, oneOf: false", - "data": 2, - "valid": false - }, - { - "description": "allOf: true, anyOf: false, oneOf: true", - "data": 10, - "valid": false - }, - { - "description": "allOf: true, anyOf: true, oneOf: false", - "data": 6, - "valid": false - }, - { - "description": "allOf: true, anyOf: true, oneOf: true", - "data": 30, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/anchor.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/anchor.json deleted file mode 100644 index 84d4851ca..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/anchor.json +++ /dev/null @@ -1,120 +0,0 @@ -[ - { - "description": "Location-independent identifier", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$ref": "#foo", - "$defs": { - "A": { - "$anchor": "foo", - "type": "integer" - } - } - }, - "tests": [ - { - "data": 1, - "description": "match", - "valid": true - }, - { - "data": "a", - "description": "mismatch", - "valid": false - } - ] - }, - { - "description": "Location-independent identifier with absolute URI", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$ref": "http://localhost:1234/draft-next/bar#foo", - "$defs": { - "A": { - "$id": "http://localhost:1234/draft-next/bar", - "$anchor": "foo", - "type": "integer" - } - } - }, - "tests": [ - { - "data": 1, - "description": "match", - "valid": true - }, - { - "data": "a", - "description": "mismatch", - "valid": false - } - ] - }, - { - "description": "Location-independent identifier with base URI change in subschema", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "http://localhost:1234/draft-next/root", - "$ref": "http://localhost:1234/draft-next/nested.json#foo", - "$defs": { - "A": { - "$id": "nested.json", - "$defs": { - "B": { - "$anchor": "foo", - "type": "integer" - } - } - } - } - }, - "tests": [ - { - "data": 1, - "description": "match", - "valid": true - }, - { - "data": "a", - "description": "mismatch", - "valid": false - } - ] - }, - { - "description": "same $anchor with different base uri", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "http://localhost:1234/draft-next/foobar", - "$defs": { - "A": { - "$id": "child1", - "allOf": [ - { - "$id": "child2", - "$anchor": "my_anchor", - "type": "number" - }, - { - "$anchor": "my_anchor", - "type": "string" - } - ] - } - }, - "$ref": "child1#my_anchor" - }, - "tests": [ - { - "description": "$ref resolves to /$defs/A/allOf/1", - "data": "a", - "valid": true - }, - { - "description": "$ref does not resolve to /$defs/A/allOf/0", - "data": 1, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/anyOf.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/anyOf.json deleted file mode 100644 index a97267c8e..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/anyOf.json +++ /dev/null @@ -1,203 +0,0 @@ -[ - { - "description": "anyOf", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "anyOf": [ - { - "type": "integer" - }, - { - "minimum": 2 - } - ] - }, - "tests": [ - { - "description": "first anyOf valid", - "data": 1, - "valid": true - }, - { - "description": "second anyOf valid", - "data": 2.5, - "valid": true - }, - { - "description": "both anyOf valid", - "data": 3, - "valid": true - }, - { - "description": "neither anyOf valid", - "data": 1.5, - "valid": false - } - ] - }, - { - "description": "anyOf with base schema", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "string", - "anyOf" : [ - { - "maxLength": 2 - }, - { - "minLength": 4 - } - ] - }, - "tests": [ - { - "description": "mismatch base schema", - "data": 3, - "valid": false - }, - { - "description": "one anyOf valid", - "data": "foobar", - "valid": true - }, - { - "description": "both anyOf invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "anyOf with boolean schemas, all true", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "anyOf": [true, true] - }, - "tests": [ - { - "description": "any value is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "anyOf with boolean schemas, some true", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "anyOf": [true, false] - }, - "tests": [ - { - "description": "any value is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "anyOf with boolean schemas, all false", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "anyOf": [false, false] - }, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "anyOf complex types", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "anyOf": [ - { - "properties": { - "bar": {"type": "integer"} - }, - "required": ["bar"] - }, - { - "properties": { - "foo": {"type": "string"} - }, - "required": ["foo"] - } - ] - }, - "tests": [ - { - "description": "first anyOf valid (complex)", - "data": {"bar": 2}, - "valid": true - }, - { - "description": "second anyOf valid (complex)", - "data": {"foo": "baz"}, - "valid": true - }, - { - "description": "both anyOf valid (complex)", - "data": {"foo": "baz", "bar": 2}, - "valid": true - }, - { - "description": "neither anyOf valid (complex)", - "data": {"foo": 2, "bar": "quux"}, - "valid": false - } - ] - }, - { - "description": "anyOf with one empty schema", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "anyOf": [ - { "type": "number" }, - {} - ] - }, - "tests": [ - { - "description": "string is valid", - "data": "foo", - "valid": true - }, - { - "description": "number is valid", - "data": 123, - "valid": true - } - ] - }, - { - "description": "nested anyOf, to check validation semantics", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "anyOf": [ - { - "anyOf": [ - { - "type": "null" - } - ] - } - ] - }, - "tests": [ - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "anything non-null is invalid", - "data": 123, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/boolean_schema.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/boolean_schema.json deleted file mode 100644 index 6d40f23f2..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/boolean_schema.json +++ /dev/null @@ -1,104 +0,0 @@ -[ - { - "description": "boolean schema 'true'", - "schema": true, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "string is valid", - "data": "foo", - "valid": true - }, - { - "description": "boolean true is valid", - "data": true, - "valid": true - }, - { - "description": "boolean false is valid", - "data": false, - "valid": true - }, - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "object is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "empty object is valid", - "data": {}, - "valid": true - }, - { - "description": "array is valid", - "data": ["foo"], - "valid": true - }, - { - "description": "empty array is valid", - "data": [], - "valid": true - } - ] - }, - { - "description": "boolean schema 'false'", - "schema": false, - "tests": [ - { - "description": "number is invalid", - "data": 1, - "valid": false - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - }, - { - "description": "boolean true is invalid", - "data": true, - "valid": false - }, - { - "description": "boolean false is invalid", - "data": false, - "valid": false - }, - { - "description": "null is invalid", - "data": null, - "valid": false - }, - { - "description": "object is invalid", - "data": {"foo": "bar"}, - "valid": false - }, - { - "description": "empty object is invalid", - "data": {}, - "valid": false - }, - { - "description": "array is invalid", - "data": ["foo"], - "valid": false - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/const.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/const.json deleted file mode 100644 index 61fbd8390..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/const.json +++ /dev/null @@ -1,387 +0,0 @@ -[ - { - "description": "const validation", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "const": 2 - }, - "tests": [ - { - "description": "same value is valid", - "data": 2, - "valid": true - }, - { - "description": "another value is invalid", - "data": 5, - "valid": false - }, - { - "description": "another type is invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "const with object", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "const": {"foo": "bar", "baz": "bax"} - }, - "tests": [ - { - "description": "same object is valid", - "data": {"foo": "bar", "baz": "bax"}, - "valid": true - }, - { - "description": "same object with different property order is valid", - "data": {"baz": "bax", "foo": "bar"}, - "valid": true - }, - { - "description": "another object is invalid", - "data": {"foo": "bar"}, - "valid": false - }, - { - "description": "another type is invalid", - "data": [1, 2], - "valid": false - } - ] - }, - { - "description": "const with array", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "const": [{ "foo": "bar" }] - }, - "tests": [ - { - "description": "same array is valid", - "data": [{"foo": "bar"}], - "valid": true - }, - { - "description": "another array item is invalid", - "data": [2], - "valid": false - }, - { - "description": "array with additional items is invalid", - "data": [1, 2, 3], - "valid": false - } - ] - }, - { - "description": "const with null", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "const": null - }, - "tests": [ - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "not null is invalid", - "data": 0, - "valid": false - } - ] - }, - { - "description": "const with false does not match 0", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "const": false - }, - "tests": [ - { - "description": "false is valid", - "data": false, - "valid": true - }, - { - "description": "integer zero is invalid", - "data": 0, - "valid": false - }, - { - "description": "float zero is invalid", - "data": 0.0, - "valid": false - } - ] - }, - { - "description": "const with true does not match 1", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "const": true - }, - "tests": [ - { - "description": "true is valid", - "data": true, - "valid": true - }, - { - "description": "integer one is invalid", - "data": 1, - "valid": false - }, - { - "description": "float one is invalid", - "data": 1.0, - "valid": false - } - ] - }, - { - "description": "const with [false] does not match [0]", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "const": [false] - }, - "tests": [ - { - "description": "[false] is valid", - "data": [false], - "valid": true - }, - { - "description": "[0] is invalid", - "data": [0], - "valid": false - }, - { - "description": "[0.0] is invalid", - "data": [0.0], - "valid": false - } - ] - }, - { - "description": "const with [true] does not match [1]", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "const": [true] - }, - "tests": [ - { - "description": "[true] is valid", - "data": [true], - "valid": true - }, - { - "description": "[1] is invalid", - "data": [1], - "valid": false - }, - { - "description": "[1.0] is invalid", - "data": [1.0], - "valid": false - } - ] - }, - { - "description": "const with {\"a\": false} does not match {\"a\": 0}", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "const": {"a": false} - }, - "tests": [ - { - "description": "{\"a\": false} is valid", - "data": {"a": false}, - "valid": true - }, - { - "description": "{\"a\": 0} is invalid", - "data": {"a": 0}, - "valid": false - }, - { - "description": "{\"a\": 0.0} is invalid", - "data": {"a": 0.0}, - "valid": false - } - ] - }, - { - "description": "const with {\"a\": true} does not match {\"a\": 1}", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "const": {"a": true} - }, - "tests": [ - { - "description": "{\"a\": true} is valid", - "data": {"a": true}, - "valid": true - }, - { - "description": "{\"a\": 1} is invalid", - "data": {"a": 1}, - "valid": false - }, - { - "description": "{\"a\": 1.0} is invalid", - "data": {"a": 1.0}, - "valid": false - } - ] - }, - { - "description": "const with 0 does not match other zero-like types", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "const": 0 - }, - "tests": [ - { - "description": "false is invalid", - "data": false, - "valid": false - }, - { - "description": "integer zero is valid", - "data": 0, - "valid": true - }, - { - "description": "float zero is valid", - "data": 0.0, - "valid": true - }, - { - "description": "empty object is invalid", - "data": {}, - "valid": false - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - }, - { - "description": "empty string is invalid", - "data": "", - "valid": false - } - ] - }, - { - "description": "const with 1 does not match true", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "const": 1 - }, - "tests": [ - { - "description": "true is invalid", - "data": true, - "valid": false - }, - { - "description": "integer one is valid", - "data": 1, - "valid": true - }, - { - "description": "float one is valid", - "data": 1.0, - "valid": true - } - ] - }, - { - "description": "const with -2.0 matches integer and float types", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "const": -2.0 - }, - "tests": [ - { - "description": "integer -2 is valid", - "data": -2, - "valid": true - }, - { - "description": "integer 2 is invalid", - "data": 2, - "valid": false - }, - { - "description": "float -2.0 is valid", - "data": -2.0, - "valid": true - }, - { - "description": "float 2.0 is invalid", - "data": 2.0, - "valid": false - }, - { - "description": "float -2.00001 is invalid", - "data": -2.00001, - "valid": false - } - ] - }, - { - "description": "float and integers are equal up to 64-bit representation limits", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "const": 9007199254740992 - }, - "tests": [ - { - "description": "integer is valid", - "data": 9007199254740992, - "valid": true - }, - { - "description": "integer minus one is invalid", - "data": 9007199254740991, - "valid": false - }, - { - "description": "float is valid", - "data": 9007199254740992.0, - "valid": true - }, - { - "description": "float minus one is invalid", - "data": 9007199254740991.0, - "valid": false - } - ] - }, - { - "description": "nul characters in strings", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "const": "hello\u0000there" - }, - "tests": [ - { - "description": "match string with nul", - "data": "hello\u0000there", - "valid": true - }, - { - "description": "do not match string lacking nul", - "data": "hellothere", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/contains.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/contains.json deleted file mode 100644 index 8539a531d..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/contains.json +++ /dev/null @@ -1,197 +0,0 @@ -[ - { - "description": "contains keyword validation", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "contains": { "minimum": 5 } - }, - "tests": [ - { - "description": "array with item matching schema (5) is valid", - "data": [3, 4, 5], - "valid": true - }, - { - "description": "array with item matching schema (6) is valid", - "data": [3, 4, 6], - "valid": true - }, - { - "description": "array with two items matching schema (5, 6) is valid", - "data": [3, 4, 5, 6], - "valid": true - }, - { - "description": "array without items matching schema is invalid", - "data": [2, 3, 4], - "valid": false - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - }, - { - "description": "not array or object is valid", - "data": 42, - "valid": true - } - ] - }, - { - "description": "contains keyword with const keyword", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "contains": { "const": 5 } - }, - "tests": [ - { - "description": "array with item 5 is valid", - "data": [3, 4, 5], - "valid": true - }, - { - "description": "array with two items 5 is valid", - "data": [3, 4, 5, 5], - "valid": true - }, - { - "description": "array without item 5 is invalid", - "data": [1, 2, 3, 4], - "valid": false - } - ] - }, - { - "description": "contains keyword with boolean schema true", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "contains": true - }, - "tests": [ - { - "description": "any non-empty array is valid", - "data": ["foo"], - "valid": true - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - } - ] - }, - { - "description": "contains keyword with boolean schema false", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "contains": false - }, - "tests": [ - { - "description": "any non-empty array is invalid", - "data": ["foo"], - "valid": false - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - }, - { - "description": "non-arrays are valid - string", - "data": "contains does not apply to strings", - "valid": true - }, - { - "description": "non-arrays are valid - object", - "data": {}, - "valid": true - }, - { - "description": "non-arrays are valid - number", - "data": 42, - "valid": true - }, - { - "description": "non-arrays are valid - boolean", - "data": false, - "valid": true - }, - { - "description": "non-arrays are valid - null", - "data": null, - "valid": true - } - ] - }, - { - "description": "items + contains", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "additionalProperties": { "multipleOf": 2 }, - "items": { "multipleOf": 2 }, - "contains": { "multipleOf": 3 } - }, - "tests": [ - { - "description": "matches items, does not match contains", - "data": [2, 4, 8], - "valid": false - }, - { - "description": "does not match items, matches contains", - "data": [3, 6, 9], - "valid": false - }, - { - "description": "matches both items and contains", - "data": [6, 12], - "valid": true - }, - { - "description": "matches neither items nor contains", - "data": [1, 5], - "valid": false - } - ] - }, - { - "description": "contains with false if subschema", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "contains": { - "if": false, - "else": true - } - }, - "tests": [ - { - "description": "any non-empty array is valid", - "data": ["foo"], - "valid": true - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - } - ] - }, - { - "description": "contains with null instance elements", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "contains": { - "type": "null" - } - }, - "tests": [ - { - "description": "allows null items", - "data": [ null ], - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/content.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/content.json deleted file mode 100644 index 37e1f0951..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/content.json +++ /dev/null @@ -1,131 +0,0 @@ -[ - { - "description": "validation of string-encoded content based on media type", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "contentMediaType": "application/json" - }, - "tests": [ - { - "description": "a valid JSON document", - "data": "{\"foo\": \"bar\"}", - "valid": true - }, - { - "description": "an invalid JSON document; validates true", - "data": "{:}", - "valid": true - }, - { - "description": "ignores non-strings", - "data": 100, - "valid": true - } - ] - }, - { - "description": "validation of binary string-encoding", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "contentEncoding": "base64" - }, - "tests": [ - { - "description": "a valid base64 string", - "data": "eyJmb28iOiAiYmFyIn0K", - "valid": true - }, - { - "description": "an invalid base64 string (% is not a valid character); validates true", - "data": "eyJmb28iOi%iYmFyIn0K", - "valid": true - }, - { - "description": "ignores non-strings", - "data": 100, - "valid": true - } - ] - }, - { - "description": "validation of binary-encoded media type documents", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "contentMediaType": "application/json", - "contentEncoding": "base64" - }, - "tests": [ - { - "description": "a valid base64-encoded JSON document", - "data": "eyJmb28iOiAiYmFyIn0K", - "valid": true - }, - { - "description": "a validly-encoded invalid JSON document; validates true", - "data": "ezp9Cg==", - "valid": true - }, - { - "description": "an invalid base64 string that is valid JSON; validates true", - "data": "{}", - "valid": true - }, - { - "description": "ignores non-strings", - "data": 100, - "valid": true - } - ] - }, - { - "description": "validation of binary-encoded media type documents with schema", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "contentMediaType": "application/json", - "contentEncoding": "base64", - "contentSchema": { "type": "object", "required": ["foo"], "properties": { "foo": { "type": "string" } } } - }, - "tests": [ - { - "description": "a valid base64-encoded JSON document", - "data": "eyJmb28iOiAiYmFyIn0K", - "valid": true - }, - { - "description": "another valid base64-encoded JSON document", - "data": "eyJib28iOiAyMCwgImZvbyI6ICJiYXoifQ==", - "valid": true - }, - { - "description": "an invalid base64-encoded JSON document; validates true", - "data": "eyJib28iOiAyMH0=", - "valid": true - }, - { - "description": "an empty object as a base64-encoded JSON document; validates true", - "data": "e30=", - "valid": true - }, - { - "description": "an empty array as a base64-encoded JSON document", - "data": "W10=", - "valid": true - }, - { - "description": "a validly-encoded invalid JSON document; validates true", - "data": "ezp9Cg==", - "valid": true - }, - { - "description": "an invalid base64 string that is valid JSON; validates true", - "data": "{}", - "valid": true - }, - { - "description": "ignores non-strings", - "data": 100, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/default.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/default.json deleted file mode 100644 index 689b68e6a..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/default.json +++ /dev/null @@ -1,82 +0,0 @@ -[ - { - "description": "invalid type for default", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "properties": { - "foo": { - "type": "integer", - "default": [] - } - } - }, - "tests": [ - { - "description": "valid when property is specified", - "data": {"foo": 13}, - "valid": true - }, - { - "description": "still valid when the invalid default is used", - "data": {}, - "valid": true - } - ] - }, - { - "description": "invalid string value for default", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "properties": { - "bar": { - "type": "string", - "minLength": 4, - "default": "bad" - } - } - }, - "tests": [ - { - "description": "valid when property is specified", - "data": {"bar": "good"}, - "valid": true - }, - { - "description": "still valid when the invalid default is used", - "data": {}, - "valid": true - } - ] - }, - { - "description": "the default keyword does not do anything if the property is missing", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "properties": { - "alpha": { - "type": "number", - "maximum": 3, - "default": 5 - } - } - }, - "tests": [ - { - "description": "an explicit property value is checked against maximum (passing)", - "data": { "alpha": 1 }, - "valid": true - }, - { - "description": "an explicit property value is checked against maximum (failing)", - "data": { "alpha": 5 }, - "valid": false - }, - { - "description": "missing properties are not filled in with the default", - "data": {}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/defs.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/defs.json deleted file mode 100644 index 7bda8257c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/defs.json +++ /dev/null @@ -1,21 +0,0 @@ -[ - { - "description": "validate definition against metaschema", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$ref": "https://json-schema.org/draft/next/schema" - }, - "tests": [ - { - "description": "valid definition schema", - "data": {"$defs": {"foo": {"type": "integer"}}}, - "valid": true - }, - { - "description": "invalid definition schema", - "data": {"$defs": {"foo": {"type": 1}}}, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/dependentRequired.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/dependentRequired.json deleted file mode 100644 index 23447242c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/dependentRequired.json +++ /dev/null @@ -1,152 +0,0 @@ -[ - { - "description": "single dependency", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "dependentRequired": {"bar": ["foo"]} - }, - "tests": [ - { - "description": "neither", - "data": {}, - "valid": true - }, - { - "description": "nondependant", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "with dependency", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "missing dependency", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "ignores arrays", - "data": ["bar"], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobar", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "empty dependents", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "dependentRequired": {"bar": []} - }, - "tests": [ - { - "description": "empty object", - "data": {}, - "valid": true - }, - { - "description": "object with one property", - "data": {"bar": 2}, - "valid": true - }, - { - "description": "non-object is valid", - "data": 1, - "valid": true - } - ] - }, - { - "description": "multiple dependents required", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "dependentRequired": {"quux": ["foo", "bar"]} - }, - "tests": [ - { - "description": "neither", - "data": {}, - "valid": true - }, - { - "description": "nondependants", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "with dependencies", - "data": {"foo": 1, "bar": 2, "quux": 3}, - "valid": true - }, - { - "description": "missing dependency", - "data": {"foo": 1, "quux": 2}, - "valid": false - }, - { - "description": "missing other dependency", - "data": {"bar": 1, "quux": 2}, - "valid": false - }, - { - "description": "missing both dependencies", - "data": {"quux": 1}, - "valid": false - } - ] - }, - { - "description": "dependencies with escaped characters", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "dependentRequired": { - "foo\nbar": ["foo\rbar"], - "foo\"bar": ["foo'bar"] - } - }, - "tests": [ - { - "description": "CRLF", - "data": { - "foo\nbar": 1, - "foo\rbar": 2 - }, - "valid": true - }, - { - "description": "quoted quotes", - "data": { - "foo'bar": 1, - "foo\"bar": 2 - }, - "valid": true - }, - { - "description": "CRLF missing dependent", - "data": { - "foo\nbar": 1, - "foo": 2 - }, - "valid": false - }, - { - "description": "quoted quotes missing dependent", - "data": { - "foo\"bar": 2 - }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/dependentSchemas.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/dependentSchemas.json deleted file mode 100644 index 86079c34c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/dependentSchemas.json +++ /dev/null @@ -1,171 +0,0 @@ -[ - { - "description": "single dependency", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "dependentSchemas": { - "bar": { - "properties": { - "foo": {"type": "integer"}, - "bar": {"type": "integer"} - } - } - } - }, - "tests": [ - { - "description": "valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "no dependency", - "data": {"foo": "quux"}, - "valid": true - }, - { - "description": "wrong type", - "data": {"foo": "quux", "bar": 2}, - "valid": false - }, - { - "description": "wrong type other", - "data": {"foo": 2, "bar": "quux"}, - "valid": false - }, - { - "description": "wrong type both", - "data": {"foo": "quux", "bar": "quux"}, - "valid": false - }, - { - "description": "ignores arrays", - "data": ["bar"], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobar", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "boolean subschemas", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "dependentSchemas": { - "foo": true, - "bar": false - } - }, - "tests": [ - { - "description": "object with property having schema true is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "object with property having schema false is invalid", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "object with both properties is invalid", - "data": {"foo": 1, "bar": 2}, - "valid": false - }, - { - "description": "empty object is valid", - "data": {}, - "valid": true - } - ] - }, - { - "description": "dependencies with escaped characters", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "dependentSchemas": { - "foo\tbar": {"minProperties": 4}, - "foo'bar": {"required": ["foo\"bar"]} - } - }, - "tests": [ - { - "description": "quoted tab", - "data": { - "foo\tbar": 1, - "a": 2, - "b": 3, - "c": 4 - }, - "valid": true - }, - { - "description": "quoted quote", - "data": { - "foo'bar": {"foo\"bar": 1} - }, - "valid": false - }, - { - "description": "quoted tab invalid under dependent schema", - "data": { - "foo\tbar": 1, - "a": 2 - }, - "valid": false - }, - { - "description": "quoted quote invalid under dependent schema", - "data": {"foo'bar": 1}, - "valid": false - } - ] - }, - { - "description": "dependent subschema incompatible with root", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "properties": { - "foo": {} - }, - "dependentSchemas": { - "foo": { - "properties": { - "bar": {} - }, - "additionalProperties": false - } - } - }, - "tests": [ - { - "description": "matches root", - "data": {"foo": 1}, - "valid": false - }, - { - "description": "matches dependency", - "data": {"bar": 1}, - "valid": true - }, - { - "description": "matches both", - "data": {"foo": 1, "bar": 2}, - "valid": false - }, - { - "description": "no dependency", - "data": {"baz": 1}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/dynamicRef.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/dynamicRef.json deleted file mode 100644 index 30821c5b1..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/dynamicRef.json +++ /dev/null @@ -1,701 +0,0 @@ -[ - { - "description": "A $dynamicRef to a $dynamicAnchor in the same schema resource behaves like a normal $ref to an $anchor", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "https://test.json-schema.org/dynamicRef-dynamicAnchor-same-schema/root", - "type": "array", - "items": { "$dynamicRef": "#items" }, - "$defs": { - "foo": { - "$dynamicAnchor": "items", - "type": "string" - } - } - }, - "tests": [ - { - "description": "An array of strings is valid", - "data": ["foo", "bar"], - "valid": true - }, - { - "description": "An array containing non-strings is invalid", - "data": ["foo", 42], - "valid": false - } - ] - }, - { - "description": "A $ref to a $dynamicAnchor in the same schema resource behaves like a normal $ref to an $anchor", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "https://test.json-schema.org/ref-dynamicAnchor-same-schema/root", - "type": "array", - "items": { "$ref": "#items" }, - "$defs": { - "foo": { - "$dynamicAnchor": "items", - "type": "string" - } - } - }, - "tests": [ - { - "description": "An array of strings is valid", - "data": ["foo", "bar"], - "valid": true - }, - { - "description": "An array containing non-strings is invalid", - "data": ["foo", 42], - "valid": false - } - ] - }, - { - "description": "A $dynamicRef resolves to the first $dynamicAnchor still in scope that is encountered when the schema is evaluated", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "https://test.json-schema.org/typical-dynamic-resolution/root", - "$ref": "list", - "$defs": { - "foo": { - "$dynamicAnchor": "items", - "type": "string" - }, - "list": { - "$id": "list", - "type": "array", - "items": { "$dynamicRef": "#items" } - } - } - }, - "tests": [ - { - "description": "An array of strings is valid", - "data": ["foo", "bar"], - "valid": true - }, - { - "description": "An array containing non-strings is invalid", - "data": ["foo", 42], - "valid": false - } - ] - }, - { - "description": "A $dynamicRef with intermediate scopes that don't include a matching $dynamicAnchor does not affect dynamic scope resolution", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "https://test.json-schema.org/dynamic-resolution-with-intermediate-scopes/root", - "$ref": "intermediate-scope", - "$defs": { - "foo": { - "$dynamicAnchor": "items", - "type": "string" - }, - "intermediate-scope": { - "$id": "intermediate-scope", - "$ref": "list" - }, - "list": { - "$id": "list", - "type": "array", - "items": { "$dynamicRef": "#items" } - } - } - }, - "tests": [ - { - "description": "An array of strings is valid", - "data": ["foo", "bar"], - "valid": true - }, - { - "description": "An array containing non-strings is invalid", - "data": ["foo", 42], - "valid": false - } - ] - }, - { - "description": "An $anchor with the same name as a $dynamicAnchor is not used for dynamic scope resolution", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "https://test.json-schema.org/dynamic-resolution-ignores-anchors/root", - "$ref": "list", - "$defs": { - "foo": { - "$anchor": "items", - "type": "string" - }, - "list": { - "$id": "list", - "type": "array", - "items": { "$dynamicRef": "#items" }, - "$defs": { - "items": { - "$dynamicAnchor": "items" - } - } - } - } - }, - "tests": [ - { - "description": "Any array is valid", - "data": ["foo", 42], - "valid": true - } - ] - }, - { - "description": "A $dynamicRef that initially resolves to a schema with a matching $dynamicAnchor resolves to the first $dynamicAnchor in the dynamic scope", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "https://test.json-schema.org/relative-dynamic-reference/root", - "$dynamicAnchor": "meta", - "type": "object", - "properties": { - "foo": { "const": "pass" } - }, - "$ref": "extended", - "$defs": { - "extended": { - "$id": "extended", - "$dynamicAnchor": "meta", - "type": "object", - "properties": { - "bar": { "$ref": "bar" } - } - }, - "bar": { - "$id": "bar", - "type": "object", - "properties": { - "baz": { "$dynamicRef": "extended#meta" } - } - } - } - }, - "tests": [ - { - "description": "The recursive part is valid against the root", - "data": { - "foo": "pass", - "bar": { - "baz": { "foo": "pass" } - } - }, - "valid": true - }, - { - "description": "The recursive part is not valid against the root", - "data": { - "foo": "pass", - "bar": { - "baz": { "foo": "fail" } - } - }, - "valid": false - } - ] - }, - { - "description": "multiple dynamic paths to the $dynamicRef keyword", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/main", - "propertyDependencies": { - "kindOfList": { - "numbers": { "$ref": "numberList" }, - "strings": { "$ref": "stringList" } - } - }, - "$defs": { - "genericList": { - "$id": "genericList", - "properties": { - "list": { - "items": { "$dynamicRef": "#itemType" } - } - } - }, - "numberList": { - "$id": "numberList", - "$defs": { - "itemType": { - "$dynamicAnchor": "itemType", - "type": "number" - } - }, - "$ref": "genericList" - }, - "stringList": { - "$id": "stringList", - "$defs": { - "itemType": { - "$dynamicAnchor": "itemType", - "type": "string" - } - }, - "$ref": "genericList" - } - } - }, - "tests": [ - { - "description": "number list with number values", - "data": { - "kindOfList": "numbers", - "list": [1.1] - }, - "valid": true - }, - { - "description": "number list with string values", - "data": { - "kindOfList": "numbers", - "list": ["foo"] - }, - "valid": false - }, - { - "description": "string list with number values", - "data": { - "kindOfList": "strings", - "list": [1.1] - }, - "valid": false - }, - { - "description": "string list with string values", - "data": { - "kindOfList": "strings", - "list": ["foo"] - }, - "valid": true - } - ] - }, - { - "description": "after leaving a dynamic scope, it is not used by a $dynamicRef", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/main", - "if": { - "$id": "first_scope", - "$defs": { - "thingy": { - "$comment": "this is first_scope#thingy", - "$dynamicAnchor": "thingy", - "type": "number" - } - } - }, - "then": { - "$id": "second_scope", - "$ref": "start", - "$defs": { - "thingy": { - "$comment": "this is second_scope#thingy, the final destination of the $dynamicRef", - "$dynamicAnchor": "thingy", - "type": "null" - } - } - }, - "$defs": { - "start": { - "$comment": "this is the landing spot from $ref", - "$id": "start", - "$dynamicRef": "inner_scope#thingy" - }, - "thingy": { - "$comment": "this is the first stop for the $dynamicRef", - "$id": "inner_scope", - "$dynamicAnchor": "thingy", - "type": "string" - } - } - }, - "tests": [ - { - "description": "string matches /$defs/thingy, but the $dynamicRef does not stop here", - "data": "a string", - "valid": false - }, - { - "description": "first_scope is not in dynamic scope for the $dynamicRef", - "data": 42, - "valid": false - }, - { - "description": "/then/$defs/thingy is the final stop for the $dynamicRef", - "data": null, - "valid": true - } - ] - }, - { - "description": "strict-tree schema, guards against misspelled properties", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "http://localhost:1234/draft-next/strict-tree.json", - "$dynamicAnchor": "node", - - "$ref": "tree.json", - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "instance with misspelled field", - "data": { - "children": [{ - "daat": 1 - }] - }, - "valid": false - }, - { - "description": "instance with correct field", - "data": { - "children": [{ - "data": 1 - }] - }, - "valid": true - } - ] - }, - { - "description": "tests for implementation dynamic anchor and reference link", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "http://localhost:1234/draft-next/strict-extendible.json", - "$ref": "extendible-dynamic-ref.json", - "$defs": { - "elements": { - "$dynamicAnchor": "elements", - "properties": { - "a": true - }, - "required": ["a"], - "additionalProperties": false - } - } - }, - "tests": [ - { - "description": "incorrect parent schema", - "data": { - "a": true - }, - "valid": false - }, - { - "description": "incorrect extended schema", - "data": { - "elements": [ - { "b": 1 } - ] - }, - "valid": false - }, - { - "description": "correct extended schema", - "data": { - "elements": [ - { "a": 1 } - ] - }, - "valid": true - } - ] - }, - { - "description": "$ref and $dynamicAnchor are independent of order - $defs first", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "http://localhost:1234/draft-next/strict-extendible-allof-defs-first.json", - "allOf": [ - { - "$ref": "extendible-dynamic-ref.json" - }, - { - "$defs": { - "elements": { - "$dynamicAnchor": "elements", - "properties": { - "a": true - }, - "required": ["a"], - "additionalProperties": false - } - } - } - ] - }, - "tests": [ - { - "description": "incorrect parent schema", - "data": { - "a": true - }, - "valid": false - }, - { - "description": "incorrect extended schema", - "data": { - "elements": [ - { "b": 1 } - ] - }, - "valid": false - }, - { - "description": "correct extended schema", - "data": { - "elements": [ - { "a": 1 } - ] - }, - "valid": true - } - ] - }, - { - "description": "$ref and $dynamicAnchor are independent of order - $ref first", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "http://localhost:1234/draft-next/strict-extendible-allof-ref-first.json", - "allOf": [ - { - "$defs": { - "elements": { - "$dynamicAnchor": "elements", - "properties": { - "a": true - }, - "required": ["a"], - "additionalProperties": false - } - } - }, - { - "$ref": "extendible-dynamic-ref.json" - } - ] - }, - "tests": [ - { - "description": "incorrect parent schema", - "data": { - "a": true - }, - "valid": false - }, - { - "description": "incorrect extended schema", - "data": { - "elements": [ - { "b": 1 } - ] - }, - "valid": false - }, - { - "description": "correct extended schema", - "data": { - "elements": [ - { "a": 1 } - ] - }, - "valid": true - } - ] - }, - { - "description": "$dynamicAnchor inside propertyDependencies", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "http://localhost:1234/draft-next/dynamicanchor-in-propertydependencies.json", - "$defs": { - "inner": { - "$id": "inner", - "$dynamicAnchor": "foo", - "type": "object", - "properties": { - "expectedTypes": { - "type": "string" - } - }, - "additionalProperties": { - "$dynamicRef": "#foo" - } - } - }, - "propertyDependencies": { - "expectedTypes": { - "strings": { - "$id": "east", - "$ref": "inner", - "$defs": { - "foo": { - "$dynamicAnchor": "foo", - "type": "string" - } - } - }, - "integers": { - "$id": "west", - "$ref": "inner", - "$defs": { - "foo": { - "$dynamicAnchor": "foo", - "type": "integer" - } - } - } - } - } - }, - "tests": [ - { - "description": "expected strings - additional property as string is valid", - "data": { - "expectedTypes": "strings", - "anotherProperty": "also a string" - }, - "valid": true - }, - { - "description": "expected strings - additional property as not string is invalid", - "data": { - "expectedTypes": "strings", - "anotherProperty": 42 - }, - "valid": false - }, - { - "description": "expected integers - additional property as integer is valid", - "data": { - "expectedTypes": "integers", - "anotherProperty": 42 - }, - "valid": true - }, - { - "description": "expected integers - additional property as not integer is invalid", - "data": { - "expectedTypes": "integers", - "anotherProperty": "a string" - }, - "valid": false - } - ] - }, - { - "description": "$ref to $dynamicRef finds detached $dynamicAnchor", - "schema": { - "$ref": "http://localhost:1234/draft-next/detached-dynamicref.json#/$defs/foo" - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "non-number is invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "$dynamicRef points to a boolean schema", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$defs": { - "true": true, - "false": false - }, - "properties": { - "true": { - "$dynamicRef": "#/$defs/true" - }, - "false": { - "$dynamicRef": "#/$defs/false" - } - } - }, - "tests": [ - { - "description": "follow $dynamicRef to a true schema", - "data": { "true": 1 }, - "valid": true - }, - { - "description": "follow $dynamicRef to a false schema", - "data": { "false": 1 }, - "valid": false - } - ] - }, - { - "description": "$dynamicRef skips over intermediate resources - direct reference", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/main", - "type": "object", - "properties": { - "bar-item": { - "$ref": "item" - } - }, - "$defs": { - "bar": { - "$id": "bar", - "type": "array", - "items": { - "$ref": "item" - }, - "$defs": { - "item": { - "$id": "item", - "type": "object", - "properties": { - "content": { - "$dynamicRef": "#content" - } - }, - "$defs": { - "defaultContent": { - "$dynamicAnchor": "content", - "type": "integer" - } - } - }, - "content": { - "$dynamicAnchor": "content", - "type": "string" - } - } - } - } - }, - "tests": [ - { - "description": "integer property passes", - "data": { "bar-item": { "content": 42 } }, - "valid": true - }, - { - "description": "string property fails", - "data": { "bar-item": { "content": "value" } }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/enum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/enum.json deleted file mode 100644 index e263f3901..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/enum.json +++ /dev/null @@ -1,358 +0,0 @@ -[ - { - "description": "simple enum validation", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "enum": [1, 2, 3] - }, - "tests": [ - { - "description": "one of the enum is valid", - "data": 1, - "valid": true - }, - { - "description": "something else is invalid", - "data": 4, - "valid": false - } - ] - }, - { - "description": "heterogeneous enum validation", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "enum": [6, "foo", [], true, {"foo": 12}] - }, - "tests": [ - { - "description": "one of the enum is valid", - "data": [], - "valid": true - }, - { - "description": "something else is invalid", - "data": null, - "valid": false - }, - { - "description": "objects are deep compared", - "data": {"foo": false}, - "valid": false - }, - { - "description": "valid object matches", - "data": {"foo": 12}, - "valid": true - }, - { - "description": "extra properties in object is invalid", - "data": {"foo": 12, "boo": 42}, - "valid": false - } - ] - }, - { - "description": "heterogeneous enum-with-null validation", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "enum": [6, null] - }, - "tests": [ - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "number is valid", - "data": 6, - "valid": true - }, - { - "description": "something else is invalid", - "data": "test", - "valid": false - } - ] - }, - { - "description": "enums in properties", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type":"object", - "properties": { - "foo": {"enum":["foo"]}, - "bar": {"enum":["bar"]} - }, - "required": ["bar"] - }, - "tests": [ - { - "description": "both properties are valid", - "data": {"foo":"foo", "bar":"bar"}, - "valid": true - }, - { - "description": "wrong foo value", - "data": {"foo":"foot", "bar":"bar"}, - "valid": false - }, - { - "description": "wrong bar value", - "data": {"foo":"foo", "bar":"bart"}, - "valid": false - }, - { - "description": "missing optional property is valid", - "data": {"bar":"bar"}, - "valid": true - }, - { - "description": "missing required property is invalid", - "data": {"foo":"foo"}, - "valid": false - }, - { - "description": "missing all properties is invalid", - "data": {}, - "valid": false - } - ] - }, - { - "description": "enum with escaped characters", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "enum": ["foo\nbar", "foo\rbar"] - }, - "tests": [ - { - "description": "member 1 is valid", - "data": "foo\nbar", - "valid": true - }, - { - "description": "member 2 is valid", - "data": "foo\rbar", - "valid": true - }, - { - "description": "another string is invalid", - "data": "abc", - "valid": false - } - ] - }, - { - "description": "enum with false does not match 0", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "enum": [false] - }, - "tests": [ - { - "description": "false is valid", - "data": false, - "valid": true - }, - { - "description": "integer zero is invalid", - "data": 0, - "valid": false - }, - { - "description": "float zero is invalid", - "data": 0.0, - "valid": false - } - ] - }, - { - "description": "enum with [false] does not match [0]", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "enum": [[false]] - }, - "tests": [ - { - "description": "[false] is valid", - "data": [false], - "valid": true - }, - { - "description": "[0] is invalid", - "data": [0], - "valid": false - }, - { - "description": "[0.0] is invalid", - "data": [0.0], - "valid": false - } - ] - }, - { - "description": "enum with true does not match 1", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "enum": [true] - }, - "tests": [ - { - "description": "true is valid", - "data": true, - "valid": true - }, - { - "description": "integer one is invalid", - "data": 1, - "valid": false - }, - { - "description": "float one is invalid", - "data": 1.0, - "valid": false - } - ] - }, - { - "description": "enum with [true] does not match [1]", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "enum": [[true]] - }, - "tests": [ - { - "description": "[true] is valid", - "data": [true], - "valid": true - }, - { - "description": "[1] is invalid", - "data": [1], - "valid": false - }, - { - "description": "[1.0] is invalid", - "data": [1.0], - "valid": false - } - ] - }, - { - "description": "enum with 0 does not match false", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "enum": [0] - }, - "tests": [ - { - "description": "false is invalid", - "data": false, - "valid": false - }, - { - "description": "integer zero is valid", - "data": 0, - "valid": true - }, - { - "description": "float zero is valid", - "data": 0.0, - "valid": true - } - ] - }, - { - "description": "enum with [0] does not match [false]", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "enum": [[0]] - }, - "tests": [ - { - "description": "[false] is invalid", - "data": [false], - "valid": false - }, - { - "description": "[0] is valid", - "data": [0], - "valid": true - }, - { - "description": "[0.0] is valid", - "data": [0.0], - "valid": true - } - ] - }, - { - "description": "enum with 1 does not match true", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "enum": [1] - }, - "tests": [ - { - "description": "true is invalid", - "data": true, - "valid": false - }, - { - "description": "integer one is valid", - "data": 1, - "valid": true - }, - { - "description": "float one is valid", - "data": 1.0, - "valid": true - } - ] - }, - { - "description": "enum with [1] does not match [true]", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "enum": [[1]] - }, - "tests": [ - { - "description": "[true] is invalid", - "data": [true], - "valid": false - }, - { - "description": "[1] is valid", - "data": [1], - "valid": true - }, - { - "description": "[1.0] is valid", - "data": [1.0], - "valid": true - } - ] - }, - { - "description": "nul characters in strings", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "enum": [ "hello\u0000there" ] - }, - "tests": [ - { - "description": "match string with nul", - "data": "hello\u0000there", - "valid": true - }, - { - "description": "do not match string lacking nul", - "data": "hellothere", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/exclusiveMaximum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/exclusiveMaximum.json deleted file mode 100644 index 6ec4752d1..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/exclusiveMaximum.json +++ /dev/null @@ -1,31 +0,0 @@ -[ - { - "description": "exclusiveMaximum validation", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "exclusiveMaximum": 3.0 - }, - "tests": [ - { - "description": "below the exclusiveMaximum is valid", - "data": 2.2, - "valid": true - }, - { - "description": "boundary point is invalid", - "data": 3.0, - "valid": false - }, - { - "description": "above the exclusiveMaximum is invalid", - "data": 3.5, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/exclusiveMinimum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/exclusiveMinimum.json deleted file mode 100644 index 90262987d..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/exclusiveMinimum.json +++ /dev/null @@ -1,31 +0,0 @@ -[ - { - "description": "exclusiveMinimum validation", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "exclusiveMinimum": 1.1 - }, - "tests": [ - { - "description": "above the exclusiveMinimum is valid", - "data": 1.2, - "valid": true - }, - { - "description": "boundary point is invalid", - "data": 1.1, - "valid": false - }, - { - "description": "below the exclusiveMinimum is invalid", - "data": 0.6, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/format.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/format.json deleted file mode 100644 index ec6c7f1dd..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/format.json +++ /dev/null @@ -1,838 +0,0 @@ -[ - { - "description": "email format", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "email" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid email string is only an annotation by default", - "data": "2962", - "valid": true - } - ] - }, - { - "description": "idn-email format", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "idn-email" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid idn-email string is only an annotation by default", - "data": "2962", - "valid": true - } - ] - }, - { - "description": "regex format", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "regex" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid regex string is only an annotation by default", - "data": "^(abc]", - "valid": true - } - ] - }, - { - "description": "ipv4 format", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "ipv4" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid ipv4 string is only an annotation by default", - "data": "127.0.0.0.1", - "valid": true - } - ] - }, - { - "description": "ipv6 format", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "ipv6" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid ipv6 string is only an annotation by default", - "data": "12345::", - "valid": true - } - ] - }, - { - "description": "idn-hostname format", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "idn-hostname" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid idn-hostname string is only an annotation by default", - "data": "〮실례.테스트", - "valid": true - } - ] - }, - { - "description": "hostname format", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "hostname" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid hostname string is only an annotation by default", - "data": "-a-host-name-that-starts-with--", - "valid": true - } - ] - }, - { - "description": "date format", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "date" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid date string is only an annotation by default", - "data": "06/19/1963", - "valid": true - } - ] - }, - { - "description": "date-time format", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "date-time" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid date-time string is only an annotation by default", - "data": "1990-02-31T15:59:60.123-08:00", - "valid": true - } - ] - }, - { - "description": "time format", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "time" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid time string is only an annotation by default", - "data": "08:30:06 PST", - "valid": true - } - ] - }, - { - "description": "json-pointer format", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "json-pointer" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid json-pointer string is only an annotation by default", - "data": "/foo/bar~", - "valid": true - } - ] - }, - { - "description": "relative-json-pointer format", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "relative-json-pointer" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid relative-json-pointer string is only an annotation by default", - "data": "/foo/bar", - "valid": true - } - ] - }, - { - "description": "iri format", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "iri" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid iri string is only an annotation by default", - "data": "http://2001:0db8:85a3:0000:0000:8a2e:0370:7334", - "valid": true - } - ] - }, - { - "description": "iri-reference format", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "iri-reference" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid iri-reference string is only an annotation by default", - "data": "\\\\WINDOWS\\filëßåré", - "valid": true - } - ] - }, - { - "description": "uri format", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "uri" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid uri string is only an annotation by default", - "data": "//foo.bar/?baz=qux#quux", - "valid": true - } - ] - }, - { - "description": "uri-reference format", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "uri-reference" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid uri-reference string is only an annotation by default", - "data": "\\\\WINDOWS\\fileshare", - "valid": true - } - ] - }, - { - "description": "uri-template format", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "uri-template" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid uri-template string is only an annotation by default", - "data": "http://example.com/dictionary/{term:1}/{term", - "valid": true - } - ] - }, - { - "description": "uuid format", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "uuid" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid uuid string is only an annotation by default", - "data": "2eb8aa08-aa98-11ea-b4aa-73b441d1638", - "valid": true - } - ] - }, - { - "description": "duration format", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "duration" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid duration string is only an annotation by default", - "data": "PT1D", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/if-then-else.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/if-then-else.json deleted file mode 100644 index 70576c42e..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/if-then-else.json +++ /dev/null @@ -1,268 +0,0 @@ -[ - { - "description": "ignore if without then or else", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "if": { - "const": 0 - } - }, - "tests": [ - { - "description": "valid when valid against lone if", - "data": 0, - "valid": true - }, - { - "description": "valid when invalid against lone if", - "data": "hello", - "valid": true - } - ] - }, - { - "description": "ignore then without if", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "then": { - "const": 0 - } - }, - "tests": [ - { - "description": "valid when valid against lone then", - "data": 0, - "valid": true - }, - { - "description": "valid when invalid against lone then", - "data": "hello", - "valid": true - } - ] - }, - { - "description": "ignore else without if", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "else": { - "const": 0 - } - }, - "tests": [ - { - "description": "valid when valid against lone else", - "data": 0, - "valid": true - }, - { - "description": "valid when invalid against lone else", - "data": "hello", - "valid": true - } - ] - }, - { - "description": "if and then without else", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "if": { - "exclusiveMaximum": 0 - }, - "then": { - "minimum": -10 - } - }, - "tests": [ - { - "description": "valid through then", - "data": -1, - "valid": true - }, - { - "description": "invalid through then", - "data": -100, - "valid": false - }, - { - "description": "valid when if test fails", - "data": 3, - "valid": true - } - ] - }, - { - "description": "if and else without then", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "if": { - "exclusiveMaximum": 0 - }, - "else": { - "multipleOf": 2 - } - }, - "tests": [ - { - "description": "valid when if test passes", - "data": -1, - "valid": true - }, - { - "description": "valid through else", - "data": 4, - "valid": true - }, - { - "description": "invalid through else", - "data": 3, - "valid": false - } - ] - }, - { - "description": "validate against correct branch, then vs else", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "if": { - "exclusiveMaximum": 0 - }, - "then": { - "minimum": -10 - }, - "else": { - "multipleOf": 2 - } - }, - "tests": [ - { - "description": "valid through then", - "data": -1, - "valid": true - }, - { - "description": "invalid through then", - "data": -100, - "valid": false - }, - { - "description": "valid through else", - "data": 4, - "valid": true - }, - { - "description": "invalid through else", - "data": 3, - "valid": false - } - ] - }, - { - "description": "non-interference across combined schemas", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "allOf": [ - { - "if": { - "exclusiveMaximum": 0 - } - }, - { - "then": { - "minimum": -10 - } - }, - { - "else": { - "multipleOf": 2 - } - } - ] - }, - "tests": [ - { - "description": "valid, but would have been invalid through then", - "data": -100, - "valid": true - }, - { - "description": "valid, but would have been invalid through else", - "data": 3, - "valid": true - } - ] - }, - { - "description": "if with boolean schema true", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "if": true, - "then": { "const": "then" }, - "else": { "const": "else" } - }, - "tests": [ - { - "description": "boolean schema true in if always chooses the then path (valid)", - "data": "then", - "valid": true - }, - { - "description": "boolean schema true in if always chooses the then path (invalid)", - "data": "else", - "valid": false - } - ] - }, - { - "description": "if with boolean schema false", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "if": false, - "then": { "const": "then" }, - "else": { "const": "else" } - }, - "tests": [ - { - "description": "boolean schema false in if always chooses the else path (invalid)", - "data": "then", - "valid": false - }, - { - "description": "boolean schema false in if always chooses the else path (valid)", - "data": "else", - "valid": true - } - ] - }, - { - "description": "if appears at the end when serialized (keyword processing sequence)", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "then": { "const": "yes" }, - "else": { "const": "other" }, - "if": { "maxLength": 4 } - }, - "tests": [ - { - "description": "yes redirects to then and passes", - "data": "yes", - "valid": true - }, - { - "description": "other redirects to else and passes", - "data": "other", - "valid": true - }, - { - "description": "no redirects to then and fails", - "data": "no", - "valid": false - }, - { - "description": "invalid redirects to else and fails", - "data": "invalid", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/infinite-loop-detection.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/infinite-loop-detection.json deleted file mode 100644 index fa66743bc..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/infinite-loop-detection.json +++ /dev/null @@ -1,37 +0,0 @@ -[ - { - "description": "evaluating the same schema location against the same data location twice is not a sign of an infinite loop", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$defs": { - "int": { "type": "integer" } - }, - "allOf": [ - { - "properties": { - "foo": { - "$ref": "#/$defs/int" - } - } - }, - { - "additionalProperties": { - "$ref": "#/$defs/int" - } - } - ] - }, - "tests": [ - { - "description": "passing case", - "data": { "foo": 1 }, - "valid": true - }, - { - "description": "failing case", - "data": { "foo": "a string" }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/items.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/items.json deleted file mode 100644 index dfb79af2f..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/items.json +++ /dev/null @@ -1,304 +0,0 @@ -[ - { - "description": "a schema given for items", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "items": {"type": "integer"} - }, - "tests": [ - { - "description": "valid items", - "data": [ 1, 2, 3 ], - "valid": true - }, - { - "description": "wrong type of items", - "data": [1, "x"], - "valid": false - }, - { - "description": "ignores non-arrays", - "data": {"foo" : "bar"}, - "valid": true - }, - { - "description": "JavaScript pseudo-array is valid", - "data": { - "0": "invalid", - "length": 1 - }, - "valid": true - } - ] - }, - { - "description": "items with boolean schema (true)", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "items": true - }, - "tests": [ - { - "description": "any array is valid", - "data": [ 1, "foo", true ], - "valid": true - }, - { - "description": "empty array is valid", - "data": [], - "valid": true - } - ] - }, - { - "description": "items with boolean schema (false)", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "items": false - }, - "tests": [ - { - "description": "any non-empty array is invalid", - "data": [ 1, "foo", true ], - "valid": false - }, - { - "description": "empty array is valid", - "data": [], - "valid": true - } - ] - }, - { - "description": "items and subitems", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$defs": { - "item": { - "type": "array", - "items": false, - "prefixItems": [ - { "$ref": "#/$defs/sub-item" }, - { "$ref": "#/$defs/sub-item" } - ] - }, - "sub-item": { - "type": "object", - "required": ["foo"] - } - }, - "type": "array", - "items": false, - "prefixItems": [ - { "$ref": "#/$defs/item" }, - { "$ref": "#/$defs/item" }, - { "$ref": "#/$defs/item" } - ] - }, - "tests": [ - { - "description": "valid items", - "data": [ - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ] - ], - "valid": true - }, - { - "description": "too many items", - "data": [ - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ] - ], - "valid": false - }, - { - "description": "too many sub-items", - "data": [ - [ {"foo": null}, {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ] - ], - "valid": false - }, - { - "description": "wrong item", - "data": [ - {"foo": null}, - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ] - ], - "valid": false - }, - { - "description": "wrong sub-item", - "data": [ - [ {}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ] - ], - "valid": false - }, - { - "description": "fewer items is valid", - "data": [ - [ {"foo": null} ], - [ {"foo": null} ] - ], - "valid": true - } - ] - }, - { - "description": "nested items", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "array", - "items": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "number" - } - } - } - } - }, - "tests": [ - { - "description": "valid nested array", - "data": [[[[1]], [[2],[3]]], [[[4], [5], [6]]]], - "valid": true - }, - { - "description": "nested array with invalid type", - "data": [[[["1"]], [[2],[3]]], [[[4], [5], [6]]]], - "valid": false - }, - { - "description": "not deep enough", - "data": [[[1], [2],[3]], [[4], [5], [6]]], - "valid": false - } - ] - }, - { - "description": "prefixItems with no additional items allowed", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "prefixItems": [{}, {}, {}], - "items": false - }, - "tests": [ - { - "description": "empty array", - "data": [ ], - "valid": true - }, - { - "description": "fewer number of items present (1)", - "data": [ 1 ], - "valid": true - }, - { - "description": "fewer number of items present (2)", - "data": [ 1, 2 ], - "valid": true - }, - { - "description": "equal number of items present", - "data": [ 1, 2, 3 ], - "valid": true - }, - { - "description": "additional items are not permitted", - "data": [ 1, 2, 3, 4 ], - "valid": false - } - ] - }, - { - "description": "items does not look in applicators, valid case", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "allOf": [ - { "prefixItems": [ { "minimum": 3 } ] } - ], - "items": { "minimum": 5 } - }, - "tests": [ - { - "description": "prefixItems in allOf does not constrain items, invalid case", - "data": [ 3, 5 ], - "valid": false - }, - { - "description": "prefixItems in allOf does not constrain items, valid case", - "data": [ 5, 5 ], - "valid": true - } - ] - }, - { - "description": "prefixItems validation adjusts the starting index for items", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "prefixItems": [ { "type": "string" } ], - "items": { "type": "integer" } - }, - "tests": [ - { - "description": "valid items", - "data": [ "x", 2, 3 ], - "valid": true - }, - { - "description": "wrong type of second item", - "data": [ "x", "y" ], - "valid": false - } - ] - }, - { - "description": "items with heterogeneous array", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "prefixItems": [{}], - "items": false - }, - "tests": [ - { - "description": "heterogeneous invalid instance", - "data": [ "foo", "bar", 37 ], - "valid": false - }, - { - "description": "valid instance", - "data": [ null ], - "valid": true - } - ] - }, - { - "description": "items with null instance elements", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "items": { - "type": "null" - } - }, - "tests": [ - { - "description": "allows null elements", - "data": [ null ], - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/maxContains.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/maxContains.json deleted file mode 100644 index 5af6e4c13..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/maxContains.json +++ /dev/null @@ -1,102 +0,0 @@ -[ - { - "description": "maxContains without contains is ignored", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "maxContains": 1 - }, - "tests": [ - { - "description": "one item valid against lone maxContains", - "data": [1], - "valid": true - }, - { - "description": "two items still valid against lone maxContains", - "data": [1, 2], - "valid": true - } - ] - }, - { - "description": "maxContains with contains", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "contains": { "const": 1 }, - "maxContains": 1 - }, - "tests": [ - { - "description": "empty array", - "data": [], - "valid": false - }, - { - "description": "all elements match, valid maxContains", - "data": [1], - "valid": true - }, - { - "description": "all elements match, invalid maxContains", - "data": [1, 1], - "valid": false - }, - { - "description": "some elements match, valid maxContains", - "data": [1, 2], - "valid": true - }, - { - "description": "some elements match, invalid maxContains", - "data": [1, 2, 1], - "valid": false - } - ] - }, - { - "description": "maxContains with contains, value with a decimal", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "contains": {"const": 1}, - "maxContains": 1.0 - }, - "tests": [ - { - "description": "one element matches, valid maxContains", - "data": [ 1 ], - "valid": true - }, - { - "description": "too many elements match, invalid maxContains", - "data": [ 1, 1 ], - "valid": false - } - ] - }, - { - "description": "minContains < maxContains", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "contains": { "const": 1 }, - "minContains": 1, - "maxContains": 3 - }, - "tests": [ - { - "description": "array with actual < minContains < maxContains", - "data": [], - "valid": false - }, - { - "description": "array with minContains < actual < maxContains", - "data": [1, 1], - "valid": true - }, - { - "description": "array with minContains < maxContains < actual", - "data": [1, 1, 1, 1], - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/maxItems.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/maxItems.json deleted file mode 100644 index b215850fb..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/maxItems.json +++ /dev/null @@ -1,50 +0,0 @@ -[ - { - "description": "maxItems validation", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "maxItems": 2 - }, - "tests": [ - { - "description": "shorter is valid", - "data": [1], - "valid": true - }, - { - "description": "exact length is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "too long is invalid", - "data": [1, 2, 3], - "valid": false - }, - { - "description": "ignores non-arrays", - "data": "foobar", - "valid": true - } - ] - }, - { - "description": "maxItems validation with a decimal", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "maxItems": 2.0 - }, - "tests": [ - { - "description": "shorter is valid", - "data": [1], - "valid": true - }, - { - "description": "too long is invalid", - "data": [1, 2, 3], - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/maxLength.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/maxLength.json deleted file mode 100644 index c88f604ef..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/maxLength.json +++ /dev/null @@ -1,55 +0,0 @@ -[ - { - "description": "maxLength validation", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "maxLength": 2 - }, - "tests": [ - { - "description": "shorter is valid", - "data": "f", - "valid": true - }, - { - "description": "exact length is valid", - "data": "fo", - "valid": true - }, - { - "description": "too long is invalid", - "data": "foo", - "valid": false - }, - { - "description": "ignores non-strings", - "data": 100, - "valid": true - }, - { - "description": "two graphemes is long enough", - "data": "\uD83D\uDCA9\uD83D\uDCA9", - "valid": true - } - ] - }, - { - "description": "maxLength validation with a decimal", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "maxLength": 2.0 - }, - "tests": [ - { - "description": "shorter is valid", - "data": "f", - "valid": true - }, - { - "description": "too long is invalid", - "data": "foo", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/maxProperties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/maxProperties.json deleted file mode 100644 index 5eec9dadb..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/maxProperties.json +++ /dev/null @@ -1,79 +0,0 @@ -[ - { - "description": "maxProperties validation", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "maxProperties": 2 - }, - "tests": [ - { - "description": "shorter is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "exact length is valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "too long is invalid", - "data": {"foo": 1, "bar": 2, "baz": 3}, - "valid": false - }, - { - "description": "ignores arrays", - "data": [1, 2, 3], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobar", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "maxProperties validation with a decimal", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "maxProperties": 2.0 - }, - "tests": [ - { - "description": "shorter is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "too long is invalid", - "data": {"foo": 1, "bar": 2, "baz": 3}, - "valid": false - } - ] - }, - { - "description": "maxProperties = 0 means the object is empty", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "maxProperties": 0 - }, - "tests": [ - { - "description": "no properties is valid", - "data": {}, - "valid": true - }, - { - "description": "one property is invalid", - "data": { "foo": 1 }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/maximum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/maximum.json deleted file mode 100644 index 656ce8176..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/maximum.json +++ /dev/null @@ -1,60 +0,0 @@ -[ - { - "description": "maximum validation", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "maximum": 3.0 - }, - "tests": [ - { - "description": "below the maximum is valid", - "data": 2.6, - "valid": true - }, - { - "description": "boundary point is valid", - "data": 3.0, - "valid": true - }, - { - "description": "above the maximum is invalid", - "data": 3.5, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - }, - { - "description": "maximum validation with unsigned integer", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "maximum": 300 - }, - "tests": [ - { - "description": "below the maximum is invalid", - "data": 299.97, - "valid": true - }, - { - "description": "boundary point integer is valid", - "data": 300, - "valid": true - }, - { - "description": "boundary point float is valid", - "data": 300.00, - "valid": true - }, - { - "description": "above the maximum is invalid", - "data": 300.5, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/minContains.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/minContains.json deleted file mode 100644 index a6ad212d5..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/minContains.json +++ /dev/null @@ -1,224 +0,0 @@ -[ - { - "description": "minContains without contains is ignored", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "minContains": 1 - }, - "tests": [ - { - "description": "one item valid against lone minContains", - "data": [1], - "valid": true - }, - { - "description": "zero items still valid against lone minContains", - "data": [], - "valid": true - } - ] - }, - { - "description": "minContains=1 with contains", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "contains": { "const": 1 }, - "minContains": 1 - }, - "tests": [ - { - "description": "empty data", - "data": [], - "valid": false - }, - { - "description": "no elements match", - "data": [2], - "valid": false - }, - { - "description": "single element matches, valid minContains", - "data": [1], - "valid": true - }, - { - "description": "some elements match, valid minContains", - "data": [1, 2], - "valid": true - }, - { - "description": "all elements match, valid minContains", - "data": [1, 1], - "valid": true - } - ] - }, - { - "description": "minContains=2 with contains", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "contains": { "const": 1 }, - "minContains": 2 - }, - "tests": [ - { - "description": "empty data", - "data": [], - "valid": false - }, - { - "description": "all elements match, invalid minContains", - "data": [1], - "valid": false - }, - { - "description": "some elements match, invalid minContains", - "data": [1, 2], - "valid": false - }, - { - "description": "all elements match, valid minContains (exactly as needed)", - "data": [1, 1], - "valid": true - }, - { - "description": "all elements match, valid minContains (more than needed)", - "data": [1, 1, 1], - "valid": true - }, - { - "description": "some elements match, valid minContains", - "data": [1, 2, 1], - "valid": true - } - ] - }, - { - "description": "minContains=2 with contains with a decimal value", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "contains": {"const": 1}, - "minContains": 2.0 - }, - "tests": [ - { - "description": "one element matches, invalid minContains", - "data": [ 1 ], - "valid": false - }, - { - "description": "both elements match, valid minContains", - "data": [ 1, 1 ], - "valid": true - } - ] - }, - { - "description": "maxContains = minContains", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "contains": { "const": 1 }, - "maxContains": 2, - "minContains": 2 - }, - "tests": [ - { - "description": "empty data", - "data": [], - "valid": false - }, - { - "description": "all elements match, invalid minContains", - "data": [1], - "valid": false - }, - { - "description": "all elements match, invalid maxContains", - "data": [1, 1, 1], - "valid": false - }, - { - "description": "all elements match, valid maxContains and minContains", - "data": [1, 1], - "valid": true - } - ] - }, - { - "description": "maxContains < minContains", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "contains": { "const": 1 }, - "maxContains": 1, - "minContains": 3 - }, - "tests": [ - { - "description": "empty data", - "data": [], - "valid": false - }, - { - "description": "invalid minContains", - "data": [1], - "valid": false - }, - { - "description": "invalid maxContains", - "data": [1, 1, 1], - "valid": false - }, - { - "description": "invalid maxContains and minContains", - "data": [1, 1], - "valid": false - } - ] - }, - { - "description": "minContains = 0", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "contains": { "const": 1 }, - "minContains": 0 - }, - "tests": [ - { - "description": "empty data", - "data": [], - "valid": true - }, - { - "description": "minContains = 0 makes contains always pass", - "data": [2], - "valid": true - } - ] - }, - { - "description": "minContains = 0 with maxContains", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "contains": {"const": 1}, - "minContains": 0, - "maxContains": 1 - }, - "tests": [ - { - "description": "empty data", - "data": [ ], - "valid": true - }, - { - "description": "not more than maxContains", - "data": [ 1 ], - "valid": true - }, - { - "description": "too many", - "data": [ 1, 1 ], - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/minItems.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/minItems.json deleted file mode 100644 index b0e1c7211..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/minItems.json +++ /dev/null @@ -1,50 +0,0 @@ -[ - { - "description": "minItems validation", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "minItems": 1 - }, - "tests": [ - { - "description": "longer is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "exact length is valid", - "data": [1], - "valid": true - }, - { - "description": "too short is invalid", - "data": [], - "valid": false - }, - { - "description": "ignores non-arrays", - "data": "", - "valid": true - } - ] - }, - { - "description": "minItems validation with a decimal", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "minItems": 1.0 - }, - "tests": [ - { - "description": "longer is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "too short is invalid", - "data": [], - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/minLength.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/minLength.json deleted file mode 100644 index 52c9c9a14..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/minLength.json +++ /dev/null @@ -1,55 +0,0 @@ -[ - { - "description": "minLength validation", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "minLength": 2 - }, - "tests": [ - { - "description": "longer is valid", - "data": "foo", - "valid": true - }, - { - "description": "exact length is valid", - "data": "fo", - "valid": true - }, - { - "description": "too short is invalid", - "data": "f", - "valid": false - }, - { - "description": "ignores non-strings", - "data": 1, - "valid": true - }, - { - "description": "one grapheme is not long enough", - "data": "\uD83D\uDCA9", - "valid": false - } - ] - }, - { - "description": "minLength validation with a decimal", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "minLength": 2.0 - }, - "tests": [ - { - "description": "longer is valid", - "data": "foo", - "valid": true - }, - { - "description": "too short is invalid", - "data": "f", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/minProperties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/minProperties.json deleted file mode 100644 index 434c0f1f7..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/minProperties.json +++ /dev/null @@ -1,60 +0,0 @@ -[ - { - "description": "minProperties validation", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "minProperties": 1 - }, - "tests": [ - { - "description": "longer is valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "exact length is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "too short is invalid", - "data": {}, - "valid": false - }, - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores strings", - "data": "", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "minProperties validation with a decimal", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "minProperties": 1.0 - }, - "tests": [ - { - "description": "longer is valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "too short is invalid", - "data": {}, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/minimum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/minimum.json deleted file mode 100644 index 2c6f71f6b..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/minimum.json +++ /dev/null @@ -1,75 +0,0 @@ -[ - { - "description": "minimum validation", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "minimum": 1.1 - }, - "tests": [ - { - "description": "above the minimum is valid", - "data": 2.6, - "valid": true - }, - { - "description": "boundary point is valid", - "data": 1.1, - "valid": true - }, - { - "description": "below the minimum is invalid", - "data": 0.6, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - }, - { - "description": "minimum validation with signed integer", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "minimum": -2 - }, - "tests": [ - { - "description": "negative above the minimum is valid", - "data": -1, - "valid": true - }, - { - "description": "positive above the minimum is valid", - "data": 0, - "valid": true - }, - { - "description": "boundary point is valid", - "data": -2, - "valid": true - }, - { - "description": "boundary point with float is valid", - "data": -2.0, - "valid": true - }, - { - "description": "float below the minimum is invalid", - "data": -2.0001, - "valid": false - }, - { - "description": "int below the minimum is invalid", - "data": -3, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/multipleOf.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/multipleOf.json deleted file mode 100644 index f15345453..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/multipleOf.json +++ /dev/null @@ -1,98 +0,0 @@ -[ - { - "description": "by int", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "multipleOf": 2 - }, - "tests": [ - { - "description": "int by int", - "data": 10, - "valid": true - }, - { - "description": "int by int fail", - "data": 7, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "by number", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "multipleOf": 1.5 - }, - "tests": [ - { - "description": "zero is multiple of anything", - "data": 0, - "valid": true - }, - { - "description": "4.5 is multiple of 1.5", - "data": 4.5, - "valid": true - }, - { - "description": "35 is not multiple of 1.5", - "data": 35, - "valid": false - } - ] - }, - { - "description": "by small number", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "multipleOf": 0.0001 - }, - "tests": [ - { - "description": "0.0075 is multiple of 0.0001", - "data": 0.0075, - "valid": true - }, - { - "description": "0.00751 is not multiple of 0.0001", - "data": 0.00751, - "valid": false - } - ] - }, - { - "description": "float division = inf", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "integer", - "multipleOf": 0.123456789 - }, - "tests": [ - { - "description": "always invalid, but naive implementations may raise an overflow error", - "data": 1e308, - "valid": false - } - ] - }, - { - "description": "small multiple of large integer", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "integer", "multipleOf": 1e-8 - }, - "tests": [ - { - "description": "any integer is a multiple of 1e-8", - "data": 12391239123, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/not.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/not.json deleted file mode 100644 index b2251043c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/not.json +++ /dev/null @@ -1,153 +0,0 @@ -[ - { - "description": "not", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "not": {"type": "integer"} - }, - "tests": [ - { - "description": "allowed", - "data": "foo", - "valid": true - }, - { - "description": "disallowed", - "data": 1, - "valid": false - } - ] - }, - { - "description": "not multiple types", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "not": {"type": ["integer", "boolean"]} - }, - "tests": [ - { - "description": "valid", - "data": "foo", - "valid": true - }, - { - "description": "mismatch", - "data": 1, - "valid": false - }, - { - "description": "other mismatch", - "data": true, - "valid": false - } - ] - }, - { - "description": "not more complex schema", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "not": { - "type": "object", - "properties": { - "foo": { - "type": "string" - } - } - } - }, - "tests": [ - { - "description": "match", - "data": 1, - "valid": true - }, - { - "description": "other match", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "mismatch", - "data": {"foo": "bar"}, - "valid": false - } - ] - }, - { - "description": "forbidden property", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "properties": { - "foo": { - "not": {} - } - } - }, - "tests": [ - { - "description": "property present", - "data": {"foo": 1, "bar": 2}, - "valid": false - }, - { - "description": "property absent", - "data": {"bar": 1, "baz": 2}, - "valid": true - } - ] - }, - { - "description": "not with boolean schema true", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "not": true - }, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "not with boolean schema false", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "not": false - }, - "tests": [ - { - "description": "any value is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "collect annotations inside a 'not', even if collection is disabled", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "not": { - "$comment": "this subschema must still produce annotations internally, even though the 'not' will ultimately discard them", - "anyOf": [ - true, - { "properties": { "foo": true } } - ], - "unevaluatedProperties": false - } - }, - "tests": [ - { - "description": "unevaluated property", - "data": { "bar": 1 }, - "valid": true - }, - { - "description": "annotations are still collected inside a 'not'", - "data": { "foo": 1 }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/oneOf.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/oneOf.json deleted file mode 100644 index 840d1579d..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/oneOf.json +++ /dev/null @@ -1,293 +0,0 @@ -[ - { - "description": "oneOf", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "oneOf": [ - { - "type": "integer" - }, - { - "minimum": 2 - } - ] - }, - "tests": [ - { - "description": "first oneOf valid", - "data": 1, - "valid": true - }, - { - "description": "second oneOf valid", - "data": 2.5, - "valid": true - }, - { - "description": "both oneOf valid", - "data": 3, - "valid": false - }, - { - "description": "neither oneOf valid", - "data": 1.5, - "valid": false - } - ] - }, - { - "description": "oneOf with base schema", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "string", - "oneOf" : [ - { - "minLength": 2 - }, - { - "maxLength": 4 - } - ] - }, - "tests": [ - { - "description": "mismatch base schema", - "data": 3, - "valid": false - }, - { - "description": "one oneOf valid", - "data": "foobar", - "valid": true - }, - { - "description": "both oneOf valid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "oneOf with boolean schemas, all true", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "oneOf": [true, true, true] - }, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "oneOf with boolean schemas, one true", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "oneOf": [true, false, false] - }, - "tests": [ - { - "description": "any value is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "oneOf with boolean schemas, more than one true", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "oneOf": [true, true, false] - }, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "oneOf with boolean schemas, all false", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "oneOf": [false, false, false] - }, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "oneOf complex types", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "oneOf": [ - { - "properties": { - "bar": {"type": "integer"} - }, - "required": ["bar"] - }, - { - "properties": { - "foo": {"type": "string"} - }, - "required": ["foo"] - } - ] - }, - "tests": [ - { - "description": "first oneOf valid (complex)", - "data": {"bar": 2}, - "valid": true - }, - { - "description": "second oneOf valid (complex)", - "data": {"foo": "baz"}, - "valid": true - }, - { - "description": "both oneOf valid (complex)", - "data": {"foo": "baz", "bar": 2}, - "valid": false - }, - { - "description": "neither oneOf valid (complex)", - "data": {"foo": 2, "bar": "quux"}, - "valid": false - } - ] - }, - { - "description": "oneOf with empty schema", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "oneOf": [ - { "type": "number" }, - {} - ] - }, - "tests": [ - { - "description": "one valid - valid", - "data": "foo", - "valid": true - }, - { - "description": "both valid - invalid", - "data": 123, - "valid": false - } - ] - }, - { - "description": "oneOf with required", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "oneOf": [ - { "required": ["foo", "bar"] }, - { "required": ["foo", "baz"] } - ] - }, - "tests": [ - { - "description": "both invalid - invalid", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "first valid - valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "second valid - valid", - "data": {"foo": 1, "baz": 3}, - "valid": true - }, - { - "description": "both valid - invalid", - "data": {"foo": 1, "bar": 2, "baz" : 3}, - "valid": false - } - ] - }, - { - "description": "oneOf with missing optional property", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "oneOf": [ - { - "properties": { - "bar": true, - "baz": true - }, - "required": ["bar"] - }, - { - "properties": { - "foo": true - }, - "required": ["foo"] - } - ] - }, - "tests": [ - { - "description": "first oneOf valid", - "data": {"bar": 8}, - "valid": true - }, - { - "description": "second oneOf valid", - "data": {"foo": "foo"}, - "valid": true - }, - { - "description": "both oneOf valid", - "data": {"foo": "foo", "bar": 8}, - "valid": false - }, - { - "description": "neither oneOf valid", - "data": {"baz": "quux"}, - "valid": false - } - ] - }, - { - "description": "nested oneOf, to check validation semantics", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "oneOf": [ - { - "oneOf": [ - { - "type": "null" - } - ] - } - ] - }, - "tests": [ - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "anything non-null is invalid", - "data": 123, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/anchor.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/anchor.json deleted file mode 100644 index 1de0b7a70..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/anchor.json +++ /dev/null @@ -1,60 +0,0 @@ -[ - { - "description": "$anchor inside an enum is not a real identifier", - "comment": "the implementation must not be confused by an $anchor buried in the enum", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$defs": { - "anchor_in_enum": { - "enum": [ - { - "$anchor": "my_anchor", - "type": "null" - } - ] - }, - "real_identifier_in_schema": { - "$anchor": "my_anchor", - "type": "string" - }, - "zzz_anchor_in_const": { - "const": { - "$anchor": "my_anchor", - "type": "null" - } - } - }, - "anyOf": [ - { "$ref": "#/$defs/anchor_in_enum" }, - { "$ref": "#my_anchor" } - ] - }, - "tests": [ - { - "description": "exact match to enum, and type matches", - "data": { - "$anchor": "my_anchor", - "type": "null" - }, - "valid": true - }, - { - "description": "in implementations that strip $anchor, this may match either $def", - "data": { - "type": "null" - }, - "valid": false - }, - { - "description": "match $ref to $anchor", - "data": "a string to match #/$defs/anchor_in_enum", - "valid": true - }, - { - "description": "no match on enum or $ref to $anchor", - "data": 1, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/bignum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/bignum.json deleted file mode 100644 index 9f4f7079b..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/bignum.json +++ /dev/null @@ -1,110 +0,0 @@ -[ - { - "description": "integer", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "integer" - }, - "tests": [ - { - "description": "a bignum is an integer", - "data": 12345678910111213141516171819202122232425262728293031, - "valid": true - }, - { - "description": "a negative bignum is an integer", - "data": -12345678910111213141516171819202122232425262728293031, - "valid": true - } - ] - }, - { - "description": "number", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "number" - }, - "tests": [ - { - "description": "a bignum is a number", - "data": 98249283749234923498293171823948729348710298301928331, - "valid": true - }, - { - "description": "a negative bignum is a number", - "data": -98249283749234923498293171823948729348710298301928331, - "valid": true - } - ] - }, - { - "description": "string", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "string" - }, - "tests": [ - { - "description": "a bignum is not a string", - "data": 98249283749234923498293171823948729348710298301928331, - "valid": false - } - ] - }, - { - "description": "maximum integer comparison", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "maximum": 18446744073709551615 - }, - "tests": [ - { - "description": "comparison works for high numbers", - "data": 18446744073709551600, - "valid": true - } - ] - }, - { - "description": "float comparison with high precision", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "exclusiveMaximum": 972783798187987123879878123.18878137 - }, - "tests": [ - { - "description": "comparison works for high numbers", - "data": 972783798187987123879878123.188781371, - "valid": false - } - ] - }, - { - "description": "minimum integer comparison", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "minimum": -18446744073709551615 - }, - "tests": [ - { - "description": "comparison works for very negative numbers", - "data": -18446744073709551600, - "valid": true - } - ] - }, - { - "description": "float comparison with high precision on negative numbers", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "exclusiveMinimum": -972783798187987123879878123.18878137 - }, - "tests": [ - { - "description": "comparison works for very negative numbers", - "data": -972783798187987123879878123.188781371, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/dependencies-compatibility.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/dependencies-compatibility.json deleted file mode 100644 index 1fe384cad..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/dependencies-compatibility.json +++ /dev/null @@ -1,282 +0,0 @@ -[ - { - "description": "single dependency", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "dependencies": {"bar": ["foo"]} - }, - "tests": [ - { - "description": "neither", - "data": {}, - "valid": true - }, - { - "description": "nondependant", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "with dependency", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "missing dependency", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "ignores arrays", - "data": ["bar"], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobar", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "empty dependents", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "dependencies": {"bar": []} - }, - "tests": [ - { - "description": "empty object", - "data": {}, - "valid": true - }, - { - "description": "object with one property", - "data": {"bar": 2}, - "valid": true - }, - { - "description": "non-object is valid", - "data": 1, - "valid": true - } - ] - }, - { - "description": "multiple dependents required", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "dependencies": {"quux": ["foo", "bar"]} - }, - "tests": [ - { - "description": "neither", - "data": {}, - "valid": true - }, - { - "description": "nondependants", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "with dependencies", - "data": {"foo": 1, "bar": 2, "quux": 3}, - "valid": true - }, - { - "description": "missing dependency", - "data": {"foo": 1, "quux": 2}, - "valid": false - }, - { - "description": "missing other dependency", - "data": {"bar": 1, "quux": 2}, - "valid": false - }, - { - "description": "missing both dependencies", - "data": {"quux": 1}, - "valid": false - } - ] - }, - { - "description": "dependencies with escaped characters", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "dependencies": { - "foo\nbar": ["foo\rbar"], - "foo\"bar": ["foo'bar"] - } - }, - "tests": [ - { - "description": "CRLF", - "data": { - "foo\nbar": 1, - "foo\rbar": 2 - }, - "valid": true - }, - { - "description": "quoted quotes", - "data": { - "foo'bar": 1, - "foo\"bar": 2 - }, - "valid": true - }, - { - "description": "CRLF missing dependent", - "data": { - "foo\nbar": 1, - "foo": 2 - }, - "valid": false - }, - { - "description": "quoted quotes missing dependent", - "data": { - "foo\"bar": 2 - }, - "valid": false - } - ] - }, - { - "description": "single schema dependency", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "dependencies": { - "bar": { - "properties": { - "foo": {"type": "integer"}, - "bar": {"type": "integer"} - } - } - } - }, - "tests": [ - { - "description": "valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "no dependency", - "data": {"foo": "quux"}, - "valid": true - }, - { - "description": "wrong type", - "data": {"foo": "quux", "bar": 2}, - "valid": false - }, - { - "description": "wrong type other", - "data": {"foo": 2, "bar": "quux"}, - "valid": false - }, - { - "description": "wrong type both", - "data": {"foo": "quux", "bar": "quux"}, - "valid": false - }, - { - "description": "ignores arrays", - "data": ["bar"], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobar", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "boolean subschemas", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "dependencies": { - "foo": true, - "bar": false - } - }, - "tests": [ - { - "description": "object with property having schema true is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "object with property having schema false is invalid", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "object with both properties is invalid", - "data": {"foo": 1, "bar": 2}, - "valid": false - }, - { - "description": "empty object is valid", - "data": {}, - "valid": true - } - ] - }, - { - "description": "schema dependencies with escaped characters", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "dependencies": { - "foo\tbar": {"minProperties": 4}, - "foo'bar": {"required": ["foo\"bar"]} - } - }, - "tests": [ - { - "description": "quoted tab", - "data": { - "foo\tbar": 1, - "a": 2, - "b": 3, - "c": 4 - }, - "valid": true - }, - { - "description": "quoted quote", - "data": { - "foo'bar": {"foo\"bar": 1} - }, - "valid": false - }, - { - "description": "quoted tab invalid under dependent schema", - "data": { - "foo\tbar": 1, - "a": 2 - }, - "valid": false - }, - { - "description": "quoted quote invalid under dependent schema", - "data": {"foo'bar": 1}, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/dynamicRef.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/dynamicRef.json deleted file mode 100644 index dcace154e..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/dynamicRef.json +++ /dev/null @@ -1,56 +0,0 @@ -[ - { - "description": "$dynamicRef skips over intermediate resources - pointer reference across resource boundary", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/optional/main", - "type": "object", - "properties": { - "bar-item": { - "$ref": "bar#/$defs/item" - } - }, - "$defs": { - "bar": { - "$id": "bar", - "type": "array", - "items": { - "$ref": "item" - }, - "$defs": { - "item": { - "$id": "item", - "type": "object", - "properties": { - "content": { - "$dynamicRef": "#content" - } - }, - "$defs": { - "defaultContent": { - "$dynamicAnchor": "content", - "type": "integer" - } - } - }, - "content": { - "$dynamicAnchor": "content", - "type": "string" - } - } - } - } - }, - "tests": [ - { - "description": "integer property passes", - "data": { "bar-item": { "content": 42 } }, - "valid": true - }, - { - "description": "string property fails", - "data": { "bar-item": { "content": "value" } }, - "valid": false - } - ] - }] \ No newline at end of file diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/ecmascript-regex.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/ecmascript-regex.json deleted file mode 100644 index 272114503..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/ecmascript-regex.json +++ /dev/null @@ -1,596 +0,0 @@ -[ - { - "description": "ECMA 262 regex $ does not match trailing newline", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "string", - "pattern": "^abc$" - }, - "tests": [ - { - "description": "matches in Python, but not in ECMA 262", - "data": "abc\\n", - "valid": false - }, - { - "description": "matches", - "data": "abc", - "valid": true - } - ] - }, - { - "description": "ECMA 262 regex converts \\t to horizontal tab", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "string", - "pattern": "^\\t$" - }, - "tests": [ - { - "description": "does not match", - "data": "\\t", - "valid": false - }, - { - "description": "matches", - "data": "\u0009", - "valid": true - } - ] - }, - { - "description": "ECMA 262 regex escapes control codes with \\c and upper letter", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "string", - "pattern": "^\\cC$" - }, - "tests": [ - { - "description": "does not match", - "data": "\\cC", - "valid": false - }, - { - "description": "matches", - "data": "\u0003", - "valid": true - } - ] - }, - { - "description": "ECMA 262 regex escapes control codes with \\c and lower letter", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "string", - "pattern": "^\\cc$" - }, - "tests": [ - { - "description": "does not match", - "data": "\\cc", - "valid": false - }, - { - "description": "matches", - "data": "\u0003", - "valid": true - } - ] - }, - { - "description": "ECMA 262 \\d matches ascii digits only", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "string", - "pattern": "^\\d$" - }, - "tests": [ - { - "description": "ASCII zero matches", - "data": "0", - "valid": true - }, - { - "description": "NKO DIGIT ZERO does not match (unlike e.g. Python)", - "data": "߀", - "valid": false - }, - { - "description": "NKO DIGIT ZERO (as \\u escape) does not match", - "data": "\u07c0", - "valid": false - } - ] - }, - { - "description": "ECMA 262 \\D matches everything but ascii digits", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "string", - "pattern": "^\\D$" - }, - "tests": [ - { - "description": "ASCII zero does not match", - "data": "0", - "valid": false - }, - { - "description": "NKO DIGIT ZERO matches (unlike e.g. Python)", - "data": "߀", - "valid": true - }, - { - "description": "NKO DIGIT ZERO (as \\u escape) matches", - "data": "\u07c0", - "valid": true - } - ] - }, - { - "description": "ECMA 262 \\w matches ascii letters only", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "string", - "pattern": "^\\w$" - }, - "tests": [ - { - "description": "ASCII 'a' matches", - "data": "a", - "valid": true - }, - { - "description": "latin-1 e-acute does not match (unlike e.g. Python)", - "data": "é", - "valid": false - } - ] - }, - { - "description": "ECMA 262 \\W matches everything but ascii letters", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "string", - "pattern": "^\\W$" - }, - "tests": [ - { - "description": "ASCII 'a' does not match", - "data": "a", - "valid": false - }, - { - "description": "latin-1 e-acute matches (unlike e.g. Python)", - "data": "é", - "valid": true - } - ] - }, - { - "description": "ECMA 262 \\s matches whitespace", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "string", - "pattern": "^\\s$" - }, - "tests": [ - { - "description": "ASCII space matches", - "data": " ", - "valid": true - }, - { - "description": "Character tabulation matches", - "data": "\t", - "valid": true - }, - { - "description": "Line tabulation matches", - "data": "\u000b", - "valid": true - }, - { - "description": "Form feed matches", - "data": "\u000c", - "valid": true - }, - { - "description": "latin-1 non-breaking-space matches", - "data": "\u00a0", - "valid": true - }, - { - "description": "zero-width whitespace matches", - "data": "\ufeff", - "valid": true - }, - { - "description": "line feed matches (line terminator)", - "data": "\u000a", - "valid": true - }, - { - "description": "paragraph separator matches (line terminator)", - "data": "\u2029", - "valid": true - }, - { - "description": "EM SPACE matches (Space_Separator)", - "data": "\u2003", - "valid": true - }, - { - "description": "Non-whitespace control does not match", - "data": "\u0001", - "valid": false - }, - { - "description": "Non-whitespace does not match", - "data": "\u2013", - "valid": false - } - ] - }, - { - "description": "ECMA 262 \\S matches everything but whitespace", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "string", - "pattern": "^\\S$" - }, - "tests": [ - { - "description": "ASCII space does not match", - "data": " ", - "valid": false - }, - { - "description": "Character tabulation does not match", - "data": "\t", - "valid": false - }, - { - "description": "Line tabulation does not match", - "data": "\u000b", - "valid": false - }, - { - "description": "Form feed does not match", - "data": "\u000c", - "valid": false - }, - { - "description": "latin-1 non-breaking-space does not match", - "data": "\u00a0", - "valid": false - }, - { - "description": "zero-width whitespace does not match", - "data": "\ufeff", - "valid": false - }, - { - "description": "line feed does not match (line terminator)", - "data": "\u000a", - "valid": false - }, - { - "description": "paragraph separator does not match (line terminator)", - "data": "\u2029", - "valid": false - }, - { - "description": "EM SPACE does not match (Space_Separator)", - "data": "\u2003", - "valid": false - }, - { - "description": "Non-whitespace control matches", - "data": "\u0001", - "valid": true - }, - { - "description": "Non-whitespace matches", - "data": "\u2013", - "valid": true - } - ] - }, - { - "description": "patterns always use unicode semantics with pattern", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "pattern": "\\p{Letter}cole" - }, - "tests": [ - { - "description": "ascii character in json string", - "data": "Les hivers de mon enfance etaient des saisons longues, longues. Nous vivions en trois lieux: l'ecole, l'eglise et la patinoire; mais la vraie vie etait sur la patinoire.", - "valid": true - }, - { - "description": "literal unicode character in json string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": true - }, - { - "description": "unicode character in hex format in string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'\u00e9cole, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": true - }, - { - "description": "unicode matching is case-sensitive", - "data": "LES HIVERS DE MON ENFANCE ÉTAIENT DES SAISONS LONGUES, LONGUES. NOUS VIVIONS EN TROIS LIEUX: L'ÉCOLE, L'ÉGLISE ET LA PATINOIRE; MAIS LA VRAIE VIE ÉTAIT SUR LA PATINOIRE.", - "valid": false - } - ] - }, - { - "description": "\\w in patterns matches [A-Za-z0-9_], not unicode letters", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "pattern": "\\wcole" - }, - "tests": [ - { - "description": "ascii character in json string", - "data": "Les hivers de mon enfance etaient des saisons longues, longues. Nous vivions en trois lieux: l'ecole, l'eglise et la patinoire; mais la vraie vie etait sur la patinoire.", - "valid": true - }, - { - "description": "literal unicode character in json string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": false - }, - { - "description": "unicode character in hex format in string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'\u00e9cole, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": false - }, - { - "description": "unicode matching is case-sensitive", - "data": "LES HIVERS DE MON ENFANCE ÉTAIENT DES SAISONS LONGUES, LONGUES. NOUS VIVIONS EN TROIS LIEUX: L'ÉCOLE, L'ÉGLISE ET LA PATINOIRE; MAIS LA VRAIE VIE ÉTAIT SUR LA PATINOIRE.", - "valid": false - } - ] - }, - { - "description": "pattern with ASCII ranges", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "pattern": "[a-z]cole" - }, - "tests": [ - { - "description": "literal unicode character in json string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": false - }, - { - "description": "unicode character in hex format in string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'\u00e9cole, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": false - }, - { - "description": "ascii characters match", - "data": "Les hivers de mon enfance etaient des saisons longues, longues. Nous vivions en trois lieux: l'ecole, l'eglise et la patinoire; mais la vraie vie etait sur la patinoire.", - "valid": true - } - ] - }, - { - "description": "\\d in pattern matches [0-9], not unicode digits", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "pattern": "^\\d+$" - }, - "tests": [ - { - "description": "ascii digits", - "data": "42", - "valid": true - }, - { - "description": "ascii non-digits", - "data": "-%#", - "valid": false - }, - { - "description": "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)", - "data": "৪২", - "valid": false - } - ] - }, - { - "description": "\\a is not an ECMA 262 control escape", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$ref": "https://json-schema.org/draft/next/schema" - }, - "tests": [ - { - "description": "when used as a pattern", - "data": { "pattern": "\\a" }, - "valid": false - } - ] - }, - { - "description": "pattern with non-ASCII digits", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "pattern": "^\\p{digit}+$" - }, - "tests": [ - { - "description": "ascii digits", - "data": "42", - "valid": true - }, - { - "description": "ascii non-digits", - "data": "-%#", - "valid": false - }, - { - "description": "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)", - "data": "৪২", - "valid": true - } - ] - }, - { - "description": "patterns always use unicode semantics with patternProperties", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "patternProperties": { - "\\p{Letter}cole": true - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "ascii character in json string", - "data": { "l'ecole": "pas de vraie vie" }, - "valid": true - }, - { - "description": "literal unicode character in json string", - "data": { "l'école": "pas de vraie vie" }, - "valid": true - }, - { - "description": "unicode character in hex format in string", - "data": { "l'\u00e9cole": "pas de vraie vie" }, - "valid": true - }, - { - "description": "unicode matching is case-sensitive", - "data": { "L'ÉCOLE": "PAS DE VRAIE VIE" }, - "valid": false - } - ] - }, - { - "description": "\\w in patternProperties matches [A-Za-z0-9_], not unicode letters", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "patternProperties": { - "\\wcole": true - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "ascii character in json string", - "data": { "l'ecole": "pas de vraie vie" }, - "valid": true - }, - { - "description": "literal unicode character in json string", - "data": { "l'école": "pas de vraie vie" }, - "valid": false - }, - { - "description": "unicode character in hex format in string", - "data": { "l'\u00e9cole": "pas de vraie vie" }, - "valid": false - }, - { - "description": "unicode matching is case-sensitive", - "data": { "L'ÉCOLE": "PAS DE VRAIE VIE" }, - "valid": false - } - ] - }, - { - "description": "patternProperties with ASCII ranges", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "patternProperties": { - "[a-z]cole": true - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "literal unicode character in json string", - "data": { "l'école": "pas de vraie vie" }, - "valid": false - }, - { - "description": "unicode character in hex format in string", - "data": { "l'\u00e9cole": "pas de vraie vie" }, - "valid": false - }, - { - "description": "ascii characters match", - "data": { "l'ecole": "pas de vraie vie" }, - "valid": true - } - ] - }, - { - "description": "\\d in patternProperties matches [0-9], not unicode digits", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "patternProperties": { - "^\\d+$": true - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "ascii digits", - "data": { "42": "life, the universe, and everything" }, - "valid": true - }, - { - "description": "ascii non-digits", - "data": { "-%#": "spending the year dead for tax reasons" }, - "valid": false - }, - { - "description": "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)", - "data": { "৪২": "khajit has wares if you have coin" }, - "valid": false - } - ] - }, - { - "description": "patternProperties with non-ASCII digits", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "patternProperties": { - "^\\p{digit}+$": true - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "ascii digits", - "data": { "42": "life, the universe, and everything" }, - "valid": true - }, - { - "description": "ascii non-digits", - "data": { "-%#": "spending the year dead for tax reasons" }, - "valid": false - }, - { - "description": "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)", - "data": { "৪২": "khajit has wares if you have coin" }, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/float-overflow.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/float-overflow.json deleted file mode 100644 index a4fcca679..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/float-overflow.json +++ /dev/null @@ -1,17 +0,0 @@ -[ - { - "description": "all integers are multiples of 0.5, if overflow is handled", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "integer", - "multipleOf": 0.5 - }, - "tests": [ - { - "description": "valid if optional overflow handling is implemented", - "data": 1e308, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format-assertion.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format-assertion.json deleted file mode 100644 index ede922a24..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format-assertion.json +++ /dev/null @@ -1,42 +0,0 @@ -[ - { - "description": "schema that uses custom metaschema with format-assertion: false", - "schema": { - "$id": "https://schema/using/format-assertion/false", - "$schema": "http://localhost:1234/draft-next/format-assertion-false.json", - "format": "ipv4" - }, - "tests": [ - { - "description": "format-assertion: false: valid string", - "data": "127.0.0.1", - "valid": true - }, - { - "description": "format-assertion: false: invalid string", - "data": "not-an-ipv4", - "valid": false - } - ] - }, - { - "description": "schema that uses custom metaschema with format-assertion: true", - "schema": { - "$id": "https://schema/using/format-assertion/true", - "$schema": "http://localhost:1234/draft-next/format-assertion-true.json", - "format": "ipv4" - }, - "tests": [ - { - "description": "format-assertion: true: valid string", - "data": "127.0.0.1", - "valid": true - }, - { - "description": "format-assertion: true: invalid string", - "data": "not-an-ipv4", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/date-time.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/date-time.json deleted file mode 100644 index e25845b02..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/date-time.json +++ /dev/null @@ -1,136 +0,0 @@ -[ - { - "description": "validation of date-time strings", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "date-time" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid date-time string", - "data": "1963-06-19T08:30:06.283185Z", - "valid": true - }, - { - "description": "a valid date-time string without second fraction", - "data": "1963-06-19T08:30:06Z", - "valid": true - }, - { - "description": "a valid date-time string with plus offset", - "data": "1937-01-01T12:00:27.87+00:20", - "valid": true - }, - { - "description": "a valid date-time string with minus offset", - "data": "1990-12-31T15:59:50.123-08:00", - "valid": true - }, - { - "description": "a valid date-time with a leap second, UTC", - "data": "1998-12-31T23:59:60Z", - "valid": true - }, - { - "description": "a valid date-time with a leap second, with minus offset", - "data": "1998-12-31T15:59:60.123-08:00", - "valid": true - }, - { - "description": "an invalid date-time past leap second, UTC", - "data": "1998-12-31T23:59:61Z", - "valid": false - }, - { - "description": "an invalid date-time with leap second on a wrong minute, UTC", - "data": "1998-12-31T23:58:60Z", - "valid": false - }, - { - "description": "an invalid date-time with leap second on a wrong hour, UTC", - "data": "1998-12-31T22:59:60Z", - "valid": false - }, - { - "description": "an invalid day in date-time string", - "data": "1990-02-31T15:59:59.123-08:00", - "valid": false - }, - { - "description": "an invalid offset in date-time string", - "data": "1990-12-31T15:59:59-24:00", - "valid": false - }, - { - "description": "an invalid closing Z after time-zone offset", - "data": "1963-06-19T08:30:06.28123+01:00Z", - "valid": false - }, - { - "description": "an invalid date-time string", - "data": "06/19/1963 08:30:06 PST", - "valid": false - }, - { - "description": "case-insensitive T and Z", - "data": "1963-06-19t08:30:06.283185z", - "valid": true - }, - { - "description": "only RFC3339 not all of ISO 8601 are valid", - "data": "2013-350T01:01:01", - "valid": false - }, - { - "description": "invalid non-padded month dates", - "data": "1963-6-19T08:30:06.283185Z", - "valid": false - }, - { - "description": "invalid non-padded day dates", - "data": "1963-06-1T08:30:06.283185Z", - "valid": false - }, - { - "description": "invalid non-ASCII '৪' (a Bengali 4) in date portion", - "data": "1963-06-1৪T00:00:00Z", - "valid": false - }, - { - "description": "invalid non-ASCII '৪' (a Bengali 4) in time portion", - "data": "1963-06-11T0৪:00:00Z", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/date.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/date.json deleted file mode 100644 index aa55555cb..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/date.json +++ /dev/null @@ -1,246 +0,0 @@ -[ - { - "description": "validation of date strings", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "date" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid date string", - "data": "1963-06-19", - "valid": true - }, - { - "description": "a valid date string with 31 days in January", - "data": "2020-01-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in January", - "data": "2020-01-32", - "valid": false - }, - { - "description": "a valid date string with 28 days in February (normal)", - "data": "2021-02-28", - "valid": true - }, - { - "description": "a invalid date string with 29 days in February (normal)", - "data": "2021-02-29", - "valid": false - }, - { - "description": "a valid date string with 29 days in February (leap)", - "data": "2020-02-29", - "valid": true - }, - { - "description": "a invalid date string with 30 days in February (leap)", - "data": "2020-02-30", - "valid": false - }, - { - "description": "a valid date string with 31 days in March", - "data": "2020-03-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in March", - "data": "2020-03-32", - "valid": false - }, - { - "description": "a valid date string with 30 days in April", - "data": "2020-04-30", - "valid": true - }, - { - "description": "a invalid date string with 31 days in April", - "data": "2020-04-31", - "valid": false - }, - { - "description": "a valid date string with 31 days in May", - "data": "2020-05-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in May", - "data": "2020-05-32", - "valid": false - }, - { - "description": "a valid date string with 30 days in June", - "data": "2020-06-30", - "valid": true - }, - { - "description": "a invalid date string with 31 days in June", - "data": "2020-06-31", - "valid": false - }, - { - "description": "a valid date string with 31 days in July", - "data": "2020-07-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in July", - "data": "2020-07-32", - "valid": false - }, - { - "description": "a valid date string with 31 days in August", - "data": "2020-08-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in August", - "data": "2020-08-32", - "valid": false - }, - { - "description": "a valid date string with 30 days in September", - "data": "2020-09-30", - "valid": true - }, - { - "description": "a invalid date string with 31 days in September", - "data": "2020-09-31", - "valid": false - }, - { - "description": "a valid date string with 31 days in October", - "data": "2020-10-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in October", - "data": "2020-10-32", - "valid": false - }, - { - "description": "a valid date string with 30 days in November", - "data": "2020-11-30", - "valid": true - }, - { - "description": "a invalid date string with 31 days in November", - "data": "2020-11-31", - "valid": false - }, - { - "description": "a valid date string with 31 days in December", - "data": "2020-12-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in December", - "data": "2020-12-32", - "valid": false - }, - { - "description": "a invalid date string with invalid month", - "data": "2020-13-01", - "valid": false - }, - { - "description": "an invalid date string", - "data": "06/19/1963", - "valid": false - }, - { - "description": "only RFC3339 not all of ISO 8601 are valid", - "data": "2013-350", - "valid": false - }, - { - "description": "non-padded month dates are not valid", - "data": "1998-1-20", - "valid": false - }, - { - "description": "non-padded day dates are not valid", - "data": "1998-01-1", - "valid": false - }, - { - "description": "invalid month", - "data": "1998-13-01", - "valid": false - }, - { - "description": "invalid month-day combination", - "data": "1998-04-31", - "valid": false - }, - { - "description": "2021 is not a leap year", - "data": "2021-02-29", - "valid": false - }, - { - "description": "2020 is a leap year", - "data": "2020-02-29", - "valid": true - }, - { - "description": "invalid non-ASCII '৪' (a Bengali 4)", - "data": "1963-06-1৪", - "valid": false - }, - { - "description": "ISO8601 / non-RFC3339: YYYYMMDD without dashes (2023-03-28)", - "data": "20230328", - "valid": false - }, - { - "description": "ISO8601 / non-RFC3339: week number implicit day of week (2023-01-02)", - "data": "2023-W01", - "valid": false - }, - { - "description": "ISO8601 / non-RFC3339: week number with day of week (2023-03-28)", - "data": "2023-W13-2", - "valid": false - }, - { - "description": "ISO8601 / non-RFC3339: week number rollover to next year (2023-01-01)", - "data": "2022W527", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/duration.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/duration.json deleted file mode 100644 index d5adca206..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/duration.json +++ /dev/null @@ -1,136 +0,0 @@ -[ - { - "description": "validation of duration strings", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "duration" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid duration string", - "data": "P4DT12H30M5S", - "valid": true - }, - { - "description": "an invalid duration string", - "data": "PT1D", - "valid": false - }, - { - "description": "no elements present", - "data": "P", - "valid": false - }, - { - "description": "no time elements present", - "data": "P1YT", - "valid": false - }, - { - "description": "no date or time elements present", - "data": "PT", - "valid": false - }, - { - "description": "elements out of order", - "data": "P2D1Y", - "valid": false - }, - { - "description": "missing time separator", - "data": "P1D2H", - "valid": false - }, - { - "description": "time element in the date position", - "data": "P2S", - "valid": false - }, - { - "description": "four years duration", - "data": "P4Y", - "valid": true - }, - { - "description": "zero time, in seconds", - "data": "PT0S", - "valid": true - }, - { - "description": "zero time, in days", - "data": "P0D", - "valid": true - }, - { - "description": "one month duration", - "data": "P1M", - "valid": true - }, - { - "description": "one minute duration", - "data": "PT1M", - "valid": true - }, - { - "description": "one and a half days, in hours", - "data": "PT36H", - "valid": true - }, - { - "description": "one and a half days, in days and hours", - "data": "P1DT12H", - "valid": true - }, - { - "description": "two weeks", - "data": "P2W", - "valid": true - }, - { - "description": "weeks cannot be combined with other units", - "data": "P1Y2W", - "valid": false - }, - { - "description": "invalid non-ASCII '২' (a Bengali 2)", - "data": "P২Y", - "valid": false - }, - { - "description": "element without unit", - "data": "P1", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/email.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/email.json deleted file mode 100644 index 5948ebd18..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/email.json +++ /dev/null @@ -1,121 +0,0 @@ -[ - { - "description": "validation of e-mail addresses", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "email" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid e-mail address", - "data": "joe.bloggs@example.com", - "valid": true - }, - { - "description": "an invalid e-mail address", - "data": "2962", - "valid": false - }, - { - "description": "tilde in local part is valid", - "data": "te~st@example.com", - "valid": true - }, - { - "description": "tilde before local part is valid", - "data": "~test@example.com", - "valid": true - }, - { - "description": "tilde after local part is valid", - "data": "test~@example.com", - "valid": true - }, - { - "description": "a quoted string with a space in the local part is valid", - "data": "\"joe bloggs\"@example.com", - "valid": true - }, - { - "description": "a quoted string with a double dot in the local part is valid", - "data": "\"joe..bloggs\"@example.com", - "valid": true - }, - { - "description": "a quoted string with a @ in the local part is valid", - "data": "\"joe@bloggs\"@example.com", - "valid": true - }, - { - "description": "an IPv4-address-literal after the @ is valid", - "data": "joe.bloggs@[127.0.0.1]", - "valid": true - }, - { - "description": "an IPv6-address-literal after the @ is valid", - "data": "joe.bloggs@[IPv6:::1]", - "valid": true - }, - { - "description": "dot before local part is not valid", - "data": ".test@example.com", - "valid": false - }, - { - "description": "dot after local part is not valid", - "data": "test.@example.com", - "valid": false - }, - { - "description": "two separated dots inside local part are valid", - "data": "te.s.t@example.com", - "valid": true - }, - { - "description": "two subsequent dots inside local part are not valid", - "data": "te..st@example.com", - "valid": false - }, - { - "description": "an invalid domain", - "data": "joe.bloggs@invalid=domain.com", - "valid": false - }, - { - "description": "an invalid IPv4-address-literal", - "data": "joe.bloggs@[127.0.0.300]", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/hostname.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/hostname.json deleted file mode 100644 index bfb306363..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/hostname.json +++ /dev/null @@ -1,126 +0,0 @@ -[ - { - "description": "validation of host names", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "hostname" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid host name", - "data": "www.example.com", - "valid": true - }, - { - "description": "a valid punycoded IDN hostname", - "data": "xn--4gbwdl.xn--wgbh1c", - "valid": true - }, - { - "description": "a host name starting with an illegal character", - "data": "-a-host-name-that-starts-with--", - "valid": false - }, - { - "description": "a host name containing illegal characters", - "data": "not_a_valid_host_name", - "valid": false - }, - { - "description": "a host name with a component too long", - "data": "a-vvvvvvvvvvvvvvvveeeeeeeeeeeeeeeerrrrrrrrrrrrrrrryyyyyyyyyyyyyyyy-long-host-name-component", - "valid": false - }, - { - "description": "starts with hyphen", - "data": "-hostname", - "valid": false - }, - { - "description": "ends with hyphen", - "data": "hostname-", - "valid": false - }, - { - "description": "starts with underscore", - "data": "_hostname", - "valid": false - }, - { - "description": "ends with underscore", - "data": "hostname_", - "valid": false - }, - { - "description": "contains underscore", - "data": "host_name", - "valid": false - }, - { - "description": "maximum label length", - "data": "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijk.com", - "valid": true - }, - { - "description": "exceeds maximum label length", - "data": "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkl.com", - "valid": false - }, - { - "description": "single label", - "data": "hostname", - "valid": true - }, - { - "description": "single label with hyphen", - "data": "host-name", - "valid": true - }, - { - "description": "single label with digits", - "data": "h0stn4me", - "valid": true - }, - { - "description": "single label starting with digit", - "data": "1host", - "valid": true - }, - { - "description": "single label ending with digit", - "data": "hostnam3", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/idn-email.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/idn-email.json deleted file mode 100644 index 1f3536709..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/idn-email.json +++ /dev/null @@ -1,61 +0,0 @@ -[ - { - "description": "validation of an internationalized e-mail addresses", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "idn-email" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid idn e-mail (example@example.test in Hangul)", - "data": "실례@실례.테스트", - "valid": true - }, - { - "description": "an invalid idn e-mail address", - "data": "2962", - "valid": false - }, - { - "description": "a valid e-mail address", - "data": "joe.bloggs@example.com", - "valid": true - }, - { - "description": "an invalid e-mail address", - "data": "2962", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/idn-hostname.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/idn-hostname.json deleted file mode 100644 index 109bf73c9..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/idn-hostname.json +++ /dev/null @@ -1,332 +0,0 @@ -[ - { - "description": "validation of internationalized host names", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "idn-hostname" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid host name (example.test in Hangul)", - "data": "실례.테스트", - "valid": true - }, - { - "description": "illegal first char U+302E Hangul single dot tone mark", - "data": "〮실례.테스트", - "valid": false - }, - { - "description": "contains illegal char U+302E Hangul single dot tone mark", - "data": "실〮례.테스트", - "valid": false - }, - { - "description": "a host name with a component too long", - "data": "실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실례례테스트례례례례례례례례례례례례례례례례례테스트례례례례례례례례례례례례례례례례례례례테스트례례례례례례례례례례례례테스트례례실례.테스트", - "valid": false - }, - { - "description": "invalid label, correct Punycode", - "comment": "https://tools.ietf.org/html/rfc5890#section-2.3.2.1 https://tools.ietf.org/html/rfc5891#section-4.4 https://tools.ietf.org/html/rfc3492#section-7.1", - "data": "-> $1.00 <--", - "valid": false - }, - { - "description": "valid Chinese Punycode", - "comment": "https://tools.ietf.org/html/rfc5890#section-2.3.2.1 https://tools.ietf.org/html/rfc5891#section-4.4", - "data": "xn--ihqwcrb4cv8a8dqg056pqjye", - "valid": true - }, - { - "description": "invalid Punycode", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.4 https://tools.ietf.org/html/rfc5890#section-2.3.2.1", - "data": "xn--X", - "valid": false - }, - { - "description": "U-label contains \"--\" in the 3rd and 4th position", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.1 https://tools.ietf.org/html/rfc5890#section-2.3.2.1", - "data": "XN--aa---o47jg78q", - "valid": false - }, - { - "description": "U-label starts with a dash", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.1", - "data": "-hello", - "valid": false - }, - { - "description": "U-label ends with a dash", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.1", - "data": "hello-", - "valid": false - }, - { - "description": "U-label starts and ends with a dash", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.1", - "data": "-hello-", - "valid": false - }, - { - "description": "Begins with a Spacing Combining Mark", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.2", - "data": "\u0903hello", - "valid": false - }, - { - "description": "Begins with a Nonspacing Mark", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.2", - "data": "\u0300hello", - "valid": false - }, - { - "description": "Begins with an Enclosing Mark", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.2", - "data": "\u0488hello", - "valid": false - }, - { - "description": "Exceptions that are PVALID, left-to-right chars", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.2 https://tools.ietf.org/html/rfc5892#section-2.6", - "data": "\u00df\u03c2\u0f0b\u3007", - "valid": true - }, - { - "description": "Exceptions that are PVALID, right-to-left chars", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.2 https://tools.ietf.org/html/rfc5892#section-2.6", - "data": "\u06fd\u06fe", - "valid": true - }, - { - "description": "Exceptions that are DISALLOWED, right-to-left chars", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.2 https://tools.ietf.org/html/rfc5892#section-2.6", - "data": "\u0640\u07fa", - "valid": false - }, - { - "description": "Exceptions that are DISALLOWED, left-to-right chars", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.2 https://tools.ietf.org/html/rfc5892#section-2.6 Note: The two combining marks (U+302E and U+302F) are in the middle and not at the start", - "data": "\u3031\u3032\u3033\u3034\u3035\u302e\u302f\u303b", - "valid": false - }, - { - "description": "MIDDLE DOT with no preceding 'l'", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.3", - "data": "a\u00b7l", - "valid": false - }, - { - "description": "MIDDLE DOT with nothing preceding", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.3", - "data": "\u00b7l", - "valid": false - }, - { - "description": "MIDDLE DOT with no following 'l'", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.3", - "data": "l\u00b7a", - "valid": false - }, - { - "description": "MIDDLE DOT with nothing following", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.3", - "data": "l\u00b7", - "valid": false - }, - { - "description": "MIDDLE DOT with surrounding 'l's", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.3", - "data": "l\u00b7l", - "valid": true - }, - { - "description": "Greek KERAIA not followed by Greek", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.4", - "data": "\u03b1\u0375S", - "valid": false - }, - { - "description": "Greek KERAIA not followed by anything", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.4", - "data": "\u03b1\u0375", - "valid": false - }, - { - "description": "Greek KERAIA followed by Greek", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.4", - "data": "\u03b1\u0375\u03b2", - "valid": true - }, - { - "description": "Hebrew GERESH not preceded by Hebrew", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.5", - "data": "A\u05f3\u05d1", - "valid": false - }, - { - "description": "Hebrew GERESH not preceded by anything", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.5", - "data": "\u05f3\u05d1", - "valid": false - }, - { - "description": "Hebrew GERESH preceded by Hebrew", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.5", - "data": "\u05d0\u05f3\u05d1", - "valid": true - }, - { - "description": "Hebrew GERSHAYIM not preceded by Hebrew", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.6", - "data": "A\u05f4\u05d1", - "valid": false - }, - { - "description": "Hebrew GERSHAYIM not preceded by anything", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.6", - "data": "\u05f4\u05d1", - "valid": false - }, - { - "description": "Hebrew GERSHAYIM preceded by Hebrew", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.6", - "data": "\u05d0\u05f4\u05d1", - "valid": true - }, - { - "description": "KATAKANA MIDDLE DOT with no Hiragana, Katakana, or Han", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.7", - "data": "def\u30fbabc", - "valid": false - }, - { - "description": "KATAKANA MIDDLE DOT with no other characters", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.7", - "data": "\u30fb", - "valid": false - }, - { - "description": "KATAKANA MIDDLE DOT with Hiragana", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.7", - "data": "\u30fb\u3041", - "valid": true - }, - { - "description": "KATAKANA MIDDLE DOT with Katakana", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.7", - "data": "\u30fb\u30a1", - "valid": true - }, - { - "description": "KATAKANA MIDDLE DOT with Han", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.7", - "data": "\u30fb\u4e08", - "valid": true - }, - { - "description": "Arabic-Indic digits mixed with Extended Arabic-Indic digits", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.8", - "data": "\u0660\u06f0", - "valid": false - }, - { - "description": "Arabic-Indic digits not mixed with Extended Arabic-Indic digits", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.8", - "data": "\u0628\u0660\u0628", - "valid": true - }, - { - "description": "Extended Arabic-Indic digits not mixed with Arabic-Indic digits", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.9", - "data": "\u06f00", - "valid": true - }, - { - "description": "ZERO WIDTH JOINER not preceded by Virama", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.2 https://www.unicode.org/review/pr-37.pdf", - "data": "\u0915\u200d\u0937", - "valid": false - }, - { - "description": "ZERO WIDTH JOINER not preceded by anything", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.2 https://www.unicode.org/review/pr-37.pdf", - "data": "\u200d\u0937", - "valid": false - }, - { - "description": "ZERO WIDTH JOINER preceded by Virama", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.2 https://www.unicode.org/review/pr-37.pdf", - "data": "\u0915\u094d\u200d\u0937", - "valid": true - }, - { - "description": "ZERO WIDTH NON-JOINER preceded by Virama", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.1", - "data": "\u0915\u094d\u200c\u0937", - "valid": true - }, - { - "description": "ZERO WIDTH NON-JOINER not preceded by Virama but matches regexp", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.1 https://www.w3.org/TR/alreq/#h_disjoining_enforcement", - "data": "\u0628\u064a\u200c\u0628\u064a", - "valid": true - }, - { - "description": "single label", - "data": "hostname", - "valid": true - }, - { - "description": "single label with hyphen", - "data": "host-name", - "valid": true - }, - { - "description": "single label with digits", - "data": "h0stn4me", - "valid": true - }, - { - "description": "single label starting with digit", - "data": "1host", - "valid": true - }, - { - "description": "single label ending with digit", - "data": "hostnam3", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/ipv4.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/ipv4.json deleted file mode 100644 index 2a4bc2b2f..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/ipv4.json +++ /dev/null @@ -1,92 +0,0 @@ -[ - { - "description": "validation of IP addresses", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "ipv4" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid IP address", - "data": "192.168.0.1", - "valid": true - }, - { - "description": "an IP address with too many components", - "data": "127.0.0.0.1", - "valid": false - }, - { - "description": "an IP address with out-of-range values", - "data": "256.256.256.256", - "valid": false - }, - { - "description": "an IP address without 4 components", - "data": "127.0", - "valid": false - }, - { - "description": "an IP address as an integer", - "data": "0x7f000001", - "valid": false - }, - { - "description": "an IP address as an integer (decimal)", - "data": "2130706433", - "valid": false - }, - { - "description": "invalid leading zeroes, as they are treated as octals", - "comment": "see https://sick.codes/universal-netmask-npm-package-used-by-270000-projects-vulnerable-to-octal-input-data-server-side-request-forgery-remote-file-inclusion-local-file-inclusion-and-more-cve-2021-28918/", - "data": "087.10.0.1", - "valid": false - }, - { - "description": "value without leading zero is valid", - "data": "87.10.0.1", - "valid": true - }, - { - "description": "invalid non-ASCII '২' (a Bengali 2)", - "data": "1২7.0.0.1", - "valid": false - }, - { - "description": "netmask is not a part of ipv4 address", - "data": "192.168.1.0/24", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/ipv6.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/ipv6.json deleted file mode 100644 index 241df7f3c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/ipv6.json +++ /dev/null @@ -1,211 +0,0 @@ -[ - { - "description": "validation of IPv6 addresses", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "ipv6" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid IPv6 address", - "data": "::1", - "valid": true - }, - { - "description": "an IPv6 address with out-of-range values", - "data": "12345::", - "valid": false - }, - { - "description": "trailing 4 hex symbols is valid", - "data": "::abef", - "valid": true - }, - { - "description": "trailing 5 hex symbols is invalid", - "data": "::abcef", - "valid": false - }, - { - "description": "an IPv6 address with too many components", - "data": "1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1", - "valid": false - }, - { - "description": "an IPv6 address containing illegal characters", - "data": "::laptop", - "valid": false - }, - { - "description": "no digits is valid", - "data": "::", - "valid": true - }, - { - "description": "leading colons is valid", - "data": "::42:ff:1", - "valid": true - }, - { - "description": "trailing colons is valid", - "data": "d6::", - "valid": true - }, - { - "description": "missing leading octet is invalid", - "data": ":2:3:4:5:6:7:8", - "valid": false - }, - { - "description": "missing trailing octet is invalid", - "data": "1:2:3:4:5:6:7:", - "valid": false - }, - { - "description": "missing leading octet with omitted octets later", - "data": ":2:3:4::8", - "valid": false - }, - { - "description": "single set of double colons in the middle is valid", - "data": "1:d6::42", - "valid": true - }, - { - "description": "two sets of double colons is invalid", - "data": "1::d6::42", - "valid": false - }, - { - "description": "mixed format with the ipv4 section as decimal octets", - "data": "1::d6:192.168.0.1", - "valid": true - }, - { - "description": "mixed format with double colons between the sections", - "data": "1:2::192.168.0.1", - "valid": true - }, - { - "description": "mixed format with ipv4 section with octet out of range", - "data": "1::2:192.168.256.1", - "valid": false - }, - { - "description": "mixed format with ipv4 section with a hex octet", - "data": "1::2:192.168.ff.1", - "valid": false - }, - { - "description": "mixed format with leading double colons (ipv4-mapped ipv6 address)", - "data": "::ffff:192.168.0.1", - "valid": true - }, - { - "description": "triple colons is invalid", - "data": "1:2:3:4:5:::8", - "valid": false - }, - { - "description": "8 octets", - "data": "1:2:3:4:5:6:7:8", - "valid": true - }, - { - "description": "insufficient octets without double colons", - "data": "1:2:3:4:5:6:7", - "valid": false - }, - { - "description": "no colons is invalid", - "data": "1", - "valid": false - }, - { - "description": "ipv4 is not ipv6", - "data": "127.0.0.1", - "valid": false - }, - { - "description": "ipv4 segment must have 4 octets", - "data": "1:2:3:4:1.2.3", - "valid": false - }, - { - "description": "leading whitespace is invalid", - "data": " ::1", - "valid": false - }, - { - "description": "trailing whitespace is invalid", - "data": "::1 ", - "valid": false - }, - { - "description": "netmask is not a part of ipv6 address", - "data": "fe80::/64", - "valid": false - }, - { - "description": "zone id is not a part of ipv6 address", - "data": "fe80::a%eth1", - "valid": false - }, - { - "description": "a long valid ipv6", - "data": "1000:1000:1000:1000:1000:1000:255.255.255.255", - "valid": true - }, - { - "description": "a long invalid ipv6, below length limit, first", - "data": "100:100:100:100:100:100:255.255.255.255.255", - "valid": false - }, - { - "description": "a long invalid ipv6, below length limit, second", - "data": "100:100:100:100:100:100:100:255.255.255.255", - "valid": false - }, - { - "description": "invalid non-ASCII '৪' (a Bengali 4)", - "data": "1:2:3:4:5:6:7:৪", - "valid": false - }, - { - "description": "invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion", - "data": "1:2::192.16৪.0.1", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/iri-reference.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/iri-reference.json deleted file mode 100644 index 543b99e7e..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/iri-reference.json +++ /dev/null @@ -1,76 +0,0 @@ -[ - { - "description": "validation of IRI References", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "iri-reference" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid IRI", - "data": "http://ƒøø.ßår/?∂éœ=πîx#πîüx", - "valid": true - }, - { - "description": "a valid protocol-relative IRI Reference", - "data": "//ƒøø.ßår/?∂éœ=πîx#πîüx", - "valid": true - }, - { - "description": "a valid relative IRI Reference", - "data": "/âππ", - "valid": true - }, - { - "description": "an invalid IRI Reference", - "data": "\\\\WINDOWS\\filëßåré", - "valid": false - }, - { - "description": "a valid IRI Reference", - "data": "âππ", - "valid": true - }, - { - "description": "a valid IRI fragment", - "data": "#ƒrägmênt", - "valid": true - }, - { - "description": "an invalid IRI fragment", - "data": "#ƒräg\\mênt", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/iri.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/iri.json deleted file mode 100644 index 48e82a285..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/iri.json +++ /dev/null @@ -1,86 +0,0 @@ -[ - { - "description": "validation of IRIs", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "iri" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid IRI with anchor tag", - "data": "http://ƒøø.ßår/?∂éœ=πîx#πîüx", - "valid": true - }, - { - "description": "a valid IRI with anchor tag and parentheses", - "data": "http://ƒøø.com/blah_(wîkïpédiå)_blah#ßité-1", - "valid": true - }, - { - "description": "a valid IRI with URL-encoded stuff", - "data": "http://ƒøø.ßår/?q=Test%20URL-encoded%20stuff", - "valid": true - }, - { - "description": "a valid IRI with many special characters", - "data": "http://-.~_!$&'()*+,;=:%40:80%2f::::::@example.com", - "valid": true - }, - { - "description": "a valid IRI based on IPv6", - "data": "http://[2001:0db8:85a3:0000:0000:8a2e:0370:7334]", - "valid": true - }, - { - "description": "an invalid IRI based on IPv6", - "data": "http://2001:0db8:85a3:0000:0000:8a2e:0370:7334", - "valid": false - }, - { - "description": "an invalid relative IRI Reference", - "data": "/abc", - "valid": false - }, - { - "description": "an invalid IRI", - "data": "\\\\WINDOWS\\filëßåré", - "valid": false - }, - { - "description": "an invalid IRI though valid IRI reference", - "data": "âππ", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/json-pointer.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/json-pointer.json deleted file mode 100644 index f55342f14..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/json-pointer.json +++ /dev/null @@ -1,201 +0,0 @@ -[ - { - "description": "validation of JSON-pointers (JSON String Representation)", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "json-pointer" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid JSON-pointer", - "data": "/foo/bar~0/baz~1/%a", - "valid": true - }, - { - "description": "not a valid JSON-pointer (~ not escaped)", - "data": "/foo/bar~", - "valid": false - }, - { - "description": "valid JSON-pointer with empty segment", - "data": "/foo//bar", - "valid": true - }, - { - "description": "valid JSON-pointer with the last empty segment", - "data": "/foo/bar/", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #1", - "data": "", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #2", - "data": "/foo", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #3", - "data": "/foo/0", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #4", - "data": "/", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #5", - "data": "/a~1b", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #6", - "data": "/c%d", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #7", - "data": "/e^f", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #8", - "data": "/g|h", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #9", - "data": "/i\\j", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #10", - "data": "/k\"l", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #11", - "data": "/ ", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #12", - "data": "/m~0n", - "valid": true - }, - { - "description": "valid JSON-pointer used adding to the last array position", - "data": "/foo/-", - "valid": true - }, - { - "description": "valid JSON-pointer (- used as object member name)", - "data": "/foo/-/bar", - "valid": true - }, - { - "description": "valid JSON-pointer (multiple escaped characters)", - "data": "/~1~0~0~1~1", - "valid": true - }, - { - "description": "valid JSON-pointer (escaped with fraction part) #1", - "data": "/~1.1", - "valid": true - }, - { - "description": "valid JSON-pointer (escaped with fraction part) #2", - "data": "/~0.1", - "valid": true - }, - { - "description": "not a valid JSON-pointer (URI Fragment Identifier) #1", - "data": "#", - "valid": false - }, - { - "description": "not a valid JSON-pointer (URI Fragment Identifier) #2", - "data": "#/", - "valid": false - }, - { - "description": "not a valid JSON-pointer (URI Fragment Identifier) #3", - "data": "#a", - "valid": false - }, - { - "description": "not a valid JSON-pointer (some escaped, but not all) #1", - "data": "/~0~", - "valid": false - }, - { - "description": "not a valid JSON-pointer (some escaped, but not all) #2", - "data": "/~0/~", - "valid": false - }, - { - "description": "not a valid JSON-pointer (wrong escape character) #1", - "data": "/~2", - "valid": false - }, - { - "description": "not a valid JSON-pointer (wrong escape character) #2", - "data": "/~-1", - "valid": false - }, - { - "description": "not a valid JSON-pointer (multiple characters not escaped)", - "data": "/~~", - "valid": false - }, - { - "description": "not a valid JSON-pointer (isn't empty nor starts with /) #1", - "data": "a", - "valid": false - }, - { - "description": "not a valid JSON-pointer (isn't empty nor starts with /) #2", - "data": "0", - "valid": false - }, - { - "description": "not a valid JSON-pointer (isn't empty nor starts with /) #3", - "data": "a/a", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/regex.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/regex.json deleted file mode 100644 index 5987f5349..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/regex.json +++ /dev/null @@ -1,51 +0,0 @@ -[ - { - "description": "validation of regular expressions", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "regex" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid regular expression", - "data": "([abc])+\\s+$", - "valid": true - }, - { - "description": "a regular expression with unclosed parens is invalid", - "data": "^(abc]", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/relative-json-pointer.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/relative-json-pointer.json deleted file mode 100644 index 1e28fc29f..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/relative-json-pointer.json +++ /dev/null @@ -1,101 +0,0 @@ -[ - { - "description": "validation of Relative JSON Pointers (RJP)", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "relative-json-pointer" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid upwards RJP", - "data": "1", - "valid": true - }, - { - "description": "a valid downwards RJP", - "data": "0/foo/bar", - "valid": true - }, - { - "description": "a valid up and then down RJP, with array index", - "data": "2/0/baz/1/zip", - "valid": true - }, - { - "description": "a valid RJP taking the member or index name", - "data": "0#", - "valid": true - }, - { - "description": "an invalid RJP that is a valid JSON Pointer", - "data": "/foo/bar", - "valid": false - }, - { - "description": "negative prefix", - "data": "-1/foo/bar", - "valid": false - }, - { - "description": "explicit positive prefix", - "data": "+1/foo/bar", - "valid": false - }, - { - "description": "## is not a valid json-pointer", - "data": "0##", - "valid": false - }, - { - "description": "zero cannot be followed by other digits, plus json-pointer", - "data": "01/a", - "valid": false - }, - { - "description": "zero cannot be followed by other digits, plus octothorpe", - "data": "01#", - "valid": false - }, - { - "description": "empty string", - "data": "", - "valid": false - }, - { - "description": "multi-digit integer prefix", - "data": "120/foo/bar", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/time.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/time.json deleted file mode 100644 index 0a000a48c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/time.json +++ /dev/null @@ -1,236 +0,0 @@ -[ - { - "description": "validation of time strings", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "time" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid time string", - "data": "08:30:06Z", - "valid": true - }, - { - "description": "invalid time string with extra leading zeros", - "data": "008:030:006Z", - "valid": false - }, - { - "description": "invalid time string with no leading zero for single digit", - "data": "8:3:6Z", - "valid": false - }, - { - "description": "hour, minute, second must be two digits", - "data": "8:0030:6Z", - "valid": false - }, - { - "description": "a valid time string with leap second, Zulu", - "data": "23:59:60Z", - "valid": true - }, - { - "description": "invalid leap second, Zulu (wrong hour)", - "data": "22:59:60Z", - "valid": false - }, - { - "description": "invalid leap second, Zulu (wrong minute)", - "data": "23:58:60Z", - "valid": false - }, - { - "description": "valid leap second, zero time-offset", - "data": "23:59:60+00:00", - "valid": true - }, - { - "description": "invalid leap second, zero time-offset (wrong hour)", - "data": "22:59:60+00:00", - "valid": false - }, - { - "description": "invalid leap second, zero time-offset (wrong minute)", - "data": "23:58:60+00:00", - "valid": false - }, - { - "description": "valid leap second, positive time-offset", - "data": "01:29:60+01:30", - "valid": true - }, - { - "description": "valid leap second, large positive time-offset", - "data": "23:29:60+23:30", - "valid": true - }, - { - "description": "invalid leap second, positive time-offset (wrong hour)", - "data": "23:59:60+01:00", - "valid": false - }, - { - "description": "invalid leap second, positive time-offset (wrong minute)", - "data": "23:59:60+00:30", - "valid": false - }, - { - "description": "valid leap second, negative time-offset", - "data": "15:59:60-08:00", - "valid": true - }, - { - "description": "valid leap second, large negative time-offset", - "data": "00:29:60-23:30", - "valid": true - }, - { - "description": "invalid leap second, negative time-offset (wrong hour)", - "data": "23:59:60-01:00", - "valid": false - }, - { - "description": "invalid leap second, negative time-offset (wrong minute)", - "data": "23:59:60-00:30", - "valid": false - }, - { - "description": "a valid time string with second fraction", - "data": "23:20:50.52Z", - "valid": true - }, - { - "description": "a valid time string with precise second fraction", - "data": "08:30:06.283185Z", - "valid": true - }, - { - "description": "a valid time string with plus offset", - "data": "08:30:06+00:20", - "valid": true - }, - { - "description": "a valid time string with minus offset", - "data": "08:30:06-08:00", - "valid": true - }, - { - "description": "hour, minute in time-offset must be two digits", - "data": "08:30:06-8:000", - "valid": false - }, - { - "description": "a valid time string with case-insensitive Z", - "data": "08:30:06z", - "valid": true - }, - { - "description": "an invalid time string with invalid hour", - "data": "24:00:00Z", - "valid": false - }, - { - "description": "an invalid time string with invalid minute", - "data": "00:60:00Z", - "valid": false - }, - { - "description": "an invalid time string with invalid second", - "data": "00:00:61Z", - "valid": false - }, - { - "description": "an invalid time string with invalid leap second (wrong hour)", - "data": "22:59:60Z", - "valid": false - }, - { - "description": "an invalid time string with invalid leap second (wrong minute)", - "data": "23:58:60Z", - "valid": false - }, - { - "description": "an invalid time string with invalid time numoffset hour", - "data": "01:02:03+24:00", - "valid": false - }, - { - "description": "an invalid time string with invalid time numoffset minute", - "data": "01:02:03+00:60", - "valid": false - }, - { - "description": "an invalid time string with invalid time with both Z and numoffset", - "data": "01:02:03Z+00:30", - "valid": false - }, - { - "description": "an invalid offset indicator", - "data": "08:30:06 PST", - "valid": false - }, - { - "description": "only RFC3339 not all of ISO 8601 are valid", - "data": "01:01:01,1111", - "valid": false - }, - { - "description": "no time offset", - "data": "12:00:00", - "valid": false - }, - { - "description": "no time offset with second fraction", - "data": "12:00:00.52", - "valid": false - }, - { - "description": "invalid non-ASCII '২' (a Bengali 2)", - "data": "1২:00:00Z", - "valid": false - }, - { - "description": "offset not starting with plus or minus", - "data": "08:30:06#00:20", - "valid": false - }, - { - "description": "contains letters", - "data": "ab:cd:ef", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/uri-reference.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/uri-reference.json deleted file mode 100644 index 8d9d254ea..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/uri-reference.json +++ /dev/null @@ -1,76 +0,0 @@ -[ - { - "description": "validation of URI References", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "uri-reference" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid URI", - "data": "http://foo.bar/?baz=qux#quux", - "valid": true - }, - { - "description": "a valid protocol-relative URI Reference", - "data": "//foo.bar/?baz=qux#quux", - "valid": true - }, - { - "description": "a valid relative URI Reference", - "data": "/abc", - "valid": true - }, - { - "description": "an invalid URI Reference", - "data": "\\\\WINDOWS\\fileshare", - "valid": false - }, - { - "description": "a valid URI Reference", - "data": "abc", - "valid": true - }, - { - "description": "a valid URI fragment", - "data": "#fragment", - "valid": true - }, - { - "description": "an invalid URI fragment", - "data": "#frag\\ment", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/uri-template.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/uri-template.json deleted file mode 100644 index f57d62df2..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/uri-template.json +++ /dev/null @@ -1,61 +0,0 @@ -[ - { - "description": "format: uri-template", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "uri-template" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid uri-template", - "data": "http://example.com/dictionary/{term:1}/{term}", - "valid": true - }, - { - "description": "an invalid uri-template", - "data": "http://example.com/dictionary/{term:1}/{term", - "valid": false - }, - { - "description": "a valid uri-template without variables", - "data": "http://example.com/dictionary", - "valid": true - }, - { - "description": "a valid relative uri-template", - "data": "dictionary/{term:1}/{term}", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/uri.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/uri.json deleted file mode 100644 index 50908eab2..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/uri.json +++ /dev/null @@ -1,141 +0,0 @@ -[ - { - "description": "validation of URIs", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "uri" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid URL with anchor tag", - "data": "http://foo.bar/?baz=qux#quux", - "valid": true - }, - { - "description": "a valid URL with anchor tag and parentheses", - "data": "http://foo.com/blah_(wikipedia)_blah#cite-1", - "valid": true - }, - { - "description": "a valid URL with URL-encoded stuff", - "data": "http://foo.bar/?q=Test%20URL-encoded%20stuff", - "valid": true - }, - { - "description": "a valid puny-coded URL ", - "data": "http://xn--nw2a.xn--j6w193g/", - "valid": true - }, - { - "description": "a valid URL with many special characters", - "data": "http://-.~_!$&'()*+,;=:%40:80%2f::::::@example.com", - "valid": true - }, - { - "description": "a valid URL based on IPv4", - "data": "http://223.255.255.254", - "valid": true - }, - { - "description": "a valid URL with ftp scheme", - "data": "ftp://ftp.is.co.za/rfc/rfc1808.txt", - "valid": true - }, - { - "description": "a valid URL for a simple text file", - "data": "http://www.ietf.org/rfc/rfc2396.txt", - "valid": true - }, - { - "description": "a valid URL ", - "data": "ldap://[2001:db8::7]/c=GB?objectClass?one", - "valid": true - }, - { - "description": "a valid mailto URI", - "data": "mailto:John.Doe@example.com", - "valid": true - }, - { - "description": "a valid newsgroup URI", - "data": "news:comp.infosystems.www.servers.unix", - "valid": true - }, - { - "description": "a valid tel URI", - "data": "tel:+1-816-555-1212", - "valid": true - }, - { - "description": "a valid URN", - "data": "urn:oasis:names:specification:docbook:dtd:xml:4.1.2", - "valid": true - }, - { - "description": "an invalid protocol-relative URI Reference", - "data": "//foo.bar/?baz=qux#quux", - "valid": false - }, - { - "description": "an invalid relative URI Reference", - "data": "/abc", - "valid": false - }, - { - "description": "an invalid URI", - "data": "\\\\WINDOWS\\fileshare", - "valid": false - }, - { - "description": "an invalid URI though valid URI reference", - "data": "abc", - "valid": false - }, - { - "description": "an invalid URI with spaces", - "data": "http:// shouldfail.com", - "valid": false - }, - { - "description": "an invalid URI with spaces and missing scheme", - "data": ":// should fail", - "valid": false - }, - { - "description": "an invalid URI with comma in scheme", - "data": "bar,baz:foo", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/uuid.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/uuid.json deleted file mode 100644 index 6cea9dade..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/format/uuid.json +++ /dev/null @@ -1,116 +0,0 @@ -[ - { - "description": "uuid format", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "format": "uuid" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "all upper-case", - "data": "2EB8AA08-AA98-11EA-B4AA-73B441D16380", - "valid": true - }, - { - "description": "all lower-case", - "data": "2eb8aa08-aa98-11ea-b4aa-73b441d16380", - "valid": true - }, - { - "description": "mixed case", - "data": "2eb8aa08-AA98-11ea-B4Aa-73B441D16380", - "valid": true - }, - { - "description": "all zeroes is valid", - "data": "00000000-0000-0000-0000-000000000000", - "valid": true - }, - { - "description": "wrong length", - "data": "2eb8aa08-aa98-11ea-b4aa-73b441d1638", - "valid": false - }, - { - "description": "missing section", - "data": "2eb8aa08-aa98-11ea-73b441d16380", - "valid": false - }, - { - "description": "bad characters (not hex)", - "data": "2eb8aa08-aa98-11ea-b4ga-73b441d16380", - "valid": false - }, - { - "description": "no dashes", - "data": "2eb8aa08aa9811eab4aa73b441d16380", - "valid": false - }, - { - "description": "too few dashes", - "data": "2eb8aa08aa98-11ea-b4aa73b441d16380", - "valid": false - }, - { - "description": "too many dashes", - "data": "2eb8-aa08-aa98-11ea-b4aa73b44-1d16380", - "valid": false - }, - { - "description": "dashes in the wrong spot", - "data": "2eb8aa08aa9811eab4aa73b441d16380----", - "valid": false - }, - { - "description": "valid version 4", - "data": "98d80576-482e-427f-8434-7f86890ab222", - "valid": true - }, - { - "description": "valid version 5", - "data": "99c17cbb-656f-564a-940f-1a4568f03487", - "valid": true - }, - { - "description": "hypothetical version 6", - "data": "99c17cbb-656f-664a-940f-1a4568f03487", - "valid": true - }, - { - "description": "hypothetical version 15", - "data": "99c17cbb-656f-f64a-940f-1a4568f03487", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/id.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/id.json deleted file mode 100644 index fc26f26c2..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/id.json +++ /dev/null @@ -1,53 +0,0 @@ -[ - { - "description": "$id inside an enum is not a real identifier", - "comment": "the implementation must not be confused by an $id buried in the enum", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$defs": { - "id_in_enum": { - "enum": [ - { - "$id": "https://localhost:1234/draft-next/id/my_identifier.json", - "type": "null" - } - ] - }, - "real_id_in_schema": { - "$id": "https://localhost:1234/draft-next/id/my_identifier.json", - "type": "string" - }, - "zzz_id_in_const": { - "const": { - "$id": "https://localhost:1234/draft-next/id/my_identifier.json", - "type": "null" - } - } - }, - "anyOf": [ - { "$ref": "#/$defs/id_in_enum" }, - { "$ref": "https://localhost:1234/draft-next/id/my_identifier.json" } - ] - }, - "tests": [ - { - "description": "exact match to enum, and type matches", - "data": { - "$id": "https://localhost:1234/draft-next/id/my_identifier.json", - "type": "null" - }, - "valid": true - }, - { - "description": "match $ref to $id", - "data": "a string to match #/$defs/id_in_enum", - "valid": true - }, - { - "description": "no match on enum or $ref to $id", - "data": 1, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/non-bmp-regex.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/non-bmp-regex.json deleted file mode 100644 index 3af875c99..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/non-bmp-regex.json +++ /dev/null @@ -1,86 +0,0 @@ -[ - { - "description": "Proper UTF-16 surrogate pair handling: pattern", - "comment": "Optional because .Net doesn't correctly handle 32-bit Unicode characters", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "pattern": "^🐲*$" - }, - "tests": [ - { - "description": "matches empty", - "data": "", - "valid": true - }, - { - "description": "matches single", - "data": "🐲", - "valid": true - }, - { - "description": "matches two", - "data": "🐲🐲", - "valid": true - }, - { - "description": "doesn't match one", - "data": "🐉", - "valid": false - }, - { - "description": "doesn't match two", - "data": "🐉🐉", - "valid": false - }, - { - "description": "doesn't match one ASCII", - "data": "D", - "valid": false - }, - { - "description": "doesn't match two ASCII", - "data": "DD", - "valid": false - } - ] - }, - { - "description": "Proper UTF-16 surrogate pair handling: patternProperties", - "comment": "Optional because .Net doesn't correctly handle 32-bit Unicode characters", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "patternProperties": { - "^🐲*$": { - "type": "integer" - } - } - }, - "tests": [ - { - "description": "matches empty", - "data": { "": 1 }, - "valid": true - }, - { - "description": "matches single", - "data": { "🐲": 1 }, - "valid": true - }, - { - "description": "matches two", - "data": { "🐲🐲": 1 }, - "valid": true - }, - { - "description": "doesn't match one", - "data": { "🐲": "hello" }, - "valid": false - }, - { - "description": "doesn't match two", - "data": { "🐲🐲": "hello" }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/refOfUnknownKeyword.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/refOfUnknownKeyword.json deleted file mode 100644 index c832e09f6..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/refOfUnknownKeyword.json +++ /dev/null @@ -1,69 +0,0 @@ -[ - { - "description": "reference of a root arbitrary keyword ", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "unknown-keyword": {"type": "integer"}, - "properties": { - "bar": {"$ref": "#/unknown-keyword"} - } - }, - "tests": [ - { - "description": "match", - "data": {"bar": 3}, - "valid": true - }, - { - "description": "mismatch", - "data": {"bar": true}, - "valid": false - } - ] - }, - { - "description": "reference of an arbitrary keyword of a sub-schema", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "properties": { - "foo": {"unknown-keyword": {"type": "integer"}}, - "bar": {"$ref": "#/properties/foo/unknown-keyword"} - } - }, - "tests": [ - { - "description": "match", - "data": {"bar": 3}, - "valid": true - }, - { - "description": "mismatch", - "data": {"bar": true}, - "valid": false - } - ] - }, - { - "description": "reference internals of known non-applicator", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "/base", - "examples": [ - { "type": "string" } - ], - "$ref": "#/examples/0" - }, - "tests": [ - { - "description": "match", - "data": "a string", - "valid": true - }, - { - "description": "mismatch", - "data": 42, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/unknownKeyword.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/unknownKeyword.json deleted file mode 100644 index 055ff6b66..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/optional/unknownKeyword.json +++ /dev/null @@ -1,57 +0,0 @@ -[ - { - "description": "$id inside an unknown keyword is not a real identifier", - "comment": "the implementation must not be confused by an $id in locations we do not know how to parse", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$defs": { - "id_in_unknown0": { - "not": { - "array_of_schemas": [ - { - "$id": "https://localhost:1234/draft-next/unknownKeyword/my_identifier.json", - "type": "null" - } - ] - } - }, - "real_id_in_schema": { - "$id": "https://localhost:1234/draft-next/unknownKeyword/my_identifier.json", - "type": "string" - }, - "id_in_unknown1": { - "not": { - "object_of_schemas": { - "foo": { - "$id": "https://localhost:1234/draft-next/unknownKeyword/my_identifier.json", - "type": "integer" - } - } - } - } - }, - "anyOf": [ - { "$ref": "#/$defs/id_in_unknown0" }, - { "$ref": "#/$defs/id_in_unknown1" }, - { "$ref": "https://localhost:1234/draft-next/unknownKeyword/my_identifier.json" } - ] - }, - "tests": [ - { - "description": "type matches second anyOf, which has a real schema in it", - "data": "a string", - "valid": true - }, - { - "description": "type matches non-schema in first anyOf", - "data": null, - "valid": false - }, - { - "description": "type matches non-schema in third anyOf", - "data": 1, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/pattern.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/pattern.json deleted file mode 100644 index 09c6d0fbb..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/pattern.json +++ /dev/null @@ -1,65 +0,0 @@ -[ - { - "description": "pattern validation", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "pattern": "^a*$" - }, - "tests": [ - { - "description": "a matching pattern is valid", - "data": "aaa", - "valid": true - }, - { - "description": "a non-matching pattern is invalid", - "data": "abc", - "valid": false - }, - { - "description": "ignores booleans", - "data": true, - "valid": true - }, - { - "description": "ignores integers", - "data": 123, - "valid": true - }, - { - "description": "ignores floats", - "data": 1.0, - "valid": true - }, - { - "description": "ignores objects", - "data": {}, - "valid": true - }, - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores null", - "data": null, - "valid": true - } - ] - }, - { - "description": "pattern is not anchored", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "pattern": "a+" - }, - "tests": [ - { - "description": "matches a substring", - "data": "xxaayy", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/patternProperties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/patternProperties.json deleted file mode 100644 index c7aca3dfa..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/patternProperties.json +++ /dev/null @@ -1,176 +0,0 @@ -[ - { - "description": - "patternProperties validates properties matching a regex", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "patternProperties": { - "f.*o": {"type": "integer"} - } - }, - "tests": [ - { - "description": "a single valid match is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "multiple valid matches is valid", - "data": {"foo": 1, "foooooo" : 2}, - "valid": true - }, - { - "description": "a single invalid match is invalid", - "data": {"foo": "bar", "fooooo": 2}, - "valid": false - }, - { - "description": "multiple invalid matches is invalid", - "data": {"foo": "bar", "foooooo" : "baz"}, - "valid": false - }, - { - "description": "ignores arrays", - "data": ["foo"], - "valid": true - }, - { - "description": "ignores strings", - "data": "foo", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "multiple simultaneous patternProperties are validated", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "patternProperties": { - "a*": {"type": "integer"}, - "aaa*": {"maximum": 20} - } - }, - "tests": [ - { - "description": "a single valid match is valid", - "data": {"a": 21}, - "valid": true - }, - { - "description": "a simultaneous match is valid", - "data": {"aaaa": 18}, - "valid": true - }, - { - "description": "multiple matches is valid", - "data": {"a": 21, "aaaa": 18}, - "valid": true - }, - { - "description": "an invalid due to one is invalid", - "data": {"a": "bar"}, - "valid": false - }, - { - "description": "an invalid due to the other is invalid", - "data": {"aaaa": 31}, - "valid": false - }, - { - "description": "an invalid due to both is invalid", - "data": {"aaa": "foo", "aaaa": 31}, - "valid": false - } - ] - }, - { - "description": "regexes are not anchored by default and are case sensitive", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "patternProperties": { - "[0-9]{2,}": { "type": "boolean" }, - "X_": { "type": "string" } - } - }, - "tests": [ - { - "description": "non recognized members are ignored", - "data": { "answer 1": "42" }, - "valid": true - }, - { - "description": "recognized members are accounted for", - "data": { "a31b": null }, - "valid": false - }, - { - "description": "regexes are case sensitive", - "data": { "a_x_3": 3 }, - "valid": true - }, - { - "description": "regexes are case sensitive, 2", - "data": { "a_X_3": 3 }, - "valid": false - } - ] - }, - { - "description": "patternProperties with boolean schemas", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "patternProperties": { - "f.*": true, - "b.*": false - } - }, - "tests": [ - { - "description": "object with property matching schema true is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "object with property matching schema false is invalid", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "object with both properties is invalid", - "data": {"foo": 1, "bar": 2}, - "valid": false - }, - { - "description": "object with a property matching both true and false is invalid", - "data": {"foobar":1}, - "valid": false - }, - { - "description": "empty object is valid", - "data": {}, - "valid": true - } - ] - }, - { - "description": "patternProperties with null valued instance properties", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "patternProperties": { - "^.*bar$": {"type": "null"} - } - }, - "tests": [ - { - "description": "allows null values", - "data": {"foobar": null}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/prefixItems.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/prefixItems.json deleted file mode 100644 index a7f5928c9..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/prefixItems.json +++ /dev/null @@ -1,104 +0,0 @@ -[ - { - "description": "a schema given for prefixItems", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "prefixItems": [ - {"type": "integer"}, - {"type": "string"} - ] - }, - "tests": [ - { - "description": "correct types", - "data": [ 1, "foo" ], - "valid": true - }, - { - "description": "wrong types", - "data": [ "foo", 1 ], - "valid": false - }, - { - "description": "incomplete array of items", - "data": [ 1 ], - "valid": true - }, - { - "description": "array with additional items", - "data": [ 1, "foo", true ], - "valid": true - }, - { - "description": "empty array", - "data": [ ], - "valid": true - }, - { - "description": "JavaScript pseudo-array is valid", - "data": { - "0": "invalid", - "1": "valid", - "length": 2 - }, - "valid": true - } - ] - }, - { - "description": "prefixItems with boolean schemas", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "prefixItems": [true, false] - }, - "tests": [ - { - "description": "array with one item is valid", - "data": [ 1 ], - "valid": true - }, - { - "description": "array with two items is invalid", - "data": [ 1, "foo" ], - "valid": false - }, - { - "description": "empty array is valid", - "data": [], - "valid": true - } - ] - }, - { - "description": "additional items are allowed by default", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "prefixItems": [{"type": "integer"}] - }, - "tests": [ - { - "description": "only the first item is validated", - "data": [1, "foo", false], - "valid": true - } - ] - }, - { - "description": "prefixItems with null instance elements", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "prefixItems": [ - { - "type": "null" - } - ] - }, - "tests": [ - { - "description": "allows null elements", - "data": [ null ], - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/properties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/properties.json deleted file mode 100644 index 1ba4fe8ed..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/properties.json +++ /dev/null @@ -1,242 +0,0 @@ -[ - { - "description": "object properties validation", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "properties": { - "foo": {"type": "integer"}, - "bar": {"type": "string"} - } - }, - "tests": [ - { - "description": "both properties present and valid is valid", - "data": {"foo": 1, "bar": "baz"}, - "valid": true - }, - { - "description": "one property invalid is invalid", - "data": {"foo": 1, "bar": {}}, - "valid": false - }, - { - "description": "both properties invalid is invalid", - "data": {"foo": [], "bar": {}}, - "valid": false - }, - { - "description": "doesn't invalidate other properties", - "data": {"quux": []}, - "valid": true - }, - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": - "properties, patternProperties, additionalProperties interaction", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "properties": { - "foo": {"type": "array", "maxItems": 3}, - "bar": {"type": "array"} - }, - "patternProperties": {"f.o": {"minItems": 2}}, - "additionalProperties": {"type": "integer"} - }, - "tests": [ - { - "description": "property validates property", - "data": {"foo": [1, 2]}, - "valid": true - }, - { - "description": "property invalidates property", - "data": {"foo": [1, 2, 3, 4]}, - "valid": false - }, - { - "description": "patternProperty invalidates property", - "data": {"foo": []}, - "valid": false - }, - { - "description": "patternProperty validates nonproperty", - "data": {"fxo": [1, 2]}, - "valid": true - }, - { - "description": "patternProperty invalidates nonproperty", - "data": {"fxo": []}, - "valid": false - }, - { - "description": "additionalProperty ignores property", - "data": {"bar": []}, - "valid": true - }, - { - "description": "additionalProperty validates others", - "data": {"quux": 3}, - "valid": true - }, - { - "description": "additionalProperty invalidates others", - "data": {"quux": "foo"}, - "valid": false - } - ] - }, - { - "description": "properties with boolean schema", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "properties": { - "foo": true, - "bar": false - } - }, - "tests": [ - { - "description": "no property present is valid", - "data": {}, - "valid": true - }, - { - "description": "only 'true' property present is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "only 'false' property present is invalid", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "both properties present is invalid", - "data": {"foo": 1, "bar": 2}, - "valid": false - } - ] - }, - { - "description": "properties with escaped characters", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "properties": { - "foo\nbar": {"type": "number"}, - "foo\"bar": {"type": "number"}, - "foo\\bar": {"type": "number"}, - "foo\rbar": {"type": "number"}, - "foo\tbar": {"type": "number"}, - "foo\fbar": {"type": "number"} - } - }, - "tests": [ - { - "description": "object with all numbers is valid", - "data": { - "foo\nbar": 1, - "foo\"bar": 1, - "foo\\bar": 1, - "foo\rbar": 1, - "foo\tbar": 1, - "foo\fbar": 1 - }, - "valid": true - }, - { - "description": "object with strings is invalid", - "data": { - "foo\nbar": "1", - "foo\"bar": "1", - "foo\\bar": "1", - "foo\rbar": "1", - "foo\tbar": "1", - "foo\fbar": "1" - }, - "valid": false - } - ] - }, - { - "description": "properties with null valued instance properties", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "properties": { - "foo": {"type": "null"} - } - }, - "tests": [ - { - "description": "allows null values", - "data": {"foo": null}, - "valid": true - } - ] - }, - { - "description": "properties whose names are Javascript object property names", - "comment": "Ensure JS implementations don't universally consider e.g. __proto__ to always be present in an object.", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "properties": { - "__proto__": {"type": "number"}, - "toString": { - "properties": { "length": { "type": "string" } } - }, - "constructor": {"type": "number"} - } - }, - "tests": [ - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - }, - { - "description": "none of the properties mentioned", - "data": {}, - "valid": true - }, - { - "description": "__proto__ not valid", - "data": { "__proto__": "foo" }, - "valid": false - }, - { - "description": "toString not valid", - "data": { "toString": { "length": 37 } }, - "valid": false - }, - { - "description": "constructor not valid", - "data": { "constructor": { "length": 37 } }, - "valid": false - }, - { - "description": "all present and valid", - "data": { - "__proto__": 12, - "toString": { "length": "foo" }, - "constructor": 37 - }, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/propertyDependencies.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/propertyDependencies.json deleted file mode 100644 index 9efa2b48b..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/propertyDependencies.json +++ /dev/null @@ -1,161 +0,0 @@ -[ - { - "description": "propertyDependencies doesn't act on non-objects", - "schema": { - "propertyDependencies": { - "foo": {"bar": false} - } - }, - "tests": [ - { - "description": "ignores booleans", - "data": true, - "valid": true - }, - { - "description": "ignores integers", - "data": 123, - "valid": true - }, - { - "description": "ignores floats", - "data": 1.0, - "valid": true - }, - { - "description": "ignores strings", - "data": "abc", - "valid": true - }, - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores null", - "data": null, - "valid": true - } - ] - }, - { - "description": "propertyDependencies doesn't act on non-string property values", - "schema": { - "propertyDependencies": { - "foo": {"bar": false} - } - }, - "tests": [ - { - "description": "ignores booleans", - "data": {"foo": false}, - "valid": true - }, - { - "description": "ignores integers", - "data": {"foo": 2}, - "valid": true - }, - { - "description": "ignores floats", - "data": {"foo": 1.1}, - "valid": true - }, - { - "description": "ignores objects", - "data": {"foo": {}}, - "valid": true - }, - { - "description": "ignores objects wth a key of the expected value", - "data": {"foo": {"bar": "baz"}}, - "valid": true - }, - { - "description": "ignores objects with the expected value nested in structure", - "data": {"foo": {"baz": "bar"}}, - "valid": true - }, - { - "description": "ignores arrays", - "data": {"foo": []}, - "valid": true - }, - { - "description": "ignores null", - "data": {"foo": null}, - "valid": true - } - ] - }, - { - "description": "multiple options selects the right one", - "schema": { - "propertyDependencies": { - "foo": { - "bar": { - "minProperties": 2, - "maxProperties": 2 - }, - "baz": {"maxProperties": 1}, - "qux": true, - "quux": false - } - } - }, - "tests": [ - { - "description": "bar with exactly 2 properties is valid", - "data": { - "foo": "bar", - "other-foo": "other-bar" - }, - "valid": true - }, - { - "description": "bar with more than 2 properties is invalid", - "data": { - "foo": "bar", - "other-foo": "other-bar", - "too": "many" - }, - "valid": false - }, - { - "description": "bar with fewer than 2 properties is invalid", - "data": {"foo": "bar"}, - "valid": false - }, - { - "description": "baz alone is valid", - "data": {"foo": "baz"}, - "valid": true - }, - { - "description": "baz with other properties is invalid", - "data": { - "foo": "baz", - "other-foo": "other-bar" - }, - "valid": false - }, - { - "description": "anything allowed with qux", - "data": { - "foo": "qux", - "blah": ["some other property"], - "more": "properties" - }, - "valid": true - }, - { - "description": "quux is disallowed", - "data": { - "foo": "quux" - }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/propertyNames.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/propertyNames.json deleted file mode 100644 index e61401703..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/propertyNames.json +++ /dev/null @@ -1,85 +0,0 @@ -[ - { - "description": "propertyNames validation", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "propertyNames": {"maxLength": 3} - }, - "tests": [ - { - "description": "all property names valid", - "data": { - "f": {}, - "foo": {} - }, - "valid": true - }, - { - "description": "some property names invalid", - "data": { - "foo": {}, - "foobar": {} - }, - "valid": false - }, - { - "description": "object without properties is valid", - "data": {}, - "valid": true - }, - { - "description": "ignores arrays", - "data": [1, 2, 3, 4], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobar", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "propertyNames with boolean schema true", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "propertyNames": true - }, - "tests": [ - { - "description": "object with any properties is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "empty object is valid", - "data": {}, - "valid": true - } - ] - }, - { - "description": "propertyNames with boolean schema false", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "propertyNames": false - }, - "tests": [ - { - "description": "object with any properties is invalid", - "data": {"foo": 1}, - "valid": false - }, - { - "description": "empty object is valid", - "data": {}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/ref.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/ref.json deleted file mode 100644 index 8417ce299..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/ref.json +++ /dev/null @@ -1,1067 +0,0 @@ -[ - { - "description": "root pointer ref", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "properties": { - "foo": {"$ref": "#"} - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "match", - "data": {"foo": false}, - "valid": true - }, - { - "description": "recursive match", - "data": {"foo": {"foo": false}}, - "valid": true - }, - { - "description": "mismatch", - "data": {"bar": false}, - "valid": false - }, - { - "description": "recursive mismatch", - "data": {"foo": {"bar": false}}, - "valid": false - } - ] - }, - { - "description": "relative pointer ref to object", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "properties": { - "foo": {"type": "integer"}, - "bar": {"$ref": "#/properties/foo"} - } - }, - "tests": [ - { - "description": "match", - "data": {"bar": 3}, - "valid": true - }, - { - "description": "mismatch", - "data": {"bar": true}, - "valid": false - } - ] - }, - { - "description": "relative pointer ref to array", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "prefixItems": [ - {"type": "integer"}, - {"$ref": "#/prefixItems/0"} - ] - }, - "tests": [ - { - "description": "match array", - "data": [1, 2], - "valid": true - }, - { - "description": "mismatch array", - "data": [1, "foo"], - "valid": false - } - ] - }, - { - "description": "escaped pointer ref", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$defs": { - "tilde~field": {"type": "integer"}, - "slash/field": {"type": "integer"}, - "percent%field": {"type": "integer"} - }, - "properties": { - "tilde": {"$ref": "#/$defs/tilde~0field"}, - "slash": {"$ref": "#/$defs/slash~1field"}, - "percent": {"$ref": "#/$defs/percent%25field"} - } - }, - "tests": [ - { - "description": "slash invalid", - "data": {"slash": "aoeu"}, - "valid": false - }, - { - "description": "tilde invalid", - "data": {"tilde": "aoeu"}, - "valid": false - }, - { - "description": "percent invalid", - "data": {"percent": "aoeu"}, - "valid": false - }, - { - "description": "slash valid", - "data": {"slash": 123}, - "valid": true - }, - { - "description": "tilde valid", - "data": {"tilde": 123}, - "valid": true - }, - { - "description": "percent valid", - "data": {"percent": 123}, - "valid": true - } - ] - }, - { - "description": "nested refs", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$defs": { - "a": {"type": "integer"}, - "b": {"$ref": "#/$defs/a"}, - "c": {"$ref": "#/$defs/b"} - }, - "$ref": "#/$defs/c" - }, - "tests": [ - { - "description": "nested ref valid", - "data": 5, - "valid": true - }, - { - "description": "nested ref invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "ref applies alongside sibling keywords", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$defs": { - "reffed": { - "type": "array" - } - }, - "properties": { - "foo": { - "$ref": "#/$defs/reffed", - "maxItems": 2 - } - } - }, - "tests": [ - { - "description": "ref valid, maxItems valid", - "data": { "foo": [] }, - "valid": true - }, - { - "description": "ref valid, maxItems invalid", - "data": { "foo": [1, 2, 3] }, - "valid": false - }, - { - "description": "ref invalid", - "data": { "foo": "string" }, - "valid": false - } - ] - }, - { - "description": "remote ref, containing refs itself", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$ref": "https://json-schema.org/draft/next/schema" - }, - "tests": [ - { - "description": "remote ref valid", - "data": {"minLength": 1}, - "valid": true - }, - { - "description": "remote ref invalid", - "data": {"minLength": -1}, - "valid": false - } - ] - }, - { - "description": "property named $ref that is not a reference", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "properties": { - "$ref": {"type": "string"} - } - }, - "tests": [ - { - "description": "property named $ref valid", - "data": {"$ref": "a"}, - "valid": true - }, - { - "description": "property named $ref invalid", - "data": {"$ref": 2}, - "valid": false - } - ] - }, - { - "description": "property named $ref, containing an actual $ref", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "properties": { - "$ref": {"$ref": "#/$defs/is-string"} - }, - "$defs": { - "is-string": { - "type": "string" - } - } - }, - "tests": [ - { - "description": "property named $ref valid", - "data": {"$ref": "a"}, - "valid": true - }, - { - "description": "property named $ref invalid", - "data": {"$ref": 2}, - "valid": false - } - ] - }, - { - "description": "$ref to boolean schema true", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$ref": "#/$defs/bool", - "$defs": { - "bool": true - } - }, - "tests": [ - { - "description": "any value is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "$ref to boolean schema false", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$ref": "#/$defs/bool", - "$defs": { - "bool": false - } - }, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "Recursive references between schemas", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "http://localhost:1234/draft-next/tree", - "description": "tree of nodes", - "type": "object", - "properties": { - "meta": {"type": "string"}, - "nodes": { - "type": "array", - "items": {"$ref": "node"} - } - }, - "required": ["meta", "nodes"], - "$defs": { - "node": { - "$id": "http://localhost:1234/draft-next/node", - "description": "node", - "type": "object", - "properties": { - "value": {"type": "number"}, - "subtree": {"$ref": "tree"} - }, - "required": ["value"] - } - } - }, - "tests": [ - { - "description": "valid tree", - "data": { - "meta": "root", - "nodes": [ - { - "value": 1, - "subtree": { - "meta": "child", - "nodes": [ - {"value": 1.1}, - {"value": 1.2} - ] - } - }, - { - "value": 2, - "subtree": { - "meta": "child", - "nodes": [ - {"value": 2.1}, - {"value": 2.2} - ] - } - } - ] - }, - "valid": true - }, - { - "description": "invalid tree", - "data": { - "meta": "root", - "nodes": [ - { - "value": 1, - "subtree": { - "meta": "child", - "nodes": [ - {"value": "string is invalid"}, - {"value": 1.2} - ] - } - }, - { - "value": 2, - "subtree": { - "meta": "child", - "nodes": [ - {"value": 2.1}, - {"value": 2.2} - ] - } - } - ] - }, - "valid": false - } - ] - }, - { - "description": "refs with quote", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "properties": { - "foo\"bar": {"$ref": "#/$defs/foo%22bar"} - }, - "$defs": { - "foo\"bar": {"type": "number"} - } - }, - "tests": [ - { - "description": "object with numbers is valid", - "data": { - "foo\"bar": 1 - }, - "valid": true - }, - { - "description": "object with strings is invalid", - "data": { - "foo\"bar": "1" - }, - "valid": false - } - ] - }, - { - "description": "ref creates new scope when adjacent to keywords", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$defs": { - "A": { - "unevaluatedProperties": false - } - }, - "properties": { - "prop1": { - "type": "string" - } - }, - "$ref": "#/$defs/A" - }, - "tests": [ - { - "description": "referenced subschema doesn't see annotations from properties", - "data": { - "prop1": "match" - }, - "valid": false - } - ] - }, - { - "description": "naive replacement of $ref with its destination is not correct", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$defs": { - "a_string": { "type": "string" } - }, - "enum": [ - { "$ref": "#/$defs/a_string" } - ] - }, - "tests": [ - { - "description": "do not evaluate the $ref inside the enum, matching any string", - "data": "this is a string", - "valid": false - }, - { - "description": "do not evaluate the $ref inside the enum, definition exact match", - "data": { "type": "string" }, - "valid": false - }, - { - "description": "match the enum exactly", - "data": { "$ref": "#/$defs/a_string" }, - "valid": true - } - ] - }, - { - "description": "refs with relative uris and defs", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "http://example.com/schema-relative-uri-defs1.json", - "properties": { - "foo": { - "$id": "schema-relative-uri-defs2.json", - "$defs": { - "inner": { - "properties": { - "bar": { "type": "string" } - } - } - }, - "$ref": "#/$defs/inner" - } - }, - "$ref": "schema-relative-uri-defs2.json" - }, - "tests": [ - { - "description": "invalid on inner field", - "data": { - "foo": { - "bar": 1 - }, - "bar": "a" - }, - "valid": false - }, - { - "description": "invalid on outer field", - "data": { - "foo": { - "bar": "a" - }, - "bar": 1 - }, - "valid": false - }, - { - "description": "valid on both fields", - "data": { - "foo": { - "bar": "a" - }, - "bar": "a" - }, - "valid": true - } - ] - }, - { - "description": "relative refs with absolute uris and defs", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "http://example.com/schema-refs-absolute-uris-defs1.json", - "properties": { - "foo": { - "$id": "http://example.com/schema-refs-absolute-uris-defs2.json", - "$defs": { - "inner": { - "properties": { - "bar": { "type": "string" } - } - } - }, - "$ref": "#/$defs/inner" - } - }, - "$ref": "schema-refs-absolute-uris-defs2.json" - }, - "tests": [ - { - "description": "invalid on inner field", - "data": { - "foo": { - "bar": 1 - }, - "bar": "a" - }, - "valid": false - }, - { - "description": "invalid on outer field", - "data": { - "foo": { - "bar": "a" - }, - "bar": 1 - }, - "valid": false - }, - { - "description": "valid on both fields", - "data": { - "foo": { - "bar": "a" - }, - "bar": "a" - }, - "valid": true - } - ] - }, - { - "description": "$id must be resolved against nearest parent, not just immediate parent", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "http://example.com/a.json", - "$defs": { - "x": { - "$id": "http://example.com/b/c.json", - "not": { - "$defs": { - "y": { - "$id": "d.json", - "type": "number" - } - } - } - } - }, - "allOf": [ - { - "$ref": "http://example.com/b/d.json" - } - ] - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "non-number is invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "order of evaluation: $id and $ref", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$comment": "$id must be evaluated before $ref to get the proper $ref destination", - "$id": "https://example.com/draft/next/ref-and-id1/base.json", - "$ref": "int.json", - "$defs": { - "bigint": { - "$comment": "canonical uri: https://example.com/ref-and-id1/int.json", - "$id": "int.json", - "maximum": 10 - }, - "smallint": { - "$comment": "canonical uri: https://example.com/ref-and-id1-int.json", - "$id": "/draft/next/ref-and-id1-int.json", - "maximum": 2 - } - } - }, - "tests": [ - { - "description": "data is valid against first definition", - "data": 5, - "valid": true - }, - { - "description": "data is invalid against first definition", - "data": 50, - "valid": false - } - ] - }, - { - "description": "order of evaluation: $id and $anchor and $ref", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$comment": "$id must be evaluated before $ref to get the proper $ref destination", - "$id": "https://example.com/draft/next/ref-and-id2/base.json", - "$ref": "#bigint", - "$defs": { - "bigint": { - "$comment": "canonical uri: https://example.com/ref-and-id2/base.json#/$defs/bigint; another valid uri for this location: https://example.com/ref-and-id2/base.json#bigint", - "$anchor": "bigint", - "maximum": 10 - }, - "smallint": { - "$comment": "canonical uri: https://example.com/ref-and-id2#/$defs/smallint; another valid uri for this location: https://example.com/ref-and-id2/#bigint", - "$id": "/draft/next/ref-and-id2/", - "$anchor": "bigint", - "maximum": 2 - } - } - }, - "tests": [ - { - "description": "data is valid against first definition", - "data": 5, - "valid": true - }, - { - "description": "data is invalid against first definition", - "data": 50, - "valid": false - } - ] - }, - { - "description": "simple URN base URI with $ref via the URN", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$comment": "URIs do not have to have HTTP(s) schemes", - "$id": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed", - "minimum": 30, - "properties": { - "foo": {"$ref": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed"} - } - }, - "tests": [ - { - "description": "valid under the URN IDed schema", - "data": {"foo": 37}, - "valid": true - }, - { - "description": "invalid under the URN IDed schema", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "simple URN base URI with JSON pointer", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$comment": "URIs do not have to have HTTP(s) schemes", - "$id": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed", - "properties": { - "foo": {"$ref": "#/$defs/bar"} - }, - "$defs": { - "bar": {"type": "string"} - } - }, - "tests": [ - { - "description": "a string is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "a non-string is invalid", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "URN base URI with NSS", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$comment": "RFC 8141 §2.2", - "$id": "urn:example:1/406/47452/2", - "properties": { - "foo": {"$ref": "#/$defs/bar"} - }, - "$defs": { - "bar": {"type": "string"} - } - }, - "tests": [ - { - "description": "a string is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "a non-string is invalid", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "URN base URI with r-component", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$comment": "RFC 8141 §2.3.1", - "$id": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk", - "properties": { - "foo": {"$ref": "#/$defs/bar"} - }, - "$defs": { - "bar": {"type": "string"} - } - }, - "tests": [ - { - "description": "a string is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "a non-string is invalid", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "URN base URI with q-component", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$comment": "RFC 8141 §2.3.2", - "$id": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z", - "properties": { - "foo": {"$ref": "#/$defs/bar"} - }, - "$defs": { - "bar": {"type": "string"} - } - }, - "tests": [ - { - "description": "a string is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "a non-string is invalid", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "URN base URI with f-component", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$comment": "RFC 8141 §2.3.3, but we don't allow fragments", - "$ref": "https://json-schema.org/draft/next/schema" - }, - "tests": [ - { - "description": "is invalid", - "data": {"$id": "urn:example:foo-bar-baz-qux#somepart"}, - "valid": false - } - ] - }, - { - "description": "URN base URI with URN and JSON pointer ref", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed", - "properties": { - "foo": {"$ref": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/$defs/bar"} - }, - "$defs": { - "bar": {"type": "string"} - } - }, - "tests": [ - { - "description": "a string is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "a non-string is invalid", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "URN base URI with URN and anchor ref", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed", - "properties": { - "foo": {"$ref": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#something"} - }, - "$defs": { - "bar": { - "$anchor": "something", - "type": "string" - } - } - }, - "tests": [ - { - "description": "a string is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "a non-string is invalid", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "URN ref with nested pointer ref", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$ref": "urn:uuid:deadbeef-4321-ffff-ffff-1234feebdaed", - "$defs": { - "foo": { - "$id": "urn:uuid:deadbeef-4321-ffff-ffff-1234feebdaed", - "$defs": {"bar": {"type": "string"}}, - "$ref": "#/$defs/bar" - } - } - }, - "tests": [ - { - "description": "a string is valid", - "data": "bar", - "valid": true - }, - { - "description": "a non-string is invalid", - "data": 12, - "valid": false - } - ] - }, - { - "description": "ref to if", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$ref": "http://example.com/ref/if", - "if": { - "$id": "http://example.com/ref/if", - "type": "integer" - } - }, - "tests": [ - { - "description": "a non-integer is invalid due to the $ref", - "data": "foo", - "valid": false - }, - { - "description": "an integer is valid", - "data": 12, - "valid": true - } - ] - }, - { - "description": "ref to then", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$ref": "http://example.com/ref/then", - "then": { - "$id": "http://example.com/ref/then", - "type": "integer" - } - }, - "tests": [ - { - "description": "a non-integer is invalid due to the $ref", - "data": "foo", - "valid": false - }, - { - "description": "an integer is valid", - "data": 12, - "valid": true - } - ] - }, - { - "description": "ref to else", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$ref": "http://example.com/ref/else", - "else": { - "$id": "http://example.com/ref/else", - "type": "integer" - } - }, - "tests": [ - { - "description": "a non-integer is invalid due to the $ref", - "data": "foo", - "valid": false - }, - { - "description": "an integer is valid", - "data": 12, - "valid": true - } - ] - }, - { - "description": "ref with absolute-path-reference", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "http://example.com/ref/absref.json", - "$defs": { - "a": { - "$id": "http://example.com/ref/absref/foobar.json", - "type": "number" - }, - "b": { - "$id": "http://example.com/absref/foobar.json", - "type": "string" - } - }, - "$ref": "/absref/foobar.json" - }, - "tests": [ - { - "description": "a string is valid", - "data": "foo", - "valid": true - }, - { - "description": "an integer is invalid", - "data": 12, - "valid": false - } - ] - }, - { - "description": "$id with file URI still resolves pointers - *nix", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "file:///folder/file.json", - "$defs": { - "foo": { - "type": "number" - } - }, - "$ref": "#/$defs/foo" - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "non-number is invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "$id with file URI still resolves pointers - windows", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "file:///c:/folder/file.json", - "$defs": { - "foo": { - "type": "number" - } - }, - "$ref": "#/$defs/foo" - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "non-number is invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "empty tokens in $ref json-pointer", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$defs": { - "": { - "$defs": { - "": { "type": "number" } - } - } - }, - "allOf": [ - { - "$ref": "#/$defs//$defs/" - } - ] - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "non-number is invalid", - "data": "a", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/refRemote.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/refRemote.json deleted file mode 100644 index 647fb9f19..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/refRemote.json +++ /dev/null @@ -1,342 +0,0 @@ -[ - { - "description": "remote ref", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$ref": "http://localhost:1234/draft-next/integer.json" - }, - "tests": [ - { - "description": "remote ref valid", - "data": 1, - "valid": true - }, - { - "description": "remote ref invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "fragment within remote ref", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$ref": "http://localhost:1234/draft-next/subSchemas.json#/$defs/integer" - }, - "tests": [ - { - "description": "remote fragment valid", - "data": 1, - "valid": true - }, - { - "description": "remote fragment invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "anchor within remote ref", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$ref": "http://localhost:1234/draft-next/locationIndependentIdentifier.json#foo" - }, - "tests": [ - { - "description": "remote anchor valid", - "data": 1, - "valid": true - }, - { - "description": "remote anchor invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "ref within remote ref", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$ref": "http://localhost:1234/draft-next/subSchemas.json#/$defs/refToInteger" - }, - "tests": [ - { - "description": "ref within ref valid", - "data": 1, - "valid": true - }, - { - "description": "ref within ref invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "base URI change", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "http://localhost:1234/draft-next/", - "items": { - "$id": "baseUriChange/", - "items": {"$ref": "folderInteger.json"} - } - }, - "tests": [ - { - "description": "base URI change ref valid", - "data": [[1]], - "valid": true - }, - { - "description": "base URI change ref invalid", - "data": [["a"]], - "valid": false - } - ] - }, - { - "description": "base URI change - change folder", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "http://localhost:1234/draft-next/scope_change_defs1.json", - "type" : "object", - "properties": {"list": {"$ref": "baseUriChangeFolder/"}}, - "$defs": { - "baz": { - "$id": "baseUriChangeFolder/", - "type": "array", - "items": {"$ref": "folderInteger.json"} - } - } - }, - "tests": [ - { - "description": "number is valid", - "data": {"list": [1]}, - "valid": true - }, - { - "description": "string is invalid", - "data": {"list": ["a"]}, - "valid": false - } - ] - }, - { - "description": "base URI change - change folder in subschema", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "http://localhost:1234/draft-next/scope_change_defs2.json", - "type" : "object", - "properties": {"list": {"$ref": "baseUriChangeFolderInSubschema/#/$defs/bar"}}, - "$defs": { - "baz": { - "$id": "baseUriChangeFolderInSubschema/", - "$defs": { - "bar": { - "type": "array", - "items": {"$ref": "folderInteger.json"} - } - } - } - } - }, - "tests": [ - { - "description": "number is valid", - "data": {"list": [1]}, - "valid": true - }, - { - "description": "string is invalid", - "data": {"list": ["a"]}, - "valid": false - } - ] - }, - { - "description": "root ref in remote ref", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "http://localhost:1234/draft-next/object", - "type": "object", - "properties": { - "name": {"$ref": "name-defs.json#/$defs/orNull"} - } - }, - "tests": [ - { - "description": "string is valid", - "data": { - "name": "foo" - }, - "valid": true - }, - { - "description": "null is valid", - "data": { - "name": null - }, - "valid": true - }, - { - "description": "object is invalid", - "data": { - "name": { - "name": null - } - }, - "valid": false - } - ] - }, - { - "description": "remote ref with ref to defs", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "http://localhost:1234/draft-next/schema-remote-ref-ref-defs1.json", - "$ref": "ref-and-defs.json" - }, - "tests": [ - { - "description": "invalid", - "data": { - "bar": 1 - }, - "valid": false - }, - { - "description": "valid", - "data": { - "bar": "a" - }, - "valid": true - } - ] - }, - { - "description": "Location-independent identifier in remote ref", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$ref": "http://localhost:1234/draft-next/locationIndependentIdentifier.json#/$defs/refToInteger" - }, - "tests": [ - { - "description": "integer is valid", - "data": 1, - "valid": true - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "retrieved nested refs resolve relative to their URI not $id", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "http://localhost:1234/draft-next/some-id", - "properties": { - "name": {"$ref": "nested/foo-ref-string.json"} - } - }, - "tests": [ - { - "description": "number is invalid", - "data": { - "name": {"foo": 1} - }, - "valid": false - }, - { - "description": "string is valid", - "data": { - "name": {"foo": "a"} - }, - "valid": true - } - ] - }, - { - "description": "remote HTTP ref with different $id", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$ref": "http://localhost:1234/different-id-ref-string.json" - }, - "tests": [ - { - "description": "number is invalid", - "data": 1, - "valid": false - }, - { - "description": "string is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "remote HTTP ref with different URN $id", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$ref": "http://localhost:1234/urn-ref-string.json" - }, - "tests": [ - { - "description": "number is invalid", - "data": 1, - "valid": false - }, - { - "description": "string is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "remote HTTP ref with nested absolute ref", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$ref": "http://localhost:1234/nested-absolute-ref-to-string.json" - }, - "tests": [ - { - "description": "number is invalid", - "data": 1, - "valid": false - }, - { - "description": "string is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "$ref to $ref finds detached $anchor", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$ref": "http://localhost:1234/draft-next/detached-ref.json#/$defs/foo" - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "non-number is invalid", - "data": "a", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/required.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/required.json deleted file mode 100644 index cc02fd34f..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/required.json +++ /dev/null @@ -1,158 +0,0 @@ -[ - { - "description": "required validation", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "properties": { - "foo": {}, - "bar": {} - }, - "required": ["foo"] - }, - "tests": [ - { - "description": "present required property is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "non-present required property is invalid", - "data": {"bar": 1}, - "valid": false - }, - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores strings", - "data": "", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "required default validation", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "properties": { - "foo": {} - } - }, - "tests": [ - { - "description": "not required by default", - "data": {}, - "valid": true - } - ] - }, - { - "description": "required with empty array", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "properties": { - "foo": {} - }, - "required": [] - }, - "tests": [ - { - "description": "property not required", - "data": {}, - "valid": true - } - ] - }, - { - "description": "required with escaped characters", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "required": [ - "foo\nbar", - "foo\"bar", - "foo\\bar", - "foo\rbar", - "foo\tbar", - "foo\fbar" - ] - }, - "tests": [ - { - "description": "object with all properties present is valid", - "data": { - "foo\nbar": 1, - "foo\"bar": 1, - "foo\\bar": 1, - "foo\rbar": 1, - "foo\tbar": 1, - "foo\fbar": 1 - }, - "valid": true - }, - { - "description": "object with some properties missing is invalid", - "data": { - "foo\nbar": "1", - "foo\"bar": "1" - }, - "valid": false - } - ] - }, - { - "description": "required properties whose names are Javascript object property names", - "comment": "Ensure JS implementations don't universally consider e.g. __proto__ to always be present in an object.", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "required": ["__proto__", "toString", "constructor"] - }, - "tests": [ - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - }, - { - "description": "none of the properties mentioned", - "data": {}, - "valid": false - }, - { - "description": "__proto__ present", - "data": { "__proto__": "foo" }, - "valid": false - }, - { - "description": "toString present", - "data": { "toString": { "length": 37 } }, - "valid": false - }, - { - "description": "constructor present", - "data": { "constructor": { "length": 37 } }, - "valid": false - }, - { - "description": "all present", - "data": { - "__proto__": 12, - "toString": { "length": "foo" }, - "constructor": 37 - }, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/type.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/type.json deleted file mode 100644 index 86e551c79..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/type.json +++ /dev/null @@ -1,501 +0,0 @@ -[ - { - "description": "integer type matches integers", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "integer" - }, - "tests": [ - { - "description": "an integer is an integer", - "data": 1, - "valid": true - }, - { - "description": "a float with zero fractional part is an integer", - "data": 1.0, - "valid": true - }, - { - "description": "a float is not an integer", - "data": 1.1, - "valid": false - }, - { - "description": "a string is not an integer", - "data": "foo", - "valid": false - }, - { - "description": "a string is still not an integer, even if it looks like one", - "data": "1", - "valid": false - }, - { - "description": "an object is not an integer", - "data": {}, - "valid": false - }, - { - "description": "an array is not an integer", - "data": [], - "valid": false - }, - { - "description": "a boolean is not an integer", - "data": true, - "valid": false - }, - { - "description": "null is not an integer", - "data": null, - "valid": false - } - ] - }, - { - "description": "number type matches numbers", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "number" - }, - "tests": [ - { - "description": "an integer is a number", - "data": 1, - "valid": true - }, - { - "description": "a float with zero fractional part is a number (and an integer)", - "data": 1.0, - "valid": true - }, - { - "description": "a float is a number", - "data": 1.1, - "valid": true - }, - { - "description": "a string is not a number", - "data": "foo", - "valid": false - }, - { - "description": "a string is still not a number, even if it looks like one", - "data": "1", - "valid": false - }, - { - "description": "an object is not a number", - "data": {}, - "valid": false - }, - { - "description": "an array is not a number", - "data": [], - "valid": false - }, - { - "description": "a boolean is not a number", - "data": true, - "valid": false - }, - { - "description": "null is not a number", - "data": null, - "valid": false - } - ] - }, - { - "description": "string type matches strings", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "string" - }, - "tests": [ - { - "description": "1 is not a string", - "data": 1, - "valid": false - }, - { - "description": "a float is not a string", - "data": 1.1, - "valid": false - }, - { - "description": "a string is a string", - "data": "foo", - "valid": true - }, - { - "description": "a string is still a string, even if it looks like a number", - "data": "1", - "valid": true - }, - { - "description": "an empty string is still a string", - "data": "", - "valid": true - }, - { - "description": "an object is not a string", - "data": {}, - "valid": false - }, - { - "description": "an array is not a string", - "data": [], - "valid": false - }, - { - "description": "a boolean is not a string", - "data": true, - "valid": false - }, - { - "description": "null is not a string", - "data": null, - "valid": false - } - ] - }, - { - "description": "object type matches objects", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object" - }, - "tests": [ - { - "description": "an integer is not an object", - "data": 1, - "valid": false - }, - { - "description": "a float is not an object", - "data": 1.1, - "valid": false - }, - { - "description": "a string is not an object", - "data": "foo", - "valid": false - }, - { - "description": "an object is an object", - "data": {}, - "valid": true - }, - { - "description": "an array is not an object", - "data": [], - "valid": false - }, - { - "description": "a boolean is not an object", - "data": true, - "valid": false - }, - { - "description": "null is not an object", - "data": null, - "valid": false - } - ] - }, - { - "description": "array type matches arrays", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "array" - }, - "tests": [ - { - "description": "an integer is not an array", - "data": 1, - "valid": false - }, - { - "description": "a float is not an array", - "data": 1.1, - "valid": false - }, - { - "description": "a string is not an array", - "data": "foo", - "valid": false - }, - { - "description": "an object is not an array", - "data": {}, - "valid": false - }, - { - "description": "an array is an array", - "data": [], - "valid": true - }, - { - "description": "a boolean is not an array", - "data": true, - "valid": false - }, - { - "description": "null is not an array", - "data": null, - "valid": false - } - ] - }, - { - "description": "boolean type matches booleans", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "boolean" - }, - "tests": [ - { - "description": "an integer is not a boolean", - "data": 1, - "valid": false - }, - { - "description": "zero is not a boolean", - "data": 0, - "valid": false - }, - { - "description": "a float is not a boolean", - "data": 1.1, - "valid": false - }, - { - "description": "a string is not a boolean", - "data": "foo", - "valid": false - }, - { - "description": "an empty string is not a boolean", - "data": "", - "valid": false - }, - { - "description": "an object is not a boolean", - "data": {}, - "valid": false - }, - { - "description": "an array is not a boolean", - "data": [], - "valid": false - }, - { - "description": "true is a boolean", - "data": true, - "valid": true - }, - { - "description": "false is a boolean", - "data": false, - "valid": true - }, - { - "description": "null is not a boolean", - "data": null, - "valid": false - } - ] - }, - { - "description": "null type matches only the null object", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "null" - }, - "tests": [ - { - "description": "an integer is not null", - "data": 1, - "valid": false - }, - { - "description": "a float is not null", - "data": 1.1, - "valid": false - }, - { - "description": "zero is not null", - "data": 0, - "valid": false - }, - { - "description": "a string is not null", - "data": "foo", - "valid": false - }, - { - "description": "an empty string is not null", - "data": "", - "valid": false - }, - { - "description": "an object is not null", - "data": {}, - "valid": false - }, - { - "description": "an array is not null", - "data": [], - "valid": false - }, - { - "description": "true is not null", - "data": true, - "valid": false - }, - { - "description": "false is not null", - "data": false, - "valid": false - }, - { - "description": "null is null", - "data": null, - "valid": true - } - ] - }, - { - "description": "multiple types can be specified in an array", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": ["integer", "string"] - }, - "tests": [ - { - "description": "an integer is valid", - "data": 1, - "valid": true - }, - { - "description": "a string is valid", - "data": "foo", - "valid": true - }, - { - "description": "a float is invalid", - "data": 1.1, - "valid": false - }, - { - "description": "an object is invalid", - "data": {}, - "valid": false - }, - { - "description": "an array is invalid", - "data": [], - "valid": false - }, - { - "description": "a boolean is invalid", - "data": true, - "valid": false - }, - { - "description": "null is invalid", - "data": null, - "valid": false - } - ] - }, - { - "description": "type as array with one item", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": ["string"] - }, - "tests": [ - { - "description": "string is valid", - "data": "foo", - "valid": true - }, - { - "description": "number is invalid", - "data": 123, - "valid": false - } - ] - }, - { - "description": "type: array or object", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": ["array", "object"] - }, - "tests": [ - { - "description": "array is valid", - "data": [1,2,3], - "valid": true - }, - { - "description": "object is valid", - "data": {"foo": 123}, - "valid": true - }, - { - "description": "number is invalid", - "data": 123, - "valid": false - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - }, - { - "description": "null is invalid", - "data": null, - "valid": false - } - ] - }, - { - "description": "type: array, object or null", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": ["array", "object", "null"] - }, - "tests": [ - { - "description": "array is valid", - "data": [1,2,3], - "valid": true - }, - { - "description": "object is valid", - "data": {"foo": 123}, - "valid": true - }, - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "number is invalid", - "data": 123, - "valid": false - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/unevaluatedItems.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/unevaluatedItems.json deleted file mode 100644 index 08f6ef128..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/unevaluatedItems.json +++ /dev/null @@ -1,792 +0,0 @@ -[ - { - "description": "unevaluatedItems true", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "unevaluatedItems": true - }, - "tests": [ - { - "description": "with no unevaluated items", - "data": [], - "valid": true - }, - { - "description": "with unevaluated items", - "data": ["foo"], - "valid": true - } - ] - }, - { - "description": "unevaluatedItems false", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "unevaluatedItems": false - }, - "tests": [ - { - "description": "with no unevaluated items", - "data": [], - "valid": true - }, - { - "description": "with unevaluated items", - "data": ["foo"], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems as schema", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "unevaluatedItems": { "type": "string" } - }, - "tests": [ - { - "description": "with no unevaluated items", - "data": [], - "valid": true - }, - { - "description": "with valid unevaluated items", - "data": ["foo"], - "valid": true - }, - { - "description": "with invalid unevaluated items", - "data": [42], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems with uniform items", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "items": { "type": "string" }, - "unevaluatedItems": false - }, - "tests": [ - { - "description": "unevaluatedItems doesn't apply", - "data": ["foo", "bar"], - "valid": true - } - ] - }, - { - "description": "unevaluatedItems with tuple", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "prefixItems": [ - { "type": "string" } - ], - "unevaluatedItems": false - }, - "tests": [ - { - "description": "with no unevaluated items", - "data": ["foo"], - "valid": true - }, - { - "description": "with unevaluated items", - "data": ["foo", "bar"], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems with items and prefixItems", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "prefixItems": [ - { "type": "string" } - ], - "items": true, - "unevaluatedItems": false - }, - "tests": [ - { - "description": "unevaluatedItems doesn't apply", - "data": ["foo", 42], - "valid": true - } - ] - }, - { - "description": "unevaluatedItems with items", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "items": {"type": "number"}, - "unevaluatedItems": {"type": "string"} - }, - "tests": [ - { - "description": "valid under items", - "comment": "no elements are considered by unevaluatedItems", - "data": [5, 6, 7, 8], - "valid": true - }, - { - "description": "invalid under items", - "data": ["foo", "bar", "baz"], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems with nested tuple", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "prefixItems": [ - { "type": "string" } - ], - "allOf": [ - { - "prefixItems": [ - true, - { "type": "number" } - ] - } - ], - "unevaluatedItems": false - }, - "tests": [ - { - "description": "with no unevaluated items", - "data": ["foo", 42], - "valid": true - }, - { - "description": "with unevaluated items", - "data": ["foo", 42, true], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems with nested items", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "unevaluatedItems": {"type": "boolean"}, - "anyOf": [ - { "items": {"type": "string"} }, - true - ] - }, - "tests": [ - { - "description": "with only (valid) additional items", - "data": [true, false], - "valid": true - }, - { - "description": "with no additional items", - "data": ["yes", "no"], - "valid": true - }, - { - "description": "with invalid additional item", - "data": ["yes", false], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems with nested prefixItems and items", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "allOf": [ - { - "prefixItems": [ - { "type": "string" } - ], - "items": true - } - ], - "unevaluatedItems": false - }, - "tests": [ - { - "description": "with no additional items", - "data": ["foo"], - "valid": true - }, - { - "description": "with additional items", - "data": ["foo", 42, true], - "valid": true - } - ] - }, - { - "description": "unevaluatedItems with nested unevaluatedItems", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "allOf": [ - { - "prefixItems": [ - { "type": "string" } - ] - }, - { "unevaluatedItems": true } - ], - "unevaluatedItems": false - }, - "tests": [ - { - "description": "with no additional items", - "data": ["foo"], - "valid": true - }, - { - "description": "with additional items", - "data": ["foo", 42, true], - "valid": true - } - ] - }, - { - "description": "unevaluatedItems with anyOf", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "prefixItems": [ - { "const": "foo" } - ], - "anyOf": [ - { - "prefixItems": [ - true, - { "const": "bar" } - ] - }, - { - "prefixItems": [ - true, - true, - { "const": "baz" } - ] - } - ], - "unevaluatedItems": false - }, - "tests": [ - { - "description": "when one schema matches and has no unevaluated items", - "data": ["foo", "bar"], - "valid": true - }, - { - "description": "when one schema matches and has unevaluated items", - "data": ["foo", "bar", 42], - "valid": false - }, - { - "description": "when two schemas match and has no unevaluated items", - "data": ["foo", "bar", "baz"], - "valid": true - }, - { - "description": "when two schemas match and has unevaluated items", - "data": ["foo", "bar", "baz", 42], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems with oneOf", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "prefixItems": [ - { "const": "foo" } - ], - "oneOf": [ - { - "prefixItems": [ - true, - { "const": "bar" } - ] - }, - { - "prefixItems": [ - true, - { "const": "baz" } - ] - } - ], - "unevaluatedItems": false - }, - "tests": [ - { - "description": "with no unevaluated items", - "data": ["foo", "bar"], - "valid": true - }, - { - "description": "with unevaluated items", - "data": ["foo", "bar", 42], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems with not", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "prefixItems": [ - { "const": "foo" } - ], - "not": { - "not": { - "prefixItems": [ - true, - { "const": "bar" } - ] - } - }, - "unevaluatedItems": false - }, - "tests": [ - { - "description": "with unevaluated items", - "data": ["foo", "bar"], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems with if/then/else", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "prefixItems": [ - { "const": "foo" } - ], - "if": { - "prefixItems": [ - true, - { "const": "bar" } - ] - }, - "then": { - "prefixItems": [ - true, - true, - { "const": "then" } - ] - }, - "else": { - "prefixItems": [ - true, - true, - true, - { "const": "else" } - ] - }, - "unevaluatedItems": false - }, - "tests": [ - { - "description": "when if matches and it has no unevaluated items", - "data": ["foo", "bar", "then"], - "valid": true - }, - { - "description": "when if matches and it has unevaluated items", - "data": ["foo", "bar", "then", "else"], - "valid": false - }, - { - "description": "when if doesn't match and it has no unevaluated items", - "data": ["foo", 42, 42, "else"], - "valid": true - }, - { - "description": "when if doesn't match and it has unevaluated items", - "data": ["foo", 42, 42, "else", 42], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems with boolean schemas", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "allOf": [true], - "unevaluatedItems": false - }, - "tests": [ - { - "description": "with no unevaluated items", - "data": [], - "valid": true - }, - { - "description": "with unevaluated items", - "data": ["foo"], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems with $ref", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$ref": "#/$defs/bar", - "prefixItems": [ - { "type": "string" } - ], - "unevaluatedItems": false, - "$defs": { - "bar": { - "prefixItems": [ - true, - { "type": "string" } - ] - } - } - }, - "tests": [ - { - "description": "with no unevaluated items", - "data": ["foo", "bar"], - "valid": true - }, - { - "description": "with unevaluated items", - "data": ["foo", "bar", "baz"], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems before $ref", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "unevaluatedItems": false, - "prefixItems": [ - { "type": "string" } - ], - "$ref": "#/$defs/bar", - "$defs": { - "bar": { - "prefixItems": [ - true, - { "type": "string" } - ] - } - } - }, - "tests": [ - { - "description": "with no unevaluated items", - "data": ["foo", "bar"], - "valid": true - }, - { - "description": "with unevaluated items", - "data": ["foo", "bar", "baz"], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems with $dynamicRef", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "https://example.com/unevaluated-items-with-dynamic-ref/derived", - - "$ref": "./baseSchema", - - "$defs": { - "derived": { - "$dynamicAnchor": "addons", - "prefixItems": [ - true, - { "type": "string" } - ] - }, - "baseSchema": { - "$id": "./baseSchema", - - "$comment": "unevaluatedItems comes first so it's more likely to catch bugs with implementations that are sensitive to keyword ordering", - "unevaluatedItems": false, - "type": "array", - "prefixItems": [ - { "type": "string" } - ], - "$dynamicRef": "#addons" - } - } - }, - "tests": [ - { - "description": "with no unevaluated items", - "data": ["foo", "bar"], - "valid": true - }, - { - "description": "with unevaluated items", - "data": ["foo", "bar", "baz"], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems can't see inside cousins", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "allOf": [ - { - "prefixItems": [ true ] - }, - { "unevaluatedItems": false } - ] - }, - "tests": [ - { - "description": "always fails", - "data": [ 1 ], - "valid": false - } - ] - }, - { - "description": "item is evaluated in an uncle schema to unevaluatedItems", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "properties": { - "foo": { - "prefixItems": [ - { "type": "string" } - ], - "unevaluatedItems": false - } - }, - "anyOf": [ - { - "properties": { - "foo": { - "prefixItems": [ - true, - { "type": "string" } - ] - } - } - } - ] - }, - "tests": [ - { - "description": "no extra items", - "data": { - "foo": [ - "test" - ] - }, - "valid": true - }, - { - "description": "uncle keyword evaluation is not significant", - "data": { - "foo": [ - "test", - "test" - ] - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedItems depends on adjacent contains", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "prefixItems": [true], - "contains": {"type": "string"}, - "unevaluatedItems": false - }, - "tests": [ - { - "description": "second item is evaluated by contains", - "data": [ 1, "foo" ], - "valid": true - }, - { - "description": "contains fails, second item is not evaluated", - "data": [ 1, 2 ], - "valid": false - }, - { - "description": "contains passes, second item is not evaluated", - "data": [ 1, 2, "foo" ], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems depends on multiple nested contains", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "allOf": [ - { "contains": { "multipleOf": 2 } }, - { "contains": { "multipleOf": 3 } } - ], - "unevaluatedItems": { "multipleOf": 5 } - }, - "tests": [ - { - "description": "5 not evaluated, passes unevaluatedItems", - "data": [ 2, 3, 4, 5, 6 ], - "valid": true - }, - { - "description": "7 not evaluated, fails unevaluatedItems", - "data": [ 2, 3, 4, 7, 8 ], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems and contains interact to control item dependency relationship", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "if": { - "contains": {"const": "a"} - }, - "then": { - "if": { - "contains": {"const": "b"} - }, - "then": { - "if": { - "contains": {"const": "c"} - } - } - }, - "unevaluatedItems": false - }, - "tests": [ - { - "description": "empty array is valid", - "data": [], - "valid": true - }, - { - "description": "only a's are valid", - "data": [ "a", "a" ], - "valid": true - }, - { - "description": "a's and b's are valid", - "data": [ "a", "b", "a", "b", "a" ], - "valid": true - }, - { - "description": "a's, b's and c's are valid", - "data": [ "c", "a", "c", "c", "b", "a" ], - "valid": true - }, - { - "description": "only b's are invalid", - "data": [ "b", "b" ], - "valid": false - }, - { - "description": "only c's are invalid", - "data": [ "c", "c" ], - "valid": false - }, - { - "description": "only b's and c's are invalid", - "data": [ "c", "b", "c", "b", "c" ], - "valid": false - }, - { - "description": "only a's and c's are invalid", - "data": [ "c", "a", "c", "a", "c" ], - "valid": false - } - ] - }, - { - "description": "non-array instances are valid", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "unevaluatedItems": false - }, - "tests": [ - { - "description": "ignores booleans", - "data": true, - "valid": true - }, - { - "description": "ignores integers", - "data": 123, - "valid": true - }, - { - "description": "ignores floats", - "data": 1.0, - "valid": true - }, - { - "description": "ignores objects", - "data": {}, - "valid": true - }, - { - "description": "ignores strings", - "data": "foo", - "valid": true - }, - { - "description": "ignores null", - "data": null, - "valid": true - } - ] - }, - { - "description": "unevaluatedItems with null instance elements", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "unevaluatedItems": { - "type": "null" - } - }, - "tests": [ - { - "description": "allows null elements", - "data": [ null ], - "valid": true - } - ] - }, - { - "description": "unevaluatedItems can see annotations from if without then and else", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "if": { - "prefixItems": [{"const": "a"}] - }, - "unevaluatedItems": false - }, - "tests": [ - { - "description": "valid in case if is evaluated", - "data": [ "a" ], - "valid": true - }, - { - "description": "invalid in case if is evaluated", - "data": [ "b" ], - "valid": false - } - - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/unevaluatedProperties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/unevaluatedProperties.json deleted file mode 100644 index 13fe6e03a..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/unevaluatedProperties.json +++ /dev/null @@ -1,1676 +0,0 @@ -[ - { - "description": "unevaluatedProperties true", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "unevaluatedProperties": true - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": {}, - "valid": true - }, - { - "description": "with unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": true - } - ] - }, - { - "description": "unevaluatedProperties schema", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "unevaluatedProperties": { - "type": "string", - "minLength": 3 - } - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": {}, - "valid": true - }, - { - "description": "with valid unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with invalid unevaluated properties", - "data": { - "foo": "fo" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties false", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": {}, - "valid": true - }, - { - "description": "with unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with adjacent properties", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with adjacent patternProperties", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "patternProperties": { - "^foo": { "type": "string" } - }, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with adjacent additionalProperties", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "additionalProperties": true, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no additional properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with additional properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - } - ] - }, - { - "description": "unevaluatedProperties with nested properties", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "allOf": [ - { - "properties": { - "bar": { "type": "string" } - } - } - ], - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no additional properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - }, - { - "description": "with additional properties", - "data": { - "foo": "foo", - "bar": "bar", - "baz": "baz" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with nested patternProperties", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "allOf": [ - { - "patternProperties": { - "^bar": { "type": "string" } - } - } - ], - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no additional properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - }, - { - "description": "with additional properties", - "data": { - "foo": "foo", - "bar": "bar", - "baz": "baz" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with nested additionalProperties", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "allOf": [ - { - "additionalProperties": true - } - ], - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no additional properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with additional properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - } - ] - }, - { - "description": "unevaluatedProperties with nested unevaluatedProperties", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "allOf": [ - { - "unevaluatedProperties": true - } - ], - "unevaluatedProperties": { - "type": "string", - "maxLength": 2 - } - }, - "tests": [ - { - "description": "with no nested unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with nested unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - } - ] - }, - { - "description": "unevaluatedProperties with anyOf", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "anyOf": [ - { - "properties": { - "bar": { "const": "bar" } - }, - "required": ["bar"] - }, - { - "properties": { - "baz": { "const": "baz" } - }, - "required": ["baz"] - }, - { - "properties": { - "quux": { "const": "quux" } - }, - "required": ["quux"] - } - ], - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "when one matches and has no unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - }, - { - "description": "when one matches and has unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar", - "baz": "not-baz" - }, - "valid": false - }, - { - "description": "when two match and has no unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar", - "baz": "baz" - }, - "valid": true - }, - { - "description": "when two match and has unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar", - "baz": "baz", - "quux": "not-quux" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with oneOf", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "oneOf": [ - { - "properties": { - "bar": { "const": "bar" } - }, - "required": ["bar"] - }, - { - "properties": { - "baz": { "const": "baz" } - }, - "required": ["baz"] - } - ], - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - }, - { - "description": "with unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar", - "quux": "quux" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with not", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "not": { - "not": { - "properties": { - "bar": { "const": "bar" } - }, - "required": ["bar"] - } - }, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with if/then/else", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "if": { - "properties": { - "foo": { "const": "then" } - }, - "required": ["foo"] - }, - "then": { - "properties": { - "bar": { "type": "string" } - }, - "required": ["bar"] - }, - "else": { - "properties": { - "baz": { "type": "string" } - }, - "required": ["baz"] - }, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "when if is true and has no unevaluated properties", - "data": { - "foo": "then", - "bar": "bar" - }, - "valid": true - }, - { - "description": "when if is true and has unevaluated properties", - "data": { - "foo": "then", - "bar": "bar", - "baz": "baz" - }, - "valid": false - }, - { - "description": "when if is false and has no unevaluated properties", - "data": { - "baz": "baz" - }, - "valid": true - }, - { - "description": "when if is false and has unevaluated properties", - "data": { - "foo": "else", - "baz": "baz" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with if/then/else, then not defined", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "if": { - "properties": { - "foo": { "const": "then" } - }, - "required": ["foo"] - }, - "else": { - "properties": { - "baz": { "type": "string" } - }, - "required": ["baz"] - }, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "when if is true and has no unevaluated properties", - "data": { - "foo": "then", - "bar": "bar" - }, - "valid": false - }, - { - "description": "when if is true and has unevaluated properties", - "data": { - "foo": "then", - "bar": "bar", - "baz": "baz" - }, - "valid": false - }, - { - "description": "when if is false and has no unevaluated properties", - "data": { - "baz": "baz" - }, - "valid": true - }, - { - "description": "when if is false and has unevaluated properties", - "data": { - "foo": "else", - "baz": "baz" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with if/then/else, else not defined", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "if": { - "properties": { - "foo": { "const": "then" } - }, - "required": ["foo"] - }, - "then": { - "properties": { - "bar": { "type": "string" } - }, - "required": ["bar"] - }, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "when if is true and has no unevaluated properties", - "data": { - "foo": "then", - "bar": "bar" - }, - "valid": true - }, - { - "description": "when if is true and has unevaluated properties", - "data": { - "foo": "then", - "bar": "bar", - "baz": "baz" - }, - "valid": false - }, - { - "description": "when if is false and has no unevaluated properties", - "data": { - "baz": "baz" - }, - "valid": false - }, - { - "description": "when if is false and has unevaluated properties", - "data": { - "foo": "else", - "baz": "baz" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with dependentSchemas", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "dependentSchemas": { - "foo": { - "properties": { - "bar": { "const": "bar" } - }, - "required": ["bar"] - } - }, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - }, - { - "description": "with unevaluated properties", - "data": { - "bar": "bar" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with boolean schemas", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "allOf": [true], - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with unevaluated properties", - "data": { - "bar": "bar" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with $ref", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "$ref": "#/$defs/bar", - "properties": { - "foo": { "type": "string" } - }, - "unevaluatedProperties": false, - "$defs": { - "bar": { - "properties": { - "bar": { "type": "string" } - } - } - } - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - }, - { - "description": "with unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar", - "baz": "baz" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties before $ref", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "unevaluatedProperties": false, - "properties": { - "foo": { "type": "string" } - }, - "$ref": "#/$defs/bar", - "$defs": { - "bar": { - "properties": { - "bar": { "type": "string" } - } - } - } - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - }, - { - "description": "with unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar", - "baz": "baz" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with $dynamicRef", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$id": "https://example.com/unevaluated-properties-with-dynamic-ref/derived", - - "$ref": "./baseSchema", - - "$defs": { - "derived": { - "$dynamicAnchor": "addons", - "properties": { - "bar": { "type": "string" } - } - }, - "baseSchema": { - "$id": "./baseSchema", - - "$comment": "unevaluatedProperties comes first so it's more likely to catch bugs with implementations that are sensitive to keyword ordering", - "unevaluatedProperties": false, - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "$dynamicRef": "#addons" - } - } - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - }, - { - "description": "with unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar", - "baz": "baz" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties can't see inside cousins", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "allOf": [ - { - "properties": { - "foo": true - } - }, - { - "unevaluatedProperties": false - } - ] - }, - "tests": [ - { - "description": "always fails", - "data": { - "foo": 1 - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties can't see inside cousins (reverse order)", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "allOf": [ - { - "unevaluatedProperties": false - }, - { - "properties": { - "foo": true - } - } - ] - }, - "tests": [ - { - "description": "always fails", - "data": { - "foo": 1 - }, - "valid": false - } - ] - }, - { - "description": "nested unevaluatedProperties, outer false, inner true, properties outside", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "allOf": [ - { - "unevaluatedProperties": true - } - ], - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no nested unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with nested unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - } - ] - }, - { - "description": "nested unevaluatedProperties, outer false, inner true, properties inside", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "allOf": [ - { - "properties": { - "foo": { "type": "string" } - }, - "unevaluatedProperties": true - } - ], - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no nested unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with nested unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - } - ] - }, - { - "description": "nested unevaluatedProperties, outer true, inner false, properties outside", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "allOf": [ - { - "unevaluatedProperties": false - } - ], - "unevaluatedProperties": true - }, - "tests": [ - { - "description": "with no nested unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": false - }, - { - "description": "with nested unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": false - } - ] - }, - { - "description": "nested unevaluatedProperties, outer true, inner false, properties inside", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "allOf": [ - { - "properties": { - "foo": { "type": "string" } - }, - "unevaluatedProperties": false - } - ], - "unevaluatedProperties": true - }, - "tests": [ - { - "description": "with no nested unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with nested unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": false - } - ] - }, - { - "description": "cousin unevaluatedProperties, true and false, true with properties", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "allOf": [ - { - "properties": { - "foo": { "type": "string" } - }, - "unevaluatedProperties": true - }, - { - "unevaluatedProperties": false - } - ] - }, - "tests": [ - { - "description": "with no nested unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": false - }, - { - "description": "with nested unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": false - } - ] - }, - { - "description": "cousin unevaluatedProperties, true and false, false with properties", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "allOf": [ - { - "unevaluatedProperties": true - }, - { - "properties": { - "foo": { "type": "string" } - }, - "unevaluatedProperties": false - } - ] - }, - "tests": [ - { - "description": "with no nested unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with nested unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": false - } - ] - }, - { - "description": "property is evaluated in an uncle schema to unevaluatedProperties", - "comment": "see https://stackoverflow.com/questions/66936884/deeply-nested-unevaluatedproperties-and-their-expectations", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "properties": { - "foo": { - "type": "object", - "properties": { - "bar": { - "type": "string" - } - }, - "unevaluatedProperties": false - } - }, - "anyOf": [ - { - "properties": { - "foo": { - "properties": { - "faz": { - "type": "string" - } - } - } - } - } - ] - }, - "tests": [ - { - "description": "no extra properties", - "data": { - "foo": { - "bar": "test" - } - }, - "valid": true - }, - { - "description": "uncle keyword evaluation is not significant", - "data": { - "foo": { - "bar": "test", - "faz": "test" - } - }, - "valid": false - } - ] - }, - { - "description": "in-place applicator siblings, allOf has unevaluated", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "allOf": [ - { - "properties": { - "foo": true - }, - "unevaluatedProperties": false - } - ], - "anyOf": [ - { - "properties": { - "bar": true - } - } - ] - }, - "tests": [ - { - "description": "base case: both properties present", - "data": { - "foo": 1, - "bar": 1 - }, - "valid": false - }, - { - "description": "in place applicator siblings, bar is missing", - "data": { - "foo": 1 - }, - "valid": true - }, - { - "description": "in place applicator siblings, foo is missing", - "data": { - "bar": 1 - }, - "valid": false - } - ] - }, - { - "description": "in-place applicator siblings, anyOf has unevaluated", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "allOf": [ - { - "properties": { - "foo": true - } - } - ], - "anyOf": [ - { - "properties": { - "bar": true - }, - "unevaluatedProperties": false - } - ] - }, - "tests": [ - { - "description": "base case: both properties present", - "data": { - "foo": 1, - "bar": 1 - }, - "valid": false - }, - { - "description": "in place applicator siblings, bar is missing", - "data": { - "foo": 1 - }, - "valid": false - }, - { - "description": "in place applicator siblings, foo is missing", - "data": { - "bar": 1 - }, - "valid": true - } - ] - }, - { - "description": "unevaluatedProperties + single cyclic ref", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "type": "object", - "properties": { - "x": { "$ref": "#" } - }, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "Empty is valid", - "data": {}, - "valid": true - }, - { - "description": "Single is valid", - "data": { "x": {} }, - "valid": true - }, - { - "description": "Unevaluated on 1st level is invalid", - "data": { "x": {}, "y": {} }, - "valid": false - }, - { - "description": "Nested is valid", - "data": { "x": { "x": {} } }, - "valid": true - }, - { - "description": "Unevaluated on 2nd level is invalid", - "data": { "x": { "x": {}, "y": {} } }, - "valid": false - }, - { - "description": "Deep nested is valid", - "data": { "x": { "x": { "x": {} } } }, - "valid": true - }, - { - "description": "Unevaluated on 3rd level is invalid", - "data": { "x": { "x": { "x": {}, "y": {} } } }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties + ref inside allOf / oneOf", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$defs": { - "one": { - "properties": { "a": true } - }, - "two": { - "required": ["x"], - "properties": { "x": true } - } - }, - "allOf": [ - { "$ref": "#/$defs/one" }, - { "properties": { "b": true } }, - { - "oneOf": [ - { "$ref": "#/$defs/two" }, - { - "required": ["y"], - "properties": { "y": true } - } - ] - } - ], - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "Empty is invalid (no x or y)", - "data": {}, - "valid": false - }, - { - "description": "a and b are invalid (no x or y)", - "data": { "a": 1, "b": 1 }, - "valid": false - }, - { - "description": "x and y are invalid", - "data": { "x": 1, "y": 1 }, - "valid": false - }, - { - "description": "a and x are valid", - "data": { "a": 1, "x": 1 }, - "valid": true - }, - { - "description": "a and y are valid", - "data": { "a": 1, "y": 1 }, - "valid": true - }, - { - "description": "a and b and x are valid", - "data": { "a": 1, "b": 1, "x": 1 }, - "valid": true - }, - { - "description": "a and b and y are valid", - "data": { "a": 1, "b": 1, "y": 1 }, - "valid": true - }, - { - "description": "a and b and x and y are invalid", - "data": { "a": 1, "b": 1, "x": 1, "y": 1 }, - "valid": false - } - ] - }, - { - "description": "dynamic evaluation inside nested refs", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "$defs": { - "one": { - "oneOf": [ - { "$ref": "#/$defs/two" }, - { "required": ["b"], "properties": { "b": true } }, - { "required": ["xx"], "patternProperties": { "x": true } }, - { "required": ["all"], "unevaluatedProperties": true } - ] - }, - "two": { - "oneOf": [ - { "required": ["c"], "properties": { "c": true } }, - { "required": ["d"], "properties": { "d": true } } - ] - } - }, - "oneOf": [ - { "$ref": "#/$defs/one" }, - { "required": ["a"], "properties": { "a": true } } - ], - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "Empty is invalid", - "data": {}, - "valid": false - }, - { - "description": "a is valid", - "data": { "a": 1 }, - "valid": true - }, - { - "description": "b is valid", - "data": { "b": 1 }, - "valid": true - }, - { - "description": "c is valid", - "data": { "c": 1 }, - "valid": true - }, - { - "description": "d is valid", - "data": { "d": 1 }, - "valid": true - }, - { - "description": "a + b is invalid", - "data": { "a": 1, "b": 1 }, - "valid": false - }, - { - "description": "a + c is invalid", - "data": { "a": 1, "c": 1 }, - "valid": false - }, - { - "description": "a + d is invalid", - "data": { "a": 1, "d": 1 }, - "valid": false - }, - { - "description": "b + c is invalid", - "data": { "b": 1, "c": 1 }, - "valid": false - }, - { - "description": "b + d is invalid", - "data": { "b": 1, "d": 1 }, - "valid": false - }, - { - "description": "c + d is invalid", - "data": { "c": 1, "d": 1 }, - "valid": false - }, - { - "description": "xx is valid", - "data": { "xx": 1 }, - "valid": true - }, - { - "description": "xx + foox is valid", - "data": { "xx": 1, "foox": 1 }, - "valid": true - }, - { - "description": "xx + foo is invalid", - "data": { "xx": 1, "foo": 1 }, - "valid": false - }, - { - "description": "xx + a is invalid", - "data": { "xx": 1, "a": 1 }, - "valid": false - }, - { - "description": "xx + b is invalid", - "data": { "xx": 1, "b": 1 }, - "valid": false - }, - { - "description": "xx + c is invalid", - "data": { "xx": 1, "c": 1 }, - "valid": false - }, - { - "description": "xx + d is invalid", - "data": { "xx": 1, "d": 1 }, - "valid": false - }, - { - "description": "all is valid", - "data": { "all": 1 }, - "valid": true - }, - { - "description": "all + foo is valid", - "data": { "all": 1, "foo": 1 }, - "valid": true - }, - { - "description": "all + a is invalid", - "data": { "all": 1, "a": 1 }, - "valid": false - } - ] - }, - { - "description": "non-object instances are valid", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "ignores booleans", - "data": true, - "valid": true - }, - { - "description": "ignores integers", - "data": 123, - "valid": true - }, - { - "description": "ignores floats", - "data": 1.0, - "valid": true - }, - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores strings", - "data": "foo", - "valid": true - }, - { - "description": "ignores null", - "data": null, - "valid": true - } - ] - }, - { - "description": "unevaluatedProperties with null valued instance properties", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "unevaluatedProperties": { - "type": "null" - } - }, - "tests": [ - { - "description": "allows null valued properties", - "data": {"foo": null}, - "valid": true - } - ] - }, - { - "description": "unevaluatedProperties can see inside propertyDependencies", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "properties": { - "foo": { - "type": "string" - } - }, - "propertyDependencies": { - "foo": { - "foo1": { - "properties": { - "bar": true - } - } - } - }, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "allows bar if foo = foo1", - "data": { - "foo": "foo1", - "bar": 42 - }, - "valid": true - }, - { - "description": "disallows bar if foo != foo1", - "data": { - "foo": "foo2", - "bar": 42 - }, - "valid": false - }, - { - "description": "disallows bar if foo is absent", - "data": { - "bar": 42 - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties not affected by propertyNames", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "propertyNames": {"maxLength": 1}, - "unevaluatedProperties": { - "type": "number" - } - }, - "tests": [ - { - "description": "allows only number properties", - "data": {"a": 1}, - "valid": true - }, - { - "description": "string property is invalid", - "data": {"a": "b"}, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties can see annotations from if without then and else", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "if": { - "patternProperties": { - "foo": { - "type": "string" - } - } - }, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "valid in case if is evaluated", - "data": { - "foo": "a" - }, - "valid": true - }, - { - "description": "invalid in case if is evaluated", - "data": { - "bar": "a" - }, - "valid": false - } - ] - }, - { - "description": "propertyDependencies with unevaluatedProperties" , - "schema" : { - "$schema": "https://json-schema.org/draft/next/schema", - "properties" : {"foo2" : {}}, - "propertyDependencies": { - "foo" : {}, - "foo2": { - "bar": { - "properties": { - "buz": {} - } - } - } - }, - "unevaluatedProperties": false - }, - - "tests": [ - { - "description": "unevaluatedProperties doesn't consider propertyDependencies" , - "data": {"foo": "bar"}, - "valid": false - }, - { - "description": "unevaluatedProperties sees buz when foo2 is present", - "data": {"foo2": "bar", "buz": ""}, - "valid": true - }, - { - "description": "unevaluatedProperties doesn't see buz when foo2 is absent", - "data": {"buz": ""}, - "valid": false - } - ] - }, - { - "description": "dependentSchemas with unevaluatedProperties", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "properties": {"foo2": {}}, - "dependentSchemas": { - "foo" : {}, - "foo2": { - "properties": { - "bar":{} - } - } - }, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "unevaluatedProperties doesn't consider dependentSchemas", - "data": {"foo": ""}, - "valid": false - }, - { - "description": "unevaluatedProperties doesn't see bar when foo2 is absent", - "data": {"bar": ""}, - "valid": false - }, - { - "description": "unevaluatedProperties sees bar when foo2 is present", - "data": {"foo2": "", "bar": ""}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/uniqueItems.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/uniqueItems.json deleted file mode 100644 index b16dd505b..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/uniqueItems.json +++ /dev/null @@ -1,419 +0,0 @@ -[ - { - "description": "uniqueItems validation", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "uniqueItems": true - }, - "tests": [ - { - "description": "unique array of integers is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "non-unique array of integers is invalid", - "data": [1, 1], - "valid": false - }, - { - "description": "non-unique array of more than two integers is invalid", - "data": [1, 2, 1], - "valid": false - }, - { - "description": "numbers are unique if mathematically unequal", - "data": [1.0, 1.00, 1], - "valid": false - }, - { - "description": "false is not equal to zero", - "data": [0, false], - "valid": true - }, - { - "description": "true is not equal to one", - "data": [1, true], - "valid": true - }, - { - "description": "unique array of strings is valid", - "data": ["foo", "bar", "baz"], - "valid": true - }, - { - "description": "non-unique array of strings is invalid", - "data": ["foo", "bar", "foo"], - "valid": false - }, - { - "description": "unique array of objects is valid", - "data": [{"foo": "bar"}, {"foo": "baz"}], - "valid": true - }, - { - "description": "non-unique array of objects is invalid", - "data": [{"foo": "bar"}, {"foo": "bar"}], - "valid": false - }, - { - "description": "property order of array of objects is ignored", - "data": [{"foo": "bar", "bar": "foo"}, {"bar": "foo", "foo": "bar"}], - "valid": false - }, - { - "description": "unique array of nested objects is valid", - "data": [ - {"foo": {"bar" : {"baz" : true}}}, - {"foo": {"bar" : {"baz" : false}}} - ], - "valid": true - }, - { - "description": "non-unique array of nested objects is invalid", - "data": [ - {"foo": {"bar" : {"baz" : true}}}, - {"foo": {"bar" : {"baz" : true}}} - ], - "valid": false - }, - { - "description": "unique array of arrays is valid", - "data": [["foo"], ["bar"]], - "valid": true - }, - { - "description": "non-unique array of arrays is invalid", - "data": [["foo"], ["foo"]], - "valid": false - }, - { - "description": "non-unique array of more than two arrays is invalid", - "data": [["foo"], ["bar"], ["foo"]], - "valid": false - }, - { - "description": "1 and true are unique", - "data": [1, true], - "valid": true - }, - { - "description": "0 and false are unique", - "data": [0, false], - "valid": true - }, - { - "description": "[1] and [true] are unique", - "data": [[1], [true]], - "valid": true - }, - { - "description": "[0] and [false] are unique", - "data": [[0], [false]], - "valid": true - }, - { - "description": "nested [1] and [true] are unique", - "data": [[[1], "foo"], [[true], "foo"]], - "valid": true - }, - { - "description": "nested [0] and [false] are unique", - "data": [[[0], "foo"], [[false], "foo"]], - "valid": true - }, - { - "description": "unique heterogeneous types are valid", - "data": [{}, [1], true, null, 1, "{}"], - "valid": true - }, - { - "description": "non-unique heterogeneous types are invalid", - "data": [{}, [1], true, null, {}, 1], - "valid": false - }, - { - "description": "different objects are unique", - "data": [{"a": 1, "b": 2}, {"a": 2, "b": 1}], - "valid": true - }, - { - "description": "objects are non-unique despite key order", - "data": [{"a": 1, "b": 2}, {"b": 2, "a": 1}], - "valid": false - }, - { - "description": "{\"a\": false} and {\"a\": 0} are unique", - "data": [{"a": false}, {"a": 0}], - "valid": true - }, - { - "description": "{\"a\": true} and {\"a\": 1} are unique", - "data": [{"a": true}, {"a": 1}], - "valid": true - } - ] - }, - { - "description": "uniqueItems with an array of items", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "prefixItems": [{"type": "boolean"}, {"type": "boolean"}], - "uniqueItems": true - }, - "tests": [ - { - "description": "[false, true] from items array is valid", - "data": [false, true], - "valid": true - }, - { - "description": "[true, false] from items array is valid", - "data": [true, false], - "valid": true - }, - { - "description": "[false, false] from items array is not valid", - "data": [false, false], - "valid": false - }, - { - "description": "[true, true] from items array is not valid", - "data": [true, true], - "valid": false - }, - { - "description": "unique array extended from [false, true] is valid", - "data": [false, true, "foo", "bar"], - "valid": true - }, - { - "description": "unique array extended from [true, false] is valid", - "data": [true, false, "foo", "bar"], - "valid": true - }, - { - "description": "non-unique array extended from [false, true] is not valid", - "data": [false, true, "foo", "foo"], - "valid": false - }, - { - "description": "non-unique array extended from [true, false] is not valid", - "data": [true, false, "foo", "foo"], - "valid": false - } - ] - }, - { - "description": "uniqueItems with an array of items and additionalItems=false", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "prefixItems": [{"type": "boolean"}, {"type": "boolean"}], - "uniqueItems": true, - "items": false - }, - "tests": [ - { - "description": "[false, true] from items array is valid", - "data": [false, true], - "valid": true - }, - { - "description": "[true, false] from items array is valid", - "data": [true, false], - "valid": true - }, - { - "description": "[false, false] from items array is not valid", - "data": [false, false], - "valid": false - }, - { - "description": "[true, true] from items array is not valid", - "data": [true, true], - "valid": false - }, - { - "description": "extra items are invalid even if unique", - "data": [false, true, null], - "valid": false - } - ] - }, - { - "description": "uniqueItems=false validation", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "uniqueItems": false - }, - "tests": [ - { - "description": "unique array of integers is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "non-unique array of integers is valid", - "data": [1, 1], - "valid": true - }, - { - "description": "numbers are unique if mathematically unequal", - "data": [1.0, 1.00, 1], - "valid": true - }, - { - "description": "false is not equal to zero", - "data": [0, false], - "valid": true - }, - { - "description": "true is not equal to one", - "data": [1, true], - "valid": true - }, - { - "description": "unique array of objects is valid", - "data": [{"foo": "bar"}, {"foo": "baz"}], - "valid": true - }, - { - "description": "non-unique array of objects is valid", - "data": [{"foo": "bar"}, {"foo": "bar"}], - "valid": true - }, - { - "description": "unique array of nested objects is valid", - "data": [ - {"foo": {"bar" : {"baz" : true}}}, - {"foo": {"bar" : {"baz" : false}}} - ], - "valid": true - }, - { - "description": "non-unique array of nested objects is valid", - "data": [ - {"foo": {"bar" : {"baz" : true}}}, - {"foo": {"bar" : {"baz" : true}}} - ], - "valid": true - }, - { - "description": "unique array of arrays is valid", - "data": [["foo"], ["bar"]], - "valid": true - }, - { - "description": "non-unique array of arrays is valid", - "data": [["foo"], ["foo"]], - "valid": true - }, - { - "description": "1 and true are unique", - "data": [1, true], - "valid": true - }, - { - "description": "0 and false are unique", - "data": [0, false], - "valid": true - }, - { - "description": "unique heterogeneous types are valid", - "data": [{}, [1], true, null, 1], - "valid": true - }, - { - "description": "non-unique heterogeneous types are valid", - "data": [{}, [1], true, null, {}, 1], - "valid": true - } - ] - }, - { - "description": "uniqueItems=false with an array of items", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "prefixItems": [{"type": "boolean"}, {"type": "boolean"}], - "uniqueItems": false - }, - "tests": [ - { - "description": "[false, true] from items array is valid", - "data": [false, true], - "valid": true - }, - { - "description": "[true, false] from items array is valid", - "data": [true, false], - "valid": true - }, - { - "description": "[false, false] from items array is valid", - "data": [false, false], - "valid": true - }, - { - "description": "[true, true] from items array is valid", - "data": [true, true], - "valid": true - }, - { - "description": "unique array extended from [false, true] is valid", - "data": [false, true, "foo", "bar"], - "valid": true - }, - { - "description": "unique array extended from [true, false] is valid", - "data": [true, false, "foo", "bar"], - "valid": true - }, - { - "description": "non-unique array extended from [false, true] is valid", - "data": [false, true, "foo", "foo"], - "valid": true - }, - { - "description": "non-unique array extended from [true, false] is valid", - "data": [true, false, "foo", "foo"], - "valid": true - } - ] - }, - { - "description": "uniqueItems=false with an array of items and additionalItems=false", - "schema": { - "$schema": "https://json-schema.org/draft/next/schema", - "prefixItems": [{"type": "boolean"}, {"type": "boolean"}], - "uniqueItems": false, - "items": false - }, - "tests": [ - { - "description": "[false, true] from items array is valid", - "data": [false, true], - "valid": true - }, - { - "description": "[true, false] from items array is valid", - "data": [true, false], - "valid": true - }, - { - "description": "[false, false] from items array is valid", - "data": [false, false], - "valid": true - }, - { - "description": "[true, true] from items array is valid", - "data": [true, true], - "valid": true - }, - { - "description": "extra items are invalid even if unique", - "data": [false, true, null], - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/vocabulary.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/vocabulary.json deleted file mode 100644 index f25b9e125..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft-next/vocabulary.json +++ /dev/null @@ -1,57 +0,0 @@ -[ - { - "description": "schema that uses custom metaschema with with no validation vocabulary", - "schema": { - "$id": "https://schema/using/no/validation", - "$schema": "http://localhost:1234/draft-next/metaschema-no-validation.json", - "properties": { - "badProperty": false, - "numberProperty": { - "minimum": 10 - } - } - }, - "tests": [ - { - "description": "applicator vocabulary still works", - "data": { - "badProperty": "this property should not exist" - }, - "valid": false - }, - { - "description": "no validation: valid number", - "data": { - "numberProperty": 20 - }, - "valid": true - }, - { - "description": "no validation: invalid number, but it still validates", - "data": { - "numberProperty": 1 - }, - "valid": true - } - ] - }, - { - "description": "ignore unrecognized optional vocabulary", - "schema": { - "$schema": "http://localhost:1234/draft-next/metaschema-optional-vocabulary.json", - "type": "number" - }, - "tests": [ - { - "description": "string value", - "data": "foobar", - "valid": false - }, - { - "description": "number value", - "data": 20, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/additionalItems.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/additionalItems.json deleted file mode 100644 index 9a7ae4f8a..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/additionalItems.json +++ /dev/null @@ -1,221 +0,0 @@ -[ - { - "description": "additionalItems as schema", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "items": [{}], - "additionalItems": {"type": "integer"} - }, - "tests": [ - { - "description": "additional items match schema", - "data": [ null, 2, 3, 4 ], - "valid": true - }, - { - "description": "additional items do not match schema", - "data": [ null, 2, 3, "foo" ], - "valid": false - } - ] - }, - { - "description": "when items is schema, additionalItems does nothing", - "schema": { - "$schema":"https://json-schema.org/draft/2019-09/schema", - "items": { - "type": "integer" - }, - "additionalItems": { - "type": "string" - } - }, - "tests": [ - { - "description": "valid with a array of type integers", - "data": [1,2,3], - "valid": true - }, - { - "description": "invalid with a array of mixed types", - "data": [1,"2","3"], - "valid": false - } - ] - }, - { - "description": "when items is schema, boolean additionalItems does nothing", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "items": {}, - "additionalItems": false - }, - "tests": [ - { - "description": "all items match schema", - "data": [ 1, 2, 3, 4, 5 ], - "valid": true - } - ] - }, - { - "description": "array of items with no additionalItems permitted", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "items": [{}, {}, {}], - "additionalItems": false - }, - "tests": [ - { - "description": "empty array", - "data": [ ], - "valid": true - }, - { - "description": "fewer number of items present (1)", - "data": [ 1 ], - "valid": true - }, - { - "description": "fewer number of items present (2)", - "data": [ 1, 2 ], - "valid": true - }, - { - "description": "equal number of items present", - "data": [ 1, 2, 3 ], - "valid": true - }, - { - "description": "additional items are not permitted", - "data": [ 1, 2, 3, 4 ], - "valid": false - } - ] - }, - { - "description": "additionalItems as false without items", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "additionalItems": false - }, - "tests": [ - { - "description": - "items defaults to empty schema so everything is valid", - "data": [ 1, 2, 3, 4, 5 ], - "valid": true - }, - { - "description": "ignores non-arrays", - "data": {"foo" : "bar"}, - "valid": true - } - ] - }, - { - "description": "additionalItems are allowed by default", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "items": [{"type": "integer"}] - }, - "tests": [ - { - "description": "only the first item is validated", - "data": [1, "foo", false], - "valid": true - } - ] - }, - { - "description": "additionalItems does not look in applicators, valid case", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "allOf": [ - { "items": [ { "type": "integer" } ] } - ], - "additionalItems": { "type": "boolean" } - }, - "tests": [ - { - "description": "items defined in allOf are not examined", - "data": [ 1, null ], - "valid": true - } - ] - }, - { - "description": "additionalItems does not look in applicators, invalid case", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "allOf": [ - { "items": [ { "type": "integer" }, { "type": "string" } ] } - ], - "items": [ {"type": "integer" } ], - "additionalItems": { "type": "boolean" } - }, - "tests": [ - { - "description": "items defined in allOf are not examined", - "data": [ 1, "hello" ], - "valid": false - } - ] - }, - { - "description": "items validation adjusts the starting index for additionalItems", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "items": [ { "type": "string" } ], - "additionalItems": { "type": "integer" } - }, - "tests": [ - { - "description": "valid items", - "data": [ "x", 2, 3 ], - "valid": true - }, - { - "description": "wrong type of second item", - "data": [ "x", "y" ], - "valid": false - } - ] - }, - { - "description": "additionalItems with heterogeneous array", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "items": [{}], - "additionalItems": false - }, - "tests": [ - { - "description": "heterogeneous invalid instance", - "data": [ "foo", "bar", 37 ], - "valid": false - }, - { - "description": "valid instance", - "data": [ null ], - "valid": true - } - ] - }, - { - "description": "additionalItems with null instance elements", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "additionalItems": { - "type": "null" - } - }, - "tests": [ - { - "description": "allows null elements", - "data": [ null ], - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/additionalProperties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/additionalProperties.json deleted file mode 100644 index 73f9b909e..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/additionalProperties.json +++ /dev/null @@ -1,213 +0,0 @@ -[ - { - "description": - "additionalProperties being false does not allow other properties", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "properties": {"foo": {}, "bar": {}}, - "patternProperties": { "^v": {} }, - "additionalProperties": false - }, - "tests": [ - { - "description": "no additional properties is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "an additional property is invalid", - "data": {"foo" : 1, "bar" : 2, "quux" : "boom"}, - "valid": false - }, - { - "description": "ignores arrays", - "data": [1, 2, 3], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobarbaz", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - }, - { - "description": "patternProperties are not additional properties", - "data": {"foo":1, "vroom": 2}, - "valid": true - } - ] - }, - { - "description": "non-ASCII pattern with additionalProperties", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "patternProperties": {"^á": {}}, - "additionalProperties": false - }, - "tests": [ - { - "description": "matching the pattern is valid", - "data": {"ármányos": 2}, - "valid": true - }, - { - "description": "not matching the pattern is invalid", - "data": {"élmény": 2}, - "valid": false - } - ] - }, - { - "description": "additionalProperties with schema", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "properties": {"foo": {}, "bar": {}}, - "additionalProperties": {"type": "boolean"} - }, - "tests": [ - { - "description": "no additional properties is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "an additional valid property is valid", - "data": {"foo" : 1, "bar" : 2, "quux" : true}, - "valid": true - }, - { - "description": "an additional invalid property is invalid", - "data": {"foo" : 1, "bar" : 2, "quux" : 12}, - "valid": false - } - ] - }, - { - "description": - "additionalProperties can exist by itself", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "additionalProperties": {"type": "boolean"} - }, - "tests": [ - { - "description": "an additional valid property is valid", - "data": {"foo" : true}, - "valid": true - }, - { - "description": "an additional invalid property is invalid", - "data": {"foo" : 1}, - "valid": false - } - ] - }, - { - "description": "additionalProperties are allowed by default", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "properties": {"foo": {}, "bar": {}} - }, - "tests": [ - { - "description": "additional properties are allowed", - "data": {"foo": 1, "bar": 2, "quux": true}, - "valid": true - } - ] - }, - { - "description": "additionalProperties does not look in applicators", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "allOf": [ - {"properties": {"foo": {}}} - ], - "additionalProperties": {"type": "boolean"} - }, - "tests": [ - { - "description": "properties defined in allOf are not examined", - "data": {"foo": 1, "bar": true}, - "valid": false - } - ] - }, - { - "description": "additionalProperties with null valued instance properties", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "additionalProperties": { - "type": "null" - } - }, - "tests": [ - { - "description": "allows null values", - "data": {"foo": null}, - "valid": true - } - ] - }, - { - "description": "additionalProperties with propertyNames", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "propertyNames": { - "maxLength": 5 - }, - "additionalProperties": { - "type": "number" - } - }, - "tests": [ - { - "description": "Valid against both keywords", - "data": { "apple": 4 }, - "valid": true - }, - { - "description": "Valid against propertyNames, but not additionalProperties", - "data": { "fig": 2, "pear": "available" }, - "valid": false - } - ] - }, - { - "description": "dependentSchemas with additionalProperties", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "properties": {"foo2": {}}, - "dependentSchemas": { - "foo" : {}, - "foo2": { - "properties": { - "bar":{} - } - } - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "additionalProperties doesn't consider dependentSchemas", - "data": {"foo": ""}, - "valid": false - }, - { - "description": "additionalProperties can't see bar", - "data": {"bar": ""}, - "valid": false - }, - { - "description": "additionalProperties can't see bar even when foo2 is present", - "data": { "foo2": "", "bar": ""}, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/allOf.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/allOf.json deleted file mode 100644 index dec267e17..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/allOf.json +++ /dev/null @@ -1,312 +0,0 @@ -[ - { - "description": "allOf", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "allOf": [ - { - "properties": { - "bar": {"type": "integer"} - }, - "required": ["bar"] - }, - { - "properties": { - "foo": {"type": "string"} - }, - "required": ["foo"] - } - ] - }, - "tests": [ - { - "description": "allOf", - "data": {"foo": "baz", "bar": 2}, - "valid": true - }, - { - "description": "mismatch second", - "data": {"foo": "baz"}, - "valid": false - }, - { - "description": "mismatch first", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "wrong type", - "data": {"foo": "baz", "bar": "quux"}, - "valid": false - } - ] - }, - { - "description": "allOf with base schema", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "properties": {"bar": {"type": "integer"}}, - "required": ["bar"], - "allOf" : [ - { - "properties": { - "foo": {"type": "string"} - }, - "required": ["foo"] - }, - { - "properties": { - "baz": {"type": "null"} - }, - "required": ["baz"] - } - ] - }, - "tests": [ - { - "description": "valid", - "data": {"foo": "quux", "bar": 2, "baz": null}, - "valid": true - }, - { - "description": "mismatch base schema", - "data": {"foo": "quux", "baz": null}, - "valid": false - }, - { - "description": "mismatch first allOf", - "data": {"bar": 2, "baz": null}, - "valid": false - }, - { - "description": "mismatch second allOf", - "data": {"foo": "quux", "bar": 2}, - "valid": false - }, - { - "description": "mismatch both", - "data": {"bar": 2}, - "valid": false - } - ] - }, - { - "description": "allOf simple types", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "allOf": [ - {"maximum": 30}, - {"minimum": 20} - ] - }, - "tests": [ - { - "description": "valid", - "data": 25, - "valid": true - }, - { - "description": "mismatch one", - "data": 35, - "valid": false - } - ] - }, - { - "description": "allOf with boolean schemas, all true", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "allOf": [true, true] - }, - "tests": [ - { - "description": "any value is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "allOf with boolean schemas, some false", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "allOf": [true, false] - }, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "allOf with boolean schemas, all false", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "allOf": [false, false] - }, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "allOf with one empty schema", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "allOf": [ - {} - ] - }, - "tests": [ - { - "description": "any data is valid", - "data": 1, - "valid": true - } - ] - }, - { - "description": "allOf with two empty schemas", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "allOf": [ - {}, - {} - ] - }, - "tests": [ - { - "description": "any data is valid", - "data": 1, - "valid": true - } - ] - }, - { - "description": "allOf with the first empty schema", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "allOf": [ - {}, - { "type": "number" } - ] - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "allOf with the last empty schema", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "allOf": [ - { "type": "number" }, - {} - ] - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "nested allOf, to check validation semantics", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "allOf": [ - { - "allOf": [ - { - "type": "null" - } - ] - } - ] - }, - "tests": [ - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "anything non-null is invalid", - "data": 123, - "valid": false - } - ] - }, - { - "description": "allOf combined with anyOf, oneOf", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "allOf": [ { "multipleOf": 2 } ], - "anyOf": [ { "multipleOf": 3 } ], - "oneOf": [ { "multipleOf": 5 } ] - }, - "tests": [ - { - "description": "allOf: false, anyOf: false, oneOf: false", - "data": 1, - "valid": false - }, - { - "description": "allOf: false, anyOf: false, oneOf: true", - "data": 5, - "valid": false - }, - { - "description": "allOf: false, anyOf: true, oneOf: false", - "data": 3, - "valid": false - }, - { - "description": "allOf: false, anyOf: true, oneOf: true", - "data": 15, - "valid": false - }, - { - "description": "allOf: true, anyOf: false, oneOf: false", - "data": 2, - "valid": false - }, - { - "description": "allOf: true, anyOf: false, oneOf: true", - "data": 10, - "valid": false - }, - { - "description": "allOf: true, anyOf: true, oneOf: false", - "data": 6, - "valid": false - }, - { - "description": "allOf: true, anyOf: true, oneOf: true", - "data": 30, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/anchor.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/anchor.json deleted file mode 100644 index bce05e800..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/anchor.json +++ /dev/null @@ -1,120 +0,0 @@ -[ - { - "description": "Location-independent identifier", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$ref": "#foo", - "$defs": { - "A": { - "$anchor": "foo", - "type": "integer" - } - } - }, - "tests": [ - { - "data": 1, - "description": "match", - "valid": true - }, - { - "data": "a", - "description": "mismatch", - "valid": false - } - ] - }, - { - "description": "Location-independent identifier with absolute URI", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$ref": "http://localhost:1234/draft2019-09/bar#foo", - "$defs": { - "A": { - "$id": "http://localhost:1234/draft2019-09/bar", - "$anchor": "foo", - "type": "integer" - } - } - }, - "tests": [ - { - "data": 1, - "description": "match", - "valid": true - }, - { - "data": "a", - "description": "mismatch", - "valid": false - } - ] - }, - { - "description": "Location-independent identifier with base URI change in subschema", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "http://localhost:1234/draft2019-09/root", - "$ref": "http://localhost:1234/draft2019-09/nested.json#foo", - "$defs": { - "A": { - "$id": "nested.json", - "$defs": { - "B": { - "$anchor": "foo", - "type": "integer" - } - } - } - } - }, - "tests": [ - { - "data": 1, - "description": "match", - "valid": true - }, - { - "data": "a", - "description": "mismatch", - "valid": false - } - ] - }, - { - "description": "same $anchor with different base uri", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "http://localhost:1234/draft2019-09/foobar", - "$defs": { - "A": { - "$id": "child1", - "allOf": [ - { - "$id": "child2", - "$anchor": "my_anchor", - "type": "number" - }, - { - "$anchor": "my_anchor", - "type": "string" - } - ] - } - }, - "$ref": "child1#my_anchor" - }, - "tests": [ - { - "description": "$ref resolves to /$defs/A/allOf/1", - "data": "a", - "valid": true - }, - { - "description": "$ref does not resolve to /$defs/A/allOf/0", - "data": 1, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/anyOf.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/anyOf.json deleted file mode 100644 index 8712d114c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/anyOf.json +++ /dev/null @@ -1,203 +0,0 @@ -[ - { - "description": "anyOf", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "anyOf": [ - { - "type": "integer" - }, - { - "minimum": 2 - } - ] - }, - "tests": [ - { - "description": "first anyOf valid", - "data": 1, - "valid": true - }, - { - "description": "second anyOf valid", - "data": 2.5, - "valid": true - }, - { - "description": "both anyOf valid", - "data": 3, - "valid": true - }, - { - "description": "neither anyOf valid", - "data": 1.5, - "valid": false - } - ] - }, - { - "description": "anyOf with base schema", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "string", - "anyOf" : [ - { - "maxLength": 2 - }, - { - "minLength": 4 - } - ] - }, - "tests": [ - { - "description": "mismatch base schema", - "data": 3, - "valid": false - }, - { - "description": "one anyOf valid", - "data": "foobar", - "valid": true - }, - { - "description": "both anyOf invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "anyOf with boolean schemas, all true", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "anyOf": [true, true] - }, - "tests": [ - { - "description": "any value is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "anyOf with boolean schemas, some true", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "anyOf": [true, false] - }, - "tests": [ - { - "description": "any value is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "anyOf with boolean schemas, all false", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "anyOf": [false, false] - }, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "anyOf complex types", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "anyOf": [ - { - "properties": { - "bar": {"type": "integer"} - }, - "required": ["bar"] - }, - { - "properties": { - "foo": {"type": "string"} - }, - "required": ["foo"] - } - ] - }, - "tests": [ - { - "description": "first anyOf valid (complex)", - "data": {"bar": 2}, - "valid": true - }, - { - "description": "second anyOf valid (complex)", - "data": {"foo": "baz"}, - "valid": true - }, - { - "description": "both anyOf valid (complex)", - "data": {"foo": "baz", "bar": 2}, - "valid": true - }, - { - "description": "neither anyOf valid (complex)", - "data": {"foo": 2, "bar": "quux"}, - "valid": false - } - ] - }, - { - "description": "anyOf with one empty schema", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "anyOf": [ - { "type": "number" }, - {} - ] - }, - "tests": [ - { - "description": "string is valid", - "data": "foo", - "valid": true - }, - { - "description": "number is valid", - "data": 123, - "valid": true - } - ] - }, - { - "description": "nested anyOf, to check validation semantics", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "anyOf": [ - { - "anyOf": [ - { - "type": "null" - } - ] - } - ] - }, - "tests": [ - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "anything non-null is invalid", - "data": 123, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/boolean_schema.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/boolean_schema.json deleted file mode 100644 index 6d40f23f2..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/boolean_schema.json +++ /dev/null @@ -1,104 +0,0 @@ -[ - { - "description": "boolean schema 'true'", - "schema": true, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "string is valid", - "data": "foo", - "valid": true - }, - { - "description": "boolean true is valid", - "data": true, - "valid": true - }, - { - "description": "boolean false is valid", - "data": false, - "valid": true - }, - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "object is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "empty object is valid", - "data": {}, - "valid": true - }, - { - "description": "array is valid", - "data": ["foo"], - "valid": true - }, - { - "description": "empty array is valid", - "data": [], - "valid": true - } - ] - }, - { - "description": "boolean schema 'false'", - "schema": false, - "tests": [ - { - "description": "number is invalid", - "data": 1, - "valid": false - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - }, - { - "description": "boolean true is invalid", - "data": true, - "valid": false - }, - { - "description": "boolean false is invalid", - "data": false, - "valid": false - }, - { - "description": "null is invalid", - "data": null, - "valid": false - }, - { - "description": "object is invalid", - "data": {"foo": "bar"}, - "valid": false - }, - { - "description": "empty object is invalid", - "data": {}, - "valid": false - }, - { - "description": "array is invalid", - "data": ["foo"], - "valid": false - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/const.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/const.json deleted file mode 100644 index 29700fda3..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/const.json +++ /dev/null @@ -1,387 +0,0 @@ -[ - { - "description": "const validation", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "const": 2 - }, - "tests": [ - { - "description": "same value is valid", - "data": 2, - "valid": true - }, - { - "description": "another value is invalid", - "data": 5, - "valid": false - }, - { - "description": "another type is invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "const with object", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "const": {"foo": "bar", "baz": "bax"} - }, - "tests": [ - { - "description": "same object is valid", - "data": {"foo": "bar", "baz": "bax"}, - "valid": true - }, - { - "description": "same object with different property order is valid", - "data": {"baz": "bax", "foo": "bar"}, - "valid": true - }, - { - "description": "another object is invalid", - "data": {"foo": "bar"}, - "valid": false - }, - { - "description": "another type is invalid", - "data": [1, 2], - "valid": false - } - ] - }, - { - "description": "const with array", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "const": [{ "foo": "bar" }] - }, - "tests": [ - { - "description": "same array is valid", - "data": [{"foo": "bar"}], - "valid": true - }, - { - "description": "another array item is invalid", - "data": [2], - "valid": false - }, - { - "description": "array with additional items is invalid", - "data": [1, 2, 3], - "valid": false - } - ] - }, - { - "description": "const with null", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "const": null - }, - "tests": [ - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "not null is invalid", - "data": 0, - "valid": false - } - ] - }, - { - "description": "const with false does not match 0", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "const": false - }, - "tests": [ - { - "description": "false is valid", - "data": false, - "valid": true - }, - { - "description": "integer zero is invalid", - "data": 0, - "valid": false - }, - { - "description": "float zero is invalid", - "data": 0.0, - "valid": false - } - ] - }, - { - "description": "const with true does not match 1", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "const": true - }, - "tests": [ - { - "description": "true is valid", - "data": true, - "valid": true - }, - { - "description": "integer one is invalid", - "data": 1, - "valid": false - }, - { - "description": "float one is invalid", - "data": 1.0, - "valid": false - } - ] - }, - { - "description": "const with [false] does not match [0]", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "const": [false] - }, - "tests": [ - { - "description": "[false] is valid", - "data": [false], - "valid": true - }, - { - "description": "[0] is invalid", - "data": [0], - "valid": false - }, - { - "description": "[0.0] is invalid", - "data": [0.0], - "valid": false - } - ] - }, - { - "description": "const with [true] does not match [1]", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "const": [true] - }, - "tests": [ - { - "description": "[true] is valid", - "data": [true], - "valid": true - }, - { - "description": "[1] is invalid", - "data": [1], - "valid": false - }, - { - "description": "[1.0] is invalid", - "data": [1.0], - "valid": false - } - ] - }, - { - "description": "const with {\"a\": false} does not match {\"a\": 0}", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "const": {"a": false} - }, - "tests": [ - { - "description": "{\"a\": false} is valid", - "data": {"a": false}, - "valid": true - }, - { - "description": "{\"a\": 0} is invalid", - "data": {"a": 0}, - "valid": false - }, - { - "description": "{\"a\": 0.0} is invalid", - "data": {"a": 0.0}, - "valid": false - } - ] - }, - { - "description": "const with {\"a\": true} does not match {\"a\": 1}", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "const": {"a": true} - }, - "tests": [ - { - "description": "{\"a\": true} is valid", - "data": {"a": true}, - "valid": true - }, - { - "description": "{\"a\": 1} is invalid", - "data": {"a": 1}, - "valid": false - }, - { - "description": "{\"a\": 1.0} is invalid", - "data": {"a": 1.0}, - "valid": false - } - ] - }, - { - "description": "const with 0 does not match other zero-like types", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "const": 0 - }, - "tests": [ - { - "description": "false is invalid", - "data": false, - "valid": false - }, - { - "description": "integer zero is valid", - "data": 0, - "valid": true - }, - { - "description": "float zero is valid", - "data": 0.0, - "valid": true - }, - { - "description": "empty object is invalid", - "data": {}, - "valid": false - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - }, - { - "description": "empty string is invalid", - "data": "", - "valid": false - } - ] - }, - { - "description": "const with 1 does not match true", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "const": 1 - }, - "tests": [ - { - "description": "true is invalid", - "data": true, - "valid": false - }, - { - "description": "integer one is valid", - "data": 1, - "valid": true - }, - { - "description": "float one is valid", - "data": 1.0, - "valid": true - } - ] - }, - { - "description": "const with -2.0 matches integer and float types", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "const": -2.0 - }, - "tests": [ - { - "description": "integer -2 is valid", - "data": -2, - "valid": true - }, - { - "description": "integer 2 is invalid", - "data": 2, - "valid": false - }, - { - "description": "float -2.0 is valid", - "data": -2.0, - "valid": true - }, - { - "description": "float 2.0 is invalid", - "data": 2.0, - "valid": false - }, - { - "description": "float -2.00001 is invalid", - "data": -2.00001, - "valid": false - } - ] - }, - { - "description": "float and integers are equal up to 64-bit representation limits", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "const": 9007199254740992 - }, - "tests": [ - { - "description": "integer is valid", - "data": 9007199254740992, - "valid": true - }, - { - "description": "integer minus one is invalid", - "data": 9007199254740991, - "valid": false - }, - { - "description": "float is valid", - "data": 9007199254740992.0, - "valid": true - }, - { - "description": "float minus one is invalid", - "data": 9007199254740991.0, - "valid": false - } - ] - }, - { - "description": "nul characters in strings", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "const": "hello\u0000there" - }, - "tests": [ - { - "description": "match string with nul", - "data": "hello\u0000there", - "valid": true - }, - { - "description": "do not match string lacking nul", - "data": "hellothere", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/contains.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/contains.json deleted file mode 100644 index 30458bf49..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/contains.json +++ /dev/null @@ -1,176 +0,0 @@ -[ - { - "description": "contains keyword validation", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "contains": {"minimum": 5} - }, - "tests": [ - { - "description": "array with item matching schema (5) is valid", - "data": [3, 4, 5], - "valid": true - }, - { - "description": "array with item matching schema (6) is valid", - "data": [3, 4, 6], - "valid": true - }, - { - "description": "array with two items matching schema (5, 6) is valid", - "data": [3, 4, 5, 6], - "valid": true - }, - { - "description": "array without items matching schema is invalid", - "data": [2, 3, 4], - "valid": false - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - }, - { - "description": "not array is valid", - "data": {}, - "valid": true - } - ] - }, - { - "description": "contains keyword with const keyword", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "contains": { "const": 5 } - }, - "tests": [ - { - "description": "array with item 5 is valid", - "data": [3, 4, 5], - "valid": true - }, - { - "description": "array with two items 5 is valid", - "data": [3, 4, 5, 5], - "valid": true - }, - { - "description": "array without item 5 is invalid", - "data": [1, 2, 3, 4], - "valid": false - } - ] - }, - { - "description": "contains keyword with boolean schema true", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "contains": true - }, - "tests": [ - { - "description": "any non-empty array is valid", - "data": ["foo"], - "valid": true - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - } - ] - }, - { - "description": "contains keyword with boolean schema false", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "contains": false - }, - "tests": [ - { - "description": "any non-empty array is invalid", - "data": ["foo"], - "valid": false - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - }, - { - "description": "non-arrays are valid", - "data": "contains does not apply to strings", - "valid": true - } - ] - }, - { - "description": "items + contains", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "items": { "multipleOf": 2 }, - "contains": { "multipleOf": 3 } - }, - "tests": [ - { - "description": "matches items, does not match contains", - "data": [ 2, 4, 8 ], - "valid": false - }, - { - "description": "does not match items, matches contains", - "data": [ 3, 6, 9 ], - "valid": false - }, - { - "description": "matches both items and contains", - "data": [ 6, 12 ], - "valid": true - }, - { - "description": "matches neither items nor contains", - "data": [ 1, 5 ], - "valid": false - } - ] - }, - { - "description": "contains with false if subschema", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "contains": { - "if": false, - "else": true - } - }, - "tests": [ - { - "description": "any non-empty array is valid", - "data": ["foo"], - "valid": true - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - } - ] - }, - { - "description": "contains with null instance elements", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "contains": { - "type": "null" - } - }, - "tests": [ - { - "description": "allows null items", - "data": [ null ], - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/content.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/content.json deleted file mode 100644 index 2a7a5d871..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/content.json +++ /dev/null @@ -1,131 +0,0 @@ -[ - { - "description": "validation of string-encoded content based on media type", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "contentMediaType": "application/json" - }, - "tests": [ - { - "description": "a valid JSON document", - "data": "{\"foo\": \"bar\"}", - "valid": true - }, - { - "description": "an invalid JSON document; validates true", - "data": "{:}", - "valid": true - }, - { - "description": "ignores non-strings", - "data": 100, - "valid": true - } - ] - }, - { - "description": "validation of binary string-encoding", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "contentEncoding": "base64" - }, - "tests": [ - { - "description": "a valid base64 string", - "data": "eyJmb28iOiAiYmFyIn0K", - "valid": true - }, - { - "description": "an invalid base64 string (% is not a valid character); validates true", - "data": "eyJmb28iOi%iYmFyIn0K", - "valid": true - }, - { - "description": "ignores non-strings", - "data": 100, - "valid": true - } - ] - }, - { - "description": "validation of binary-encoded media type documents", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "contentMediaType": "application/json", - "contentEncoding": "base64" - }, - "tests": [ - { - "description": "a valid base64-encoded JSON document", - "data": "eyJmb28iOiAiYmFyIn0K", - "valid": true - }, - { - "description": "a validly-encoded invalid JSON document; validates true", - "data": "ezp9Cg==", - "valid": true - }, - { - "description": "an invalid base64 string that is valid JSON; validates true", - "data": "{}", - "valid": true - }, - { - "description": "ignores non-strings", - "data": 100, - "valid": true - } - ] - }, - { - "description": "validation of binary-encoded media type documents with schema", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "contentMediaType": "application/json", - "contentEncoding": "base64", - "contentSchema": { "type": "object", "required": ["foo"], "properties": { "foo": { "type": "string" } } } - }, - "tests": [ - { - "description": "a valid base64-encoded JSON document", - "data": "eyJmb28iOiAiYmFyIn0K", - "valid": true - }, - { - "description": "another valid base64-encoded JSON document", - "data": "eyJib28iOiAyMCwgImZvbyI6ICJiYXoifQ==", - "valid": true - }, - { - "description": "an invalid base64-encoded JSON document; validates true", - "data": "eyJib28iOiAyMH0=", - "valid": true - }, - { - "description": "an empty object as a base64-encoded JSON document; validates true", - "data": "e30=", - "valid": true - }, - { - "description": "an empty array as a base64-encoded JSON document", - "data": "W10=", - "valid": true - }, - { - "description": "a validly-encoded invalid JSON document; validates true", - "data": "ezp9Cg==", - "valid": true - }, - { - "description": "an invalid base64 string that is valid JSON; validates true", - "data": "{}", - "valid": true - }, - { - "description": "ignores non-strings", - "data": 100, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/default.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/default.json deleted file mode 100644 index 95eba5a79..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/default.json +++ /dev/null @@ -1,82 +0,0 @@ -[ - { - "description": "invalid type for default", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "properties": { - "foo": { - "type": "integer", - "default": [] - } - } - }, - "tests": [ - { - "description": "valid when property is specified", - "data": {"foo": 13}, - "valid": true - }, - { - "description": "still valid when the invalid default is used", - "data": {}, - "valid": true - } - ] - }, - { - "description": "invalid string value for default", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "properties": { - "bar": { - "type": "string", - "minLength": 4, - "default": "bad" - } - } - }, - "tests": [ - { - "description": "valid when property is specified", - "data": {"bar": "good"}, - "valid": true - }, - { - "description": "still valid when the invalid default is used", - "data": {}, - "valid": true - } - ] - }, - { - "description": "the default keyword does not do anything if the property is missing", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "properties": { - "alpha": { - "type": "number", - "maximum": 3, - "default": 5 - } - } - }, - "tests": [ - { - "description": "an explicit property value is checked against maximum (passing)", - "data": { "alpha": 1 }, - "valid": true - }, - { - "description": "an explicit property value is checked against maximum (failing)", - "data": { "alpha": 5 }, - "valid": false - }, - { - "description": "missing properties are not filled in with the default", - "data": {}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/defs.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/defs.json deleted file mode 100644 index 3f9088c3c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/defs.json +++ /dev/null @@ -1,21 +0,0 @@ -[ - { - "description": "validate definition against metaschema", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$ref": "https://json-schema.org/draft/2019-09/schema" - }, - "tests": [ - { - "description": "valid definition schema", - "data": {"$defs": {"foo": {"type": "integer"}}}, - "valid": true - }, - { - "description": "invalid definition schema", - "data": {"$defs": {"foo": {"type": 1}}}, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/dependentRequired.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/dependentRequired.json deleted file mode 100644 index d573c10b8..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/dependentRequired.json +++ /dev/null @@ -1,152 +0,0 @@ -[ - { - "description": "single dependency", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "dependentRequired": {"bar": ["foo"]} - }, - "tests": [ - { - "description": "neither", - "data": {}, - "valid": true - }, - { - "description": "nondependant", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "with dependency", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "missing dependency", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "ignores arrays", - "data": ["bar"], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobar", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "empty dependents", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "dependentRequired": {"bar": []} - }, - "tests": [ - { - "description": "empty object", - "data": {}, - "valid": true - }, - { - "description": "object with one property", - "data": {"bar": 2}, - "valid": true - }, - { - "description": "non-object is valid", - "data": 1, - "valid": true - } - ] - }, - { - "description": "multiple dependents required", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "dependentRequired": {"quux": ["foo", "bar"]} - }, - "tests": [ - { - "description": "neither", - "data": {}, - "valid": true - }, - { - "description": "nondependants", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "with dependencies", - "data": {"foo": 1, "bar": 2, "quux": 3}, - "valid": true - }, - { - "description": "missing dependency", - "data": {"foo": 1, "quux": 2}, - "valid": false - }, - { - "description": "missing other dependency", - "data": {"bar": 1, "quux": 2}, - "valid": false - }, - { - "description": "missing both dependencies", - "data": {"quux": 1}, - "valid": false - } - ] - }, - { - "description": "dependencies with escaped characters", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "dependentRequired": { - "foo\nbar": ["foo\rbar"], - "foo\"bar": ["foo'bar"] - } - }, - "tests": [ - { - "description": "CRLF", - "data": { - "foo\nbar": 1, - "foo\rbar": 2 - }, - "valid": true - }, - { - "description": "quoted quotes", - "data": { - "foo'bar": 1, - "foo\"bar": 2 - }, - "valid": true - }, - { - "description": "CRLF missing dependent", - "data": { - "foo\nbar": 1, - "foo": 2 - }, - "valid": false - }, - { - "description": "quoted quotes missing dependent", - "data": { - "foo\"bar": 2 - }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/dependentSchemas.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/dependentSchemas.json deleted file mode 100644 index c5b8ea05f..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/dependentSchemas.json +++ /dev/null @@ -1,171 +0,0 @@ -[ - { - "description": "single dependency", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "dependentSchemas": { - "bar": { - "properties": { - "foo": {"type": "integer"}, - "bar": {"type": "integer"} - } - } - } - }, - "tests": [ - { - "description": "valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "no dependency", - "data": {"foo": "quux"}, - "valid": true - }, - { - "description": "wrong type", - "data": {"foo": "quux", "bar": 2}, - "valid": false - }, - { - "description": "wrong type other", - "data": {"foo": 2, "bar": "quux"}, - "valid": false - }, - { - "description": "wrong type both", - "data": {"foo": "quux", "bar": "quux"}, - "valid": false - }, - { - "description": "ignores arrays", - "data": ["bar"], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobar", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "boolean subschemas", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "dependentSchemas": { - "foo": true, - "bar": false - } - }, - "tests": [ - { - "description": "object with property having schema true is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "object with property having schema false is invalid", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "object with both properties is invalid", - "data": {"foo": 1, "bar": 2}, - "valid": false - }, - { - "description": "empty object is valid", - "data": {}, - "valid": true - } - ] - }, - { - "description": "dependencies with escaped characters", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "dependentSchemas": { - "foo\tbar": {"minProperties": 4}, - "foo'bar": {"required": ["foo\"bar"]} - } - }, - "tests": [ - { - "description": "quoted tab", - "data": { - "foo\tbar": 1, - "a": 2, - "b": 3, - "c": 4 - }, - "valid": true - }, - { - "description": "quoted quote", - "data": { - "foo'bar": {"foo\"bar": 1} - }, - "valid": false - }, - { - "description": "quoted tab invalid under dependent schema", - "data": { - "foo\tbar": 1, - "a": 2 - }, - "valid": false - }, - { - "description": "quoted quote invalid under dependent schema", - "data": {"foo'bar": 1}, - "valid": false - } - ] - }, - { - "description": "dependent subschema incompatible with root", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "properties": { - "foo": {} - }, - "dependentSchemas": { - "foo": { - "properties": { - "bar": {} - }, - "additionalProperties": false - } - } - }, - "tests": [ - { - "description": "matches root", - "data": {"foo": 1}, - "valid": false - }, - { - "description": "matches dependency", - "data": {"bar": 1}, - "valid": true - }, - { - "description": "matches both", - "data": {"foo": 1, "bar": 2}, - "valid": false - }, - { - "description": "no dependency", - "data": {"baz": 1}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/enum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/enum.json deleted file mode 100644 index 1315211ea..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/enum.json +++ /dev/null @@ -1,358 +0,0 @@ -[ - { - "description": "simple enum validation", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "enum": [1, 2, 3] - }, - "tests": [ - { - "description": "one of the enum is valid", - "data": 1, - "valid": true - }, - { - "description": "something else is invalid", - "data": 4, - "valid": false - } - ] - }, - { - "description": "heterogeneous enum validation", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "enum": [6, "foo", [], true, {"foo": 12}] - }, - "tests": [ - { - "description": "one of the enum is valid", - "data": [], - "valid": true - }, - { - "description": "something else is invalid", - "data": null, - "valid": false - }, - { - "description": "objects are deep compared", - "data": {"foo": false}, - "valid": false - }, - { - "description": "valid object matches", - "data": {"foo": 12}, - "valid": true - }, - { - "description": "extra properties in object is invalid", - "data": {"foo": 12, "boo": 42}, - "valid": false - } - ] - }, - { - "description": "heterogeneous enum-with-null validation", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "enum": [6, null] - }, - "tests": [ - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "number is valid", - "data": 6, - "valid": true - }, - { - "description": "something else is invalid", - "data": "test", - "valid": false - } - ] - }, - { - "description": "enums in properties", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type":"object", - "properties": { - "foo": {"enum":["foo"]}, - "bar": {"enum":["bar"]} - }, - "required": ["bar"] - }, - "tests": [ - { - "description": "both properties are valid", - "data": {"foo":"foo", "bar":"bar"}, - "valid": true - }, - { - "description": "wrong foo value", - "data": {"foo":"foot", "bar":"bar"}, - "valid": false - }, - { - "description": "wrong bar value", - "data": {"foo":"foo", "bar":"bart"}, - "valid": false - }, - { - "description": "missing optional property is valid", - "data": {"bar":"bar"}, - "valid": true - }, - { - "description": "missing required property is invalid", - "data": {"foo":"foo"}, - "valid": false - }, - { - "description": "missing all properties is invalid", - "data": {}, - "valid": false - } - ] - }, - { - "description": "enum with escaped characters", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "enum": ["foo\nbar", "foo\rbar"] - }, - "tests": [ - { - "description": "member 1 is valid", - "data": "foo\nbar", - "valid": true - }, - { - "description": "member 2 is valid", - "data": "foo\rbar", - "valid": true - }, - { - "description": "another string is invalid", - "data": "abc", - "valid": false - } - ] - }, - { - "description": "enum with false does not match 0", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "enum": [false] - }, - "tests": [ - { - "description": "false is valid", - "data": false, - "valid": true - }, - { - "description": "integer zero is invalid", - "data": 0, - "valid": false - }, - { - "description": "float zero is invalid", - "data": 0.0, - "valid": false - } - ] - }, - { - "description": "enum with [false] does not match [0]", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "enum": [[false]] - }, - "tests": [ - { - "description": "[false] is valid", - "data": [false], - "valid": true - }, - { - "description": "[0] is invalid", - "data": [0], - "valid": false - }, - { - "description": "[0.0] is invalid", - "data": [0.0], - "valid": false - } - ] - }, - { - "description": "enum with true does not match 1", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "enum": [true] - }, - "tests": [ - { - "description": "true is valid", - "data": true, - "valid": true - }, - { - "description": "integer one is invalid", - "data": 1, - "valid": false - }, - { - "description": "float one is invalid", - "data": 1.0, - "valid": false - } - ] - }, - { - "description": "enum with [true] does not match [1]", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "enum": [[true]] - }, - "tests": [ - { - "description": "[true] is valid", - "data": [true], - "valid": true - }, - { - "description": "[1] is invalid", - "data": [1], - "valid": false - }, - { - "description": "[1.0] is invalid", - "data": [1.0], - "valid": false - } - ] - }, - { - "description": "enum with 0 does not match false", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "enum": [0] - }, - "tests": [ - { - "description": "false is invalid", - "data": false, - "valid": false - }, - { - "description": "integer zero is valid", - "data": 0, - "valid": true - }, - { - "description": "float zero is valid", - "data": 0.0, - "valid": true - } - ] - }, - { - "description": "enum with [0] does not match [false]", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "enum": [[0]] - }, - "tests": [ - { - "description": "[false] is invalid", - "data": [false], - "valid": false - }, - { - "description": "[0] is valid", - "data": [0], - "valid": true - }, - { - "description": "[0.0] is valid", - "data": [0.0], - "valid": true - } - ] - }, - { - "description": "enum with 1 does not match true", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "enum": [1] - }, - "tests": [ - { - "description": "true is invalid", - "data": true, - "valid": false - }, - { - "description": "integer one is valid", - "data": 1, - "valid": true - }, - { - "description": "float one is valid", - "data": 1.0, - "valid": true - } - ] - }, - { - "description": "enum with [1] does not match [true]", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "enum": [[1]] - }, - "tests": [ - { - "description": "[true] is invalid", - "data": [true], - "valid": false - }, - { - "description": "[1] is valid", - "data": [1], - "valid": true - }, - { - "description": "[1.0] is valid", - "data": [1.0], - "valid": true - } - ] - }, - { - "description": "nul characters in strings", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "enum": [ "hello\u0000there" ] - }, - "tests": [ - { - "description": "match string with nul", - "data": "hello\u0000there", - "valid": true - }, - { - "description": "do not match string lacking nul", - "data": "hellothere", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/exclusiveMaximum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/exclusiveMaximum.json deleted file mode 100644 index 4ec85698c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/exclusiveMaximum.json +++ /dev/null @@ -1,31 +0,0 @@ -[ - { - "description": "exclusiveMaximum validation", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "exclusiveMaximum": 3.0 - }, - "tests": [ - { - "description": "below the exclusiveMaximum is valid", - "data": 2.2, - "valid": true - }, - { - "description": "boundary point is invalid", - "data": 3.0, - "valid": false - }, - { - "description": "above the exclusiveMaximum is invalid", - "data": 3.5, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/exclusiveMinimum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/exclusiveMinimum.json deleted file mode 100644 index 24f468984..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/exclusiveMinimum.json +++ /dev/null @@ -1,31 +0,0 @@ -[ - { - "description": "exclusiveMinimum validation", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "exclusiveMinimum": 1.1 - }, - "tests": [ - { - "description": "above the exclusiveMinimum is valid", - "data": 1.2, - "valid": true - }, - { - "description": "boundary point is invalid", - "data": 1.1, - "valid": false - }, - { - "description": "below the exclusiveMinimum is invalid", - "data": 0.6, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/format.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/format.json deleted file mode 100644 index 2934dcef9..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/format.json +++ /dev/null @@ -1,743 +0,0 @@ -[ - { - "description": "email format", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "email" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "idn-email format", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "idn-email" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "regex format", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "regex" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "ipv4 format", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "ipv4" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "ipv6 format", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "ipv6" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "idn-hostname format", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "idn-hostname" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "hostname format", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "hostname" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "date format", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "date" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "date-time format", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "date-time" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "time format", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "time" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "json-pointer format", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "json-pointer" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "relative-json-pointer format", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "relative-json-pointer" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "iri format", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "iri" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "iri-reference format", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "iri-reference" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "uri format", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "uri" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "uri-reference format", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "uri-reference" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "uri-template format", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "uri-template" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "uuid format", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "uuid" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "duration format", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "duration" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/if-then-else.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/if-then-else.json deleted file mode 100644 index 510a0e0ac..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/if-then-else.json +++ /dev/null @@ -1,268 +0,0 @@ -[ - { - "description": "ignore if without then or else", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "if": { - "const": 0 - } - }, - "tests": [ - { - "description": "valid when valid against lone if", - "data": 0, - "valid": true - }, - { - "description": "valid when invalid against lone if", - "data": "hello", - "valid": true - } - ] - }, - { - "description": "ignore then without if", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "then": { - "const": 0 - } - }, - "tests": [ - { - "description": "valid when valid against lone then", - "data": 0, - "valid": true - }, - { - "description": "valid when invalid against lone then", - "data": "hello", - "valid": true - } - ] - }, - { - "description": "ignore else without if", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "else": { - "const": 0 - } - }, - "tests": [ - { - "description": "valid when valid against lone else", - "data": 0, - "valid": true - }, - { - "description": "valid when invalid against lone else", - "data": "hello", - "valid": true - } - ] - }, - { - "description": "if and then without else", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "if": { - "exclusiveMaximum": 0 - }, - "then": { - "minimum": -10 - } - }, - "tests": [ - { - "description": "valid through then", - "data": -1, - "valid": true - }, - { - "description": "invalid through then", - "data": -100, - "valid": false - }, - { - "description": "valid when if test fails", - "data": 3, - "valid": true - } - ] - }, - { - "description": "if and else without then", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "if": { - "exclusiveMaximum": 0 - }, - "else": { - "multipleOf": 2 - } - }, - "tests": [ - { - "description": "valid when if test passes", - "data": -1, - "valid": true - }, - { - "description": "valid through else", - "data": 4, - "valid": true - }, - { - "description": "invalid through else", - "data": 3, - "valid": false - } - ] - }, - { - "description": "validate against correct branch, then vs else", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "if": { - "exclusiveMaximum": 0 - }, - "then": { - "minimum": -10 - }, - "else": { - "multipleOf": 2 - } - }, - "tests": [ - { - "description": "valid through then", - "data": -1, - "valid": true - }, - { - "description": "invalid through then", - "data": -100, - "valid": false - }, - { - "description": "valid through else", - "data": 4, - "valid": true - }, - { - "description": "invalid through else", - "data": 3, - "valid": false - } - ] - }, - { - "description": "non-interference across combined schemas", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "allOf": [ - { - "if": { - "exclusiveMaximum": 0 - } - }, - { - "then": { - "minimum": -10 - } - }, - { - "else": { - "multipleOf": 2 - } - } - ] - }, - "tests": [ - { - "description": "valid, but would have been invalid through then", - "data": -100, - "valid": true - }, - { - "description": "valid, but would have been invalid through else", - "data": 3, - "valid": true - } - ] - }, - { - "description": "if with boolean schema true", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "if": true, - "then": { "const": "then" }, - "else": { "const": "else" } - }, - "tests": [ - { - "description": "boolean schema true in if always chooses the then path (valid)", - "data": "then", - "valid": true - }, - { - "description": "boolean schema true in if always chooses the then path (invalid)", - "data": "else", - "valid": false - } - ] - }, - { - "description": "if with boolean schema false", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "if": false, - "then": { "const": "then" }, - "else": { "const": "else" } - }, - "tests": [ - { - "description": "boolean schema false in if always chooses the else path (invalid)", - "data": "then", - "valid": false - }, - { - "description": "boolean schema false in if always chooses the else path (valid)", - "data": "else", - "valid": true - } - ] - }, - { - "description": "if appears at the end when serialized (keyword processing sequence)", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "then": { "const": "yes" }, - "else": { "const": "other" }, - "if": { "maxLength": 4 } - }, - "tests": [ - { - "description": "yes redirects to then and passes", - "data": "yes", - "valid": true - }, - { - "description": "other redirects to else and passes", - "data": "other", - "valid": true - }, - { - "description": "no redirects to then and fails", - "data": "no", - "valid": false - }, - { - "description": "invalid redirects to else and fails", - "data": "invalid", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/infinite-loop-detection.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/infinite-loop-detection.json deleted file mode 100644 index eb6941454..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/infinite-loop-detection.json +++ /dev/null @@ -1,37 +0,0 @@ -[ - { - "description": "evaluating the same schema location against the same data location twice is not a sign of an infinite loop", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$defs": { - "int": { "type": "integer" } - }, - "allOf": [ - { - "properties": { - "foo": { - "$ref": "#/$defs/int" - } - } - }, - { - "additionalProperties": { - "$ref": "#/$defs/int" - } - } - ] - }, - "tests": [ - { - "description": "passing case", - "data": { "foo": 1 }, - "valid": true - }, - { - "description": "failing case", - "data": { "foo": "a string" }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/items.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/items.json deleted file mode 100644 index e24156a7c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/items.json +++ /dev/null @@ -1,295 +0,0 @@ -[ - { - "description": "a schema given for items", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "items": {"type": "integer"} - }, - "tests": [ - { - "description": "valid items", - "data": [ 1, 2, 3 ], - "valid": true - }, - { - "description": "wrong type of items", - "data": [1, "x"], - "valid": false - }, - { - "description": "ignores non-arrays", - "data": {"foo" : "bar"}, - "valid": true - }, - { - "description": "JavaScript pseudo-array is valid", - "data": { - "0": "invalid", - "length": 1 - }, - "valid": true - } - ] - }, - { - "description": "an array of schemas for items", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "items": [ - {"type": "integer"}, - {"type": "string"} - ] - }, - "tests": [ - { - "description": "correct types", - "data": [ 1, "foo" ], - "valid": true - }, - { - "description": "wrong types", - "data": [ "foo", 1 ], - "valid": false - }, - { - "description": "incomplete array of items", - "data": [ 1 ], - "valid": true - }, - { - "description": "array with additional items", - "data": [ 1, "foo", true ], - "valid": true - }, - { - "description": "empty array", - "data": [ ], - "valid": true - }, - { - "description": "JavaScript pseudo-array is valid", - "data": { - "0": "invalid", - "1": "valid", - "length": 2 - }, - "valid": true - } - ] - }, - { - "description": "items with boolean schema (true)", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "items": true - }, - "tests": [ - { - "description": "any array is valid", - "data": [ 1, "foo", true ], - "valid": true - }, - { - "description": "empty array is valid", - "data": [], - "valid": true - } - ] - }, - { - "description": "items with boolean schema (false)", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "items": false - }, - "tests": [ - { - "description": "any non-empty array is invalid", - "data": [ 1, "foo", true ], - "valid": false - }, - { - "description": "empty array is valid", - "data": [], - "valid": true - } - ] - }, - { - "description": "items with boolean schemas", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "items": [true, false] - }, - "tests": [ - { - "description": "array with one item is valid", - "data": [ 1 ], - "valid": true - }, - { - "description": "array with two items is invalid", - "data": [ 1, "foo" ], - "valid": false - }, - { - "description": "empty array is valid", - "data": [], - "valid": true - } - ] - }, - { - "description": "items and subitems", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$defs": { - "item": { - "type": "array", - "additionalItems": false, - "items": [ - { "$ref": "#/$defs/sub-item" }, - { "$ref": "#/$defs/sub-item" } - ] - }, - "sub-item": { - "type": "object", - "required": ["foo"] - } - }, - "type": "array", - "additionalItems": false, - "items": [ - { "$ref": "#/$defs/item" }, - { "$ref": "#/$defs/item" }, - { "$ref": "#/$defs/item" } - ] - }, - "tests": [ - { - "description": "valid items", - "data": [ - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ] - ], - "valid": true - }, - { - "description": "too many items", - "data": [ - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ] - ], - "valid": false - }, - { - "description": "too many sub-items", - "data": [ - [ {"foo": null}, {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ] - ], - "valid": false - }, - { - "description": "wrong item", - "data": [ - {"foo": null}, - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ] - ], - "valid": false - }, - { - "description": "wrong sub-item", - "data": [ - [ {}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ] - ], - "valid": false - }, - { - "description": "fewer items is valid", - "data": [ - [ {"foo": null} ], - [ {"foo": null} ] - ], - "valid": true - } - ] - }, - { - "description": "nested items", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "array", - "items": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "number" - } - } - } - } - }, - "tests": [ - { - "description": "valid nested array", - "data": [[[[1]], [[2],[3]]], [[[4], [5], [6]]]], - "valid": true - }, - { - "description": "nested array with invalid type", - "data": [[[["1"]], [[2],[3]]], [[[4], [5], [6]]]], - "valid": false - }, - { - "description": "not deep enough", - "data": [[[1], [2],[3]], [[4], [5], [6]]], - "valid": false - } - ] - }, - { - "description": "single-form items with null instance elements", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "items": { - "type": "null" - } - }, - "tests": [ - { - "description": "allows null elements", - "data": [ null ], - "valid": true - } - ] - }, - { - "description": "array-form items with null instance elements", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "items": [ - { - "type": "null" - } - ] - }, - "tests": [ - { - "description": "allows null elements", - "data": [ null ], - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/maxContains.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/maxContains.json deleted file mode 100644 index ce4507c32..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/maxContains.json +++ /dev/null @@ -1,102 +0,0 @@ -[ - { - "description": "maxContains without contains is ignored", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "maxContains": 1 - }, - "tests": [ - { - "description": "one item valid against lone maxContains", - "data": [ 1 ], - "valid": true - }, - { - "description": "two items still valid against lone maxContains", - "data": [ 1, 2 ], - "valid": true - } - ] - }, - { - "description": "maxContains with contains", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "contains": {"const": 1}, - "maxContains": 1 - }, - "tests": [ - { - "description": "empty data", - "data": [ ], - "valid": false - }, - { - "description": "all elements match, valid maxContains", - "data": [ 1 ], - "valid": true - }, - { - "description": "all elements match, invalid maxContains", - "data": [ 1, 1 ], - "valid": false - }, - { - "description": "some elements match, valid maxContains", - "data": [ 1, 2 ], - "valid": true - }, - { - "description": "some elements match, invalid maxContains", - "data": [ 1, 2, 1 ], - "valid": false - } - ] - }, - { - "description": "maxContains with contains, value with a decimal", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "contains": {"const": 1}, - "maxContains": 1.0 - }, - "tests": [ - { - "description": "one element matches, valid maxContains", - "data": [ 1 ], - "valid": true - }, - { - "description": "too many elements match, invalid maxContains", - "data": [ 1, 1 ], - "valid": false - } - ] - }, - { - "description": "minContains < maxContains", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "contains": {"const": 1}, - "minContains": 1, - "maxContains": 3 - }, - "tests": [ - { - "description": "actual < minContains < maxContains", - "data": [ ], - "valid": false - }, - { - "description": "minContains < actual < maxContains", - "data": [ 1, 1 ], - "valid": true - }, - { - "description": "minContains < maxContains < actual", - "data": [ 1, 1, 1, 1 ], - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/maxItems.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/maxItems.json deleted file mode 100644 index d9ed15703..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/maxItems.json +++ /dev/null @@ -1,50 +0,0 @@ -[ - { - "description": "maxItems validation", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "maxItems": 2 - }, - "tests": [ - { - "description": "shorter is valid", - "data": [1], - "valid": true - }, - { - "description": "exact length is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "too long is invalid", - "data": [1, 2, 3], - "valid": false - }, - { - "description": "ignores non-arrays", - "data": "foobar", - "valid": true - } - ] - }, - { - "description": "maxItems validation with a decimal", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "maxItems": 2.0 - }, - "tests": [ - { - "description": "shorter is valid", - "data": [1], - "valid": true - }, - { - "description": "too long is invalid", - "data": [1, 2, 3], - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/maxLength.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/maxLength.json deleted file mode 100644 index a0cc7d9b8..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/maxLength.json +++ /dev/null @@ -1,55 +0,0 @@ -[ - { - "description": "maxLength validation", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "maxLength": 2 - }, - "tests": [ - { - "description": "shorter is valid", - "data": "f", - "valid": true - }, - { - "description": "exact length is valid", - "data": "fo", - "valid": true - }, - { - "description": "too long is invalid", - "data": "foo", - "valid": false - }, - { - "description": "ignores non-strings", - "data": 100, - "valid": true - }, - { - "description": "two graphemes is long enough", - "data": "\uD83D\uDCA9\uD83D\uDCA9", - "valid": true - } - ] - }, - { - "description": "maxLength validation with a decimal", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "maxLength": 2.0 - }, - "tests": [ - { - "description": "shorter is valid", - "data": "f", - "valid": true - }, - { - "description": "too long is invalid", - "data": "foo", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/maxProperties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/maxProperties.json deleted file mode 100644 index 5b31474cf..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/maxProperties.json +++ /dev/null @@ -1,79 +0,0 @@ -[ - { - "description": "maxProperties validation", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "maxProperties": 2 - }, - "tests": [ - { - "description": "shorter is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "exact length is valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "too long is invalid", - "data": {"foo": 1, "bar": 2, "baz": 3}, - "valid": false - }, - { - "description": "ignores arrays", - "data": [1, 2, 3], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobar", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "maxProperties validation with a decimal", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "maxProperties": 2.0 - }, - "tests": [ - { - "description": "shorter is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "too long is invalid", - "data": {"foo": 1, "bar": 2, "baz": 3}, - "valid": false - } - ] - }, - { - "description": "maxProperties = 0 means the object is empty", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "maxProperties": 0 - }, - "tests": [ - { - "description": "no properties is valid", - "data": {}, - "valid": true - }, - { - "description": "one property is invalid", - "data": { "foo": 1 }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/maximum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/maximum.json deleted file mode 100644 index c1f1dfd86..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/maximum.json +++ /dev/null @@ -1,60 +0,0 @@ -[ - { - "description": "maximum validation", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "maximum": 3.0 - }, - "tests": [ - { - "description": "below the maximum is valid", - "data": 2.6, - "valid": true - }, - { - "description": "boundary point is valid", - "data": 3.0, - "valid": true - }, - { - "description": "above the maximum is invalid", - "data": 3.5, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - }, - { - "description": "maximum validation with unsigned integer", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "maximum": 300 - }, - "tests": [ - { - "description": "below the maximum is invalid", - "data": 299.97, - "valid": true - }, - { - "description": "boundary point integer is valid", - "data": 300, - "valid": true - }, - { - "description": "boundary point float is valid", - "data": 300.00, - "valid": true - }, - { - "description": "above the maximum is invalid", - "data": 300.5, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/minContains.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/minContains.json deleted file mode 100644 index 8d3093c47..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/minContains.json +++ /dev/null @@ -1,224 +0,0 @@ -[ - { - "description": "minContains without contains is ignored", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "minContains": 1 - }, - "tests": [ - { - "description": "one item valid against lone minContains", - "data": [ 1 ], - "valid": true - }, - { - "description": "zero items still valid against lone minContains", - "data": [], - "valid": true - } - ] - }, - { - "description": "minContains=1 with contains", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "contains": {"const": 1}, - "minContains": 1 - }, - "tests": [ - { - "description": "empty data", - "data": [ ], - "valid": false - }, - { - "description": "no elements match", - "data": [ 2 ], - "valid": false - }, - { - "description": "single element matches, valid minContains", - "data": [ 1 ], - "valid": true - }, - { - "description": "some elements match, valid minContains", - "data": [ 1, 2 ], - "valid": true - }, - { - "description": "all elements match, valid minContains", - "data": [ 1, 1 ], - "valid": true - } - ] - }, - { - "description": "minContains=2 with contains", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "contains": {"const": 1}, - "minContains": 2 - }, - "tests": [ - { - "description": "empty data", - "data": [ ], - "valid": false - }, - { - "description": "all elements match, invalid minContains", - "data": [ 1 ], - "valid": false - }, - { - "description": "some elements match, invalid minContains", - "data": [ 1, 2 ], - "valid": false - }, - { - "description": "all elements match, valid minContains (exactly as needed)", - "data": [ 1, 1 ], - "valid": true - }, - { - "description": "all elements match, valid minContains (more than needed)", - "data": [ 1, 1, 1 ], - "valid": true - }, - { - "description": "some elements match, valid minContains", - "data": [ 1, 2, 1 ], - "valid": true - } - ] - }, - { - "description": "minContains=2 with contains with a decimal value", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "contains": {"const": 1}, - "minContains": 2.0 - }, - "tests": [ - { - "description": "one element matches, invalid minContains", - "data": [ 1 ], - "valid": false - }, - { - "description": "both elements match, valid minContains", - "data": [ 1, 1 ], - "valid": true - } - ] - }, - { - "description": "maxContains = minContains", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "contains": {"const": 1}, - "maxContains": 2, - "minContains": 2 - }, - "tests": [ - { - "description": "empty data", - "data": [ ], - "valid": false - }, - { - "description": "all elements match, invalid minContains", - "data": [ 1 ], - "valid": false - }, - { - "description": "all elements match, invalid maxContains", - "data": [ 1, 1, 1 ], - "valid": false - }, - { - "description": "all elements match, valid maxContains and minContains", - "data": [ 1, 1 ], - "valid": true - } - ] - }, - { - "description": "maxContains < minContains", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "contains": {"const": 1}, - "maxContains": 1, - "minContains": 3 - }, - "tests": [ - { - "description": "empty data", - "data": [ ], - "valid": false - }, - { - "description": "invalid minContains", - "data": [ 1 ], - "valid": false - }, - { - "description": "invalid maxContains", - "data": [ 1, 1, 1 ], - "valid": false - }, - { - "description": "invalid maxContains and minContains", - "data": [ 1, 1 ], - "valid": false - } - ] - }, - { - "description": "minContains = 0 with no maxContains", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "contains": {"const": 1}, - "minContains": 0 - }, - "tests": [ - { - "description": "empty data", - "data": [ ], - "valid": true - }, - { - "description": "minContains = 0 makes contains always pass", - "data": [ 2 ], - "valid": true - } - ] - }, - { - "description": "minContains = 0 with maxContains", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "contains": {"const": 1}, - "minContains": 0, - "maxContains": 1 - }, - "tests": [ - { - "description": "empty data", - "data": [ ], - "valid": true - }, - { - "description": "not more than maxContains", - "data": [ 1 ], - "valid": true - }, - { - "description": "too many", - "data": [ 1, 1 ], - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/minItems.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/minItems.json deleted file mode 100644 index 07817cc28..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/minItems.json +++ /dev/null @@ -1,50 +0,0 @@ -[ - { - "description": "minItems validation", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "minItems": 1 - }, - "tests": [ - { - "description": "longer is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "exact length is valid", - "data": [1], - "valid": true - }, - { - "description": "too short is invalid", - "data": [], - "valid": false - }, - { - "description": "ignores non-arrays", - "data": "", - "valid": true - } - ] - }, - { - "description": "minItems validation with a decimal", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "minItems": 1.0 - }, - "tests": [ - { - "description": "longer is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "too short is invalid", - "data": [], - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/minLength.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/minLength.json deleted file mode 100644 index 12782660c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/minLength.json +++ /dev/null @@ -1,55 +0,0 @@ -[ - { - "description": "minLength validation", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "minLength": 2 - }, - "tests": [ - { - "description": "longer is valid", - "data": "foo", - "valid": true - }, - { - "description": "exact length is valid", - "data": "fo", - "valid": true - }, - { - "description": "too short is invalid", - "data": "f", - "valid": false - }, - { - "description": "ignores non-strings", - "data": 1, - "valid": true - }, - { - "description": "one grapheme is not long enough", - "data": "\uD83D\uDCA9", - "valid": false - } - ] - }, - { - "description": "minLength validation with a decimal", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "minLength": 2.0 - }, - "tests": [ - { - "description": "longer is valid", - "data": "foo", - "valid": true - }, - { - "description": "too short is invalid", - "data": "f", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/minProperties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/minProperties.json deleted file mode 100644 index 20e01a9e2..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/minProperties.json +++ /dev/null @@ -1,60 +0,0 @@ -[ - { - "description": "minProperties validation", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "minProperties": 1 - }, - "tests": [ - { - "description": "longer is valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "exact length is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "too short is invalid", - "data": {}, - "valid": false - }, - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores strings", - "data": "", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "minProperties validation with a decimal", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "minProperties": 1.0 - }, - "tests": [ - { - "description": "longer is valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "too short is invalid", - "data": {}, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/minimum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/minimum.json deleted file mode 100644 index afb5f200a..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/minimum.json +++ /dev/null @@ -1,75 +0,0 @@ -[ - { - "description": "minimum validation", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "minimum": 1.1 - }, - "tests": [ - { - "description": "above the minimum is valid", - "data": 2.6, - "valid": true - }, - { - "description": "boundary point is valid", - "data": 1.1, - "valid": true - }, - { - "description": "below the minimum is invalid", - "data": 0.6, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - }, - { - "description": "minimum validation with signed integer", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "minimum": -2 - }, - "tests": [ - { - "description": "negative above the minimum is valid", - "data": -1, - "valid": true - }, - { - "description": "positive above the minimum is valid", - "data": 0, - "valid": true - }, - { - "description": "boundary point is valid", - "data": -2, - "valid": true - }, - { - "description": "boundary point with float is valid", - "data": -2.0, - "valid": true - }, - { - "description": "float below the minimum is invalid", - "data": -2.0001, - "valid": false - }, - { - "description": "int below the minimum is invalid", - "data": -3, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/multipleOf.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/multipleOf.json deleted file mode 100644 index 760a434ca..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/multipleOf.json +++ /dev/null @@ -1,97 +0,0 @@ -[ - { - "description": "by int", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "multipleOf": 2 - }, - "tests": [ - { - "description": "int by int", - "data": 10, - "valid": true - }, - { - "description": "int by int fail", - "data": 7, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "by number", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "multipleOf": 1.5 - }, - "tests": [ - { - "description": "zero is multiple of anything", - "data": 0, - "valid": true - }, - { - "description": "4.5 is multiple of 1.5", - "data": 4.5, - "valid": true - }, - { - "description": "35 is not multiple of 1.5", - "data": 35, - "valid": false - } - ] - }, - { - "description": "by small number", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "multipleOf": 0.0001 - }, - "tests": [ - { - "description": "0.0075 is multiple of 0.0001", - "data": 0.0075, - "valid": true - }, - { - "description": "0.00751 is not multiple of 0.0001", - "data": 0.00751, - "valid": false - } - ] - }, - { - "description": "float division = inf", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "integer", "multipleOf": 0.123456789 - }, - "tests": [ - { - "description": "always invalid, but naive implementations may raise an overflow error", - "data": 1e308, - "valid": false - } - ] - }, - { - "description": "small multiple of large integer", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "integer", "multipleOf": 1e-8 - }, - "tests": [ - { - "description": "any integer is a multiple of 1e-8", - "data": 12391239123, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/not.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/not.json deleted file mode 100644 index d90728c7b..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/not.json +++ /dev/null @@ -1,301 +0,0 @@ -[ - { - "description": "not", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "not": {"type": "integer"} - }, - "tests": [ - { - "description": "allowed", - "data": "foo", - "valid": true - }, - { - "description": "disallowed", - "data": 1, - "valid": false - } - ] - }, - { - "description": "not multiple types", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "not": {"type": ["integer", "boolean"]} - }, - "tests": [ - { - "description": "valid", - "data": "foo", - "valid": true - }, - { - "description": "mismatch", - "data": 1, - "valid": false - }, - { - "description": "other mismatch", - "data": true, - "valid": false - } - ] - }, - { - "description": "not more complex schema", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "not": { - "type": "object", - "properties": { - "foo": { - "type": "string" - } - } - } - }, - "tests": [ - { - "description": "match", - "data": 1, - "valid": true - }, - { - "description": "other match", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "mismatch", - "data": {"foo": "bar"}, - "valid": false - } - ] - }, - { - "description": "forbidden property", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "properties": { - "foo": { - "not": {} - } - } - }, - "tests": [ - { - "description": "property present", - "data": {"foo": 1, "bar": 2}, - "valid": false - }, - { - "description": "property absent", - "data": {"bar": 1, "baz": 2}, - "valid": true - } - ] - }, - { - "description": "forbid everything with empty schema", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "not": {} - }, - "tests": [ - { - "description": "number is invalid", - "data": 1, - "valid": false - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - }, - { - "description": "boolean true is invalid", - "data": true, - "valid": false - }, - { - "description": "boolean false is invalid", - "data": false, - "valid": false - }, - { - "description": "null is invalid", - "data": null, - "valid": false - }, - { - "description": "object is invalid", - "data": {"foo": "bar"}, - "valid": false - }, - { - "description": "empty object is invalid", - "data": {}, - "valid": false - }, - { - "description": "array is invalid", - "data": ["foo"], - "valid": false - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - } - ] - }, - { - "description": "forbid everything with boolean schema true", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "not": true - }, - "tests": [ - { - "description": "number is invalid", - "data": 1, - "valid": false - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - }, - { - "description": "boolean true is invalid", - "data": true, - "valid": false - }, - { - "description": "boolean false is invalid", - "data": false, - "valid": false - }, - { - "description": "null is invalid", - "data": null, - "valid": false - }, - { - "description": "object is invalid", - "data": {"foo": "bar"}, - "valid": false - }, - { - "description": "empty object is invalid", - "data": {}, - "valid": false - }, - { - "description": "array is invalid", - "data": ["foo"], - "valid": false - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - } - ] - }, - { - "description": "allow everything with boolean schema false", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "not": false - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "string is valid", - "data": "foo", - "valid": true - }, - { - "description": "boolean true is valid", - "data": true, - "valid": true - }, - { - "description": "boolean false is valid", - "data": false, - "valid": true - }, - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "object is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "empty object is valid", - "data": {}, - "valid": true - }, - { - "description": "array is valid", - "data": ["foo"], - "valid": true - }, - { - "description": "empty array is valid", - "data": [], - "valid": true - } - ] - }, - { - "description": "double negation", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "not": { "not": {} } - }, - "tests": [ - { - "description": "any value is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "collect annotations inside a 'not', even if collection is disabled", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "not": { - "$comment": "this subschema must still produce annotations internally, even though the 'not' will ultimately discard them", - "anyOf": [ - true, - { "properties": { "foo": true } } - ], - "unevaluatedProperties": false - } - }, - "tests": [ - { - "description": "unevaluated property", - "data": { "bar": 1 }, - "valid": true - }, - { - "description": "annotations are still collected inside a 'not'", - "data": { "foo": 1 }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/oneOf.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/oneOf.json deleted file mode 100644 index c27d4865c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/oneOf.json +++ /dev/null @@ -1,293 +0,0 @@ -[ - { - "description": "oneOf", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "oneOf": [ - { - "type": "integer" - }, - { - "minimum": 2 - } - ] - }, - "tests": [ - { - "description": "first oneOf valid", - "data": 1, - "valid": true - }, - { - "description": "second oneOf valid", - "data": 2.5, - "valid": true - }, - { - "description": "both oneOf valid", - "data": 3, - "valid": false - }, - { - "description": "neither oneOf valid", - "data": 1.5, - "valid": false - } - ] - }, - { - "description": "oneOf with base schema", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "string", - "oneOf" : [ - { - "minLength": 2 - }, - { - "maxLength": 4 - } - ] - }, - "tests": [ - { - "description": "mismatch base schema", - "data": 3, - "valid": false - }, - { - "description": "one oneOf valid", - "data": "foobar", - "valid": true - }, - { - "description": "both oneOf valid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "oneOf with boolean schemas, all true", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "oneOf": [true, true, true] - }, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "oneOf with boolean schemas, one true", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "oneOf": [true, false, false] - }, - "tests": [ - { - "description": "any value is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "oneOf with boolean schemas, more than one true", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "oneOf": [true, true, false] - }, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "oneOf with boolean schemas, all false", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "oneOf": [false, false, false] - }, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "oneOf complex types", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "oneOf": [ - { - "properties": { - "bar": {"type": "integer"} - }, - "required": ["bar"] - }, - { - "properties": { - "foo": {"type": "string"} - }, - "required": ["foo"] - } - ] - }, - "tests": [ - { - "description": "first oneOf valid (complex)", - "data": {"bar": 2}, - "valid": true - }, - { - "description": "second oneOf valid (complex)", - "data": {"foo": "baz"}, - "valid": true - }, - { - "description": "both oneOf valid (complex)", - "data": {"foo": "baz", "bar": 2}, - "valid": false - }, - { - "description": "neither oneOf valid (complex)", - "data": {"foo": 2, "bar": "quux"}, - "valid": false - } - ] - }, - { - "description": "oneOf with empty schema", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "oneOf": [ - { "type": "number" }, - {} - ] - }, - "tests": [ - { - "description": "one valid - valid", - "data": "foo", - "valid": true - }, - { - "description": "both valid - invalid", - "data": 123, - "valid": false - } - ] - }, - { - "description": "oneOf with required", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "oneOf": [ - { "required": ["foo", "bar"] }, - { "required": ["foo", "baz"] } - ] - }, - "tests": [ - { - "description": "both invalid - invalid", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "first valid - valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "second valid - valid", - "data": {"foo": 1, "baz": 3}, - "valid": true - }, - { - "description": "both valid - invalid", - "data": {"foo": 1, "bar": 2, "baz" : 3}, - "valid": false - } - ] - }, - { - "description": "oneOf with missing optional property", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "oneOf": [ - { - "properties": { - "bar": true, - "baz": true - }, - "required": ["bar"] - }, - { - "properties": { - "foo": true - }, - "required": ["foo"] - } - ] - }, - "tests": [ - { - "description": "first oneOf valid", - "data": {"bar": 8}, - "valid": true - }, - { - "description": "second oneOf valid", - "data": {"foo": "foo"}, - "valid": true - }, - { - "description": "both oneOf valid", - "data": {"foo": "foo", "bar": 8}, - "valid": false - }, - { - "description": "neither oneOf valid", - "data": {"baz": "quux"}, - "valid": false - } - ] - }, - { - "description": "nested oneOf, to check validation semantics", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "oneOf": [ - { - "oneOf": [ - { - "type": "null" - } - ] - } - ] - }, - "tests": [ - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "anything non-null is invalid", - "data": 123, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/anchor.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/anchor.json deleted file mode 100644 index 45951d0a3..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/anchor.json +++ /dev/null @@ -1,60 +0,0 @@ -[ - { - "description": "$anchor inside an enum is not a real identifier", - "comment": "the implementation must not be confused by an $anchor buried in the enum", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$defs": { - "anchor_in_enum": { - "enum": [ - { - "$anchor": "my_anchor", - "type": "null" - } - ] - }, - "real_identifier_in_schema": { - "$anchor": "my_anchor", - "type": "string" - }, - "zzz_anchor_in_const": { - "const": { - "$anchor": "my_anchor", - "type": "null" - } - } - }, - "anyOf": [ - { "$ref": "#/$defs/anchor_in_enum" }, - { "$ref": "#my_anchor" } - ] - }, - "tests": [ - { - "description": "exact match to enum, and type matches", - "data": { - "$anchor": "my_anchor", - "type": "null" - }, - "valid": true - }, - { - "description": "in implementations that strip $anchor, this may match either $def", - "data": { - "type": "null" - }, - "valid": false - }, - { - "description": "match $ref to $anchor", - "data": "a string to match #/$defs/anchor_in_enum", - "valid": true - }, - { - "description": "no match on enum or $ref to $anchor", - "data": 1, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/bignum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/bignum.json deleted file mode 100644 index 8b0646776..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/bignum.json +++ /dev/null @@ -1,110 +0,0 @@ -[ - { - "description": "integer", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "integer" - }, - "tests": [ - { - "description": "a bignum is an integer", - "data": 12345678910111213141516171819202122232425262728293031, - "valid": true - }, - { - "description": "a negative bignum is an integer", - "data": -12345678910111213141516171819202122232425262728293031, - "valid": true - } - ] - }, - { - "description": "number", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "number" - }, - "tests": [ - { - "description": "a bignum is a number", - "data": 98249283749234923498293171823948729348710298301928331, - "valid": true - }, - { - "description": "a negative bignum is a number", - "data": -98249283749234923498293171823948729348710298301928331, - "valid": true - } - ] - }, - { - "description": "string", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "string" - }, - "tests": [ - { - "description": "a bignum is not a string", - "data": 98249283749234923498293171823948729348710298301928331, - "valid": false - } - ] - }, - { - "description": "maximum integer comparison", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "maximum": 18446744073709551615 - }, - "tests": [ - { - "description": "comparison works for high numbers", - "data": 18446744073709551600, - "valid": true - } - ] - }, - { - "description": "float comparison with high precision", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "exclusiveMaximum": 972783798187987123879878123.18878137 - }, - "tests": [ - { - "description": "comparison works for high numbers", - "data": 972783798187987123879878123.188781371, - "valid": false - } - ] - }, - { - "description": "minimum integer comparison", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "minimum": -18446744073709551615 - }, - "tests": [ - { - "description": "comparison works for very negative numbers", - "data": -18446744073709551600, - "valid": true - } - ] - }, - { - "description": "float comparison with high precision on negative numbers", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "exclusiveMinimum": -972783798187987123879878123.18878137 - }, - "tests": [ - { - "description": "comparison works for very negative numbers", - "data": -972783798187987123879878123.188781371, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/cross-draft.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/cross-draft.json deleted file mode 100644 index efd3f87dc..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/cross-draft.json +++ /dev/null @@ -1,41 +0,0 @@ -[ - { - "description": "refs to future drafts are processed as future drafts", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "array", - "$ref": "http://localhost:1234/draft2020-12/prefixItems.json" - }, - "tests": [ - { - "description": "first item not a string is invalid", - "comment": "if the implementation is not processing the $ref as a 2020-12 schema, this test will fail", - "data": [1, 2, 3], - "valid": false - }, - { - "description": "first item is a string is valid", - "data": ["a string", 1, 2, 3], - "valid": true - } - ] - }, - { - "description": "refs to historic drafts are processed as historic drafts", - "schema": { - "type": "object", - "allOf": [ - { "properties": { "foo": true } }, - { "$ref": "http://localhost:1234/draft7/ignore-dependentRequired.json" } - ] - }, - "tests": [ - { - "description": "missing bar is valid", - "comment": "if the implementation is not processing the $ref as a draft 7 schema, this test will fail", - "data": {"foo": "any value"}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/dependencies-compatibility.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/dependencies-compatibility.json deleted file mode 100644 index 5bfbd058f..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/dependencies-compatibility.json +++ /dev/null @@ -1,282 +0,0 @@ -[ - { - "description": "single dependency", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "dependencies": {"bar": ["foo"]} - }, - "tests": [ - { - "description": "neither", - "data": {}, - "valid": true - }, - { - "description": "nondependant", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "with dependency", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "missing dependency", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "ignores arrays", - "data": ["bar"], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobar", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "empty dependents", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "dependencies": {"bar": []} - }, - "tests": [ - { - "description": "empty object", - "data": {}, - "valid": true - }, - { - "description": "object with one property", - "data": {"bar": 2}, - "valid": true - }, - { - "description": "non-object is valid", - "data": 1, - "valid": true - } - ] - }, - { - "description": "multiple dependents required", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "dependencies": {"quux": ["foo", "bar"]} - }, - "tests": [ - { - "description": "neither", - "data": {}, - "valid": true - }, - { - "description": "nondependants", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "with dependencies", - "data": {"foo": 1, "bar": 2, "quux": 3}, - "valid": true - }, - { - "description": "missing dependency", - "data": {"foo": 1, "quux": 2}, - "valid": false - }, - { - "description": "missing other dependency", - "data": {"bar": 1, "quux": 2}, - "valid": false - }, - { - "description": "missing both dependencies", - "data": {"quux": 1}, - "valid": false - } - ] - }, - { - "description": "dependencies with escaped characters", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "dependencies": { - "foo\nbar": ["foo\rbar"], - "foo\"bar": ["foo'bar"] - } - }, - "tests": [ - { - "description": "CRLF", - "data": { - "foo\nbar": 1, - "foo\rbar": 2 - }, - "valid": true - }, - { - "description": "quoted quotes", - "data": { - "foo'bar": 1, - "foo\"bar": 2 - }, - "valid": true - }, - { - "description": "CRLF missing dependent", - "data": { - "foo\nbar": 1, - "foo": 2 - }, - "valid": false - }, - { - "description": "quoted quotes missing dependent", - "data": { - "foo\"bar": 2 - }, - "valid": false - } - ] - }, - { - "description": "single schema dependency", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "dependencies": { - "bar": { - "properties": { - "foo": {"type": "integer"}, - "bar": {"type": "integer"} - } - } - } - }, - "tests": [ - { - "description": "valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "no dependency", - "data": {"foo": "quux"}, - "valid": true - }, - { - "description": "wrong type", - "data": {"foo": "quux", "bar": 2}, - "valid": false - }, - { - "description": "wrong type other", - "data": {"foo": 2, "bar": "quux"}, - "valid": false - }, - { - "description": "wrong type both", - "data": {"foo": "quux", "bar": "quux"}, - "valid": false - }, - { - "description": "ignores arrays", - "data": ["bar"], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobar", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "boolean subschemas", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "dependencies": { - "foo": true, - "bar": false - } - }, - "tests": [ - { - "description": "object with property having schema true is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "object with property having schema false is invalid", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "object with both properties is invalid", - "data": {"foo": 1, "bar": 2}, - "valid": false - }, - { - "description": "empty object is valid", - "data": {}, - "valid": true - } - ] - }, - { - "description": "schema dependencies with escaped characters", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "dependencies": { - "foo\tbar": {"minProperties": 4}, - "foo'bar": {"required": ["foo\"bar"]} - } - }, - "tests": [ - { - "description": "quoted tab", - "data": { - "foo\tbar": 1, - "a": 2, - "b": 3, - "c": 4 - }, - "valid": true - }, - { - "description": "quoted quote", - "data": { - "foo'bar": {"foo\"bar": 1} - }, - "valid": false - }, - { - "description": "quoted tab invalid under dependent schema", - "data": { - "foo\tbar": 1, - "a": 2 - }, - "valid": false - }, - { - "description": "quoted quote invalid under dependent schema", - "data": {"foo'bar": 1}, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/ecmascript-regex.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/ecmascript-regex.json deleted file mode 100644 index be1059c9e..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/ecmascript-regex.json +++ /dev/null @@ -1,582 +0,0 @@ -[ - { - "description": "ECMA 262 regex $ does not match trailing newline", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "string", - "pattern": "^abc$" - }, - "tests": [ - { - "description": "matches in Python, but not in ECMA 262", - "data": "abc\\n", - "valid": false - }, - { - "description": "matches", - "data": "abc", - "valid": true - } - ] - }, - { - "description": "ECMA 262 regex converts \\t to horizontal tab", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "string", - "pattern": "^\\t$" - }, - "tests": [ - { - "description": "does not match", - "data": "\\t", - "valid": false - }, - { - "description": "matches", - "data": "\u0009", - "valid": true - } - ] - }, - { - "description": "ECMA 262 regex escapes control codes with \\c and upper letter", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "string", - "pattern": "^\\cC$" - }, - "tests": [ - { - "description": "does not match", - "data": "\\cC", - "valid": false - }, - { - "description": "matches", - "data": "\u0003", - "valid": true - } - ] - }, - { - "description": "ECMA 262 regex escapes control codes with \\c and lower letter", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "string", - "pattern": "^\\cc$" - }, - "tests": [ - { - "description": "does not match", - "data": "\\cc", - "valid": false - }, - { - "description": "matches", - "data": "\u0003", - "valid": true - } - ] - }, - { - "description": "ECMA 262 \\d matches ascii digits only", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "string", - "pattern": "^\\d$" - }, - "tests": [ - { - "description": "ASCII zero matches", - "data": "0", - "valid": true - }, - { - "description": "NKO DIGIT ZERO does not match (unlike e.g. Python)", - "data": "߀", - "valid": false - }, - { - "description": "NKO DIGIT ZERO (as \\u escape) does not match", - "data": "\u07c0", - "valid": false - } - ] - }, - { - "description": "ECMA 262 \\D matches everything but ascii digits", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "string", - "pattern": "^\\D$" - }, - "tests": [ - { - "description": "ASCII zero does not match", - "data": "0", - "valid": false - }, - { - "description": "NKO DIGIT ZERO matches (unlike e.g. Python)", - "data": "߀", - "valid": true - }, - { - "description": "NKO DIGIT ZERO (as \\u escape) matches", - "data": "\u07c0", - "valid": true - } - ] - }, - { - "description": "ECMA 262 \\w matches ascii letters only", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "string", - "pattern": "^\\w$" - }, - "tests": [ - { - "description": "ASCII 'a' matches", - "data": "a", - "valid": true - }, - { - "description": "latin-1 e-acute does not match (unlike e.g. Python)", - "data": "é", - "valid": false - } - ] - }, - { - "description": "ECMA 262 \\W matches everything but ascii letters", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "string", - "pattern": "^\\W$" - }, - "tests": [ - { - "description": "ASCII 'a' does not match", - "data": "a", - "valid": false - }, - { - "description": "latin-1 e-acute matches (unlike e.g. Python)", - "data": "é", - "valid": true - } - ] - }, - { - "description": "ECMA 262 \\s matches whitespace", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "string", - "pattern": "^\\s$" - }, - "tests": [ - { - "description": "ASCII space matches", - "data": " ", - "valid": true - }, - { - "description": "Character tabulation matches", - "data": "\t", - "valid": true - }, - { - "description": "Line tabulation matches", - "data": "\u000b", - "valid": true - }, - { - "description": "Form feed matches", - "data": "\u000c", - "valid": true - }, - { - "description": "latin-1 non-breaking-space matches", - "data": "\u00a0", - "valid": true - }, - { - "description": "zero-width whitespace matches", - "data": "\ufeff", - "valid": true - }, - { - "description": "line feed matches (line terminator)", - "data": "\u000a", - "valid": true - }, - { - "description": "paragraph separator matches (line terminator)", - "data": "\u2029", - "valid": true - }, - { - "description": "EM SPACE matches (Space_Separator)", - "data": "\u2003", - "valid": true - }, - { - "description": "Non-whitespace control does not match", - "data": "\u0001", - "valid": false - }, - { - "description": "Non-whitespace does not match", - "data": "\u2013", - "valid": false - } - ] - }, - { - "description": "ECMA 262 \\S matches everything but whitespace", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "string", - "pattern": "^\\S$" - }, - "tests": [ - { - "description": "ASCII space does not match", - "data": " ", - "valid": false - }, - { - "description": "Character tabulation does not match", - "data": "\t", - "valid": false - }, - { - "description": "Line tabulation does not match", - "data": "\u000b", - "valid": false - }, - { - "description": "Form feed does not match", - "data": "\u000c", - "valid": false - }, - { - "description": "latin-1 non-breaking-space does not match", - "data": "\u00a0", - "valid": false - }, - { - "description": "zero-width whitespace does not match", - "data": "\ufeff", - "valid": false - }, - { - "description": "line feed does not match (line terminator)", - "data": "\u000a", - "valid": false - }, - { - "description": "paragraph separator does not match (line terminator)", - "data": "\u2029", - "valid": false - }, - { - "description": "EM SPACE does not match (Space_Separator)", - "data": "\u2003", - "valid": false - }, - { - "description": "Non-whitespace control matches", - "data": "\u0001", - "valid": true - }, - { - "description": "Non-whitespace matches", - "data": "\u2013", - "valid": true - } - ] - }, - { - "description": "patterns always use unicode semantics with pattern", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "pattern": "\\p{Letter}cole" - }, - "tests": [ - { - "description": "ascii character in json string", - "data": "Les hivers de mon enfance etaient des saisons longues, longues. Nous vivions en trois lieux: l'ecole, l'eglise et la patinoire; mais la vraie vie etait sur la patinoire.", - "valid": true - }, - { - "description": "literal unicode character in json string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": true - }, - { - "description": "unicode character in hex format in string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'\u00e9cole, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": true - }, - { - "description": "unicode matching is case-sensitive", - "data": "LES HIVERS DE MON ENFANCE ÉTAIENT DES SAISONS LONGUES, LONGUES. NOUS VIVIONS EN TROIS LIEUX: L'ÉCOLE, L'ÉGLISE ET LA PATINOIRE; MAIS LA VRAIE VIE ÉTAIT SUR LA PATINOIRE.", - "valid": false - } - ] - }, - { - "description": "\\w in patterns matches [A-Za-z0-9_], not unicode letters", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "pattern": "\\wcole" - }, - "tests": [ - { - "description": "ascii character in json string", - "data": "Les hivers de mon enfance etaient des saisons longues, longues. Nous vivions en trois lieux: l'ecole, l'eglise et la patinoire; mais la vraie vie etait sur la patinoire.", - "valid": true - }, - { - "description": "literal unicode character in json string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": false - }, - { - "description": "unicode character in hex format in string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'\u00e9cole, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": false - }, - { - "description": "unicode matching is case-sensitive", - "data": "LES HIVERS DE MON ENFANCE ÉTAIENT DES SAISONS LONGUES, LONGUES. NOUS VIVIONS EN TROIS LIEUX: L'ÉCOLE, L'ÉGLISE ET LA PATINOIRE; MAIS LA VRAIE VIE ÉTAIT SUR LA PATINOIRE.", - "valid": false - } - ] - }, - { - "description": "pattern with ASCII ranges", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "pattern": "[a-z]cole" - }, - "tests": [ - { - "description": "literal unicode character in json string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": false - }, - { - "description": "unicode character in hex format in string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'\u00e9cole, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": false - }, - { - "description": "ascii characters match", - "data": "Les hivers de mon enfance etaient des saisons longues, longues. Nous vivions en trois lieux: l'ecole, l'eglise et la patinoire; mais la vraie vie etait sur la patinoire.", - "valid": true - } - ] - }, - { - "description": "\\d in pattern matches [0-9], not unicode digits", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "pattern": "^\\d+$" - }, - "tests": [ - { - "description": "ascii digits", - "data": "42", - "valid": true - }, - { - "description": "ascii non-digits", - "data": "-%#", - "valid": false - }, - { - "description": "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)", - "data": "৪২", - "valid": false - } - ] - }, - { - "description": "pattern with non-ASCII digits", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "pattern": "^\\p{digit}+$" - }, - "tests": [ - { - "description": "ascii digits", - "data": "42", - "valid": true - }, - { - "description": "ascii non-digits", - "data": "-%#", - "valid": false - }, - { - "description": "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)", - "data": "৪২", - "valid": true - } - ] - }, - { - "description": "patterns always use unicode semantics with patternProperties", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "patternProperties": { - "\\p{Letter}cole": true - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "ascii character in json string", - "data": { "l'ecole": "pas de vraie vie" }, - "valid": true - }, - { - "description": "literal unicode character in json string", - "data": { "l'école": "pas de vraie vie" }, - "valid": true - }, - { - "description": "unicode character in hex format in string", - "data": { "l'\u00e9cole": "pas de vraie vie" }, - "valid": true - }, - { - "description": "unicode matching is case-sensitive", - "data": { "L'ÉCOLE": "PAS DE VRAIE VIE" }, - "valid": false - } - ] - }, - { - "description": "\\w in patternProperties matches [A-Za-z0-9_], not unicode letters", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "patternProperties": { - "\\wcole": true - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "ascii character in json string", - "data": { "l'ecole": "pas de vraie vie" }, - "valid": true - }, - { - "description": "literal unicode character in json string", - "data": { "l'école": "pas de vraie vie" }, - "valid": false - }, - { - "description": "unicode character in hex format in string", - "data": { "l'\u00e9cole": "pas de vraie vie" }, - "valid": false - }, - { - "description": "unicode matching is case-sensitive", - "data": { "L'ÉCOLE": "PAS DE VRAIE VIE" }, - "valid": false - } - ] - }, - { - "description": "patternProperties with ASCII ranges", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "patternProperties": { - "[a-z]cole": true - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "literal unicode character in json string", - "data": { "l'école": "pas de vraie vie" }, - "valid": false - }, - { - "description": "unicode character in hex format in string", - "data": { "l'\u00e9cole": "pas de vraie vie" }, - "valid": false - }, - { - "description": "ascii characters match", - "data": { "l'ecole": "pas de vraie vie" }, - "valid": true - } - ] - }, - { - "description": "\\d in patternProperties matches [0-9], not unicode digits", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "patternProperties": { - "^\\d+$": true - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "ascii digits", - "data": { "42": "life, the universe, and everything" }, - "valid": true - }, - { - "description": "ascii non-digits", - "data": { "-%#": "spending the year dead for tax reasons" }, - "valid": false - }, - { - "description": "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)", - "data": { "৪২": "khajit has wares if you have coin" }, - "valid": false - } - ] - }, - { - "description": "patternProperties with non-ASCII digits", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "patternProperties": { - "^\\p{digit}+$": true - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "ascii digits", - "data": { "42": "life, the universe, and everything" }, - "valid": true - }, - { - "description": "ascii non-digits", - "data": { "-%#": "spending the year dead for tax reasons" }, - "valid": false - }, - { - "description": "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)", - "data": { "৪২": "khajit has wares if you have coin" }, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/float-overflow.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/float-overflow.json deleted file mode 100644 index f5741facc..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/float-overflow.json +++ /dev/null @@ -1,16 +0,0 @@ -[ - { - "description": "all integers are multiples of 0.5, if overflow is handled", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "integer", "multipleOf": 0.5 - }, - "tests": [ - { - "description": "valid if optional overflow handling is implemented", - "data": 1e308, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/date-time.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/date-time.json deleted file mode 100644 index 731001d50..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/date-time.json +++ /dev/null @@ -1,136 +0,0 @@ -[ - { - "description": "validation of date-time strings", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "date-time" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid date-time string", - "data": "1963-06-19T08:30:06.283185Z", - "valid": true - }, - { - "description": "a valid date-time string without second fraction", - "data": "1963-06-19T08:30:06Z", - "valid": true - }, - { - "description": "a valid date-time string with plus offset", - "data": "1937-01-01T12:00:27.87+00:20", - "valid": true - }, - { - "description": "a valid date-time string with minus offset", - "data": "1990-12-31T15:59:50.123-08:00", - "valid": true - }, - { - "description": "a valid date-time with a leap second, UTC", - "data": "1998-12-31T23:59:60Z", - "valid": true - }, - { - "description": "a valid date-time with a leap second, with minus offset", - "data": "1998-12-31T15:59:60.123-08:00", - "valid": true - }, - { - "description": "an invalid date-time past leap second, UTC", - "data": "1998-12-31T23:59:61Z", - "valid": false - }, - { - "description": "an invalid date-time with leap second on a wrong minute, UTC", - "data": "1998-12-31T23:58:60Z", - "valid": false - }, - { - "description": "an invalid date-time with leap second on a wrong hour, UTC", - "data": "1998-12-31T22:59:60Z", - "valid": false - }, - { - "description": "an invalid day in date-time string", - "data": "1990-02-31T15:59:59.123-08:00", - "valid": false - }, - { - "description": "an invalid offset in date-time string", - "data": "1990-12-31T15:59:59-24:00", - "valid": false - }, - { - "description": "an invalid closing Z after time-zone offset", - "data": "1963-06-19T08:30:06.28123+01:00Z", - "valid": false - }, - { - "description": "an invalid date-time string", - "data": "06/19/1963 08:30:06 PST", - "valid": false - }, - { - "description": "case-insensitive T and Z", - "data": "1963-06-19t08:30:06.283185z", - "valid": true - }, - { - "description": "only RFC3339 not all of ISO 8601 are valid", - "data": "2013-350T01:01:01", - "valid": false - }, - { - "description": "invalid non-padded month dates", - "data": "1963-6-19T08:30:06.283185Z", - "valid": false - }, - { - "description": "invalid non-padded day dates", - "data": "1963-06-1T08:30:06.283185Z", - "valid": false - }, - { - "description": "invalid non-ASCII '৪' (a Bengali 4) in date portion", - "data": "1963-06-1৪T00:00:00Z", - "valid": false - }, - { - "description": "invalid non-ASCII '৪' (a Bengali 4) in time portion", - "data": "1963-06-11T0৪:00:00Z", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/date.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/date.json deleted file mode 100644 index 805888c2b..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/date.json +++ /dev/null @@ -1,246 +0,0 @@ -[ - { - "description": "validation of date strings", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "date" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid date string", - "data": "1963-06-19", - "valid": true - }, - { - "description": "a valid date string with 31 days in January", - "data": "2020-01-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in January", - "data": "2020-01-32", - "valid": false - }, - { - "description": "a valid date string with 28 days in February (normal)", - "data": "2021-02-28", - "valid": true - }, - { - "description": "a invalid date string with 29 days in February (normal)", - "data": "2021-02-29", - "valid": false - }, - { - "description": "a valid date string with 29 days in February (leap)", - "data": "2020-02-29", - "valid": true - }, - { - "description": "a invalid date string with 30 days in February (leap)", - "data": "2020-02-30", - "valid": false - }, - { - "description": "a valid date string with 31 days in March", - "data": "2020-03-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in March", - "data": "2020-03-32", - "valid": false - }, - { - "description": "a valid date string with 30 days in April", - "data": "2020-04-30", - "valid": true - }, - { - "description": "a invalid date string with 31 days in April", - "data": "2020-04-31", - "valid": false - }, - { - "description": "a valid date string with 31 days in May", - "data": "2020-05-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in May", - "data": "2020-05-32", - "valid": false - }, - { - "description": "a valid date string with 30 days in June", - "data": "2020-06-30", - "valid": true - }, - { - "description": "a invalid date string with 31 days in June", - "data": "2020-06-31", - "valid": false - }, - { - "description": "a valid date string with 31 days in July", - "data": "2020-07-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in July", - "data": "2020-07-32", - "valid": false - }, - { - "description": "a valid date string with 31 days in August", - "data": "2020-08-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in August", - "data": "2020-08-32", - "valid": false - }, - { - "description": "a valid date string with 30 days in September", - "data": "2020-09-30", - "valid": true - }, - { - "description": "a invalid date string with 31 days in September", - "data": "2020-09-31", - "valid": false - }, - { - "description": "a valid date string with 31 days in October", - "data": "2020-10-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in October", - "data": "2020-10-32", - "valid": false - }, - { - "description": "a valid date string with 30 days in November", - "data": "2020-11-30", - "valid": true - }, - { - "description": "a invalid date string with 31 days in November", - "data": "2020-11-31", - "valid": false - }, - { - "description": "a valid date string with 31 days in December", - "data": "2020-12-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in December", - "data": "2020-12-32", - "valid": false - }, - { - "description": "a invalid date string with invalid month", - "data": "2020-13-01", - "valid": false - }, - { - "description": "an invalid date string", - "data": "06/19/1963", - "valid": false - }, - { - "description": "only RFC3339 not all of ISO 8601 are valid", - "data": "2013-350", - "valid": false - }, - { - "description": "non-padded month dates are not valid", - "data": "1998-1-20", - "valid": false - }, - { - "description": "non-padded day dates are not valid", - "data": "1998-01-1", - "valid": false - }, - { - "description": "invalid month", - "data": "1998-13-01", - "valid": false - }, - { - "description": "invalid month-day combination", - "data": "1998-04-31", - "valid": false - }, - { - "description": "2021 is not a leap year", - "data": "2021-02-29", - "valid": false - }, - { - "description": "2020 is a leap year", - "data": "2020-02-29", - "valid": true - }, - { - "description": "invalid non-ASCII '৪' (a Bengali 4)", - "data": "1963-06-1৪", - "valid": false - }, - { - "description": "ISO8601 / non-RFC3339: YYYYMMDD without dashes (2023-03-28)", - "data": "20230328", - "valid": false - }, - { - "description": "ISO8601 / non-RFC3339: week number implicit day of week (2023-01-02)", - "data": "2023-W01", - "valid": false - }, - { - "description": "ISO8601 / non-RFC3339: week number with day of week (2023-03-28)", - "data": "2023-W13-2", - "valid": false - }, - { - "description": "ISO8601 / non-RFC3339: week number rollover to next year (2023-01-01)", - "data": "2022W527", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/duration.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/duration.json deleted file mode 100644 index 00d5f47ae..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/duration.json +++ /dev/null @@ -1,136 +0,0 @@ -[ - { - "description": "validation of duration strings", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "duration" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid duration string", - "data": "P4DT12H30M5S", - "valid": true - }, - { - "description": "an invalid duration string", - "data": "PT1D", - "valid": false - }, - { - "description": "no elements present", - "data": "P", - "valid": false - }, - { - "description": "no time elements present", - "data": "P1YT", - "valid": false - }, - { - "description": "no date or time elements present", - "data": "PT", - "valid": false - }, - { - "description": "elements out of order", - "data": "P2D1Y", - "valid": false - }, - { - "description": "missing time separator", - "data": "P1D2H", - "valid": false - }, - { - "description": "time element in the date position", - "data": "P2S", - "valid": false - }, - { - "description": "four years duration", - "data": "P4Y", - "valid": true - }, - { - "description": "zero time, in seconds", - "data": "PT0S", - "valid": true - }, - { - "description": "zero time, in days", - "data": "P0D", - "valid": true - }, - { - "description": "one month duration", - "data": "P1M", - "valid": true - }, - { - "description": "one minute duration", - "data": "PT1M", - "valid": true - }, - { - "description": "one and a half days, in hours", - "data": "PT36H", - "valid": true - }, - { - "description": "one and a half days, in days and hours", - "data": "P1DT12H", - "valid": true - }, - { - "description": "two weeks", - "data": "P2W", - "valid": true - }, - { - "description": "weeks cannot be combined with other units", - "data": "P1Y2W", - "valid": false - }, - { - "description": "invalid non-ASCII '২' (a Bengali 2)", - "data": "P২Y", - "valid": false - }, - { - "description": "element without unit", - "data": "P1", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/email.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/email.json deleted file mode 100644 index e6acc32bb..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/email.json +++ /dev/null @@ -1,86 +0,0 @@ -[ - { - "description": "validation of e-mail addresses", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "email" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid e-mail address", - "data": "joe.bloggs@example.com", - "valid": true - }, - { - "description": "an invalid e-mail address", - "data": "2962", - "valid": false - }, - { - "description": "tilde in local part is valid", - "data": "te~st@example.com", - "valid": true - }, - { - "description": "tilde before local part is valid", - "data": "~test@example.com", - "valid": true - }, - { - "description": "tilde after local part is valid", - "data": "test~@example.com", - "valid": true - }, - { - "description": "dot before local part is not valid", - "data": ".test@example.com", - "valid": false - }, - { - "description": "dot after local part is not valid", - "data": "test.@example.com", - "valid": false - }, - { - "description": "two separated dots inside local part are valid", - "data": "te.s.t@example.com", - "valid": true - }, - { - "description": "two subsequent dots inside local part are not valid", - "data": "te..st@example.com", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/hostname.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/hostname.json deleted file mode 100644 index f3b7181c8..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/hostname.json +++ /dev/null @@ -1,126 +0,0 @@ -[ - { - "description": "validation of host names", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "hostname" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid host name", - "data": "www.example.com", - "valid": true - }, - { - "description": "a valid punycoded IDN hostname", - "data": "xn--4gbwdl.xn--wgbh1c", - "valid": true - }, - { - "description": "a host name starting with an illegal character", - "data": "-a-host-name-that-starts-with--", - "valid": false - }, - { - "description": "a host name containing illegal characters", - "data": "not_a_valid_host_name", - "valid": false - }, - { - "description": "a host name with a component too long", - "data": "a-vvvvvvvvvvvvvvvveeeeeeeeeeeeeeeerrrrrrrrrrrrrrrryyyyyyyyyyyyyyyy-long-host-name-component", - "valid": false - }, - { - "description": "starts with hyphen", - "data": "-hostname", - "valid": false - }, - { - "description": "ends with hyphen", - "data": "hostname-", - "valid": false - }, - { - "description": "starts with underscore", - "data": "_hostname", - "valid": false - }, - { - "description": "ends with underscore", - "data": "hostname_", - "valid": false - }, - { - "description": "contains underscore", - "data": "host_name", - "valid": false - }, - { - "description": "maximum label length", - "data": "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijk.com", - "valid": true - }, - { - "description": "exceeds maximum label length", - "data": "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkl.com", - "valid": false - }, - { - "description": "single label", - "data": "hostname", - "valid": true - }, - { - "description": "single label with hyphen", - "data": "host-name", - "valid": true - }, - { - "description": "single label with digits", - "data": "h0stn4me", - "valid": true - }, - { - "description": "single label starting with digit", - "data": "1host", - "valid": true - }, - { - "description": "single label ending with digit", - "data": "hostnam3", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/idn-email.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/idn-email.json deleted file mode 100644 index baf01d0aa..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/idn-email.json +++ /dev/null @@ -1,61 +0,0 @@ -[ - { - "description": "validation of an internationalized e-mail addresses", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "idn-email" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid idn e-mail (example@example.test in Hangul)", - "data": "실례@실례.테스트", - "valid": true - }, - { - "description": "an invalid idn e-mail address", - "data": "2962", - "valid": false - }, - { - "description": "a valid e-mail address", - "data": "joe.bloggs@example.com", - "valid": true - }, - { - "description": "an invalid e-mail address", - "data": "2962", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/idn-hostname.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/idn-hostname.json deleted file mode 100644 index 072a6b08e..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/idn-hostname.json +++ /dev/null @@ -1,332 +0,0 @@ -[ - { - "description": "validation of internationalized host names", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "idn-hostname" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid host name (example.test in Hangul)", - "data": "실례.테스트", - "valid": true - }, - { - "description": "illegal first char U+302E Hangul single dot tone mark", - "data": "〮실례.테스트", - "valid": false - }, - { - "description": "contains illegal char U+302E Hangul single dot tone mark", - "data": "실〮례.테스트", - "valid": false - }, - { - "description": "a host name with a component too long", - "data": "실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실례례테스트례례례례례례례례례례례례례례례례례테스트례례례례례례례례례례례례례례례례례례례테스트례례례례례례례례례례례례테스트례례실례.테스트", - "valid": false - }, - { - "description": "invalid label, correct Punycode", - "comment": "https://tools.ietf.org/html/rfc5890#section-2.3.2.1 https://tools.ietf.org/html/rfc5891#section-4.4 https://tools.ietf.org/html/rfc3492#section-7.1", - "data": "-> $1.00 <--", - "valid": false - }, - { - "description": "valid Chinese Punycode", - "comment": "https://tools.ietf.org/html/rfc5890#section-2.3.2.1 https://tools.ietf.org/html/rfc5891#section-4.4", - "data": "xn--ihqwcrb4cv8a8dqg056pqjye", - "valid": true - }, - { - "description": "invalid Punycode", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.4 https://tools.ietf.org/html/rfc5890#section-2.3.2.1", - "data": "xn--X", - "valid": false - }, - { - "description": "U-label contains \"--\" in the 3rd and 4th position", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.1 https://tools.ietf.org/html/rfc5890#section-2.3.2.1", - "data": "XN--aa---o47jg78q", - "valid": false - }, - { - "description": "U-label starts with a dash", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.1", - "data": "-hello", - "valid": false - }, - { - "description": "U-label ends with a dash", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.1", - "data": "hello-", - "valid": false - }, - { - "description": "U-label starts and ends with a dash", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.1", - "data": "-hello-", - "valid": false - }, - { - "description": "Begins with a Spacing Combining Mark", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.2", - "data": "\u0903hello", - "valid": false - }, - { - "description": "Begins with a Nonspacing Mark", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.2", - "data": "\u0300hello", - "valid": false - }, - { - "description": "Begins with an Enclosing Mark", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.2", - "data": "\u0488hello", - "valid": false - }, - { - "description": "Exceptions that are PVALID, left-to-right chars", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.2 https://tools.ietf.org/html/rfc5892#section-2.6", - "data": "\u00df\u03c2\u0f0b\u3007", - "valid": true - }, - { - "description": "Exceptions that are PVALID, right-to-left chars", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.2 https://tools.ietf.org/html/rfc5892#section-2.6", - "data": "\u06fd\u06fe", - "valid": true - }, - { - "description": "Exceptions that are DISALLOWED, right-to-left chars", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.2 https://tools.ietf.org/html/rfc5892#section-2.6", - "data": "\u0640\u07fa", - "valid": false - }, - { - "description": "Exceptions that are DISALLOWED, left-to-right chars", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.2 https://tools.ietf.org/html/rfc5892#section-2.6 Note: The two combining marks (U+302E and U+302F) are in the middle and not at the start", - "data": "\u3031\u3032\u3033\u3034\u3035\u302e\u302f\u303b", - "valid": false - }, - { - "description": "MIDDLE DOT with no preceding 'l'", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.3", - "data": "a\u00b7l", - "valid": false - }, - { - "description": "MIDDLE DOT with nothing preceding", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.3", - "data": "\u00b7l", - "valid": false - }, - { - "description": "MIDDLE DOT with no following 'l'", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.3", - "data": "l\u00b7a", - "valid": false - }, - { - "description": "MIDDLE DOT with nothing following", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.3", - "data": "l\u00b7", - "valid": false - }, - { - "description": "MIDDLE DOT with surrounding 'l's", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.3", - "data": "l\u00b7l", - "valid": true - }, - { - "description": "Greek KERAIA not followed by Greek", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.4", - "data": "\u03b1\u0375S", - "valid": false - }, - { - "description": "Greek KERAIA not followed by anything", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.4", - "data": "\u03b1\u0375", - "valid": false - }, - { - "description": "Greek KERAIA followed by Greek", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.4", - "data": "\u03b1\u0375\u03b2", - "valid": true - }, - { - "description": "Hebrew GERESH not preceded by Hebrew", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.5", - "data": "A\u05f3\u05d1", - "valid": false - }, - { - "description": "Hebrew GERESH not preceded by anything", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.5", - "data": "\u05f3\u05d1", - "valid": false - }, - { - "description": "Hebrew GERESH preceded by Hebrew", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.5", - "data": "\u05d0\u05f3\u05d1", - "valid": true - }, - { - "description": "Hebrew GERSHAYIM not preceded by Hebrew", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.6", - "data": "A\u05f4\u05d1", - "valid": false - }, - { - "description": "Hebrew GERSHAYIM not preceded by anything", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.6", - "data": "\u05f4\u05d1", - "valid": false - }, - { - "description": "Hebrew GERSHAYIM preceded by Hebrew", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.6", - "data": "\u05d0\u05f4\u05d1", - "valid": true - }, - { - "description": "KATAKANA MIDDLE DOT with no Hiragana, Katakana, or Han", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.7", - "data": "def\u30fbabc", - "valid": false - }, - { - "description": "KATAKANA MIDDLE DOT with no other characters", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.7", - "data": "\u30fb", - "valid": false - }, - { - "description": "KATAKANA MIDDLE DOT with Hiragana", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.7", - "data": "\u30fb\u3041", - "valid": true - }, - { - "description": "KATAKANA MIDDLE DOT with Katakana", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.7", - "data": "\u30fb\u30a1", - "valid": true - }, - { - "description": "KATAKANA MIDDLE DOT with Han", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.7", - "data": "\u30fb\u4e08", - "valid": true - }, - { - "description": "Arabic-Indic digits mixed with Extended Arabic-Indic digits", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.8", - "data": "\u0660\u06f0", - "valid": false - }, - { - "description": "Arabic-Indic digits not mixed with Extended Arabic-Indic digits", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.8", - "data": "\u0628\u0660\u0628", - "valid": true - }, - { - "description": "Extended Arabic-Indic digits not mixed with Arabic-Indic digits", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.9", - "data": "\u06f00", - "valid": true - }, - { - "description": "ZERO WIDTH JOINER not preceded by Virama", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.2 https://www.unicode.org/review/pr-37.pdf", - "data": "\u0915\u200d\u0937", - "valid": false - }, - { - "description": "ZERO WIDTH JOINER not preceded by anything", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.2 https://www.unicode.org/review/pr-37.pdf", - "data": "\u200d\u0937", - "valid": false - }, - { - "description": "ZERO WIDTH JOINER preceded by Virama", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.2 https://www.unicode.org/review/pr-37.pdf", - "data": "\u0915\u094d\u200d\u0937", - "valid": true - }, - { - "description": "ZERO WIDTH NON-JOINER preceded by Virama", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.1", - "data": "\u0915\u094d\u200c\u0937", - "valid": true - }, - { - "description": "ZERO WIDTH NON-JOINER not preceded by Virama but matches regexp", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.1 https://www.w3.org/TR/alreq/#h_disjoining_enforcement", - "data": "\u0628\u064a\u200c\u0628\u064a", - "valid": true - }, - { - "description": "single label", - "data": "hostname", - "valid": true - }, - { - "description": "single label with hyphen", - "data": "host-name", - "valid": true - }, - { - "description": "single label with digits", - "data": "h0stn4me", - "valid": true - }, - { - "description": "single label starting with digit", - "data": "1host", - "valid": true - }, - { - "description": "single label ending with digit", - "data": "hostnam3", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/ipv4.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/ipv4.json deleted file mode 100644 index efe42471b..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/ipv4.json +++ /dev/null @@ -1,92 +0,0 @@ -[ - { - "description": "validation of IP addresses", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "ipv4" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid IP address", - "data": "192.168.0.1", - "valid": true - }, - { - "description": "an IP address with too many components", - "data": "127.0.0.0.1", - "valid": false - }, - { - "description": "an IP address with out-of-range values", - "data": "256.256.256.256", - "valid": false - }, - { - "description": "an IP address without 4 components", - "data": "127.0", - "valid": false - }, - { - "description": "an IP address as an integer", - "data": "0x7f000001", - "valid": false - }, - { - "description": "an IP address as an integer (decimal)", - "data": "2130706433", - "valid": false - }, - { - "description": "invalid leading zeroes, as they are treated as octals", - "comment": "see https://sick.codes/universal-netmask-npm-package-used-by-270000-projects-vulnerable-to-octal-input-data-server-side-request-forgery-remote-file-inclusion-local-file-inclusion-and-more-cve-2021-28918/", - "data": "087.10.0.1", - "valid": false - }, - { - "description": "value without leading zero is valid", - "data": "87.10.0.1", - "valid": true - }, - { - "description": "invalid non-ASCII '২' (a Bengali 2)", - "data": "1২7.0.0.1", - "valid": false - }, - { - "description": "netmask is not a part of ipv4 address", - "data": "192.168.1.0/24", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/ipv6.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/ipv6.json deleted file mode 100644 index 04860917c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/ipv6.json +++ /dev/null @@ -1,211 +0,0 @@ -[ - { - "description": "validation of IPv6 addresses", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "ipv6" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid IPv6 address", - "data": "::1", - "valid": true - }, - { - "description": "an IPv6 address with out-of-range values", - "data": "12345::", - "valid": false - }, - { - "description": "trailing 4 hex symbols is valid", - "data": "::abef", - "valid": true - }, - { - "description": "trailing 5 hex symbols is invalid", - "data": "::abcef", - "valid": false - }, - { - "description": "an IPv6 address with too many components", - "data": "1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1", - "valid": false - }, - { - "description": "an IPv6 address containing illegal characters", - "data": "::laptop", - "valid": false - }, - { - "description": "no digits is valid", - "data": "::", - "valid": true - }, - { - "description": "leading colons is valid", - "data": "::42:ff:1", - "valid": true - }, - { - "description": "trailing colons is valid", - "data": "d6::", - "valid": true - }, - { - "description": "missing leading octet is invalid", - "data": ":2:3:4:5:6:7:8", - "valid": false - }, - { - "description": "missing trailing octet is invalid", - "data": "1:2:3:4:5:6:7:", - "valid": false - }, - { - "description": "missing leading octet with omitted octets later", - "data": ":2:3:4::8", - "valid": false - }, - { - "description": "single set of double colons in the middle is valid", - "data": "1:d6::42", - "valid": true - }, - { - "description": "two sets of double colons is invalid", - "data": "1::d6::42", - "valid": false - }, - { - "description": "mixed format with the ipv4 section as decimal octets", - "data": "1::d6:192.168.0.1", - "valid": true - }, - { - "description": "mixed format with double colons between the sections", - "data": "1:2::192.168.0.1", - "valid": true - }, - { - "description": "mixed format with ipv4 section with octet out of range", - "data": "1::2:192.168.256.1", - "valid": false - }, - { - "description": "mixed format with ipv4 section with a hex octet", - "data": "1::2:192.168.ff.1", - "valid": false - }, - { - "description": "mixed format with leading double colons (ipv4-mapped ipv6 address)", - "data": "::ffff:192.168.0.1", - "valid": true - }, - { - "description": "triple colons is invalid", - "data": "1:2:3:4:5:::8", - "valid": false - }, - { - "description": "8 octets", - "data": "1:2:3:4:5:6:7:8", - "valid": true - }, - { - "description": "insufficient octets without double colons", - "data": "1:2:3:4:5:6:7", - "valid": false - }, - { - "description": "no colons is invalid", - "data": "1", - "valid": false - }, - { - "description": "ipv4 is not ipv6", - "data": "127.0.0.1", - "valid": false - }, - { - "description": "ipv4 segment must have 4 octets", - "data": "1:2:3:4:1.2.3", - "valid": false - }, - { - "description": "leading whitespace is invalid", - "data": " ::1", - "valid": false - }, - { - "description": "trailing whitespace is invalid", - "data": "::1 ", - "valid": false - }, - { - "description": "netmask is not a part of ipv6 address", - "data": "fe80::/64", - "valid": false - }, - { - "description": "zone id is not a part of ipv6 address", - "data": "fe80::a%eth1", - "valid": false - }, - { - "description": "a long valid ipv6", - "data": "1000:1000:1000:1000:1000:1000:255.255.255.255", - "valid": true - }, - { - "description": "a long invalid ipv6, below length limit, first", - "data": "100:100:100:100:100:100:255.255.255.255.255", - "valid": false - }, - { - "description": "a long invalid ipv6, below length limit, second", - "data": "100:100:100:100:100:100:100:255.255.255.255", - "valid": false - }, - { - "description": "invalid non-ASCII '৪' (a Bengali 4)", - "data": "1:2:3:4:5:6:7:৪", - "valid": false - }, - { - "description": "invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion", - "data": "1:2::192.16৪.0.1", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/iri-reference.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/iri-reference.json deleted file mode 100644 index 69142102b..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/iri-reference.json +++ /dev/null @@ -1,76 +0,0 @@ -[ - { - "description": "validation of IRI References", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "iri-reference" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid IRI", - "data": "http://ƒøø.ßår/?∂éœ=πîx#πîüx", - "valid": true - }, - { - "description": "a valid protocol-relative IRI Reference", - "data": "//ƒøø.ßår/?∂éœ=πîx#πîüx", - "valid": true - }, - { - "description": "a valid relative IRI Reference", - "data": "/âππ", - "valid": true - }, - { - "description": "an invalid IRI Reference", - "data": "\\\\WINDOWS\\filëßåré", - "valid": false - }, - { - "description": "a valid IRI Reference", - "data": "âππ", - "valid": true - }, - { - "description": "a valid IRI fragment", - "data": "#ƒrägmênt", - "valid": true - }, - { - "description": "an invalid IRI fragment", - "data": "#ƒräg\\mênt", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/iri.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/iri.json deleted file mode 100644 index ad4c79e83..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/iri.json +++ /dev/null @@ -1,86 +0,0 @@ -[ - { - "description": "validation of IRIs", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "iri" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid IRI with anchor tag", - "data": "http://ƒøø.ßår/?∂éœ=πîx#πîüx", - "valid": true - }, - { - "description": "a valid IRI with anchor tag and parentheses", - "data": "http://ƒøø.com/blah_(wîkïpédiå)_blah#ßité-1", - "valid": true - }, - { - "description": "a valid IRI with URL-encoded stuff", - "data": "http://ƒøø.ßår/?q=Test%20URL-encoded%20stuff", - "valid": true - }, - { - "description": "a valid IRI with many special characters", - "data": "http://-.~_!$&'()*+,;=:%40:80%2f::::::@example.com", - "valid": true - }, - { - "description": "a valid IRI based on IPv6", - "data": "http://[2001:0db8:85a3:0000:0000:8a2e:0370:7334]", - "valid": true - }, - { - "description": "an invalid IRI based on IPv6", - "data": "http://2001:0db8:85a3:0000:0000:8a2e:0370:7334", - "valid": false - }, - { - "description": "an invalid relative IRI Reference", - "data": "/abc", - "valid": false - }, - { - "description": "an invalid IRI", - "data": "\\\\WINDOWS\\filëßåré", - "valid": false - }, - { - "description": "an invalid IRI though valid IRI reference", - "data": "âππ", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/json-pointer.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/json-pointer.json deleted file mode 100644 index 39f1cc923..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/json-pointer.json +++ /dev/null @@ -1,201 +0,0 @@ -[ - { - "description": "validation of JSON-pointers (JSON String Representation)", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "json-pointer" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid JSON-pointer", - "data": "/foo/bar~0/baz~1/%a", - "valid": true - }, - { - "description": "not a valid JSON-pointer (~ not escaped)", - "data": "/foo/bar~", - "valid": false - }, - { - "description": "valid JSON-pointer with empty segment", - "data": "/foo//bar", - "valid": true - }, - { - "description": "valid JSON-pointer with the last empty segment", - "data": "/foo/bar/", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #1", - "data": "", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #2", - "data": "/foo", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #3", - "data": "/foo/0", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #4", - "data": "/", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #5", - "data": "/a~1b", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #6", - "data": "/c%d", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #7", - "data": "/e^f", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #8", - "data": "/g|h", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #9", - "data": "/i\\j", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #10", - "data": "/k\"l", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #11", - "data": "/ ", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #12", - "data": "/m~0n", - "valid": true - }, - { - "description": "valid JSON-pointer used adding to the last array position", - "data": "/foo/-", - "valid": true - }, - { - "description": "valid JSON-pointer (- used as object member name)", - "data": "/foo/-/bar", - "valid": true - }, - { - "description": "valid JSON-pointer (multiple escaped characters)", - "data": "/~1~0~0~1~1", - "valid": true - }, - { - "description": "valid JSON-pointer (escaped with fraction part) #1", - "data": "/~1.1", - "valid": true - }, - { - "description": "valid JSON-pointer (escaped with fraction part) #2", - "data": "/~0.1", - "valid": true - }, - { - "description": "not a valid JSON-pointer (URI Fragment Identifier) #1", - "data": "#", - "valid": false - }, - { - "description": "not a valid JSON-pointer (URI Fragment Identifier) #2", - "data": "#/", - "valid": false - }, - { - "description": "not a valid JSON-pointer (URI Fragment Identifier) #3", - "data": "#a", - "valid": false - }, - { - "description": "not a valid JSON-pointer (some escaped, but not all) #1", - "data": "/~0~", - "valid": false - }, - { - "description": "not a valid JSON-pointer (some escaped, but not all) #2", - "data": "/~0/~", - "valid": false - }, - { - "description": "not a valid JSON-pointer (wrong escape character) #1", - "data": "/~2", - "valid": false - }, - { - "description": "not a valid JSON-pointer (wrong escape character) #2", - "data": "/~-1", - "valid": false - }, - { - "description": "not a valid JSON-pointer (multiple characters not escaped)", - "data": "/~~", - "valid": false - }, - { - "description": "not a valid JSON-pointer (isn't empty nor starts with /) #1", - "data": "a", - "valid": false - }, - { - "description": "not a valid JSON-pointer (isn't empty nor starts with /) #2", - "data": "0", - "valid": false - }, - { - "description": "not a valid JSON-pointer (isn't empty nor starts with /) #3", - "data": "a/a", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/regex.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/regex.json deleted file mode 100644 index da32401c5..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/regex.json +++ /dev/null @@ -1,51 +0,0 @@ -[ - { - "description": "validation of regular expressions", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "regex" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid regular expression", - "data": "([abc])+\\s+$", - "valid": true - }, - { - "description": "a regular expression with unclosed parens is invalid", - "data": "^(abc]", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/relative-json-pointer.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/relative-json-pointer.json deleted file mode 100644 index ba97d2a19..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/relative-json-pointer.json +++ /dev/null @@ -1,101 +0,0 @@ -[ - { - "description": "validation of Relative JSON Pointers (RJP)", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "relative-json-pointer" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid upwards RJP", - "data": "1", - "valid": true - }, - { - "description": "a valid downwards RJP", - "data": "0/foo/bar", - "valid": true - }, - { - "description": "a valid up and then down RJP, with array index", - "data": "2/0/baz/1/zip", - "valid": true - }, - { - "description": "a valid RJP taking the member or index name", - "data": "0#", - "valid": true - }, - { - "description": "an invalid RJP that is a valid JSON Pointer", - "data": "/foo/bar", - "valid": false - }, - { - "description": "negative prefix", - "data": "-1/foo/bar", - "valid": false - }, - { - "description": "explicit positive prefix", - "data": "+1/foo/bar", - "valid": false - }, - { - "description": "## is not a valid json-pointer", - "data": "0##", - "valid": false - }, - { - "description": "zero cannot be followed by other digits, plus json-pointer", - "data": "01/a", - "valid": false - }, - { - "description": "zero cannot be followed by other digits, plus octothorpe", - "data": "01#", - "valid": false - }, - { - "description": "empty string", - "data": "", - "valid": false - }, - { - "description": "multi-digit integer prefix", - "data": "120/foo/bar", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/time.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/time.json deleted file mode 100644 index dadaae6a0..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/time.json +++ /dev/null @@ -1,236 +0,0 @@ -[ - { - "description": "validation of time strings", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "time" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid time string", - "data": "08:30:06Z", - "valid": true - }, - { - "description": "invalid time string with extra leading zeros", - "data": "008:030:006Z", - "valid": false - }, - { - "description": "invalid time string with no leading zero for single digit", - "data": "8:3:6Z", - "valid": false - }, - { - "description": "hour, minute, second must be two digits", - "data": "8:0030:6Z", - "valid": false - }, - { - "description": "a valid time string with leap second, Zulu", - "data": "23:59:60Z", - "valid": true - }, - { - "description": "invalid leap second, Zulu (wrong hour)", - "data": "22:59:60Z", - "valid": false - }, - { - "description": "invalid leap second, Zulu (wrong minute)", - "data": "23:58:60Z", - "valid": false - }, - { - "description": "valid leap second, zero time-offset", - "data": "23:59:60+00:00", - "valid": true - }, - { - "description": "invalid leap second, zero time-offset (wrong hour)", - "data": "22:59:60+00:00", - "valid": false - }, - { - "description": "invalid leap second, zero time-offset (wrong minute)", - "data": "23:58:60+00:00", - "valid": false - }, - { - "description": "valid leap second, positive time-offset", - "data": "01:29:60+01:30", - "valid": true - }, - { - "description": "valid leap second, large positive time-offset", - "data": "23:29:60+23:30", - "valid": true - }, - { - "description": "invalid leap second, positive time-offset (wrong hour)", - "data": "23:59:60+01:00", - "valid": false - }, - { - "description": "invalid leap second, positive time-offset (wrong minute)", - "data": "23:59:60+00:30", - "valid": false - }, - { - "description": "valid leap second, negative time-offset", - "data": "15:59:60-08:00", - "valid": true - }, - { - "description": "valid leap second, large negative time-offset", - "data": "00:29:60-23:30", - "valid": true - }, - { - "description": "invalid leap second, negative time-offset (wrong hour)", - "data": "23:59:60-01:00", - "valid": false - }, - { - "description": "invalid leap second, negative time-offset (wrong minute)", - "data": "23:59:60-00:30", - "valid": false - }, - { - "description": "a valid time string with second fraction", - "data": "23:20:50.52Z", - "valid": true - }, - { - "description": "a valid time string with precise second fraction", - "data": "08:30:06.283185Z", - "valid": true - }, - { - "description": "a valid time string with plus offset", - "data": "08:30:06+00:20", - "valid": true - }, - { - "description": "a valid time string with minus offset", - "data": "08:30:06-08:00", - "valid": true - }, - { - "description": "hour, minute in time-offset must be two digits", - "data": "08:30:06-8:000", - "valid": false - }, - { - "description": "a valid time string with case-insensitive Z", - "data": "08:30:06z", - "valid": true - }, - { - "description": "an invalid time string with invalid hour", - "data": "24:00:00Z", - "valid": false - }, - { - "description": "an invalid time string with invalid minute", - "data": "00:60:00Z", - "valid": false - }, - { - "description": "an invalid time string with invalid second", - "data": "00:00:61Z", - "valid": false - }, - { - "description": "an invalid time string with invalid leap second (wrong hour)", - "data": "22:59:60Z", - "valid": false - }, - { - "description": "an invalid time string with invalid leap second (wrong minute)", - "data": "23:58:60Z", - "valid": false - }, - { - "description": "an invalid time string with invalid time numoffset hour", - "data": "01:02:03+24:00", - "valid": false - }, - { - "description": "an invalid time string with invalid time numoffset minute", - "data": "01:02:03+00:60", - "valid": false - }, - { - "description": "an invalid time string with invalid time with both Z and numoffset", - "data": "01:02:03Z+00:30", - "valid": false - }, - { - "description": "an invalid offset indicator", - "data": "08:30:06 PST", - "valid": false - }, - { - "description": "only RFC3339 not all of ISO 8601 are valid", - "data": "01:01:01,1111", - "valid": false - }, - { - "description": "no time offset", - "data": "12:00:00", - "valid": false - }, - { - "description": "no time offset with second fraction", - "data": "12:00:00.52", - "valid": false - }, - { - "description": "invalid non-ASCII '২' (a Bengali 2)", - "data": "1২:00:00Z", - "valid": false - }, - { - "description": "offset not starting with plus or minus", - "data": "08:30:06#00:20", - "valid": false - }, - { - "description": "contains letters", - "data": "ab:cd:ef", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/unknown.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/unknown.json deleted file mode 100644 index c89f73036..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/unknown.json +++ /dev/null @@ -1,46 +0,0 @@ -[ - { - "description": "unknown format", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "unknown" - }, - "tests": [ - { - "description": "unknown formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "unknown formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "unknown formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "unknown formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "unknown formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "unknown formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "unknown formats ignore strings", - "data": "string", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/uri-reference.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/uri-reference.json deleted file mode 100644 index 2c49da63f..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/uri-reference.json +++ /dev/null @@ -1,76 +0,0 @@ -[ - { - "description": "validation of URI References", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "uri-reference" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid URI", - "data": "http://foo.bar/?baz=qux#quux", - "valid": true - }, - { - "description": "a valid protocol-relative URI Reference", - "data": "//foo.bar/?baz=qux#quux", - "valid": true - }, - { - "description": "a valid relative URI Reference", - "data": "/abc", - "valid": true - }, - { - "description": "an invalid URI Reference", - "data": "\\\\WINDOWS\\fileshare", - "valid": false - }, - { - "description": "a valid URI Reference", - "data": "abc", - "valid": true - }, - { - "description": "a valid URI fragment", - "data": "#fragment", - "valid": true - }, - { - "description": "an invalid URI fragment", - "data": "#frag\\ment", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/uri-template.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/uri-template.json deleted file mode 100644 index f4aee1040..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/uri-template.json +++ /dev/null @@ -1,61 +0,0 @@ -[ - { - "description": "format: uri-template", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "uri-template" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid uri-template", - "data": "http://example.com/dictionary/{term:1}/{term}", - "valid": true - }, - { - "description": "an invalid uri-template", - "data": "http://example.com/dictionary/{term:1}/{term", - "valid": false - }, - { - "description": "a valid uri-template without variables", - "data": "http://example.com/dictionary", - "valid": true - }, - { - "description": "a valid relative uri-template", - "data": "dictionary/{term:1}/{term}", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/uri.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/uri.json deleted file mode 100644 index ad67840de..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/uri.json +++ /dev/null @@ -1,141 +0,0 @@ -[ - { - "description": "validation of URIs", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "uri" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid URL with anchor tag", - "data": "http://foo.bar/?baz=qux#quux", - "valid": true - }, - { - "description": "a valid URL with anchor tag and parentheses", - "data": "http://foo.com/blah_(wikipedia)_blah#cite-1", - "valid": true - }, - { - "description": "a valid URL with URL-encoded stuff", - "data": "http://foo.bar/?q=Test%20URL-encoded%20stuff", - "valid": true - }, - { - "description": "a valid puny-coded URL ", - "data": "http://xn--nw2a.xn--j6w193g/", - "valid": true - }, - { - "description": "a valid URL with many special characters", - "data": "http://-.~_!$&'()*+,;=:%40:80%2f::::::@example.com", - "valid": true - }, - { - "description": "a valid URL based on IPv4", - "data": "http://223.255.255.254", - "valid": true - }, - { - "description": "a valid URL with ftp scheme", - "data": "ftp://ftp.is.co.za/rfc/rfc1808.txt", - "valid": true - }, - { - "description": "a valid URL for a simple text file", - "data": "http://www.ietf.org/rfc/rfc2396.txt", - "valid": true - }, - { - "description": "a valid URL ", - "data": "ldap://[2001:db8::7]/c=GB?objectClass?one", - "valid": true - }, - { - "description": "a valid mailto URI", - "data": "mailto:John.Doe@example.com", - "valid": true - }, - { - "description": "a valid newsgroup URI", - "data": "news:comp.infosystems.www.servers.unix", - "valid": true - }, - { - "description": "a valid tel URI", - "data": "tel:+1-816-555-1212", - "valid": true - }, - { - "description": "a valid URN", - "data": "urn:oasis:names:specification:docbook:dtd:xml:4.1.2", - "valid": true - }, - { - "description": "an invalid protocol-relative URI Reference", - "data": "//foo.bar/?baz=qux#quux", - "valid": false - }, - { - "description": "an invalid relative URI Reference", - "data": "/abc", - "valid": false - }, - { - "description": "an invalid URI", - "data": "\\\\WINDOWS\\fileshare", - "valid": false - }, - { - "description": "an invalid URI though valid URI reference", - "data": "abc", - "valid": false - }, - { - "description": "an invalid URI with spaces", - "data": "http:// shouldfail.com", - "valid": false - }, - { - "description": "an invalid URI with spaces and missing scheme", - "data": ":// should fail", - "valid": false - }, - { - "description": "an invalid URI with comma in scheme", - "data": "bar,baz:foo", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/uuid.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/uuid.json deleted file mode 100644 index dc6fb7e0d..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/format/uuid.json +++ /dev/null @@ -1,116 +0,0 @@ -[ - { - "description": "uuid format", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "format": "uuid" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "all upper-case", - "data": "2EB8AA08-AA98-11EA-B4AA-73B441D16380", - "valid": true - }, - { - "description": "all lower-case", - "data": "2eb8aa08-aa98-11ea-b4aa-73b441d16380", - "valid": true - }, - { - "description": "mixed case", - "data": "2eb8aa08-AA98-11ea-B4Aa-73B441D16380", - "valid": true - }, - { - "description": "all zeroes is valid", - "data": "00000000-0000-0000-0000-000000000000", - "valid": true - }, - { - "description": "wrong length", - "data": "2eb8aa08-aa98-11ea-b4aa-73b441d1638", - "valid": false - }, - { - "description": "missing section", - "data": "2eb8aa08-aa98-11ea-73b441d16380", - "valid": false - }, - { - "description": "bad characters (not hex)", - "data": "2eb8aa08-aa98-11ea-b4ga-73b441d16380", - "valid": false - }, - { - "description": "no dashes", - "data": "2eb8aa08aa9811eab4aa73b441d16380", - "valid": false - }, - { - "description": "too few dashes", - "data": "2eb8aa08aa98-11ea-b4aa73b441d16380", - "valid": false - }, - { - "description": "too many dashes", - "data": "2eb8-aa08-aa98-11ea-b4aa73b44-1d16380", - "valid": false - }, - { - "description": "dashes in the wrong spot", - "data": "2eb8aa08aa9811eab4aa73b441d16380----", - "valid": false - }, - { - "description": "valid version 4", - "data": "98d80576-482e-427f-8434-7f86890ab222", - "valid": true - }, - { - "description": "valid version 5", - "data": "99c17cbb-656f-564a-940f-1a4568f03487", - "valid": true - }, - { - "description": "hypothetical version 6", - "data": "99c17cbb-656f-664a-940f-1a4568f03487", - "valid": true - }, - { - "description": "hypothetical version 15", - "data": "99c17cbb-656f-f64a-940f-1a4568f03487", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/id.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/id.json deleted file mode 100644 index 4daa8f51f..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/id.json +++ /dev/null @@ -1,53 +0,0 @@ -[ - { - "description": "$id inside an enum is not a real identifier", - "comment": "the implementation must not be confused by an $id buried in the enum", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$defs": { - "id_in_enum": { - "enum": [ - { - "$id": "https://localhost:1234/draft2019-09/id/my_identifier.json", - "type": "null" - } - ] - }, - "real_id_in_schema": { - "$id": "https://localhost:1234/draft2019-09/id/my_identifier.json", - "type": "string" - }, - "zzz_id_in_const": { - "const": { - "$id": "https://localhost:1234/draft2019-09/id/my_identifier.json", - "type": "null" - } - } - }, - "anyOf": [ - { "$ref": "#/$defs/id_in_enum" }, - { "$ref": "https://localhost:1234/draft2019-09/id/my_identifier.json" } - ] - }, - "tests": [ - { - "description": "exact match to enum, and type matches", - "data": { - "$id": "https://localhost:1234/draft2019-09/id/my_identifier.json", - "type": "null" - }, - "valid": true - }, - { - "description": "match $ref to $id", - "data": "a string to match #/$defs/id_in_enum", - "valid": true - }, - { - "description": "no match on enum or $ref to $id", - "data": 1, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/no-schema.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/no-schema.json deleted file mode 100644 index 676e6b53a..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/no-schema.json +++ /dev/null @@ -1,26 +0,0 @@ -[ - { - "description": "validation without $schema", - "comment": "minLength is the same across all drafts", - "schema": { - "minLength": 2 - }, - "tests": [ - { - "description": "a 3-character string is valid", - "data": "foo", - "valid": true - }, - { - "description": "a 1-character string is not valid", - "data": "a", - "valid": false - }, - { - "description": "a non-string is valid", - "data": 5, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/non-bmp-regex.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/non-bmp-regex.json deleted file mode 100644 index ef2500064..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/non-bmp-regex.json +++ /dev/null @@ -1,86 +0,0 @@ -[ - { - "description": "Proper UTF-16 surrogate pair handling: pattern", - "comment": "Optional because .Net doesn't correctly handle 32-bit Unicode characters", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "pattern": "^🐲*$" - }, - "tests": [ - { - "description": "matches empty", - "data": "", - "valid": true - }, - { - "description": "matches single", - "data": "🐲", - "valid": true - }, - { - "description": "matches two", - "data": "🐲🐲", - "valid": true - }, - { - "description": "doesn't match one", - "data": "🐉", - "valid": false - }, - { - "description": "doesn't match two", - "data": "🐉🐉", - "valid": false - }, - { - "description": "doesn't match one ASCII", - "data": "D", - "valid": false - }, - { - "description": "doesn't match two ASCII", - "data": "DD", - "valid": false - } - ] - }, - { - "description": "Proper UTF-16 surrogate pair handling: patternProperties", - "comment": "Optional because .Net doesn't correctly handle 32-bit Unicode characters", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "patternProperties": { - "^🐲*$": { - "type": "integer" - } - } - }, - "tests": [ - { - "description": "matches empty", - "data": { "": 1 }, - "valid": true - }, - { - "description": "matches single", - "data": { "🐲": 1 }, - "valid": true - }, - { - "description": "matches two", - "data": { "🐲🐲": 1 }, - "valid": true - }, - { - "description": "doesn't match one", - "data": { "🐲": "hello" }, - "valid": false - }, - { - "description": "doesn't match two", - "data": { "🐲🐲": "hello" }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/refOfUnknownKeyword.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/refOfUnknownKeyword.json deleted file mode 100644 index e9a75dd1e..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/refOfUnknownKeyword.json +++ /dev/null @@ -1,69 +0,0 @@ -[ - { - "description": "reference of a root arbitrary keyword ", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "unknown-keyword": {"type": "integer"}, - "properties": { - "bar": {"$ref": "#/unknown-keyword"} - } - }, - "tests": [ - { - "description": "match", - "data": {"bar": 3}, - "valid": true - }, - { - "description": "mismatch", - "data": {"bar": true}, - "valid": false - } - ] - }, - { - "description": "reference of an arbitrary keyword of a sub-schema", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "properties": { - "foo": {"unknown-keyword": {"type": "integer"}}, - "bar": {"$ref": "#/properties/foo/unknown-keyword"} - } - }, - "tests": [ - { - "description": "match", - "data": {"bar": 3}, - "valid": true - }, - { - "description": "mismatch", - "data": {"bar": true}, - "valid": false - } - ] - }, - { - "description": "reference internals of known non-applicator", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "/base", - "examples": [ - { "type": "string" } - ], - "$ref": "#/examples/0" - }, - "tests": [ - { - "description": "match", - "data": "a string", - "valid": true - }, - { - "description": "mismatch", - "data": 42, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/unknownKeyword.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/unknownKeyword.json deleted file mode 100644 index f98e87c54..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/optional/unknownKeyword.json +++ /dev/null @@ -1,57 +0,0 @@ -[ - { - "description": "$id inside an unknown keyword is not a real identifier", - "comment": "the implementation must not be confused by an $id in locations we do not know how to parse", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$defs": { - "id_in_unknown0": { - "not": { - "array_of_schemas": [ - { - "$id": "https://localhost:1234/draft2019-09/unknownKeyword/my_identifier.json", - "type": "null" - } - ] - } - }, - "real_id_in_schema": { - "$id": "https://localhost:1234/draft2019-09/unknownKeyword/my_identifier.json", - "type": "string" - }, - "id_in_unknown1": { - "not": { - "object_of_schemas": { - "foo": { - "$id": "https://localhost:1234/draft2019-09/unknownKeyword/my_identifier.json", - "type": "integer" - } - } - } - } - }, - "anyOf": [ - { "$ref": "#/$defs/id_in_unknown0" }, - { "$ref": "#/$defs/id_in_unknown1" }, - { "$ref": "https://localhost:1234/draft2019-09/unknownKeyword/my_identifier.json" } - ] - }, - "tests": [ - { - "description": "type matches second anyOf, which has a real schema in it", - "data": "a string", - "valid": true - }, - { - "description": "type matches non-schema in first anyOf", - "data": null, - "valid": false - }, - { - "description": "type matches non-schema in third anyOf", - "data": 1, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/pattern.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/pattern.json deleted file mode 100644 index cfb87744f..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/pattern.json +++ /dev/null @@ -1,65 +0,0 @@ -[ - { - "description": "pattern validation", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "pattern": "^a*$" - }, - "tests": [ - { - "description": "a matching pattern is valid", - "data": "aaa", - "valid": true - }, - { - "description": "a non-matching pattern is invalid", - "data": "abc", - "valid": false - }, - { - "description": "ignores booleans", - "data": true, - "valid": true - }, - { - "description": "ignores integers", - "data": 123, - "valid": true - }, - { - "description": "ignores floats", - "data": 1.0, - "valid": true - }, - { - "description": "ignores objects", - "data": {}, - "valid": true - }, - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores null", - "data": null, - "valid": true - } - ] - }, - { - "description": "pattern is not anchored", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "pattern": "a+" - }, - "tests": [ - { - "description": "matches a substring", - "data": "xxaayy", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/patternProperties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/patternProperties.json deleted file mode 100644 index 354bb48bf..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/patternProperties.json +++ /dev/null @@ -1,176 +0,0 @@ -[ - { - "description": - "patternProperties validates properties matching a regex", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "patternProperties": { - "f.*o": {"type": "integer"} - } - }, - "tests": [ - { - "description": "a single valid match is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "multiple valid matches is valid", - "data": {"foo": 1, "foooooo" : 2}, - "valid": true - }, - { - "description": "a single invalid match is invalid", - "data": {"foo": "bar", "fooooo": 2}, - "valid": false - }, - { - "description": "multiple invalid matches is invalid", - "data": {"foo": "bar", "foooooo" : "baz"}, - "valid": false - }, - { - "description": "ignores arrays", - "data": ["foo"], - "valid": true - }, - { - "description": "ignores strings", - "data": "foo", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "multiple simultaneous patternProperties are validated", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "patternProperties": { - "a*": {"type": "integer"}, - "aaa*": {"maximum": 20} - } - }, - "tests": [ - { - "description": "a single valid match is valid", - "data": {"a": 21}, - "valid": true - }, - { - "description": "a simultaneous match is valid", - "data": {"aaaa": 18}, - "valid": true - }, - { - "description": "multiple matches is valid", - "data": {"a": 21, "aaaa": 18}, - "valid": true - }, - { - "description": "an invalid due to one is invalid", - "data": {"a": "bar"}, - "valid": false - }, - { - "description": "an invalid due to the other is invalid", - "data": {"aaaa": 31}, - "valid": false - }, - { - "description": "an invalid due to both is invalid", - "data": {"aaa": "foo", "aaaa": 31}, - "valid": false - } - ] - }, - { - "description": "regexes are not anchored by default and are case sensitive", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "patternProperties": { - "[0-9]{2,}": { "type": "boolean" }, - "X_": { "type": "string" } - } - }, - "tests": [ - { - "description": "non recognized members are ignored", - "data": { "answer 1": "42" }, - "valid": true - }, - { - "description": "recognized members are accounted for", - "data": { "a31b": null }, - "valid": false - }, - { - "description": "regexes are case sensitive", - "data": { "a_x_3": 3 }, - "valid": true - }, - { - "description": "regexes are case sensitive, 2", - "data": { "a_X_3": 3 }, - "valid": false - } - ] - }, - { - "description": "patternProperties with boolean schemas", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "patternProperties": { - "f.*": true, - "b.*": false - } - }, - "tests": [ - { - "description": "object with property matching schema true is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "object with property matching schema false is invalid", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "object with both properties is invalid", - "data": {"foo": 1, "bar": 2}, - "valid": false - }, - { - "description": "object with a property matching both true and false is invalid", - "data": {"foobar":1}, - "valid": false - }, - { - "description": "empty object is valid", - "data": {}, - "valid": true - } - ] - }, - { - "description": "patternProperties with null valued instance properties", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "patternProperties": { - "^.*bar$": {"type": "null"} - } - }, - "tests": [ - { - "description": "allows null values", - "data": {"foobar": null}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/properties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/properties.json deleted file mode 100644 index a53429c5e..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/properties.json +++ /dev/null @@ -1,242 +0,0 @@ -[ - { - "description": "object properties validation", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "properties": { - "foo": {"type": "integer"}, - "bar": {"type": "string"} - } - }, - "tests": [ - { - "description": "both properties present and valid is valid", - "data": {"foo": 1, "bar": "baz"}, - "valid": true - }, - { - "description": "one property invalid is invalid", - "data": {"foo": 1, "bar": {}}, - "valid": false - }, - { - "description": "both properties invalid is invalid", - "data": {"foo": [], "bar": {}}, - "valid": false - }, - { - "description": "doesn't invalidate other properties", - "data": {"quux": []}, - "valid": true - }, - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": - "properties, patternProperties, additionalProperties interaction", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "properties": { - "foo": {"type": "array", "maxItems": 3}, - "bar": {"type": "array"} - }, - "patternProperties": {"f.o": {"minItems": 2}}, - "additionalProperties": {"type": "integer"} - }, - "tests": [ - { - "description": "property validates property", - "data": {"foo": [1, 2]}, - "valid": true - }, - { - "description": "property invalidates property", - "data": {"foo": [1, 2, 3, 4]}, - "valid": false - }, - { - "description": "patternProperty invalidates property", - "data": {"foo": []}, - "valid": false - }, - { - "description": "patternProperty validates nonproperty", - "data": {"fxo": [1, 2]}, - "valid": true - }, - { - "description": "patternProperty invalidates nonproperty", - "data": {"fxo": []}, - "valid": false - }, - { - "description": "additionalProperty ignores property", - "data": {"bar": []}, - "valid": true - }, - { - "description": "additionalProperty validates others", - "data": {"quux": 3}, - "valid": true - }, - { - "description": "additionalProperty invalidates others", - "data": {"quux": "foo"}, - "valid": false - } - ] - }, - { - "description": "properties with boolean schema", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "properties": { - "foo": true, - "bar": false - } - }, - "tests": [ - { - "description": "no property present is valid", - "data": {}, - "valid": true - }, - { - "description": "only 'true' property present is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "only 'false' property present is invalid", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "both properties present is invalid", - "data": {"foo": 1, "bar": 2}, - "valid": false - } - ] - }, - { - "description": "properties with escaped characters", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "properties": { - "foo\nbar": {"type": "number"}, - "foo\"bar": {"type": "number"}, - "foo\\bar": {"type": "number"}, - "foo\rbar": {"type": "number"}, - "foo\tbar": {"type": "number"}, - "foo\fbar": {"type": "number"} - } - }, - "tests": [ - { - "description": "object with all numbers is valid", - "data": { - "foo\nbar": 1, - "foo\"bar": 1, - "foo\\bar": 1, - "foo\rbar": 1, - "foo\tbar": 1, - "foo\fbar": 1 - }, - "valid": true - }, - { - "description": "object with strings is invalid", - "data": { - "foo\nbar": "1", - "foo\"bar": "1", - "foo\\bar": "1", - "foo\rbar": "1", - "foo\tbar": "1", - "foo\fbar": "1" - }, - "valid": false - } - ] - }, - { - "description": "properties with null valued instance properties", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "properties": { - "foo": {"type": "null"} - } - }, - "tests": [ - { - "description": "allows null values", - "data": {"foo": null}, - "valid": true - } - ] - }, - { - "description": "properties whose names are Javascript object property names", - "comment": "Ensure JS implementations don't universally consider e.g. __proto__ to always be present in an object.", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "properties": { - "__proto__": {"type": "number"}, - "toString": { - "properties": { "length": { "type": "string" } } - }, - "constructor": {"type": "number"} - } - }, - "tests": [ - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - }, - { - "description": "none of the properties mentioned", - "data": {}, - "valid": true - }, - { - "description": "__proto__ not valid", - "data": { "__proto__": "foo" }, - "valid": false - }, - { - "description": "toString not valid", - "data": { "toString": { "length": 37 } }, - "valid": false - }, - { - "description": "constructor not valid", - "data": { "constructor": { "length": 37 } }, - "valid": false - }, - { - "description": "all present and valid", - "data": { - "__proto__": 12, - "toString": { "length": "foo" }, - "constructor": 37 - }, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/propertyNames.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/propertyNames.json deleted file mode 100644 index b7fecbf71..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/propertyNames.json +++ /dev/null @@ -1,115 +0,0 @@ -[ - { - "description": "propertyNames validation", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "propertyNames": {"maxLength": 3} - }, - "tests": [ - { - "description": "all property names valid", - "data": { - "f": {}, - "foo": {} - }, - "valid": true - }, - { - "description": "some property names invalid", - "data": { - "foo": {}, - "foobar": {} - }, - "valid": false - }, - { - "description": "object without properties is valid", - "data": {}, - "valid": true - }, - { - "description": "ignores arrays", - "data": [1, 2, 3, 4], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobar", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "propertyNames validation with pattern", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "propertyNames": { "pattern": "^a+$" } - }, - "tests": [ - { - "description": "matching property names valid", - "data": { - "a": {}, - "aa": {}, - "aaa": {} - }, - "valid": true - }, - { - "description": "non-matching property name is invalid", - "data": { - "aaA": {} - }, - "valid": false - }, - { - "description": "object without properties is valid", - "data": {}, - "valid": true - } - ] - }, - { - "description": "propertyNames with boolean schema true", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "propertyNames": true - }, - "tests": [ - { - "description": "object with any properties is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "empty object is valid", - "data": {}, - "valid": true - } - ] - }, - { - "description": "propertyNames with boolean schema false", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "propertyNames": false - }, - "tests": [ - { - "description": "object with any properties is invalid", - "data": {"foo": 1}, - "valid": false - }, - { - "description": "empty object is valid", - "data": {}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/recursiveRef.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/recursiveRef.json deleted file mode 100644 index 22b47e749..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/recursiveRef.json +++ /dev/null @@ -1,408 +0,0 @@ -[ - { - "description": "$recursiveRef without $recursiveAnchor works like $ref", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "properties": { - "foo": { "$recursiveRef": "#" } - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "match", - "data": {"foo": false}, - "valid": true - }, - { - "description": "recursive match", - "data": { "foo": { "foo": false } }, - "valid": true - }, - { - "description": "mismatch", - "data": { "bar": false }, - "valid": false - }, - { - "description": "recursive mismatch", - "data": { "foo": { "bar": false } }, - "valid": false - } - ] - }, - { - "description": "$recursiveRef without using nesting", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "http://localhost:4242/draft2019-09/recursiveRef2/schema.json", - "$defs": { - "myobject": { - "$id": "myobject.json", - "$recursiveAnchor": true, - "anyOf": [ - { "type": "string" }, - { - "type": "object", - "additionalProperties": { "$recursiveRef": "#" } - } - ] - } - }, - "anyOf": [ - { "type": "integer" }, - { "$ref": "#/$defs/myobject" } - ] - }, - "tests": [ - { - "description": "integer matches at the outer level", - "data": 1, - "valid": true - }, - { - "description": "single level match", - "data": { "foo": "hi" }, - "valid": true - }, - { - "description": "integer does not match as a property value", - "data": { "foo": 1 }, - "valid": false - }, - { - "description": "two levels, properties match with inner definition", - "data": { "foo": { "bar": "hi" } }, - "valid": true - }, - { - "description": "two levels, no match", - "data": { "foo": { "bar": 1 } }, - "valid": false - } - ] - }, - { - "description": "$recursiveRef with nesting", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "http://localhost:4242/draft2019-09/recursiveRef3/schema.json", - "$recursiveAnchor": true, - "$defs": { - "myobject": { - "$id": "myobject.json", - "$recursiveAnchor": true, - "anyOf": [ - { "type": "string" }, - { - "type": "object", - "additionalProperties": { "$recursiveRef": "#" } - } - ] - } - }, - "anyOf": [ - { "type": "integer" }, - { "$ref": "#/$defs/myobject" } - ] - }, - "tests": [ - { - "description": "integer matches at the outer level", - "data": 1, - "valid": true - }, - { - "description": "single level match", - "data": { "foo": "hi" }, - "valid": true - }, - { - "description": "integer now matches as a property value", - "data": { "foo": 1 }, - "valid": true - }, - { - "description": "two levels, properties match with inner definition", - "data": { "foo": { "bar": "hi" } }, - "valid": true - }, - { - "description": "two levels, properties match with $recursiveRef", - "data": { "foo": { "bar": 1 } }, - "valid": true - } - ] - }, - { - "description": "$recursiveRef with $recursiveAnchor: false works like $ref", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "http://localhost:4242/draft2019-09/recursiveRef4/schema.json", - "$recursiveAnchor": false, - "$defs": { - "myobject": { - "$id": "myobject.json", - "$recursiveAnchor": false, - "anyOf": [ - { "type": "string" }, - { - "type": "object", - "additionalProperties": { "$recursiveRef": "#" } - } - ] - } - }, - "anyOf": [ - { "type": "integer" }, - { "$ref": "#/$defs/myobject" } - ] - }, - "tests": [ - { - "description": "integer matches at the outer level", - "data": 1, - "valid": true - }, - { - "description": "single level match", - "data": { "foo": "hi" }, - "valid": true - }, - { - "description": "integer does not match as a property value", - "data": { "foo": 1 }, - "valid": false - }, - { - "description": "two levels, properties match with inner definition", - "data": { "foo": { "bar": "hi" } }, - "valid": true - }, - { - "description": "two levels, integer does not match as a property value", - "data": { "foo": { "bar": 1 } }, - "valid": false - } - ] - }, - { - "description": "$recursiveRef with no $recursiveAnchor works like $ref", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "http://localhost:4242/draft2019-09/recursiveRef5/schema.json", - "$defs": { - "myobject": { - "$id": "myobject.json", - "$recursiveAnchor": false, - "anyOf": [ - { "type": "string" }, - { - "type": "object", - "additionalProperties": { "$recursiveRef": "#" } - } - ] - } - }, - "anyOf": [ - { "type": "integer" }, - { "$ref": "#/$defs/myobject" } - ] - }, - "tests": [ - { - "description": "integer matches at the outer level", - "data": 1, - "valid": true - }, - { - "description": "single level match", - "data": { "foo": "hi" }, - "valid": true - }, - { - "description": "integer does not match as a property value", - "data": { "foo": 1 }, - "valid": false - }, - { - "description": "two levels, properties match with inner definition", - "data": { "foo": { "bar": "hi" } }, - "valid": true - }, - { - "description": "two levels, integer does not match as a property value", - "data": { "foo": { "bar": 1 } }, - "valid": false - } - ] - }, - { - "description": "$recursiveRef with no $recursiveAnchor in the initial target schema resource", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "http://localhost:4242/draft2019-09/recursiveRef6/base.json", - "$recursiveAnchor": true, - "anyOf": [ - { "type": "boolean" }, - { - "type": "object", - "additionalProperties": { - "$id": "http://localhost:4242/draft2019-09/recursiveRef6/inner.json", - "$comment": "there is no $recursiveAnchor: true here, so we do NOT recurse to the base", - "anyOf": [ - { "type": "integer" }, - { "type": "object", "additionalProperties": { "$recursiveRef": "#" } } - ] - } - } - ] - }, - "tests": [ - { - "description": "leaf node does not match; no recursion", - "data": { "foo": true }, - "valid": false - }, - { - "description": "leaf node matches: recursion uses the inner schema", - "data": { "foo": { "bar": 1 } }, - "valid": true - }, - { - "description": "leaf node does not match: recursion uses the inner schema", - "data": { "foo": { "bar": true } }, - "valid": false - } - ] - }, - { - "description": "$recursiveRef with no $recursiveAnchor in the outer schema resource", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "http://localhost:4242/draft2019-09/recursiveRef7/base.json", - "anyOf": [ - { "type": "boolean" }, - { - "type": "object", - "additionalProperties": { - "$id": "http://localhost:4242/draft2019-09/recursiveRef7/inner.json", - "$recursiveAnchor": true, - "anyOf": [ - { "type": "integer" }, - { "type": "object", "additionalProperties": { "$recursiveRef": "#" } } - ] - } - } - ] - }, - "tests": [ - { - "description": "leaf node does not match; no recursion", - "data": { "foo": true }, - "valid": false - }, - { - "description": "leaf node matches: recursion only uses inner schema", - "data": { "foo": { "bar": 1 } }, - "valid": true - }, - { - "description": "leaf node does not match: recursion only uses inner schema", - "data": { "foo": { "bar": true } }, - "valid": false - } - ] - }, - { - "description": "multiple dynamic paths to the $recursiveRef keyword", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "https://example.com/recursiveRef8_main.json", - "$defs": { - "inner": { - "$id": "recursiveRef8_inner.json", - "$recursiveAnchor": true, - "title": "inner", - "additionalProperties": { - "$recursiveRef": "#" - } - } - }, - "if": { - "propertyNames": { - "pattern": "^[a-m]" - } - }, - "then": { - "title": "any type of node", - "$id": "recursiveRef8_anyLeafNode.json", - "$recursiveAnchor": true, - "$ref": "recursiveRef8_inner.json" - }, - "else": { - "title": "integer node", - "$id": "recursiveRef8_integerNode.json", - "$recursiveAnchor": true, - "type": [ "object", "integer" ], - "$ref": "recursiveRef8_inner.json" - } - }, - "tests": [ - { - "description": "recurse to anyLeafNode - floats are allowed", - "data": { "alpha": 1.1 }, - "valid": true - }, - { - "description": "recurse to integerNode - floats are not allowed", - "data": { "november": 1.1 }, - "valid": false - } - ] - }, - { - "description": "dynamic $recursiveRef destination (not predictable at schema compile time)", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "https://example.com/main.json", - "$defs": { - "inner": { - "$id": "inner.json", - "$recursiveAnchor": true, - "title": "inner", - "additionalProperties": { - "$recursiveRef": "#" - } - } - - }, - "if": { "propertyNames": { "pattern": "^[a-m]" } }, - "then": { - "title": "any type of node", - "$id": "anyLeafNode.json", - "$recursiveAnchor": true, - "$ref": "main.json#/$defs/inner" - }, - "else": { - "title": "integer node", - "$id": "integerNode.json", - "$recursiveAnchor": true, - "type": [ "object", "integer" ], - "$ref": "main.json#/$defs/inner" - } - }, - "tests": [ - { - "description": "numeric node", - "data": { "alpha": 1.1 }, - "valid": true - }, - { - "description": "integer node", - "data": { "november": 1.1 }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/ref.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/ref.json deleted file mode 100644 index eff5305c3..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/ref.json +++ /dev/null @@ -1,1090 +0,0 @@ -[ - { - "description": "root pointer ref", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "properties": { - "foo": {"$ref": "#"} - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "match", - "data": {"foo": false}, - "valid": true - }, - { - "description": "recursive match", - "data": {"foo": {"foo": false}}, - "valid": true - }, - { - "description": "mismatch", - "data": {"bar": false}, - "valid": false - }, - { - "description": "recursive mismatch", - "data": {"foo": {"bar": false}}, - "valid": false - } - ] - }, - { - "description": "relative pointer ref to object", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "properties": { - "foo": {"type": "integer"}, - "bar": {"$ref": "#/properties/foo"} - } - }, - "tests": [ - { - "description": "match", - "data": {"bar": 3}, - "valid": true - }, - { - "description": "mismatch", - "data": {"bar": true}, - "valid": false - } - ] - }, - { - "description": "relative pointer ref to array", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "items": [ - {"type": "integer"}, - {"$ref": "#/items/0"} - ] - }, - "tests": [ - { - "description": "match array", - "data": [1, 2], - "valid": true - }, - { - "description": "mismatch array", - "data": [1, "foo"], - "valid": false - } - ] - }, - { - "description": "escaped pointer ref", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$defs": { - "tilde~field": {"type": "integer"}, - "slash/field": {"type": "integer"}, - "percent%field": {"type": "integer"} - }, - "properties": { - "tilde": {"$ref": "#/$defs/tilde~0field"}, - "slash": {"$ref": "#/$defs/slash~1field"}, - "percent": {"$ref": "#/$defs/percent%25field"} - } - }, - "tests": [ - { - "description": "slash invalid", - "data": {"slash": "aoeu"}, - "valid": false - }, - { - "description": "tilde invalid", - "data": {"tilde": "aoeu"}, - "valid": false - }, - { - "description": "percent invalid", - "data": {"percent": "aoeu"}, - "valid": false - }, - { - "description": "slash valid", - "data": {"slash": 123}, - "valid": true - }, - { - "description": "tilde valid", - "data": {"tilde": 123}, - "valid": true - }, - { - "description": "percent valid", - "data": {"percent": 123}, - "valid": true - } - ] - }, - { - "description": "nested refs", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$defs": { - "a": {"type": "integer"}, - "b": {"$ref": "#/$defs/a"}, - "c": {"$ref": "#/$defs/b"} - }, - "$ref": "#/$defs/c" - }, - "tests": [ - { - "description": "nested ref valid", - "data": 5, - "valid": true - }, - { - "description": "nested ref invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "ref applies alongside sibling keywords", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$defs": { - "reffed": { - "type": "array" - } - }, - "properties": { - "foo": { - "$ref": "#/$defs/reffed", - "maxItems": 2 - } - } - }, - "tests": [ - { - "description": "ref valid, maxItems valid", - "data": { "foo": [] }, - "valid": true - }, - { - "description": "ref valid, maxItems invalid", - "data": { "foo": [1, 2, 3] }, - "valid": false - }, - { - "description": "ref invalid", - "data": { "foo": "string" }, - "valid": false - } - ] - }, - { - "description": "remote ref, containing refs itself", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$ref": "https://json-schema.org/draft/2019-09/schema" - }, - "tests": [ - { - "description": "remote ref valid", - "data": {"minLength": 1}, - "valid": true - }, - { - "description": "remote ref invalid", - "data": {"minLength": -1}, - "valid": false - } - ] - }, - { - "description": "property named $ref that is not a reference", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "properties": { - "$ref": {"type": "string"} - } - }, - "tests": [ - { - "description": "property named $ref valid", - "data": {"$ref": "a"}, - "valid": true - }, - { - "description": "property named $ref invalid", - "data": {"$ref": 2}, - "valid": false - } - ] - }, - { - "description": "property named $ref, containing an actual $ref", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "properties": { - "$ref": {"$ref": "#/$defs/is-string"} - }, - "$defs": { - "is-string": { - "type": "string" - } - } - }, - "tests": [ - { - "description": "property named $ref valid", - "data": {"$ref": "a"}, - "valid": true - }, - { - "description": "property named $ref invalid", - "data": {"$ref": 2}, - "valid": false - } - ] - }, - { - "description": "$ref to boolean schema true", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$ref": "#/$defs/bool", - "$defs": { - "bool": true - } - }, - "tests": [ - { - "description": "any value is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "$ref to boolean schema false", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$ref": "#/$defs/bool", - "$defs": { - "bool": false - } - }, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "Recursive references between schemas", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "http://localhost:1234/draft2019-09/tree", - "description": "tree of nodes", - "type": "object", - "properties": { - "meta": {"type": "string"}, - "nodes": { - "type": "array", - "items": {"$ref": "node"} - } - }, - "required": ["meta", "nodes"], - "$defs": { - "node": { - "$id": "http://localhost:1234/draft2019-09/node", - "description": "node", - "type": "object", - "properties": { - "value": {"type": "number"}, - "subtree": {"$ref": "tree"} - }, - "required": ["value"] - } - } - }, - "tests": [ - { - "description": "valid tree", - "data": { - "meta": "root", - "nodes": [ - { - "value": 1, - "subtree": { - "meta": "child", - "nodes": [ - {"value": 1.1}, - {"value": 1.2} - ] - } - }, - { - "value": 2, - "subtree": { - "meta": "child", - "nodes": [ - {"value": 2.1}, - {"value": 2.2} - ] - } - } - ] - }, - "valid": true - }, - { - "description": "invalid tree", - "data": { - "meta": "root", - "nodes": [ - { - "value": 1, - "subtree": { - "meta": "child", - "nodes": [ - {"value": "string is invalid"}, - {"value": 1.2} - ] - } - }, - { - "value": 2, - "subtree": { - "meta": "child", - "nodes": [ - {"value": 2.1}, - {"value": 2.2} - ] - } - } - ] - }, - "valid": false - } - ] - }, - { - "description": "refs with quote", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "properties": { - "foo\"bar": {"$ref": "#/$defs/foo%22bar"} - }, - "$defs": { - "foo\"bar": {"type": "number"} - } - }, - "tests": [ - { - "description": "object with numbers is valid", - "data": { - "foo\"bar": 1 - }, - "valid": true - }, - { - "description": "object with strings is invalid", - "data": { - "foo\"bar": "1" - }, - "valid": false - } - ] - }, - { - "description": "ref creates new scope when adjacent to keywords", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$defs": { - "A": { - "unevaluatedProperties": false - } - }, - "properties": { - "prop1": { - "type": "string" - } - }, - "$ref": "#/$defs/A" - }, - "tests": [ - { - "description": "referenced subschema doesn't see annotations from properties", - "data": { - "prop1": "match" - }, - "valid": false - } - ] - }, - { - "description": "naive replacement of $ref with its destination is not correct", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$defs": { - "a_string": { "type": "string" } - }, - "enum": [ - { "$ref": "#/$defs/a_string" } - ] - }, - "tests": [ - { - "description": "do not evaluate the $ref inside the enum, matching any string", - "data": "this is a string", - "valid": false - }, - { - "description": "do not evaluate the $ref inside the enum, definition exact match", - "data": { "type": "string" }, - "valid": false - }, - { - "description": "match the enum exactly", - "data": { "$ref": "#/$defs/a_string" }, - "valid": true - } - ] - }, - { - "description": "refs with relative uris and defs", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "http://example.com/schema-relative-uri-defs1.json", - "properties": { - "foo": { - "$id": "schema-relative-uri-defs2.json", - "$defs": { - "inner": { - "properties": { - "bar": { "type": "string" } - } - } - }, - "$ref": "#/$defs/inner" - } - }, - "$ref": "schema-relative-uri-defs2.json" - }, - "tests": [ - { - "description": "invalid on inner field", - "data": { - "foo": { - "bar": 1 - }, - "bar": "a" - }, - "valid": false - }, - { - "description": "invalid on outer field", - "data": { - "foo": { - "bar": "a" - }, - "bar": 1 - }, - "valid": false - }, - { - "description": "valid on both fields", - "data": { - "foo": { - "bar": "a" - }, - "bar": "a" - }, - "valid": true - } - ] - }, - { - "description": "relative refs with absolute uris and defs", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "http://example.com/schema-refs-absolute-uris-defs1.json", - "properties": { - "foo": { - "$id": "http://example.com/schema-refs-absolute-uris-defs2.json", - "$defs": { - "inner": { - "properties": { - "bar": { "type": "string" } - } - } - }, - "$ref": "#/$defs/inner" - } - }, - "$ref": "schema-refs-absolute-uris-defs2.json" - }, - "tests": [ - { - "description": "invalid on inner field", - "data": { - "foo": { - "bar": 1 - }, - "bar": "a" - }, - "valid": false - }, - { - "description": "invalid on outer field", - "data": { - "foo": { - "bar": "a" - }, - "bar": 1 - }, - "valid": false - }, - { - "description": "valid on both fields", - "data": { - "foo": { - "bar": "a" - }, - "bar": "a" - }, - "valid": true - } - ] - }, - { - "description": "$id must be resolved against nearest parent, not just immediate parent", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "http://example.com/a.json", - "$defs": { - "x": { - "$id": "http://example.com/b/c.json", - "not": { - "$defs": { - "y": { - "$id": "d.json", - "type": "number" - } - } - } - } - }, - "allOf": [ - { - "$ref": "http://example.com/b/d.json" - } - ] - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "non-number is invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "order of evaluation: $id and $ref", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$comment": "$id must be evaluated before $ref to get the proper $ref destination", - "$id": "https://example.com/draft2019-09/ref-and-id1/base.json", - "$ref": "int.json", - "$defs": { - "bigint": { - "$comment": "canonical uri: https://example.com/draft2019-09/ref-and-id1/int.json", - "$id": "int.json", - "maximum": 10 - }, - "smallint": { - "$comment": "canonical uri: https://example.com/draft2019-09/ref-and-id1-int.json", - "$id": "/draft2019-09/ref-and-id1-int.json", - "maximum": 2 - } - } - }, - "tests": [ - { - "description": "data is valid against first definition", - "data": 5, - "valid": true - }, - { - "description": "data is invalid against first definition", - "data": 50, - "valid": false - } - ] - }, - { - "description": "order of evaluation: $id and $anchor and $ref", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$comment": "$id must be evaluated before $ref to get the proper $ref destination", - "$id": "https://example.com/draft2019-09/ref-and-id2/base.json", - "$ref": "#bigint", - "$defs": { - "bigint": { - "$comment": "canonical uri: https://example.com/draft2019-09/ref-and-id2/base.json#/$defs/bigint; another valid uri for this location: https://example.com/ref-and-id2/base.json#bigint", - "$anchor": "bigint", - "maximum": 10 - }, - "smallint": { - "$comment": "canonical uri: https://example.com/draft2019-09/ref-and-id2#/$defs/smallint; another valid uri for this location: https://example.com/ref-and-id2/#bigint", - "$id": "/draft2019-09/ref-and-id2/", - "$anchor": "bigint", - "maximum": 2 - } - } - }, - "tests": [ - { - "description": "data is valid against first definition", - "data": 5, - "valid": true - }, - { - "description": "data is invalid against first definition", - "data": 50, - "valid": false - } - ] - }, - { - "description": "simple URN base URI with $ref via the URN", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$comment": "URIs do not have to have HTTP(s) schemes", - "$id": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed", - "minimum": 30, - "properties": { - "foo": {"$ref": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed"} - } - }, - "tests": [ - { - "description": "valid under the URN IDed schema", - "data": {"foo": 37}, - "valid": true - }, - { - "description": "invalid under the URN IDed schema", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "simple URN base URI with JSON pointer", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$comment": "URIs do not have to have HTTP(s) schemes", - "$id": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed", - "properties": { - "foo": {"$ref": "#/$defs/bar"} - }, - "$defs": { - "bar": {"type": "string"} - } - }, - "tests": [ - { - "description": "a string is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "a non-string is invalid", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "URN base URI with NSS", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$comment": "RFC 8141 §2.2", - "$id": "urn:example:1/406/47452/2", - "properties": { - "foo": {"$ref": "#/$defs/bar"} - }, - "$defs": { - "bar": {"type": "string"} - } - }, - "tests": [ - { - "description": "a string is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "a non-string is invalid", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "URN base URI with r-component", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$comment": "RFC 8141 §2.3.1", - "$id": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk", - "properties": { - "foo": {"$ref": "#/$defs/bar"} - }, - "$defs": { - "bar": {"type": "string"} - } - }, - "tests": [ - { - "description": "a string is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "a non-string is invalid", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "URN base URI with q-component", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$comment": "RFC 8141 §2.3.2", - "$id": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z", - "properties": { - "foo": {"$ref": "#/$defs/bar"} - }, - "$defs": { - "bar": {"type": "string"} - } - }, - "tests": [ - { - "description": "a string is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "a non-string is invalid", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "URN base URI with URN and JSON pointer ref", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed", - "properties": { - "foo": {"$ref": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/$defs/bar"} - }, - "$defs": { - "bar": {"type": "string"} - } - }, - "tests": [ - { - "description": "a string is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "a non-string is invalid", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "URN base URI with URN and anchor ref", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed", - "properties": { - "foo": {"$ref": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#something"} - }, - "$defs": { - "bar": { - "$anchor": "something", - "type": "string" - } - } - }, - "tests": [ - { - "description": "a string is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "a non-string is invalid", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "URN ref with nested pointer ref", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$ref": "urn:uuid:deadbeef-4321-ffff-ffff-1234feebdaed", - "$defs": { - "foo": { - "$id": "urn:uuid:deadbeef-4321-ffff-ffff-1234feebdaed", - "$defs": {"bar": {"type": "string"}}, - "$ref": "#/$defs/bar" - } - } - }, - "tests": [ - { - "description": "a string is valid", - "data": "bar", - "valid": true - }, - { - "description": "a non-string is invalid", - "data": 12, - "valid": false - } - ] - }, - { - "description": "ref to if", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$ref": "http://example.com/ref/if", - "if": { - "$id": "http://example.com/ref/if", - "type": "integer" - } - }, - "tests": [ - { - "description": "a non-integer is invalid due to the $ref", - "data": "foo", - "valid": false - }, - { - "description": "an integer is valid", - "data": 12, - "valid": true - } - ] - }, - { - "description": "ref to then", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$ref": "http://example.com/ref/then", - "then": { - "$id": "http://example.com/ref/then", - "type": "integer" - } - }, - "tests": [ - { - "description": "a non-integer is invalid due to the $ref", - "data": "foo", - "valid": false - }, - { - "description": "an integer is valid", - "data": 12, - "valid": true - } - ] - }, - { - "description": "ref to else", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$ref": "http://example.com/ref/else", - "else": { - "$id": "http://example.com/ref/else", - "type": "integer" - } - }, - "tests": [ - { - "description": "a non-integer is invalid due to the $ref", - "data": "foo", - "valid": false - }, - { - "description": "an integer is valid", - "data": 12, - "valid": true - } - ] - }, - { - "description": "ref with absolute-path-reference", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "http://example.com/ref/absref.json", - "$defs": { - "a": { - "$id": "http://example.com/ref/absref/foobar.json", - "type": "number" - }, - "b": { - "$id": "http://example.com/absref/foobar.json", - "type": "string" - } - }, - "$ref": "/absref/foobar.json" - }, - "tests": [ - { - "description": "a string is valid", - "data": "foo", - "valid": true - }, - { - "description": "an integer is invalid", - "data": 12, - "valid": false - } - ] - }, - { - "description": "$id with file URI still resolves pointers - *nix", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "file:///folder/file.json", - "$defs": { - "foo": { - "type": "number" - } - }, - "$ref": "#/$defs/foo" - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "non-number is invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "$id with file URI still resolves pointers - windows", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "file:///c:/folder/file.json", - "$defs": { - "foo": { - "type": "number" - } - }, - "$ref": "#/$defs/foo" - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "non-number is invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "empty tokens in $ref json-pointer", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$defs": { - "": { - "$defs": { - "": { "type": "number" } - } - } - }, - "allOf": [ - { - "$ref": "#/$defs//$defs/" - } - ] - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "non-number is invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "$ref with $recursiveAnchor", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "https://example.com/schemas/unevaluated-items-are-disallowed", - "$ref": "/schemas/unevaluated-items-are-allowed", - "$recursiveAnchor": true, - "unevaluatedItems": false, - "$defs": { - "/schemas/unevaluated-items-are-allowed": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "/schemas/unevaluated-items-are-allowed", - "$recursiveAnchor": true, - "type": "array", - "items": [ - { - "type": "string" - }, - { - "$ref": "#" - } - ] - } - } - }, - "tests": [ - { - "description": "extra items allowed for inner arrays", - "data" : ["foo",["bar" , [] , 8]], - "valid": true - }, - { - "description": "extra items disallowed for root", - "data" : ["foo",["bar" , [] , 8], 8], - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/refRemote.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/refRemote.json deleted file mode 100644 index 072894cf2..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/refRemote.json +++ /dev/null @@ -1,342 +0,0 @@ -[ - { - "description": "remote ref", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$ref": "http://localhost:1234/draft2019-09/integer.json" - }, - "tests": [ - { - "description": "remote ref valid", - "data": 1, - "valid": true - }, - { - "description": "remote ref invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "fragment within remote ref", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$ref": "http://localhost:1234/draft2019-09/subSchemas.json#/$defs/integer" - }, - "tests": [ - { - "description": "remote fragment valid", - "data": 1, - "valid": true - }, - { - "description": "remote fragment invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "anchor within remote ref", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$ref": "http://localhost:1234/draft2019-09/locationIndependentIdentifier.json#foo" - }, - "tests": [ - { - "description": "remote anchor valid", - "data": 1, - "valid": true - }, - { - "description": "remote anchor invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "ref within remote ref", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$ref": "http://localhost:1234/draft2019-09/subSchemas.json#/$defs/refToInteger" - }, - "tests": [ - { - "description": "ref within ref valid", - "data": 1, - "valid": true - }, - { - "description": "ref within ref invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "base URI change", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "http://localhost:1234/draft2019-09/", - "items": { - "$id": "baseUriChange/", - "items": {"$ref": "folderInteger.json"} - } - }, - "tests": [ - { - "description": "base URI change ref valid", - "data": [[1]], - "valid": true - }, - { - "description": "base URI change ref invalid", - "data": [["a"]], - "valid": false - } - ] - }, - { - "description": "base URI change - change folder", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "http://localhost:1234/draft2019-09/scope_change_defs1.json", - "type" : "object", - "properties": {"list": {"$ref": "baseUriChangeFolder/"}}, - "$defs": { - "baz": { - "$id": "baseUriChangeFolder/", - "type": "array", - "items": {"$ref": "folderInteger.json"} - } - } - }, - "tests": [ - { - "description": "number is valid", - "data": {"list": [1]}, - "valid": true - }, - { - "description": "string is invalid", - "data": {"list": ["a"]}, - "valid": false - } - ] - }, - { - "description": "base URI change - change folder in subschema", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "http://localhost:1234/draft2019-09/scope_change_defs2.json", - "type" : "object", - "properties": {"list": {"$ref": "baseUriChangeFolderInSubschema/#/$defs/bar"}}, - "$defs": { - "baz": { - "$id": "baseUriChangeFolderInSubschema/", - "$defs": { - "bar": { - "type": "array", - "items": {"$ref": "folderInteger.json"} - } - } - } - } - }, - "tests": [ - { - "description": "number is valid", - "data": {"list": [1]}, - "valid": true - }, - { - "description": "string is invalid", - "data": {"list": ["a"]}, - "valid": false - } - ] - }, - { - "description": "root ref in remote ref", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "http://localhost:1234/draft2019-09/object", - "type": "object", - "properties": { - "name": {"$ref": "name-defs.json#/$defs/orNull"} - } - }, - "tests": [ - { - "description": "string is valid", - "data": { - "name": "foo" - }, - "valid": true - }, - { - "description": "null is valid", - "data": { - "name": null - }, - "valid": true - }, - { - "description": "object is invalid", - "data": { - "name": { - "name": null - } - }, - "valid": false - } - ] - }, - { - "description": "remote ref with ref to defs", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "http://localhost:1234/draft2019-09/schema-remote-ref-ref-defs1.json", - "$ref": "ref-and-defs.json" - }, - "tests": [ - { - "description": "invalid", - "data": { - "bar": 1 - }, - "valid": false - }, - { - "description": "valid", - "data": { - "bar": "a" - }, - "valid": true - } - ] - }, - { - "description": "Location-independent identifier in remote ref", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$ref": "http://localhost:1234/draft2019-09/locationIndependentIdentifier.json#/$defs/refToInteger" - }, - "tests": [ - { - "description": "integer is valid", - "data": 1, - "valid": true - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "retrieved nested refs resolve relative to their URI not $id", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "http://localhost:1234/draft2019-09/some-id", - "properties": { - "name": {"$ref": "nested/foo-ref-string.json"} - } - }, - "tests": [ - { - "description": "number is invalid", - "data": { - "name": {"foo": 1} - }, - "valid": false - }, - { - "description": "string is valid", - "data": { - "name": {"foo": "a"} - }, - "valid": true - } - ] - }, - { - "description": "remote HTTP ref with different $id", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$ref": "http://localhost:1234/different-id-ref-string.json" - }, - "tests": [ - { - "description": "number is invalid", - "data": 1, - "valid": false - }, - { - "description": "string is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "remote HTTP ref with different URN $id", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$ref": "http://localhost:1234/urn-ref-string.json" - }, - "tests": [ - { - "description": "number is invalid", - "data": 1, - "valid": false - }, - { - "description": "string is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "remote HTTP ref with nested absolute ref", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$ref": "http://localhost:1234/nested-absolute-ref-to-string.json" - }, - "tests": [ - { - "description": "number is invalid", - "data": 1, - "valid": false - }, - { - "description": "string is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "$ref to $ref finds detached $anchor", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$ref": "http://localhost:1234/draft2019-09/detached-ref.json#/$defs/foo" - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "non-number is invalid", - "data": "a", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/required.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/required.json deleted file mode 100644 index bca98a986..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/required.json +++ /dev/null @@ -1,158 +0,0 @@ -[ - { - "description": "required validation", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "properties": { - "foo": {}, - "bar": {} - }, - "required": ["foo"] - }, - "tests": [ - { - "description": "present required property is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "non-present required property is invalid", - "data": {"bar": 1}, - "valid": false - }, - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores strings", - "data": "", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "required default validation", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "properties": { - "foo": {} - } - }, - "tests": [ - { - "description": "not required by default", - "data": {}, - "valid": true - } - ] - }, - { - "description": "required with empty array", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "properties": { - "foo": {} - }, - "required": [] - }, - "tests": [ - { - "description": "property not required", - "data": {}, - "valid": true - } - ] - }, - { - "description": "required with escaped characters", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "required": [ - "foo\nbar", - "foo\"bar", - "foo\\bar", - "foo\rbar", - "foo\tbar", - "foo\fbar" - ] - }, - "tests": [ - { - "description": "object with all properties present is valid", - "data": { - "foo\nbar": 1, - "foo\"bar": 1, - "foo\\bar": 1, - "foo\rbar": 1, - "foo\tbar": 1, - "foo\fbar": 1 - }, - "valid": true - }, - { - "description": "object with some properties missing is invalid", - "data": { - "foo\nbar": "1", - "foo\"bar": "1" - }, - "valid": false - } - ] - }, - { - "description": "required properties whose names are Javascript object property names", - "comment": "Ensure JS implementations don't universally consider e.g. __proto__ to always be present in an object.", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "required": ["__proto__", "toString", "constructor"] - }, - "tests": [ - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - }, - { - "description": "none of the properties mentioned", - "data": {}, - "valid": false - }, - { - "description": "__proto__ present", - "data": { "__proto__": "foo" }, - "valid": false - }, - { - "description": "toString present", - "data": { "toString": { "length": 37 } }, - "valid": false - }, - { - "description": "constructor present", - "data": { "constructor": { "length": 37 } }, - "valid": false - }, - { - "description": "all present", - "data": { - "__proto__": 12, - "toString": { "length": "foo" }, - "constructor": 37 - }, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/type.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/type.json deleted file mode 100644 index 92c6be89e..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/type.json +++ /dev/null @@ -1,501 +0,0 @@ -[ - { - "description": "integer type matches integers", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "integer" - }, - "tests": [ - { - "description": "an integer is an integer", - "data": 1, - "valid": true - }, - { - "description": "a float with zero fractional part is an integer", - "data": 1.0, - "valid": true - }, - { - "description": "a float is not an integer", - "data": 1.1, - "valid": false - }, - { - "description": "a string is not an integer", - "data": "foo", - "valid": false - }, - { - "description": "a string is still not an integer, even if it looks like one", - "data": "1", - "valid": false - }, - { - "description": "an object is not an integer", - "data": {}, - "valid": false - }, - { - "description": "an array is not an integer", - "data": [], - "valid": false - }, - { - "description": "a boolean is not an integer", - "data": true, - "valid": false - }, - { - "description": "null is not an integer", - "data": null, - "valid": false - } - ] - }, - { - "description": "number type matches numbers", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "number" - }, - "tests": [ - { - "description": "an integer is a number", - "data": 1, - "valid": true - }, - { - "description": "a float with zero fractional part is a number (and an integer)", - "data": 1.0, - "valid": true - }, - { - "description": "a float is a number", - "data": 1.1, - "valid": true - }, - { - "description": "a string is not a number", - "data": "foo", - "valid": false - }, - { - "description": "a string is still not a number, even if it looks like one", - "data": "1", - "valid": false - }, - { - "description": "an object is not a number", - "data": {}, - "valid": false - }, - { - "description": "an array is not a number", - "data": [], - "valid": false - }, - { - "description": "a boolean is not a number", - "data": true, - "valid": false - }, - { - "description": "null is not a number", - "data": null, - "valid": false - } - ] - }, - { - "description": "string type matches strings", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "string" - }, - "tests": [ - { - "description": "1 is not a string", - "data": 1, - "valid": false - }, - { - "description": "a float is not a string", - "data": 1.1, - "valid": false - }, - { - "description": "a string is a string", - "data": "foo", - "valid": true - }, - { - "description": "a string is still a string, even if it looks like a number", - "data": "1", - "valid": true - }, - { - "description": "an empty string is still a string", - "data": "", - "valid": true - }, - { - "description": "an object is not a string", - "data": {}, - "valid": false - }, - { - "description": "an array is not a string", - "data": [], - "valid": false - }, - { - "description": "a boolean is not a string", - "data": true, - "valid": false - }, - { - "description": "null is not a string", - "data": null, - "valid": false - } - ] - }, - { - "description": "object type matches objects", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object" - }, - "tests": [ - { - "description": "an integer is not an object", - "data": 1, - "valid": false - }, - { - "description": "a float is not an object", - "data": 1.1, - "valid": false - }, - { - "description": "a string is not an object", - "data": "foo", - "valid": false - }, - { - "description": "an object is an object", - "data": {}, - "valid": true - }, - { - "description": "an array is not an object", - "data": [], - "valid": false - }, - { - "description": "a boolean is not an object", - "data": true, - "valid": false - }, - { - "description": "null is not an object", - "data": null, - "valid": false - } - ] - }, - { - "description": "array type matches arrays", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "array" - }, - "tests": [ - { - "description": "an integer is not an array", - "data": 1, - "valid": false - }, - { - "description": "a float is not an array", - "data": 1.1, - "valid": false - }, - { - "description": "a string is not an array", - "data": "foo", - "valid": false - }, - { - "description": "an object is not an array", - "data": {}, - "valid": false - }, - { - "description": "an array is an array", - "data": [], - "valid": true - }, - { - "description": "a boolean is not an array", - "data": true, - "valid": false - }, - { - "description": "null is not an array", - "data": null, - "valid": false - } - ] - }, - { - "description": "boolean type matches booleans", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "boolean" - }, - "tests": [ - { - "description": "an integer is not a boolean", - "data": 1, - "valid": false - }, - { - "description": "zero is not a boolean", - "data": 0, - "valid": false - }, - { - "description": "a float is not a boolean", - "data": 1.1, - "valid": false - }, - { - "description": "a string is not a boolean", - "data": "foo", - "valid": false - }, - { - "description": "an empty string is not a boolean", - "data": "", - "valid": false - }, - { - "description": "an object is not a boolean", - "data": {}, - "valid": false - }, - { - "description": "an array is not a boolean", - "data": [], - "valid": false - }, - { - "description": "true is a boolean", - "data": true, - "valid": true - }, - { - "description": "false is a boolean", - "data": false, - "valid": true - }, - { - "description": "null is not a boolean", - "data": null, - "valid": false - } - ] - }, - { - "description": "null type matches only the null object", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "null" - }, - "tests": [ - { - "description": "an integer is not null", - "data": 1, - "valid": false - }, - { - "description": "a float is not null", - "data": 1.1, - "valid": false - }, - { - "description": "zero is not null", - "data": 0, - "valid": false - }, - { - "description": "a string is not null", - "data": "foo", - "valid": false - }, - { - "description": "an empty string is not null", - "data": "", - "valid": false - }, - { - "description": "an object is not null", - "data": {}, - "valid": false - }, - { - "description": "an array is not null", - "data": [], - "valid": false - }, - { - "description": "true is not null", - "data": true, - "valid": false - }, - { - "description": "false is not null", - "data": false, - "valid": false - }, - { - "description": "null is null", - "data": null, - "valid": true - } - ] - }, - { - "description": "multiple types can be specified in an array", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": ["integer", "string"] - }, - "tests": [ - { - "description": "an integer is valid", - "data": 1, - "valid": true - }, - { - "description": "a string is valid", - "data": "foo", - "valid": true - }, - { - "description": "a float is invalid", - "data": 1.1, - "valid": false - }, - { - "description": "an object is invalid", - "data": {}, - "valid": false - }, - { - "description": "an array is invalid", - "data": [], - "valid": false - }, - { - "description": "a boolean is invalid", - "data": true, - "valid": false - }, - { - "description": "null is invalid", - "data": null, - "valid": false - } - ] - }, - { - "description": "type as array with one item", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": ["string"] - }, - "tests": [ - { - "description": "string is valid", - "data": "foo", - "valid": true - }, - { - "description": "number is invalid", - "data": 123, - "valid": false - } - ] - }, - { - "description": "type: array or object", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": ["array", "object"] - }, - "tests": [ - { - "description": "array is valid", - "data": [1,2,3], - "valid": true - }, - { - "description": "object is valid", - "data": {"foo": 123}, - "valid": true - }, - { - "description": "number is invalid", - "data": 123, - "valid": false - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - }, - { - "description": "null is invalid", - "data": null, - "valid": false - } - ] - }, - { - "description": "type: array, object or null", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": ["array", "object", "null"] - }, - "tests": [ - { - "description": "array is valid", - "data": [1,2,3], - "valid": true - }, - { - "description": "object is valid", - "data": {"foo": 123}, - "valid": true - }, - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "number is invalid", - "data": 123, - "valid": false - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/unevaluatedItems.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/unevaluatedItems.json deleted file mode 100644 index 8e2ee4b11..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/unevaluatedItems.json +++ /dev/null @@ -1,703 +0,0 @@ -[ - { - "description": "unevaluatedItems true", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "unevaluatedItems": true - }, - "tests": [ - { - "description": "with no unevaluated items", - "data": [], - "valid": true - }, - { - "description": "with unevaluated items", - "data": ["foo"], - "valid": true - } - ] - }, - { - "description": "unevaluatedItems false", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "unevaluatedItems": false - }, - "tests": [ - { - "description": "with no unevaluated items", - "data": [], - "valid": true - }, - { - "description": "with unevaluated items", - "data": ["foo"], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems as schema", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "unevaluatedItems": { "type": "string" } - }, - "tests": [ - { - "description": "with no unevaluated items", - "data": [], - "valid": true - }, - { - "description": "with valid unevaluated items", - "data": ["foo"], - "valid": true - }, - { - "description": "with invalid unevaluated items", - "data": [42], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems with uniform items", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "items": { "type": "string" }, - "unevaluatedItems": false - }, - "tests": [ - { - "description": "unevaluatedItems doesn't apply", - "data": ["foo", "bar"], - "valid": true - } - ] - }, - { - "description": "unevaluatedItems with tuple", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "items": [ - { "type": "string" } - ], - "unevaluatedItems": false - }, - "tests": [ - { - "description": "with no unevaluated items", - "data": ["foo"], - "valid": true - }, - { - "description": "with unevaluated items", - "data": ["foo", "bar"], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems with items and additionalItems", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "items": [ - { "type": "string" } - ], - "additionalItems": true, - "unevaluatedItems": false - }, - "tests": [ - { - "description": "unevaluatedItems doesn't apply", - "data": ["foo", 42], - "valid": true - } - ] - }, - { - "description": "unevaluatedItems with ignored additionalItems", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "additionalItems": {"type": "number"}, - "unevaluatedItems": {"type": "string"} - }, - "tests": [ - { - "description": "invalid under unevaluatedItems", - "comment": "additionalItems is entirely ignored when items isn't present, so all elements need to be valid against the unevaluatedItems schema", - "data": ["foo", 1], - "valid": false - }, - { - "description": "all valid under unevaluatedItems", - "data": ["foo", "bar", "baz"], - "valid": true - } - ] - }, - { - "description": "unevaluatedItems with ignored applicator additionalItems", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "allOf": [ { "additionalItems": { "type": "number" } } ], - "unevaluatedItems": {"type": "string"} - }, - "tests": [ - { - "description": "invalid under unevaluatedItems", - "comment": "additionalItems is entirely ignored when items isn't present, so all elements need to be valid against the unevaluatedItems schema", - "data": ["foo", 1], - "valid": false - }, - { - "description": "all valid under unevaluatedItems", - "data": ["foo", "bar", "baz"], - "valid": true - } - ] - }, - { - "description": "unevaluatedItems with nested tuple", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "items": [ - { "type": "string" } - ], - "allOf": [ - { - "items": [ - true, - { "type": "number" } - ] - } - ], - "unevaluatedItems": false - }, - "tests": [ - { - "description": "with no unevaluated items", - "data": ["foo", 42], - "valid": true - }, - { - "description": "with unevaluated items", - "data": ["foo", 42, true], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems with nested items", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "unevaluatedItems": {"type": "boolean"}, - "anyOf": [ - { "items": {"type": "string"} }, - true - ] - }, - "tests": [ - { - "description": "with only (valid) additional items", - "data": [true, false], - "valid": true - }, - { - "description": "with no additional items", - "data": ["yes", "no"], - "valid": true - }, - { - "description": "with invalid additional item", - "data": ["yes", false], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems with nested items and additionalItems", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "allOf": [ - { - "items": [ - { "type": "string" } - ], - "additionalItems": true - } - ], - "unevaluatedItems": false - }, - "tests": [ - { - "description": "with no additional items", - "data": ["foo"], - "valid": true - }, - { - "description": "with additional items", - "data": ["foo", 42, true], - "valid": true - } - ] - }, - { - "description": "unevaluatedItems with nested unevaluatedItems", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "allOf": [ - { - "items": [ - { "type": "string" } - ] - }, - { "unevaluatedItems": true } - ], - "unevaluatedItems": false - }, - "tests": [ - { - "description": "with no additional items", - "data": ["foo"], - "valid": true - }, - { - "description": "with additional items", - "data": ["foo", 42, true], - "valid": true - } - ] - }, - { - "description": "unevaluatedItems with anyOf", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "items": [ - { "const": "foo" } - ], - "anyOf": [ - { - "items": [ - true, - { "const": "bar" } - ] - }, - { - "items": [ - true, - true, - { "const": "baz" } - ] - } - ], - "unevaluatedItems": false - }, - "tests": [ - { - "description": "when one schema matches and has no unevaluated items", - "data": ["foo", "bar"], - "valid": true - }, - { - "description": "when one schema matches and has unevaluated items", - "data": ["foo", "bar", 42], - "valid": false - }, - { - "description": "when two schemas match and has no unevaluated items", - "data": ["foo", "bar", "baz"], - "valid": true - }, - { - "description": "when two schemas match and has unevaluated items", - "data": ["foo", "bar", "baz", 42], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems with oneOf", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "items": [ - { "const": "foo" } - ], - "oneOf": [ - { - "items": [ - true, - { "const": "bar" } - ] - }, - { - "items": [ - true, - { "const": "baz" } - ] - } - ], - "unevaluatedItems": false - }, - "tests": [ - { - "description": "with no unevaluated items", - "data": ["foo", "bar"], - "valid": true - }, - { - "description": "with unevaluated items", - "data": ["foo", "bar", 42], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems with not", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "items": [ - { "const": "foo" } - ], - "not": { - "not": { - "items": [ - true, - { "const": "bar" } - ] - } - }, - "unevaluatedItems": false - }, - "tests": [ - { - "description": "with unevaluated items", - "data": ["foo", "bar"], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems with if/then/else", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "items": [ { "const": "foo" } ], - "if": { - "items": [ - true, - { "const": "bar" } - ] - }, - "then": { - "items": [ - true, - true, - { "const": "then" } - ] - }, - "else": { - "items": [ - true, - true, - true, - { "const": "else" } - ] - }, - "unevaluatedItems": false - }, - "tests": [ - { - "description": "when if matches and it has no unevaluated items", - "data": ["foo", "bar", "then"], - "valid": true - }, - { - "description": "when if matches and it has unevaluated items", - "data": ["foo", "bar", "then", "else"], - "valid": false - }, - { - "description": "when if doesn't match and it has no unevaluated items", - "data": ["foo", 42, 42, "else"], - "valid": true - }, - { - "description": "when if doesn't match and it has unevaluated items", - "data": ["foo", 42, 42, "else", 42], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems with boolean schemas", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "allOf": [true], - "unevaluatedItems": false - }, - "tests": [ - { - "description": "with no unevaluated items", - "data": [], - "valid": true - }, - { - "description": "with unevaluated items", - "data": ["foo"], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems with $ref", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$ref": "#/$defs/bar", - "items": [ - { "type": "string" } - ], - "unevaluatedItems": false, - "$defs": { - "bar": { - "items": [ - true, - { "type": "string" } - ] - } - } - }, - "tests": [ - { - "description": "with no unevaluated items", - "data": ["foo", "bar"], - "valid": true - }, - { - "description": "with unevaluated items", - "data": ["foo", "bar", "baz"], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems before $ref", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "unevaluatedItems": false, - "items": [ - { "type": "string" } - ], - "$ref": "#/$defs/bar", - "$defs": { - "bar": { - "items": [ - true, - { "type": "string" } - ] - } - } - }, - "tests": [ - { - "description": "with no unevaluated items", - "data": ["foo", "bar"], - "valid": true - }, - { - "description": "with unevaluated items", - "data": ["foo", "bar", "baz"], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems with $recursiveRef", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "https://example.com/unevaluated-items-with-recursive-ref/extended-tree", - - "$recursiveAnchor": true, - - "$ref": "./tree", - "items": [ - true, - true, - { "type": "string" } - ], - - "$defs": { - "tree": { - "$id": "./tree", - "$recursiveAnchor": true, - - "type": "array", - "items": [ - { "type": "number" }, - { - "$comment": "unevaluatedItems comes first so it's more likely to catch bugs with implementations that are sensitive to keyword ordering", - "unevaluatedItems": false, - "$recursiveRef": "#" - } - ] - } - } - }, - "tests": [ - { - "description": "with no unevaluated items", - "data": [1, [2, [], "b"], "a"], - "valid": true - }, - { - "description": "with unevaluated items", - "data": [1, [2, [], "b", "too many"], "a"], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems can't see inside cousins", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "allOf": [ - { - "items": [ true ] - }, - { "unevaluatedItems": false } - ] - }, - "tests": [ - { - "description": "always fails", - "data": [ 1 ], - "valid": false - } - ] - }, - { - "description": "item is evaluated in an uncle schema to unevaluatedItems", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "properties": { - "foo": { - "items": [ - { "type": "string" } - ], - "unevaluatedItems": false - } - }, - "anyOf": [ - { - "properties": { - "foo": { - "items": [ - true, - { "type": "string" } - ] - } - } - } - ] - }, - "tests": [ - { - "description": "no extra items", - "data": { - "foo": [ - "test" - ] - }, - "valid": true - }, - { - "description": "uncle keyword evaluation is not significant", - "data": { - "foo": [ - "test", - "test" - ] - }, - "valid": false - } - ] - }, - { - "description": "non-array instances are valid", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "unevaluatedItems": false - }, - "tests": [ - { - "description": "ignores booleans", - "data": true, - "valid": true - }, - { - "description": "ignores integers", - "data": 123, - "valid": true - }, - { - "description": "ignores floats", - "data": 1.0, - "valid": true - }, - { - "description": "ignores objects", - "data": {}, - "valid": true - }, - { - "description": "ignores strings", - "data": "foo", - "valid": true - }, - { - "description": "ignores null", - "data": null, - "valid": true - } - ] - }, - { - "description": "unevaluatedItems with null instance elements", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "unevaluatedItems": { - "type": "null" - } - }, - "tests": [ - { - "description": "allows null elements", - "data": [ null ], - "valid": true - } - ] - }, - { - "description": "unevaluatedItems can see annotations from if without then and else", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "if": { - "items": [{"const": "a"}] - }, - "unevaluatedItems": false - }, - "tests": [ - { - "description": "valid in case if is evaluated", - "data": [ "a" ], - "valid": true - }, - { - "description": "invalid in case if is evaluated", - "data": [ "b" ], - "valid": false - } - - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/unevaluatedProperties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/unevaluatedProperties.json deleted file mode 100644 index e8765112c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/unevaluatedProperties.json +++ /dev/null @@ -1,1604 +0,0 @@ -[ - { - "description": "unevaluatedProperties true", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "unevaluatedProperties": true - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": {}, - "valid": true - }, - { - "description": "with unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": true - } - ] - }, - { - "description": "unevaluatedProperties schema", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "unevaluatedProperties": { - "type": "string", - "minLength": 3 - } - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": {}, - "valid": true - }, - { - "description": "with valid unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with invalid unevaluated properties", - "data": { - "foo": "fo" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties false", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": {}, - "valid": true - }, - { - "description": "with unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with adjacent properties", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with adjacent patternProperties", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "patternProperties": { - "^foo": { "type": "string" } - }, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with adjacent additionalProperties", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "additionalProperties": true, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no additional properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with additional properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - } - ] - }, - { - "description": "unevaluatedProperties with nested properties", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "allOf": [ - { - "properties": { - "bar": { "type": "string" } - } - } - ], - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no additional properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - }, - { - "description": "with additional properties", - "data": { - "foo": "foo", - "bar": "bar", - "baz": "baz" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with nested patternProperties", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "allOf": [ - { - "patternProperties": { - "^bar": { "type": "string" } - } - } - ], - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no additional properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - }, - { - "description": "with additional properties", - "data": { - "foo": "foo", - "bar": "bar", - "baz": "baz" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with nested additionalProperties", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "allOf": [ - { - "additionalProperties": true - } - ], - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no additional properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with additional properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - } - ] - }, - { - "description": "unevaluatedProperties with nested unevaluatedProperties", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "allOf": [ - { - "unevaluatedProperties": true - } - ], - "unevaluatedProperties": { - "type": "string", - "maxLength": 2 - } - }, - "tests": [ - { - "description": "with no nested unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with nested unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - } - ] - }, - { - "description": "unevaluatedProperties with anyOf", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "anyOf": [ - { - "properties": { - "bar": { "const": "bar" } - }, - "required": ["bar"] - }, - { - "properties": { - "baz": { "const": "baz" } - }, - "required": ["baz"] - }, - { - "properties": { - "quux": { "const": "quux" } - }, - "required": ["quux"] - } - ], - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "when one matches and has no unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - }, - { - "description": "when one matches and has unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar", - "baz": "not-baz" - }, - "valid": false - }, - { - "description": "when two match and has no unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar", - "baz": "baz" - }, - "valid": true - }, - { - "description": "when two match and has unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar", - "baz": "baz", - "quux": "not-quux" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with oneOf", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "oneOf": [ - { - "properties": { - "bar": { "const": "bar" } - }, - "required": ["bar"] - }, - { - "properties": { - "baz": { "const": "baz" } - }, - "required": ["baz"] - } - ], - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - }, - { - "description": "with unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar", - "quux": "quux" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with not", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "not": { - "not": { - "properties": { - "bar": { "const": "bar" } - }, - "required": ["bar"] - } - }, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with if/then/else", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "if": { - "properties": { - "foo": { "const": "then" } - }, - "required": ["foo"] - }, - "then": { - "properties": { - "bar": { "type": "string" } - }, - "required": ["bar"] - }, - "else": { - "properties": { - "baz": { "type": "string" } - }, - "required": ["baz"] - }, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "when if is true and has no unevaluated properties", - "data": { - "foo": "then", - "bar": "bar" - }, - "valid": true - }, - { - "description": "when if is true and has unevaluated properties", - "data": { - "foo": "then", - "bar": "bar", - "baz": "baz" - }, - "valid": false - }, - { - "description": "when if is false and has no unevaluated properties", - "data": { - "baz": "baz" - }, - "valid": true - }, - { - "description": "when if is false and has unevaluated properties", - "data": { - "foo": "else", - "baz": "baz" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with if/then/else, then not defined", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "if": { - "properties": { - "foo": { "const": "then" } - }, - "required": ["foo"] - }, - "else": { - "properties": { - "baz": { "type": "string" } - }, - "required": ["baz"] - }, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "when if is true and has no unevaluated properties", - "data": { - "foo": "then", - "bar": "bar" - }, - "valid": false - }, - { - "description": "when if is true and has unevaluated properties", - "data": { - "foo": "then", - "bar": "bar", - "baz": "baz" - }, - "valid": false - }, - { - "description": "when if is false and has no unevaluated properties", - "data": { - "baz": "baz" - }, - "valid": true - }, - { - "description": "when if is false and has unevaluated properties", - "data": { - "foo": "else", - "baz": "baz" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with if/then/else, else not defined", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "if": { - "properties": { - "foo": { "const": "then" } - }, - "required": ["foo"] - }, - "then": { - "properties": { - "bar": { "type": "string" } - }, - "required": ["bar"] - }, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "when if is true and has no unevaluated properties", - "data": { - "foo": "then", - "bar": "bar" - }, - "valid": true - }, - { - "description": "when if is true and has unevaluated properties", - "data": { - "foo": "then", - "bar": "bar", - "baz": "baz" - }, - "valid": false - }, - { - "description": "when if is false and has no unevaluated properties", - "data": { - "baz": "baz" - }, - "valid": false - }, - { - "description": "when if is false and has unevaluated properties", - "data": { - "foo": "else", - "baz": "baz" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with dependentSchemas", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "dependentSchemas": { - "foo": { - "properties": { - "bar": { "const": "bar" } - }, - "required": ["bar"] - } - }, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - }, - { - "description": "with unevaluated properties", - "data": { - "bar": "bar" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with boolean schemas", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "allOf": [true], - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with unevaluated properties", - "data": { - "bar": "bar" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with $ref", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "$ref": "#/$defs/bar", - "properties": { - "foo": { "type": "string" } - }, - "unevaluatedProperties": false, - "$defs": { - "bar": { - "properties": { - "bar": { "type": "string" } - } - } - } - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - }, - { - "description": "with unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar", - "baz": "baz" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties before $ref", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "unevaluatedProperties": false, - "properties": { - "foo": { "type": "string" } - }, - "$ref": "#/$defs/bar", - "$defs": { - "bar": { - "properties": { - "bar": { "type": "string" } - } - } - } - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - }, - { - "description": "with unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar", - "baz": "baz" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with $recursiveRef", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$id": "https://example.com/unevaluated-properties-with-recursive-ref/extended-tree", - - "$recursiveAnchor": true, - - "$ref": "./tree", - "properties": { - "name": { "type": "string" } - }, - - "$defs": { - "tree": { - "$id": "./tree", - "$recursiveAnchor": true, - - "type": "object", - "properties": { - "node": true, - "branches": { - "$comment": "unevaluatedProperties comes first so it's more likely to bugs errors with implementations that are sensitive to keyword ordering", - "unevaluatedProperties": false, - "$recursiveRef": "#" - } - }, - "required": ["node"] - } - } - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": { - "name": "a", - "node": 1, - "branches": { - "name": "b", - "node": 2 - } - }, - "valid": true - }, - { - "description": "with unevaluated properties", - "data": { - "name": "a", - "node": 1, - "branches": { - "foo": "b", - "node": 2 - } - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties can't see inside cousins", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "allOf": [ - { - "properties": { - "foo": true - } - }, - { - "unevaluatedProperties": false - } - ] - }, - "tests": [ - { - "description": "always fails", - "data": { - "foo": 1 - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties can't see inside cousins (reverse order)", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "allOf": [ - { - "unevaluatedProperties": false - }, - { - "properties": { - "foo": true - } - } - ] - }, - "tests": [ - { - "description": "always fails", - "data": { - "foo": 1 - }, - "valid": false - } - ] - }, - { - "description": "nested unevaluatedProperties, outer false, inner true, properties outside", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "allOf": [ - { - "unevaluatedProperties": true - } - ], - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no nested unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with nested unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - } - ] - }, - { - "description": "nested unevaluatedProperties, outer false, inner true, properties inside", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "allOf": [ - { - "properties": { - "foo": { "type": "string" } - }, - "unevaluatedProperties": true - } - ], - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no nested unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with nested unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - } - ] - }, - { - "description": "nested unevaluatedProperties, outer true, inner false, properties outside", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "allOf": [ - { - "unevaluatedProperties": false - } - ], - "unevaluatedProperties": true - }, - "tests": [ - { - "description": "with no nested unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": false - }, - { - "description": "with nested unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": false - } - ] - }, - { - "description": "nested unevaluatedProperties, outer true, inner false, properties inside", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "allOf": [ - { - "properties": { - "foo": { "type": "string" } - }, - "unevaluatedProperties": false - } - ], - "unevaluatedProperties": true - }, - "tests": [ - { - "description": "with no nested unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with nested unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": false - } - ] - }, - { - "description": "cousin unevaluatedProperties, true and false, true with properties", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "allOf": [ - { - "properties": { - "foo": { "type": "string" } - }, - "unevaluatedProperties": true - }, - { - "unevaluatedProperties": false - } - ] - }, - "tests": [ - { - "description": "with no nested unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": false - }, - { - "description": "with nested unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": false - } - ] - }, - { - "description": "cousin unevaluatedProperties, true and false, false with properties", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "allOf": [ - { - "unevaluatedProperties": true - }, - { - "properties": { - "foo": { "type": "string" } - }, - "unevaluatedProperties": false - } - ] - }, - "tests": [ - { - "description": "with no nested unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with nested unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": false - } - ] - }, - { - "description": "property is evaluated in an uncle schema to unevaluatedProperties", - "comment": "see https://stackoverflow.com/questions/66936884/deeply-nested-unevaluatedproperties-and-their-expectations", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "properties": { - "foo": { - "type": "object", - "properties": { - "bar": { - "type": "string" - } - }, - "unevaluatedProperties": false - } - }, - "anyOf": [ - { - "properties": { - "foo": { - "properties": { - "faz": { - "type": "string" - } - } - } - } - } - ] - }, - "tests": [ - { - "description": "no extra properties", - "data": { - "foo": { - "bar": "test" - } - }, - "valid": true - }, - { - "description": "uncle keyword evaluation is not significant", - "data": { - "foo": { - "bar": "test", - "faz": "test" - } - }, - "valid": false - } - ] - }, - { - "description": "in-place applicator siblings, allOf has unevaluated", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "allOf": [ - { - "properties": { - "foo": true - }, - "unevaluatedProperties": false - } - ], - "anyOf": [ - { - "properties": { - "bar": true - } - } - ] - }, - "tests": [ - { - "description": "base case: both properties present", - "data": { - "foo": 1, - "bar": 1 - }, - "valid": false - }, - { - "description": "in place applicator siblings, bar is missing", - "data": { - "foo": 1 - }, - "valid": true - }, - { - "description": "in place applicator siblings, foo is missing", - "data": { - "bar": 1 - }, - "valid": false - } - ] - }, - { - "description": "in-place applicator siblings, anyOf has unevaluated", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "allOf": [ - { - "properties": { - "foo": true - } - } - ], - "anyOf": [ - { - "properties": { - "bar": true - }, - "unevaluatedProperties": false - } - ] - }, - "tests": [ - { - "description": "base case: both properties present", - "data": { - "foo": 1, - "bar": 1 - }, - "valid": false - }, - { - "description": "in place applicator siblings, bar is missing", - "data": { - "foo": 1 - }, - "valid": false - }, - { - "description": "in place applicator siblings, foo is missing", - "data": { - "bar": 1 - }, - "valid": true - } - ] - }, - { - "description": "unevaluatedProperties + single cyclic ref", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "type": "object", - "properties": { - "x": { "$ref": "#" } - }, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "Empty is valid", - "data": {}, - "valid": true - }, - { - "description": "Single is valid", - "data": { "x": {} }, - "valid": true - }, - { - "description": "Unevaluated on 1st level is invalid", - "data": { "x": {}, "y": {} }, - "valid": false - }, - { - "description": "Nested is valid", - "data": { "x": { "x": {} } }, - "valid": true - }, - { - "description": "Unevaluated on 2nd level is invalid", - "data": { "x": { "x": {}, "y": {} } }, - "valid": false - }, - { - "description": "Deep nested is valid", - "data": { "x": { "x": { "x": {} } } }, - "valid": true - }, - { - "description": "Unevaluated on 3rd level is invalid", - "data": { "x": { "x": { "x": {}, "y": {} } } }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties + ref inside allOf / oneOf", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$defs": { - "one": { - "properties": { "a": true } - }, - "two": { - "required": ["x"], - "properties": { "x": true } - } - }, - "allOf": [ - { "$ref": "#/$defs/one" }, - { "properties": { "b": true } }, - { - "oneOf": [ - { "$ref": "#/$defs/two" }, - { - "required": ["y"], - "properties": { "y": true } - } - ] - } - ], - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "Empty is invalid (no x or y)", - "data": {}, - "valid": false - }, - { - "description": "a and b are invalid (no x or y)", - "data": { "a": 1, "b": 1 }, - "valid": false - }, - { - "description": "x and y are invalid", - "data": { "x": 1, "y": 1 }, - "valid": false - }, - { - "description": "a and x are valid", - "data": { "a": 1, "x": 1 }, - "valid": true - }, - { - "description": "a and y are valid", - "data": { "a": 1, "y": 1 }, - "valid": true - }, - { - "description": "a and b and x are valid", - "data": { "a": 1, "b": 1, "x": 1 }, - "valid": true - }, - { - "description": "a and b and y are valid", - "data": { "a": 1, "b": 1, "y": 1 }, - "valid": true - }, - { - "description": "a and b and x and y are invalid", - "data": { "a": 1, "b": 1, "x": 1, "y": 1 }, - "valid": false - } - ] - }, - { - "description": "dynamic evalation inside nested refs", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "$defs": { - "one": { - "oneOf": [ - { "$ref": "#/$defs/two" }, - { "required": ["b"], "properties": { "b": true } }, - { "required": ["xx"], "patternProperties": { "x": true } }, - { "required": ["all"], "unevaluatedProperties": true } - ] - }, - "two": { - "oneOf": [ - { "required": ["c"], "properties": { "c": true } }, - { "required": ["d"], "properties": { "d": true } } - ] - } - }, - "oneOf": [ - { "$ref": "#/$defs/one" }, - { "required": ["a"], "properties": { "a": true } } - ], - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "Empty is invalid", - "data": {}, - "valid": false - }, - { - "description": "a is valid", - "data": { "a": 1 }, - "valid": true - }, - { - "description": "b is valid", - "data": { "b": 1 }, - "valid": true - }, - { - "description": "c is valid", - "data": { "c": 1 }, - "valid": true - }, - { - "description": "d is valid", - "data": { "d": 1 }, - "valid": true - }, - { - "description": "a + b is invalid", - "data": { "a": 1, "b": 1 }, - "valid": false - }, - { - "description": "a + c is invalid", - "data": { "a": 1, "c": 1 }, - "valid": false - }, - { - "description": "a + d is invalid", - "data": { "a": 1, "d": 1 }, - "valid": false - }, - { - "description": "b + c is invalid", - "data": { "b": 1, "c": 1 }, - "valid": false - }, - { - "description": "b + d is invalid", - "data": { "b": 1, "d": 1 }, - "valid": false - }, - { - "description": "c + d is invalid", - "data": { "c": 1, "d": 1 }, - "valid": false - }, - { - "description": "xx is valid", - "data": { "xx": 1 }, - "valid": true - }, - { - "description": "xx + foox is valid", - "data": { "xx": 1, "foox": 1 }, - "valid": true - }, - { - "description": "xx + foo is invalid", - "data": { "xx": 1, "foo": 1 }, - "valid": false - }, - { - "description": "xx + a is invalid", - "data": { "xx": 1, "a": 1 }, - "valid": false - }, - { - "description": "xx + b is invalid", - "data": { "xx": 1, "b": 1 }, - "valid": false - }, - { - "description": "xx + c is invalid", - "data": { "xx": 1, "c": 1 }, - "valid": false - }, - { - "description": "xx + d is invalid", - "data": { "xx": 1, "d": 1 }, - "valid": false - }, - { - "description": "all is valid", - "data": { "all": 1 }, - "valid": true - }, - { - "description": "all + foo is valid", - "data": { "all": 1, "foo": 1 }, - "valid": true - }, - { - "description": "all + a is invalid", - "data": { "all": 1, "a": 1 }, - "valid": false - } - ] - }, - { - "description": "non-object instances are valid", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "ignores booleans", - "data": true, - "valid": true - }, - { - "description": "ignores integers", - "data": 123, - "valid": true - }, - { - "description": "ignores floats", - "data": 1.0, - "valid": true - }, - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores strings", - "data": "foo", - "valid": true - }, - { - "description": "ignores null", - "data": null, - "valid": true - } - ] - }, - { - "description": "unevaluatedProperties with null valued instance properties", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "unevaluatedProperties": { - "type": "null" - } - }, - "tests": [ - { - "description": "allows null valued properties", - "data": {"foo": null}, - "valid": true - } - ] - }, - { - "description": "unevaluatedProperties not affected by propertyNames", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "propertyNames": {"maxLength": 1}, - "unevaluatedProperties": { - "type": "number" - } - }, - "tests": [ - { - "description": "allows only number properties", - "data": {"a": 1}, - "valid": true - }, - { - "description": "string property is invalid", - "data": {"a": "b"}, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties can see annotations from if without then and else", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "if": { - "patternProperties": { - "foo": { - "type": "string" - } - } - }, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "valid in case if is evaluated", - "data": { - "foo": "a" - }, - "valid": true - }, - { - "description": "invalid in case if is evaluated", - "data": { - "bar": "a" - }, - "valid": false - } - ] - }, - { - "description": "dependentSchemas with unevaluatedProperties", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "properties": {"foo2": {}}, - "dependentSchemas": { - "foo" : {}, - "foo2": { - "properties": { - "bar":{} - } - } - }, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "unevaluatedProperties doesn't consider dependentSchemas", - "data": {"foo": ""}, - "valid": false - }, - { - "description": "unevaluatedProperties doesn't see bar when foo2 is absent", - "data": {"bar": ""}, - "valid": false - }, - { - "description": "unevaluatedProperties sees bar when foo2 is present", - "data": { "foo2": "", "bar": ""}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/uniqueItems.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/uniqueItems.json deleted file mode 100644 index 314b4b9cb..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/uniqueItems.json +++ /dev/null @@ -1,419 +0,0 @@ -[ - { - "description": "uniqueItems validation", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "uniqueItems": true - }, - "tests": [ - { - "description": "unique array of integers is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "non-unique array of integers is invalid", - "data": [1, 1], - "valid": false - }, - { - "description": "non-unique array of more than two integers is invalid", - "data": [1, 2, 1], - "valid": false - }, - { - "description": "numbers are unique if mathematically unequal", - "data": [1.0, 1.00, 1], - "valid": false - }, - { - "description": "false is not equal to zero", - "data": [0, false], - "valid": true - }, - { - "description": "true is not equal to one", - "data": [1, true], - "valid": true - }, - { - "description": "unique array of strings is valid", - "data": ["foo", "bar", "baz"], - "valid": true - }, - { - "description": "non-unique array of strings is invalid", - "data": ["foo", "bar", "foo"], - "valid": false - }, - { - "description": "unique array of objects is valid", - "data": [{"foo": "bar"}, {"foo": "baz"}], - "valid": true - }, - { - "description": "non-unique array of objects is invalid", - "data": [{"foo": "bar"}, {"foo": "bar"}], - "valid": false - }, - { - "description": "property order of array of objects is ignored", - "data": [{"foo": "bar", "bar": "foo"}, {"bar": "foo", "foo": "bar"}], - "valid": false - }, - { - "description": "unique array of nested objects is valid", - "data": [ - {"foo": {"bar" : {"baz" : true}}}, - {"foo": {"bar" : {"baz" : false}}} - ], - "valid": true - }, - { - "description": "non-unique array of nested objects is invalid", - "data": [ - {"foo": {"bar" : {"baz" : true}}}, - {"foo": {"bar" : {"baz" : true}}} - ], - "valid": false - }, - { - "description": "unique array of arrays is valid", - "data": [["foo"], ["bar"]], - "valid": true - }, - { - "description": "non-unique array of arrays is invalid", - "data": [["foo"], ["foo"]], - "valid": false - }, - { - "description": "non-unique array of more than two arrays is invalid", - "data": [["foo"], ["bar"], ["foo"]], - "valid": false - }, - { - "description": "1 and true are unique", - "data": [1, true], - "valid": true - }, - { - "description": "0 and false are unique", - "data": [0, false], - "valid": true - }, - { - "description": "[1] and [true] are unique", - "data": [[1], [true]], - "valid": true - }, - { - "description": "[0] and [false] are unique", - "data": [[0], [false]], - "valid": true - }, - { - "description": "nested [1] and [true] are unique", - "data": [[[1], "foo"], [[true], "foo"]], - "valid": true - }, - { - "description": "nested [0] and [false] are unique", - "data": [[[0], "foo"], [[false], "foo"]], - "valid": true - }, - { - "description": "unique heterogeneous types are valid", - "data": [{}, [1], true, null, 1, "{}"], - "valid": true - }, - { - "description": "non-unique heterogeneous types are invalid", - "data": [{}, [1], true, null, {}, 1], - "valid": false - }, - { - "description": "different objects are unique", - "data": [{"a": 1, "b": 2}, {"a": 2, "b": 1}], - "valid": true - }, - { - "description": "objects are non-unique despite key order", - "data": [{"a": 1, "b": 2}, {"b": 2, "a": 1}], - "valid": false - }, - { - "description": "{\"a\": false} and {\"a\": 0} are unique", - "data": [{"a": false}, {"a": 0}], - "valid": true - }, - { - "description": "{\"a\": true} and {\"a\": 1} are unique", - "data": [{"a": true}, {"a": 1}], - "valid": true - } - ] - }, - { - "description": "uniqueItems with an array of items", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "items": [{"type": "boolean"}, {"type": "boolean"}], - "uniqueItems": true - }, - "tests": [ - { - "description": "[false, true] from items array is valid", - "data": [false, true], - "valid": true - }, - { - "description": "[true, false] from items array is valid", - "data": [true, false], - "valid": true - }, - { - "description": "[false, false] from items array is not valid", - "data": [false, false], - "valid": false - }, - { - "description": "[true, true] from items array is not valid", - "data": [true, true], - "valid": false - }, - { - "description": "unique array extended from [false, true] is valid", - "data": [false, true, "foo", "bar"], - "valid": true - }, - { - "description": "unique array extended from [true, false] is valid", - "data": [true, false, "foo", "bar"], - "valid": true - }, - { - "description": "non-unique array extended from [false, true] is not valid", - "data": [false, true, "foo", "foo"], - "valid": false - }, - { - "description": "non-unique array extended from [true, false] is not valid", - "data": [true, false, "foo", "foo"], - "valid": false - } - ] - }, - { - "description": "uniqueItems with an array of items and additionalItems=false", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "items": [{"type": "boolean"}, {"type": "boolean"}], - "uniqueItems": true, - "additionalItems": false - }, - "tests": [ - { - "description": "[false, true] from items array is valid", - "data": [false, true], - "valid": true - }, - { - "description": "[true, false] from items array is valid", - "data": [true, false], - "valid": true - }, - { - "description": "[false, false] from items array is not valid", - "data": [false, false], - "valid": false - }, - { - "description": "[true, true] from items array is not valid", - "data": [true, true], - "valid": false - }, - { - "description": "extra items are invalid even if unique", - "data": [false, true, null], - "valid": false - } - ] - }, - { - "description": "uniqueItems=false validation", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "uniqueItems": false - }, - "tests": [ - { - "description": "unique array of integers is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "non-unique array of integers is valid", - "data": [1, 1], - "valid": true - }, - { - "description": "numbers are unique if mathematically unequal", - "data": [1.0, 1.00, 1], - "valid": true - }, - { - "description": "false is not equal to zero", - "data": [0, false], - "valid": true - }, - { - "description": "true is not equal to one", - "data": [1, true], - "valid": true - }, - { - "description": "unique array of objects is valid", - "data": [{"foo": "bar"}, {"foo": "baz"}], - "valid": true - }, - { - "description": "non-unique array of objects is valid", - "data": [{"foo": "bar"}, {"foo": "bar"}], - "valid": true - }, - { - "description": "unique array of nested objects is valid", - "data": [ - {"foo": {"bar" : {"baz" : true}}}, - {"foo": {"bar" : {"baz" : false}}} - ], - "valid": true - }, - { - "description": "non-unique array of nested objects is valid", - "data": [ - {"foo": {"bar" : {"baz" : true}}}, - {"foo": {"bar" : {"baz" : true}}} - ], - "valid": true - }, - { - "description": "unique array of arrays is valid", - "data": [["foo"], ["bar"]], - "valid": true - }, - { - "description": "non-unique array of arrays is valid", - "data": [["foo"], ["foo"]], - "valid": true - }, - { - "description": "1 and true are unique", - "data": [1, true], - "valid": true - }, - { - "description": "0 and false are unique", - "data": [0, false], - "valid": true - }, - { - "description": "unique heterogeneous types are valid", - "data": [{}, [1], true, null, 1], - "valid": true - }, - { - "description": "non-unique heterogeneous types are valid", - "data": [{}, [1], true, null, {}, 1], - "valid": true - } - ] - }, - { - "description": "uniqueItems=false with an array of items", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "items": [{"type": "boolean"}, {"type": "boolean"}], - "uniqueItems": false - }, - "tests": [ - { - "description": "[false, true] from items array is valid", - "data": [false, true], - "valid": true - }, - { - "description": "[true, false] from items array is valid", - "data": [true, false], - "valid": true - }, - { - "description": "[false, false] from items array is valid", - "data": [false, false], - "valid": true - }, - { - "description": "[true, true] from items array is valid", - "data": [true, true], - "valid": true - }, - { - "description": "unique array extended from [false, true] is valid", - "data": [false, true, "foo", "bar"], - "valid": true - }, - { - "description": "unique array extended from [true, false] is valid", - "data": [true, false, "foo", "bar"], - "valid": true - }, - { - "description": "non-unique array extended from [false, true] is valid", - "data": [false, true, "foo", "foo"], - "valid": true - }, - { - "description": "non-unique array extended from [true, false] is valid", - "data": [true, false, "foo", "foo"], - "valid": true - } - ] - }, - { - "description": "uniqueItems=false with an array of items and additionalItems=false", - "schema": { - "$schema": "https://json-schema.org/draft/2019-09/schema", - "items": [{"type": "boolean"}, {"type": "boolean"}], - "uniqueItems": false, - "additionalItems": false - }, - "tests": [ - { - "description": "[false, true] from items array is valid", - "data": [false, true], - "valid": true - }, - { - "description": "[true, false] from items array is valid", - "data": [true, false], - "valid": true - }, - { - "description": "[false, false] from items array is valid", - "data": [false, false], - "valid": true - }, - { - "description": "[true, true] from items array is valid", - "data": [true, true], - "valid": true - }, - { - "description": "extra items are invalid even if unique", - "data": [false, true, null], - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/vocabulary.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/vocabulary.json deleted file mode 100644 index 98482b20c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2019-09/vocabulary.json +++ /dev/null @@ -1,57 +0,0 @@ -[ - { - "description": "schema that uses custom metaschema with with no validation vocabulary", - "schema": { - "$id": "https://schema/using/no/validation", - "$schema": "http://localhost:1234/draft2019-09/metaschema-no-validation.json", - "properties": { - "badProperty": false, - "numberProperty": { - "minimum": 10 - } - } - }, - "tests": [ - { - "description": "applicator vocabulary still works", - "data": { - "badProperty": "this property should not exist" - }, - "valid": false - }, - { - "description": "no validation: valid number", - "data": { - "numberProperty": 20 - }, - "valid": true - }, - { - "description": "no validation: invalid number, but it still validates", - "data": { - "numberProperty": 1 - }, - "valid": true - } - ] - }, - { - "description": "ignore unrecognized optional vocabulary", - "schema": { - "$schema": "http://localhost:1234/draft2019-09/metaschema-optional-vocabulary.json", - "type": "number" - }, - "tests": [ - { - "description": "string value", - "data": "foobar", - "valid": false - }, - { - "description": "number value", - "data": 20, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/additionalProperties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/additionalProperties.json deleted file mode 100644 index 9618575e2..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/additionalProperties.json +++ /dev/null @@ -1,219 +0,0 @@ -[ - { - "description": - "additionalProperties being false does not allow other properties", - "specification": [ { "core":"10.3.2.3", "quote": "The value of \"additionalProperties\" MUST be a valid JSON Schema. Boolean \"false\" forbids everything." } ], - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "properties": {"foo": {}, "bar": {}}, - "patternProperties": { "^v": {} }, - "additionalProperties": false - }, - "tests": [ - { - "description": "no additional properties is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "an additional property is invalid", - "data": {"foo" : 1, "bar" : 2, "quux" : "boom"}, - "valid": false - }, - { - "description": "ignores arrays", - "data": [1, 2, 3], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobarbaz", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - }, - { - "description": "patternProperties are not additional properties", - "data": {"foo":1, "vroom": 2}, - "valid": true - } - ] - }, - { - "description": "non-ASCII pattern with additionalProperties", - "specification": [ { "core":"10.3.2.3"} ], - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "patternProperties": {"^á": {}}, - "additionalProperties": false - }, - "tests": [ - { - "description": "matching the pattern is valid", - "data": {"ármányos": 2}, - "valid": true - }, - { - "description": "not matching the pattern is invalid", - "data": {"élmény": 2}, - "valid": false - } - ] - }, - { - "description": "additionalProperties with schema", - "specification": [ { "core":"10.3.2.3", "quote": "The value of \"additionalProperties\" MUST be a valid JSON Schema." } ], - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "properties": {"foo": {}, "bar": {}}, - "additionalProperties": {"type": "boolean"} - }, - "tests": [ - { - "description": "no additional properties is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "an additional valid property is valid", - "data": {"foo" : 1, "bar" : 2, "quux" : true}, - "valid": true - }, - { - "description": "an additional invalid property is invalid", - "data": {"foo" : 1, "bar" : 2, "quux" : 12}, - "valid": false - } - ] - }, - { - "description": "additionalProperties can exist by itself", - "specification": [ { "core":"10.3.2.3", "quote": "With no other applicator applying to object instances. This validates all the instance values irrespective of their property names" } ], - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "additionalProperties": {"type": "boolean"} - }, - "tests": [ - { - "description": "an additional valid property is valid", - "data": {"foo" : true}, - "valid": true - }, - { - "description": "an additional invalid property is invalid", - "data": {"foo" : 1}, - "valid": false - } - ] - }, - { - "description": "additionalProperties are allowed by default", - "specification": [ { "core":"10.3.2.3", "quote": "Omitting this keyword has the same assertion behavior as an empty schema." } ], - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "properties": {"foo": {}, "bar": {}} - }, - "tests": [ - { - "description": "additional properties are allowed", - "data": {"foo": 1, "bar": 2, "quux": true}, - "valid": true - } - ] - }, - { - "description": "additionalProperties does not look in applicators", - "specification":[ { "core": "10.2", "quote": "Subschemas of applicator keywords evaluate the instance completely independently such that the results of one such subschema MUST NOT impact the results of sibling subschemas." } ], - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "allOf": [ - {"properties": {"foo": {}}} - ], - "additionalProperties": {"type": "boolean"} - }, - "tests": [ - { - "description": "properties defined in allOf are not examined", - "data": {"foo": 1, "bar": true}, - "valid": false - } - ] - }, - { - "description": "additionalProperties with null valued instance properties", - "specification": [ { "core":"10.3.2.3" } ], - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "additionalProperties": { - "type": "null" - } - }, - "tests": [ - { - "description": "allows null values", - "data": {"foo": null}, - "valid": true - } - ] - }, - { - "description": "additionalProperties with propertyNames", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "propertyNames": { - "maxLength": 5 - }, - "additionalProperties": { - "type": "number" - } - }, - "tests": [ - { - "description": "Valid against both keywords", - "data": { "apple": 4 }, - "valid": true - }, - { - "description": "Valid against propertyNames, but not additionalProperties", - "data": { "fig": 2, "pear": "available" }, - "valid": false - } - ] - }, - { - "description": "dependentSchemas with additionalProperties", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "properties": {"foo2": {}}, - "dependentSchemas": { - "foo" : {}, - "foo2": { - "properties": { - "bar": {} - } - } - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "additionalProperties doesn't consider dependentSchemas", - "data": {"foo": ""}, - "valid": false - }, - { - "description": "additionalProperties can't see bar", - "data": {"bar": ""}, - "valid": false - }, - { - "description": "additionalProperties can't see bar even when foo2 is present", - "data": {"foo2": "", "bar": ""}, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/allOf.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/allOf.json deleted file mode 100644 index 9e87903fe..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/allOf.json +++ /dev/null @@ -1,312 +0,0 @@ -[ - { - "description": "allOf", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "allOf": [ - { - "properties": { - "bar": {"type": "integer"} - }, - "required": ["bar"] - }, - { - "properties": { - "foo": {"type": "string"} - }, - "required": ["foo"] - } - ] - }, - "tests": [ - { - "description": "allOf", - "data": {"foo": "baz", "bar": 2}, - "valid": true - }, - { - "description": "mismatch second", - "data": {"foo": "baz"}, - "valid": false - }, - { - "description": "mismatch first", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "wrong type", - "data": {"foo": "baz", "bar": "quux"}, - "valid": false - } - ] - }, - { - "description": "allOf with base schema", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "properties": {"bar": {"type": "integer"}}, - "required": ["bar"], - "allOf" : [ - { - "properties": { - "foo": {"type": "string"} - }, - "required": ["foo"] - }, - { - "properties": { - "baz": {"type": "null"} - }, - "required": ["baz"] - } - ] - }, - "tests": [ - { - "description": "valid", - "data": {"foo": "quux", "bar": 2, "baz": null}, - "valid": true - }, - { - "description": "mismatch base schema", - "data": {"foo": "quux", "baz": null}, - "valid": false - }, - { - "description": "mismatch first allOf", - "data": {"bar": 2, "baz": null}, - "valid": false - }, - { - "description": "mismatch second allOf", - "data": {"foo": "quux", "bar": 2}, - "valid": false - }, - { - "description": "mismatch both", - "data": {"bar": 2}, - "valid": false - } - ] - }, - { - "description": "allOf simple types", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "allOf": [ - {"maximum": 30}, - {"minimum": 20} - ] - }, - "tests": [ - { - "description": "valid", - "data": 25, - "valid": true - }, - { - "description": "mismatch one", - "data": 35, - "valid": false - } - ] - }, - { - "description": "allOf with boolean schemas, all true", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "allOf": [true, true] - }, - "tests": [ - { - "description": "any value is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "allOf with boolean schemas, some false", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "allOf": [true, false] - }, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "allOf with boolean schemas, all false", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "allOf": [false, false] - }, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "allOf with one empty schema", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "allOf": [ - {} - ] - }, - "tests": [ - { - "description": "any data is valid", - "data": 1, - "valid": true - } - ] - }, - { - "description": "allOf with two empty schemas", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "allOf": [ - {}, - {} - ] - }, - "tests": [ - { - "description": "any data is valid", - "data": 1, - "valid": true - } - ] - }, - { - "description": "allOf with the first empty schema", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "allOf": [ - {}, - { "type": "number" } - ] - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "allOf with the last empty schema", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "allOf": [ - { "type": "number" }, - {} - ] - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "nested allOf, to check validation semantics", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "allOf": [ - { - "allOf": [ - { - "type": "null" - } - ] - } - ] - }, - "tests": [ - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "anything non-null is invalid", - "data": 123, - "valid": false - } - ] - }, - { - "description": "allOf combined with anyOf, oneOf", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "allOf": [ { "multipleOf": 2 } ], - "anyOf": [ { "multipleOf": 3 } ], - "oneOf": [ { "multipleOf": 5 } ] - }, - "tests": [ - { - "description": "allOf: false, anyOf: false, oneOf: false", - "data": 1, - "valid": false - }, - { - "description": "allOf: false, anyOf: false, oneOf: true", - "data": 5, - "valid": false - }, - { - "description": "allOf: false, anyOf: true, oneOf: false", - "data": 3, - "valid": false - }, - { - "description": "allOf: false, anyOf: true, oneOf: true", - "data": 15, - "valid": false - }, - { - "description": "allOf: true, anyOf: false, oneOf: false", - "data": 2, - "valid": false - }, - { - "description": "allOf: true, anyOf: false, oneOf: true", - "data": 10, - "valid": false - }, - { - "description": "allOf: true, anyOf: true, oneOf: false", - "data": 6, - "valid": false - }, - { - "description": "allOf: true, anyOf: true, oneOf: true", - "data": 30, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/anchor.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/anchor.json deleted file mode 100644 index 99143fa11..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/anchor.json +++ /dev/null @@ -1,120 +0,0 @@ -[ - { - "description": "Location-independent identifier", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#foo", - "$defs": { - "A": { - "$anchor": "foo", - "type": "integer" - } - } - }, - "tests": [ - { - "data": 1, - "description": "match", - "valid": true - }, - { - "data": "a", - "description": "mismatch", - "valid": false - } - ] - }, - { - "description": "Location-independent identifier with absolute URI", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "http://localhost:1234/draft2020-12/bar#foo", - "$defs": { - "A": { - "$id": "http://localhost:1234/draft2020-12/bar", - "$anchor": "foo", - "type": "integer" - } - } - }, - "tests": [ - { - "data": 1, - "description": "match", - "valid": true - }, - { - "data": "a", - "description": "mismatch", - "valid": false - } - ] - }, - { - "description": "Location-independent identifier with base URI change in subschema", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "http://localhost:1234/draft2020-12/root", - "$ref": "http://localhost:1234/draft2020-12/nested.json#foo", - "$defs": { - "A": { - "$id": "nested.json", - "$defs": { - "B": { - "$anchor": "foo", - "type": "integer" - } - } - } - } - }, - "tests": [ - { - "data": 1, - "description": "match", - "valid": true - }, - { - "data": "a", - "description": "mismatch", - "valid": false - } - ] - }, - { - "description": "same $anchor with different base uri", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "http://localhost:1234/draft2020-12/foobar", - "$defs": { - "A": { - "$id": "child1", - "allOf": [ - { - "$id": "child2", - "$anchor": "my_anchor", - "type": "number" - }, - { - "$anchor": "my_anchor", - "type": "string" - } - ] - } - }, - "$ref": "child1#my_anchor" - }, - "tests": [ - { - "description": "$ref resolves to /$defs/A/allOf/1", - "data": "a", - "valid": true - }, - { - "description": "$ref does not resolve to /$defs/A/allOf/0", - "data": 1, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/anyOf.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/anyOf.json deleted file mode 100644 index 89b192dbd..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/anyOf.json +++ /dev/null @@ -1,203 +0,0 @@ -[ - { - "description": "anyOf", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "anyOf": [ - { - "type": "integer" - }, - { - "minimum": 2 - } - ] - }, - "tests": [ - { - "description": "first anyOf valid", - "data": 1, - "valid": true - }, - { - "description": "second anyOf valid", - "data": 2.5, - "valid": true - }, - { - "description": "both anyOf valid", - "data": 3, - "valid": true - }, - { - "description": "neither anyOf valid", - "data": 1.5, - "valid": false - } - ] - }, - { - "description": "anyOf with base schema", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "anyOf" : [ - { - "maxLength": 2 - }, - { - "minLength": 4 - } - ] - }, - "tests": [ - { - "description": "mismatch base schema", - "data": 3, - "valid": false - }, - { - "description": "one anyOf valid", - "data": "foobar", - "valid": true - }, - { - "description": "both anyOf invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "anyOf with boolean schemas, all true", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "anyOf": [true, true] - }, - "tests": [ - { - "description": "any value is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "anyOf with boolean schemas, some true", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "anyOf": [true, false] - }, - "tests": [ - { - "description": "any value is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "anyOf with boolean schemas, all false", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "anyOf": [false, false] - }, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "anyOf complex types", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "anyOf": [ - { - "properties": { - "bar": {"type": "integer"} - }, - "required": ["bar"] - }, - { - "properties": { - "foo": {"type": "string"} - }, - "required": ["foo"] - } - ] - }, - "tests": [ - { - "description": "first anyOf valid (complex)", - "data": {"bar": 2}, - "valid": true - }, - { - "description": "second anyOf valid (complex)", - "data": {"foo": "baz"}, - "valid": true - }, - { - "description": "both anyOf valid (complex)", - "data": {"foo": "baz", "bar": 2}, - "valid": true - }, - { - "description": "neither anyOf valid (complex)", - "data": {"foo": 2, "bar": "quux"}, - "valid": false - } - ] - }, - { - "description": "anyOf with one empty schema", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "anyOf": [ - { "type": "number" }, - {} - ] - }, - "tests": [ - { - "description": "string is valid", - "data": "foo", - "valid": true - }, - { - "description": "number is valid", - "data": 123, - "valid": true - } - ] - }, - { - "description": "nested anyOf, to check validation semantics", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "anyOf": [ - { - "anyOf": [ - { - "type": "null" - } - ] - } - ] - }, - "tests": [ - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "anything non-null is invalid", - "data": 123, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/boolean_schema.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/boolean_schema.json deleted file mode 100644 index 6d40f23f2..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/boolean_schema.json +++ /dev/null @@ -1,104 +0,0 @@ -[ - { - "description": "boolean schema 'true'", - "schema": true, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "string is valid", - "data": "foo", - "valid": true - }, - { - "description": "boolean true is valid", - "data": true, - "valid": true - }, - { - "description": "boolean false is valid", - "data": false, - "valid": true - }, - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "object is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "empty object is valid", - "data": {}, - "valid": true - }, - { - "description": "array is valid", - "data": ["foo"], - "valid": true - }, - { - "description": "empty array is valid", - "data": [], - "valid": true - } - ] - }, - { - "description": "boolean schema 'false'", - "schema": false, - "tests": [ - { - "description": "number is invalid", - "data": 1, - "valid": false - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - }, - { - "description": "boolean true is invalid", - "data": true, - "valid": false - }, - { - "description": "boolean false is invalid", - "data": false, - "valid": false - }, - { - "description": "null is invalid", - "data": null, - "valid": false - }, - { - "description": "object is invalid", - "data": {"foo": "bar"}, - "valid": false - }, - { - "description": "empty object is invalid", - "data": {}, - "valid": false - }, - { - "description": "array is invalid", - "data": ["foo"], - "valid": false - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/const.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/const.json deleted file mode 100644 index 50be86a0d..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/const.json +++ /dev/null @@ -1,387 +0,0 @@ -[ - { - "description": "const validation", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "const": 2 - }, - "tests": [ - { - "description": "same value is valid", - "data": 2, - "valid": true - }, - { - "description": "another value is invalid", - "data": 5, - "valid": false - }, - { - "description": "another type is invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "const with object", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "const": {"foo": "bar", "baz": "bax"} - }, - "tests": [ - { - "description": "same object is valid", - "data": {"foo": "bar", "baz": "bax"}, - "valid": true - }, - { - "description": "same object with different property order is valid", - "data": {"baz": "bax", "foo": "bar"}, - "valid": true - }, - { - "description": "another object is invalid", - "data": {"foo": "bar"}, - "valid": false - }, - { - "description": "another type is invalid", - "data": [1, 2], - "valid": false - } - ] - }, - { - "description": "const with array", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "const": [{ "foo": "bar" }] - }, - "tests": [ - { - "description": "same array is valid", - "data": [{"foo": "bar"}], - "valid": true - }, - { - "description": "another array item is invalid", - "data": [2], - "valid": false - }, - { - "description": "array with additional items is invalid", - "data": [1, 2, 3], - "valid": false - } - ] - }, - { - "description": "const with null", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "const": null - }, - "tests": [ - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "not null is invalid", - "data": 0, - "valid": false - } - ] - }, - { - "description": "const with false does not match 0", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "const": false - }, - "tests": [ - { - "description": "false is valid", - "data": false, - "valid": true - }, - { - "description": "integer zero is invalid", - "data": 0, - "valid": false - }, - { - "description": "float zero is invalid", - "data": 0.0, - "valid": false - } - ] - }, - { - "description": "const with true does not match 1", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "const": true - }, - "tests": [ - { - "description": "true is valid", - "data": true, - "valid": true - }, - { - "description": "integer one is invalid", - "data": 1, - "valid": false - }, - { - "description": "float one is invalid", - "data": 1.0, - "valid": false - } - ] - }, - { - "description": "const with [false] does not match [0]", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "const": [false] - }, - "tests": [ - { - "description": "[false] is valid", - "data": [false], - "valid": true - }, - { - "description": "[0] is invalid", - "data": [0], - "valid": false - }, - { - "description": "[0.0] is invalid", - "data": [0.0], - "valid": false - } - ] - }, - { - "description": "const with [true] does not match [1]", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "const": [true] - }, - "tests": [ - { - "description": "[true] is valid", - "data": [true], - "valid": true - }, - { - "description": "[1] is invalid", - "data": [1], - "valid": false - }, - { - "description": "[1.0] is invalid", - "data": [1.0], - "valid": false - } - ] - }, - { - "description": "const with {\"a\": false} does not match {\"a\": 0}", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "const": {"a": false} - }, - "tests": [ - { - "description": "{\"a\": false} is valid", - "data": {"a": false}, - "valid": true - }, - { - "description": "{\"a\": 0} is invalid", - "data": {"a": 0}, - "valid": false - }, - { - "description": "{\"a\": 0.0} is invalid", - "data": {"a": 0.0}, - "valid": false - } - ] - }, - { - "description": "const with {\"a\": true} does not match {\"a\": 1}", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "const": {"a": true} - }, - "tests": [ - { - "description": "{\"a\": true} is valid", - "data": {"a": true}, - "valid": true - }, - { - "description": "{\"a\": 1} is invalid", - "data": {"a": 1}, - "valid": false - }, - { - "description": "{\"a\": 1.0} is invalid", - "data": {"a": 1.0}, - "valid": false - } - ] - }, - { - "description": "const with 0 does not match other zero-like types", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "const": 0 - }, - "tests": [ - { - "description": "false is invalid", - "data": false, - "valid": false - }, - { - "description": "integer zero is valid", - "data": 0, - "valid": true - }, - { - "description": "float zero is valid", - "data": 0.0, - "valid": true - }, - { - "description": "empty object is invalid", - "data": {}, - "valid": false - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - }, - { - "description": "empty string is invalid", - "data": "", - "valid": false - } - ] - }, - { - "description": "const with 1 does not match true", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "const": 1 - }, - "tests": [ - { - "description": "true is invalid", - "data": true, - "valid": false - }, - { - "description": "integer one is valid", - "data": 1, - "valid": true - }, - { - "description": "float one is valid", - "data": 1.0, - "valid": true - } - ] - }, - { - "description": "const with -2.0 matches integer and float types", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "const": -2.0 - }, - "tests": [ - { - "description": "integer -2 is valid", - "data": -2, - "valid": true - }, - { - "description": "integer 2 is invalid", - "data": 2, - "valid": false - }, - { - "description": "float -2.0 is valid", - "data": -2.0, - "valid": true - }, - { - "description": "float 2.0 is invalid", - "data": 2.0, - "valid": false - }, - { - "description": "float -2.00001 is invalid", - "data": -2.00001, - "valid": false - } - ] - }, - { - "description": "float and integers are equal up to 64-bit representation limits", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "const": 9007199254740992 - }, - "tests": [ - { - "description": "integer is valid", - "data": 9007199254740992, - "valid": true - }, - { - "description": "integer minus one is invalid", - "data": 9007199254740991, - "valid": false - }, - { - "description": "float is valid", - "data": 9007199254740992.0, - "valid": true - }, - { - "description": "float minus one is invalid", - "data": 9007199254740991.0, - "valid": false - } - ] - }, - { - "description": "nul characters in strings", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "const": "hello\u0000there" - }, - "tests": [ - { - "description": "match string with nul", - "data": "hello\u0000there", - "valid": true - }, - { - "description": "do not match string lacking nul", - "data": "hellothere", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/contains.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/contains.json deleted file mode 100644 index 08a00a753..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/contains.json +++ /dev/null @@ -1,176 +0,0 @@ -[ - { - "description": "contains keyword validation", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "contains": {"minimum": 5} - }, - "tests": [ - { - "description": "array with item matching schema (5) is valid", - "data": [3, 4, 5], - "valid": true - }, - { - "description": "array with item matching schema (6) is valid", - "data": [3, 4, 6], - "valid": true - }, - { - "description": "array with two items matching schema (5, 6) is valid", - "data": [3, 4, 5, 6], - "valid": true - }, - { - "description": "array without items matching schema is invalid", - "data": [2, 3, 4], - "valid": false - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - }, - { - "description": "not array is valid", - "data": {}, - "valid": true - } - ] - }, - { - "description": "contains keyword with const keyword", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "contains": { "const": 5 } - }, - "tests": [ - { - "description": "array with item 5 is valid", - "data": [3, 4, 5], - "valid": true - }, - { - "description": "array with two items 5 is valid", - "data": [3, 4, 5, 5], - "valid": true - }, - { - "description": "array without item 5 is invalid", - "data": [1, 2, 3, 4], - "valid": false - } - ] - }, - { - "description": "contains keyword with boolean schema true", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "contains": true - }, - "tests": [ - { - "description": "any non-empty array is valid", - "data": ["foo"], - "valid": true - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - } - ] - }, - { - "description": "contains keyword with boolean schema false", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "contains": false - }, - "tests": [ - { - "description": "any non-empty array is invalid", - "data": ["foo"], - "valid": false - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - }, - { - "description": "non-arrays are valid", - "data": "contains does not apply to strings", - "valid": true - } - ] - }, - { - "description": "items + contains", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "items": { "multipleOf": 2 }, - "contains": { "multipleOf": 3 } - }, - "tests": [ - { - "description": "matches items, does not match contains", - "data": [ 2, 4, 8 ], - "valid": false - }, - { - "description": "does not match items, matches contains", - "data": [ 3, 6, 9 ], - "valid": false - }, - { - "description": "matches both items and contains", - "data": [ 6, 12 ], - "valid": true - }, - { - "description": "matches neither items nor contains", - "data": [ 1, 5 ], - "valid": false - } - ] - }, - { - "description": "contains with false if subschema", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "contains": { - "if": false, - "else": true - } - }, - "tests": [ - { - "description": "any non-empty array is valid", - "data": ["foo"], - "valid": true - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - } - ] - }, - { - "description": "contains with null instance elements", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "contains": { - "type": "null" - } - }, - "tests": [ - { - "description": "allows null items", - "data": [ null ], - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/content.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/content.json deleted file mode 100644 index 698f78057..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/content.json +++ /dev/null @@ -1,131 +0,0 @@ -[ - { - "description": "validation of string-encoded content based on media type", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "contentMediaType": "application/json" - }, - "tests": [ - { - "description": "a valid JSON document", - "data": "{\"foo\": \"bar\"}", - "valid": true - }, - { - "description": "an invalid JSON document; validates true", - "data": "{:}", - "valid": true - }, - { - "description": "ignores non-strings", - "data": 100, - "valid": true - } - ] - }, - { - "description": "validation of binary string-encoding", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "contentEncoding": "base64" - }, - "tests": [ - { - "description": "a valid base64 string", - "data": "eyJmb28iOiAiYmFyIn0K", - "valid": true - }, - { - "description": "an invalid base64 string (% is not a valid character); validates true", - "data": "eyJmb28iOi%iYmFyIn0K", - "valid": true - }, - { - "description": "ignores non-strings", - "data": 100, - "valid": true - } - ] - }, - { - "description": "validation of binary-encoded media type documents", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "contentMediaType": "application/json", - "contentEncoding": "base64" - }, - "tests": [ - { - "description": "a valid base64-encoded JSON document", - "data": "eyJmb28iOiAiYmFyIn0K", - "valid": true - }, - { - "description": "a validly-encoded invalid JSON document; validates true", - "data": "ezp9Cg==", - "valid": true - }, - { - "description": "an invalid base64 string that is valid JSON; validates true", - "data": "{}", - "valid": true - }, - { - "description": "ignores non-strings", - "data": 100, - "valid": true - } - ] - }, - { - "description": "validation of binary-encoded media type documents with schema", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "contentMediaType": "application/json", - "contentEncoding": "base64", - "contentSchema": { "type": "object", "required": ["foo"], "properties": { "foo": { "type": "string" } } } - }, - "tests": [ - { - "description": "a valid base64-encoded JSON document", - "data": "eyJmb28iOiAiYmFyIn0K", - "valid": true - }, - { - "description": "another valid base64-encoded JSON document", - "data": "eyJib28iOiAyMCwgImZvbyI6ICJiYXoifQ==", - "valid": true - }, - { - "description": "an invalid base64-encoded JSON document; validates true", - "data": "eyJib28iOiAyMH0=", - "valid": true - }, - { - "description": "an empty object as a base64-encoded JSON document; validates true", - "data": "e30=", - "valid": true - }, - { - "description": "an empty array as a base64-encoded JSON document", - "data": "W10=", - "valid": true - }, - { - "description": "a validly-encoded invalid JSON document; validates true", - "data": "ezp9Cg==", - "valid": true - }, - { - "description": "an invalid base64 string that is valid JSON; validates true", - "data": "{}", - "valid": true - }, - { - "description": "ignores non-strings", - "data": 100, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/default.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/default.json deleted file mode 100644 index ceb3ae271..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/default.json +++ /dev/null @@ -1,82 +0,0 @@ -[ - { - "description": "invalid type for default", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "properties": { - "foo": { - "type": "integer", - "default": [] - } - } - }, - "tests": [ - { - "description": "valid when property is specified", - "data": {"foo": 13}, - "valid": true - }, - { - "description": "still valid when the invalid default is used", - "data": {}, - "valid": true - } - ] - }, - { - "description": "invalid string value for default", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "properties": { - "bar": { - "type": "string", - "minLength": 4, - "default": "bad" - } - } - }, - "tests": [ - { - "description": "valid when property is specified", - "data": {"bar": "good"}, - "valid": true - }, - { - "description": "still valid when the invalid default is used", - "data": {}, - "valid": true - } - ] - }, - { - "description": "the default keyword does not do anything if the property is missing", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "alpha": { - "type": "number", - "maximum": 3, - "default": 5 - } - } - }, - "tests": [ - { - "description": "an explicit property value is checked against maximum (passing)", - "data": { "alpha": 1 }, - "valid": true - }, - { - "description": "an explicit property value is checked against maximum (failing)", - "data": { "alpha": 5 }, - "valid": false - }, - { - "description": "missing properties are not filled in with the default", - "data": {}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/defs.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/defs.json deleted file mode 100644 index da2a503bf..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/defs.json +++ /dev/null @@ -1,21 +0,0 @@ -[ - { - "description": "validate definition against metaschema", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "https://json-schema.org/draft/2020-12/schema" - }, - "tests": [ - { - "description": "valid definition schema", - "data": {"$defs": {"foo": {"type": "integer"}}}, - "valid": true - }, - { - "description": "invalid definition schema", - "data": {"$defs": {"foo": {"type": 1}}}, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/dependentRequired.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/dependentRequired.json deleted file mode 100644 index 2baa38e9f..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/dependentRequired.json +++ /dev/null @@ -1,152 +0,0 @@ -[ - { - "description": "single dependency", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "dependentRequired": {"bar": ["foo"]} - }, - "tests": [ - { - "description": "neither", - "data": {}, - "valid": true - }, - { - "description": "nondependant", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "with dependency", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "missing dependency", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "ignores arrays", - "data": ["bar"], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobar", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "empty dependents", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "dependentRequired": {"bar": []} - }, - "tests": [ - { - "description": "empty object", - "data": {}, - "valid": true - }, - { - "description": "object with one property", - "data": {"bar": 2}, - "valid": true - }, - { - "description": "non-object is valid", - "data": 1, - "valid": true - } - ] - }, - { - "description": "multiple dependents required", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "dependentRequired": {"quux": ["foo", "bar"]} - }, - "tests": [ - { - "description": "neither", - "data": {}, - "valid": true - }, - { - "description": "nondependants", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "with dependencies", - "data": {"foo": 1, "bar": 2, "quux": 3}, - "valid": true - }, - { - "description": "missing dependency", - "data": {"foo": 1, "quux": 2}, - "valid": false - }, - { - "description": "missing other dependency", - "data": {"bar": 1, "quux": 2}, - "valid": false - }, - { - "description": "missing both dependencies", - "data": {"quux": 1}, - "valid": false - } - ] - }, - { - "description": "dependencies with escaped characters", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "dependentRequired": { - "foo\nbar": ["foo\rbar"], - "foo\"bar": ["foo'bar"] - } - }, - "tests": [ - { - "description": "CRLF", - "data": { - "foo\nbar": 1, - "foo\rbar": 2 - }, - "valid": true - }, - { - "description": "quoted quotes", - "data": { - "foo'bar": 1, - "foo\"bar": 2 - }, - "valid": true - }, - { - "description": "CRLF missing dependent", - "data": { - "foo\nbar": 1, - "foo": 2 - }, - "valid": false - }, - { - "description": "quoted quotes missing dependent", - "data": { - "foo\"bar": 2 - }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/dependentSchemas.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/dependentSchemas.json deleted file mode 100644 index 1c5f0574a..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/dependentSchemas.json +++ /dev/null @@ -1,171 +0,0 @@ -[ - { - "description": "single dependency", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "dependentSchemas": { - "bar": { - "properties": { - "foo": {"type": "integer"}, - "bar": {"type": "integer"} - } - } - } - }, - "tests": [ - { - "description": "valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "no dependency", - "data": {"foo": "quux"}, - "valid": true - }, - { - "description": "wrong type", - "data": {"foo": "quux", "bar": 2}, - "valid": false - }, - { - "description": "wrong type other", - "data": {"foo": 2, "bar": "quux"}, - "valid": false - }, - { - "description": "wrong type both", - "data": {"foo": "quux", "bar": "quux"}, - "valid": false - }, - { - "description": "ignores arrays", - "data": ["bar"], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobar", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "boolean subschemas", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "dependentSchemas": { - "foo": true, - "bar": false - } - }, - "tests": [ - { - "description": "object with property having schema true is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "object with property having schema false is invalid", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "object with both properties is invalid", - "data": {"foo": 1, "bar": 2}, - "valid": false - }, - { - "description": "empty object is valid", - "data": {}, - "valid": true - } - ] - }, - { - "description": "dependencies with escaped characters", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "dependentSchemas": { - "foo\tbar": {"minProperties": 4}, - "foo'bar": {"required": ["foo\"bar"]} - } - }, - "tests": [ - { - "description": "quoted tab", - "data": { - "foo\tbar": 1, - "a": 2, - "b": 3, - "c": 4 - }, - "valid": true - }, - { - "description": "quoted quote", - "data": { - "foo'bar": {"foo\"bar": 1} - }, - "valid": false - }, - { - "description": "quoted tab invalid under dependent schema", - "data": { - "foo\tbar": 1, - "a": 2 - }, - "valid": false - }, - { - "description": "quoted quote invalid under dependent schema", - "data": {"foo'bar": 1}, - "valid": false - } - ] - }, - { - "description": "dependent subschema incompatible with root", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "properties": { - "foo": {} - }, - "dependentSchemas": { - "foo": { - "properties": { - "bar": {} - }, - "additionalProperties": false - } - } - }, - "tests": [ - { - "description": "matches root", - "data": {"foo": 1}, - "valid": false - }, - { - "description": "matches dependency", - "data": {"bar": 1}, - "valid": true - }, - { - "description": "matches both", - "data": {"foo": 1, "bar": 2}, - "valid": false - }, - { - "description": "no dependency", - "data": {"baz": 1}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/dynamicRef.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/dynamicRef.json deleted file mode 100644 index ffa211ba2..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/dynamicRef.json +++ /dev/null @@ -1,815 +0,0 @@ -[ - { - "description": "A $dynamicRef to a $dynamicAnchor in the same schema resource behaves like a normal $ref to an $anchor", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://test.json-schema.org/dynamicRef-dynamicAnchor-same-schema/root", - "type": "array", - "items": { "$dynamicRef": "#items" }, - "$defs": { - "foo": { - "$dynamicAnchor": "items", - "type": "string" - } - } - }, - "tests": [ - { - "description": "An array of strings is valid", - "data": ["foo", "bar"], - "valid": true - }, - { - "description": "An array containing non-strings is invalid", - "data": ["foo", 42], - "valid": false - } - ] - }, - { - "description": "A $dynamicRef to an $anchor in the same schema resource behaves like a normal $ref to an $anchor", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://test.json-schema.org/dynamicRef-anchor-same-schema/root", - "type": "array", - "items": { "$dynamicRef": "#items" }, - "$defs": { - "foo": { - "$anchor": "items", - "type": "string" - } - } - }, - "tests": [ - { - "description": "An array of strings is valid", - "data": ["foo", "bar"], - "valid": true - }, - { - "description": "An array containing non-strings is invalid", - "data": ["foo", 42], - "valid": false - } - ] - }, - { - "description": "A $ref to a $dynamicAnchor in the same schema resource behaves like a normal $ref to an $anchor", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://test.json-schema.org/ref-dynamicAnchor-same-schema/root", - "type": "array", - "items": { "$ref": "#items" }, - "$defs": { - "foo": { - "$dynamicAnchor": "items", - "type": "string" - } - } - }, - "tests": [ - { - "description": "An array of strings is valid", - "data": ["foo", "bar"], - "valid": true - }, - { - "description": "An array containing non-strings is invalid", - "data": ["foo", 42], - "valid": false - } - ] - }, - { - "description": "A $dynamicRef resolves to the first $dynamicAnchor still in scope that is encountered when the schema is evaluated", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://test.json-schema.org/typical-dynamic-resolution/root", - "$ref": "list", - "$defs": { - "foo": { - "$dynamicAnchor": "items", - "type": "string" - }, - "list": { - "$id": "list", - "type": "array", - "items": { "$dynamicRef": "#items" }, - "$defs": { - "items": { - "$comment": "This is only needed to satisfy the bookending requirement", - "$dynamicAnchor": "items" - } - } - } - } - }, - "tests": [ - { - "description": "An array of strings is valid", - "data": ["foo", "bar"], - "valid": true - }, - { - "description": "An array containing non-strings is invalid", - "data": ["foo", 42], - "valid": false - } - ] - }, - { - "description": "A $dynamicRef without anchor in fragment behaves identical to $ref", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://test.json-schema.org/dynamicRef-without-anchor/root", - "$ref": "list", - "$defs": { - "foo": { - "$dynamicAnchor": "items", - "type": "string" - }, - "list": { - "$id": "list", - "type": "array", - "items": { "$dynamicRef": "#/$defs/items" }, - "$defs": { - "items": { - "$comment": "This is only needed to satisfy the bookending requirement", - "$dynamicAnchor": "items", - "type": "number" - } - } - } - } - }, - "tests": [ - { - "description": "An array of strings is invalid", - "data": ["foo", "bar"], - "valid": false - }, - { - "description": "An array of numbers is valid", - "data": [24, 42], - "valid": true - } - ] - }, - { - "description": "A $dynamicRef with intermediate scopes that don't include a matching $dynamicAnchor does not affect dynamic scope resolution", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://test.json-schema.org/dynamic-resolution-with-intermediate-scopes/root", - "$ref": "intermediate-scope", - "$defs": { - "foo": { - "$dynamicAnchor": "items", - "type": "string" - }, - "intermediate-scope": { - "$id": "intermediate-scope", - "$ref": "list" - }, - "list": { - "$id": "list", - "type": "array", - "items": { "$dynamicRef": "#items" }, - "$defs": { - "items": { - "$comment": "This is only needed to satisfy the bookending requirement", - "$dynamicAnchor": "items" - } - } - } - } - }, - "tests": [ - { - "description": "An array of strings is valid", - "data": ["foo", "bar"], - "valid": true - }, - { - "description": "An array containing non-strings is invalid", - "data": ["foo", 42], - "valid": false - } - ] - }, - { - "description": "An $anchor with the same name as a $dynamicAnchor is not used for dynamic scope resolution", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://test.json-schema.org/dynamic-resolution-ignores-anchors/root", - "$ref": "list", - "$defs": { - "foo": { - "$anchor": "items", - "type": "string" - }, - "list": { - "$id": "list", - "type": "array", - "items": { "$dynamicRef": "#items" }, - "$defs": { - "items": { - "$comment": "This is only needed to satisfy the bookending requirement", - "$dynamicAnchor": "items" - } - } - } - } - }, - "tests": [ - { - "description": "Any array is valid", - "data": ["foo", 42], - "valid": true - } - ] - }, - { - "description": "A $dynamicRef without a matching $dynamicAnchor in the same schema resource behaves like a normal $ref to $anchor", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://test.json-schema.org/dynamic-resolution-without-bookend/root", - "$ref": "list", - "$defs": { - "foo": { - "$dynamicAnchor": "items", - "type": "string" - }, - "list": { - "$id": "list", - "type": "array", - "items": { "$dynamicRef": "#items" }, - "$defs": { - "items": { - "$comment": "This is only needed to give the reference somewhere to resolve to when it behaves like $ref", - "$anchor": "items" - } - } - } - } - }, - "tests": [ - { - "description": "Any array is valid", - "data": ["foo", 42], - "valid": true - } - ] - }, - { - "description": "A $dynamicRef with a non-matching $dynamicAnchor in the same schema resource behaves like a normal $ref to $anchor", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://test.json-schema.org/unmatched-dynamic-anchor/root", - "$ref": "list", - "$defs": { - "foo": { - "$dynamicAnchor": "items", - "type": "string" - }, - "list": { - "$id": "list", - "type": "array", - "items": { "$dynamicRef": "#items" }, - "$defs": { - "items": { - "$comment": "This is only needed to give the reference somewhere to resolve to when it behaves like $ref", - "$anchor": "items", - "$dynamicAnchor": "foo" - } - } - } - } - }, - "tests": [ - { - "description": "Any array is valid", - "data": ["foo", 42], - "valid": true - } - ] - }, - { - "description": "A $dynamicRef that initially resolves to a schema with a matching $dynamicAnchor resolves to the first $dynamicAnchor in the dynamic scope", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://test.json-schema.org/relative-dynamic-reference/root", - "$dynamicAnchor": "meta", - "type": "object", - "properties": { - "foo": { "const": "pass" } - }, - "$ref": "extended", - "$defs": { - "extended": { - "$id": "extended", - "$dynamicAnchor": "meta", - "type": "object", - "properties": { - "bar": { "$ref": "bar" } - } - }, - "bar": { - "$id": "bar", - "type": "object", - "properties": { - "baz": { "$dynamicRef": "extended#meta" } - } - } - } - }, - "tests": [ - { - "description": "The recursive part is valid against the root", - "data": { - "foo": "pass", - "bar": { - "baz": { "foo": "pass" } - } - }, - "valid": true - }, - { - "description": "The recursive part is not valid against the root", - "data": { - "foo": "pass", - "bar": { - "baz": { "foo": "fail" } - } - }, - "valid": false - } - ] - }, - { - "description": "A $dynamicRef that initially resolves to a schema without a matching $dynamicAnchor behaves like a normal $ref to $anchor", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://test.json-schema.org/relative-dynamic-reference-without-bookend/root", - "$dynamicAnchor": "meta", - "type": "object", - "properties": { - "foo": { "const": "pass" } - }, - "$ref": "extended", - "$defs": { - "extended": { - "$id": "extended", - "$anchor": "meta", - "type": "object", - "properties": { - "bar": { "$ref": "bar" } - } - }, - "bar": { - "$id": "bar", - "type": "object", - "properties": { - "baz": { "$dynamicRef": "extended#meta" } - } - } - } - }, - "tests": [ - { - "description": "The recursive part doesn't need to validate against the root", - "data": { - "foo": "pass", - "bar": { - "baz": { "foo": "fail" } - } - }, - "valid": true - } - ] - }, - { - "description": "multiple dynamic paths to the $dynamicRef keyword", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://test.json-schema.org/dynamic-ref-with-multiple-paths/main", - "if": { - "properties": { - "kindOfList": { "const": "numbers" } - }, - "required": ["kindOfList"] - }, - "then": { "$ref": "numberList" }, - "else": { "$ref": "stringList" }, - - "$defs": { - "genericList": { - "$id": "genericList", - "properties": { - "list": { - "items": { "$dynamicRef": "#itemType" } - } - }, - "$defs": { - "defaultItemType": { - "$comment": "Only needed to satisfy bookending requirement", - "$dynamicAnchor": "itemType" - } - } - }, - "numberList": { - "$id": "numberList", - "$defs": { - "itemType": { - "$dynamicAnchor": "itemType", - "type": "number" - } - }, - "$ref": "genericList" - }, - "stringList": { - "$id": "stringList", - "$defs": { - "itemType": { - "$dynamicAnchor": "itemType", - "type": "string" - } - }, - "$ref": "genericList" - } - } - }, - "tests": [ - { - "description": "number list with number values", - "data": { - "kindOfList": "numbers", - "list": [1.1] - }, - "valid": true - }, - { - "description": "number list with string values", - "data": { - "kindOfList": "numbers", - "list": ["foo"] - }, - "valid": false - }, - { - "description": "string list with number values", - "data": { - "kindOfList": "strings", - "list": [1.1] - }, - "valid": false - }, - { - "description": "string list with string values", - "data": { - "kindOfList": "strings", - "list": ["foo"] - }, - "valid": true - } - ] - }, - { - "description": "after leaving a dynamic scope, it is not used by a $dynamicRef", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://test.json-schema.org/dynamic-ref-leaving-dynamic-scope/main", - "if": { - "$id": "first_scope", - "$defs": { - "thingy": { - "$comment": "this is first_scope#thingy", - "$dynamicAnchor": "thingy", - "type": "number" - } - } - }, - "then": { - "$id": "second_scope", - "$ref": "start", - "$defs": { - "thingy": { - "$comment": "this is second_scope#thingy, the final destination of the $dynamicRef", - "$dynamicAnchor": "thingy", - "type": "null" - } - } - }, - "$defs": { - "start": { - "$comment": "this is the landing spot from $ref", - "$id": "start", - "$dynamicRef": "inner_scope#thingy" - }, - "thingy": { - "$comment": "this is the first stop for the $dynamicRef", - "$id": "inner_scope", - "$dynamicAnchor": "thingy", - "type": "string" - } - } - }, - "tests": [ - { - "description": "string matches /$defs/thingy, but the $dynamicRef does not stop here", - "data": "a string", - "valid": false - }, - { - "description": "first_scope is not in dynamic scope for the $dynamicRef", - "data": 42, - "valid": false - }, - { - "description": "/then/$defs/thingy is the final stop for the $dynamicRef", - "data": null, - "valid": true - } - ] - }, - { - "description": "strict-tree schema, guards against misspelled properties", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "http://localhost:1234/draft2020-12/strict-tree.json", - "$dynamicAnchor": "node", - - "$ref": "tree.json", - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "instance with misspelled field", - "data": { - "children": [{ - "daat": 1 - }] - }, - "valid": false - }, - { - "description": "instance with correct field", - "data": { - "children": [{ - "data": 1 - }] - }, - "valid": true - } - ] - }, - { - "description": "tests for implementation dynamic anchor and reference link", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "http://localhost:1234/draft2020-12/strict-extendible.json", - "$ref": "extendible-dynamic-ref.json", - "$defs": { - "elements": { - "$dynamicAnchor": "elements", - "properties": { - "a": true - }, - "required": ["a"], - "additionalProperties": false - } - } - }, - "tests": [ - { - "description": "incorrect parent schema", - "data": { - "a": true - }, - "valid": false - }, - { - "description": "incorrect extended schema", - "data": { - "elements": [ - { "b": 1 } - ] - }, - "valid": false - }, - { - "description": "correct extended schema", - "data": { - "elements": [ - { "a": 1 } - ] - }, - "valid": true - } - ] - }, - { - "description": "$ref and $dynamicAnchor are independent of order - $defs first", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "http://localhost:1234/draft2020-12/strict-extendible-allof-defs-first.json", - "allOf": [ - { - "$ref": "extendible-dynamic-ref.json" - }, - { - "$defs": { - "elements": { - "$dynamicAnchor": "elements", - "properties": { - "a": true - }, - "required": ["a"], - "additionalProperties": false - } - } - } - ] - }, - "tests": [ - { - "description": "incorrect parent schema", - "data": { - "a": true - }, - "valid": false - }, - { - "description": "incorrect extended schema", - "data": { - "elements": [ - { "b": 1 } - ] - }, - "valid": false - }, - { - "description": "correct extended schema", - "data": { - "elements": [ - { "a": 1 } - ] - }, - "valid": true - } - ] - }, - { - "description": "$ref and $dynamicAnchor are independent of order - $ref first", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "http://localhost:1234/draft2020-12/strict-extendible-allof-ref-first.json", - "allOf": [ - { - "$defs": { - "elements": { - "$dynamicAnchor": "elements", - "properties": { - "a": true - }, - "required": ["a"], - "additionalProperties": false - } - } - }, - { - "$ref": "extendible-dynamic-ref.json" - } - ] - }, - "tests": [ - { - "description": "incorrect parent schema", - "data": { - "a": true - }, - "valid": false - }, - { - "description": "incorrect extended schema", - "data": { - "elements": [ - { "b": 1 } - ] - }, - "valid": false - }, - { - "description": "correct extended schema", - "data": { - "elements": [ - { "a": 1 } - ] - }, - "valid": true - } - ] - }, - { - "description": "$ref to $dynamicRef finds detached $dynamicAnchor", - "schema": { - "$ref": "http://localhost:1234/draft2020-12/detached-dynamicref.json#/$defs/foo" - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "non-number is invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "$dynamicRef points to a boolean schema", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$defs": { - "true": true, - "false": false - }, - "properties": { - "true": { - "$dynamicRef": "#/$defs/true" - }, - "false": { - "$dynamicRef": "#/$defs/false" - } - } - }, - "tests": [ - { - "description": "follow $dynamicRef to a true schema", - "data": { "true": 1 }, - "valid": true - }, - { - "description": "follow $dynamicRef to a false schema", - "data": { "false": 1 }, - "valid": false - } - ] - }, - { - "description": "$dynamicRef skips over intermediate resources - direct reference", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/main", - "type": "object", - "properties": { - "bar-item": { - "$ref": "item" - } - }, - "$defs": { - "bar": { - "$id": "bar", - "type": "array", - "items": { - "$ref": "item" - }, - "$defs": { - "item": { - "$id": "item", - "type": "object", - "properties": { - "content": { - "$dynamicRef": "#content" - } - }, - "$defs": { - "defaultContent": { - "$dynamicAnchor": "content", - "type": "integer" - } - } - }, - "content": { - "$dynamicAnchor": "content", - "type": "string" - } - } - } - } - }, - "tests": [ - { - "description": "integer property passes", - "data": { "bar-item": { "content": 42 } }, - "valid": true - }, - { - "description": "string property fails", - "data": { "bar-item": { "content": "value" } }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/enum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/enum.json deleted file mode 100644 index c8f35eacf..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/enum.json +++ /dev/null @@ -1,358 +0,0 @@ -[ - { - "description": "simple enum validation", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "enum": [1, 2, 3] - }, - "tests": [ - { - "description": "one of the enum is valid", - "data": 1, - "valid": true - }, - { - "description": "something else is invalid", - "data": 4, - "valid": false - } - ] - }, - { - "description": "heterogeneous enum validation", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "enum": [6, "foo", [], true, {"foo": 12}] - }, - "tests": [ - { - "description": "one of the enum is valid", - "data": [], - "valid": true - }, - { - "description": "something else is invalid", - "data": null, - "valid": false - }, - { - "description": "objects are deep compared", - "data": {"foo": false}, - "valid": false - }, - { - "description": "valid object matches", - "data": {"foo": 12}, - "valid": true - }, - { - "description": "extra properties in object is invalid", - "data": {"foo": 12, "boo": 42}, - "valid": false - } - ] - }, - { - "description": "heterogeneous enum-with-null validation", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "enum": [6, null] - }, - "tests": [ - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "number is valid", - "data": 6, - "valid": true - }, - { - "description": "something else is invalid", - "data": "test", - "valid": false - } - ] - }, - { - "description": "enums in properties", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type":"object", - "properties": { - "foo": {"enum":["foo"]}, - "bar": {"enum":["bar"]} - }, - "required": ["bar"] - }, - "tests": [ - { - "description": "both properties are valid", - "data": {"foo":"foo", "bar":"bar"}, - "valid": true - }, - { - "description": "wrong foo value", - "data": {"foo":"foot", "bar":"bar"}, - "valid": false - }, - { - "description": "wrong bar value", - "data": {"foo":"foo", "bar":"bart"}, - "valid": false - }, - { - "description": "missing optional property is valid", - "data": {"bar":"bar"}, - "valid": true - }, - { - "description": "missing required property is invalid", - "data": {"foo":"foo"}, - "valid": false - }, - { - "description": "missing all properties is invalid", - "data": {}, - "valid": false - } - ] - }, - { - "description": "enum with escaped characters", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "enum": ["foo\nbar", "foo\rbar"] - }, - "tests": [ - { - "description": "member 1 is valid", - "data": "foo\nbar", - "valid": true - }, - { - "description": "member 2 is valid", - "data": "foo\rbar", - "valid": true - }, - { - "description": "another string is invalid", - "data": "abc", - "valid": false - } - ] - }, - { - "description": "enum with false does not match 0", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "enum": [false] - }, - "tests": [ - { - "description": "false is valid", - "data": false, - "valid": true - }, - { - "description": "integer zero is invalid", - "data": 0, - "valid": false - }, - { - "description": "float zero is invalid", - "data": 0.0, - "valid": false - } - ] - }, - { - "description": "enum with [false] does not match [0]", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "enum": [[false]] - }, - "tests": [ - { - "description": "[false] is valid", - "data": [false], - "valid": true - }, - { - "description": "[0] is invalid", - "data": [0], - "valid": false - }, - { - "description": "[0.0] is invalid", - "data": [0.0], - "valid": false - } - ] - }, - { - "description": "enum with true does not match 1", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "enum": [true] - }, - "tests": [ - { - "description": "true is valid", - "data": true, - "valid": true - }, - { - "description": "integer one is invalid", - "data": 1, - "valid": false - }, - { - "description": "float one is invalid", - "data": 1.0, - "valid": false - } - ] - }, - { - "description": "enum with [true] does not match [1]", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "enum": [[true]] - }, - "tests": [ - { - "description": "[true] is valid", - "data": [true], - "valid": true - }, - { - "description": "[1] is invalid", - "data": [1], - "valid": false - }, - { - "description": "[1.0] is invalid", - "data": [1.0], - "valid": false - } - ] - }, - { - "description": "enum with 0 does not match false", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "enum": [0] - }, - "tests": [ - { - "description": "false is invalid", - "data": false, - "valid": false - }, - { - "description": "integer zero is valid", - "data": 0, - "valid": true - }, - { - "description": "float zero is valid", - "data": 0.0, - "valid": true - } - ] - }, - { - "description": "enum with [0] does not match [false]", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "enum": [[0]] - }, - "tests": [ - { - "description": "[false] is invalid", - "data": [false], - "valid": false - }, - { - "description": "[0] is valid", - "data": [0], - "valid": true - }, - { - "description": "[0.0] is valid", - "data": [0.0], - "valid": true - } - ] - }, - { - "description": "enum with 1 does not match true", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "enum": [1] - }, - "tests": [ - { - "description": "true is invalid", - "data": true, - "valid": false - }, - { - "description": "integer one is valid", - "data": 1, - "valid": true - }, - { - "description": "float one is valid", - "data": 1.0, - "valid": true - } - ] - }, - { - "description": "enum with [1] does not match [true]", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "enum": [[1]] - }, - "tests": [ - { - "description": "[true] is invalid", - "data": [true], - "valid": false - }, - { - "description": "[1] is valid", - "data": [1], - "valid": true - }, - { - "description": "[1.0] is valid", - "data": [1.0], - "valid": true - } - ] - }, - { - "description": "nul characters in strings", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "enum": [ "hello\u0000there" ] - }, - "tests": [ - { - "description": "match string with nul", - "data": "hello\u0000there", - "valid": true - }, - { - "description": "do not match string lacking nul", - "data": "hellothere", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/exclusiveMaximum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/exclusiveMaximum.json deleted file mode 100644 index 05db23351..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/exclusiveMaximum.json +++ /dev/null @@ -1,31 +0,0 @@ -[ - { - "description": "exclusiveMaximum validation", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "exclusiveMaximum": 3.0 - }, - "tests": [ - { - "description": "below the exclusiveMaximum is valid", - "data": 2.2, - "valid": true - }, - { - "description": "boundary point is invalid", - "data": 3.0, - "valid": false - }, - { - "description": "above the exclusiveMaximum is invalid", - "data": 3.5, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/exclusiveMinimum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/exclusiveMinimum.json deleted file mode 100644 index 00af9d7ff..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/exclusiveMinimum.json +++ /dev/null @@ -1,31 +0,0 @@ -[ - { - "description": "exclusiveMinimum validation", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "exclusiveMinimum": 1.1 - }, - "tests": [ - { - "description": "above the exclusiveMinimum is valid", - "data": 1.2, - "valid": true - }, - { - "description": "boundary point is invalid", - "data": 1.1, - "valid": false - }, - { - "description": "below the exclusiveMinimum is invalid", - "data": 0.6, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/format.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/format.json deleted file mode 100644 index 01adcbda3..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/format.json +++ /dev/null @@ -1,838 +0,0 @@ -[ - { - "description": "email format", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "email" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid email string is only an annotation by default", - "data": "2962", - "valid": true - } - ] - }, - { - "description": "idn-email format", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "idn-email" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid idn-email string is only an annotation by default", - "data": "2962", - "valid": true - } - ] - }, - { - "description": "regex format", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "regex" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid regex string is only an annotation by default", - "data": "^(abc]", - "valid": true - } - ] - }, - { - "description": "ipv4 format", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "ipv4" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid ipv4 string is only an annotation by default", - "data": "127.0.0.0.1", - "valid": true - } - ] - }, - { - "description": "ipv6 format", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "ipv6" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid ipv6 string is only an annotation by default", - "data": "12345::", - "valid": true - } - ] - }, - { - "description": "idn-hostname format", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "idn-hostname" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid idn-hostname string is only an annotation by default", - "data": "〮실례.테스트", - "valid": true - } - ] - }, - { - "description": "hostname format", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "hostname" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid hostname string is only an annotation by default", - "data": "-a-host-name-that-starts-with--", - "valid": true - } - ] - }, - { - "description": "date format", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "date" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid date string is only an annotation by default", - "data": "06/19/1963", - "valid": true - } - ] - }, - { - "description": "date-time format", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "date-time" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid date-time string is only an annotation by default", - "data": "1990-02-31T15:59:60.123-08:00", - "valid": true - } - ] - }, - { - "description": "time format", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "time" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid time string is only an annotation by default", - "data": "08:30:06 PST", - "valid": true - } - ] - }, - { - "description": "json-pointer format", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "json-pointer" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid json-pointer string is only an annotation by default", - "data": "/foo/bar~", - "valid": true - } - ] - }, - { - "description": "relative-json-pointer format", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "relative-json-pointer" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid relative-json-pointer string is only an annotation by default", - "data": "/foo/bar", - "valid": true - } - ] - }, - { - "description": "iri format", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "iri" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid iri string is only an annotation by default", - "data": "http://2001:0db8:85a3:0000:0000:8a2e:0370:7334", - "valid": true - } - ] - }, - { - "description": "iri-reference format", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "iri-reference" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid iri-reference string is only an annotation by default", - "data": "\\\\WINDOWS\\filëßåré", - "valid": true - } - ] - }, - { - "description": "uri format", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "uri" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid uri string is only an annotation by default", - "data": "//foo.bar/?baz=qux#quux", - "valid": true - } - ] - }, - { - "description": "uri-reference format", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "uri-reference" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid uri-reference string is only an annotation by default", - "data": "\\\\WINDOWS\\fileshare", - "valid": true - } - ] - }, - { - "description": "uri-template format", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "uri-template" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid uri-template string is only an annotation by default", - "data": "http://example.com/dictionary/{term:1}/{term", - "valid": true - } - ] - }, - { - "description": "uuid format", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "uuid" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid uuid string is only an annotation by default", - "data": "2eb8aa08-aa98-11ea-b4aa-73b441d1638", - "valid": true - } - ] - }, - { - "description": "duration format", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "duration" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "invalid duration string is only an annotation by default", - "data": "PT1D", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/if-then-else.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/if-then-else.json deleted file mode 100644 index 1c35d7e61..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/if-then-else.json +++ /dev/null @@ -1,268 +0,0 @@ -[ - { - "description": "ignore if without then or else", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "if": { - "const": 0 - } - }, - "tests": [ - { - "description": "valid when valid against lone if", - "data": 0, - "valid": true - }, - { - "description": "valid when invalid against lone if", - "data": "hello", - "valid": true - } - ] - }, - { - "description": "ignore then without if", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "then": { - "const": 0 - } - }, - "tests": [ - { - "description": "valid when valid against lone then", - "data": 0, - "valid": true - }, - { - "description": "valid when invalid against lone then", - "data": "hello", - "valid": true - } - ] - }, - { - "description": "ignore else without if", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "else": { - "const": 0 - } - }, - "tests": [ - { - "description": "valid when valid against lone else", - "data": 0, - "valid": true - }, - { - "description": "valid when invalid against lone else", - "data": "hello", - "valid": true - } - ] - }, - { - "description": "if and then without else", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "if": { - "exclusiveMaximum": 0 - }, - "then": { - "minimum": -10 - } - }, - "tests": [ - { - "description": "valid through then", - "data": -1, - "valid": true - }, - { - "description": "invalid through then", - "data": -100, - "valid": false - }, - { - "description": "valid when if test fails", - "data": 3, - "valid": true - } - ] - }, - { - "description": "if and else without then", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "if": { - "exclusiveMaximum": 0 - }, - "else": { - "multipleOf": 2 - } - }, - "tests": [ - { - "description": "valid when if test passes", - "data": -1, - "valid": true - }, - { - "description": "valid through else", - "data": 4, - "valid": true - }, - { - "description": "invalid through else", - "data": 3, - "valid": false - } - ] - }, - { - "description": "validate against correct branch, then vs else", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "if": { - "exclusiveMaximum": 0 - }, - "then": { - "minimum": -10 - }, - "else": { - "multipleOf": 2 - } - }, - "tests": [ - { - "description": "valid through then", - "data": -1, - "valid": true - }, - { - "description": "invalid through then", - "data": -100, - "valid": false - }, - { - "description": "valid through else", - "data": 4, - "valid": true - }, - { - "description": "invalid through else", - "data": 3, - "valid": false - } - ] - }, - { - "description": "non-interference across combined schemas", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "allOf": [ - { - "if": { - "exclusiveMaximum": 0 - } - }, - { - "then": { - "minimum": -10 - } - }, - { - "else": { - "multipleOf": 2 - } - } - ] - }, - "tests": [ - { - "description": "valid, but would have been invalid through then", - "data": -100, - "valid": true - }, - { - "description": "valid, but would have been invalid through else", - "data": 3, - "valid": true - } - ] - }, - { - "description": "if with boolean schema true", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "if": true, - "then": { "const": "then" }, - "else": { "const": "else" } - }, - "tests": [ - { - "description": "boolean schema true in if always chooses the then path (valid)", - "data": "then", - "valid": true - }, - { - "description": "boolean schema true in if always chooses the then path (invalid)", - "data": "else", - "valid": false - } - ] - }, - { - "description": "if with boolean schema false", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "if": false, - "then": { "const": "then" }, - "else": { "const": "else" } - }, - "tests": [ - { - "description": "boolean schema false in if always chooses the else path (invalid)", - "data": "then", - "valid": false - }, - { - "description": "boolean schema false in if always chooses the else path (valid)", - "data": "else", - "valid": true - } - ] - }, - { - "description": "if appears at the end when serialized (keyword processing sequence)", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "then": { "const": "yes" }, - "else": { "const": "other" }, - "if": { "maxLength": 4 } - }, - "tests": [ - { - "description": "yes redirects to then and passes", - "data": "yes", - "valid": true - }, - { - "description": "other redirects to else and passes", - "data": "other", - "valid": true - }, - { - "description": "no redirects to then and fails", - "data": "no", - "valid": false - }, - { - "description": "invalid redirects to else and fails", - "data": "invalid", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/infinite-loop-detection.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/infinite-loop-detection.json deleted file mode 100644 index 46f157a35..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/infinite-loop-detection.json +++ /dev/null @@ -1,37 +0,0 @@ -[ - { - "description": "evaluating the same schema location against the same data location twice is not a sign of an infinite loop", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$defs": { - "int": { "type": "integer" } - }, - "allOf": [ - { - "properties": { - "foo": { - "$ref": "#/$defs/int" - } - } - }, - { - "additionalProperties": { - "$ref": "#/$defs/int" - } - } - ] - }, - "tests": [ - { - "description": "passing case", - "data": { "foo": 1 }, - "valid": true - }, - { - "description": "failing case", - "data": { "foo": "a string" }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/items.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/items.json deleted file mode 100644 index 6a3e1cf26..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/items.json +++ /dev/null @@ -1,304 +0,0 @@ -[ - { - "description": "a schema given for items", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "items": {"type": "integer"} - }, - "tests": [ - { - "description": "valid items", - "data": [ 1, 2, 3 ], - "valid": true - }, - { - "description": "wrong type of items", - "data": [1, "x"], - "valid": false - }, - { - "description": "ignores non-arrays", - "data": {"foo" : "bar"}, - "valid": true - }, - { - "description": "JavaScript pseudo-array is valid", - "data": { - "0": "invalid", - "length": 1 - }, - "valid": true - } - ] - }, - { - "description": "items with boolean schema (true)", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "items": true - }, - "tests": [ - { - "description": "any array is valid", - "data": [ 1, "foo", true ], - "valid": true - }, - { - "description": "empty array is valid", - "data": [], - "valid": true - } - ] - }, - { - "description": "items with boolean schema (false)", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "items": false - }, - "tests": [ - { - "description": "any non-empty array is invalid", - "data": [ 1, "foo", true ], - "valid": false - }, - { - "description": "empty array is valid", - "data": [], - "valid": true - } - ] - }, - { - "description": "items and subitems", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$defs": { - "item": { - "type": "array", - "items": false, - "prefixItems": [ - { "$ref": "#/$defs/sub-item" }, - { "$ref": "#/$defs/sub-item" } - ] - }, - "sub-item": { - "type": "object", - "required": ["foo"] - } - }, - "type": "array", - "items": false, - "prefixItems": [ - { "$ref": "#/$defs/item" }, - { "$ref": "#/$defs/item" }, - { "$ref": "#/$defs/item" } - ] - }, - "tests": [ - { - "description": "valid items", - "data": [ - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ] - ], - "valid": true - }, - { - "description": "too many items", - "data": [ - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ] - ], - "valid": false - }, - { - "description": "too many sub-items", - "data": [ - [ {"foo": null}, {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ] - ], - "valid": false - }, - { - "description": "wrong item", - "data": [ - {"foo": null}, - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ] - ], - "valid": false - }, - { - "description": "wrong sub-item", - "data": [ - [ {}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ] - ], - "valid": false - }, - { - "description": "fewer items is valid", - "data": [ - [ {"foo": null} ], - [ {"foo": null} ] - ], - "valid": true - } - ] - }, - { - "description": "nested items", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "array", - "items": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "number" - } - } - } - } - }, - "tests": [ - { - "description": "valid nested array", - "data": [[[[1]], [[2],[3]]], [[[4], [5], [6]]]], - "valid": true - }, - { - "description": "nested array with invalid type", - "data": [[[["1"]], [[2],[3]]], [[[4], [5], [6]]]], - "valid": false - }, - { - "description": "not deep enough", - "data": [[[1], [2],[3]], [[4], [5], [6]]], - "valid": false - } - ] - }, - { - "description": "prefixItems with no additional items allowed", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "prefixItems": [{}, {}, {}], - "items": false - }, - "tests": [ - { - "description": "empty array", - "data": [ ], - "valid": true - }, - { - "description": "fewer number of items present (1)", - "data": [ 1 ], - "valid": true - }, - { - "description": "fewer number of items present (2)", - "data": [ 1, 2 ], - "valid": true - }, - { - "description": "equal number of items present", - "data": [ 1, 2, 3 ], - "valid": true - }, - { - "description": "additional items are not permitted", - "data": [ 1, 2, 3, 4 ], - "valid": false - } - ] - }, - { - "description": "items does not look in applicators, valid case", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "allOf": [ - { "prefixItems": [ { "minimum": 3 } ] } - ], - "items": { "minimum": 5 } - }, - "tests": [ - { - "description": "prefixItems in allOf does not constrain items, invalid case", - "data": [ 3, 5 ], - "valid": false - }, - { - "description": "prefixItems in allOf does not constrain items, valid case", - "data": [ 5, 5 ], - "valid": true - } - ] - }, - { - "description": "prefixItems validation adjusts the starting index for items", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "prefixItems": [ { "type": "string" } ], - "items": { "type": "integer" } - }, - "tests": [ - { - "description": "valid items", - "data": [ "x", 2, 3 ], - "valid": true - }, - { - "description": "wrong type of second item", - "data": [ "x", "y" ], - "valid": false - } - ] - }, - { - "description": "items with heterogeneous array", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "prefixItems": [{}], - "items": false - }, - "tests": [ - { - "description": "heterogeneous invalid instance", - "data": [ "foo", "bar", 37 ], - "valid": false - }, - { - "description": "valid instance", - "data": [ null ], - "valid": true - } - ] - }, - { - "description": "items with null instance elements", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "items": { - "type": "null" - } - }, - "tests": [ - { - "description": "allows null elements", - "data": [ null ], - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/maxContains.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/maxContains.json deleted file mode 100644 index 8cd3ca741..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/maxContains.json +++ /dev/null @@ -1,102 +0,0 @@ -[ - { - "description": "maxContains without contains is ignored", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "maxContains": 1 - }, - "tests": [ - { - "description": "one item valid against lone maxContains", - "data": [ 1 ], - "valid": true - }, - { - "description": "two items still valid against lone maxContains", - "data": [ 1, 2 ], - "valid": true - } - ] - }, - { - "description": "maxContains with contains", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "contains": {"const": 1}, - "maxContains": 1 - }, - "tests": [ - { - "description": "empty data", - "data": [ ], - "valid": false - }, - { - "description": "all elements match, valid maxContains", - "data": [ 1 ], - "valid": true - }, - { - "description": "all elements match, invalid maxContains", - "data": [ 1, 1 ], - "valid": false - }, - { - "description": "some elements match, valid maxContains", - "data": [ 1, 2 ], - "valid": true - }, - { - "description": "some elements match, invalid maxContains", - "data": [ 1, 2, 1 ], - "valid": false - } - ] - }, - { - "description": "maxContains with contains, value with a decimal", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "contains": {"const": 1}, - "maxContains": 1.0 - }, - "tests": [ - { - "description": "one element matches, valid maxContains", - "data": [ 1 ], - "valid": true - }, - { - "description": "too many elements match, invalid maxContains", - "data": [ 1, 1 ], - "valid": false - } - ] - }, - { - "description": "minContains < maxContains", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "contains": {"const": 1}, - "minContains": 1, - "maxContains": 3 - }, - "tests": [ - { - "description": "actual < minContains < maxContains", - "data": [ ], - "valid": false - }, - { - "description": "minContains < actual < maxContains", - "data": [ 1, 1 ], - "valid": true - }, - { - "description": "minContains < maxContains < actual", - "data": [ 1, 1, 1, 1 ], - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/maxItems.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/maxItems.json deleted file mode 100644 index f6a6b7c9a..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/maxItems.json +++ /dev/null @@ -1,50 +0,0 @@ -[ - { - "description": "maxItems validation", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "maxItems": 2 - }, - "tests": [ - { - "description": "shorter is valid", - "data": [1], - "valid": true - }, - { - "description": "exact length is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "too long is invalid", - "data": [1, 2, 3], - "valid": false - }, - { - "description": "ignores non-arrays", - "data": "foobar", - "valid": true - } - ] - }, - { - "description": "maxItems validation with a decimal", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "maxItems": 2.0 - }, - "tests": [ - { - "description": "shorter is valid", - "data": [1], - "valid": true - }, - { - "description": "too long is invalid", - "data": [1, 2, 3], - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/maxLength.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/maxLength.json deleted file mode 100644 index 7462726d7..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/maxLength.json +++ /dev/null @@ -1,55 +0,0 @@ -[ - { - "description": "maxLength validation", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "maxLength": 2 - }, - "tests": [ - { - "description": "shorter is valid", - "data": "f", - "valid": true - }, - { - "description": "exact length is valid", - "data": "fo", - "valid": true - }, - { - "description": "too long is invalid", - "data": "foo", - "valid": false - }, - { - "description": "ignores non-strings", - "data": 100, - "valid": true - }, - { - "description": "two graphemes is long enough", - "data": "\uD83D\uDCA9\uD83D\uDCA9", - "valid": true - } - ] - }, - { - "description": "maxLength validation with a decimal", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "maxLength": 2.0 - }, - "tests": [ - { - "description": "shorter is valid", - "data": "f", - "valid": true - }, - { - "description": "too long is invalid", - "data": "foo", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/maxProperties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/maxProperties.json deleted file mode 100644 index 73ae7316f..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/maxProperties.json +++ /dev/null @@ -1,79 +0,0 @@ -[ - { - "description": "maxProperties validation", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "maxProperties": 2 - }, - "tests": [ - { - "description": "shorter is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "exact length is valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "too long is invalid", - "data": {"foo": 1, "bar": 2, "baz": 3}, - "valid": false - }, - { - "description": "ignores arrays", - "data": [1, 2, 3], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobar", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "maxProperties validation with a decimal", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "maxProperties": 2.0 - }, - "tests": [ - { - "description": "shorter is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "too long is invalid", - "data": {"foo": 1, "bar": 2, "baz": 3}, - "valid": false - } - ] - }, - { - "description": "maxProperties = 0 means the object is empty", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "maxProperties": 0 - }, - "tests": [ - { - "description": "no properties is valid", - "data": {}, - "valid": true - }, - { - "description": "one property is invalid", - "data": { "foo": 1 }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/maximum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/maximum.json deleted file mode 100644 index b99a541ea..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/maximum.json +++ /dev/null @@ -1,60 +0,0 @@ -[ - { - "description": "maximum validation", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "maximum": 3.0 - }, - "tests": [ - { - "description": "below the maximum is valid", - "data": 2.6, - "valid": true - }, - { - "description": "boundary point is valid", - "data": 3.0, - "valid": true - }, - { - "description": "above the maximum is invalid", - "data": 3.5, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - }, - { - "description": "maximum validation with unsigned integer", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "maximum": 300 - }, - "tests": [ - { - "description": "below the maximum is invalid", - "data": 299.97, - "valid": true - }, - { - "description": "boundary point integer is valid", - "data": 300, - "valid": true - }, - { - "description": "boundary point float is valid", - "data": 300.00, - "valid": true - }, - { - "description": "above the maximum is invalid", - "data": 300.5, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/minContains.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/minContains.json deleted file mode 100644 index ee72d7d62..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/minContains.json +++ /dev/null @@ -1,224 +0,0 @@ -[ - { - "description": "minContains without contains is ignored", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "minContains": 1 - }, - "tests": [ - { - "description": "one item valid against lone minContains", - "data": [ 1 ], - "valid": true - }, - { - "description": "zero items still valid against lone minContains", - "data": [], - "valid": true - } - ] - }, - { - "description": "minContains=1 with contains", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "contains": {"const": 1}, - "minContains": 1 - }, - "tests": [ - { - "description": "empty data", - "data": [ ], - "valid": false - }, - { - "description": "no elements match", - "data": [ 2 ], - "valid": false - }, - { - "description": "single element matches, valid minContains", - "data": [ 1 ], - "valid": true - }, - { - "description": "some elements match, valid minContains", - "data": [ 1, 2 ], - "valid": true - }, - { - "description": "all elements match, valid minContains", - "data": [ 1, 1 ], - "valid": true - } - ] - }, - { - "description": "minContains=2 with contains", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "contains": {"const": 1}, - "minContains": 2 - }, - "tests": [ - { - "description": "empty data", - "data": [ ], - "valid": false - }, - { - "description": "all elements match, invalid minContains", - "data": [ 1 ], - "valid": false - }, - { - "description": "some elements match, invalid minContains", - "data": [ 1, 2 ], - "valid": false - }, - { - "description": "all elements match, valid minContains (exactly as needed)", - "data": [ 1, 1 ], - "valid": true - }, - { - "description": "all elements match, valid minContains (more than needed)", - "data": [ 1, 1, 1 ], - "valid": true - }, - { - "description": "some elements match, valid minContains", - "data": [ 1, 2, 1 ], - "valid": true - } - ] - }, - { - "description": "minContains=2 with contains with a decimal value", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "contains": {"const": 1}, - "minContains": 2.0 - }, - "tests": [ - { - "description": "one element matches, invalid minContains", - "data": [ 1 ], - "valid": false - }, - { - "description": "both elements match, valid minContains", - "data": [ 1, 1 ], - "valid": true - } - ] - }, - { - "description": "maxContains = minContains", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "contains": {"const": 1}, - "maxContains": 2, - "minContains": 2 - }, - "tests": [ - { - "description": "empty data", - "data": [ ], - "valid": false - }, - { - "description": "all elements match, invalid minContains", - "data": [ 1 ], - "valid": false - }, - { - "description": "all elements match, invalid maxContains", - "data": [ 1, 1, 1 ], - "valid": false - }, - { - "description": "all elements match, valid maxContains and minContains", - "data": [ 1, 1 ], - "valid": true - } - ] - }, - { - "description": "maxContains < minContains", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "contains": {"const": 1}, - "maxContains": 1, - "minContains": 3 - }, - "tests": [ - { - "description": "empty data", - "data": [ ], - "valid": false - }, - { - "description": "invalid minContains", - "data": [ 1 ], - "valid": false - }, - { - "description": "invalid maxContains", - "data": [ 1, 1, 1 ], - "valid": false - }, - { - "description": "invalid maxContains and minContains", - "data": [ 1, 1 ], - "valid": false - } - ] - }, - { - "description": "minContains = 0", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "contains": {"const": 1}, - "minContains": 0 - }, - "tests": [ - { - "description": "empty data", - "data": [ ], - "valid": true - }, - { - "description": "minContains = 0 makes contains always pass", - "data": [ 2 ], - "valid": true - } - ] - }, - { - "description": "minContains = 0 with maxContains", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "contains": {"const": 1}, - "minContains": 0, - "maxContains": 1 - }, - "tests": [ - { - "description": "empty data", - "data": [ ], - "valid": true - }, - { - "description": "not more than maxContains", - "data": [ 1 ], - "valid": true - }, - { - "description": "too many", - "data": [ 1, 1 ], - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/minItems.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/minItems.json deleted file mode 100644 index 9d6a8b6d2..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/minItems.json +++ /dev/null @@ -1,50 +0,0 @@ -[ - { - "description": "minItems validation", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "minItems": 1 - }, - "tests": [ - { - "description": "longer is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "exact length is valid", - "data": [1], - "valid": true - }, - { - "description": "too short is invalid", - "data": [], - "valid": false - }, - { - "description": "ignores non-arrays", - "data": "", - "valid": true - } - ] - }, - { - "description": "minItems validation with a decimal", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "minItems": 1.0 - }, - "tests": [ - { - "description": "longer is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "too short is invalid", - "data": [], - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/minLength.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/minLength.json deleted file mode 100644 index 5076c5a92..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/minLength.json +++ /dev/null @@ -1,55 +0,0 @@ -[ - { - "description": "minLength validation", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "minLength": 2 - }, - "tests": [ - { - "description": "longer is valid", - "data": "foo", - "valid": true - }, - { - "description": "exact length is valid", - "data": "fo", - "valid": true - }, - { - "description": "too short is invalid", - "data": "f", - "valid": false - }, - { - "description": "ignores non-strings", - "data": 1, - "valid": true - }, - { - "description": "one grapheme is not long enough", - "data": "\uD83D\uDCA9", - "valid": false - } - ] - }, - { - "description": "minLength validation with a decimal", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "minLength": 2.0 - }, - "tests": [ - { - "description": "longer is valid", - "data": "foo", - "valid": true - }, - { - "description": "too short is invalid", - "data": "f", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/minProperties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/minProperties.json deleted file mode 100644 index a753ad35f..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/minProperties.json +++ /dev/null @@ -1,60 +0,0 @@ -[ - { - "description": "minProperties validation", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "minProperties": 1 - }, - "tests": [ - { - "description": "longer is valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "exact length is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "too short is invalid", - "data": {}, - "valid": false - }, - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores strings", - "data": "", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "minProperties validation with a decimal", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "minProperties": 1.0 - }, - "tests": [ - { - "description": "longer is valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "too short is invalid", - "data": {}, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/minimum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/minimum.json deleted file mode 100644 index dc4405278..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/minimum.json +++ /dev/null @@ -1,75 +0,0 @@ -[ - { - "description": "minimum validation", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "minimum": 1.1 - }, - "tests": [ - { - "description": "above the minimum is valid", - "data": 2.6, - "valid": true - }, - { - "description": "boundary point is valid", - "data": 1.1, - "valid": true - }, - { - "description": "below the minimum is invalid", - "data": 0.6, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - }, - { - "description": "minimum validation with signed integer", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "minimum": -2 - }, - "tests": [ - { - "description": "negative above the minimum is valid", - "data": -1, - "valid": true - }, - { - "description": "positive above the minimum is valid", - "data": 0, - "valid": true - }, - { - "description": "boundary point is valid", - "data": -2, - "valid": true - }, - { - "description": "boundary point with float is valid", - "data": -2.0, - "valid": true - }, - { - "description": "float below the minimum is invalid", - "data": -2.0001, - "valid": false - }, - { - "description": "int below the minimum is invalid", - "data": -3, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/multipleOf.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/multipleOf.json deleted file mode 100644 index 92d6979b0..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/multipleOf.json +++ /dev/null @@ -1,97 +0,0 @@ -[ - { - "description": "by int", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "multipleOf": 2 - }, - "tests": [ - { - "description": "int by int", - "data": 10, - "valid": true - }, - { - "description": "int by int fail", - "data": 7, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "by number", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "multipleOf": 1.5 - }, - "tests": [ - { - "description": "zero is multiple of anything", - "data": 0, - "valid": true - }, - { - "description": "4.5 is multiple of 1.5", - "data": 4.5, - "valid": true - }, - { - "description": "35 is not multiple of 1.5", - "data": 35, - "valid": false - } - ] - }, - { - "description": "by small number", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "multipleOf": 0.0001 - }, - "tests": [ - { - "description": "0.0075 is multiple of 0.0001", - "data": 0.0075, - "valid": true - }, - { - "description": "0.00751 is not multiple of 0.0001", - "data": 0.00751, - "valid": false - } - ] - }, - { - "description": "float division = inf", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "integer", "multipleOf": 0.123456789 - }, - "tests": [ - { - "description": "always invalid, but naive implementations may raise an overflow error", - "data": 1e308, - "valid": false - } - ] - }, - { - "description": "small multiple of large integer", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "integer", "multipleOf": 1e-8 - }, - "tests": [ - { - "description": "any integer is a multiple of 1e-8", - "data": 12391239123, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/not.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/not.json deleted file mode 100644 index d0f2b6e84..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/not.json +++ /dev/null @@ -1,301 +0,0 @@ -[ - { - "description": "not", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "not": {"type": "integer"} - }, - "tests": [ - { - "description": "allowed", - "data": "foo", - "valid": true - }, - { - "description": "disallowed", - "data": 1, - "valid": false - } - ] - }, - { - "description": "not multiple types", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "not": {"type": ["integer", "boolean"]} - }, - "tests": [ - { - "description": "valid", - "data": "foo", - "valid": true - }, - { - "description": "mismatch", - "data": 1, - "valid": false - }, - { - "description": "other mismatch", - "data": true, - "valid": false - } - ] - }, - { - "description": "not more complex schema", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "not": { - "type": "object", - "properties": { - "foo": { - "type": "string" - } - } - } - }, - "tests": [ - { - "description": "match", - "data": 1, - "valid": true - }, - { - "description": "other match", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "mismatch", - "data": {"foo": "bar"}, - "valid": false - } - ] - }, - { - "description": "forbidden property", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "properties": { - "foo": { - "not": {} - } - } - }, - "tests": [ - { - "description": "property present", - "data": {"foo": 1, "bar": 2}, - "valid": false - }, - { - "description": "property absent", - "data": {"bar": 1, "baz": 2}, - "valid": true - } - ] - }, - { - "description": "forbid everything with empty schema", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "not": {} - }, - "tests": [ - { - "description": "number is invalid", - "data": 1, - "valid": false - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - }, - { - "description": "boolean true is invalid", - "data": true, - "valid": false - }, - { - "description": "boolean false is invalid", - "data": false, - "valid": false - }, - { - "description": "null is invalid", - "data": null, - "valid": false - }, - { - "description": "object is invalid", - "data": {"foo": "bar"}, - "valid": false - }, - { - "description": "empty object is invalid", - "data": {}, - "valid": false - }, - { - "description": "array is invalid", - "data": ["foo"], - "valid": false - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - } - ] - }, - { - "description": "forbid everything with boolean schema true", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "not": true - }, - "tests": [ - { - "description": "number is invalid", - "data": 1, - "valid": false - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - }, - { - "description": "boolean true is invalid", - "data": true, - "valid": false - }, - { - "description": "boolean false is invalid", - "data": false, - "valid": false - }, - { - "description": "null is invalid", - "data": null, - "valid": false - }, - { - "description": "object is invalid", - "data": {"foo": "bar"}, - "valid": false - }, - { - "description": "empty object is invalid", - "data": {}, - "valid": false - }, - { - "description": "array is invalid", - "data": ["foo"], - "valid": false - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - } - ] - }, - { - "description": "allow everything with boolean schema false", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "not": false - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "string is valid", - "data": "foo", - "valid": true - }, - { - "description": "boolean true is valid", - "data": true, - "valid": true - }, - { - "description": "boolean false is valid", - "data": false, - "valid": true - }, - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "object is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "empty object is valid", - "data": {}, - "valid": true - }, - { - "description": "array is valid", - "data": ["foo"], - "valid": true - }, - { - "description": "empty array is valid", - "data": [], - "valid": true - } - ] - }, - { - "description": "double negation", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "not": { "not": {} } - }, - "tests": [ - { - "description": "any value is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "collect annotations inside a 'not', even if collection is disabled", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "not": { - "$comment": "this subschema must still produce annotations internally, even though the 'not' will ultimately discard them", - "anyOf": [ - true, - { "properties": { "foo": true } } - ], - "unevaluatedProperties": false - } - }, - "tests": [ - { - "description": "unevaluated property", - "data": { "bar": 1 }, - "valid": true - }, - { - "description": "annotations are still collected inside a 'not'", - "data": { "foo": 1 }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/oneOf.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/oneOf.json deleted file mode 100644 index 7a7c7ffe3..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/oneOf.json +++ /dev/null @@ -1,293 +0,0 @@ -[ - { - "description": "oneOf", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "oneOf": [ - { - "type": "integer" - }, - { - "minimum": 2 - } - ] - }, - "tests": [ - { - "description": "first oneOf valid", - "data": 1, - "valid": true - }, - { - "description": "second oneOf valid", - "data": 2.5, - "valid": true - }, - { - "description": "both oneOf valid", - "data": 3, - "valid": false - }, - { - "description": "neither oneOf valid", - "data": 1.5, - "valid": false - } - ] - }, - { - "description": "oneOf with base schema", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "oneOf" : [ - { - "minLength": 2 - }, - { - "maxLength": 4 - } - ] - }, - "tests": [ - { - "description": "mismatch base schema", - "data": 3, - "valid": false - }, - { - "description": "one oneOf valid", - "data": "foobar", - "valid": true - }, - { - "description": "both oneOf valid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "oneOf with boolean schemas, all true", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "oneOf": [true, true, true] - }, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "oneOf with boolean schemas, one true", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "oneOf": [true, false, false] - }, - "tests": [ - { - "description": "any value is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "oneOf with boolean schemas, more than one true", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "oneOf": [true, true, false] - }, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "oneOf with boolean schemas, all false", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "oneOf": [false, false, false] - }, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "oneOf complex types", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "oneOf": [ - { - "properties": { - "bar": {"type": "integer"} - }, - "required": ["bar"] - }, - { - "properties": { - "foo": {"type": "string"} - }, - "required": ["foo"] - } - ] - }, - "tests": [ - { - "description": "first oneOf valid (complex)", - "data": {"bar": 2}, - "valid": true - }, - { - "description": "second oneOf valid (complex)", - "data": {"foo": "baz"}, - "valid": true - }, - { - "description": "both oneOf valid (complex)", - "data": {"foo": "baz", "bar": 2}, - "valid": false - }, - { - "description": "neither oneOf valid (complex)", - "data": {"foo": 2, "bar": "quux"}, - "valid": false - } - ] - }, - { - "description": "oneOf with empty schema", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "oneOf": [ - { "type": "number" }, - {} - ] - }, - "tests": [ - { - "description": "one valid - valid", - "data": "foo", - "valid": true - }, - { - "description": "both valid - invalid", - "data": 123, - "valid": false - } - ] - }, - { - "description": "oneOf with required", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "oneOf": [ - { "required": ["foo", "bar"] }, - { "required": ["foo", "baz"] } - ] - }, - "tests": [ - { - "description": "both invalid - invalid", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "first valid - valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "second valid - valid", - "data": {"foo": 1, "baz": 3}, - "valid": true - }, - { - "description": "both valid - invalid", - "data": {"foo": 1, "bar": 2, "baz" : 3}, - "valid": false - } - ] - }, - { - "description": "oneOf with missing optional property", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "oneOf": [ - { - "properties": { - "bar": true, - "baz": true - }, - "required": ["bar"] - }, - { - "properties": { - "foo": true - }, - "required": ["foo"] - } - ] - }, - "tests": [ - { - "description": "first oneOf valid", - "data": {"bar": 8}, - "valid": true - }, - { - "description": "second oneOf valid", - "data": {"foo": "foo"}, - "valid": true - }, - { - "description": "both oneOf valid", - "data": {"foo": "foo", "bar": 8}, - "valid": false - }, - { - "description": "neither oneOf valid", - "data": {"baz": "quux"}, - "valid": false - } - ] - }, - { - "description": "nested oneOf, to check validation semantics", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "oneOf": [ - { - "oneOf": [ - { - "type": "null" - } - ] - } - ] - }, - "tests": [ - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "anything non-null is invalid", - "data": 123, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/anchor.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/anchor.json deleted file mode 100644 index 6d6713be5..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/anchor.json +++ /dev/null @@ -1,60 +0,0 @@ -[ - { - "description": "$anchor inside an enum is not a real identifier", - "comment": "the implementation must not be confused by an $anchor buried in the enum", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$defs": { - "anchor_in_enum": { - "enum": [ - { - "$anchor": "my_anchor", - "type": "null" - } - ] - }, - "real_identifier_in_schema": { - "$anchor": "my_anchor", - "type": "string" - }, - "zzz_anchor_in_const": { - "const": { - "$anchor": "my_anchor", - "type": "null" - } - } - }, - "anyOf": [ - { "$ref": "#/$defs/anchor_in_enum" }, - { "$ref": "#my_anchor" } - ] - }, - "tests": [ - { - "description": "exact match to enum, and type matches", - "data": { - "$anchor": "my_anchor", - "type": "null" - }, - "valid": true - }, - { - "description": "in implementations that strip $anchor, this may match either $def", - "data": { - "type": "null" - }, - "valid": false - }, - { - "description": "match $ref to $anchor", - "data": "a string to match #/$defs/anchor_in_enum", - "valid": true - }, - { - "description": "no match on enum or $ref to $anchor", - "data": 1, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/bignum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/bignum.json deleted file mode 100644 index d69b29e85..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/bignum.json +++ /dev/null @@ -1,110 +0,0 @@ -[ - { - "description": "integer", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "integer" - }, - "tests": [ - { - "description": "a bignum is an integer", - "data": 12345678910111213141516171819202122232425262728293031, - "valid": true - }, - { - "description": "a negative bignum is an integer", - "data": -12345678910111213141516171819202122232425262728293031, - "valid": true - } - ] - }, - { - "description": "number", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "number" - }, - "tests": [ - { - "description": "a bignum is a number", - "data": 98249283749234923498293171823948729348710298301928331, - "valid": true - }, - { - "description": "a negative bignum is a number", - "data": -98249283749234923498293171823948729348710298301928331, - "valid": true - } - ] - }, - { - "description": "string", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string" - }, - "tests": [ - { - "description": "a bignum is not a string", - "data": 98249283749234923498293171823948729348710298301928331, - "valid": false - } - ] - }, - { - "description": "maximum integer comparison", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "maximum": 18446744073709551615 - }, - "tests": [ - { - "description": "comparison works for high numbers", - "data": 18446744073709551600, - "valid": true - } - ] - }, - { - "description": "float comparison with high precision", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "exclusiveMaximum": 972783798187987123879878123.18878137 - }, - "tests": [ - { - "description": "comparison works for high numbers", - "data": 972783798187987123879878123.188781371, - "valid": false - } - ] - }, - { - "description": "minimum integer comparison", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "minimum": -18446744073709551615 - }, - "tests": [ - { - "description": "comparison works for very negative numbers", - "data": -18446744073709551600, - "valid": true - } - ] - }, - { - "description": "float comparison with high precision on negative numbers", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "exclusiveMinimum": -972783798187987123879878123.18878137 - }, - "tests": [ - { - "description": "comparison works for very negative numbers", - "data": -972783798187987123879878123.188781371, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/cross-draft.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/cross-draft.json deleted file mode 100644 index 5113bd649..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/cross-draft.json +++ /dev/null @@ -1,18 +0,0 @@ -[ - { - "description": "refs to historic drafts are processed as historic drafts", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "array", - "$ref": "http://localhost:1234/draft2019-09/ignore-prefixItems.json" - }, - "tests": [ - { - "description": "first item not a string is valid", - "comment": "if the implementation is not processing the $ref as a 2019-09 schema, this test will fail", - "data": [1, 2, 3], - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/dependencies-compatibility.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/dependencies-compatibility.json deleted file mode 100644 index 47d5bd79d..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/dependencies-compatibility.json +++ /dev/null @@ -1,282 +0,0 @@ -[ - { - "description": "single dependency", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "dependencies": {"bar": ["foo"]} - }, - "tests": [ - { - "description": "neither", - "data": {}, - "valid": true - }, - { - "description": "nondependant", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "with dependency", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "missing dependency", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "ignores arrays", - "data": ["bar"], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobar", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "empty dependents", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "dependencies": {"bar": []} - }, - "tests": [ - { - "description": "empty object", - "data": {}, - "valid": true - }, - { - "description": "object with one property", - "data": {"bar": 2}, - "valid": true - }, - { - "description": "non-object is valid", - "data": 1, - "valid": true - } - ] - }, - { - "description": "multiple dependents required", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "dependencies": {"quux": ["foo", "bar"]} - }, - "tests": [ - { - "description": "neither", - "data": {}, - "valid": true - }, - { - "description": "nondependants", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "with dependencies", - "data": {"foo": 1, "bar": 2, "quux": 3}, - "valid": true - }, - { - "description": "missing dependency", - "data": {"foo": 1, "quux": 2}, - "valid": false - }, - { - "description": "missing other dependency", - "data": {"bar": 1, "quux": 2}, - "valid": false - }, - { - "description": "missing both dependencies", - "data": {"quux": 1}, - "valid": false - } - ] - }, - { - "description": "dependencies with escaped characters", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "dependencies": { - "foo\nbar": ["foo\rbar"], - "foo\"bar": ["foo'bar"] - } - }, - "tests": [ - { - "description": "CRLF", - "data": { - "foo\nbar": 1, - "foo\rbar": 2 - }, - "valid": true - }, - { - "description": "quoted quotes", - "data": { - "foo'bar": 1, - "foo\"bar": 2 - }, - "valid": true - }, - { - "description": "CRLF missing dependent", - "data": { - "foo\nbar": 1, - "foo": 2 - }, - "valid": false - }, - { - "description": "quoted quotes missing dependent", - "data": { - "foo\"bar": 2 - }, - "valid": false - } - ] - }, - { - "description": "single schema dependency", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "dependencies": { - "bar": { - "properties": { - "foo": {"type": "integer"}, - "bar": {"type": "integer"} - } - } - } - }, - "tests": [ - { - "description": "valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "no dependency", - "data": {"foo": "quux"}, - "valid": true - }, - { - "description": "wrong type", - "data": {"foo": "quux", "bar": 2}, - "valid": false - }, - { - "description": "wrong type other", - "data": {"foo": 2, "bar": "quux"}, - "valid": false - }, - { - "description": "wrong type both", - "data": {"foo": "quux", "bar": "quux"}, - "valid": false - }, - { - "description": "ignores arrays", - "data": ["bar"], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobar", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "boolean subschemas", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "dependencies": { - "foo": true, - "bar": false - } - }, - "tests": [ - { - "description": "object with property having schema true is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "object with property having schema false is invalid", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "object with both properties is invalid", - "data": {"foo": 1, "bar": 2}, - "valid": false - }, - { - "description": "empty object is valid", - "data": {}, - "valid": true - } - ] - }, - { - "description": "schema dependencies with escaped characters", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "dependencies": { - "foo\tbar": {"minProperties": 4}, - "foo'bar": {"required": ["foo\"bar"]} - } - }, - "tests": [ - { - "description": "quoted tab", - "data": { - "foo\tbar": 1, - "a": 2, - "b": 3, - "c": 4 - }, - "valid": true - }, - { - "description": "quoted quote", - "data": { - "foo'bar": {"foo\"bar": 1} - }, - "valid": false - }, - { - "description": "quoted tab invalid under dependent schema", - "data": { - "foo\tbar": 1, - "a": 2 - }, - "valid": false - }, - { - "description": "quoted quote invalid under dependent schema", - "data": {"foo'bar": 1}, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/dynamicRef.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/dynamicRef.json deleted file mode 100644 index 7e63f209a..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/dynamicRef.json +++ /dev/null @@ -1,56 +0,0 @@ -[ - { - "description": "$dynamicRef skips over intermediate resources - pointer reference across resource boundary", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://test.json-schema.org/dynamic-ref-skips-intermediate-resource/optional/main", - "type": "object", - "properties": { - "bar-item": { - "$ref": "bar#/$defs/item" - } - }, - "$defs": { - "bar": { - "$id": "bar", - "type": "array", - "items": { - "$ref": "item" - }, - "$defs": { - "item": { - "$id": "item", - "type": "object", - "properties": { - "content": { - "$dynamicRef": "#content" - } - }, - "$defs": { - "defaultContent": { - "$dynamicAnchor": "content", - "type": "integer" - } - } - }, - "content": { - "$dynamicAnchor": "content", - "type": "string" - } - } - } - } - }, - "tests": [ - { - "description": "integer property passes", - "data": { "bar-item": { "content": 42 } }, - "valid": true - }, - { - "description": "string property fails", - "data": { "bar-item": { "content": "value" } }, - "valid": false - } - ] - }] \ No newline at end of file diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/ecmascript-regex.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/ecmascript-regex.json deleted file mode 100644 index 23b962e4b..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/ecmascript-regex.json +++ /dev/null @@ -1,596 +0,0 @@ -[ - { - "description": "ECMA 262 regex $ does not match trailing newline", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "pattern": "^abc$" - }, - "tests": [ - { - "description": "matches in Python, but not in ECMA 262", - "data": "abc\\n", - "valid": false - }, - { - "description": "matches", - "data": "abc", - "valid": true - } - ] - }, - { - "description": "ECMA 262 regex converts \\t to horizontal tab", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "pattern": "^\\t$" - }, - "tests": [ - { - "description": "does not match", - "data": "\\t", - "valid": false - }, - { - "description": "matches", - "data": "\u0009", - "valid": true - } - ] - }, - { - "description": "ECMA 262 regex escapes control codes with \\c and upper letter", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "pattern": "^\\cC$" - }, - "tests": [ - { - "description": "does not match", - "data": "\\cC", - "valid": false - }, - { - "description": "matches", - "data": "\u0003", - "valid": true - } - ] - }, - { - "description": "ECMA 262 regex escapes control codes with \\c and lower letter", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "pattern": "^\\cc$" - }, - "tests": [ - { - "description": "does not match", - "data": "\\cc", - "valid": false - }, - { - "description": "matches", - "data": "\u0003", - "valid": true - } - ] - }, - { - "description": "ECMA 262 \\d matches ascii digits only", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "pattern": "^\\d$" - }, - "tests": [ - { - "description": "ASCII zero matches", - "data": "0", - "valid": true - }, - { - "description": "NKO DIGIT ZERO does not match (unlike e.g. Python)", - "data": "߀", - "valid": false - }, - { - "description": "NKO DIGIT ZERO (as \\u escape) does not match", - "data": "\u07c0", - "valid": false - } - ] - }, - { - "description": "ECMA 262 \\D matches everything but ascii digits", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "pattern": "^\\D$" - }, - "tests": [ - { - "description": "ASCII zero does not match", - "data": "0", - "valid": false - }, - { - "description": "NKO DIGIT ZERO matches (unlike e.g. Python)", - "data": "߀", - "valid": true - }, - { - "description": "NKO DIGIT ZERO (as \\u escape) matches", - "data": "\u07c0", - "valid": true - } - ] - }, - { - "description": "ECMA 262 \\w matches ascii letters only", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "pattern": "^\\w$" - }, - "tests": [ - { - "description": "ASCII 'a' matches", - "data": "a", - "valid": true - }, - { - "description": "latin-1 e-acute does not match (unlike e.g. Python)", - "data": "é", - "valid": false - } - ] - }, - { - "description": "ECMA 262 \\W matches everything but ascii letters", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "pattern": "^\\W$" - }, - "tests": [ - { - "description": "ASCII 'a' does not match", - "data": "a", - "valid": false - }, - { - "description": "latin-1 e-acute matches (unlike e.g. Python)", - "data": "é", - "valid": true - } - ] - }, - { - "description": "ECMA 262 \\s matches whitespace", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "pattern": "^\\s$" - }, - "tests": [ - { - "description": "ASCII space matches", - "data": " ", - "valid": true - }, - { - "description": "Character tabulation matches", - "data": "\t", - "valid": true - }, - { - "description": "Line tabulation matches", - "data": "\u000b", - "valid": true - }, - { - "description": "Form feed matches", - "data": "\u000c", - "valid": true - }, - { - "description": "latin-1 non-breaking-space matches", - "data": "\u00a0", - "valid": true - }, - { - "description": "zero-width whitespace matches", - "data": "\ufeff", - "valid": true - }, - { - "description": "line feed matches (line terminator)", - "data": "\u000a", - "valid": true - }, - { - "description": "paragraph separator matches (line terminator)", - "data": "\u2029", - "valid": true - }, - { - "description": "EM SPACE matches (Space_Separator)", - "data": "\u2003", - "valid": true - }, - { - "description": "Non-whitespace control does not match", - "data": "\u0001", - "valid": false - }, - { - "description": "Non-whitespace does not match", - "data": "\u2013", - "valid": false - } - ] - }, - { - "description": "ECMA 262 \\S matches everything but whitespace", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string", - "pattern": "^\\S$" - }, - "tests": [ - { - "description": "ASCII space does not match", - "data": " ", - "valid": false - }, - { - "description": "Character tabulation does not match", - "data": "\t", - "valid": false - }, - { - "description": "Line tabulation does not match", - "data": "\u000b", - "valid": false - }, - { - "description": "Form feed does not match", - "data": "\u000c", - "valid": false - }, - { - "description": "latin-1 non-breaking-space does not match", - "data": "\u00a0", - "valid": false - }, - { - "description": "zero-width whitespace does not match", - "data": "\ufeff", - "valid": false - }, - { - "description": "line feed does not match (line terminator)", - "data": "\u000a", - "valid": false - }, - { - "description": "paragraph separator does not match (line terminator)", - "data": "\u2029", - "valid": false - }, - { - "description": "EM SPACE does not match (Space_Separator)", - "data": "\u2003", - "valid": false - }, - { - "description": "Non-whitespace control matches", - "data": "\u0001", - "valid": true - }, - { - "description": "Non-whitespace matches", - "data": "\u2013", - "valid": true - } - ] - }, - { - "description": "patterns always use unicode semantics with pattern", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "pattern": "\\p{Letter}cole" - }, - "tests": [ - { - "description": "ascii character in json string", - "data": "Les hivers de mon enfance etaient des saisons longues, longues. Nous vivions en trois lieux: l'ecole, l'eglise et la patinoire; mais la vraie vie etait sur la patinoire.", - "valid": true - }, - { - "description": "literal unicode character in json string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": true - }, - { - "description": "unicode character in hex format in string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'\u00e9cole, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": true - }, - { - "description": "unicode matching is case-sensitive", - "data": "LES HIVERS DE MON ENFANCE ÉTAIENT DES SAISONS LONGUES, LONGUES. NOUS VIVIONS EN TROIS LIEUX: L'ÉCOLE, L'ÉGLISE ET LA PATINOIRE; MAIS LA VRAIE VIE ÉTAIT SUR LA PATINOIRE.", - "valid": false - } - ] - }, - { - "description": "\\w in patterns matches [A-Za-z0-9_], not unicode letters", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "pattern": "\\wcole" - }, - "tests": [ - { - "description": "ascii character in json string", - "data": "Les hivers de mon enfance etaient des saisons longues, longues. Nous vivions en trois lieux: l'ecole, l'eglise et la patinoire; mais la vraie vie etait sur la patinoire.", - "valid": true - }, - { - "description": "literal unicode character in json string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": false - }, - { - "description": "unicode character in hex format in string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'\u00e9cole, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": false - }, - { - "description": "unicode matching is case-sensitive", - "data": "LES HIVERS DE MON ENFANCE ÉTAIENT DES SAISONS LONGUES, LONGUES. NOUS VIVIONS EN TROIS LIEUX: L'ÉCOLE, L'ÉGLISE ET LA PATINOIRE; MAIS LA VRAIE VIE ÉTAIT SUR LA PATINOIRE.", - "valid": false - } - ] - }, - { - "description": "pattern with ASCII ranges", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "pattern": "[a-z]cole" - }, - "tests": [ - { - "description": "literal unicode character in json string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": false - }, - { - "description": "unicode character in hex format in string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'\u00e9cole, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": false - }, - { - "description": "ascii characters match", - "data": "Les hivers de mon enfance etaient des saisons longues, longues. Nous vivions en trois lieux: l'ecole, l'eglise et la patinoire; mais la vraie vie etait sur la patinoire.", - "valid": true - } - ] - }, - { - "description": "\\d in pattern matches [0-9], not unicode digits", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "pattern": "^\\d+$" - }, - "tests": [ - { - "description": "ascii digits", - "data": "42", - "valid": true - }, - { - "description": "ascii non-digits", - "data": "-%#", - "valid": false - }, - { - "description": "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)", - "data": "৪২", - "valid": false - } - ] - }, - { - "description": "\\a is not an ECMA 262 control escape", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "https://json-schema.org/draft/2020-12/schema" - }, - "tests": [ - { - "description": "when used as a pattern", - "data": { "pattern": "\\a" }, - "valid": false - } - ] - }, - { - "description": "pattern with non-ASCII digits", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "pattern": "^\\p{digit}+$" - }, - "tests": [ - { - "description": "ascii digits", - "data": "42", - "valid": true - }, - { - "description": "ascii non-digits", - "data": "-%#", - "valid": false - }, - { - "description": "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)", - "data": "৪২", - "valid": true - } - ] - }, - { - "description": "patterns always use unicode semantics with patternProperties", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "patternProperties": { - "\\p{Letter}cole": true - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "ascii character in json string", - "data": { "l'ecole": "pas de vraie vie" }, - "valid": true - }, - { - "description": "literal unicode character in json string", - "data": { "l'école": "pas de vraie vie" }, - "valid": true - }, - { - "description": "unicode character in hex format in string", - "data": { "l'\u00e9cole": "pas de vraie vie" }, - "valid": true - }, - { - "description": "unicode matching is case-sensitive", - "data": { "L'ÉCOLE": "PAS DE VRAIE VIE" }, - "valid": false - } - ] - }, - { - "description": "\\w in patternProperties matches [A-Za-z0-9_], not unicode letters", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "patternProperties": { - "\\wcole": true - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "ascii character in json string", - "data": { "l'ecole": "pas de vraie vie" }, - "valid": true - }, - { - "description": "literal unicode character in json string", - "data": { "l'école": "pas de vraie vie" }, - "valid": false - }, - { - "description": "unicode character in hex format in string", - "data": { "l'\u00e9cole": "pas de vraie vie" }, - "valid": false - }, - { - "description": "unicode matching is case-sensitive", - "data": { "L'ÉCOLE": "PAS DE VRAIE VIE" }, - "valid": false - } - ] - }, - { - "description": "patternProperties with ASCII ranges", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "patternProperties": { - "[a-z]cole": true - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "literal unicode character in json string", - "data": { "l'école": "pas de vraie vie" }, - "valid": false - }, - { - "description": "unicode character in hex format in string", - "data": { "l'\u00e9cole": "pas de vraie vie" }, - "valid": false - }, - { - "description": "ascii characters match", - "data": { "l'ecole": "pas de vraie vie" }, - "valid": true - } - ] - }, - { - "description": "\\d in patternProperties matches [0-9], not unicode digits", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "patternProperties": { - "^\\d+$": true - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "ascii digits", - "data": { "42": "life, the universe, and everything" }, - "valid": true - }, - { - "description": "ascii non-digits", - "data": { "-%#": "spending the year dead for tax reasons" }, - "valid": false - }, - { - "description": "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)", - "data": { "৪২": "khajit has wares if you have coin" }, - "valid": false - } - ] - }, - { - "description": "patternProperties with non-ASCII digits", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "patternProperties": { - "^\\p{digit}+$": true - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "ascii digits", - "data": { "42": "life, the universe, and everything" }, - "valid": true - }, - { - "description": "ascii non-digits", - "data": { "-%#": "spending the year dead for tax reasons" }, - "valid": false - }, - { - "description": "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)", - "data": { "৪২": "khajit has wares if you have coin" }, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/float-overflow.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/float-overflow.json deleted file mode 100644 index f5ae8b18f..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/float-overflow.json +++ /dev/null @@ -1,17 +0,0 @@ -[ - { - "description": "all integers are multiples of 0.5, if overflow is handled", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "integer", - "multipleOf": 0.5 - }, - "tests": [ - { - "description": "valid if optional overflow handling is implemented", - "data": 1e308, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format-assertion.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format-assertion.json deleted file mode 100644 index 034003708..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format-assertion.json +++ /dev/null @@ -1,42 +0,0 @@ -[ - { - "description": "schema that uses custom metaschema with format-assertion: false", - "schema": { - "$id": "https://schema/using/format-assertion/false", - "$schema": "http://localhost:1234/draft2020-12/format-assertion-false.json", - "format": "ipv4" - }, - "tests": [ - { - "description": "format-assertion: false: valid string", - "data": "127.0.0.1", - "valid": true - }, - { - "description": "format-assertion: false: invalid string", - "data": "not-an-ipv4", - "valid": false - } - ] - }, - { - "description": "schema that uses custom metaschema with format-assertion: true", - "schema": { - "$id": "https://schema/using/format-assertion/true", - "$schema": "http://localhost:1234/draft2020-12/format-assertion-true.json", - "format": "ipv4" - }, - "tests": [ - { - "description": "format-assertion: true: valid string", - "data": "127.0.0.1", - "valid": true - }, - { - "description": "format-assertion: true: invalid string", - "data": "not-an-ipv4", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/date-time.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/date-time.json deleted file mode 100644 index 8783d732a..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/date-time.json +++ /dev/null @@ -1,136 +0,0 @@ -[ - { - "description": "validation of date-time strings", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "date-time" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid date-time string", - "data": "1963-06-19T08:30:06.283185Z", - "valid": true - }, - { - "description": "a valid date-time string without second fraction", - "data": "1963-06-19T08:30:06Z", - "valid": true - }, - { - "description": "a valid date-time string with plus offset", - "data": "1937-01-01T12:00:27.87+00:20", - "valid": true - }, - { - "description": "a valid date-time string with minus offset", - "data": "1990-12-31T15:59:50.123-08:00", - "valid": true - }, - { - "description": "a valid date-time with a leap second, UTC", - "data": "1998-12-31T23:59:60Z", - "valid": true - }, - { - "description": "a valid date-time with a leap second, with minus offset", - "data": "1998-12-31T15:59:60.123-08:00", - "valid": true - }, - { - "description": "an invalid date-time past leap second, UTC", - "data": "1998-12-31T23:59:61Z", - "valid": false - }, - { - "description": "an invalid date-time with leap second on a wrong minute, UTC", - "data": "1998-12-31T23:58:60Z", - "valid": false - }, - { - "description": "an invalid date-time with leap second on a wrong hour, UTC", - "data": "1998-12-31T22:59:60Z", - "valid": false - }, - { - "description": "an invalid day in date-time string", - "data": "1990-02-31T15:59:59.123-08:00", - "valid": false - }, - { - "description": "an invalid offset in date-time string", - "data": "1990-12-31T15:59:59-24:00", - "valid": false - }, - { - "description": "an invalid closing Z after time-zone offset", - "data": "1963-06-19T08:30:06.28123+01:00Z", - "valid": false - }, - { - "description": "an invalid date-time string", - "data": "06/19/1963 08:30:06 PST", - "valid": false - }, - { - "description": "case-insensitive T and Z", - "data": "1963-06-19t08:30:06.283185z", - "valid": true - }, - { - "description": "only RFC3339 not all of ISO 8601 are valid", - "data": "2013-350T01:01:01", - "valid": false - }, - { - "description": "invalid non-padded month dates", - "data": "1963-6-19T08:30:06.283185Z", - "valid": false - }, - { - "description": "invalid non-padded day dates", - "data": "1963-06-1T08:30:06.283185Z", - "valid": false - }, - { - "description": "invalid non-ASCII '৪' (a Bengali 4) in date portion", - "data": "1963-06-1৪T00:00:00Z", - "valid": false - }, - { - "description": "invalid non-ASCII '৪' (a Bengali 4) in time portion", - "data": "1963-06-11T0৪:00:00Z", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/date.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/date.json deleted file mode 100644 index dfb1c80ad..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/date.json +++ /dev/null @@ -1,246 +0,0 @@ -[ - { - "description": "validation of date strings", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "date" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid date string", - "data": "1963-06-19", - "valid": true - }, - { - "description": "a valid date string with 31 days in January", - "data": "2020-01-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in January", - "data": "2020-01-32", - "valid": false - }, - { - "description": "a valid date string with 28 days in February (normal)", - "data": "2021-02-28", - "valid": true - }, - { - "description": "a invalid date string with 29 days in February (normal)", - "data": "2021-02-29", - "valid": false - }, - { - "description": "a valid date string with 29 days in February (leap)", - "data": "2020-02-29", - "valid": true - }, - { - "description": "a invalid date string with 30 days in February (leap)", - "data": "2020-02-30", - "valid": false - }, - { - "description": "a valid date string with 31 days in March", - "data": "2020-03-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in March", - "data": "2020-03-32", - "valid": false - }, - { - "description": "a valid date string with 30 days in April", - "data": "2020-04-30", - "valid": true - }, - { - "description": "a invalid date string with 31 days in April", - "data": "2020-04-31", - "valid": false - }, - { - "description": "a valid date string with 31 days in May", - "data": "2020-05-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in May", - "data": "2020-05-32", - "valid": false - }, - { - "description": "a valid date string with 30 days in June", - "data": "2020-06-30", - "valid": true - }, - { - "description": "a invalid date string with 31 days in June", - "data": "2020-06-31", - "valid": false - }, - { - "description": "a valid date string with 31 days in July", - "data": "2020-07-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in July", - "data": "2020-07-32", - "valid": false - }, - { - "description": "a valid date string with 31 days in August", - "data": "2020-08-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in August", - "data": "2020-08-32", - "valid": false - }, - { - "description": "a valid date string with 30 days in September", - "data": "2020-09-30", - "valid": true - }, - { - "description": "a invalid date string with 31 days in September", - "data": "2020-09-31", - "valid": false - }, - { - "description": "a valid date string with 31 days in October", - "data": "2020-10-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in October", - "data": "2020-10-32", - "valid": false - }, - { - "description": "a valid date string with 30 days in November", - "data": "2020-11-30", - "valid": true - }, - { - "description": "a invalid date string with 31 days in November", - "data": "2020-11-31", - "valid": false - }, - { - "description": "a valid date string with 31 days in December", - "data": "2020-12-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in December", - "data": "2020-12-32", - "valid": false - }, - { - "description": "a invalid date string with invalid month", - "data": "2020-13-01", - "valid": false - }, - { - "description": "an invalid date string", - "data": "06/19/1963", - "valid": false - }, - { - "description": "only RFC3339 not all of ISO 8601 are valid", - "data": "2013-350", - "valid": false - }, - { - "description": "non-padded month dates are not valid", - "data": "1998-1-20", - "valid": false - }, - { - "description": "non-padded day dates are not valid", - "data": "1998-01-1", - "valid": false - }, - { - "description": "invalid month", - "data": "1998-13-01", - "valid": false - }, - { - "description": "invalid month-day combination", - "data": "1998-04-31", - "valid": false - }, - { - "description": "2021 is not a leap year", - "data": "2021-02-29", - "valid": false - }, - { - "description": "2020 is a leap year", - "data": "2020-02-29", - "valid": true - }, - { - "description": "invalid non-ASCII '৪' (a Bengali 4)", - "data": "1963-06-1৪", - "valid": false - }, - { - "description": "ISO8601 / non-RFC3339: YYYYMMDD without dashes (2023-03-28)", - "data": "20230328", - "valid": false - }, - { - "description": "ISO8601 / non-RFC3339: week number implicit day of week (2023-01-02)", - "data": "2023-W01", - "valid": false - }, - { - "description": "ISO8601 / non-RFC3339: week number with day of week (2023-03-28)", - "data": "2023-W13-2", - "valid": false - }, - { - "description": "ISO8601 / non-RFC3339: week number rollover to next year (2023-01-01)", - "data": "2022W527", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/duration.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/duration.json deleted file mode 100644 index a3af56ef0..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/duration.json +++ /dev/null @@ -1,136 +0,0 @@ -[ - { - "description": "validation of duration strings", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "duration" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid duration string", - "data": "P4DT12H30M5S", - "valid": true - }, - { - "description": "an invalid duration string", - "data": "PT1D", - "valid": false - }, - { - "description": "no elements present", - "data": "P", - "valid": false - }, - { - "description": "no time elements present", - "data": "P1YT", - "valid": false - }, - { - "description": "no date or time elements present", - "data": "PT", - "valid": false - }, - { - "description": "elements out of order", - "data": "P2D1Y", - "valid": false - }, - { - "description": "missing time separator", - "data": "P1D2H", - "valid": false - }, - { - "description": "time element in the date position", - "data": "P2S", - "valid": false - }, - { - "description": "four years duration", - "data": "P4Y", - "valid": true - }, - { - "description": "zero time, in seconds", - "data": "PT0S", - "valid": true - }, - { - "description": "zero time, in days", - "data": "P0D", - "valid": true - }, - { - "description": "one month duration", - "data": "P1M", - "valid": true - }, - { - "description": "one minute duration", - "data": "PT1M", - "valid": true - }, - { - "description": "one and a half days, in hours", - "data": "PT36H", - "valid": true - }, - { - "description": "one and a half days, in days and hours", - "data": "P1DT12H", - "valid": true - }, - { - "description": "two weeks", - "data": "P2W", - "valid": true - }, - { - "description": "weeks cannot be combined with other units", - "data": "P1Y2W", - "valid": false - }, - { - "description": "invalid non-ASCII '২' (a Bengali 2)", - "data": "P২Y", - "valid": false - }, - { - "description": "element without unit", - "data": "P1", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/email.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/email.json deleted file mode 100644 index ee075893c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/email.json +++ /dev/null @@ -1,121 +0,0 @@ -[ - { - "description": "validation of e-mail addresses", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "email" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid e-mail address", - "data": "joe.bloggs@example.com", - "valid": true - }, - { - "description": "an invalid e-mail address", - "data": "2962", - "valid": false - }, - { - "description": "tilde in local part is valid", - "data": "te~st@example.com", - "valid": true - }, - { - "description": "tilde before local part is valid", - "data": "~test@example.com", - "valid": true - }, - { - "description": "tilde after local part is valid", - "data": "test~@example.com", - "valid": true - }, - { - "description": "a quoted string with a space in the local part is valid", - "data": "\"joe bloggs\"@example.com", - "valid": true - }, - { - "description": "a quoted string with a double dot in the local part is valid", - "data": "\"joe..bloggs\"@example.com", - "valid": true - }, - { - "description": "a quoted string with a @ in the local part is valid", - "data": "\"joe@bloggs\"@example.com", - "valid": true - }, - { - "description": "an IPv4-address-literal after the @ is valid", - "data": "joe.bloggs@[127.0.0.1]", - "valid": true - }, - { - "description": "an IPv6-address-literal after the @ is valid", - "data": "joe.bloggs@[IPv6:::1]", - "valid": true - }, - { - "description": "dot before local part is not valid", - "data": ".test@example.com", - "valid": false - }, - { - "description": "dot after local part is not valid", - "data": "test.@example.com", - "valid": false - }, - { - "description": "two separated dots inside local part are valid", - "data": "te.s.t@example.com", - "valid": true - }, - { - "description": "two subsequent dots inside local part are not valid", - "data": "te..st@example.com", - "valid": false - }, - { - "description": "an invalid domain", - "data": "joe.bloggs@invalid=domain.com", - "valid": false - }, - { - "description": "an invalid IPv4-address-literal", - "data": "joe.bloggs@[127.0.0.300]", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/hostname.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/hostname.json deleted file mode 100644 index 41418dd4a..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/hostname.json +++ /dev/null @@ -1,126 +0,0 @@ -[ - { - "description": "validation of host names", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "hostname" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid host name", - "data": "www.example.com", - "valid": true - }, - { - "description": "a valid punycoded IDN hostname", - "data": "xn--4gbwdl.xn--wgbh1c", - "valid": true - }, - { - "description": "a host name starting with an illegal character", - "data": "-a-host-name-that-starts-with--", - "valid": false - }, - { - "description": "a host name containing illegal characters", - "data": "not_a_valid_host_name", - "valid": false - }, - { - "description": "a host name with a component too long", - "data": "a-vvvvvvvvvvvvvvvveeeeeeeeeeeeeeeerrrrrrrrrrrrrrrryyyyyyyyyyyyyyyy-long-host-name-component", - "valid": false - }, - { - "description": "starts with hyphen", - "data": "-hostname", - "valid": false - }, - { - "description": "ends with hyphen", - "data": "hostname-", - "valid": false - }, - { - "description": "starts with underscore", - "data": "_hostname", - "valid": false - }, - { - "description": "ends with underscore", - "data": "hostname_", - "valid": false - }, - { - "description": "contains underscore", - "data": "host_name", - "valid": false - }, - { - "description": "maximum label length", - "data": "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijk.com", - "valid": true - }, - { - "description": "exceeds maximum label length", - "data": "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkl.com", - "valid": false - }, - { - "description": "single label", - "data": "hostname", - "valid": true - }, - { - "description": "single label with hyphen", - "data": "host-name", - "valid": true - }, - { - "description": "single label with digits", - "data": "h0stn4me", - "valid": true - }, - { - "description": "single label starting with digit", - "data": "1host", - "valid": true - }, - { - "description": "single label ending with digit", - "data": "hostnam3", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/idn-email.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/idn-email.json deleted file mode 100644 index 50f3c23ce..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/idn-email.json +++ /dev/null @@ -1,61 +0,0 @@ -[ - { - "description": "validation of an internationalized e-mail addresses", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "idn-email" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid idn e-mail (example@example.test in Hangul)", - "data": "실례@실례.테스트", - "valid": true - }, - { - "description": "an invalid idn e-mail address", - "data": "2962", - "valid": false - }, - { - "description": "a valid e-mail address", - "data": "joe.bloggs@example.com", - "valid": true - }, - { - "description": "an invalid e-mail address", - "data": "2962", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/idn-hostname.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/idn-hostname.json deleted file mode 100644 index bc7d92f66..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/idn-hostname.json +++ /dev/null @@ -1,332 +0,0 @@ -[ - { - "description": "validation of internationalized host names", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "idn-hostname" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid host name (example.test in Hangul)", - "data": "실례.테스트", - "valid": true - }, - { - "description": "illegal first char U+302E Hangul single dot tone mark", - "data": "〮실례.테스트", - "valid": false - }, - { - "description": "contains illegal char U+302E Hangul single dot tone mark", - "data": "실〮례.테스트", - "valid": false - }, - { - "description": "a host name with a component too long", - "data": "실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실례례테스트례례례례례례례례례례례례례례례례례테스트례례례례례례례례례례례례례례례례례례례테스트례례례례례례례례례례례례테스트례례실례.테스트", - "valid": false - }, - { - "description": "invalid label, correct Punycode", - "comment": "https://tools.ietf.org/html/rfc5890#section-2.3.2.1 https://tools.ietf.org/html/rfc5891#section-4.4 https://tools.ietf.org/html/rfc3492#section-7.1", - "data": "-> $1.00 <--", - "valid": false - }, - { - "description": "valid Chinese Punycode", - "comment": "https://tools.ietf.org/html/rfc5890#section-2.3.2.1 https://tools.ietf.org/html/rfc5891#section-4.4", - "data": "xn--ihqwcrb4cv8a8dqg056pqjye", - "valid": true - }, - { - "description": "invalid Punycode", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.4 https://tools.ietf.org/html/rfc5890#section-2.3.2.1", - "data": "xn--X", - "valid": false - }, - { - "description": "U-label contains \"--\" in the 3rd and 4th position", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.1 https://tools.ietf.org/html/rfc5890#section-2.3.2.1", - "data": "XN--aa---o47jg78q", - "valid": false - }, - { - "description": "U-label starts with a dash", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.1", - "data": "-hello", - "valid": false - }, - { - "description": "U-label ends with a dash", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.1", - "data": "hello-", - "valid": false - }, - { - "description": "U-label starts and ends with a dash", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.1", - "data": "-hello-", - "valid": false - }, - { - "description": "Begins with a Spacing Combining Mark", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.2", - "data": "\u0903hello", - "valid": false - }, - { - "description": "Begins with a Nonspacing Mark", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.2", - "data": "\u0300hello", - "valid": false - }, - { - "description": "Begins with an Enclosing Mark", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.2", - "data": "\u0488hello", - "valid": false - }, - { - "description": "Exceptions that are PVALID, left-to-right chars", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.2 https://tools.ietf.org/html/rfc5892#section-2.6", - "data": "\u00df\u03c2\u0f0b\u3007", - "valid": true - }, - { - "description": "Exceptions that are PVALID, right-to-left chars", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.2 https://tools.ietf.org/html/rfc5892#section-2.6", - "data": "\u06fd\u06fe", - "valid": true - }, - { - "description": "Exceptions that are DISALLOWED, right-to-left chars", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.2 https://tools.ietf.org/html/rfc5892#section-2.6", - "data": "\u0640\u07fa", - "valid": false - }, - { - "description": "Exceptions that are DISALLOWED, left-to-right chars", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.2 https://tools.ietf.org/html/rfc5892#section-2.6 Note: The two combining marks (U+302E and U+302F) are in the middle and not at the start", - "data": "\u3031\u3032\u3033\u3034\u3035\u302e\u302f\u303b", - "valid": false - }, - { - "description": "MIDDLE DOT with no preceding 'l'", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.3", - "data": "a\u00b7l", - "valid": false - }, - { - "description": "MIDDLE DOT with nothing preceding", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.3", - "data": "\u00b7l", - "valid": false - }, - { - "description": "MIDDLE DOT with no following 'l'", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.3", - "data": "l\u00b7a", - "valid": false - }, - { - "description": "MIDDLE DOT with nothing following", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.3", - "data": "l\u00b7", - "valid": false - }, - { - "description": "MIDDLE DOT with surrounding 'l's", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.3", - "data": "l\u00b7l", - "valid": true - }, - { - "description": "Greek KERAIA not followed by Greek", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.4", - "data": "\u03b1\u0375S", - "valid": false - }, - { - "description": "Greek KERAIA not followed by anything", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.4", - "data": "\u03b1\u0375", - "valid": false - }, - { - "description": "Greek KERAIA followed by Greek", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.4", - "data": "\u03b1\u0375\u03b2", - "valid": true - }, - { - "description": "Hebrew GERESH not preceded by Hebrew", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.5", - "data": "A\u05f3\u05d1", - "valid": false - }, - { - "description": "Hebrew GERESH not preceded by anything", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.5", - "data": "\u05f3\u05d1", - "valid": false - }, - { - "description": "Hebrew GERESH preceded by Hebrew", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.5", - "data": "\u05d0\u05f3\u05d1", - "valid": true - }, - { - "description": "Hebrew GERSHAYIM not preceded by Hebrew", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.6", - "data": "A\u05f4\u05d1", - "valid": false - }, - { - "description": "Hebrew GERSHAYIM not preceded by anything", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.6", - "data": "\u05f4\u05d1", - "valid": false - }, - { - "description": "Hebrew GERSHAYIM preceded by Hebrew", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.6", - "data": "\u05d0\u05f4\u05d1", - "valid": true - }, - { - "description": "KATAKANA MIDDLE DOT with no Hiragana, Katakana, or Han", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.7", - "data": "def\u30fbabc", - "valid": false - }, - { - "description": "KATAKANA MIDDLE DOT with no other characters", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.7", - "data": "\u30fb", - "valid": false - }, - { - "description": "KATAKANA MIDDLE DOT with Hiragana", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.7", - "data": "\u30fb\u3041", - "valid": true - }, - { - "description": "KATAKANA MIDDLE DOT with Katakana", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.7", - "data": "\u30fb\u30a1", - "valid": true - }, - { - "description": "KATAKANA MIDDLE DOT with Han", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.7", - "data": "\u30fb\u4e08", - "valid": true - }, - { - "description": "Arabic-Indic digits mixed with Extended Arabic-Indic digits", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.8", - "data": "\u0660\u06f0", - "valid": false - }, - { - "description": "Arabic-Indic digits not mixed with Extended Arabic-Indic digits", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.8", - "data": "\u0628\u0660\u0628", - "valid": true - }, - { - "description": "Extended Arabic-Indic digits not mixed with Arabic-Indic digits", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.9", - "data": "\u06f00", - "valid": true - }, - { - "description": "ZERO WIDTH JOINER not preceded by Virama", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.2 https://www.unicode.org/review/pr-37.pdf", - "data": "\u0915\u200d\u0937", - "valid": false - }, - { - "description": "ZERO WIDTH JOINER not preceded by anything", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.2 https://www.unicode.org/review/pr-37.pdf", - "data": "\u200d\u0937", - "valid": false - }, - { - "description": "ZERO WIDTH JOINER preceded by Virama", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.2 https://www.unicode.org/review/pr-37.pdf", - "data": "\u0915\u094d\u200d\u0937", - "valid": true - }, - { - "description": "ZERO WIDTH NON-JOINER preceded by Virama", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.1", - "data": "\u0915\u094d\u200c\u0937", - "valid": true - }, - { - "description": "ZERO WIDTH NON-JOINER not preceded by Virama but matches regexp", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.1 https://www.w3.org/TR/alreq/#h_disjoining_enforcement", - "data": "\u0628\u064a\u200c\u0628\u064a", - "valid": true - }, - { - "description": "single label", - "data": "hostname", - "valid": true - }, - { - "description": "single label with hyphen", - "data": "host-name", - "valid": true - }, - { - "description": "single label with digits", - "data": "h0stn4me", - "valid": true - }, - { - "description": "single label starting with digit", - "data": "1host", - "valid": true - }, - { - "description": "single label ending with digit", - "data": "hostnam3", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/ipv4.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/ipv4.json deleted file mode 100644 index 86d27bdb7..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/ipv4.json +++ /dev/null @@ -1,92 +0,0 @@ -[ - { - "description": "validation of IP addresses", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "ipv4" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid IP address", - "data": "192.168.0.1", - "valid": true - }, - { - "description": "an IP address with too many components", - "data": "127.0.0.0.1", - "valid": false - }, - { - "description": "an IP address with out-of-range values", - "data": "256.256.256.256", - "valid": false - }, - { - "description": "an IP address without 4 components", - "data": "127.0", - "valid": false - }, - { - "description": "an IP address as an integer", - "data": "0x7f000001", - "valid": false - }, - { - "description": "an IP address as an integer (decimal)", - "data": "2130706433", - "valid": false - }, - { - "description": "invalid leading zeroes, as they are treated as octals", - "comment": "see https://sick.codes/universal-netmask-npm-package-used-by-270000-projects-vulnerable-to-octal-input-data-server-side-request-forgery-remote-file-inclusion-local-file-inclusion-and-more-cve-2021-28918/", - "data": "087.10.0.1", - "valid": false - }, - { - "description": "value without leading zero is valid", - "data": "87.10.0.1", - "valid": true - }, - { - "description": "invalid non-ASCII '২' (a Bengali 2)", - "data": "1২7.0.0.1", - "valid": false - }, - { - "description": "netmask is not a part of ipv4 address", - "data": "192.168.1.0/24", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/ipv6.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/ipv6.json deleted file mode 100644 index b9e570c9a..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/ipv6.json +++ /dev/null @@ -1,211 +0,0 @@ -[ - { - "description": "validation of IPv6 addresses", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "ipv6" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid IPv6 address", - "data": "::1", - "valid": true - }, - { - "description": "an IPv6 address with out-of-range values", - "data": "12345::", - "valid": false - }, - { - "description": "trailing 4 hex symbols is valid", - "data": "::abef", - "valid": true - }, - { - "description": "trailing 5 hex symbols is invalid", - "data": "::abcef", - "valid": false - }, - { - "description": "an IPv6 address with too many components", - "data": "1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1", - "valid": false - }, - { - "description": "an IPv6 address containing illegal characters", - "data": "::laptop", - "valid": false - }, - { - "description": "no digits is valid", - "data": "::", - "valid": true - }, - { - "description": "leading colons is valid", - "data": "::42:ff:1", - "valid": true - }, - { - "description": "trailing colons is valid", - "data": "d6::", - "valid": true - }, - { - "description": "missing leading octet is invalid", - "data": ":2:3:4:5:6:7:8", - "valid": false - }, - { - "description": "missing trailing octet is invalid", - "data": "1:2:3:4:5:6:7:", - "valid": false - }, - { - "description": "missing leading octet with omitted octets later", - "data": ":2:3:4::8", - "valid": false - }, - { - "description": "single set of double colons in the middle is valid", - "data": "1:d6::42", - "valid": true - }, - { - "description": "two sets of double colons is invalid", - "data": "1::d6::42", - "valid": false - }, - { - "description": "mixed format with the ipv4 section as decimal octets", - "data": "1::d6:192.168.0.1", - "valid": true - }, - { - "description": "mixed format with double colons between the sections", - "data": "1:2::192.168.0.1", - "valid": true - }, - { - "description": "mixed format with ipv4 section with octet out of range", - "data": "1::2:192.168.256.1", - "valid": false - }, - { - "description": "mixed format with ipv4 section with a hex octet", - "data": "1::2:192.168.ff.1", - "valid": false - }, - { - "description": "mixed format with leading double colons (ipv4-mapped ipv6 address)", - "data": "::ffff:192.168.0.1", - "valid": true - }, - { - "description": "triple colons is invalid", - "data": "1:2:3:4:5:::8", - "valid": false - }, - { - "description": "8 octets", - "data": "1:2:3:4:5:6:7:8", - "valid": true - }, - { - "description": "insufficient octets without double colons", - "data": "1:2:3:4:5:6:7", - "valid": false - }, - { - "description": "no colons is invalid", - "data": "1", - "valid": false - }, - { - "description": "ipv4 is not ipv6", - "data": "127.0.0.1", - "valid": false - }, - { - "description": "ipv4 segment must have 4 octets", - "data": "1:2:3:4:1.2.3", - "valid": false - }, - { - "description": "leading whitespace is invalid", - "data": " ::1", - "valid": false - }, - { - "description": "trailing whitespace is invalid", - "data": "::1 ", - "valid": false - }, - { - "description": "netmask is not a part of ipv6 address", - "data": "fe80::/64", - "valid": false - }, - { - "description": "zone id is not a part of ipv6 address", - "data": "fe80::a%eth1", - "valid": false - }, - { - "description": "a long valid ipv6", - "data": "1000:1000:1000:1000:1000:1000:255.255.255.255", - "valid": true - }, - { - "description": "a long invalid ipv6, below length limit, first", - "data": "100:100:100:100:100:100:255.255.255.255.255", - "valid": false - }, - { - "description": "a long invalid ipv6, below length limit, second", - "data": "100:100:100:100:100:100:100:255.255.255.255", - "valid": false - }, - { - "description": "invalid non-ASCII '৪' (a Bengali 4)", - "data": "1:2:3:4:5:6:7:৪", - "valid": false - }, - { - "description": "invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion", - "data": "1:2::192.16৪.0.1", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/iri-reference.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/iri-reference.json deleted file mode 100644 index 0c9483dc2..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/iri-reference.json +++ /dev/null @@ -1,76 +0,0 @@ -[ - { - "description": "validation of IRI References", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "iri-reference" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid IRI", - "data": "http://ƒøø.ßår/?∂éœ=πîx#πîüx", - "valid": true - }, - { - "description": "a valid protocol-relative IRI Reference", - "data": "//ƒøø.ßår/?∂éœ=πîx#πîüx", - "valid": true - }, - { - "description": "a valid relative IRI Reference", - "data": "/âππ", - "valid": true - }, - { - "description": "an invalid IRI Reference", - "data": "\\\\WINDOWS\\filëßåré", - "valid": false - }, - { - "description": "a valid IRI Reference", - "data": "âππ", - "valid": true - }, - { - "description": "a valid IRI fragment", - "data": "#ƒrägmênt", - "valid": true - }, - { - "description": "an invalid IRI fragment", - "data": "#ƒräg\\mênt", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/iri.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/iri.json deleted file mode 100644 index 311c9ef08..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/iri.json +++ /dev/null @@ -1,86 +0,0 @@ -[ - { - "description": "validation of IRIs", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "iri" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid IRI with anchor tag", - "data": "http://ƒøø.ßår/?∂éœ=πîx#πîüx", - "valid": true - }, - { - "description": "a valid IRI with anchor tag and parentheses", - "data": "http://ƒøø.com/blah_(wîkïpédiå)_blah#ßité-1", - "valid": true - }, - { - "description": "a valid IRI with URL-encoded stuff", - "data": "http://ƒøø.ßår/?q=Test%20URL-encoded%20stuff", - "valid": true - }, - { - "description": "a valid IRI with many special characters", - "data": "http://-.~_!$&'()*+,;=:%40:80%2f::::::@example.com", - "valid": true - }, - { - "description": "a valid IRI based on IPv6", - "data": "http://[2001:0db8:85a3:0000:0000:8a2e:0370:7334]", - "valid": true - }, - { - "description": "an invalid IRI based on IPv6", - "data": "http://2001:0db8:85a3:0000:0000:8a2e:0370:7334", - "valid": false - }, - { - "description": "an invalid relative IRI Reference", - "data": "/abc", - "valid": false - }, - { - "description": "an invalid IRI", - "data": "\\\\WINDOWS\\filëßåré", - "valid": false - }, - { - "description": "an invalid IRI though valid IRI reference", - "data": "âππ", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/json-pointer.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/json-pointer.json deleted file mode 100644 index 71ba9b600..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/json-pointer.json +++ /dev/null @@ -1,201 +0,0 @@ -[ - { - "description": "validation of JSON-pointers (JSON String Representation)", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "json-pointer" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid JSON-pointer", - "data": "/foo/bar~0/baz~1/%a", - "valid": true - }, - { - "description": "not a valid JSON-pointer (~ not escaped)", - "data": "/foo/bar~", - "valid": false - }, - { - "description": "valid JSON-pointer with empty segment", - "data": "/foo//bar", - "valid": true - }, - { - "description": "valid JSON-pointer with the last empty segment", - "data": "/foo/bar/", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #1", - "data": "", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #2", - "data": "/foo", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #3", - "data": "/foo/0", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #4", - "data": "/", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #5", - "data": "/a~1b", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #6", - "data": "/c%d", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #7", - "data": "/e^f", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #8", - "data": "/g|h", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #9", - "data": "/i\\j", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #10", - "data": "/k\"l", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #11", - "data": "/ ", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #12", - "data": "/m~0n", - "valid": true - }, - { - "description": "valid JSON-pointer used adding to the last array position", - "data": "/foo/-", - "valid": true - }, - { - "description": "valid JSON-pointer (- used as object member name)", - "data": "/foo/-/bar", - "valid": true - }, - { - "description": "valid JSON-pointer (multiple escaped characters)", - "data": "/~1~0~0~1~1", - "valid": true - }, - { - "description": "valid JSON-pointer (escaped with fraction part) #1", - "data": "/~1.1", - "valid": true - }, - { - "description": "valid JSON-pointer (escaped with fraction part) #2", - "data": "/~0.1", - "valid": true - }, - { - "description": "not a valid JSON-pointer (URI Fragment Identifier) #1", - "data": "#", - "valid": false - }, - { - "description": "not a valid JSON-pointer (URI Fragment Identifier) #2", - "data": "#/", - "valid": false - }, - { - "description": "not a valid JSON-pointer (URI Fragment Identifier) #3", - "data": "#a", - "valid": false - }, - { - "description": "not a valid JSON-pointer (some escaped, but not all) #1", - "data": "/~0~", - "valid": false - }, - { - "description": "not a valid JSON-pointer (some escaped, but not all) #2", - "data": "/~0/~", - "valid": false - }, - { - "description": "not a valid JSON-pointer (wrong escape character) #1", - "data": "/~2", - "valid": false - }, - { - "description": "not a valid JSON-pointer (wrong escape character) #2", - "data": "/~-1", - "valid": false - }, - { - "description": "not a valid JSON-pointer (multiple characters not escaped)", - "data": "/~~", - "valid": false - }, - { - "description": "not a valid JSON-pointer (isn't empty nor starts with /) #1", - "data": "a", - "valid": false - }, - { - "description": "not a valid JSON-pointer (isn't empty nor starts with /) #2", - "data": "0", - "valid": false - }, - { - "description": "not a valid JSON-pointer (isn't empty nor starts with /) #3", - "data": "a/a", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/regex.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/regex.json deleted file mode 100644 index a036c6de8..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/regex.json +++ /dev/null @@ -1,51 +0,0 @@ -[ - { - "description": "validation of regular expressions", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "regex" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid regular expression", - "data": "([abc])+\\s+$", - "valid": true - }, - { - "description": "a regular expression with unclosed parens is invalid", - "data": "^(abc]", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/relative-json-pointer.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/relative-json-pointer.json deleted file mode 100644 index 3eaf9ce2d..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/relative-json-pointer.json +++ /dev/null @@ -1,101 +0,0 @@ -[ - { - "description": "validation of Relative JSON Pointers (RJP)", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "relative-json-pointer" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid upwards RJP", - "data": "1", - "valid": true - }, - { - "description": "a valid downwards RJP", - "data": "0/foo/bar", - "valid": true - }, - { - "description": "a valid up and then down RJP, with array index", - "data": "2/0/baz/1/zip", - "valid": true - }, - { - "description": "a valid RJP taking the member or index name", - "data": "0#", - "valid": true - }, - { - "description": "an invalid RJP that is a valid JSON Pointer", - "data": "/foo/bar", - "valid": false - }, - { - "description": "negative prefix", - "data": "-1/foo/bar", - "valid": false - }, - { - "description": "explicit positive prefix", - "data": "+1/foo/bar", - "valid": false - }, - { - "description": "## is not a valid json-pointer", - "data": "0##", - "valid": false - }, - { - "description": "zero cannot be followed by other digits, plus json-pointer", - "data": "01/a", - "valid": false - }, - { - "description": "zero cannot be followed by other digits, plus octothorpe", - "data": "01#", - "valid": false - }, - { - "description": "empty string", - "data": "", - "valid": false - }, - { - "description": "multi-digit integer prefix", - "data": "120/foo/bar", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/time.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/time.json deleted file mode 100644 index 8967932e9..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/time.json +++ /dev/null @@ -1,236 +0,0 @@ -[ - { - "description": "validation of time strings", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "time" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid time string", - "data": "08:30:06Z", - "valid": true - }, - { - "description": "invalid time string with extra leading zeros", - "data": "008:030:006Z", - "valid": false - }, - { - "description": "invalid time string with no leading zero for single digit", - "data": "8:3:6Z", - "valid": false - }, - { - "description": "hour, minute, second must be two digits", - "data": "8:0030:6Z", - "valid": false - }, - { - "description": "a valid time string with leap second, Zulu", - "data": "23:59:60Z", - "valid": true - }, - { - "description": "invalid leap second, Zulu (wrong hour)", - "data": "22:59:60Z", - "valid": false - }, - { - "description": "invalid leap second, Zulu (wrong minute)", - "data": "23:58:60Z", - "valid": false - }, - { - "description": "valid leap second, zero time-offset", - "data": "23:59:60+00:00", - "valid": true - }, - { - "description": "invalid leap second, zero time-offset (wrong hour)", - "data": "22:59:60+00:00", - "valid": false - }, - { - "description": "invalid leap second, zero time-offset (wrong minute)", - "data": "23:58:60+00:00", - "valid": false - }, - { - "description": "valid leap second, positive time-offset", - "data": "01:29:60+01:30", - "valid": true - }, - { - "description": "valid leap second, large positive time-offset", - "data": "23:29:60+23:30", - "valid": true - }, - { - "description": "invalid leap second, positive time-offset (wrong hour)", - "data": "23:59:60+01:00", - "valid": false - }, - { - "description": "invalid leap second, positive time-offset (wrong minute)", - "data": "23:59:60+00:30", - "valid": false - }, - { - "description": "valid leap second, negative time-offset", - "data": "15:59:60-08:00", - "valid": true - }, - { - "description": "valid leap second, large negative time-offset", - "data": "00:29:60-23:30", - "valid": true - }, - { - "description": "invalid leap second, negative time-offset (wrong hour)", - "data": "23:59:60-01:00", - "valid": false - }, - { - "description": "invalid leap second, negative time-offset (wrong minute)", - "data": "23:59:60-00:30", - "valid": false - }, - { - "description": "a valid time string with second fraction", - "data": "23:20:50.52Z", - "valid": true - }, - { - "description": "a valid time string with precise second fraction", - "data": "08:30:06.283185Z", - "valid": true - }, - { - "description": "a valid time string with plus offset", - "data": "08:30:06+00:20", - "valid": true - }, - { - "description": "a valid time string with minus offset", - "data": "08:30:06-08:00", - "valid": true - }, - { - "description": "hour, minute in time-offset must be two digits", - "data": "08:30:06-8:000", - "valid": false - }, - { - "description": "a valid time string with case-insensitive Z", - "data": "08:30:06z", - "valid": true - }, - { - "description": "an invalid time string with invalid hour", - "data": "24:00:00Z", - "valid": false - }, - { - "description": "an invalid time string with invalid minute", - "data": "00:60:00Z", - "valid": false - }, - { - "description": "an invalid time string with invalid second", - "data": "00:00:61Z", - "valid": false - }, - { - "description": "an invalid time string with invalid leap second (wrong hour)", - "data": "22:59:60Z", - "valid": false - }, - { - "description": "an invalid time string with invalid leap second (wrong minute)", - "data": "23:58:60Z", - "valid": false - }, - { - "description": "an invalid time string with invalid time numoffset hour", - "data": "01:02:03+24:00", - "valid": false - }, - { - "description": "an invalid time string with invalid time numoffset minute", - "data": "01:02:03+00:60", - "valid": false - }, - { - "description": "an invalid time string with invalid time with both Z and numoffset", - "data": "01:02:03Z+00:30", - "valid": false - }, - { - "description": "an invalid offset indicator", - "data": "08:30:06 PST", - "valid": false - }, - { - "description": "only RFC3339 not all of ISO 8601 are valid", - "data": "01:01:01,1111", - "valid": false - }, - { - "description": "no time offset", - "data": "12:00:00", - "valid": false - }, - { - "description": "no time offset with second fraction", - "data": "12:00:00.52", - "valid": false - }, - { - "description": "invalid non-ASCII '২' (a Bengali 2)", - "data": "1২:00:00Z", - "valid": false - }, - { - "description": "offset not starting with plus or minus", - "data": "08:30:06#00:20", - "valid": false - }, - { - "description": "contains letters", - "data": "ab:cd:ef", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/unknown.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/unknown.json deleted file mode 100644 index 7fc35f536..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/unknown.json +++ /dev/null @@ -1,46 +0,0 @@ -[ - { - "description": "unknown format", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "unknown" - }, - "tests": [ - { - "description": "unknown formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "unknown formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "unknown formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "unknown formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "unknown formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "unknown formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "unknown formats ignore strings", - "data": "string", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/uri-reference.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/uri-reference.json deleted file mode 100644 index 46f28e6c3..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/uri-reference.json +++ /dev/null @@ -1,76 +0,0 @@ -[ - { - "description": "validation of URI References", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "uri-reference" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid URI", - "data": "http://foo.bar/?baz=qux#quux", - "valid": true - }, - { - "description": "a valid protocol-relative URI Reference", - "data": "//foo.bar/?baz=qux#quux", - "valid": true - }, - { - "description": "a valid relative URI Reference", - "data": "/abc", - "valid": true - }, - { - "description": "an invalid URI Reference", - "data": "\\\\WINDOWS\\fileshare", - "valid": false - }, - { - "description": "a valid URI Reference", - "data": "abc", - "valid": true - }, - { - "description": "a valid URI fragment", - "data": "#fragment", - "valid": true - }, - { - "description": "an invalid URI fragment", - "data": "#frag\\ment", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/uri-template.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/uri-template.json deleted file mode 100644 index 08aab829a..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/uri-template.json +++ /dev/null @@ -1,61 +0,0 @@ -[ - { - "description": "format: uri-template", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "uri-template" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid uri-template", - "data": "http://example.com/dictionary/{term:1}/{term}", - "valid": true - }, - { - "description": "an invalid uri-template", - "data": "http://example.com/dictionary/{term:1}/{term", - "valid": false - }, - { - "description": "a valid uri-template without variables", - "data": "http://example.com/dictionary", - "valid": true - }, - { - "description": "a valid relative uri-template", - "data": "dictionary/{term:1}/{term}", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/uri.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/uri.json deleted file mode 100644 index 84b5f15e4..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/uri.json +++ /dev/null @@ -1,141 +0,0 @@ -[ - { - "description": "validation of URIs", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "uri" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid URL with anchor tag", - "data": "http://foo.bar/?baz=qux#quux", - "valid": true - }, - { - "description": "a valid URL with anchor tag and parentheses", - "data": "http://foo.com/blah_(wikipedia)_blah#cite-1", - "valid": true - }, - { - "description": "a valid URL with URL-encoded stuff", - "data": "http://foo.bar/?q=Test%20URL-encoded%20stuff", - "valid": true - }, - { - "description": "a valid puny-coded URL ", - "data": "http://xn--nw2a.xn--j6w193g/", - "valid": true - }, - { - "description": "a valid URL with many special characters", - "data": "http://-.~_!$&'()*+,;=:%40:80%2f::::::@example.com", - "valid": true - }, - { - "description": "a valid URL based on IPv4", - "data": "http://223.255.255.254", - "valid": true - }, - { - "description": "a valid URL with ftp scheme", - "data": "ftp://ftp.is.co.za/rfc/rfc1808.txt", - "valid": true - }, - { - "description": "a valid URL for a simple text file", - "data": "http://www.ietf.org/rfc/rfc2396.txt", - "valid": true - }, - { - "description": "a valid URL ", - "data": "ldap://[2001:db8::7]/c=GB?objectClass?one", - "valid": true - }, - { - "description": "a valid mailto URI", - "data": "mailto:John.Doe@example.com", - "valid": true - }, - { - "description": "a valid newsgroup URI", - "data": "news:comp.infosystems.www.servers.unix", - "valid": true - }, - { - "description": "a valid tel URI", - "data": "tel:+1-816-555-1212", - "valid": true - }, - { - "description": "a valid URN", - "data": "urn:oasis:names:specification:docbook:dtd:xml:4.1.2", - "valid": true - }, - { - "description": "an invalid protocol-relative URI Reference", - "data": "//foo.bar/?baz=qux#quux", - "valid": false - }, - { - "description": "an invalid relative URI Reference", - "data": "/abc", - "valid": false - }, - { - "description": "an invalid URI", - "data": "\\\\WINDOWS\\fileshare", - "valid": false - }, - { - "description": "an invalid URI though valid URI reference", - "data": "abc", - "valid": false - }, - { - "description": "an invalid URI with spaces", - "data": "http:// shouldfail.com", - "valid": false - }, - { - "description": "an invalid URI with spaces and missing scheme", - "data": ":// should fail", - "valid": false - }, - { - "description": "an invalid URI with comma in scheme", - "data": "bar,baz:foo", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/uuid.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/uuid.json deleted file mode 100644 index d152643d1..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/format/uuid.json +++ /dev/null @@ -1,116 +0,0 @@ -[ - { - "description": "uuid format", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "format": "uuid" - }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "all upper-case", - "data": "2EB8AA08-AA98-11EA-B4AA-73B441D16380", - "valid": true - }, - { - "description": "all lower-case", - "data": "2eb8aa08-aa98-11ea-b4aa-73b441d16380", - "valid": true - }, - { - "description": "mixed case", - "data": "2eb8aa08-AA98-11ea-B4Aa-73B441D16380", - "valid": true - }, - { - "description": "all zeroes is valid", - "data": "00000000-0000-0000-0000-000000000000", - "valid": true - }, - { - "description": "wrong length", - "data": "2eb8aa08-aa98-11ea-b4aa-73b441d1638", - "valid": false - }, - { - "description": "missing section", - "data": "2eb8aa08-aa98-11ea-73b441d16380", - "valid": false - }, - { - "description": "bad characters (not hex)", - "data": "2eb8aa08-aa98-11ea-b4ga-73b441d16380", - "valid": false - }, - { - "description": "no dashes", - "data": "2eb8aa08aa9811eab4aa73b441d16380", - "valid": false - }, - { - "description": "too few dashes", - "data": "2eb8aa08aa98-11ea-b4aa73b441d16380", - "valid": false - }, - { - "description": "too many dashes", - "data": "2eb8-aa08-aa98-11ea-b4aa73b44-1d16380", - "valid": false - }, - { - "description": "dashes in the wrong spot", - "data": "2eb8aa08aa9811eab4aa73b441d16380----", - "valid": false - }, - { - "description": "valid version 4", - "data": "98d80576-482e-427f-8434-7f86890ab222", - "valid": true - }, - { - "description": "valid version 5", - "data": "99c17cbb-656f-564a-940f-1a4568f03487", - "valid": true - }, - { - "description": "hypothetical version 6", - "data": "99c17cbb-656f-664a-940f-1a4568f03487", - "valid": true - }, - { - "description": "hypothetical version 15", - "data": "99c17cbb-656f-f64a-940f-1a4568f03487", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/id.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/id.json deleted file mode 100644 index 0b7df4e80..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/id.json +++ /dev/null @@ -1,53 +0,0 @@ -[ - { - "description": "$id inside an enum is not a real identifier", - "comment": "the implementation must not be confused by an $id buried in the enum", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$defs": { - "id_in_enum": { - "enum": [ - { - "$id": "https://localhost:1234/draft2020-12/id/my_identifier.json", - "type": "null" - } - ] - }, - "real_id_in_schema": { - "$id": "https://localhost:1234/draft2020-12/id/my_identifier.json", - "type": "string" - }, - "zzz_id_in_const": { - "const": { - "$id": "https://localhost:1234/draft2020-12/id/my_identifier.json", - "type": "null" - } - } - }, - "anyOf": [ - { "$ref": "#/$defs/id_in_enum" }, - { "$ref": "https://localhost:1234/draft2020-12/id/my_identifier.json" } - ] - }, - "tests": [ - { - "description": "exact match to enum, and type matches", - "data": { - "$id": "https://localhost:1234/draft2020-12/id/my_identifier.json", - "type": "null" - }, - "valid": true - }, - { - "description": "match $ref to $id", - "data": "a string to match #/$defs/id_in_enum", - "valid": true - }, - { - "description": "no match on enum or $ref to $id", - "data": 1, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/no-schema.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/no-schema.json deleted file mode 100644 index 676e6b53a..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/no-schema.json +++ /dev/null @@ -1,26 +0,0 @@ -[ - { - "description": "validation without $schema", - "comment": "minLength is the same across all drafts", - "schema": { - "minLength": 2 - }, - "tests": [ - { - "description": "a 3-character string is valid", - "data": "foo", - "valid": true - }, - { - "description": "a 1-character string is not valid", - "data": "a", - "valid": false - }, - { - "description": "a non-string is valid", - "data": 5, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/non-bmp-regex.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/non-bmp-regex.json deleted file mode 100644 index d2efb3ef6..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/non-bmp-regex.json +++ /dev/null @@ -1,86 +0,0 @@ -[ - { - "description": "Proper UTF-16 surrogate pair handling: pattern", - "comment": "Optional because .Net doesn't correctly handle 32-bit Unicode characters", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "pattern": "^🐲*$" - }, - "tests": [ - { - "description": "matches empty", - "data": "", - "valid": true - }, - { - "description": "matches single", - "data": "🐲", - "valid": true - }, - { - "description": "matches two", - "data": "🐲🐲", - "valid": true - }, - { - "description": "doesn't match one", - "data": "🐉", - "valid": false - }, - { - "description": "doesn't match two", - "data": "🐉🐉", - "valid": false - }, - { - "description": "doesn't match one ASCII", - "data": "D", - "valid": false - }, - { - "description": "doesn't match two ASCII", - "data": "DD", - "valid": false - } - ] - }, - { - "description": "Proper UTF-16 surrogate pair handling: patternProperties", - "comment": "Optional because .Net doesn't correctly handle 32-bit Unicode characters", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "patternProperties": { - "^🐲*$": { - "type": "integer" - } - } - }, - "tests": [ - { - "description": "matches empty", - "data": { "": 1 }, - "valid": true - }, - { - "description": "matches single", - "data": { "🐲": 1 }, - "valid": true - }, - { - "description": "matches two", - "data": { "🐲🐲": 1 }, - "valid": true - }, - { - "description": "doesn't match one", - "data": { "🐲": "hello" }, - "valid": false - }, - { - "description": "doesn't match two", - "data": { "🐲🐲": "hello" }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/refOfUnknownKeyword.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/refOfUnknownKeyword.json deleted file mode 100644 index c2b080a1e..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/refOfUnknownKeyword.json +++ /dev/null @@ -1,69 +0,0 @@ -[ - { - "description": "reference of a root arbitrary keyword ", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "unknown-keyword": {"type": "integer"}, - "properties": { - "bar": {"$ref": "#/unknown-keyword"} - } - }, - "tests": [ - { - "description": "match", - "data": {"bar": 3}, - "valid": true - }, - { - "description": "mismatch", - "data": {"bar": true}, - "valid": false - } - ] - }, - { - "description": "reference of an arbitrary keyword of a sub-schema", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "properties": { - "foo": {"unknown-keyword": {"type": "integer"}}, - "bar": {"$ref": "#/properties/foo/unknown-keyword"} - } - }, - "tests": [ - { - "description": "match", - "data": {"bar": 3}, - "valid": true - }, - { - "description": "mismatch", - "data": {"bar": true}, - "valid": false - } - ] - }, - { - "description": "reference internals of known non-applicator", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "/base", - "examples": [ - { "type": "string" } - ], - "$ref": "#/examples/0" - }, - "tests": [ - { - "description": "match", - "data": "a string", - "valid": true - }, - { - "description": "mismatch", - "data": 42, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/unknownKeyword.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/unknownKeyword.json deleted file mode 100644 index 28b0c4ce9..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/optional/unknownKeyword.json +++ /dev/null @@ -1,57 +0,0 @@ -[ - { - "description": "$id inside an unknown keyword is not a real identifier", - "comment": "the implementation must not be confused by an $id in locations we do not know how to parse", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$defs": { - "id_in_unknown0": { - "not": { - "array_of_schemas": [ - { - "$id": "https://localhost:1234/draft2020-12/unknownKeyword/my_identifier.json", - "type": "null" - } - ] - } - }, - "real_id_in_schema": { - "$id": "https://localhost:1234/draft2020-12/unknownKeyword/my_identifier.json", - "type": "string" - }, - "id_in_unknown1": { - "not": { - "object_of_schemas": { - "foo": { - "$id": "https://localhost:1234/draft2020-12/unknownKeyword/my_identifier.json", - "type": "integer" - } - } - } - } - }, - "anyOf": [ - { "$ref": "#/$defs/id_in_unknown0" }, - { "$ref": "#/$defs/id_in_unknown1" }, - { "$ref": "https://localhost:1234/draft2020-12/unknownKeyword/my_identifier.json" } - ] - }, - "tests": [ - { - "description": "type matches second anyOf, which has a real schema in it", - "data": "a string", - "valid": true - }, - { - "description": "type matches non-schema in first anyOf", - "data": null, - "valid": false - }, - { - "description": "type matches non-schema in third anyOf", - "data": 1, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/pattern.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/pattern.json deleted file mode 100644 index af0b8d89b..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/pattern.json +++ /dev/null @@ -1,65 +0,0 @@ -[ - { - "description": "pattern validation", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "pattern": "^a*$" - }, - "tests": [ - { - "description": "a matching pattern is valid", - "data": "aaa", - "valid": true - }, - { - "description": "a non-matching pattern is invalid", - "data": "abc", - "valid": false - }, - { - "description": "ignores booleans", - "data": true, - "valid": true - }, - { - "description": "ignores integers", - "data": 123, - "valid": true - }, - { - "description": "ignores floats", - "data": 1.0, - "valid": true - }, - { - "description": "ignores objects", - "data": {}, - "valid": true - }, - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores null", - "data": null, - "valid": true - } - ] - }, - { - "description": "pattern is not anchored", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "pattern": "a+" - }, - "tests": [ - { - "description": "matches a substring", - "data": "xxaayy", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/patternProperties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/patternProperties.json deleted file mode 100644 index 81829c71f..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/patternProperties.json +++ /dev/null @@ -1,176 +0,0 @@ -[ - { - "description": - "patternProperties validates properties matching a regex", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "patternProperties": { - "f.*o": {"type": "integer"} - } - }, - "tests": [ - { - "description": "a single valid match is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "multiple valid matches is valid", - "data": {"foo": 1, "foooooo" : 2}, - "valid": true - }, - { - "description": "a single invalid match is invalid", - "data": {"foo": "bar", "fooooo": 2}, - "valid": false - }, - { - "description": "multiple invalid matches is invalid", - "data": {"foo": "bar", "foooooo" : "baz"}, - "valid": false - }, - { - "description": "ignores arrays", - "data": ["foo"], - "valid": true - }, - { - "description": "ignores strings", - "data": "foo", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "multiple simultaneous patternProperties are validated", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "patternProperties": { - "a*": {"type": "integer"}, - "aaa*": {"maximum": 20} - } - }, - "tests": [ - { - "description": "a single valid match is valid", - "data": {"a": 21}, - "valid": true - }, - { - "description": "a simultaneous match is valid", - "data": {"aaaa": 18}, - "valid": true - }, - { - "description": "multiple matches is valid", - "data": {"a": 21, "aaaa": 18}, - "valid": true - }, - { - "description": "an invalid due to one is invalid", - "data": {"a": "bar"}, - "valid": false - }, - { - "description": "an invalid due to the other is invalid", - "data": {"aaaa": 31}, - "valid": false - }, - { - "description": "an invalid due to both is invalid", - "data": {"aaa": "foo", "aaaa": 31}, - "valid": false - } - ] - }, - { - "description": "regexes are not anchored by default and are case sensitive", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "patternProperties": { - "[0-9]{2,}": { "type": "boolean" }, - "X_": { "type": "string" } - } - }, - "tests": [ - { - "description": "non recognized members are ignored", - "data": { "answer 1": "42" }, - "valid": true - }, - { - "description": "recognized members are accounted for", - "data": { "a31b": null }, - "valid": false - }, - { - "description": "regexes are case sensitive", - "data": { "a_x_3": 3 }, - "valid": true - }, - { - "description": "regexes are case sensitive, 2", - "data": { "a_X_3": 3 }, - "valid": false - } - ] - }, - { - "description": "patternProperties with boolean schemas", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "patternProperties": { - "f.*": true, - "b.*": false - } - }, - "tests": [ - { - "description": "object with property matching schema true is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "object with property matching schema false is invalid", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "object with both properties is invalid", - "data": {"foo": 1, "bar": 2}, - "valid": false - }, - { - "description": "object with a property matching both true and false is invalid", - "data": {"foobar":1}, - "valid": false - }, - { - "description": "empty object is valid", - "data": {}, - "valid": true - } - ] - }, - { - "description": "patternProperties with null valued instance properties", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "patternProperties": { - "^.*bar$": {"type": "null"} - } - }, - "tests": [ - { - "description": "allows null values", - "data": {"foobar": null}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/prefixItems.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/prefixItems.json deleted file mode 100644 index 0adfc069e..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/prefixItems.json +++ /dev/null @@ -1,104 +0,0 @@ -[ - { - "description": "a schema given for prefixItems", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "prefixItems": [ - {"type": "integer"}, - {"type": "string"} - ] - }, - "tests": [ - { - "description": "correct types", - "data": [ 1, "foo" ], - "valid": true - }, - { - "description": "wrong types", - "data": [ "foo", 1 ], - "valid": false - }, - { - "description": "incomplete array of items", - "data": [ 1 ], - "valid": true - }, - { - "description": "array with additional items", - "data": [ 1, "foo", true ], - "valid": true - }, - { - "description": "empty array", - "data": [ ], - "valid": true - }, - { - "description": "JavaScript pseudo-array is valid", - "data": { - "0": "invalid", - "1": "valid", - "length": 2 - }, - "valid": true - } - ] - }, - { - "description": "prefixItems with boolean schemas", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "prefixItems": [true, false] - }, - "tests": [ - { - "description": "array with one item is valid", - "data": [ 1 ], - "valid": true - }, - { - "description": "array with two items is invalid", - "data": [ 1, "foo" ], - "valid": false - }, - { - "description": "empty array is valid", - "data": [], - "valid": true - } - ] - }, - { - "description": "additional items are allowed by default", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "prefixItems": [{"type": "integer"}] - }, - "tests": [ - { - "description": "only the first item is validated", - "data": [1, "foo", false], - "valid": true - } - ] - }, - { - "description": "prefixItems with null instance elements", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "prefixItems": [ - { - "type": "null" - } - ] - }, - "tests": [ - { - "description": "allows null elements", - "data": [ null ], - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/properties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/properties.json deleted file mode 100644 index eb66fa8bd..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/properties.json +++ /dev/null @@ -1,242 +0,0 @@ -[ - { - "description": "object properties validation", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "properties": { - "foo": {"type": "integer"}, - "bar": {"type": "string"} - } - }, - "tests": [ - { - "description": "both properties present and valid is valid", - "data": {"foo": 1, "bar": "baz"}, - "valid": true - }, - { - "description": "one property invalid is invalid", - "data": {"foo": 1, "bar": {}}, - "valid": false - }, - { - "description": "both properties invalid is invalid", - "data": {"foo": [], "bar": {}}, - "valid": false - }, - { - "description": "doesn't invalidate other properties", - "data": {"quux": []}, - "valid": true - }, - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": - "properties, patternProperties, additionalProperties interaction", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "properties": { - "foo": {"type": "array", "maxItems": 3}, - "bar": {"type": "array"} - }, - "patternProperties": {"f.o": {"minItems": 2}}, - "additionalProperties": {"type": "integer"} - }, - "tests": [ - { - "description": "property validates property", - "data": {"foo": [1, 2]}, - "valid": true - }, - { - "description": "property invalidates property", - "data": {"foo": [1, 2, 3, 4]}, - "valid": false - }, - { - "description": "patternProperty invalidates property", - "data": {"foo": []}, - "valid": false - }, - { - "description": "patternProperty validates nonproperty", - "data": {"fxo": [1, 2]}, - "valid": true - }, - { - "description": "patternProperty invalidates nonproperty", - "data": {"fxo": []}, - "valid": false - }, - { - "description": "additionalProperty ignores property", - "data": {"bar": []}, - "valid": true - }, - { - "description": "additionalProperty validates others", - "data": {"quux": 3}, - "valid": true - }, - { - "description": "additionalProperty invalidates others", - "data": {"quux": "foo"}, - "valid": false - } - ] - }, - { - "description": "properties with boolean schema", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "properties": { - "foo": true, - "bar": false - } - }, - "tests": [ - { - "description": "no property present is valid", - "data": {}, - "valid": true - }, - { - "description": "only 'true' property present is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "only 'false' property present is invalid", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "both properties present is invalid", - "data": {"foo": 1, "bar": 2}, - "valid": false - } - ] - }, - { - "description": "properties with escaped characters", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "properties": { - "foo\nbar": {"type": "number"}, - "foo\"bar": {"type": "number"}, - "foo\\bar": {"type": "number"}, - "foo\rbar": {"type": "number"}, - "foo\tbar": {"type": "number"}, - "foo\fbar": {"type": "number"} - } - }, - "tests": [ - { - "description": "object with all numbers is valid", - "data": { - "foo\nbar": 1, - "foo\"bar": 1, - "foo\\bar": 1, - "foo\rbar": 1, - "foo\tbar": 1, - "foo\fbar": 1 - }, - "valid": true - }, - { - "description": "object with strings is invalid", - "data": { - "foo\nbar": "1", - "foo\"bar": "1", - "foo\\bar": "1", - "foo\rbar": "1", - "foo\tbar": "1", - "foo\fbar": "1" - }, - "valid": false - } - ] - }, - { - "description": "properties with null valued instance properties", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "properties": { - "foo": {"type": "null"} - } - }, - "tests": [ - { - "description": "allows null values", - "data": {"foo": null}, - "valid": true - } - ] - }, - { - "description": "properties whose names are Javascript object property names", - "comment": "Ensure JS implementations don't universally consider e.g. __proto__ to always be present in an object.", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "properties": { - "__proto__": {"type": "number"}, - "toString": { - "properties": { "length": { "type": "string" } } - }, - "constructor": {"type": "number"} - } - }, - "tests": [ - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - }, - { - "description": "none of the properties mentioned", - "data": {}, - "valid": true - }, - { - "description": "__proto__ not valid", - "data": { "__proto__": "foo" }, - "valid": false - }, - { - "description": "toString not valid", - "data": { "toString": { "length": 37 } }, - "valid": false - }, - { - "description": "constructor not valid", - "data": { "constructor": { "length": 37 } }, - "valid": false - }, - { - "description": "all present and valid", - "data": { - "__proto__": 12, - "toString": { "length": "foo" }, - "constructor": 37 - }, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/propertyNames.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/propertyNames.json deleted file mode 100644 index 7ecfb7ec3..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/propertyNames.json +++ /dev/null @@ -1,85 +0,0 @@ -[ - { - "description": "propertyNames validation", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "propertyNames": {"maxLength": 3} - }, - "tests": [ - { - "description": "all property names valid", - "data": { - "f": {}, - "foo": {} - }, - "valid": true - }, - { - "description": "some property names invalid", - "data": { - "foo": {}, - "foobar": {} - }, - "valid": false - }, - { - "description": "object without properties is valid", - "data": {}, - "valid": true - }, - { - "description": "ignores arrays", - "data": [1, 2, 3, 4], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobar", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "propertyNames with boolean schema true", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "propertyNames": true - }, - "tests": [ - { - "description": "object with any properties is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "empty object is valid", - "data": {}, - "valid": true - } - ] - }, - { - "description": "propertyNames with boolean schema false", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "propertyNames": false - }, - "tests": [ - { - "description": "object with any properties is invalid", - "data": {"foo": 1}, - "valid": false - }, - { - "description": "empty object is valid", - "data": {}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/ref.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/ref.json deleted file mode 100644 index a1d3efaf7..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/ref.json +++ /dev/null @@ -1,1052 +0,0 @@ -[ - { - "description": "root pointer ref", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "properties": { - "foo": {"$ref": "#"} - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "match", - "data": {"foo": false}, - "valid": true - }, - { - "description": "recursive match", - "data": {"foo": {"foo": false}}, - "valid": true - }, - { - "description": "mismatch", - "data": {"bar": false}, - "valid": false - }, - { - "description": "recursive mismatch", - "data": {"foo": {"bar": false}}, - "valid": false - } - ] - }, - { - "description": "relative pointer ref to object", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "properties": { - "foo": {"type": "integer"}, - "bar": {"$ref": "#/properties/foo"} - } - }, - "tests": [ - { - "description": "match", - "data": {"bar": 3}, - "valid": true - }, - { - "description": "mismatch", - "data": {"bar": true}, - "valid": false - } - ] - }, - { - "description": "relative pointer ref to array", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "prefixItems": [ - {"type": "integer"}, - {"$ref": "#/prefixItems/0"} - ] - }, - "tests": [ - { - "description": "match array", - "data": [1, 2], - "valid": true - }, - { - "description": "mismatch array", - "data": [1, "foo"], - "valid": false - } - ] - }, - { - "description": "escaped pointer ref", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$defs": { - "tilde~field": {"type": "integer"}, - "slash/field": {"type": "integer"}, - "percent%field": {"type": "integer"} - }, - "properties": { - "tilde": {"$ref": "#/$defs/tilde~0field"}, - "slash": {"$ref": "#/$defs/slash~1field"}, - "percent": {"$ref": "#/$defs/percent%25field"} - } - }, - "tests": [ - { - "description": "slash invalid", - "data": {"slash": "aoeu"}, - "valid": false - }, - { - "description": "tilde invalid", - "data": {"tilde": "aoeu"}, - "valid": false - }, - { - "description": "percent invalid", - "data": {"percent": "aoeu"}, - "valid": false - }, - { - "description": "slash valid", - "data": {"slash": 123}, - "valid": true - }, - { - "description": "tilde valid", - "data": {"tilde": 123}, - "valid": true - }, - { - "description": "percent valid", - "data": {"percent": 123}, - "valid": true - } - ] - }, - { - "description": "nested refs", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$defs": { - "a": {"type": "integer"}, - "b": {"$ref": "#/$defs/a"}, - "c": {"$ref": "#/$defs/b"} - }, - "$ref": "#/$defs/c" - }, - "tests": [ - { - "description": "nested ref valid", - "data": 5, - "valid": true - }, - { - "description": "nested ref invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "ref applies alongside sibling keywords", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$defs": { - "reffed": { - "type": "array" - } - }, - "properties": { - "foo": { - "$ref": "#/$defs/reffed", - "maxItems": 2 - } - } - }, - "tests": [ - { - "description": "ref valid, maxItems valid", - "data": { "foo": [] }, - "valid": true - }, - { - "description": "ref valid, maxItems invalid", - "data": { "foo": [1, 2, 3] }, - "valid": false - }, - { - "description": "ref invalid", - "data": { "foo": "string" }, - "valid": false - } - ] - }, - { - "description": "remote ref, containing refs itself", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "https://json-schema.org/draft/2020-12/schema" - }, - "tests": [ - { - "description": "remote ref valid", - "data": {"minLength": 1}, - "valid": true - }, - { - "description": "remote ref invalid", - "data": {"minLength": -1}, - "valid": false - } - ] - }, - { - "description": "property named $ref that is not a reference", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "properties": { - "$ref": {"type": "string"} - } - }, - "tests": [ - { - "description": "property named $ref valid", - "data": {"$ref": "a"}, - "valid": true - }, - { - "description": "property named $ref invalid", - "data": {"$ref": 2}, - "valid": false - } - ] - }, - { - "description": "property named $ref, containing an actual $ref", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "properties": { - "$ref": {"$ref": "#/$defs/is-string"} - }, - "$defs": { - "is-string": { - "type": "string" - } - } - }, - "tests": [ - { - "description": "property named $ref valid", - "data": {"$ref": "a"}, - "valid": true - }, - { - "description": "property named $ref invalid", - "data": {"$ref": 2}, - "valid": false - } - ] - }, - { - "description": "$ref to boolean schema true", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/bool", - "$defs": { - "bool": true - } - }, - "tests": [ - { - "description": "any value is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "$ref to boolean schema false", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/bool", - "$defs": { - "bool": false - } - }, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "Recursive references between schemas", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "http://localhost:1234/draft2020-12/tree", - "description": "tree of nodes", - "type": "object", - "properties": { - "meta": {"type": "string"}, - "nodes": { - "type": "array", - "items": {"$ref": "node"} - } - }, - "required": ["meta", "nodes"], - "$defs": { - "node": { - "$id": "http://localhost:1234/draft2020-12/node", - "description": "node", - "type": "object", - "properties": { - "value": {"type": "number"}, - "subtree": {"$ref": "tree"} - }, - "required": ["value"] - } - } - }, - "tests": [ - { - "description": "valid tree", - "data": { - "meta": "root", - "nodes": [ - { - "value": 1, - "subtree": { - "meta": "child", - "nodes": [ - {"value": 1.1}, - {"value": 1.2} - ] - } - }, - { - "value": 2, - "subtree": { - "meta": "child", - "nodes": [ - {"value": 2.1}, - {"value": 2.2} - ] - } - } - ] - }, - "valid": true - }, - { - "description": "invalid tree", - "data": { - "meta": "root", - "nodes": [ - { - "value": 1, - "subtree": { - "meta": "child", - "nodes": [ - {"value": "string is invalid"}, - {"value": 1.2} - ] - } - }, - { - "value": 2, - "subtree": { - "meta": "child", - "nodes": [ - {"value": 2.1}, - {"value": 2.2} - ] - } - } - ] - }, - "valid": false - } - ] - }, - { - "description": "refs with quote", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "properties": { - "foo\"bar": {"$ref": "#/$defs/foo%22bar"} - }, - "$defs": { - "foo\"bar": {"type": "number"} - } - }, - "tests": [ - { - "description": "object with numbers is valid", - "data": { - "foo\"bar": 1 - }, - "valid": true - }, - { - "description": "object with strings is invalid", - "data": { - "foo\"bar": "1" - }, - "valid": false - } - ] - }, - { - "description": "ref creates new scope when adjacent to keywords", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$defs": { - "A": { - "unevaluatedProperties": false - } - }, - "properties": { - "prop1": { - "type": "string" - } - }, - "$ref": "#/$defs/A" - }, - "tests": [ - { - "description": "referenced subschema doesn't see annotations from properties", - "data": { - "prop1": "match" - }, - "valid": false - } - ] - }, - { - "description": "naive replacement of $ref with its destination is not correct", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$defs": { - "a_string": { "type": "string" } - }, - "enum": [ - { "$ref": "#/$defs/a_string" } - ] - }, - "tests": [ - { - "description": "do not evaluate the $ref inside the enum, matching any string", - "data": "this is a string", - "valid": false - }, - { - "description": "do not evaluate the $ref inside the enum, definition exact match", - "data": { "type": "string" }, - "valid": false - }, - { - "description": "match the enum exactly", - "data": { "$ref": "#/$defs/a_string" }, - "valid": true - } - ] - }, - { - "description": "refs with relative uris and defs", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "http://example.com/schema-relative-uri-defs1.json", - "properties": { - "foo": { - "$id": "schema-relative-uri-defs2.json", - "$defs": { - "inner": { - "properties": { - "bar": { "type": "string" } - } - } - }, - "$ref": "#/$defs/inner" - } - }, - "$ref": "schema-relative-uri-defs2.json" - }, - "tests": [ - { - "description": "invalid on inner field", - "data": { - "foo": { - "bar": 1 - }, - "bar": "a" - }, - "valid": false - }, - { - "description": "invalid on outer field", - "data": { - "foo": { - "bar": "a" - }, - "bar": 1 - }, - "valid": false - }, - { - "description": "valid on both fields", - "data": { - "foo": { - "bar": "a" - }, - "bar": "a" - }, - "valid": true - } - ] - }, - { - "description": "relative refs with absolute uris and defs", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "http://example.com/schema-refs-absolute-uris-defs1.json", - "properties": { - "foo": { - "$id": "http://example.com/schema-refs-absolute-uris-defs2.json", - "$defs": { - "inner": { - "properties": { - "bar": { "type": "string" } - } - } - }, - "$ref": "#/$defs/inner" - } - }, - "$ref": "schema-refs-absolute-uris-defs2.json" - }, - "tests": [ - { - "description": "invalid on inner field", - "data": { - "foo": { - "bar": 1 - }, - "bar": "a" - }, - "valid": false - }, - { - "description": "invalid on outer field", - "data": { - "foo": { - "bar": "a" - }, - "bar": 1 - }, - "valid": false - }, - { - "description": "valid on both fields", - "data": { - "foo": { - "bar": "a" - }, - "bar": "a" - }, - "valid": true - } - ] - }, - { - "description": "$id must be resolved against nearest parent, not just immediate parent", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "http://example.com/a.json", - "$defs": { - "x": { - "$id": "http://example.com/b/c.json", - "not": { - "$defs": { - "y": { - "$id": "d.json", - "type": "number" - } - } - } - } - }, - "allOf": [ - { - "$ref": "http://example.com/b/d.json" - } - ] - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "non-number is invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "order of evaluation: $id and $ref", - "schema": { - "$comment": "$id must be evaluated before $ref to get the proper $ref destination", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://example.com/draft2020-12/ref-and-id1/base.json", - "$ref": "int.json", - "$defs": { - "bigint": { - "$comment": "canonical uri: https://example.com/ref-and-id1/int.json", - "$id": "int.json", - "maximum": 10 - }, - "smallint": { - "$comment": "canonical uri: https://example.com/ref-and-id1-int.json", - "$id": "/draft2020-12/ref-and-id1-int.json", - "maximum": 2 - } - } - }, - "tests": [ - { - "description": "data is valid against first definition", - "data": 5, - "valid": true - }, - { - "description": "data is invalid against first definition", - "data": 50, - "valid": false - } - ] - }, - { - "description": "order of evaluation: $id and $anchor and $ref", - "schema": { - "$comment": "$id must be evaluated before $ref to get the proper $ref destination", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://example.com/draft2020-12/ref-and-id2/base.json", - "$ref": "#bigint", - "$defs": { - "bigint": { - "$comment": "canonical uri: /ref-and-id2/base.json#/$defs/bigint; another valid uri for this location: /ref-and-id2/base.json#bigint", - "$anchor": "bigint", - "maximum": 10 - }, - "smallint": { - "$comment": "canonical uri: https://example.com/ref-and-id2#/$defs/smallint; another valid uri for this location: https://example.com/ref-and-id2/#bigint", - "$id": "https://example.com/draft2020-12/ref-and-id2/", - "$anchor": "bigint", - "maximum": 2 - } - } - }, - "tests": [ - { - "description": "data is valid against first definition", - "data": 5, - "valid": true - }, - { - "description": "data is invalid against first definition", - "data": 50, - "valid": false - } - ] - }, - { - "description": "simple URN base URI with $ref via the URN", - "schema": { - "$comment": "URIs do not have to have HTTP(s) schemes", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed", - "minimum": 30, - "properties": { - "foo": {"$ref": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed"} - } - }, - "tests": [ - { - "description": "valid under the URN IDed schema", - "data": {"foo": 37}, - "valid": true - }, - { - "description": "invalid under the URN IDed schema", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "simple URN base URI with JSON pointer", - "schema": { - "$comment": "URIs do not have to have HTTP(s) schemes", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed", - "properties": { - "foo": {"$ref": "#/$defs/bar"} - }, - "$defs": { - "bar": {"type": "string"} - } - }, - "tests": [ - { - "description": "a string is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "a non-string is invalid", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "URN base URI with NSS", - "schema": { - "$comment": "RFC 8141 §2.2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "urn:example:1/406/47452/2", - "properties": { - "foo": {"$ref": "#/$defs/bar"} - }, - "$defs": { - "bar": {"type": "string"} - } - }, - "tests": [ - { - "description": "a string is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "a non-string is invalid", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "URN base URI with r-component", - "schema": { - "$comment": "RFC 8141 §2.3.1", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk", - "properties": { - "foo": {"$ref": "#/$defs/bar"} - }, - "$defs": { - "bar": {"type": "string"} - } - }, - "tests": [ - { - "description": "a string is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "a non-string is invalid", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "URN base URI with q-component", - "schema": { - "$comment": "RFC 8141 §2.3.2", - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z", - "properties": { - "foo": {"$ref": "#/$defs/bar"} - }, - "$defs": { - "bar": {"type": "string"} - } - }, - "tests": [ - { - "description": "a string is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "a non-string is invalid", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "URN base URI with URN and JSON pointer ref", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed", - "properties": { - "foo": {"$ref": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/$defs/bar"} - }, - "$defs": { - "bar": {"type": "string"} - } - }, - "tests": [ - { - "description": "a string is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "a non-string is invalid", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "URN base URI with URN and anchor ref", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed", - "properties": { - "foo": {"$ref": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#something"} - }, - "$defs": { - "bar": { - "$anchor": "something", - "type": "string" - } - } - }, - "tests": [ - { - "description": "a string is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "a non-string is invalid", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "URN ref with nested pointer ref", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "urn:uuid:deadbeef-4321-ffff-ffff-1234feebdaed", - "$defs": { - "foo": { - "$id": "urn:uuid:deadbeef-4321-ffff-ffff-1234feebdaed", - "$defs": {"bar": {"type": "string"}}, - "$ref": "#/$defs/bar" - } - } - }, - "tests": [ - { - "description": "a string is valid", - "data": "bar", - "valid": true - }, - { - "description": "a non-string is invalid", - "data": 12, - "valid": false - } - ] - }, - { - "description": "ref to if", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "http://example.com/ref/if", - "if": { - "$id": "http://example.com/ref/if", - "type": "integer" - } - }, - "tests": [ - { - "description": "a non-integer is invalid due to the $ref", - "data": "foo", - "valid": false - }, - { - "description": "an integer is valid", - "data": 12, - "valid": true - } - ] - }, - { - "description": "ref to then", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "http://example.com/ref/then", - "then": { - "$id": "http://example.com/ref/then", - "type": "integer" - } - }, - "tests": [ - { - "description": "a non-integer is invalid due to the $ref", - "data": "foo", - "valid": false - }, - { - "description": "an integer is valid", - "data": 12, - "valid": true - } - ] - }, - { - "description": "ref to else", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "http://example.com/ref/else", - "else": { - "$id": "http://example.com/ref/else", - "type": "integer" - } - }, - "tests": [ - { - "description": "a non-integer is invalid due to the $ref", - "data": "foo", - "valid": false - }, - { - "description": "an integer is valid", - "data": 12, - "valid": true - } - ] - }, - { - "description": "ref with absolute-path-reference", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "http://example.com/ref/absref.json", - "$defs": { - "a": { - "$id": "http://example.com/ref/absref/foobar.json", - "type": "number" - }, - "b": { - "$id": "http://example.com/absref/foobar.json", - "type": "string" - } - }, - "$ref": "/absref/foobar.json" - }, - "tests": [ - { - "description": "a string is valid", - "data": "foo", - "valid": true - }, - { - "description": "an integer is invalid", - "data": 12, - "valid": false - } - ] - }, - { - "description": "$id with file URI still resolves pointers - *nix", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "file:///folder/file.json", - "$defs": { - "foo": { - "type": "number" - } - }, - "$ref": "#/$defs/foo" - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "non-number is invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "$id with file URI still resolves pointers - windows", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "file:///c:/folder/file.json", - "$defs": { - "foo": { - "type": "number" - } - }, - "$ref": "#/$defs/foo" - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "non-number is invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "empty tokens in $ref json-pointer", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$defs": { - "": { - "$defs": { - "": { "type": "number" } - } - } - }, - "allOf": [ - { - "$ref": "#/$defs//$defs/" - } - ] - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "non-number is invalid", - "data": "a", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/refRemote.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/refRemote.json deleted file mode 100644 index 047ac74ca..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/refRemote.json +++ /dev/null @@ -1,342 +0,0 @@ -[ - { - "description": "remote ref", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "http://localhost:1234/draft2020-12/integer.json" - }, - "tests": [ - { - "description": "remote ref valid", - "data": 1, - "valid": true - }, - { - "description": "remote ref invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "fragment within remote ref", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "http://localhost:1234/draft2020-12/subSchemas.json#/$defs/integer" - }, - "tests": [ - { - "description": "remote fragment valid", - "data": 1, - "valid": true - }, - { - "description": "remote fragment invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "anchor within remote ref", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "http://localhost:1234/draft2020-12/locationIndependentIdentifier.json#foo" - }, - "tests": [ - { - "description": "remote anchor valid", - "data": 1, - "valid": true - }, - { - "description": "remote anchor invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "ref within remote ref", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "http://localhost:1234/draft2020-12/subSchemas.json#/$defs/refToInteger" - }, - "tests": [ - { - "description": "ref within ref valid", - "data": 1, - "valid": true - }, - { - "description": "ref within ref invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "base URI change", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "http://localhost:1234/draft2020-12/", - "items": { - "$id": "baseUriChange/", - "items": {"$ref": "folderInteger.json"} - } - }, - "tests": [ - { - "description": "base URI change ref valid", - "data": [[1]], - "valid": true - }, - { - "description": "base URI change ref invalid", - "data": [["a"]], - "valid": false - } - ] - }, - { - "description": "base URI change - change folder", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "http://localhost:1234/draft2020-12/scope_change_defs1.json", - "type" : "object", - "properties": {"list": {"$ref": "baseUriChangeFolder/"}}, - "$defs": { - "baz": { - "$id": "baseUriChangeFolder/", - "type": "array", - "items": {"$ref": "folderInteger.json"} - } - } - }, - "tests": [ - { - "description": "number is valid", - "data": {"list": [1]}, - "valid": true - }, - { - "description": "string is invalid", - "data": {"list": ["a"]}, - "valid": false - } - ] - }, - { - "description": "base URI change - change folder in subschema", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "http://localhost:1234/draft2020-12/scope_change_defs2.json", - "type" : "object", - "properties": {"list": {"$ref": "baseUriChangeFolderInSubschema/#/$defs/bar"}}, - "$defs": { - "baz": { - "$id": "baseUriChangeFolderInSubschema/", - "$defs": { - "bar": { - "type": "array", - "items": {"$ref": "folderInteger.json"} - } - } - } - } - }, - "tests": [ - { - "description": "number is valid", - "data": {"list": [1]}, - "valid": true - }, - { - "description": "string is invalid", - "data": {"list": ["a"]}, - "valid": false - } - ] - }, - { - "description": "root ref in remote ref", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "http://localhost:1234/draft2020-12/object", - "type": "object", - "properties": { - "name": {"$ref": "name-defs.json#/$defs/orNull"} - } - }, - "tests": [ - { - "description": "string is valid", - "data": { - "name": "foo" - }, - "valid": true - }, - { - "description": "null is valid", - "data": { - "name": null - }, - "valid": true - }, - { - "description": "object is invalid", - "data": { - "name": { - "name": null - } - }, - "valid": false - } - ] - }, - { - "description": "remote ref with ref to defs", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "http://localhost:1234/draft2020-12/schema-remote-ref-ref-defs1.json", - "$ref": "ref-and-defs.json" - }, - "tests": [ - { - "description": "invalid", - "data": { - "bar": 1 - }, - "valid": false - }, - { - "description": "valid", - "data": { - "bar": "a" - }, - "valid": true - } - ] - }, - { - "description": "Location-independent identifier in remote ref", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "http://localhost:1234/draft2020-12/locationIndependentIdentifier.json#/$defs/refToInteger" - }, - "tests": [ - { - "description": "integer is valid", - "data": 1, - "valid": true - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "retrieved nested refs resolve relative to their URI not $id", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "http://localhost:1234/draft2020-12/some-id", - "properties": { - "name": {"$ref": "nested/foo-ref-string.json"} - } - }, - "tests": [ - { - "description": "number is invalid", - "data": { - "name": {"foo": 1} - }, - "valid": false - }, - { - "description": "string is valid", - "data": { - "name": {"foo": "a"} - }, - "valid": true - } - ] - }, - { - "description": "remote HTTP ref with different $id", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "http://localhost:1234/different-id-ref-string.json" - }, - "tests": [ - { - "description": "number is invalid", - "data": 1, - "valid": false - }, - { - "description": "string is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "remote HTTP ref with different URN $id", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "http://localhost:1234/urn-ref-string.json" - }, - "tests": [ - { - "description": "number is invalid", - "data": 1, - "valid": false - }, - { - "description": "string is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "remote HTTP ref with nested absolute ref", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "http://localhost:1234/nested-absolute-ref-to-string.json" - }, - "tests": [ - { - "description": "number is invalid", - "data": 1, - "valid": false - }, - { - "description": "string is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "$ref to $ref finds detached $anchor", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "http://localhost:1234/draft2020-12/detached-ref.json#/$defs/foo" - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "non-number is invalid", - "data": "a", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/required.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/required.json deleted file mode 100644 index b7cb99a63..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/required.json +++ /dev/null @@ -1,158 +0,0 @@ -[ - { - "description": "required validation", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "properties": { - "foo": {}, - "bar": {} - }, - "required": ["foo"] - }, - "tests": [ - { - "description": "present required property is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "non-present required property is invalid", - "data": {"bar": 1}, - "valid": false - }, - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores strings", - "data": "", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "required default validation", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "properties": { - "foo": {} - } - }, - "tests": [ - { - "description": "not required by default", - "data": {}, - "valid": true - } - ] - }, - { - "description": "required with empty array", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "properties": { - "foo": {} - }, - "required": [] - }, - "tests": [ - { - "description": "property not required", - "data": {}, - "valid": true - } - ] - }, - { - "description": "required with escaped characters", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "required": [ - "foo\nbar", - "foo\"bar", - "foo\\bar", - "foo\rbar", - "foo\tbar", - "foo\fbar" - ] - }, - "tests": [ - { - "description": "object with all properties present is valid", - "data": { - "foo\nbar": 1, - "foo\"bar": 1, - "foo\\bar": 1, - "foo\rbar": 1, - "foo\tbar": 1, - "foo\fbar": 1 - }, - "valid": true - }, - { - "description": "object with some properties missing is invalid", - "data": { - "foo\nbar": "1", - "foo\"bar": "1" - }, - "valid": false - } - ] - }, - { - "description": "required properties whose names are Javascript object property names", - "comment": "Ensure JS implementations don't universally consider e.g. __proto__ to always be present in an object.", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "required": ["__proto__", "toString", "constructor"] - }, - "tests": [ - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - }, - { - "description": "none of the properties mentioned", - "data": {}, - "valid": false - }, - { - "description": "__proto__ present", - "data": { "__proto__": "foo" }, - "valid": false - }, - { - "description": "toString present", - "data": { "toString": { "length": 37 } }, - "valid": false - }, - { - "description": "constructor present", - "data": { "constructor": { "length": 37 } }, - "valid": false - }, - { - "description": "all present", - "data": { - "__proto__": 12, - "toString": { "length": "foo" }, - "constructor": 37 - }, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/type.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/type.json deleted file mode 100644 index 2123c408d..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/type.json +++ /dev/null @@ -1,501 +0,0 @@ -[ - { - "description": "integer type matches integers", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "integer" - }, - "tests": [ - { - "description": "an integer is an integer", - "data": 1, - "valid": true - }, - { - "description": "a float with zero fractional part is an integer", - "data": 1.0, - "valid": true - }, - { - "description": "a float is not an integer", - "data": 1.1, - "valid": false - }, - { - "description": "a string is not an integer", - "data": "foo", - "valid": false - }, - { - "description": "a string is still not an integer, even if it looks like one", - "data": "1", - "valid": false - }, - { - "description": "an object is not an integer", - "data": {}, - "valid": false - }, - { - "description": "an array is not an integer", - "data": [], - "valid": false - }, - { - "description": "a boolean is not an integer", - "data": true, - "valid": false - }, - { - "description": "null is not an integer", - "data": null, - "valid": false - } - ] - }, - { - "description": "number type matches numbers", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "number" - }, - "tests": [ - { - "description": "an integer is a number", - "data": 1, - "valid": true - }, - { - "description": "a float with zero fractional part is a number (and an integer)", - "data": 1.0, - "valid": true - }, - { - "description": "a float is a number", - "data": 1.1, - "valid": true - }, - { - "description": "a string is not a number", - "data": "foo", - "valid": false - }, - { - "description": "a string is still not a number, even if it looks like one", - "data": "1", - "valid": false - }, - { - "description": "an object is not a number", - "data": {}, - "valid": false - }, - { - "description": "an array is not a number", - "data": [], - "valid": false - }, - { - "description": "a boolean is not a number", - "data": true, - "valid": false - }, - { - "description": "null is not a number", - "data": null, - "valid": false - } - ] - }, - { - "description": "string type matches strings", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "string" - }, - "tests": [ - { - "description": "1 is not a string", - "data": 1, - "valid": false - }, - { - "description": "a float is not a string", - "data": 1.1, - "valid": false - }, - { - "description": "a string is a string", - "data": "foo", - "valid": true - }, - { - "description": "a string is still a string, even if it looks like a number", - "data": "1", - "valid": true - }, - { - "description": "an empty string is still a string", - "data": "", - "valid": true - }, - { - "description": "an object is not a string", - "data": {}, - "valid": false - }, - { - "description": "an array is not a string", - "data": [], - "valid": false - }, - { - "description": "a boolean is not a string", - "data": true, - "valid": false - }, - { - "description": "null is not a string", - "data": null, - "valid": false - } - ] - }, - { - "description": "object type matches objects", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object" - }, - "tests": [ - { - "description": "an integer is not an object", - "data": 1, - "valid": false - }, - { - "description": "a float is not an object", - "data": 1.1, - "valid": false - }, - { - "description": "a string is not an object", - "data": "foo", - "valid": false - }, - { - "description": "an object is an object", - "data": {}, - "valid": true - }, - { - "description": "an array is not an object", - "data": [], - "valid": false - }, - { - "description": "a boolean is not an object", - "data": true, - "valid": false - }, - { - "description": "null is not an object", - "data": null, - "valid": false - } - ] - }, - { - "description": "array type matches arrays", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "array" - }, - "tests": [ - { - "description": "an integer is not an array", - "data": 1, - "valid": false - }, - { - "description": "a float is not an array", - "data": 1.1, - "valid": false - }, - { - "description": "a string is not an array", - "data": "foo", - "valid": false - }, - { - "description": "an object is not an array", - "data": {}, - "valid": false - }, - { - "description": "an array is an array", - "data": [], - "valid": true - }, - { - "description": "a boolean is not an array", - "data": true, - "valid": false - }, - { - "description": "null is not an array", - "data": null, - "valid": false - } - ] - }, - { - "description": "boolean type matches booleans", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "boolean" - }, - "tests": [ - { - "description": "an integer is not a boolean", - "data": 1, - "valid": false - }, - { - "description": "zero is not a boolean", - "data": 0, - "valid": false - }, - { - "description": "a float is not a boolean", - "data": 1.1, - "valid": false - }, - { - "description": "a string is not a boolean", - "data": "foo", - "valid": false - }, - { - "description": "an empty string is not a boolean", - "data": "", - "valid": false - }, - { - "description": "an object is not a boolean", - "data": {}, - "valid": false - }, - { - "description": "an array is not a boolean", - "data": [], - "valid": false - }, - { - "description": "true is a boolean", - "data": true, - "valid": true - }, - { - "description": "false is a boolean", - "data": false, - "valid": true - }, - { - "description": "null is not a boolean", - "data": null, - "valid": false - } - ] - }, - { - "description": "null type matches only the null object", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "null" - }, - "tests": [ - { - "description": "an integer is not null", - "data": 1, - "valid": false - }, - { - "description": "a float is not null", - "data": 1.1, - "valid": false - }, - { - "description": "zero is not null", - "data": 0, - "valid": false - }, - { - "description": "a string is not null", - "data": "foo", - "valid": false - }, - { - "description": "an empty string is not null", - "data": "", - "valid": false - }, - { - "description": "an object is not null", - "data": {}, - "valid": false - }, - { - "description": "an array is not null", - "data": [], - "valid": false - }, - { - "description": "true is not null", - "data": true, - "valid": false - }, - { - "description": "false is not null", - "data": false, - "valid": false - }, - { - "description": "null is null", - "data": null, - "valid": true - } - ] - }, - { - "description": "multiple types can be specified in an array", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": ["integer", "string"] - }, - "tests": [ - { - "description": "an integer is valid", - "data": 1, - "valid": true - }, - { - "description": "a string is valid", - "data": "foo", - "valid": true - }, - { - "description": "a float is invalid", - "data": 1.1, - "valid": false - }, - { - "description": "an object is invalid", - "data": {}, - "valid": false - }, - { - "description": "an array is invalid", - "data": [], - "valid": false - }, - { - "description": "a boolean is invalid", - "data": true, - "valid": false - }, - { - "description": "null is invalid", - "data": null, - "valid": false - } - ] - }, - { - "description": "type as array with one item", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": ["string"] - }, - "tests": [ - { - "description": "string is valid", - "data": "foo", - "valid": true - }, - { - "description": "number is invalid", - "data": 123, - "valid": false - } - ] - }, - { - "description": "type: array or object", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": ["array", "object"] - }, - "tests": [ - { - "description": "array is valid", - "data": [1,2,3], - "valid": true - }, - { - "description": "object is valid", - "data": {"foo": 123}, - "valid": true - }, - { - "description": "number is invalid", - "data": 123, - "valid": false - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - }, - { - "description": "null is invalid", - "data": null, - "valid": false - } - ] - }, - { - "description": "type: array, object or null", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": ["array", "object", "null"] - }, - "tests": [ - { - "description": "array is valid", - "data": [1,2,3], - "valid": true - }, - { - "description": "object is valid", - "data": {"foo": 123}, - "valid": true - }, - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "number is invalid", - "data": 123, - "valid": false - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/unevaluatedItems.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/unevaluatedItems.json deleted file mode 100644 index f861cefad..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/unevaluatedItems.json +++ /dev/null @@ -1,798 +0,0 @@ -[ - { - "description": "unevaluatedItems true", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "unevaluatedItems": true - }, - "tests": [ - { - "description": "with no unevaluated items", - "data": [], - "valid": true - }, - { - "description": "with unevaluated items", - "data": ["foo"], - "valid": true - } - ] - }, - { - "description": "unevaluatedItems false", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "unevaluatedItems": false - }, - "tests": [ - { - "description": "with no unevaluated items", - "data": [], - "valid": true - }, - { - "description": "with unevaluated items", - "data": ["foo"], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems as schema", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "unevaluatedItems": { "type": "string" } - }, - "tests": [ - { - "description": "with no unevaluated items", - "data": [], - "valid": true - }, - { - "description": "with valid unevaluated items", - "data": ["foo"], - "valid": true - }, - { - "description": "with invalid unevaluated items", - "data": [42], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems with uniform items", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "items": { "type": "string" }, - "unevaluatedItems": false - }, - "tests": [ - { - "description": "unevaluatedItems doesn't apply", - "data": ["foo", "bar"], - "valid": true - } - ] - }, - { - "description": "unevaluatedItems with tuple", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "prefixItems": [ - { "type": "string" } - ], - "unevaluatedItems": false - }, - "tests": [ - { - "description": "with no unevaluated items", - "data": ["foo"], - "valid": true - }, - { - "description": "with unevaluated items", - "data": ["foo", "bar"], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems with items and prefixItems", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "prefixItems": [ - { "type": "string" } - ], - "items": true, - "unevaluatedItems": false - }, - "tests": [ - { - "description": "unevaluatedItems doesn't apply", - "data": ["foo", 42], - "valid": true - } - ] - }, - { - "description": "unevaluatedItems with items", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "items": {"type": "number"}, - "unevaluatedItems": {"type": "string"} - }, - "tests": [ - { - "description": "valid under items", - "comment": "no elements are considered by unevaluatedItems", - "data": [5, 6, 7, 8], - "valid": true - }, - { - "description": "invalid under items", - "data": ["foo", "bar", "baz"], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems with nested tuple", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "prefixItems": [ - { "type": "string" } - ], - "allOf": [ - { - "prefixItems": [ - true, - { "type": "number" } - ] - } - ], - "unevaluatedItems": false - }, - "tests": [ - { - "description": "with no unevaluated items", - "data": ["foo", 42], - "valid": true - }, - { - "description": "with unevaluated items", - "data": ["foo", 42, true], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems with nested items", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "unevaluatedItems": {"type": "boolean"}, - "anyOf": [ - { "items": {"type": "string"} }, - true - ] - }, - "tests": [ - { - "description": "with only (valid) additional items", - "data": [true, false], - "valid": true - }, - { - "description": "with no additional items", - "data": ["yes", "no"], - "valid": true - }, - { - "description": "with invalid additional item", - "data": ["yes", false], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems with nested prefixItems and items", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "allOf": [ - { - "prefixItems": [ - { "type": "string" } - ], - "items": true - } - ], - "unevaluatedItems": false - }, - "tests": [ - { - "description": "with no additional items", - "data": ["foo"], - "valid": true - }, - { - "description": "with additional items", - "data": ["foo", 42, true], - "valid": true - } - ] - }, - { - "description": "unevaluatedItems with nested unevaluatedItems", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "allOf": [ - { - "prefixItems": [ - { "type": "string" } - ] - }, - { "unevaluatedItems": true } - ], - "unevaluatedItems": false - }, - "tests": [ - { - "description": "with no additional items", - "data": ["foo"], - "valid": true - }, - { - "description": "with additional items", - "data": ["foo", 42, true], - "valid": true - } - ] - }, - { - "description": "unevaluatedItems with anyOf", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "prefixItems": [ - { "const": "foo" } - ], - "anyOf": [ - { - "prefixItems": [ - true, - { "const": "bar" } - ] - }, - { - "prefixItems": [ - true, - true, - { "const": "baz" } - ] - } - ], - "unevaluatedItems": false - }, - "tests": [ - { - "description": "when one schema matches and has no unevaluated items", - "data": ["foo", "bar"], - "valid": true - }, - { - "description": "when one schema matches and has unevaluated items", - "data": ["foo", "bar", 42], - "valid": false - }, - { - "description": "when two schemas match and has no unevaluated items", - "data": ["foo", "bar", "baz"], - "valid": true - }, - { - "description": "when two schemas match and has unevaluated items", - "data": ["foo", "bar", "baz", 42], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems with oneOf", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "prefixItems": [ - { "const": "foo" } - ], - "oneOf": [ - { - "prefixItems": [ - true, - { "const": "bar" } - ] - }, - { - "prefixItems": [ - true, - { "const": "baz" } - ] - } - ], - "unevaluatedItems": false - }, - "tests": [ - { - "description": "with no unevaluated items", - "data": ["foo", "bar"], - "valid": true - }, - { - "description": "with unevaluated items", - "data": ["foo", "bar", 42], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems with not", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "prefixItems": [ - { "const": "foo" } - ], - "not": { - "not": { - "prefixItems": [ - true, - { "const": "bar" } - ] - } - }, - "unevaluatedItems": false - }, - "tests": [ - { - "description": "with unevaluated items", - "data": ["foo", "bar"], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems with if/then/else", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "prefixItems": [ - { "const": "foo" } - ], - "if": { - "prefixItems": [ - true, - { "const": "bar" } - ] - }, - "then": { - "prefixItems": [ - true, - true, - { "const": "then" } - ] - }, - "else": { - "prefixItems": [ - true, - true, - true, - { "const": "else" } - ] - }, - "unevaluatedItems": false - }, - "tests": [ - { - "description": "when if matches and it has no unevaluated items", - "data": ["foo", "bar", "then"], - "valid": true - }, - { - "description": "when if matches and it has unevaluated items", - "data": ["foo", "bar", "then", "else"], - "valid": false - }, - { - "description": "when if doesn't match and it has no unevaluated items", - "data": ["foo", 42, 42, "else"], - "valid": true - }, - { - "description": "when if doesn't match and it has unevaluated items", - "data": ["foo", 42, 42, "else", 42], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems with boolean schemas", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "allOf": [true], - "unevaluatedItems": false - }, - "tests": [ - { - "description": "with no unevaluated items", - "data": [], - "valid": true - }, - { - "description": "with unevaluated items", - "data": ["foo"], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems with $ref", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$ref": "#/$defs/bar", - "prefixItems": [ - { "type": "string" } - ], - "unevaluatedItems": false, - "$defs": { - "bar": { - "prefixItems": [ - true, - { "type": "string" } - ] - } - } - }, - "tests": [ - { - "description": "with no unevaluated items", - "data": ["foo", "bar"], - "valid": true - }, - { - "description": "with unevaluated items", - "data": ["foo", "bar", "baz"], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems before $ref", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "unevaluatedItems": false, - "prefixItems": [ - { "type": "string" } - ], - "$ref": "#/$defs/bar", - "$defs": { - "bar": { - "prefixItems": [ - true, - { "type": "string" } - ] - } - } - }, - "tests": [ - { - "description": "with no unevaluated items", - "data": ["foo", "bar"], - "valid": true - }, - { - "description": "with unevaluated items", - "data": ["foo", "bar", "baz"], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems with $dynamicRef", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://example.com/unevaluated-items-with-dynamic-ref/derived", - - "$ref": "./baseSchema", - - "$defs": { - "derived": { - "$dynamicAnchor": "addons", - "prefixItems": [ - true, - { "type": "string" } - ] - }, - "baseSchema": { - "$id": "./baseSchema", - - "$comment": "unevaluatedItems comes first so it's more likely to catch bugs with implementations that are sensitive to keyword ordering", - "unevaluatedItems": false, - "type": "array", - "prefixItems": [ - { "type": "string" } - ], - "$dynamicRef": "#addons", - - "$defs": { - "defaultAddons": { - "$comment": "Needed to satisfy the bookending requirement", - "$dynamicAnchor": "addons" - } - } - } - } - }, - "tests": [ - { - "description": "with no unevaluated items", - "data": ["foo", "bar"], - "valid": true - }, - { - "description": "with unevaluated items", - "data": ["foo", "bar", "baz"], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems can't see inside cousins", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "allOf": [ - { - "prefixItems": [ true ] - }, - { "unevaluatedItems": false } - ] - }, - "tests": [ - { - "description": "always fails", - "data": [ 1 ], - "valid": false - } - ] - }, - { - "description": "item is evaluated in an uncle schema to unevaluatedItems", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "properties": { - "foo": { - "prefixItems": [ - { "type": "string" } - ], - "unevaluatedItems": false - } - }, - "anyOf": [ - { - "properties": { - "foo": { - "prefixItems": [ - true, - { "type": "string" } - ] - } - } - } - ] - }, - "tests": [ - { - "description": "no extra items", - "data": { - "foo": [ - "test" - ] - }, - "valid": true - }, - { - "description": "uncle keyword evaluation is not significant", - "data": { - "foo": [ - "test", - "test" - ] - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedItems depends on adjacent contains", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "prefixItems": [true], - "contains": {"type": "string"}, - "unevaluatedItems": false - }, - "tests": [ - { - "description": "second item is evaluated by contains", - "data": [ 1, "foo" ], - "valid": true - }, - { - "description": "contains fails, second item is not evaluated", - "data": [ 1, 2 ], - "valid": false - }, - { - "description": "contains passes, second item is not evaluated", - "data": [ 1, 2, "foo" ], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems depends on multiple nested contains", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "allOf": [ - { "contains": { "multipleOf": 2 } }, - { "contains": { "multipleOf": 3 } } - ], - "unevaluatedItems": { "multipleOf": 5 } - }, - "tests": [ - { - "description": "5 not evaluated, passes unevaluatedItems", - "data": [ 2, 3, 4, 5, 6 ], - "valid": true - }, - { - "description": "7 not evaluated, fails unevaluatedItems", - "data": [ 2, 3, 4, 7, 8 ], - "valid": false - } - ] - }, - { - "description": "unevaluatedItems and contains interact to control item dependency relationship", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "if": { - "contains": {"const": "a"} - }, - "then": { - "if": { - "contains": {"const": "b"} - }, - "then": { - "if": { - "contains": {"const": "c"} - } - } - }, - "unevaluatedItems": false - }, - "tests": [ - { - "description": "empty array is valid", - "data": [], - "valid": true - }, - { - "description": "only a's are valid", - "data": [ "a", "a" ], - "valid": true - }, - { - "description": "a's and b's are valid", - "data": [ "a", "b", "a", "b", "a" ], - "valid": true - }, - { - "description": "a's, b's and c's are valid", - "data": [ "c", "a", "c", "c", "b", "a" ], - "valid": true - }, - { - "description": "only b's are invalid", - "data": [ "b", "b" ], - "valid": false - }, - { - "description": "only c's are invalid", - "data": [ "c", "c" ], - "valid": false - }, - { - "description": "only b's and c's are invalid", - "data": [ "c", "b", "c", "b", "c" ], - "valid": false - }, - { - "description": "only a's and c's are invalid", - "data": [ "c", "a", "c", "a", "c" ], - "valid": false - } - ] - }, - { - "description": "non-array instances are valid", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "unevaluatedItems": false - }, - "tests": [ - { - "description": "ignores booleans", - "data": true, - "valid": true - }, - { - "description": "ignores integers", - "data": 123, - "valid": true - }, - { - "description": "ignores floats", - "data": 1.0, - "valid": true - }, - { - "description": "ignores objects", - "data": {}, - "valid": true - }, - { - "description": "ignores strings", - "data": "foo", - "valid": true - }, - { - "description": "ignores null", - "data": null, - "valid": true - } - ] - }, - { - "description": "unevaluatedItems with null instance elements", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "unevaluatedItems": { - "type": "null" - } - }, - "tests": [ - { - "description": "allows null elements", - "data": [ null ], - "valid": true - } - ] - }, - { - "description": "unevaluatedItems can see annotations from if without then and else", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "if": { - "prefixItems": [{"const": "a"}] - }, - "unevaluatedItems": false - }, - "tests": [ - { - "description": "valid in case if is evaluated", - "data": [ "a" ], - "valid": true - }, - { - "description": "invalid in case if is evaluated", - "data": [ "b" ], - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/unevaluatedProperties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/unevaluatedProperties.json deleted file mode 100644 index ae29c9eb3..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/unevaluatedProperties.json +++ /dev/null @@ -1,1601 +0,0 @@ -[ - { - "description": "unevaluatedProperties true", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "unevaluatedProperties": true - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": {}, - "valid": true - }, - { - "description": "with unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": true - } - ] - }, - { - "description": "unevaluatedProperties schema", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "unevaluatedProperties": { - "type": "string", - "minLength": 3 - } - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": {}, - "valid": true - }, - { - "description": "with valid unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with invalid unevaluated properties", - "data": { - "foo": "fo" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties false", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": {}, - "valid": true - }, - { - "description": "with unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with adjacent properties", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with adjacent patternProperties", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "patternProperties": { - "^foo": { "type": "string" } - }, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with adjacent additionalProperties", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "additionalProperties": true, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no additional properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with additional properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - } - ] - }, - { - "description": "unevaluatedProperties with nested properties", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "allOf": [ - { - "properties": { - "bar": { "type": "string" } - } - } - ], - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no additional properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - }, - { - "description": "with additional properties", - "data": { - "foo": "foo", - "bar": "bar", - "baz": "baz" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with nested patternProperties", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "allOf": [ - { - "patternProperties": { - "^bar": { "type": "string" } - } - } - ], - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no additional properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - }, - { - "description": "with additional properties", - "data": { - "foo": "foo", - "bar": "bar", - "baz": "baz" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with nested additionalProperties", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "allOf": [ - { - "additionalProperties": true - } - ], - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no additional properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with additional properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - } - ] - }, - { - "description": "unevaluatedProperties with nested unevaluatedProperties", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "allOf": [ - { - "unevaluatedProperties": true - } - ], - "unevaluatedProperties": { - "type": "string", - "maxLength": 2 - } - }, - "tests": [ - { - "description": "with no nested unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with nested unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - } - ] - }, - { - "description": "unevaluatedProperties with anyOf", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "anyOf": [ - { - "properties": { - "bar": { "const": "bar" } - }, - "required": ["bar"] - }, - { - "properties": { - "baz": { "const": "baz" } - }, - "required": ["baz"] - }, - { - "properties": { - "quux": { "const": "quux" } - }, - "required": ["quux"] - } - ], - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "when one matches and has no unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - }, - { - "description": "when one matches and has unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar", - "baz": "not-baz" - }, - "valid": false - }, - { - "description": "when two match and has no unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar", - "baz": "baz" - }, - "valid": true - }, - { - "description": "when two match and has unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar", - "baz": "baz", - "quux": "not-quux" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with oneOf", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "oneOf": [ - { - "properties": { - "bar": { "const": "bar" } - }, - "required": ["bar"] - }, - { - "properties": { - "baz": { "const": "baz" } - }, - "required": ["baz"] - } - ], - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - }, - { - "description": "with unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar", - "quux": "quux" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with not", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "not": { - "not": { - "properties": { - "bar": { "const": "bar" } - }, - "required": ["bar"] - } - }, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with if/then/else", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "if": { - "properties": { - "foo": { "const": "then" } - }, - "required": ["foo"] - }, - "then": { - "properties": { - "bar": { "type": "string" } - }, - "required": ["bar"] - }, - "else": { - "properties": { - "baz": { "type": "string" } - }, - "required": ["baz"] - }, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "when if is true and has no unevaluated properties", - "data": { - "foo": "then", - "bar": "bar" - }, - "valid": true - }, - { - "description": "when if is true and has unevaluated properties", - "data": { - "foo": "then", - "bar": "bar", - "baz": "baz" - }, - "valid": false - }, - { - "description": "when if is false and has no unevaluated properties", - "data": { - "baz": "baz" - }, - "valid": true - }, - { - "description": "when if is false and has unevaluated properties", - "data": { - "foo": "else", - "baz": "baz" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with if/then/else, then not defined", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "if": { - "properties": { - "foo": { "const": "then" } - }, - "required": ["foo"] - }, - "else": { - "properties": { - "baz": { "type": "string" } - }, - "required": ["baz"] - }, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "when if is true and has no unevaluated properties", - "data": { - "foo": "then", - "bar": "bar" - }, - "valid": false - }, - { - "description": "when if is true and has unevaluated properties", - "data": { - "foo": "then", - "bar": "bar", - "baz": "baz" - }, - "valid": false - }, - { - "description": "when if is false and has no unevaluated properties", - "data": { - "baz": "baz" - }, - "valid": true - }, - { - "description": "when if is false and has unevaluated properties", - "data": { - "foo": "else", - "baz": "baz" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with if/then/else, else not defined", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "if": { - "properties": { - "foo": { "const": "then" } - }, - "required": ["foo"] - }, - "then": { - "properties": { - "bar": { "type": "string" } - }, - "required": ["bar"] - }, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "when if is true and has no unevaluated properties", - "data": { - "foo": "then", - "bar": "bar" - }, - "valid": true - }, - { - "description": "when if is true and has unevaluated properties", - "data": { - "foo": "then", - "bar": "bar", - "baz": "baz" - }, - "valid": false - }, - { - "description": "when if is false and has no unevaluated properties", - "data": { - "baz": "baz" - }, - "valid": false - }, - { - "description": "when if is false and has unevaluated properties", - "data": { - "foo": "else", - "baz": "baz" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with dependentSchemas", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "dependentSchemas": { - "foo": { - "properties": { - "bar": { "const": "bar" } - }, - "required": ["bar"] - } - }, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - }, - { - "description": "with unevaluated properties", - "data": { - "bar": "bar" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with boolean schemas", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "allOf": [true], - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with unevaluated properties", - "data": { - "bar": "bar" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with $ref", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "$ref": "#/$defs/bar", - "properties": { - "foo": { "type": "string" } - }, - "unevaluatedProperties": false, - "$defs": { - "bar": { - "properties": { - "bar": { "type": "string" } - } - } - } - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - }, - { - "description": "with unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar", - "baz": "baz" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties before $ref", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "unevaluatedProperties": false, - "properties": { - "foo": { "type": "string" } - }, - "$ref": "#/$defs/bar", - "$defs": { - "bar": { - "properties": { - "bar": { "type": "string" } - } - } - } - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - }, - { - "description": "with unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar", - "baz": "baz" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties with $dynamicRef", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://example.com/unevaluated-properties-with-dynamic-ref/derived", - - "$ref": "./baseSchema", - - "$defs": { - "derived": { - "$dynamicAnchor": "addons", - "properties": { - "bar": { "type": "string" } - } - }, - "baseSchema": { - "$id": "./baseSchema", - - "$comment": "unevaluatedProperties comes first so it's more likely to catch bugs with implementations that are sensitive to keyword ordering", - "unevaluatedProperties": false, - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "$dynamicRef": "#addons", - - "$defs": { - "defaultAddons": { - "$comment": "Needed to satisfy the bookending requirement", - "$dynamicAnchor": "addons" - } - } - } - } - }, - "tests": [ - { - "description": "with no unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - }, - { - "description": "with unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar", - "baz": "baz" - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties can't see inside cousins", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "allOf": [ - { - "properties": { - "foo": true - } - }, - { - "unevaluatedProperties": false - } - ] - }, - "tests": [ - { - "description": "always fails", - "data": { - "foo": 1 - }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties can't see inside cousins (reverse order)", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "allOf": [ - { - "unevaluatedProperties": false - }, - { - "properties": { - "foo": true - } - } - ] - }, - "tests": [ - { - "description": "always fails", - "data": { - "foo": 1 - }, - "valid": false - } - ] - }, - { - "description": "nested unevaluatedProperties, outer false, inner true, properties outside", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "allOf": [ - { - "unevaluatedProperties": true - } - ], - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no nested unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with nested unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - } - ] - }, - { - "description": "nested unevaluatedProperties, outer false, inner true, properties inside", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "allOf": [ - { - "properties": { - "foo": { "type": "string" } - }, - "unevaluatedProperties": true - } - ], - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "with no nested unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with nested unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": true - } - ] - }, - { - "description": "nested unevaluatedProperties, outer true, inner false, properties outside", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "foo": { "type": "string" } - }, - "allOf": [ - { - "unevaluatedProperties": false - } - ], - "unevaluatedProperties": true - }, - "tests": [ - { - "description": "with no nested unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": false - }, - { - "description": "with nested unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": false - } - ] - }, - { - "description": "nested unevaluatedProperties, outer true, inner false, properties inside", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "allOf": [ - { - "properties": { - "foo": { "type": "string" } - }, - "unevaluatedProperties": false - } - ], - "unevaluatedProperties": true - }, - "tests": [ - { - "description": "with no nested unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with nested unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": false - } - ] - }, - { - "description": "cousin unevaluatedProperties, true and false, true with properties", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "allOf": [ - { - "properties": { - "foo": { "type": "string" } - }, - "unevaluatedProperties": true - }, - { - "unevaluatedProperties": false - } - ] - }, - "tests": [ - { - "description": "with no nested unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": false - }, - { - "description": "with nested unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": false - } - ] - }, - { - "description": "cousin unevaluatedProperties, true and false, false with properties", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "allOf": [ - { - "unevaluatedProperties": true - }, - { - "properties": { - "foo": { "type": "string" } - }, - "unevaluatedProperties": false - } - ] - }, - "tests": [ - { - "description": "with no nested unevaluated properties", - "data": { - "foo": "foo" - }, - "valid": true - }, - { - "description": "with nested unevaluated properties", - "data": { - "foo": "foo", - "bar": "bar" - }, - "valid": false - } - ] - }, - { - "description": "property is evaluated in an uncle schema to unevaluatedProperties", - "comment": "see https://stackoverflow.com/questions/66936884/deeply-nested-unevaluatedproperties-and-their-expectations", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "foo": { - "type": "object", - "properties": { - "bar": { - "type": "string" - } - }, - "unevaluatedProperties": false - } - }, - "anyOf": [ - { - "properties": { - "foo": { - "properties": { - "faz": { - "type": "string" - } - } - } - } - } - ] - }, - "tests": [ - { - "description": "no extra properties", - "data": { - "foo": { - "bar": "test" - } - }, - "valid": true - }, - { - "description": "uncle keyword evaluation is not significant", - "data": { - "foo": { - "bar": "test", - "faz": "test" - } - }, - "valid": false - } - ] - }, - { - "description": "in-place applicator siblings, allOf has unevaluated", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "allOf": [ - { - "properties": { - "foo": true - }, - "unevaluatedProperties": false - } - ], - "anyOf": [ - { - "properties": { - "bar": true - } - } - ] - }, - "tests": [ - { - "description": "base case: both properties present", - "data": { - "foo": 1, - "bar": 1 - }, - "valid": false - }, - { - "description": "in place applicator siblings, bar is missing", - "data": { - "foo": 1 - }, - "valid": true - }, - { - "description": "in place applicator siblings, foo is missing", - "data": { - "bar": 1 - }, - "valid": false - } - ] - }, - { - "description": "in-place applicator siblings, anyOf has unevaluated", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "allOf": [ - { - "properties": { - "foo": true - } - } - ], - "anyOf": [ - { - "properties": { - "bar": true - }, - "unevaluatedProperties": false - } - ] - }, - "tests": [ - { - "description": "base case: both properties present", - "data": { - "foo": 1, - "bar": 1 - }, - "valid": false - }, - { - "description": "in place applicator siblings, bar is missing", - "data": { - "foo": 1 - }, - "valid": false - }, - { - "description": "in place applicator siblings, foo is missing", - "data": { - "bar": 1 - }, - "valid": true - } - ] - }, - { - "description": "unevaluatedProperties + single cyclic ref", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "type": "object", - "properties": { - "x": { "$ref": "#" } - }, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "Empty is valid", - "data": {}, - "valid": true - }, - { - "description": "Single is valid", - "data": { "x": {} }, - "valid": true - }, - { - "description": "Unevaluated on 1st level is invalid", - "data": { "x": {}, "y": {} }, - "valid": false - }, - { - "description": "Nested is valid", - "data": { "x": { "x": {} } }, - "valid": true - }, - { - "description": "Unevaluated on 2nd level is invalid", - "data": { "x": { "x": {}, "y": {} } }, - "valid": false - }, - { - "description": "Deep nested is valid", - "data": { "x": { "x": { "x": {} } } }, - "valid": true - }, - { - "description": "Unevaluated on 3rd level is invalid", - "data": { "x": { "x": { "x": {}, "y": {} } } }, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties + ref inside allOf / oneOf", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$defs": { - "one": { - "properties": { "a": true } - }, - "two": { - "required": ["x"], - "properties": { "x": true } - } - }, - "allOf": [ - { "$ref": "#/$defs/one" }, - { "properties": { "b": true } }, - { - "oneOf": [ - { "$ref": "#/$defs/two" }, - { - "required": ["y"], - "properties": { "y": true } - } - ] - } - ], - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "Empty is invalid (no x or y)", - "data": {}, - "valid": false - }, - { - "description": "a and b are invalid (no x or y)", - "data": { "a": 1, "b": 1 }, - "valid": false - }, - { - "description": "x and y are invalid", - "data": { "x": 1, "y": 1 }, - "valid": false - }, - { - "description": "a and x are valid", - "data": { "a": 1, "x": 1 }, - "valid": true - }, - { - "description": "a and y are valid", - "data": { "a": 1, "y": 1 }, - "valid": true - }, - { - "description": "a and b and x are valid", - "data": { "a": 1, "b": 1, "x": 1 }, - "valid": true - }, - { - "description": "a and b and y are valid", - "data": { "a": 1, "b": 1, "y": 1 }, - "valid": true - }, - { - "description": "a and b and x and y are invalid", - "data": { "a": 1, "b": 1, "x": 1, "y": 1 }, - "valid": false - } - ] - }, - { - "description": "dynamic evalation inside nested refs", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$defs": { - "one": { - "oneOf": [ - { "$ref": "#/$defs/two" }, - { "required": ["b"], "properties": { "b": true } }, - { "required": ["xx"], "patternProperties": { "x": true } }, - { "required": ["all"], "unevaluatedProperties": true } - ] - }, - "two": { - "oneOf": [ - { "required": ["c"], "properties": { "c": true } }, - { "required": ["d"], "properties": { "d": true } } - ] - } - }, - "oneOf": [ - { "$ref": "#/$defs/one" }, - { "required": ["a"], "properties": { "a": true } } - ], - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "Empty is invalid", - "data": {}, - "valid": false - }, - { - "description": "a is valid", - "data": { "a": 1 }, - "valid": true - }, - { - "description": "b is valid", - "data": { "b": 1 }, - "valid": true - }, - { - "description": "c is valid", - "data": { "c": 1 }, - "valid": true - }, - { - "description": "d is valid", - "data": { "d": 1 }, - "valid": true - }, - { - "description": "a + b is invalid", - "data": { "a": 1, "b": 1 }, - "valid": false - }, - { - "description": "a + c is invalid", - "data": { "a": 1, "c": 1 }, - "valid": false - }, - { - "description": "a + d is invalid", - "data": { "a": 1, "d": 1 }, - "valid": false - }, - { - "description": "b + c is invalid", - "data": { "b": 1, "c": 1 }, - "valid": false - }, - { - "description": "b + d is invalid", - "data": { "b": 1, "d": 1 }, - "valid": false - }, - { - "description": "c + d is invalid", - "data": { "c": 1, "d": 1 }, - "valid": false - }, - { - "description": "xx is valid", - "data": { "xx": 1 }, - "valid": true - }, - { - "description": "xx + foox is valid", - "data": { "xx": 1, "foox": 1 }, - "valid": true - }, - { - "description": "xx + foo is invalid", - "data": { "xx": 1, "foo": 1 }, - "valid": false - }, - { - "description": "xx + a is invalid", - "data": { "xx": 1, "a": 1 }, - "valid": false - }, - { - "description": "xx + b is invalid", - "data": { "xx": 1, "b": 1 }, - "valid": false - }, - { - "description": "xx + c is invalid", - "data": { "xx": 1, "c": 1 }, - "valid": false - }, - { - "description": "xx + d is invalid", - "data": { "xx": 1, "d": 1 }, - "valid": false - }, - { - "description": "all is valid", - "data": { "all": 1 }, - "valid": true - }, - { - "description": "all + foo is valid", - "data": { "all": 1, "foo": 1 }, - "valid": true - }, - { - "description": "all + a is invalid", - "data": { "all": 1, "a": 1 }, - "valid": false - } - ] - }, - { - "description": "non-object instances are valid", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "ignores booleans", - "data": true, - "valid": true - }, - { - "description": "ignores integers", - "data": 123, - "valid": true - }, - { - "description": "ignores floats", - "data": 1.0, - "valid": true - }, - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores strings", - "data": "foo", - "valid": true - }, - { - "description": "ignores null", - "data": null, - "valid": true - } - ] - }, - { - "description": "unevaluatedProperties with null valued instance properties", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "unevaluatedProperties": { - "type": "null" - } - }, - "tests": [ - { - "description": "allows null valued properties", - "data": {"foo": null}, - "valid": true - } - ] - }, - { - "description": "unevaluatedProperties not affected by propertyNames", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "propertyNames": {"maxLength": 1}, - "unevaluatedProperties": { - "type": "number" - } - }, - "tests": [ - { - "description": "allows only number properties", - "data": {"a": 1}, - "valid": true - }, - { - "description": "string property is invalid", - "data": {"a": "b"}, - "valid": false - } - ] - }, - { - "description": "unevaluatedProperties can see annotations from if without then and else", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "if": { - "patternProperties": { - "foo": { - "type": "string" - } - } - }, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "valid in case if is evaluated", - "data": { - "foo": "a" - }, - "valid": true - }, - { - "description": "invalid in case if is evaluated", - "data": { - "bar": "a" - }, - "valid": false - } - ] - }, - { - "description": "dependentSchemas with unevaluatedProperties", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "properties": {"foo2": {}}, - "dependentSchemas": { - "foo" : {}, - "foo2": { - "properties": { - "bar":{} - } - } - }, - "unevaluatedProperties": false - }, - "tests": [ - { - "description": "unevaluatedProperties doesn't consider dependentSchemas", - "data": {"foo": ""}, - "valid": false - }, - { - "description": "unevaluatedProperties doesn't see bar when foo2 is absent", - "data": {"bar": ""}, - "valid": false - }, - { - "description": "unevaluatedProperties sees bar when foo2 is present", - "data": { "foo2": "", "bar": ""}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/uniqueItems.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/uniqueItems.json deleted file mode 100644 index 4ea3bf985..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/uniqueItems.json +++ /dev/null @@ -1,419 +0,0 @@ -[ - { - "description": "uniqueItems validation", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "uniqueItems": true - }, - "tests": [ - { - "description": "unique array of integers is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "non-unique array of integers is invalid", - "data": [1, 1], - "valid": false - }, - { - "description": "non-unique array of more than two integers is invalid", - "data": [1, 2, 1], - "valid": false - }, - { - "description": "numbers are unique if mathematically unequal", - "data": [1.0, 1.00, 1], - "valid": false - }, - { - "description": "false is not equal to zero", - "data": [0, false], - "valid": true - }, - { - "description": "true is not equal to one", - "data": [1, true], - "valid": true - }, - { - "description": "unique array of strings is valid", - "data": ["foo", "bar", "baz"], - "valid": true - }, - { - "description": "non-unique array of strings is invalid", - "data": ["foo", "bar", "foo"], - "valid": false - }, - { - "description": "unique array of objects is valid", - "data": [{"foo": "bar"}, {"foo": "baz"}], - "valid": true - }, - { - "description": "non-unique array of objects is invalid", - "data": [{"foo": "bar"}, {"foo": "bar"}], - "valid": false - }, - { - "description": "property order of array of objects is ignored", - "data": [{"foo": "bar", "bar": "foo"}, {"bar": "foo", "foo": "bar"}], - "valid": false - }, - { - "description": "unique array of nested objects is valid", - "data": [ - {"foo": {"bar" : {"baz" : true}}}, - {"foo": {"bar" : {"baz" : false}}} - ], - "valid": true - }, - { - "description": "non-unique array of nested objects is invalid", - "data": [ - {"foo": {"bar" : {"baz" : true}}}, - {"foo": {"bar" : {"baz" : true}}} - ], - "valid": false - }, - { - "description": "unique array of arrays is valid", - "data": [["foo"], ["bar"]], - "valid": true - }, - { - "description": "non-unique array of arrays is invalid", - "data": [["foo"], ["foo"]], - "valid": false - }, - { - "description": "non-unique array of more than two arrays is invalid", - "data": [["foo"], ["bar"], ["foo"]], - "valid": false - }, - { - "description": "1 and true are unique", - "data": [1, true], - "valid": true - }, - { - "description": "0 and false are unique", - "data": [0, false], - "valid": true - }, - { - "description": "[1] and [true] are unique", - "data": [[1], [true]], - "valid": true - }, - { - "description": "[0] and [false] are unique", - "data": [[0], [false]], - "valid": true - }, - { - "description": "nested [1] and [true] are unique", - "data": [[[1], "foo"], [[true], "foo"]], - "valid": true - }, - { - "description": "nested [0] and [false] are unique", - "data": [[[0], "foo"], [[false], "foo"]], - "valid": true - }, - { - "description": "unique heterogeneous types are valid", - "data": [{}, [1], true, null, 1, "{}"], - "valid": true - }, - { - "description": "non-unique heterogeneous types are invalid", - "data": [{}, [1], true, null, {}, 1], - "valid": false - }, - { - "description": "different objects are unique", - "data": [{"a": 1, "b": 2}, {"a": 2, "b": 1}], - "valid": true - }, - { - "description": "objects are non-unique despite key order", - "data": [{"a": 1, "b": 2}, {"b": 2, "a": 1}], - "valid": false - }, - { - "description": "{\"a\": false} and {\"a\": 0} are unique", - "data": [{"a": false}, {"a": 0}], - "valid": true - }, - { - "description": "{\"a\": true} and {\"a\": 1} are unique", - "data": [{"a": true}, {"a": 1}], - "valid": true - } - ] - }, - { - "description": "uniqueItems with an array of items", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "prefixItems": [{"type": "boolean"}, {"type": "boolean"}], - "uniqueItems": true - }, - "tests": [ - { - "description": "[false, true] from items array is valid", - "data": [false, true], - "valid": true - }, - { - "description": "[true, false] from items array is valid", - "data": [true, false], - "valid": true - }, - { - "description": "[false, false] from items array is not valid", - "data": [false, false], - "valid": false - }, - { - "description": "[true, true] from items array is not valid", - "data": [true, true], - "valid": false - }, - { - "description": "unique array extended from [false, true] is valid", - "data": [false, true, "foo", "bar"], - "valid": true - }, - { - "description": "unique array extended from [true, false] is valid", - "data": [true, false, "foo", "bar"], - "valid": true - }, - { - "description": "non-unique array extended from [false, true] is not valid", - "data": [false, true, "foo", "foo"], - "valid": false - }, - { - "description": "non-unique array extended from [true, false] is not valid", - "data": [true, false, "foo", "foo"], - "valid": false - } - ] - }, - { - "description": "uniqueItems with an array of items and additionalItems=false", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "prefixItems": [{"type": "boolean"}, {"type": "boolean"}], - "uniqueItems": true, - "items": false - }, - "tests": [ - { - "description": "[false, true] from items array is valid", - "data": [false, true], - "valid": true - }, - { - "description": "[true, false] from items array is valid", - "data": [true, false], - "valid": true - }, - { - "description": "[false, false] from items array is not valid", - "data": [false, false], - "valid": false - }, - { - "description": "[true, true] from items array is not valid", - "data": [true, true], - "valid": false - }, - { - "description": "extra items are invalid even if unique", - "data": [false, true, null], - "valid": false - } - ] - }, - { - "description": "uniqueItems=false validation", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "uniqueItems": false - }, - "tests": [ - { - "description": "unique array of integers is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "non-unique array of integers is valid", - "data": [1, 1], - "valid": true - }, - { - "description": "numbers are unique if mathematically unequal", - "data": [1.0, 1.00, 1], - "valid": true - }, - { - "description": "false is not equal to zero", - "data": [0, false], - "valid": true - }, - { - "description": "true is not equal to one", - "data": [1, true], - "valid": true - }, - { - "description": "unique array of objects is valid", - "data": [{"foo": "bar"}, {"foo": "baz"}], - "valid": true - }, - { - "description": "non-unique array of objects is valid", - "data": [{"foo": "bar"}, {"foo": "bar"}], - "valid": true - }, - { - "description": "unique array of nested objects is valid", - "data": [ - {"foo": {"bar" : {"baz" : true}}}, - {"foo": {"bar" : {"baz" : false}}} - ], - "valid": true - }, - { - "description": "non-unique array of nested objects is valid", - "data": [ - {"foo": {"bar" : {"baz" : true}}}, - {"foo": {"bar" : {"baz" : true}}} - ], - "valid": true - }, - { - "description": "unique array of arrays is valid", - "data": [["foo"], ["bar"]], - "valid": true - }, - { - "description": "non-unique array of arrays is valid", - "data": [["foo"], ["foo"]], - "valid": true - }, - { - "description": "1 and true are unique", - "data": [1, true], - "valid": true - }, - { - "description": "0 and false are unique", - "data": [0, false], - "valid": true - }, - { - "description": "unique heterogeneous types are valid", - "data": [{}, [1], true, null, 1], - "valid": true - }, - { - "description": "non-unique heterogeneous types are valid", - "data": [{}, [1], true, null, {}, 1], - "valid": true - } - ] - }, - { - "description": "uniqueItems=false with an array of items", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "prefixItems": [{"type": "boolean"}, {"type": "boolean"}], - "uniqueItems": false - }, - "tests": [ - { - "description": "[false, true] from items array is valid", - "data": [false, true], - "valid": true - }, - { - "description": "[true, false] from items array is valid", - "data": [true, false], - "valid": true - }, - { - "description": "[false, false] from items array is valid", - "data": [false, false], - "valid": true - }, - { - "description": "[true, true] from items array is valid", - "data": [true, true], - "valid": true - }, - { - "description": "unique array extended from [false, true] is valid", - "data": [false, true, "foo", "bar"], - "valid": true - }, - { - "description": "unique array extended from [true, false] is valid", - "data": [true, false, "foo", "bar"], - "valid": true - }, - { - "description": "non-unique array extended from [false, true] is valid", - "data": [false, true, "foo", "foo"], - "valid": true - }, - { - "description": "non-unique array extended from [true, false] is valid", - "data": [true, false, "foo", "foo"], - "valid": true - } - ] - }, - { - "description": "uniqueItems=false with an array of items and additionalItems=false", - "schema": { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "prefixItems": [{"type": "boolean"}, {"type": "boolean"}], - "uniqueItems": false, - "items": false - }, - "tests": [ - { - "description": "[false, true] from items array is valid", - "data": [false, true], - "valid": true - }, - { - "description": "[true, false] from items array is valid", - "data": [true, false], - "valid": true - }, - { - "description": "[false, false] from items array is valid", - "data": [false, false], - "valid": true - }, - { - "description": "[true, true] from items array is valid", - "data": [true, true], - "valid": true - }, - { - "description": "extra items are invalid even if unique", - "data": [false, true, null], - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/vocabulary.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/vocabulary.json deleted file mode 100644 index 1acb96a93..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft2020-12/vocabulary.json +++ /dev/null @@ -1,57 +0,0 @@ -[ - { - "description": "schema that uses custom metaschema with with no validation vocabulary", - "schema": { - "$id": "https://schema/using/no/validation", - "$schema": "http://localhost:1234/draft2020-12/metaschema-no-validation.json", - "properties": { - "badProperty": false, - "numberProperty": { - "minimum": 10 - } - } - }, - "tests": [ - { - "description": "applicator vocabulary still works", - "data": { - "badProperty": "this property should not exist" - }, - "valid": false - }, - { - "description": "no validation: valid number", - "data": { - "numberProperty": 20 - }, - "valid": true - }, - { - "description": "no validation: invalid number, but it still validates", - "data": { - "numberProperty": 1 - }, - "valid": true - } - ] - }, - { - "description": "ignore unrecognized optional vocabulary", - "schema": { - "$schema": "http://localhost:1234/draft2020-12/metaschema-optional-vocabulary.json", - "type": "number" - }, - "tests": [ - { - "description": "string value", - "data": "foobar", - "valid": false - }, - { - "description": "number value", - "data": 20, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/additionalItems.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/additionalItems.json deleted file mode 100644 index ab44a2eb3..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/additionalItems.json +++ /dev/null @@ -1,147 +0,0 @@ -[ - { - "description": "additionalItems as schema", - "schema": { - "items": [], - "additionalItems": {"type": "integer"} - }, - "tests": [ - { - "description": "additional items match schema", - "data": [ 1, 2, 3, 4 ], - "valid": true - }, - { - "description": "additional items do not match schema", - "data": [ 1, 2, 3, "foo" ], - "valid": false - } - ] - }, - { - "description": "when items is schema, additionalItems does nothing", - "schema": { - "items": {}, - "additionalItems": false - }, - "tests": [ - { - "description": "all items match schema", - "data": [ 1, 2, 3, 4, 5 ], - "valid": true - } - ] - }, - { - "description": "array of items with no additionalItems permitted", - "schema": { - "items": [{}, {}, {}], - "additionalItems": false - }, - "tests": [ - { - "description": "empty array", - "data": [ ], - "valid": true - }, - { - "description": "fewer number of items present (1)", - "data": [ 1 ], - "valid": true - }, - { - "description": "fewer number of items present (2)", - "data": [ 1, 2 ], - "valid": true - }, - { - "description": "equal number of items present", - "data": [ 1, 2, 3 ], - "valid": true - }, - { - "description": "additional items are not permitted", - "data": [ 1, 2, 3, 4 ], - "valid": false - } - ] - }, - { - "description": "additionalItems as false without items", - "schema": {"additionalItems": false}, - "tests": [ - { - "description": - "items defaults to empty schema so everything is valid", - "data": [ 1, 2, 3, 4, 5 ], - "valid": true - }, - { - "description": "ignores non-arrays", - "data": {"foo" : "bar"}, - "valid": true - } - ] - }, - { - "description": "additionalItems are allowed by default", - "schema": {"items": [{"type": "integer"}]}, - "tests": [ - { - "description": "only the first item is validated", - "data": [1, "foo", false], - "valid": true - } - ] - }, - { - "description": "additionalItems does not look in applicators", - "schema": { - "extends": [ - { "items": [ { "type": "integer" } ] } - ], - "additionalItems": { "type": "boolean" } - }, - "tests": [ - { - "description": "items defined in extends are not examined", - "data": [ 1, null ], - "valid": true - } - ] - }, - { - "description": "additionalItems with heterogeneous array", - "schema": { - "items": [{}], - "additionalItems": false - }, - "tests": [ - { - "description": "heterogeneous invalid instance", - "data": [ "foo", "bar", 37 ], - "valid": false - }, - { - "description": "valid instance", - "data": [ null ], - "valid": true - } - ] - }, - { - "description": "additionalItems with null instance elements", - "schema": { - "additionalItems": { - "type": "null" - } - }, - "tests": [ - { - "description": "allows null elements", - "data": [ null ], - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/additionalProperties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/additionalProperties.json deleted file mode 100644 index af7bfc6fc..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/additionalProperties.json +++ /dev/null @@ -1,147 +0,0 @@ -[ - { - "description": - "additionalProperties being false does not allow other properties", - "schema": { - "properties": {"foo": {}, "bar": {}}, - "patternProperties": { "^v": {} }, - "additionalProperties": false - }, - "tests": [ - { - "description": "no additional properties is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "an additional property is invalid", - "data": {"foo" : 1, "bar" : 2, "quux" : "boom"}, - "valid": false - }, - { - "description": "ignores arrays", - "data": [1, 2, 3], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobarbaz", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - }, - { - "description": "patternProperties are not additional properties", - "data": {"foo":1, "vroom": 2}, - "valid": true - } - ] - }, - { - "description": "non-ASCII pattern with additionalProperties", - "schema": { - "patternProperties": {"^á": {}}, - "additionalProperties": false - }, - "tests": [ - { - "description": "matching the pattern is valid", - "data": {"ármányos": 2}, - "valid": true - }, - { - "description": "not matching the pattern is invalid", - "data": {"élmény": 2}, - "valid": false - } - ] - }, - { - "description": "additionalProperties with schema", - "schema": { - "properties": {"foo": {}, "bar": {}}, - "additionalProperties": {"type": "boolean"} - }, - "tests": [ - { - "description": "no additional properties is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "an additional valid property is valid", - "data": {"foo" : 1, "bar" : 2, "quux" : true}, - "valid": true - }, - { - "description": "an additional invalid property is invalid", - "data": {"foo" : 1, "bar" : 2, "quux" : 12}, - "valid": false - } - ] - }, - { - "description": - "additionalProperties can exist by itself", - "schema": { - "additionalProperties": {"type": "boolean"} - }, - "tests": [ - { - "description": "an additional valid property is valid", - "data": {"foo" : true}, - "valid": true - }, - { - "description": "an additional invalid property is invalid", - "data": {"foo" : 1}, - "valid": false - } - ] - }, - { - "description": "additionalProperties are allowed by default", - "schema": {"properties": {"foo": {}, "bar": {}}}, - "tests": [ - { - "description": "additional properties are allowed", - "data": {"foo": 1, "bar": 2, "quux": true}, - "valid": true - } - ] - }, - { - "description": "additionalProperties does not look in applicators", - "schema": { - "extends": [ - {"properties": {"foo": {}}} - ], - "additionalProperties": {"type": "boolean"} - }, - "tests": [ - { - "description": "properties defined in extends are not examined", - "data": {"foo": 1, "bar": true}, - "valid": false - } - ] - }, - { - "description": "additionalProperties with null valued instance properties", - "schema": { - "additionalProperties": { - "type": "null" - } - }, - "tests": [ - { - "description": "allows null values", - "data": {"foo": null}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/default.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/default.json deleted file mode 100644 index 289a9b66c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/default.json +++ /dev/null @@ -1,79 +0,0 @@ -[ - { - "description": "invalid type for default", - "schema": { - "properties": { - "foo": { - "type": "integer", - "default": [] - } - } - }, - "tests": [ - { - "description": "valid when property is specified", - "data": {"foo": 13}, - "valid": true - }, - { - "description": "still valid when the invalid default is used", - "data": {}, - "valid": true - } - ] - }, - { - "description": "invalid string value for default", - "schema": { - "properties": { - "bar": { - "type": "string", - "minLength": 4, - "default": "bad" - } - } - }, - "tests": [ - { - "description": "valid when property is specified", - "data": {"bar": "good"}, - "valid": true - }, - { - "description": "still valid when the invalid default is used", - "data": {}, - "valid": true - } - ] - }, - { - "description": "the default keyword does not do anything if the property is missing", - "schema": { - "type": "object", - "properties": { - "alpha": { - "type": "number", - "maximum": 3, - "default": 5 - } - } - }, - "tests": [ - { - "description": "an explicit property value is checked against maximum (passing)", - "data": { "alpha": 1 }, - "valid": true - }, - { - "description": "an explicit property value is checked against maximum (failing)", - "data": { "alpha": 5 }, - "valid": false - }, - { - "description": "missing properties are not filled in with the default", - "data": {}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/dependencies.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/dependencies.json deleted file mode 100644 index 0ffa6bf47..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/dependencies.json +++ /dev/null @@ -1,123 +0,0 @@ -[ - { - "description": "dependencies", - "schema": { - "dependencies": {"bar": "foo"} - }, - "tests": [ - { - "description": "neither", - "data": {}, - "valid": true - }, - { - "description": "nondependant", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "with dependency", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "missing dependency", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "ignores arrays", - "data": ["bar"], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobar", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "multiple dependencies", - "schema": { - "dependencies": {"quux": ["foo", "bar"]} - }, - "tests": [ - { - "description": "neither", - "data": {}, - "valid": true - }, - { - "description": "nondependants", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "with dependencies", - "data": {"foo": 1, "bar": 2, "quux": 3}, - "valid": true - }, - { - "description": "missing dependency", - "data": {"foo": 1, "quux": 2}, - "valid": false - }, - { - "description": "missing other dependency", - "data": {"bar": 1, "quux": 2}, - "valid": false - }, - { - "description": "missing both dependencies", - "data": {"quux": 1}, - "valid": false - } - ] - }, - { - "description": "multiple dependencies subschema", - "schema": { - "dependencies": { - "bar": { - "properties": { - "foo": {"type": "integer"}, - "bar": {"type": "integer"} - } - } - } - }, - "tests": [ - { - "description": "valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "no dependency", - "data": {"foo": "quux"}, - "valid": true - }, - { - "description": "wrong type", - "data": {"foo": "quux", "bar": 2}, - "valid": false - }, - { - "description": "wrong type other", - "data": {"foo": 2, "bar": "quux"}, - "valid": false - }, - { - "description": "wrong type both", - "data": {"foo": "quux", "bar": "quux"}, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/disallow.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/disallow.json deleted file mode 100644 index a5c9d90cc..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/disallow.json +++ /dev/null @@ -1,80 +0,0 @@ -[ - { - "description": "disallow", - "schema": { - "disallow": "integer" - }, - "tests": [ - { - "description": "allowed", - "data": "foo", - "valid": true - }, - { - "description": "disallowed", - "data": 1, - "valid": false - } - ] - }, - { - "description": "multiple disallow", - "schema": { - "disallow": ["integer", "boolean"] - }, - "tests": [ - { - "description": "valid", - "data": "foo", - "valid": true - }, - { - "description": "mismatch", - "data": 1, - "valid": false - }, - { - "description": "other mismatch", - "data": true, - "valid": false - } - ] - }, - { - "description": "multiple disallow subschema", - "schema": { - "disallow": - ["string", - { - "type": "object", - "properties": { - "foo": { - "type": "string" - } - } - }] - }, - "tests": [ - { - "description": "match", - "data": 1, - "valid": true - }, - { - "description": "other match", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "mismatch", - "data": "foo", - "valid": false - }, - { - "description": "other mismatch", - "data": {"foo": "bar"}, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/divisibleBy.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/divisibleBy.json deleted file mode 100644 index ef7cc1489..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/divisibleBy.json +++ /dev/null @@ -1,60 +0,0 @@ -[ - { - "description": "by int", - "schema": {"divisibleBy": 2}, - "tests": [ - { - "description": "int by int", - "data": 10, - "valid": true - }, - { - "description": "int by int fail", - "data": 7, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "by number", - "schema": {"divisibleBy": 1.5}, - "tests": [ - { - "description": "zero is divisible by anything (except 0)", - "data": 0, - "valid": true - }, - { - "description": "4.5 is divisible by 1.5", - "data": 4.5, - "valid": true - }, - { - "description": "35 is not divisible by 1.5", - "data": 35, - "valid": false - } - ] - }, - { - "description": "by small number", - "schema": {"divisibleBy": 0.0001}, - "tests": [ - { - "description": "0.0075 is divisible by 0.0001", - "data": 0.0075, - "valid": true - }, - { - "description": "0.00751 is not divisible by 0.0001", - "data": 0.00751, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/enum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/enum.json deleted file mode 100644 index 5a1ab3b64..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/enum.json +++ /dev/null @@ -1,118 +0,0 @@ -[ - { - "description": "simple enum validation", - "schema": {"enum": [1, 2, 3]}, - "tests": [ - { - "description": "one of the enum is valid", - "data": 1, - "valid": true - }, - { - "description": "something else is invalid", - "data": 4, - "valid": false - } - ] - }, - { - "description": "heterogeneous enum validation", - "schema": {"enum": [6, "foo", [], true, {"foo": 12}]}, - "tests": [ - { - "description": "one of the enum is valid", - "data": [], - "valid": true - }, - { - "description": "something else is invalid", - "data": null, - "valid": false - }, - { - "description": "objects are deep compared", - "data": {"foo": false}, - "valid": false - } - ] - }, - { - "description": "heterogeneous enum-with-null validation", - "schema": { "enum": [6, null] }, - "tests": [ - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "number is valid", - "data": 6, - "valid": true - }, - { - "description": "something else is invalid", - "data": "test", - "valid": false - } - ] - }, - { - "description": "enums in properties", - "schema": { - "type":"object", - "properties": { - "foo": {"enum":["foo"]}, - "bar": {"enum":["bar"], "required":true} - } - }, - "tests": [ - { - "description": "both properties are valid", - "data": {"foo":"foo", "bar":"bar"}, - "valid": true - }, - { - "description": "wrong foo value", - "data": {"foo":"foot", "bar":"bar"}, - "valid": false - }, - { - "description": "wrong bar value", - "data": {"foo":"foo", "bar":"bart"}, - "valid": false - }, - { - "description": "missing optional property is valid", - "data": {"bar":"bar"}, - "valid": true - }, - { - "description": "missing required property is invalid", - "data": {"foo":"foo"}, - "valid": false - }, - { - "description": "missing all properties is invalid", - "data": {}, - "valid": false - } - ] - }, - { - "description": "nul characters in strings", - "schema": { "enum": [ "hello\u0000there" ] }, - "tests": [ - { - "description": "match string with nul", - "data": "hello\u0000there", - "valid": true - }, - { - "description": "do not match string lacking nul", - "data": "hellothere", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/extends.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/extends.json deleted file mode 100644 index 909bce575..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/extends.json +++ /dev/null @@ -1,94 +0,0 @@ -[ - { - "description": "extends", - "schema": { - "properties": {"bar": {"type": "integer", "required": true}}, - "extends": { - "properties": { - "foo": {"type": "string", "required": true} - } - } - }, - "tests": [ - { - "description": "extends", - "data": {"foo": "baz", "bar": 2}, - "valid": true - }, - { - "description": "mismatch extends", - "data": {"foo": "baz"}, - "valid": false - }, - { - "description": "mismatch extended", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "wrong type", - "data": {"foo": "baz", "bar": "quux"}, - "valid": false - } - ] - }, - { - "description": "multiple extends", - "schema": { - "properties": {"bar": {"type": "integer", "required": true}}, - "extends" : [ - { - "properties": { - "foo": {"type": "string", "required": true} - } - }, - { - "properties": { - "baz": {"type": "null", "required": true} - } - } - ] - }, - "tests": [ - { - "description": "valid", - "data": {"foo": "quux", "bar": 2, "baz": null}, - "valid": true - }, - { - "description": "mismatch first extends", - "data": {"bar": 2, "baz": null}, - "valid": false - }, - { - "description": "mismatch second extends", - "data": {"foo": "quux", "bar": 2}, - "valid": false - }, - { - "description": "mismatch both", - "data": {"bar": 2}, - "valid": false - } - ] - }, - { - "description": "extends simple types", - "schema": { - "minimum": 20, - "extends": {"maximum": 30} - }, - "tests": [ - { - "description": "valid", - "data": 25, - "valid": true - }, - { - "description": "mismatch extends", - "data": 35, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/format.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/format.json deleted file mode 100644 index a5447c903..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/format.json +++ /dev/null @@ -1,362 +0,0 @@ -[ - { - "description": "email format", - "schema": { "format": "email" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "ip-address format", - "schema": { "format": "ip-address" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "ipv6 format", - "schema": { "format": "ipv6" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "host-name format", - "schema": { "format": "host-name" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "date-time format", - "schema": { "format": "date-time" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "regex format", - "schema": { "format": "regex" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "date format", - "schema": { "format": "date" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "time format", - "schema": { "format": "time" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "color format", - "schema": { "format": "color" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "uri format", - "schema": { "format": "uri" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/infinite-loop-detection.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/infinite-loop-detection.json deleted file mode 100644 index 090f49a0b..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/infinite-loop-detection.json +++ /dev/null @@ -1,32 +0,0 @@ -[ - { - "description": "evaluating the same schema location against the same data location twice is not a sign of an infinite loop", - "schema": { - "definitions": { - "int": { "type": "integer" } - }, - "properties": { - "foo": { - "$ref": "#/definitions/int" - } - }, - "extends": { - "additionalProperties": { - "$ref": "#/definitions/int" - } - } - }, - "tests": [ - { - "description": "passing case", - "data": { "foo": 1 }, - "valid": true - }, - { - "description": "failing case", - "data": { "foo": "a string" }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/items.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/items.json deleted file mode 100644 index e8bda2223..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/items.json +++ /dev/null @@ -1,78 +0,0 @@ -[ - { - "description": "a schema given for items", - "schema": { - "items": {"type": "integer"} - }, - "tests": [ - { - "description": "valid items", - "data": [ 1, 2, 3 ], - "valid": true - }, - { - "description": "wrong type of items", - "data": [1, "x"], - "valid": false - }, - { - "description": "ignores non-arrays", - "data": {"foo" : "bar"}, - "valid": true - } - ] - }, - { - "description": "an array of schemas for items", - "schema": { - "items": [ - {"type": "integer"}, - {"type": "string"} - ] - }, - "tests": [ - { - "description": "correct types", - "data": [ 1, "foo" ], - "valid": true - }, - { - "description": "wrong types", - "data": [ "foo", 1 ], - "valid": false - } - ] - }, - { - "description": "items with null instance elements", - "schema": { - "items": { - "type": "null" - } - }, - "tests": [ - { - "description": "allows null elements", - "data": [ null ], - "valid": true - } - ] - }, - { - "description": "array-form items with null instance elements", - "schema": { - "items": [ - { - "type": "null" - } - ] - }, - "tests": [ - { - "description": "allows null elements", - "data": [ null ], - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/maxItems.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/maxItems.json deleted file mode 100644 index 3b53a6b37..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/maxItems.json +++ /dev/null @@ -1,28 +0,0 @@ -[ - { - "description": "maxItems validation", - "schema": {"maxItems": 2}, - "tests": [ - { - "description": "shorter is valid", - "data": [1], - "valid": true - }, - { - "description": "exact length is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "too long is invalid", - "data": [1, 2, 3], - "valid": false - }, - { - "description": "ignores non-arrays", - "data": "foobar", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/maxLength.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/maxLength.json deleted file mode 100644 index b0a9ea5be..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/maxLength.json +++ /dev/null @@ -1,33 +0,0 @@ -[ - { - "description": "maxLength validation", - "schema": {"maxLength": 2}, - "tests": [ - { - "description": "shorter is valid", - "data": "f", - "valid": true - }, - { - "description": "exact length is valid", - "data": "fo", - "valid": true - }, - { - "description": "too long is invalid", - "data": "foo", - "valid": false - }, - { - "description": "ignores non-strings", - "data": 10, - "valid": true - }, - { - "description": "two graphemes is long enough", - "data": "\uD83D\uDCA9\uD83D\uDCA9", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/maximum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/maximum.json deleted file mode 100644 index ccb79c6c4..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/maximum.json +++ /dev/null @@ -1,99 +0,0 @@ -[ - { - "description": "maximum validation", - "schema": {"maximum": 3.0}, - "tests": [ - { - "description": "below the maximum is valid", - "data": 2.6, - "valid": true - }, - { - "description": "boundary point is valid", - "data": 3.0, - "valid": true - }, - { - "description": "above the maximum is invalid", - "data": 3.5, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - }, - { - "description": "maximum validation with unsigned integer", - "schema": {"maximum": 300}, - "tests": [ - { - "description": "below the maximum is invalid", - "data": 299.97, - "valid": true - }, - { - "description": "boundary point integer is valid", - "data": 300, - "valid": true - }, - { - "description": "boundary point float is valid", - "data": 300.00, - "valid": true - }, - { - "description": "above the maximum is invalid", - "data": 300.5, - "valid": false - } - ] - }, - { - "description": "maximum validation (explicit false exclusivity)", - "schema": {"maximum": 3.0, "exclusiveMaximum": false}, - "tests": [ - { - "description": "below the maximum is valid", - "data": 2.6, - "valid": true - }, - { - "description": "boundary point is valid", - "data": 3.0, - "valid": true - }, - { - "description": "above the maximum is invalid", - "data": 3.5, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - }, - { - "description": "exclusiveMaximum validation", - "schema": { - "maximum": 3.0, - "exclusiveMaximum": true - }, - "tests": [ - { - "description": "below the maximum is still valid", - "data": 2.2, - "valid": true - }, - { - "description": "boundary point is invalid", - "data": 3.0, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/minItems.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/minItems.json deleted file mode 100644 index ed5118815..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/minItems.json +++ /dev/null @@ -1,28 +0,0 @@ -[ - { - "description": "minItems validation", - "schema": {"minItems": 1}, - "tests": [ - { - "description": "longer is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "exact length is valid", - "data": [1], - "valid": true - }, - { - "description": "too short is invalid", - "data": [], - "valid": false - }, - { - "description": "ignores non-arrays", - "data": "", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/minLength.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/minLength.json deleted file mode 100644 index 6652c7509..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/minLength.json +++ /dev/null @@ -1,33 +0,0 @@ -[ - { - "description": "minLength validation", - "schema": {"minLength": 2}, - "tests": [ - { - "description": "longer is valid", - "data": "foo", - "valid": true - }, - { - "description": "exact length is valid", - "data": "fo", - "valid": true - }, - { - "description": "too short is invalid", - "data": "f", - "valid": false - }, - { - "description": "ignores non-strings", - "data": 1, - "valid": true - }, - { - "description": "one grapheme is not long enough", - "data": "\uD83D\uDCA9", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/minimum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/minimum.json deleted file mode 100644 index d579536e5..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/minimum.json +++ /dev/null @@ -1,88 +0,0 @@ -[ - { - "description": "minimum validation", - "schema": {"minimum": 1.1}, - "tests": [ - { - "description": "above the minimum is valid", - "data": 2.6, - "valid": true - }, - { - "description": "boundary point is valid", - "data": 1.1, - "valid": true - }, - { - "description": "below the minimum is invalid", - "data": 0.6, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - }, - { - "description": "exclusiveMinimum validation", - "schema": { - "minimum": 1.1, - "exclusiveMinimum": true - }, - "tests": [ - { - "description": "above the minimum is still valid", - "data": 1.2, - "valid": true - }, - { - "description": "boundary point is invalid", - "data": 1.1, - "valid": false - } - ] - }, - { - "description": "minimum validation with signed integer", - "schema": {"minimum": -2}, - "tests": [ - { - "description": "negative above the minimum is valid", - "data": -1, - "valid": true - }, - { - "description": "positive above the minimum is valid", - "data": 0, - "valid": true - }, - { - "description": "boundary point is valid", - "data": -2, - "valid": true - }, - { - "description": "boundary point with float is valid", - "data": -2.0, - "valid": true - }, - { - "description": "float below the minimum is invalid", - "data": -2.0001, - "valid": false - }, - { - "description": "int below the minimum is invalid", - "data": -3, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/bignum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/bignum.json deleted file mode 100644 index 1bc8eb21d..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/bignum.json +++ /dev/null @@ -1,95 +0,0 @@ -[ - { - "description": "integer", - "schema": { "type": "integer" }, - "tests": [ - { - "description": "a bignum is an integer", - "data": 12345678910111213141516171819202122232425262728293031, - "valid": true - }, - { - "description": "a negative bignum is an integer", - "data": -12345678910111213141516171819202122232425262728293031, - "valid": true - } - ] - }, - { - "description": "number", - "schema": { "type": "number" }, - "tests": [ - { - "description": "a bignum is a number", - "data": 98249283749234923498293171823948729348710298301928331, - "valid": true - }, - { - "description": "a negative bignum is a number", - "data": -98249283749234923498293171823948729348710298301928331, - "valid": true - } - ] - }, - { - "description": "string", - "schema": { "type": "string" }, - "tests": [ - { - "description": "a bignum is not a string", - "data": 98249283749234923498293171823948729348710298301928331, - "valid": false - } - ] - }, - { - "description": "maximum integer comparison", - "schema": { "maximum": 18446744073709551615 }, - "tests": [ - { - "description": "comparison works for high numbers", - "data": 18446744073709551600, - "valid": true - } - ] - }, - { - "description": "float comparison with high precision", - "schema": { - "maximum": 972783798187987123879878123.18878137, - "exclusiveMaximum": true - }, - "tests": [ - { - "description": "comparison works for high numbers", - "data": 972783798187987123879878123.188781371, - "valid": false - } - ] - }, - { - "description": "minimum integer comparison", - "schema": { "minimum": -18446744073709551615 }, - "tests": [ - { - "description": "comparison works for very negative numbers", - "data": -18446744073709551600, - "valid": true - } - ] - }, - { - "description": "float comparison with high precision on negative numbers", - "schema": { - "minimum": -972783798187987123879878123.18878137, - "exclusiveMinimum": true - }, - "tests": [ - { - "description": "comparison works for very negative numbers", - "data": -972783798187987123879878123.188781371, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/ecmascript-regex.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/ecmascript-regex.json deleted file mode 100644 index 03fe97724..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/ecmascript-regex.json +++ /dev/null @@ -1,18 +0,0 @@ -[ - { - "description": "ECMA 262 regex dialect recognition", - "schema": { "format": "regex" }, - "tests": [ - { - "description": "[^] is a valid regex", - "data": "[^]", - "valid": true - }, - { - "description": "ECMA 262 has no support for lookbehind", - "data": "(?<=foo)bar", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/format/color.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/format/color.json deleted file mode 100644 index 0c0b53480..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/format/color.json +++ /dev/null @@ -1,38 +0,0 @@ -[ - { - "description": "validation of CSS colors", - "schema": { "format": "color" }, - "tests": [ - { - "description": "a valid CSS color name", - "data": "fuchsia", - "valid": true - }, - { - "description": "a valid six-digit CSS color code", - "data": "#CC8899", - "valid": true - }, - { - "description": "a valid three-digit CSS color code", - "data": "#C89", - "valid": true - }, - { - "description": "an invalid CSS color code", - "data": "#00332520", - "valid": false - }, - { - "description": "an invalid CSS color name", - "data": "puce", - "valid": false - }, - { - "description": "a CSS color name containing invalid characters", - "data": "light_grayish_red-violet", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/format/date-time.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/format/date-time.json deleted file mode 100644 index 1f1e6fb38..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/format/date-time.json +++ /dev/null @@ -1,38 +0,0 @@ -[ - { - "description": "validation of date-time strings", - "schema": { "format": "date-time" }, - "tests": [ - { - "description": "a valid date-time string", - "data": "1963-06-19T08:30:06.283185Z", - "valid": true - }, - { - "description": "an invalid date-time string", - "data": "06/19/1963 08:30:06 PST", - "valid": false - }, - { - "description": "case-insensitive T and Z", - "data": "1963-06-19t08:30:06.283185z", - "valid": true - }, - { - "description": "only RFC3339 not all of ISO 8601 are valid", - "data": "2013-350T01:01:01", - "valid": false - }, - { - "description": "invalid non-padded month dates", - "data": "1963-6-19T08:30:06.283185Z", - "valid": false - }, - { - "description": "invalid non-padded day dates", - "data": "1963-06-1T08:30:06.283185Z", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/format/date.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/format/date.json deleted file mode 100644 index 796bc4634..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/format/date.json +++ /dev/null @@ -1,168 +0,0 @@ -[ - { - "description": "validation of date strings", - "schema": { "format": "date" }, - "tests": [ - { - "description": "a valid date string", - "data": "1963-06-19", - "valid": true - }, - { - "description": "a valid date string with 31 days in January", - "data": "2020-01-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in January", - "data": "2020-01-32", - "valid": false - }, - { - "description": "a valid date string with 28 days in February (normal)", - "data": "2021-02-28", - "valid": true - }, - { - "description": "a invalid date string with 29 days in February (normal)", - "data": "2021-02-29", - "valid": false - }, - { - "description": "a valid date string with 29 days in February (leap)", - "data": "2020-02-29", - "valid": true - }, - { - "description": "a invalid date string with 30 days in February (leap)", - "data": "2020-02-30", - "valid": false - }, - { - "description": "a valid date string with 31 days in March", - "data": "2020-03-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in March", - "data": "2020-03-32", - "valid": false - }, - { - "description": "a valid date string with 30 days in April", - "data": "2020-04-30", - "valid": true - }, - { - "description": "a invalid date string with 31 days in April", - "data": "2020-04-31", - "valid": false - }, - { - "description": "a valid date string with 31 days in May", - "data": "2020-05-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in May", - "data": "2020-05-32", - "valid": false - }, - { - "description": "a valid date string with 30 days in June", - "data": "2020-06-30", - "valid": true - }, - { - "description": "a invalid date string with 31 days in June", - "data": "2020-06-31", - "valid": false - }, - { - "description": "a valid date string with 31 days in July", - "data": "2020-07-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in July", - "data": "2020-07-32", - "valid": false - }, - { - "description": "a valid date string with 31 days in August", - "data": "2020-08-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in August", - "data": "2020-08-32", - "valid": false - }, - { - "description": "a valid date string with 30 days in September", - "data": "2020-09-30", - "valid": true - }, - { - "description": "a invalid date string with 31 days in September", - "data": "2020-09-31", - "valid": false - }, - { - "description": "a valid date string with 31 days in October", - "data": "2020-10-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in October", - "data": "2020-10-32", - "valid": false - }, - { - "description": "a valid date string with 30 days in November", - "data": "2020-11-30", - "valid": true - }, - { - "description": "a invalid date string with 31 days in November", - "data": "2020-11-31", - "valid": false - }, - { - "description": "a valid date string with 31 days in December", - "data": "2020-12-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in December", - "data": "2020-12-32", - "valid": false - }, - { - "description": "a invalid date string with invalid month", - "data": "2020-13-01", - "valid": false - }, - { - "description": "an invalid date string", - "data": "06/19/1963", - "valid": false - }, - { - "description": "only RFC3339 not all of ISO 8601 are valid", - "data": "2013-350", - "valid": false - }, - { - "description": "invalidates non-padded month dates", - "data": "1998-1-20", - "valid": false - }, - { - "description": "invalidates non-padded day dates", - "data": "1998-01-1", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/format/email.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/format/email.json deleted file mode 100644 index 059615add..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/format/email.json +++ /dev/null @@ -1,53 +0,0 @@ -[ - { - "description": "validation of e-mail addresses", - "schema": { "format": "email" }, - "tests": [ - { - "description": "a valid e-mail address", - "data": "joe.bloggs@example.com", - "valid": true - }, - { - "description": "an invalid e-mail address", - "data": "2962", - "valid": false - }, - { - "description": "tilde in local part is valid", - "data": "te~st@example.com", - "valid": true - }, - { - "description": "tilde before local part is valid", - "data": "~test@example.com", - "valid": true - }, - { - "description": "tilde after local part is valid", - "data": "test~@example.com", - "valid": true - }, - { - "description": "dot before local part is not valid", - "data": ".test@example.com", - "valid": false - }, - { - "description": "dot after local part is not valid", - "data": "test.@example.com", - "valid": false - }, - { - "description": "two separated dots inside local part are valid", - "data": "te.s.t@example.com", - "valid": true - }, - { - "description": "two subsequent dots inside local part are not valid", - "data": "te..st@example.com", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/format/host-name.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/format/host-name.json deleted file mode 100644 index d418f3763..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/format/host-name.json +++ /dev/null @@ -1,63 +0,0 @@ -[ - { - "description": "validation of host names", - "schema": { "format": "host-name" }, - "tests": [ - { - "description": "a valid host name", - "data": "www.example.com", - "valid": true - }, - { - "description": "a host name starting with an illegal character", - "data": "-a-host-name-that-starts-with--", - "valid": false - }, - { - "description": "a host name containing illegal characters", - "data": "not_a_valid_host_name", - "valid": false - }, - { - "description": "a host name with a component too long", - "data": "a-vvvvvvvvvvvvvvvveeeeeeeeeeeeeeeerrrrrrrrrrrrrrrryyyyyyyyyyyyyyyy-long-host-name-component", - "valid": false - }, - { - "description": "starts with hyphen", - "data": "-hostname", - "valid": false - }, - { - "description": "ends with hyphen", - "data": "hostname-", - "valid": false - }, - { - "description": "starts with underscore", - "data": "_hostname", - "valid": false - }, - { - "description": "ends with underscore", - "data": "hostname_", - "valid": false - }, - { - "description": "contains underscore", - "data": "host_name", - "valid": false - }, - { - "description": "maximum label length", - "data": "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijk.com", - "valid": true - }, - { - "description": "exceeds maximum label length", - "data": "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkl.com", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/format/ip-address.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/format/ip-address.json deleted file mode 100644 index 91cac9fa3..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/format/ip-address.json +++ /dev/null @@ -1,23 +0,0 @@ -[ - { - "description": "validation of IP addresses", - "schema": { "format": "ip-address" }, - "tests": [ - { - "description": "a valid IP address", - "data": "192.168.0.1", - "valid": true - }, - { - "description": "an IP address with too many components", - "data": "127.0.0.0.1", - "valid": false - }, - { - "description": "an IP address with out-of-range values", - "data": "256.256.256.256", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/format/ipv6.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/format/ipv6.json deleted file mode 100644 index c3ef3790a..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/format/ipv6.json +++ /dev/null @@ -1,68 +0,0 @@ -[ - { - "description": "validation of IPv6 addresses", - "schema": { "format": "ipv6" }, - "tests": [ - { - "description": "a valid IPv6 address", - "data": "::1", - "valid": true - }, - { - "description": "an IPv6 address with out-of-range values", - "data": "12345::", - "valid": false - }, - { - "description": "an IPv6 address with too many components", - "data": "1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1", - "valid": false - }, - { - "description": "an IPv6 address containing illegal characters", - "data": "::laptop", - "valid": false - }, - { - "description": "no digits is valid", - "data": "::", - "valid": true - }, - { - "description": "leading colons is valid", - "data": "::1", - "valid": true - }, - { - "description": "trailing colons is valid", - "data": "d6::", - "valid": true - }, - { - "description": "two sets of double colons is invalid", - "data": "1::d6::42", - "valid": false - }, - { - "description": "mixed format with the ipv4 section as decimal octets", - "data": "1::d6:192.168.0.1", - "valid": true - }, - { - "description": "mixed format with double colons between the sections", - "data": "1:2::192.168.0.1", - "valid": true - }, - { - "description": "mixed format with ipv4 section with octet out of range", - "data": "1::2:192.168.256.1", - "valid": false - }, - { - "description": "mixed format with ipv4 section with a hex octet", - "data": "1::2:192.168.ff.1", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/format/regex.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/format/regex.json deleted file mode 100644 index 8a377638c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/format/regex.json +++ /dev/null @@ -1,18 +0,0 @@ -[ - { - "description": "validation of regular expressions", - "schema": { "format": "regex" }, - "tests": [ - { - "description": "a valid regular expression", - "data": "([abc])+\\s+$", - "valid": true - }, - { - "description": "a regular expression with unclosed parens is invalid", - "data": "^(abc]", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/format/time.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/format/time.json deleted file mode 100644 index 36c823e6d..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/format/time.json +++ /dev/null @@ -1,18 +0,0 @@ -[ - { - "description": "validation of time strings", - "schema": { "format": "time" }, - "tests": [ - { - "description": "a valid time string", - "data": "08:30:06", - "valid": true - }, - { - "description": "an invalid time string", - "data": "8:30 AM", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/format/uri.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/format/uri.json deleted file mode 100644 index f024b6243..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/format/uri.json +++ /dev/null @@ -1,28 +0,0 @@ -[ - { - "description": "validation of URIs", - "schema": { "format": "uri" }, - "tests": [ - { - "description": "a valid URI", - "data": "http://foo.bar/?baz=qux#quux", - "valid": true - }, - { - "description": "an invalid protocol-relative URI Reference", - "data": "//foo.bar/?baz=qux#quux", - "valid": false - }, - { - "description": "an invalid URI", - "data": "\\\\WINDOWS\\fileshare", - "valid": false - }, - { - "description": "an invalid URI though valid URI reference", - "data": "abc", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/non-bmp-regex.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/non-bmp-regex.json deleted file mode 100644 index dd67af2b2..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/non-bmp-regex.json +++ /dev/null @@ -1,82 +0,0 @@ -[ - { - "description": "Proper UTF-16 surrogate pair handling: pattern", - "comment": "Optional because .Net doesn't correctly handle 32-bit Unicode characters", - "schema": { "pattern": "^🐲*$" }, - "tests": [ - { - "description": "matches empty", - "data": "", - "valid": true - }, - { - "description": "matches single", - "data": "🐲", - "valid": true - }, - { - "description": "matches two", - "data": "🐲🐲", - "valid": true - }, - { - "description": "doesn't match one", - "data": "🐉", - "valid": false - }, - { - "description": "doesn't match two", - "data": "🐉🐉", - "valid": false - }, - { - "description": "doesn't match one ASCII", - "data": "D", - "valid": false - }, - { - "description": "doesn't match two ASCII", - "data": "DD", - "valid": false - } - ] - }, - { - "description": "Proper UTF-16 surrogate pair handling: patternProperties", - "comment": "Optional because .Net doesn't correctly handle 32-bit Unicode characters", - "schema": { - "patternProperties": { - "^🐲*$": { - "type": "integer" - } - } - }, - "tests": [ - { - "description": "matches empty", - "data": { "": 1 }, - "valid": true - }, - { - "description": "matches single", - "data": { "🐲": 1 }, - "valid": true - }, - { - "description": "matches two", - "data": { "🐲🐲": 1 }, - "valid": true - }, - { - "description": "doesn't match one", - "data": { "🐲": "hello" }, - "valid": false - }, - { - "description": "doesn't match two", - "data": { "🐲🐲": "hello" }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/zeroTerminatedFloats.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/zeroTerminatedFloats.json deleted file mode 100644 index 9b50ea277..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/optional/zeroTerminatedFloats.json +++ /dev/null @@ -1,15 +0,0 @@ -[ - { - "description": "some languages do not distinguish between different types of numeric value", - "schema": { - "type": "integer" - }, - "tests": [ - { - "description": "a float is not an integer even without fractional part", - "data": 1.0, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/pattern.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/pattern.json deleted file mode 100644 index 92db0f971..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/pattern.json +++ /dev/null @@ -1,59 +0,0 @@ -[ - { - "description": "pattern validation", - "schema": {"pattern": "^a*$"}, - "tests": [ - { - "description": "a matching pattern is valid", - "data": "aaa", - "valid": true - }, - { - "description": "a non-matching pattern is invalid", - "data": "abc", - "valid": false - }, - { - "description": "ignores booleans", - "data": true, - "valid": true - }, - { - "description": "ignores integers", - "data": 123, - "valid": true - }, - { - "description": "ignores floats", - "data": 1.0, - "valid": true - }, - { - "description": "ignores objects", - "data": {}, - "valid": true - }, - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores null", - "data": null, - "valid": true - } - ] - }, - { - "description": "pattern is not anchored", - "schema": {"pattern": "a+"}, - "tests": [ - { - "description": "matches a substring", - "data": "xxaayy", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/patternProperties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/patternProperties.json deleted file mode 100644 index b0f2a8e45..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/patternProperties.json +++ /dev/null @@ -1,130 +0,0 @@ -[ - { - "description": - "patternProperties validates properties matching a regex", - "schema": { - "patternProperties": { - "f.*o": {"type": "integer"} - } - }, - "tests": [ - { - "description": "a single valid match is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "multiple valid matches is valid", - "data": {"foo": 1, "foooooo" : 2}, - "valid": true - }, - { - "description": "a single invalid match is invalid", - "data": {"foo": "bar", "fooooo": 2}, - "valid": false - }, - { - "description": "multiple invalid matches is invalid", - "data": {"foo": "bar", "foooooo" : "baz"}, - "valid": false - }, - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "multiple simultaneous patternProperties are validated", - "schema": { - "patternProperties": { - "a*": {"type": "integer"}, - "aaa*": {"maximum": 20} - } - }, - "tests": [ - { - "description": "a single valid match is valid", - "data": {"a": 21}, - "valid": true - }, - { - "description": "a simultaneous match is valid", - "data": {"aaaa": 18}, - "valid": true - }, - { - "description": "multiple matches is valid", - "data": {"a": 21, "aaaa": 18}, - "valid": true - }, - { - "description": "an invalid due to one is invalid", - "data": {"a": "bar"}, - "valid": false - }, - { - "description": "an invalid due to the other is invalid", - "data": {"aaaa": 31}, - "valid": false - }, - { - "description": "an invalid due to both is invalid", - "data": {"aaa": "foo", "aaaa": 31}, - "valid": false - } - ] - }, - { - "description": "regexes are not anchored by default and are case sensitive", - "schema": { - "patternProperties": { - "[0-9]{2,}": { "type": "boolean" }, - "X_": { "type": "string" } - } - }, - "tests": [ - { - "description": "non recognized members are ignored", - "data": { "answer 1": "42" }, - "valid": true - }, - { - "description": "recognized members are accounted for", - "data": { "a31b": null }, - "valid": false - }, - { - "description": "regexes are case sensitive", - "data": { "a_x_3": 3 }, - "valid": true - }, - { - "description": "regexes are case sensitive, 2", - "data": { "a_X_3": 3 }, - "valid": false - } - ] - }, - { - "description": "patternProperties with null valued instance properties", - "schema": { - "patternProperties": { - "^.*bar$": {"type": "null"} - } - }, - "tests": [ - { - "description": "allows null values", - "data": {"foobar": null}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/properties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/properties.json deleted file mode 100644 index cd2380115..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/properties.json +++ /dev/null @@ -1,112 +0,0 @@ -[ - { - "description": "object properties validation", - "schema": { - "properties": { - "foo": {"type": "integer"}, - "bar": {"type": "string"} - } - }, - "tests": [ - { - "description": "both properties present and valid is valid", - "data": {"foo": 1, "bar": "baz"}, - "valid": true - }, - { - "description": "one property invalid is invalid", - "data": {"foo": 1, "bar": {}}, - "valid": false - }, - { - "description": "both properties invalid is invalid", - "data": {"foo": [], "bar": {}}, - "valid": false - }, - { - "description": "doesn't invalidate other properties", - "data": {"quux": []}, - "valid": true - }, - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": - "properties, patternProperties, additionalProperties interaction", - "schema": { - "properties": { - "foo": {"type": "array", "maxItems": 3}, - "bar": {"type": "array"} - }, - "patternProperties": {"f.o": {"minItems": 2}}, - "additionalProperties": {"type": "integer"} - }, - "tests": [ - { - "description": "property validates property", - "data": {"foo": [1, 2]}, - "valid": true - }, - { - "description": "property invalidates property", - "data": {"foo": [1, 2, 3, 4]}, - "valid": false - }, - { - "description": "patternProperty invalidates property", - "data": {"foo": []}, - "valid": false - }, - { - "description": "patternProperty validates nonproperty", - "data": {"fxo": [1, 2]}, - "valid": true - }, - { - "description": "patternProperty invalidates nonproperty", - "data": {"fxo": []}, - "valid": false - }, - { - "description": "additionalProperty ignores property", - "data": {"bar": []}, - "valid": true - }, - { - "description": "additionalProperty validates others", - "data": {"quux": 3}, - "valid": true - }, - { - "description": "additionalProperty invalidates others", - "data": {"quux": "foo"}, - "valid": false - } - ] - }, - { - "description": "properties with null valued instance properties", - "schema": { - "properties": { - "foo": {"type": "null"} - } - }, - "tests": [ - { - "description": "allows null values", - "data": {"foo": null}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/ref.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/ref.json deleted file mode 100644 index 609eaa465..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/ref.json +++ /dev/null @@ -1,278 +0,0 @@ -[ - { - "description": "root pointer ref", - "schema": { - "properties": { - "foo": {"$ref": "#"} - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "match", - "data": {"foo": false}, - "valid": true - }, - { - "description": "recursive match", - "data": {"foo": {"foo": false}}, - "valid": true - }, - { - "description": "mismatch", - "data": {"bar": false}, - "valid": false - }, - { - "description": "recursive mismatch", - "data": {"foo": {"bar": false}}, - "valid": false - } - ] - }, - { - "description": "relative pointer ref to object", - "schema": { - "properties": { - "foo": {"type": "integer"}, - "bar": {"$ref": "#/properties/foo"} - } - }, - "tests": [ - { - "description": "match", - "data": {"bar": 3}, - "valid": true - }, - { - "description": "mismatch", - "data": {"bar": true}, - "valid": false - } - ] - }, - { - "description": "relative pointer ref to array", - "schema": { - "items": [ - {"type": "integer"}, - {"$ref": "#/items/0"} - ] - }, - "tests": [ - { - "description": "match array", - "data": [1, 2], - "valid": true - }, - { - "description": "mismatch array", - "data": [1, "foo"], - "valid": false - } - ] - }, - { - "description": "escaped pointer ref", - "schema": { - "definitions": { - "tilde~field": {"type": "integer"}, - "slash/field": {"type": "integer"}, - "percent%field": {"type": "integer"} - }, - "properties": { - "tilde": {"$ref": "#/definitions/tilde~0field"}, - "slash": {"$ref": "#/definitions/slash~1field"}, - "percent": {"$ref": "#/definitions/percent%25field"} - } - }, - "tests": [ - { - "description": "slash invalid", - "data": {"slash": "aoeu"}, - "valid": false - }, - { - "description": "tilde invalid", - "data": {"tilde": "aoeu"}, - "valid": false - }, - { - "description": "percent invalid", - "data": {"percent": "aoeu"}, - "valid": false - }, - { - "description": "slash valid", - "data": {"slash": 123}, - "valid": true - }, - { - "description": "tilde valid", - "data": {"tilde": 123}, - "valid": true - }, - { - "description": "percent valid", - "data": {"percent": 123}, - "valid": true - } - ] - }, - { - "description": "nested refs", - "schema": { - "definitions": { - "a": {"type": "integer"}, - "b": {"$ref": "#/definitions/a"}, - "c": {"$ref": "#/definitions/b"} - }, - "$ref": "#/definitions/c" - }, - "tests": [ - { - "description": "nested ref valid", - "data": 5, - "valid": true - }, - { - "description": "nested ref invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "ref overrides any sibling keywords", - "schema": { - "definitions": { - "reffed": { - "type": "array" - } - }, - "properties": { - "foo": { - "$ref": "#/definitions/reffed", - "maxItems": 2 - } - } - }, - "tests": [ - { - "description": "remote ref valid", - "data": { "foo": [] }, - "valid": true - }, - { - "description": "remote ref valid, maxItems ignored", - "data": { "foo": [ 1, 2, 3] }, - "valid": true - }, - { - "description": "ref invalid", - "data": { "foo": "string" }, - "valid": false - } - ] - }, - { - "description": "property named $ref, containing an actual $ref", - "schema": { - "properties": { - "$ref": {"$ref": "#/definitions/is-string"} - }, - "definitions": { - "is-string": { - "type": "string" - } - } - }, - "tests": [ - { - "description": "property named $ref valid", - "data": {"$ref": "a"}, - "valid": true - }, - { - "description": "property named $ref invalid", - "data": {"$ref": 2}, - "valid": false - } - ] - }, - { - "description": "$ref prevents a sibling id from changing the base uri", - "schema": { - "id": "http://localhost:1234/sibling_id/base/", - "definitions": { - "foo": { - "id": "http://localhost:1234/sibling_id/foo.json", - "type": "string" - }, - "base_foo": { - "$comment": "this canonical uri is http://localhost:1234/sibling_id/base/foo.json", - "id": "foo.json", - "type": "number" - } - }, - "extends": [ - { - "$comment": "$ref resolves to http://localhost:1234/sibling_id/base/foo.json, not http://localhost:1234/sibling_id/foo.json", - "id": "http://localhost:1234/sibling_id/", - "$ref": "foo.json" - } - ] - }, - "tests": [ - { - "description": "$ref resolves to /definitions/base_foo, data does not validate", - "data": "a", - "valid": false - }, - { - "description": "$ref resolves to /definitions/base_foo, data validates", - "data": 1, - "valid": true - } - ] - }, - { - "description": "remote ref, containing refs itself", - "schema": {"$ref": "http://json-schema.org/draft-03/schema#"}, - "tests": [ - { - "description": "remote ref valid", - "data": {"items": {"type": "integer"}}, - "valid": true - }, - { - "description": "remote ref invalid", - "data": {"items": {"type": 1}}, - "valid": false - } - ] - }, - { - "description": "naive replacement of $ref with its destination is not correct", - "schema": { - "definitions": { - "a_string": { "type": "string" } - }, - "enum": [ - { "$ref": "#/definitions/a_string" } - ] - }, - "tests": [ - { - "description": "do not evaluate the $ref inside the enum, matching any string", - "data": "this is a string", - "valid": false - }, - { - "description": "match the enum exactly", - "data": { "$ref": "#/definitions/a_string" }, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/refRemote.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/refRemote.json deleted file mode 100644 index 0e4ab53e0..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/refRemote.json +++ /dev/null @@ -1,74 +0,0 @@ -[ - { - "description": "remote ref", - "schema": {"$ref": "http://localhost:1234/integer.json"}, - "tests": [ - { - "description": "remote ref valid", - "data": 1, - "valid": true - }, - { - "description": "remote ref invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "fragment within remote ref", - "schema": {"$ref": "http://localhost:1234/subSchemas.json#/definitions/integer"}, - "tests": [ - { - "description": "remote fragment valid", - "data": 1, - "valid": true - }, - { - "description": "remote fragment invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "ref within remote ref", - "schema": { - "$ref": "http://localhost:1234/subSchemas.json#/definitions/refToInteger" - }, - "tests": [ - { - "description": "ref within ref valid", - "data": 1, - "valid": true - }, - { - "description": "ref within ref invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "change resolution scope", - "schema": { - "id": "http://localhost:1234/", - "items": { - "id": "baseUriChange/", - "items": {"$ref": "folderInteger.json"} - } - }, - "tests": [ - { - "description": "changed scope ref valid", - "data": [[1]], - "valid": true - }, - { - "description": "changed scope ref invalid", - "data": [["a"]], - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/required.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/required.json deleted file mode 100644 index aaaf02427..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/required.json +++ /dev/null @@ -1,53 +0,0 @@ -[ - { - "description": "required validation", - "schema": { - "properties": { - "foo": {"required" : true}, - "bar": {} - } - }, - "tests": [ - { - "description": "present required property is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "non-present required property is invalid", - "data": {"bar": 1}, - "valid": false - } - ] - }, - { - "description": "required default validation", - "schema": { - "properties": { - "foo": {} - } - }, - "tests": [ - { - "description": "not required by default", - "data": {}, - "valid": true - } - ] - }, - { - "description": "required explicitly false validation", - "schema": { - "properties": { - "foo": {"required": false} - } - }, - "tests": [ - { - "description": "not required if required is false", - "data": {}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/type.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/type.json deleted file mode 100644 index 8447bc8e0..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/type.json +++ /dev/null @@ -1,493 +0,0 @@ -[ - { - "description": "integer type matches integers", - "schema": {"type": "integer"}, - "tests": [ - { - "description": "an integer is an integer", - "data": 1, - "valid": true - }, - { - "description": "a float is not an integer", - "data": 1.1, - "valid": false - }, - { - "description": "a string is not an integer", - "data": "foo", - "valid": false - }, - { - "description": "a string is still not an integer, even if it looks like one", - "data": "1", - "valid": false - }, - { - "description": "an object is not an integer", - "data": {}, - "valid": false - }, - { - "description": "an array is not an integer", - "data": [], - "valid": false - }, - { - "description": "a boolean is not an integer", - "data": true, - "valid": false - }, - { - "description": "null is not an integer", - "data": null, - "valid": false - } - ] - }, - { - "description": "number type matches numbers", - "schema": {"type": "number"}, - "tests": [ - { - "description": "an integer is a number", - "data": 1, - "valid": true - }, - { - "description": "a float with zero fractional part is a number", - "data": 1.0, - "valid": true - }, - { - "description": "a float is a number", - "data": 1.1, - "valid": true - }, - { - "description": "a string is not a number", - "data": "foo", - "valid": false - }, - { - "description": "a string is still not a number, even if it looks like one", - "data": "1", - "valid": false - }, - { - "description": "an object is not a number", - "data": {}, - "valid": false - }, - { - "description": "an array is not a number", - "data": [], - "valid": false - }, - { - "description": "a boolean is not a number", - "data": true, - "valid": false - }, - { - "description": "null is not a number", - "data": null, - "valid": false - } - ] - }, - { - "description": "string type matches strings", - "schema": {"type": "string"}, - "tests": [ - { - "description": "1 is not a string", - "data": 1, - "valid": false - }, - { - "description": "a float is not a string", - "data": 1.1, - "valid": false - }, - { - "description": "a string is a string", - "data": "foo", - "valid": true - }, - { - "description": "a string is still a string, even if it looks like a number", - "data": "1", - "valid": true - }, - { - "description": "an object is not a string", - "data": {}, - "valid": false - }, - { - "description": "an array is not a string", - "data": [], - "valid": false - }, - { - "description": "a boolean is not a string", - "data": true, - "valid": false - }, - { - "description": "null is not a string", - "data": null, - "valid": false - } - ] - }, - { - "description": "object type matches objects", - "schema": {"type": "object"}, - "tests": [ - { - "description": "an integer is not an object", - "data": 1, - "valid": false - }, - { - "description": "a float is not an object", - "data": 1.1, - "valid": false - }, - { - "description": "a string is not an object", - "data": "foo", - "valid": false - }, - { - "description": "an object is an object", - "data": {}, - "valid": true - }, - { - "description": "an array is not an object", - "data": [], - "valid": false - }, - { - "description": "a boolean is not an object", - "data": true, - "valid": false - }, - { - "description": "null is not an object", - "data": null, - "valid": false - } - ] - }, - { - "description": "array type matches arrays", - "schema": {"type": "array"}, - "tests": [ - { - "description": "an integer is not an array", - "data": 1, - "valid": false - }, - { - "description": "a float is not an array", - "data": 1.1, - "valid": false - }, - { - "description": "a string is not an array", - "data": "foo", - "valid": false - }, - { - "description": "an object is not an array", - "data": {}, - "valid": false - }, - { - "description": "an array is an array", - "data": [], - "valid": true - }, - { - "description": "a boolean is not an array", - "data": true, - "valid": false - }, - { - "description": "null is not an array", - "data": null, - "valid": false - } - ] - }, - { - "description": "boolean type matches booleans", - "schema": {"type": "boolean"}, - "tests": [ - { - "description": "an integer is not a boolean", - "data": 1, - "valid": false - }, - { - "description": "a float is not a boolean", - "data": 1.1, - "valid": false - }, - { - "description": "a string is not a boolean", - "data": "foo", - "valid": false - }, - { - "description": "an object is not a boolean", - "data": {}, - "valid": false - }, - { - "description": "an array is not a boolean", - "data": [], - "valid": false - }, - { - "description": "a boolean is a boolean", - "data": true, - "valid": true - }, - { - "description": "null is not a boolean", - "data": null, - "valid": false - } - ] - }, - { - "description": "null type matches only the null object", - "schema": {"type": "null"}, - "tests": [ - { - "description": "an integer is not null", - "data": 1, - "valid": false - }, - { - "description": "a float is not null", - "data": 1.1, - "valid": false - }, - { - "description": "a string is not null", - "data": "foo", - "valid": false - }, - { - "description": "an object is not null", - "data": {}, - "valid": false - }, - { - "description": "an array is not null", - "data": [], - "valid": false - }, - { - "description": "a boolean is not null", - "data": true, - "valid": false - }, - { - "description": "null is null", - "data": null, - "valid": true - } - ] - }, - { - "description": "any type matches any type", - "schema": {"type": "any"}, - "tests": [ - { - "description": "any type includes integers", - "data": 1, - "valid": true - }, - { - "description": "any type includes float", - "data": 1.1, - "valid": true - }, - { - "description": "any type includes string", - "data": "foo", - "valid": true - }, - { - "description": "any type includes object", - "data": {}, - "valid": true - }, - { - "description": "any type includes array", - "data": [], - "valid": true - }, - { - "description": "any type includes boolean", - "data": true, - "valid": true - }, - { - "description": "any type includes null", - "data": null, - "valid": true - } - ] - }, - { - "description": "multiple types can be specified in an array", - "schema": {"type": ["integer", "string"]}, - "tests": [ - { - "description": "an integer is valid", - "data": 1, - "valid": true - }, - { - "description": "a string is valid", - "data": "foo", - "valid": true - }, - { - "description": "a float is invalid", - "data": 1.1, - "valid": false - }, - { - "description": "an object is invalid", - "data": {}, - "valid": false - }, - { - "description": "an array is invalid", - "data": [], - "valid": false - }, - { - "description": "a boolean is invalid", - "data": true, - "valid": false - }, - { - "description": "null is invalid", - "data": null, - "valid": false - } - ] - }, - { - "description": "types can include schemas", - "schema": { - "type": [ - "array", - {"type": "object"} - ] - }, - "tests": [ - { - "description": "an integer is invalid", - "data": 1, - "valid": false - }, - { - "description": "a string is invalid", - "data": "foo", - "valid": false - }, - { - "description": "a float is invalid", - "data": 1.1, - "valid": false - }, - { - "description": "an object is valid", - "data": {}, - "valid": true - }, - { - "description": "an array is valid", - "data": [], - "valid": true - }, - { - "description": "a boolean is invalid", - "data": true, - "valid": false - }, - { - "description": "null is invalid", - "data": null, - "valid": false - } - ] - }, - { - "description": "applies a nested schema", - "schema": { - "type": [ - "integer", - { - "properties": { - "foo": {"type": "null"} - } - } - ] - }, - "tests": [ - { - "description": "an integer is valid", - "data": 1, - "valid": true - }, - { - "description": "an object is valid only if it is fully valid", - "data": {"foo": null}, - "valid": true - }, - { - "description": "an object is invalid otherwise", - "data": {"foo": "bar"}, - "valid": false - } - ] - }, - { - "description": "types from separate schemas are merged", - "schema": { - "type": [ - {"type": ["string"]}, - {"type": ["array", "null"]} - ] - }, - "tests": [ - { - "description": "an integer is invalid", - "data": 1, - "valid": false - }, - { - "description": "a string is valid", - "data": "foo", - "valid": true - }, - { - "description": "an array is valid", - "data": [1, 2, 3], - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/uniqueItems.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft3/uniqueItems.json deleted file mode 100644 index c48c6a064..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft3/uniqueItems.json +++ /dev/null @@ -1,374 +0,0 @@ -[ - { - "description": "uniqueItems validation", - "schema": {"uniqueItems": true}, - "tests": [ - { - "description": "unique array of integers is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "non-unique array of integers is invalid", - "data": [1, 1], - "valid": false - }, - { - "description": "non-unique array of more than two integers is invalid", - "data": [1, 2, 1], - "valid": false - }, - { - "description": "numbers are unique if mathematically unequal", - "data": [1.0, 1.00, 1], - "valid": false - }, - { - "description": "unique array of strings is valid", - "data": ["foo", "bar", "baz"], - "valid": true - }, - { - "description": "non-unique array of strings is invalid", - "data": ["foo", "bar", "foo"], - "valid": false - }, - { - "description": "unique array of objects is valid", - "data": [{"foo": "bar"}, {"foo": "baz"}], - "valid": true - }, - { - "description": "non-unique array of objects is invalid", - "data": [{"foo": "bar"}, {"foo": "bar"}], - "valid": false - }, - { - "description": "unique array of nested objects is valid", - "data": [ - {"foo": {"bar" : {"baz" : true}}}, - {"foo": {"bar" : {"baz" : false}}} - ], - "valid": true - }, - { - "description": "non-unique array of nested objects is invalid", - "data": [ - {"foo": {"bar" : {"baz" : true}}}, - {"foo": {"bar" : {"baz" : true}}} - ], - "valid": false - }, - { - "description": "unique array of arrays is valid", - "data": [["foo"], ["bar"]], - "valid": true - }, - { - "description": "non-unique array of arrays is invalid", - "data": [["foo"], ["foo"]], - "valid": false - }, - { - "description": "non-unique array of more than two arrays is invalid", - "data": [["foo"], ["bar"], ["foo"]], - "valid": false - }, - { - "description": "1 and true are unique", - "data": [1, true], - "valid": true - }, - { - "description": "0 and false are unique", - "data": [0, false], - "valid": true - }, - { - "description": "[1] and [true] are unique", - "data": [[1], [true]], - "valid": true - }, - { - "description": "[0] and [false] are unique", - "data": [[0], [false]], - "valid": true - }, - { - "description": "nested [1] and [true] are unique", - "data": [[[1], "foo"], [[true], "foo"]], - "valid": true - }, - { - "description": "nested [0] and [false] are unique", - "data": [[[0], "foo"], [[false], "foo"]], - "valid": true - }, - { - "description": "unique heterogeneous types are valid", - "data": [{}, [1], true, null, 1], - "valid": true - }, - { - "description": "non-unique heterogeneous types are invalid", - "data": [{}, [1], true, null, {}, 1], - "valid": false - }, - { - "description": "{\"a\": false} and {\"a\": 0} are unique", - "data": [{"a": false}, {"a": 0}], - "valid": true - }, - { - "description": "{\"a\": true} and {\"a\": 1} are unique", - "data": [{"a": true}, {"a": 1}], - "valid": true - } - ] - }, - { - "description": "uniqueItems with an array of items", - "schema": { - "items": [{"type": "boolean"}, {"type": "boolean"}], - "uniqueItems": true - }, - "tests": [ - { - "description": "[false, true] from items array is valid", - "data": [false, true], - "valid": true - }, - { - "description": "[true, false] from items array is valid", - "data": [true, false], - "valid": true - }, - { - "description": "[false, false] from items array is not valid", - "data": [false, false], - "valid": false - }, - { - "description": "[true, true] from items array is not valid", - "data": [true, true], - "valid": false - }, - { - "description": "unique array extended from [false, true] is valid", - "data": [false, true, "foo", "bar"], - "valid": true - }, - { - "description": "unique array extended from [true, false] is valid", - "data": [true, false, "foo", "bar"], - "valid": true - }, - { - "description": "non-unique array extended from [false, true] is not valid", - "data": [false, true, "foo", "foo"], - "valid": false - }, - { - "description": "non-unique array extended from [true, false] is not valid", - "data": [true, false, "foo", "foo"], - "valid": false - } - ] - }, - { - "description": "uniqueItems with an array of items and additionalItems=false", - "schema": { - "items": [{"type": "boolean"}, {"type": "boolean"}], - "uniqueItems": true, - "additionalItems": false - }, - "tests": [ - { - "description": "[false, true] from items array is valid", - "data": [false, true], - "valid": true - }, - { - "description": "[true, false] from items array is valid", - "data": [true, false], - "valid": true - }, - { - "description": "[false, false] from items array is not valid", - "data": [false, false], - "valid": false - }, - { - "description": "[true, true] from items array is not valid", - "data": [true, true], - "valid": false - }, - { - "description": "extra items are invalid even if unique", - "data": [false, true, null], - "valid": false - } - ] - }, - { - "description": "uniqueItems=false validation", - "schema": { "uniqueItems": false }, - "tests": [ - { - "description": "unique array of integers is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "non-unique array of integers is valid", - "data": [1, 1], - "valid": true - }, - { - "description": "numbers are unique if mathematically unequal", - "data": [1.0, 1.00, 1], - "valid": true - }, - { - "description": "unique array of objects is valid", - "data": [{"foo": "bar"}, {"foo": "baz"}], - "valid": true - }, - { - "description": "non-unique array of objects is valid", - "data": [{"foo": "bar"}, {"foo": "bar"}], - "valid": true - }, - { - "description": "unique array of nested objects is valid", - "data": [ - {"foo": {"bar" : {"baz" : true}}}, - {"foo": {"bar" : {"baz" : false}}} - ], - "valid": true - }, - { - "description": "non-unique array of nested objects is valid", - "data": [ - {"foo": {"bar" : {"baz" : true}}}, - {"foo": {"bar" : {"baz" : true}}} - ], - "valid": true - }, - { - "description": "unique array of arrays is valid", - "data": [["foo"], ["bar"]], - "valid": true - }, - { - "description": "non-unique array of arrays is valid", - "data": [["foo"], ["foo"]], - "valid": true - }, - { - "description": "1 and true are unique", - "data": [1, true], - "valid": true - }, - { - "description": "0 and false are unique", - "data": [0, false], - "valid": true - }, - { - "description": "unique heterogeneous types are valid", - "data": [{}, [1], true, null, 1], - "valid": true - }, - { - "description": "non-unique heterogeneous types are valid", - "data": [{}, [1], true, null, {}, 1], - "valid": true - } - ] - }, - { - "description": "uniqueItems=false with an array of items", - "schema": { - "items": [{"type": "boolean"}, {"type": "boolean"}], - "uniqueItems": false - }, - "tests": [ - { - "description": "[false, true] from items array is valid", - "data": [false, true], - "valid": true - }, - { - "description": "[true, false] from items array is valid", - "data": [true, false], - "valid": true - }, - { - "description": "[false, false] from items array is valid", - "data": [false, false], - "valid": true - }, - { - "description": "[true, true] from items array is valid", - "data": [true, true], - "valid": true - }, - { - "description": "unique array extended from [false, true] is valid", - "data": [false, true, "foo", "bar"], - "valid": true - }, - { - "description": "unique array extended from [true, false] is valid", - "data": [true, false, "foo", "bar"], - "valid": true - }, - { - "description": "non-unique array extended from [false, true] is valid", - "data": [false, true, "foo", "foo"], - "valid": true - }, - { - "description": "non-unique array extended from [true, false] is valid", - "data": [true, false, "foo", "foo"], - "valid": true - } - ] - }, - { - "description": "uniqueItems=false with an array of items and additionalItems=false", - "schema": { - "items": [{"type": "boolean"}, {"type": "boolean"}], - "uniqueItems": false, - "additionalItems": false - }, - "tests": [ - { - "description": "[false, true] from items array is valid", - "data": [false, true], - "valid": true - }, - { - "description": "[true, false] from items array is valid", - "data": [true, false], - "valid": true - }, - { - "description": "[false, false] from items array is valid", - "data": [false, false], - "valid": true - }, - { - "description": "[true, true] from items array is valid", - "data": [true, true], - "valid": true - }, - { - "description": "extra items are invalid even if unique", - "data": [false, true, null], - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/additionalItems.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/additionalItems.json deleted file mode 100644 index c9e681549..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/additionalItems.json +++ /dev/null @@ -1,183 +0,0 @@ -[ - { - "description": "additionalItems as schema", - "schema": { - "items": [{}], - "additionalItems": {"type": "integer"} - }, - "tests": [ - { - "description": "additional items match schema", - "data": [ null, 2, 3, 4 ], - "valid": true - }, - { - "description": "additional items do not match schema", - "data": [ null, 2, 3, "foo" ], - "valid": false - } - ] - }, - { - "description": "when items is schema, additionalItems does nothing", - "schema": { - "items": {}, - "additionalItems": false - }, - "tests": [ - { - "description": "all items match schema", - "data": [ 1, 2, 3, 4, 5 ], - "valid": true - } - ] - }, - { - "description": "array of items with no additionalItems permitted", - "schema": { - "items": [{}, {}, {}], - "additionalItems": false - }, - "tests": [ - { - "description": "empty array", - "data": [ ], - "valid": true - }, - { - "description": "fewer number of items present (1)", - "data": [ 1 ], - "valid": true - }, - { - "description": "fewer number of items present (2)", - "data": [ 1, 2 ], - "valid": true - }, - { - "description": "equal number of items present", - "data": [ 1, 2, 3 ], - "valid": true - }, - { - "description": "additional items are not permitted", - "data": [ 1, 2, 3, 4 ], - "valid": false - } - ] - }, - { - "description": "additionalItems as false without items", - "schema": {"additionalItems": false}, - "tests": [ - { - "description": - "items defaults to empty schema so everything is valid", - "data": [ 1, 2, 3, 4, 5 ], - "valid": true - }, - { - "description": "ignores non-arrays", - "data": {"foo" : "bar"}, - "valid": true - } - ] - }, - { - "description": "additionalItems are allowed by default", - "schema": {"items": [{"type": "integer"}]}, - "tests": [ - { - "description": "only the first item is validated", - "data": [1, "foo", false], - "valid": true - } - ] - }, - { - "description": "additionalItems does not look in applicators, valid case", - "schema": { - "allOf": [ - { "items": [ { "type": "integer" } ] } - ], - "additionalItems": { "type": "boolean" } - }, - "tests": [ - { - "description": "items defined in allOf are not examined", - "data": [ 1, null ], - "valid": true - } - ] - }, - { - "description": "additionalItems does not look in applicators, invalid case", - "schema": { - "allOf": [ - { "items": [ { "type": "integer" }, { "type": "string" } ] } - ], - "items": [ {"type": "integer" } ], - "additionalItems": { "type": "boolean" } - }, - "tests": [ - { - "description": "items defined in allOf are not examined", - "data": [ 1, "hello" ], - "valid": false - } - ] - }, - { - "description": "items validation adjusts the starting index for additionalItems", - "schema": { - "items": [ { "type": "string" } ], - "additionalItems": { "type": "integer" } - }, - "tests": [ - { - "description": "valid items", - "data": [ "x", 2, 3 ], - "valid": true - }, - { - "description": "wrong type of second item", - "data": [ "x", "y" ], - "valid": false - } - ] - }, - { - "description": "additionalItems with heterogeneous array", - "schema": { - "items": [{}], - "additionalItems": false - }, - "tests": [ - { - "description": "heterogeneous invalid instance", - "data": [ "foo", "bar", 37 ], - "valid": false - }, - { - "description": "valid instance", - "data": [ null ], - "valid": true - } - ] - }, - { - "description": "additionalItems with null instance elements", - "schema": { - "additionalItems": { - "type": "null" - } - }, - "tests": [ - { - "description": "allows null elements", - "data": [ null ], - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/additionalProperties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/additionalProperties.json deleted file mode 100644 index 0f8e1627a..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/additionalProperties.json +++ /dev/null @@ -1,147 +0,0 @@ -[ - { - "description": - "additionalProperties being false does not allow other properties", - "schema": { - "properties": {"foo": {}, "bar": {}}, - "patternProperties": { "^v": {} }, - "additionalProperties": false - }, - "tests": [ - { - "description": "no additional properties is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "an additional property is invalid", - "data": {"foo" : 1, "bar" : 2, "quux" : "boom"}, - "valid": false - }, - { - "description": "ignores arrays", - "data": [1, 2, 3], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobarbaz", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - }, - { - "description": "patternProperties are not additional properties", - "data": {"foo":1, "vroom": 2}, - "valid": true - } - ] - }, - { - "description": "non-ASCII pattern with additionalProperties", - "schema": { - "patternProperties": {"^á": {}}, - "additionalProperties": false - }, - "tests": [ - { - "description": "matching the pattern is valid", - "data": {"ármányos": 2}, - "valid": true - }, - { - "description": "not matching the pattern is invalid", - "data": {"élmény": 2}, - "valid": false - } - ] - }, - { - "description": "additionalProperties with schema", - "schema": { - "properties": {"foo": {}, "bar": {}}, - "additionalProperties": {"type": "boolean"} - }, - "tests": [ - { - "description": "no additional properties is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "an additional valid property is valid", - "data": {"foo" : 1, "bar" : 2, "quux" : true}, - "valid": true - }, - { - "description": "an additional invalid property is invalid", - "data": {"foo" : 1, "bar" : 2, "quux" : 12}, - "valid": false - } - ] - }, - { - "description": - "additionalProperties can exist by itself", - "schema": { - "additionalProperties": {"type": "boolean"} - }, - "tests": [ - { - "description": "an additional valid property is valid", - "data": {"foo" : true}, - "valid": true - }, - { - "description": "an additional invalid property is invalid", - "data": {"foo" : 1}, - "valid": false - } - ] - }, - { - "description": "additionalProperties are allowed by default", - "schema": {"properties": {"foo": {}, "bar": {}}}, - "tests": [ - { - "description": "additional properties are allowed", - "data": {"foo": 1, "bar": 2, "quux": true}, - "valid": true - } - ] - }, - { - "description": "additionalProperties does not look in applicators", - "schema": { - "allOf": [ - {"properties": {"foo": {}}} - ], - "additionalProperties": {"type": "boolean"} - }, - "tests": [ - { - "description": "properties defined in allOf are not examined", - "data": {"foo": 1, "bar": true}, - "valid": false - } - ] - }, - { - "description": "additionalProperties with null valued instance properties", - "schema": { - "additionalProperties": { - "type": "null" - } - }, - "tests": [ - { - "description": "allows null values", - "data": {"foo": null}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/allOf.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/allOf.json deleted file mode 100644 index fc7dec59e..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/allOf.json +++ /dev/null @@ -1,261 +0,0 @@ -[ - { - "description": "allOf", - "schema": { - "allOf": [ - { - "properties": { - "bar": {"type": "integer"} - }, - "required": ["bar"] - }, - { - "properties": { - "foo": {"type": "string"} - }, - "required": ["foo"] - } - ] - }, - "tests": [ - { - "description": "allOf", - "data": {"foo": "baz", "bar": 2}, - "valid": true - }, - { - "description": "mismatch second", - "data": {"foo": "baz"}, - "valid": false - }, - { - "description": "mismatch first", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "wrong type", - "data": {"foo": "baz", "bar": "quux"}, - "valid": false - } - ] - }, - { - "description": "allOf with base schema", - "schema": { - "properties": {"bar": {"type": "integer"}}, - "required": ["bar"], - "allOf" : [ - { - "properties": { - "foo": {"type": "string"} - }, - "required": ["foo"] - }, - { - "properties": { - "baz": {"type": "null"} - }, - "required": ["baz"] - } - ] - }, - "tests": [ - { - "description": "valid", - "data": {"foo": "quux", "bar": 2, "baz": null}, - "valid": true - }, - { - "description": "mismatch base schema", - "data": {"foo": "quux", "baz": null}, - "valid": false - }, - { - "description": "mismatch first allOf", - "data": {"bar": 2, "baz": null}, - "valid": false - }, - { - "description": "mismatch second allOf", - "data": {"foo": "quux", "bar": 2}, - "valid": false - }, - { - "description": "mismatch both", - "data": {"bar": 2}, - "valid": false - } - ] - }, - { - "description": "allOf simple types", - "schema": { - "allOf": [ - {"maximum": 30}, - {"minimum": 20} - ] - }, - "tests": [ - { - "description": "valid", - "data": 25, - "valid": true - }, - { - "description": "mismatch one", - "data": 35, - "valid": false - } - ] - }, - { - "description": "allOf with one empty schema", - "schema": { - "allOf": [ - {} - ] - }, - "tests": [ - { - "description": "any data is valid", - "data": 1, - "valid": true - } - ] - }, - { - "description": "allOf with two empty schemas", - "schema": { - "allOf": [ - {}, - {} - ] - }, - "tests": [ - { - "description": "any data is valid", - "data": 1, - "valid": true - } - ] - }, - { - "description": "allOf with the first empty schema", - "schema": { - "allOf": [ - {}, - { "type": "number" } - ] - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "allOf with the last empty schema", - "schema": { - "allOf": [ - { "type": "number" }, - {} - ] - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "nested allOf, to check validation semantics", - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "null" - } - ] - } - ] - }, - "tests": [ - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "anything non-null is invalid", - "data": 123, - "valid": false - } - ] - }, - { - "description": "allOf combined with anyOf, oneOf", - "schema": { - "allOf": [ { "multipleOf": 2 } ], - "anyOf": [ { "multipleOf": 3 } ], - "oneOf": [ { "multipleOf": 5 } ] - }, - "tests": [ - { - "description": "allOf: false, anyOf: false, oneOf: false", - "data": 1, - "valid": false - }, - { - "description": "allOf: false, anyOf: false, oneOf: true", - "data": 5, - "valid": false - }, - { - "description": "allOf: false, anyOf: true, oneOf: false", - "data": 3, - "valid": false - }, - { - "description": "allOf: false, anyOf: true, oneOf: true", - "data": 15, - "valid": false - }, - { - "description": "allOf: true, anyOf: false, oneOf: false", - "data": 2, - "valid": false - }, - { - "description": "allOf: true, anyOf: false, oneOf: true", - "data": 10, - "valid": false - }, - { - "description": "allOf: true, anyOf: true, oneOf: false", - "data": 6, - "valid": false - }, - { - "description": "allOf: true, anyOf: true, oneOf: true", - "data": 30, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/anyOf.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/anyOf.json deleted file mode 100644 index 09cc3c2f6..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/anyOf.json +++ /dev/null @@ -1,156 +0,0 @@ -[ - { - "description": "anyOf", - "schema": { - "anyOf": [ - { - "type": "integer" - }, - { - "minimum": 2 - } - ] - }, - "tests": [ - { - "description": "first anyOf valid", - "data": 1, - "valid": true - }, - { - "description": "second anyOf valid", - "data": 2.5, - "valid": true - }, - { - "description": "both anyOf valid", - "data": 3, - "valid": true - }, - { - "description": "neither anyOf valid", - "data": 1.5, - "valid": false - } - ] - }, - { - "description": "anyOf with base schema", - "schema": { - "type": "string", - "anyOf" : [ - { - "maxLength": 2 - }, - { - "minLength": 4 - } - ] - }, - "tests": [ - { - "description": "mismatch base schema", - "data": 3, - "valid": false - }, - { - "description": "one anyOf valid", - "data": "foobar", - "valid": true - }, - { - "description": "both anyOf invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "anyOf complex types", - "schema": { - "anyOf": [ - { - "properties": { - "bar": {"type": "integer"} - }, - "required": ["bar"] - }, - { - "properties": { - "foo": {"type": "string"} - }, - "required": ["foo"] - } - ] - }, - "tests": [ - { - "description": "first anyOf valid (complex)", - "data": {"bar": 2}, - "valid": true - }, - { - "description": "second anyOf valid (complex)", - "data": {"foo": "baz"}, - "valid": true - }, - { - "description": "both anyOf valid (complex)", - "data": {"foo": "baz", "bar": 2}, - "valid": true - }, - { - "description": "neither anyOf valid (complex)", - "data": {"foo": 2, "bar": "quux"}, - "valid": false - } - ] - }, - { - "description": "anyOf with one empty schema", - "schema": { - "anyOf": [ - { "type": "number" }, - {} - ] - }, - "tests": [ - { - "description": "string is valid", - "data": "foo", - "valid": true - }, - { - "description": "number is valid", - "data": 123, - "valid": true - } - ] - }, - { - "description": "nested anyOf, to check validation semantics", - "schema": { - "anyOf": [ - { - "anyOf": [ - { - "type": "null" - } - ] - } - ] - }, - "tests": [ - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "anything non-null is invalid", - "data": 123, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/default.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/default.json deleted file mode 100644 index 289a9b66c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/default.json +++ /dev/null @@ -1,79 +0,0 @@ -[ - { - "description": "invalid type for default", - "schema": { - "properties": { - "foo": { - "type": "integer", - "default": [] - } - } - }, - "tests": [ - { - "description": "valid when property is specified", - "data": {"foo": 13}, - "valid": true - }, - { - "description": "still valid when the invalid default is used", - "data": {}, - "valid": true - } - ] - }, - { - "description": "invalid string value for default", - "schema": { - "properties": { - "bar": { - "type": "string", - "minLength": 4, - "default": "bad" - } - } - }, - "tests": [ - { - "description": "valid when property is specified", - "data": {"bar": "good"}, - "valid": true - }, - { - "description": "still valid when the invalid default is used", - "data": {}, - "valid": true - } - ] - }, - { - "description": "the default keyword does not do anything if the property is missing", - "schema": { - "type": "object", - "properties": { - "alpha": { - "type": "number", - "maximum": 3, - "default": 5 - } - } - }, - "tests": [ - { - "description": "an explicit property value is checked against maximum (passing)", - "data": { "alpha": 1 }, - "valid": true - }, - { - "description": "an explicit property value is checked against maximum (failing)", - "data": { "alpha": 5 }, - "valid": false - }, - { - "description": "missing properties are not filled in with the default", - "data": {}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/definitions.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/definitions.json deleted file mode 100644 index 482823bec..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/definitions.json +++ /dev/null @@ -1,26 +0,0 @@ -[ - { - "description": "validate definition against metaschema", - "schema": {"$ref": "http://json-schema.org/draft-04/schema#"}, - "tests": [ - { - "description": "valid definition schema", - "data": { - "definitions": { - "foo": {"type": "integer"} - } - }, - "valid": true - }, - { - "description": "invalid definition schema", - "data": { - "definitions": { - "foo": {"type": 1} - } - }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/dependencies.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/dependencies.json deleted file mode 100644 index 9045ddc25..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/dependencies.json +++ /dev/null @@ -1,232 +0,0 @@ -[ - { - "description": "dependencies", - "schema": { - "dependencies": {"bar": ["foo"]} - }, - "tests": [ - { - "description": "neither", - "data": {}, - "valid": true - }, - { - "description": "nondependant", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "with dependency", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "missing dependency", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "ignores arrays", - "data": ["bar"], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobar", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "multiple dependencies", - "schema": { - "dependencies": {"quux": ["foo", "bar"]} - }, - "tests": [ - { - "description": "neither", - "data": {}, - "valid": true - }, - { - "description": "nondependants", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "with dependencies", - "data": {"foo": 1, "bar": 2, "quux": 3}, - "valid": true - }, - { - "description": "missing dependency", - "data": {"foo": 1, "quux": 2}, - "valid": false - }, - { - "description": "missing other dependency", - "data": {"bar": 1, "quux": 2}, - "valid": false - }, - { - "description": "missing both dependencies", - "data": {"quux": 1}, - "valid": false - } - ] - }, - { - "description": "multiple dependencies subschema", - "schema": { - "dependencies": { - "bar": { - "properties": { - "foo": {"type": "integer"}, - "bar": {"type": "integer"} - } - } - } - }, - "tests": [ - { - "description": "valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "no dependency", - "data": {"foo": "quux"}, - "valid": true - }, - { - "description": "wrong type", - "data": {"foo": "quux", "bar": 2}, - "valid": false - }, - { - "description": "wrong type other", - "data": {"foo": 2, "bar": "quux"}, - "valid": false - }, - { - "description": "wrong type both", - "data": {"foo": "quux", "bar": "quux"}, - "valid": false - } - ] - }, - { - "description": "dependencies with escaped characters", - "schema": { - "dependencies": { - "foo\nbar": ["foo\rbar"], - "foo\tbar": { - "minProperties": 4 - }, - "foo'bar": {"required": ["foo\"bar"]}, - "foo\"bar": ["foo'bar"] - } - }, - "tests": [ - { - "description": "valid object 1", - "data": { - "foo\nbar": 1, - "foo\rbar": 2 - }, - "valid": true - }, - { - "description": "valid object 2", - "data": { - "foo\tbar": 1, - "a": 2, - "b": 3, - "c": 4 - }, - "valid": true - }, - { - "description": "valid object 3", - "data": { - "foo'bar": 1, - "foo\"bar": 2 - }, - "valid": true - }, - { - "description": "invalid object 1", - "data": { - "foo\nbar": 1, - "foo": 2 - }, - "valid": false - }, - { - "description": "invalid object 2", - "data": { - "foo\tbar": 1, - "a": 2 - }, - "valid": false - }, - { - "description": "invalid object 3", - "data": { - "foo'bar": 1 - }, - "valid": false - }, - { - "description": "invalid object 4", - "data": { - "foo\"bar": 2 - }, - "valid": false - } - ] - }, - { - "description": "dependent subschema incompatible with root", - "schema": { - "properties": { - "foo": {} - }, - "dependencies": { - "foo": { - "properties": { - "bar": {} - }, - "additionalProperties": false - } - } - }, - "tests": [ - { - "description": "matches root", - "data": {"foo": 1}, - "valid": false - }, - { - "description": "matches dependency", - "data": {"bar": 1}, - "valid": true - }, - { - "description": "matches both", - "data": {"foo": 1, "bar": 2}, - "valid": false - }, - { - "description": "no dependency", - "data": {"baz": 1}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/enum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/enum.json deleted file mode 100644 index ce43acc02..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/enum.json +++ /dev/null @@ -1,320 +0,0 @@ -[ - { - "description": "simple enum validation", - "schema": {"enum": [1, 2, 3]}, - "tests": [ - { - "description": "one of the enum is valid", - "data": 1, - "valid": true - }, - { - "description": "something else is invalid", - "data": 4, - "valid": false - } - ] - }, - { - "description": "heterogeneous enum validation", - "schema": {"enum": [6, "foo", [], true, {"foo": 12}]}, - "tests": [ - { - "description": "one of the enum is valid", - "data": [], - "valid": true - }, - { - "description": "something else is invalid", - "data": null, - "valid": false - }, - { - "description": "objects are deep compared", - "data": {"foo": false}, - "valid": false - }, - { - "description": "valid object matches", - "data": {"foo": 12}, - "valid": true - }, - { - "description": "extra properties in object is invalid", - "data": {"foo": 12, "boo": 42}, - "valid": false - } - ] - }, - { - "description": "heterogeneous enum-with-null validation", - "schema": { "enum": [6, null] }, - "tests": [ - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "number is valid", - "data": 6, - "valid": true - }, - { - "description": "something else is invalid", - "data": "test", - "valid": false - } - ] - }, - { - "description": "enums in properties", - "schema": { - "type":"object", - "properties": { - "foo": {"enum":["foo"]}, - "bar": {"enum":["bar"]} - }, - "required": ["bar"] - }, - "tests": [ - { - "description": "both properties are valid", - "data": {"foo":"foo", "bar":"bar"}, - "valid": true - }, - { - "description": "wrong foo value", - "data": {"foo":"foot", "bar":"bar"}, - "valid": false - }, - { - "description": "wrong bar value", - "data": {"foo":"foo", "bar":"bart"}, - "valid": false - }, - { - "description": "missing optional property is valid", - "data": {"bar":"bar"}, - "valid": true - }, - { - "description": "missing required property is invalid", - "data": {"foo":"foo"}, - "valid": false - }, - { - "description": "missing all properties is invalid", - "data": {}, - "valid": false - } - ] - }, - { - "description": "enum with escaped characters", - "schema": { - "enum": ["foo\nbar", "foo\rbar"] - }, - "tests": [ - { - "description": "member 1 is valid", - "data": "foo\nbar", - "valid": true - }, - { - "description": "member 2 is valid", - "data": "foo\rbar", - "valid": true - }, - { - "description": "another string is invalid", - "data": "abc", - "valid": false - } - ] - }, - { - "description": "enum with false does not match 0", - "schema": {"enum": [false]}, - "tests": [ - { - "description": "false is valid", - "data": false, - "valid": true - }, - { - "description": "integer zero is invalid", - "data": 0, - "valid": false - }, - { - "description": "float zero is invalid", - "data": 0.0, - "valid": false - } - ] - }, - { - "description": "enum with [false] does not match [0]", - "schema": {"enum": [[false]]}, - "tests": [ - { - "description": "[false] is valid", - "data": [false], - "valid": true - }, - { - "description": "[0] is invalid", - "data": [0], - "valid": false - }, - { - "description": "[0.0] is invalid", - "data": [0.0], - "valid": false - } - ] - }, - { - "description": "enum with true does not match 1", - "schema": {"enum": [true]}, - "tests": [ - { - "description": "true is valid", - "data": true, - "valid": true - }, - { - "description": "integer one is invalid", - "data": 1, - "valid": false - }, - { - "description": "float one is invalid", - "data": 1.0, - "valid": false - } - ] - }, - { - "description": "enum with [true] does not match [1]", - "schema": {"enum": [[true]]}, - "tests": [ - { - "description": "[true] is valid", - "data": [true], - "valid": true - }, - { - "description": "[1] is invalid", - "data": [1], - "valid": false - }, - { - "description": "[1.0] is invalid", - "data": [1.0], - "valid": false - } - ] - }, - { - "description": "enum with 0 does not match false", - "schema": {"enum": [0]}, - "tests": [ - { - "description": "false is invalid", - "data": false, - "valid": false - }, - { - "description": "integer zero is valid", - "data": 0, - "valid": true - }, - { - "description": "float zero is valid", - "data": 0.0, - "valid": true - } - ] - }, - { - "description": "enum with [0] does not match [false]", - "schema": {"enum": [[0]]}, - "tests": [ - { - "description": "[false] is invalid", - "data": [false], - "valid": false - }, - { - "description": "[0] is valid", - "data": [0], - "valid": true - }, - { - "description": "[0.0] is valid", - "data": [0.0], - "valid": true - } - ] - }, - { - "description": "enum with 1 does not match true", - "schema": {"enum": [1]}, - "tests": [ - { - "description": "true is invalid", - "data": true, - "valid": false - }, - { - "description": "integer one is valid", - "data": 1, - "valid": true - }, - { - "description": "float one is valid", - "data": 1.0, - "valid": true - } - ] - }, - { - "description": "enum with [1] does not match [true]", - "schema": {"enum": [[1]]}, - "tests": [ - { - "description": "[true] is invalid", - "data": [true], - "valid": false - }, - { - "description": "[1] is valid", - "data": [1], - "valid": true - }, - { - "description": "[1.0] is valid", - "data": [1.0], - "valid": true - } - ] - }, - { - "description": "nul characters in strings", - "schema": { "enum": [ "hello\u0000there" ] }, - "tests": [ - { - "description": "match string with nul", - "data": "hello\u0000there", - "valid": true - }, - { - "description": "do not match string lacking nul", - "data": "hellothere", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/format.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/format.json deleted file mode 100644 index 5bd83cc6c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/format.json +++ /dev/null @@ -1,218 +0,0 @@ -[ - { - "description": "email format", - "schema": { "format": "email" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "ipv4 format", - "schema": { "format": "ipv4" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "ipv6 format", - "schema": { "format": "ipv6" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "hostname format", - "schema": { "format": "hostname" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "date-time format", - "schema": { "format": "date-time" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "uri format", - "schema": { "format": "uri" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/infinite-loop-detection.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/infinite-loop-detection.json deleted file mode 100644 index f98c74fc6..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/infinite-loop-detection.json +++ /dev/null @@ -1,36 +0,0 @@ -[ - { - "description": "evaluating the same schema location against the same data location twice is not a sign of an infinite loop", - "schema": { - "definitions": { - "int": { "type": "integer" } - }, - "allOf": [ - { - "properties": { - "foo": { - "$ref": "#/definitions/int" - } - } - }, - { - "additionalProperties": { - "$ref": "#/definitions/int" - } - } - ] - }, - "tests": [ - { - "description": "passing case", - "data": { "foo": 1 }, - "valid": true - }, - { - "description": "failing case", - "data": { "foo": "a string" }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/items.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/items.json deleted file mode 100644 index 16ea0704d..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/items.json +++ /dev/null @@ -1,227 +0,0 @@ -[ - { - "description": "a schema given for items", - "schema": { - "items": {"type": "integer"} - }, - "tests": [ - { - "description": "valid items", - "data": [ 1, 2, 3 ], - "valid": true - }, - { - "description": "wrong type of items", - "data": [1, "x"], - "valid": false - }, - { - "description": "ignores non-arrays", - "data": {"foo" : "bar"}, - "valid": true - }, - { - "description": "JavaScript pseudo-array is valid", - "data": { - "0": "invalid", - "length": 1 - }, - "valid": true - } - ] - }, - { - "description": "an array of schemas for items", - "schema": { - "items": [ - {"type": "integer"}, - {"type": "string"} - ] - }, - "tests": [ - { - "description": "correct types", - "data": [ 1, "foo" ], - "valid": true - }, - { - "description": "wrong types", - "data": [ "foo", 1 ], - "valid": false - }, - { - "description": "incomplete array of items", - "data": [ 1 ], - "valid": true - }, - { - "description": "array with additional items", - "data": [ 1, "foo", true ], - "valid": true - }, - { - "description": "empty array", - "data": [ ], - "valid": true - }, - { - "description": "JavaScript pseudo-array is valid", - "data": { - "0": "invalid", - "1": "valid", - "length": 2 - }, - "valid": true - } - ] - }, - { - "description": "items and subitems", - "schema": { - "definitions": { - "item": { - "type": "array", - "additionalItems": false, - "items": [ - { "$ref": "#/definitions/sub-item" }, - { "$ref": "#/definitions/sub-item" } - ] - }, - "sub-item": { - "type": "object", - "required": ["foo"] - } - }, - "type": "array", - "additionalItems": false, - "items": [ - { "$ref": "#/definitions/item" }, - { "$ref": "#/definitions/item" }, - { "$ref": "#/definitions/item" } - ] - }, - "tests": [ - { - "description": "valid items", - "data": [ - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ] - ], - "valid": true - }, - { - "description": "too many items", - "data": [ - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ] - ], - "valid": false - }, - { - "description": "too many sub-items", - "data": [ - [ {"foo": null}, {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ] - ], - "valid": false - }, - { - "description": "wrong item", - "data": [ - {"foo": null}, - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ] - ], - "valid": false - }, - { - "description": "wrong sub-item", - "data": [ - [ {}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ] - ], - "valid": false - }, - { - "description": "fewer items is valid", - "data": [ - [ {"foo": null} ], - [ {"foo": null} ] - ], - "valid": true - } - ] - }, - { - "description": "nested items", - "schema": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "number" - } - } - } - } - }, - "tests": [ - { - "description": "valid nested array", - "data": [[[[1]], [[2],[3]]], [[[4], [5], [6]]]], - "valid": true - }, - { - "description": "nested array with invalid type", - "data": [[[["1"]], [[2],[3]]], [[[4], [5], [6]]]], - "valid": false - }, - { - "description": "not deep enough", - "data": [[[1], [2],[3]], [[4], [5], [6]]], - "valid": false - } - ] - }, - { - "description": "items with null instance elements", - "schema": { - "items": { - "type": "null" - } - }, - "tests": [ - { - "description": "allows null elements", - "data": [ null ], - "valid": true - } - ] - }, - { - "description": "array-form items with null instance elements", - "schema": { - "items": [ - { - "type": "null" - } - ] - }, - "tests": [ - { - "description": "allows null elements", - "data": [ null ], - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/maxItems.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/maxItems.json deleted file mode 100644 index 3b53a6b37..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/maxItems.json +++ /dev/null @@ -1,28 +0,0 @@ -[ - { - "description": "maxItems validation", - "schema": {"maxItems": 2}, - "tests": [ - { - "description": "shorter is valid", - "data": [1], - "valid": true - }, - { - "description": "exact length is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "too long is invalid", - "data": [1, 2, 3], - "valid": false - }, - { - "description": "ignores non-arrays", - "data": "foobar", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/maxLength.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/maxLength.json deleted file mode 100644 index 338795943..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/maxLength.json +++ /dev/null @@ -1,33 +0,0 @@ -[ - { - "description": "maxLength validation", - "schema": {"maxLength": 2}, - "tests": [ - { - "description": "shorter is valid", - "data": "f", - "valid": true - }, - { - "description": "exact length is valid", - "data": "fo", - "valid": true - }, - { - "description": "too long is invalid", - "data": "foo", - "valid": false - }, - { - "description": "ignores non-strings", - "data": 100, - "valid": true - }, - { - "description": "two graphemes is long enough", - "data": "\uD83D\uDCA9\uD83D\uDCA9", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/maxProperties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/maxProperties.json deleted file mode 100644 index aa7209f53..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/maxProperties.json +++ /dev/null @@ -1,54 +0,0 @@ -[ - { - "description": "maxProperties validation", - "schema": {"maxProperties": 2}, - "tests": [ - { - "description": "shorter is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "exact length is valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "too long is invalid", - "data": {"foo": 1, "bar": 2, "baz": 3}, - "valid": false - }, - { - "description": "ignores arrays", - "data": [1, 2, 3], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobar", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "maxProperties = 0 means the object is empty", - "schema": { "maxProperties": 0 }, - "tests": [ - { - "description": "no properties is valid", - "data": {}, - "valid": true - }, - { - "description": "one property is invalid", - "data": { "foo": 1 }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/maximum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/maximum.json deleted file mode 100644 index ccb79c6c4..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/maximum.json +++ /dev/null @@ -1,99 +0,0 @@ -[ - { - "description": "maximum validation", - "schema": {"maximum": 3.0}, - "tests": [ - { - "description": "below the maximum is valid", - "data": 2.6, - "valid": true - }, - { - "description": "boundary point is valid", - "data": 3.0, - "valid": true - }, - { - "description": "above the maximum is invalid", - "data": 3.5, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - }, - { - "description": "maximum validation with unsigned integer", - "schema": {"maximum": 300}, - "tests": [ - { - "description": "below the maximum is invalid", - "data": 299.97, - "valid": true - }, - { - "description": "boundary point integer is valid", - "data": 300, - "valid": true - }, - { - "description": "boundary point float is valid", - "data": 300.00, - "valid": true - }, - { - "description": "above the maximum is invalid", - "data": 300.5, - "valid": false - } - ] - }, - { - "description": "maximum validation (explicit false exclusivity)", - "schema": {"maximum": 3.0, "exclusiveMaximum": false}, - "tests": [ - { - "description": "below the maximum is valid", - "data": 2.6, - "valid": true - }, - { - "description": "boundary point is valid", - "data": 3.0, - "valid": true - }, - { - "description": "above the maximum is invalid", - "data": 3.5, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - }, - { - "description": "exclusiveMaximum validation", - "schema": { - "maximum": 3.0, - "exclusiveMaximum": true - }, - "tests": [ - { - "description": "below the maximum is still valid", - "data": 2.2, - "valid": true - }, - { - "description": "boundary point is invalid", - "data": 3.0, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/minItems.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/minItems.json deleted file mode 100644 index ed5118815..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/minItems.json +++ /dev/null @@ -1,28 +0,0 @@ -[ - { - "description": "minItems validation", - "schema": {"minItems": 1}, - "tests": [ - { - "description": "longer is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "exact length is valid", - "data": [1], - "valid": true - }, - { - "description": "too short is invalid", - "data": [], - "valid": false - }, - { - "description": "ignores non-arrays", - "data": "", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/minLength.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/minLength.json deleted file mode 100644 index 6652c7509..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/minLength.json +++ /dev/null @@ -1,33 +0,0 @@ -[ - { - "description": "minLength validation", - "schema": {"minLength": 2}, - "tests": [ - { - "description": "longer is valid", - "data": "foo", - "valid": true - }, - { - "description": "exact length is valid", - "data": "fo", - "valid": true - }, - { - "description": "too short is invalid", - "data": "f", - "valid": false - }, - { - "description": "ignores non-strings", - "data": 1, - "valid": true - }, - { - "description": "one grapheme is not long enough", - "data": "\uD83D\uDCA9", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/minProperties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/minProperties.json deleted file mode 100644 index 49a0726e0..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/minProperties.json +++ /dev/null @@ -1,38 +0,0 @@ -[ - { - "description": "minProperties validation", - "schema": {"minProperties": 1}, - "tests": [ - { - "description": "longer is valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "exact length is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "too short is invalid", - "data": {}, - "valid": false - }, - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores strings", - "data": "", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/minimum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/minimum.json deleted file mode 100644 index 22d310e13..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/minimum.json +++ /dev/null @@ -1,114 +0,0 @@ -[ - { - "description": "minimum validation", - "schema": {"minimum": 1.1}, - "tests": [ - { - "description": "above the minimum is valid", - "data": 2.6, - "valid": true - }, - { - "description": "boundary point is valid", - "data": 1.1, - "valid": true - }, - { - "description": "below the minimum is invalid", - "data": 0.6, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - }, - { - "description": "minimum validation (explicit false exclusivity)", - "schema": {"minimum": 1.1, "exclusiveMinimum": false}, - "tests": [ - { - "description": "above the minimum is valid", - "data": 2.6, - "valid": true - }, - { - "description": "boundary point is valid", - "data": 1.1, - "valid": true - }, - { - "description": "below the minimum is invalid", - "data": 0.6, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - }, - { - "description": "exclusiveMinimum validation", - "schema": { - "minimum": 1.1, - "exclusiveMinimum": true - }, - "tests": [ - { - "description": "above the minimum is still valid", - "data": 1.2, - "valid": true - }, - { - "description": "boundary point is invalid", - "data": 1.1, - "valid": false - } - ] - }, - { - "description": "minimum validation with signed integer", - "schema": {"minimum": -2}, - "tests": [ - { - "description": "negative above the minimum is valid", - "data": -1, - "valid": true - }, - { - "description": "positive above the minimum is valid", - "data": 0, - "valid": true - }, - { - "description": "boundary point is valid", - "data": -2, - "valid": true - }, - { - "description": "boundary point with float is valid", - "data": -2.0, - "valid": true - }, - { - "description": "float below the minimum is invalid", - "data": -2.0001, - "valid": false - }, - { - "description": "int below the minimum is invalid", - "data": -3, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/multipleOf.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/multipleOf.json deleted file mode 100644 index ed2df4a7f..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/multipleOf.json +++ /dev/null @@ -1,82 +0,0 @@ -[ - { - "description": "by int", - "schema": {"multipleOf": 2}, - "tests": [ - { - "description": "int by int", - "data": 10, - "valid": true - }, - { - "description": "int by int fail", - "data": 7, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "by number", - "schema": {"multipleOf": 1.5}, - "tests": [ - { - "description": "zero is multiple of anything", - "data": 0, - "valid": true - }, - { - "description": "4.5 is multiple of 1.5", - "data": 4.5, - "valid": true - }, - { - "description": "35 is not multiple of 1.5", - "data": 35, - "valid": false - } - ] - }, - { - "description": "by small number", - "schema": {"multipleOf": 0.0001}, - "tests": [ - { - "description": "0.0075 is multiple of 0.0001", - "data": 0.0075, - "valid": true - }, - { - "description": "0.00751 is not multiple of 0.0001", - "data": 0.00751, - "valid": false - } - ] - }, - { - "description": "float division = inf", - "schema": {"type": "integer", "multipleOf": 0.123456789}, - "tests": [ - { - "description": "invalid, but naive implementations may raise an overflow error", - "data": 1e308, - "valid": false - } - ] - }, - { - "description": "small multiple of large integer", - "schema": {"type": "integer", "multipleOf": 1e-8}, - "tests": [ - { - "description": "any integer is a multiple of 1e-8", - "data": 12391239123, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/not.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/not.json deleted file mode 100644 index 525219cf2..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/not.json +++ /dev/null @@ -1,157 +0,0 @@ -[ - { - "description": "not", - "schema": { - "not": {"type": "integer"} - }, - "tests": [ - { - "description": "allowed", - "data": "foo", - "valid": true - }, - { - "description": "disallowed", - "data": 1, - "valid": false - } - ] - }, - { - "description": "not multiple types", - "schema": { - "not": {"type": ["integer", "boolean"]} - }, - "tests": [ - { - "description": "valid", - "data": "foo", - "valid": true - }, - { - "description": "mismatch", - "data": 1, - "valid": false - }, - { - "description": "other mismatch", - "data": true, - "valid": false - } - ] - }, - { - "description": "not more complex schema", - "schema": { - "not": { - "type": "object", - "properties": { - "foo": { - "type": "string" - } - } - } - }, - "tests": [ - { - "description": "match", - "data": 1, - "valid": true - }, - { - "description": "other match", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "mismatch", - "data": {"foo": "bar"}, - "valid": false - } - ] - }, - { - "description": "forbidden property", - "schema": { - "properties": { - "foo": { - "not": {} - } - } - }, - "tests": [ - { - "description": "property present", - "data": {"foo": 1, "bar": 2}, - "valid": false - }, - { - "description": "property absent", - "data": {"bar": 1, "baz": 2}, - "valid": true - } - ] - }, - { - "description": "forbid everything with empty schema", - "schema": { "not": {} }, - "tests": [ - { - "description": "number is invalid", - "data": 1, - "valid": false - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - }, - { - "description": "boolean true is invalid", - "data": true, - "valid": false - }, - { - "description": "boolean false is invalid", - "data": false, - "valid": false - }, - { - "description": "null is invalid", - "data": null, - "valid": false - }, - { - "description": "object is invalid", - "data": {"foo": "bar"}, - "valid": false - }, - { - "description": "empty object is invalid", - "data": {}, - "valid": false - }, - { - "description": "array is invalid", - "data": ["foo"], - "valid": false - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - } - ] - }, - { - "description": "double negation", - "schema": { "not": { "not": {} } }, - "tests": [ - { - "description": "any value is valid", - "data": "foo", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/oneOf.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/oneOf.json deleted file mode 100644 index 2487f0e38..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/oneOf.json +++ /dev/null @@ -1,230 +0,0 @@ -[ - { - "description": "oneOf", - "schema": { - "oneOf": [ - { - "type": "integer" - }, - { - "minimum": 2 - } - ] - }, - "tests": [ - { - "description": "first oneOf valid", - "data": 1, - "valid": true - }, - { - "description": "second oneOf valid", - "data": 2.5, - "valid": true - }, - { - "description": "both oneOf valid", - "data": 3, - "valid": false - }, - { - "description": "neither oneOf valid", - "data": 1.5, - "valid": false - } - ] - }, - { - "description": "oneOf with base schema", - "schema": { - "type": "string", - "oneOf" : [ - { - "minLength": 2 - }, - { - "maxLength": 4 - } - ] - }, - "tests": [ - { - "description": "mismatch base schema", - "data": 3, - "valid": false - }, - { - "description": "one oneOf valid", - "data": "foobar", - "valid": true - }, - { - "description": "both oneOf valid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "oneOf complex types", - "schema": { - "oneOf": [ - { - "properties": { - "bar": {"type": "integer"} - }, - "required": ["bar"] - }, - { - "properties": { - "foo": {"type": "string"} - }, - "required": ["foo"] - } - ] - }, - "tests": [ - { - "description": "first oneOf valid (complex)", - "data": {"bar": 2}, - "valid": true - }, - { - "description": "second oneOf valid (complex)", - "data": {"foo": "baz"}, - "valid": true - }, - { - "description": "both oneOf valid (complex)", - "data": {"foo": "baz", "bar": 2}, - "valid": false - }, - { - "description": "neither oneOf valid (complex)", - "data": {"foo": 2, "bar": "quux"}, - "valid": false - } - ] - }, - { - "description": "oneOf with empty schema", - "schema": { - "oneOf": [ - { "type": "number" }, - {} - ] - }, - "tests": [ - { - "description": "one valid - valid", - "data": "foo", - "valid": true - }, - { - "description": "both valid - invalid", - "data": 123, - "valid": false - } - ] - }, - { - "description": "oneOf with required", - "schema": { - "type": "object", - "oneOf": [ - { "required": ["foo", "bar"] }, - { "required": ["foo", "baz"] } - ] - }, - "tests": [ - { - "description": "both invalid - invalid", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "first valid - valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "second valid - valid", - "data": {"foo": 1, "baz": 3}, - "valid": true - }, - { - "description": "both valid - invalid", - "data": {"foo": 1, "bar": 2, "baz" : 3}, - "valid": false - } - ] - }, - { - "description": "oneOf with missing optional property", - "schema": { - "oneOf": [ - { - "properties": { - "bar": {}, - "baz": {} - }, - "required": ["bar"] - }, - { - "properties": { - "foo": {} - }, - "required": ["foo"] - } - ] - }, - "tests": [ - { - "description": "first oneOf valid", - "data": {"bar": 8}, - "valid": true - }, - { - "description": "second oneOf valid", - "data": {"foo": "foo"}, - "valid": true - }, - { - "description": "both oneOf valid", - "data": {"foo": "foo", "bar": 8}, - "valid": false - }, - { - "description": "neither oneOf valid", - "data": {"baz": "quux"}, - "valid": false - } - ] - }, - { - "description": "nested oneOf, to check validation semantics", - "schema": { - "oneOf": [ - { - "oneOf": [ - { - "type": "null" - } - ] - } - ] - }, - "tests": [ - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "anything non-null is invalid", - "data": 123, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/bignum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/bignum.json deleted file mode 100644 index 1bc8eb21d..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/bignum.json +++ /dev/null @@ -1,95 +0,0 @@ -[ - { - "description": "integer", - "schema": { "type": "integer" }, - "tests": [ - { - "description": "a bignum is an integer", - "data": 12345678910111213141516171819202122232425262728293031, - "valid": true - }, - { - "description": "a negative bignum is an integer", - "data": -12345678910111213141516171819202122232425262728293031, - "valid": true - } - ] - }, - { - "description": "number", - "schema": { "type": "number" }, - "tests": [ - { - "description": "a bignum is a number", - "data": 98249283749234923498293171823948729348710298301928331, - "valid": true - }, - { - "description": "a negative bignum is a number", - "data": -98249283749234923498293171823948729348710298301928331, - "valid": true - } - ] - }, - { - "description": "string", - "schema": { "type": "string" }, - "tests": [ - { - "description": "a bignum is not a string", - "data": 98249283749234923498293171823948729348710298301928331, - "valid": false - } - ] - }, - { - "description": "maximum integer comparison", - "schema": { "maximum": 18446744073709551615 }, - "tests": [ - { - "description": "comparison works for high numbers", - "data": 18446744073709551600, - "valid": true - } - ] - }, - { - "description": "float comparison with high precision", - "schema": { - "maximum": 972783798187987123879878123.18878137, - "exclusiveMaximum": true - }, - "tests": [ - { - "description": "comparison works for high numbers", - "data": 972783798187987123879878123.188781371, - "valid": false - } - ] - }, - { - "description": "minimum integer comparison", - "schema": { "minimum": -18446744073709551615 }, - "tests": [ - { - "description": "comparison works for very negative numbers", - "data": -18446744073709551600, - "valid": true - } - ] - }, - { - "description": "float comparison with high precision on negative numbers", - "schema": { - "minimum": -972783798187987123879878123.18878137, - "exclusiveMinimum": true - }, - "tests": [ - { - "description": "comparison works for very negative numbers", - "data": -972783798187987123879878123.188781371, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/ecmascript-regex.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/ecmascript-regex.json deleted file mode 100644 index c431baca8..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/ecmascript-regex.json +++ /dev/null @@ -1,552 +0,0 @@ -[ - { - "description": "ECMA 262 regex $ does not match trailing newline", - "schema": { - "type": "string", - "pattern": "^abc$" - }, - "tests": [ - { - "description": "matches in Python, but not in ECMA 262", - "data": "abc\\n", - "valid": false - }, - { - "description": "matches", - "data": "abc", - "valid": true - } - ] - }, - { - "description": "ECMA 262 regex converts \\t to horizontal tab", - "schema": { - "type": "string", - "pattern": "^\\t$" - }, - "tests": [ - { - "description": "does not match", - "data": "\\t", - "valid": false - }, - { - "description": "matches", - "data": "\u0009", - "valid": true - } - ] - }, - { - "description": "ECMA 262 regex escapes control codes with \\c and upper letter", - "schema": { - "type": "string", - "pattern": "^\\cC$" - }, - "tests": [ - { - "description": "does not match", - "data": "\\cC", - "valid": false - }, - { - "description": "matches", - "data": "\u0003", - "valid": true - } - ] - }, - { - "description": "ECMA 262 regex escapes control codes with \\c and lower letter", - "schema": { - "type": "string", - "pattern": "^\\cc$" - }, - "tests": [ - { - "description": "does not match", - "data": "\\cc", - "valid": false - }, - { - "description": "matches", - "data": "\u0003", - "valid": true - } - ] - }, - { - "description": "ECMA 262 \\d matches ascii digits only", - "schema": { - "type": "string", - "pattern": "^\\d$" - }, - "tests": [ - { - "description": "ASCII zero matches", - "data": "0", - "valid": true - }, - { - "description": "NKO DIGIT ZERO does not match (unlike e.g. Python)", - "data": "߀", - "valid": false - }, - { - "description": "NKO DIGIT ZERO (as \\u escape) does not match", - "data": "\u07c0", - "valid": false - } - ] - }, - { - "description": "ECMA 262 \\D matches everything but ascii digits", - "schema": { - "type": "string", - "pattern": "^\\D$" - }, - "tests": [ - { - "description": "ASCII zero does not match", - "data": "0", - "valid": false - }, - { - "description": "NKO DIGIT ZERO matches (unlike e.g. Python)", - "data": "߀", - "valid": true - }, - { - "description": "NKO DIGIT ZERO (as \\u escape) matches", - "data": "\u07c0", - "valid": true - } - ] - }, - { - "description": "ECMA 262 \\w matches ascii letters only", - "schema": { - "type": "string", - "pattern": "^\\w$" - }, - "tests": [ - { - "description": "ASCII 'a' matches", - "data": "a", - "valid": true - }, - { - "description": "latin-1 e-acute does not match (unlike e.g. Python)", - "data": "é", - "valid": false - } - ] - }, - { - "description": "ECMA 262 \\W matches everything but ascii letters", - "schema": { - "type": "string", - "pattern": "^\\W$" - }, - "tests": [ - { - "description": "ASCII 'a' does not match", - "data": "a", - "valid": false - }, - { - "description": "latin-1 e-acute matches (unlike e.g. Python)", - "data": "é", - "valid": true - } - ] - }, - { - "description": "ECMA 262 \\s matches whitespace", - "schema": { - "type": "string", - "pattern": "^\\s$" - }, - "tests": [ - { - "description": "ASCII space matches", - "data": " ", - "valid": true - }, - { - "description": "Character tabulation matches", - "data": "\t", - "valid": true - }, - { - "description": "Line tabulation matches", - "data": "\u000b", - "valid": true - }, - { - "description": "Form feed matches", - "data": "\u000c", - "valid": true - }, - { - "description": "latin-1 non-breaking-space matches", - "data": "\u00a0", - "valid": true - }, - { - "description": "zero-width whitespace matches", - "data": "\ufeff", - "valid": true - }, - { - "description": "line feed matches (line terminator)", - "data": "\u000a", - "valid": true - }, - { - "description": "paragraph separator matches (line terminator)", - "data": "\u2029", - "valid": true - }, - { - "description": "EM SPACE matches (Space_Separator)", - "data": "\u2003", - "valid": true - }, - { - "description": "Non-whitespace control does not match", - "data": "\u0001", - "valid": false - }, - { - "description": "Non-whitespace does not match", - "data": "\u2013", - "valid": false - } - ] - }, - { - "description": "ECMA 262 \\S matches everything but whitespace", - "schema": { - "type": "string", - "pattern": "^\\S$" - }, - "tests": [ - { - "description": "ASCII space does not match", - "data": " ", - "valid": false - }, - { - "description": "Character tabulation does not match", - "data": "\t", - "valid": false - }, - { - "description": "Line tabulation does not match", - "data": "\u000b", - "valid": false - }, - { - "description": "Form feed does not match", - "data": "\u000c", - "valid": false - }, - { - "description": "latin-1 non-breaking-space does not match", - "data": "\u00a0", - "valid": false - }, - { - "description": "zero-width whitespace does not match", - "data": "\ufeff", - "valid": false - }, - { - "description": "line feed does not match (line terminator)", - "data": "\u000a", - "valid": false - }, - { - "description": "paragraph separator does not match (line terminator)", - "data": "\u2029", - "valid": false - }, - { - "description": "EM SPACE does not match (Space_Separator)", - "data": "\u2003", - "valid": false - }, - { - "description": "Non-whitespace control matches", - "data": "\u0001", - "valid": true - }, - { - "description": "Non-whitespace matches", - "data": "\u2013", - "valid": true - } - ] - }, - { - "description": "patterns always use unicode semantics with pattern", - "schema": { "pattern": "\\p{Letter}cole" }, - "tests": [ - { - "description": "ascii character in json string", - "data": "Les hivers de mon enfance etaient des saisons longues, longues. Nous vivions en trois lieux: l'ecole, l'eglise et la patinoire; mais la vraie vie etait sur la patinoire.", - "valid": true - }, - { - "description": "literal unicode character in json string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": true - }, - { - "description": "unicode character in hex format in string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'\u00e9cole, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": true - }, - { - "description": "unicode matching is case-sensitive", - "data": "LES HIVERS DE MON ENFANCE ÉTAIENT DES SAISONS LONGUES, LONGUES. NOUS VIVIONS EN TROIS LIEUX: L'ÉCOLE, L'ÉGLISE ET LA PATINOIRE; MAIS LA VRAIE VIE ÉTAIT SUR LA PATINOIRE.", - "valid": false - } - ] - }, - { - "description": "\\w in patterns matches [A-Za-z0-9_], not unicode letters", - "schema": { "pattern": "\\wcole" }, - "tests": [ - { - "description": "ascii character in json string", - "data": "Les hivers de mon enfance etaient des saisons longues, longues. Nous vivions en trois lieux: l'ecole, l'eglise et la patinoire; mais la vraie vie etait sur la patinoire.", - "valid": true - }, - { - "description": "literal unicode character in json string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": false - }, - { - "description": "unicode character in hex format in string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'\u00e9cole, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": false - }, - { - "description": "unicode matching is case-sensitive", - "data": "LES HIVERS DE MON ENFANCE ÉTAIENT DES SAISONS LONGUES, LONGUES. NOUS VIVIONS EN TROIS LIEUX: L'ÉCOLE, L'ÉGLISE ET LA PATINOIRE; MAIS LA VRAIE VIE ÉTAIT SUR LA PATINOIRE.", - "valid": false - } - ] - }, - { - "description": "pattern with ASCII ranges", - "schema": { "pattern": "[a-z]cole" }, - "tests": [ - { - "description": "literal unicode character in json string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": false - }, - { - "description": "unicode character in hex format in string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'\u00e9cole, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": false - }, - { - "description": "ascii characters match", - "data": "Les hivers de mon enfance etaient des saisons longues, longues. Nous vivions en trois lieux: l'ecole, l'eglise et la patinoire; mais la vraie vie etait sur la patinoire.", - "valid": true - } - ] - }, - { - "description": "\\d in pattern matches [0-9], not unicode digits", - "schema": { "pattern": "^\\d+$" }, - "tests": [ - { - "description": "ascii digits", - "data": "42", - "valid": true - }, - { - "description": "ascii non-digits", - "data": "-%#", - "valid": false - }, - { - "description": "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)", - "data": "৪২", - "valid": false - } - ] - }, - { - "description": "pattern with non-ASCII digits", - "schema": { "pattern": "^\\p{digit}+$" }, - "tests": [ - { - "description": "ascii digits", - "data": "42", - "valid": true - }, - { - "description": "ascii non-digits", - "data": "-%#", - "valid": false - }, - { - "description": "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)", - "data": "৪২", - "valid": true - } - ] - }, - { - "description": "patterns always use unicode semantics with patternProperties", - "schema": { - "type": "object", - "patternProperties": { - "\\p{Letter}cole": {} - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "ascii character in json string", - "data": { "l'ecole": "pas de vraie vie" }, - "valid": true - }, - { - "description": "literal unicode character in json string", - "data": { "l'école": "pas de vraie vie" }, - "valid": true - }, - { - "description": "unicode character in hex format in string", - "data": { "l'\u00e9cole": "pas de vraie vie" }, - "valid": true - }, - { - "description": "unicode matching is case-sensitive", - "data": { "L'ÉCOLE": "PAS DE VRAIE VIE" }, - "valid": false - } - ] - }, - { - "description": "\\w in patternProperties matches [A-Za-z0-9_], not unicode letters", - "schema": { - "type": "object", - "patternProperties": { - "\\wcole": {} - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "ascii character in json string", - "data": { "l'ecole": "pas de vraie vie" }, - "valid": true - }, - { - "description": "literal unicode character in json string", - "data": { "l'école": "pas de vraie vie" }, - "valid": false - }, - { - "description": "unicode character in hex format in string", - "data": { "l'\u00e9cole": "pas de vraie vie" }, - "valid": false - }, - { - "description": "unicode matching is case-sensitive", - "data": { "L'ÉCOLE": "PAS DE VRAIE VIE" }, - "valid": false - } - ] - }, - { - "description": "patternProperties with ASCII ranges", - "schema": { - "type": "object", - "patternProperties": { - "[a-z]cole": {} - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "literal unicode character in json string", - "data": { "l'école": "pas de vraie vie" }, - "valid": false - }, - { - "description": "unicode character in hex format in string", - "data": { "l'\u00e9cole": "pas de vraie vie" }, - "valid": false - }, - { - "description": "ascii characters match", - "data": { "l'ecole": "pas de vraie vie" }, - "valid": true - } - ] - }, - { - "description": "\\d in patternProperties matches [0-9], not unicode digits", - "schema": { - "type": "object", - "patternProperties": { - "^\\d+$": {} - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "ascii digits", - "data": { "42": "life, the universe, and everything" }, - "valid": true - }, - { - "description": "ascii non-digits", - "data": { "-%#": "spending the year dead for tax reasons" }, - "valid": false - }, - { - "description": "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)", - "data": { "৪২": "khajit has wares if you have coin" }, - "valid": false - } - ] - }, - { - "description": "patternProperties with non-ASCII digits", - "schema": { - "type": "object", - "patternProperties": { - "^\\p{digit}+$": {} - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "ascii digits", - "data": { "42": "life, the universe, and everything" }, - "valid": true - }, - { - "description": "ascii non-digits", - "data": { "-%#": "spending the year dead for tax reasons" }, - "valid": false - }, - { - "description": "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)", - "data": { "৪২": "khajit has wares if you have coin" }, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/float-overflow.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/float-overflow.json deleted file mode 100644 index 47fd5baa8..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/float-overflow.json +++ /dev/null @@ -1,13 +0,0 @@ -[ - { - "description": "all integers are multiples of 0.5, if overflow is handled", - "schema": {"type": "number", "multipleOf": 0.5}, - "tests": [ - { - "description": "valid if optional overflow handling is implemented", - "data": 1e308, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/format/date-time.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/format/date-time.json deleted file mode 100644 index 091127375..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/format/date-time.json +++ /dev/null @@ -1,133 +0,0 @@ -[ - { - "description": "validation of date-time strings", - "schema": { "format": "date-time" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid date-time string", - "data": "1963-06-19T08:30:06.283185Z", - "valid": true - }, - { - "description": "a valid date-time string without second fraction", - "data": "1963-06-19T08:30:06Z", - "valid": true - }, - { - "description": "a valid date-time string with plus offset", - "data": "1937-01-01T12:00:27.87+00:20", - "valid": true - }, - { - "description": "a valid date-time string with minus offset", - "data": "1990-12-31T15:59:50.123-08:00", - "valid": true - }, - { - "description": "a valid date-time with a leap second, UTC", - "data": "1998-12-31T23:59:60Z", - "valid": true - }, - { - "description": "a valid date-time with a leap second, with minus offset", - "data": "1998-12-31T15:59:60.123-08:00", - "valid": true - }, - { - "description": "an invalid date-time past leap second, UTC", - "data": "1998-12-31T23:59:61Z", - "valid": false - }, - { - "description": "an invalid date-time with leap second on a wrong minute, UTC", - "data": "1998-12-31T23:58:60Z", - "valid": false - }, - { - "description": "an invalid date-time with leap second on a wrong hour, UTC", - "data": "1998-12-31T22:59:60Z", - "valid": false - }, - { - "description": "an invalid day in date-time string", - "data": "1990-02-31T15:59:59.123-08:00", - "valid": false - }, - { - "description": "an invalid offset in date-time string", - "data": "1990-12-31T15:59:59-24:00", - "valid": false - }, - { - "description": "an invalid closing Z after time-zone offset", - "data": "1963-06-19T08:30:06.28123+01:00Z", - "valid": false - }, - { - "description": "an invalid date-time string", - "data": "06/19/1963 08:30:06 PST", - "valid": false - }, - { - "description": "case-insensitive T and Z", - "data": "1963-06-19t08:30:06.283185z", - "valid": true - }, - { - "description": "only RFC3339 not all of ISO 8601 are valid", - "data": "2013-350T01:01:01", - "valid": false - }, - { - "description": "invalid non-padded month dates", - "data": "1963-6-19T08:30:06.283185Z", - "valid": false - }, - { - "description": "invalid non-padded day dates", - "data": "1963-06-1T08:30:06.283185Z", - "valid": false - }, - { - "description": "invalid non-ASCII '৪' (a Bengali 4) in date portion", - "data": "1963-06-1৪T00:00:00Z", - "valid": false - }, - { - "description": "invalid non-ASCII '৪' (a Bengali 4) in time portion", - "data": "1963-06-11T0৪:00:00Z", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/format/email.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/format/email.json deleted file mode 100644 index d6761a46b..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/format/email.json +++ /dev/null @@ -1,83 +0,0 @@ -[ - { - "description": "validation of e-mail addresses", - "schema": { "format": "email" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid e-mail address", - "data": "joe.bloggs@example.com", - "valid": true - }, - { - "description": "an invalid e-mail address", - "data": "2962", - "valid": false - }, - { - "description": "tilde in local part is valid", - "data": "te~st@example.com", - "valid": true - }, - { - "description": "tilde before local part is valid", - "data": "~test@example.com", - "valid": true - }, - { - "description": "tilde after local part is valid", - "data": "test~@example.com", - "valid": true - }, - { - "description": "dot before local part is not valid", - "data": ".test@example.com", - "valid": false - }, - { - "description": "dot after local part is not valid", - "data": "test.@example.com", - "valid": false - }, - { - "description": "two separated dots inside local part are valid", - "data": "te.s.t@example.com", - "valid": true - }, - { - "description": "two subsequent dots inside local part are not valid", - "data": "te..st@example.com", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/format/hostname.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/format/hostname.json deleted file mode 100644 index a8ecd194f..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/format/hostname.json +++ /dev/null @@ -1,118 +0,0 @@ -[ - { - "description": "validation of host names", - "schema": { "format": "hostname" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid host name", - "data": "www.example.com", - "valid": true - }, - { - "description": "a valid punycoded IDN hostname", - "data": "xn--4gbwdl.xn--wgbh1c", - "valid": true - }, - { - "description": "a host name starting with an illegal character", - "data": "-a-host-name-that-starts-with--", - "valid": false - }, - { - "description": "a host name containing illegal characters", - "data": "not_a_valid_host_name", - "valid": false - }, - { - "description": "a host name with a component too long", - "data": "a-vvvvvvvvvvvvvvvveeeeeeeeeeeeeeeerrrrrrrrrrrrrrrryyyyyyyyyyyyyyyy-long-host-name-component", - "valid": false - }, - { - "description": "starts with hyphen", - "data": "-hostname", - "valid": false - }, - { - "description": "ends with hyphen", - "data": "hostname-", - "valid": false - }, - { - "description": "starts with underscore", - "data": "_hostname", - "valid": false - }, - { - "description": "ends with underscore", - "data": "hostname_", - "valid": false - }, - { - "description": "contains underscore", - "data": "host_name", - "valid": false - }, - { - "description": "maximum label length", - "data": "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijk.com", - "valid": true - }, - { - "description": "exceeds maximum label length", - "data": "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkl.com", - "valid": false - }, - { - "description": "single label", - "data": "hostname", - "valid": true - }, - { - "description": "single label with hyphen", - "data": "host-name", - "valid": true - }, - { - "description": "single label with digits", - "data": "h0stn4me", - "valid": true - }, - { - "description": "single label ending with digit", - "data": "hostnam3", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/format/ipv4.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/format/ipv4.json deleted file mode 100644 index 9680fe620..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/format/ipv4.json +++ /dev/null @@ -1,89 +0,0 @@ -[ - { - "description": "validation of IP addresses", - "schema": { "format": "ipv4" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid IP address", - "data": "192.168.0.1", - "valid": true - }, - { - "description": "an IP address with too many components", - "data": "127.0.0.0.1", - "valid": false - }, - { - "description": "an IP address with out-of-range values", - "data": "256.256.256.256", - "valid": false - }, - { - "description": "an IP address without 4 components", - "data": "127.0", - "valid": false - }, - { - "description": "an IP address as an integer", - "data": "0x7f000001", - "valid": false - }, - { - "description": "an IP address as an integer (decimal)", - "data": "2130706433", - "valid": false - }, - { - "description": "invalid leading zeroes, as they are treated as octals", - "comment": "see https://sick.codes/universal-netmask-npm-package-used-by-270000-projects-vulnerable-to-octal-input-data-server-side-request-forgery-remote-file-inclusion-local-file-inclusion-and-more-cve-2021-28918/", - "data": "087.10.0.1", - "valid": false - }, - { - "description": "value without leading zero is valid", - "data": "87.10.0.1", - "valid": true - }, - { - "description": "invalid non-ASCII '২' (a Bengali 2)", - "data": "1২7.0.0.1", - "valid": false - }, - { - "description": "netmask is not a part of ipv4 address", - "data": "192.168.1.0/24", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/format/ipv6.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/format/ipv6.json deleted file mode 100644 index 94368f2a0..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/format/ipv6.json +++ /dev/null @@ -1,208 +0,0 @@ -[ - { - "description": "validation of IPv6 addresses", - "schema": { "format": "ipv6" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid IPv6 address", - "data": "::1", - "valid": true - }, - { - "description": "an IPv6 address with out-of-range values", - "data": "12345::", - "valid": false - }, - { - "description": "trailing 4 hex symbols is valid", - "data": "::abef", - "valid": true - }, - { - "description": "trailing 5 hex symbols is invalid", - "data": "::abcef", - "valid": false - }, - { - "description": "an IPv6 address with too many components", - "data": "1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1", - "valid": false - }, - { - "description": "an IPv6 address containing illegal characters", - "data": "::laptop", - "valid": false - }, - { - "description": "no digits is valid", - "data": "::", - "valid": true - }, - { - "description": "leading colons is valid", - "data": "::42:ff:1", - "valid": true - }, - { - "description": "trailing colons is valid", - "data": "d6::", - "valid": true - }, - { - "description": "missing leading octet is invalid", - "data": ":2:3:4:5:6:7:8", - "valid": false - }, - { - "description": "missing trailing octet is invalid", - "data": "1:2:3:4:5:6:7:", - "valid": false - }, - { - "description": "missing leading octet with omitted octets later", - "data": ":2:3:4::8", - "valid": false - }, - { - "description": "single set of double colons in the middle is valid", - "data": "1:d6::42", - "valid": true - }, - { - "description": "two sets of double colons is invalid", - "data": "1::d6::42", - "valid": false - }, - { - "description": "mixed format with the ipv4 section as decimal octets", - "data": "1::d6:192.168.0.1", - "valid": true - }, - { - "description": "mixed format with double colons between the sections", - "data": "1:2::192.168.0.1", - "valid": true - }, - { - "description": "mixed format with ipv4 section with octet out of range", - "data": "1::2:192.168.256.1", - "valid": false - }, - { - "description": "mixed format with ipv4 section with a hex octet", - "data": "1::2:192.168.ff.1", - "valid": false - }, - { - "description": "mixed format with leading double colons (ipv4-mapped ipv6 address)", - "data": "::ffff:192.168.0.1", - "valid": true - }, - { - "description": "triple colons is invalid", - "data": "1:2:3:4:5:::8", - "valid": false - }, - { - "description": "8 octets", - "data": "1:2:3:4:5:6:7:8", - "valid": true - }, - { - "description": "insufficient octets without double colons", - "data": "1:2:3:4:5:6:7", - "valid": false - }, - { - "description": "no colons is invalid", - "data": "1", - "valid": false - }, - { - "description": "ipv4 is not ipv6", - "data": "127.0.0.1", - "valid": false - }, - { - "description": "ipv4 segment must have 4 octets", - "data": "1:2:3:4:1.2.3", - "valid": false - }, - { - "description": "leading whitespace is invalid", - "data": " ::1", - "valid": false - }, - { - "description": "trailing whitespace is invalid", - "data": "::1 ", - "valid": false - }, - { - "description": "netmask is not a part of ipv6 address", - "data": "fe80::/64", - "valid": false - }, - { - "description": "zone id is not a part of ipv6 address", - "data": "fe80::a%eth1", - "valid": false - }, - { - "description": "a long valid ipv6", - "data": "1000:1000:1000:1000:1000:1000:255.255.255.255", - "valid": true - }, - { - "description": "a long invalid ipv6, below length limit, first", - "data": "100:100:100:100:100:100:255.255.255.255.255", - "valid": false - }, - { - "description": "a long invalid ipv6, below length limit, second", - "data": "100:100:100:100:100:100:100:255.255.255.255", - "valid": false - }, - { - "description": "invalid non-ASCII '৪' (a Bengali 4)", - "data": "1:2:3:4:5:6:7:৪", - "valid": false - }, - { - "description": "invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion", - "data": "1:2::192.16৪.0.1", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/format/unknown.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/format/unknown.json deleted file mode 100644 index 12339ae57..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/format/unknown.json +++ /dev/null @@ -1,43 +0,0 @@ -[ - { - "description": "unknown format", - "schema": { "format": "unknown" }, - "tests": [ - { - "description": "unknown formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "unknown formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "unknown formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "unknown formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "unknown formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "unknown formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "unknown formats ignore strings", - "data": "string", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/format/uri.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/format/uri.json deleted file mode 100644 index 4b48d4060..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/format/uri.json +++ /dev/null @@ -1,138 +0,0 @@ -[ - { - "description": "validation of URIs", - "schema": { "format": "uri" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid URL with anchor tag", - "data": "http://foo.bar/?baz=qux#quux", - "valid": true - }, - { - "description": "a valid URL with anchor tag and parentheses", - "data": "http://foo.com/blah_(wikipedia)_blah#cite-1", - "valid": true - }, - { - "description": "a valid URL with URL-encoded stuff", - "data": "http://foo.bar/?q=Test%20URL-encoded%20stuff", - "valid": true - }, - { - "description": "a valid puny-coded URL ", - "data": "http://xn--nw2a.xn--j6w193g/", - "valid": true - }, - { - "description": "a valid URL with many special characters", - "data": "http://-.~_!$&'()*+,;=:%40:80%2f::::::@example.com", - "valid": true - }, - { - "description": "a valid URL based on IPv4", - "data": "http://223.255.255.254", - "valid": true - }, - { - "description": "a valid URL with ftp scheme", - "data": "ftp://ftp.is.co.za/rfc/rfc1808.txt", - "valid": true - }, - { - "description": "a valid URL for a simple text file", - "data": "http://www.ietf.org/rfc/rfc2396.txt", - "valid": true - }, - { - "description": "a valid URL ", - "data": "ldap://[2001:db8::7]/c=GB?objectClass?one", - "valid": true - }, - { - "description": "a valid mailto URI", - "data": "mailto:John.Doe@example.com", - "valid": true - }, - { - "description": "a valid newsgroup URI", - "data": "news:comp.infosystems.www.servers.unix", - "valid": true - }, - { - "description": "a valid tel URI", - "data": "tel:+1-816-555-1212", - "valid": true - }, - { - "description": "a valid URN", - "data": "urn:oasis:names:specification:docbook:dtd:xml:4.1.2", - "valid": true - }, - { - "description": "an invalid protocol-relative URI Reference", - "data": "//foo.bar/?baz=qux#quux", - "valid": false - }, - { - "description": "an invalid relative URI Reference", - "data": "/abc", - "valid": false - }, - { - "description": "an invalid URI", - "data": "\\\\WINDOWS\\fileshare", - "valid": false - }, - { - "description": "an invalid URI though valid URI reference", - "data": "abc", - "valid": false - }, - { - "description": "an invalid URI with spaces", - "data": "http:// shouldfail.com", - "valid": false - }, - { - "description": "an invalid URI with spaces and missing scheme", - "data": ":// should fail", - "valid": false - }, - { - "description": "an invalid URI with comma in scheme", - "data": "bar,baz:foo", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/id.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/id.json deleted file mode 100644 index 1c91d33ee..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/id.json +++ /dev/null @@ -1,53 +0,0 @@ -[ - { - "description": "id inside an enum is not a real identifier", - "comment": "the implementation must not be confused by an id buried in the enum", - "schema": { - "definitions": { - "id_in_enum": { - "enum": [ - { - "id": "https://localhost:1234/my_identifier.json", - "type": "null" - } - ] - }, - "real_id_in_schema": { - "id": "https://localhost:1234/my_identifier.json", - "type": "string" - }, - "zzz_id_in_const": { - "const": { - "id": "https://localhost:1234/my_identifier.json", - "type": "null" - } - } - }, - "anyOf": [ - { "$ref": "#/definitions/id_in_enum" }, - { "$ref": "https://localhost:1234/my_identifier.json" } - ] - }, - "tests": [ - { - "description": "exact match to enum, and type matches", - "data": { - "id": "https://localhost:1234/my_identifier.json", - "type": "null" - }, - "valid": true - }, - { - "description": "match $ref to id", - "data": "a string to match #/definitions/id_in_enum", - "valid": true - }, - { - "description": "no match on enum or $ref to id", - "data": 1, - "valid": false - } - ] - } - -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/non-bmp-regex.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/non-bmp-regex.json deleted file mode 100644 index dd67af2b2..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/non-bmp-regex.json +++ /dev/null @@ -1,82 +0,0 @@ -[ - { - "description": "Proper UTF-16 surrogate pair handling: pattern", - "comment": "Optional because .Net doesn't correctly handle 32-bit Unicode characters", - "schema": { "pattern": "^🐲*$" }, - "tests": [ - { - "description": "matches empty", - "data": "", - "valid": true - }, - { - "description": "matches single", - "data": "🐲", - "valid": true - }, - { - "description": "matches two", - "data": "🐲🐲", - "valid": true - }, - { - "description": "doesn't match one", - "data": "🐉", - "valid": false - }, - { - "description": "doesn't match two", - "data": "🐉🐉", - "valid": false - }, - { - "description": "doesn't match one ASCII", - "data": "D", - "valid": false - }, - { - "description": "doesn't match two ASCII", - "data": "DD", - "valid": false - } - ] - }, - { - "description": "Proper UTF-16 surrogate pair handling: patternProperties", - "comment": "Optional because .Net doesn't correctly handle 32-bit Unicode characters", - "schema": { - "patternProperties": { - "^🐲*$": { - "type": "integer" - } - } - }, - "tests": [ - { - "description": "matches empty", - "data": { "": 1 }, - "valid": true - }, - { - "description": "matches single", - "data": { "🐲": 1 }, - "valid": true - }, - { - "description": "matches two", - "data": { "🐲🐲": 1 }, - "valid": true - }, - { - "description": "doesn't match one", - "data": { "🐲": "hello" }, - "valid": false - }, - { - "description": "doesn't match two", - "data": { "🐲🐲": "hello" }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/zeroTerminatedFloats.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/zeroTerminatedFloats.json deleted file mode 100644 index 9b50ea277..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/optional/zeroTerminatedFloats.json +++ /dev/null @@ -1,15 +0,0 @@ -[ - { - "description": "some languages do not distinguish between different types of numeric value", - "schema": { - "type": "integer" - }, - "tests": [ - { - "description": "a float is not an integer even without fractional part", - "data": 1.0, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/pattern.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/pattern.json deleted file mode 100644 index 92db0f971..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/pattern.json +++ /dev/null @@ -1,59 +0,0 @@ -[ - { - "description": "pattern validation", - "schema": {"pattern": "^a*$"}, - "tests": [ - { - "description": "a matching pattern is valid", - "data": "aaa", - "valid": true - }, - { - "description": "a non-matching pattern is invalid", - "data": "abc", - "valid": false - }, - { - "description": "ignores booleans", - "data": true, - "valid": true - }, - { - "description": "ignores integers", - "data": 123, - "valid": true - }, - { - "description": "ignores floats", - "data": 1.0, - "valid": true - }, - { - "description": "ignores objects", - "data": {}, - "valid": true - }, - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores null", - "data": null, - "valid": true - } - ] - }, - { - "description": "pattern is not anchored", - "schema": {"pattern": "a+"}, - "tests": [ - { - "description": "matches a substring", - "data": "xxaayy", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/patternProperties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/patternProperties.json deleted file mode 100644 index 51c8af3d6..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/patternProperties.json +++ /dev/null @@ -1,135 +0,0 @@ -[ - { - "description": - "patternProperties validates properties matching a regex", - "schema": { - "patternProperties": { - "f.*o": {"type": "integer"} - } - }, - "tests": [ - { - "description": "a single valid match is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "multiple valid matches is valid", - "data": {"foo": 1, "foooooo" : 2}, - "valid": true - }, - { - "description": "a single invalid match is invalid", - "data": {"foo": "bar", "fooooo": 2}, - "valid": false - }, - { - "description": "multiple invalid matches is invalid", - "data": {"foo": "bar", "foooooo" : "baz"}, - "valid": false - }, - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores strings", - "data": "", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "multiple simultaneous patternProperties are validated", - "schema": { - "patternProperties": { - "a*": {"type": "integer"}, - "aaa*": {"maximum": 20} - } - }, - "tests": [ - { - "description": "a single valid match is valid", - "data": {"a": 21}, - "valid": true - }, - { - "description": "a simultaneous match is valid", - "data": {"aaaa": 18}, - "valid": true - }, - { - "description": "multiple matches is valid", - "data": {"a": 21, "aaaa": 18}, - "valid": true - }, - { - "description": "an invalid due to one is invalid", - "data": {"a": "bar"}, - "valid": false - }, - { - "description": "an invalid due to the other is invalid", - "data": {"aaaa": 31}, - "valid": false - }, - { - "description": "an invalid due to both is invalid", - "data": {"aaa": "foo", "aaaa": 31}, - "valid": false - } - ] - }, - { - "description": "regexes are not anchored by default and are case sensitive", - "schema": { - "patternProperties": { - "[0-9]{2,}": { "type": "boolean" }, - "X_": { "type": "string" } - } - }, - "tests": [ - { - "description": "non recognized members are ignored", - "data": { "answer 1": "42" }, - "valid": true - }, - { - "description": "recognized members are accounted for", - "data": { "a31b": null }, - "valid": false - }, - { - "description": "regexes are case sensitive", - "data": { "a_x_3": 3 }, - "valid": true - }, - { - "description": "regexes are case sensitive, 2", - "data": { "a_X_3": 3 }, - "valid": false - } - ] - }, - { - "description": "patternProperties with null valued instance properties", - "schema": { - "patternProperties": { - "^.*bar$": {"type": "null"} - } - }, - "tests": [ - { - "description": "allows null values", - "data": {"foobar": null}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/properties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/properties.json deleted file mode 100644 index 195159e6b..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/properties.json +++ /dev/null @@ -1,205 +0,0 @@ -[ - { - "description": "object properties validation", - "schema": { - "properties": { - "foo": {"type": "integer"}, - "bar": {"type": "string"} - } - }, - "tests": [ - { - "description": "both properties present and valid is valid", - "data": {"foo": 1, "bar": "baz"}, - "valid": true - }, - { - "description": "one property invalid is invalid", - "data": {"foo": 1, "bar": {}}, - "valid": false - }, - { - "description": "both properties invalid is invalid", - "data": {"foo": [], "bar": {}}, - "valid": false - }, - { - "description": "doesn't invalidate other properties", - "data": {"quux": []}, - "valid": true - }, - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": - "properties, patternProperties, additionalProperties interaction", - "schema": { - "properties": { - "foo": {"type": "array", "maxItems": 3}, - "bar": {"type": "array"} - }, - "patternProperties": {"f.o": {"minItems": 2}}, - "additionalProperties": {"type": "integer"} - }, - "tests": [ - { - "description": "property validates property", - "data": {"foo": [1, 2]}, - "valid": true - }, - { - "description": "property invalidates property", - "data": {"foo": [1, 2, 3, 4]}, - "valid": false - }, - { - "description": "patternProperty invalidates property", - "data": {"foo": []}, - "valid": false - }, - { - "description": "patternProperty validates nonproperty", - "data": {"fxo": [1, 2]}, - "valid": true - }, - { - "description": "patternProperty invalidates nonproperty", - "data": {"fxo": []}, - "valid": false - }, - { - "description": "additionalProperty ignores property", - "data": {"bar": []}, - "valid": true - }, - { - "description": "additionalProperty validates others", - "data": {"quux": 3}, - "valid": true - }, - { - "description": "additionalProperty invalidates others", - "data": {"quux": "foo"}, - "valid": false - } - ] - }, - { - "description": "properties with escaped characters", - "schema": { - "properties": { - "foo\nbar": {"type": "number"}, - "foo\"bar": {"type": "number"}, - "foo\\bar": {"type": "number"}, - "foo\rbar": {"type": "number"}, - "foo\tbar": {"type": "number"}, - "foo\fbar": {"type": "number"} - } - }, - "tests": [ - { - "description": "object with all numbers is valid", - "data": { - "foo\nbar": 1, - "foo\"bar": 1, - "foo\\bar": 1, - "foo\rbar": 1, - "foo\tbar": 1, - "foo\fbar": 1 - }, - "valid": true - }, - { - "description": "object with strings is invalid", - "data": { - "foo\nbar": "1", - "foo\"bar": "1", - "foo\\bar": "1", - "foo\rbar": "1", - "foo\tbar": "1", - "foo\fbar": "1" - }, - "valid": false - } - ] - }, - { - "description": "properties with null valued instance properties", - "schema": { - "properties": { - "foo": {"type": "null"} - } - }, - "tests": [ - { - "description": "allows null values", - "data": {"foo": null}, - "valid": true - } - ] - }, - { - "description": "properties whose names are Javascript object property names", - "comment": "Ensure JS implementations don't universally consider e.g. __proto__ to always be present in an object.", - "schema": { - "properties": { - "__proto__": {"type": "number"}, - "toString": { - "properties": { "length": { "type": "string" } } - }, - "constructor": {"type": "number"} - } - }, - "tests": [ - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - }, - { - "description": "none of the properties mentioned", - "data": {}, - "valid": true - }, - { - "description": "__proto__ not valid", - "data": { "__proto__": "foo" }, - "valid": false - }, - { - "description": "toString not valid", - "data": { "toString": { "length": 37 } }, - "valid": false - }, - { - "description": "constructor not valid", - "data": { "constructor": { "length": 37 } }, - "valid": false - }, - { - "description": "all present and valid", - "data": { - "__proto__": 12, - "toString": { "length": "foo" }, - "constructor": 37 - }, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/ref.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/ref.json deleted file mode 100644 index b53bd2abe..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/ref.json +++ /dev/null @@ -1,592 +0,0 @@ -[ - { - "description": "root pointer ref", - "schema": { - "properties": { - "foo": {"$ref": "#"} - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "match", - "data": {"foo": false}, - "valid": true - }, - { - "description": "recursive match", - "data": {"foo": {"foo": false}}, - "valid": true - }, - { - "description": "mismatch", - "data": {"bar": false}, - "valid": false - }, - { - "description": "recursive mismatch", - "data": {"foo": {"bar": false}}, - "valid": false - } - ] - }, - { - "description": "relative pointer ref to object", - "schema": { - "properties": { - "foo": {"type": "integer"}, - "bar": {"$ref": "#/properties/foo"} - } - }, - "tests": [ - { - "description": "match", - "data": {"bar": 3}, - "valid": true - }, - { - "description": "mismatch", - "data": {"bar": true}, - "valid": false - } - ] - }, - { - "description": "relative pointer ref to array", - "schema": { - "items": [ - {"type": "integer"}, - {"$ref": "#/items/0"} - ] - }, - "tests": [ - { - "description": "match array", - "data": [1, 2], - "valid": true - }, - { - "description": "mismatch array", - "data": [1, "foo"], - "valid": false - } - ] - }, - { - "description": "escaped pointer ref", - "schema": { - "definitions": { - "tilde~field": {"type": "integer"}, - "slash/field": {"type": "integer"}, - "percent%field": {"type": "integer"} - }, - "properties": { - "tilde": {"$ref": "#/definitions/tilde~0field"}, - "slash": {"$ref": "#/definitions/slash~1field"}, - "percent": {"$ref": "#/definitions/percent%25field"} - } - }, - "tests": [ - { - "description": "slash invalid", - "data": {"slash": "aoeu"}, - "valid": false - }, - { - "description": "tilde invalid", - "data": {"tilde": "aoeu"}, - "valid": false - }, - { - "description": "percent invalid", - "data": {"percent": "aoeu"}, - "valid": false - }, - { - "description": "slash valid", - "data": {"slash": 123}, - "valid": true - }, - { - "description": "tilde valid", - "data": {"tilde": 123}, - "valid": true - }, - { - "description": "percent valid", - "data": {"percent": 123}, - "valid": true - } - ] - }, - { - "description": "nested refs", - "schema": { - "definitions": { - "a": {"type": "integer"}, - "b": {"$ref": "#/definitions/a"}, - "c": {"$ref": "#/definitions/b"} - }, - "allOf": [{ "$ref": "#/definitions/c" }] - }, - "tests": [ - { - "description": "nested ref valid", - "data": 5, - "valid": true - }, - { - "description": "nested ref invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "ref overrides any sibling keywords", - "schema": { - "definitions": { - "reffed": { - "type": "array" - } - }, - "properties": { - "foo": { - "$ref": "#/definitions/reffed", - "maxItems": 2 - } - } - }, - "tests": [ - { - "description": "ref valid", - "data": { "foo": [] }, - "valid": true - }, - { - "description": "ref valid, maxItems ignored", - "data": { "foo": [ 1, 2, 3] }, - "valid": true - }, - { - "description": "ref invalid", - "data": { "foo": "string" }, - "valid": false - } - ] - }, - { - "description": "$ref prevents a sibling id from changing the base uri", - "schema": { - "id": "http://localhost:1234/sibling_id/base/", - "definitions": { - "foo": { - "id": "http://localhost:1234/sibling_id/foo.json", - "type": "string" - }, - "base_foo": { - "$comment": "this canonical uri is http://localhost:1234/sibling_id/base/foo.json", - "id": "foo.json", - "type": "number" - } - }, - "allOf": [ - { - "$comment": "$ref resolves to http://localhost:1234/sibling_id/base/foo.json, not http://localhost:1234/sibling_id/foo.json", - "id": "http://localhost:1234/sibling_id/", - "$ref": "foo.json" - } - ] - }, - "tests": [ - { - "description": "$ref resolves to /definitions/base_foo, data does not validate", - "data": "a", - "valid": false - }, - { - "description": "$ref resolves to /definitions/base_foo, data validates", - "data": 1, - "valid": true - } - ] - }, - { - "description": "remote ref, containing refs itself", - "schema": {"$ref": "http://json-schema.org/draft-04/schema#"}, - "tests": [ - { - "description": "remote ref valid", - "data": {"minLength": 1}, - "valid": true - }, - { - "description": "remote ref invalid", - "data": {"minLength": -1}, - "valid": false - } - ] - }, - { - "description": "property named $ref that is not a reference", - "schema": { - "properties": { - "$ref": {"type": "string"} - } - }, - "tests": [ - { - "description": "property named $ref valid", - "data": {"$ref": "a"}, - "valid": true - }, - { - "description": "property named $ref invalid", - "data": {"$ref": 2}, - "valid": false - } - ] - }, - { - "description": "property named $ref, containing an actual $ref", - "schema": { - "properties": { - "$ref": {"$ref": "#/definitions/is-string"} - }, - "definitions": { - "is-string": { - "type": "string" - } - } - }, - "tests": [ - { - "description": "property named $ref valid", - "data": {"$ref": "a"}, - "valid": true - }, - { - "description": "property named $ref invalid", - "data": {"$ref": 2}, - "valid": false - } - ] - }, - { - "description": "Recursive references between schemas", - "schema": { - "id": "http://localhost:1234/tree", - "description": "tree of nodes", - "type": "object", - "properties": { - "meta": {"type": "string"}, - "nodes": { - "type": "array", - "items": {"$ref": "node"} - } - }, - "required": ["meta", "nodes"], - "definitions": { - "node": { - "id": "http://localhost:1234/node", - "description": "node", - "type": "object", - "properties": { - "value": {"type": "number"}, - "subtree": {"$ref": "tree"} - }, - "required": ["value"] - } - } - }, - "tests": [ - { - "description": "valid tree", - "data": { - "meta": "root", - "nodes": [ - { - "value": 1, - "subtree": { - "meta": "child", - "nodes": [ - {"value": 1.1}, - {"value": 1.2} - ] - } - }, - { - "value": 2, - "subtree": { - "meta": "child", - "nodes": [ - {"value": 2.1}, - {"value": 2.2} - ] - } - } - ] - }, - "valid": true - }, - { - "description": "invalid tree", - "data": { - "meta": "root", - "nodes": [ - { - "value": 1, - "subtree": { - "meta": "child", - "nodes": [ - {"value": "string is invalid"}, - {"value": 1.2} - ] - } - }, - { - "value": 2, - "subtree": { - "meta": "child", - "nodes": [ - {"value": 2.1}, - {"value": 2.2} - ] - } - } - ] - }, - "valid": false - } - ] - }, - { - "description": "refs with quote", - "schema": { - "properties": { - "foo\"bar": {"$ref": "#/definitions/foo%22bar"} - }, - "definitions": { - "foo\"bar": {"type": "number"} - } - }, - "tests": [ - { - "description": "object with numbers is valid", - "data": { - "foo\"bar": 1 - }, - "valid": true - }, - { - "description": "object with strings is invalid", - "data": { - "foo\"bar": "1" - }, - "valid": false - } - ] - }, - { - "description": "Location-independent identifier", - "schema": { - "allOf": [{ - "$ref": "#foo" - }], - "definitions": { - "A": { - "id": "#foo", - "type": "integer" - } - } - }, - "tests": [ - { - "data": 1, - "description": "match", - "valid": true - }, - { - "data": "a", - "description": "mismatch", - "valid": false - } - ] - }, - { - "description": "Location-independent identifier with base URI change in subschema", - "schema": { - "id": "http://localhost:1234/root", - "allOf": [{ - "$ref": "http://localhost:1234/nested.json#foo" - }], - "definitions": { - "A": { - "id": "nested.json", - "definitions": { - "B": { - "id": "#foo", - "type": "integer" - } - } - } - } - }, - "tests": [ - { - "data": 1, - "description": "match", - "valid": true - }, - { - "data": "a", - "description": "mismatch", - "valid": false - } - ] - }, - { - "description": "naive replacement of $ref with its destination is not correct", - "schema": { - "definitions": { - "a_string": { "type": "string" } - }, - "enum": [ - { "$ref": "#/definitions/a_string" } - ] - }, - "tests": [ - { - "description": "do not evaluate the $ref inside the enum, matching any string", - "data": "this is a string", - "valid": false - }, - { - "description": "match the enum exactly", - "data": { "$ref": "#/definitions/a_string" }, - "valid": true - } - ] - }, - { - "description": "id must be resolved against nearest parent, not just immediate parent", - "schema": { - "id": "http://example.com/a.json", - "definitions": { - "x": { - "id": "http://example.com/b/c.json", - "not": { - "definitions": { - "y": { - "id": "d.json", - "type": "number" - } - } - } - } - }, - "allOf": [ - { - "$ref": "http://example.com/b/d.json" - } - ] - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "non-number is invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "id with file URI still resolves pointers - *nix", - "schema": { - "id": "file:///folder/file.json", - "definitions": { - "foo": { - "type": "number" - } - }, - "allOf": [ - { - "$ref": "#/definitions/foo" - } - ] - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "non-number is invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "id with file URI still resolves pointers - windows", - "schema": { - "id": "file:///c:/folder/file.json", - "definitions": { - "foo": { - "type": "number" - } - }, - "allOf": [ - { - "$ref": "#/definitions/foo" - } - ] - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "non-number is invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "empty tokens in $ref json-pointer", - "schema": { - "definitions": { - "": { - "definitions": { - "": { "type": "number" } - } - } - }, - "allOf": [ - { - "$ref": "#/definitions//definitions/" - } - ] - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "non-number is invalid", - "data": "a", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/refRemote.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/refRemote.json deleted file mode 100644 index 64a618b89..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/refRemote.json +++ /dev/null @@ -1,189 +0,0 @@ -[ - { - "description": "remote ref", - "schema": {"$ref": "http://localhost:1234/integer.json"}, - "tests": [ - { - "description": "remote ref valid", - "data": 1, - "valid": true - }, - { - "description": "remote ref invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "fragment within remote ref", - "schema": {"$ref": "http://localhost:1234/subSchemas.json#/definitions/integer"}, - "tests": [ - { - "description": "remote fragment valid", - "data": 1, - "valid": true - }, - { - "description": "remote fragment invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "ref within remote ref", - "schema": { - "$ref": "http://localhost:1234/subSchemas.json#/definitions/refToInteger" - }, - "tests": [ - { - "description": "ref within ref valid", - "data": 1, - "valid": true - }, - { - "description": "ref within ref invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "base URI change", - "schema": { - "id": "http://localhost:1234/", - "items": { - "id": "baseUriChange/", - "items": {"$ref": "folderInteger.json"} - } - }, - "tests": [ - { - "description": "base URI change ref valid", - "data": [[1]], - "valid": true - }, - { - "description": "base URI change ref invalid", - "data": [["a"]], - "valid": false - } - ] - }, - { - "description": "base URI change - change folder", - "schema": { - "id": "http://localhost:1234/scope_change_defs1.json", - "type" : "object", - "properties": { - "list": {"$ref": "#/definitions/baz"} - }, - "definitions": { - "baz": { - "id": "baseUriChangeFolder/", - "type": "array", - "items": {"$ref": "folderInteger.json"} - } - } - }, - "tests": [ - { - "description": "number is valid", - "data": {"list": [1]}, - "valid": true - }, - { - "description": "string is invalid", - "data": {"list": ["a"]}, - "valid": false - } - ] - }, - { - "description": "base URI change - change folder in subschema", - "schema": { - "id": "http://localhost:1234/scope_change_defs2.json", - "type" : "object", - "properties": { - "list": {"$ref": "#/definitions/baz/definitions/bar"} - }, - "definitions": { - "baz": { - "id": "baseUriChangeFolderInSubschema/", - "definitions": { - "bar": { - "type": "array", - "items": {"$ref": "folderInteger.json"} - } - } - } - } - }, - "tests": [ - { - "description": "number is valid", - "data": {"list": [1]}, - "valid": true - }, - { - "description": "string is invalid", - "data": {"list": ["a"]}, - "valid": false - } - ] - }, - { - "description": "root ref in remote ref", - "schema": { - "id": "http://localhost:1234/object", - "type": "object", - "properties": { - "name": {"$ref": "name.json#/definitions/orNull"} - } - }, - "tests": [ - { - "description": "string is valid", - "data": { - "name": "foo" - }, - "valid": true - }, - { - "description": "null is valid", - "data": { - "name": null - }, - "valid": true - }, - { - "description": "object is invalid", - "data": { - "name": { - "name": null - } - }, - "valid": false - } - ] - }, - { - "description": "Location-independent identifier in remote ref", - "schema": { - "$ref": "http://localhost:1234/locationIndependentIdentifierDraft4.json#/definitions/refToInteger" - }, - "tests": [ - { - "description": "integer is valid", - "data": 1, - "valid": true - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/required.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/required.json deleted file mode 100644 index 6ccfdc2d4..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/required.json +++ /dev/null @@ -1,135 +0,0 @@ -[ - { - "description": "required validation", - "schema": { - "properties": { - "foo": {}, - "bar": {} - }, - "required": ["foo"] - }, - "tests": [ - { - "description": "present required property is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "non-present required property is invalid", - "data": {"bar": 1}, - "valid": false - }, - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores strings", - "data": "", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "required default validation", - "schema": { - "properties": { - "foo": {} - } - }, - "tests": [ - { - "description": "not required by default", - "data": {}, - "valid": true - } - ] - }, - { - "description": "required with escaped characters", - "schema": { - "required": [ - "foo\nbar", - "foo\"bar", - "foo\\bar", - "foo\rbar", - "foo\tbar", - "foo\fbar" - ] - }, - "tests": [ - { - "description": "object with all properties present is valid", - "data": { - "foo\nbar": 1, - "foo\"bar": 1, - "foo\\bar": 1, - "foo\rbar": 1, - "foo\tbar": 1, - "foo\fbar": 1 - }, - "valid": true - }, - { - "description": "object with some properties missing is invalid", - "data": { - "foo\nbar": "1", - "foo\"bar": "1" - }, - "valid": false - } - ] - }, - { - "description": "required properties whose names are Javascript object property names", - "comment": "Ensure JS implementations don't universally consider e.g. __proto__ to always be present in an object.", - "schema": { "required": ["__proto__", "toString", "constructor"] }, - "tests": [ - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - }, - { - "description": "none of the properties mentioned", - "data": {}, - "valid": false - }, - { - "description": "__proto__ present", - "data": { "__proto__": "foo" }, - "valid": false - }, - { - "description": "toString present", - "data": { "toString": { "length": 37 } }, - "valid": false - }, - { - "description": "constructor present", - "data": { "constructor": { "length": 37 } }, - "valid": false - }, - { - "description": "all present", - "data": { - "__proto__": 12, - "toString": { "length": "foo" }, - "constructor": 37 - }, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/type.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/type.json deleted file mode 100644 index df46677bd..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/type.json +++ /dev/null @@ -1,469 +0,0 @@ -[ - { - "description": "integer type matches integers", - "schema": {"type": "integer"}, - "tests": [ - { - "description": "an integer is an integer", - "data": 1, - "valid": true - }, - { - "description": "a float is not an integer", - "data": 1.1, - "valid": false - }, - { - "description": "a string is not an integer", - "data": "foo", - "valid": false - }, - { - "description": "a string is still not an integer, even if it looks like one", - "data": "1", - "valid": false - }, - { - "description": "an object is not an integer", - "data": {}, - "valid": false - }, - { - "description": "an array is not an integer", - "data": [], - "valid": false - }, - { - "description": "a boolean is not an integer", - "data": true, - "valid": false - }, - { - "description": "null is not an integer", - "data": null, - "valid": false - } - ] - }, - { - "description": "number type matches numbers", - "schema": {"type": "number"}, - "tests": [ - { - "description": "an integer is a number", - "data": 1, - "valid": true - }, - { - "description": "a float with zero fractional part is a number", - "data": 1.0, - "valid": true - }, - { - "description": "a float is a number", - "data": 1.1, - "valid": true - }, - { - "description": "a string is not a number", - "data": "foo", - "valid": false - }, - { - "description": "a string is still not a number, even if it looks like one", - "data": "1", - "valid": false - }, - { - "description": "an object is not a number", - "data": {}, - "valid": false - }, - { - "description": "an array is not a number", - "data": [], - "valid": false - }, - { - "description": "a boolean is not a number", - "data": true, - "valid": false - }, - { - "description": "null is not a number", - "data": null, - "valid": false - } - ] - }, - { - "description": "string type matches strings", - "schema": {"type": "string"}, - "tests": [ - { - "description": "1 is not a string", - "data": 1, - "valid": false - }, - { - "description": "a float is not a string", - "data": 1.1, - "valid": false - }, - { - "description": "a string is a string", - "data": "foo", - "valid": true - }, - { - "description": "a string is still a string, even if it looks like a number", - "data": "1", - "valid": true - }, - { - "description": "an empty string is still a string", - "data": "", - "valid": true - }, - { - "description": "an object is not a string", - "data": {}, - "valid": false - }, - { - "description": "an array is not a string", - "data": [], - "valid": false - }, - { - "description": "a boolean is not a string", - "data": true, - "valid": false - }, - { - "description": "null is not a string", - "data": null, - "valid": false - } - ] - }, - { - "description": "object type matches objects", - "schema": {"type": "object"}, - "tests": [ - { - "description": "an integer is not an object", - "data": 1, - "valid": false - }, - { - "description": "a float is not an object", - "data": 1.1, - "valid": false - }, - { - "description": "a string is not an object", - "data": "foo", - "valid": false - }, - { - "description": "an object is an object", - "data": {}, - "valid": true - }, - { - "description": "an array is not an object", - "data": [], - "valid": false - }, - { - "description": "a boolean is not an object", - "data": true, - "valid": false - }, - { - "description": "null is not an object", - "data": null, - "valid": false - } - ] - }, - { - "description": "array type matches arrays", - "schema": {"type": "array"}, - "tests": [ - { - "description": "an integer is not an array", - "data": 1, - "valid": false - }, - { - "description": "a float is not an array", - "data": 1.1, - "valid": false - }, - { - "description": "a string is not an array", - "data": "foo", - "valid": false - }, - { - "description": "an object is not an array", - "data": {}, - "valid": false - }, - { - "description": "an array is an array", - "data": [], - "valid": true - }, - { - "description": "a boolean is not an array", - "data": true, - "valid": false - }, - { - "description": "null is not an array", - "data": null, - "valid": false - } - ] - }, - { - "description": "boolean type matches booleans", - "schema": {"type": "boolean"}, - "tests": [ - { - "description": "an integer is not a boolean", - "data": 1, - "valid": false - }, - { - "description": "zero is not a boolean", - "data": 0, - "valid": false - }, - { - "description": "a float is not a boolean", - "data": 1.1, - "valid": false - }, - { - "description": "a string is not a boolean", - "data": "foo", - "valid": false - }, - { - "description": "an empty string is not a boolean", - "data": "", - "valid": false - }, - { - "description": "an object is not a boolean", - "data": {}, - "valid": false - }, - { - "description": "an array is not a boolean", - "data": [], - "valid": false - }, - { - "description": "true is a boolean", - "data": true, - "valid": true - }, - { - "description": "false is a boolean", - "data": false, - "valid": true - }, - { - "description": "null is not a boolean", - "data": null, - "valid": false - } - ] - }, - { - "description": "null type matches only the null object", - "schema": {"type": "null"}, - "tests": [ - { - "description": "an integer is not null", - "data": 1, - "valid": false - }, - { - "description": "a float is not null", - "data": 1.1, - "valid": false - }, - { - "description": "zero is not null", - "data": 0, - "valid": false - }, - { - "description": "a string is not null", - "data": "foo", - "valid": false - }, - { - "description": "an empty string is not null", - "data": "", - "valid": false - }, - { - "description": "an object is not null", - "data": {}, - "valid": false - }, - { - "description": "an array is not null", - "data": [], - "valid": false - }, - { - "description": "true is not null", - "data": true, - "valid": false - }, - { - "description": "false is not null", - "data": false, - "valid": false - }, - { - "description": "null is null", - "data": null, - "valid": true - } - ] - }, - { - "description": "multiple types can be specified in an array", - "schema": {"type": ["integer", "string"]}, - "tests": [ - { - "description": "an integer is valid", - "data": 1, - "valid": true - }, - { - "description": "a string is valid", - "data": "foo", - "valid": true - }, - { - "description": "a float is invalid", - "data": 1.1, - "valid": false - }, - { - "description": "an object is invalid", - "data": {}, - "valid": false - }, - { - "description": "an array is invalid", - "data": [], - "valid": false - }, - { - "description": "a boolean is invalid", - "data": true, - "valid": false - }, - { - "description": "null is invalid", - "data": null, - "valid": false - } - ] - }, - { - "description": "type as array with one item", - "schema": { - "type": ["string"] - }, - "tests": [ - { - "description": "string is valid", - "data": "foo", - "valid": true - }, - { - "description": "number is invalid", - "data": 123, - "valid": false - } - ] - }, - { - "description": "type: array or object", - "schema": { - "type": ["array", "object"] - }, - "tests": [ - { - "description": "array is valid", - "data": [1,2,3], - "valid": true - }, - { - "description": "object is valid", - "data": {"foo": 123}, - "valid": true - }, - { - "description": "number is invalid", - "data": 123, - "valid": false - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - }, - { - "description": "null is invalid", - "data": null, - "valid": false - } - ] - }, - { - "description": "type: array, object or null", - "schema": { - "type": ["array", "object", "null"] - }, - "tests": [ - { - "description": "array is valid", - "data": [1,2,3], - "valid": true - }, - { - "description": "object is valid", - "data": {"foo": 123}, - "valid": true - }, - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "number is invalid", - "data": 123, - "valid": false - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/uniqueItems.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft4/uniqueItems.json deleted file mode 100644 index d2730c60c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft4/uniqueItems.json +++ /dev/null @@ -1,409 +0,0 @@ -[ - { - "description": "uniqueItems validation", - "schema": {"uniqueItems": true}, - "tests": [ - { - "description": "unique array of integers is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "non-unique array of integers is invalid", - "data": [1, 1], - "valid": false - }, - { - "description": "non-unique array of more than two integers is invalid", - "data": [1, 2, 1], - "valid": false - }, - { - "description": "numbers are unique if mathematically unequal", - "data": [1.0, 1.00, 1], - "valid": false - }, - { - "description": "false is not equal to zero", - "data": [0, false], - "valid": true - }, - { - "description": "true is not equal to one", - "data": [1, true], - "valid": true - }, - { - "description": "unique array of strings is valid", - "data": ["foo", "bar", "baz"], - "valid": true - }, - { - "description": "non-unique array of strings is invalid", - "data": ["foo", "bar", "foo"], - "valid": false - }, - { - "description": "unique array of objects is valid", - "data": [{"foo": "bar"}, {"foo": "baz"}], - "valid": true - }, - { - "description": "non-unique array of objects is invalid", - "data": [{"foo": "bar"}, {"foo": "bar"}], - "valid": false - }, - { - "description": "property order of array of objects is ignored", - "data": [{"foo": "bar", "bar": "foo"}, {"bar": "foo", "foo": "bar"}], - "valid": false - }, - { - "description": "unique array of nested objects is valid", - "data": [ - {"foo": {"bar" : {"baz" : true}}}, - {"foo": {"bar" : {"baz" : false}}} - ], - "valid": true - }, - { - "description": "non-unique array of nested objects is invalid", - "data": [ - {"foo": {"bar" : {"baz" : true}}}, - {"foo": {"bar" : {"baz" : true}}} - ], - "valid": false - }, - { - "description": "unique array of arrays is valid", - "data": [["foo"], ["bar"]], - "valid": true - }, - { - "description": "non-unique array of arrays is invalid", - "data": [["foo"], ["foo"]], - "valid": false - }, - { - "description": "non-unique array of more than two arrays is invalid", - "data": [["foo"], ["bar"], ["foo"]], - "valid": false - }, - { - "description": "1 and true are unique", - "data": [1, true], - "valid": true - }, - { - "description": "0 and false are unique", - "data": [0, false], - "valid": true - }, - { - "description": "[1] and [true] are unique", - "data": [[1], [true]], - "valid": true - }, - { - "description": "[0] and [false] are unique", - "data": [[0], [false]], - "valid": true - }, - { - "description": "nested [1] and [true] are unique", - "data": [[[1], "foo"], [[true], "foo"]], - "valid": true - }, - { - "description": "nested [0] and [false] are unique", - "data": [[[0], "foo"], [[false], "foo"]], - "valid": true - }, - { - "description": "unique heterogeneous types are valid", - "data": [{}, [1], true, null, 1, "{}"], - "valid": true - }, - { - "description": "non-unique heterogeneous types are invalid", - "data": [{}, [1], true, null, {}, 1], - "valid": false - }, - { - "description": "different objects are unique", - "data": [{"a": 1, "b": 2}, {"a": 2, "b": 1}], - "valid": true - }, - { - "description": "objects are non-unique despite key order", - "data": [{"a": 1, "b": 2}, {"b": 2, "a": 1}], - "valid": false - }, - { - "description": "{\"a\": false} and {\"a\": 0} are unique", - "data": [{"a": false}, {"a": 0}], - "valid": true - }, - { - "description": "{\"a\": true} and {\"a\": 1} are unique", - "data": [{"a": true}, {"a": 1}], - "valid": true - } - ] - }, - { - "description": "uniqueItems with an array of items", - "schema": { - "items": [{"type": "boolean"}, {"type": "boolean"}], - "uniqueItems": true - }, - "tests": [ - { - "description": "[false, true] from items array is valid", - "data": [false, true], - "valid": true - }, - { - "description": "[true, false] from items array is valid", - "data": [true, false], - "valid": true - }, - { - "description": "[false, false] from items array is not valid", - "data": [false, false], - "valid": false - }, - { - "description": "[true, true] from items array is not valid", - "data": [true, true], - "valid": false - }, - { - "description": "unique array extended from [false, true] is valid", - "data": [false, true, "foo", "bar"], - "valid": true - }, - { - "description": "unique array extended from [true, false] is valid", - "data": [true, false, "foo", "bar"], - "valid": true - }, - { - "description": "non-unique array extended from [false, true] is not valid", - "data": [false, true, "foo", "foo"], - "valid": false - }, - { - "description": "non-unique array extended from [true, false] is not valid", - "data": [true, false, "foo", "foo"], - "valid": false - } - ] - }, - { - "description": "uniqueItems with an array of items and additionalItems=false", - "schema": { - "items": [{"type": "boolean"}, {"type": "boolean"}], - "uniqueItems": true, - "additionalItems": false - }, - "tests": [ - { - "description": "[false, true] from items array is valid", - "data": [false, true], - "valid": true - }, - { - "description": "[true, false] from items array is valid", - "data": [true, false], - "valid": true - }, - { - "description": "[false, false] from items array is not valid", - "data": [false, false], - "valid": false - }, - { - "description": "[true, true] from items array is not valid", - "data": [true, true], - "valid": false - }, - { - "description": "extra items are invalid even if unique", - "data": [false, true, null], - "valid": false - } - ] - }, - { - "description": "uniqueItems=false validation", - "schema": { "uniqueItems": false }, - "tests": [ - { - "description": "unique array of integers is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "non-unique array of integers is valid", - "data": [1, 1], - "valid": true - }, - { - "description": "numbers are unique if mathematically unequal", - "data": [1.0, 1.00, 1], - "valid": true - }, - { - "description": "false is not equal to zero", - "data": [0, false], - "valid": true - }, - { - "description": "true is not equal to one", - "data": [1, true], - "valid": true - }, - { - "description": "unique array of objects is valid", - "data": [{"foo": "bar"}, {"foo": "baz"}], - "valid": true - }, - { - "description": "non-unique array of objects is valid", - "data": [{"foo": "bar"}, {"foo": "bar"}], - "valid": true - }, - { - "description": "unique array of nested objects is valid", - "data": [ - {"foo": {"bar" : {"baz" : true}}}, - {"foo": {"bar" : {"baz" : false}}} - ], - "valid": true - }, - { - "description": "non-unique array of nested objects is valid", - "data": [ - {"foo": {"bar" : {"baz" : true}}}, - {"foo": {"bar" : {"baz" : true}}} - ], - "valid": true - }, - { - "description": "unique array of arrays is valid", - "data": [["foo"], ["bar"]], - "valid": true - }, - { - "description": "non-unique array of arrays is valid", - "data": [["foo"], ["foo"]], - "valid": true - }, - { - "description": "1 and true are unique", - "data": [1, true], - "valid": true - }, - { - "description": "0 and false are unique", - "data": [0, false], - "valid": true - }, - { - "description": "unique heterogeneous types are valid", - "data": [{}, [1], true, null, 1], - "valid": true - }, - { - "description": "non-unique heterogeneous types are valid", - "data": [{}, [1], true, null, {}, 1], - "valid": true - } - ] - }, - { - "description": "uniqueItems=false with an array of items", - "schema": { - "items": [{"type": "boolean"}, {"type": "boolean"}], - "uniqueItems": false - }, - "tests": [ - { - "description": "[false, true] from items array is valid", - "data": [false, true], - "valid": true - }, - { - "description": "[true, false] from items array is valid", - "data": [true, false], - "valid": true - }, - { - "description": "[false, false] from items array is valid", - "data": [false, false], - "valid": true - }, - { - "description": "[true, true] from items array is valid", - "data": [true, true], - "valid": true - }, - { - "description": "unique array extended from [false, true] is valid", - "data": [false, true, "foo", "bar"], - "valid": true - }, - { - "description": "unique array extended from [true, false] is valid", - "data": [true, false, "foo", "bar"], - "valid": true - }, - { - "description": "non-unique array extended from [false, true] is valid", - "data": [false, true, "foo", "foo"], - "valid": true - }, - { - "description": "non-unique array extended from [true, false] is valid", - "data": [true, false, "foo", "foo"], - "valid": true - } - ] - }, - { - "description": "uniqueItems=false with an array of items and additionalItems=false", - "schema": { - "items": [{"type": "boolean"}, {"type": "boolean"}], - "uniqueItems": false, - "additionalItems": false - }, - "tests": [ - { - "description": "[false, true] from items array is valid", - "data": [false, true], - "valid": true - }, - { - "description": "[true, false] from items array is valid", - "data": [true, false], - "valid": true - }, - { - "description": "[false, false] from items array is valid", - "data": [false, false], - "valid": true - }, - { - "description": "[true, true] from items array is valid", - "data": [true, true], - "valid": true - }, - { - "description": "extra items are invalid even if unique", - "data": [false, true, null], - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/additionalItems.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/additionalItems.json deleted file mode 100644 index 2c7d15582..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/additionalItems.json +++ /dev/null @@ -1,206 +0,0 @@ -[ - { - "description": "additionalItems as schema", - "schema": { - "items": [{}], - "additionalItems": {"type": "integer"} - }, - "tests": [ - { - "description": "additional items match schema", - "data": [ null, 2, 3, 4 ], - "valid": true - }, - { - "description": "additional items do not match schema", - "data": [ null, 2, 3, "foo" ], - "valid": false - } - ] - }, - { - "description": "when items is schema, additionalItems does nothing", - "schema": { - "items": { - "type": "integer" - }, - "additionalItems": { - "type": "string" - } - }, - "tests": [ - { - "description": "valid with a array of type integers", - "data": [1,2,3], - "valid": true - }, - { - "description": "invalid with a array of mixed types", - "data": [1,"2","3"], - "valid": false - } - ] - }, - { - "description": "when items is schema, boolean additionalItems does nothing", - "schema": { - "items": {}, - "additionalItems": false - }, - "tests": [ - { - "description": "all items match schema", - "data": [ 1, 2, 3, 4, 5 ], - "valid": true - } - ] - }, - { - "description": "array of items with no additionalItems permitted", - "schema": { - "items": [{}, {}, {}], - "additionalItems": false - }, - "tests": [ - { - "description": "empty array", - "data": [ ], - "valid": true - }, - { - "description": "fewer number of items present (1)", - "data": [ 1 ], - "valid": true - }, - { - "description": "fewer number of items present (2)", - "data": [ 1, 2 ], - "valid": true - }, - { - "description": "equal number of items present", - "data": [ 1, 2, 3 ], - "valid": true - }, - { - "description": "additional items are not permitted", - "data": [ 1, 2, 3, 4 ], - "valid": false - } - ] - }, - { - "description": "additionalItems as false without items", - "schema": {"additionalItems": false}, - "tests": [ - { - "description": - "items defaults to empty schema so everything is valid", - "data": [ 1, 2, 3, 4, 5 ], - "valid": true - }, - { - "description": "ignores non-arrays", - "data": {"foo" : "bar"}, - "valid": true - } - ] - }, - { - "description": "additionalItems are allowed by default", - "schema": {"items": [{"type": "integer"}]}, - "tests": [ - { - "description": "only the first item is validated", - "data": [1, "foo", false], - "valid": true - } - ] - }, - { - "description": "additionalItems does not look in applicators, valid case", - "schema": { - "allOf": [ - { "items": [ { "type": "integer" } ] } - ], - "additionalItems": { "type": "boolean" } - }, - "tests": [ - { - "description": "items defined in allOf are not examined", - "data": [ 1, null ], - "valid": true - } - ] - }, - { - "description": "additionalItems does not look in applicators, invalid case", - "schema": { - "allOf": [ - { "items": [ { "type": "integer" }, { "type": "string" } ] } - ], - "items": [ {"type": "integer" } ], - "additionalItems": { "type": "boolean" } - }, - "tests": [ - { - "description": "items defined in allOf are not examined", - "data": [ 1, "hello" ], - "valid": false - } - ] - }, - { - "description": "items validation adjusts the starting index for additionalItems", - "schema": { - "items": [ { "type": "string" } ], - "additionalItems": { "type": "integer" } - }, - "tests": [ - { - "description": "valid items", - "data": [ "x", 2, 3 ], - "valid": true - }, - { - "description": "wrong type of second item", - "data": [ "x", "y" ], - "valid": false - } - ] - }, - { - "description": "additionalItems with heterogeneous array", - "schema": { - "items": [{}], - "additionalItems": false - }, - "tests": [ - { - "description": "heterogeneous invalid instance", - "data": [ "foo", "bar", 37 ], - "valid": false - }, - { - "description": "valid instance", - "data": [ null ], - "valid": true - } - ] - }, - { - "description": "additionalItems with null instance elements", - "schema": { - "additionalItems": { - "type": "null" - } - }, - "tests": [ - { - "description": "allows null elements", - "data": [ null ], - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/additionalProperties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/additionalProperties.json deleted file mode 100644 index 0f8e1627a..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/additionalProperties.json +++ /dev/null @@ -1,147 +0,0 @@ -[ - { - "description": - "additionalProperties being false does not allow other properties", - "schema": { - "properties": {"foo": {}, "bar": {}}, - "patternProperties": { "^v": {} }, - "additionalProperties": false - }, - "tests": [ - { - "description": "no additional properties is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "an additional property is invalid", - "data": {"foo" : 1, "bar" : 2, "quux" : "boom"}, - "valid": false - }, - { - "description": "ignores arrays", - "data": [1, 2, 3], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobarbaz", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - }, - { - "description": "patternProperties are not additional properties", - "data": {"foo":1, "vroom": 2}, - "valid": true - } - ] - }, - { - "description": "non-ASCII pattern with additionalProperties", - "schema": { - "patternProperties": {"^á": {}}, - "additionalProperties": false - }, - "tests": [ - { - "description": "matching the pattern is valid", - "data": {"ármányos": 2}, - "valid": true - }, - { - "description": "not matching the pattern is invalid", - "data": {"élmény": 2}, - "valid": false - } - ] - }, - { - "description": "additionalProperties with schema", - "schema": { - "properties": {"foo": {}, "bar": {}}, - "additionalProperties": {"type": "boolean"} - }, - "tests": [ - { - "description": "no additional properties is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "an additional valid property is valid", - "data": {"foo" : 1, "bar" : 2, "quux" : true}, - "valid": true - }, - { - "description": "an additional invalid property is invalid", - "data": {"foo" : 1, "bar" : 2, "quux" : 12}, - "valid": false - } - ] - }, - { - "description": - "additionalProperties can exist by itself", - "schema": { - "additionalProperties": {"type": "boolean"} - }, - "tests": [ - { - "description": "an additional valid property is valid", - "data": {"foo" : true}, - "valid": true - }, - { - "description": "an additional invalid property is invalid", - "data": {"foo" : 1}, - "valid": false - } - ] - }, - { - "description": "additionalProperties are allowed by default", - "schema": {"properties": {"foo": {}, "bar": {}}}, - "tests": [ - { - "description": "additional properties are allowed", - "data": {"foo": 1, "bar": 2, "quux": true}, - "valid": true - } - ] - }, - { - "description": "additionalProperties does not look in applicators", - "schema": { - "allOf": [ - {"properties": {"foo": {}}} - ], - "additionalProperties": {"type": "boolean"} - }, - "tests": [ - { - "description": "properties defined in allOf are not examined", - "data": {"foo": 1, "bar": true}, - "valid": false - } - ] - }, - { - "description": "additionalProperties with null valued instance properties", - "schema": { - "additionalProperties": { - "type": "null" - } - }, - "tests": [ - { - "description": "allows null values", - "data": {"foo": null}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/allOf.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/allOf.json deleted file mode 100644 index ec9319e14..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/allOf.json +++ /dev/null @@ -1,294 +0,0 @@ -[ - { - "description": "allOf", - "schema": { - "allOf": [ - { - "properties": { - "bar": {"type": "integer"} - }, - "required": ["bar"] - }, - { - "properties": { - "foo": {"type": "string"} - }, - "required": ["foo"] - } - ] - }, - "tests": [ - { - "description": "allOf", - "data": {"foo": "baz", "bar": 2}, - "valid": true - }, - { - "description": "mismatch second", - "data": {"foo": "baz"}, - "valid": false - }, - { - "description": "mismatch first", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "wrong type", - "data": {"foo": "baz", "bar": "quux"}, - "valid": false - } - ] - }, - { - "description": "allOf with base schema", - "schema": { - "properties": {"bar": {"type": "integer"}}, - "required": ["bar"], - "allOf" : [ - { - "properties": { - "foo": {"type": "string"} - }, - "required": ["foo"] - }, - { - "properties": { - "baz": {"type": "null"} - }, - "required": ["baz"] - } - ] - }, - "tests": [ - { - "description": "valid", - "data": {"foo": "quux", "bar": 2, "baz": null}, - "valid": true - }, - { - "description": "mismatch base schema", - "data": {"foo": "quux", "baz": null}, - "valid": false - }, - { - "description": "mismatch first allOf", - "data": {"bar": 2, "baz": null}, - "valid": false - }, - { - "description": "mismatch second allOf", - "data": {"foo": "quux", "bar": 2}, - "valid": false - }, - { - "description": "mismatch both", - "data": {"bar": 2}, - "valid": false - } - ] - }, - { - "description": "allOf simple types", - "schema": { - "allOf": [ - {"maximum": 30}, - {"minimum": 20} - ] - }, - "tests": [ - { - "description": "valid", - "data": 25, - "valid": true - }, - { - "description": "mismatch one", - "data": 35, - "valid": false - } - ] - }, - { - "description": "allOf with boolean schemas, all true", - "schema": {"allOf": [true, true]}, - "tests": [ - { - "description": "any value is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "allOf with boolean schemas, some false", - "schema": {"allOf": [true, false]}, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "allOf with boolean schemas, all false", - "schema": {"allOf": [false, false]}, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "allOf with one empty schema", - "schema": { - "allOf": [ - {} - ] - }, - "tests": [ - { - "description": "any data is valid", - "data": 1, - "valid": true - } - ] - }, - { - "description": "allOf with two empty schemas", - "schema": { - "allOf": [ - {}, - {} - ] - }, - "tests": [ - { - "description": "any data is valid", - "data": 1, - "valid": true - } - ] - }, - { - "description": "allOf with the first empty schema", - "schema": { - "allOf": [ - {}, - { "type": "number" } - ] - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "allOf with the last empty schema", - "schema": { - "allOf": [ - { "type": "number" }, - {} - ] - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "nested allOf, to check validation semantics", - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "null" - } - ] - } - ] - }, - "tests": [ - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "anything non-null is invalid", - "data": 123, - "valid": false - } - ] - }, - { - "description": "allOf combined with anyOf, oneOf", - "schema": { - "allOf": [ { "multipleOf": 2 } ], - "anyOf": [ { "multipleOf": 3 } ], - "oneOf": [ { "multipleOf": 5 } ] - }, - "tests": [ - { - "description": "allOf: false, anyOf: false, oneOf: false", - "data": 1, - "valid": false - }, - { - "description": "allOf: false, anyOf: false, oneOf: true", - "data": 5, - "valid": false - }, - { - "description": "allOf: false, anyOf: true, oneOf: false", - "data": 3, - "valid": false - }, - { - "description": "allOf: false, anyOf: true, oneOf: true", - "data": 15, - "valid": false - }, - { - "description": "allOf: true, anyOf: false, oneOf: false", - "data": 2, - "valid": false - }, - { - "description": "allOf: true, anyOf: false, oneOf: true", - "data": 10, - "valid": false - }, - { - "description": "allOf: true, anyOf: true, oneOf: false", - "data": 6, - "valid": false - }, - { - "description": "allOf: true, anyOf: true, oneOf: true", - "data": 30, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/anyOf.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/anyOf.json deleted file mode 100644 index ab5eb386b..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/anyOf.json +++ /dev/null @@ -1,189 +0,0 @@ -[ - { - "description": "anyOf", - "schema": { - "anyOf": [ - { - "type": "integer" - }, - { - "minimum": 2 - } - ] - }, - "tests": [ - { - "description": "first anyOf valid", - "data": 1, - "valid": true - }, - { - "description": "second anyOf valid", - "data": 2.5, - "valid": true - }, - { - "description": "both anyOf valid", - "data": 3, - "valid": true - }, - { - "description": "neither anyOf valid", - "data": 1.5, - "valid": false - } - ] - }, - { - "description": "anyOf with base schema", - "schema": { - "type": "string", - "anyOf" : [ - { - "maxLength": 2 - }, - { - "minLength": 4 - } - ] - }, - "tests": [ - { - "description": "mismatch base schema", - "data": 3, - "valid": false - }, - { - "description": "one anyOf valid", - "data": "foobar", - "valid": true - }, - { - "description": "both anyOf invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "anyOf with boolean schemas, all true", - "schema": {"anyOf": [true, true]}, - "tests": [ - { - "description": "any value is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "anyOf with boolean schemas, some true", - "schema": {"anyOf": [true, false]}, - "tests": [ - { - "description": "any value is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "anyOf with boolean schemas, all false", - "schema": {"anyOf": [false, false]}, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "anyOf complex types", - "schema": { - "anyOf": [ - { - "properties": { - "bar": {"type": "integer"} - }, - "required": ["bar"] - }, - { - "properties": { - "foo": {"type": "string"} - }, - "required": ["foo"] - } - ] - }, - "tests": [ - { - "description": "first anyOf valid (complex)", - "data": {"bar": 2}, - "valid": true - }, - { - "description": "second anyOf valid (complex)", - "data": {"foo": "baz"}, - "valid": true - }, - { - "description": "both anyOf valid (complex)", - "data": {"foo": "baz", "bar": 2}, - "valid": true - }, - { - "description": "neither anyOf valid (complex)", - "data": {"foo": 2, "bar": "quux"}, - "valid": false - } - ] - }, - { - "description": "anyOf with one empty schema", - "schema": { - "anyOf": [ - { "type": "number" }, - {} - ] - }, - "tests": [ - { - "description": "string is valid", - "data": "foo", - "valid": true - }, - { - "description": "number is valid", - "data": 123, - "valid": true - } - ] - }, - { - "description": "nested anyOf, to check validation semantics", - "schema": { - "anyOf": [ - { - "anyOf": [ - { - "type": "null" - } - ] - } - ] - }, - "tests": [ - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "anything non-null is invalid", - "data": 123, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/boolean_schema.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/boolean_schema.json deleted file mode 100644 index 6d40f23f2..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/boolean_schema.json +++ /dev/null @@ -1,104 +0,0 @@ -[ - { - "description": "boolean schema 'true'", - "schema": true, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "string is valid", - "data": "foo", - "valid": true - }, - { - "description": "boolean true is valid", - "data": true, - "valid": true - }, - { - "description": "boolean false is valid", - "data": false, - "valid": true - }, - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "object is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "empty object is valid", - "data": {}, - "valid": true - }, - { - "description": "array is valid", - "data": ["foo"], - "valid": true - }, - { - "description": "empty array is valid", - "data": [], - "valid": true - } - ] - }, - { - "description": "boolean schema 'false'", - "schema": false, - "tests": [ - { - "description": "number is invalid", - "data": 1, - "valid": false - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - }, - { - "description": "boolean true is invalid", - "data": true, - "valid": false - }, - { - "description": "boolean false is invalid", - "data": false, - "valid": false - }, - { - "description": "null is invalid", - "data": null, - "valid": false - }, - { - "description": "object is invalid", - "data": {"foo": "bar"}, - "valid": false - }, - { - "description": "empty object is invalid", - "data": {}, - "valid": false - }, - { - "description": "array is invalid", - "data": ["foo"], - "valid": false - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/const.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/const.json deleted file mode 100644 index 1c2cafcc1..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/const.json +++ /dev/null @@ -1,342 +0,0 @@ -[ - { - "description": "const validation", - "schema": {"const": 2}, - "tests": [ - { - "description": "same value is valid", - "data": 2, - "valid": true - }, - { - "description": "another value is invalid", - "data": 5, - "valid": false - }, - { - "description": "another type is invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "const with object", - "schema": {"const": {"foo": "bar", "baz": "bax"}}, - "tests": [ - { - "description": "same object is valid", - "data": {"foo": "bar", "baz": "bax"}, - "valid": true - }, - { - "description": "same object with different property order is valid", - "data": {"baz": "bax", "foo": "bar"}, - "valid": true - }, - { - "description": "another object is invalid", - "data": {"foo": "bar"}, - "valid": false - }, - { - "description": "another type is invalid", - "data": [1, 2], - "valid": false - } - ] - }, - { - "description": "const with array", - "schema": {"const": [{ "foo": "bar" }]}, - "tests": [ - { - "description": "same array is valid", - "data": [{"foo": "bar"}], - "valid": true - }, - { - "description": "another array item is invalid", - "data": [2], - "valid": false - }, - { - "description": "array with additional items is invalid", - "data": [1, 2, 3], - "valid": false - } - ] - }, - { - "description": "const with null", - "schema": {"const": null}, - "tests": [ - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "not null is invalid", - "data": 0, - "valid": false - } - ] - }, - { - "description": "const with false does not match 0", - "schema": {"const": false}, - "tests": [ - { - "description": "false is valid", - "data": false, - "valid": true - }, - { - "description": "integer zero is invalid", - "data": 0, - "valid": false - }, - { - "description": "float zero is invalid", - "data": 0.0, - "valid": false - } - ] - }, - { - "description": "const with true does not match 1", - "schema": {"const": true}, - "tests": [ - { - "description": "true is valid", - "data": true, - "valid": true - }, - { - "description": "integer one is invalid", - "data": 1, - "valid": false - }, - { - "description": "float one is invalid", - "data": 1.0, - "valid": false - } - ] - }, - { - "description": "const with [false] does not match [0]", - "schema": {"const": [false]}, - "tests": [ - { - "description": "[false] is valid", - "data": [false], - "valid": true - }, - { - "description": "[0] is invalid", - "data": [0], - "valid": false - }, - { - "description": "[0.0] is invalid", - "data": [0.0], - "valid": false - } - ] - }, - { - "description": "const with [true] does not match [1]", - "schema": {"const": [true]}, - "tests": [ - { - "description": "[true] is valid", - "data": [true], - "valid": true - }, - { - "description": "[1] is invalid", - "data": [1], - "valid": false - }, - { - "description": "[1.0] is invalid", - "data": [1.0], - "valid": false - } - ] - }, - { - "description": "const with {\"a\": false} does not match {\"a\": 0}", - "schema": {"const": {"a": false}}, - "tests": [ - { - "description": "{\"a\": false} is valid", - "data": {"a": false}, - "valid": true - }, - { - "description": "{\"a\": 0} is invalid", - "data": {"a": 0}, - "valid": false - }, - { - "description": "{\"a\": 0.0} is invalid", - "data": {"a": 0.0}, - "valid": false - } - ] - }, - { - "description": "const with {\"a\": true} does not match {\"a\": 1}", - "schema": {"const": {"a": true}}, - "tests": [ - { - "description": "{\"a\": true} is valid", - "data": {"a": true}, - "valid": true - }, - { - "description": "{\"a\": 1} is invalid", - "data": {"a": 1}, - "valid": false - }, - { - "description": "{\"a\": 1.0} is invalid", - "data": {"a": 1.0}, - "valid": false - } - ] - }, - { - "description": "const with 0 does not match other zero-like types", - "schema": {"const": 0}, - "tests": [ - { - "description": "false is invalid", - "data": false, - "valid": false - }, - { - "description": "integer zero is valid", - "data": 0, - "valid": true - }, - { - "description": "float zero is valid", - "data": 0.0, - "valid": true - }, - { - "description": "empty object is invalid", - "data": {}, - "valid": false - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - }, - { - "description": "empty string is invalid", - "data": "", - "valid": false - } - ] - }, - { - "description": "const with 1 does not match true", - "schema": {"const": 1}, - "tests": [ - { - "description": "true is invalid", - "data": true, - "valid": false - }, - { - "description": "integer one is valid", - "data": 1, - "valid": true - }, - { - "description": "float one is valid", - "data": 1.0, - "valid": true - } - ] - }, - { - "description": "const with -2.0 matches integer and float types", - "schema": {"const": -2.0}, - "tests": [ - { - "description": "integer -2 is valid", - "data": -2, - "valid": true - }, - { - "description": "integer 2 is invalid", - "data": 2, - "valid": false - }, - { - "description": "float -2.0 is valid", - "data": -2.0, - "valid": true - }, - { - "description": "float 2.0 is invalid", - "data": 2.0, - "valid": false - }, - { - "description": "float -2.00001 is invalid", - "data": -2.00001, - "valid": false - } - ] - }, - { - "description": "float and integers are equal up to 64-bit representation limits", - "schema": {"const": 9007199254740992}, - "tests": [ - { - "description": "integer is valid", - "data": 9007199254740992, - "valid": true - }, - { - "description": "integer minus one is invalid", - "data": 9007199254740991, - "valid": false - }, - { - "description": "float is valid", - "data": 9007199254740992.0, - "valid": true - }, - { - "description": "float minus one is invalid", - "data": 9007199254740991.0, - "valid": false - } - ] - }, - { - "description": "nul characters in strings", - "schema": { "const": "hello\u0000there" }, - "tests": [ - { - "description": "match string with nul", - "data": "hello\u0000there", - "valid": true - }, - { - "description": "do not match string lacking nul", - "data": "hellothere", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/contains.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/contains.json deleted file mode 100644 index bd93654f3..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/contains.json +++ /dev/null @@ -1,144 +0,0 @@ -[ - { - "description": "contains keyword validation", - "schema": { - "contains": {"minimum": 5} - }, - "tests": [ - { - "description": "array with item matching schema (5) is valid", - "data": [3, 4, 5], - "valid": true - }, - { - "description": "array with item matching schema (6) is valid", - "data": [3, 4, 6], - "valid": true - }, - { - "description": "array with two items matching schema (5, 6) is valid", - "data": [3, 4, 5, 6], - "valid": true - }, - { - "description": "array without items matching schema is invalid", - "data": [2, 3, 4], - "valid": false - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - }, - { - "description": "not array is valid", - "data": {}, - "valid": true - } - ] - }, - { - "description": "contains keyword with const keyword", - "schema": { - "contains": { "const": 5 } - }, - "tests": [ - { - "description": "array with item 5 is valid", - "data": [3, 4, 5], - "valid": true - }, - { - "description": "array with two items 5 is valid", - "data": [3, 4, 5, 5], - "valid": true - }, - { - "description": "array without item 5 is invalid", - "data": [1, 2, 3, 4], - "valid": false - } - ] - }, - { - "description": "contains keyword with boolean schema true", - "schema": {"contains": true}, - "tests": [ - { - "description": "any non-empty array is valid", - "data": ["foo"], - "valid": true - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - } - ] - }, - { - "description": "contains keyword with boolean schema false", - "schema": {"contains": false}, - "tests": [ - { - "description": "any non-empty array is invalid", - "data": ["foo"], - "valid": false - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - }, - { - "description": "non-arrays are valid", - "data": "contains does not apply to strings", - "valid": true - } - ] - }, - { - "description": "items + contains", - "schema": { - "items": { "multipleOf": 2 }, - "contains": { "multipleOf": 3 } - }, - "tests": [ - { - "description": "matches items, does not match contains", - "data": [ 2, 4, 8 ], - "valid": false - }, - { - "description": "does not match items, matches contains", - "data": [ 3, 6, 9 ], - "valid": false - }, - { - "description": "matches both items and contains", - "data": [ 6, 12 ], - "valid": true - }, - { - "description": "matches neither items nor contains", - "data": [ 1, 5 ], - "valid": false - } - ] - }, - { - "description": "contains with null instance elements", - "schema": { - "contains": { - "type": "null" - } - }, - "tests": [ - { - "description": "allows null items", - "data": [ null ], - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/default.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/default.json deleted file mode 100644 index 289a9b66c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/default.json +++ /dev/null @@ -1,79 +0,0 @@ -[ - { - "description": "invalid type for default", - "schema": { - "properties": { - "foo": { - "type": "integer", - "default": [] - } - } - }, - "tests": [ - { - "description": "valid when property is specified", - "data": {"foo": 13}, - "valid": true - }, - { - "description": "still valid when the invalid default is used", - "data": {}, - "valid": true - } - ] - }, - { - "description": "invalid string value for default", - "schema": { - "properties": { - "bar": { - "type": "string", - "minLength": 4, - "default": "bad" - } - } - }, - "tests": [ - { - "description": "valid when property is specified", - "data": {"bar": "good"}, - "valid": true - }, - { - "description": "still valid when the invalid default is used", - "data": {}, - "valid": true - } - ] - }, - { - "description": "the default keyword does not do anything if the property is missing", - "schema": { - "type": "object", - "properties": { - "alpha": { - "type": "number", - "maximum": 3, - "default": 5 - } - } - }, - "tests": [ - { - "description": "an explicit property value is checked against maximum (passing)", - "data": { "alpha": 1 }, - "valid": true - }, - { - "description": "an explicit property value is checked against maximum (failing)", - "data": { "alpha": 5 }, - "valid": false - }, - { - "description": "missing properties are not filled in with the default", - "data": {}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/definitions.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/definitions.json deleted file mode 100644 index d772fde3e..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/definitions.json +++ /dev/null @@ -1,26 +0,0 @@ -[ - { - "description": "validate definition against metaschema", - "schema": {"$ref": "http://json-schema.org/draft-06/schema#"}, - "tests": [ - { - "description": "valid definition schema", - "data": { - "definitions": { - "foo": {"type": "integer"} - } - }, - "valid": true - }, - { - "description": "invalid definition schema", - "data": { - "definitions": { - "foo": {"type": 1} - } - }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/dependencies.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/dependencies.json deleted file mode 100644 index c0bd809f6..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/dependencies.json +++ /dev/null @@ -1,286 +0,0 @@ -[ - { - "description": "dependencies", - "schema": { - "dependencies": {"bar": ["foo"]} - }, - "tests": [ - { - "description": "neither", - "data": {}, - "valid": true - }, - { - "description": "nondependant", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "with dependency", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "missing dependency", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "ignores arrays", - "data": ["bar"], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobar", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "dependencies with empty array", - "schema": { - "dependencies": {"bar": []} - }, - "tests": [ - { - "description": "empty object", - "data": {}, - "valid": true - }, - { - "description": "object with one property", - "data": {"bar": 2}, - "valid": true - }, - { - "description": "non-object is valid", - "data": 1, - "valid": true - } - ] - }, - { - "description": "multiple dependencies", - "schema": { - "dependencies": {"quux": ["foo", "bar"]} - }, - "tests": [ - { - "description": "neither", - "data": {}, - "valid": true - }, - { - "description": "nondependants", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "with dependencies", - "data": {"foo": 1, "bar": 2, "quux": 3}, - "valid": true - }, - { - "description": "missing dependency", - "data": {"foo": 1, "quux": 2}, - "valid": false - }, - { - "description": "missing other dependency", - "data": {"bar": 1, "quux": 2}, - "valid": false - }, - { - "description": "missing both dependencies", - "data": {"quux": 1}, - "valid": false - } - ] - }, - { - "description": "multiple dependencies subschema", - "schema": { - "dependencies": { - "bar": { - "properties": { - "foo": {"type": "integer"}, - "bar": {"type": "integer"} - } - } - } - }, - "tests": [ - { - "description": "valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "no dependency", - "data": {"foo": "quux"}, - "valid": true - }, - { - "description": "wrong type", - "data": {"foo": "quux", "bar": 2}, - "valid": false - }, - { - "description": "wrong type other", - "data": {"foo": 2, "bar": "quux"}, - "valid": false - }, - { - "description": "wrong type both", - "data": {"foo": "quux", "bar": "quux"}, - "valid": false - } - ] - }, - { - "description": "dependencies with boolean subschemas", - "schema": { - "dependencies": { - "foo": true, - "bar": false - } - }, - "tests": [ - { - "description": "object with property having schema true is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "object with property having schema false is invalid", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "object with both properties is invalid", - "data": {"foo": 1, "bar": 2}, - "valid": false - }, - { - "description": "empty object is valid", - "data": {}, - "valid": true - } - ] - }, - { - "description": "dependencies with escaped characters", - "schema": { - "dependencies": { - "foo\nbar": ["foo\rbar"], - "foo\tbar": { - "minProperties": 4 - }, - "foo'bar": {"required": ["foo\"bar"]}, - "foo\"bar": ["foo'bar"] - } - }, - "tests": [ - { - "description": "valid object 1", - "data": { - "foo\nbar": 1, - "foo\rbar": 2 - }, - "valid": true - }, - { - "description": "valid object 2", - "data": { - "foo\tbar": 1, - "a": 2, - "b": 3, - "c": 4 - }, - "valid": true - }, - { - "description": "valid object 3", - "data": { - "foo'bar": 1, - "foo\"bar": 2 - }, - "valid": true - }, - { - "description": "invalid object 1", - "data": { - "foo\nbar": 1, - "foo": 2 - }, - "valid": false - }, - { - "description": "invalid object 2", - "data": { - "foo\tbar": 1, - "a": 2 - }, - "valid": false - }, - { - "description": "invalid object 3", - "data": { - "foo'bar": 1 - }, - "valid": false - }, - { - "description": "invalid object 4", - "data": { - "foo\"bar": 2 - }, - "valid": false - } - ] - }, - { - "description": "dependent subschema incompatible with root", - "schema": { - "properties": { - "foo": {} - }, - "dependencies": { - "foo": { - "properties": { - "bar": {} - }, - "additionalProperties": false - } - } - }, - "tests": [ - { - "description": "matches root", - "data": {"foo": 1}, - "valid": false - }, - { - "description": "matches dependency", - "data": {"bar": 1}, - "valid": true - }, - { - "description": "matches both", - "data": {"foo": 1, "bar": 2}, - "valid": false - }, - { - "description": "no dependency", - "data": {"baz": 1}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/enum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/enum.json deleted file mode 100644 index ce43acc02..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/enum.json +++ /dev/null @@ -1,320 +0,0 @@ -[ - { - "description": "simple enum validation", - "schema": {"enum": [1, 2, 3]}, - "tests": [ - { - "description": "one of the enum is valid", - "data": 1, - "valid": true - }, - { - "description": "something else is invalid", - "data": 4, - "valid": false - } - ] - }, - { - "description": "heterogeneous enum validation", - "schema": {"enum": [6, "foo", [], true, {"foo": 12}]}, - "tests": [ - { - "description": "one of the enum is valid", - "data": [], - "valid": true - }, - { - "description": "something else is invalid", - "data": null, - "valid": false - }, - { - "description": "objects are deep compared", - "data": {"foo": false}, - "valid": false - }, - { - "description": "valid object matches", - "data": {"foo": 12}, - "valid": true - }, - { - "description": "extra properties in object is invalid", - "data": {"foo": 12, "boo": 42}, - "valid": false - } - ] - }, - { - "description": "heterogeneous enum-with-null validation", - "schema": { "enum": [6, null] }, - "tests": [ - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "number is valid", - "data": 6, - "valid": true - }, - { - "description": "something else is invalid", - "data": "test", - "valid": false - } - ] - }, - { - "description": "enums in properties", - "schema": { - "type":"object", - "properties": { - "foo": {"enum":["foo"]}, - "bar": {"enum":["bar"]} - }, - "required": ["bar"] - }, - "tests": [ - { - "description": "both properties are valid", - "data": {"foo":"foo", "bar":"bar"}, - "valid": true - }, - { - "description": "wrong foo value", - "data": {"foo":"foot", "bar":"bar"}, - "valid": false - }, - { - "description": "wrong bar value", - "data": {"foo":"foo", "bar":"bart"}, - "valid": false - }, - { - "description": "missing optional property is valid", - "data": {"bar":"bar"}, - "valid": true - }, - { - "description": "missing required property is invalid", - "data": {"foo":"foo"}, - "valid": false - }, - { - "description": "missing all properties is invalid", - "data": {}, - "valid": false - } - ] - }, - { - "description": "enum with escaped characters", - "schema": { - "enum": ["foo\nbar", "foo\rbar"] - }, - "tests": [ - { - "description": "member 1 is valid", - "data": "foo\nbar", - "valid": true - }, - { - "description": "member 2 is valid", - "data": "foo\rbar", - "valid": true - }, - { - "description": "another string is invalid", - "data": "abc", - "valid": false - } - ] - }, - { - "description": "enum with false does not match 0", - "schema": {"enum": [false]}, - "tests": [ - { - "description": "false is valid", - "data": false, - "valid": true - }, - { - "description": "integer zero is invalid", - "data": 0, - "valid": false - }, - { - "description": "float zero is invalid", - "data": 0.0, - "valid": false - } - ] - }, - { - "description": "enum with [false] does not match [0]", - "schema": {"enum": [[false]]}, - "tests": [ - { - "description": "[false] is valid", - "data": [false], - "valid": true - }, - { - "description": "[0] is invalid", - "data": [0], - "valid": false - }, - { - "description": "[0.0] is invalid", - "data": [0.0], - "valid": false - } - ] - }, - { - "description": "enum with true does not match 1", - "schema": {"enum": [true]}, - "tests": [ - { - "description": "true is valid", - "data": true, - "valid": true - }, - { - "description": "integer one is invalid", - "data": 1, - "valid": false - }, - { - "description": "float one is invalid", - "data": 1.0, - "valid": false - } - ] - }, - { - "description": "enum with [true] does not match [1]", - "schema": {"enum": [[true]]}, - "tests": [ - { - "description": "[true] is valid", - "data": [true], - "valid": true - }, - { - "description": "[1] is invalid", - "data": [1], - "valid": false - }, - { - "description": "[1.0] is invalid", - "data": [1.0], - "valid": false - } - ] - }, - { - "description": "enum with 0 does not match false", - "schema": {"enum": [0]}, - "tests": [ - { - "description": "false is invalid", - "data": false, - "valid": false - }, - { - "description": "integer zero is valid", - "data": 0, - "valid": true - }, - { - "description": "float zero is valid", - "data": 0.0, - "valid": true - } - ] - }, - { - "description": "enum with [0] does not match [false]", - "schema": {"enum": [[0]]}, - "tests": [ - { - "description": "[false] is invalid", - "data": [false], - "valid": false - }, - { - "description": "[0] is valid", - "data": [0], - "valid": true - }, - { - "description": "[0.0] is valid", - "data": [0.0], - "valid": true - } - ] - }, - { - "description": "enum with 1 does not match true", - "schema": {"enum": [1]}, - "tests": [ - { - "description": "true is invalid", - "data": true, - "valid": false - }, - { - "description": "integer one is valid", - "data": 1, - "valid": true - }, - { - "description": "float one is valid", - "data": 1.0, - "valid": true - } - ] - }, - { - "description": "enum with [1] does not match [true]", - "schema": {"enum": [[1]]}, - "tests": [ - { - "description": "[true] is invalid", - "data": [true], - "valid": false - }, - { - "description": "[1] is valid", - "data": [1], - "valid": true - }, - { - "description": "[1.0] is valid", - "data": [1.0], - "valid": true - } - ] - }, - { - "description": "nul characters in strings", - "schema": { "enum": [ "hello\u0000there" ] }, - "tests": [ - { - "description": "match string with nul", - "data": "hello\u0000there", - "valid": true - }, - { - "description": "do not match string lacking nul", - "data": "hellothere", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/exclusiveMaximum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/exclusiveMaximum.json deleted file mode 100644 index dc3cd709d..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/exclusiveMaximum.json +++ /dev/null @@ -1,30 +0,0 @@ -[ - { - "description": "exclusiveMaximum validation", - "schema": { - "exclusiveMaximum": 3.0 - }, - "tests": [ - { - "description": "below the exclusiveMaximum is valid", - "data": 2.2, - "valid": true - }, - { - "description": "boundary point is invalid", - "data": 3.0, - "valid": false - }, - { - "description": "above the exclusiveMaximum is invalid", - "data": 3.5, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/exclusiveMinimum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/exclusiveMinimum.json deleted file mode 100644 index b38d7ecec..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/exclusiveMinimum.json +++ /dev/null @@ -1,30 +0,0 @@ -[ - { - "description": "exclusiveMinimum validation", - "schema": { - "exclusiveMinimum": 1.1 - }, - "tests": [ - { - "description": "above the exclusiveMinimum is valid", - "data": 1.2, - "valid": true - }, - { - "description": "boundary point is invalid", - "data": 1.1, - "valid": false - }, - { - "description": "below the exclusiveMinimum is invalid", - "data": 0.6, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/format.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/format.json deleted file mode 100644 index 2df2a9f0a..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/format.json +++ /dev/null @@ -1,326 +0,0 @@ -[ - { - "description": "email format", - "schema": { "format": "email" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "ipv4 format", - "schema": { "format": "ipv4" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "ipv6 format", - "schema": { "format": "ipv6" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "hostname format", - "schema": { "format": "hostname" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "date-time format", - "schema": { "format": "date-time" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "json-pointer format", - "schema": { "format": "json-pointer" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "uri format", - "schema": { "format": "uri" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "uri-reference format", - "schema": { "format": "uri-reference" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "uri-template format", - "schema": { "format": "uri-template" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/infinite-loop-detection.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/infinite-loop-detection.json deleted file mode 100644 index f98c74fc6..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/infinite-loop-detection.json +++ /dev/null @@ -1,36 +0,0 @@ -[ - { - "description": "evaluating the same schema location against the same data location twice is not a sign of an infinite loop", - "schema": { - "definitions": { - "int": { "type": "integer" } - }, - "allOf": [ - { - "properties": { - "foo": { - "$ref": "#/definitions/int" - } - } - }, - { - "additionalProperties": { - "$ref": "#/definitions/int" - } - } - ] - }, - "tests": [ - { - "description": "passing case", - "data": { "foo": 1 }, - "valid": true - }, - { - "description": "failing case", - "data": { "foo": "a string" }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/items.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/items.json deleted file mode 100644 index 7ed6781b6..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/items.json +++ /dev/null @@ -1,282 +0,0 @@ -[ - { - "description": "a schema given for items", - "schema": { - "items": {"type": "integer"} - }, - "tests": [ - { - "description": "valid items", - "data": [ 1, 2, 3 ], - "valid": true - }, - { - "description": "wrong type of items", - "data": [1, "x"], - "valid": false - }, - { - "description": "ignores non-arrays", - "data": {"foo" : "bar"}, - "valid": true - }, - { - "description": "JavaScript pseudo-array is valid", - "data": { - "0": "invalid", - "length": 1 - }, - "valid": true - } - ] - }, - { - "description": "an array of schemas for items", - "schema": { - "items": [ - {"type": "integer"}, - {"type": "string"} - ] - }, - "tests": [ - { - "description": "correct types", - "data": [ 1, "foo" ], - "valid": true - }, - { - "description": "wrong types", - "data": [ "foo", 1 ], - "valid": false - }, - { - "description": "incomplete array of items", - "data": [ 1 ], - "valid": true - }, - { - "description": "array with additional items", - "data": [ 1, "foo", true ], - "valid": true - }, - { - "description": "empty array", - "data": [ ], - "valid": true - }, - { - "description": "JavaScript pseudo-array is valid", - "data": { - "0": "invalid", - "1": "valid", - "length": 2 - }, - "valid": true - } - ] - }, - { - "description": "items with boolean schema (true)", - "schema": {"items": true}, - "tests": [ - { - "description": "any array is valid", - "data": [ 1, "foo", true ], - "valid": true - }, - { - "description": "empty array is valid", - "data": [], - "valid": true - } - ] - }, - { - "description": "items with boolean schema (false)", - "schema": {"items": false}, - "tests": [ - { - "description": "any non-empty array is invalid", - "data": [ 1, "foo", true ], - "valid": false - }, - { - "description": "empty array is valid", - "data": [], - "valid": true - } - ] - }, - { - "description": "items with boolean schemas", - "schema": { - "items": [true, false] - }, - "tests": [ - { - "description": "array with one item is valid", - "data": [ 1 ], - "valid": true - }, - { - "description": "array with two items is invalid", - "data": [ 1, "foo" ], - "valid": false - }, - { - "description": "empty array is valid", - "data": [], - "valid": true - } - ] - }, - { - "description": "items and subitems", - "schema": { - "definitions": { - "item": { - "type": "array", - "additionalItems": false, - "items": [ - { "$ref": "#/definitions/sub-item" }, - { "$ref": "#/definitions/sub-item" } - ] - }, - "sub-item": { - "type": "object", - "required": ["foo"] - } - }, - "type": "array", - "additionalItems": false, - "items": [ - { "$ref": "#/definitions/item" }, - { "$ref": "#/definitions/item" }, - { "$ref": "#/definitions/item" } - ] - }, - "tests": [ - { - "description": "valid items", - "data": [ - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ] - ], - "valid": true - }, - { - "description": "too many items", - "data": [ - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ] - ], - "valid": false - }, - { - "description": "too many sub-items", - "data": [ - [ {"foo": null}, {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ] - ], - "valid": false - }, - { - "description": "wrong item", - "data": [ - {"foo": null}, - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ] - ], - "valid": false - }, - { - "description": "wrong sub-item", - "data": [ - [ {}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ] - ], - "valid": false - }, - { - "description": "fewer items is valid", - "data": [ - [ {"foo": null} ], - [ {"foo": null} ] - ], - "valid": true - } - ] - }, - { - "description": "nested items", - "schema": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "number" - } - } - } - } - }, - "tests": [ - { - "description": "valid nested array", - "data": [[[[1]], [[2],[3]]], [[[4], [5], [6]]]], - "valid": true - }, - { - "description": "nested array with invalid type", - "data": [[[["1"]], [[2],[3]]], [[[4], [5], [6]]]], - "valid": false - }, - { - "description": "not deep enough", - "data": [[[1], [2],[3]], [[4], [5], [6]]], - "valid": false - } - ] - }, - { - "description": "single-form items with null instance elements", - "schema": { - "items": { - "type": "null" - } - }, - "tests": [ - { - "description": "allows null elements", - "data": [ null ], - "valid": true - } - ] - }, - { - "description": "array-form items with null instance elements", - "schema": { - "items": [ - { - "type": "null" - } - ] - }, - "tests": [ - { - "description": "allows null elements", - "data": [ null ], - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/maxItems.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/maxItems.json deleted file mode 100644 index f0c36ab28..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/maxItems.json +++ /dev/null @@ -1,44 +0,0 @@ -[ - { - "description": "maxItems validation", - "schema": {"maxItems": 2}, - "tests": [ - { - "description": "shorter is valid", - "data": [1], - "valid": true - }, - { - "description": "exact length is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "too long is invalid", - "data": [1, 2, 3], - "valid": false - }, - { - "description": "ignores non-arrays", - "data": "foobar", - "valid": true - } - ] - }, - { - "description": "maxItems validation with a decimal", - "schema": {"maxItems": 2.0}, - "tests": [ - { - "description": "shorter is valid", - "data": [1], - "valid": true - }, - { - "description": "too long is invalid", - "data": [1, 2, 3], - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/maxLength.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/maxLength.json deleted file mode 100644 index be60c5407..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/maxLength.json +++ /dev/null @@ -1,49 +0,0 @@ -[ - { - "description": "maxLength validation", - "schema": {"maxLength": 2}, - "tests": [ - { - "description": "shorter is valid", - "data": "f", - "valid": true - }, - { - "description": "exact length is valid", - "data": "fo", - "valid": true - }, - { - "description": "too long is invalid", - "data": "foo", - "valid": false - }, - { - "description": "ignores non-strings", - "data": 100, - "valid": true - }, - { - "description": "two graphemes is long enough", - "data": "\uD83D\uDCA9\uD83D\uDCA9", - "valid": true - } - ] - }, - { - "description": "maxLength validation with a decimal", - "schema": {"maxLength": 2.0}, - "tests": [ - { - "description": "shorter is valid", - "data": "f", - "valid": true - }, - { - "description": "too long is invalid", - "data": "foo", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/maxProperties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/maxProperties.json deleted file mode 100644 index acec14209..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/maxProperties.json +++ /dev/null @@ -1,70 +0,0 @@ -[ - { - "description": "maxProperties validation", - "schema": {"maxProperties": 2}, - "tests": [ - { - "description": "shorter is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "exact length is valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "too long is invalid", - "data": {"foo": 1, "bar": 2, "baz": 3}, - "valid": false - }, - { - "description": "ignores arrays", - "data": [1, 2, 3], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobar", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "maxProperties validation with a decimal", - "schema": {"maxProperties": 2.0}, - "tests": [ - { - "description": "shorter is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "too long is invalid", - "data": {"foo": 1, "bar": 2, "baz": 3}, - "valid": false - } - ] - }, - { - "description": "maxProperties = 0 means the object is empty", - "schema": { "maxProperties": 0 }, - "tests": [ - { - "description": "no properties is valid", - "data": {}, - "valid": true - }, - { - "description": "one property is invalid", - "data": { "foo": 1 }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/maximum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/maximum.json deleted file mode 100644 index 6844a39ee..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/maximum.json +++ /dev/null @@ -1,54 +0,0 @@ -[ - { - "description": "maximum validation", - "schema": {"maximum": 3.0}, - "tests": [ - { - "description": "below the maximum is valid", - "data": 2.6, - "valid": true - }, - { - "description": "boundary point is valid", - "data": 3.0, - "valid": true - }, - { - "description": "above the maximum is invalid", - "data": 3.5, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - }, - { - "description": "maximum validation with unsigned integer", - "schema": {"maximum": 300}, - "tests": [ - { - "description": "below the maximum is invalid", - "data": 299.97, - "valid": true - }, - { - "description": "boundary point integer is valid", - "data": 300, - "valid": true - }, - { - "description": "boundary point float is valid", - "data": 300.00, - "valid": true - }, - { - "description": "above the maximum is invalid", - "data": 300.5, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/minItems.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/minItems.json deleted file mode 100644 index d3b18720d..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/minItems.json +++ /dev/null @@ -1,44 +0,0 @@ -[ - { - "description": "minItems validation", - "schema": {"minItems": 1}, - "tests": [ - { - "description": "longer is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "exact length is valid", - "data": [1], - "valid": true - }, - { - "description": "too short is invalid", - "data": [], - "valid": false - }, - { - "description": "ignores non-arrays", - "data": "", - "valid": true - } - ] - }, - { - "description": "minItems validation with a decimal", - "schema": {"minItems": 1.0}, - "tests": [ - { - "description": "longer is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "too short is invalid", - "data": [], - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/minLength.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/minLength.json deleted file mode 100644 index 23c68fe3f..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/minLength.json +++ /dev/null @@ -1,49 +0,0 @@ -[ - { - "description": "minLength validation", - "schema": {"minLength": 2}, - "tests": [ - { - "description": "longer is valid", - "data": "foo", - "valid": true - }, - { - "description": "exact length is valid", - "data": "fo", - "valid": true - }, - { - "description": "too short is invalid", - "data": "f", - "valid": false - }, - { - "description": "ignores non-strings", - "data": 1, - "valid": true - }, - { - "description": "one grapheme is not long enough", - "data": "\uD83D\uDCA9", - "valid": false - } - ] - }, - { - "description": "minLength validation with a decimal", - "schema": {"minLength": 2.0}, - "tests": [ - { - "description": "longer is valid", - "data": "foo", - "valid": true - }, - { - "description": "too short is invalid", - "data": "f", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/minProperties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/minProperties.json deleted file mode 100644 index 9f74f7891..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/minProperties.json +++ /dev/null @@ -1,54 +0,0 @@ -[ - { - "description": "minProperties validation", - "schema": {"minProperties": 1}, - "tests": [ - { - "description": "longer is valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "exact length is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "too short is invalid", - "data": {}, - "valid": false - }, - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores strings", - "data": "", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "minProperties validation with a decimal", - "schema": {"minProperties": 1.0}, - "tests": [ - { - "description": "longer is valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "too short is invalid", - "data": {}, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/minimum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/minimum.json deleted file mode 100644 index 21ae50e0e..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/minimum.json +++ /dev/null @@ -1,69 +0,0 @@ -[ - { - "description": "minimum validation", - "schema": {"minimum": 1.1}, - "tests": [ - { - "description": "above the minimum is valid", - "data": 2.6, - "valid": true - }, - { - "description": "boundary point is valid", - "data": 1.1, - "valid": true - }, - { - "description": "below the minimum is invalid", - "data": 0.6, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - }, - { - "description": "minimum validation with signed integer", - "schema": {"minimum": -2}, - "tests": [ - { - "description": "negative above the minimum is valid", - "data": -1, - "valid": true - }, - { - "description": "positive above the minimum is valid", - "data": 0, - "valid": true - }, - { - "description": "boundary point is valid", - "data": -2, - "valid": true - }, - { - "description": "boundary point with float is valid", - "data": -2.0, - "valid": true - }, - { - "description": "float below the minimum is invalid", - "data": -2.0001, - "valid": false - }, - { - "description": "int below the minimum is invalid", - "data": -3, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/multipleOf.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/multipleOf.json deleted file mode 100644 index e606979b7..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/multipleOf.json +++ /dev/null @@ -1,82 +0,0 @@ -[ - { - "description": "by int", - "schema": {"multipleOf": 2}, - "tests": [ - { - "description": "int by int", - "data": 10, - "valid": true - }, - { - "description": "int by int fail", - "data": 7, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "by number", - "schema": {"multipleOf": 1.5}, - "tests": [ - { - "description": "zero is multiple of anything", - "data": 0, - "valid": true - }, - { - "description": "4.5 is multiple of 1.5", - "data": 4.5, - "valid": true - }, - { - "description": "35 is not multiple of 1.5", - "data": 35, - "valid": false - } - ] - }, - { - "description": "by small number", - "schema": {"multipleOf": 0.0001}, - "tests": [ - { - "description": "0.0075 is multiple of 0.0001", - "data": 0.0075, - "valid": true - }, - { - "description": "0.00751 is not multiple of 0.0001", - "data": 0.00751, - "valid": false - } - ] - }, - { - "description": "float division = inf", - "schema": {"type": "integer", "multipleOf": 0.123456789}, - "tests": [ - { - "description": "always invalid, but naive implementations may raise an overflow error", - "data": 1e308, - "valid": false - } - ] - }, - { - "description": "small multiple of large integer", - "schema": {"type": "integer", "multipleOf": 1e-8}, - "tests": [ - { - "description": "any integer is a multiple of 1e-8", - "data": 12391239123, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/not.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/not.json deleted file mode 100644 index b46c4ed05..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/not.json +++ /dev/null @@ -1,259 +0,0 @@ -[ - { - "description": "not", - "schema": { - "not": {"type": "integer"} - }, - "tests": [ - { - "description": "allowed", - "data": "foo", - "valid": true - }, - { - "description": "disallowed", - "data": 1, - "valid": false - } - ] - }, - { - "description": "not multiple types", - "schema": { - "not": {"type": ["integer", "boolean"]} - }, - "tests": [ - { - "description": "valid", - "data": "foo", - "valid": true - }, - { - "description": "mismatch", - "data": 1, - "valid": false - }, - { - "description": "other mismatch", - "data": true, - "valid": false - } - ] - }, - { - "description": "not more complex schema", - "schema": { - "not": { - "type": "object", - "properties": { - "foo": { - "type": "string" - } - } - } - }, - "tests": [ - { - "description": "match", - "data": 1, - "valid": true - }, - { - "description": "other match", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "mismatch", - "data": {"foo": "bar"}, - "valid": false - } - ] - }, - { - "description": "forbidden property", - "schema": { - "properties": { - "foo": { - "not": {} - } - } - }, - "tests": [ - { - "description": "property present", - "data": {"foo": 1, "bar": 2}, - "valid": false - }, - { - "description": "property absent", - "data": {"bar": 1, "baz": 2}, - "valid": true - } - ] - }, - { - "description": "forbid everything with empty schema", - "schema": { "not": {} }, - "tests": [ - { - "description": "number is invalid", - "data": 1, - "valid": false - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - }, - { - "description": "boolean true is invalid", - "data": true, - "valid": false - }, - { - "description": "boolean false is invalid", - "data": false, - "valid": false - }, - { - "description": "null is invalid", - "data": null, - "valid": false - }, - { - "description": "object is invalid", - "data": {"foo": "bar"}, - "valid": false - }, - { - "description": "empty object is invalid", - "data": {}, - "valid": false - }, - { - "description": "array is invalid", - "data": ["foo"], - "valid": false - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - } - ] - }, - { - "description": "forbid everything with boolean schema true", - "schema": { "not": true }, - "tests": [ - { - "description": "number is invalid", - "data": 1, - "valid": false - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - }, - { - "description": "boolean true is invalid", - "data": true, - "valid": false - }, - { - "description": "boolean false is invalid", - "data": false, - "valid": false - }, - { - "description": "null is invalid", - "data": null, - "valid": false - }, - { - "description": "object is invalid", - "data": {"foo": "bar"}, - "valid": false - }, - { - "description": "empty object is invalid", - "data": {}, - "valid": false - }, - { - "description": "array is invalid", - "data": ["foo"], - "valid": false - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - } - ] - }, - { - "description": "allow everything with boolean schema false", - "schema": { "not": false }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "string is valid", - "data": "foo", - "valid": true - }, - { - "description": "boolean true is valid", - "data": true, - "valid": true - }, - { - "description": "boolean false is valid", - "data": false, - "valid": true - }, - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "object is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "empty object is valid", - "data": {}, - "valid": true - }, - { - "description": "array is valid", - "data": ["foo"], - "valid": true - }, - { - "description": "empty array is valid", - "data": [], - "valid": true - } - ] - }, - { - "description": "double negation", - "schema": { "not": { "not": {} } }, - "tests": [ - { - "description": "any value is valid", - "data": "foo", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/oneOf.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/oneOf.json deleted file mode 100644 index c30a65c0d..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/oneOf.json +++ /dev/null @@ -1,274 +0,0 @@ -[ - { - "description": "oneOf", - "schema": { - "oneOf": [ - { - "type": "integer" - }, - { - "minimum": 2 - } - ] - }, - "tests": [ - { - "description": "first oneOf valid", - "data": 1, - "valid": true - }, - { - "description": "second oneOf valid", - "data": 2.5, - "valid": true - }, - { - "description": "both oneOf valid", - "data": 3, - "valid": false - }, - { - "description": "neither oneOf valid", - "data": 1.5, - "valid": false - } - ] - }, - { - "description": "oneOf with base schema", - "schema": { - "type": "string", - "oneOf" : [ - { - "minLength": 2 - }, - { - "maxLength": 4 - } - ] - }, - "tests": [ - { - "description": "mismatch base schema", - "data": 3, - "valid": false - }, - { - "description": "one oneOf valid", - "data": "foobar", - "valid": true - }, - { - "description": "both oneOf valid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "oneOf with boolean schemas, all true", - "schema": {"oneOf": [true, true, true]}, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "oneOf with boolean schemas, one true", - "schema": {"oneOf": [true, false, false]}, - "tests": [ - { - "description": "any value is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "oneOf with boolean schemas, more than one true", - "schema": {"oneOf": [true, true, false]}, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "oneOf with boolean schemas, all false", - "schema": {"oneOf": [false, false, false]}, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "oneOf complex types", - "schema": { - "oneOf": [ - { - "properties": { - "bar": {"type": "integer"} - }, - "required": ["bar"] - }, - { - "properties": { - "foo": {"type": "string"} - }, - "required": ["foo"] - } - ] - }, - "tests": [ - { - "description": "first oneOf valid (complex)", - "data": {"bar": 2}, - "valid": true - }, - { - "description": "second oneOf valid (complex)", - "data": {"foo": "baz"}, - "valid": true - }, - { - "description": "both oneOf valid (complex)", - "data": {"foo": "baz", "bar": 2}, - "valid": false - }, - { - "description": "neither oneOf valid (complex)", - "data": {"foo": 2, "bar": "quux"}, - "valid": false - } - ] - }, - { - "description": "oneOf with empty schema", - "schema": { - "oneOf": [ - { "type": "number" }, - {} - ] - }, - "tests": [ - { - "description": "one valid - valid", - "data": "foo", - "valid": true - }, - { - "description": "both valid - invalid", - "data": 123, - "valid": false - } - ] - }, - { - "description": "oneOf with required", - "schema": { - "type": "object", - "oneOf": [ - { "required": ["foo", "bar"] }, - { "required": ["foo", "baz"] } - ] - }, - "tests": [ - { - "description": "both invalid - invalid", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "first valid - valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "second valid - valid", - "data": {"foo": 1, "baz": 3}, - "valid": true - }, - { - "description": "both valid - invalid", - "data": {"foo": 1, "bar": 2, "baz" : 3}, - "valid": false - } - ] - }, - { - "description": "oneOf with missing optional property", - "schema": { - "oneOf": [ - { - "properties": { - "bar": true, - "baz": true - }, - "required": ["bar"] - }, - { - "properties": { - "foo": true - }, - "required": ["foo"] - } - ] - }, - "tests": [ - { - "description": "first oneOf valid", - "data": {"bar": 8}, - "valid": true - }, - { - "description": "second oneOf valid", - "data": {"foo": "foo"}, - "valid": true - }, - { - "description": "both oneOf valid", - "data": {"foo": "foo", "bar": 8}, - "valid": false - }, - { - "description": "neither oneOf valid", - "data": {"baz": "quux"}, - "valid": false - } - ] - }, - { - "description": "nested oneOf, to check validation semantics", - "schema": { - "oneOf": [ - { - "oneOf": [ - { - "type": "null" - } - ] - } - ] - }, - "tests": [ - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "anything non-null is invalid", - "data": 123, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/bignum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/bignum.json deleted file mode 100644 index 94b4a4e62..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/bignum.json +++ /dev/null @@ -1,93 +0,0 @@ -[ - { - "description": "integer", - "schema": { "type": "integer" }, - "tests": [ - { - "description": "a bignum is an integer", - "data": 12345678910111213141516171819202122232425262728293031, - "valid": true - }, - { - "description": "a negative bignum is an integer", - "data": -12345678910111213141516171819202122232425262728293031, - "valid": true - } - ] - }, - { - "description": "number", - "schema": { "type": "number" }, - "tests": [ - { - "description": "a bignum is a number", - "data": 98249283749234923498293171823948729348710298301928331, - "valid": true - }, - { - "description": "a negative bignum is a number", - "data": -98249283749234923498293171823948729348710298301928331, - "valid": true - } - ] - }, - { - "description": "string", - "schema": { "type": "string" }, - "tests": [ - { - "description": "a bignum is not a string", - "data": 98249283749234923498293171823948729348710298301928331, - "valid": false - } - ] - }, - { - "description": "maximum integer comparison", - "schema": { "maximum": 18446744073709551615 }, - "tests": [ - { - "description": "comparison works for high numbers", - "data": 18446744073709551600, - "valid": true - } - ] - }, - { - "description": "float comparison with high precision", - "schema": { - "exclusiveMaximum": 972783798187987123879878123.18878137 - }, - "tests": [ - { - "description": "comparison works for high numbers", - "data": 972783798187987123879878123.188781371, - "valid": false - } - ] - }, - { - "description": "minimum integer comparison", - "schema": { "minimum": -18446744073709551615 }, - "tests": [ - { - "description": "comparison works for very negative numbers", - "data": -18446744073709551600, - "valid": true - } - ] - }, - { - "description": "float comparison with high precision on negative numbers", - "schema": { - "exclusiveMinimum": -972783798187987123879878123.18878137 - }, - "tests": [ - { - "description": "comparison works for very negative numbers", - "data": -972783798187987123879878123.188781371, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/ecmascript-regex.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/ecmascript-regex.json deleted file mode 100644 index c4886aaa8..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/ecmascript-regex.json +++ /dev/null @@ -1,552 +0,0 @@ -[ - { - "description": "ECMA 262 regex $ does not match trailing newline", - "schema": { - "type": "string", - "pattern": "^abc$" - }, - "tests": [ - { - "description": "matches in Python, but not in ECMA 262", - "data": "abc\\n", - "valid": false - }, - { - "description": "matches", - "data": "abc", - "valid": true - } - ] - }, - { - "description": "ECMA 262 regex converts \\t to horizontal tab", - "schema": { - "type": "string", - "pattern": "^\\t$" - }, - "tests": [ - { - "description": "does not match", - "data": "\\t", - "valid": false - }, - { - "description": "matches", - "data": "\u0009", - "valid": true - } - ] - }, - { - "description": "ECMA 262 regex escapes control codes with \\c and upper letter", - "schema": { - "type": "string", - "pattern": "^\\cC$" - }, - "tests": [ - { - "description": "does not match", - "data": "\\cC", - "valid": false - }, - { - "description": "matches", - "data": "\u0003", - "valid": true - } - ] - }, - { - "description": "ECMA 262 regex escapes control codes with \\c and lower letter", - "schema": { - "type": "string", - "pattern": "^\\cc$" - }, - "tests": [ - { - "description": "does not match", - "data": "\\cc", - "valid": false - }, - { - "description": "matches", - "data": "\u0003", - "valid": true - } - ] - }, - { - "description": "ECMA 262 \\d matches ascii digits only", - "schema": { - "type": "string", - "pattern": "^\\d$" - }, - "tests": [ - { - "description": "ASCII zero matches", - "data": "0", - "valid": true - }, - { - "description": "NKO DIGIT ZERO does not match (unlike e.g. Python)", - "data": "߀", - "valid": false - }, - { - "description": "NKO DIGIT ZERO (as \\u escape) does not match", - "data": "\u07c0", - "valid": false - } - ] - }, - { - "description": "ECMA 262 \\D matches everything but ascii digits", - "schema": { - "type": "string", - "pattern": "^\\D$" - }, - "tests": [ - { - "description": "ASCII zero does not match", - "data": "0", - "valid": false - }, - { - "description": "NKO DIGIT ZERO matches (unlike e.g. Python)", - "data": "߀", - "valid": true - }, - { - "description": "NKO DIGIT ZERO (as \\u escape) matches", - "data": "\u07c0", - "valid": true - } - ] - }, - { - "description": "ECMA 262 \\w matches ascii letters only", - "schema": { - "type": "string", - "pattern": "^\\w$" - }, - "tests": [ - { - "description": "ASCII 'a' matches", - "data": "a", - "valid": true - }, - { - "description": "latin-1 e-acute does not match (unlike e.g. Python)", - "data": "é", - "valid": false - } - ] - }, - { - "description": "ECMA 262 \\W matches everything but ascii letters", - "schema": { - "type": "string", - "pattern": "^\\W$" - }, - "tests": [ - { - "description": "ASCII 'a' does not match", - "data": "a", - "valid": false - }, - { - "description": "latin-1 e-acute matches (unlike e.g. Python)", - "data": "é", - "valid": true - } - ] - }, - { - "description": "ECMA 262 \\s matches whitespace", - "schema": { - "type": "string", - "pattern": "^\\s$" - }, - "tests": [ - { - "description": "ASCII space matches", - "data": " ", - "valid": true - }, - { - "description": "Character tabulation matches", - "data": "\t", - "valid": true - }, - { - "description": "Line tabulation matches", - "data": "\u000b", - "valid": true - }, - { - "description": "Form feed matches", - "data": "\u000c", - "valid": true - }, - { - "description": "latin-1 non-breaking-space matches", - "data": "\u00a0", - "valid": true - }, - { - "description": "zero-width whitespace matches", - "data": "\ufeff", - "valid": true - }, - { - "description": "line feed matches (line terminator)", - "data": "\u000a", - "valid": true - }, - { - "description": "paragraph separator matches (line terminator)", - "data": "\u2029", - "valid": true - }, - { - "description": "EM SPACE matches (Space_Separator)", - "data": "\u2003", - "valid": true - }, - { - "description": "Non-whitespace control does not match", - "data": "\u0001", - "valid": false - }, - { - "description": "Non-whitespace does not match", - "data": "\u2013", - "valid": false - } - ] - }, - { - "description": "ECMA 262 \\S matches everything but whitespace", - "schema": { - "type": "string", - "pattern": "^\\S$" - }, - "tests": [ - { - "description": "ASCII space does not match", - "data": " ", - "valid": false - }, - { - "description": "Character tabulation does not match", - "data": "\t", - "valid": false - }, - { - "description": "Line tabulation does not match", - "data": "\u000b", - "valid": false - }, - { - "description": "Form feed does not match", - "data": "\u000c", - "valid": false - }, - { - "description": "latin-1 non-breaking-space does not match", - "data": "\u00a0", - "valid": false - }, - { - "description": "zero-width whitespace does not match", - "data": "\ufeff", - "valid": false - }, - { - "description": "line feed does not match (line terminator)", - "data": "\u000a", - "valid": false - }, - { - "description": "paragraph separator does not match (line terminator)", - "data": "\u2029", - "valid": false - }, - { - "description": "EM SPACE does not match (Space_Separator)", - "data": "\u2003", - "valid": false - }, - { - "description": "Non-whitespace control matches", - "data": "\u0001", - "valid": true - }, - { - "description": "Non-whitespace matches", - "data": "\u2013", - "valid": true - } - ] - }, - { - "description": "patterns always use unicode semantics with pattern", - "schema": { "pattern": "\\p{Letter}cole" }, - "tests": [ - { - "description": "ascii character in json string", - "data": "Les hivers de mon enfance etaient des saisons longues, longues. Nous vivions en trois lieux: l'ecole, l'eglise et la patinoire; mais la vraie vie etait sur la patinoire.", - "valid": true - }, - { - "description": "literal unicode character in json string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": true - }, - { - "description": "unicode character in hex format in string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'\u00e9cole, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": true - }, - { - "description": "unicode matching is case-sensitive", - "data": "LES HIVERS DE MON ENFANCE ÉTAIENT DES SAISONS LONGUES, LONGUES. NOUS VIVIONS EN TROIS LIEUX: L'ÉCOLE, L'ÉGLISE ET LA PATINOIRE; MAIS LA VRAIE VIE ÉTAIT SUR LA PATINOIRE.", - "valid": false - } - ] - }, - { - "description": "\\w in patterns matches [A-Za-z0-9_], not unicode letters", - "schema": { "pattern": "\\wcole" }, - "tests": [ - { - "description": "ascii character in json string", - "data": "Les hivers de mon enfance etaient des saisons longues, longues. Nous vivions en trois lieux: l'ecole, l'eglise et la patinoire; mais la vraie vie etait sur la patinoire.", - "valid": true - }, - { - "description": "literal unicode character in json string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": false - }, - { - "description": "unicode character in hex format in string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'\u00e9cole, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": false - }, - { - "description": "unicode matching is case-sensitive", - "data": "LES HIVERS DE MON ENFANCE ÉTAIENT DES SAISONS LONGUES, LONGUES. NOUS VIVIONS EN TROIS LIEUX: L'ÉCOLE, L'ÉGLISE ET LA PATINOIRE; MAIS LA VRAIE VIE ÉTAIT SUR LA PATINOIRE.", - "valid": false - } - ] - }, - { - "description": "pattern with ASCII ranges", - "schema": { "pattern": "[a-z]cole" }, - "tests": [ - { - "description": "literal unicode character in json string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": false - }, - { - "description": "unicode character in hex format in string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'\u00e9cole, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": false - }, - { - "description": "ascii characters match", - "data": "Les hivers de mon enfance etaient des saisons longues, longues. Nous vivions en trois lieux: l'ecole, l'eglise et la patinoire; mais la vraie vie etait sur la patinoire.", - "valid": true - } - ] - }, - { - "description": "\\d in pattern matches [0-9], not unicode digits", - "schema": { "pattern": "^\\d+$" }, - "tests": [ - { - "description": "ascii digits", - "data": "42", - "valid": true - }, - { - "description": "ascii non-digits", - "data": "-%#", - "valid": false - }, - { - "description": "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)", - "data": "৪২", - "valid": false - } - ] - }, - { - "description": "pattern with non-ASCII digits", - "schema": { "pattern": "^\\p{digit}+$" }, - "tests": [ - { - "description": "ascii digits", - "data": "42", - "valid": true - }, - { - "description": "ascii non-digits", - "data": "-%#", - "valid": false - }, - { - "description": "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)", - "data": "৪২", - "valid": true - } - ] - }, - { - "description": "patterns always use unicode semantics with patternProperties", - "schema": { - "type": "object", - "patternProperties": { - "\\p{Letter}cole": true - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "ascii character in json string", - "data": { "l'ecole": "pas de vraie vie" }, - "valid": true - }, - { - "description": "literal unicode character in json string", - "data": { "l'école": "pas de vraie vie" }, - "valid": true - }, - { - "description": "unicode character in hex format in string", - "data": { "l'\u00e9cole": "pas de vraie vie" }, - "valid": true - }, - { - "description": "unicode matching is case-sensitive", - "data": { "L'ÉCOLE": "PAS DE VRAIE VIE" }, - "valid": false - } - ] - }, - { - "description": "\\w in patternProperties matches [A-Za-z0-9_], not unicode letters", - "schema": { - "type": "object", - "patternProperties": { - "\\wcole": true - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "ascii character in json string", - "data": { "l'ecole": "pas de vraie vie" }, - "valid": true - }, - { - "description": "literal unicode character in json string", - "data": { "l'école": "pas de vraie vie" }, - "valid": false - }, - { - "description": "unicode character in hex format in string", - "data": { "l'\u00e9cole": "pas de vraie vie" }, - "valid": false - }, - { - "description": "unicode matching is case-sensitive", - "data": { "L'ÉCOLE": "PAS DE VRAIE VIE" }, - "valid": false - } - ] - }, - { - "description": "patternProperties with ASCII ranges", - "schema": { - "type": "object", - "patternProperties": { - "[a-z]cole": true - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "literal unicode character in json string", - "data": { "l'école": "pas de vraie vie" }, - "valid": false - }, - { - "description": "unicode character in hex format in string", - "data": { "l'\u00e9cole": "pas de vraie vie" }, - "valid": false - }, - { - "description": "ascii characters match", - "data": { "l'ecole": "pas de vraie vie" }, - "valid": true - } - ] - }, - { - "description": "\\d in patternProperties matches [0-9], not unicode digits", - "schema": { - "type": "object", - "patternProperties": { - "^\\d+$": true - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "ascii digits", - "data": { "42": "life, the universe, and everything" }, - "valid": true - }, - { - "description": "ascii non-digits", - "data": { "-%#": "spending the year dead for tax reasons" }, - "valid": false - }, - { - "description": "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)", - "data": { "৪২": "khajit has wares if you have coin" }, - "valid": false - } - ] - }, - { - "description": "patternProperties with non-ASCII digits", - "schema": { - "type": "object", - "patternProperties": { - "^\\p{digit}+$": true - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "ascii digits", - "data": { "42": "life, the universe, and everything" }, - "valid": true - }, - { - "description": "ascii non-digits", - "data": { "-%#": "spending the year dead for tax reasons" }, - "valid": false - }, - { - "description": "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)", - "data": { "৪২": "khajit has wares if you have coin" }, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/float-overflow.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/float-overflow.json deleted file mode 100644 index 52ff9827c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/float-overflow.json +++ /dev/null @@ -1,13 +0,0 @@ -[ - { - "description": "all integers are multiples of 0.5, if overflow is handled", - "schema": {"type": "integer", "multipleOf": 0.5}, - "tests": [ - { - "description": "valid if optional overflow handling is implemented", - "data": 1e308, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/format/date-time.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/format/date-time.json deleted file mode 100644 index 091127375..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/format/date-time.json +++ /dev/null @@ -1,133 +0,0 @@ -[ - { - "description": "validation of date-time strings", - "schema": { "format": "date-time" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid date-time string", - "data": "1963-06-19T08:30:06.283185Z", - "valid": true - }, - { - "description": "a valid date-time string without second fraction", - "data": "1963-06-19T08:30:06Z", - "valid": true - }, - { - "description": "a valid date-time string with plus offset", - "data": "1937-01-01T12:00:27.87+00:20", - "valid": true - }, - { - "description": "a valid date-time string with minus offset", - "data": "1990-12-31T15:59:50.123-08:00", - "valid": true - }, - { - "description": "a valid date-time with a leap second, UTC", - "data": "1998-12-31T23:59:60Z", - "valid": true - }, - { - "description": "a valid date-time with a leap second, with minus offset", - "data": "1998-12-31T15:59:60.123-08:00", - "valid": true - }, - { - "description": "an invalid date-time past leap second, UTC", - "data": "1998-12-31T23:59:61Z", - "valid": false - }, - { - "description": "an invalid date-time with leap second on a wrong minute, UTC", - "data": "1998-12-31T23:58:60Z", - "valid": false - }, - { - "description": "an invalid date-time with leap second on a wrong hour, UTC", - "data": "1998-12-31T22:59:60Z", - "valid": false - }, - { - "description": "an invalid day in date-time string", - "data": "1990-02-31T15:59:59.123-08:00", - "valid": false - }, - { - "description": "an invalid offset in date-time string", - "data": "1990-12-31T15:59:59-24:00", - "valid": false - }, - { - "description": "an invalid closing Z after time-zone offset", - "data": "1963-06-19T08:30:06.28123+01:00Z", - "valid": false - }, - { - "description": "an invalid date-time string", - "data": "06/19/1963 08:30:06 PST", - "valid": false - }, - { - "description": "case-insensitive T and Z", - "data": "1963-06-19t08:30:06.283185z", - "valid": true - }, - { - "description": "only RFC3339 not all of ISO 8601 are valid", - "data": "2013-350T01:01:01", - "valid": false - }, - { - "description": "invalid non-padded month dates", - "data": "1963-6-19T08:30:06.283185Z", - "valid": false - }, - { - "description": "invalid non-padded day dates", - "data": "1963-06-1T08:30:06.283185Z", - "valid": false - }, - { - "description": "invalid non-ASCII '৪' (a Bengali 4) in date portion", - "data": "1963-06-1৪T00:00:00Z", - "valid": false - }, - { - "description": "invalid non-ASCII '৪' (a Bengali 4) in time portion", - "data": "1963-06-11T0৪:00:00Z", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/format/email.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/format/email.json deleted file mode 100644 index d6761a46b..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/format/email.json +++ /dev/null @@ -1,83 +0,0 @@ -[ - { - "description": "validation of e-mail addresses", - "schema": { "format": "email" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid e-mail address", - "data": "joe.bloggs@example.com", - "valid": true - }, - { - "description": "an invalid e-mail address", - "data": "2962", - "valid": false - }, - { - "description": "tilde in local part is valid", - "data": "te~st@example.com", - "valid": true - }, - { - "description": "tilde before local part is valid", - "data": "~test@example.com", - "valid": true - }, - { - "description": "tilde after local part is valid", - "data": "test~@example.com", - "valid": true - }, - { - "description": "dot before local part is not valid", - "data": ".test@example.com", - "valid": false - }, - { - "description": "dot after local part is not valid", - "data": "test.@example.com", - "valid": false - }, - { - "description": "two separated dots inside local part are valid", - "data": "te.s.t@example.com", - "valid": true - }, - { - "description": "two subsequent dots inside local part are not valid", - "data": "te..st@example.com", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/format/hostname.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/format/hostname.json deleted file mode 100644 index a8ecd194f..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/format/hostname.json +++ /dev/null @@ -1,118 +0,0 @@ -[ - { - "description": "validation of host names", - "schema": { "format": "hostname" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid host name", - "data": "www.example.com", - "valid": true - }, - { - "description": "a valid punycoded IDN hostname", - "data": "xn--4gbwdl.xn--wgbh1c", - "valid": true - }, - { - "description": "a host name starting with an illegal character", - "data": "-a-host-name-that-starts-with--", - "valid": false - }, - { - "description": "a host name containing illegal characters", - "data": "not_a_valid_host_name", - "valid": false - }, - { - "description": "a host name with a component too long", - "data": "a-vvvvvvvvvvvvvvvveeeeeeeeeeeeeeeerrrrrrrrrrrrrrrryyyyyyyyyyyyyyyy-long-host-name-component", - "valid": false - }, - { - "description": "starts with hyphen", - "data": "-hostname", - "valid": false - }, - { - "description": "ends with hyphen", - "data": "hostname-", - "valid": false - }, - { - "description": "starts with underscore", - "data": "_hostname", - "valid": false - }, - { - "description": "ends with underscore", - "data": "hostname_", - "valid": false - }, - { - "description": "contains underscore", - "data": "host_name", - "valid": false - }, - { - "description": "maximum label length", - "data": "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijk.com", - "valid": true - }, - { - "description": "exceeds maximum label length", - "data": "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkl.com", - "valid": false - }, - { - "description": "single label", - "data": "hostname", - "valid": true - }, - { - "description": "single label with hyphen", - "data": "host-name", - "valid": true - }, - { - "description": "single label with digits", - "data": "h0stn4me", - "valid": true - }, - { - "description": "single label ending with digit", - "data": "hostnam3", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/format/ipv4.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/format/ipv4.json deleted file mode 100644 index 9680fe620..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/format/ipv4.json +++ /dev/null @@ -1,89 +0,0 @@ -[ - { - "description": "validation of IP addresses", - "schema": { "format": "ipv4" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid IP address", - "data": "192.168.0.1", - "valid": true - }, - { - "description": "an IP address with too many components", - "data": "127.0.0.0.1", - "valid": false - }, - { - "description": "an IP address with out-of-range values", - "data": "256.256.256.256", - "valid": false - }, - { - "description": "an IP address without 4 components", - "data": "127.0", - "valid": false - }, - { - "description": "an IP address as an integer", - "data": "0x7f000001", - "valid": false - }, - { - "description": "an IP address as an integer (decimal)", - "data": "2130706433", - "valid": false - }, - { - "description": "invalid leading zeroes, as they are treated as octals", - "comment": "see https://sick.codes/universal-netmask-npm-package-used-by-270000-projects-vulnerable-to-octal-input-data-server-side-request-forgery-remote-file-inclusion-local-file-inclusion-and-more-cve-2021-28918/", - "data": "087.10.0.1", - "valid": false - }, - { - "description": "value without leading zero is valid", - "data": "87.10.0.1", - "valid": true - }, - { - "description": "invalid non-ASCII '২' (a Bengali 2)", - "data": "1২7.0.0.1", - "valid": false - }, - { - "description": "netmask is not a part of ipv4 address", - "data": "192.168.1.0/24", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/format/ipv6.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/format/ipv6.json deleted file mode 100644 index 94368f2a0..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/format/ipv6.json +++ /dev/null @@ -1,208 +0,0 @@ -[ - { - "description": "validation of IPv6 addresses", - "schema": { "format": "ipv6" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid IPv6 address", - "data": "::1", - "valid": true - }, - { - "description": "an IPv6 address with out-of-range values", - "data": "12345::", - "valid": false - }, - { - "description": "trailing 4 hex symbols is valid", - "data": "::abef", - "valid": true - }, - { - "description": "trailing 5 hex symbols is invalid", - "data": "::abcef", - "valid": false - }, - { - "description": "an IPv6 address with too many components", - "data": "1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1", - "valid": false - }, - { - "description": "an IPv6 address containing illegal characters", - "data": "::laptop", - "valid": false - }, - { - "description": "no digits is valid", - "data": "::", - "valid": true - }, - { - "description": "leading colons is valid", - "data": "::42:ff:1", - "valid": true - }, - { - "description": "trailing colons is valid", - "data": "d6::", - "valid": true - }, - { - "description": "missing leading octet is invalid", - "data": ":2:3:4:5:6:7:8", - "valid": false - }, - { - "description": "missing trailing octet is invalid", - "data": "1:2:3:4:5:6:7:", - "valid": false - }, - { - "description": "missing leading octet with omitted octets later", - "data": ":2:3:4::8", - "valid": false - }, - { - "description": "single set of double colons in the middle is valid", - "data": "1:d6::42", - "valid": true - }, - { - "description": "two sets of double colons is invalid", - "data": "1::d6::42", - "valid": false - }, - { - "description": "mixed format with the ipv4 section as decimal octets", - "data": "1::d6:192.168.0.1", - "valid": true - }, - { - "description": "mixed format with double colons between the sections", - "data": "1:2::192.168.0.1", - "valid": true - }, - { - "description": "mixed format with ipv4 section with octet out of range", - "data": "1::2:192.168.256.1", - "valid": false - }, - { - "description": "mixed format with ipv4 section with a hex octet", - "data": "1::2:192.168.ff.1", - "valid": false - }, - { - "description": "mixed format with leading double colons (ipv4-mapped ipv6 address)", - "data": "::ffff:192.168.0.1", - "valid": true - }, - { - "description": "triple colons is invalid", - "data": "1:2:3:4:5:::8", - "valid": false - }, - { - "description": "8 octets", - "data": "1:2:3:4:5:6:7:8", - "valid": true - }, - { - "description": "insufficient octets without double colons", - "data": "1:2:3:4:5:6:7", - "valid": false - }, - { - "description": "no colons is invalid", - "data": "1", - "valid": false - }, - { - "description": "ipv4 is not ipv6", - "data": "127.0.0.1", - "valid": false - }, - { - "description": "ipv4 segment must have 4 octets", - "data": "1:2:3:4:1.2.3", - "valid": false - }, - { - "description": "leading whitespace is invalid", - "data": " ::1", - "valid": false - }, - { - "description": "trailing whitespace is invalid", - "data": "::1 ", - "valid": false - }, - { - "description": "netmask is not a part of ipv6 address", - "data": "fe80::/64", - "valid": false - }, - { - "description": "zone id is not a part of ipv6 address", - "data": "fe80::a%eth1", - "valid": false - }, - { - "description": "a long valid ipv6", - "data": "1000:1000:1000:1000:1000:1000:255.255.255.255", - "valid": true - }, - { - "description": "a long invalid ipv6, below length limit, first", - "data": "100:100:100:100:100:100:255.255.255.255.255", - "valid": false - }, - { - "description": "a long invalid ipv6, below length limit, second", - "data": "100:100:100:100:100:100:100:255.255.255.255", - "valid": false - }, - { - "description": "invalid non-ASCII '৪' (a Bengali 4)", - "data": "1:2:3:4:5:6:7:৪", - "valid": false - }, - { - "description": "invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion", - "data": "1:2::192.16৪.0.1", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/format/json-pointer.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/format/json-pointer.json deleted file mode 100644 index a0346b575..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/format/json-pointer.json +++ /dev/null @@ -1,198 +0,0 @@ -[ - { - "description": "validation of JSON-pointers (JSON String Representation)", - "schema": { "format": "json-pointer" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid JSON-pointer", - "data": "/foo/bar~0/baz~1/%a", - "valid": true - }, - { - "description": "not a valid JSON-pointer (~ not escaped)", - "data": "/foo/bar~", - "valid": false - }, - { - "description": "valid JSON-pointer with empty segment", - "data": "/foo//bar", - "valid": true - }, - { - "description": "valid JSON-pointer with the last empty segment", - "data": "/foo/bar/", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #1", - "data": "", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #2", - "data": "/foo", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #3", - "data": "/foo/0", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #4", - "data": "/", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #5", - "data": "/a~1b", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #6", - "data": "/c%d", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #7", - "data": "/e^f", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #8", - "data": "/g|h", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #9", - "data": "/i\\j", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #10", - "data": "/k\"l", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #11", - "data": "/ ", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #12", - "data": "/m~0n", - "valid": true - }, - { - "description": "valid JSON-pointer used adding to the last array position", - "data": "/foo/-", - "valid": true - }, - { - "description": "valid JSON-pointer (- used as object member name)", - "data": "/foo/-/bar", - "valid": true - }, - { - "description": "valid JSON-pointer (multiple escaped characters)", - "data": "/~1~0~0~1~1", - "valid": true - }, - { - "description": "valid JSON-pointer (escaped with fraction part) #1", - "data": "/~1.1", - "valid": true - }, - { - "description": "valid JSON-pointer (escaped with fraction part) #2", - "data": "/~0.1", - "valid": true - }, - { - "description": "not a valid JSON-pointer (URI Fragment Identifier) #1", - "data": "#", - "valid": false - }, - { - "description": "not a valid JSON-pointer (URI Fragment Identifier) #2", - "data": "#/", - "valid": false - }, - { - "description": "not a valid JSON-pointer (URI Fragment Identifier) #3", - "data": "#a", - "valid": false - }, - { - "description": "not a valid JSON-pointer (some escaped, but not all) #1", - "data": "/~0~", - "valid": false - }, - { - "description": "not a valid JSON-pointer (some escaped, but not all) #2", - "data": "/~0/~", - "valid": false - }, - { - "description": "not a valid JSON-pointer (wrong escape character) #1", - "data": "/~2", - "valid": false - }, - { - "description": "not a valid JSON-pointer (wrong escape character) #2", - "data": "/~-1", - "valid": false - }, - { - "description": "not a valid JSON-pointer (multiple characters not escaped)", - "data": "/~~", - "valid": false - }, - { - "description": "not a valid JSON-pointer (isn't empty nor starts with /) #1", - "data": "a", - "valid": false - }, - { - "description": "not a valid JSON-pointer (isn't empty nor starts with /) #2", - "data": "0", - "valid": false - }, - { - "description": "not a valid JSON-pointer (isn't empty nor starts with /) #3", - "data": "a/a", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/format/unknown.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/format/unknown.json deleted file mode 100644 index 12339ae57..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/format/unknown.json +++ /dev/null @@ -1,43 +0,0 @@ -[ - { - "description": "unknown format", - "schema": { "format": "unknown" }, - "tests": [ - { - "description": "unknown formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "unknown formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "unknown formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "unknown formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "unknown formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "unknown formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "unknown formats ignore strings", - "data": "string", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/format/uri-reference.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/format/uri-reference.json deleted file mode 100644 index 7cdf228d8..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/format/uri-reference.json +++ /dev/null @@ -1,73 +0,0 @@ -[ - { - "description": "validation of URI References", - "schema": { "format": "uri-reference" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid URI", - "data": "http://foo.bar/?baz=qux#quux", - "valid": true - }, - { - "description": "a valid protocol-relative URI Reference", - "data": "//foo.bar/?baz=qux#quux", - "valid": true - }, - { - "description": "a valid relative URI Reference", - "data": "/abc", - "valid": true - }, - { - "description": "an invalid URI Reference", - "data": "\\\\WINDOWS\\fileshare", - "valid": false - }, - { - "description": "a valid URI Reference", - "data": "abc", - "valid": true - }, - { - "description": "a valid URI fragment", - "data": "#fragment", - "valid": true - }, - { - "description": "an invalid URI fragment", - "data": "#frag\\ment", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/format/uri-template.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/format/uri-template.json deleted file mode 100644 index df355c55a..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/format/uri-template.json +++ /dev/null @@ -1,58 +0,0 @@ -[ - { - "description": "format: uri-template", - "schema": { "format": "uri-template" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid uri-template", - "data": "http://example.com/dictionary/{term:1}/{term}", - "valid": true - }, - { - "description": "an invalid uri-template", - "data": "http://example.com/dictionary/{term:1}/{term", - "valid": false - }, - { - "description": "a valid uri-template without variables", - "data": "http://example.com/dictionary", - "valid": true - }, - { - "description": "a valid relative uri-template", - "data": "dictionary/{term:1}/{term}", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/format/uri.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/format/uri.json deleted file mode 100644 index 4b48d4060..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/format/uri.json +++ /dev/null @@ -1,138 +0,0 @@ -[ - { - "description": "validation of URIs", - "schema": { "format": "uri" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid URL with anchor tag", - "data": "http://foo.bar/?baz=qux#quux", - "valid": true - }, - { - "description": "a valid URL with anchor tag and parentheses", - "data": "http://foo.com/blah_(wikipedia)_blah#cite-1", - "valid": true - }, - { - "description": "a valid URL with URL-encoded stuff", - "data": "http://foo.bar/?q=Test%20URL-encoded%20stuff", - "valid": true - }, - { - "description": "a valid puny-coded URL ", - "data": "http://xn--nw2a.xn--j6w193g/", - "valid": true - }, - { - "description": "a valid URL with many special characters", - "data": "http://-.~_!$&'()*+,;=:%40:80%2f::::::@example.com", - "valid": true - }, - { - "description": "a valid URL based on IPv4", - "data": "http://223.255.255.254", - "valid": true - }, - { - "description": "a valid URL with ftp scheme", - "data": "ftp://ftp.is.co.za/rfc/rfc1808.txt", - "valid": true - }, - { - "description": "a valid URL for a simple text file", - "data": "http://www.ietf.org/rfc/rfc2396.txt", - "valid": true - }, - { - "description": "a valid URL ", - "data": "ldap://[2001:db8::7]/c=GB?objectClass?one", - "valid": true - }, - { - "description": "a valid mailto URI", - "data": "mailto:John.Doe@example.com", - "valid": true - }, - { - "description": "a valid newsgroup URI", - "data": "news:comp.infosystems.www.servers.unix", - "valid": true - }, - { - "description": "a valid tel URI", - "data": "tel:+1-816-555-1212", - "valid": true - }, - { - "description": "a valid URN", - "data": "urn:oasis:names:specification:docbook:dtd:xml:4.1.2", - "valid": true - }, - { - "description": "an invalid protocol-relative URI Reference", - "data": "//foo.bar/?baz=qux#quux", - "valid": false - }, - { - "description": "an invalid relative URI Reference", - "data": "/abc", - "valid": false - }, - { - "description": "an invalid URI", - "data": "\\\\WINDOWS\\fileshare", - "valid": false - }, - { - "description": "an invalid URI though valid URI reference", - "data": "abc", - "valid": false - }, - { - "description": "an invalid URI with spaces", - "data": "http:// shouldfail.com", - "valid": false - }, - { - "description": "an invalid URI with spaces and missing scheme", - "data": ":// should fail", - "valid": false - }, - { - "description": "an invalid URI with comma in scheme", - "data": "bar,baz:foo", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/id.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/id.json deleted file mode 100644 index 03d30fcb4..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/id.json +++ /dev/null @@ -1,134 +0,0 @@ -[ - { - "description": "id inside an enum is not a real identifier", - "comment": "the implementation must not be confused by an id buried in the enum", - "schema": { - "definitions": { - "id_in_enum": { - "enum": [ - { - "$id": "https://localhost:1234/id/my_identifier.json", - "type": "null" - } - ] - }, - "real_id_in_schema": { - "$id": "https://localhost:1234/id/my_identifier.json", - "type": "string" - }, - "zzz_id_in_const": { - "const": { - "$id": "https://localhost:1234/id/my_identifier.json", - "type": "null" - } - } - }, - "anyOf": [ - { "$ref": "#/definitions/id_in_enum" }, - { "$ref": "https://localhost:1234/id/my_identifier.json" } - ] - }, - "tests": [ - { - "description": "exact match to enum, and type matches", - "data": { - "$id": "https://localhost:1234/id/my_identifier.json", - "type": "null" - }, - "valid": true - }, - { - "description": "match $ref to id", - "data": "a string to match #/definitions/id_in_enum", - "valid": true - }, - { - "description": "no match on enum or $ref to id", - "data": 1, - "valid": false - } - ] - }, - { - "description": "non-schema object containing a plain-name $id property", - "schema": { - "definitions": { - "const_not_anchor": { - "const": { - "$id": "#not_a_real_anchor" - } - } - }, - "oneOf": [ - { - "const": "skip not_a_real_anchor" - }, - { - "allOf": [ - { - "not": { - "const": "skip not_a_real_anchor" - } - }, - { - "$ref": "#/definitions/const_not_anchor" - } - ] - } - ] - }, - "tests": [ - { - "description": "skip traversing definition for a valid result", - "data": "skip not_a_real_anchor", - "valid": true - }, - { - "description": "const at const_not_anchor does not match", - "data": 1, - "valid": false - } - ] - }, - { - "description": "non-schema object containing an $id property", - "schema": { - "definitions": { - "const_not_id": { - "const": { - "$id": "not_a_real_id" - } - } - }, - "oneOf": [ - { - "const":"skip not_a_real_id" - }, - { - "allOf": [ - { - "not": { - "const": "skip not_a_real_id" - } - }, - { - "$ref": "#/definitions/const_not_id" - } - ] - } - ] - }, - "tests": [ - { - "description": "skip traversing definition for a valid result", - "data": "skip not_a_real_id", - "valid": true - }, - { - "description": "const at const_not_id does not match", - "data": 1, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/non-bmp-regex.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/non-bmp-regex.json deleted file mode 100644 index dd67af2b2..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/non-bmp-regex.json +++ /dev/null @@ -1,82 +0,0 @@ -[ - { - "description": "Proper UTF-16 surrogate pair handling: pattern", - "comment": "Optional because .Net doesn't correctly handle 32-bit Unicode characters", - "schema": { "pattern": "^🐲*$" }, - "tests": [ - { - "description": "matches empty", - "data": "", - "valid": true - }, - { - "description": "matches single", - "data": "🐲", - "valid": true - }, - { - "description": "matches two", - "data": "🐲🐲", - "valid": true - }, - { - "description": "doesn't match one", - "data": "🐉", - "valid": false - }, - { - "description": "doesn't match two", - "data": "🐉🐉", - "valid": false - }, - { - "description": "doesn't match one ASCII", - "data": "D", - "valid": false - }, - { - "description": "doesn't match two ASCII", - "data": "DD", - "valid": false - } - ] - }, - { - "description": "Proper UTF-16 surrogate pair handling: patternProperties", - "comment": "Optional because .Net doesn't correctly handle 32-bit Unicode characters", - "schema": { - "patternProperties": { - "^🐲*$": { - "type": "integer" - } - } - }, - "tests": [ - { - "description": "matches empty", - "data": { "": 1 }, - "valid": true - }, - { - "description": "matches single", - "data": { "🐲": 1 }, - "valid": true - }, - { - "description": "matches two", - "data": { "🐲🐲": 1 }, - "valid": true - }, - { - "description": "doesn't match one", - "data": { "🐲": "hello" }, - "valid": false - }, - { - "description": "doesn't match two", - "data": { "🐲🐲": "hello" }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/unknownKeyword.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/unknownKeyword.json deleted file mode 100644 index 1f58d97e3..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/optional/unknownKeyword.json +++ /dev/null @@ -1,56 +0,0 @@ -[ - { - "description": "$id inside an unknown keyword is not a real identifier", - "comment": "the implementation must not be confused by an $id in locations we do not know how to parse", - "schema": { - "definitions": { - "id_in_unknown0": { - "not": { - "array_of_schemas": [ - { - "$id": "https://localhost:1234/unknownKeyword/my_identifier.json", - "type": "null" - } - ] - } - }, - "real_id_in_schema": { - "$id": "https://localhost:1234/unknownKeyword/my_identifier.json", - "type": "string" - }, - "id_in_unknown1": { - "not": { - "object_of_schemas": { - "foo": { - "$id": "https://localhost:1234/unknownKeyword/my_identifier.json", - "type": "integer" - } - } - } - } - }, - "anyOf": [ - { "$ref": "#/definitions/id_in_unknown0" }, - { "$ref": "#/definitions/id_in_unknown1" }, - { "$ref": "https://localhost:1234/unknownKeyword/my_identifier.json" } - ] - }, - "tests": [ - { - "description": "type matches second anyOf, which has a real schema in it", - "data": "a string", - "valid": true - }, - { - "description": "type matches non-schema in first anyOf", - "data": null, - "valid": false - }, - { - "description": "type matches non-schema in third anyOf", - "data": 1, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/pattern.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/pattern.json deleted file mode 100644 index 92db0f971..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/pattern.json +++ /dev/null @@ -1,59 +0,0 @@ -[ - { - "description": "pattern validation", - "schema": {"pattern": "^a*$"}, - "tests": [ - { - "description": "a matching pattern is valid", - "data": "aaa", - "valid": true - }, - { - "description": "a non-matching pattern is invalid", - "data": "abc", - "valid": false - }, - { - "description": "ignores booleans", - "data": true, - "valid": true - }, - { - "description": "ignores integers", - "data": 123, - "valid": true - }, - { - "description": "ignores floats", - "data": 1.0, - "valid": true - }, - { - "description": "ignores objects", - "data": {}, - "valid": true - }, - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores null", - "data": null, - "valid": true - } - ] - }, - { - "description": "pattern is not anchored", - "schema": {"pattern": "a+"}, - "tests": [ - { - "description": "matches a substring", - "data": "xxaayy", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/patternProperties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/patternProperties.json deleted file mode 100644 index c276e6479..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/patternProperties.json +++ /dev/null @@ -1,171 +0,0 @@ -[ - { - "description": - "patternProperties validates properties matching a regex", - "schema": { - "patternProperties": { - "f.*o": {"type": "integer"} - } - }, - "tests": [ - { - "description": "a single valid match is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "multiple valid matches is valid", - "data": {"foo": 1, "foooooo" : 2}, - "valid": true - }, - { - "description": "a single invalid match is invalid", - "data": {"foo": "bar", "fooooo": 2}, - "valid": false - }, - { - "description": "multiple invalid matches is invalid", - "data": {"foo": "bar", "foooooo" : "baz"}, - "valid": false - }, - { - "description": "ignores arrays", - "data": ["foo"], - "valid": true - }, - { - "description": "ignores strings", - "data": "foo", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "multiple simultaneous patternProperties are validated", - "schema": { - "patternProperties": { - "a*": {"type": "integer"}, - "aaa*": {"maximum": 20} - } - }, - "tests": [ - { - "description": "a single valid match is valid", - "data": {"a": 21}, - "valid": true - }, - { - "description": "a simultaneous match is valid", - "data": {"aaaa": 18}, - "valid": true - }, - { - "description": "multiple matches is valid", - "data": {"a": 21, "aaaa": 18}, - "valid": true - }, - { - "description": "an invalid due to one is invalid", - "data": {"a": "bar"}, - "valid": false - }, - { - "description": "an invalid due to the other is invalid", - "data": {"aaaa": 31}, - "valid": false - }, - { - "description": "an invalid due to both is invalid", - "data": {"aaa": "foo", "aaaa": 31}, - "valid": false - } - ] - }, - { - "description": "regexes are not anchored by default and are case sensitive", - "schema": { - "patternProperties": { - "[0-9]{2,}": { "type": "boolean" }, - "X_": { "type": "string" } - } - }, - "tests": [ - { - "description": "non recognized members are ignored", - "data": { "answer 1": "42" }, - "valid": true - }, - { - "description": "recognized members are accounted for", - "data": { "a31b": null }, - "valid": false - }, - { - "description": "regexes are case sensitive", - "data": { "a_x_3": 3 }, - "valid": true - }, - { - "description": "regexes are case sensitive, 2", - "data": { "a_X_3": 3 }, - "valid": false - } - ] - }, - { - "description": "patternProperties with boolean schemas", - "schema": { - "patternProperties": { - "f.*": true, - "b.*": false - } - }, - "tests": [ - { - "description": "object with property matching schema true is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "object with property matching schema false is invalid", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "object with both properties is invalid", - "data": {"foo": 1, "bar": 2}, - "valid": false - }, - { - "description": "object with a property matching both true and false is invalid", - "data": {"foobar":1}, - "valid": false - }, - { - "description": "empty object is valid", - "data": {}, - "valid": true - } - ] - }, - { - "description": "patternProperties with null valued instance properties", - "schema": { - "patternProperties": { - "^.*bar$": {"type": "null"} - } - }, - "tests": [ - { - "description": "allows null values", - "data": {"foobar": null}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/properties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/properties.json deleted file mode 100644 index 5b971ca0e..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/properties.json +++ /dev/null @@ -1,236 +0,0 @@ -[ - { - "description": "object properties validation", - "schema": { - "properties": { - "foo": {"type": "integer"}, - "bar": {"type": "string"} - } - }, - "tests": [ - { - "description": "both properties present and valid is valid", - "data": {"foo": 1, "bar": "baz"}, - "valid": true - }, - { - "description": "one property invalid is invalid", - "data": {"foo": 1, "bar": {}}, - "valid": false - }, - { - "description": "both properties invalid is invalid", - "data": {"foo": [], "bar": {}}, - "valid": false - }, - { - "description": "doesn't invalidate other properties", - "data": {"quux": []}, - "valid": true - }, - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": - "properties, patternProperties, additionalProperties interaction", - "schema": { - "properties": { - "foo": {"type": "array", "maxItems": 3}, - "bar": {"type": "array"} - }, - "patternProperties": {"f.o": {"minItems": 2}}, - "additionalProperties": {"type": "integer"} - }, - "tests": [ - { - "description": "property validates property", - "data": {"foo": [1, 2]}, - "valid": true - }, - { - "description": "property invalidates property", - "data": {"foo": [1, 2, 3, 4]}, - "valid": false - }, - { - "description": "patternProperty invalidates property", - "data": {"foo": []}, - "valid": false - }, - { - "description": "patternProperty validates nonproperty", - "data": {"fxo": [1, 2]}, - "valid": true - }, - { - "description": "patternProperty invalidates nonproperty", - "data": {"fxo": []}, - "valid": false - }, - { - "description": "additionalProperty ignores property", - "data": {"bar": []}, - "valid": true - }, - { - "description": "additionalProperty validates others", - "data": {"quux": 3}, - "valid": true - }, - { - "description": "additionalProperty invalidates others", - "data": {"quux": "foo"}, - "valid": false - } - ] - }, - { - "description": "properties with boolean schema", - "schema": { - "properties": { - "foo": true, - "bar": false - } - }, - "tests": [ - { - "description": "no property present is valid", - "data": {}, - "valid": true - }, - { - "description": "only 'true' property present is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "only 'false' property present is invalid", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "both properties present is invalid", - "data": {"foo": 1, "bar": 2}, - "valid": false - } - ] - }, - { - "description": "properties with escaped characters", - "schema": { - "properties": { - "foo\nbar": {"type": "number"}, - "foo\"bar": {"type": "number"}, - "foo\\bar": {"type": "number"}, - "foo\rbar": {"type": "number"}, - "foo\tbar": {"type": "number"}, - "foo\fbar": {"type": "number"} - } - }, - "tests": [ - { - "description": "object with all numbers is valid", - "data": { - "foo\nbar": 1, - "foo\"bar": 1, - "foo\\bar": 1, - "foo\rbar": 1, - "foo\tbar": 1, - "foo\fbar": 1 - }, - "valid": true - }, - { - "description": "object with strings is invalid", - "data": { - "foo\nbar": "1", - "foo\"bar": "1", - "foo\\bar": "1", - "foo\rbar": "1", - "foo\tbar": "1", - "foo\fbar": "1" - }, - "valid": false - } - ] - }, - { - "description": "properties with null valued instance properties", - "schema": { - "properties": { - "foo": {"type": "null"} - } - }, - "tests": [ - { - "description": "allows null values", - "data": {"foo": null}, - "valid": true - } - ] - }, - { - "description": "properties whose names are Javascript object property names", - "comment": "Ensure JS implementations don't universally consider e.g. __proto__ to always be present in an object.", - "schema": { - "properties": { - "__proto__": {"type": "number"}, - "toString": { - "properties": { "length": { "type": "string" } } - }, - "constructor": {"type": "number"} - } - }, - "tests": [ - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - }, - { - "description": "none of the properties mentioned", - "data": {}, - "valid": true - }, - { - "description": "__proto__ not valid", - "data": { "__proto__": "foo" }, - "valid": false - }, - { - "description": "toString not valid", - "data": { "toString": { "length": 37 } }, - "valid": false - }, - { - "description": "constructor not valid", - "data": { "constructor": { "length": 37 } }, - "valid": false - }, - { - "description": "all present and valid", - "data": { - "__proto__": 12, - "toString": { "length": "foo" }, - "constructor": 37 - }, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/propertyNames.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/propertyNames.json deleted file mode 100644 index f0788e649..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/propertyNames.json +++ /dev/null @@ -1,107 +0,0 @@ -[ - { - "description": "propertyNames validation", - "schema": { - "propertyNames": {"maxLength": 3} - }, - "tests": [ - { - "description": "all property names valid", - "data": { - "f": {}, - "foo": {} - }, - "valid": true - }, - { - "description": "some property names invalid", - "data": { - "foo": {}, - "foobar": {} - }, - "valid": false - }, - { - "description": "object without properties is valid", - "data": {}, - "valid": true - }, - { - "description": "ignores arrays", - "data": [1, 2, 3, 4], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobar", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "propertyNames validation with pattern", - "schema": { - "propertyNames": { "pattern": "^a+$" } - }, - "tests": [ - { - "description": "matching property names valid", - "data": { - "a": {}, - "aa": {}, - "aaa": {} - }, - "valid": true - }, - { - "description": "non-matching property name is invalid", - "data": { - "aaA": {} - }, - "valid": false - }, - { - "description": "object without properties is valid", - "data": {}, - "valid": true - } - ] - }, - { - "description": "propertyNames with boolean schema true", - "schema": {"propertyNames": true}, - "tests": [ - { - "description": "object with any properties is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "empty object is valid", - "data": {}, - "valid": true - } - ] - }, - { - "description": "propertyNames with boolean schema false", - "schema": {"propertyNames": false}, - "tests": [ - { - "description": "object with any properties is invalid", - "data": {"foo": 1}, - "valid": false - }, - { - "description": "empty object is valid", - "data": {}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/ref.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/ref.json deleted file mode 100644 index 379322c71..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/ref.json +++ /dev/null @@ -1,929 +0,0 @@ -[ - { - "description": "root pointer ref", - "schema": { - "properties": { - "foo": {"$ref": "#"} - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "match", - "data": {"foo": false}, - "valid": true - }, - { - "description": "recursive match", - "data": {"foo": {"foo": false}}, - "valid": true - }, - { - "description": "mismatch", - "data": {"bar": false}, - "valid": false - }, - { - "description": "recursive mismatch", - "data": {"foo": {"bar": false}}, - "valid": false - } - ] - }, - { - "description": "relative pointer ref to object", - "schema": { - "properties": { - "foo": {"type": "integer"}, - "bar": {"$ref": "#/properties/foo"} - } - }, - "tests": [ - { - "description": "match", - "data": {"bar": 3}, - "valid": true - }, - { - "description": "mismatch", - "data": {"bar": true}, - "valid": false - } - ] - }, - { - "description": "relative pointer ref to array", - "schema": { - "items": [ - {"type": "integer"}, - {"$ref": "#/items/0"} - ] - }, - "tests": [ - { - "description": "match array", - "data": [1, 2], - "valid": true - }, - { - "description": "mismatch array", - "data": [1, "foo"], - "valid": false - } - ] - }, - { - "description": "escaped pointer ref", - "schema": { - "definitions": { - "tilde~field": {"type": "integer"}, - "slash/field": {"type": "integer"}, - "percent%field": {"type": "integer"} - }, - "properties": { - "tilde": {"$ref": "#/definitions/tilde~0field"}, - "slash": {"$ref": "#/definitions/slash~1field"}, - "percent": {"$ref": "#/definitions/percent%25field"} - } - }, - "tests": [ - { - "description": "slash invalid", - "data": {"slash": "aoeu"}, - "valid": false - }, - { - "description": "tilde invalid", - "data": {"tilde": "aoeu"}, - "valid": false - }, - { - "description": "percent invalid", - "data": {"percent": "aoeu"}, - "valid": false - }, - { - "description": "slash valid", - "data": {"slash": 123}, - "valid": true - }, - { - "description": "tilde valid", - "data": {"tilde": 123}, - "valid": true - }, - { - "description": "percent valid", - "data": {"percent": 123}, - "valid": true - } - ] - }, - { - "description": "nested refs", - "schema": { - "definitions": { - "a": {"type": "integer"}, - "b": {"$ref": "#/definitions/a"}, - "c": {"$ref": "#/definitions/b"} - }, - "allOf": [{ "$ref": "#/definitions/c" }] - }, - "tests": [ - { - "description": "nested ref valid", - "data": 5, - "valid": true - }, - { - "description": "nested ref invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "ref overrides any sibling keywords", - "schema": { - "definitions": { - "reffed": { - "type": "array" - } - }, - "properties": { - "foo": { - "$ref": "#/definitions/reffed", - "maxItems": 2 - } - } - }, - "tests": [ - { - "description": "ref valid", - "data": { "foo": [] }, - "valid": true - }, - { - "description": "ref valid, maxItems ignored", - "data": { "foo": [ 1, 2, 3] }, - "valid": true - }, - { - "description": "ref invalid", - "data": { "foo": "string" }, - "valid": false - } - ] - }, - { - "description": "$ref prevents a sibling $id from changing the base uri", - "schema": { - "$id": "http://localhost:1234/sibling_id/base/", - "definitions": { - "foo": { - "$id": "http://localhost:1234/sibling_id/foo.json", - "type": "string" - }, - "base_foo": { - "$comment": "this canonical uri is http://localhost:1234/sibling_id/base/foo.json", - "$id": "foo.json", - "type": "number" - } - }, - "allOf": [ - { - "$comment": "$ref resolves to http://localhost:1234/sibling_id/base/foo.json, not http://localhost:1234/sibling_id/foo.json", - "$id": "http://localhost:1234/sibling_id/", - "$ref": "foo.json" - } - ] - }, - "tests": [ - { - "description": "$ref resolves to /definitions/base_foo, data does not validate", - "data": "a", - "valid": false - }, - { - "description": "$ref resolves to /definitions/base_foo, data validates", - "data": 1, - "valid": true - } - ] - }, - { - "description": "remote ref, containing refs itself", - "schema": {"$ref": "http://json-schema.org/draft-06/schema#"}, - "tests": [ - { - "description": "remote ref valid", - "data": {"minLength": 1}, - "valid": true - }, - { - "description": "remote ref invalid", - "data": {"minLength": -1}, - "valid": false - } - ] - }, - { - "description": "property named $ref that is not a reference", - "schema": { - "properties": { - "$ref": {"type": "string"} - } - }, - "tests": [ - { - "description": "property named $ref valid", - "data": {"$ref": "a"}, - "valid": true - }, - { - "description": "property named $ref invalid", - "data": {"$ref": 2}, - "valid": false - } - ] - }, - { - "description": "property named $ref, containing an actual $ref", - "schema": { - "properties": { - "$ref": {"$ref": "#/definitions/is-string"} - }, - "definitions": { - "is-string": { - "type": "string" - } - } - }, - "tests": [ - { - "description": "property named $ref valid", - "data": {"$ref": "a"}, - "valid": true - }, - { - "description": "property named $ref invalid", - "data": {"$ref": 2}, - "valid": false - } - ] - }, - { - "description": "$ref to boolean schema true", - "schema": { - "allOf": [{ "$ref": "#/definitions/bool" }], - "definitions": { - "bool": true - } - }, - "tests": [ - { - "description": "any value is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "$ref to boolean schema false", - "schema": { - "allOf": [{ "$ref": "#/definitions/bool" }], - "definitions": { - "bool": false - } - }, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "Recursive references between schemas", - "schema": { - "$id": "http://localhost:1234/tree", - "description": "tree of nodes", - "type": "object", - "properties": { - "meta": {"type": "string"}, - "nodes": { - "type": "array", - "items": {"$ref": "node"} - } - }, - "required": ["meta", "nodes"], - "definitions": { - "node": { - "$id": "http://localhost:1234/node", - "description": "node", - "type": "object", - "properties": { - "value": {"type": "number"}, - "subtree": {"$ref": "tree"} - }, - "required": ["value"] - } - } - }, - "tests": [ - { - "description": "valid tree", - "data": { - "meta": "root", - "nodes": [ - { - "value": 1, - "subtree": { - "meta": "child", - "nodes": [ - {"value": 1.1}, - {"value": 1.2} - ] - } - }, - { - "value": 2, - "subtree": { - "meta": "child", - "nodes": [ - {"value": 2.1}, - {"value": 2.2} - ] - } - } - ] - }, - "valid": true - }, - { - "description": "invalid tree", - "data": { - "meta": "root", - "nodes": [ - { - "value": 1, - "subtree": { - "meta": "child", - "nodes": [ - {"value": "string is invalid"}, - {"value": 1.2} - ] - } - }, - { - "value": 2, - "subtree": { - "meta": "child", - "nodes": [ - {"value": 2.1}, - {"value": 2.2} - ] - } - } - ] - }, - "valid": false - } - ] - }, - { - "description": "refs with quote", - "schema": { - "properties": { - "foo\"bar": {"$ref": "#/definitions/foo%22bar"} - }, - "definitions": { - "foo\"bar": {"type": "number"} - } - }, - "tests": [ - { - "description": "object with numbers is valid", - "data": { - "foo\"bar": 1 - }, - "valid": true - }, - { - "description": "object with strings is invalid", - "data": { - "foo\"bar": "1" - }, - "valid": false - } - ] - }, - { - "description": "Location-independent identifier", - "schema": { - "allOf": [{ - "$ref": "#foo" - }], - "definitions": { - "A": { - "$id": "#foo", - "type": "integer" - } - } - }, - "tests": [ - { - "data": 1, - "description": "match", - "valid": true - }, - { - "data": "a", - "description": "mismatch", - "valid": false - } - ] - }, - { - "description": "Reference an anchor with a non-relative URI", - "schema": { - "$id": "https://example.com/schema-with-anchor", - "allOf": [{ - "$ref": "https://example.com/schema-with-anchor#foo" - }], - "definitions": { - "A": { - "$id": "#foo", - "type": "integer" - } - } - }, - "tests": [ - { - "data": 1, - "description": "match", - "valid": true - }, - { - "data": "a", - "description": "mismatch", - "valid": false - } - ] - }, - { - "description": "Location-independent identifier with base URI change in subschema", - "schema": { - "$id": "http://localhost:1234/root", - "allOf": [{ - "$ref": "http://localhost:1234/nested.json#foo" - }], - "definitions": { - "A": { - "$id": "nested.json", - "definitions": { - "B": { - "$id": "#foo", - "type": "integer" - } - } - } - } - }, - "tests": [ - { - "data": 1, - "description": "match", - "valid": true - }, - { - "data": "a", - "description": "mismatch", - "valid": false - } - ] - }, - { - "description": "naive replacement of $ref with its destination is not correct", - "schema": { - "definitions": { - "a_string": { "type": "string" } - }, - "enum": [ - { "$ref": "#/definitions/a_string" } - ] - }, - "tests": [ - { - "description": "do not evaluate the $ref inside the enum, matching any string", - "data": "this is a string", - "valid": false - }, - { - "description": "do not evaluate the $ref inside the enum, definition exact match", - "data": { "type": "string" }, - "valid": false - }, - { - "description": "match the enum exactly", - "data": { "$ref": "#/definitions/a_string" }, - "valid": true - } - ] - }, - { - "description": "refs with relative uris and defs", - "schema": { - "$id": "http://example.com/schema-relative-uri-defs1.json", - "properties": { - "foo": { - "$id": "schema-relative-uri-defs2.json", - "definitions": { - "inner": { - "properties": { - "bar": { "type": "string" } - } - } - }, - "allOf": [ { "$ref": "#/definitions/inner" } ] - } - }, - "allOf": [ { "$ref": "schema-relative-uri-defs2.json" } ] - }, - "tests": [ - { - "description": "invalid on inner field", - "data": { - "foo": { - "bar": 1 - }, - "bar": "a" - }, - "valid": false - }, - { - "description": "invalid on outer field", - "data": { - "foo": { - "bar": "a" - }, - "bar": 1 - }, - "valid": false - }, - { - "description": "valid on both fields", - "data": { - "foo": { - "bar": "a" - }, - "bar": "a" - }, - "valid": true - } - ] - }, - { - "description": "relative refs with absolute uris and defs", - "schema": { - "$id": "http://example.com/schema-refs-absolute-uris-defs1.json", - "properties": { - "foo": { - "$id": "http://example.com/schema-refs-absolute-uris-defs2.json", - "definitions": { - "inner": { - "properties": { - "bar": { "type": "string" } - } - } - }, - "allOf": [ { "$ref": "#/definitions/inner" } ] - } - }, - "allOf": [ { "$ref": "schema-refs-absolute-uris-defs2.json" } ] - }, - "tests": [ - { - "description": "invalid on inner field", - "data": { - "foo": { - "bar": 1 - }, - "bar": "a" - }, - "valid": false - }, - { - "description": "invalid on outer field", - "data": { - "foo": { - "bar": "a" - }, - "bar": 1 - }, - "valid": false - }, - { - "description": "valid on both fields", - "data": { - "foo": { - "bar": "a" - }, - "bar": "a" - }, - "valid": true - } - ] - }, - { - "description": "simple URN base URI with $ref via the URN", - "schema": { - "$comment": "URIs do not have to have HTTP(s) schemes", - "$id": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed", - "minimum": 30, - "properties": { - "foo": {"$ref": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed"} - } - }, - "tests": [ - { - "description": "valid under the URN IDed schema", - "data": {"foo": 37}, - "valid": true - }, - { - "description": "invalid under the URN IDed schema", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "simple URN base URI with JSON pointer", - "schema": { - "$comment": "URIs do not have to have HTTP(s) schemes", - "$id": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed", - "properties": { - "foo": {"$ref": "#/definitions/bar"} - }, - "definitions": { - "bar": {"type": "string"} - } - }, - "tests": [ - { - "description": "a string is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "a non-string is invalid", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "URN base URI with NSS", - "schema": { - "$comment": "RFC 8141 §2.2", - "$id": "urn:example:1/406/47452/2", - "properties": { - "foo": {"$ref": "#/definitions/bar"} - }, - "definitions": { - "bar": {"type": "string"} - } - }, - "tests": [ - { - "description": "a string is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "a non-string is invalid", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "URN base URI with r-component", - "schema": { - "$comment": "RFC 8141 §2.3.1", - "$id": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk", - "properties": { - "foo": {"$ref": "#/definitions/bar"} - }, - "definitions": { - "bar": {"type": "string"} - } - }, - "tests": [ - { - "description": "a string is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "a non-string is invalid", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "URN base URI with q-component", - "schema": { - "$comment": "RFC 8141 §2.3.2", - "$id": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z", - "properties": { - "foo": {"$ref": "#/definitions/bar"} - }, - "definitions": { - "bar": {"type": "string"} - } - }, - "tests": [ - { - "description": "a string is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "a non-string is invalid", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "URN base URI with URN and JSON pointer ref", - "schema": { - "$id": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed", - "properties": { - "foo": {"$ref": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/definitions/bar"} - }, - "definitions": { - "bar": {"type": "string"} - } - }, - "tests": [ - { - "description": "a string is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "a non-string is invalid", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "URN base URI with URN and anchor ref", - "schema": { - "$id": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed", - "properties": { - "foo": {"$ref": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#something"} - }, - "definitions": { - "bar": { - "$id": "#something", - "type": "string" - } - } - }, - "tests": [ - { - "description": "a string is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "a non-string is invalid", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "ref with absolute-path-reference", - "schema": { - "$id": "http://example.com/ref/absref.json", - "definitions": { - "a": { - "$id": "http://example.com/ref/absref/foobar.json", - "type": "number" - }, - "b": { - "$id": "http://example.com/absref/foobar.json", - "type": "string" - } - }, - "allOf": [ - { "$ref": "/absref/foobar.json" } - ] - }, - "tests": [ - { - "description": "a string is valid", - "data": "foo", - "valid": true - }, - { - "description": "an integer is invalid", - "data": 12, - "valid": false - } - ] - }, - { - "description": "$id with file URI still resolves pointers - *nix", - "schema": { - "$id": "file:///folder/file.json", - "definitions": { - "foo": { - "type": "number" - } - }, - "allOf": [ - { - "$ref": "#/definitions/foo" - } - ] - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "non-number is invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "$id with file URI still resolves pointers - windows", - "schema": { - "$id": "file:///c:/folder/file.json", - "definitions": { - "foo": { - "type": "number" - } - }, - "allOf": [ - { - "$ref": "#/definitions/foo" - } - ] - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "non-number is invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "empty tokens in $ref json-pointer", - "schema": { - "definitions": { - "": { - "definitions": { - "": { "type": "number" } - } - } - }, - "allOf": [ - { - "$ref": "#/definitions//definitions/" - } - ] - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "non-number is invalid", - "data": "a", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/refRemote.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/refRemote.json deleted file mode 100644 index 28459c4a0..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/refRemote.json +++ /dev/null @@ -1,257 +0,0 @@ -[ - { - "description": "remote ref", - "schema": {"$ref": "http://localhost:1234/integer.json"}, - "tests": [ - { - "description": "remote ref valid", - "data": 1, - "valid": true - }, - { - "description": "remote ref invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "fragment within remote ref", - "schema": {"$ref": "http://localhost:1234/subSchemas.json#/definitions/integer"}, - "tests": [ - { - "description": "remote fragment valid", - "data": 1, - "valid": true - }, - { - "description": "remote fragment invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "ref within remote ref", - "schema": { - "$ref": "http://localhost:1234/subSchemas.json#/definitions/refToInteger" - }, - "tests": [ - { - "description": "ref within ref valid", - "data": 1, - "valid": true - }, - { - "description": "ref within ref invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "base URI change", - "schema": { - "$id": "http://localhost:1234/", - "items": { - "$id": "baseUriChange/", - "items": {"$ref": "folderInteger.json"} - } - }, - "tests": [ - { - "description": "base URI change ref valid", - "data": [[1]], - "valid": true - }, - { - "description": "base URI change ref invalid", - "data": [["a"]], - "valid": false - } - ] - }, - { - "description": "base URI change - change folder", - "schema": { - "$id": "http://localhost:1234/scope_change_defs1.json", - "type" : "object", - "properties": { - "list": {"$ref": "#/definitions/baz"} - }, - "definitions": { - "baz": { - "$id": "baseUriChangeFolder/", - "type": "array", - "items": {"$ref": "folderInteger.json"} - } - } - }, - "tests": [ - { - "description": "number is valid", - "data": {"list": [1]}, - "valid": true - }, - { - "description": "string is invalid", - "data": {"list": ["a"]}, - "valid": false - } - ] - }, - { - "description": "base URI change - change folder in subschema", - "schema": { - "$id": "http://localhost:1234/scope_change_defs2.json", - "type" : "object", - "properties": { - "list": {"$ref": "#/definitions/baz/definitions/bar"} - }, - "definitions": { - "baz": { - "$id": "baseUriChangeFolderInSubschema/", - "definitions": { - "bar": { - "type": "array", - "items": {"$ref": "folderInteger.json"} - } - } - } - } - }, - "tests": [ - { - "description": "number is valid", - "data": {"list": [1]}, - "valid": true - }, - { - "description": "string is invalid", - "data": {"list": ["a"]}, - "valid": false - } - ] - }, - { - "description": "root ref in remote ref", - "schema": { - "$id": "http://localhost:1234/object", - "type": "object", - "properties": { - "name": {"$ref": "name.json#/definitions/orNull"} - } - }, - "tests": [ - { - "description": "string is valid", - "data": { - "name": "foo" - }, - "valid": true - }, - { - "description": "null is valid", - "data": { - "name": null - }, - "valid": true - }, - { - "description": "object is invalid", - "data": { - "name": { - "name": null - } - }, - "valid": false - } - ] - }, - { - "description": "remote ref with ref to definitions", - "schema": { - "$id": "http://localhost:1234/schema-remote-ref-ref-defs1.json", - "allOf": [ - { "$ref": "ref-and-definitions.json" } - ] - }, - "tests": [ - { - "description": "invalid", - "data": { - "bar": 1 - }, - "valid": false - }, - { - "description": "valid", - "data": { - "bar": "a" - }, - "valid": true - } - ] - }, - { - "description": "Location-independent identifier in remote ref", - "schema": { - "$ref": "http://localhost:1234/locationIndependentIdentifierPre2019.json#/definitions/refToInteger" - }, - "tests": [ - { - "description": "integer is valid", - "data": 1, - "valid": true - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "retrieved nested refs resolve relative to their URI not $id", - "schema": { - "$id": "http://localhost:1234/some-id", - "properties": { - "name": {"$ref": "nested/foo-ref-string.json"} - } - }, - "tests": [ - { - "description": "number is invalid", - "data": { - "name": {"foo": 1} - }, - "valid": false - }, - { - "description": "string is valid", - "data": { - "name": {"foo": "a"} - }, - "valid": true - } - ] - }, - { - "description": "$ref to $ref finds location-independent $id", - "schema": { - "$ref": "http://localhost:1234/draft6/detached-ref.json#/definitions/foo" - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "non-number is invalid", - "data": "a", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/required.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/required.json deleted file mode 100644 index 8d8087afd..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/required.json +++ /dev/null @@ -1,151 +0,0 @@ -[ - { - "description": "required validation", - "schema": { - "properties": { - "foo": {}, - "bar": {} - }, - "required": ["foo"] - }, - "tests": [ - { - "description": "present required property is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "non-present required property is invalid", - "data": {"bar": 1}, - "valid": false - }, - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores strings", - "data": "", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "required default validation", - "schema": { - "properties": { - "foo": {} - } - }, - "tests": [ - { - "description": "not required by default", - "data": {}, - "valid": true - } - ] - }, - { - "description": "required with empty array", - "schema": { - "properties": { - "foo": {} - }, - "required": [] - }, - "tests": [ - { - "description": "property not required", - "data": {}, - "valid": true - } - ] - }, - { - "description": "required with escaped characters", - "schema": { - "required": [ - "foo\nbar", - "foo\"bar", - "foo\\bar", - "foo\rbar", - "foo\tbar", - "foo\fbar" - ] - }, - "tests": [ - { - "description": "object with all properties present is valid", - "data": { - "foo\nbar": 1, - "foo\"bar": 1, - "foo\\bar": 1, - "foo\rbar": 1, - "foo\tbar": 1, - "foo\fbar": 1 - }, - "valid": true - }, - { - "description": "object with some properties missing is invalid", - "data": { - "foo\nbar": "1", - "foo\"bar": "1" - }, - "valid": false - } - ] - }, - { - "description": "required properties whose names are Javascript object property names", - "comment": "Ensure JS implementations don't universally consider e.g. __proto__ to always be present in an object.", - "schema": { "required": ["__proto__", "toString", "constructor"] }, - "tests": [ - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - }, - { - "description": "none of the properties mentioned", - "data": {}, - "valid": false - }, - { - "description": "__proto__ present", - "data": { "__proto__": "foo" }, - "valid": false - }, - { - "description": "toString present", - "data": { "toString": { "length": 37 } }, - "valid": false - }, - { - "description": "constructor present", - "data": { "constructor": { "length": 37 } }, - "valid": false - }, - { - "description": "all present", - "data": { - "__proto__": 12, - "toString": { "length": "foo" }, - "constructor": 37 - }, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/type.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/type.json deleted file mode 100644 index 830464702..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/type.json +++ /dev/null @@ -1,474 +0,0 @@ -[ - { - "description": "integer type matches integers", - "schema": {"type": "integer"}, - "tests": [ - { - "description": "an integer is an integer", - "data": 1, - "valid": true - }, - { - "description": "a float with zero fractional part is an integer", - "data": 1.0, - "valid": true - }, - { - "description": "a float is not an integer", - "data": 1.1, - "valid": false - }, - { - "description": "a string is not an integer", - "data": "foo", - "valid": false - }, - { - "description": "a string is still not an integer, even if it looks like one", - "data": "1", - "valid": false - }, - { - "description": "an object is not an integer", - "data": {}, - "valid": false - }, - { - "description": "an array is not an integer", - "data": [], - "valid": false - }, - { - "description": "a boolean is not an integer", - "data": true, - "valid": false - }, - { - "description": "null is not an integer", - "data": null, - "valid": false - } - ] - }, - { - "description": "number type matches numbers", - "schema": {"type": "number"}, - "tests": [ - { - "description": "an integer is a number", - "data": 1, - "valid": true - }, - { - "description": "a float with zero fractional part is a number (and an integer)", - "data": 1.0, - "valid": true - }, - { - "description": "a float is a number", - "data": 1.1, - "valid": true - }, - { - "description": "a string is not a number", - "data": "foo", - "valid": false - }, - { - "description": "a string is still not a number, even if it looks like one", - "data": "1", - "valid": false - }, - { - "description": "an object is not a number", - "data": {}, - "valid": false - }, - { - "description": "an array is not a number", - "data": [], - "valid": false - }, - { - "description": "a boolean is not a number", - "data": true, - "valid": false - }, - { - "description": "null is not a number", - "data": null, - "valid": false - } - ] - }, - { - "description": "string type matches strings", - "schema": {"type": "string"}, - "tests": [ - { - "description": "1 is not a string", - "data": 1, - "valid": false - }, - { - "description": "a float is not a string", - "data": 1.1, - "valid": false - }, - { - "description": "a string is a string", - "data": "foo", - "valid": true - }, - { - "description": "a string is still a string, even if it looks like a number", - "data": "1", - "valid": true - }, - { - "description": "an empty string is still a string", - "data": "", - "valid": true - }, - { - "description": "an object is not a string", - "data": {}, - "valid": false - }, - { - "description": "an array is not a string", - "data": [], - "valid": false - }, - { - "description": "a boolean is not a string", - "data": true, - "valid": false - }, - { - "description": "null is not a string", - "data": null, - "valid": false - } - ] - }, - { - "description": "object type matches objects", - "schema": {"type": "object"}, - "tests": [ - { - "description": "an integer is not an object", - "data": 1, - "valid": false - }, - { - "description": "a float is not an object", - "data": 1.1, - "valid": false - }, - { - "description": "a string is not an object", - "data": "foo", - "valid": false - }, - { - "description": "an object is an object", - "data": {}, - "valid": true - }, - { - "description": "an array is not an object", - "data": [], - "valid": false - }, - { - "description": "a boolean is not an object", - "data": true, - "valid": false - }, - { - "description": "null is not an object", - "data": null, - "valid": false - } - ] - }, - { - "description": "array type matches arrays", - "schema": {"type": "array"}, - "tests": [ - { - "description": "an integer is not an array", - "data": 1, - "valid": false - }, - { - "description": "a float is not an array", - "data": 1.1, - "valid": false - }, - { - "description": "a string is not an array", - "data": "foo", - "valid": false - }, - { - "description": "an object is not an array", - "data": {}, - "valid": false - }, - { - "description": "an array is an array", - "data": [], - "valid": true - }, - { - "description": "a boolean is not an array", - "data": true, - "valid": false - }, - { - "description": "null is not an array", - "data": null, - "valid": false - } - ] - }, - { - "description": "boolean type matches booleans", - "schema": {"type": "boolean"}, - "tests": [ - { - "description": "an integer is not a boolean", - "data": 1, - "valid": false - }, - { - "description": "zero is not a boolean", - "data": 0, - "valid": false - }, - { - "description": "a float is not a boolean", - "data": 1.1, - "valid": false - }, - { - "description": "a string is not a boolean", - "data": "foo", - "valid": false - }, - { - "description": "an empty string is not a boolean", - "data": "", - "valid": false - }, - { - "description": "an object is not a boolean", - "data": {}, - "valid": false - }, - { - "description": "an array is not a boolean", - "data": [], - "valid": false - }, - { - "description": "true is a boolean", - "data": true, - "valid": true - }, - { - "description": "false is a boolean", - "data": false, - "valid": true - }, - { - "description": "null is not a boolean", - "data": null, - "valid": false - } - ] - }, - { - "description": "null type matches only the null object", - "schema": {"type": "null"}, - "tests": [ - { - "description": "an integer is not null", - "data": 1, - "valid": false - }, - { - "description": "a float is not null", - "data": 1.1, - "valid": false - }, - { - "description": "zero is not null", - "data": 0, - "valid": false - }, - { - "description": "a string is not null", - "data": "foo", - "valid": false - }, - { - "description": "an empty string is not null", - "data": "", - "valid": false - }, - { - "description": "an object is not null", - "data": {}, - "valid": false - }, - { - "description": "an array is not null", - "data": [], - "valid": false - }, - { - "description": "true is not null", - "data": true, - "valid": false - }, - { - "description": "false is not null", - "data": false, - "valid": false - }, - { - "description": "null is null", - "data": null, - "valid": true - } - ] - }, - { - "description": "multiple types can be specified in an array", - "schema": {"type": ["integer", "string"]}, - "tests": [ - { - "description": "an integer is valid", - "data": 1, - "valid": true - }, - { - "description": "a string is valid", - "data": "foo", - "valid": true - }, - { - "description": "a float is invalid", - "data": 1.1, - "valid": false - }, - { - "description": "an object is invalid", - "data": {}, - "valid": false - }, - { - "description": "an array is invalid", - "data": [], - "valid": false - }, - { - "description": "a boolean is invalid", - "data": true, - "valid": false - }, - { - "description": "null is invalid", - "data": null, - "valid": false - } - ] - }, - { - "description": "type as array with one item", - "schema": { - "type": ["string"] - }, - "tests": [ - { - "description": "string is valid", - "data": "foo", - "valid": true - }, - { - "description": "number is invalid", - "data": 123, - "valid": false - } - ] - }, - { - "description": "type: array or object", - "schema": { - "type": ["array", "object"] - }, - "tests": [ - { - "description": "array is valid", - "data": [1,2,3], - "valid": true - }, - { - "description": "object is valid", - "data": {"foo": 123}, - "valid": true - }, - { - "description": "number is invalid", - "data": 123, - "valid": false - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - }, - { - "description": "null is invalid", - "data": null, - "valid": false - } - ] - }, - { - "description": "type: array, object or null", - "schema": { - "type": ["array", "object", "null"] - }, - "tests": [ - { - "description": "array is valid", - "data": [1,2,3], - "valid": true - }, - { - "description": "object is valid", - "data": {"foo": 123}, - "valid": true - }, - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "number is invalid", - "data": 123, - "valid": false - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/uniqueItems.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft6/uniqueItems.json deleted file mode 100644 index d2730c60c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft6/uniqueItems.json +++ /dev/null @@ -1,409 +0,0 @@ -[ - { - "description": "uniqueItems validation", - "schema": {"uniqueItems": true}, - "tests": [ - { - "description": "unique array of integers is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "non-unique array of integers is invalid", - "data": [1, 1], - "valid": false - }, - { - "description": "non-unique array of more than two integers is invalid", - "data": [1, 2, 1], - "valid": false - }, - { - "description": "numbers are unique if mathematically unequal", - "data": [1.0, 1.00, 1], - "valid": false - }, - { - "description": "false is not equal to zero", - "data": [0, false], - "valid": true - }, - { - "description": "true is not equal to one", - "data": [1, true], - "valid": true - }, - { - "description": "unique array of strings is valid", - "data": ["foo", "bar", "baz"], - "valid": true - }, - { - "description": "non-unique array of strings is invalid", - "data": ["foo", "bar", "foo"], - "valid": false - }, - { - "description": "unique array of objects is valid", - "data": [{"foo": "bar"}, {"foo": "baz"}], - "valid": true - }, - { - "description": "non-unique array of objects is invalid", - "data": [{"foo": "bar"}, {"foo": "bar"}], - "valid": false - }, - { - "description": "property order of array of objects is ignored", - "data": [{"foo": "bar", "bar": "foo"}, {"bar": "foo", "foo": "bar"}], - "valid": false - }, - { - "description": "unique array of nested objects is valid", - "data": [ - {"foo": {"bar" : {"baz" : true}}}, - {"foo": {"bar" : {"baz" : false}}} - ], - "valid": true - }, - { - "description": "non-unique array of nested objects is invalid", - "data": [ - {"foo": {"bar" : {"baz" : true}}}, - {"foo": {"bar" : {"baz" : true}}} - ], - "valid": false - }, - { - "description": "unique array of arrays is valid", - "data": [["foo"], ["bar"]], - "valid": true - }, - { - "description": "non-unique array of arrays is invalid", - "data": [["foo"], ["foo"]], - "valid": false - }, - { - "description": "non-unique array of more than two arrays is invalid", - "data": [["foo"], ["bar"], ["foo"]], - "valid": false - }, - { - "description": "1 and true are unique", - "data": [1, true], - "valid": true - }, - { - "description": "0 and false are unique", - "data": [0, false], - "valid": true - }, - { - "description": "[1] and [true] are unique", - "data": [[1], [true]], - "valid": true - }, - { - "description": "[0] and [false] are unique", - "data": [[0], [false]], - "valid": true - }, - { - "description": "nested [1] and [true] are unique", - "data": [[[1], "foo"], [[true], "foo"]], - "valid": true - }, - { - "description": "nested [0] and [false] are unique", - "data": [[[0], "foo"], [[false], "foo"]], - "valid": true - }, - { - "description": "unique heterogeneous types are valid", - "data": [{}, [1], true, null, 1, "{}"], - "valid": true - }, - { - "description": "non-unique heterogeneous types are invalid", - "data": [{}, [1], true, null, {}, 1], - "valid": false - }, - { - "description": "different objects are unique", - "data": [{"a": 1, "b": 2}, {"a": 2, "b": 1}], - "valid": true - }, - { - "description": "objects are non-unique despite key order", - "data": [{"a": 1, "b": 2}, {"b": 2, "a": 1}], - "valid": false - }, - { - "description": "{\"a\": false} and {\"a\": 0} are unique", - "data": [{"a": false}, {"a": 0}], - "valid": true - }, - { - "description": "{\"a\": true} and {\"a\": 1} are unique", - "data": [{"a": true}, {"a": 1}], - "valid": true - } - ] - }, - { - "description": "uniqueItems with an array of items", - "schema": { - "items": [{"type": "boolean"}, {"type": "boolean"}], - "uniqueItems": true - }, - "tests": [ - { - "description": "[false, true] from items array is valid", - "data": [false, true], - "valid": true - }, - { - "description": "[true, false] from items array is valid", - "data": [true, false], - "valid": true - }, - { - "description": "[false, false] from items array is not valid", - "data": [false, false], - "valid": false - }, - { - "description": "[true, true] from items array is not valid", - "data": [true, true], - "valid": false - }, - { - "description": "unique array extended from [false, true] is valid", - "data": [false, true, "foo", "bar"], - "valid": true - }, - { - "description": "unique array extended from [true, false] is valid", - "data": [true, false, "foo", "bar"], - "valid": true - }, - { - "description": "non-unique array extended from [false, true] is not valid", - "data": [false, true, "foo", "foo"], - "valid": false - }, - { - "description": "non-unique array extended from [true, false] is not valid", - "data": [true, false, "foo", "foo"], - "valid": false - } - ] - }, - { - "description": "uniqueItems with an array of items and additionalItems=false", - "schema": { - "items": [{"type": "boolean"}, {"type": "boolean"}], - "uniqueItems": true, - "additionalItems": false - }, - "tests": [ - { - "description": "[false, true] from items array is valid", - "data": [false, true], - "valid": true - }, - { - "description": "[true, false] from items array is valid", - "data": [true, false], - "valid": true - }, - { - "description": "[false, false] from items array is not valid", - "data": [false, false], - "valid": false - }, - { - "description": "[true, true] from items array is not valid", - "data": [true, true], - "valid": false - }, - { - "description": "extra items are invalid even if unique", - "data": [false, true, null], - "valid": false - } - ] - }, - { - "description": "uniqueItems=false validation", - "schema": { "uniqueItems": false }, - "tests": [ - { - "description": "unique array of integers is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "non-unique array of integers is valid", - "data": [1, 1], - "valid": true - }, - { - "description": "numbers are unique if mathematically unequal", - "data": [1.0, 1.00, 1], - "valid": true - }, - { - "description": "false is not equal to zero", - "data": [0, false], - "valid": true - }, - { - "description": "true is not equal to one", - "data": [1, true], - "valid": true - }, - { - "description": "unique array of objects is valid", - "data": [{"foo": "bar"}, {"foo": "baz"}], - "valid": true - }, - { - "description": "non-unique array of objects is valid", - "data": [{"foo": "bar"}, {"foo": "bar"}], - "valid": true - }, - { - "description": "unique array of nested objects is valid", - "data": [ - {"foo": {"bar" : {"baz" : true}}}, - {"foo": {"bar" : {"baz" : false}}} - ], - "valid": true - }, - { - "description": "non-unique array of nested objects is valid", - "data": [ - {"foo": {"bar" : {"baz" : true}}}, - {"foo": {"bar" : {"baz" : true}}} - ], - "valid": true - }, - { - "description": "unique array of arrays is valid", - "data": [["foo"], ["bar"]], - "valid": true - }, - { - "description": "non-unique array of arrays is valid", - "data": [["foo"], ["foo"]], - "valid": true - }, - { - "description": "1 and true are unique", - "data": [1, true], - "valid": true - }, - { - "description": "0 and false are unique", - "data": [0, false], - "valid": true - }, - { - "description": "unique heterogeneous types are valid", - "data": [{}, [1], true, null, 1], - "valid": true - }, - { - "description": "non-unique heterogeneous types are valid", - "data": [{}, [1], true, null, {}, 1], - "valid": true - } - ] - }, - { - "description": "uniqueItems=false with an array of items", - "schema": { - "items": [{"type": "boolean"}, {"type": "boolean"}], - "uniqueItems": false - }, - "tests": [ - { - "description": "[false, true] from items array is valid", - "data": [false, true], - "valid": true - }, - { - "description": "[true, false] from items array is valid", - "data": [true, false], - "valid": true - }, - { - "description": "[false, false] from items array is valid", - "data": [false, false], - "valid": true - }, - { - "description": "[true, true] from items array is valid", - "data": [true, true], - "valid": true - }, - { - "description": "unique array extended from [false, true] is valid", - "data": [false, true, "foo", "bar"], - "valid": true - }, - { - "description": "unique array extended from [true, false] is valid", - "data": [true, false, "foo", "bar"], - "valid": true - }, - { - "description": "non-unique array extended from [false, true] is valid", - "data": [false, true, "foo", "foo"], - "valid": true - }, - { - "description": "non-unique array extended from [true, false] is valid", - "data": [true, false, "foo", "foo"], - "valid": true - } - ] - }, - { - "description": "uniqueItems=false with an array of items and additionalItems=false", - "schema": { - "items": [{"type": "boolean"}, {"type": "boolean"}], - "uniqueItems": false, - "additionalItems": false - }, - "tests": [ - { - "description": "[false, true] from items array is valid", - "data": [false, true], - "valid": true - }, - { - "description": "[true, false] from items array is valid", - "data": [true, false], - "valid": true - }, - { - "description": "[false, false] from items array is valid", - "data": [false, false], - "valid": true - }, - { - "description": "[true, true] from items array is valid", - "data": [true, true], - "valid": true - }, - { - "description": "extra items are invalid even if unique", - "data": [false, true, null], - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/additionalItems.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/additionalItems.json deleted file mode 100644 index 2c7d15582..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/additionalItems.json +++ /dev/null @@ -1,206 +0,0 @@ -[ - { - "description": "additionalItems as schema", - "schema": { - "items": [{}], - "additionalItems": {"type": "integer"} - }, - "tests": [ - { - "description": "additional items match schema", - "data": [ null, 2, 3, 4 ], - "valid": true - }, - { - "description": "additional items do not match schema", - "data": [ null, 2, 3, "foo" ], - "valid": false - } - ] - }, - { - "description": "when items is schema, additionalItems does nothing", - "schema": { - "items": { - "type": "integer" - }, - "additionalItems": { - "type": "string" - } - }, - "tests": [ - { - "description": "valid with a array of type integers", - "data": [1,2,3], - "valid": true - }, - { - "description": "invalid with a array of mixed types", - "data": [1,"2","3"], - "valid": false - } - ] - }, - { - "description": "when items is schema, boolean additionalItems does nothing", - "schema": { - "items": {}, - "additionalItems": false - }, - "tests": [ - { - "description": "all items match schema", - "data": [ 1, 2, 3, 4, 5 ], - "valid": true - } - ] - }, - { - "description": "array of items with no additionalItems permitted", - "schema": { - "items": [{}, {}, {}], - "additionalItems": false - }, - "tests": [ - { - "description": "empty array", - "data": [ ], - "valid": true - }, - { - "description": "fewer number of items present (1)", - "data": [ 1 ], - "valid": true - }, - { - "description": "fewer number of items present (2)", - "data": [ 1, 2 ], - "valid": true - }, - { - "description": "equal number of items present", - "data": [ 1, 2, 3 ], - "valid": true - }, - { - "description": "additional items are not permitted", - "data": [ 1, 2, 3, 4 ], - "valid": false - } - ] - }, - { - "description": "additionalItems as false without items", - "schema": {"additionalItems": false}, - "tests": [ - { - "description": - "items defaults to empty schema so everything is valid", - "data": [ 1, 2, 3, 4, 5 ], - "valid": true - }, - { - "description": "ignores non-arrays", - "data": {"foo" : "bar"}, - "valid": true - } - ] - }, - { - "description": "additionalItems are allowed by default", - "schema": {"items": [{"type": "integer"}]}, - "tests": [ - { - "description": "only the first item is validated", - "data": [1, "foo", false], - "valid": true - } - ] - }, - { - "description": "additionalItems does not look in applicators, valid case", - "schema": { - "allOf": [ - { "items": [ { "type": "integer" } ] } - ], - "additionalItems": { "type": "boolean" } - }, - "tests": [ - { - "description": "items defined in allOf are not examined", - "data": [ 1, null ], - "valid": true - } - ] - }, - { - "description": "additionalItems does not look in applicators, invalid case", - "schema": { - "allOf": [ - { "items": [ { "type": "integer" }, { "type": "string" } ] } - ], - "items": [ {"type": "integer" } ], - "additionalItems": { "type": "boolean" } - }, - "tests": [ - { - "description": "items defined in allOf are not examined", - "data": [ 1, "hello" ], - "valid": false - } - ] - }, - { - "description": "items validation adjusts the starting index for additionalItems", - "schema": { - "items": [ { "type": "string" } ], - "additionalItems": { "type": "integer" } - }, - "tests": [ - { - "description": "valid items", - "data": [ "x", 2, 3 ], - "valid": true - }, - { - "description": "wrong type of second item", - "data": [ "x", "y" ], - "valid": false - } - ] - }, - { - "description": "additionalItems with heterogeneous array", - "schema": { - "items": [{}], - "additionalItems": false - }, - "tests": [ - { - "description": "heterogeneous invalid instance", - "data": [ "foo", "bar", 37 ], - "valid": false - }, - { - "description": "valid instance", - "data": [ null ], - "valid": true - } - ] - }, - { - "description": "additionalItems with null instance elements", - "schema": { - "additionalItems": { - "type": "null" - } - }, - "tests": [ - { - "description": "allows null elements", - "data": [ null ], - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/additionalProperties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/additionalProperties.json deleted file mode 100644 index 0f8e1627a..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/additionalProperties.json +++ /dev/null @@ -1,147 +0,0 @@ -[ - { - "description": - "additionalProperties being false does not allow other properties", - "schema": { - "properties": {"foo": {}, "bar": {}}, - "patternProperties": { "^v": {} }, - "additionalProperties": false - }, - "tests": [ - { - "description": "no additional properties is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "an additional property is invalid", - "data": {"foo" : 1, "bar" : 2, "quux" : "boom"}, - "valid": false - }, - { - "description": "ignores arrays", - "data": [1, 2, 3], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobarbaz", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - }, - { - "description": "patternProperties are not additional properties", - "data": {"foo":1, "vroom": 2}, - "valid": true - } - ] - }, - { - "description": "non-ASCII pattern with additionalProperties", - "schema": { - "patternProperties": {"^á": {}}, - "additionalProperties": false - }, - "tests": [ - { - "description": "matching the pattern is valid", - "data": {"ármányos": 2}, - "valid": true - }, - { - "description": "not matching the pattern is invalid", - "data": {"élmény": 2}, - "valid": false - } - ] - }, - { - "description": "additionalProperties with schema", - "schema": { - "properties": {"foo": {}, "bar": {}}, - "additionalProperties": {"type": "boolean"} - }, - "tests": [ - { - "description": "no additional properties is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "an additional valid property is valid", - "data": {"foo" : 1, "bar" : 2, "quux" : true}, - "valid": true - }, - { - "description": "an additional invalid property is invalid", - "data": {"foo" : 1, "bar" : 2, "quux" : 12}, - "valid": false - } - ] - }, - { - "description": - "additionalProperties can exist by itself", - "schema": { - "additionalProperties": {"type": "boolean"} - }, - "tests": [ - { - "description": "an additional valid property is valid", - "data": {"foo" : true}, - "valid": true - }, - { - "description": "an additional invalid property is invalid", - "data": {"foo" : 1}, - "valid": false - } - ] - }, - { - "description": "additionalProperties are allowed by default", - "schema": {"properties": {"foo": {}, "bar": {}}}, - "tests": [ - { - "description": "additional properties are allowed", - "data": {"foo": 1, "bar": 2, "quux": true}, - "valid": true - } - ] - }, - { - "description": "additionalProperties does not look in applicators", - "schema": { - "allOf": [ - {"properties": {"foo": {}}} - ], - "additionalProperties": {"type": "boolean"} - }, - "tests": [ - { - "description": "properties defined in allOf are not examined", - "data": {"foo": 1, "bar": true}, - "valid": false - } - ] - }, - { - "description": "additionalProperties with null valued instance properties", - "schema": { - "additionalProperties": { - "type": "null" - } - }, - "tests": [ - { - "description": "allows null values", - "data": {"foo": null}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/allOf.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/allOf.json deleted file mode 100644 index ec9319e14..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/allOf.json +++ /dev/null @@ -1,294 +0,0 @@ -[ - { - "description": "allOf", - "schema": { - "allOf": [ - { - "properties": { - "bar": {"type": "integer"} - }, - "required": ["bar"] - }, - { - "properties": { - "foo": {"type": "string"} - }, - "required": ["foo"] - } - ] - }, - "tests": [ - { - "description": "allOf", - "data": {"foo": "baz", "bar": 2}, - "valid": true - }, - { - "description": "mismatch second", - "data": {"foo": "baz"}, - "valid": false - }, - { - "description": "mismatch first", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "wrong type", - "data": {"foo": "baz", "bar": "quux"}, - "valid": false - } - ] - }, - { - "description": "allOf with base schema", - "schema": { - "properties": {"bar": {"type": "integer"}}, - "required": ["bar"], - "allOf" : [ - { - "properties": { - "foo": {"type": "string"} - }, - "required": ["foo"] - }, - { - "properties": { - "baz": {"type": "null"} - }, - "required": ["baz"] - } - ] - }, - "tests": [ - { - "description": "valid", - "data": {"foo": "quux", "bar": 2, "baz": null}, - "valid": true - }, - { - "description": "mismatch base schema", - "data": {"foo": "quux", "baz": null}, - "valid": false - }, - { - "description": "mismatch first allOf", - "data": {"bar": 2, "baz": null}, - "valid": false - }, - { - "description": "mismatch second allOf", - "data": {"foo": "quux", "bar": 2}, - "valid": false - }, - { - "description": "mismatch both", - "data": {"bar": 2}, - "valid": false - } - ] - }, - { - "description": "allOf simple types", - "schema": { - "allOf": [ - {"maximum": 30}, - {"minimum": 20} - ] - }, - "tests": [ - { - "description": "valid", - "data": 25, - "valid": true - }, - { - "description": "mismatch one", - "data": 35, - "valid": false - } - ] - }, - { - "description": "allOf with boolean schemas, all true", - "schema": {"allOf": [true, true]}, - "tests": [ - { - "description": "any value is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "allOf with boolean schemas, some false", - "schema": {"allOf": [true, false]}, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "allOf with boolean schemas, all false", - "schema": {"allOf": [false, false]}, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "allOf with one empty schema", - "schema": { - "allOf": [ - {} - ] - }, - "tests": [ - { - "description": "any data is valid", - "data": 1, - "valid": true - } - ] - }, - { - "description": "allOf with two empty schemas", - "schema": { - "allOf": [ - {}, - {} - ] - }, - "tests": [ - { - "description": "any data is valid", - "data": 1, - "valid": true - } - ] - }, - { - "description": "allOf with the first empty schema", - "schema": { - "allOf": [ - {}, - { "type": "number" } - ] - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "allOf with the last empty schema", - "schema": { - "allOf": [ - { "type": "number" }, - {} - ] - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "nested allOf, to check validation semantics", - "schema": { - "allOf": [ - { - "allOf": [ - { - "type": "null" - } - ] - } - ] - }, - "tests": [ - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "anything non-null is invalid", - "data": 123, - "valid": false - } - ] - }, - { - "description": "allOf combined with anyOf, oneOf", - "schema": { - "allOf": [ { "multipleOf": 2 } ], - "anyOf": [ { "multipleOf": 3 } ], - "oneOf": [ { "multipleOf": 5 } ] - }, - "tests": [ - { - "description": "allOf: false, anyOf: false, oneOf: false", - "data": 1, - "valid": false - }, - { - "description": "allOf: false, anyOf: false, oneOf: true", - "data": 5, - "valid": false - }, - { - "description": "allOf: false, anyOf: true, oneOf: false", - "data": 3, - "valid": false - }, - { - "description": "allOf: false, anyOf: true, oneOf: true", - "data": 15, - "valid": false - }, - { - "description": "allOf: true, anyOf: false, oneOf: false", - "data": 2, - "valid": false - }, - { - "description": "allOf: true, anyOf: false, oneOf: true", - "data": 10, - "valid": false - }, - { - "description": "allOf: true, anyOf: true, oneOf: false", - "data": 6, - "valid": false - }, - { - "description": "allOf: true, anyOf: true, oneOf: true", - "data": 30, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/anyOf.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/anyOf.json deleted file mode 100644 index ab5eb386b..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/anyOf.json +++ /dev/null @@ -1,189 +0,0 @@ -[ - { - "description": "anyOf", - "schema": { - "anyOf": [ - { - "type": "integer" - }, - { - "minimum": 2 - } - ] - }, - "tests": [ - { - "description": "first anyOf valid", - "data": 1, - "valid": true - }, - { - "description": "second anyOf valid", - "data": 2.5, - "valid": true - }, - { - "description": "both anyOf valid", - "data": 3, - "valid": true - }, - { - "description": "neither anyOf valid", - "data": 1.5, - "valid": false - } - ] - }, - { - "description": "anyOf with base schema", - "schema": { - "type": "string", - "anyOf" : [ - { - "maxLength": 2 - }, - { - "minLength": 4 - } - ] - }, - "tests": [ - { - "description": "mismatch base schema", - "data": 3, - "valid": false - }, - { - "description": "one anyOf valid", - "data": "foobar", - "valid": true - }, - { - "description": "both anyOf invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "anyOf with boolean schemas, all true", - "schema": {"anyOf": [true, true]}, - "tests": [ - { - "description": "any value is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "anyOf with boolean schemas, some true", - "schema": {"anyOf": [true, false]}, - "tests": [ - { - "description": "any value is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "anyOf with boolean schemas, all false", - "schema": {"anyOf": [false, false]}, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "anyOf complex types", - "schema": { - "anyOf": [ - { - "properties": { - "bar": {"type": "integer"} - }, - "required": ["bar"] - }, - { - "properties": { - "foo": {"type": "string"} - }, - "required": ["foo"] - } - ] - }, - "tests": [ - { - "description": "first anyOf valid (complex)", - "data": {"bar": 2}, - "valid": true - }, - { - "description": "second anyOf valid (complex)", - "data": {"foo": "baz"}, - "valid": true - }, - { - "description": "both anyOf valid (complex)", - "data": {"foo": "baz", "bar": 2}, - "valid": true - }, - { - "description": "neither anyOf valid (complex)", - "data": {"foo": 2, "bar": "quux"}, - "valid": false - } - ] - }, - { - "description": "anyOf with one empty schema", - "schema": { - "anyOf": [ - { "type": "number" }, - {} - ] - }, - "tests": [ - { - "description": "string is valid", - "data": "foo", - "valid": true - }, - { - "description": "number is valid", - "data": 123, - "valid": true - } - ] - }, - { - "description": "nested anyOf, to check validation semantics", - "schema": { - "anyOf": [ - { - "anyOf": [ - { - "type": "null" - } - ] - } - ] - }, - "tests": [ - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "anything non-null is invalid", - "data": 123, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/boolean_schema.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/boolean_schema.json deleted file mode 100644 index 6d40f23f2..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/boolean_schema.json +++ /dev/null @@ -1,104 +0,0 @@ -[ - { - "description": "boolean schema 'true'", - "schema": true, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "string is valid", - "data": "foo", - "valid": true - }, - { - "description": "boolean true is valid", - "data": true, - "valid": true - }, - { - "description": "boolean false is valid", - "data": false, - "valid": true - }, - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "object is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "empty object is valid", - "data": {}, - "valid": true - }, - { - "description": "array is valid", - "data": ["foo"], - "valid": true - }, - { - "description": "empty array is valid", - "data": [], - "valid": true - } - ] - }, - { - "description": "boolean schema 'false'", - "schema": false, - "tests": [ - { - "description": "number is invalid", - "data": 1, - "valid": false - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - }, - { - "description": "boolean true is invalid", - "data": true, - "valid": false - }, - { - "description": "boolean false is invalid", - "data": false, - "valid": false - }, - { - "description": "null is invalid", - "data": null, - "valid": false - }, - { - "description": "object is invalid", - "data": {"foo": "bar"}, - "valid": false - }, - { - "description": "empty object is invalid", - "data": {}, - "valid": false - }, - { - "description": "array is invalid", - "data": ["foo"], - "valid": false - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/const.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/const.json deleted file mode 100644 index 1c2cafcc1..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/const.json +++ /dev/null @@ -1,342 +0,0 @@ -[ - { - "description": "const validation", - "schema": {"const": 2}, - "tests": [ - { - "description": "same value is valid", - "data": 2, - "valid": true - }, - { - "description": "another value is invalid", - "data": 5, - "valid": false - }, - { - "description": "another type is invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "const with object", - "schema": {"const": {"foo": "bar", "baz": "bax"}}, - "tests": [ - { - "description": "same object is valid", - "data": {"foo": "bar", "baz": "bax"}, - "valid": true - }, - { - "description": "same object with different property order is valid", - "data": {"baz": "bax", "foo": "bar"}, - "valid": true - }, - { - "description": "another object is invalid", - "data": {"foo": "bar"}, - "valid": false - }, - { - "description": "another type is invalid", - "data": [1, 2], - "valid": false - } - ] - }, - { - "description": "const with array", - "schema": {"const": [{ "foo": "bar" }]}, - "tests": [ - { - "description": "same array is valid", - "data": [{"foo": "bar"}], - "valid": true - }, - { - "description": "another array item is invalid", - "data": [2], - "valid": false - }, - { - "description": "array with additional items is invalid", - "data": [1, 2, 3], - "valid": false - } - ] - }, - { - "description": "const with null", - "schema": {"const": null}, - "tests": [ - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "not null is invalid", - "data": 0, - "valid": false - } - ] - }, - { - "description": "const with false does not match 0", - "schema": {"const": false}, - "tests": [ - { - "description": "false is valid", - "data": false, - "valid": true - }, - { - "description": "integer zero is invalid", - "data": 0, - "valid": false - }, - { - "description": "float zero is invalid", - "data": 0.0, - "valid": false - } - ] - }, - { - "description": "const with true does not match 1", - "schema": {"const": true}, - "tests": [ - { - "description": "true is valid", - "data": true, - "valid": true - }, - { - "description": "integer one is invalid", - "data": 1, - "valid": false - }, - { - "description": "float one is invalid", - "data": 1.0, - "valid": false - } - ] - }, - { - "description": "const with [false] does not match [0]", - "schema": {"const": [false]}, - "tests": [ - { - "description": "[false] is valid", - "data": [false], - "valid": true - }, - { - "description": "[0] is invalid", - "data": [0], - "valid": false - }, - { - "description": "[0.0] is invalid", - "data": [0.0], - "valid": false - } - ] - }, - { - "description": "const with [true] does not match [1]", - "schema": {"const": [true]}, - "tests": [ - { - "description": "[true] is valid", - "data": [true], - "valid": true - }, - { - "description": "[1] is invalid", - "data": [1], - "valid": false - }, - { - "description": "[1.0] is invalid", - "data": [1.0], - "valid": false - } - ] - }, - { - "description": "const with {\"a\": false} does not match {\"a\": 0}", - "schema": {"const": {"a": false}}, - "tests": [ - { - "description": "{\"a\": false} is valid", - "data": {"a": false}, - "valid": true - }, - { - "description": "{\"a\": 0} is invalid", - "data": {"a": 0}, - "valid": false - }, - { - "description": "{\"a\": 0.0} is invalid", - "data": {"a": 0.0}, - "valid": false - } - ] - }, - { - "description": "const with {\"a\": true} does not match {\"a\": 1}", - "schema": {"const": {"a": true}}, - "tests": [ - { - "description": "{\"a\": true} is valid", - "data": {"a": true}, - "valid": true - }, - { - "description": "{\"a\": 1} is invalid", - "data": {"a": 1}, - "valid": false - }, - { - "description": "{\"a\": 1.0} is invalid", - "data": {"a": 1.0}, - "valid": false - } - ] - }, - { - "description": "const with 0 does not match other zero-like types", - "schema": {"const": 0}, - "tests": [ - { - "description": "false is invalid", - "data": false, - "valid": false - }, - { - "description": "integer zero is valid", - "data": 0, - "valid": true - }, - { - "description": "float zero is valid", - "data": 0.0, - "valid": true - }, - { - "description": "empty object is invalid", - "data": {}, - "valid": false - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - }, - { - "description": "empty string is invalid", - "data": "", - "valid": false - } - ] - }, - { - "description": "const with 1 does not match true", - "schema": {"const": 1}, - "tests": [ - { - "description": "true is invalid", - "data": true, - "valid": false - }, - { - "description": "integer one is valid", - "data": 1, - "valid": true - }, - { - "description": "float one is valid", - "data": 1.0, - "valid": true - } - ] - }, - { - "description": "const with -2.0 matches integer and float types", - "schema": {"const": -2.0}, - "tests": [ - { - "description": "integer -2 is valid", - "data": -2, - "valid": true - }, - { - "description": "integer 2 is invalid", - "data": 2, - "valid": false - }, - { - "description": "float -2.0 is valid", - "data": -2.0, - "valid": true - }, - { - "description": "float 2.0 is invalid", - "data": 2.0, - "valid": false - }, - { - "description": "float -2.00001 is invalid", - "data": -2.00001, - "valid": false - } - ] - }, - { - "description": "float and integers are equal up to 64-bit representation limits", - "schema": {"const": 9007199254740992}, - "tests": [ - { - "description": "integer is valid", - "data": 9007199254740992, - "valid": true - }, - { - "description": "integer minus one is invalid", - "data": 9007199254740991, - "valid": false - }, - { - "description": "float is valid", - "data": 9007199254740992.0, - "valid": true - }, - { - "description": "float minus one is invalid", - "data": 9007199254740991.0, - "valid": false - } - ] - }, - { - "description": "nul characters in strings", - "schema": { "const": "hello\u0000there" }, - "tests": [ - { - "description": "match string with nul", - "data": "hello\u0000there", - "valid": true - }, - { - "description": "do not match string lacking nul", - "data": "hellothere", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/contains.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/contains.json deleted file mode 100644 index 2b1a51520..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/contains.json +++ /dev/null @@ -1,165 +0,0 @@ -[ - { - "description": "contains keyword validation", - "schema": { - "contains": {"minimum": 5} - }, - "tests": [ - { - "description": "array with item matching schema (5) is valid", - "data": [3, 4, 5], - "valid": true - }, - { - "description": "array with item matching schema (6) is valid", - "data": [3, 4, 6], - "valid": true - }, - { - "description": "array with two items matching schema (5, 6) is valid", - "data": [3, 4, 5, 6], - "valid": true - }, - { - "description": "array without items matching schema is invalid", - "data": [2, 3, 4], - "valid": false - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - }, - { - "description": "not array is valid", - "data": {}, - "valid": true - } - ] - }, - { - "description": "contains keyword with const keyword", - "schema": { - "contains": { "const": 5 } - }, - "tests": [ - { - "description": "array with item 5 is valid", - "data": [3, 4, 5], - "valid": true - }, - { - "description": "array with two items 5 is valid", - "data": [3, 4, 5, 5], - "valid": true - }, - { - "description": "array without item 5 is invalid", - "data": [1, 2, 3, 4], - "valid": false - } - ] - }, - { - "description": "contains keyword with boolean schema true", - "schema": {"contains": true}, - "tests": [ - { - "description": "any non-empty array is valid", - "data": ["foo"], - "valid": true - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - } - ] - }, - { - "description": "contains keyword with boolean schema false", - "schema": {"contains": false}, - "tests": [ - { - "description": "any non-empty array is invalid", - "data": ["foo"], - "valid": false - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - }, - { - "description": "non-arrays are valid", - "data": "contains does not apply to strings", - "valid": true - } - ] - }, - { - "description": "items + contains", - "schema": { - "items": { "multipleOf": 2 }, - "contains": { "multipleOf": 3 } - }, - "tests": [ - { - "description": "matches items, does not match contains", - "data": [ 2, 4, 8 ], - "valid": false - }, - { - "description": "does not match items, matches contains", - "data": [ 3, 6, 9 ], - "valid": false - }, - { - "description": "matches both items and contains", - "data": [ 6, 12 ], - "valid": true - }, - { - "description": "matches neither items nor contains", - "data": [ 1, 5 ], - "valid": false - } - ] - }, - { - "description": "contains with false if subschema", - "schema": { - "contains": { - "if": false, - "else": true - } - }, - "tests": [ - { - "description": "any non-empty array is valid", - "data": ["foo"], - "valid": true - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - } - ] - }, - { - "description": "contains with null instance elements", - "schema": { - "contains": { - "type": "null" - } - }, - "tests": [ - { - "description": "allows null items", - "data": [ null ], - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/default.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/default.json deleted file mode 100644 index 289a9b66c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/default.json +++ /dev/null @@ -1,79 +0,0 @@ -[ - { - "description": "invalid type for default", - "schema": { - "properties": { - "foo": { - "type": "integer", - "default": [] - } - } - }, - "tests": [ - { - "description": "valid when property is specified", - "data": {"foo": 13}, - "valid": true - }, - { - "description": "still valid when the invalid default is used", - "data": {}, - "valid": true - } - ] - }, - { - "description": "invalid string value for default", - "schema": { - "properties": { - "bar": { - "type": "string", - "minLength": 4, - "default": "bad" - } - } - }, - "tests": [ - { - "description": "valid when property is specified", - "data": {"bar": "good"}, - "valid": true - }, - { - "description": "still valid when the invalid default is used", - "data": {}, - "valid": true - } - ] - }, - { - "description": "the default keyword does not do anything if the property is missing", - "schema": { - "type": "object", - "properties": { - "alpha": { - "type": "number", - "maximum": 3, - "default": 5 - } - } - }, - "tests": [ - { - "description": "an explicit property value is checked against maximum (passing)", - "data": { "alpha": 1 }, - "valid": true - }, - { - "description": "an explicit property value is checked against maximum (failing)", - "data": { "alpha": 5 }, - "valid": false - }, - { - "description": "missing properties are not filled in with the default", - "data": {}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/definitions.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/definitions.json deleted file mode 100644 index afe396e42..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/definitions.json +++ /dev/null @@ -1,26 +0,0 @@ -[ - { - "description": "validate definition against metaschema", - "schema": {"$ref": "http://json-schema.org/draft-07/schema#"}, - "tests": [ - { - "description": "valid definition schema", - "data": { - "definitions": { - "foo": {"type": "integer"} - } - }, - "valid": true - }, - { - "description": "invalid definition schema", - "data": { - "definitions": { - "foo": {"type": 1} - } - }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/dependencies.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/dependencies.json deleted file mode 100644 index c0bd809f6..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/dependencies.json +++ /dev/null @@ -1,286 +0,0 @@ -[ - { - "description": "dependencies", - "schema": { - "dependencies": {"bar": ["foo"]} - }, - "tests": [ - { - "description": "neither", - "data": {}, - "valid": true - }, - { - "description": "nondependant", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "with dependency", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "missing dependency", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "ignores arrays", - "data": ["bar"], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobar", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "dependencies with empty array", - "schema": { - "dependencies": {"bar": []} - }, - "tests": [ - { - "description": "empty object", - "data": {}, - "valid": true - }, - { - "description": "object with one property", - "data": {"bar": 2}, - "valid": true - }, - { - "description": "non-object is valid", - "data": 1, - "valid": true - } - ] - }, - { - "description": "multiple dependencies", - "schema": { - "dependencies": {"quux": ["foo", "bar"]} - }, - "tests": [ - { - "description": "neither", - "data": {}, - "valid": true - }, - { - "description": "nondependants", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "with dependencies", - "data": {"foo": 1, "bar": 2, "quux": 3}, - "valid": true - }, - { - "description": "missing dependency", - "data": {"foo": 1, "quux": 2}, - "valid": false - }, - { - "description": "missing other dependency", - "data": {"bar": 1, "quux": 2}, - "valid": false - }, - { - "description": "missing both dependencies", - "data": {"quux": 1}, - "valid": false - } - ] - }, - { - "description": "multiple dependencies subschema", - "schema": { - "dependencies": { - "bar": { - "properties": { - "foo": {"type": "integer"}, - "bar": {"type": "integer"} - } - } - } - }, - "tests": [ - { - "description": "valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "no dependency", - "data": {"foo": "quux"}, - "valid": true - }, - { - "description": "wrong type", - "data": {"foo": "quux", "bar": 2}, - "valid": false - }, - { - "description": "wrong type other", - "data": {"foo": 2, "bar": "quux"}, - "valid": false - }, - { - "description": "wrong type both", - "data": {"foo": "quux", "bar": "quux"}, - "valid": false - } - ] - }, - { - "description": "dependencies with boolean subschemas", - "schema": { - "dependencies": { - "foo": true, - "bar": false - } - }, - "tests": [ - { - "description": "object with property having schema true is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "object with property having schema false is invalid", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "object with both properties is invalid", - "data": {"foo": 1, "bar": 2}, - "valid": false - }, - { - "description": "empty object is valid", - "data": {}, - "valid": true - } - ] - }, - { - "description": "dependencies with escaped characters", - "schema": { - "dependencies": { - "foo\nbar": ["foo\rbar"], - "foo\tbar": { - "minProperties": 4 - }, - "foo'bar": {"required": ["foo\"bar"]}, - "foo\"bar": ["foo'bar"] - } - }, - "tests": [ - { - "description": "valid object 1", - "data": { - "foo\nbar": 1, - "foo\rbar": 2 - }, - "valid": true - }, - { - "description": "valid object 2", - "data": { - "foo\tbar": 1, - "a": 2, - "b": 3, - "c": 4 - }, - "valid": true - }, - { - "description": "valid object 3", - "data": { - "foo'bar": 1, - "foo\"bar": 2 - }, - "valid": true - }, - { - "description": "invalid object 1", - "data": { - "foo\nbar": 1, - "foo": 2 - }, - "valid": false - }, - { - "description": "invalid object 2", - "data": { - "foo\tbar": 1, - "a": 2 - }, - "valid": false - }, - { - "description": "invalid object 3", - "data": { - "foo'bar": 1 - }, - "valid": false - }, - { - "description": "invalid object 4", - "data": { - "foo\"bar": 2 - }, - "valid": false - } - ] - }, - { - "description": "dependent subschema incompatible with root", - "schema": { - "properties": { - "foo": {} - }, - "dependencies": { - "foo": { - "properties": { - "bar": {} - }, - "additionalProperties": false - } - } - }, - "tests": [ - { - "description": "matches root", - "data": {"foo": 1}, - "valid": false - }, - { - "description": "matches dependency", - "data": {"bar": 1}, - "valid": true - }, - { - "description": "matches both", - "data": {"foo": 1, "bar": 2}, - "valid": false - }, - { - "description": "no dependency", - "data": {"baz": 1}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/enum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/enum.json deleted file mode 100644 index ce43acc02..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/enum.json +++ /dev/null @@ -1,320 +0,0 @@ -[ - { - "description": "simple enum validation", - "schema": {"enum": [1, 2, 3]}, - "tests": [ - { - "description": "one of the enum is valid", - "data": 1, - "valid": true - }, - { - "description": "something else is invalid", - "data": 4, - "valid": false - } - ] - }, - { - "description": "heterogeneous enum validation", - "schema": {"enum": [6, "foo", [], true, {"foo": 12}]}, - "tests": [ - { - "description": "one of the enum is valid", - "data": [], - "valid": true - }, - { - "description": "something else is invalid", - "data": null, - "valid": false - }, - { - "description": "objects are deep compared", - "data": {"foo": false}, - "valid": false - }, - { - "description": "valid object matches", - "data": {"foo": 12}, - "valid": true - }, - { - "description": "extra properties in object is invalid", - "data": {"foo": 12, "boo": 42}, - "valid": false - } - ] - }, - { - "description": "heterogeneous enum-with-null validation", - "schema": { "enum": [6, null] }, - "tests": [ - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "number is valid", - "data": 6, - "valid": true - }, - { - "description": "something else is invalid", - "data": "test", - "valid": false - } - ] - }, - { - "description": "enums in properties", - "schema": { - "type":"object", - "properties": { - "foo": {"enum":["foo"]}, - "bar": {"enum":["bar"]} - }, - "required": ["bar"] - }, - "tests": [ - { - "description": "both properties are valid", - "data": {"foo":"foo", "bar":"bar"}, - "valid": true - }, - { - "description": "wrong foo value", - "data": {"foo":"foot", "bar":"bar"}, - "valid": false - }, - { - "description": "wrong bar value", - "data": {"foo":"foo", "bar":"bart"}, - "valid": false - }, - { - "description": "missing optional property is valid", - "data": {"bar":"bar"}, - "valid": true - }, - { - "description": "missing required property is invalid", - "data": {"foo":"foo"}, - "valid": false - }, - { - "description": "missing all properties is invalid", - "data": {}, - "valid": false - } - ] - }, - { - "description": "enum with escaped characters", - "schema": { - "enum": ["foo\nbar", "foo\rbar"] - }, - "tests": [ - { - "description": "member 1 is valid", - "data": "foo\nbar", - "valid": true - }, - { - "description": "member 2 is valid", - "data": "foo\rbar", - "valid": true - }, - { - "description": "another string is invalid", - "data": "abc", - "valid": false - } - ] - }, - { - "description": "enum with false does not match 0", - "schema": {"enum": [false]}, - "tests": [ - { - "description": "false is valid", - "data": false, - "valid": true - }, - { - "description": "integer zero is invalid", - "data": 0, - "valid": false - }, - { - "description": "float zero is invalid", - "data": 0.0, - "valid": false - } - ] - }, - { - "description": "enum with [false] does not match [0]", - "schema": {"enum": [[false]]}, - "tests": [ - { - "description": "[false] is valid", - "data": [false], - "valid": true - }, - { - "description": "[0] is invalid", - "data": [0], - "valid": false - }, - { - "description": "[0.0] is invalid", - "data": [0.0], - "valid": false - } - ] - }, - { - "description": "enum with true does not match 1", - "schema": {"enum": [true]}, - "tests": [ - { - "description": "true is valid", - "data": true, - "valid": true - }, - { - "description": "integer one is invalid", - "data": 1, - "valid": false - }, - { - "description": "float one is invalid", - "data": 1.0, - "valid": false - } - ] - }, - { - "description": "enum with [true] does not match [1]", - "schema": {"enum": [[true]]}, - "tests": [ - { - "description": "[true] is valid", - "data": [true], - "valid": true - }, - { - "description": "[1] is invalid", - "data": [1], - "valid": false - }, - { - "description": "[1.0] is invalid", - "data": [1.0], - "valid": false - } - ] - }, - { - "description": "enum with 0 does not match false", - "schema": {"enum": [0]}, - "tests": [ - { - "description": "false is invalid", - "data": false, - "valid": false - }, - { - "description": "integer zero is valid", - "data": 0, - "valid": true - }, - { - "description": "float zero is valid", - "data": 0.0, - "valid": true - } - ] - }, - { - "description": "enum with [0] does not match [false]", - "schema": {"enum": [[0]]}, - "tests": [ - { - "description": "[false] is invalid", - "data": [false], - "valid": false - }, - { - "description": "[0] is valid", - "data": [0], - "valid": true - }, - { - "description": "[0.0] is valid", - "data": [0.0], - "valid": true - } - ] - }, - { - "description": "enum with 1 does not match true", - "schema": {"enum": [1]}, - "tests": [ - { - "description": "true is invalid", - "data": true, - "valid": false - }, - { - "description": "integer one is valid", - "data": 1, - "valid": true - }, - { - "description": "float one is valid", - "data": 1.0, - "valid": true - } - ] - }, - { - "description": "enum with [1] does not match [true]", - "schema": {"enum": [[1]]}, - "tests": [ - { - "description": "[true] is invalid", - "data": [true], - "valid": false - }, - { - "description": "[1] is valid", - "data": [1], - "valid": true - }, - { - "description": "[1.0] is valid", - "data": [1.0], - "valid": true - } - ] - }, - { - "description": "nul characters in strings", - "schema": { "enum": [ "hello\u0000there" ] }, - "tests": [ - { - "description": "match string with nul", - "data": "hello\u0000there", - "valid": true - }, - { - "description": "do not match string lacking nul", - "data": "hellothere", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/exclusiveMaximum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/exclusiveMaximum.json deleted file mode 100644 index dc3cd709d..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/exclusiveMaximum.json +++ /dev/null @@ -1,30 +0,0 @@ -[ - { - "description": "exclusiveMaximum validation", - "schema": { - "exclusiveMaximum": 3.0 - }, - "tests": [ - { - "description": "below the exclusiveMaximum is valid", - "data": 2.2, - "valid": true - }, - { - "description": "boundary point is invalid", - "data": 3.0, - "valid": false - }, - { - "description": "above the exclusiveMaximum is invalid", - "data": 3.5, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/exclusiveMinimum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/exclusiveMinimum.json deleted file mode 100644 index b38d7ecec..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/exclusiveMinimum.json +++ /dev/null @@ -1,30 +0,0 @@ -[ - { - "description": "exclusiveMinimum validation", - "schema": { - "exclusiveMinimum": 1.1 - }, - "tests": [ - { - "description": "above the exclusiveMinimum is valid", - "data": 1.2, - "valid": true - }, - { - "description": "boundary point is invalid", - "data": 1.1, - "valid": false - }, - { - "description": "below the exclusiveMinimum is invalid", - "data": 0.6, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/format.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/format.json deleted file mode 100644 index e2447d60f..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/format.json +++ /dev/null @@ -1,614 +0,0 @@ -[ - { - "description": "email format", - "schema": { "format": "email" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "idn-email format", - "schema": { "format": "idn-email" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "regex format", - "schema": { "format": "regex" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "ipv4 format", - "schema": { "format": "ipv4" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "ipv6 format", - "schema": { "format": "ipv6" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "idn-hostname format", - "schema": { "format": "idn-hostname" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "hostname format", - "schema": { "format": "hostname" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "date format", - "schema": { "format": "date" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "date-time format", - "schema": { "format": "date-time" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "time format", - "schema": { "format": "time" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "json-pointer format", - "schema": { "format": "json-pointer" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "relative-json-pointer format", - "schema": { "format": "relative-json-pointer" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "iri format", - "schema": { "format": "iri" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "iri-reference format", - "schema": { "format": "iri-reference" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "uri format", - "schema": { "format": "uri" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "uri-reference format", - "schema": { "format": "uri-reference" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - }, - { - "description": "uri-template format", - "schema": { "format": "uri-template" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/if-then-else.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/if-then-else.json deleted file mode 100644 index 284e91912..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/if-then-else.json +++ /dev/null @@ -1,258 +0,0 @@ -[ - { - "description": "ignore if without then or else", - "schema": { - "if": { - "const": 0 - } - }, - "tests": [ - { - "description": "valid when valid against lone if", - "data": 0, - "valid": true - }, - { - "description": "valid when invalid against lone if", - "data": "hello", - "valid": true - } - ] - }, - { - "description": "ignore then without if", - "schema": { - "then": { - "const": 0 - } - }, - "tests": [ - { - "description": "valid when valid against lone then", - "data": 0, - "valid": true - }, - { - "description": "valid when invalid against lone then", - "data": "hello", - "valid": true - } - ] - }, - { - "description": "ignore else without if", - "schema": { - "else": { - "const": 0 - } - }, - "tests": [ - { - "description": "valid when valid against lone else", - "data": 0, - "valid": true - }, - { - "description": "valid when invalid against lone else", - "data": "hello", - "valid": true - } - ] - }, - { - "description": "if and then without else", - "schema": { - "if": { - "exclusiveMaximum": 0 - }, - "then": { - "minimum": -10 - } - }, - "tests": [ - { - "description": "valid through then", - "data": -1, - "valid": true - }, - { - "description": "invalid through then", - "data": -100, - "valid": false - }, - { - "description": "valid when if test fails", - "data": 3, - "valid": true - } - ] - }, - { - "description": "if and else without then", - "schema": { - "if": { - "exclusiveMaximum": 0 - }, - "else": { - "multipleOf": 2 - } - }, - "tests": [ - { - "description": "valid when if test passes", - "data": -1, - "valid": true - }, - { - "description": "valid through else", - "data": 4, - "valid": true - }, - { - "description": "invalid through else", - "data": 3, - "valid": false - } - ] - }, - { - "description": "validate against correct branch, then vs else", - "schema": { - "if": { - "exclusiveMaximum": 0 - }, - "then": { - "minimum": -10 - }, - "else": { - "multipleOf": 2 - } - }, - "tests": [ - { - "description": "valid through then", - "data": -1, - "valid": true - }, - { - "description": "invalid through then", - "data": -100, - "valid": false - }, - { - "description": "valid through else", - "data": 4, - "valid": true - }, - { - "description": "invalid through else", - "data": 3, - "valid": false - } - ] - }, - { - "description": "non-interference across combined schemas", - "schema": { - "allOf": [ - { - "if": { - "exclusiveMaximum": 0 - } - }, - { - "then": { - "minimum": -10 - } - }, - { - "else": { - "multipleOf": 2 - } - } - ] - }, - "tests": [ - { - "description": "valid, but would have been invalid through then", - "data": -100, - "valid": true - }, - { - "description": "valid, but would have been invalid through else", - "data": 3, - "valid": true - } - ] - }, - { - "description": "if with boolean schema true", - "schema": { - "if": true, - "then": { "const": "then" }, - "else": { "const": "else" } - }, - "tests": [ - { - "description": "boolean schema true in if always chooses the then path (valid)", - "data": "then", - "valid": true - }, - { - "description": "boolean schema true in if always chooses the then path (invalid)", - "data": "else", - "valid": false - } - ] - }, - { - "description": "if with boolean schema false", - "schema": { - "if": false, - "then": { "const": "then" }, - "else": { "const": "else" } - }, - "tests": [ - { - "description": "boolean schema false in if always chooses the else path (invalid)", - "data": "then", - "valid": false - }, - { - "description": "boolean schema false in if always chooses the else path (valid)", - "data": "else", - "valid": true - } - ] - }, - { - "description": "if appears at the end when serialized (keyword processing sequence)", - "schema": { - "then": { "const": "yes" }, - "else": { "const": "other" }, - "if": { "maxLength": 4 } - }, - "tests": [ - { - "description": "yes redirects to then and passes", - "data": "yes", - "valid": true - }, - { - "description": "other redirects to else and passes", - "data": "other", - "valid": true - }, - { - "description": "no redirects to then and fails", - "data": "no", - "valid": false - }, - { - "description": "invalid redirects to else and fails", - "data": "invalid", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/infinite-loop-detection.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/infinite-loop-detection.json deleted file mode 100644 index f98c74fc6..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/infinite-loop-detection.json +++ /dev/null @@ -1,36 +0,0 @@ -[ - { - "description": "evaluating the same schema location against the same data location twice is not a sign of an infinite loop", - "schema": { - "definitions": { - "int": { "type": "integer" } - }, - "allOf": [ - { - "properties": { - "foo": { - "$ref": "#/definitions/int" - } - } - }, - { - "additionalProperties": { - "$ref": "#/definitions/int" - } - } - ] - }, - "tests": [ - { - "description": "passing case", - "data": { "foo": 1 }, - "valid": true - }, - { - "description": "failing case", - "data": { "foo": "a string" }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/items.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/items.json deleted file mode 100644 index 7ed6781b6..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/items.json +++ /dev/null @@ -1,282 +0,0 @@ -[ - { - "description": "a schema given for items", - "schema": { - "items": {"type": "integer"} - }, - "tests": [ - { - "description": "valid items", - "data": [ 1, 2, 3 ], - "valid": true - }, - { - "description": "wrong type of items", - "data": [1, "x"], - "valid": false - }, - { - "description": "ignores non-arrays", - "data": {"foo" : "bar"}, - "valid": true - }, - { - "description": "JavaScript pseudo-array is valid", - "data": { - "0": "invalid", - "length": 1 - }, - "valid": true - } - ] - }, - { - "description": "an array of schemas for items", - "schema": { - "items": [ - {"type": "integer"}, - {"type": "string"} - ] - }, - "tests": [ - { - "description": "correct types", - "data": [ 1, "foo" ], - "valid": true - }, - { - "description": "wrong types", - "data": [ "foo", 1 ], - "valid": false - }, - { - "description": "incomplete array of items", - "data": [ 1 ], - "valid": true - }, - { - "description": "array with additional items", - "data": [ 1, "foo", true ], - "valid": true - }, - { - "description": "empty array", - "data": [ ], - "valid": true - }, - { - "description": "JavaScript pseudo-array is valid", - "data": { - "0": "invalid", - "1": "valid", - "length": 2 - }, - "valid": true - } - ] - }, - { - "description": "items with boolean schema (true)", - "schema": {"items": true}, - "tests": [ - { - "description": "any array is valid", - "data": [ 1, "foo", true ], - "valid": true - }, - { - "description": "empty array is valid", - "data": [], - "valid": true - } - ] - }, - { - "description": "items with boolean schema (false)", - "schema": {"items": false}, - "tests": [ - { - "description": "any non-empty array is invalid", - "data": [ 1, "foo", true ], - "valid": false - }, - { - "description": "empty array is valid", - "data": [], - "valid": true - } - ] - }, - { - "description": "items with boolean schemas", - "schema": { - "items": [true, false] - }, - "tests": [ - { - "description": "array with one item is valid", - "data": [ 1 ], - "valid": true - }, - { - "description": "array with two items is invalid", - "data": [ 1, "foo" ], - "valid": false - }, - { - "description": "empty array is valid", - "data": [], - "valid": true - } - ] - }, - { - "description": "items and subitems", - "schema": { - "definitions": { - "item": { - "type": "array", - "additionalItems": false, - "items": [ - { "$ref": "#/definitions/sub-item" }, - { "$ref": "#/definitions/sub-item" } - ] - }, - "sub-item": { - "type": "object", - "required": ["foo"] - } - }, - "type": "array", - "additionalItems": false, - "items": [ - { "$ref": "#/definitions/item" }, - { "$ref": "#/definitions/item" }, - { "$ref": "#/definitions/item" } - ] - }, - "tests": [ - { - "description": "valid items", - "data": [ - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ] - ], - "valid": true - }, - { - "description": "too many items", - "data": [ - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ] - ], - "valid": false - }, - { - "description": "too many sub-items", - "data": [ - [ {"foo": null}, {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ] - ], - "valid": false - }, - { - "description": "wrong item", - "data": [ - {"foo": null}, - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ] - ], - "valid": false - }, - { - "description": "wrong sub-item", - "data": [ - [ {}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ], - [ {"foo": null}, {"foo": null} ] - ], - "valid": false - }, - { - "description": "fewer items is valid", - "data": [ - [ {"foo": null} ], - [ {"foo": null} ] - ], - "valid": true - } - ] - }, - { - "description": "nested items", - "schema": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "array", - "items": { - "type": "number" - } - } - } - } - }, - "tests": [ - { - "description": "valid nested array", - "data": [[[[1]], [[2],[3]]], [[[4], [5], [6]]]], - "valid": true - }, - { - "description": "nested array with invalid type", - "data": [[[["1"]], [[2],[3]]], [[[4], [5], [6]]]], - "valid": false - }, - { - "description": "not deep enough", - "data": [[[1], [2],[3]], [[4], [5], [6]]], - "valid": false - } - ] - }, - { - "description": "single-form items with null instance elements", - "schema": { - "items": { - "type": "null" - } - }, - "tests": [ - { - "description": "allows null elements", - "data": [ null ], - "valid": true - } - ] - }, - { - "description": "array-form items with null instance elements", - "schema": { - "items": [ - { - "type": "null" - } - ] - }, - "tests": [ - { - "description": "allows null elements", - "data": [ null ], - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/maxItems.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/maxItems.json deleted file mode 100644 index f0c36ab28..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/maxItems.json +++ /dev/null @@ -1,44 +0,0 @@ -[ - { - "description": "maxItems validation", - "schema": {"maxItems": 2}, - "tests": [ - { - "description": "shorter is valid", - "data": [1], - "valid": true - }, - { - "description": "exact length is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "too long is invalid", - "data": [1, 2, 3], - "valid": false - }, - { - "description": "ignores non-arrays", - "data": "foobar", - "valid": true - } - ] - }, - { - "description": "maxItems validation with a decimal", - "schema": {"maxItems": 2.0}, - "tests": [ - { - "description": "shorter is valid", - "data": [1], - "valid": true - }, - { - "description": "too long is invalid", - "data": [1, 2, 3], - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/maxLength.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/maxLength.json deleted file mode 100644 index be60c5407..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/maxLength.json +++ /dev/null @@ -1,49 +0,0 @@ -[ - { - "description": "maxLength validation", - "schema": {"maxLength": 2}, - "tests": [ - { - "description": "shorter is valid", - "data": "f", - "valid": true - }, - { - "description": "exact length is valid", - "data": "fo", - "valid": true - }, - { - "description": "too long is invalid", - "data": "foo", - "valid": false - }, - { - "description": "ignores non-strings", - "data": 100, - "valid": true - }, - { - "description": "two graphemes is long enough", - "data": "\uD83D\uDCA9\uD83D\uDCA9", - "valid": true - } - ] - }, - { - "description": "maxLength validation with a decimal", - "schema": {"maxLength": 2.0}, - "tests": [ - { - "description": "shorter is valid", - "data": "f", - "valid": true - }, - { - "description": "too long is invalid", - "data": "foo", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/maxProperties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/maxProperties.json deleted file mode 100644 index acec14209..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/maxProperties.json +++ /dev/null @@ -1,70 +0,0 @@ -[ - { - "description": "maxProperties validation", - "schema": {"maxProperties": 2}, - "tests": [ - { - "description": "shorter is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "exact length is valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "too long is invalid", - "data": {"foo": 1, "bar": 2, "baz": 3}, - "valid": false - }, - { - "description": "ignores arrays", - "data": [1, 2, 3], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobar", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "maxProperties validation with a decimal", - "schema": {"maxProperties": 2.0}, - "tests": [ - { - "description": "shorter is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "too long is invalid", - "data": {"foo": 1, "bar": 2, "baz": 3}, - "valid": false - } - ] - }, - { - "description": "maxProperties = 0 means the object is empty", - "schema": { "maxProperties": 0 }, - "tests": [ - { - "description": "no properties is valid", - "data": {}, - "valid": true - }, - { - "description": "one property is invalid", - "data": { "foo": 1 }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/maximum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/maximum.json deleted file mode 100644 index 6844a39ee..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/maximum.json +++ /dev/null @@ -1,54 +0,0 @@ -[ - { - "description": "maximum validation", - "schema": {"maximum": 3.0}, - "tests": [ - { - "description": "below the maximum is valid", - "data": 2.6, - "valid": true - }, - { - "description": "boundary point is valid", - "data": 3.0, - "valid": true - }, - { - "description": "above the maximum is invalid", - "data": 3.5, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - }, - { - "description": "maximum validation with unsigned integer", - "schema": {"maximum": 300}, - "tests": [ - { - "description": "below the maximum is invalid", - "data": 299.97, - "valid": true - }, - { - "description": "boundary point integer is valid", - "data": 300, - "valid": true - }, - { - "description": "boundary point float is valid", - "data": 300.00, - "valid": true - }, - { - "description": "above the maximum is invalid", - "data": 300.5, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/minItems.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/minItems.json deleted file mode 100644 index d3b18720d..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/minItems.json +++ /dev/null @@ -1,44 +0,0 @@ -[ - { - "description": "minItems validation", - "schema": {"minItems": 1}, - "tests": [ - { - "description": "longer is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "exact length is valid", - "data": [1], - "valid": true - }, - { - "description": "too short is invalid", - "data": [], - "valid": false - }, - { - "description": "ignores non-arrays", - "data": "", - "valid": true - } - ] - }, - { - "description": "minItems validation with a decimal", - "schema": {"minItems": 1.0}, - "tests": [ - { - "description": "longer is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "too short is invalid", - "data": [], - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/minLength.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/minLength.json deleted file mode 100644 index 23c68fe3f..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/minLength.json +++ /dev/null @@ -1,49 +0,0 @@ -[ - { - "description": "minLength validation", - "schema": {"minLength": 2}, - "tests": [ - { - "description": "longer is valid", - "data": "foo", - "valid": true - }, - { - "description": "exact length is valid", - "data": "fo", - "valid": true - }, - { - "description": "too short is invalid", - "data": "f", - "valid": false - }, - { - "description": "ignores non-strings", - "data": 1, - "valid": true - }, - { - "description": "one grapheme is not long enough", - "data": "\uD83D\uDCA9", - "valid": false - } - ] - }, - { - "description": "minLength validation with a decimal", - "schema": {"minLength": 2.0}, - "tests": [ - { - "description": "longer is valid", - "data": "foo", - "valid": true - }, - { - "description": "too short is invalid", - "data": "f", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/minProperties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/minProperties.json deleted file mode 100644 index 9f74f7891..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/minProperties.json +++ /dev/null @@ -1,54 +0,0 @@ -[ - { - "description": "minProperties validation", - "schema": {"minProperties": 1}, - "tests": [ - { - "description": "longer is valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "exact length is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "too short is invalid", - "data": {}, - "valid": false - }, - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores strings", - "data": "", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "minProperties validation with a decimal", - "schema": {"minProperties": 1.0}, - "tests": [ - { - "description": "longer is valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "too short is invalid", - "data": {}, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/minimum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/minimum.json deleted file mode 100644 index 21ae50e0e..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/minimum.json +++ /dev/null @@ -1,69 +0,0 @@ -[ - { - "description": "minimum validation", - "schema": {"minimum": 1.1}, - "tests": [ - { - "description": "above the minimum is valid", - "data": 2.6, - "valid": true - }, - { - "description": "boundary point is valid", - "data": 1.1, - "valid": true - }, - { - "description": "below the minimum is invalid", - "data": 0.6, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - }, - { - "description": "minimum validation with signed integer", - "schema": {"minimum": -2}, - "tests": [ - { - "description": "negative above the minimum is valid", - "data": -1, - "valid": true - }, - { - "description": "positive above the minimum is valid", - "data": 0, - "valid": true - }, - { - "description": "boundary point is valid", - "data": -2, - "valid": true - }, - { - "description": "boundary point with float is valid", - "data": -2.0, - "valid": true - }, - { - "description": "float below the minimum is invalid", - "data": -2.0001, - "valid": false - }, - { - "description": "int below the minimum is invalid", - "data": -3, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "x", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/multipleOf.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/multipleOf.json deleted file mode 100644 index e606979b7..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/multipleOf.json +++ /dev/null @@ -1,82 +0,0 @@ -[ - { - "description": "by int", - "schema": {"multipleOf": 2}, - "tests": [ - { - "description": "int by int", - "data": 10, - "valid": true - }, - { - "description": "int by int fail", - "data": 7, - "valid": false - }, - { - "description": "ignores non-numbers", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "by number", - "schema": {"multipleOf": 1.5}, - "tests": [ - { - "description": "zero is multiple of anything", - "data": 0, - "valid": true - }, - { - "description": "4.5 is multiple of 1.5", - "data": 4.5, - "valid": true - }, - { - "description": "35 is not multiple of 1.5", - "data": 35, - "valid": false - } - ] - }, - { - "description": "by small number", - "schema": {"multipleOf": 0.0001}, - "tests": [ - { - "description": "0.0075 is multiple of 0.0001", - "data": 0.0075, - "valid": true - }, - { - "description": "0.00751 is not multiple of 0.0001", - "data": 0.00751, - "valid": false - } - ] - }, - { - "description": "float division = inf", - "schema": {"type": "integer", "multipleOf": 0.123456789}, - "tests": [ - { - "description": "always invalid, but naive implementations may raise an overflow error", - "data": 1e308, - "valid": false - } - ] - }, - { - "description": "small multiple of large integer", - "schema": {"type": "integer", "multipleOf": 1e-8}, - "tests": [ - { - "description": "any integer is a multiple of 1e-8", - "data": 12391239123, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/not.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/not.json deleted file mode 100644 index b46c4ed05..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/not.json +++ /dev/null @@ -1,259 +0,0 @@ -[ - { - "description": "not", - "schema": { - "not": {"type": "integer"} - }, - "tests": [ - { - "description": "allowed", - "data": "foo", - "valid": true - }, - { - "description": "disallowed", - "data": 1, - "valid": false - } - ] - }, - { - "description": "not multiple types", - "schema": { - "not": {"type": ["integer", "boolean"]} - }, - "tests": [ - { - "description": "valid", - "data": "foo", - "valid": true - }, - { - "description": "mismatch", - "data": 1, - "valid": false - }, - { - "description": "other mismatch", - "data": true, - "valid": false - } - ] - }, - { - "description": "not more complex schema", - "schema": { - "not": { - "type": "object", - "properties": { - "foo": { - "type": "string" - } - } - } - }, - "tests": [ - { - "description": "match", - "data": 1, - "valid": true - }, - { - "description": "other match", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "mismatch", - "data": {"foo": "bar"}, - "valid": false - } - ] - }, - { - "description": "forbidden property", - "schema": { - "properties": { - "foo": { - "not": {} - } - } - }, - "tests": [ - { - "description": "property present", - "data": {"foo": 1, "bar": 2}, - "valid": false - }, - { - "description": "property absent", - "data": {"bar": 1, "baz": 2}, - "valid": true - } - ] - }, - { - "description": "forbid everything with empty schema", - "schema": { "not": {} }, - "tests": [ - { - "description": "number is invalid", - "data": 1, - "valid": false - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - }, - { - "description": "boolean true is invalid", - "data": true, - "valid": false - }, - { - "description": "boolean false is invalid", - "data": false, - "valid": false - }, - { - "description": "null is invalid", - "data": null, - "valid": false - }, - { - "description": "object is invalid", - "data": {"foo": "bar"}, - "valid": false - }, - { - "description": "empty object is invalid", - "data": {}, - "valid": false - }, - { - "description": "array is invalid", - "data": ["foo"], - "valid": false - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - } - ] - }, - { - "description": "forbid everything with boolean schema true", - "schema": { "not": true }, - "tests": [ - { - "description": "number is invalid", - "data": 1, - "valid": false - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - }, - { - "description": "boolean true is invalid", - "data": true, - "valid": false - }, - { - "description": "boolean false is invalid", - "data": false, - "valid": false - }, - { - "description": "null is invalid", - "data": null, - "valid": false - }, - { - "description": "object is invalid", - "data": {"foo": "bar"}, - "valid": false - }, - { - "description": "empty object is invalid", - "data": {}, - "valid": false - }, - { - "description": "array is invalid", - "data": ["foo"], - "valid": false - }, - { - "description": "empty array is invalid", - "data": [], - "valid": false - } - ] - }, - { - "description": "allow everything with boolean schema false", - "schema": { "not": false }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "string is valid", - "data": "foo", - "valid": true - }, - { - "description": "boolean true is valid", - "data": true, - "valid": true - }, - { - "description": "boolean false is valid", - "data": false, - "valid": true - }, - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "object is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "empty object is valid", - "data": {}, - "valid": true - }, - { - "description": "array is valid", - "data": ["foo"], - "valid": true - }, - { - "description": "empty array is valid", - "data": [], - "valid": true - } - ] - }, - { - "description": "double negation", - "schema": { "not": { "not": {} } }, - "tests": [ - { - "description": "any value is valid", - "data": "foo", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/oneOf.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/oneOf.json deleted file mode 100644 index c30a65c0d..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/oneOf.json +++ /dev/null @@ -1,274 +0,0 @@ -[ - { - "description": "oneOf", - "schema": { - "oneOf": [ - { - "type": "integer" - }, - { - "minimum": 2 - } - ] - }, - "tests": [ - { - "description": "first oneOf valid", - "data": 1, - "valid": true - }, - { - "description": "second oneOf valid", - "data": 2.5, - "valid": true - }, - { - "description": "both oneOf valid", - "data": 3, - "valid": false - }, - { - "description": "neither oneOf valid", - "data": 1.5, - "valid": false - } - ] - }, - { - "description": "oneOf with base schema", - "schema": { - "type": "string", - "oneOf" : [ - { - "minLength": 2 - }, - { - "maxLength": 4 - } - ] - }, - "tests": [ - { - "description": "mismatch base schema", - "data": 3, - "valid": false - }, - { - "description": "one oneOf valid", - "data": "foobar", - "valid": true - }, - { - "description": "both oneOf valid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "oneOf with boolean schemas, all true", - "schema": {"oneOf": [true, true, true]}, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "oneOf with boolean schemas, one true", - "schema": {"oneOf": [true, false, false]}, - "tests": [ - { - "description": "any value is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "oneOf with boolean schemas, more than one true", - "schema": {"oneOf": [true, true, false]}, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "oneOf with boolean schemas, all false", - "schema": {"oneOf": [false, false, false]}, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "oneOf complex types", - "schema": { - "oneOf": [ - { - "properties": { - "bar": {"type": "integer"} - }, - "required": ["bar"] - }, - { - "properties": { - "foo": {"type": "string"} - }, - "required": ["foo"] - } - ] - }, - "tests": [ - { - "description": "first oneOf valid (complex)", - "data": {"bar": 2}, - "valid": true - }, - { - "description": "second oneOf valid (complex)", - "data": {"foo": "baz"}, - "valid": true - }, - { - "description": "both oneOf valid (complex)", - "data": {"foo": "baz", "bar": 2}, - "valid": false - }, - { - "description": "neither oneOf valid (complex)", - "data": {"foo": 2, "bar": "quux"}, - "valid": false - } - ] - }, - { - "description": "oneOf with empty schema", - "schema": { - "oneOf": [ - { "type": "number" }, - {} - ] - }, - "tests": [ - { - "description": "one valid - valid", - "data": "foo", - "valid": true - }, - { - "description": "both valid - invalid", - "data": 123, - "valid": false - } - ] - }, - { - "description": "oneOf with required", - "schema": { - "type": "object", - "oneOf": [ - { "required": ["foo", "bar"] }, - { "required": ["foo", "baz"] } - ] - }, - "tests": [ - { - "description": "both invalid - invalid", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "first valid - valid", - "data": {"foo": 1, "bar": 2}, - "valid": true - }, - { - "description": "second valid - valid", - "data": {"foo": 1, "baz": 3}, - "valid": true - }, - { - "description": "both valid - invalid", - "data": {"foo": 1, "bar": 2, "baz" : 3}, - "valid": false - } - ] - }, - { - "description": "oneOf with missing optional property", - "schema": { - "oneOf": [ - { - "properties": { - "bar": true, - "baz": true - }, - "required": ["bar"] - }, - { - "properties": { - "foo": true - }, - "required": ["foo"] - } - ] - }, - "tests": [ - { - "description": "first oneOf valid", - "data": {"bar": 8}, - "valid": true - }, - { - "description": "second oneOf valid", - "data": {"foo": "foo"}, - "valid": true - }, - { - "description": "both oneOf valid", - "data": {"foo": "foo", "bar": 8}, - "valid": false - }, - { - "description": "neither oneOf valid", - "data": {"baz": "quux"}, - "valid": false - } - ] - }, - { - "description": "nested oneOf, to check validation semantics", - "schema": { - "oneOf": [ - { - "oneOf": [ - { - "type": "null" - } - ] - } - ] - }, - "tests": [ - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "anything non-null is invalid", - "data": 123, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/bignum.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/bignum.json deleted file mode 100644 index 94b4a4e62..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/bignum.json +++ /dev/null @@ -1,93 +0,0 @@ -[ - { - "description": "integer", - "schema": { "type": "integer" }, - "tests": [ - { - "description": "a bignum is an integer", - "data": 12345678910111213141516171819202122232425262728293031, - "valid": true - }, - { - "description": "a negative bignum is an integer", - "data": -12345678910111213141516171819202122232425262728293031, - "valid": true - } - ] - }, - { - "description": "number", - "schema": { "type": "number" }, - "tests": [ - { - "description": "a bignum is a number", - "data": 98249283749234923498293171823948729348710298301928331, - "valid": true - }, - { - "description": "a negative bignum is a number", - "data": -98249283749234923498293171823948729348710298301928331, - "valid": true - } - ] - }, - { - "description": "string", - "schema": { "type": "string" }, - "tests": [ - { - "description": "a bignum is not a string", - "data": 98249283749234923498293171823948729348710298301928331, - "valid": false - } - ] - }, - { - "description": "maximum integer comparison", - "schema": { "maximum": 18446744073709551615 }, - "tests": [ - { - "description": "comparison works for high numbers", - "data": 18446744073709551600, - "valid": true - } - ] - }, - { - "description": "float comparison with high precision", - "schema": { - "exclusiveMaximum": 972783798187987123879878123.18878137 - }, - "tests": [ - { - "description": "comparison works for high numbers", - "data": 972783798187987123879878123.188781371, - "valid": false - } - ] - }, - { - "description": "minimum integer comparison", - "schema": { "minimum": -18446744073709551615 }, - "tests": [ - { - "description": "comparison works for very negative numbers", - "data": -18446744073709551600, - "valid": true - } - ] - }, - { - "description": "float comparison with high precision on negative numbers", - "schema": { - "exclusiveMinimum": -972783798187987123879878123.18878137 - }, - "tests": [ - { - "description": "comparison works for very negative numbers", - "data": -972783798187987123879878123.188781371, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/content.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/content.json deleted file mode 100644 index 3f5a7430b..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/content.json +++ /dev/null @@ -1,77 +0,0 @@ -[ - { - "description": "validation of string-encoded content based on media type", - "schema": { - "contentMediaType": "application/json" - }, - "tests": [ - { - "description": "a valid JSON document", - "data": "{\"foo\": \"bar\"}", - "valid": true - }, - { - "description": "an invalid JSON document", - "data": "{:}", - "valid": false - }, - { - "description": "ignores non-strings", - "data": 100, - "valid": true - } - ] - }, - { - "description": "validation of binary string-encoding", - "schema": { - "contentEncoding": "base64" - }, - "tests": [ - { - "description": "a valid base64 string", - "data": "eyJmb28iOiAiYmFyIn0K", - "valid": true - }, - { - "description": "an invalid base64 string (% is not a valid character)", - "data": "eyJmb28iOi%iYmFyIn0K", - "valid": false - }, - { - "description": "ignores non-strings", - "data": 100, - "valid": true - } - ] - }, - { - "description": "validation of binary-encoded media type documents", - "schema": { - "contentMediaType": "application/json", - "contentEncoding": "base64" - }, - "tests": [ - { - "description": "a valid base64-encoded JSON document", - "data": "eyJmb28iOiAiYmFyIn0K", - "valid": true - }, - { - "description": "a validly-encoded invalid JSON document", - "data": "ezp9Cg==", - "valid": false - }, - { - "description": "an invalid base64 string that is valid JSON", - "data": "{}", - "valid": false - }, - { - "description": "ignores non-strings", - "data": 100, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/cross-draft.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/cross-draft.json deleted file mode 100644 index 8ff537362..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/cross-draft.json +++ /dev/null @@ -1,25 +0,0 @@ -[ - { - "description": "refs to future drafts are processed as future drafts", - "schema": { - "type": "object", - "allOf": [ - { "properties": { "foo": true } }, - { "$ref": "http://localhost:1234/draft2019-09/dependentRequired.json" } - ] - }, - "tests": [ - { - "description": "missing bar is invalid", - "comment": "if the implementation is not processing the $ref as a 2019-09 schema, this test will fail", - "data": {"foo": "any value"}, - "valid": false - }, - { - "description": "present bar is valid", - "data": {"foo": "any value", "bar": "also any value"}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/ecmascript-regex.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/ecmascript-regex.json deleted file mode 100644 index c4886aaa8..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/ecmascript-regex.json +++ /dev/null @@ -1,552 +0,0 @@ -[ - { - "description": "ECMA 262 regex $ does not match trailing newline", - "schema": { - "type": "string", - "pattern": "^abc$" - }, - "tests": [ - { - "description": "matches in Python, but not in ECMA 262", - "data": "abc\\n", - "valid": false - }, - { - "description": "matches", - "data": "abc", - "valid": true - } - ] - }, - { - "description": "ECMA 262 regex converts \\t to horizontal tab", - "schema": { - "type": "string", - "pattern": "^\\t$" - }, - "tests": [ - { - "description": "does not match", - "data": "\\t", - "valid": false - }, - { - "description": "matches", - "data": "\u0009", - "valid": true - } - ] - }, - { - "description": "ECMA 262 regex escapes control codes with \\c and upper letter", - "schema": { - "type": "string", - "pattern": "^\\cC$" - }, - "tests": [ - { - "description": "does not match", - "data": "\\cC", - "valid": false - }, - { - "description": "matches", - "data": "\u0003", - "valid": true - } - ] - }, - { - "description": "ECMA 262 regex escapes control codes with \\c and lower letter", - "schema": { - "type": "string", - "pattern": "^\\cc$" - }, - "tests": [ - { - "description": "does not match", - "data": "\\cc", - "valid": false - }, - { - "description": "matches", - "data": "\u0003", - "valid": true - } - ] - }, - { - "description": "ECMA 262 \\d matches ascii digits only", - "schema": { - "type": "string", - "pattern": "^\\d$" - }, - "tests": [ - { - "description": "ASCII zero matches", - "data": "0", - "valid": true - }, - { - "description": "NKO DIGIT ZERO does not match (unlike e.g. Python)", - "data": "߀", - "valid": false - }, - { - "description": "NKO DIGIT ZERO (as \\u escape) does not match", - "data": "\u07c0", - "valid": false - } - ] - }, - { - "description": "ECMA 262 \\D matches everything but ascii digits", - "schema": { - "type": "string", - "pattern": "^\\D$" - }, - "tests": [ - { - "description": "ASCII zero does not match", - "data": "0", - "valid": false - }, - { - "description": "NKO DIGIT ZERO matches (unlike e.g. Python)", - "data": "߀", - "valid": true - }, - { - "description": "NKO DIGIT ZERO (as \\u escape) matches", - "data": "\u07c0", - "valid": true - } - ] - }, - { - "description": "ECMA 262 \\w matches ascii letters only", - "schema": { - "type": "string", - "pattern": "^\\w$" - }, - "tests": [ - { - "description": "ASCII 'a' matches", - "data": "a", - "valid": true - }, - { - "description": "latin-1 e-acute does not match (unlike e.g. Python)", - "data": "é", - "valid": false - } - ] - }, - { - "description": "ECMA 262 \\W matches everything but ascii letters", - "schema": { - "type": "string", - "pattern": "^\\W$" - }, - "tests": [ - { - "description": "ASCII 'a' does not match", - "data": "a", - "valid": false - }, - { - "description": "latin-1 e-acute matches (unlike e.g. Python)", - "data": "é", - "valid": true - } - ] - }, - { - "description": "ECMA 262 \\s matches whitespace", - "schema": { - "type": "string", - "pattern": "^\\s$" - }, - "tests": [ - { - "description": "ASCII space matches", - "data": " ", - "valid": true - }, - { - "description": "Character tabulation matches", - "data": "\t", - "valid": true - }, - { - "description": "Line tabulation matches", - "data": "\u000b", - "valid": true - }, - { - "description": "Form feed matches", - "data": "\u000c", - "valid": true - }, - { - "description": "latin-1 non-breaking-space matches", - "data": "\u00a0", - "valid": true - }, - { - "description": "zero-width whitespace matches", - "data": "\ufeff", - "valid": true - }, - { - "description": "line feed matches (line terminator)", - "data": "\u000a", - "valid": true - }, - { - "description": "paragraph separator matches (line terminator)", - "data": "\u2029", - "valid": true - }, - { - "description": "EM SPACE matches (Space_Separator)", - "data": "\u2003", - "valid": true - }, - { - "description": "Non-whitespace control does not match", - "data": "\u0001", - "valid": false - }, - { - "description": "Non-whitespace does not match", - "data": "\u2013", - "valid": false - } - ] - }, - { - "description": "ECMA 262 \\S matches everything but whitespace", - "schema": { - "type": "string", - "pattern": "^\\S$" - }, - "tests": [ - { - "description": "ASCII space does not match", - "data": " ", - "valid": false - }, - { - "description": "Character tabulation does not match", - "data": "\t", - "valid": false - }, - { - "description": "Line tabulation does not match", - "data": "\u000b", - "valid": false - }, - { - "description": "Form feed does not match", - "data": "\u000c", - "valid": false - }, - { - "description": "latin-1 non-breaking-space does not match", - "data": "\u00a0", - "valid": false - }, - { - "description": "zero-width whitespace does not match", - "data": "\ufeff", - "valid": false - }, - { - "description": "line feed does not match (line terminator)", - "data": "\u000a", - "valid": false - }, - { - "description": "paragraph separator does not match (line terminator)", - "data": "\u2029", - "valid": false - }, - { - "description": "EM SPACE does not match (Space_Separator)", - "data": "\u2003", - "valid": false - }, - { - "description": "Non-whitespace control matches", - "data": "\u0001", - "valid": true - }, - { - "description": "Non-whitespace matches", - "data": "\u2013", - "valid": true - } - ] - }, - { - "description": "patterns always use unicode semantics with pattern", - "schema": { "pattern": "\\p{Letter}cole" }, - "tests": [ - { - "description": "ascii character in json string", - "data": "Les hivers de mon enfance etaient des saisons longues, longues. Nous vivions en trois lieux: l'ecole, l'eglise et la patinoire; mais la vraie vie etait sur la patinoire.", - "valid": true - }, - { - "description": "literal unicode character in json string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": true - }, - { - "description": "unicode character in hex format in string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'\u00e9cole, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": true - }, - { - "description": "unicode matching is case-sensitive", - "data": "LES HIVERS DE MON ENFANCE ÉTAIENT DES SAISONS LONGUES, LONGUES. NOUS VIVIONS EN TROIS LIEUX: L'ÉCOLE, L'ÉGLISE ET LA PATINOIRE; MAIS LA VRAIE VIE ÉTAIT SUR LA PATINOIRE.", - "valid": false - } - ] - }, - { - "description": "\\w in patterns matches [A-Za-z0-9_], not unicode letters", - "schema": { "pattern": "\\wcole" }, - "tests": [ - { - "description": "ascii character in json string", - "data": "Les hivers de mon enfance etaient des saisons longues, longues. Nous vivions en trois lieux: l'ecole, l'eglise et la patinoire; mais la vraie vie etait sur la patinoire.", - "valid": true - }, - { - "description": "literal unicode character in json string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": false - }, - { - "description": "unicode character in hex format in string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'\u00e9cole, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": false - }, - { - "description": "unicode matching is case-sensitive", - "data": "LES HIVERS DE MON ENFANCE ÉTAIENT DES SAISONS LONGUES, LONGUES. NOUS VIVIONS EN TROIS LIEUX: L'ÉCOLE, L'ÉGLISE ET LA PATINOIRE; MAIS LA VRAIE VIE ÉTAIT SUR LA PATINOIRE.", - "valid": false - } - ] - }, - { - "description": "pattern with ASCII ranges", - "schema": { "pattern": "[a-z]cole" }, - "tests": [ - { - "description": "literal unicode character in json string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'école, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": false - }, - { - "description": "unicode character in hex format in string", - "data": "Les hivers de mon enfance étaient des saisons longues, longues. Nous vivions en trois lieux: l'\u00e9cole, l'église et la patinoire; mais la vraie vie était sur la patinoire.", - "valid": false - }, - { - "description": "ascii characters match", - "data": "Les hivers de mon enfance etaient des saisons longues, longues. Nous vivions en trois lieux: l'ecole, l'eglise et la patinoire; mais la vraie vie etait sur la patinoire.", - "valid": true - } - ] - }, - { - "description": "\\d in pattern matches [0-9], not unicode digits", - "schema": { "pattern": "^\\d+$" }, - "tests": [ - { - "description": "ascii digits", - "data": "42", - "valid": true - }, - { - "description": "ascii non-digits", - "data": "-%#", - "valid": false - }, - { - "description": "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)", - "data": "৪২", - "valid": false - } - ] - }, - { - "description": "pattern with non-ASCII digits", - "schema": { "pattern": "^\\p{digit}+$" }, - "tests": [ - { - "description": "ascii digits", - "data": "42", - "valid": true - }, - { - "description": "ascii non-digits", - "data": "-%#", - "valid": false - }, - { - "description": "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)", - "data": "৪২", - "valid": true - } - ] - }, - { - "description": "patterns always use unicode semantics with patternProperties", - "schema": { - "type": "object", - "patternProperties": { - "\\p{Letter}cole": true - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "ascii character in json string", - "data": { "l'ecole": "pas de vraie vie" }, - "valid": true - }, - { - "description": "literal unicode character in json string", - "data": { "l'école": "pas de vraie vie" }, - "valid": true - }, - { - "description": "unicode character in hex format in string", - "data": { "l'\u00e9cole": "pas de vraie vie" }, - "valid": true - }, - { - "description": "unicode matching is case-sensitive", - "data": { "L'ÉCOLE": "PAS DE VRAIE VIE" }, - "valid": false - } - ] - }, - { - "description": "\\w in patternProperties matches [A-Za-z0-9_], not unicode letters", - "schema": { - "type": "object", - "patternProperties": { - "\\wcole": true - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "ascii character in json string", - "data": { "l'ecole": "pas de vraie vie" }, - "valid": true - }, - { - "description": "literal unicode character in json string", - "data": { "l'école": "pas de vraie vie" }, - "valid": false - }, - { - "description": "unicode character in hex format in string", - "data": { "l'\u00e9cole": "pas de vraie vie" }, - "valid": false - }, - { - "description": "unicode matching is case-sensitive", - "data": { "L'ÉCOLE": "PAS DE VRAIE VIE" }, - "valid": false - } - ] - }, - { - "description": "patternProperties with ASCII ranges", - "schema": { - "type": "object", - "patternProperties": { - "[a-z]cole": true - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "literal unicode character in json string", - "data": { "l'école": "pas de vraie vie" }, - "valid": false - }, - { - "description": "unicode character in hex format in string", - "data": { "l'\u00e9cole": "pas de vraie vie" }, - "valid": false - }, - { - "description": "ascii characters match", - "data": { "l'ecole": "pas de vraie vie" }, - "valid": true - } - ] - }, - { - "description": "\\d in patternProperties matches [0-9], not unicode digits", - "schema": { - "type": "object", - "patternProperties": { - "^\\d+$": true - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "ascii digits", - "data": { "42": "life, the universe, and everything" }, - "valid": true - }, - { - "description": "ascii non-digits", - "data": { "-%#": "spending the year dead for tax reasons" }, - "valid": false - }, - { - "description": "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)", - "data": { "৪২": "khajit has wares if you have coin" }, - "valid": false - } - ] - }, - { - "description": "patternProperties with non-ASCII digits", - "schema": { - "type": "object", - "patternProperties": { - "^\\p{digit}+$": true - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "ascii digits", - "data": { "42": "life, the universe, and everything" }, - "valid": true - }, - { - "description": "ascii non-digits", - "data": { "-%#": "spending the year dead for tax reasons" }, - "valid": false - }, - { - "description": "non-ascii digits (BENGALI DIGIT FOUR, BENGALI DIGIT TWO)", - "data": { "৪২": "khajit has wares if you have coin" }, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/float-overflow.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/float-overflow.json deleted file mode 100644 index 52ff9827c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/float-overflow.json +++ /dev/null @@ -1,13 +0,0 @@ -[ - { - "description": "all integers are multiples of 0.5, if overflow is handled", - "schema": {"type": "integer", "multipleOf": 0.5}, - "tests": [ - { - "description": "valid if optional overflow handling is implemented", - "data": 1e308, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/date-time.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/date-time.json deleted file mode 100644 index 091127375..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/date-time.json +++ /dev/null @@ -1,133 +0,0 @@ -[ - { - "description": "validation of date-time strings", - "schema": { "format": "date-time" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid date-time string", - "data": "1963-06-19T08:30:06.283185Z", - "valid": true - }, - { - "description": "a valid date-time string without second fraction", - "data": "1963-06-19T08:30:06Z", - "valid": true - }, - { - "description": "a valid date-time string with plus offset", - "data": "1937-01-01T12:00:27.87+00:20", - "valid": true - }, - { - "description": "a valid date-time string with minus offset", - "data": "1990-12-31T15:59:50.123-08:00", - "valid": true - }, - { - "description": "a valid date-time with a leap second, UTC", - "data": "1998-12-31T23:59:60Z", - "valid": true - }, - { - "description": "a valid date-time with a leap second, with minus offset", - "data": "1998-12-31T15:59:60.123-08:00", - "valid": true - }, - { - "description": "an invalid date-time past leap second, UTC", - "data": "1998-12-31T23:59:61Z", - "valid": false - }, - { - "description": "an invalid date-time with leap second on a wrong minute, UTC", - "data": "1998-12-31T23:58:60Z", - "valid": false - }, - { - "description": "an invalid date-time with leap second on a wrong hour, UTC", - "data": "1998-12-31T22:59:60Z", - "valid": false - }, - { - "description": "an invalid day in date-time string", - "data": "1990-02-31T15:59:59.123-08:00", - "valid": false - }, - { - "description": "an invalid offset in date-time string", - "data": "1990-12-31T15:59:59-24:00", - "valid": false - }, - { - "description": "an invalid closing Z after time-zone offset", - "data": "1963-06-19T08:30:06.28123+01:00Z", - "valid": false - }, - { - "description": "an invalid date-time string", - "data": "06/19/1963 08:30:06 PST", - "valid": false - }, - { - "description": "case-insensitive T and Z", - "data": "1963-06-19t08:30:06.283185z", - "valid": true - }, - { - "description": "only RFC3339 not all of ISO 8601 are valid", - "data": "2013-350T01:01:01", - "valid": false - }, - { - "description": "invalid non-padded month dates", - "data": "1963-6-19T08:30:06.283185Z", - "valid": false - }, - { - "description": "invalid non-padded day dates", - "data": "1963-06-1T08:30:06.283185Z", - "valid": false - }, - { - "description": "invalid non-ASCII '৪' (a Bengali 4) in date portion", - "data": "1963-06-1৪T00:00:00Z", - "valid": false - }, - { - "description": "invalid non-ASCII '৪' (a Bengali 4) in time portion", - "data": "1963-06-11T0৪:00:00Z", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/date.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/date.json deleted file mode 100644 index d723124a4..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/date.json +++ /dev/null @@ -1,243 +0,0 @@ -[ - { - "description": "validation of date strings", - "schema": { "format": "date" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid date string", - "data": "1963-06-19", - "valid": true - }, - { - "description": "a valid date string with 31 days in January", - "data": "2020-01-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in January", - "data": "2020-01-32", - "valid": false - }, - { - "description": "a valid date string with 28 days in February (normal)", - "data": "2021-02-28", - "valid": true - }, - { - "description": "a invalid date string with 29 days in February (normal)", - "data": "2021-02-29", - "valid": false - }, - { - "description": "a valid date string with 29 days in February (leap)", - "data": "2020-02-29", - "valid": true - }, - { - "description": "a invalid date string with 30 days in February (leap)", - "data": "2020-02-30", - "valid": false - }, - { - "description": "a valid date string with 31 days in March", - "data": "2020-03-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in March", - "data": "2020-03-32", - "valid": false - }, - { - "description": "a valid date string with 30 days in April", - "data": "2020-04-30", - "valid": true - }, - { - "description": "a invalid date string with 31 days in April", - "data": "2020-04-31", - "valid": false - }, - { - "description": "a valid date string with 31 days in May", - "data": "2020-05-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in May", - "data": "2020-05-32", - "valid": false - }, - { - "description": "a valid date string with 30 days in June", - "data": "2020-06-30", - "valid": true - }, - { - "description": "a invalid date string with 31 days in June", - "data": "2020-06-31", - "valid": false - }, - { - "description": "a valid date string with 31 days in July", - "data": "2020-07-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in July", - "data": "2020-07-32", - "valid": false - }, - { - "description": "a valid date string with 31 days in August", - "data": "2020-08-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in August", - "data": "2020-08-32", - "valid": false - }, - { - "description": "a valid date string with 30 days in September", - "data": "2020-09-30", - "valid": true - }, - { - "description": "a invalid date string with 31 days in September", - "data": "2020-09-31", - "valid": false - }, - { - "description": "a valid date string with 31 days in October", - "data": "2020-10-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in October", - "data": "2020-10-32", - "valid": false - }, - { - "description": "a valid date string with 30 days in November", - "data": "2020-11-30", - "valid": true - }, - { - "description": "a invalid date string with 31 days in November", - "data": "2020-11-31", - "valid": false - }, - { - "description": "a valid date string with 31 days in December", - "data": "2020-12-31", - "valid": true - }, - { - "description": "a invalid date string with 32 days in December", - "data": "2020-12-32", - "valid": false - }, - { - "description": "a invalid date string with invalid month", - "data": "2020-13-01", - "valid": false - }, - { - "description": "an invalid date string", - "data": "06/19/1963", - "valid": false - }, - { - "description": "only RFC3339 not all of ISO 8601 are valid", - "data": "2013-350", - "valid": false - }, - { - "description": "non-padded month dates are not valid", - "data": "1998-1-20", - "valid": false - }, - { - "description": "non-padded day dates are not valid", - "data": "1998-01-1", - "valid": false - }, - { - "description": "invalid month", - "data": "1998-13-01", - "valid": false - }, - { - "description": "invalid month-day combination", - "data": "1998-04-31", - "valid": false - }, - { - "description": "2021 is not a leap year", - "data": "2021-02-29", - "valid": false - }, - { - "description": "2020 is a leap year", - "data": "2020-02-29", - "valid": true - }, - { - "description": "invalid non-ASCII '৪' (a Bengali 4)", - "data": "1963-06-1৪", - "valid": false - }, - { - "description": "ISO8601 / non-RFC3339: YYYYMMDD without dashes (2023-03-28)", - "data": "20230328", - "valid": false - }, - { - "description": "ISO8601 / non-RFC3339: week number implicit day of week (2023-01-02)", - "data": "2023-W01", - "valid": false - }, - { - "description": "ISO8601 / non-RFC3339: week number with day of week (2023-03-28)", - "data": "2023-W13-2", - "valid": false - }, - { - "description": "ISO8601 / non-RFC3339: week number rollover to next year (2023-01-01)", - "data": "2022W527", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/email.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/email.json deleted file mode 100644 index d6761a46b..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/email.json +++ /dev/null @@ -1,83 +0,0 @@ -[ - { - "description": "validation of e-mail addresses", - "schema": { "format": "email" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid e-mail address", - "data": "joe.bloggs@example.com", - "valid": true - }, - { - "description": "an invalid e-mail address", - "data": "2962", - "valid": false - }, - { - "description": "tilde in local part is valid", - "data": "te~st@example.com", - "valid": true - }, - { - "description": "tilde before local part is valid", - "data": "~test@example.com", - "valid": true - }, - { - "description": "tilde after local part is valid", - "data": "test~@example.com", - "valid": true - }, - { - "description": "dot before local part is not valid", - "data": ".test@example.com", - "valid": false - }, - { - "description": "dot after local part is not valid", - "data": "test.@example.com", - "valid": false - }, - { - "description": "two separated dots inside local part are valid", - "data": "te.s.t@example.com", - "valid": true - }, - { - "description": "two subsequent dots inside local part are not valid", - "data": "te..st@example.com", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/hostname.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/hostname.json deleted file mode 100644 index a8ecd194f..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/hostname.json +++ /dev/null @@ -1,118 +0,0 @@ -[ - { - "description": "validation of host names", - "schema": { "format": "hostname" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid host name", - "data": "www.example.com", - "valid": true - }, - { - "description": "a valid punycoded IDN hostname", - "data": "xn--4gbwdl.xn--wgbh1c", - "valid": true - }, - { - "description": "a host name starting with an illegal character", - "data": "-a-host-name-that-starts-with--", - "valid": false - }, - { - "description": "a host name containing illegal characters", - "data": "not_a_valid_host_name", - "valid": false - }, - { - "description": "a host name with a component too long", - "data": "a-vvvvvvvvvvvvvvvveeeeeeeeeeeeeeeerrrrrrrrrrrrrrrryyyyyyyyyyyyyyyy-long-host-name-component", - "valid": false - }, - { - "description": "starts with hyphen", - "data": "-hostname", - "valid": false - }, - { - "description": "ends with hyphen", - "data": "hostname-", - "valid": false - }, - { - "description": "starts with underscore", - "data": "_hostname", - "valid": false - }, - { - "description": "ends with underscore", - "data": "hostname_", - "valid": false - }, - { - "description": "contains underscore", - "data": "host_name", - "valid": false - }, - { - "description": "maximum label length", - "data": "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijk.com", - "valid": true - }, - { - "description": "exceeds maximum label length", - "data": "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijkl.com", - "valid": false - }, - { - "description": "single label", - "data": "hostname", - "valid": true - }, - { - "description": "single label with hyphen", - "data": "host-name", - "valid": true - }, - { - "description": "single label with digits", - "data": "h0stn4me", - "valid": true - }, - { - "description": "single label ending with digit", - "data": "hostnam3", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/idn-email.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/idn-email.json deleted file mode 100644 index 6e213745a..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/idn-email.json +++ /dev/null @@ -1,58 +0,0 @@ -[ - { - "description": "validation of an internationalized e-mail addresses", - "schema": { "format": "idn-email" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid idn e-mail (example@example.test in Hangul)", - "data": "실례@실례.테스트", - "valid": true - }, - { - "description": "an invalid idn e-mail address", - "data": "2962", - "valid": false - }, - { - "description": "a valid e-mail address", - "data": "joe.bloggs@example.com", - "valid": true - }, - { - "description": "an invalid e-mail address", - "data": "2962", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/idn-hostname.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/idn-hostname.json deleted file mode 100644 index dc47f7b5c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/idn-hostname.json +++ /dev/null @@ -1,324 +0,0 @@ -[ - { - "description": "validation of internationalized host names", - "schema": { "format": "idn-hostname" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid host name (example.test in Hangul)", - "data": "실례.테스트", - "valid": true - }, - { - "description": "illegal first char U+302E Hangul single dot tone mark", - "data": "〮실례.테스트", - "valid": false - }, - { - "description": "contains illegal char U+302E Hangul single dot tone mark", - "data": "실〮례.테스트", - "valid": false - }, - { - "description": "a host name with a component too long", - "data": "실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실실례례테스트례례례례례례례례례례례례례례례례례테스트례례례례례례례례례례례례례례례례례례례테스트례례례례례례례례례례례례테스트례례실례.테스트", - "valid": false - }, - { - "description": "invalid label, correct Punycode", - "comment": "https://tools.ietf.org/html/rfc5890#section-2.3.2.1 https://tools.ietf.org/html/rfc5891#section-4.4 https://tools.ietf.org/html/rfc3492#section-7.1", - "data": "-> $1.00 <--", - "valid": false - }, - { - "description": "valid Chinese Punycode", - "comment": "https://tools.ietf.org/html/rfc5890#section-2.3.2.1 https://tools.ietf.org/html/rfc5891#section-4.4", - "data": "xn--ihqwcrb4cv8a8dqg056pqjye", - "valid": true - }, - { - "description": "invalid Punycode", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.4 https://tools.ietf.org/html/rfc5890#section-2.3.2.1", - "data": "xn--X", - "valid": false - }, - { - "description": "U-label contains \"--\" in the 3rd and 4th position", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.1 https://tools.ietf.org/html/rfc5890#section-2.3.2.1", - "data": "XN--aa---o47jg78q", - "valid": false - }, - { - "description": "U-label starts with a dash", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.1", - "data": "-hello", - "valid": false - }, - { - "description": "U-label ends with a dash", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.1", - "data": "hello-", - "valid": false - }, - { - "description": "U-label starts and ends with a dash", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.1", - "data": "-hello-", - "valid": false - }, - { - "description": "Begins with a Spacing Combining Mark", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.2", - "data": "\u0903hello", - "valid": false - }, - { - "description": "Begins with a Nonspacing Mark", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.2", - "data": "\u0300hello", - "valid": false - }, - { - "description": "Begins with an Enclosing Mark", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.2", - "data": "\u0488hello", - "valid": false - }, - { - "description": "Exceptions that are PVALID, left-to-right chars", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.2 https://tools.ietf.org/html/rfc5892#section-2.6", - "data": "\u00df\u03c2\u0f0b\u3007", - "valid": true - }, - { - "description": "Exceptions that are PVALID, right-to-left chars", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.2 https://tools.ietf.org/html/rfc5892#section-2.6", - "data": "\u06fd\u06fe", - "valid": true - }, - { - "description": "Exceptions that are DISALLOWED, right-to-left chars", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.2 https://tools.ietf.org/html/rfc5892#section-2.6", - "data": "\u0640\u07fa", - "valid": false - }, - { - "description": "Exceptions that are DISALLOWED, left-to-right chars", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.2 https://tools.ietf.org/html/rfc5892#section-2.6 Note: The two combining marks (U+302E and U+302F) are in the middle and not at the start", - "data": "\u3031\u3032\u3033\u3034\u3035\u302e\u302f\u303b", - "valid": false - }, - { - "description": "MIDDLE DOT with no preceding 'l'", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.3", - "data": "a\u00b7l", - "valid": false - }, - { - "description": "MIDDLE DOT with nothing preceding", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.3", - "data": "\u00b7l", - "valid": false - }, - { - "description": "MIDDLE DOT with no following 'l'", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.3", - "data": "l\u00b7a", - "valid": false - }, - { - "description": "MIDDLE DOT with nothing following", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.3", - "data": "l\u00b7", - "valid": false - }, - { - "description": "MIDDLE DOT with surrounding 'l's", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.3", - "data": "l\u00b7l", - "valid": true - }, - { - "description": "Greek KERAIA not followed by Greek", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.4", - "data": "\u03b1\u0375S", - "valid": false - }, - { - "description": "Greek KERAIA not followed by anything", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.4", - "data": "\u03b1\u0375", - "valid": false - }, - { - "description": "Greek KERAIA followed by Greek", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.4", - "data": "\u03b1\u0375\u03b2", - "valid": true - }, - { - "description": "Hebrew GERESH not preceded by Hebrew", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.5", - "data": "A\u05f3\u05d1", - "valid": false - }, - { - "description": "Hebrew GERESH not preceded by anything", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.5", - "data": "\u05f3\u05d1", - "valid": false - }, - { - "description": "Hebrew GERESH preceded by Hebrew", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.5", - "data": "\u05d0\u05f3\u05d1", - "valid": true - }, - { - "description": "Hebrew GERSHAYIM not preceded by Hebrew", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.6", - "data": "A\u05f4\u05d1", - "valid": false - }, - { - "description": "Hebrew GERSHAYIM not preceded by anything", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.6", - "data": "\u05f4\u05d1", - "valid": false - }, - { - "description": "Hebrew GERSHAYIM preceded by Hebrew", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.6", - "data": "\u05d0\u05f4\u05d1", - "valid": true - }, - { - "description": "KATAKANA MIDDLE DOT with no Hiragana, Katakana, or Han", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.7", - "data": "def\u30fbabc", - "valid": false - }, - { - "description": "KATAKANA MIDDLE DOT with no other characters", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.7", - "data": "\u30fb", - "valid": false - }, - { - "description": "KATAKANA MIDDLE DOT with Hiragana", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.7", - "data": "\u30fb\u3041", - "valid": true - }, - { - "description": "KATAKANA MIDDLE DOT with Katakana", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.7", - "data": "\u30fb\u30a1", - "valid": true - }, - { - "description": "KATAKANA MIDDLE DOT with Han", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.7", - "data": "\u30fb\u4e08", - "valid": true - }, - { - "description": "Arabic-Indic digits mixed with Extended Arabic-Indic digits", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.8", - "data": "\u0660\u06f0", - "valid": false - }, - { - "description": "Arabic-Indic digits not mixed with Extended Arabic-Indic digits", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.8", - "data": "\u0628\u0660\u0628", - "valid": true - }, - { - "description": "Extended Arabic-Indic digits not mixed with Arabic-Indic digits", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.9", - "data": "\u06f00", - "valid": true - }, - { - "description": "ZERO WIDTH JOINER not preceded by Virama", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.2 https://www.unicode.org/review/pr-37.pdf", - "data": "\u0915\u200d\u0937", - "valid": false - }, - { - "description": "ZERO WIDTH JOINER not preceded by anything", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.2 https://www.unicode.org/review/pr-37.pdf", - "data": "\u200d\u0937", - "valid": false - }, - { - "description": "ZERO WIDTH JOINER preceded by Virama", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.2 https://www.unicode.org/review/pr-37.pdf", - "data": "\u0915\u094d\u200d\u0937", - "valid": true - }, - { - "description": "ZERO WIDTH NON-JOINER preceded by Virama", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.1", - "data": "\u0915\u094d\u200c\u0937", - "valid": true - }, - { - "description": "ZERO WIDTH NON-JOINER not preceded by Virama but matches regexp", - "comment": "https://tools.ietf.org/html/rfc5891#section-4.2.3.3 https://tools.ietf.org/html/rfc5892#appendix-A.1 https://www.w3.org/TR/alreq/#h_disjoining_enforcement", - "data": "\u0628\u064a\u200c\u0628\u064a", - "valid": true - }, - { - "description": "single label", - "data": "hostname", - "valid": true - }, - { - "description": "single label with hyphen", - "data": "host-name", - "valid": true - }, - { - "description": "single label with digits", - "data": "h0stn4me", - "valid": true - }, - { - "description": "single label ending with digit", - "data": "hostnam3", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/ipv4.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/ipv4.json deleted file mode 100644 index 9680fe620..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/ipv4.json +++ /dev/null @@ -1,89 +0,0 @@ -[ - { - "description": "validation of IP addresses", - "schema": { "format": "ipv4" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid IP address", - "data": "192.168.0.1", - "valid": true - }, - { - "description": "an IP address with too many components", - "data": "127.0.0.0.1", - "valid": false - }, - { - "description": "an IP address with out-of-range values", - "data": "256.256.256.256", - "valid": false - }, - { - "description": "an IP address without 4 components", - "data": "127.0", - "valid": false - }, - { - "description": "an IP address as an integer", - "data": "0x7f000001", - "valid": false - }, - { - "description": "an IP address as an integer (decimal)", - "data": "2130706433", - "valid": false - }, - { - "description": "invalid leading zeroes, as they are treated as octals", - "comment": "see https://sick.codes/universal-netmask-npm-package-used-by-270000-projects-vulnerable-to-octal-input-data-server-side-request-forgery-remote-file-inclusion-local-file-inclusion-and-more-cve-2021-28918/", - "data": "087.10.0.1", - "valid": false - }, - { - "description": "value without leading zero is valid", - "data": "87.10.0.1", - "valid": true - }, - { - "description": "invalid non-ASCII '২' (a Bengali 2)", - "data": "1২7.0.0.1", - "valid": false - }, - { - "description": "netmask is not a part of ipv4 address", - "data": "192.168.1.0/24", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/ipv6.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/ipv6.json deleted file mode 100644 index 94368f2a0..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/ipv6.json +++ /dev/null @@ -1,208 +0,0 @@ -[ - { - "description": "validation of IPv6 addresses", - "schema": { "format": "ipv6" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid IPv6 address", - "data": "::1", - "valid": true - }, - { - "description": "an IPv6 address with out-of-range values", - "data": "12345::", - "valid": false - }, - { - "description": "trailing 4 hex symbols is valid", - "data": "::abef", - "valid": true - }, - { - "description": "trailing 5 hex symbols is invalid", - "data": "::abcef", - "valid": false - }, - { - "description": "an IPv6 address with too many components", - "data": "1:1:1:1:1:1:1:1:1:1:1:1:1:1:1:1", - "valid": false - }, - { - "description": "an IPv6 address containing illegal characters", - "data": "::laptop", - "valid": false - }, - { - "description": "no digits is valid", - "data": "::", - "valid": true - }, - { - "description": "leading colons is valid", - "data": "::42:ff:1", - "valid": true - }, - { - "description": "trailing colons is valid", - "data": "d6::", - "valid": true - }, - { - "description": "missing leading octet is invalid", - "data": ":2:3:4:5:6:7:8", - "valid": false - }, - { - "description": "missing trailing octet is invalid", - "data": "1:2:3:4:5:6:7:", - "valid": false - }, - { - "description": "missing leading octet with omitted octets later", - "data": ":2:3:4::8", - "valid": false - }, - { - "description": "single set of double colons in the middle is valid", - "data": "1:d6::42", - "valid": true - }, - { - "description": "two sets of double colons is invalid", - "data": "1::d6::42", - "valid": false - }, - { - "description": "mixed format with the ipv4 section as decimal octets", - "data": "1::d6:192.168.0.1", - "valid": true - }, - { - "description": "mixed format with double colons between the sections", - "data": "1:2::192.168.0.1", - "valid": true - }, - { - "description": "mixed format with ipv4 section with octet out of range", - "data": "1::2:192.168.256.1", - "valid": false - }, - { - "description": "mixed format with ipv4 section with a hex octet", - "data": "1::2:192.168.ff.1", - "valid": false - }, - { - "description": "mixed format with leading double colons (ipv4-mapped ipv6 address)", - "data": "::ffff:192.168.0.1", - "valid": true - }, - { - "description": "triple colons is invalid", - "data": "1:2:3:4:5:::8", - "valid": false - }, - { - "description": "8 octets", - "data": "1:2:3:4:5:6:7:8", - "valid": true - }, - { - "description": "insufficient octets without double colons", - "data": "1:2:3:4:5:6:7", - "valid": false - }, - { - "description": "no colons is invalid", - "data": "1", - "valid": false - }, - { - "description": "ipv4 is not ipv6", - "data": "127.0.0.1", - "valid": false - }, - { - "description": "ipv4 segment must have 4 octets", - "data": "1:2:3:4:1.2.3", - "valid": false - }, - { - "description": "leading whitespace is invalid", - "data": " ::1", - "valid": false - }, - { - "description": "trailing whitespace is invalid", - "data": "::1 ", - "valid": false - }, - { - "description": "netmask is not a part of ipv6 address", - "data": "fe80::/64", - "valid": false - }, - { - "description": "zone id is not a part of ipv6 address", - "data": "fe80::a%eth1", - "valid": false - }, - { - "description": "a long valid ipv6", - "data": "1000:1000:1000:1000:1000:1000:255.255.255.255", - "valid": true - }, - { - "description": "a long invalid ipv6, below length limit, first", - "data": "100:100:100:100:100:100:255.255.255.255.255", - "valid": false - }, - { - "description": "a long invalid ipv6, below length limit, second", - "data": "100:100:100:100:100:100:100:255.255.255.255", - "valid": false - }, - { - "description": "invalid non-ASCII '৪' (a Bengali 4)", - "data": "1:2:3:4:5:6:7:৪", - "valid": false - }, - { - "description": "invalid non-ASCII '৪' (a Bengali 4) in the IPv4 portion", - "data": "1:2::192.16৪.0.1", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/iri-reference.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/iri-reference.json deleted file mode 100644 index c6b4c22a2..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/iri-reference.json +++ /dev/null @@ -1,73 +0,0 @@ -[ - { - "description": "validation of IRI References", - "schema": { "format": "iri-reference" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid IRI", - "data": "http://ƒøø.ßår/?∂éœ=πîx#πîüx", - "valid": true - }, - { - "description": "a valid protocol-relative IRI Reference", - "data": "//ƒøø.ßår/?∂éœ=πîx#πîüx", - "valid": true - }, - { - "description": "a valid relative IRI Reference", - "data": "/âππ", - "valid": true - }, - { - "description": "an invalid IRI Reference", - "data": "\\\\WINDOWS\\filëßåré", - "valid": false - }, - { - "description": "a valid IRI Reference", - "data": "âππ", - "valid": true - }, - { - "description": "a valid IRI fragment", - "data": "#ƒrägmênt", - "valid": true - }, - { - "description": "an invalid IRI fragment", - "data": "#ƒräg\\mênt", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/iri.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/iri.json deleted file mode 100644 index a0d12aed6..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/iri.json +++ /dev/null @@ -1,83 +0,0 @@ -[ - { - "description": "validation of IRIs", - "schema": { "format": "iri" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid IRI with anchor tag", - "data": "http://ƒøø.ßår/?∂éœ=πîx#πîüx", - "valid": true - }, - { - "description": "a valid IRI with anchor tag and parentheses", - "data": "http://ƒøø.com/blah_(wîkïpédiå)_blah#ßité-1", - "valid": true - }, - { - "description": "a valid IRI with URL-encoded stuff", - "data": "http://ƒøø.ßår/?q=Test%20URL-encoded%20stuff", - "valid": true - }, - { - "description": "a valid IRI with many special characters", - "data": "http://-.~_!$&'()*+,;=:%40:80%2f::::::@example.com", - "valid": true - }, - { - "description": "a valid IRI based on IPv6", - "data": "http://[2001:0db8:85a3:0000:0000:8a2e:0370:7334]", - "valid": true - }, - { - "description": "an invalid IRI based on IPv6", - "data": "http://2001:0db8:85a3:0000:0000:8a2e:0370:7334", - "valid": false - }, - { - "description": "an invalid relative IRI Reference", - "data": "/abc", - "valid": false - }, - { - "description": "an invalid IRI", - "data": "\\\\WINDOWS\\filëßåré", - "valid": false - }, - { - "description": "an invalid IRI though valid IRI reference", - "data": "âππ", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/json-pointer.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/json-pointer.json deleted file mode 100644 index a0346b575..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/json-pointer.json +++ /dev/null @@ -1,198 +0,0 @@ -[ - { - "description": "validation of JSON-pointers (JSON String Representation)", - "schema": { "format": "json-pointer" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid JSON-pointer", - "data": "/foo/bar~0/baz~1/%a", - "valid": true - }, - { - "description": "not a valid JSON-pointer (~ not escaped)", - "data": "/foo/bar~", - "valid": false - }, - { - "description": "valid JSON-pointer with empty segment", - "data": "/foo//bar", - "valid": true - }, - { - "description": "valid JSON-pointer with the last empty segment", - "data": "/foo/bar/", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #1", - "data": "", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #2", - "data": "/foo", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #3", - "data": "/foo/0", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #4", - "data": "/", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #5", - "data": "/a~1b", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #6", - "data": "/c%d", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #7", - "data": "/e^f", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #8", - "data": "/g|h", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #9", - "data": "/i\\j", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #10", - "data": "/k\"l", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #11", - "data": "/ ", - "valid": true - }, - { - "description": "valid JSON-pointer as stated in RFC 6901 #12", - "data": "/m~0n", - "valid": true - }, - { - "description": "valid JSON-pointer used adding to the last array position", - "data": "/foo/-", - "valid": true - }, - { - "description": "valid JSON-pointer (- used as object member name)", - "data": "/foo/-/bar", - "valid": true - }, - { - "description": "valid JSON-pointer (multiple escaped characters)", - "data": "/~1~0~0~1~1", - "valid": true - }, - { - "description": "valid JSON-pointer (escaped with fraction part) #1", - "data": "/~1.1", - "valid": true - }, - { - "description": "valid JSON-pointer (escaped with fraction part) #2", - "data": "/~0.1", - "valid": true - }, - { - "description": "not a valid JSON-pointer (URI Fragment Identifier) #1", - "data": "#", - "valid": false - }, - { - "description": "not a valid JSON-pointer (URI Fragment Identifier) #2", - "data": "#/", - "valid": false - }, - { - "description": "not a valid JSON-pointer (URI Fragment Identifier) #3", - "data": "#a", - "valid": false - }, - { - "description": "not a valid JSON-pointer (some escaped, but not all) #1", - "data": "/~0~", - "valid": false - }, - { - "description": "not a valid JSON-pointer (some escaped, but not all) #2", - "data": "/~0/~", - "valid": false - }, - { - "description": "not a valid JSON-pointer (wrong escape character) #1", - "data": "/~2", - "valid": false - }, - { - "description": "not a valid JSON-pointer (wrong escape character) #2", - "data": "/~-1", - "valid": false - }, - { - "description": "not a valid JSON-pointer (multiple characters not escaped)", - "data": "/~~", - "valid": false - }, - { - "description": "not a valid JSON-pointer (isn't empty nor starts with /) #1", - "data": "a", - "valid": false - }, - { - "description": "not a valid JSON-pointer (isn't empty nor starts with /) #2", - "data": "0", - "valid": false - }, - { - "description": "not a valid JSON-pointer (isn't empty nor starts with /) #3", - "data": "a/a", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/regex.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/regex.json deleted file mode 100644 index 34491770a..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/regex.json +++ /dev/null @@ -1,48 +0,0 @@ -[ - { - "description": "validation of regular expressions", - "schema": { "format": "regex" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid regular expression", - "data": "([abc])+\\s+$", - "valid": true - }, - { - "description": "a regular expression with unclosed parens is invalid", - "data": "^(abc]", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/relative-json-pointer.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/relative-json-pointer.json deleted file mode 100644 index e50e505f7..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/relative-json-pointer.json +++ /dev/null @@ -1,98 +0,0 @@ -[ - { - "description": "validation of Relative JSON Pointers (RJP)", - "schema": { "format": "relative-json-pointer" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid upwards RJP", - "data": "1", - "valid": true - }, - { - "description": "a valid downwards RJP", - "data": "0/foo/bar", - "valid": true - }, - { - "description": "a valid up and then down RJP, with array index", - "data": "2/0/baz/1/zip", - "valid": true - }, - { - "description": "a valid RJP taking the member or index name", - "data": "0#", - "valid": true - }, - { - "description": "an invalid RJP that is a valid JSON Pointer", - "data": "/foo/bar", - "valid": false - }, - { - "description": "negative prefix", - "data": "-1/foo/bar", - "valid": false - }, - { - "description": "explicit positive prefix", - "data": "+1/foo/bar", - "valid": false - }, - { - "description": "## is not a valid json-pointer", - "data": "0##", - "valid": false - }, - { - "description": "zero cannot be followed by other digits, plus json-pointer", - "data": "01/a", - "valid": false - }, - { - "description": "zero cannot be followed by other digits, plus octothorpe", - "data": "01#", - "valid": false - }, - { - "description": "empty string", - "data": "", - "valid": false - }, - { - "description": "multi-digit integer prefix", - "data": "120/foo/bar", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/time.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/time.json deleted file mode 100644 index 014ecd8d7..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/time.json +++ /dev/null @@ -1,233 +0,0 @@ -[ - { - "description": "validation of time strings", - "schema": { "format": "time" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid time string", - "data": "08:30:06Z", - "valid": true - }, - { - "description": "invalid time string with extra leading zeros", - "data": "008:030:006Z", - "valid": false - }, - { - "description": "invalid time string with no leading zero for single digit", - "data": "8:3:6Z", - "valid": false - }, - { - "description": "hour, minute, second must be two digits", - "data": "8:0030:6Z", - "valid": false - }, - { - "description": "a valid time string with leap second, Zulu", - "data": "23:59:60Z", - "valid": true - }, - { - "description": "invalid leap second, Zulu (wrong hour)", - "data": "22:59:60Z", - "valid": false - }, - { - "description": "invalid leap second, Zulu (wrong minute)", - "data": "23:58:60Z", - "valid": false - }, - { - "description": "valid leap second, zero time-offset", - "data": "23:59:60+00:00", - "valid": true - }, - { - "description": "invalid leap second, zero time-offset (wrong hour)", - "data": "22:59:60+00:00", - "valid": false - }, - { - "description": "invalid leap second, zero time-offset (wrong minute)", - "data": "23:58:60+00:00", - "valid": false - }, - { - "description": "valid leap second, positive time-offset", - "data": "01:29:60+01:30", - "valid": true - }, - { - "description": "valid leap second, large positive time-offset", - "data": "23:29:60+23:30", - "valid": true - }, - { - "description": "invalid leap second, positive time-offset (wrong hour)", - "data": "23:59:60+01:00", - "valid": false - }, - { - "description": "invalid leap second, positive time-offset (wrong minute)", - "data": "23:59:60+00:30", - "valid": false - }, - { - "description": "valid leap second, negative time-offset", - "data": "15:59:60-08:00", - "valid": true - }, - { - "description": "valid leap second, large negative time-offset", - "data": "00:29:60-23:30", - "valid": true - }, - { - "description": "invalid leap second, negative time-offset (wrong hour)", - "data": "23:59:60-01:00", - "valid": false - }, - { - "description": "invalid leap second, negative time-offset (wrong minute)", - "data": "23:59:60-00:30", - "valid": false - }, - { - "description": "a valid time string with second fraction", - "data": "23:20:50.52Z", - "valid": true - }, - { - "description": "a valid time string with precise second fraction", - "data": "08:30:06.283185Z", - "valid": true - }, - { - "description": "a valid time string with plus offset", - "data": "08:30:06+00:20", - "valid": true - }, - { - "description": "a valid time string with minus offset", - "data": "08:30:06-08:00", - "valid": true - }, - { - "description": "hour, minute in time-offset must be two digits", - "data": "08:30:06-8:000", - "valid": false - }, - { - "description": "a valid time string with case-insensitive Z", - "data": "08:30:06z", - "valid": true - }, - { - "description": "an invalid time string with invalid hour", - "data": "24:00:00Z", - "valid": false - }, - { - "description": "an invalid time string with invalid minute", - "data": "00:60:00Z", - "valid": false - }, - { - "description": "an invalid time string with invalid second", - "data": "00:00:61Z", - "valid": false - }, - { - "description": "an invalid time string with invalid leap second (wrong hour)", - "data": "22:59:60Z", - "valid": false - }, - { - "description": "an invalid time string with invalid leap second (wrong minute)", - "data": "23:58:60Z", - "valid": false - }, - { - "description": "an invalid time string with invalid time numoffset hour", - "data": "01:02:03+24:00", - "valid": false - }, - { - "description": "an invalid time string with invalid time numoffset minute", - "data": "01:02:03+00:60", - "valid": false - }, - { - "description": "an invalid time string with invalid time with both Z and numoffset", - "data": "01:02:03Z+00:30", - "valid": false - }, - { - "description": "an invalid offset indicator", - "data": "08:30:06 PST", - "valid": false - }, - { - "description": "only RFC3339 not all of ISO 8601 are valid", - "data": "01:01:01,1111", - "valid": false - }, - { - "description": "no time offset", - "data": "12:00:00", - "valid": false - }, - { - "description": "no time offset with second fraction", - "data": "12:00:00.52", - "valid": false - }, - { - "description": "invalid non-ASCII '২' (a Bengali 2)", - "data": "1২:00:00Z", - "valid": false - }, - { - "description": "offset not starting with plus or minus", - "data": "08:30:06#00:20", - "valid": false - }, - { - "description": "contains letters", - "data": "ab:cd:ef", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/unknown.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/unknown.json deleted file mode 100644 index 12339ae57..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/unknown.json +++ /dev/null @@ -1,43 +0,0 @@ -[ - { - "description": "unknown format", - "schema": { "format": "unknown" }, - "tests": [ - { - "description": "unknown formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "unknown formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "unknown formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "unknown formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "unknown formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "unknown formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "unknown formats ignore strings", - "data": "string", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/uri-reference.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/uri-reference.json deleted file mode 100644 index 7cdf228d8..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/uri-reference.json +++ /dev/null @@ -1,73 +0,0 @@ -[ - { - "description": "validation of URI References", - "schema": { "format": "uri-reference" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid URI", - "data": "http://foo.bar/?baz=qux#quux", - "valid": true - }, - { - "description": "a valid protocol-relative URI Reference", - "data": "//foo.bar/?baz=qux#quux", - "valid": true - }, - { - "description": "a valid relative URI Reference", - "data": "/abc", - "valid": true - }, - { - "description": "an invalid URI Reference", - "data": "\\\\WINDOWS\\fileshare", - "valid": false - }, - { - "description": "a valid URI Reference", - "data": "abc", - "valid": true - }, - { - "description": "a valid URI fragment", - "data": "#fragment", - "valid": true - }, - { - "description": "an invalid URI fragment", - "data": "#frag\\ment", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/uri-template.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/uri-template.json deleted file mode 100644 index df355c55a..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/uri-template.json +++ /dev/null @@ -1,58 +0,0 @@ -[ - { - "description": "format: uri-template", - "schema": { "format": "uri-template" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid uri-template", - "data": "http://example.com/dictionary/{term:1}/{term}", - "valid": true - }, - { - "description": "an invalid uri-template", - "data": "http://example.com/dictionary/{term:1}/{term", - "valid": false - }, - { - "description": "a valid uri-template without variables", - "data": "http://example.com/dictionary", - "valid": true - }, - { - "description": "a valid relative uri-template", - "data": "dictionary/{term:1}/{term}", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/uri.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/uri.json deleted file mode 100644 index 4b48d4060..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/format/uri.json +++ /dev/null @@ -1,138 +0,0 @@ -[ - { - "description": "validation of URIs", - "schema": { "format": "uri" }, - "tests": [ - { - "description": "all string formats ignore integers", - "data": 12, - "valid": true - }, - { - "description": "all string formats ignore floats", - "data": 13.7, - "valid": true - }, - { - "description": "all string formats ignore objects", - "data": {}, - "valid": true - }, - { - "description": "all string formats ignore arrays", - "data": [], - "valid": true - }, - { - "description": "all string formats ignore booleans", - "data": false, - "valid": true - }, - { - "description": "all string formats ignore nulls", - "data": null, - "valid": true - }, - { - "description": "a valid URL with anchor tag", - "data": "http://foo.bar/?baz=qux#quux", - "valid": true - }, - { - "description": "a valid URL with anchor tag and parentheses", - "data": "http://foo.com/blah_(wikipedia)_blah#cite-1", - "valid": true - }, - { - "description": "a valid URL with URL-encoded stuff", - "data": "http://foo.bar/?q=Test%20URL-encoded%20stuff", - "valid": true - }, - { - "description": "a valid puny-coded URL ", - "data": "http://xn--nw2a.xn--j6w193g/", - "valid": true - }, - { - "description": "a valid URL with many special characters", - "data": "http://-.~_!$&'()*+,;=:%40:80%2f::::::@example.com", - "valid": true - }, - { - "description": "a valid URL based on IPv4", - "data": "http://223.255.255.254", - "valid": true - }, - { - "description": "a valid URL with ftp scheme", - "data": "ftp://ftp.is.co.za/rfc/rfc1808.txt", - "valid": true - }, - { - "description": "a valid URL for a simple text file", - "data": "http://www.ietf.org/rfc/rfc2396.txt", - "valid": true - }, - { - "description": "a valid URL ", - "data": "ldap://[2001:db8::7]/c=GB?objectClass?one", - "valid": true - }, - { - "description": "a valid mailto URI", - "data": "mailto:John.Doe@example.com", - "valid": true - }, - { - "description": "a valid newsgroup URI", - "data": "news:comp.infosystems.www.servers.unix", - "valid": true - }, - { - "description": "a valid tel URI", - "data": "tel:+1-816-555-1212", - "valid": true - }, - { - "description": "a valid URN", - "data": "urn:oasis:names:specification:docbook:dtd:xml:4.1.2", - "valid": true - }, - { - "description": "an invalid protocol-relative URI Reference", - "data": "//foo.bar/?baz=qux#quux", - "valid": false - }, - { - "description": "an invalid relative URI Reference", - "data": "/abc", - "valid": false - }, - { - "description": "an invalid URI", - "data": "\\\\WINDOWS\\fileshare", - "valid": false - }, - { - "description": "an invalid URI though valid URI reference", - "data": "abc", - "valid": false - }, - { - "description": "an invalid URI with spaces", - "data": "http:// shouldfail.com", - "valid": false - }, - { - "description": "an invalid URI with spaces and missing scheme", - "data": ":// should fail", - "valid": false - }, - { - "description": "an invalid URI with comma in scheme", - "data": "bar,baz:foo", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/id.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/id.json deleted file mode 100644 index 6be81b8da..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/id.json +++ /dev/null @@ -1,114 +0,0 @@ -[ - { - "description": "id inside an enum is not a real identifier", - "comment": "the implementation must not be confused by an id buried in the enum", - "schema": { - "definitions": { - "id_in_enum": { - "enum": [ - { - "$id": "https://localhost:1234/id/my_identifier.json", - "type": "null" - } - ] - }, - "real_id_in_schema": { - "$id": "https://localhost:1234/id/my_identifier.json", - "type": "string" - }, - "zzz_id_in_const": { - "const": { - "$id": "https://localhost:1234/id/my_identifier.json", - "type": "null" - } - } - }, - "anyOf": [ - { "$ref": "#/definitions/id_in_enum" }, - { "$ref": "https://localhost:1234/id/my_identifier.json" } - ] - }, - "tests": [ - { - "description": "exact match to enum, and type matches", - "data": { - "$id": "https://localhost:1234/id/my_identifier.json", - "type": "null" - }, - "valid": true - }, - { - "description": "match $ref to id", - "data": "a string to match #/definitions/id_in_enum", - "valid": true - }, - { - "description": "no match on enum or $ref to id", - "data": 1, - "valid": false - } - ] - }, - { - "description": "non-schema object containing a plain-name $id property", - "schema": { - "definitions": { - "const_not_anchor": { - "const": { - "$id": "#not_a_real_anchor" - } - } - }, - "if": { - "const": "skip not_a_real_anchor" - }, - "then": true, - "else" : { - "$ref": "#/definitions/const_not_anchor" - } - }, - "tests": [ - { - "description": "skip traversing definition for a valid result", - "data": "skip not_a_real_anchor", - "valid": true - }, - { - "description": "const at const_not_anchor does not match", - "data": 1, - "valid": false - } - ] - }, - { - "description": "non-schema object containing an $id property", - "schema": { - "definitions": { - "const_not_id": { - "const": { - "$id": "not_a_real_id" - } - } - }, - "if": { - "const": "skip not_a_real_id" - }, - "then": true, - "else" : { - "$ref": "#/definitions/const_not_id" - } - }, - "tests": [ - { - "description": "skip traversing definition for a valid result", - "data": "skip not_a_real_id", - "valid": true - }, - { - "description": "const at const_not_id does not match", - "data": 1, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/non-bmp-regex.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/non-bmp-regex.json deleted file mode 100644 index dd67af2b2..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/non-bmp-regex.json +++ /dev/null @@ -1,82 +0,0 @@ -[ - { - "description": "Proper UTF-16 surrogate pair handling: pattern", - "comment": "Optional because .Net doesn't correctly handle 32-bit Unicode characters", - "schema": { "pattern": "^🐲*$" }, - "tests": [ - { - "description": "matches empty", - "data": "", - "valid": true - }, - { - "description": "matches single", - "data": "🐲", - "valid": true - }, - { - "description": "matches two", - "data": "🐲🐲", - "valid": true - }, - { - "description": "doesn't match one", - "data": "🐉", - "valid": false - }, - { - "description": "doesn't match two", - "data": "🐉🐉", - "valid": false - }, - { - "description": "doesn't match one ASCII", - "data": "D", - "valid": false - }, - { - "description": "doesn't match two ASCII", - "data": "DD", - "valid": false - } - ] - }, - { - "description": "Proper UTF-16 surrogate pair handling: patternProperties", - "comment": "Optional because .Net doesn't correctly handle 32-bit Unicode characters", - "schema": { - "patternProperties": { - "^🐲*$": { - "type": "integer" - } - } - }, - "tests": [ - { - "description": "matches empty", - "data": { "": 1 }, - "valid": true - }, - { - "description": "matches single", - "data": { "🐲": 1 }, - "valid": true - }, - { - "description": "matches two", - "data": { "🐲🐲": 1 }, - "valid": true - }, - { - "description": "doesn't match one", - "data": { "🐲": "hello" }, - "valid": false - }, - { - "description": "doesn't match two", - "data": { "🐲🐲": "hello" }, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/unknownKeyword.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/unknownKeyword.json deleted file mode 100644 index 1f58d97e3..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/optional/unknownKeyword.json +++ /dev/null @@ -1,56 +0,0 @@ -[ - { - "description": "$id inside an unknown keyword is not a real identifier", - "comment": "the implementation must not be confused by an $id in locations we do not know how to parse", - "schema": { - "definitions": { - "id_in_unknown0": { - "not": { - "array_of_schemas": [ - { - "$id": "https://localhost:1234/unknownKeyword/my_identifier.json", - "type": "null" - } - ] - } - }, - "real_id_in_schema": { - "$id": "https://localhost:1234/unknownKeyword/my_identifier.json", - "type": "string" - }, - "id_in_unknown1": { - "not": { - "object_of_schemas": { - "foo": { - "$id": "https://localhost:1234/unknownKeyword/my_identifier.json", - "type": "integer" - } - } - } - } - }, - "anyOf": [ - { "$ref": "#/definitions/id_in_unknown0" }, - { "$ref": "#/definitions/id_in_unknown1" }, - { "$ref": "https://localhost:1234/unknownKeyword/my_identifier.json" } - ] - }, - "tests": [ - { - "description": "type matches second anyOf, which has a real schema in it", - "data": "a string", - "valid": true - }, - { - "description": "type matches non-schema in first anyOf", - "data": null, - "valid": false - }, - { - "description": "type matches non-schema in third anyOf", - "data": 1, - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/pattern.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/pattern.json deleted file mode 100644 index 92db0f971..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/pattern.json +++ /dev/null @@ -1,59 +0,0 @@ -[ - { - "description": "pattern validation", - "schema": {"pattern": "^a*$"}, - "tests": [ - { - "description": "a matching pattern is valid", - "data": "aaa", - "valid": true - }, - { - "description": "a non-matching pattern is invalid", - "data": "abc", - "valid": false - }, - { - "description": "ignores booleans", - "data": true, - "valid": true - }, - { - "description": "ignores integers", - "data": 123, - "valid": true - }, - { - "description": "ignores floats", - "data": 1.0, - "valid": true - }, - { - "description": "ignores objects", - "data": {}, - "valid": true - }, - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores null", - "data": null, - "valid": true - } - ] - }, - { - "description": "pattern is not anchored", - "schema": {"pattern": "a+"}, - "tests": [ - { - "description": "matches a substring", - "data": "xxaayy", - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/patternProperties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/patternProperties.json deleted file mode 100644 index c276e6479..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/patternProperties.json +++ /dev/null @@ -1,171 +0,0 @@ -[ - { - "description": - "patternProperties validates properties matching a regex", - "schema": { - "patternProperties": { - "f.*o": {"type": "integer"} - } - }, - "tests": [ - { - "description": "a single valid match is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "multiple valid matches is valid", - "data": {"foo": 1, "foooooo" : 2}, - "valid": true - }, - { - "description": "a single invalid match is invalid", - "data": {"foo": "bar", "fooooo": 2}, - "valid": false - }, - { - "description": "multiple invalid matches is invalid", - "data": {"foo": "bar", "foooooo" : "baz"}, - "valid": false - }, - { - "description": "ignores arrays", - "data": ["foo"], - "valid": true - }, - { - "description": "ignores strings", - "data": "foo", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "multiple simultaneous patternProperties are validated", - "schema": { - "patternProperties": { - "a*": {"type": "integer"}, - "aaa*": {"maximum": 20} - } - }, - "tests": [ - { - "description": "a single valid match is valid", - "data": {"a": 21}, - "valid": true - }, - { - "description": "a simultaneous match is valid", - "data": {"aaaa": 18}, - "valid": true - }, - { - "description": "multiple matches is valid", - "data": {"a": 21, "aaaa": 18}, - "valid": true - }, - { - "description": "an invalid due to one is invalid", - "data": {"a": "bar"}, - "valid": false - }, - { - "description": "an invalid due to the other is invalid", - "data": {"aaaa": 31}, - "valid": false - }, - { - "description": "an invalid due to both is invalid", - "data": {"aaa": "foo", "aaaa": 31}, - "valid": false - } - ] - }, - { - "description": "regexes are not anchored by default and are case sensitive", - "schema": { - "patternProperties": { - "[0-9]{2,}": { "type": "boolean" }, - "X_": { "type": "string" } - } - }, - "tests": [ - { - "description": "non recognized members are ignored", - "data": { "answer 1": "42" }, - "valid": true - }, - { - "description": "recognized members are accounted for", - "data": { "a31b": null }, - "valid": false - }, - { - "description": "regexes are case sensitive", - "data": { "a_x_3": 3 }, - "valid": true - }, - { - "description": "regexes are case sensitive, 2", - "data": { "a_X_3": 3 }, - "valid": false - } - ] - }, - { - "description": "patternProperties with boolean schemas", - "schema": { - "patternProperties": { - "f.*": true, - "b.*": false - } - }, - "tests": [ - { - "description": "object with property matching schema true is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "object with property matching schema false is invalid", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "object with both properties is invalid", - "data": {"foo": 1, "bar": 2}, - "valid": false - }, - { - "description": "object with a property matching both true and false is invalid", - "data": {"foobar":1}, - "valid": false - }, - { - "description": "empty object is valid", - "data": {}, - "valid": true - } - ] - }, - { - "description": "patternProperties with null valued instance properties", - "schema": { - "patternProperties": { - "^.*bar$": {"type": "null"} - } - }, - "tests": [ - { - "description": "allows null values", - "data": {"foobar": null}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/properties.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/properties.json deleted file mode 100644 index 5b971ca0e..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/properties.json +++ /dev/null @@ -1,236 +0,0 @@ -[ - { - "description": "object properties validation", - "schema": { - "properties": { - "foo": {"type": "integer"}, - "bar": {"type": "string"} - } - }, - "tests": [ - { - "description": "both properties present and valid is valid", - "data": {"foo": 1, "bar": "baz"}, - "valid": true - }, - { - "description": "one property invalid is invalid", - "data": {"foo": 1, "bar": {}}, - "valid": false - }, - { - "description": "both properties invalid is invalid", - "data": {"foo": [], "bar": {}}, - "valid": false - }, - { - "description": "doesn't invalidate other properties", - "data": {"quux": []}, - "valid": true - }, - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": - "properties, patternProperties, additionalProperties interaction", - "schema": { - "properties": { - "foo": {"type": "array", "maxItems": 3}, - "bar": {"type": "array"} - }, - "patternProperties": {"f.o": {"minItems": 2}}, - "additionalProperties": {"type": "integer"} - }, - "tests": [ - { - "description": "property validates property", - "data": {"foo": [1, 2]}, - "valid": true - }, - { - "description": "property invalidates property", - "data": {"foo": [1, 2, 3, 4]}, - "valid": false - }, - { - "description": "patternProperty invalidates property", - "data": {"foo": []}, - "valid": false - }, - { - "description": "patternProperty validates nonproperty", - "data": {"fxo": [1, 2]}, - "valid": true - }, - { - "description": "patternProperty invalidates nonproperty", - "data": {"fxo": []}, - "valid": false - }, - { - "description": "additionalProperty ignores property", - "data": {"bar": []}, - "valid": true - }, - { - "description": "additionalProperty validates others", - "data": {"quux": 3}, - "valid": true - }, - { - "description": "additionalProperty invalidates others", - "data": {"quux": "foo"}, - "valid": false - } - ] - }, - { - "description": "properties with boolean schema", - "schema": { - "properties": { - "foo": true, - "bar": false - } - }, - "tests": [ - { - "description": "no property present is valid", - "data": {}, - "valid": true - }, - { - "description": "only 'true' property present is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "only 'false' property present is invalid", - "data": {"bar": 2}, - "valid": false - }, - { - "description": "both properties present is invalid", - "data": {"foo": 1, "bar": 2}, - "valid": false - } - ] - }, - { - "description": "properties with escaped characters", - "schema": { - "properties": { - "foo\nbar": {"type": "number"}, - "foo\"bar": {"type": "number"}, - "foo\\bar": {"type": "number"}, - "foo\rbar": {"type": "number"}, - "foo\tbar": {"type": "number"}, - "foo\fbar": {"type": "number"} - } - }, - "tests": [ - { - "description": "object with all numbers is valid", - "data": { - "foo\nbar": 1, - "foo\"bar": 1, - "foo\\bar": 1, - "foo\rbar": 1, - "foo\tbar": 1, - "foo\fbar": 1 - }, - "valid": true - }, - { - "description": "object with strings is invalid", - "data": { - "foo\nbar": "1", - "foo\"bar": "1", - "foo\\bar": "1", - "foo\rbar": "1", - "foo\tbar": "1", - "foo\fbar": "1" - }, - "valid": false - } - ] - }, - { - "description": "properties with null valued instance properties", - "schema": { - "properties": { - "foo": {"type": "null"} - } - }, - "tests": [ - { - "description": "allows null values", - "data": {"foo": null}, - "valid": true - } - ] - }, - { - "description": "properties whose names are Javascript object property names", - "comment": "Ensure JS implementations don't universally consider e.g. __proto__ to always be present in an object.", - "schema": { - "properties": { - "__proto__": {"type": "number"}, - "toString": { - "properties": { "length": { "type": "string" } } - }, - "constructor": {"type": "number"} - } - }, - "tests": [ - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - }, - { - "description": "none of the properties mentioned", - "data": {}, - "valid": true - }, - { - "description": "__proto__ not valid", - "data": { "__proto__": "foo" }, - "valid": false - }, - { - "description": "toString not valid", - "data": { "toString": { "length": 37 } }, - "valid": false - }, - { - "description": "constructor not valid", - "data": { "constructor": { "length": 37 } }, - "valid": false - }, - { - "description": "all present and valid", - "data": { - "__proto__": 12, - "toString": { "length": "foo" }, - "constructor": 37 - }, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/propertyNames.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/propertyNames.json deleted file mode 100644 index f0788e649..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/propertyNames.json +++ /dev/null @@ -1,107 +0,0 @@ -[ - { - "description": "propertyNames validation", - "schema": { - "propertyNames": {"maxLength": 3} - }, - "tests": [ - { - "description": "all property names valid", - "data": { - "f": {}, - "foo": {} - }, - "valid": true - }, - { - "description": "some property names invalid", - "data": { - "foo": {}, - "foobar": {} - }, - "valid": false - }, - { - "description": "object without properties is valid", - "data": {}, - "valid": true - }, - { - "description": "ignores arrays", - "data": [1, 2, 3, 4], - "valid": true - }, - { - "description": "ignores strings", - "data": "foobar", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "propertyNames validation with pattern", - "schema": { - "propertyNames": { "pattern": "^a+$" } - }, - "tests": [ - { - "description": "matching property names valid", - "data": { - "a": {}, - "aa": {}, - "aaa": {} - }, - "valid": true - }, - { - "description": "non-matching property name is invalid", - "data": { - "aaA": {} - }, - "valid": false - }, - { - "description": "object without properties is valid", - "data": {}, - "valid": true - } - ] - }, - { - "description": "propertyNames with boolean schema true", - "schema": {"propertyNames": true}, - "tests": [ - { - "description": "object with any properties is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "empty object is valid", - "data": {}, - "valid": true - } - ] - }, - { - "description": "propertyNames with boolean schema false", - "schema": {"propertyNames": false}, - "tests": [ - { - "description": "object with any properties is invalid", - "data": {"foo": 1}, - "valid": false - }, - { - "description": "empty object is valid", - "data": {}, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/ref.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/ref.json deleted file mode 100644 index 82e1e1672..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/ref.json +++ /dev/null @@ -1,1043 +0,0 @@ -[ - { - "description": "root pointer ref", - "schema": { - "properties": { - "foo": {"$ref": "#"} - }, - "additionalProperties": false - }, - "tests": [ - { - "description": "match", - "data": {"foo": false}, - "valid": true - }, - { - "description": "recursive match", - "data": {"foo": {"foo": false}}, - "valid": true - }, - { - "description": "mismatch", - "data": {"bar": false}, - "valid": false - }, - { - "description": "recursive mismatch", - "data": {"foo": {"bar": false}}, - "valid": false - } - ] - }, - { - "description": "relative pointer ref to object", - "schema": { - "properties": { - "foo": {"type": "integer"}, - "bar": {"$ref": "#/properties/foo"} - } - }, - "tests": [ - { - "description": "match", - "data": {"bar": 3}, - "valid": true - }, - { - "description": "mismatch", - "data": {"bar": true}, - "valid": false - } - ] - }, - { - "description": "relative pointer ref to array", - "schema": { - "items": [ - {"type": "integer"}, - {"$ref": "#/items/0"} - ] - }, - "tests": [ - { - "description": "match array", - "data": [1, 2], - "valid": true - }, - { - "description": "mismatch array", - "data": [1, "foo"], - "valid": false - } - ] - }, - { - "description": "escaped pointer ref", - "schema": { - "definitions": { - "tilde~field": {"type": "integer"}, - "slash/field": {"type": "integer"}, - "percent%field": {"type": "integer"} - }, - "properties": { - "tilde": {"$ref": "#/definitions/tilde~0field"}, - "slash": {"$ref": "#/definitions/slash~1field"}, - "percent": {"$ref": "#/definitions/percent%25field"} - } - }, - "tests": [ - { - "description": "slash invalid", - "data": {"slash": "aoeu"}, - "valid": false - }, - { - "description": "tilde invalid", - "data": {"tilde": "aoeu"}, - "valid": false - }, - { - "description": "percent invalid", - "data": {"percent": "aoeu"}, - "valid": false - }, - { - "description": "slash valid", - "data": {"slash": 123}, - "valid": true - }, - { - "description": "tilde valid", - "data": {"tilde": 123}, - "valid": true - }, - { - "description": "percent valid", - "data": {"percent": 123}, - "valid": true - } - ] - }, - { - "description": "nested refs", - "schema": { - "definitions": { - "a": {"type": "integer"}, - "b": {"$ref": "#/definitions/a"}, - "c": {"$ref": "#/definitions/b"} - }, - "allOf": [{ "$ref": "#/definitions/c" }] - }, - "tests": [ - { - "description": "nested ref valid", - "data": 5, - "valid": true - }, - { - "description": "nested ref invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "ref overrides any sibling keywords", - "schema": { - "definitions": { - "reffed": { - "type": "array" - } - }, - "properties": { - "foo": { - "$ref": "#/definitions/reffed", - "maxItems": 2 - } - } - }, - "tests": [ - { - "description": "ref valid", - "data": { "foo": [] }, - "valid": true - }, - { - "description": "ref valid, maxItems ignored", - "data": { "foo": [ 1, 2, 3] }, - "valid": true - }, - { - "description": "ref invalid", - "data": { "foo": "string" }, - "valid": false - } - ] - }, - { - "description": "$ref prevents a sibling $id from changing the base uri", - "schema": { - "$id": "http://localhost:1234/sibling_id/base/", - "definitions": { - "foo": { - "$id": "http://localhost:1234/sibling_id/foo.json", - "type": "string" - }, - "base_foo": { - "$comment": "this canonical uri is http://localhost:1234/sibling_id/base/foo.json", - "$id": "foo.json", - "type": "number" - } - }, - "allOf": [ - { - "$comment": "$ref resolves to http://localhost:1234/sibling_id/base/foo.json, not http://localhost:1234/sibling_id/foo.json", - "$id": "http://localhost:1234/sibling_id/", - "$ref": "foo.json" - } - ] - }, - "tests": [ - { - "description": "$ref resolves to /definitions/base_foo, data does not validate", - "data": "a", - "valid": false - }, - { - "description": "$ref resolves to /definitions/base_foo, data validates", - "data": 1, - "valid": true - } - ] - }, - { - "description": "remote ref, containing refs itself", - "schema": {"$ref": "http://json-schema.org/draft-07/schema#"}, - "tests": [ - { - "description": "remote ref valid", - "data": {"minLength": 1}, - "valid": true - }, - { - "description": "remote ref invalid", - "data": {"minLength": -1}, - "valid": false - } - ] - }, - { - "description": "property named $ref that is not a reference", - "schema": { - "properties": { - "$ref": {"type": "string"} - } - }, - "tests": [ - { - "description": "property named $ref valid", - "data": {"$ref": "a"}, - "valid": true - }, - { - "description": "property named $ref invalid", - "data": {"$ref": 2}, - "valid": false - } - ] - }, - { - "description": "property named $ref, containing an actual $ref", - "schema": { - "properties": { - "$ref": {"$ref": "#/definitions/is-string"} - }, - "definitions": { - "is-string": { - "type": "string" - } - } - }, - "tests": [ - { - "description": "property named $ref valid", - "data": {"$ref": "a"}, - "valid": true - }, - { - "description": "property named $ref invalid", - "data": {"$ref": 2}, - "valid": false - } - ] - }, - { - "description": "$ref to boolean schema true", - "schema": { - "allOf": [{ "$ref": "#/definitions/bool" }], - "definitions": { - "bool": true - } - }, - "tests": [ - { - "description": "any value is valid", - "data": "foo", - "valid": true - } - ] - }, - { - "description": "$ref to boolean schema false", - "schema": { - "allOf": [{ "$ref": "#/definitions/bool" }], - "definitions": { - "bool": false - } - }, - "tests": [ - { - "description": "any value is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "Recursive references between schemas", - "schema": { - "$id": "http://localhost:1234/tree", - "description": "tree of nodes", - "type": "object", - "properties": { - "meta": {"type": "string"}, - "nodes": { - "type": "array", - "items": {"$ref": "node"} - } - }, - "required": ["meta", "nodes"], - "definitions": { - "node": { - "$id": "http://localhost:1234/node", - "description": "node", - "type": "object", - "properties": { - "value": {"type": "number"}, - "subtree": {"$ref": "tree"} - }, - "required": ["value"] - } - } - }, - "tests": [ - { - "description": "valid tree", - "data": { - "meta": "root", - "nodes": [ - { - "value": 1, - "subtree": { - "meta": "child", - "nodes": [ - {"value": 1.1}, - {"value": 1.2} - ] - } - }, - { - "value": 2, - "subtree": { - "meta": "child", - "nodes": [ - {"value": 2.1}, - {"value": 2.2} - ] - } - } - ] - }, - "valid": true - }, - { - "description": "invalid tree", - "data": { - "meta": "root", - "nodes": [ - { - "value": 1, - "subtree": { - "meta": "child", - "nodes": [ - {"value": "string is invalid"}, - {"value": 1.2} - ] - } - }, - { - "value": 2, - "subtree": { - "meta": "child", - "nodes": [ - {"value": 2.1}, - {"value": 2.2} - ] - } - } - ] - }, - "valid": false - } - ] - }, - { - "description": "refs with quote", - "schema": { - "properties": { - "foo\"bar": {"$ref": "#/definitions/foo%22bar"} - }, - "definitions": { - "foo\"bar": {"type": "number"} - } - }, - "tests": [ - { - "description": "object with numbers is valid", - "data": { - "foo\"bar": 1 - }, - "valid": true - }, - { - "description": "object with strings is invalid", - "data": { - "foo\"bar": "1" - }, - "valid": false - } - ] - }, - { - "description": "Location-independent identifier", - "schema": { - "allOf": [{ - "$ref": "#foo" - }], - "definitions": { - "A": { - "$id": "#foo", - "type": "integer" - } - } - }, - "tests": [ - { - "data": 1, - "description": "match", - "valid": true - }, - { - "data": "a", - "description": "mismatch", - "valid": false - } - ] - }, - { - "description": "Reference an anchor with a non-relative URI", - "schema": { - "$id": "https://example.com/schema-with-anchor", - "allOf": [{ - "$ref": "https://example.com/schema-with-anchor#foo" - }], - "definitions": { - "A": { - "$id": "#foo", - "type": "integer" - } - } - }, - "tests": [ - { - "data": 1, - "description": "match", - "valid": true - }, - { - "data": "a", - "description": "mismatch", - "valid": false - } - ] - }, - { - "description": "Location-independent identifier with base URI change in subschema", - "schema": { - "$id": "http://localhost:1234/root", - "allOf": [{ - "$ref": "http://localhost:1234/nested.json#foo" - }], - "definitions": { - "A": { - "$id": "nested.json", - "definitions": { - "B": { - "$id": "#foo", - "type": "integer" - } - } - } - } - }, - "tests": [ - { - "data": 1, - "description": "match", - "valid": true - }, - { - "data": "a", - "description": "mismatch", - "valid": false - } - ] - }, - { - "description": "naive replacement of $ref with its destination is not correct", - "schema": { - "definitions": { - "a_string": { "type": "string" } - }, - "enum": [ - { "$ref": "#/definitions/a_string" } - ] - }, - "tests": [ - { - "description": "do not evaluate the $ref inside the enum, matching any string", - "data": "this is a string", - "valid": false - }, - { - "description": "do not evaluate the $ref inside the enum, definition exact match", - "data": { "type": "string" }, - "valid": false - }, - { - "description": "match the enum exactly", - "data": { "$ref": "#/definitions/a_string" }, - "valid": true - } - ] - }, - { - "description": "refs with relative uris and defs", - "schema": { - "$id": "http://example.com/schema-relative-uri-defs1.json", - "properties": { - "foo": { - "$id": "schema-relative-uri-defs2.json", - "definitions": { - "inner": { - "properties": { - "bar": { "type": "string" } - } - } - }, - "allOf": [ { "$ref": "#/definitions/inner" } ] - } - }, - "allOf": [ { "$ref": "schema-relative-uri-defs2.json" } ] - }, - "tests": [ - { - "description": "invalid on inner field", - "data": { - "foo": { - "bar": 1 - }, - "bar": "a" - }, - "valid": false - }, - { - "description": "invalid on outer field", - "data": { - "foo": { - "bar": "a" - }, - "bar": 1 - }, - "valid": false - }, - { - "description": "valid on both fields", - "data": { - "foo": { - "bar": "a" - }, - "bar": "a" - }, - "valid": true - } - ] - }, - { - "description": "relative refs with absolute uris and defs", - "schema": { - "$id": "http://example.com/schema-refs-absolute-uris-defs1.json", - "properties": { - "foo": { - "$id": "http://example.com/schema-refs-absolute-uris-defs2.json", - "definitions": { - "inner": { - "properties": { - "bar": { "type": "string" } - } - } - }, - "allOf": [ { "$ref": "#/definitions/inner" } ] - } - }, - "allOf": [ { "$ref": "schema-refs-absolute-uris-defs2.json" } ] - }, - "tests": [ - { - "description": "invalid on inner field", - "data": { - "foo": { - "bar": 1 - }, - "bar": "a" - }, - "valid": false - }, - { - "description": "invalid on outer field", - "data": { - "foo": { - "bar": "a" - }, - "bar": 1 - }, - "valid": false - }, - { - "description": "valid on both fields", - "data": { - "foo": { - "bar": "a" - }, - "bar": "a" - }, - "valid": true - } - ] - }, - { - "description": "$id must be resolved against nearest parent, not just immediate parent", - "schema": { - "$id": "http://example.com/a.json", - "definitions": { - "x": { - "$id": "http://example.com/b/c.json", - "not": { - "definitions": { - "y": { - "$id": "d.json", - "type": "number" - } - } - } - } - }, - "allOf": [ - { - "$ref": "http://example.com/b/d.json" - } - ] - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "non-number is invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "simple URN base URI with $ref via the URN", - "schema": { - "$comment": "URIs do not have to have HTTP(s) schemes", - "$id": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed", - "minimum": 30, - "properties": { - "foo": {"$ref": "urn:uuid:deadbeef-1234-ffff-ffff-4321feebdaed"} - } - }, - "tests": [ - { - "description": "valid under the URN IDed schema", - "data": {"foo": 37}, - "valid": true - }, - { - "description": "invalid under the URN IDed schema", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "simple URN base URI with JSON pointer", - "schema": { - "$comment": "URIs do not have to have HTTP(s) schemes", - "$id": "urn:uuid:deadbeef-1234-00ff-ff00-4321feebdaed", - "properties": { - "foo": {"$ref": "#/definitions/bar"} - }, - "definitions": { - "bar": {"type": "string"} - } - }, - "tests": [ - { - "description": "a string is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "a non-string is invalid", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "URN base URI with NSS", - "schema": { - "$comment": "RFC 8141 §2.2", - "$id": "urn:example:1/406/47452/2", - "properties": { - "foo": {"$ref": "#/definitions/bar"} - }, - "definitions": { - "bar": {"type": "string"} - } - }, - "tests": [ - { - "description": "a string is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "a non-string is invalid", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "URN base URI with r-component", - "schema": { - "$comment": "RFC 8141 §2.3.1", - "$id": "urn:example:foo-bar-baz-qux?+CCResolve:cc=uk", - "properties": { - "foo": {"$ref": "#/definitions/bar"} - }, - "definitions": { - "bar": {"type": "string"} - } - }, - "tests": [ - { - "description": "a string is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "a non-string is invalid", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "URN base URI with q-component", - "schema": { - "$comment": "RFC 8141 §2.3.2", - "$id": "urn:example:weather?=op=map&lat=39.56&lon=-104.85&datetime=1969-07-21T02:56:15Z", - "properties": { - "foo": {"$ref": "#/definitions/bar"} - }, - "definitions": { - "bar": {"type": "string"} - } - }, - "tests": [ - { - "description": "a string is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "a non-string is invalid", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "URN base URI with URN and JSON pointer ref", - "schema": { - "$id": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed", - "properties": { - "foo": {"$ref": "urn:uuid:deadbeef-1234-0000-0000-4321feebdaed#/definitions/bar"} - }, - "definitions": { - "bar": {"type": "string"} - } - }, - "tests": [ - { - "description": "a string is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "a non-string is invalid", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "URN base URI with URN and anchor ref", - "schema": { - "$id": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed", - "properties": { - "foo": {"$ref": "urn:uuid:deadbeef-1234-ff00-00ff-4321feebdaed#something"} - }, - "definitions": { - "bar": { - "$id": "#something", - "type": "string" - } - } - }, - "tests": [ - { - "description": "a string is valid", - "data": {"foo": "bar"}, - "valid": true - }, - { - "description": "a non-string is invalid", - "data": {"foo": 12}, - "valid": false - } - ] - }, - { - "description": "ref to if", - "schema": { - "allOf": [ - {"$ref": "http://example.com/ref/if"}, - { - "if": { - "$id": "http://example.com/ref/if", - "type": "integer" - } - } - ] - }, - "tests": [ - { - "description": "a non-integer is invalid due to the $ref", - "data": "foo", - "valid": false - }, - { - "description": "an integer is valid", - "data": 12, - "valid": true - } - ] - }, - { - "description": "ref to then", - "schema": { - "allOf": [ - {"$ref": "http://example.com/ref/then"}, - { - "then": { - "$id": "http://example.com/ref/then", - "type": "integer" - } - } - ] - }, - "tests": [ - { - "description": "a non-integer is invalid due to the $ref", - "data": "foo", - "valid": false - }, - { - "description": "an integer is valid", - "data": 12, - "valid": true - } - ] - }, - { - "description": "ref to else", - "schema": { - "allOf": [ - {"$ref": "http://example.com/ref/else"}, - { - "else": { - "$id": "http://example.com/ref/else", - "type": "integer" - } - } - ] - }, - "tests": [ - { - "description": "a non-integer is invalid due to the $ref", - "data": "foo", - "valid": false - }, - { - "description": "an integer is valid", - "data": 12, - "valid": true - } - ] - }, - { - "description": "ref with absolute-path-reference", - "schema": { - "$id": "http://example.com/ref/absref.json", - "definitions": { - "a": { - "$id": "http://example.com/ref/absref/foobar.json", - "type": "number" - }, - "b": { - "$id": "http://example.com/absref/foobar.json", - "type": "string" - } - }, - "allOf": [ - { "$ref": "/absref/foobar.json" } - ] - }, - "tests": [ - { - "description": "a string is valid", - "data": "foo", - "valid": true - }, - { - "description": "an integer is invalid", - "data": 12, - "valid": false - } - ] - }, - { - "description": "$id with file URI still resolves pointers - *nix", - "schema": { - "$id": "file:///folder/file.json", - "definitions": { - "foo": { - "type": "number" - } - }, - "allOf": [ - { - "$ref": "#/definitions/foo" - } - ] - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "non-number is invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "$id with file URI still resolves pointers - windows", - "schema": { - "$id": "file:///c:/folder/file.json", - "definitions": { - "foo": { - "type": "number" - } - }, - "allOf": [ - { - "$ref": "#/definitions/foo" - } - ] - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "non-number is invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "empty tokens in $ref json-pointer", - "schema": { - "definitions": { - "": { - "definitions": { - "": { "type": "number" } - } - } - }, - "allOf": [ - { - "$ref": "#/definitions//definitions/" - } - ] - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "non-number is invalid", - "data": "a", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/refRemote.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/refRemote.json deleted file mode 100644 index 22185d678..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/refRemote.json +++ /dev/null @@ -1,257 +0,0 @@ -[ - { - "description": "remote ref", - "schema": {"$ref": "http://localhost:1234/integer.json"}, - "tests": [ - { - "description": "remote ref valid", - "data": 1, - "valid": true - }, - { - "description": "remote ref invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "fragment within remote ref", - "schema": {"$ref": "http://localhost:1234/subSchemas.json#/definitions/integer"}, - "tests": [ - { - "description": "remote fragment valid", - "data": 1, - "valid": true - }, - { - "description": "remote fragment invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "ref within remote ref", - "schema": { - "$ref": "http://localhost:1234/subSchemas.json#/definitions/refToInteger" - }, - "tests": [ - { - "description": "ref within ref valid", - "data": 1, - "valid": true - }, - { - "description": "ref within ref invalid", - "data": "a", - "valid": false - } - ] - }, - { - "description": "base URI change", - "schema": { - "$id": "http://localhost:1234/", - "items": { - "$id": "baseUriChange/", - "items": {"$ref": "folderInteger.json"} - } - }, - "tests": [ - { - "description": "base URI change ref valid", - "data": [[1]], - "valid": true - }, - { - "description": "base URI change ref invalid", - "data": [["a"]], - "valid": false - } - ] - }, - { - "description": "base URI change - change folder", - "schema": { - "$id": "http://localhost:1234/scope_change_defs1.json", - "type" : "object", - "properties": { - "list": {"$ref": "#/definitions/baz"} - }, - "definitions": { - "baz": { - "$id": "baseUriChangeFolder/", - "type": "array", - "items": {"$ref": "folderInteger.json"} - } - } - }, - "tests": [ - { - "description": "number is valid", - "data": {"list": [1]}, - "valid": true - }, - { - "description": "string is invalid", - "data": {"list": ["a"]}, - "valid": false - } - ] - }, - { - "description": "base URI change - change folder in subschema", - "schema": { - "$id": "http://localhost:1234/scope_change_defs2.json", - "type" : "object", - "properties": { - "list": {"$ref": "#/definitions/baz/definitions/bar"} - }, - "definitions": { - "baz": { - "$id": "baseUriChangeFolderInSubschema/", - "definitions": { - "bar": { - "type": "array", - "items": {"$ref": "folderInteger.json"} - } - } - } - } - }, - "tests": [ - { - "description": "number is valid", - "data": {"list": [1]}, - "valid": true - }, - { - "description": "string is invalid", - "data": {"list": ["a"]}, - "valid": false - } - ] - }, - { - "description": "root ref in remote ref", - "schema": { - "$id": "http://localhost:1234/object", - "type": "object", - "properties": { - "name": {"$ref": "name.json#/definitions/orNull"} - } - }, - "tests": [ - { - "description": "string is valid", - "data": { - "name": "foo" - }, - "valid": true - }, - { - "description": "null is valid", - "data": { - "name": null - }, - "valid": true - }, - { - "description": "object is invalid", - "data": { - "name": { - "name": null - } - }, - "valid": false - } - ] - }, - { - "description": "remote ref with ref to definitions", - "schema": { - "$id": "http://localhost:1234/schema-remote-ref-ref-defs1.json", - "allOf": [ - { "$ref": "ref-and-definitions.json" } - ] - }, - "tests": [ - { - "description": "invalid", - "data": { - "bar": 1 - }, - "valid": false - }, - { - "description": "valid", - "data": { - "bar": "a" - }, - "valid": true - } - ] - }, - { - "description": "Location-independent identifier in remote ref", - "schema": { - "$ref": "http://localhost:1234/locationIndependentIdentifierPre2019.json#/definitions/refToInteger" - }, - "tests": [ - { - "description": "integer is valid", - "data": 1, - "valid": true - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - } - ] - }, - { - "description": "retrieved nested refs resolve relative to their URI not $id", - "schema": { - "$id": "http://localhost:1234/some-id", - "properties": { - "name": {"$ref": "nested/foo-ref-string.json"} - } - }, - "tests": [ - { - "description": "number is invalid", - "data": { - "name": {"foo": 1} - }, - "valid": false - }, - { - "description": "string is valid", - "data": { - "name": {"foo": "a"} - }, - "valid": true - } - ] - }, - { - "description": "$ref to $ref finds location-independent $id", - "schema": { - "$ref": "http://localhost:1234/draft7/detached-ref.json#/definitions/foo" - }, - "tests": [ - { - "description": "number is valid", - "data": 1, - "valid": true - }, - { - "description": "non-number is invalid", - "data": "a", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/required.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/required.json deleted file mode 100644 index 8d8087afd..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/required.json +++ /dev/null @@ -1,151 +0,0 @@ -[ - { - "description": "required validation", - "schema": { - "properties": { - "foo": {}, - "bar": {} - }, - "required": ["foo"] - }, - "tests": [ - { - "description": "present required property is valid", - "data": {"foo": 1}, - "valid": true - }, - { - "description": "non-present required property is invalid", - "data": {"bar": 1}, - "valid": false - }, - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores strings", - "data": "", - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - } - ] - }, - { - "description": "required default validation", - "schema": { - "properties": { - "foo": {} - } - }, - "tests": [ - { - "description": "not required by default", - "data": {}, - "valid": true - } - ] - }, - { - "description": "required with empty array", - "schema": { - "properties": { - "foo": {} - }, - "required": [] - }, - "tests": [ - { - "description": "property not required", - "data": {}, - "valid": true - } - ] - }, - { - "description": "required with escaped characters", - "schema": { - "required": [ - "foo\nbar", - "foo\"bar", - "foo\\bar", - "foo\rbar", - "foo\tbar", - "foo\fbar" - ] - }, - "tests": [ - { - "description": "object with all properties present is valid", - "data": { - "foo\nbar": 1, - "foo\"bar": 1, - "foo\\bar": 1, - "foo\rbar": 1, - "foo\tbar": 1, - "foo\fbar": 1 - }, - "valid": true - }, - { - "description": "object with some properties missing is invalid", - "data": { - "foo\nbar": "1", - "foo\"bar": "1" - }, - "valid": false - } - ] - }, - { - "description": "required properties whose names are Javascript object property names", - "comment": "Ensure JS implementations don't universally consider e.g. __proto__ to always be present in an object.", - "schema": { "required": ["__proto__", "toString", "constructor"] }, - "tests": [ - { - "description": "ignores arrays", - "data": [], - "valid": true - }, - { - "description": "ignores other non-objects", - "data": 12, - "valid": true - }, - { - "description": "none of the properties mentioned", - "data": {}, - "valid": false - }, - { - "description": "__proto__ present", - "data": { "__proto__": "foo" }, - "valid": false - }, - { - "description": "toString present", - "data": { "toString": { "length": 37 } }, - "valid": false - }, - { - "description": "constructor present", - "data": { "constructor": { "length": 37 } }, - "valid": false - }, - { - "description": "all present", - "data": { - "__proto__": 12, - "toString": { "length": "foo" }, - "constructor": 37 - }, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/type.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/type.json deleted file mode 100644 index 830464702..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/type.json +++ /dev/null @@ -1,474 +0,0 @@ -[ - { - "description": "integer type matches integers", - "schema": {"type": "integer"}, - "tests": [ - { - "description": "an integer is an integer", - "data": 1, - "valid": true - }, - { - "description": "a float with zero fractional part is an integer", - "data": 1.0, - "valid": true - }, - { - "description": "a float is not an integer", - "data": 1.1, - "valid": false - }, - { - "description": "a string is not an integer", - "data": "foo", - "valid": false - }, - { - "description": "a string is still not an integer, even if it looks like one", - "data": "1", - "valid": false - }, - { - "description": "an object is not an integer", - "data": {}, - "valid": false - }, - { - "description": "an array is not an integer", - "data": [], - "valid": false - }, - { - "description": "a boolean is not an integer", - "data": true, - "valid": false - }, - { - "description": "null is not an integer", - "data": null, - "valid": false - } - ] - }, - { - "description": "number type matches numbers", - "schema": {"type": "number"}, - "tests": [ - { - "description": "an integer is a number", - "data": 1, - "valid": true - }, - { - "description": "a float with zero fractional part is a number (and an integer)", - "data": 1.0, - "valid": true - }, - { - "description": "a float is a number", - "data": 1.1, - "valid": true - }, - { - "description": "a string is not a number", - "data": "foo", - "valid": false - }, - { - "description": "a string is still not a number, even if it looks like one", - "data": "1", - "valid": false - }, - { - "description": "an object is not a number", - "data": {}, - "valid": false - }, - { - "description": "an array is not a number", - "data": [], - "valid": false - }, - { - "description": "a boolean is not a number", - "data": true, - "valid": false - }, - { - "description": "null is not a number", - "data": null, - "valid": false - } - ] - }, - { - "description": "string type matches strings", - "schema": {"type": "string"}, - "tests": [ - { - "description": "1 is not a string", - "data": 1, - "valid": false - }, - { - "description": "a float is not a string", - "data": 1.1, - "valid": false - }, - { - "description": "a string is a string", - "data": "foo", - "valid": true - }, - { - "description": "a string is still a string, even if it looks like a number", - "data": "1", - "valid": true - }, - { - "description": "an empty string is still a string", - "data": "", - "valid": true - }, - { - "description": "an object is not a string", - "data": {}, - "valid": false - }, - { - "description": "an array is not a string", - "data": [], - "valid": false - }, - { - "description": "a boolean is not a string", - "data": true, - "valid": false - }, - { - "description": "null is not a string", - "data": null, - "valid": false - } - ] - }, - { - "description": "object type matches objects", - "schema": {"type": "object"}, - "tests": [ - { - "description": "an integer is not an object", - "data": 1, - "valid": false - }, - { - "description": "a float is not an object", - "data": 1.1, - "valid": false - }, - { - "description": "a string is not an object", - "data": "foo", - "valid": false - }, - { - "description": "an object is an object", - "data": {}, - "valid": true - }, - { - "description": "an array is not an object", - "data": [], - "valid": false - }, - { - "description": "a boolean is not an object", - "data": true, - "valid": false - }, - { - "description": "null is not an object", - "data": null, - "valid": false - } - ] - }, - { - "description": "array type matches arrays", - "schema": {"type": "array"}, - "tests": [ - { - "description": "an integer is not an array", - "data": 1, - "valid": false - }, - { - "description": "a float is not an array", - "data": 1.1, - "valid": false - }, - { - "description": "a string is not an array", - "data": "foo", - "valid": false - }, - { - "description": "an object is not an array", - "data": {}, - "valid": false - }, - { - "description": "an array is an array", - "data": [], - "valid": true - }, - { - "description": "a boolean is not an array", - "data": true, - "valid": false - }, - { - "description": "null is not an array", - "data": null, - "valid": false - } - ] - }, - { - "description": "boolean type matches booleans", - "schema": {"type": "boolean"}, - "tests": [ - { - "description": "an integer is not a boolean", - "data": 1, - "valid": false - }, - { - "description": "zero is not a boolean", - "data": 0, - "valid": false - }, - { - "description": "a float is not a boolean", - "data": 1.1, - "valid": false - }, - { - "description": "a string is not a boolean", - "data": "foo", - "valid": false - }, - { - "description": "an empty string is not a boolean", - "data": "", - "valid": false - }, - { - "description": "an object is not a boolean", - "data": {}, - "valid": false - }, - { - "description": "an array is not a boolean", - "data": [], - "valid": false - }, - { - "description": "true is a boolean", - "data": true, - "valid": true - }, - { - "description": "false is a boolean", - "data": false, - "valid": true - }, - { - "description": "null is not a boolean", - "data": null, - "valid": false - } - ] - }, - { - "description": "null type matches only the null object", - "schema": {"type": "null"}, - "tests": [ - { - "description": "an integer is not null", - "data": 1, - "valid": false - }, - { - "description": "a float is not null", - "data": 1.1, - "valid": false - }, - { - "description": "zero is not null", - "data": 0, - "valid": false - }, - { - "description": "a string is not null", - "data": "foo", - "valid": false - }, - { - "description": "an empty string is not null", - "data": "", - "valid": false - }, - { - "description": "an object is not null", - "data": {}, - "valid": false - }, - { - "description": "an array is not null", - "data": [], - "valid": false - }, - { - "description": "true is not null", - "data": true, - "valid": false - }, - { - "description": "false is not null", - "data": false, - "valid": false - }, - { - "description": "null is null", - "data": null, - "valid": true - } - ] - }, - { - "description": "multiple types can be specified in an array", - "schema": {"type": ["integer", "string"]}, - "tests": [ - { - "description": "an integer is valid", - "data": 1, - "valid": true - }, - { - "description": "a string is valid", - "data": "foo", - "valid": true - }, - { - "description": "a float is invalid", - "data": 1.1, - "valid": false - }, - { - "description": "an object is invalid", - "data": {}, - "valid": false - }, - { - "description": "an array is invalid", - "data": [], - "valid": false - }, - { - "description": "a boolean is invalid", - "data": true, - "valid": false - }, - { - "description": "null is invalid", - "data": null, - "valid": false - } - ] - }, - { - "description": "type as array with one item", - "schema": { - "type": ["string"] - }, - "tests": [ - { - "description": "string is valid", - "data": "foo", - "valid": true - }, - { - "description": "number is invalid", - "data": 123, - "valid": false - } - ] - }, - { - "description": "type: array or object", - "schema": { - "type": ["array", "object"] - }, - "tests": [ - { - "description": "array is valid", - "data": [1,2,3], - "valid": true - }, - { - "description": "object is valid", - "data": {"foo": 123}, - "valid": true - }, - { - "description": "number is invalid", - "data": 123, - "valid": false - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - }, - { - "description": "null is invalid", - "data": null, - "valid": false - } - ] - }, - { - "description": "type: array, object or null", - "schema": { - "type": ["array", "object", "null"] - }, - "tests": [ - { - "description": "array is valid", - "data": [1,2,3], - "valid": true - }, - { - "description": "object is valid", - "data": {"foo": 123}, - "valid": true - }, - { - "description": "null is valid", - "data": null, - "valid": true - }, - { - "description": "number is invalid", - "data": 123, - "valid": false - }, - { - "description": "string is invalid", - "data": "foo", - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/uniqueItems.json b/agent/vendor/jsonschema-4.23.0/json/tests/draft7/uniqueItems.json deleted file mode 100644 index d2730c60c..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tests/draft7/uniqueItems.json +++ /dev/null @@ -1,409 +0,0 @@ -[ - { - "description": "uniqueItems validation", - "schema": {"uniqueItems": true}, - "tests": [ - { - "description": "unique array of integers is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "non-unique array of integers is invalid", - "data": [1, 1], - "valid": false - }, - { - "description": "non-unique array of more than two integers is invalid", - "data": [1, 2, 1], - "valid": false - }, - { - "description": "numbers are unique if mathematically unequal", - "data": [1.0, 1.00, 1], - "valid": false - }, - { - "description": "false is not equal to zero", - "data": [0, false], - "valid": true - }, - { - "description": "true is not equal to one", - "data": [1, true], - "valid": true - }, - { - "description": "unique array of strings is valid", - "data": ["foo", "bar", "baz"], - "valid": true - }, - { - "description": "non-unique array of strings is invalid", - "data": ["foo", "bar", "foo"], - "valid": false - }, - { - "description": "unique array of objects is valid", - "data": [{"foo": "bar"}, {"foo": "baz"}], - "valid": true - }, - { - "description": "non-unique array of objects is invalid", - "data": [{"foo": "bar"}, {"foo": "bar"}], - "valid": false - }, - { - "description": "property order of array of objects is ignored", - "data": [{"foo": "bar", "bar": "foo"}, {"bar": "foo", "foo": "bar"}], - "valid": false - }, - { - "description": "unique array of nested objects is valid", - "data": [ - {"foo": {"bar" : {"baz" : true}}}, - {"foo": {"bar" : {"baz" : false}}} - ], - "valid": true - }, - { - "description": "non-unique array of nested objects is invalid", - "data": [ - {"foo": {"bar" : {"baz" : true}}}, - {"foo": {"bar" : {"baz" : true}}} - ], - "valid": false - }, - { - "description": "unique array of arrays is valid", - "data": [["foo"], ["bar"]], - "valid": true - }, - { - "description": "non-unique array of arrays is invalid", - "data": [["foo"], ["foo"]], - "valid": false - }, - { - "description": "non-unique array of more than two arrays is invalid", - "data": [["foo"], ["bar"], ["foo"]], - "valid": false - }, - { - "description": "1 and true are unique", - "data": [1, true], - "valid": true - }, - { - "description": "0 and false are unique", - "data": [0, false], - "valid": true - }, - { - "description": "[1] and [true] are unique", - "data": [[1], [true]], - "valid": true - }, - { - "description": "[0] and [false] are unique", - "data": [[0], [false]], - "valid": true - }, - { - "description": "nested [1] and [true] are unique", - "data": [[[1], "foo"], [[true], "foo"]], - "valid": true - }, - { - "description": "nested [0] and [false] are unique", - "data": [[[0], "foo"], [[false], "foo"]], - "valid": true - }, - { - "description": "unique heterogeneous types are valid", - "data": [{}, [1], true, null, 1, "{}"], - "valid": true - }, - { - "description": "non-unique heterogeneous types are invalid", - "data": [{}, [1], true, null, {}, 1], - "valid": false - }, - { - "description": "different objects are unique", - "data": [{"a": 1, "b": 2}, {"a": 2, "b": 1}], - "valid": true - }, - { - "description": "objects are non-unique despite key order", - "data": [{"a": 1, "b": 2}, {"b": 2, "a": 1}], - "valid": false - }, - { - "description": "{\"a\": false} and {\"a\": 0} are unique", - "data": [{"a": false}, {"a": 0}], - "valid": true - }, - { - "description": "{\"a\": true} and {\"a\": 1} are unique", - "data": [{"a": true}, {"a": 1}], - "valid": true - } - ] - }, - { - "description": "uniqueItems with an array of items", - "schema": { - "items": [{"type": "boolean"}, {"type": "boolean"}], - "uniqueItems": true - }, - "tests": [ - { - "description": "[false, true] from items array is valid", - "data": [false, true], - "valid": true - }, - { - "description": "[true, false] from items array is valid", - "data": [true, false], - "valid": true - }, - { - "description": "[false, false] from items array is not valid", - "data": [false, false], - "valid": false - }, - { - "description": "[true, true] from items array is not valid", - "data": [true, true], - "valid": false - }, - { - "description": "unique array extended from [false, true] is valid", - "data": [false, true, "foo", "bar"], - "valid": true - }, - { - "description": "unique array extended from [true, false] is valid", - "data": [true, false, "foo", "bar"], - "valid": true - }, - { - "description": "non-unique array extended from [false, true] is not valid", - "data": [false, true, "foo", "foo"], - "valid": false - }, - { - "description": "non-unique array extended from [true, false] is not valid", - "data": [true, false, "foo", "foo"], - "valid": false - } - ] - }, - { - "description": "uniqueItems with an array of items and additionalItems=false", - "schema": { - "items": [{"type": "boolean"}, {"type": "boolean"}], - "uniqueItems": true, - "additionalItems": false - }, - "tests": [ - { - "description": "[false, true] from items array is valid", - "data": [false, true], - "valid": true - }, - { - "description": "[true, false] from items array is valid", - "data": [true, false], - "valid": true - }, - { - "description": "[false, false] from items array is not valid", - "data": [false, false], - "valid": false - }, - { - "description": "[true, true] from items array is not valid", - "data": [true, true], - "valid": false - }, - { - "description": "extra items are invalid even if unique", - "data": [false, true, null], - "valid": false - } - ] - }, - { - "description": "uniqueItems=false validation", - "schema": { "uniqueItems": false }, - "tests": [ - { - "description": "unique array of integers is valid", - "data": [1, 2], - "valid": true - }, - { - "description": "non-unique array of integers is valid", - "data": [1, 1], - "valid": true - }, - { - "description": "numbers are unique if mathematically unequal", - "data": [1.0, 1.00, 1], - "valid": true - }, - { - "description": "false is not equal to zero", - "data": [0, false], - "valid": true - }, - { - "description": "true is not equal to one", - "data": [1, true], - "valid": true - }, - { - "description": "unique array of objects is valid", - "data": [{"foo": "bar"}, {"foo": "baz"}], - "valid": true - }, - { - "description": "non-unique array of objects is valid", - "data": [{"foo": "bar"}, {"foo": "bar"}], - "valid": true - }, - { - "description": "unique array of nested objects is valid", - "data": [ - {"foo": {"bar" : {"baz" : true}}}, - {"foo": {"bar" : {"baz" : false}}} - ], - "valid": true - }, - { - "description": "non-unique array of nested objects is valid", - "data": [ - {"foo": {"bar" : {"baz" : true}}}, - {"foo": {"bar" : {"baz" : true}}} - ], - "valid": true - }, - { - "description": "unique array of arrays is valid", - "data": [["foo"], ["bar"]], - "valid": true - }, - { - "description": "non-unique array of arrays is valid", - "data": [["foo"], ["foo"]], - "valid": true - }, - { - "description": "1 and true are unique", - "data": [1, true], - "valid": true - }, - { - "description": "0 and false are unique", - "data": [0, false], - "valid": true - }, - { - "description": "unique heterogeneous types are valid", - "data": [{}, [1], true, null, 1], - "valid": true - }, - { - "description": "non-unique heterogeneous types are valid", - "data": [{}, [1], true, null, {}, 1], - "valid": true - } - ] - }, - { - "description": "uniqueItems=false with an array of items", - "schema": { - "items": [{"type": "boolean"}, {"type": "boolean"}], - "uniqueItems": false - }, - "tests": [ - { - "description": "[false, true] from items array is valid", - "data": [false, true], - "valid": true - }, - { - "description": "[true, false] from items array is valid", - "data": [true, false], - "valid": true - }, - { - "description": "[false, false] from items array is valid", - "data": [false, false], - "valid": true - }, - { - "description": "[true, true] from items array is valid", - "data": [true, true], - "valid": true - }, - { - "description": "unique array extended from [false, true] is valid", - "data": [false, true, "foo", "bar"], - "valid": true - }, - { - "description": "unique array extended from [true, false] is valid", - "data": [true, false, "foo", "bar"], - "valid": true - }, - { - "description": "non-unique array extended from [false, true] is valid", - "data": [false, true, "foo", "foo"], - "valid": true - }, - { - "description": "non-unique array extended from [true, false] is valid", - "data": [true, false, "foo", "foo"], - "valid": true - } - ] - }, - { - "description": "uniqueItems=false with an array of items and additionalItems=false", - "schema": { - "items": [{"type": "boolean"}, {"type": "boolean"}], - "uniqueItems": false, - "additionalItems": false - }, - "tests": [ - { - "description": "[false, true] from items array is valid", - "data": [false, true], - "valid": true - }, - { - "description": "[true, false] from items array is valid", - "data": [true, false], - "valid": true - }, - { - "description": "[false, false] from items array is valid", - "data": [false, false], - "valid": true - }, - { - "description": "[true, true] from items array is valid", - "data": [true, true], - "valid": true - }, - { - "description": "extra items are invalid even if unique", - "data": [false, true, null], - "valid": false - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/json/tox.ini b/agent/vendor/jsonschema-4.23.0/json/tox.ini deleted file mode 100644 index a5ded970e..000000000 --- a/agent/vendor/jsonschema-4.23.0/json/tox.ini +++ /dev/null @@ -1,9 +0,0 @@ -[tox] -minversion = 1.6 -envlist = sanity -skipsdist = True - -[testenv:sanity] -# used just for validating the structure of the test case files themselves -deps = jsonschema==4.19.0 -commands = {envpython} bin/jsonschema_suite check diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/__init__.py b/agent/vendor/jsonschema-4.23.0/jsonschema/__init__.py deleted file mode 100644 index 79924cf7e..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/__init__.py +++ /dev/null @@ -1,120 +0,0 @@ -""" -An implementation of JSON Schema for Python. - -The main functionality is provided by the validator classes for each of the -supported JSON Schema versions. - -Most commonly, `jsonschema.validators.validate` is the quickest way to simply -validate a given instance under a schema, and will create a validator -for you. -""" -import warnings - -from jsonschema._format import FormatChecker -from jsonschema._types import TypeChecker -from jsonschema.exceptions import SchemaError, ValidationError -from jsonschema.validators import ( - Draft3Validator, - Draft4Validator, - Draft6Validator, - Draft7Validator, - Draft201909Validator, - Draft202012Validator, - validate, -) - - -def __getattr__(name): - if name == "__version__": - warnings.warn( - "Accessing jsonschema.__version__ is deprecated and will be " - "removed in a future release. Use importlib.metadata directly " - "to query for jsonschema's version.", - DeprecationWarning, - stacklevel=2, - ) - - from importlib import metadata - return metadata.version("jsonschema") - elif name == "RefResolver": - from jsonschema.validators import _RefResolver - warnings.warn( - _RefResolver._DEPRECATION_MESSAGE, - DeprecationWarning, - stacklevel=2, - ) - return _RefResolver - elif name == "ErrorTree": - warnings.warn( - "Importing ErrorTree directly from the jsonschema package " - "is deprecated and will become an ImportError. Import it from " - "jsonschema.exceptions instead.", - DeprecationWarning, - stacklevel=2, - ) - from jsonschema.exceptions import ErrorTree - return ErrorTree - elif name == "FormatError": - warnings.warn( - "Importing FormatError directly from the jsonschema package " - "is deprecated and will become an ImportError. Import it from " - "jsonschema.exceptions instead.", - DeprecationWarning, - stacklevel=2, - ) - from jsonschema.exceptions import FormatError - return FormatError - elif name == "Validator": - warnings.warn( - "Importing Validator directly from the jsonschema package " - "is deprecated and will become an ImportError. Import it from " - "jsonschema.protocols instead.", - DeprecationWarning, - stacklevel=2, - ) - from jsonschema.protocols import Validator - return Validator - elif name == "RefResolutionError": - from jsonschema.exceptions import _RefResolutionError - warnings.warn( - _RefResolutionError._DEPRECATION_MESSAGE, - DeprecationWarning, - stacklevel=2, - ) - return _RefResolutionError - - format_checkers = { - "draft3_format_checker": Draft3Validator, - "draft4_format_checker": Draft4Validator, - "draft6_format_checker": Draft6Validator, - "draft7_format_checker": Draft7Validator, - "draft201909_format_checker": Draft201909Validator, - "draft202012_format_checker": Draft202012Validator, - } - ValidatorForFormat = format_checkers.get(name) - if ValidatorForFormat is not None: - warnings.warn( - f"Accessing jsonschema.{name} is deprecated and will be " - "removed in a future release. Instead, use the FORMAT_CHECKER " - "attribute on the corresponding Validator.", - DeprecationWarning, - stacklevel=2, - ) - return ValidatorForFormat.FORMAT_CHECKER - - raise AttributeError(f"module {__name__} has no attribute {name}") - - -__all__ = [ - "Draft201909Validator", - "Draft202012Validator", - "Draft3Validator", - "Draft4Validator", - "Draft6Validator", - "Draft7Validator", - "FormatChecker", - "SchemaError", - "TypeChecker", - "ValidationError", - "validate", -] diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/__main__.py b/agent/vendor/jsonschema-4.23.0/jsonschema/__main__.py deleted file mode 100644 index fb260ae14..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/__main__.py +++ /dev/null @@ -1,6 +0,0 @@ -""" -The jsonschema CLI is now deprecated in favor of check-jsonschema. -""" -from jsonschema.cli import main - -main() diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/_format.py b/agent/vendor/jsonschema-4.23.0/jsonschema/_format.py deleted file mode 100644 index 6e87620cc..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/_format.py +++ /dev/null @@ -1,519 +0,0 @@ -from __future__ import annotations - -from contextlib import suppress -from datetime import date, datetime -from uuid import UUID -import ipaddress -import re -import typing -import warnings - -from jsonschema.exceptions import FormatError - -_FormatCheckCallable = typing.Callable[[object], bool] -#: A format checker callable. -_F = typing.TypeVar("_F", bound=_FormatCheckCallable) -_RaisesType = typing.Union[ - typing.Type[Exception], typing.Tuple[typing.Type[Exception], ...], -] - -_RE_DATE = re.compile(r"^\d{4}-\d{2}-\d{2}$", re.ASCII) - - -class FormatChecker: - """ - A ``format`` property checker. - - JSON Schema does not mandate that the ``format`` property actually do any - validation. If validation is desired however, instances of this class can - be hooked into validators to enable format validation. - - `FormatChecker` objects always return ``True`` when asked about - formats that they do not know how to validate. - - To add a check for a custom format use the `FormatChecker.checks` - decorator. - - Arguments: - - formats: - - The known formats to validate. This argument can be used to - limit which formats will be used during validation. - - """ - - checkers: dict[ - str, - tuple[_FormatCheckCallable, _RaisesType], - ] = {} # noqa: RUF012 - - def __init__(self, formats: typing.Iterable[str] | None = None): - if formats is None: - formats = self.checkers.keys() - self.checkers = {k: self.checkers[k] for k in formats} - - def __repr__(self): - return f"" - - def checks( - self, format: str, raises: _RaisesType = (), - ) -> typing.Callable[[_F], _F]: - """ - Register a decorated function as validating a new format. - - Arguments: - - format: - - The format that the decorated function will check. - - raises: - - The exception(s) raised by the decorated function when an - invalid instance is found. - - The exception object will be accessible as the - `jsonschema.exceptions.ValidationError.cause` attribute of the - resulting validation error. - - """ - - def _checks(func: _F) -> _F: - self.checkers[format] = (func, raises) - return func - - return _checks - - @classmethod - def cls_checks( - cls, format: str, raises: _RaisesType = (), - ) -> typing.Callable[[_F], _F]: - warnings.warn( - ( - "FormatChecker.cls_checks is deprecated. Call " - "FormatChecker.checks on a specific FormatChecker instance " - "instead." - ), - DeprecationWarning, - stacklevel=2, - ) - return cls._cls_checks(format=format, raises=raises) - - @classmethod - def _cls_checks( - cls, format: str, raises: _RaisesType = (), - ) -> typing.Callable[[_F], _F]: - def _checks(func: _F) -> _F: - cls.checkers[format] = (func, raises) - return func - - return _checks - - def check(self, instance: object, format: str) -> None: - """ - Check whether the instance conforms to the given format. - - Arguments: - - instance (*any primitive type*, i.e. str, number, bool): - - The instance to check - - format: - - The format that instance should conform to - - Raises: - - FormatError: - - if the instance does not conform to ``format`` - - """ - if format not in self.checkers: - return - - func, raises = self.checkers[format] - result, cause = None, None - try: - result = func(instance) - except raises as e: - cause = e - if not result: - raise FormatError(f"{instance!r} is not a {format!r}", cause=cause) - - def conforms(self, instance: object, format: str) -> bool: - """ - Check whether the instance conforms to the given format. - - Arguments: - - instance (*any primitive type*, i.e. str, number, bool): - - The instance to check - - format: - - The format that instance should conform to - - Returns: - - bool: whether it conformed - - """ - try: - self.check(instance, format) - except FormatError: - return False - else: - return True - - -draft3_format_checker = FormatChecker() -draft4_format_checker = FormatChecker() -draft6_format_checker = FormatChecker() -draft7_format_checker = FormatChecker() -draft201909_format_checker = FormatChecker() -draft202012_format_checker = FormatChecker() - -_draft_checkers: dict[str, FormatChecker] = dict( - draft3=draft3_format_checker, - draft4=draft4_format_checker, - draft6=draft6_format_checker, - draft7=draft7_format_checker, - draft201909=draft201909_format_checker, - draft202012=draft202012_format_checker, -) - - -def _checks_drafts( - name=None, - draft3=None, - draft4=None, - draft6=None, - draft7=None, - draft201909=None, - draft202012=None, - raises=(), -) -> typing.Callable[[_F], _F]: - draft3 = draft3 or name - draft4 = draft4 or name - draft6 = draft6 or name - draft7 = draft7 or name - draft201909 = draft201909 or name - draft202012 = draft202012 or name - - def wrap(func: _F) -> _F: - if draft3: - func = _draft_checkers["draft3"].checks(draft3, raises)(func) - if draft4: - func = _draft_checkers["draft4"].checks(draft4, raises)(func) - if draft6: - func = _draft_checkers["draft6"].checks(draft6, raises)(func) - if draft7: - func = _draft_checkers["draft7"].checks(draft7, raises)(func) - if draft201909: - func = _draft_checkers["draft201909"].checks(draft201909, raises)( - func, - ) - if draft202012: - func = _draft_checkers["draft202012"].checks(draft202012, raises)( - func, - ) - - # Oy. This is bad global state, but relied upon for now, until - # deprecation. See #519 and test_format_checkers_come_with_defaults - FormatChecker._cls_checks( - draft202012 or draft201909 or draft7 or draft6 or draft4 or draft3, - raises, - )(func) - return func - - return wrap - - -@_checks_drafts(name="idn-email") -@_checks_drafts(name="email") -def is_email(instance: object) -> bool: - if not isinstance(instance, str): - return True - return "@" in instance - - -@_checks_drafts( - draft3="ip-address", - draft4="ipv4", - draft6="ipv4", - draft7="ipv4", - draft201909="ipv4", - draft202012="ipv4", - raises=ipaddress.AddressValueError, -) -def is_ipv4(instance: object) -> bool: - if not isinstance(instance, str): - return True - return bool(ipaddress.IPv4Address(instance)) - - -@_checks_drafts(name="ipv6", raises=ipaddress.AddressValueError) -def is_ipv6(instance: object) -> bool: - if not isinstance(instance, str): - return True - address = ipaddress.IPv6Address(instance) - return not getattr(address, "scope_id", "") - - -with suppress(ImportError): - from fqdn import FQDN - - @_checks_drafts( - draft3="host-name", - draft4="hostname", - draft6="hostname", - draft7="hostname", - draft201909="hostname", - draft202012="hostname", - ) - def is_host_name(instance: object) -> bool: - if not isinstance(instance, str): - return True - return FQDN(instance, min_labels=1).is_valid - - -with suppress(ImportError): - # The built-in `idna` codec only implements RFC 3890, so we go elsewhere. - import idna - - @_checks_drafts( - draft7="idn-hostname", - draft201909="idn-hostname", - draft202012="idn-hostname", - raises=(idna.IDNAError, UnicodeError), - ) - def is_idn_host_name(instance: object) -> bool: - if not isinstance(instance, str): - return True - idna.encode(instance) - return True - - -try: - import rfc3987 -except ImportError: - with suppress(ImportError): - from rfc3986_validator import validate_rfc3986 - - @_checks_drafts(name="uri") - def is_uri(instance: object) -> bool: - if not isinstance(instance, str): - return True - return validate_rfc3986(instance, rule="URI") - - @_checks_drafts( - draft6="uri-reference", - draft7="uri-reference", - draft201909="uri-reference", - draft202012="uri-reference", - raises=ValueError, - ) - def is_uri_reference(instance: object) -> bool: - if not isinstance(instance, str): - return True - return validate_rfc3986(instance, rule="URI_reference") - -else: - - @_checks_drafts( - draft7="iri", - draft201909="iri", - draft202012="iri", - raises=ValueError, - ) - def is_iri(instance: object) -> bool: - if not isinstance(instance, str): - return True - return rfc3987.parse(instance, rule="IRI") - - @_checks_drafts( - draft7="iri-reference", - draft201909="iri-reference", - draft202012="iri-reference", - raises=ValueError, - ) - def is_iri_reference(instance: object) -> bool: - if not isinstance(instance, str): - return True - return rfc3987.parse(instance, rule="IRI_reference") - - @_checks_drafts(name="uri", raises=ValueError) - def is_uri(instance: object) -> bool: - if not isinstance(instance, str): - return True - return rfc3987.parse(instance, rule="URI") - - @_checks_drafts( - draft6="uri-reference", - draft7="uri-reference", - draft201909="uri-reference", - draft202012="uri-reference", - raises=ValueError, - ) - def is_uri_reference(instance: object) -> bool: - if not isinstance(instance, str): - return True - return rfc3987.parse(instance, rule="URI_reference") - - -with suppress(ImportError): - from rfc3339_validator import validate_rfc3339 - - @_checks_drafts(name="date-time") - def is_datetime(instance: object) -> bool: - if not isinstance(instance, str): - return True - return validate_rfc3339(instance.upper()) - - @_checks_drafts( - draft7="time", - draft201909="time", - draft202012="time", - ) - def is_time(instance: object) -> bool: - if not isinstance(instance, str): - return True - return is_datetime("1970-01-01T" + instance) - - -@_checks_drafts(name="regex", raises=re.error) -def is_regex(instance: object) -> bool: - if not isinstance(instance, str): - return True - return bool(re.compile(instance)) - - -@_checks_drafts( - draft3="date", - draft7="date", - draft201909="date", - draft202012="date", - raises=ValueError, -) -def is_date(instance: object) -> bool: - if not isinstance(instance, str): - return True - return bool(_RE_DATE.fullmatch(instance) and date.fromisoformat(instance)) - - -@_checks_drafts(draft3="time", raises=ValueError) -def is_draft3_time(instance: object) -> bool: - if not isinstance(instance, str): - return True - return bool(datetime.strptime(instance, "%H:%M:%S")) # noqa: DTZ007 - - -with suppress(ImportError): - import webcolors - - @_checks_drafts(draft3="color", raises=(ValueError, TypeError)) - def is_css21_color(instance: object) -> bool: - if isinstance(instance, str): - try: - webcolors.name_to_hex(instance) - except ValueError: - webcolors.normalize_hex(instance.lower()) - return True - - -with suppress(ImportError): - import jsonpointer - - @_checks_drafts( - draft6="json-pointer", - draft7="json-pointer", - draft201909="json-pointer", - draft202012="json-pointer", - raises=jsonpointer.JsonPointerException, - ) - def is_json_pointer(instance: object) -> bool: - if not isinstance(instance, str): - return True - return bool(jsonpointer.JsonPointer(instance)) - - # TODO: I don't want to maintain this, so it - # needs to go either into jsonpointer (pending - # https://github.com/stefankoegl/python-json-pointer/issues/34) or - # into a new external library. - @_checks_drafts( - draft7="relative-json-pointer", - draft201909="relative-json-pointer", - draft202012="relative-json-pointer", - raises=jsonpointer.JsonPointerException, - ) - def is_relative_json_pointer(instance: object) -> bool: - # Definition taken from: - # https://tools.ietf.org/html/draft-handrews-relative-json-pointer-01#section-3 - if not isinstance(instance, str): - return True - if not instance: - return False - - non_negative_integer, rest = [], "" - for i, character in enumerate(instance): - if character.isdigit(): - # digits with a leading "0" are not allowed - if i > 0 and int(instance[i - 1]) == 0: - return False - - non_negative_integer.append(character) - continue - - if not non_negative_integer: - return False - - rest = instance[i:] - break - return (rest == "#") or bool(jsonpointer.JsonPointer(rest)) - - -with suppress(ImportError): - import uri_template - - @_checks_drafts( - draft6="uri-template", - draft7="uri-template", - draft201909="uri-template", - draft202012="uri-template", - ) - def is_uri_template(instance: object) -> bool: - if not isinstance(instance, str): - return True - return uri_template.validate(instance) - - -with suppress(ImportError): - import isoduration - - @_checks_drafts( - draft201909="duration", - draft202012="duration", - raises=isoduration.DurationParsingException, - ) - def is_duration(instance: object) -> bool: - if not isinstance(instance, str): - return True - isoduration.parse_duration(instance) - # FIXME: See bolsote/isoduration#25 and bolsote/isoduration#21 - return instance.endswith(tuple("DMYWHMS")) - - -@_checks_drafts( - draft201909="uuid", - draft202012="uuid", - raises=ValueError, -) -def is_uuid(instance: object) -> bool: - if not isinstance(instance, str): - return True - UUID(instance) - return all(instance[position] == "-" for position in (8, 13, 18, 23)) diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/_keywords.py b/agent/vendor/jsonschema-4.23.0/jsonschema/_keywords.py deleted file mode 100644 index f30f95419..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/_keywords.py +++ /dev/null @@ -1,449 +0,0 @@ -from fractions import Fraction -import re - -from jsonschema._utils import ( - ensure_list, - equal, - extras_msg, - find_additional_properties, - find_evaluated_item_indexes_by_schema, - find_evaluated_property_keys_by_schema, - uniq, -) -from jsonschema.exceptions import FormatError, ValidationError - - -def patternProperties(validator, patternProperties, instance, schema): - if not validator.is_type(instance, "object"): - return - - for pattern, subschema in patternProperties.items(): - for k, v in instance.items(): - if re.search(pattern, k): - yield from validator.descend( - v, subschema, path=k, schema_path=pattern, - ) - - -def propertyNames(validator, propertyNames, instance, schema): - if not validator.is_type(instance, "object"): - return - - for property in instance: - yield from validator.descend(instance=property, schema=propertyNames) - - -def additionalProperties(validator, aP, instance, schema): - if not validator.is_type(instance, "object"): - return - - extras = set(find_additional_properties(instance, schema)) - - if validator.is_type(aP, "object"): - for extra in extras: - yield from validator.descend(instance[extra], aP, path=extra) - elif not aP and extras: - if "patternProperties" in schema: - verb = "does" if len(extras) == 1 else "do" - joined = ", ".join(repr(each) for each in sorted(extras)) - patterns = ", ".join( - repr(each) for each in sorted(schema["patternProperties"]) - ) - error = f"{joined} {verb} not match any of the regexes: {patterns}" - yield ValidationError(error) - else: - error = "Additional properties are not allowed (%s %s unexpected)" - yield ValidationError(error % extras_msg(sorted(extras, key=str))) - - -def items(validator, items, instance, schema): - if not validator.is_type(instance, "array"): - return - - prefix = len(schema.get("prefixItems", [])) - total = len(instance) - extra = total - prefix - if extra <= 0: - return - - if items is False: - rest = instance[prefix:] if extra != 1 else instance[prefix] - item = "items" if prefix != 1 else "item" - yield ValidationError( - f"Expected at most {prefix} {item} but found {extra} " - f"extra: {rest!r}", - ) - else: - for index in range(prefix, total): - yield from validator.descend( - instance=instance[index], - schema=items, - path=index, - ) - - -def const(validator, const, instance, schema): - if not equal(instance, const): - yield ValidationError(f"{const!r} was expected") - - -def contains(validator, contains, instance, schema): - if not validator.is_type(instance, "array"): - return - - matches = 0 - min_contains = schema.get("minContains", 1) - max_contains = schema.get("maxContains", len(instance)) - - contains_validator = validator.evolve(schema=contains) - - for each in instance: - if contains_validator.is_valid(each): - matches += 1 - if matches > max_contains: - yield ValidationError( - "Too many items match the given schema " - f"(expected at most {max_contains})", - validator="maxContains", - validator_value=max_contains, - ) - return - - if matches < min_contains: - if not matches: - yield ValidationError( - f"{instance!r} does not contain items " - "matching the given schema", - ) - else: - yield ValidationError( - "Too few items match the given schema (expected at least " - f"{min_contains} but only {matches} matched)", - validator="minContains", - validator_value=min_contains, - ) - - -def exclusiveMinimum(validator, minimum, instance, schema): - if not validator.is_type(instance, "number"): - return - - if instance <= minimum: - yield ValidationError( - f"{instance!r} is less than or equal to " - f"the minimum of {minimum!r}", - ) - - -def exclusiveMaximum(validator, maximum, instance, schema): - if not validator.is_type(instance, "number"): - return - - if instance >= maximum: - yield ValidationError( - f"{instance!r} is greater than or equal " - f"to the maximum of {maximum!r}", - ) - - -def minimum(validator, minimum, instance, schema): - if not validator.is_type(instance, "number"): - return - - if instance < minimum: - message = f"{instance!r} is less than the minimum of {minimum!r}" - yield ValidationError(message) - - -def maximum(validator, maximum, instance, schema): - if not validator.is_type(instance, "number"): - return - - if instance > maximum: - message = f"{instance!r} is greater than the maximum of {maximum!r}" - yield ValidationError(message) - - -def multipleOf(validator, dB, instance, schema): - if not validator.is_type(instance, "number"): - return - - if isinstance(dB, float): - quotient = instance / dB - try: - failed = int(quotient) != quotient - except OverflowError: - # When `instance` is large and `dB` is less than one, - # quotient can overflow to infinity; and then casting to int - # raises an error. - # - # In this case we fall back to Fraction logic, which is - # exact and cannot overflow. The performance is also - # acceptable: we try the fast all-float option first, and - # we know that fraction(dB) can have at most a few hundred - # digits in each part. The worst-case slowdown is therefore - # for already-slow enormous integers or Decimals. - failed = (Fraction(instance) / Fraction(dB)).denominator != 1 - else: - failed = instance % dB - - if failed: - yield ValidationError(f"{instance!r} is not a multiple of {dB}") - - -def minItems(validator, mI, instance, schema): - if validator.is_type(instance, "array") and len(instance) < mI: - message = "should be non-empty" if mI == 1 else "is too short" - yield ValidationError(f"{instance!r} {message}") - - -def maxItems(validator, mI, instance, schema): - if validator.is_type(instance, "array") and len(instance) > mI: - message = "is expected to be empty" if mI == 0 else "is too long" - yield ValidationError(f"{instance!r} {message}") - - -def uniqueItems(validator, uI, instance, schema): - if ( - uI - and validator.is_type(instance, "array") - and not uniq(instance) - ): - yield ValidationError(f"{instance!r} has non-unique elements") - - -def pattern(validator, patrn, instance, schema): - if ( - validator.is_type(instance, "string") - and not re.search(patrn, instance) - ): - yield ValidationError(f"{instance!r} does not match {patrn!r}") - - -def format(validator, format, instance, schema): - if validator.format_checker is not None: - try: - validator.format_checker.check(instance, format) - except FormatError as error: - yield ValidationError(error.message, cause=error.cause) - - -def minLength(validator, mL, instance, schema): - if validator.is_type(instance, "string") and len(instance) < mL: - message = "should be non-empty" if mL == 1 else "is too short" - yield ValidationError(f"{instance!r} {message}") - - -def maxLength(validator, mL, instance, schema): - if validator.is_type(instance, "string") and len(instance) > mL: - message = "is expected to be empty" if mL == 0 else "is too long" - yield ValidationError(f"{instance!r} {message}") - - -def dependentRequired(validator, dependentRequired, instance, schema): - if not validator.is_type(instance, "object"): - return - - for property, dependency in dependentRequired.items(): - if property not in instance: - continue - - for each in dependency: - if each not in instance: - message = f"{each!r} is a dependency of {property!r}" - yield ValidationError(message) - - -def dependentSchemas(validator, dependentSchemas, instance, schema): - if not validator.is_type(instance, "object"): - return - - for property, dependency in dependentSchemas.items(): - if property not in instance: - continue - yield from validator.descend( - instance, dependency, schema_path=property, - ) - - -def enum(validator, enums, instance, schema): - if all(not equal(each, instance) for each in enums): - yield ValidationError(f"{instance!r} is not one of {enums!r}") - - -def ref(validator, ref, instance, schema): - yield from validator._validate_reference(ref=ref, instance=instance) - - -def dynamicRef(validator, dynamicRef, instance, schema): - yield from validator._validate_reference(ref=dynamicRef, instance=instance) - - -def type(validator, types, instance, schema): - types = ensure_list(types) - - if not any(validator.is_type(instance, type) for type in types): - reprs = ", ".join(repr(type) for type in types) - yield ValidationError(f"{instance!r} is not of type {reprs}") - - -def properties(validator, properties, instance, schema): - if not validator.is_type(instance, "object"): - return - - for property, subschema in properties.items(): - if property in instance: - yield from validator.descend( - instance[property], - subschema, - path=property, - schema_path=property, - ) - - -def required(validator, required, instance, schema): - if not validator.is_type(instance, "object"): - return - for property in required: - if property not in instance: - yield ValidationError(f"{property!r} is a required property") - - -def minProperties(validator, mP, instance, schema): - if validator.is_type(instance, "object") and len(instance) < mP: - message = ( - "should be non-empty" if mP == 1 - else "does not have enough properties" - ) - yield ValidationError(f"{instance!r} {message}") - - -def maxProperties(validator, mP, instance, schema): - if not validator.is_type(instance, "object"): - return - if validator.is_type(instance, "object") and len(instance) > mP: - message = ( - "is expected to be empty" if mP == 0 - else "has too many properties" - ) - yield ValidationError(f"{instance!r} {message}") - - -def allOf(validator, allOf, instance, schema): - for index, subschema in enumerate(allOf): - yield from validator.descend(instance, subschema, schema_path=index) - - -def anyOf(validator, anyOf, instance, schema): - all_errors = [] - for index, subschema in enumerate(anyOf): - errs = list(validator.descend(instance, subschema, schema_path=index)) - if not errs: - break - all_errors.extend(errs) - else: - yield ValidationError( - f"{instance!r} is not valid under any of the given schemas", - context=all_errors, - ) - - -def oneOf(validator, oneOf, instance, schema): - subschemas = enumerate(oneOf) - all_errors = [] - for index, subschema in subschemas: - errs = list(validator.descend(instance, subschema, schema_path=index)) - if not errs: - first_valid = subschema - break - all_errors.extend(errs) - else: - yield ValidationError( - f"{instance!r} is not valid under any of the given schemas", - context=all_errors, - ) - - more_valid = [ - each for _, each in subschemas - if validator.evolve(schema=each).is_valid(instance) - ] - if more_valid: - more_valid.append(first_valid) - reprs = ", ".join(repr(schema) for schema in more_valid) - yield ValidationError(f"{instance!r} is valid under each of {reprs}") - - -def not_(validator, not_schema, instance, schema): - if validator.evolve(schema=not_schema).is_valid(instance): - message = f"{instance!r} should not be valid under {not_schema!r}" - yield ValidationError(message) - - -def if_(validator, if_schema, instance, schema): - if validator.evolve(schema=if_schema).is_valid(instance): - if "then" in schema: - then = schema["then"] - yield from validator.descend(instance, then, schema_path="then") - elif "else" in schema: - else_ = schema["else"] - yield from validator.descend(instance, else_, schema_path="else") - - -def unevaluatedItems(validator, unevaluatedItems, instance, schema): - if not validator.is_type(instance, "array"): - return - evaluated_item_indexes = find_evaluated_item_indexes_by_schema( - validator, instance, schema, - ) - unevaluated_items = [ - item for index, item in enumerate(instance) - if index not in evaluated_item_indexes - ] - if unevaluated_items: - error = "Unevaluated items are not allowed (%s %s unexpected)" - yield ValidationError(error % extras_msg(unevaluated_items)) - - -def unevaluatedProperties(validator, unevaluatedProperties, instance, schema): - if not validator.is_type(instance, "object"): - return - evaluated_keys = find_evaluated_property_keys_by_schema( - validator, instance, schema, - ) - unevaluated_keys = [] - for property in instance: - if property not in evaluated_keys: - for _ in validator.descend( - instance[property], - unevaluatedProperties, - path=property, - schema_path=property, - ): - # FIXME: Include context for each unevaluated property - # indicating why it's invalid under the subschema. - unevaluated_keys.append(property) # noqa: PERF401 - - if unevaluated_keys: - if unevaluatedProperties is False: - error = "Unevaluated properties are not allowed (%s %s unexpected)" - extras = sorted(unevaluated_keys, key=str) - yield ValidationError(error % extras_msg(extras)) - else: - error = ( - "Unevaluated properties are not valid under " - "the given schema (%s %s unevaluated and invalid)" - ) - yield ValidationError(error % extras_msg(unevaluated_keys)) - - -def prefixItems(validator, prefixItems, instance, schema): - if not validator.is_type(instance, "array"): - return - - for (index, item), subschema in zip(enumerate(instance), prefixItems): - yield from validator.descend( - instance=item, - schema=subschema, - schema_path=index, - path=index, - ) diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/_legacy_keywords.py b/agent/vendor/jsonschema-4.23.0/jsonschema/_legacy_keywords.py deleted file mode 100644 index c691589f8..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/_legacy_keywords.py +++ /dev/null @@ -1,449 +0,0 @@ -import re - -from referencing.jsonschema import lookup_recursive_ref - -from jsonschema import _utils -from jsonschema.exceptions import ValidationError - - -def ignore_ref_siblings(schema): - """ - Ignore siblings of ``$ref`` if it is present. - - Otherwise, return all keywords. - - Suitable for use with `create`'s ``applicable_validators`` argument. - """ - ref = schema.get("$ref") - if ref is not None: - return [("$ref", ref)] - else: - return schema.items() - - -def dependencies_draft3(validator, dependencies, instance, schema): - if not validator.is_type(instance, "object"): - return - - for property, dependency in dependencies.items(): - if property not in instance: - continue - - if validator.is_type(dependency, "object"): - yield from validator.descend( - instance, dependency, schema_path=property, - ) - elif validator.is_type(dependency, "string"): - if dependency not in instance: - message = f"{dependency!r} is a dependency of {property!r}" - yield ValidationError(message) - else: - for each in dependency: - if each not in instance: - message = f"{each!r} is a dependency of {property!r}" - yield ValidationError(message) - - -def dependencies_draft4_draft6_draft7( - validator, - dependencies, - instance, - schema, -): - """ - Support for the ``dependencies`` keyword from pre-draft 2019-09. - - In later drafts, the keyword was split into separate - ``dependentRequired`` and ``dependentSchemas`` validators. - """ - if not validator.is_type(instance, "object"): - return - - for property, dependency in dependencies.items(): - if property not in instance: - continue - - if validator.is_type(dependency, "array"): - for each in dependency: - if each not in instance: - message = f"{each!r} is a dependency of {property!r}" - yield ValidationError(message) - else: - yield from validator.descend( - instance, dependency, schema_path=property, - ) - - -def disallow_draft3(validator, disallow, instance, schema): - for disallowed in _utils.ensure_list(disallow): - if validator.evolve(schema={"type": [disallowed]}).is_valid(instance): - message = f"{disallowed!r} is disallowed for {instance!r}" - yield ValidationError(message) - - -def extends_draft3(validator, extends, instance, schema): - if validator.is_type(extends, "object"): - yield from validator.descend(instance, extends) - return - for index, subschema in enumerate(extends): - yield from validator.descend(instance, subschema, schema_path=index) - - -def items_draft3_draft4(validator, items, instance, schema): - if not validator.is_type(instance, "array"): - return - - if validator.is_type(items, "object"): - for index, item in enumerate(instance): - yield from validator.descend(item, items, path=index) - else: - for (index, item), subschema in zip(enumerate(instance), items): - yield from validator.descend( - item, subschema, path=index, schema_path=index, - ) - - -def additionalItems(validator, aI, instance, schema): - if ( - not validator.is_type(instance, "array") - or validator.is_type(schema.get("items", {}), "object") - ): - return - - len_items = len(schema.get("items", [])) - if validator.is_type(aI, "object"): - for index, item in enumerate(instance[len_items:], start=len_items): - yield from validator.descend(item, aI, path=index) - elif not aI and len(instance) > len(schema.get("items", [])): - error = "Additional items are not allowed (%s %s unexpected)" - yield ValidationError( - error % _utils.extras_msg(instance[len(schema.get("items", [])):]), - ) - - -def items_draft6_draft7_draft201909(validator, items, instance, schema): - if not validator.is_type(instance, "array"): - return - - if validator.is_type(items, "array"): - for (index, item), subschema in zip(enumerate(instance), items): - yield from validator.descend( - item, subschema, path=index, schema_path=index, - ) - else: - for index, item in enumerate(instance): - yield from validator.descend(item, items, path=index) - - -def minimum_draft3_draft4(validator, minimum, instance, schema): - if not validator.is_type(instance, "number"): - return - - if schema.get("exclusiveMinimum", False): - failed = instance <= minimum - cmp = "less than or equal to" - else: - failed = instance < minimum - cmp = "less than" - - if failed: - message = f"{instance!r} is {cmp} the minimum of {minimum!r}" - yield ValidationError(message) - - -def maximum_draft3_draft4(validator, maximum, instance, schema): - if not validator.is_type(instance, "number"): - return - - if schema.get("exclusiveMaximum", False): - failed = instance >= maximum - cmp = "greater than or equal to" - else: - failed = instance > maximum - cmp = "greater than" - - if failed: - message = f"{instance!r} is {cmp} the maximum of {maximum!r}" - yield ValidationError(message) - - -def properties_draft3(validator, properties, instance, schema): - if not validator.is_type(instance, "object"): - return - - for property, subschema in properties.items(): - if property in instance: - yield from validator.descend( - instance[property], - subschema, - path=property, - schema_path=property, - ) - elif subschema.get("required", False): - error = ValidationError(f"{property!r} is a required property") - error._set( - validator="required", - validator_value=subschema["required"], - instance=instance, - schema=schema, - ) - error.path.appendleft(property) - error.schema_path.extend([property, "required"]) - yield error - - -def type_draft3(validator, types, instance, schema): - types = _utils.ensure_list(types) - - all_errors = [] - for index, type in enumerate(types): - if validator.is_type(type, "object"): - errors = list(validator.descend(instance, type, schema_path=index)) - if not errors: - return - all_errors.extend(errors) - elif validator.is_type(instance, type): - return - - reprs = [] - for type in types: - try: - reprs.append(repr(type["name"])) - except Exception: # noqa: BLE001 - reprs.append(repr(type)) - yield ValidationError( - f"{instance!r} is not of type {', '.join(reprs)}", - context=all_errors, - ) - - -def contains_draft6_draft7(validator, contains, instance, schema): - if not validator.is_type(instance, "array"): - return - - if not any( - validator.evolve(schema=contains).is_valid(element) - for element in instance - ): - yield ValidationError( - f"None of {instance!r} are valid under the given schema", - ) - - -def recursiveRef(validator, recursiveRef, instance, schema): - resolved = lookup_recursive_ref(validator._resolver) - yield from validator.descend( - instance, - resolved.contents, - resolver=resolved.resolver, - ) - - -def find_evaluated_item_indexes_by_schema(validator, instance, schema): - """ - Get all indexes of items that get evaluated under the current schema. - - Covers all keywords related to unevaluatedItems: items, prefixItems, if, - then, else, contains, unevaluatedItems, allOf, oneOf, anyOf - """ - if validator.is_type(schema, "boolean"): - return [] - evaluated_indexes = [] - - ref = schema.get("$ref") - if ref is not None: - resolved = validator._resolver.lookup(ref) - evaluated_indexes.extend( - find_evaluated_item_indexes_by_schema( - validator.evolve( - schema=resolved.contents, - _resolver=resolved.resolver, - ), - instance, - resolved.contents, - ), - ) - - if "$recursiveRef" in schema: - resolved = lookup_recursive_ref(validator._resolver) - evaluated_indexes.extend( - find_evaluated_item_indexes_by_schema( - validator.evolve( - schema=resolved.contents, - _resolver=resolved.resolver, - ), - instance, - resolved.contents, - ), - ) - - if "items" in schema: - if "additionalItems" in schema: - return list(range(len(instance))) - - if validator.is_type(schema["items"], "object"): - return list(range(len(instance))) - evaluated_indexes += list(range(len(schema["items"]))) - - if "if" in schema: - if validator.evolve(schema=schema["if"]).is_valid(instance): - evaluated_indexes += find_evaluated_item_indexes_by_schema( - validator, instance, schema["if"], - ) - if "then" in schema: - evaluated_indexes += find_evaluated_item_indexes_by_schema( - validator, instance, schema["then"], - ) - elif "else" in schema: - evaluated_indexes += find_evaluated_item_indexes_by_schema( - validator, instance, schema["else"], - ) - - for keyword in ["contains", "unevaluatedItems"]: - if keyword in schema: - for k, v in enumerate(instance): - if validator.evolve(schema=schema[keyword]).is_valid(v): - evaluated_indexes.append(k) - - for keyword in ["allOf", "oneOf", "anyOf"]: - if keyword in schema: - for subschema in schema[keyword]: - errs = next(validator.descend(instance, subschema), None) - if errs is None: - evaluated_indexes += find_evaluated_item_indexes_by_schema( - validator, instance, subschema, - ) - - return evaluated_indexes - - -def unevaluatedItems_draft2019(validator, unevaluatedItems, instance, schema): - if not validator.is_type(instance, "array"): - return - evaluated_item_indexes = find_evaluated_item_indexes_by_schema( - validator, instance, schema, - ) - unevaluated_items = [ - item for index, item in enumerate(instance) - if index not in evaluated_item_indexes - ] - if unevaluated_items: - error = "Unevaluated items are not allowed (%s %s unexpected)" - yield ValidationError(error % _utils.extras_msg(unevaluated_items)) - - -def find_evaluated_property_keys_by_schema(validator, instance, schema): - if validator.is_type(schema, "boolean"): - return [] - evaluated_keys = [] - - ref = schema.get("$ref") - if ref is not None: - resolved = validator._resolver.lookup(ref) - evaluated_keys.extend( - find_evaluated_property_keys_by_schema( - validator.evolve( - schema=resolved.contents, - _resolver=resolved.resolver, - ), - instance, - resolved.contents, - ), - ) - - if "$recursiveRef" in schema: - resolved = lookup_recursive_ref(validator._resolver) - evaluated_keys.extend( - find_evaluated_property_keys_by_schema( - validator.evolve( - schema=resolved.contents, - _resolver=resolved.resolver, - ), - instance, - resolved.contents, - ), - ) - - for keyword in [ - "properties", "additionalProperties", "unevaluatedProperties", - ]: - if keyword in schema: - schema_value = schema[keyword] - if validator.is_type(schema_value, "boolean") and schema_value: - evaluated_keys += instance.keys() - - elif validator.is_type(schema_value, "object"): - for property in schema_value: - if property in instance: - evaluated_keys.append(property) - - if "patternProperties" in schema: - for property in instance: - for pattern in schema["patternProperties"]: - if re.search(pattern, property): - evaluated_keys.append(property) - - if "dependentSchemas" in schema: - for property, subschema in schema["dependentSchemas"].items(): - if property not in instance: - continue - evaluated_keys += find_evaluated_property_keys_by_schema( - validator, instance, subschema, - ) - - for keyword in ["allOf", "oneOf", "anyOf"]: - if keyword in schema: - for subschema in schema[keyword]: - errs = next(validator.descend(instance, subschema), None) - if errs is None: - evaluated_keys += find_evaluated_property_keys_by_schema( - validator, instance, subschema, - ) - - if "if" in schema: - if validator.evolve(schema=schema["if"]).is_valid(instance): - evaluated_keys += find_evaluated_property_keys_by_schema( - validator, instance, schema["if"], - ) - if "then" in schema: - evaluated_keys += find_evaluated_property_keys_by_schema( - validator, instance, schema["then"], - ) - elif "else" in schema: - evaluated_keys += find_evaluated_property_keys_by_schema( - validator, instance, schema["else"], - ) - - return evaluated_keys - - -def unevaluatedProperties_draft2019(validator, uP, instance, schema): - if not validator.is_type(instance, "object"): - return - evaluated_keys = find_evaluated_property_keys_by_schema( - validator, instance, schema, - ) - unevaluated_keys = [] - for property in instance: - if property not in evaluated_keys: - for _ in validator.descend( - instance[property], - uP, - path=property, - schema_path=property, - ): - # FIXME: Include context for each unevaluated property - # indicating why it's invalid under the subschema. - unevaluated_keys.append(property) # noqa: PERF401 - - if unevaluated_keys: - if uP is False: - error = "Unevaluated properties are not allowed (%s %s unexpected)" - extras = sorted(unevaluated_keys, key=str) - yield ValidationError(error % _utils.extras_msg(extras)) - else: - error = ( - "Unevaluated properties are not valid under " - "the given schema (%s %s unevaluated and invalid)" - ) - yield ValidationError(error % _utils.extras_msg(unevaluated_keys)) diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/_types.py b/agent/vendor/jsonschema-4.23.0/jsonschema/_types.py deleted file mode 100644 index bf25e7e6f..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/_types.py +++ /dev/null @@ -1,200 +0,0 @@ -from __future__ import annotations - -from typing import Any, Callable, Mapping -import numbers - -from attrs import evolve, field, frozen -from rpds import HashTrieMap - -from jsonschema.exceptions import UndefinedTypeCheck - - -# unfortunately, the type of HashTrieMap is generic, and if used as an attrs -# converter, the generic type is presented to mypy, which then fails to match -# the concrete type of a type checker mapping -# this "do nothing" wrapper presents the correct information to mypy -def _typed_map_converter( - init_val: Mapping[str, Callable[[TypeChecker, Any], bool]], -) -> HashTrieMap[str, Callable[[TypeChecker, Any], bool]]: - return HashTrieMap.convert(init_val) - - -def is_array(checker, instance): - return isinstance(instance, list) - - -def is_bool(checker, instance): - return isinstance(instance, bool) - - -def is_integer(checker, instance): - # bool inherits from int, so ensure bools aren't reported as ints - if isinstance(instance, bool): - return False - return isinstance(instance, int) - - -def is_null(checker, instance): - return instance is None - - -def is_number(checker, instance): - # bool inherits from int, so ensure bools aren't reported as ints - if isinstance(instance, bool): - return False - return isinstance(instance, numbers.Number) - - -def is_object(checker, instance): - return isinstance(instance, dict) - - -def is_string(checker, instance): - return isinstance(instance, str) - - -def is_any(checker, instance): - return True - - -@frozen(repr=False) -class TypeChecker: - """ - A :kw:`type` property checker. - - A `TypeChecker` performs type checking for a `Validator`, converting - between the defined JSON Schema types and some associated Python types or - objects. - - Modifying the behavior just mentioned by redefining which Python objects - are considered to be of which JSON Schema types can be done using - `TypeChecker.redefine` or `TypeChecker.redefine_many`, and types can be - removed via `TypeChecker.remove`. Each of these return a new `TypeChecker`. - - Arguments: - - type_checkers: - - The initial mapping of types to their checking functions. - - """ - - _type_checkers: HashTrieMap[ - str, Callable[[TypeChecker, Any], bool], - ] = field(default=HashTrieMap(), converter=_typed_map_converter) - - def __repr__(self): - types = ", ".join(repr(k) for k in sorted(self._type_checkers)) - return f"<{self.__class__.__name__} types={{{types}}}>" - - def is_type(self, instance, type: str) -> bool: - """ - Check if the instance is of the appropriate type. - - Arguments: - - instance: - - The instance to check - - type: - - The name of the type that is expected. - - Raises: - - `jsonschema.exceptions.UndefinedTypeCheck`: - - if ``type`` is unknown to this object. - - """ - try: - fn = self._type_checkers[type] - except KeyError: - raise UndefinedTypeCheck(type) from None - - return fn(self, instance) - - def redefine(self, type: str, fn) -> TypeChecker: - """ - Produce a new checker with the given type redefined. - - Arguments: - - type: - - The name of the type to check. - - fn (collections.abc.Callable): - - A callable taking exactly two parameters - the type - checker calling the function and the instance to check. - The function should return true if instance is of this - type and false otherwise. - - """ - return self.redefine_many({type: fn}) - - def redefine_many(self, definitions=()) -> TypeChecker: - """ - Produce a new checker with the given types redefined. - - Arguments: - - definitions (dict): - - A dictionary mapping types to their checking functions. - - """ - type_checkers = self._type_checkers.update(definitions) - return evolve(self, type_checkers=type_checkers) - - def remove(self, *types) -> TypeChecker: - """ - Produce a new checker with the given types forgotten. - - Arguments: - - types: - - the names of the types to remove. - - Raises: - - `jsonschema.exceptions.UndefinedTypeCheck`: - - if any given type is unknown to this object - - """ - type_checkers = self._type_checkers - for each in types: - try: - type_checkers = type_checkers.remove(each) - except KeyError: - raise UndefinedTypeCheck(each) from None - return evolve(self, type_checkers=type_checkers) - - -draft3_type_checker = TypeChecker( - { - "any": is_any, - "array": is_array, - "boolean": is_bool, - "integer": is_integer, - "object": is_object, - "null": is_null, - "number": is_number, - "string": is_string, - }, -) -draft4_type_checker = draft3_type_checker.remove("any") -draft6_type_checker = draft4_type_checker.redefine( - "integer", - lambda checker, instance: ( - is_integer(checker, instance) - or isinstance(instance, float) and instance.is_integer() - ), -) -draft7_type_checker = draft6_type_checker -draft201909_type_checker = draft7_type_checker -draft202012_type_checker = draft201909_type_checker diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/_typing.py b/agent/vendor/jsonschema-4.23.0/jsonschema/_typing.py deleted file mode 100644 index d283dc48d..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/_typing.py +++ /dev/null @@ -1,28 +0,0 @@ -""" -Some (initially private) typing helpers for jsonschema's types. -""" -from typing import Any, Callable, Iterable, Protocol, Tuple, Union - -import referencing.jsonschema - -from jsonschema.protocols import Validator - - -class SchemaKeywordValidator(Protocol): - def __call__( - self, - validator: Validator, - value: Any, - instance: Any, - schema: referencing.jsonschema.Schema, - ) -> None: - ... - - -id_of = Callable[[referencing.jsonschema.Schema], Union[str, None]] - - -ApplicableValidators = Callable[ - [referencing.jsonschema.Schema], - Iterable[Tuple[str, Any]], -] diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/_utils.py b/agent/vendor/jsonschema-4.23.0/jsonschema/_utils.py deleted file mode 100644 index 54d28c041..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/_utils.py +++ /dev/null @@ -1,351 +0,0 @@ -from collections.abc import Mapping, MutableMapping, Sequence -from urllib.parse import urlsplit -import itertools -import re - - -class URIDict(MutableMapping): - """ - Dictionary which uses normalized URIs as keys. - """ - - def normalize(self, uri): - return urlsplit(uri).geturl() - - def __init__(self, *args, **kwargs): - self.store = dict() - self.store.update(*args, **kwargs) - - def __getitem__(self, uri): - return self.store[self.normalize(uri)] - - def __setitem__(self, uri, value): - self.store[self.normalize(uri)] = value - - def __delitem__(self, uri): - del self.store[self.normalize(uri)] - - def __iter__(self): - return iter(self.store) - - def __len__(self): # pragma: no cover -- untested, but to be removed - return len(self.store) - - def __repr__(self): # pragma: no cover -- untested, but to be removed - return repr(self.store) - - -class Unset: - """ - An as-of-yet unset attribute or unprovided default parameter. - """ - - def __repr__(self): # pragma: no cover - return "" - - -def format_as_index(container, indices): - """ - Construct a single string containing indexing operations for the indices. - - For example for a container ``bar``, [1, 2, "foo"] -> bar[1][2]["foo"] - - Arguments: - - container (str): - - A word to use for the thing being indexed - - indices (sequence): - - The indices to format. - - """ - if not indices: - return container - return f"{container}[{']['.join(repr(index) for index in indices)}]" - - -def find_additional_properties(instance, schema): - """ - Return the set of additional properties for the given ``instance``. - - Weeds out properties that should have been validated by ``properties`` and - / or ``patternProperties``. - - Assumes ``instance`` is dict-like already. - """ - properties = schema.get("properties", {}) - patterns = "|".join(schema.get("patternProperties", {})) - for property in instance: - if property not in properties: - if patterns and re.search(patterns, property): - continue - yield property - - -def extras_msg(extras): - """ - Create an error message for extra items or properties. - """ - verb = "was" if len(extras) == 1 else "were" - return ", ".join(repr(extra) for extra in extras), verb - - -def ensure_list(thing): - """ - Wrap ``thing`` in a list if it's a single str. - - Otherwise, return it unchanged. - """ - if isinstance(thing, str): - return [thing] - return thing - - -def _mapping_equal(one, two): - """ - Check if two mappings are equal using the semantics of `equal`. - """ - if len(one) != len(two): - return False - return all( - key in two and equal(value, two[key]) - for key, value in one.items() - ) - - -def _sequence_equal(one, two): - """ - Check if two sequences are equal using the semantics of `equal`. - """ - if len(one) != len(two): - return False - return all(equal(i, j) for i, j in zip(one, two)) - - -def equal(one, two): - """ - Check if two things are equal evading some Python type hierarchy semantics. - - Specifically in JSON Schema, evade `bool` inheriting from `int`, - recursing into sequences to do the same. - """ - if one is two: - return True - if isinstance(one, str) or isinstance(two, str): - return one == two - if isinstance(one, Sequence) and isinstance(two, Sequence): - return _sequence_equal(one, two) - if isinstance(one, Mapping) and isinstance(two, Mapping): - return _mapping_equal(one, two) - return unbool(one) == unbool(two) - - -def unbool(element, true=object(), false=object()): - """ - A hack to make True and 1 and False and 0 unique for ``uniq``. - """ - if element is True: - return true - elif element is False: - return false - return element - - -def uniq(container): - """ - Check if all of a container's elements are unique. - - Tries to rely on the container being recursively sortable, or otherwise - falls back on (slow) brute force. - """ - try: - sort = sorted(unbool(i) for i in container) - sliced = itertools.islice(sort, 1, None) - - for i, j in zip(sort, sliced): - if equal(i, j): - return False - - except (NotImplementedError, TypeError): - seen = [] - for e in container: - e = unbool(e) - - for i in seen: - if equal(i, e): - return False - - seen.append(e) - return True - - -def find_evaluated_item_indexes_by_schema(validator, instance, schema): - """ - Get all indexes of items that get evaluated under the current schema. - - Covers all keywords related to unevaluatedItems: items, prefixItems, if, - then, else, contains, unevaluatedItems, allOf, oneOf, anyOf - """ - if validator.is_type(schema, "boolean"): - return [] - evaluated_indexes = [] - - if "items" in schema: - return list(range(len(instance))) - - ref = schema.get("$ref") - if ref is not None: - resolved = validator._resolver.lookup(ref) - evaluated_indexes.extend( - find_evaluated_item_indexes_by_schema( - validator.evolve( - schema=resolved.contents, - _resolver=resolved.resolver, - ), - instance, - resolved.contents, - ), - ) - - dynamicRef = schema.get("$dynamicRef") - if dynamicRef is not None: - resolved = validator._resolver.lookup(dynamicRef) - evaluated_indexes.extend( - find_evaluated_item_indexes_by_schema( - validator.evolve( - schema=resolved.contents, - _resolver=resolved.resolver, - ), - instance, - resolved.contents, - ), - ) - - if "prefixItems" in schema: - evaluated_indexes += list(range(len(schema["prefixItems"]))) - - if "if" in schema: - if validator.evolve(schema=schema["if"]).is_valid(instance): - evaluated_indexes += find_evaluated_item_indexes_by_schema( - validator, instance, schema["if"], - ) - if "then" in schema: - evaluated_indexes += find_evaluated_item_indexes_by_schema( - validator, instance, schema["then"], - ) - elif "else" in schema: - evaluated_indexes += find_evaluated_item_indexes_by_schema( - validator, instance, schema["else"], - ) - - for keyword in ["contains", "unevaluatedItems"]: - if keyword in schema: - for k, v in enumerate(instance): - if validator.evolve(schema=schema[keyword]).is_valid(v): - evaluated_indexes.append(k) - - for keyword in ["allOf", "oneOf", "anyOf"]: - if keyword in schema: - for subschema in schema[keyword]: - errs = next(validator.descend(instance, subschema), None) - if errs is None: - evaluated_indexes += find_evaluated_item_indexes_by_schema( - validator, instance, subschema, - ) - - return evaluated_indexes - - -def find_evaluated_property_keys_by_schema(validator, instance, schema): - """ - Get all keys of items that get evaluated under the current schema. - - Covers all keywords related to unevaluatedProperties: properties, - additionalProperties, unevaluatedProperties, patternProperties, - dependentSchemas, allOf, oneOf, anyOf, if, then, else - """ - if validator.is_type(schema, "boolean"): - return [] - evaluated_keys = [] - - ref = schema.get("$ref") - if ref is not None: - resolved = validator._resolver.lookup(ref) - evaluated_keys.extend( - find_evaluated_property_keys_by_schema( - validator.evolve( - schema=resolved.contents, - _resolver=resolved.resolver, - ), - instance, - resolved.contents, - ), - ) - - dynamicRef = schema.get("$dynamicRef") - if dynamicRef is not None: - resolved = validator._resolver.lookup(dynamicRef) - evaluated_keys.extend( - find_evaluated_property_keys_by_schema( - validator.evolve( - schema=resolved.contents, - _resolver=resolved.resolver, - ), - instance, - resolved.contents, - ), - ) - - for keyword in [ - "properties", "additionalProperties", "unevaluatedProperties", - ]: - if keyword in schema: - schema_value = schema[keyword] - if validator.is_type(schema_value, "boolean") and schema_value: - evaluated_keys += instance.keys() - - elif validator.is_type(schema_value, "object"): - for property in schema_value: - if property in instance: - evaluated_keys.append(property) - - if "patternProperties" in schema: - for property in instance: - for pattern in schema["patternProperties"]: - if re.search(pattern, property): - evaluated_keys.append(property) - - if "dependentSchemas" in schema: - for property, subschema in schema["dependentSchemas"].items(): - if property not in instance: - continue - evaluated_keys += find_evaluated_property_keys_by_schema( - validator, instance, subschema, - ) - - for keyword in ["allOf", "oneOf", "anyOf"]: - if keyword in schema: - for subschema in schema[keyword]: - errs = next(validator.descend(instance, subschema), None) - if errs is None: - evaluated_keys += find_evaluated_property_keys_by_schema( - validator, instance, subschema, - ) - - if "if" in schema: - if validator.evolve(schema=schema["if"]).is_valid(instance): - evaluated_keys += find_evaluated_property_keys_by_schema( - validator, instance, schema["if"], - ) - if "then" in schema: - evaluated_keys += find_evaluated_property_keys_by_schema( - validator, instance, schema["then"], - ) - elif "else" in schema: - evaluated_keys += find_evaluated_property_keys_by_schema( - validator, instance, schema["else"], - ) - - return evaluated_keys diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/__init__.py b/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/__init__.py deleted file mode 100644 index e3dcc6899..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ -""" -Benchmarks for validation. - -This package is *not* public API. -""" diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/const_vs_enum.py b/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/const_vs_enum.py deleted file mode 100644 index c6fecd10f..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/const_vs_enum.py +++ /dev/null @@ -1,30 +0,0 @@ -""" -A benchmark for comparing equivalent validation of `const` and `enum`. -""" - -from pyperf import Runner - -from jsonschema import Draft202012Validator - -value = [37] * 100 -const_schema = {"const": list(value)} -enum_schema = {"enum": [list(value)]} - -valid = list(value) -invalid = [*valid, 73] - -const = Draft202012Validator(const_schema) -enum = Draft202012Validator(enum_schema) - -assert const.is_valid(valid) -assert enum.is_valid(valid) -assert not const.is_valid(invalid) -assert not enum.is_valid(invalid) - - -if __name__ == "__main__": - runner = Runner() - runner.bench_func("const valid", lambda: const.is_valid(valid)) - runner.bench_func("const invalid", lambda: const.is_valid(invalid)) - runner.bench_func("enum valid", lambda: enum.is_valid(valid)) - runner.bench_func("enum invalid", lambda: enum.is_valid(invalid)) diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/contains.py b/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/contains.py deleted file mode 100644 index 739cd044c..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/contains.py +++ /dev/null @@ -1,28 +0,0 @@ -""" -A benchmark for validation of the `contains` keyword. -""" - -from pyperf import Runner - -from jsonschema import Draft202012Validator - -schema = { - "type": "array", - "contains": {"const": 37}, -} -validator = Draft202012Validator(schema) - -size = 1000 -beginning = [37] + [0] * (size - 1) -middle = [0] * (size // 2) + [37] + [0] * (size // 2) -end = [0] * (size - 1) + [37] -invalid = [0] * size - - -if __name__ == "__main__": - runner = Runner() - runner.bench_func("baseline", lambda: validator.is_valid([])) - runner.bench_func("beginning", lambda: validator.is_valid(beginning)) - runner.bench_func("middle", lambda: validator.is_valid(middle)) - runner.bench_func("end", lambda: validator.is_valid(end)) - runner.bench_func("invalid", lambda: validator.is_valid(invalid)) diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/issue232.py b/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/issue232.py deleted file mode 100644 index efd071548..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/issue232.py +++ /dev/null @@ -1,25 +0,0 @@ -""" -A performance benchmark using the example from issue #232. - -See https://github.com/python-jsonschema/jsonschema/pull/232. -""" -from pathlib import Path - -from pyperf import Runner -from referencing import Registry - -from jsonschema.tests._suite import Version -import jsonschema - -issue232 = Version( - path=Path(__file__).parent / "issue232", - remotes=Registry(), - name="issue232", -) - - -if __name__ == "__main__": - issue232.benchmark( - runner=Runner(), - Validator=jsonschema.Draft4Validator, - ) diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/issue232/issue.json b/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/issue232/issue.json deleted file mode 100644 index 804c34084..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/issue232/issue.json +++ /dev/null @@ -1,2653 +0,0 @@ -[ - { - "description": "Petstore", - "schema": { - "title": "A JSON Schema for Swagger 2.0 API.", - "id": "http://swagger.io/v2/schema.json#", - "$schema": "http://json-schema.org/draft-04/schema#", - "type": "object", - "required": [ - "swagger", - "info", - "paths" - ], - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "#/definitions/vendorExtension" - } - }, - "properties": { - "swagger": { - "type": "string", - "enum": [ - "2.0" - ], - "description": "The Swagger version of this document." - }, - "info": { - "$ref": "#/definitions/info" - }, - "host": { - "type": "string", - "pattern": "^[^{}/ :\\\\]+(?::\\d+)?$", - "description": "The host (name or ip) of the API. Example: 'swagger.io'" - }, - "basePath": { - "type": "string", - "pattern": "^/", - "description": "The base path to the API. Example: '/api'." - }, - "schemes": { - "$ref": "#/definitions/schemesList" - }, - "consumes": { - "description": "A list of MIME types accepted by the API.", - "allOf": [ - { - "$ref": "#/definitions/mediaTypeList" - } - ] - }, - "produces": { - "description": "A list of MIME types the API can produce.", - "allOf": [ - { - "$ref": "#/definitions/mediaTypeList" - } - ] - }, - "paths": { - "$ref": "#/definitions/paths" - }, - "definitions": { - "$ref": "#/definitions/definitions" - }, - "parameters": { - "$ref": "#/definitions/parameterDefinitions" - }, - "responses": { - "$ref": "#/definitions/responseDefinitions" - }, - "security": { - "$ref": "#/definitions/security" - }, - "securityDefinitions": { - "$ref": "#/definitions/securityDefinitions" - }, - "tags": { - "type": "array", - "items": { - "$ref": "#/definitions/tag" - }, - "uniqueItems": true - }, - "externalDocs": { - "$ref": "#/definitions/externalDocs" - } - }, - "definitions": { - "info": { - "type": "object", - "description": "General information about the API.", - "required": [ - "version", - "title" - ], - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "#/definitions/vendorExtension" - } - }, - "properties": { - "title": { - "type": "string", - "description": "A unique and precise title of the API." - }, - "version": { - "type": "string", - "description": "A semantic version number of the API." - }, - "description": { - "type": "string", - "description": "A longer description of the API. Should be different from the title. GitHub Flavored Markdown is allowed." - }, - "termsOfService": { - "type": "string", - "description": "The terms of service for the API." - }, - "contact": { - "$ref": "#/definitions/contact" - }, - "license": { - "$ref": "#/definitions/license" - } - } - }, - "contact": { - "type": "object", - "description": "Contact information for the owners of the API.", - "additionalProperties": false, - "properties": { - "name": { - "type": "string", - "description": "The identifying name of the contact person/organization." - }, - "url": { - "type": "string", - "description": "The URL pointing to the contact information.", - "format": "uri" - }, - "email": { - "type": "string", - "description": "The email address of the contact person/organization.", - "format": "email" - } - }, - "patternProperties": { - "^x-": { - "$ref": "#/definitions/vendorExtension" - } - } - }, - "license": { - "type": "object", - "required": [ - "name" - ], - "additionalProperties": false, - "properties": { - "name": { - "type": "string", - "description": "The name of the license type. It's encouraged to use an OSI compatible license." - }, - "url": { - "type": "string", - "description": "The URL pointing to the license.", - "format": "uri" - } - }, - "patternProperties": { - "^x-": { - "$ref": "#/definitions/vendorExtension" - } - } - }, - "paths": { - "type": "object", - "description": "Relative paths to the individual endpoints. They must be relative to the 'basePath'.", - "patternProperties": { - "^x-": { - "$ref": "#/definitions/vendorExtension" - }, - "^/": { - "$ref": "#/definitions/pathItem" - } - }, - "additionalProperties": false - }, - "definitions": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/schema" - }, - "description": "One or more JSON objects describing the schemas being consumed and produced by the API." - }, - "parameterDefinitions": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/parameter" - }, - "description": "One or more JSON representations for parameters" - }, - "responseDefinitions": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/response" - }, - "description": "One or more JSON representations for parameters" - }, - "externalDocs": { - "type": "object", - "additionalProperties": false, - "description": "information about external documentation", - "required": [ - "url" - ], - "properties": { - "description": { - "type": "string" - }, - "url": { - "type": "string", - "format": "uri" - } - }, - "patternProperties": { - "^x-": { - "$ref": "#/definitions/vendorExtension" - } - } - }, - "examples": { - "type": "object", - "additionalProperties": true - }, - "mimeType": { - "type": "string", - "description": "The MIME type of the HTTP message." - }, - "operation": { - "type": "object", - "required": [ - "responses" - ], - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "#/definitions/vendorExtension" - } - }, - "properties": { - "tags": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true - }, - "summary": { - "type": "string", - "description": "A brief summary of the operation." - }, - "description": { - "type": "string", - "description": "A longer description of the operation, GitHub Flavored Markdown is allowed." - }, - "externalDocs": { - "$ref": "#/definitions/externalDocs" - }, - "operationId": { - "type": "string", - "description": "A unique identifier of the operation." - }, - "produces": { - "description": "A list of MIME types the API can produce.", - "allOf": [ - { - "$ref": "#/definitions/mediaTypeList" - } - ] - }, - "consumes": { - "description": "A list of MIME types the API can consume.", - "allOf": [ - { - "$ref": "#/definitions/mediaTypeList" - } - ] - }, - "parameters": { - "$ref": "#/definitions/parametersList" - }, - "responses": { - "$ref": "#/definitions/responses" - }, - "schemes": { - "$ref": "#/definitions/schemesList" - }, - "deprecated": { - "type": "boolean", - "default": false - }, - "security": { - "$ref": "#/definitions/security" - } - } - }, - "pathItem": { - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "#/definitions/vendorExtension" - } - }, - "properties": { - "$ref": { - "type": "string" - }, - "get": { - "$ref": "#/definitions/operation" - }, - "put": { - "$ref": "#/definitions/operation" - }, - "post": { - "$ref": "#/definitions/operation" - }, - "delete": { - "$ref": "#/definitions/operation" - }, - "options": { - "$ref": "#/definitions/operation" - }, - "head": { - "$ref": "#/definitions/operation" - }, - "patch": { - "$ref": "#/definitions/operation" - }, - "parameters": { - "$ref": "#/definitions/parametersList" - } - } - }, - "responses": { - "type": "object", - "description": "Response objects names can either be any valid HTTP status code or 'default'.", - "minProperties": 1, - "additionalProperties": false, - "patternProperties": { - "^([0-9]{3})$|^(default)$": { - "$ref": "#/definitions/responseValue" - }, - "^x-": { - "$ref": "#/definitions/vendorExtension" - } - }, - "not": { - "type": "object", - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "#/definitions/vendorExtension" - } - } - } - }, - "responseValue": { - "oneOf": [ - { - "$ref": "#/definitions/response" - }, - { - "$ref": "#/definitions/jsonReference" - } - ] - }, - "response": { - "type": "object", - "required": [ - "description" - ], - "properties": { - "description": { - "type": "string" - }, - "schema": { - "oneOf": [ - { - "$ref": "#/definitions/schema" - }, - { - "$ref": "#/definitions/fileSchema" - } - ] - }, - "headers": { - "$ref": "#/definitions/headers" - }, - "examples": { - "$ref": "#/definitions/examples" - } - }, - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "#/definitions/vendorExtension" - } - } - }, - "headers": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/header" - } - }, - "header": { - "type": "object", - "additionalProperties": false, - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "integer", - "boolean", - "array" - ] - }, - "format": { - "type": "string" - }, - "items": { - "$ref": "#/definitions/primitivesItems" - }, - "collectionFormat": { - "$ref": "#/definitions/collectionFormat" - }, - "default": { - "$ref": "#/definitions/default" - }, - "maximum": { - "$ref": "#/definitions/maximum" - }, - "exclusiveMaximum": { - "$ref": "#/definitions/exclusiveMaximum" - }, - "minimum": { - "$ref": "#/definitions/minimum" - }, - "exclusiveMinimum": { - "$ref": "#/definitions/exclusiveMinimum" - }, - "maxLength": { - "$ref": "#/definitions/maxLength" - }, - "minLength": { - "$ref": "#/definitions/minLength" - }, - "pattern": { - "$ref": "#/definitions/pattern" - }, - "maxItems": { - "$ref": "#/definitions/maxItems" - }, - "minItems": { - "$ref": "#/definitions/minItems" - }, - "uniqueItems": { - "$ref": "#/definitions/uniqueItems" - }, - "enum": { - "$ref": "#/definitions/enum" - }, - "multipleOf": { - "$ref": "#/definitions/multipleOf" - }, - "description": { - "type": "string" - } - }, - "patternProperties": { - "^x-": { - "$ref": "#/definitions/vendorExtension" - } - } - }, - "vendorExtension": { - "description": "Any property starting with x- is valid.", - "additionalProperties": true, - "additionalItems": true - }, - "bodyParameter": { - "type": "object", - "required": [ - "name", - "in", - "schema" - ], - "patternProperties": { - "^x-": { - "$ref": "#/definitions/vendorExtension" - } - }, - "properties": { - "description": { - "type": "string", - "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed." - }, - "name": { - "type": "string", - "description": "The name of the parameter." - }, - "in": { - "type": "string", - "description": "Determines the location of the parameter.", - "enum": [ - "body" - ] - }, - "required": { - "type": "boolean", - "description": "Determines whether or not this parameter is required or optional.", - "default": false - }, - "schema": { - "$ref": "#/definitions/schema" - } - }, - "additionalProperties": false - }, - "headerParameterSubSchema": { - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "#/definitions/vendorExtension" - } - }, - "properties": { - "required": { - "type": "boolean", - "description": "Determines whether or not this parameter is required or optional.", - "default": false - }, - "in": { - "type": "string", - "description": "Determines the location of the parameter.", - "enum": [ - "header" - ] - }, - "description": { - "type": "string", - "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed." - }, - "name": { - "type": "string", - "description": "The name of the parameter." - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "integer", - "array" - ] - }, - "format": { - "type": "string" - }, - "items": { - "$ref": "#/definitions/primitivesItems" - }, - "collectionFormat": { - "$ref": "#/definitions/collectionFormat" - }, - "default": { - "$ref": "#/definitions/default" - }, - "maximum": { - "$ref": "#/definitions/maximum" - }, - "exclusiveMaximum": { - "$ref": "#/definitions/exclusiveMaximum" - }, - "minimum": { - "$ref": "#/definitions/minimum" - }, - "exclusiveMinimum": { - "$ref": "#/definitions/exclusiveMinimum" - }, - "maxLength": { - "$ref": "#/definitions/maxLength" - }, - "minLength": { - "$ref": "#/definitions/minLength" - }, - "pattern": { - "$ref": "#/definitions/pattern" - }, - "maxItems": { - "$ref": "#/definitions/maxItems" - }, - "minItems": { - "$ref": "#/definitions/minItems" - }, - "uniqueItems": { - "$ref": "#/definitions/uniqueItems" - }, - "enum": { - "$ref": "#/definitions/enum" - }, - "multipleOf": { - "$ref": "#/definitions/multipleOf" - } - } - }, - "queryParameterSubSchema": { - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "#/definitions/vendorExtension" - } - }, - "properties": { - "required": { - "type": "boolean", - "description": "Determines whether or not this parameter is required or optional.", - "default": false - }, - "in": { - "type": "string", - "description": "Determines the location of the parameter.", - "enum": [ - "query" - ] - }, - "description": { - "type": "string", - "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed." - }, - "name": { - "type": "string", - "description": "The name of the parameter." - }, - "allowEmptyValue": { - "type": "boolean", - "default": false, - "description": "allows sending a parameter by name only or with an empty value." - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "integer", - "array" - ] - }, - "format": { - "type": "string" - }, - "items": { - "$ref": "#/definitions/primitivesItems" - }, - "collectionFormat": { - "$ref": "#/definitions/collectionFormatWithMulti" - }, - "default": { - "$ref": "#/definitions/default" - }, - "maximum": { - "$ref": "#/definitions/maximum" - }, - "exclusiveMaximum": { - "$ref": "#/definitions/exclusiveMaximum" - }, - "minimum": { - "$ref": "#/definitions/minimum" - }, - "exclusiveMinimum": { - "$ref": "#/definitions/exclusiveMinimum" - }, - "maxLength": { - "$ref": "#/definitions/maxLength" - }, - "minLength": { - "$ref": "#/definitions/minLength" - }, - "pattern": { - "$ref": "#/definitions/pattern" - }, - "maxItems": { - "$ref": "#/definitions/maxItems" - }, - "minItems": { - "$ref": "#/definitions/minItems" - }, - "uniqueItems": { - "$ref": "#/definitions/uniqueItems" - }, - "enum": { - "$ref": "#/definitions/enum" - }, - "multipleOf": { - "$ref": "#/definitions/multipleOf" - } - } - }, - "formDataParameterSubSchema": { - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "#/definitions/vendorExtension" - } - }, - "properties": { - "required": { - "type": "boolean", - "description": "Determines whether or not this parameter is required or optional.", - "default": false - }, - "in": { - "type": "string", - "description": "Determines the location of the parameter.", - "enum": [ - "formData" - ] - }, - "description": { - "type": "string", - "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed." - }, - "name": { - "type": "string", - "description": "The name of the parameter." - }, - "allowEmptyValue": { - "type": "boolean", - "default": false, - "description": "allows sending a parameter by name only or with an empty value." - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "integer", - "array", - "file" - ] - }, - "format": { - "type": "string" - }, - "items": { - "$ref": "#/definitions/primitivesItems" - }, - "collectionFormat": { - "$ref": "#/definitions/collectionFormatWithMulti" - }, - "default": { - "$ref": "#/definitions/default" - }, - "maximum": { - "$ref": "#/definitions/maximum" - }, - "exclusiveMaximum": { - "$ref": "#/definitions/exclusiveMaximum" - }, - "minimum": { - "$ref": "#/definitions/minimum" - }, - "exclusiveMinimum": { - "$ref": "#/definitions/exclusiveMinimum" - }, - "maxLength": { - "$ref": "#/definitions/maxLength" - }, - "minLength": { - "$ref": "#/definitions/minLength" - }, - "pattern": { - "$ref": "#/definitions/pattern" - }, - "maxItems": { - "$ref": "#/definitions/maxItems" - }, - "minItems": { - "$ref": "#/definitions/minItems" - }, - "uniqueItems": { - "$ref": "#/definitions/uniqueItems" - }, - "enum": { - "$ref": "#/definitions/enum" - }, - "multipleOf": { - "$ref": "#/definitions/multipleOf" - } - } - }, - "pathParameterSubSchema": { - "additionalProperties": false, - "patternProperties": { - "^x-": { - "$ref": "#/definitions/vendorExtension" - } - }, - "required": [ - "required" - ], - "properties": { - "required": { - "type": "boolean", - "enum": [ - true - ], - "description": "Determines whether or not this parameter is required or optional." - }, - "in": { - "type": "string", - "description": "Determines the location of the parameter.", - "enum": [ - "path" - ] - }, - "description": { - "type": "string", - "description": "A brief description of the parameter. This could contain examples of use. GitHub Flavored Markdown is allowed." - }, - "name": { - "type": "string", - "description": "The name of the parameter." - }, - "type": { - "type": "string", - "enum": [ - "string", - "number", - "boolean", - "integer", - "array" - ] - }, - "format": { - "type": "string" - }, - "items": { - "$ref": "#/definitions/primitivesItems" - }, - "collectionFormat": { - "$ref": "#/definitions/collectionFormat" - }, - "default": { - "$ref": "#/definitions/default" - }, - "maximum": { - "$ref": "#/definitions/maximum" - }, - "exclusiveMaximum": { - "$ref": "#/definitions/exclusiveMaximum" - }, - "minimum": { - "$ref": "#/definitions/minimum" - }, - "exclusiveMinimum": { - "$ref": "#/definitions/exclusiveMinimum" - }, - "maxLength": { - "$ref": "#/definitions/maxLength" - }, - "minLength": { - "$ref": "#/definitions/minLength" - }, - "pattern": { - "$ref": "#/definitions/pattern" - }, - "maxItems": { - "$ref": "#/definitions/maxItems" - }, - "minItems": { - "$ref": "#/definitions/minItems" - }, - "uniqueItems": { - "$ref": "#/definitions/uniqueItems" - }, - "enum": { - "$ref": "#/definitions/enum" - }, - "multipleOf": { - "$ref": "#/definitions/multipleOf" - } - } - }, - "nonBodyParameter": { - "type": "object", - "required": [ - "name", - "in", - "type" - ], - "oneOf": [ - { - "$ref": "#/definitions/headerParameterSubSchema" - }, - { - "$ref": "#/definitions/formDataParameterSubSchema" - }, - { - "$ref": "#/definitions/queryParameterSubSchema" - }, - { - "$ref": "#/definitions/pathParameterSubSchema" - } - ] - }, - "parameter": { - "oneOf": [ - { - "$ref": "#/definitions/bodyParameter" - }, - { - "$ref": "#/definitions/nonBodyParameter" - } - ] - }, - "schema": { - "type": "object", - "description": "A deterministic version of a JSON Schema object.", - "patternProperties": { - "^x-": { - "$ref": "#/definitions/vendorExtension" - } - }, - "properties": { - "$ref": { - "type": "string" - }, - "format": { - "type": "string" - }, - "title": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/title" - }, - "description": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/description" - }, - "default": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/default" - }, - "multipleOf": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/multipleOf" - }, - "maximum": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/maximum" - }, - "exclusiveMaximum": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum" - }, - "minimum": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/minimum" - }, - "exclusiveMinimum": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum" - }, - "maxLength": { - "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger" - }, - "minLength": { - "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0" - }, - "pattern": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/pattern" - }, - "maxItems": { - "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger" - }, - "minItems": { - "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0" - }, - "uniqueItems": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/uniqueItems" - }, - "maxProperties": { - "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger" - }, - "minProperties": { - "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0" - }, - "required": { - "$ref": "http://json-schema.org/draft-04/schema#/definitions/stringArray" - }, - "enum": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/enum" - }, - "additionalProperties": { - "anyOf": [ - { - "$ref": "#/definitions/schema" - }, - { - "type": "boolean" - } - ], - "default": {} - }, - "type": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/type" - }, - "items": { - "anyOf": [ - { - "$ref": "#/definitions/schema" - }, - { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/definitions/schema" - } - } - ], - "default": {} - }, - "allOf": { - "type": "array", - "minItems": 1, - "items": { - "$ref": "#/definitions/schema" - } - }, - "properties": { - "type": "object", - "additionalProperties": { - "$ref": "#/definitions/schema" - }, - "default": {} - }, - "discriminator": { - "type": "string" - }, - "readOnly": { - "type": "boolean", - "default": false - }, - "xml": { - "$ref": "#/definitions/xml" - }, - "externalDocs": { - "$ref": "#/definitions/externalDocs" - }, - "example": {} - }, - "additionalProperties": false - }, - "fileSchema": { - "type": "object", - "description": "A deterministic version of a JSON Schema object.", - "patternProperties": { - "^x-": { - "$ref": "#/definitions/vendorExtension" - } - }, - "required": [ - "type" - ], - "properties": { - "format": { - "type": "string" - }, - "title": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/title" - }, - "description": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/description" - }, - "default": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/default" - }, - "required": { - "$ref": "http://json-schema.org/draft-04/schema#/definitions/stringArray" - }, - "type": { - "type": "string", - "enum": [ - "file" - ] - }, - "readOnly": { - "type": "boolean", - "default": false - }, - "externalDocs": { - "$ref": "#/definitions/externalDocs" - }, - "example": {} - }, - "additionalProperties": false - }, - "primitivesItems": { - "type": "object", - "additionalProperties": false, - "properties": { - "type": { - "type": "string", - "enum": [ - "string", - "number", - "integer", - "boolean", - "array" - ] - }, - "format": { - "type": "string" - }, - "items": { - "$ref": "#/definitions/primitivesItems" - }, - "collectionFormat": { - "$ref": "#/definitions/collectionFormat" - }, - "default": { - "$ref": "#/definitions/default" - }, - "maximum": { - "$ref": "#/definitions/maximum" - }, - "exclusiveMaximum": { - "$ref": "#/definitions/exclusiveMaximum" - }, - "minimum": { - "$ref": "#/definitions/minimum" - }, - "exclusiveMinimum": { - "$ref": "#/definitions/exclusiveMinimum" - }, - "maxLength": { - "$ref": "#/definitions/maxLength" - }, - "minLength": { - "$ref": "#/definitions/minLength" - }, - "pattern": { - "$ref": "#/definitions/pattern" - }, - "maxItems": { - "$ref": "#/definitions/maxItems" - }, - "minItems": { - "$ref": "#/definitions/minItems" - }, - "uniqueItems": { - "$ref": "#/definitions/uniqueItems" - }, - "enum": { - "$ref": "#/definitions/enum" - }, - "multipleOf": { - "$ref": "#/definitions/multipleOf" - } - }, - "patternProperties": { - "^x-": { - "$ref": "#/definitions/vendorExtension" - } - } - }, - "security": { - "type": "array", - "items": { - "$ref": "#/definitions/securityRequirement" - }, - "uniqueItems": true - }, - "securityRequirement": { - "type": "object", - "additionalProperties": { - "type": "array", - "items": { - "type": "string" - }, - "uniqueItems": true - } - }, - "xml": { - "type": "object", - "additionalProperties": false, - "properties": { - "name": { - "type": "string" - }, - "namespace": { - "type": "string" - }, - "prefix": { - "type": "string" - }, - "attribute": { - "type": "boolean", - "default": false - }, - "wrapped": { - "type": "boolean", - "default": false - } - }, - "patternProperties": { - "^x-": { - "$ref": "#/definitions/vendorExtension" - } - } - }, - "tag": { - "type": "object", - "additionalProperties": false, - "required": [ - "name" - ], - "properties": { - "name": { - "type": "string" - }, - "description": { - "type": "string" - }, - "externalDocs": { - "$ref": "#/definitions/externalDocs" - } - }, - "patternProperties": { - "^x-": { - "$ref": "#/definitions/vendorExtension" - } - } - }, - "securityDefinitions": { - "type": "object", - "additionalProperties": { - "oneOf": [ - { - "$ref": "#/definitions/basicAuthenticationSecurity" - }, - { - "$ref": "#/definitions/apiKeySecurity" - }, - { - "$ref": "#/definitions/oauth2ImplicitSecurity" - }, - { - "$ref": "#/definitions/oauth2PasswordSecurity" - }, - { - "$ref": "#/definitions/oauth2ApplicationSecurity" - }, - { - "$ref": "#/definitions/oauth2AccessCodeSecurity" - } - ] - } - }, - "basicAuthenticationSecurity": { - "type": "object", - "additionalProperties": false, - "required": [ - "type" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "basic" - ] - }, - "description": { - "type": "string" - } - }, - "patternProperties": { - "^x-": { - "$ref": "#/definitions/vendorExtension" - } - } - }, - "apiKeySecurity": { - "type": "object", - "additionalProperties": false, - "required": [ - "type", - "name", - "in" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "apiKey" - ] - }, - "name": { - "type": "string" - }, - "in": { - "type": "string", - "enum": [ - "header", - "query" - ] - }, - "description": { - "type": "string" - } - }, - "patternProperties": { - "^x-": { - "$ref": "#/definitions/vendorExtension" - } - } - }, - "oauth2ImplicitSecurity": { - "type": "object", - "additionalProperties": false, - "required": [ - "type", - "flow", - "authorizationUrl" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "oauth2" - ] - }, - "flow": { - "type": "string", - "enum": [ - "implicit" - ] - }, - "scopes": { - "$ref": "#/definitions/oauth2Scopes" - }, - "authorizationUrl": { - "type": "string", - "format": "uri" - }, - "description": { - "type": "string" - } - }, - "patternProperties": { - "^x-": { - "$ref": "#/definitions/vendorExtension" - } - } - }, - "oauth2PasswordSecurity": { - "type": "object", - "additionalProperties": false, - "required": [ - "type", - "flow", - "tokenUrl" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "oauth2" - ] - }, - "flow": { - "type": "string", - "enum": [ - "password" - ] - }, - "scopes": { - "$ref": "#/definitions/oauth2Scopes" - }, - "tokenUrl": { - "type": "string", - "format": "uri" - }, - "description": { - "type": "string" - } - }, - "patternProperties": { - "^x-": { - "$ref": "#/definitions/vendorExtension" - } - } - }, - "oauth2ApplicationSecurity": { - "type": "object", - "additionalProperties": false, - "required": [ - "type", - "flow", - "tokenUrl" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "oauth2" - ] - }, - "flow": { - "type": "string", - "enum": [ - "application" - ] - }, - "scopes": { - "$ref": "#/definitions/oauth2Scopes" - }, - "tokenUrl": { - "type": "string", - "format": "uri" - }, - "description": { - "type": "string" - } - }, - "patternProperties": { - "^x-": { - "$ref": "#/definitions/vendorExtension" - } - } - }, - "oauth2AccessCodeSecurity": { - "type": "object", - "additionalProperties": false, - "required": [ - "type", - "flow", - "authorizationUrl", - "tokenUrl" - ], - "properties": { - "type": { - "type": "string", - "enum": [ - "oauth2" - ] - }, - "flow": { - "type": "string", - "enum": [ - "accessCode" - ] - }, - "scopes": { - "$ref": "#/definitions/oauth2Scopes" - }, - "authorizationUrl": { - "type": "string", - "format": "uri" - }, - "tokenUrl": { - "type": "string", - "format": "uri" - }, - "description": { - "type": "string" - } - }, - "patternProperties": { - "^x-": { - "$ref": "#/definitions/vendorExtension" - } - } - }, - "oauth2Scopes": { - "type": "object", - "additionalProperties": { - "type": "string" - } - }, - "mediaTypeList": { - "type": "array", - "items": { - "$ref": "#/definitions/mimeType" - }, - "uniqueItems": true - }, - "parametersList": { - "type": "array", - "description": "The parameters needed to send a valid API call.", - "additionalItems": false, - "items": { - "oneOf": [ - { - "$ref": "#/definitions/parameter" - }, - { - "$ref": "#/definitions/jsonReference" - } - ] - }, - "uniqueItems": true - }, - "schemesList": { - "type": "array", - "description": "The transfer protocol of the API.", - "items": { - "type": "string", - "enum": [ - "http", - "https", - "ws", - "wss" - ] - }, - "uniqueItems": true - }, - "collectionFormat": { - "type": "string", - "enum": [ - "csv", - "ssv", - "tsv", - "pipes" - ], - "default": "csv" - }, - "collectionFormatWithMulti": { - "type": "string", - "enum": [ - "csv", - "ssv", - "tsv", - "pipes", - "multi" - ], - "default": "csv" - }, - "title": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/title" - }, - "description": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/description" - }, - "default": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/default" - }, - "multipleOf": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/multipleOf" - }, - "maximum": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/maximum" - }, - "exclusiveMaximum": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMaximum" - }, - "minimum": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/minimum" - }, - "exclusiveMinimum": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/exclusiveMinimum" - }, - "maxLength": { - "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger" - }, - "minLength": { - "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0" - }, - "pattern": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/pattern" - }, - "maxItems": { - "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveInteger" - }, - "minItems": { - "$ref": "http://json-schema.org/draft-04/schema#/definitions/positiveIntegerDefault0" - }, - "uniqueItems": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/uniqueItems" - }, - "enum": { - "$ref": "http://json-schema.org/draft-04/schema#/properties/enum" - }, - "jsonReference": { - "type": "object", - "required": [ - "$ref" - ], - "additionalProperties": false, - "properties": { - "$ref": { - "type": "string" - } - } - } - } - }, - "tests": [ - { - "description": "Example petsore", - "data": { - "swagger": "2.0", - "info": { - "description": "This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.", - "version": "1.0.0", - "title": "Swagger Petstore", - "termsOfService": "http://swagger.io/terms/", - "contact": { - "email": "apiteam@swagger.io" - }, - "license": { - "name": "Apache 2.0", - "url": "http://www.apache.org/licenses/LICENSE-2.0.html" - } - }, - "host": "petstore.swagger.io", - "basePath": "/v2", - "tags": [ - { - "name": "pet", - "description": "Everything about your Pets", - "externalDocs": { - "description": "Find out more", - "url": "http://swagger.io" - } - }, - { - "name": "store", - "description": "Access to Petstore orders" - }, - { - "name": "user", - "description": "Operations about user", - "externalDocs": { - "description": "Find out more about our store", - "url": "http://swagger.io" - } - } - ], - "schemes": [ - "http" - ], - "paths": { - "/pet": { - "post": { - "tags": [ - "pet" - ], - "summary": "Add a new pet to the store", - "description": "", - "operationId": "addPet", - "consumes": [ - "application/json", - "application/xml" - ], - "produces": [ - "application/xml", - "application/json" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "description": "Pet object that needs to be added to the store", - "required": true, - "schema": { - "$ref": "#/definitions/Pet" - } - } - ], - "responses": { - "405": { - "description": "Invalid input" - } - }, - "security": [ - { - "petstore_auth": [ - "write:pets", - "read:pets" - ] - } - ] - }, - "put": { - "tags": [ - "pet" - ], - "summary": "Update an existing pet", - "description": "", - "operationId": "updatePet", - "consumes": [ - "application/json", - "application/xml" - ], - "produces": [ - "application/xml", - "application/json" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "description": "Pet object that needs to be added to the store", - "required": true, - "schema": { - "$ref": "#/definitions/Pet" - } - } - ], - "responses": { - "400": { - "description": "Invalid ID supplied" - }, - "404": { - "description": "Pet not found" - }, - "405": { - "description": "Validation exception" - } - }, - "security": [ - { - "petstore_auth": [ - "write:pets", - "read:pets" - ] - } - ] - } - }, - "/pet/findByStatus": { - "get": { - "tags": [ - "pet" - ], - "summary": "Finds Pets by status", - "description": "Multiple status values can be provided with comma separated strings", - "operationId": "findPetsByStatus", - "produces": [ - "application/xml", - "application/json" - ], - "parameters": [ - { - "name": "status", - "in": "query", - "description": "Status values that need to be considered for filter", - "required": true, - "type": "array", - "items": { - "type": "string", - "enum": [ - "available", - "pending", - "sold" - ], - "default": "available" - }, - "collectionFormat": "multi" - } - ], - "responses": { - "200": { - "description": "successful operation", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/Pet" - } - } - }, - "400": { - "description": "Invalid status value" - } - }, - "security": [ - { - "petstore_auth": [ - "write:pets", - "read:pets" - ] - } - ] - } - }, - "/pet/findByTags": { - "get": { - "tags": [ - "pet" - ], - "summary": "Finds Pets by tags", - "description": "Muliple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.", - "operationId": "findPetsByTags", - "produces": [ - "application/xml", - "application/json" - ], - "parameters": [ - { - "name": "tags", - "in": "query", - "description": "Tags to filter by", - "required": true, - "type": "array", - "items": { - "type": "string" - }, - "collectionFormat": "multi" - } - ], - "responses": { - "200": { - "description": "successful operation", - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/Pet" - } - } - }, - "400": { - "description": "Invalid tag value" - } - }, - "security": [ - { - "petstore_auth": [ - "write:pets", - "read:pets" - ] - } - ], - "deprecated": true - } - }, - "/pet/{petId}": { - "get": { - "tags": [ - "pet" - ], - "summary": "Find pet by ID", - "description": "Returns a single pet", - "operationId": "getPetById", - "produces": [ - "application/xml", - "application/json" - ], - "parameters": [ - { - "name": "petId", - "in": "path", - "description": "ID of pet to return", - "required": true, - "type": "integer", - "format": "int64" - } - ], - "responses": { - "200": { - "description": "successful operation", - "schema": { - "$ref": "#/definitions/Pet" - } - }, - "400": { - "description": "Invalid ID supplied" - }, - "404": { - "description": "Pet not found" - } - }, - "security": [ - { - "api_key": [] - } - ] - }, - "post": { - "tags": [ - "pet" - ], - "summary": "Updates a pet in the store with form data", - "description": "", - "operationId": "updatePetWithForm", - "consumes": [ - "application/x-www-form-urlencoded" - ], - "produces": [ - "application/xml", - "application/json" - ], - "parameters": [ - { - "name": "petId", - "in": "path", - "description": "ID of pet that needs to be updated", - "required": true, - "type": "integer", - "format": "int64" - }, - { - "name": "name", - "in": "formData", - "description": "Updated name of the pet", - "required": false, - "type": "string" - }, - { - "name": "status", - "in": "formData", - "description": "Updated status of the pet", - "required": false, - "type": "string" - } - ], - "responses": { - "405": { - "description": "Invalid input" - } - }, - "security": [ - { - "petstore_auth": [ - "write:pets", - "read:pets" - ] - } - ] - }, - "delete": { - "tags": [ - "pet" - ], - "summary": "Deletes a pet", - "description": "", - "operationId": "deletePet", - "produces": [ - "application/xml", - "application/json" - ], - "parameters": [ - { - "name": "api_key", - "in": "header", - "required": false, - "type": "string" - }, - { - "name": "petId", - "in": "path", - "description": "Pet id to delete", - "required": true, - "type": "integer", - "format": "int64" - } - ], - "responses": { - "400": { - "description": "Invalid ID supplied" - }, - "404": { - "description": "Pet not found" - } - }, - "security": [ - { - "petstore_auth": [ - "write:pets", - "read:pets" - ] - } - ] - } - }, - "/pet/{petId}/uploadImage": { - "post": { - "tags": [ - "pet" - ], - "summary": "uploads an image", - "description": "", - "operationId": "uploadFile", - "consumes": [ - "multipart/form-data" - ], - "produces": [ - "application/json" - ], - "parameters": [ - { - "name": "petId", - "in": "path", - "description": "ID of pet to update", - "required": true, - "type": "integer", - "format": "int64" - }, - { - "name": "additionalMetadata", - "in": "formData", - "description": "Additional data to pass to server", - "required": false, - "type": "string" - }, - { - "name": "file", - "in": "formData", - "description": "file to upload", - "required": false, - "type": "file" - } - ], - "responses": { - "200": { - "description": "successful operation", - "schema": { - "$ref": "#/definitions/ApiResponse" - } - } - }, - "security": [ - { - "petstore_auth": [ - "write:pets", - "read:pets" - ] - } - ] - } - }, - "/store/inventory": { - "get": { - "tags": [ - "store" - ], - "summary": "Returns pet inventories by status", - "description": "Returns a map of status codes to quantities", - "operationId": "getInventory", - "produces": [ - "application/json" - ], - "parameters": [], - "responses": { - "200": { - "description": "successful operation", - "schema": { - "type": "object", - "additionalProperties": { - "type": "integer", - "format": "int32" - } - } - } - }, - "security": [ - { - "api_key": [] - } - ] - } - }, - "/store/order": { - "post": { - "tags": [ - "store" - ], - "summary": "Place an order for a pet", - "description": "", - "operationId": "placeOrder", - "produces": [ - "application/xml", - "application/json" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "description": "order placed for purchasing the pet", - "required": true, - "schema": { - "$ref": "#/definitions/Order" - } - } - ], - "responses": { - "200": { - "description": "successful operation", - "schema": { - "$ref": "#/definitions/Order" - } - }, - "400": { - "description": "Invalid Order" - } - } - } - }, - "/store/order/{orderId}": { - "get": { - "tags": [ - "store" - ], - "summary": "Find purchase order by ID", - "description": "For valid response try integer IDs with value >= 1 and <= 10. Other values will generated exceptions", - "operationId": "getOrderById", - "produces": [ - "application/xml", - "application/json" - ], - "parameters": [ - { - "name": "orderId", - "in": "path", - "description": "ID of pet that needs to be fetched", - "required": true, - "type": "integer", - "maximum": 10.0, - "minimum": 1.0, - "format": "int64" - } - ], - "responses": { - "200": { - "description": "successful operation", - "schema": { - "$ref": "#/definitions/Order" - } - }, - "400": { - "description": "Invalid ID supplied" - }, - "404": { - "description": "Order not found" - } - } - }, - "delete": { - "tags": [ - "store" - ], - "summary": "Delete purchase order by ID", - "description": "For valid response try integer IDs with positive integer value. Negative or non-integer values will generate API errors", - "operationId": "deleteOrder", - "produces": [ - "application/xml", - "application/json" - ], - "parameters": [ - { - "name": "orderId", - "in": "path", - "description": "ID of the order that needs to be deleted", - "required": true, - "type": "integer", - "minimum": 1.0, - "format": "int64" - } - ], - "responses": { - "400": { - "description": "Invalid ID supplied" - }, - "404": { - "description": "Order not found" - } - } - } - }, - "/user": { - "post": { - "tags": [ - "user" - ], - "summary": "Create user", - "description": "This can only be done by the logged in user.", - "operationId": "createUser", - "produces": [ - "application/xml", - "application/json" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "description": "Created user object", - "required": true, - "schema": { - "$ref": "#/definitions/User" - } - } - ], - "responses": { - "default": { - "description": "successful operation" - } - } - } - }, - "/user/createWithArray": { - "post": { - "tags": [ - "user" - ], - "summary": "Creates list of users with given input array", - "description": "", - "operationId": "createUsersWithArrayInput", - "produces": [ - "application/xml", - "application/json" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "description": "List of user object", - "required": true, - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/User" - } - } - } - ], - "responses": { - "default": { - "description": "successful operation" - } - } - } - }, - "/user/createWithList": { - "post": { - "tags": [ - "user" - ], - "summary": "Creates list of users with given input array", - "description": "", - "operationId": "createUsersWithListInput", - "produces": [ - "application/xml", - "application/json" - ], - "parameters": [ - { - "in": "body", - "name": "body", - "description": "List of user object", - "required": true, - "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/User" - } - } - } - ], - "responses": { - "default": { - "description": "successful operation" - } - } - } - }, - "/user/login": { - "get": { - "tags": [ - "user" - ], - "summary": "Logs user into the system", - "description": "", - "operationId": "loginUser", - "produces": [ - "application/xml", - "application/json" - ], - "parameters": [ - { - "name": "username", - "in": "query", - "description": "The user name for login", - "required": true, - "type": "string" - }, - { - "name": "password", - "in": "query", - "description": "The password for login in clear text", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "successful operation", - "schema": { - "type": "string" - }, - "headers": { - "X-Rate-Limit": { - "type": "integer", - "format": "int32", - "description": "calls per hour allowed by the user" - }, - "X-Expires-After": { - "type": "string", - "format": "date-time", - "description": "date in UTC when token expires" - } - } - }, - "400": { - "description": "Invalid username/password supplied" - } - } - } - }, - "/user/logout": { - "get": { - "tags": [ - "user" - ], - "summary": "Logs out current logged in user session", - "description": "", - "operationId": "logoutUser", - "produces": [ - "application/xml", - "application/json" - ], - "parameters": [], - "responses": { - "default": { - "description": "successful operation" - } - } - } - }, - "/user/{username}": { - "get": { - "tags": [ - "user" - ], - "summary": "Get user by user name", - "description": "", - "operationId": "getUserByName", - "produces": [ - "application/xml", - "application/json" - ], - "parameters": [ - { - "name": "username", - "in": "path", - "description": "The name that needs to be fetched. Use user1 for testing. ", - "required": true, - "type": "string" - } - ], - "responses": { - "200": { - "description": "successful operation", - "schema": { - "$ref": "#/definitions/User" - } - }, - "400": { - "description": "Invalid username supplied" - }, - "404": { - "description": "User not found" - } - } - }, - "put": { - "tags": [ - "user" - ], - "summary": "Updated user", - "description": "This can only be done by the logged in user.", - "operationId": "updateUser", - "produces": [ - "application/xml", - "application/json" - ], - "parameters": [ - { - "name": "username", - "in": "path", - "description": "name that need to be updated", - "required": true, - "type": "string" - }, - { - "in": "body", - "name": "body", - "description": "Updated user object", - "required": true, - "schema": { - "$ref": "#/definitions/User" - } - } - ], - "responses": { - "400": { - "description": "Invalid user supplied" - }, - "404": { - "description": "User not found" - } - } - }, - "delete": { - "tags": [ - "user" - ], - "summary": "Delete user", - "description": "This can only be done by the logged in user.", - "operationId": "deleteUser", - "produces": [ - "application/xml", - "application/json" - ], - "parameters": [ - { - "name": "username", - "in": "path", - "description": "The name that needs to be deleted", - "required": true, - "type": "string" - } - ], - "responses": { - "400": { - "description": "Invalid username supplied" - }, - "404": { - "description": "User not found" - } - } - } - } - }, - "securityDefinitions": { - "petstore_auth": { - "type": "oauth2", - "authorizationUrl": "http://petstore.swagger.io/oauth/dialog", - "flow": "implicit", - "scopes": { - "write:pets": "modify pets in your account", - "read:pets": "read your pets" - } - }, - "api_key": { - "type": "apiKey", - "name": "api_key", - "in": "header" - } - }, - "definitions": { - "Order": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "petId": { - "type": "integer", - "format": "int64" - }, - "quantity": { - "type": "integer", - "format": "int32" - }, - "shipDate": { - "type": "string", - "format": "date-time" - }, - "status": { - "type": "string", - "description": "Order Status", - "enum": [ - "placed", - "approved", - "delivered" - ] - }, - "complete": { - "type": "boolean", - "default": false - } - }, - "xml": { - "name": "Order" - } - }, - "Category": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "name": { - "type": "string" - } - }, - "xml": { - "name": "Category" - } - }, - "User": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "username": { - "type": "string" - }, - "firstName": { - "type": "string" - }, - "lastName": { - "type": "string" - }, - "email": { - "type": "string" - }, - "password": { - "type": "string" - }, - "phone": { - "type": "string" - }, - "userStatus": { - "type": "integer", - "format": "int32", - "description": "User Status" - } - }, - "xml": { - "name": "User" - } - }, - "Tag": { - "type": "object", - "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "name": { - "type": "string" - } - }, - "xml": { - "name": "Tag" - } - }, - "Pet": { - "type": "object", - "required": [ - "name", - "photoUrls" - ], - "properties": { - "id": { - "type": "integer", - "format": "int64" - }, - "category": { - "$ref": "#/definitions/Category" - }, - "name": { - "type": "string", - "example": "doggie" - }, - "photoUrls": { - "type": "array", - "xml": { - "name": "photoUrl", - "wrapped": true - }, - "items": { - "type": "string" - } - }, - "tags": { - "type": "array", - "xml": { - "name": "tag", - "wrapped": true - }, - "items": { - "$ref": "#/definitions/Tag" - } - }, - "status": { - "type": "string", - "description": "pet status in the store", - "enum": [ - "available", - "pending", - "sold" - ] - } - }, - "xml": { - "name": "Pet" - } - }, - "ApiResponse": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32" - }, - "type": { - "type": "string" - }, - "message": { - "type": "string" - } - } - } - }, - "externalDocs": { - "description": "Find out more about Swagger", - "url": "http://swagger.io" - } - }, - "valid": true - } - ] - } -] diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/json_schema_test_suite.py b/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/json_schema_test_suite.py deleted file mode 100644 index 905fb6a3b..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/json_schema_test_suite.py +++ /dev/null @@ -1,12 +0,0 @@ -""" -A performance benchmark using the official test suite. - -This benchmarks jsonschema using every valid example in the -JSON-Schema-Test-Suite. It will take some time to complete. -""" -from pyperf import Runner - -from jsonschema.tests._suite import Suite - -if __name__ == "__main__": - Suite().benchmark(runner=Runner()) diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/nested_schemas.py b/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/nested_schemas.py deleted file mode 100644 index b025c47cf..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/nested_schemas.py +++ /dev/null @@ -1,56 +0,0 @@ -""" -Validating highly nested schemas shouldn't cause exponential time blowups. - -See https://github.com/python-jsonschema/jsonschema/issues/1097. -""" -from itertools import cycle - -from jsonschema.validators import validator_for - -metaschemaish = { - "$id": "https://example.com/draft/2020-12/schema/strict", - "$schema": "https://json-schema.org/draft/2020-12/schema", - - "$vocabulary": { - "https://json-schema.org/draft/2020-12/vocab/core": True, - "https://json-schema.org/draft/2020-12/vocab/applicator": True, - "https://json-schema.org/draft/2020-12/vocab/unevaluated": True, - "https://json-schema.org/draft/2020-12/vocab/validation": True, - "https://json-schema.org/draft/2020-12/vocab/meta-data": True, - "https://json-schema.org/draft/2020-12/vocab/format-annotation": True, - "https://json-schema.org/draft/2020-12/vocab/content": True, - }, - "$dynamicAnchor": "meta", - - "$ref": "https://json-schema.org/draft/2020-12/schema", - "unevaluatedProperties": False, -} - - -def nested_schema(levels): - """ - Produce a schema which validates deeply nested objects and arrays. - """ - - names = cycle(["foo", "bar", "baz", "quux", "spam", "eggs"]) - schema = {"type": "object", "properties": {"ham": {"type": "string"}}} - for _, name in zip(range(levels - 1), names): - schema = {"type": "object", "properties": {name: schema}} - return schema - - -validator = validator_for(metaschemaish)(metaschemaish) - -if __name__ == "__main__": - from pyperf import Runner - runner = Runner() - - not_nested = nested_schema(levels=1) - runner.bench_func("not nested", lambda: validator.is_valid(not_nested)) - - for levels in range(1, 11, 3): - schema = nested_schema(levels=levels) - runner.bench_func( - f"nested * {levels}", - lambda schema=schema: validator.is_valid(schema), - ) diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/subcomponents.py b/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/subcomponents.py deleted file mode 100644 index 6d78c7be6..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/subcomponents.py +++ /dev/null @@ -1,42 +0,0 @@ -""" -A benchmark which tries to compare the possible slow subparts of validation. -""" -from referencing import Registry -from referencing.jsonschema import DRAFT202012 -from rpds import HashTrieMap, HashTrieSet - -from jsonschema import Draft202012Validator - -schema = { - "type": "array", - "minLength": 1, - "maxLength": 1, - "items": {"type": "integer"}, -} - -hmap = HashTrieMap() -hset = HashTrieSet() - -registry = Registry() - -v = Draft202012Validator(schema) - - -def registry_data_structures(): - return hmap.insert("foo", "bar"), hset.insert("foo") - - -def registry_add(): - resource = DRAFT202012.create_resource(schema) - return registry.with_resource(uri="urn:example", resource=resource) - - -if __name__ == "__main__": - from pyperf import Runner - runner = Runner() - - runner.bench_func("HashMap/HashSet insertion", registry_data_structures) - runner.bench_func("Registry insertion", registry_add) - runner.bench_func("Success", lambda: v.is_valid([1])) - runner.bench_func("Failure", lambda: v.is_valid(["foo"])) - runner.bench_func("Metaschema validation", lambda: v.check_schema(schema)) diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/unused_registry.py b/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/unused_registry.py deleted file mode 100644 index 7b272c235..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/unused_registry.py +++ /dev/null @@ -1,35 +0,0 @@ -""" -An unused schema registry should not cause slower validation. - -"Unused" here means one where no reference resolution is occurring anyhow. - -See https://github.com/python-jsonschema/jsonschema/issues/1088. -""" -from pyperf import Runner -from referencing import Registry -from referencing.jsonschema import DRAFT201909 - -from jsonschema import Draft201909Validator - -registry = Registry().with_resource( - "urn:example:foo", - DRAFT201909.create_resource({}), -) - -schema = {"$ref": "https://json-schema.org/draft/2019-09/schema"} -instance = {"maxLength": 4} - -no_registry = Draft201909Validator(schema) -with_useless_registry = Draft201909Validator(schema, registry=registry) - -if __name__ == "__main__": - runner = Runner() - - runner.bench_func( - "no registry", - lambda: no_registry.is_valid(instance), - ) - runner.bench_func( - "useless registry", - lambda: with_useless_registry.is_valid(instance), - ) diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/useless_applicator_schemas.py b/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/useless_applicator_schemas.py deleted file mode 100644 index f3229c0b8..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/useless_applicator_schemas.py +++ /dev/null @@ -1,106 +0,0 @@ - -""" -A benchmark for validation of applicators containing lots of useless schemas. - -Signals a small possible optimization to remove all such schemas ahead of time. -""" - -from pyperf import Runner - -from jsonschema import Draft202012Validator as Validator - -NUM_USELESS = 100000 - -subschema = {"const": 37} - -valid = 37 -invalid = 12 - -baseline = Validator(subschema) - - -# These should be indistinguishable from just `subschema` -by_name = { - "single subschema": { - "anyOf": Validator({"anyOf": [subschema]}), - "allOf": Validator({"allOf": [subschema]}), - "oneOf": Validator({"oneOf": [subschema]}), - }, - "redundant subschemas": { - "anyOf": Validator({"anyOf": [subschema] * NUM_USELESS}), - "allOf": Validator({"allOf": [subschema] * NUM_USELESS}), - }, - "useless successful subschemas (beginning)": { - "anyOf": Validator({"anyOf": [subschema, *[True] * NUM_USELESS]}), - "allOf": Validator({"allOf": [subschema, *[True] * NUM_USELESS]}), - }, - "useless successful subschemas (middle)": { - "anyOf": Validator( - { - "anyOf": [ - *[True] * (NUM_USELESS // 2), - subschema, - *[True] * (NUM_USELESS // 2), - ], - }, - ), - "allOf": Validator( - { - "allOf": [ - *[True] * (NUM_USELESS // 2), - subschema, - *[True] * (NUM_USELESS // 2), - ], - }, - ), - }, - "useless successful subschemas (end)": { - "anyOf": Validator({"anyOf": [*[True] * NUM_USELESS, subschema]}), - "allOf": Validator({"allOf": [*[True] * NUM_USELESS, subschema]}), - }, - "useless failing subschemas (beginning)": { - "anyOf": Validator({"anyOf": [subschema, *[False] * NUM_USELESS]}), - "oneOf": Validator({"oneOf": [subschema, *[False] * NUM_USELESS]}), - }, - "useless failing subschemas (middle)": { - "anyOf": Validator( - { - "anyOf": [ - *[False] * (NUM_USELESS // 2), - subschema, - *[False] * (NUM_USELESS // 2), - ], - }, - ), - "oneOf": Validator( - { - "oneOf": [ - *[False] * (NUM_USELESS // 2), - subschema, - *[False] * (NUM_USELESS // 2), - ], - }, - ), - }, - "useless failing subschemas (end)": { - "anyOf": Validator({"anyOf": [*[False] * NUM_USELESS, subschema]}), - "oneOf": Validator({"oneOf": [*[False] * NUM_USELESS, subschema]}), - }, -} - -if __name__ == "__main__": - runner = Runner() - - runner.bench_func("baseline valid", lambda: baseline.is_valid(valid)) - runner.bench_func("baseline invalid", lambda: baseline.is_valid(invalid)) - - for group, applicators in by_name.items(): - for applicator, validator in applicators.items(): - runner.bench_func( - f"{group}: {applicator} valid", - lambda validator=validator: validator.is_valid(valid), - ) - runner.bench_func( - f"{group}: {applicator} invalid", - lambda validator=validator: validator.is_valid(invalid), - ) diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/useless_keywords.py b/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/useless_keywords.py deleted file mode 100644 index 50f435989..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/useless_keywords.py +++ /dev/null @@ -1,32 +0,0 @@ -""" -A benchmark for validation of schemas containing lots of useless keywords. - -Checks we filter them out once, ahead of time. -""" - -from pyperf import Runner - -from jsonschema import Draft202012Validator - -NUM_USELESS = 100000 -schema = dict( - [ - ("not", {"const": 42}), - *((str(i), i) for i in range(NUM_USELESS)), - ("type", "integer"), - *((str(i), i) for i in range(NUM_USELESS, NUM_USELESS)), - ("minimum", 37), - ], -) -validator = Draft202012Validator(schema) - -valid = 3737 -invalid = 12 - - -if __name__ == "__main__": - runner = Runner() - runner.bench_func("beginning of schema", lambda: validator.is_valid(42)) - runner.bench_func("middle of schema", lambda: validator.is_valid("foo")) - runner.bench_func("end of schema", lambda: validator.is_valid(12)) - runner.bench_func("valid", lambda: validator.is_valid(3737)) diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/validator_creation.py b/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/validator_creation.py deleted file mode 100644 index 4baeb3a31..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/benchmarks/validator_creation.py +++ /dev/null @@ -1,14 +0,0 @@ -from pyperf import Runner - -from jsonschema import Draft202012Validator - -schema = { - "type": "array", - "minLength": 1, - "maxLength": 1, - "items": {"type": "integer"}, -} - - -if __name__ == "__main__": - Runner().bench_func("validator creation", Draft202012Validator, schema) diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/cli.py b/agent/vendor/jsonschema-4.23.0/jsonschema/cli.py deleted file mode 100644 index cf6298eb0..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/cli.py +++ /dev/null @@ -1,296 +0,0 @@ -""" -The ``jsonschema`` command line. -""" - -from importlib import metadata -from json import JSONDecodeError -from textwrap import dedent -import argparse -import json -import sys -import traceback -import warnings - -try: - from pkgutil import resolve_name -except ImportError: - from pkgutil_resolve_name import resolve_name # type: ignore[no-redef] - -from attrs import define, field - -from jsonschema.exceptions import SchemaError -from jsonschema.validators import _RefResolver, validator_for - -warnings.warn( - ( - "The jsonschema CLI is deprecated and will be removed in a future " - "version. Please use check-jsonschema instead, which can be installed " - "from https://pypi.org/project/check-jsonschema/" - ), - DeprecationWarning, - stacklevel=2, -) - - -class _CannotLoadFile(Exception): - pass - - -@define -class _Outputter: - - _formatter = field() - _stdout = field() - _stderr = field() - - @classmethod - def from_arguments(cls, arguments, stdout, stderr): - if arguments["output"] == "plain": - formatter = _PlainFormatter(arguments["error_format"]) - elif arguments["output"] == "pretty": - formatter = _PrettyFormatter() - return cls(formatter=formatter, stdout=stdout, stderr=stderr) - - def load(self, path): - try: - file = open(path) # noqa: SIM115, PTH123 - except FileNotFoundError as error: - self.filenotfound_error(path=path, exc_info=sys.exc_info()) - raise _CannotLoadFile() from error - - with file: - try: - return json.load(file) - except JSONDecodeError as error: - self.parsing_error(path=path, exc_info=sys.exc_info()) - raise _CannotLoadFile() from error - - def filenotfound_error(self, **kwargs): - self._stderr.write(self._formatter.filenotfound_error(**kwargs)) - - def parsing_error(self, **kwargs): - self._stderr.write(self._formatter.parsing_error(**kwargs)) - - def validation_error(self, **kwargs): - self._stderr.write(self._formatter.validation_error(**kwargs)) - - def validation_success(self, **kwargs): - self._stdout.write(self._formatter.validation_success(**kwargs)) - - -@define -class _PrettyFormatter: - - _ERROR_MSG = dedent( - """\ - ===[{type}]===({path})=== - - {body} - ----------------------------- - """, - ) - _SUCCESS_MSG = "===[SUCCESS]===({path})===\n" - - def filenotfound_error(self, path, exc_info): - return self._ERROR_MSG.format( - path=path, - type="FileNotFoundError", - body=f"{path!r} does not exist.", - ) - - def parsing_error(self, path, exc_info): - exc_type, exc_value, exc_traceback = exc_info - exc_lines = "".join( - traceback.format_exception(exc_type, exc_value, exc_traceback), - ) - return self._ERROR_MSG.format( - path=path, - type=exc_type.__name__, - body=exc_lines, - ) - - def validation_error(self, instance_path, error): - return self._ERROR_MSG.format( - path=instance_path, - type=error.__class__.__name__, - body=error, - ) - - def validation_success(self, instance_path): - return self._SUCCESS_MSG.format(path=instance_path) - - -@define -class _PlainFormatter: - - _error_format = field() - - def filenotfound_error(self, path, exc_info): - return f"{path!r} does not exist.\n" - - def parsing_error(self, path, exc_info): - return "Failed to parse {}: {}\n".format( - "" if path == "" else repr(path), - exc_info[1], - ) - - def validation_error(self, instance_path, error): - return self._error_format.format(file_name=instance_path, error=error) - - def validation_success(self, instance_path): - return "" - - -def _resolve_name_with_default(name): - if "." not in name: - name = "jsonschema." + name - return resolve_name(name) - - -parser = argparse.ArgumentParser( - description="JSON Schema Validation CLI", -) -parser.add_argument( - "-i", "--instance", - action="append", - dest="instances", - help=""" - a path to a JSON instance (i.e. filename.json) to validate (may - be specified multiple times). If no instances are provided via this - option, one will be expected on standard input. - """, -) -parser.add_argument( - "-F", "--error-format", - help=""" - the format to use for each validation error message, specified - in a form suitable for str.format. This string will be passed - one formatted object named 'error' for each ValidationError. - Only provide this option when using --output=plain, which is the - default. If this argument is unprovided and --output=plain is - used, a simple default representation will be used. - """, -) -parser.add_argument( - "-o", "--output", - choices=["plain", "pretty"], - default="plain", - help=""" - an output format to use. 'plain' (default) will produce minimal - text with one line for each error, while 'pretty' will produce - more detailed human-readable output on multiple lines. - """, -) -parser.add_argument( - "-V", "--validator", - type=_resolve_name_with_default, - help=""" - the fully qualified object name of a validator to use, or, for - validators that are registered with jsonschema, simply the name - of the class. - """, -) -parser.add_argument( - "--base-uri", - help=""" - a base URI to assign to the provided schema, even if it does not - declare one (via e.g. $id). This option can be used if you wish to - resolve relative references to a particular URI (or local path) - """, -) -parser.add_argument( - "--version", - action="version", - version=metadata.version("jsonschema"), -) -parser.add_argument( - "schema", - help="the path to a JSON Schema to validate with (i.e. schema.json)", -) - - -def parse_args(args): # noqa: D103 - arguments = vars(parser.parse_args(args=args or ["--help"])) - if arguments["output"] != "plain" and arguments["error_format"]: - raise parser.error( - "--error-format can only be used with --output plain", - ) - if arguments["output"] == "plain" and arguments["error_format"] is None: - arguments["error_format"] = "{error.instance}: {error.message}\n" - return arguments - - -def _validate_instance(instance_path, instance, validator, outputter): - invalid = False - for error in validator.iter_errors(instance): - invalid = True - outputter.validation_error(instance_path=instance_path, error=error) - - if not invalid: - outputter.validation_success(instance_path=instance_path) - return invalid - - -def main(args=sys.argv[1:]): # noqa: D103 - sys.exit(run(arguments=parse_args(args=args))) - - -def run(arguments, stdout=sys.stdout, stderr=sys.stderr, stdin=sys.stdin): # noqa: D103 - outputter = _Outputter.from_arguments( - arguments=arguments, - stdout=stdout, - stderr=stderr, - ) - - try: - schema = outputter.load(arguments["schema"]) - except _CannotLoadFile: - return 1 - - Validator = arguments["validator"] - if Validator is None: - Validator = validator_for(schema) - - try: - Validator.check_schema(schema) - except SchemaError as error: - outputter.validation_error( - instance_path=arguments["schema"], - error=error, - ) - return 1 - - if arguments["instances"]: - load, instances = outputter.load, arguments["instances"] - else: - def load(_): - try: - return json.load(stdin) - except JSONDecodeError as error: - outputter.parsing_error( - path="", exc_info=sys.exc_info(), - ) - raise _CannotLoadFile() from error - instances = [""] - - resolver = _RefResolver( - base_uri=arguments["base_uri"], - referrer=schema, - ) if arguments["base_uri"] is not None else None - - validator = Validator(schema, resolver=resolver) - exit_code = 0 - for each in instances: - try: - instance = load(each) - except _CannotLoadFile: - exit_code = 1 - else: - exit_code |= _validate_instance( - instance_path=each, - instance=instance, - validator=validator, - outputter=outputter, - ) - - return exit_code diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/exceptions.py b/agent/vendor/jsonschema-4.23.0/jsonschema/exceptions.py deleted file mode 100644 index 78da49fcd..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/exceptions.py +++ /dev/null @@ -1,487 +0,0 @@ -""" -Validation errors, and some surrounding helpers. -""" -from __future__ import annotations - -from collections import defaultdict, deque -from pprint import pformat -from textwrap import dedent, indent -from typing import TYPE_CHECKING, Any, ClassVar -import heapq -import itertools -import warnings - -from attrs import define -from referencing.exceptions import Unresolvable as _Unresolvable - -from jsonschema import _utils - -if TYPE_CHECKING: - from collections.abc import Iterable, Mapping, MutableMapping, Sequence - - from jsonschema import _types - -WEAK_MATCHES: frozenset[str] = frozenset(["anyOf", "oneOf"]) -STRONG_MATCHES: frozenset[str] = frozenset() - -_unset = _utils.Unset() - - -def _pretty(thing: Any, prefix: str): - """ - Format something for an error message as prettily as we currently can. - """ - return indent(pformat(thing, width=72, sort_dicts=False), prefix).lstrip() - - -def __getattr__(name): - if name == "RefResolutionError": - warnings.warn( - _RefResolutionError._DEPRECATION_MESSAGE, - DeprecationWarning, - stacklevel=2, - ) - return _RefResolutionError - raise AttributeError(f"module {__name__} has no attribute {name}") - - -class _Error(Exception): - - _word_for_schema_in_error_message: ClassVar[str] - _word_for_instance_in_error_message: ClassVar[str] - - def __init__( - self, - message: str, - validator: str = _unset, # type: ignore[assignment] - path: Iterable[str | int] = (), - cause: Exception | None = None, - context=(), - validator_value: Any = _unset, - instance: Any = _unset, - schema: Mapping[str, Any] | bool = _unset, # type: ignore[assignment] - schema_path: Iterable[str | int] = (), - parent: _Error | None = None, - type_checker: _types.TypeChecker = _unset, # type: ignore[assignment] - ) -> None: - super().__init__( - message, - validator, - path, - cause, - context, - validator_value, - instance, - schema, - schema_path, - parent, - ) - self.message = message - self.path = self.relative_path = deque(path) - self.schema_path = self.relative_schema_path = deque(schema_path) - self.context = list(context) - self.cause = self.__cause__ = cause - self.validator = validator - self.validator_value = validator_value - self.instance = instance - self.schema = schema - self.parent = parent - self._type_checker = type_checker - - for error in context: - error.parent = self - - def __repr__(self) -> str: - return f"<{self.__class__.__name__}: {self.message!r}>" - - def __str__(self) -> str: - essential_for_verbose = ( - self.validator, self.validator_value, self.instance, self.schema, - ) - if any(m is _unset for m in essential_for_verbose): - return self.message - - schema_path = _utils.format_as_index( - container=self._word_for_schema_in_error_message, - indices=list(self.relative_schema_path)[:-1], - ) - instance_path = _utils.format_as_index( - container=self._word_for_instance_in_error_message, - indices=self.relative_path, - ) - prefix = 16 * " " - - return dedent( - f"""\ - {self.message} - - Failed validating {self.validator!r} in {schema_path}: - {_pretty(self.schema, prefix=prefix)} - - On {instance_path}: - {_pretty(self.instance, prefix=prefix)} - """.rstrip(), - ) - - @classmethod - def create_from(cls, other: _Error): - return cls(**other._contents()) - - @property - def absolute_path(self) -> Sequence[str | int]: - parent = self.parent - if parent is None: - return self.relative_path - - path = deque(self.relative_path) - path.extendleft(reversed(parent.absolute_path)) - return path - - @property - def absolute_schema_path(self) -> Sequence[str | int]: - parent = self.parent - if parent is None: - return self.relative_schema_path - - path = deque(self.relative_schema_path) - path.extendleft(reversed(parent.absolute_schema_path)) - return path - - @property - def json_path(self) -> str: - path = "$" - for elem in self.absolute_path: - if isinstance(elem, int): - path += "[" + str(elem) + "]" - else: - path += "." + elem - return path - - def _set( - self, - type_checker: _types.TypeChecker | None = None, - **kwargs: Any, - ) -> None: - if type_checker is not None and self._type_checker is _unset: - self._type_checker = type_checker - - for k, v in kwargs.items(): - if getattr(self, k) is _unset: - setattr(self, k, v) - - def _contents(self): - attrs = ( - "message", "cause", "context", "validator", "validator_value", - "path", "schema_path", "instance", "schema", "parent", - ) - return {attr: getattr(self, attr) for attr in attrs} - - def _matches_type(self) -> bool: - try: - # We ignore this as we want to simply crash if this happens - expected = self.schema["type"] # type: ignore[index] - except (KeyError, TypeError): - return False - - if isinstance(expected, str): - return self._type_checker.is_type(self.instance, expected) - - return any( - self._type_checker.is_type(self.instance, expected_type) - for expected_type in expected - ) - - -class ValidationError(_Error): - """ - An instance was invalid under a provided schema. - """ - - _word_for_schema_in_error_message = "schema" - _word_for_instance_in_error_message = "instance" - - -class SchemaError(_Error): - """ - A schema was invalid under its corresponding metaschema. - """ - - _word_for_schema_in_error_message = "metaschema" - _word_for_instance_in_error_message = "schema" - - -@define(slots=False) -class _RefResolutionError(Exception): - """ - A ref could not be resolved. - """ - - _DEPRECATION_MESSAGE = ( - "jsonschema.exceptions.RefResolutionError is deprecated as of version " - "4.18.0. If you wish to catch potential reference resolution errors, " - "directly catch referencing.exceptions.Unresolvable." - ) - - _cause: Exception - - def __eq__(self, other): - if self.__class__ is not other.__class__: - return NotImplemented # pragma: no cover -- uncovered but deprecated # noqa: E501 - return self._cause == other._cause - - def __str__(self) -> str: - return str(self._cause) - - -class _WrappedReferencingError(_RefResolutionError, _Unresolvable): # pragma: no cover -- partially uncovered but to be removed # noqa: E501 - def __init__(self, cause: _Unresolvable): - object.__setattr__(self, "_wrapped", cause) - - def __eq__(self, other): - if other.__class__ is self.__class__: - return self._wrapped == other._wrapped - elif other.__class__ is self._wrapped.__class__: - return self._wrapped == other - return NotImplemented - - def __getattr__(self, attr): - return getattr(self._wrapped, attr) - - def __hash__(self): - return hash(self._wrapped) - - def __repr__(self): - return f"" - - def __str__(self): - return f"{self._wrapped.__class__.__name__}: {self._wrapped}" - - -class UndefinedTypeCheck(Exception): - """ - A type checker was asked to check a type it did not have registered. - """ - - def __init__(self, type: str) -> None: - self.type = type - - def __str__(self) -> str: - return f"Type {self.type!r} is unknown to this type checker" - - -class UnknownType(Exception): - """ - A validator was asked to validate an instance against an unknown type. - """ - - def __init__(self, type, instance, schema): - self.type = type - self.instance = instance - self.schema = schema - - def __str__(self): - prefix = 16 * " " - - return dedent( - f"""\ - Unknown type {self.type!r} for validator with schema: - {_pretty(self.schema, prefix=prefix)} - - While checking instance: - {_pretty(self.instance, prefix=prefix)} - """.rstrip(), - ) - - -class FormatError(Exception): - """ - Validating a format failed. - """ - - def __init__(self, message, cause=None): - super().__init__(message, cause) - self.message = message - self.cause = self.__cause__ = cause - - def __str__(self): - return self.message - - -class ErrorTree: - """ - ErrorTrees make it easier to check which validations failed. - """ - - _instance = _unset - - def __init__(self, errors: Iterable[ValidationError] = ()): - self.errors: MutableMapping[str, ValidationError] = {} - self._contents: Mapping[str, ErrorTree] = defaultdict(self.__class__) - - for error in errors: - container = self - for element in error.path: - container = container[element] - container.errors[error.validator] = error - - container._instance = error.instance - - def __contains__(self, index: str | int): - """ - Check whether ``instance[index]`` has any errors. - """ - return index in self._contents - - def __getitem__(self, index): - """ - Retrieve the child tree one level down at the given ``index``. - - If the index is not in the instance that this tree corresponds - to and is not known by this tree, whatever error would be raised - by ``instance.__getitem__`` will be propagated (usually this is - some subclass of `LookupError`. - """ - if self._instance is not _unset and index not in self: - self._instance[index] - return self._contents[index] - - def __setitem__(self, index: str | int, value: ErrorTree): - """ - Add an error to the tree at the given ``index``. - - .. deprecated:: v4.20.0 - - Setting items on an `ErrorTree` is deprecated without replacement. - To populate a tree, provide all of its sub-errors when you - construct the tree. - """ - warnings.warn( - "ErrorTree.__setitem__ is deprecated without replacement.", - DeprecationWarning, - stacklevel=2, - ) - self._contents[index] = value # type: ignore[index] - - def __iter__(self): - """ - Iterate (non-recursively) over the indices in the instance with errors. - """ - return iter(self._contents) - - def __len__(self): - """ - Return the `total_errors`. - """ - return self.total_errors - - def __repr__(self): - total = len(self) - errors = "error" if total == 1 else "errors" - return f"<{self.__class__.__name__} ({total} total {errors})>" - - @property - def total_errors(self): - """ - The total number of errors in the entire tree, including children. - """ - child_errors = sum(len(tree) for _, tree in self._contents.items()) - return len(self.errors) + child_errors - - -def by_relevance(weak=WEAK_MATCHES, strong=STRONG_MATCHES): - """ - Create a key function that can be used to sort errors by relevance. - - Arguments: - weak (set): - a collection of validation keywords to consider to be - "weak". If there are two errors at the same level of the - instance and one is in the set of weak validation keywords, - the other error will take priority. By default, :kw:`anyOf` - and :kw:`oneOf` are considered weak keywords and will be - superseded by other same-level validation errors. - - strong (set): - a collection of validation keywords to consider to be - "strong" - - """ - - def relevance(error): - validator = error.validator - return ( # prefer errors which are ... - -len(error.path), # 'deeper' and thereby more specific - error.path, # earlier (for sibling errors) - validator not in weak, # for a non-low-priority keyword - validator in strong, # for a high priority keyword - not error._matches_type(), # at least match the instance's type - ) # otherwise we'll treat them the same - - return relevance - - -relevance = by_relevance() -""" -A key function (e.g. to use with `sorted`) which sorts errors by relevance. - -Example: - -.. code:: python - - sorted(validator.iter_errors(12), key=jsonschema.exceptions.relevance) -""" - - -def best_match(errors, key=relevance): - """ - Try to find an error that appears to be the best match among given errors. - - In general, errors that are higher up in the instance (i.e. for which - `ValidationError.path` is shorter) are considered better matches, - since they indicate "more" is wrong with the instance. - - If the resulting match is either :kw:`oneOf` or :kw:`anyOf`, the - *opposite* assumption is made -- i.e. the deepest error is picked, - since these keywords only need to match once, and any other errors - may not be relevant. - - Arguments: - errors (collections.abc.Iterable): - - the errors to select from. Do not provide a mixture of - errors from different validation attempts (i.e. from - different instances or schemas), since it won't produce - sensical output. - - key (collections.abc.Callable): - - the key to use when sorting errors. See `relevance` and - transitively `by_relevance` for more details (the default is - to sort with the defaults of that function). Changing the - default is only useful if you want to change the function - that rates errors but still want the error context descent - done by this function. - - Returns: - the best matching error, or ``None`` if the iterable was empty - - .. note:: - - This function is a heuristic. Its return value may change for a given - set of inputs from version to version if better heuristics are added. - - """ - errors = iter(errors) - best = next(errors, None) - if best is None: - return - best = max(itertools.chain([best], errors), key=key) - - while best.context: - # Calculate the minimum via nsmallest, because we don't recurse if - # all nested errors have the same relevance (i.e. if min == max == all) - smallest = heapq.nsmallest(2, best.context, key=key) - if len(smallest) == 2 and key(smallest[0]) == key(smallest[1]): # noqa: PLR2004 - return best - best = smallest[0] - return best diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/protocols.py b/agent/vendor/jsonschema-4.23.0/jsonschema/protocols.py deleted file mode 100644 index 39e56d0fa..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/protocols.py +++ /dev/null @@ -1,236 +0,0 @@ -""" -typing.Protocol classes for jsonschema interfaces. -""" - -# for reference material on Protocols, see -# https://www.python.org/dev/peps/pep-0544/ - -from __future__ import annotations - -from typing import ( - TYPE_CHECKING, - Any, - ClassVar, - Iterable, - Protocol, - runtime_checkable, -) - -# in order for Sphinx to resolve references accurately from type annotations, -# it needs to see names like `jsonschema.TypeChecker` -# therefore, only import at type-checking time (to avoid circular references), -# but use `jsonschema` for any types which will otherwise not be resolvable -if TYPE_CHECKING: - from collections.abc import Mapping - - import referencing.jsonschema - - from jsonschema import _typing - from jsonschema.exceptions import ValidationError - import jsonschema - import jsonschema.validators - -# For code authors working on the validator protocol, these are the three -# use-cases which should be kept in mind: -# -# 1. As a protocol class, it can be used in type annotations to describe the -# available methods and attributes of a validator -# 2. It is the source of autodoc for the validator documentation -# 3. It is runtime_checkable, meaning that it can be used in isinstance() -# checks. -# -# Since protocols are not base classes, isinstance() checking is limited in -# its capabilities. See docs on runtime_checkable for detail - - -@runtime_checkable -class Validator(Protocol): - """ - The protocol to which all validator classes adhere. - - Arguments: - - schema: - - The schema that the validator object will validate with. - It is assumed to be valid, and providing - an invalid schema can lead to undefined behavior. See - `Validator.check_schema` to validate a schema first. - - registry: - - a schema registry that will be used for looking up JSON references - - resolver: - - a resolver that will be used to resolve :kw:`$ref` - properties (JSON references). If unprovided, one will be created. - - .. deprecated:: v4.18.0 - - `RefResolver <_RefResolver>` has been deprecated in favor of - `referencing`, and with it, this argument. - - format_checker: - - if provided, a checker which will be used to assert about - :kw:`format` properties present in the schema. If unprovided, - *no* format validation is done, and the presence of format - within schemas is strictly informational. Certain formats - require additional packages to be installed in order to assert - against instances. Ensure you've installed `jsonschema` with - its `extra (optional) dependencies ` when - invoking ``pip``. - - .. deprecated:: v4.12.0 - - Subclassing validator classes now explicitly warns this is not part of - their public API. - - """ - - #: An object representing the validator's meta schema (the schema that - #: describes valid schemas in the given version). - META_SCHEMA: ClassVar[Mapping] - - #: A mapping of validation keywords (`str`\s) to functions that - #: validate the keyword with that name. For more information see - #: `creating-validators`. - VALIDATORS: ClassVar[Mapping] - - #: A `jsonschema.TypeChecker` that will be used when validating - #: :kw:`type` keywords in JSON schemas. - TYPE_CHECKER: ClassVar[jsonschema.TypeChecker] - - #: A `jsonschema.FormatChecker` that will be used when validating - #: :kw:`format` keywords in JSON schemas. - FORMAT_CHECKER: ClassVar[jsonschema.FormatChecker] - - #: A function which given a schema returns its ID. - ID_OF: _typing.id_of - - #: The schema that will be used to validate instances - schema: Mapping | bool - - def __init__( - self, - schema: Mapping | bool, - registry: referencing.jsonschema.SchemaRegistry, - format_checker: jsonschema.FormatChecker | None = None, - ) -> None: - ... - - @classmethod - def check_schema(cls, schema: Mapping | bool) -> None: - """ - Validate the given schema against the validator's `META_SCHEMA`. - - Raises: - - `jsonschema.exceptions.SchemaError`: - - if the schema is invalid - - """ - - def is_type(self, instance: Any, type: str) -> bool: - """ - Check if the instance is of the given (JSON Schema) type. - - Arguments: - - instance: - - the value to check - - type: - - the name of a known (JSON Schema) type - - Returns: - - whether the instance is of the given type - - Raises: - - `jsonschema.exceptions.UnknownType`: - - if ``type`` is not a known type - - """ - - def is_valid(self, instance: Any) -> bool: - """ - Check if the instance is valid under the current `schema`. - - Returns: - - whether the instance is valid or not - - >>> schema = {"maxItems" : 2} - >>> Draft202012Validator(schema).is_valid([2, 3, 4]) - False - - """ - - def iter_errors(self, instance: Any) -> Iterable[ValidationError]: - r""" - Lazily yield each of the validation errors in the given instance. - - >>> schema = { - ... "type" : "array", - ... "items" : {"enum" : [1, 2, 3]}, - ... "maxItems" : 2, - ... } - >>> v = Draft202012Validator(schema) - >>> for error in sorted(v.iter_errors([2, 3, 4]), key=str): - ... print(error.message) - 4 is not one of [1, 2, 3] - [2, 3, 4] is too long - - .. deprecated:: v4.0.0 - - Calling this function with a second schema argument is deprecated. - Use `Validator.evolve` instead. - """ - - def validate(self, instance: Any) -> None: - """ - Check if the instance is valid under the current `schema`. - - Raises: - - `jsonschema.exceptions.ValidationError`: - - if the instance is invalid - - >>> schema = {"maxItems" : 2} - >>> Draft202012Validator(schema).validate([2, 3, 4]) - Traceback (most recent call last): - ... - ValidationError: [2, 3, 4] is too long - - """ - - def evolve(self, **kwargs) -> Validator: - """ - Create a new validator like this one, but with given changes. - - Preserves all other attributes, so can be used to e.g. create a - validator with a different schema but with the same :kw:`$ref` - resolution behavior. - - >>> validator = Draft202012Validator({}) - >>> validator.evolve(schema={"type": "number"}) - Draft202012Validator(schema={'type': 'number'}, format_checker=None) - - The returned object satisfies the validator protocol, but may not - be of the same concrete class! In particular this occurs - when a :kw:`$ref` occurs to a schema with a different - :kw:`$schema` than this one (i.e. for a different draft). - - >>> validator.evolve( - ... schema={"$schema": Draft7Validator.META_SCHEMA["$id"]} - ... ) - Draft7Validator(schema=..., format_checker=None) - """ diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/tests/__init__.py b/agent/vendor/jsonschema-4.23.0/jsonschema/tests/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/tests/_suite.py b/agent/vendor/jsonschema-4.23.0/jsonschema/tests/_suite.py deleted file mode 100644 index 0da6503c1..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/tests/_suite.py +++ /dev/null @@ -1,276 +0,0 @@ -""" -Python representations of the JSON Schema Test Suite tests. -""" -from __future__ import annotations - -from contextlib import suppress -from functools import partial -from pathlib import Path -from typing import TYPE_CHECKING, Any -import json -import os -import re -import subprocess -import sys -import unittest - -from attrs import field, frozen -from referencing import Registry -import referencing.jsonschema - -if TYPE_CHECKING: - from collections.abc import Iterable, Mapping, Sequence - - import pyperf - -from jsonschema.validators import _VALIDATORS -import jsonschema - -_DELIMITERS = re.compile(r"[\W\- ]+") - - -def _find_suite(): - root = os.environ.get("JSON_SCHEMA_TEST_SUITE") - if root is not None: - return Path(root) - - root = Path(jsonschema.__file__).parent.parent / "json" - if not root.is_dir(): # pragma: no cover - raise ValueError( - ( - "Can't find the JSON-Schema-Test-Suite directory. " - "Set the 'JSON_SCHEMA_TEST_SUITE' environment " - "variable or run the tests from alongside a checkout " - "of the suite." - ), - ) - return root - - -@frozen -class Suite: - - _root: Path = field(factory=_find_suite) - _remotes: referencing.jsonschema.SchemaRegistry = field(init=False) - - def __attrs_post_init__(self): - jsonschema_suite = self._root.joinpath("bin", "jsonschema_suite") - argv = [sys.executable, str(jsonschema_suite), "remotes"] - remotes = subprocess.check_output(argv).decode("utf-8") - - resources = json.loads(remotes) - - li = "http://localhost:1234/locationIndependentIdentifierPre2019.json" - li4 = "http://localhost:1234/locationIndependentIdentifierDraft4.json" - - registry = Registry().with_resources( - [ - ( - li, - referencing.jsonschema.DRAFT7.create_resource( - contents=resources.pop(li), - ), - ), - ( - li4, - referencing.jsonschema.DRAFT4.create_resource( - contents=resources.pop(li4), - ), - ), - ], - ).with_contents( - resources.items(), - default_specification=referencing.jsonschema.DRAFT202012, - ) - object.__setattr__(self, "_remotes", registry) - - def benchmark(self, runner: pyperf.Runner): # pragma: no cover - for name, Validator in _VALIDATORS.items(): - self.version(name=name).benchmark( - runner=runner, - Validator=Validator, - ) - - def version(self, name) -> Version: - return Version( - name=name, - path=self._root / "tests" / name, - remotes=self._remotes, - ) - - -@frozen -class Version: - - _path: Path - _remotes: referencing.jsonschema.SchemaRegistry - - name: str - - def benchmark(self, **kwargs): # pragma: no cover - for case in self.cases(): - case.benchmark(**kwargs) - - def cases(self) -> Iterable[_Case]: - return self._cases_in(paths=self._path.glob("*.json")) - - def format_cases(self) -> Iterable[_Case]: - return self._cases_in(paths=self._path.glob("optional/format/*.json")) - - def optional_cases_of(self, name: str) -> Iterable[_Case]: - return self._cases_in(paths=[self._path / "optional" / f"{name}.json"]) - - def to_unittest_testcase(self, *groups, **kwargs): - name = kwargs.pop("name", "Test" + self.name.title().replace("-", "")) - methods = { - method.__name__: method - for method in ( - test.to_unittest_method(**kwargs) - for group in groups - for case in group - for test in case.tests - ) - } - cls = type(name, (unittest.TestCase,), methods) - - # We're doing crazy things, so if they go wrong, like a function - # behaving differently on some other interpreter, just make them - # not happen. - with suppress(Exception): - cls.__module__ = _someone_save_us_the_module_of_the_caller() - - return cls - - def _cases_in(self, paths: Iterable[Path]) -> Iterable[_Case]: - for path in paths: - for case in json.loads(path.read_text(encoding="utf-8")): - yield _Case.from_dict( - case, - version=self, - subject=path.stem, - remotes=self._remotes, - ) - - -@frozen -class _Case: - - version: Version - - subject: str - description: str - schema: Mapping[str, Any] | bool - tests: list[_Test] - comment: str | None = None - specification: Sequence[dict[str, str]] = () - - @classmethod - def from_dict(cls, data, remotes, **kwargs): - data.update(kwargs) - tests = [ - _Test( - version=data["version"], - subject=data["subject"], - case_description=data["description"], - schema=data["schema"], - remotes=remotes, - **test, - ) for test in data.pop("tests") - ] - return cls(tests=tests, **data) - - def benchmark(self, runner: pyperf.Runner, **kwargs): # pragma: no cover - for test in self.tests: - runner.bench_func( - test.fully_qualified_name, - partial(test.validate_ignoring_errors, **kwargs), - ) - - -@frozen(repr=False) -class _Test: - - version: Version - - subject: str - case_description: str - description: str - - data: Any - schema: Mapping[str, Any] | bool - - valid: bool - - _remotes: referencing.jsonschema.SchemaRegistry - - comment: str | None = None - - def __repr__(self): # pragma: no cover - return f"" - - @property - def fully_qualified_name(self): # pragma: no cover - return " > ".join( # noqa: FLY002 - [ - self.version.name, - self.subject, - self.case_description, - self.description, - ], - ) - - def to_unittest_method(self, skip=lambda test: None, **kwargs): - if self.valid: - def fn(this): - self.validate(**kwargs) - else: - def fn(this): - with this.assertRaises(jsonschema.ValidationError): - self.validate(**kwargs) - - fn.__name__ = "_".join( - [ - "test", - _DELIMITERS.sub("_", self.subject), - _DELIMITERS.sub("_", self.case_description), - _DELIMITERS.sub("_", self.description), - ], - ) - reason = skip(self) - if reason is None or os.environ.get("JSON_SCHEMA_DEBUG", "0") != "0": - return fn - elif os.environ.get("JSON_SCHEMA_EXPECTED_FAILURES", "0") != "0": # pragma: no cover # noqa: E501 - return unittest.expectedFailure(fn) - else: - return unittest.skip(reason)(fn) - - def validate(self, Validator, **kwargs): - Validator.check_schema(self.schema) - validator = Validator( - schema=self.schema, - registry=self._remotes, - **kwargs, - ) - if os.environ.get("JSON_SCHEMA_DEBUG", "0") != "0": # pragma: no cover - breakpoint() # noqa: T100 - validator.validate(instance=self.data) - - def validate_ignoring_errors(self, Validator): # pragma: no cover - with suppress(jsonschema.ValidationError): - self.validate(Validator=Validator) - - -def _someone_save_us_the_module_of_the_caller(): - """ - The FQON of the module 2nd stack frames up from here. - - This is intended to allow us to dynamically return test case classes that - are indistinguishable from being defined in the module that wants them. - - Otherwise, trial will mis-print the FQON, and copy pasting it won't re-run - the class that really is running. - - Save us all, this is all so so so so so terrible. - """ - - return sys._getframe(2).f_globals["__name__"] diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/tests/fuzz_validate.py b/agent/vendor/jsonschema-4.23.0/jsonschema/tests/fuzz_validate.py deleted file mode 100644 index c12e88bcf..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/tests/fuzz_validate.py +++ /dev/null @@ -1,50 +0,0 @@ -""" -Fuzzing setup for OSS-Fuzz. - -See https://github.com/google/oss-fuzz/tree/master/projects/jsonschema for the -other half of the setup here. -""" -import sys - -from hypothesis import given, strategies - -import jsonschema - -PRIM = strategies.one_of( - strategies.booleans(), - strategies.integers(), - strategies.floats(allow_nan=False, allow_infinity=False), - strategies.text(), -) -DICT = strategies.recursive( - base=strategies.one_of( - strategies.booleans(), - strategies.dictionaries(strategies.text(), PRIM), - ), - extend=lambda inner: strategies.dictionaries(strategies.text(), inner), -) - - -@given(obj1=DICT, obj2=DICT) -def test_schemas(obj1, obj2): - try: - jsonschema.validate(instance=obj1, schema=obj2) - except jsonschema.exceptions.ValidationError: - pass - except jsonschema.exceptions.SchemaError: - pass - - -def main(): - atheris.instrument_all() - atheris.Setup( - sys.argv, - test_schemas.hypothesis.fuzz_one_input, - enable_python_coverage=True, - ) - atheris.Fuzz() - - -if __name__ == "__main__": - import atheris - main() diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/tests/test_cli.py b/agent/vendor/jsonschema-4.23.0/jsonschema/tests/test_cli.py deleted file mode 100644 index 79d2a1584..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/tests/test_cli.py +++ /dev/null @@ -1,907 +0,0 @@ -from contextlib import redirect_stderr, redirect_stdout -from importlib import metadata -from io import StringIO -from json import JSONDecodeError -from pathlib import Path -from textwrap import dedent -from unittest import TestCase -import json -import os -import subprocess -import sys -import tempfile -import warnings - -from jsonschema import Draft4Validator, Draft202012Validator -from jsonschema.exceptions import ( - SchemaError, - ValidationError, - _RefResolutionError, -) -from jsonschema.validators import _LATEST_VERSION, validate - -with warnings.catch_warnings(): - warnings.simplefilter("ignore") - from jsonschema import cli - - -def fake_validator(*errors): - errors = list(reversed(errors)) - - class FakeValidator: - def __init__(self, *args, **kwargs): - pass - - def iter_errors(self, instance): - if errors: - return errors.pop() - return [] # pragma: no cover - - @classmethod - def check_schema(self, schema): - pass - - return FakeValidator - - -def fake_open(all_contents): - def open(path): - contents = all_contents.get(path) - if contents is None: - raise FileNotFoundError(path) - return StringIO(contents) - return open - - -def _message_for(non_json): - try: - json.loads(non_json) - except JSONDecodeError as error: - return str(error) - else: # pragma: no cover - raise RuntimeError("Tried and failed to capture a JSON dump error.") - - -class TestCLI(TestCase): - def run_cli( - self, argv, files=None, stdin=StringIO(), exit_code=0, **override, - ): - arguments = cli.parse_args(argv) - arguments.update(override) - - self.assertFalse(hasattr(cli, "open")) - cli.open = fake_open(files or {}) - try: - stdout, stderr = StringIO(), StringIO() - actual_exit_code = cli.run( - arguments, - stdin=stdin, - stdout=stdout, - stderr=stderr, - ) - finally: - del cli.open - - self.assertEqual( - actual_exit_code, exit_code, msg=dedent( - f""" - Expected an exit code of {exit_code} != {actual_exit_code}. - - stdout: {stdout.getvalue()} - - stderr: {stderr.getvalue()} - """, - ), - ) - return stdout.getvalue(), stderr.getvalue() - - def assertOutputs(self, stdout="", stderr="", **kwargs): - self.assertEqual( - self.run_cli(**kwargs), - (dedent(stdout), dedent(stderr)), - ) - - def test_invalid_instance(self): - error = ValidationError("I am an error!", instance=12) - self.assertOutputs( - files=dict( - some_schema='{"does not": "matter since it is stubbed"}', - some_instance=json.dumps(error.instance), - ), - validator=fake_validator([error]), - - argv=["-i", "some_instance", "some_schema"], - - exit_code=1, - stderr="12: I am an error!\n", - ) - - def test_invalid_instance_pretty_output(self): - error = ValidationError("I am an error!", instance=12) - self.assertOutputs( - files=dict( - some_schema='{"does not": "matter since it is stubbed"}', - some_instance=json.dumps(error.instance), - ), - validator=fake_validator([error]), - - argv=["-i", "some_instance", "--output", "pretty", "some_schema"], - - exit_code=1, - stderr="""\ - ===[ValidationError]===(some_instance)=== - - I am an error! - ----------------------------- - """, - ) - - def test_invalid_instance_explicit_plain_output(self): - error = ValidationError("I am an error!", instance=12) - self.assertOutputs( - files=dict( - some_schema='{"does not": "matter since it is stubbed"}', - some_instance=json.dumps(error.instance), - ), - validator=fake_validator([error]), - - argv=["--output", "plain", "-i", "some_instance", "some_schema"], - - exit_code=1, - stderr="12: I am an error!\n", - ) - - def test_invalid_instance_multiple_errors(self): - instance = 12 - first = ValidationError("First error", instance=instance) - second = ValidationError("Second error", instance=instance) - - self.assertOutputs( - files=dict( - some_schema='{"does not": "matter since it is stubbed"}', - some_instance=json.dumps(instance), - ), - validator=fake_validator([first, second]), - - argv=["-i", "some_instance", "some_schema"], - - exit_code=1, - stderr="""\ - 12: First error - 12: Second error - """, - ) - - def test_invalid_instance_multiple_errors_pretty_output(self): - instance = 12 - first = ValidationError("First error", instance=instance) - second = ValidationError("Second error", instance=instance) - - self.assertOutputs( - files=dict( - some_schema='{"does not": "matter since it is stubbed"}', - some_instance=json.dumps(instance), - ), - validator=fake_validator([first, second]), - - argv=["-i", "some_instance", "--output", "pretty", "some_schema"], - - exit_code=1, - stderr="""\ - ===[ValidationError]===(some_instance)=== - - First error - ----------------------------- - ===[ValidationError]===(some_instance)=== - - Second error - ----------------------------- - """, - ) - - def test_multiple_invalid_instances(self): - first_instance = 12 - first_errors = [ - ValidationError("An error", instance=first_instance), - ValidationError("Another error", instance=first_instance), - ] - second_instance = "foo" - second_errors = [ValidationError("BOOM", instance=second_instance)] - - self.assertOutputs( - files=dict( - some_schema='{"does not": "matter since it is stubbed"}', - some_first_instance=json.dumps(first_instance), - some_second_instance=json.dumps(second_instance), - ), - validator=fake_validator(first_errors, second_errors), - - argv=[ - "-i", "some_first_instance", - "-i", "some_second_instance", - "some_schema", - ], - - exit_code=1, - stderr="""\ - 12: An error - 12: Another error - foo: BOOM - """, - ) - - def test_multiple_invalid_instances_pretty_output(self): - first_instance = 12 - first_errors = [ - ValidationError("An error", instance=first_instance), - ValidationError("Another error", instance=first_instance), - ] - second_instance = "foo" - second_errors = [ValidationError("BOOM", instance=second_instance)] - - self.assertOutputs( - files=dict( - some_schema='{"does not": "matter since it is stubbed"}', - some_first_instance=json.dumps(first_instance), - some_second_instance=json.dumps(second_instance), - ), - validator=fake_validator(first_errors, second_errors), - - argv=[ - "--output", "pretty", - "-i", "some_first_instance", - "-i", "some_second_instance", - "some_schema", - ], - - exit_code=1, - stderr="""\ - ===[ValidationError]===(some_first_instance)=== - - An error - ----------------------------- - ===[ValidationError]===(some_first_instance)=== - - Another error - ----------------------------- - ===[ValidationError]===(some_second_instance)=== - - BOOM - ----------------------------- - """, - ) - - def test_custom_error_format(self): - first_instance = 12 - first_errors = [ - ValidationError("An error", instance=first_instance), - ValidationError("Another error", instance=first_instance), - ] - second_instance = "foo" - second_errors = [ValidationError("BOOM", instance=second_instance)] - - self.assertOutputs( - files=dict( - some_schema='{"does not": "matter since it is stubbed"}', - some_first_instance=json.dumps(first_instance), - some_second_instance=json.dumps(second_instance), - ), - validator=fake_validator(first_errors, second_errors), - - argv=[ - "--error-format", ":{error.message}._-_.{error.instance}:", - "-i", "some_first_instance", - "-i", "some_second_instance", - "some_schema", - ], - - exit_code=1, - stderr=":An error._-_.12::Another error._-_.12::BOOM._-_.foo:", - ) - - def test_invalid_schema(self): - self.assertOutputs( - files=dict(some_schema='{"type": 12}'), - argv=["some_schema"], - - exit_code=1, - stderr="""\ - 12: 12 is not valid under any of the given schemas - """, - ) - - def test_invalid_schema_pretty_output(self): - schema = {"type": 12} - - with self.assertRaises(SchemaError) as e: - validate(schema=schema, instance="") - error = str(e.exception) - - self.assertOutputs( - files=dict(some_schema=json.dumps(schema)), - argv=["--output", "pretty", "some_schema"], - - exit_code=1, - stderr=( - "===[SchemaError]===(some_schema)===\n\n" - + str(error) - + "\n-----------------------------\n" - ), - ) - - def test_invalid_schema_multiple_errors(self): - self.assertOutputs( - files=dict(some_schema='{"type": 12, "items": 57}'), - argv=["some_schema"], - - exit_code=1, - stderr="""\ - 57: 57 is not of type 'object', 'boolean' - """, - ) - - def test_invalid_schema_multiple_errors_pretty_output(self): - schema = {"type": 12, "items": 57} - - with self.assertRaises(SchemaError) as e: - validate(schema=schema, instance="") - error = str(e.exception) - - self.assertOutputs( - files=dict(some_schema=json.dumps(schema)), - argv=["--output", "pretty", "some_schema"], - - exit_code=1, - stderr=( - "===[SchemaError]===(some_schema)===\n\n" - + str(error) - + "\n-----------------------------\n" - ), - ) - - def test_invalid_schema_with_invalid_instance(self): - """ - "Validating" an instance that's invalid under an invalid schema - just shows the schema error. - """ - self.assertOutputs( - files=dict( - some_schema='{"type": 12, "minimum": 30}', - some_instance="13", - ), - argv=["-i", "some_instance", "some_schema"], - - exit_code=1, - stderr="""\ - 12: 12 is not valid under any of the given schemas - """, - ) - - def test_invalid_schema_with_invalid_instance_pretty_output(self): - instance, schema = 13, {"type": 12, "minimum": 30} - - with self.assertRaises(SchemaError) as e: - validate(schema=schema, instance=instance) - error = str(e.exception) - - self.assertOutputs( - files=dict( - some_schema=json.dumps(schema), - some_instance=json.dumps(instance), - ), - argv=["--output", "pretty", "-i", "some_instance", "some_schema"], - - exit_code=1, - stderr=( - "===[SchemaError]===(some_schema)===\n\n" - + str(error) - + "\n-----------------------------\n" - ), - ) - - def test_invalid_instance_continues_with_the_rest(self): - self.assertOutputs( - files=dict( - some_schema='{"minimum": 30}', - first_instance="not valid JSON!", - second_instance="12", - ), - argv=[ - "-i", "first_instance", - "-i", "second_instance", - "some_schema", - ], - - exit_code=1, - stderr="""\ - Failed to parse 'first_instance': {} - 12: 12 is less than the minimum of 30 - """.format(_message_for("not valid JSON!")), - ) - - def test_custom_error_format_applies_to_schema_errors(self): - instance, schema = 13, {"type": 12, "minimum": 30} - - with self.assertRaises(SchemaError): - validate(schema=schema, instance=instance) - - self.assertOutputs( - files=dict(some_schema=json.dumps(schema)), - - argv=[ - "--error-format", ":{error.message}._-_.{error.instance}:", - "some_schema", - ], - - exit_code=1, - stderr=":12 is not valid under any of the given schemas._-_.12:", - ) - - def test_instance_is_invalid_JSON(self): - instance = "not valid JSON!" - - self.assertOutputs( - files=dict(some_schema="{}", some_instance=instance), - argv=["-i", "some_instance", "some_schema"], - - exit_code=1, - stderr=f"""\ - Failed to parse 'some_instance': {_message_for(instance)} - """, - ) - - def test_instance_is_invalid_JSON_pretty_output(self): - stdout, stderr = self.run_cli( - files=dict( - some_schema="{}", - some_instance="not valid JSON!", - ), - - argv=["--output", "pretty", "-i", "some_instance", "some_schema"], - - exit_code=1, - ) - self.assertFalse(stdout) - self.assertIn( - "(some_instance)===\n\nTraceback (most recent call last):\n", - stderr, - ) - self.assertNotIn("some_schema", stderr) - - def test_instance_is_invalid_JSON_on_stdin(self): - instance = "not valid JSON!" - - self.assertOutputs( - files=dict(some_schema="{}"), - stdin=StringIO(instance), - - argv=["some_schema"], - - exit_code=1, - stderr=f"""\ - Failed to parse : {_message_for(instance)} - """, - ) - - def test_instance_is_invalid_JSON_on_stdin_pretty_output(self): - stdout, stderr = self.run_cli( - files=dict(some_schema="{}"), - stdin=StringIO("not valid JSON!"), - - argv=["--output", "pretty", "some_schema"], - - exit_code=1, - ) - self.assertFalse(stdout) - self.assertIn( - "()===\n\nTraceback (most recent call last):\n", - stderr, - ) - self.assertNotIn("some_schema", stderr) - - def test_schema_is_invalid_JSON(self): - schema = "not valid JSON!" - - self.assertOutputs( - files=dict(some_schema=schema), - - argv=["some_schema"], - - exit_code=1, - stderr=f"""\ - Failed to parse 'some_schema': {_message_for(schema)} - """, - ) - - def test_schema_is_invalid_JSON_pretty_output(self): - stdout, stderr = self.run_cli( - files=dict(some_schema="not valid JSON!"), - - argv=["--output", "pretty", "some_schema"], - - exit_code=1, - ) - self.assertFalse(stdout) - self.assertIn( - "(some_schema)===\n\nTraceback (most recent call last):\n", - stderr, - ) - - def test_schema_and_instance_are_both_invalid_JSON(self): - """ - Only the schema error is reported, as we abort immediately. - """ - schema, instance = "not valid JSON!", "also not valid JSON!" - self.assertOutputs( - files=dict(some_schema=schema, some_instance=instance), - - argv=["some_schema"], - - exit_code=1, - stderr=f"""\ - Failed to parse 'some_schema': {_message_for(schema)} - """, - ) - - def test_schema_and_instance_are_both_invalid_JSON_pretty_output(self): - """ - Only the schema error is reported, as we abort immediately. - """ - stdout, stderr = self.run_cli( - files=dict( - some_schema="not valid JSON!", - some_instance="also not valid JSON!", - ), - - argv=["--output", "pretty", "-i", "some_instance", "some_schema"], - - exit_code=1, - ) - self.assertFalse(stdout) - self.assertIn( - "(some_schema)===\n\nTraceback (most recent call last):\n", - stderr, - ) - self.assertNotIn("some_instance", stderr) - - def test_instance_does_not_exist(self): - self.assertOutputs( - files=dict(some_schema="{}"), - argv=["-i", "nonexisting_instance", "some_schema"], - - exit_code=1, - stderr="""\ - 'nonexisting_instance' does not exist. - """, - ) - - def test_instance_does_not_exist_pretty_output(self): - self.assertOutputs( - files=dict(some_schema="{}"), - argv=[ - "--output", "pretty", - "-i", "nonexisting_instance", - "some_schema", - ], - - exit_code=1, - stderr="""\ - ===[FileNotFoundError]===(nonexisting_instance)=== - - 'nonexisting_instance' does not exist. - ----------------------------- - """, - ) - - def test_schema_does_not_exist(self): - self.assertOutputs( - argv=["nonexisting_schema"], - - exit_code=1, - stderr="'nonexisting_schema' does not exist.\n", - ) - - def test_schema_does_not_exist_pretty_output(self): - self.assertOutputs( - argv=["--output", "pretty", "nonexisting_schema"], - - exit_code=1, - stderr="""\ - ===[FileNotFoundError]===(nonexisting_schema)=== - - 'nonexisting_schema' does not exist. - ----------------------------- - """, - ) - - def test_neither_instance_nor_schema_exist(self): - self.assertOutputs( - argv=["-i", "nonexisting_instance", "nonexisting_schema"], - - exit_code=1, - stderr="'nonexisting_schema' does not exist.\n", - ) - - def test_neither_instance_nor_schema_exist_pretty_output(self): - self.assertOutputs( - argv=[ - "--output", "pretty", - "-i", "nonexisting_instance", - "nonexisting_schema", - ], - - exit_code=1, - stderr="""\ - ===[FileNotFoundError]===(nonexisting_schema)=== - - 'nonexisting_schema' does not exist. - ----------------------------- - """, - ) - - def test_successful_validation(self): - self.assertOutputs( - files=dict(some_schema="{}", some_instance="{}"), - argv=["-i", "some_instance", "some_schema"], - stdout="", - stderr="", - ) - - def test_successful_validation_pretty_output(self): - self.assertOutputs( - files=dict(some_schema="{}", some_instance="{}"), - argv=["--output", "pretty", "-i", "some_instance", "some_schema"], - stdout="===[SUCCESS]===(some_instance)===\n", - stderr="", - ) - - def test_successful_validation_of_stdin(self): - self.assertOutputs( - files=dict(some_schema="{}"), - stdin=StringIO("{}"), - argv=["some_schema"], - stdout="", - stderr="", - ) - - def test_successful_validation_of_stdin_pretty_output(self): - self.assertOutputs( - files=dict(some_schema="{}"), - stdin=StringIO("{}"), - argv=["--output", "pretty", "some_schema"], - stdout="===[SUCCESS]===()===\n", - stderr="", - ) - - def test_successful_validation_of_just_the_schema(self): - self.assertOutputs( - files=dict(some_schema="{}", some_instance="{}"), - argv=["-i", "some_instance", "some_schema"], - stdout="", - stderr="", - ) - - def test_successful_validation_of_just_the_schema_pretty_output(self): - self.assertOutputs( - files=dict(some_schema="{}", some_instance="{}"), - argv=["--output", "pretty", "-i", "some_instance", "some_schema"], - stdout="===[SUCCESS]===(some_instance)===\n", - stderr="", - ) - - def test_successful_validation_via_explicit_base_uri(self): - ref_schema_file = tempfile.NamedTemporaryFile(delete=False) - ref_schema_file.close() - self.addCleanup(os.remove, ref_schema_file.name) - - ref_path = Path(ref_schema_file.name) - ref_path.write_text('{"definitions": {"num": {"type": "integer"}}}') - - schema = f'{{"$ref": "{ref_path.name}#/definitions/num"}}' - - self.assertOutputs( - files=dict(some_schema=schema, some_instance="1"), - argv=[ - "-i", "some_instance", - "--base-uri", ref_path.parent.as_uri() + "/", - "some_schema", - ], - stdout="", - stderr="", - ) - - def test_unsuccessful_validation_via_explicit_base_uri(self): - ref_schema_file = tempfile.NamedTemporaryFile(delete=False) - ref_schema_file.close() - self.addCleanup(os.remove, ref_schema_file.name) - - ref_path = Path(ref_schema_file.name) - ref_path.write_text('{"definitions": {"num": {"type": "integer"}}}') - - schema = f'{{"$ref": "{ref_path.name}#/definitions/num"}}' - - self.assertOutputs( - files=dict(some_schema=schema, some_instance='"1"'), - argv=[ - "-i", "some_instance", - "--base-uri", ref_path.parent.as_uri() + "/", - "some_schema", - ], - exit_code=1, - stdout="", - stderr="1: '1' is not of type 'integer'\n", - ) - - def test_nonexistent_file_with_explicit_base_uri(self): - schema = '{"$ref": "someNonexistentFile.json#definitions/num"}' - instance = "1" - - with self.assertRaises(_RefResolutionError) as e: - self.assertOutputs( - files=dict( - some_schema=schema, - some_instance=instance, - ), - argv=[ - "-i", "some_instance", - "--base-uri", Path.cwd().as_uri(), - "some_schema", - ], - ) - error = str(e.exception) - self.assertIn(f"{os.sep}someNonexistentFile.json'", error) - - def test_invalid_explicit_base_uri(self): - schema = '{"$ref": "foo.json#definitions/num"}' - instance = "1" - - with self.assertRaises(_RefResolutionError) as e: - self.assertOutputs( - files=dict( - some_schema=schema, - some_instance=instance, - ), - argv=[ - "-i", "some_instance", - "--base-uri", "not@UR1", - "some_schema", - ], - ) - error = str(e.exception) - self.assertEqual( - error, "unknown url type: 'foo.json'", - ) - - def test_it_validates_using_the_latest_validator_when_unspecified(self): - # There isn't a better way now I can think of to ensure that the - # latest version was used, given that the call to validator_for - # is hidden inside the CLI, so guard that that's the case, and - # this test will have to be updated when versions change until - # we can think of a better way to ensure this behavior. - self.assertIs(Draft202012Validator, _LATEST_VERSION) - - self.assertOutputs( - files=dict(some_schema='{"const": "check"}', some_instance='"a"'), - argv=["-i", "some_instance", "some_schema"], - exit_code=1, - stdout="", - stderr="a: 'check' was expected\n", - ) - - def test_it_validates_using_draft7_when_specified(self): - """ - Specifically, `const` validation applies for Draft 7. - """ - schema = """ - { - "$schema": "http://json-schema.org/draft-07/schema#", - "const": "check" - } - """ - instance = '"foo"' - self.assertOutputs( - files=dict(some_schema=schema, some_instance=instance), - argv=["-i", "some_instance", "some_schema"], - exit_code=1, - stdout="", - stderr="foo: 'check' was expected\n", - ) - - def test_it_validates_using_draft4_when_specified(self): - """ - Specifically, `const` validation *does not* apply for Draft 4. - """ - schema = """ - { - "$schema": "http://json-schema.org/draft-04/schema#", - "const": "check" - } - """ - instance = '"foo"' - self.assertOutputs( - files=dict(some_schema=schema, some_instance=instance), - argv=["-i", "some_instance", "some_schema"], - stdout="", - stderr="", - ) - - -class TestParser(TestCase): - - FakeValidator = fake_validator() - - def test_find_validator_by_fully_qualified_object_name(self): - arguments = cli.parse_args( - [ - "--validator", - "jsonschema.tests.test_cli.TestParser.FakeValidator", - "--instance", "mem://some/instance", - "mem://some/schema", - ], - ) - self.assertIs(arguments["validator"], self.FakeValidator) - - def test_find_validator_in_jsonschema(self): - arguments = cli.parse_args( - [ - "--validator", "Draft4Validator", - "--instance", "mem://some/instance", - "mem://some/schema", - ], - ) - self.assertIs(arguments["validator"], Draft4Validator) - - def cli_output_for(self, *argv): - stdout, stderr = StringIO(), StringIO() - with redirect_stdout(stdout), redirect_stderr(stderr): # noqa: SIM117 - with self.assertRaises(SystemExit): - cli.parse_args(argv) - return stdout.getvalue(), stderr.getvalue() - - def test_unknown_output(self): - stdout, stderr = self.cli_output_for( - "--output", "foo", - "mem://some/schema", - ) - self.assertIn("invalid choice: 'foo'", stderr) - self.assertFalse(stdout) - - def test_useless_error_format(self): - stdout, stderr = self.cli_output_for( - "--output", "pretty", - "--error-format", "foo", - "mem://some/schema", - ) - self.assertIn( - "--error-format can only be used with --output plain", - stderr, - ) - self.assertFalse(stdout) - - -class TestCLIIntegration(TestCase): - def test_license(self): - output = subprocess.check_output( - [sys.executable, "-m", "pip", "show", "jsonschema"], - stderr=subprocess.STDOUT, - ) - self.assertIn(b"License: MIT", output) - - def test_version(self): - version = subprocess.check_output( - [sys.executable, "-W", "ignore", "-m", "jsonschema", "--version"], - stderr=subprocess.STDOUT, - ) - version = version.decode("utf-8").strip() - self.assertEqual(version, metadata.version("jsonschema")) - - def test_no_arguments_shows_usage_notes(self): - output = subprocess.check_output( - [sys.executable, "-m", "jsonschema"], - stderr=subprocess.STDOUT, - ) - output_for_help = subprocess.check_output( - [sys.executable, "-m", "jsonschema", "--help"], - stderr=subprocess.STDOUT, - ) - self.assertEqual(output, output_for_help) diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/tests/test_deprecations.py b/agent/vendor/jsonschema-4.23.0/jsonschema/tests/test_deprecations.py deleted file mode 100644 index aea922d23..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/tests/test_deprecations.py +++ /dev/null @@ -1,432 +0,0 @@ -from contextlib import contextmanager -from io import BytesIO -from unittest import TestCase, mock -import importlib.metadata -import json -import subprocess -import sys -import urllib.request - -import referencing.exceptions - -from jsonschema import FormatChecker, exceptions, protocols, validators - - -class TestDeprecations(TestCase): - def test_version(self): - """ - As of v4.0.0, __version__ is deprecated in favor of importlib.metadata. - """ - - message = "Accessing jsonschema.__version__ is deprecated" - with self.assertWarnsRegex(DeprecationWarning, message) as w: - from jsonschema import __version__ - - self.assertEqual(__version__, importlib.metadata.version("jsonschema")) - self.assertEqual(w.filename, __file__) - - def test_validators_ErrorTree(self): - """ - As of v4.0.0, importing ErrorTree from jsonschema.validators is - deprecated in favor of doing so from jsonschema.exceptions. - """ - - message = "Importing ErrorTree from jsonschema.validators is " - with self.assertWarnsRegex(DeprecationWarning, message) as w: - from jsonschema.validators import ErrorTree - - self.assertEqual(ErrorTree, exceptions.ErrorTree) - self.assertEqual(w.filename, __file__) - - def test_import_ErrorTree(self): - """ - As of v4.18.0, importing ErrorTree from the package root is - deprecated in favor of doing so from jsonschema.exceptions. - """ - - message = "Importing ErrorTree directly from the jsonschema package " - with self.assertWarnsRegex(DeprecationWarning, message) as w: - from jsonschema import ErrorTree - - self.assertEqual(ErrorTree, exceptions.ErrorTree) - self.assertEqual(w.filename, __file__) - - def test_ErrorTree_setitem(self): - """ - As of v4.20.0, setting items on an ErrorTree is deprecated. - """ - - e = exceptions.ValidationError("some error", path=["foo"]) - tree = exceptions.ErrorTree() - subtree = exceptions.ErrorTree(errors=[e]) - - message = "ErrorTree.__setitem__ is " - with self.assertWarnsRegex(DeprecationWarning, message) as w: - tree["foo"] = subtree - - self.assertEqual(tree["foo"], subtree) - self.assertEqual(w.filename, __file__) - - def test_import_FormatError(self): - """ - As of v4.18.0, importing FormatError from the package root is - deprecated in favor of doing so from jsonschema.exceptions. - """ - - message = "Importing FormatError directly from the jsonschema package " - with self.assertWarnsRegex(DeprecationWarning, message) as w: - from jsonschema import FormatError - - self.assertEqual(FormatError, exceptions.FormatError) - self.assertEqual(w.filename, __file__) - - def test_import_Validator(self): - """ - As of v4.19.0, importing Validator from the package root is - deprecated in favor of doing so from jsonschema.protocols. - """ - - message = "Importing Validator directly from the jsonschema package " - with self.assertWarnsRegex(DeprecationWarning, message) as w: - from jsonschema import Validator - - self.assertEqual(Validator, protocols.Validator) - self.assertEqual(w.filename, __file__) - - def test_validators_validators(self): - """ - As of v4.0.0, accessing jsonschema.validators.validators is - deprecated. - """ - - message = "Accessing jsonschema.validators.validators is deprecated" - with self.assertWarnsRegex(DeprecationWarning, message) as w: - value = validators.validators - - self.assertEqual(value, validators._VALIDATORS) - self.assertEqual(w.filename, __file__) - - def test_validators_meta_schemas(self): - """ - As of v4.0.0, accessing jsonschema.validators.meta_schemas is - deprecated. - """ - - message = "Accessing jsonschema.validators.meta_schemas is deprecated" - with self.assertWarnsRegex(DeprecationWarning, message) as w: - value = validators.meta_schemas - - self.assertEqual(value, validators._META_SCHEMAS) - self.assertEqual(w.filename, __file__) - - def test_RefResolver_in_scope(self): - """ - As of v4.0.0, RefResolver.in_scope is deprecated. - """ - - resolver = validators._RefResolver.from_schema({}) - message = "jsonschema.RefResolver.in_scope is deprecated " - with self.assertWarnsRegex(DeprecationWarning, message) as w: # noqa: SIM117 - with resolver.in_scope("foo"): - pass - - self.assertEqual(w.filename, __file__) - - def test_Validator_is_valid_two_arguments(self): - """ - As of v4.0.0, calling is_valid with two arguments (to provide a - different schema) is deprecated. - """ - - validator = validators.Draft7Validator({}) - message = "Passing a schema to Validator.is_valid is deprecated " - with self.assertWarnsRegex(DeprecationWarning, message) as w: - result = validator.is_valid("foo", {"type": "number"}) - - self.assertFalse(result) - self.assertEqual(w.filename, __file__) - - def test_Validator_iter_errors_two_arguments(self): - """ - As of v4.0.0, calling iter_errors with two arguments (to provide a - different schema) is deprecated. - """ - - validator = validators.Draft7Validator({}) - message = "Passing a schema to Validator.iter_errors is deprecated " - with self.assertWarnsRegex(DeprecationWarning, message) as w: - error, = validator.iter_errors("foo", {"type": "number"}) - - self.assertEqual(error.validator, "type") - self.assertEqual(w.filename, __file__) - - def test_Validator_resolver(self): - """ - As of v4.18.0, accessing Validator.resolver is deprecated. - """ - - validator = validators.Draft7Validator({}) - message = "Accessing Draft7Validator.resolver is " - with self.assertWarnsRegex(DeprecationWarning, message) as w: - self.assertIsInstance(validator.resolver, validators._RefResolver) - - self.assertEqual(w.filename, __file__) - - def test_RefResolver(self): - """ - As of v4.18.0, RefResolver is fully deprecated. - """ - - message = "jsonschema.RefResolver is deprecated" - with self.assertWarnsRegex(DeprecationWarning, message) as w: - from jsonschema import RefResolver - self.assertEqual(w.filename, __file__) - - with self.assertWarnsRegex(DeprecationWarning, message) as w: - from jsonschema.validators import RefResolver # noqa: F401, F811 - self.assertEqual(w.filename, __file__) - - def test_RefResolutionError(self): - """ - As of v4.18.0, RefResolutionError is deprecated in favor of directly - catching errors from the referencing library. - """ - - message = "jsonschema.exceptions.RefResolutionError is deprecated" - with self.assertWarnsRegex(DeprecationWarning, message) as w: - from jsonschema import RefResolutionError - - self.assertEqual(RefResolutionError, exceptions._RefResolutionError) - self.assertEqual(w.filename, __file__) - - with self.assertWarnsRegex(DeprecationWarning, message) as w: - from jsonschema.exceptions import RefResolutionError - - self.assertEqual(RefResolutionError, exceptions._RefResolutionError) - self.assertEqual(w.filename, __file__) - - def test_catching_Unresolvable_directly(self): - """ - This behavior is the intended behavior (i.e. it's not deprecated), but - given we do "tricksy" things in the iterim to wrap exceptions in a - multiple inheritance subclass, we need to be extra sure it works and - stays working. - """ - validator = validators.Draft202012Validator({"$ref": "urn:nothing"}) - - with self.assertRaises(referencing.exceptions.Unresolvable) as e: - validator.validate(12) - - expected = referencing.exceptions.Unresolvable(ref="urn:nothing") - self.assertEqual( - (e.exception, str(e.exception)), - (expected, "Unresolvable: urn:nothing"), - ) - - def test_catching_Unresolvable_via_RefResolutionError(self): - """ - Until RefResolutionError is removed, it is still possible to catch - exceptions from reference resolution using it, even though they may - have been raised by referencing. - """ - with self.assertWarns(DeprecationWarning): - from jsonschema import RefResolutionError - - validator = validators.Draft202012Validator({"$ref": "urn:nothing"}) - - with self.assertRaises(referencing.exceptions.Unresolvable) as u: - validator.validate(12) - - with self.assertRaises(RefResolutionError) as e: - validator.validate(12) - - self.assertEqual( - (e.exception, str(e.exception)), - (u.exception, "Unresolvable: urn:nothing"), - ) - - def test_WrappedReferencingError_hashability(self): - """ - Ensure the wrapped referencing errors are hashable when possible. - """ - with self.assertWarns(DeprecationWarning): - from jsonschema import RefResolutionError - - validator = validators.Draft202012Validator({"$ref": "urn:nothing"}) - - with self.assertRaises(referencing.exceptions.Unresolvable) as u: - validator.validate(12) - - with self.assertRaises(RefResolutionError) as e: - validator.validate(12) - - self.assertIn(e.exception, {u.exception}) - self.assertIn(u.exception, {e.exception}) - - def test_Validator_subclassing(self): - """ - As of v4.12.0, subclassing a validator class produces an explicit - deprecation warning. - - This was never intended to be public API (and some comments over the - years in issues said so, but obviously that's not a great way to make - sure it's followed). - - A future version will explicitly raise an error. - """ - - message = "Subclassing validator classes is " - with self.assertWarnsRegex(DeprecationWarning, message) as w: - class Subclass(validators.Draft202012Validator): - pass - - self.assertEqual(w.filename, __file__) - - with self.assertWarnsRegex(DeprecationWarning, message) as w: - class AnotherSubclass(validators.create(meta_schema={})): - pass - - def test_FormatChecker_cls_checks(self): - """ - As of v4.14.0, FormatChecker.cls_checks is deprecated without - replacement. - """ - - self.addCleanup(FormatChecker.checkers.pop, "boom", None) - - message = "FormatChecker.cls_checks " - with self.assertWarnsRegex(DeprecationWarning, message) as w: - FormatChecker.cls_checks("boom") - - self.assertEqual(w.filename, __file__) - - def test_draftN_format_checker(self): - """ - As of v4.16.0, accessing jsonschema.draftn_format_checker is deprecated - in favor of Validator.FORMAT_CHECKER. - """ - - message = "Accessing jsonschema.draft202012_format_checker is " - with self.assertWarnsRegex(DeprecationWarning, message) as w: - from jsonschema import draft202012_format_checker - - self.assertIs( - draft202012_format_checker, - validators.Draft202012Validator.FORMAT_CHECKER, - ) - self.assertEqual(w.filename, __file__) - - message = "Accessing jsonschema.draft201909_format_checker is " - with self.assertWarnsRegex(DeprecationWarning, message) as w: - from jsonschema import draft201909_format_checker - - self.assertIs( - draft201909_format_checker, - validators.Draft201909Validator.FORMAT_CHECKER, - ) - self.assertEqual(w.filename, __file__) - - message = "Accessing jsonschema.draft7_format_checker is " - with self.assertWarnsRegex(DeprecationWarning, message) as w: - from jsonschema import draft7_format_checker - - self.assertIs( - draft7_format_checker, - validators.Draft7Validator.FORMAT_CHECKER, - ) - self.assertEqual(w.filename, __file__) - - message = "Accessing jsonschema.draft6_format_checker is " - with self.assertWarnsRegex(DeprecationWarning, message) as w: - from jsonschema import draft6_format_checker - - self.assertIs( - draft6_format_checker, - validators.Draft6Validator.FORMAT_CHECKER, - ) - self.assertEqual(w.filename, __file__) - - message = "Accessing jsonschema.draft4_format_checker is " - with self.assertWarnsRegex(DeprecationWarning, message) as w: - from jsonschema import draft4_format_checker - - self.assertIs( - draft4_format_checker, - validators.Draft4Validator.FORMAT_CHECKER, - ) - self.assertEqual(w.filename, __file__) - - message = "Accessing jsonschema.draft3_format_checker is " - with self.assertWarnsRegex(DeprecationWarning, message) as w: - from jsonschema import draft3_format_checker - - self.assertIs( - draft3_format_checker, - validators.Draft3Validator.FORMAT_CHECKER, - ) - self.assertEqual(w.filename, __file__) - - with self.assertRaises(ImportError): - from jsonschema import draft1234_format_checker # noqa: F401 - - def test_import_cli(self): - """ - As of v4.17.0, importing jsonschema.cli is deprecated. - """ - - message = "The jsonschema CLI is deprecated and will be removed " - with self.assertWarnsRegex(DeprecationWarning, message) as w: - import jsonschema.cli - importlib.reload(jsonschema.cli) - - self.assertEqual(w.filename, importlib.__file__) - - def test_cli(self): - """ - As of v4.17.0, the jsonschema CLI is deprecated. - """ - - process = subprocess.run( - [sys.executable, "-m", "jsonschema"], - capture_output=True, - check=True, - ) - self.assertIn(b"The jsonschema CLI is deprecated ", process.stderr) - - def test_automatic_remote_retrieval(self): - """ - Automatic retrieval of remote references is deprecated as of v4.18.0. - """ - ref = "http://bar#/$defs/baz" - schema = {"$defs": {"baz": {"type": "integer"}}} - - if "requests" in sys.modules: # pragma: no cover - self.addCleanup( - sys.modules.__setitem__, "requests", sys.modules["requests"], - ) - sys.modules["requests"] = None - - @contextmanager - def fake_urlopen(request): - self.assertIsInstance(request, urllib.request.Request) - self.assertEqual(request.full_url, "http://bar") - - # Ha ha urllib.request.Request "normalizes" header names and - # Request.get_header does not also normalize them... - (header, value), = request.header_items() - self.assertEqual(header.lower(), "user-agent") - self.assertEqual( - value, "python-jsonschema (deprecated $ref resolution)", - ) - yield BytesIO(json.dumps(schema).encode("utf8")) - - validator = validators.Draft202012Validator({"$ref": ref}) - - message = "Automatically retrieving remote references " - patch = mock.patch.object(urllib.request, "urlopen", new=fake_urlopen) - - with patch, self.assertWarnsRegex(DeprecationWarning, message): - self.assertEqual( - (validator.is_valid({}), validator.is_valid(37)), - (False, True), - ) diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/tests/test_exceptions.py b/agent/vendor/jsonschema-4.23.0/jsonschema/tests/test_exceptions.py deleted file mode 100644 index 69114e182..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/tests/test_exceptions.py +++ /dev/null @@ -1,702 +0,0 @@ -from unittest import TestCase -import textwrap - -from jsonschema import exceptions -from jsonschema.validators import _LATEST_VERSION - - -class TestBestMatch(TestCase): - def best_match_of(self, instance, schema): - errors = list(_LATEST_VERSION(schema).iter_errors(instance)) - msg = f"No errors found for {instance} under {schema!r}!" - self.assertTrue(errors, msg=msg) - - best = exceptions.best_match(iter(errors)) - reversed_best = exceptions.best_match(reversed(errors)) - - self.assertEqual( - best._contents(), - reversed_best._contents(), - f"No consistent best match!\nGot: {best}\n\nThen: {reversed_best}", - ) - return best - - def test_shallower_errors_are_better_matches(self): - schema = { - "properties": { - "foo": { - "minProperties": 2, - "properties": {"bar": {"type": "object"}}, - }, - }, - } - best = self.best_match_of(instance={"foo": {"bar": []}}, schema=schema) - self.assertEqual(best.validator, "minProperties") - - def test_oneOf_and_anyOf_are_weak_matches(self): - """ - A property you *must* match is probably better than one you have to - match a part of. - """ - - schema = { - "minProperties": 2, - "anyOf": [{"type": "string"}, {"type": "number"}], - "oneOf": [{"type": "string"}, {"type": "number"}], - } - best = self.best_match_of(instance={}, schema=schema) - self.assertEqual(best.validator, "minProperties") - - def test_if_the_most_relevant_error_is_anyOf_it_is_traversed(self): - """ - If the most relevant error is an anyOf, then we traverse its context - and select the otherwise *least* relevant error, since in this case - that means the most specific, deep, error inside the instance. - - I.e. since only one of the schemas must match, we look for the most - relevant one. - """ - - schema = { - "properties": { - "foo": { - "anyOf": [ - {"type": "string"}, - {"properties": {"bar": {"type": "array"}}}, - ], - }, - }, - } - best = self.best_match_of(instance={"foo": {"bar": 12}}, schema=schema) - self.assertEqual(best.validator_value, "array") - - def test_no_anyOf_traversal_for_equally_relevant_errors(self): - """ - We don't traverse into an anyOf (as above) if all of its context errors - seem to be equally "wrong" against the instance. - """ - - schema = { - "anyOf": [ - {"type": "string"}, - {"type": "integer"}, - {"type": "object"}, - ], - } - best = self.best_match_of(instance=[], schema=schema) - self.assertEqual(best.validator, "anyOf") - - def test_anyOf_traversal_for_single_equally_relevant_error(self): - """ - We *do* traverse anyOf with a single nested error, even though it is - vacuously equally relevant to itself. - """ - - schema = { - "anyOf": [ - {"type": "string"}, - ], - } - best = self.best_match_of(instance=[], schema=schema) - self.assertEqual(best.validator, "type") - - def test_anyOf_traversal_for_single_sibling_errors(self): - """ - We *do* traverse anyOf with a single subschema that fails multiple - times (e.g. on multiple items). - """ - - schema = { - "anyOf": [ - {"items": {"const": 37}}, - ], - } - best = self.best_match_of(instance=[12, 12], schema=schema) - self.assertEqual(best.validator, "const") - - def test_anyOf_traversal_for_non_type_matching_sibling_errors(self): - """ - We *do* traverse anyOf with multiple subschemas when one does not type - match. - """ - - schema = { - "anyOf": [ - {"type": "object"}, - {"items": {"const": 37}}, - ], - } - best = self.best_match_of(instance=[12, 12], schema=schema) - self.assertEqual(best.validator, "const") - - def test_if_the_most_relevant_error_is_oneOf_it_is_traversed(self): - """ - If the most relevant error is an oneOf, then we traverse its context - and select the otherwise *least* relevant error, since in this case - that means the most specific, deep, error inside the instance. - - I.e. since only one of the schemas must match, we look for the most - relevant one. - """ - - schema = { - "properties": { - "foo": { - "oneOf": [ - {"type": "string"}, - {"properties": {"bar": {"type": "array"}}}, - ], - }, - }, - } - best = self.best_match_of(instance={"foo": {"bar": 12}}, schema=schema) - self.assertEqual(best.validator_value, "array") - - def test_no_oneOf_traversal_for_equally_relevant_errors(self): - """ - We don't traverse into an oneOf (as above) if all of its context errors - seem to be equally "wrong" against the instance. - """ - - schema = { - "oneOf": [ - {"type": "string"}, - {"type": "integer"}, - {"type": "object"}, - ], - } - best = self.best_match_of(instance=[], schema=schema) - self.assertEqual(best.validator, "oneOf") - - def test_oneOf_traversal_for_single_equally_relevant_error(self): - """ - We *do* traverse oneOf with a single nested error, even though it is - vacuously equally relevant to itself. - """ - - schema = { - "oneOf": [ - {"type": "string"}, - ], - } - best = self.best_match_of(instance=[], schema=schema) - self.assertEqual(best.validator, "type") - - def test_oneOf_traversal_for_single_sibling_errors(self): - """ - We *do* traverse oneOf with a single subschema that fails multiple - times (e.g. on multiple items). - """ - - schema = { - "oneOf": [ - {"items": {"const": 37}}, - ], - } - best = self.best_match_of(instance=[12, 12], schema=schema) - self.assertEqual(best.validator, "const") - - def test_oneOf_traversal_for_non_type_matching_sibling_errors(self): - """ - We *do* traverse oneOf with multiple subschemas when one does not type - match. - """ - - schema = { - "oneOf": [ - {"type": "object"}, - {"items": {"const": 37}}, - ], - } - best = self.best_match_of(instance=[12, 12], schema=schema) - self.assertEqual(best.validator, "const") - - def test_if_the_most_relevant_error_is_allOf_it_is_traversed(self): - """ - Now, if the error is allOf, we traverse but select the *most* relevant - error from the context, because all schemas here must match anyways. - """ - - schema = { - "properties": { - "foo": { - "allOf": [ - {"type": "string"}, - {"properties": {"bar": {"type": "array"}}}, - ], - }, - }, - } - best = self.best_match_of(instance={"foo": {"bar": 12}}, schema=schema) - self.assertEqual(best.validator_value, "string") - - def test_nested_context_for_oneOf(self): - """ - We traverse into nested contexts (a oneOf containing an error in a - nested oneOf here). - """ - - schema = { - "properties": { - "foo": { - "oneOf": [ - {"type": "string"}, - { - "oneOf": [ - {"type": "string"}, - { - "properties": { - "bar": {"type": "array"}, - }, - }, - ], - }, - ], - }, - }, - } - best = self.best_match_of(instance={"foo": {"bar": 12}}, schema=schema) - self.assertEqual(best.validator_value, "array") - - def test_it_prioritizes_matching_types(self): - schema = { - "properties": { - "foo": { - "anyOf": [ - {"type": "array", "minItems": 2}, - {"type": "string", "minLength": 10}, - ], - }, - }, - } - best = self.best_match_of(instance={"foo": "bar"}, schema=schema) - self.assertEqual(best.validator, "minLength") - - reordered = { - "properties": { - "foo": { - "anyOf": [ - {"type": "string", "minLength": 10}, - {"type": "array", "minItems": 2}, - ], - }, - }, - } - best = self.best_match_of(instance={"foo": "bar"}, schema=reordered) - self.assertEqual(best.validator, "minLength") - - def test_it_prioritizes_matching_union_types(self): - schema = { - "properties": { - "foo": { - "anyOf": [ - {"type": ["array", "object"], "minItems": 2}, - {"type": ["integer", "string"], "minLength": 10}, - ], - }, - }, - } - best = self.best_match_of(instance={"foo": "bar"}, schema=schema) - self.assertEqual(best.validator, "minLength") - - reordered = { - "properties": { - "foo": { - "anyOf": [ - {"type": "string", "minLength": 10}, - {"type": "array", "minItems": 2}, - ], - }, - }, - } - best = self.best_match_of(instance={"foo": "bar"}, schema=reordered) - self.assertEqual(best.validator, "minLength") - - def test_boolean_schemas(self): - schema = {"properties": {"foo": False}} - best = self.best_match_of(instance={"foo": "bar"}, schema=schema) - self.assertIsNone(best.validator) - - def test_one_error(self): - validator = _LATEST_VERSION({"minProperties": 2}) - error, = validator.iter_errors({}) - self.assertEqual( - exceptions.best_match(validator.iter_errors({})).validator, - "minProperties", - ) - - def test_no_errors(self): - validator = _LATEST_VERSION({}) - self.assertIsNone(exceptions.best_match(validator.iter_errors({}))) - - -class TestByRelevance(TestCase): - def test_short_paths_are_better_matches(self): - shallow = exceptions.ValidationError("Oh no!", path=["baz"]) - deep = exceptions.ValidationError("Oh yes!", path=["foo", "bar"]) - match = max([shallow, deep], key=exceptions.relevance) - self.assertIs(match, shallow) - - match = max([deep, shallow], key=exceptions.relevance) - self.assertIs(match, shallow) - - def test_global_errors_are_even_better_matches(self): - shallow = exceptions.ValidationError("Oh no!", path=[]) - deep = exceptions.ValidationError("Oh yes!", path=["foo"]) - - errors = sorted([shallow, deep], key=exceptions.relevance) - self.assertEqual( - [list(error.path) for error in errors], - [["foo"], []], - ) - - errors = sorted([deep, shallow], key=exceptions.relevance) - self.assertEqual( - [list(error.path) for error in errors], - [["foo"], []], - ) - - def test_weak_keywords_are_lower_priority(self): - weak = exceptions.ValidationError("Oh no!", path=[], validator="a") - normal = exceptions.ValidationError("Oh yes!", path=[], validator="b") - - best_match = exceptions.by_relevance(weak="a") - - match = max([weak, normal], key=best_match) - self.assertIs(match, normal) - - match = max([normal, weak], key=best_match) - self.assertIs(match, normal) - - def test_strong_keywords_are_higher_priority(self): - weak = exceptions.ValidationError("Oh no!", path=[], validator="a") - normal = exceptions.ValidationError("Oh yes!", path=[], validator="b") - strong = exceptions.ValidationError("Oh fine!", path=[], validator="c") - - best_match = exceptions.by_relevance(weak="a", strong="c") - - match = max([weak, normal, strong], key=best_match) - self.assertIs(match, strong) - - match = max([strong, normal, weak], key=best_match) - self.assertIs(match, strong) - - -class TestErrorTree(TestCase): - def test_it_knows_how_many_total_errors_it_contains(self): - # FIXME: #442 - errors = [ - exceptions.ValidationError("Something", validator=i) - for i in range(8) - ] - tree = exceptions.ErrorTree(errors) - self.assertEqual(tree.total_errors, 8) - - def test_it_contains_an_item_if_the_item_had_an_error(self): - errors = [exceptions.ValidationError("a message", path=["bar"])] - tree = exceptions.ErrorTree(errors) - self.assertIn("bar", tree) - - def test_it_does_not_contain_an_item_if_the_item_had_no_error(self): - errors = [exceptions.ValidationError("a message", path=["bar"])] - tree = exceptions.ErrorTree(errors) - self.assertNotIn("foo", tree) - - def test_keywords_that_failed_appear_in_errors_dict(self): - error = exceptions.ValidationError("a message", validator="foo") - tree = exceptions.ErrorTree([error]) - self.assertEqual(tree.errors, {"foo": error}) - - def test_it_creates_a_child_tree_for_each_nested_path(self): - errors = [ - exceptions.ValidationError("a bar message", path=["bar"]), - exceptions.ValidationError("a bar -> 0 message", path=["bar", 0]), - ] - tree = exceptions.ErrorTree(errors) - self.assertIn(0, tree["bar"]) - self.assertNotIn(1, tree["bar"]) - - def test_children_have_their_errors_dicts_built(self): - e1, e2 = ( - exceptions.ValidationError("1", validator="foo", path=["bar", 0]), - exceptions.ValidationError("2", validator="quux", path=["bar", 0]), - ) - tree = exceptions.ErrorTree([e1, e2]) - self.assertEqual(tree["bar"][0].errors, {"foo": e1, "quux": e2}) - - def test_multiple_errors_with_instance(self): - e1, e2 = ( - exceptions.ValidationError( - "1", - validator="foo", - path=["bar", "bar2"], - instance="i1"), - exceptions.ValidationError( - "2", - validator="quux", - path=["foobar", 2], - instance="i2"), - ) - exceptions.ErrorTree([e1, e2]) - - def test_it_does_not_contain_subtrees_that_are_not_in_the_instance(self): - error = exceptions.ValidationError("123", validator="foo", instance=[]) - tree = exceptions.ErrorTree([error]) - - with self.assertRaises(IndexError): - tree[0] - - def test_if_its_in_the_tree_anyhow_it_does_not_raise_an_error(self): - """ - If a keyword refers to a path that isn't in the instance, the - tree still properly returns a subtree for that path. - """ - - error = exceptions.ValidationError( - "a message", validator="foo", instance={}, path=["foo"], - ) - tree = exceptions.ErrorTree([error]) - self.assertIsInstance(tree["foo"], exceptions.ErrorTree) - - def test_iter(self): - e1, e2 = ( - exceptions.ValidationError( - "1", - validator="foo", - path=["bar", "bar2"], - instance="i1"), - exceptions.ValidationError( - "2", - validator="quux", - path=["foobar", 2], - instance="i2"), - ) - tree = exceptions.ErrorTree([e1, e2]) - self.assertEqual(set(tree), {"bar", "foobar"}) - - def test_repr_single(self): - error = exceptions.ValidationError( - "1", - validator="foo", - path=["bar", "bar2"], - instance="i1", - ) - tree = exceptions.ErrorTree([error]) - self.assertEqual(repr(tree), "") - - def test_repr_multiple(self): - e1, e2 = ( - exceptions.ValidationError( - "1", - validator="foo", - path=["bar", "bar2"], - instance="i1"), - exceptions.ValidationError( - "2", - validator="quux", - path=["foobar", 2], - instance="i2"), - ) - tree = exceptions.ErrorTree([e1, e2]) - self.assertEqual(repr(tree), "") - - def test_repr_empty(self): - tree = exceptions.ErrorTree([]) - self.assertEqual(repr(tree), "") - - -class TestErrorInitReprStr(TestCase): - def make_error(self, **kwargs): - defaults = dict( - message="hello", - validator="type", - validator_value="string", - instance=5, - schema={"type": "string"}, - ) - defaults.update(kwargs) - return exceptions.ValidationError(**defaults) - - def assertShows(self, expected, **kwargs): - expected = textwrap.dedent(expected).rstrip("\n") - - error = self.make_error(**kwargs) - message_line, _, rest = str(error).partition("\n") - self.assertEqual(message_line, error.message) - self.assertEqual(rest, expected) - - def test_it_calls_super_and_sets_args(self): - error = self.make_error() - self.assertGreater(len(error.args), 1) - - def test_repr(self): - self.assertEqual( - repr(exceptions.ValidationError(message="Hello!")), - "", - ) - - def test_unset_error(self): - error = exceptions.ValidationError("message") - self.assertEqual(str(error), "message") - - kwargs = { - "validator": "type", - "validator_value": "string", - "instance": 5, - "schema": {"type": "string"}, - } - # Just the message should show if any of the attributes are unset - for attr in kwargs: - k = dict(kwargs) - del k[attr] - error = exceptions.ValidationError("message", **k) - self.assertEqual(str(error), "message") - - def test_empty_paths(self): - self.assertShows( - """ - Failed validating 'type' in schema: - {'type': 'string'} - - On instance: - 5 - """, - path=[], - schema_path=[], - ) - - def test_one_item_paths(self): - self.assertShows( - """ - Failed validating 'type' in schema: - {'type': 'string'} - - On instance[0]: - 5 - """, - path=[0], - schema_path=["items"], - ) - - def test_multiple_item_paths(self): - self.assertShows( - """ - Failed validating 'type' in schema['items'][0]: - {'type': 'string'} - - On instance[0]['a']: - 5 - """, - path=[0, "a"], - schema_path=["items", 0, 1], - ) - - def test_uses_pprint(self): - self.assertShows( - """ - Failed validating 'maxLength' in schema: - {0: 0, - 1: 1, - 2: 2, - 3: 3, - 4: 4, - 5: 5, - 6: 6, - 7: 7, - 8: 8, - 9: 9, - 10: 10, - 11: 11, - 12: 12, - 13: 13, - 14: 14, - 15: 15, - 16: 16, - 17: 17, - 18: 18, - 19: 19} - - On instance: - [0, - 1, - 2, - 3, - 4, - 5, - 6, - 7, - 8, - 9, - 10, - 11, - 12, - 13, - 14, - 15, - 16, - 17, - 18, - 19, - 20, - 21, - 22, - 23, - 24] - """, - instance=list(range(25)), - schema=dict(zip(range(20), range(20))), - validator="maxLength", - ) - - def test_does_not_reorder_dicts(self): - self.assertShows( - """ - Failed validating 'type' in schema: - {'do': 3, 'not': 7, 'sort': 37, 'me': 73} - - On instance: - {'here': 73, 'too': 37, 'no': 7, 'sorting': 3} - """, - schema={ - "do": 3, - "not": 7, - "sort": 37, - "me": 73, - }, - instance={ - "here": 73, - "too": 37, - "no": 7, - "sorting": 3, - }, - ) - - def test_str_works_with_instances_having_overriden_eq_operator(self): - """ - Check for #164 which rendered exceptions unusable when a - `ValidationError` involved instances with an `__eq__` method - that returned truthy values. - """ - - class DontEQMeBro: - def __eq__(this, other): # pragma: no cover - self.fail("Don't!") - - def __ne__(this, other): # pragma: no cover - self.fail("Don't!") - - instance = DontEQMeBro() - error = exceptions.ValidationError( - "a message", - validator="foo", - instance=instance, - validator_value="some", - schema="schema", - ) - self.assertIn(repr(instance), str(error)) - - -class TestHashable(TestCase): - def test_hashable(self): - {exceptions.ValidationError("")} - {exceptions.SchemaError("")} diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/tests/test_format.py b/agent/vendor/jsonschema-4.23.0/jsonschema/tests/test_format.py deleted file mode 100644 index d829f9848..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/tests/test_format.py +++ /dev/null @@ -1,91 +0,0 @@ -""" -Tests for the parts of jsonschema related to the :kw:`format` keyword. -""" - -from unittest import TestCase - -from jsonschema import FormatChecker, ValidationError -from jsonschema.exceptions import FormatError -from jsonschema.validators import Draft4Validator - -BOOM = ValueError("Boom!") -BANG = ZeroDivisionError("Bang!") - - -def boom(thing): - if thing == "bang": - raise BANG - raise BOOM - - -class TestFormatChecker(TestCase): - def test_it_can_validate_no_formats(self): - checker = FormatChecker(formats=()) - self.assertFalse(checker.checkers) - - def test_it_raises_a_key_error_for_unknown_formats(self): - with self.assertRaises(KeyError): - FormatChecker(formats=["o noes"]) - - def test_it_can_register_cls_checkers(self): - original = dict(FormatChecker.checkers) - self.addCleanup(FormatChecker.checkers.pop, "boom") - with self.assertWarns(DeprecationWarning): - FormatChecker.cls_checks("boom")(boom) - self.assertEqual( - FormatChecker.checkers, - dict(original, boom=(boom, ())), - ) - - def test_it_can_register_checkers(self): - checker = FormatChecker() - checker.checks("boom")(boom) - self.assertEqual( - checker.checkers, - dict(FormatChecker.checkers, boom=(boom, ())), - ) - - def test_it_catches_registered_errors(self): - checker = FormatChecker() - checker.checks("boom", raises=type(BOOM))(boom) - - with self.assertRaises(FormatError) as cm: - checker.check(instance=12, format="boom") - - self.assertIs(cm.exception.cause, BOOM) - self.assertIs(cm.exception.__cause__, BOOM) - self.assertEqual(str(cm.exception), "12 is not a 'boom'") - - # Unregistered errors should not be caught - with self.assertRaises(type(BANG)): - checker.check(instance="bang", format="boom") - - def test_format_error_causes_become_validation_error_causes(self): - checker = FormatChecker() - checker.checks("boom", raises=ValueError)(boom) - validator = Draft4Validator({"format": "boom"}, format_checker=checker) - - with self.assertRaises(ValidationError) as cm: - validator.validate("BOOM") - - self.assertIs(cm.exception.cause, BOOM) - self.assertIs(cm.exception.__cause__, BOOM) - - def test_format_checkers_come_with_defaults(self): - # This is bad :/ but relied upon. - # The docs for quite awhile recommended people do things like - # validate(..., format_checker=FormatChecker()) - # We should change that, but we can't without deprecation... - checker = FormatChecker() - with self.assertRaises(FormatError): - checker.check(instance="not-an-ipv4", format="ipv4") - - def test_repr(self): - checker = FormatChecker(formats=()) - checker.checks("foo")(lambda thing: True) # pragma: no cover - checker.checks("bar")(lambda thing: True) # pragma: no cover - checker.checks("baz")(lambda thing: True) # pragma: no cover - self.assertEqual( - repr(checker), - "", - ) diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/tests/test_jsonschema_test_suite.py b/agent/vendor/jsonschema-4.23.0/jsonschema/tests/test_jsonschema_test_suite.py deleted file mode 100644 index 282c1369c..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/tests/test_jsonschema_test_suite.py +++ /dev/null @@ -1,269 +0,0 @@ -""" -Test runner for the JSON Schema official test suite - -Tests comprehensive correctness of each draft's validator. - -See https://github.com/json-schema-org/JSON-Schema-Test-Suite for details. -""" - -import sys - -from jsonschema.tests._suite import Suite -import jsonschema - -SUITE = Suite() -DRAFT3 = SUITE.version(name="draft3") -DRAFT4 = SUITE.version(name="draft4") -DRAFT6 = SUITE.version(name="draft6") -DRAFT7 = SUITE.version(name="draft7") -DRAFT201909 = SUITE.version(name="draft2019-09") -DRAFT202012 = SUITE.version(name="draft2020-12") - - -def skip(message, **kwargs): - def skipper(test): - if all(value == getattr(test, attr) for attr, value in kwargs.items()): - return message - return skipper - - -def missing_format(Validator): - def missing_format(test): # pragma: no cover - schema = test.schema - if ( - schema is True - or schema is False - or "format" not in schema - or schema["format"] in Validator.FORMAT_CHECKER.checkers - or test.valid - ): - return - - return f"Format checker {schema['format']!r} not found." - return missing_format - - -def complex_email_validation(test): - if test.subject != "email": - return - - message = "Complex email validation is (intentionally) unsupported." - return skip( - message=message, - description="an invalid domain", - )(test) or skip( - message=message, - description="an invalid IPv4-address-literal", - )(test) or skip( - message=message, - description="dot after local part is not valid", - )(test) or skip( - message=message, - description="dot before local part is not valid", - )(test) or skip( - message=message, - description="two subsequent dots inside local part are not valid", - )(test) - - -if sys.version_info < (3, 9): # pragma: no cover - message = "Rejecting leading zeros is 3.9+" - allowed_leading_zeros = skip( - message=message, - subject="ipv4", - description="invalid leading zeroes, as they are treated as octals", - ) -else: - def allowed_leading_zeros(test): # pragma: no cover - return - - -def leap_second(test): - message = "Leap seconds are unsupported." - return skip( - message=message, - subject="time", - description="a valid time string with leap second", - )(test) or skip( - message=message, - subject="time", - description="a valid time string with leap second, Zulu", - )(test) or skip( - message=message, - subject="time", - description="a valid time string with leap second with offset", - )(test) or skip( - message=message, - subject="time", - description="valid leap second, positive time-offset", - )(test) or skip( - message=message, - subject="time", - description="valid leap second, negative time-offset", - )(test) or skip( - message=message, - subject="time", - description="valid leap second, large positive time-offset", - )(test) or skip( - message=message, - subject="time", - description="valid leap second, large negative time-offset", - )(test) or skip( - message=message, - subject="time", - description="valid leap second, zero time-offset", - )(test) or skip( - message=message, - subject="date-time", - description="a valid date-time with a leap second, UTC", - )(test) or skip( - message=message, - subject="date-time", - description="a valid date-time with a leap second, with minus offset", - )(test) - - -TestDraft3 = DRAFT3.to_unittest_testcase( - DRAFT3.cases(), - DRAFT3.format_cases(), - DRAFT3.optional_cases_of(name="bignum"), - DRAFT3.optional_cases_of(name="non-bmp-regex"), - DRAFT3.optional_cases_of(name="zeroTerminatedFloats"), - Validator=jsonschema.Draft3Validator, - format_checker=jsonschema.Draft3Validator.FORMAT_CHECKER, - skip=lambda test: ( - missing_format(jsonschema.Draft3Validator)(test) - or complex_email_validation(test) - ), -) - - -TestDraft4 = DRAFT4.to_unittest_testcase( - DRAFT4.cases(), - DRAFT4.format_cases(), - DRAFT4.optional_cases_of(name="bignum"), - DRAFT4.optional_cases_of(name="float-overflow"), - DRAFT4.optional_cases_of(name="id"), - DRAFT4.optional_cases_of(name="non-bmp-regex"), - DRAFT4.optional_cases_of(name="zeroTerminatedFloats"), - Validator=jsonschema.Draft4Validator, - format_checker=jsonschema.Draft4Validator.FORMAT_CHECKER, - skip=lambda test: ( - allowed_leading_zeros(test) - or leap_second(test) - or missing_format(jsonschema.Draft4Validator)(test) - or complex_email_validation(test) - ), -) - - -TestDraft6 = DRAFT6.to_unittest_testcase( - DRAFT6.cases(), - DRAFT6.format_cases(), - DRAFT6.optional_cases_of(name="bignum"), - DRAFT6.optional_cases_of(name="float-overflow"), - DRAFT6.optional_cases_of(name="id"), - DRAFT6.optional_cases_of(name="non-bmp-regex"), - Validator=jsonschema.Draft6Validator, - format_checker=jsonschema.Draft6Validator.FORMAT_CHECKER, - skip=lambda test: ( - allowed_leading_zeros(test) - or leap_second(test) - or missing_format(jsonschema.Draft6Validator)(test) - or complex_email_validation(test) - ), -) - - -TestDraft7 = DRAFT7.to_unittest_testcase( - DRAFT7.cases(), - DRAFT7.format_cases(), - DRAFT7.optional_cases_of(name="bignum"), - DRAFT7.optional_cases_of(name="cross-draft"), - DRAFT7.optional_cases_of(name="float-overflow"), - DRAFT6.optional_cases_of(name="id"), - DRAFT7.optional_cases_of(name="non-bmp-regex"), - DRAFT7.optional_cases_of(name="unknownKeyword"), - Validator=jsonschema.Draft7Validator, - format_checker=jsonschema.Draft7Validator.FORMAT_CHECKER, - skip=lambda test: ( - allowed_leading_zeros(test) - or leap_second(test) - or missing_format(jsonschema.Draft7Validator)(test) - or complex_email_validation(test) - ), -) - - -TestDraft201909 = DRAFT201909.to_unittest_testcase( - DRAFT201909.cases(), - DRAFT201909.optional_cases_of(name="anchor"), - DRAFT201909.optional_cases_of(name="bignum"), - DRAFT201909.optional_cases_of(name="cross-draft"), - DRAFT201909.optional_cases_of(name="float-overflow"), - DRAFT201909.optional_cases_of(name="id"), - DRAFT201909.optional_cases_of(name="no-schema"), - DRAFT201909.optional_cases_of(name="non-bmp-regex"), - DRAFT201909.optional_cases_of(name="refOfUnknownKeyword"), - DRAFT201909.optional_cases_of(name="unknownKeyword"), - Validator=jsonschema.Draft201909Validator, - skip=skip( - message="Vocabulary support is still in-progress.", - subject="vocabulary", - description=( - "no validation: invalid number, but it still validates" - ), - ), -) - - -TestDraft201909Format = DRAFT201909.to_unittest_testcase( - DRAFT201909.format_cases(), - name="TestDraft201909Format", - Validator=jsonschema.Draft201909Validator, - format_checker=jsonschema.Draft201909Validator.FORMAT_CHECKER, - skip=lambda test: ( - complex_email_validation(test) - or allowed_leading_zeros(test) - or leap_second(test) - or missing_format(jsonschema.Draft201909Validator)(test) - or complex_email_validation(test) - ), -) - - -TestDraft202012 = DRAFT202012.to_unittest_testcase( - DRAFT202012.cases(), - DRAFT201909.optional_cases_of(name="anchor"), - DRAFT202012.optional_cases_of(name="bignum"), - DRAFT202012.optional_cases_of(name="cross-draft"), - DRAFT202012.optional_cases_of(name="float-overflow"), - DRAFT202012.optional_cases_of(name="id"), - DRAFT202012.optional_cases_of(name="no-schema"), - DRAFT202012.optional_cases_of(name="non-bmp-regex"), - DRAFT202012.optional_cases_of(name="refOfUnknownKeyword"), - DRAFT202012.optional_cases_of(name="unknownKeyword"), - Validator=jsonschema.Draft202012Validator, - skip=skip( - message="Vocabulary support is still in-progress.", - subject="vocabulary", - description=( - "no validation: invalid number, but it still validates" - ), - ), -) - - -TestDraft202012Format = DRAFT202012.to_unittest_testcase( - DRAFT202012.format_cases(), - name="TestDraft202012Format", - Validator=jsonschema.Draft202012Validator, - format_checker=jsonschema.Draft202012Validator.FORMAT_CHECKER, - skip=lambda test: ( - complex_email_validation(test) - or allowed_leading_zeros(test) - or leap_second(test) - or missing_format(jsonschema.Draft202012Validator)(test) - or complex_email_validation(test) - ), -) diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/tests/test_types.py b/agent/vendor/jsonschema-4.23.0/jsonschema/tests/test_types.py deleted file mode 100644 index bd97b1800..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/tests/test_types.py +++ /dev/null @@ -1,221 +0,0 @@ -""" -Tests for the `TypeChecker`-based type interface. - -The actual correctness of the type checking is handled in -`test_jsonschema_test_suite`; these tests check that TypeChecker -functions correctly at a more granular level. -""" -from collections import namedtuple -from unittest import TestCase - -from jsonschema import ValidationError, _keywords -from jsonschema._types import TypeChecker -from jsonschema.exceptions import UndefinedTypeCheck, UnknownType -from jsonschema.validators import Draft202012Validator, extend - - -def equals_2(checker, instance): - return instance == 2 - - -def is_namedtuple(instance): - return isinstance(instance, tuple) and getattr(instance, "_fields", None) - - -def is_object_or_named_tuple(checker, instance): - if Draft202012Validator.TYPE_CHECKER.is_type(instance, "object"): - return True - return is_namedtuple(instance) - - -class TestTypeChecker(TestCase): - def test_is_type(self): - checker = TypeChecker({"two": equals_2}) - self.assertEqual( - ( - checker.is_type(instance=2, type="two"), - checker.is_type(instance="bar", type="two"), - ), - (True, False), - ) - - def test_is_unknown_type(self): - with self.assertRaises(UndefinedTypeCheck) as e: - TypeChecker().is_type(4, "foobar") - self.assertIn( - "'foobar' is unknown to this type checker", - str(e.exception), - ) - self.assertTrue( - e.exception.__suppress_context__, - msg="Expected the internal KeyError to be hidden.", - ) - - def test_checks_can_be_added_at_init(self): - checker = TypeChecker({"two": equals_2}) - self.assertEqual(checker, TypeChecker().redefine("two", equals_2)) - - def test_redefine_existing_type(self): - self.assertEqual( - TypeChecker().redefine("two", object()).redefine("two", equals_2), - TypeChecker().redefine("two", equals_2), - ) - - def test_remove(self): - self.assertEqual( - TypeChecker({"two": equals_2}).remove("two"), - TypeChecker(), - ) - - def test_remove_unknown_type(self): - with self.assertRaises(UndefinedTypeCheck) as context: - TypeChecker().remove("foobar") - self.assertIn("foobar", str(context.exception)) - - def test_redefine_many(self): - self.assertEqual( - TypeChecker().redefine_many({"foo": int, "bar": str}), - TypeChecker().redefine("foo", int).redefine("bar", str), - ) - - def test_remove_multiple(self): - self.assertEqual( - TypeChecker({"foo": int, "bar": str}).remove("foo", "bar"), - TypeChecker(), - ) - - def test_type_check_can_raise_key_error(self): - """ - Make sure no one writes: - - try: - self._type_checkers[type](...) - except KeyError: - - ignoring the fact that the function itself can raise that. - """ - - error = KeyError("Stuff") - - def raises_keyerror(checker, instance): - raise error - - with self.assertRaises(KeyError) as context: - TypeChecker({"foo": raises_keyerror}).is_type(4, "foo") - - self.assertIs(context.exception, error) - - def test_repr(self): - checker = TypeChecker({"foo": is_namedtuple, "bar": is_namedtuple}) - self.assertEqual(repr(checker), "") - - -class TestCustomTypes(TestCase): - def test_simple_type_can_be_extended(self): - def int_or_str_int(checker, instance): - if not isinstance(instance, (int, str)): - return False - try: - int(instance) - except ValueError: - return False - return True - - CustomValidator = extend( - Draft202012Validator, - type_checker=Draft202012Validator.TYPE_CHECKER.redefine( - "integer", int_or_str_int, - ), - ) - validator = CustomValidator({"type": "integer"}) - - validator.validate(4) - validator.validate("4") - - with self.assertRaises(ValidationError): - validator.validate(4.4) - - with self.assertRaises(ValidationError): - validator.validate("foo") - - def test_object_can_be_extended(self): - schema = {"type": "object"} - - Point = namedtuple("Point", ["x", "y"]) - - type_checker = Draft202012Validator.TYPE_CHECKER.redefine( - "object", is_object_or_named_tuple, - ) - - CustomValidator = extend( - Draft202012Validator, - type_checker=type_checker, - ) - validator = CustomValidator(schema) - - validator.validate(Point(x=4, y=5)) - - def test_object_extensions_require_custom_validators(self): - schema = {"type": "object", "required": ["x"]} - - type_checker = Draft202012Validator.TYPE_CHECKER.redefine( - "object", is_object_or_named_tuple, - ) - - CustomValidator = extend( - Draft202012Validator, - type_checker=type_checker, - ) - validator = CustomValidator(schema) - - Point = namedtuple("Point", ["x", "y"]) - # Cannot handle required - with self.assertRaises(ValidationError): - validator.validate(Point(x=4, y=5)) - - def test_object_extensions_can_handle_custom_validators(self): - schema = { - "type": "object", - "required": ["x"], - "properties": {"x": {"type": "integer"}}, - } - - type_checker = Draft202012Validator.TYPE_CHECKER.redefine( - "object", is_object_or_named_tuple, - ) - - def coerce_named_tuple(fn): - def coerced(validator, value, instance, schema): - if is_namedtuple(instance): - instance = instance._asdict() - return fn(validator, value, instance, schema) - return coerced - - required = coerce_named_tuple(_keywords.required) - properties = coerce_named_tuple(_keywords.properties) - - CustomValidator = extend( - Draft202012Validator, - type_checker=type_checker, - validators={"required": required, "properties": properties}, - ) - - validator = CustomValidator(schema) - - Point = namedtuple("Point", ["x", "y"]) - # Can now process required and properties - validator.validate(Point(x=4, y=5)) - - with self.assertRaises(ValidationError): - validator.validate(Point(x="not an integer", y=5)) - - # As well as still handle objects. - validator.validate({"x": 4, "y": 5}) - - with self.assertRaises(ValidationError): - validator.validate({"x": "not an integer", "y": 5}) - - def test_unknown_type(self): - with self.assertRaises(UnknownType) as e: - Draft202012Validator({}).is_type(12, "some unknown type") - self.assertIn("'some unknown type'", str(e.exception)) diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/tests/test_utils.py b/agent/vendor/jsonschema-4.23.0/jsonschema/tests/test_utils.py deleted file mode 100644 index d9764b0f9..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/tests/test_utils.py +++ /dev/null @@ -1,138 +0,0 @@ -from math import nan -from unittest import TestCase - -from jsonschema._utils import equal - - -class TestEqual(TestCase): - def test_none(self): - self.assertTrue(equal(None, None)) - - def test_nan(self): - self.assertTrue(equal(nan, nan)) - - -class TestDictEqual(TestCase): - def test_equal_dictionaries(self): - dict_1 = {"a": "b", "c": "d"} - dict_2 = {"c": "d", "a": "b"} - self.assertTrue(equal(dict_1, dict_2)) - - def test_equal_dictionaries_with_nan(self): - dict_1 = {"a": nan, "c": "d"} - dict_2 = {"c": "d", "a": nan} - self.assertTrue(equal(dict_1, dict_2)) - - def test_missing_key(self): - dict_1 = {"a": "b", "c": "d"} - dict_2 = {"c": "d", "x": "b"} - self.assertFalse(equal(dict_1, dict_2)) - - def test_additional_key(self): - dict_1 = {"a": "b", "c": "d"} - dict_2 = {"c": "d", "a": "b", "x": "x"} - self.assertFalse(equal(dict_1, dict_2)) - - def test_missing_value(self): - dict_1 = {"a": "b", "c": "d"} - dict_2 = {"c": "d", "a": "x"} - self.assertFalse(equal(dict_1, dict_2)) - - def test_empty_dictionaries(self): - dict_1 = {} - dict_2 = {} - self.assertTrue(equal(dict_1, dict_2)) - - def test_one_none(self): - dict_1 = None - dict_2 = {"a": "b", "c": "d"} - self.assertFalse(equal(dict_1, dict_2)) - - def test_same_item(self): - dict_1 = {"a": "b", "c": "d"} - self.assertTrue(equal(dict_1, dict_1)) - - def test_nested_equal(self): - dict_1 = {"a": {"a": "b", "c": "d"}, "c": "d"} - dict_2 = {"c": "d", "a": {"a": "b", "c": "d"}} - self.assertTrue(equal(dict_1, dict_2)) - - def test_nested_dict_unequal(self): - dict_1 = {"a": {"a": "b", "c": "d"}, "c": "d"} - dict_2 = {"c": "d", "a": {"a": "b", "c": "x"}} - self.assertFalse(equal(dict_1, dict_2)) - - def test_mixed_nested_equal(self): - dict_1 = {"a": ["a", "b", "c", "d"], "c": "d"} - dict_2 = {"c": "d", "a": ["a", "b", "c", "d"]} - self.assertTrue(equal(dict_1, dict_2)) - - def test_nested_list_unequal(self): - dict_1 = {"a": ["a", "b", "c", "d"], "c": "d"} - dict_2 = {"c": "d", "a": ["b", "c", "d", "a"]} - self.assertFalse(equal(dict_1, dict_2)) - - -class TestListEqual(TestCase): - def test_equal_lists(self): - list_1 = ["a", "b", "c"] - list_2 = ["a", "b", "c"] - self.assertTrue(equal(list_1, list_2)) - - def test_equal_lists_with_nan(self): - list_1 = ["a", nan, "c"] - list_2 = ["a", nan, "c"] - self.assertTrue(equal(list_1, list_2)) - - def test_unsorted_lists(self): - list_1 = ["a", "b", "c"] - list_2 = ["b", "b", "a"] - self.assertFalse(equal(list_1, list_2)) - - def test_first_list_larger(self): - list_1 = ["a", "b", "c"] - list_2 = ["a", "b"] - self.assertFalse(equal(list_1, list_2)) - - def test_second_list_larger(self): - list_1 = ["a", "b"] - list_2 = ["a", "b", "c"] - self.assertFalse(equal(list_1, list_2)) - - def test_list_with_none_unequal(self): - list_1 = ["a", "b", None] - list_2 = ["a", "b", "c"] - self.assertFalse(equal(list_1, list_2)) - - list_1 = ["a", "b", None] - list_2 = [None, "b", "c"] - self.assertFalse(equal(list_1, list_2)) - - def test_list_with_none_equal(self): - list_1 = ["a", None, "c"] - list_2 = ["a", None, "c"] - self.assertTrue(equal(list_1, list_2)) - - def test_empty_list(self): - list_1 = [] - list_2 = [] - self.assertTrue(equal(list_1, list_2)) - - def test_one_none(self): - list_1 = None - list_2 = [] - self.assertFalse(equal(list_1, list_2)) - - def test_same_list(self): - list_1 = ["a", "b", "c"] - self.assertTrue(equal(list_1, list_1)) - - def test_equal_nested_lists(self): - list_1 = ["a", ["b", "c"], "d"] - list_2 = ["a", ["b", "c"], "d"] - self.assertTrue(equal(list_1, list_2)) - - def test_unequal_nested_lists(self): - list_1 = ["a", ["b", "c"], "d"] - list_2 = ["a", [], "c"] - self.assertFalse(equal(list_1, list_2)) diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/tests/test_validators.py b/agent/vendor/jsonschema-4.23.0/jsonschema/tests/test_validators.py deleted file mode 100644 index 28cc40273..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/tests/test_validators.py +++ /dev/null @@ -1,2575 +0,0 @@ -from __future__ import annotations - -from collections import deque, namedtuple -from contextlib import contextmanager -from decimal import Decimal -from io import BytesIO -from typing import Any -from unittest import TestCase, mock -from urllib.request import pathname2url -import json -import os -import sys -import tempfile -import warnings - -from attrs import define, field -from referencing.jsonschema import DRAFT202012 -import referencing.exceptions - -from jsonschema import ( - FormatChecker, - TypeChecker, - exceptions, - protocols, - validators, -) - - -def fail(validator, errors, instance, schema): - for each in errors: - each.setdefault("message", "You told me to fail!") - yield exceptions.ValidationError(**each) - - -class TestCreateAndExtend(TestCase): - def setUp(self): - self.addCleanup( - self.assertEqual, - validators._META_SCHEMAS, - dict(validators._META_SCHEMAS), - ) - self.addCleanup( - self.assertEqual, - validators._VALIDATORS, - dict(validators._VALIDATORS), - ) - - self.meta_schema = {"$id": "some://meta/schema"} - self.validators = {"fail": fail} - self.type_checker = TypeChecker() - self.Validator = validators.create( - meta_schema=self.meta_schema, - validators=self.validators, - type_checker=self.type_checker, - ) - - def test_attrs(self): - self.assertEqual( - ( - self.Validator.VALIDATORS, - self.Validator.META_SCHEMA, - self.Validator.TYPE_CHECKER, - ), ( - self.validators, - self.meta_schema, - self.type_checker, - ), - ) - - def test_init(self): - schema = {"fail": []} - self.assertEqual(self.Validator(schema).schema, schema) - - def test_iter_errors_successful(self): - schema = {"fail": []} - validator = self.Validator(schema) - - errors = list(validator.iter_errors("hello")) - self.assertEqual(errors, []) - - def test_iter_errors_one_error(self): - schema = {"fail": [{"message": "Whoops!"}]} - validator = self.Validator(schema) - - expected_error = exceptions.ValidationError( - "Whoops!", - instance="goodbye", - schema=schema, - validator="fail", - validator_value=[{"message": "Whoops!"}], - schema_path=deque(["fail"]), - ) - - errors = list(validator.iter_errors("goodbye")) - self.assertEqual(len(errors), 1) - self.assertEqual(errors[0]._contents(), expected_error._contents()) - - def test_iter_errors_multiple_errors(self): - schema = { - "fail": [ - {"message": "First"}, - {"message": "Second!", "validator": "asdf"}, - {"message": "Third"}, - ], - } - validator = self.Validator(schema) - - errors = list(validator.iter_errors("goodbye")) - self.assertEqual(len(errors), 3) - - def test_if_a_version_is_provided_it_is_registered(self): - Validator = validators.create( - meta_schema={"$id": "something"}, - version="my version", - ) - self.addCleanup(validators._META_SCHEMAS.pop, "something") - self.addCleanup(validators._VALIDATORS.pop, "my version") - self.assertEqual(Validator.__name__, "MyVersionValidator") - self.assertEqual(Validator.__qualname__, "MyVersionValidator") - - def test_repr(self): - Validator = validators.create( - meta_schema={"$id": "something"}, - version="my version", - ) - self.addCleanup(validators._META_SCHEMAS.pop, "something") - self.addCleanup(validators._VALIDATORS.pop, "my version") - self.assertEqual( - repr(Validator({})), - "MyVersionValidator(schema={}, format_checker=None)", - ) - - def test_long_repr(self): - Validator = validators.create( - meta_schema={"$id": "something"}, - version="my version", - ) - self.addCleanup(validators._META_SCHEMAS.pop, "something") - self.addCleanup(validators._VALIDATORS.pop, "my version") - self.assertEqual( - repr(Validator({"a": list(range(1000))})), ( - "MyVersionValidator(schema={'a': [0, 1, 2, 3, 4, 5, ...]}, " - "format_checker=None)" - ), - ) - - def test_repr_no_version(self): - Validator = validators.create(meta_schema={}) - self.assertEqual( - repr(Validator({})), - "Validator(schema={}, format_checker=None)", - ) - - def test_dashes_are_stripped_from_validator_names(self): - Validator = validators.create( - meta_schema={"$id": "something"}, - version="foo-bar", - ) - self.addCleanup(validators._META_SCHEMAS.pop, "something") - self.addCleanup(validators._VALIDATORS.pop, "foo-bar") - self.assertEqual(Validator.__qualname__, "FooBarValidator") - - def test_if_a_version_is_not_provided_it_is_not_registered(self): - original = dict(validators._META_SCHEMAS) - validators.create(meta_schema={"id": "id"}) - self.assertEqual(validators._META_SCHEMAS, original) - - def test_validates_registers_meta_schema_id(self): - meta_schema_key = "meta schema id" - my_meta_schema = {"id": meta_schema_key} - - validators.create( - meta_schema=my_meta_schema, - version="my version", - id_of=lambda s: s.get("id", ""), - ) - self.addCleanup(validators._META_SCHEMAS.pop, meta_schema_key) - self.addCleanup(validators._VALIDATORS.pop, "my version") - - self.assertIn(meta_schema_key, validators._META_SCHEMAS) - - def test_validates_registers_meta_schema_draft6_id(self): - meta_schema_key = "meta schema $id" - my_meta_schema = {"$id": meta_schema_key} - - validators.create( - meta_schema=my_meta_schema, - version="my version", - ) - self.addCleanup(validators._META_SCHEMAS.pop, meta_schema_key) - self.addCleanup(validators._VALIDATORS.pop, "my version") - - self.assertIn(meta_schema_key, validators._META_SCHEMAS) - - def test_create_default_types(self): - Validator = validators.create(meta_schema={}, validators=()) - self.assertTrue( - all( - Validator({}).is_type(instance=instance, type=type) - for type, instance in [ - ("array", []), - ("boolean", True), - ("integer", 12), - ("null", None), - ("number", 12.0), - ("object", {}), - ("string", "foo"), - ] - ), - ) - - def test_check_schema_with_different_metaschema(self): - """ - One can create a validator class whose metaschema uses a different - dialect than itself. - """ - - NoEmptySchemasValidator = validators.create( - meta_schema={ - "$schema": validators.Draft202012Validator.META_SCHEMA["$id"], - "not": {"const": {}}, - }, - ) - NoEmptySchemasValidator.check_schema({"foo": "bar"}) - - with self.assertRaises(exceptions.SchemaError): - NoEmptySchemasValidator.check_schema({}) - - NoEmptySchemasValidator({"foo": "bar"}).validate("foo") - - def test_check_schema_with_different_metaschema_defaults_to_self(self): - """ - A validator whose metaschema doesn't declare $schema defaults to its - own validation behavior, not the latest "normal" specification. - """ - - NoEmptySchemasValidator = validators.create( - meta_schema={"fail": [{"message": "Meta schema whoops!"}]}, - validators={"fail": fail}, - ) - with self.assertRaises(exceptions.SchemaError): - NoEmptySchemasValidator.check_schema({}) - - def test_extend(self): - original = dict(self.Validator.VALIDATORS) - new = object() - - Extended = validators.extend( - self.Validator, - validators={"new": new}, - ) - self.assertEqual( - ( - Extended.VALIDATORS, - Extended.META_SCHEMA, - Extended.TYPE_CHECKER, - self.Validator.VALIDATORS, - ), ( - dict(original, new=new), - self.Validator.META_SCHEMA, - self.Validator.TYPE_CHECKER, - original, - ), - ) - - def test_extend_idof(self): - """ - Extending a validator preserves its notion of schema IDs. - """ - def id_of(schema): - return schema.get("__test__", self.Validator.ID_OF(schema)) - correct_id = "the://correct/id/" - meta_schema = { - "$id": "the://wrong/id/", - "__test__": correct_id, - } - Original = validators.create( - meta_schema=meta_schema, - validators=self.validators, - type_checker=self.type_checker, - id_of=id_of, - ) - self.assertEqual(Original.ID_OF(Original.META_SCHEMA), correct_id) - - Derived = validators.extend(Original) - self.assertEqual(Derived.ID_OF(Derived.META_SCHEMA), correct_id) - - def test_extend_applicable_validators(self): - """ - Extending a validator preserves its notion of applicable validators. - """ - - schema = { - "$defs": {"test": {"type": "number"}}, - "$ref": "#/$defs/test", - "maximum": 1, - } - - draft4 = validators.Draft4Validator(schema) - self.assertTrue(draft4.is_valid(37)) # as $ref ignores siblings - - Derived = validators.extend(validators.Draft4Validator) - self.assertTrue(Derived(schema).is_valid(37)) - - -class TestValidationErrorMessages(TestCase): - def message_for(self, instance, schema, *args, **kwargs): - cls = kwargs.pop("cls", validators._LATEST_VERSION) - cls.check_schema(schema) - validator = cls(schema, *args, **kwargs) - errors = list(validator.iter_errors(instance)) - self.assertTrue(errors, msg=f"No errors were raised for {instance!r}") - self.assertEqual( - len(errors), - 1, - msg=f"Expected exactly one error, found {errors!r}", - ) - return errors[0].message - - def test_single_type_failure(self): - message = self.message_for(instance=1, schema={"type": "string"}) - self.assertEqual(message, "1 is not of type 'string'") - - def test_single_type_list_failure(self): - message = self.message_for(instance=1, schema={"type": ["string"]}) - self.assertEqual(message, "1 is not of type 'string'") - - def test_multiple_type_failure(self): - types = "string", "object" - message = self.message_for(instance=1, schema={"type": list(types)}) - self.assertEqual(message, "1 is not of type 'string', 'object'") - - def test_object_with_named_type_failure(self): - schema = {"type": [{"name": "Foo", "minimum": 3}]} - message = self.message_for( - instance=1, - schema=schema, - cls=validators.Draft3Validator, - ) - self.assertEqual(message, "1 is not of type 'Foo'") - - def test_minimum(self): - message = self.message_for(instance=1, schema={"minimum": 2}) - self.assertEqual(message, "1 is less than the minimum of 2") - - def test_maximum(self): - message = self.message_for(instance=1, schema={"maximum": 0}) - self.assertEqual(message, "1 is greater than the maximum of 0") - - def test_dependencies_single_element(self): - depend, on = "bar", "foo" - schema = {"dependencies": {depend: on}} - message = self.message_for( - instance={"bar": 2}, - schema=schema, - cls=validators.Draft3Validator, - ) - self.assertEqual(message, "'foo' is a dependency of 'bar'") - - def test_object_without_title_type_failure_draft3(self): - type = {"type": [{"minimum": 3}]} - message = self.message_for( - instance=1, - schema={"type": [type]}, - cls=validators.Draft3Validator, - ) - self.assertEqual( - message, - "1 is not of type {'type': [{'minimum': 3}]}", - ) - - def test_dependencies_list_draft3(self): - depend, on = "bar", "foo" - schema = {"dependencies": {depend: [on]}} - message = self.message_for( - instance={"bar": 2}, - schema=schema, - cls=validators.Draft3Validator, - ) - self.assertEqual(message, "'foo' is a dependency of 'bar'") - - def test_dependencies_list_draft7(self): - depend, on = "bar", "foo" - schema = {"dependencies": {depend: [on]}} - message = self.message_for( - instance={"bar": 2}, - schema=schema, - cls=validators.Draft7Validator, - ) - self.assertEqual(message, "'foo' is a dependency of 'bar'") - - def test_additionalItems_single_failure(self): - message = self.message_for( - instance=[2], - schema={"items": [], "additionalItems": False}, - cls=validators.Draft3Validator, - ) - self.assertIn("(2 was unexpected)", message) - - def test_additionalItems_multiple_failures(self): - message = self.message_for( - instance=[1, 2, 3], - schema={"items": [], "additionalItems": False}, - cls=validators.Draft3Validator, - ) - self.assertIn("(1, 2, 3 were unexpected)", message) - - def test_additionalProperties_single_failure(self): - additional = "foo" - schema = {"additionalProperties": False} - message = self.message_for(instance={additional: 2}, schema=schema) - self.assertIn("('foo' was unexpected)", message) - - def test_additionalProperties_multiple_failures(self): - schema = {"additionalProperties": False} - message = self.message_for( - instance=dict.fromkeys(["foo", "bar"]), - schema=schema, - ) - - self.assertIn(repr("foo"), message) - self.assertIn(repr("bar"), message) - self.assertIn("were unexpected)", message) - - def test_const(self): - schema = {"const": 12} - message = self.message_for( - instance={"foo": "bar"}, - schema=schema, - ) - self.assertIn("12 was expected", message) - - def test_contains_draft_6(self): - schema = {"contains": {"const": 12}} - message = self.message_for( - instance=[2, {}, []], - schema=schema, - cls=validators.Draft6Validator, - ) - self.assertEqual( - message, - "None of [2, {}, []] are valid under the given schema", - ) - - def test_invalid_format_default_message(self): - checker = FormatChecker(formats=()) - checker.checks("thing")(lambda value: False) - - schema = {"format": "thing"} - message = self.message_for( - instance="bla", - schema=schema, - format_checker=checker, - ) - - self.assertIn(repr("bla"), message) - self.assertIn(repr("thing"), message) - self.assertIn("is not a", message) - - def test_additionalProperties_false_patternProperties(self): - schema = {"type": "object", - "additionalProperties": False, - "patternProperties": { - "^abc$": {"type": "string"}, - "^def$": {"type": "string"}, - }} - message = self.message_for( - instance={"zebra": 123}, - schema=schema, - cls=validators.Draft4Validator, - ) - self.assertEqual( - message, - "{} does not match any of the regexes: {}, {}".format( - repr("zebra"), repr("^abc$"), repr("^def$"), - ), - ) - message = self.message_for( - instance={"zebra": 123, "fish": 456}, - schema=schema, - cls=validators.Draft4Validator, - ) - self.assertEqual( - message, - "{}, {} do not match any of the regexes: {}, {}".format( - repr("fish"), repr("zebra"), repr("^abc$"), repr("^def$"), - ), - ) - - def test_False_schema(self): - message = self.message_for( - instance="something", - schema=False, - ) - self.assertEqual(message, "False schema does not allow 'something'") - - def test_multipleOf(self): - message = self.message_for( - instance=3, - schema={"multipleOf": 2}, - ) - self.assertEqual(message, "3 is not a multiple of 2") - - def test_minItems(self): - message = self.message_for(instance=[], schema={"minItems": 2}) - self.assertEqual(message, "[] is too short") - - def test_maxItems(self): - message = self.message_for(instance=[1, 2, 3], schema={"maxItems": 2}) - self.assertEqual(message, "[1, 2, 3] is too long") - - def test_minItems_1(self): - message = self.message_for(instance=[], schema={"minItems": 1}) - self.assertEqual(message, "[] should be non-empty") - - def test_maxItems_0(self): - message = self.message_for(instance=[1, 2, 3], schema={"maxItems": 0}) - self.assertEqual(message, "[1, 2, 3] is expected to be empty") - - def test_minLength(self): - message = self.message_for( - instance="", - schema={"minLength": 2}, - ) - self.assertEqual(message, "'' is too short") - - def test_maxLength(self): - message = self.message_for( - instance="abc", - schema={"maxLength": 2}, - ) - self.assertEqual(message, "'abc' is too long") - - def test_minLength_1(self): - message = self.message_for(instance="", schema={"minLength": 1}) - self.assertEqual(message, "'' should be non-empty") - - def test_maxLength_0(self): - message = self.message_for(instance="abc", schema={"maxLength": 0}) - self.assertEqual(message, "'abc' is expected to be empty") - - def test_minProperties(self): - message = self.message_for(instance={}, schema={"minProperties": 2}) - self.assertEqual(message, "{} does not have enough properties") - - def test_maxProperties(self): - message = self.message_for( - instance={"a": {}, "b": {}, "c": {}}, - schema={"maxProperties": 2}, - ) - self.assertEqual( - message, - "{'a': {}, 'b': {}, 'c': {}} has too many properties", - ) - - def test_minProperties_1(self): - message = self.message_for(instance={}, schema={"minProperties": 1}) - self.assertEqual(message, "{} should be non-empty") - - def test_maxProperties_0(self): - message = self.message_for( - instance={1: 2}, - schema={"maxProperties": 0}, - ) - self.assertEqual(message, "{1: 2} is expected to be empty") - - def test_prefixItems_with_items(self): - message = self.message_for( - instance=[1, 2, "foo"], - schema={"items": False, "prefixItems": [{}, {}]}, - ) - self.assertEqual( - message, - "Expected at most 2 items but found 1 extra: 'foo'", - ) - - def test_prefixItems_with_multiple_extra_items(self): - message = self.message_for( - instance=[1, 2, "foo", 5], - schema={"items": False, "prefixItems": [{}, {}]}, - ) - self.assertEqual( - message, - "Expected at most 2 items but found 2 extra: ['foo', 5]", - ) - - def test_pattern(self): - message = self.message_for( - instance="bbb", - schema={"pattern": "^a*$"}, - ) - self.assertEqual(message, "'bbb' does not match '^a*$'") - - def test_does_not_contain(self): - message = self.message_for( - instance=[], - schema={"contains": {"type": "string"}}, - ) - self.assertEqual( - message, - "[] does not contain items matching the given schema", - ) - - def test_contains_too_few(self): - message = self.message_for( - instance=["foo", 1], - schema={"contains": {"type": "string"}, "minContains": 2}, - ) - self.assertEqual( - message, - "Too few items match the given schema " - "(expected at least 2 but only 1 matched)", - ) - - def test_contains_too_few_both_constrained(self): - message = self.message_for( - instance=["foo", 1], - schema={ - "contains": {"type": "string"}, - "minContains": 2, - "maxContains": 4, - }, - ) - self.assertEqual( - message, - "Too few items match the given schema (expected at least 2 but " - "only 1 matched)", - ) - - def test_contains_too_many(self): - message = self.message_for( - instance=["foo", "bar", "baz"], - schema={"contains": {"type": "string"}, "maxContains": 2}, - ) - self.assertEqual( - message, - "Too many items match the given schema (expected at most 2)", - ) - - def test_contains_too_many_both_constrained(self): - message = self.message_for( - instance=["foo"] * 5, - schema={ - "contains": {"type": "string"}, - "minContains": 2, - "maxContains": 4, - }, - ) - self.assertEqual( - message, - "Too many items match the given schema (expected at most 4)", - ) - - def test_exclusiveMinimum(self): - message = self.message_for( - instance=3, - schema={"exclusiveMinimum": 5}, - ) - self.assertEqual( - message, - "3 is less than or equal to the minimum of 5", - ) - - def test_exclusiveMaximum(self): - message = self.message_for(instance=3, schema={"exclusiveMaximum": 2}) - self.assertEqual( - message, - "3 is greater than or equal to the maximum of 2", - ) - - def test_required(self): - message = self.message_for(instance={}, schema={"required": ["foo"]}) - self.assertEqual(message, "'foo' is a required property") - - def test_dependentRequired(self): - message = self.message_for( - instance={"foo": {}}, - schema={"dependentRequired": {"foo": ["bar"]}}, - ) - self.assertEqual(message, "'bar' is a dependency of 'foo'") - - def test_oneOf_matches_none(self): - message = self.message_for(instance={}, schema={"oneOf": [False]}) - self.assertEqual( - message, - "{} is not valid under any of the given schemas", - ) - - def test_oneOf_matches_too_many(self): - message = self.message_for(instance={}, schema={"oneOf": [True, True]}) - self.assertEqual(message, "{} is valid under each of True, True") - - def test_unevaluated_items(self): - schema = {"type": "array", "unevaluatedItems": False} - message = self.message_for(instance=["foo", "bar"], schema=schema) - self.assertIn( - message, - "Unevaluated items are not allowed ('foo', 'bar' were unexpected)", - ) - - def test_unevaluated_items_on_invalid_type(self): - schema = {"type": "array", "unevaluatedItems": False} - message = self.message_for(instance="foo", schema=schema) - self.assertEqual(message, "'foo' is not of type 'array'") - - def test_unevaluated_properties_invalid_against_subschema(self): - schema = { - "properties": {"foo": {"type": "string"}}, - "unevaluatedProperties": {"const": 12}, - } - message = self.message_for( - instance={ - "foo": "foo", - "bar": "bar", - "baz": 12, - }, - schema=schema, - ) - self.assertEqual( - message, - "Unevaluated properties are not valid under the given schema " - "('bar' was unevaluated and invalid)", - ) - - def test_unevaluated_properties_disallowed(self): - schema = {"type": "object", "unevaluatedProperties": False} - message = self.message_for( - instance={ - "foo": "foo", - "bar": "bar", - }, - schema=schema, - ) - self.assertEqual( - message, - "Unevaluated properties are not allowed " - "('bar', 'foo' were unexpected)", - ) - - def test_unevaluated_properties_on_invalid_type(self): - schema = {"type": "object", "unevaluatedProperties": False} - message = self.message_for(instance="foo", schema=schema) - self.assertEqual(message, "'foo' is not of type 'object'") - - def test_single_item(self): - schema = {"prefixItems": [{}], "items": False} - message = self.message_for( - instance=["foo", "bar", "baz"], - schema=schema, - ) - self.assertEqual( - message, - "Expected at most 1 item but found 2 extra: ['bar', 'baz']", - ) - - def test_heterogeneous_additionalItems_with_Items(self): - schema = {"items": [{}], "additionalItems": False} - message = self.message_for( - instance=["foo", "bar", 37], - schema=schema, - cls=validators.Draft7Validator, - ) - self.assertEqual( - message, - "Additional items are not allowed ('bar', 37 were unexpected)", - ) - - def test_heterogeneous_items_prefixItems(self): - schema = {"prefixItems": [{}], "items": False} - message = self.message_for( - instance=["foo", "bar", 37], - schema=schema, - ) - self.assertEqual( - message, - "Expected at most 1 item but found 2 extra: ['bar', 37]", - ) - - def test_heterogeneous_unevaluatedItems_prefixItems(self): - schema = {"prefixItems": [{}], "unevaluatedItems": False} - message = self.message_for( - instance=["foo", "bar", 37], - schema=schema, - ) - self.assertEqual( - message, - "Unevaluated items are not allowed ('bar', 37 were unexpected)", - ) - - def test_heterogeneous_properties_additionalProperties(self): - """ - Not valid deserialized JSON, but this should not blow up. - """ - schema = {"properties": {"foo": {}}, "additionalProperties": False} - message = self.message_for( - instance={"foo": {}, "a": "baz", 37: 12}, - schema=schema, - ) - self.assertEqual( - message, - "Additional properties are not allowed (37, 'a' were unexpected)", - ) - - def test_heterogeneous_properties_unevaluatedProperties(self): - """ - Not valid deserialized JSON, but this should not blow up. - """ - schema = {"properties": {"foo": {}}, "unevaluatedProperties": False} - message = self.message_for( - instance={"foo": {}, "a": "baz", 37: 12}, - schema=schema, - ) - self.assertEqual( - message, - "Unevaluated properties are not allowed (37, 'a' were unexpected)", - ) - - -class TestValidationErrorDetails(TestCase): - # TODO: These really need unit tests for each individual keyword, rather - # than just these higher level tests. - def test_anyOf(self): - instance = 5 - schema = { - "anyOf": [ - {"minimum": 20}, - {"type": "string"}, - ], - } - - validator = validators.Draft4Validator(schema) - errors = list(validator.iter_errors(instance)) - self.assertEqual(len(errors), 1) - e = errors[0] - - self.assertEqual(e.validator, "anyOf") - self.assertEqual(e.validator_value, schema["anyOf"]) - self.assertEqual(e.instance, instance) - self.assertEqual(e.schema, schema) - self.assertIsNone(e.parent) - - self.assertEqual(e.path, deque([])) - self.assertEqual(e.relative_path, deque([])) - self.assertEqual(e.absolute_path, deque([])) - self.assertEqual(e.json_path, "$") - - self.assertEqual(e.schema_path, deque(["anyOf"])) - self.assertEqual(e.relative_schema_path, deque(["anyOf"])) - self.assertEqual(e.absolute_schema_path, deque(["anyOf"])) - - self.assertEqual(len(e.context), 2) - - e1, e2 = sorted_errors(e.context) - - self.assertEqual(e1.validator, "minimum") - self.assertEqual(e1.validator_value, schema["anyOf"][0]["minimum"]) - self.assertEqual(e1.instance, instance) - self.assertEqual(e1.schema, schema["anyOf"][0]) - self.assertIs(e1.parent, e) - - self.assertEqual(e1.path, deque([])) - self.assertEqual(e1.absolute_path, deque([])) - self.assertEqual(e1.relative_path, deque([])) - self.assertEqual(e1.json_path, "$") - - self.assertEqual(e1.schema_path, deque([0, "minimum"])) - self.assertEqual(e1.relative_schema_path, deque([0, "minimum"])) - self.assertEqual( - e1.absolute_schema_path, deque(["anyOf", 0, "minimum"]), - ) - - self.assertFalse(e1.context) - - self.assertEqual(e2.validator, "type") - self.assertEqual(e2.validator_value, schema["anyOf"][1]["type"]) - self.assertEqual(e2.instance, instance) - self.assertEqual(e2.schema, schema["anyOf"][1]) - self.assertIs(e2.parent, e) - - self.assertEqual(e2.path, deque([])) - self.assertEqual(e2.relative_path, deque([])) - self.assertEqual(e2.absolute_path, deque([])) - self.assertEqual(e2.json_path, "$") - - self.assertEqual(e2.schema_path, deque([1, "type"])) - self.assertEqual(e2.relative_schema_path, deque([1, "type"])) - self.assertEqual(e2.absolute_schema_path, deque(["anyOf", 1, "type"])) - - self.assertEqual(len(e2.context), 0) - - def test_type(self): - instance = {"foo": 1} - schema = { - "type": [ - {"type": "integer"}, - { - "type": "object", - "properties": {"foo": {"enum": [2]}}, - }, - ], - } - - validator = validators.Draft3Validator(schema) - errors = list(validator.iter_errors(instance)) - self.assertEqual(len(errors), 1) - e = errors[0] - - self.assertEqual(e.validator, "type") - self.assertEqual(e.validator_value, schema["type"]) - self.assertEqual(e.instance, instance) - self.assertEqual(e.schema, schema) - self.assertIsNone(e.parent) - - self.assertEqual(e.path, deque([])) - self.assertEqual(e.relative_path, deque([])) - self.assertEqual(e.absolute_path, deque([])) - self.assertEqual(e.json_path, "$") - - self.assertEqual(e.schema_path, deque(["type"])) - self.assertEqual(e.relative_schema_path, deque(["type"])) - self.assertEqual(e.absolute_schema_path, deque(["type"])) - - self.assertEqual(len(e.context), 2) - - e1, e2 = sorted_errors(e.context) - - self.assertEqual(e1.validator, "type") - self.assertEqual(e1.validator_value, schema["type"][0]["type"]) - self.assertEqual(e1.instance, instance) - self.assertEqual(e1.schema, schema["type"][0]) - self.assertIs(e1.parent, e) - - self.assertEqual(e1.path, deque([])) - self.assertEqual(e1.relative_path, deque([])) - self.assertEqual(e1.absolute_path, deque([])) - self.assertEqual(e1.json_path, "$") - - self.assertEqual(e1.schema_path, deque([0, "type"])) - self.assertEqual(e1.relative_schema_path, deque([0, "type"])) - self.assertEqual(e1.absolute_schema_path, deque(["type", 0, "type"])) - - self.assertFalse(e1.context) - - self.assertEqual(e2.validator, "enum") - self.assertEqual(e2.validator_value, [2]) - self.assertEqual(e2.instance, 1) - self.assertEqual(e2.schema, {"enum": [2]}) - self.assertIs(e2.parent, e) - - self.assertEqual(e2.path, deque(["foo"])) - self.assertEqual(e2.relative_path, deque(["foo"])) - self.assertEqual(e2.absolute_path, deque(["foo"])) - self.assertEqual(e2.json_path, "$.foo") - - self.assertEqual( - e2.schema_path, deque([1, "properties", "foo", "enum"]), - ) - self.assertEqual( - e2.relative_schema_path, deque([1, "properties", "foo", "enum"]), - ) - self.assertEqual( - e2.absolute_schema_path, - deque(["type", 1, "properties", "foo", "enum"]), - ) - - self.assertFalse(e2.context) - - def test_single_nesting(self): - instance = {"foo": 2, "bar": [1], "baz": 15, "quux": "spam"} - schema = { - "properties": { - "foo": {"type": "string"}, - "bar": {"minItems": 2}, - "baz": {"maximum": 10, "enum": [2, 4, 6, 8]}, - }, - } - - validator = validators.Draft3Validator(schema) - errors = validator.iter_errors(instance) - e1, e2, e3, e4 = sorted_errors(errors) - - self.assertEqual(e1.path, deque(["bar"])) - self.assertEqual(e2.path, deque(["baz"])) - self.assertEqual(e3.path, deque(["baz"])) - self.assertEqual(e4.path, deque(["foo"])) - - self.assertEqual(e1.relative_path, deque(["bar"])) - self.assertEqual(e2.relative_path, deque(["baz"])) - self.assertEqual(e3.relative_path, deque(["baz"])) - self.assertEqual(e4.relative_path, deque(["foo"])) - - self.assertEqual(e1.absolute_path, deque(["bar"])) - self.assertEqual(e2.absolute_path, deque(["baz"])) - self.assertEqual(e3.absolute_path, deque(["baz"])) - self.assertEqual(e4.absolute_path, deque(["foo"])) - - self.assertEqual(e1.json_path, "$.bar") - self.assertEqual(e2.json_path, "$.baz") - self.assertEqual(e3.json_path, "$.baz") - self.assertEqual(e4.json_path, "$.foo") - - self.assertEqual(e1.validator, "minItems") - self.assertEqual(e2.validator, "enum") - self.assertEqual(e3.validator, "maximum") - self.assertEqual(e4.validator, "type") - - def test_multiple_nesting(self): - instance = [1, {"foo": 2, "bar": {"baz": [1]}}, "quux"] - schema = { - "type": "string", - "items": { - "type": ["string", "object"], - "properties": { - "foo": {"enum": [1, 3]}, - "bar": { - "type": "array", - "properties": { - "bar": {"required": True}, - "baz": {"minItems": 2}, - }, - }, - }, - }, - } - - validator = validators.Draft3Validator(schema) - errors = validator.iter_errors(instance) - e1, e2, e3, e4, e5, e6 = sorted_errors(errors) - - self.assertEqual(e1.path, deque([])) - self.assertEqual(e2.path, deque([0])) - self.assertEqual(e3.path, deque([1, "bar"])) - self.assertEqual(e4.path, deque([1, "bar", "bar"])) - self.assertEqual(e5.path, deque([1, "bar", "baz"])) - self.assertEqual(e6.path, deque([1, "foo"])) - - self.assertEqual(e1.json_path, "$") - self.assertEqual(e2.json_path, "$[0]") - self.assertEqual(e3.json_path, "$[1].bar") - self.assertEqual(e4.json_path, "$[1].bar.bar") - self.assertEqual(e5.json_path, "$[1].bar.baz") - self.assertEqual(e6.json_path, "$[1].foo") - - self.assertEqual(e1.schema_path, deque(["type"])) - self.assertEqual(e2.schema_path, deque(["items", "type"])) - self.assertEqual( - list(e3.schema_path), ["items", "properties", "bar", "type"], - ) - self.assertEqual( - list(e4.schema_path), - ["items", "properties", "bar", "properties", "bar", "required"], - ) - self.assertEqual( - list(e5.schema_path), - ["items", "properties", "bar", "properties", "baz", "minItems"], - ) - self.assertEqual( - list(e6.schema_path), ["items", "properties", "foo", "enum"], - ) - - self.assertEqual(e1.validator, "type") - self.assertEqual(e2.validator, "type") - self.assertEqual(e3.validator, "type") - self.assertEqual(e4.validator, "required") - self.assertEqual(e5.validator, "minItems") - self.assertEqual(e6.validator, "enum") - - def test_recursive(self): - schema = { - "definitions": { - "node": { - "anyOf": [{ - "type": "object", - "required": ["name", "children"], - "properties": { - "name": { - "type": "string", - }, - "children": { - "type": "object", - "patternProperties": { - "^.*$": { - "$ref": "#/definitions/node", - }, - }, - }, - }, - }], - }, - }, - "type": "object", - "required": ["root"], - "properties": {"root": {"$ref": "#/definitions/node"}}, - } - - instance = { - "root": { - "name": "root", - "children": { - "a": { - "name": "a", - "children": { - "ab": { - "name": "ab", - # missing "children" - }, - }, - }, - }, - }, - } - validator = validators.Draft4Validator(schema) - - e, = validator.iter_errors(instance) - self.assertEqual(e.absolute_path, deque(["root"])) - self.assertEqual( - e.absolute_schema_path, deque(["properties", "root", "anyOf"]), - ) - self.assertEqual(e.json_path, "$.root") - - e1, = e.context - self.assertEqual(e1.absolute_path, deque(["root", "children", "a"])) - self.assertEqual( - e1.absolute_schema_path, deque( - [ - "properties", - "root", - "anyOf", - 0, - "properties", - "children", - "patternProperties", - "^.*$", - "anyOf", - ], - ), - ) - self.assertEqual(e1.json_path, "$.root.children.a") - - e2, = e1.context - self.assertEqual( - e2.absolute_path, deque( - ["root", "children", "a", "children", "ab"], - ), - ) - self.assertEqual( - e2.absolute_schema_path, deque( - [ - "properties", - "root", - "anyOf", - 0, - "properties", - "children", - "patternProperties", - "^.*$", - "anyOf", - 0, - "properties", - "children", - "patternProperties", - "^.*$", - "anyOf", - ], - ), - ) - self.assertEqual(e2.json_path, "$.root.children.a.children.ab") - - def test_additionalProperties(self): - instance = {"bar": "bar", "foo": 2} - schema = {"additionalProperties": {"type": "integer", "minimum": 5}} - - validator = validators.Draft3Validator(schema) - errors = validator.iter_errors(instance) - e1, e2 = sorted_errors(errors) - - self.assertEqual(e1.path, deque(["bar"])) - self.assertEqual(e2.path, deque(["foo"])) - - self.assertEqual(e1.json_path, "$.bar") - self.assertEqual(e2.json_path, "$.foo") - - self.assertEqual(e1.validator, "type") - self.assertEqual(e2.validator, "minimum") - - def test_patternProperties(self): - instance = {"bar": 1, "foo": 2} - schema = { - "patternProperties": { - "bar": {"type": "string"}, - "foo": {"minimum": 5}, - }, - } - - validator = validators.Draft3Validator(schema) - errors = validator.iter_errors(instance) - e1, e2 = sorted_errors(errors) - - self.assertEqual(e1.path, deque(["bar"])) - self.assertEqual(e2.path, deque(["foo"])) - - self.assertEqual(e1.json_path, "$.bar") - self.assertEqual(e2.json_path, "$.foo") - - self.assertEqual(e1.validator, "type") - self.assertEqual(e2.validator, "minimum") - - def test_additionalItems(self): - instance = ["foo", 1] - schema = { - "items": [], - "additionalItems": {"type": "integer", "minimum": 5}, - } - - validator = validators.Draft3Validator(schema) - errors = validator.iter_errors(instance) - e1, e2 = sorted_errors(errors) - - self.assertEqual(e1.path, deque([0])) - self.assertEqual(e2.path, deque([1])) - - self.assertEqual(e1.json_path, "$[0]") - self.assertEqual(e2.json_path, "$[1]") - - self.assertEqual(e1.validator, "type") - self.assertEqual(e2.validator, "minimum") - - def test_additionalItems_with_items(self): - instance = ["foo", "bar", 1] - schema = { - "items": [{}], - "additionalItems": {"type": "integer", "minimum": 5}, - } - - validator = validators.Draft3Validator(schema) - errors = validator.iter_errors(instance) - e1, e2 = sorted_errors(errors) - - self.assertEqual(e1.path, deque([1])) - self.assertEqual(e2.path, deque([2])) - - self.assertEqual(e1.json_path, "$[1]") - self.assertEqual(e2.json_path, "$[2]") - - self.assertEqual(e1.validator, "type") - self.assertEqual(e2.validator, "minimum") - - def test_propertyNames(self): - instance = {"foo": 12} - schema = {"propertyNames": {"not": {"const": "foo"}}} - - validator = validators.Draft7Validator(schema) - error, = validator.iter_errors(instance) - - self.assertEqual(error.validator, "not") - self.assertEqual( - error.message, - "'foo' should not be valid under {'const': 'foo'}", - ) - self.assertEqual(error.path, deque([])) - self.assertEqual(error.json_path, "$") - self.assertEqual(error.schema_path, deque(["propertyNames", "not"])) - - def test_if_then(self): - schema = { - "if": {"const": 12}, - "then": {"const": 13}, - } - - validator = validators.Draft7Validator(schema) - error, = validator.iter_errors(12) - - self.assertEqual(error.validator, "const") - self.assertEqual(error.message, "13 was expected") - self.assertEqual(error.path, deque([])) - self.assertEqual(error.json_path, "$") - self.assertEqual(error.schema_path, deque(["then", "const"])) - - def test_if_else(self): - schema = { - "if": {"const": 12}, - "else": {"const": 13}, - } - - validator = validators.Draft7Validator(schema) - error, = validator.iter_errors(15) - - self.assertEqual(error.validator, "const") - self.assertEqual(error.message, "13 was expected") - self.assertEqual(error.path, deque([])) - self.assertEqual(error.json_path, "$") - self.assertEqual(error.schema_path, deque(["else", "const"])) - - def test_boolean_schema_False(self): - validator = validators.Draft7Validator(False) - error, = validator.iter_errors(12) - - self.assertEqual( - ( - error.message, - error.validator, - error.validator_value, - error.instance, - error.schema, - error.schema_path, - error.json_path, - ), - ( - "False schema does not allow 12", - None, - None, - 12, - False, - deque([]), - "$", - ), - ) - - def test_ref(self): - ref, schema = "someRef", {"additionalProperties": {"type": "integer"}} - validator = validators.Draft7Validator( - {"$ref": ref}, - resolver=validators._RefResolver("", {}, store={ref: schema}), - ) - error, = validator.iter_errors({"foo": "notAnInteger"}) - - self.assertEqual( - ( - error.message, - error.validator, - error.validator_value, - error.instance, - error.absolute_path, - error.schema, - error.schema_path, - error.json_path, - ), - ( - "'notAnInteger' is not of type 'integer'", - "type", - "integer", - "notAnInteger", - deque(["foo"]), - {"type": "integer"}, - deque(["additionalProperties", "type"]), - "$.foo", - ), - ) - - def test_prefixItems(self): - schema = {"prefixItems": [{"type": "string"}, {}, {}, {"maximum": 3}]} - validator = validators.Draft202012Validator(schema) - type_error, min_error = validator.iter_errors([1, 2, "foo", 5]) - self.assertEqual( - ( - type_error.message, - type_error.validator, - type_error.validator_value, - type_error.instance, - type_error.absolute_path, - type_error.schema, - type_error.schema_path, - type_error.json_path, - ), - ( - "1 is not of type 'string'", - "type", - "string", - 1, - deque([0]), - {"type": "string"}, - deque(["prefixItems", 0, "type"]), - "$[0]", - ), - ) - self.assertEqual( - ( - min_error.message, - min_error.validator, - min_error.validator_value, - min_error.instance, - min_error.absolute_path, - min_error.schema, - min_error.schema_path, - min_error.json_path, - ), - ( - "5 is greater than the maximum of 3", - "maximum", - 3, - 5, - deque([3]), - {"maximum": 3}, - deque(["prefixItems", 3, "maximum"]), - "$[3]", - ), - ) - - def test_prefixItems_with_items(self): - schema = { - "items": {"type": "string"}, - "prefixItems": [{}], - } - validator = validators.Draft202012Validator(schema) - e1, e2 = validator.iter_errors(["foo", 2, "bar", 4, "baz"]) - self.assertEqual( - ( - e1.message, - e1.validator, - e1.validator_value, - e1.instance, - e1.absolute_path, - e1.schema, - e1.schema_path, - e1.json_path, - ), - ( - "2 is not of type 'string'", - "type", - "string", - 2, - deque([1]), - {"type": "string"}, - deque(["items", "type"]), - "$[1]", - ), - ) - self.assertEqual( - ( - e2.message, - e2.validator, - e2.validator_value, - e2.instance, - e2.absolute_path, - e2.schema, - e2.schema_path, - e2.json_path, - ), - ( - "4 is not of type 'string'", - "type", - "string", - 4, - deque([3]), - {"type": "string"}, - deque(["items", "type"]), - "$[3]", - ), - ) - - def test_contains_too_many(self): - """ - `contains` + `maxContains` produces only one error, even if there are - many more incorrectly matching elements. - """ - schema = {"contains": {"type": "string"}, "maxContains": 2} - validator = validators.Draft202012Validator(schema) - error, = validator.iter_errors(["foo", 2, "bar", 4, "baz", "quux"]) - self.assertEqual( - ( - error.message, - error.validator, - error.validator_value, - error.instance, - error.absolute_path, - error.schema, - error.schema_path, - error.json_path, - ), - ( - "Too many items match the given schema (expected at most 2)", - "maxContains", - 2, - ["foo", 2, "bar", 4, "baz", "quux"], - deque([]), - {"contains": {"type": "string"}, "maxContains": 2}, - deque(["contains"]), - "$", - ), - ) - - def test_contains_too_few(self): - schema = {"contains": {"type": "string"}, "minContains": 2} - validator = validators.Draft202012Validator(schema) - error, = validator.iter_errors(["foo", 2, 4]) - self.assertEqual( - ( - error.message, - error.validator, - error.validator_value, - error.instance, - error.absolute_path, - error.schema, - error.schema_path, - error.json_path, - ), - ( - ( - "Too few items match the given schema " - "(expected at least 2 but only 1 matched)" - ), - "minContains", - 2, - ["foo", 2, 4], - deque([]), - {"contains": {"type": "string"}, "minContains": 2}, - deque(["contains"]), - "$", - ), - ) - - def test_contains_none(self): - schema = {"contains": {"type": "string"}, "minContains": 2} - validator = validators.Draft202012Validator(schema) - error, = validator.iter_errors([2, 4]) - self.assertEqual( - ( - error.message, - error.validator, - error.validator_value, - error.instance, - error.absolute_path, - error.schema, - error.schema_path, - error.json_path, - ), - ( - "[2, 4] does not contain items matching the given schema", - "contains", - {"type": "string"}, - [2, 4], - deque([]), - {"contains": {"type": "string"}, "minContains": 2}, - deque(["contains"]), - "$", - ), - ) - - def test_ref_sibling(self): - schema = { - "$defs": {"foo": {"required": ["bar"]}}, - "properties": { - "aprop": { - "$ref": "#/$defs/foo", - "required": ["baz"], - }, - }, - } - - validator = validators.Draft202012Validator(schema) - e1, e2 = validator.iter_errors({"aprop": {}}) - self.assertEqual( - ( - e1.message, - e1.validator, - e1.validator_value, - e1.instance, - e1.absolute_path, - e1.schema, - e1.schema_path, - e1.relative_schema_path, - e1.json_path, - ), - ( - "'bar' is a required property", - "required", - ["bar"], - {}, - deque(["aprop"]), - {"required": ["bar"]}, - deque(["properties", "aprop", "required"]), - deque(["properties", "aprop", "required"]), - "$.aprop", - ), - ) - self.assertEqual( - ( - e2.message, - e2.validator, - e2.validator_value, - e2.instance, - e2.absolute_path, - e2.schema, - e2.schema_path, - e2.relative_schema_path, - e2.json_path, - ), - ( - "'baz' is a required property", - "required", - ["baz"], - {}, - deque(["aprop"]), - {"$ref": "#/$defs/foo", "required": ["baz"]}, - deque(["properties", "aprop", "required"]), - deque(["properties", "aprop", "required"]), - "$.aprop", - ), - ) - - -class MetaSchemaTestsMixin: - # TODO: These all belong upstream - def test_invalid_properties(self): - with self.assertRaises(exceptions.SchemaError): - self.Validator.check_schema({"properties": 12}) - - def test_minItems_invalid_string(self): - with self.assertRaises(exceptions.SchemaError): - # needs to be an integer - self.Validator.check_schema({"minItems": "1"}) - - def test_enum_allows_empty_arrays(self): - """ - Technically, all the spec says is they SHOULD have elements, not MUST. - - (As of Draft 6. Previous drafts do say MUST). - - See #529. - """ - if self.Validator in { - validators.Draft3Validator, - validators.Draft4Validator, - }: - with self.assertRaises(exceptions.SchemaError): - self.Validator.check_schema({"enum": []}) - else: - self.Validator.check_schema({"enum": []}) - - def test_enum_allows_non_unique_items(self): - """ - Technically, all the spec says is they SHOULD be unique, not MUST. - - (As of Draft 6. Previous drafts do say MUST). - - See #529. - """ - if self.Validator in { - validators.Draft3Validator, - validators.Draft4Validator, - }: - with self.assertRaises(exceptions.SchemaError): - self.Validator.check_schema({"enum": [12, 12]}) - else: - self.Validator.check_schema({"enum": [12, 12]}) - - def test_schema_with_invalid_regex(self): - with self.assertRaises(exceptions.SchemaError): - self.Validator.check_schema({"pattern": "*notaregex"}) - - def test_schema_with_invalid_regex_with_disabled_format_validation(self): - self.Validator.check_schema( - {"pattern": "*notaregex"}, - format_checker=None, - ) - - -class ValidatorTestMixin(MetaSchemaTestsMixin): - def test_it_implements_the_validator_protocol(self): - self.assertIsInstance(self.Validator({}), protocols.Validator) - - def test_valid_instances_are_valid(self): - schema, instance = self.valid - self.assertTrue(self.Validator(schema).is_valid(instance)) - - def test_invalid_instances_are_not_valid(self): - schema, instance = self.invalid - self.assertFalse(self.Validator(schema).is_valid(instance)) - - def test_non_existent_properties_are_ignored(self): - self.Validator({object(): object()}).validate(instance=object()) - - def test_evolve(self): - schema, format_checker = {"type": "integer"}, FormatChecker() - original = self.Validator( - schema, - format_checker=format_checker, - ) - new = original.evolve( - schema={"type": "string"}, - format_checker=self.Validator.FORMAT_CHECKER, - ) - - expected = self.Validator( - {"type": "string"}, - format_checker=self.Validator.FORMAT_CHECKER, - _resolver=new._resolver, - ) - - self.assertEqual(new, expected) - self.assertNotEqual(new, original) - - def test_evolve_with_subclass(self): - """ - Subclassing validators isn't supported public API, but some users have - done it, because we don't actually error entirely when it's done :/ - - We need to deprecate doing so first to help as many of these users - ensure they can move to supported APIs, but this test ensures that in - the interim, we haven't broken those users. - """ - - with self.assertWarns(DeprecationWarning): - @define - class OhNo(self.Validator): - foo = field(factory=lambda: [1, 2, 3]) - _bar = field(default=37) - - validator = OhNo({}, bar=12) - self.assertEqual(validator.foo, [1, 2, 3]) - - new = validator.evolve(schema={"type": "integer"}) - self.assertEqual(new.foo, [1, 2, 3]) - self.assertEqual(new._bar, 12) - - def test_is_type_is_true_for_valid_type(self): - self.assertTrue(self.Validator({}).is_type("foo", "string")) - - def test_is_type_is_false_for_invalid_type(self): - self.assertFalse(self.Validator({}).is_type("foo", "array")) - - def test_is_type_evades_bool_inheriting_from_int(self): - self.assertFalse(self.Validator({}).is_type(True, "integer")) - self.assertFalse(self.Validator({}).is_type(True, "number")) - - def test_it_can_validate_with_decimals(self): - schema = {"items": {"type": "number"}} - Validator = validators.extend( - self.Validator, - type_checker=self.Validator.TYPE_CHECKER.redefine( - "number", - lambda checker, thing: isinstance( - thing, (int, float, Decimal), - ) and not isinstance(thing, bool), - ), - ) - - validator = Validator(schema) - validator.validate([1, 1.1, Decimal(1) / Decimal(8)]) - - invalid = ["foo", {}, [], True, None] - self.assertEqual( - [error.instance for error in validator.iter_errors(invalid)], - invalid, - ) - - def test_it_returns_true_for_formats_it_does_not_know_about(self): - validator = self.Validator( - {"format": "carrot"}, format_checker=FormatChecker(), - ) - validator.validate("bugs") - - def test_it_does_not_validate_formats_by_default(self): - validator = self.Validator({}) - self.assertIsNone(validator.format_checker) - - def test_it_validates_formats_if_a_checker_is_provided(self): - checker = FormatChecker() - bad = ValueError("Bad!") - - @checker.checks("foo", raises=ValueError) - def check(value): - if value == "good": - return True - elif value == "bad": - raise bad - else: # pragma: no cover - self.fail(f"What is {value}? [Baby Don't Hurt Me]") - - validator = self.Validator( - {"format": "foo"}, format_checker=checker, - ) - - validator.validate("good") - with self.assertRaises(exceptions.ValidationError) as cm: - validator.validate("bad") - - # Make sure original cause is attached - self.assertIs(cm.exception.cause, bad) - - def test_non_string_custom_type(self): - non_string_type = object() - schema = {"type": [non_string_type]} - Crazy = validators.extend( - self.Validator, - type_checker=self.Validator.TYPE_CHECKER.redefine( - non_string_type, - lambda checker, thing: isinstance(thing, int), - ), - ) - Crazy(schema).validate(15) - - def test_it_properly_formats_tuples_in_errors(self): - """ - A tuple instance properly formats validation errors for uniqueItems. - - See #224 - """ - TupleValidator = validators.extend( - self.Validator, - type_checker=self.Validator.TYPE_CHECKER.redefine( - "array", - lambda checker, thing: isinstance(thing, tuple), - ), - ) - with self.assertRaises(exceptions.ValidationError) as e: - TupleValidator({"uniqueItems": True}).validate((1, 1)) - self.assertIn("(1, 1) has non-unique elements", str(e.exception)) - - def test_check_redefined_sequence(self): - """ - Allow array to validate against another defined sequence type - """ - schema = {"type": "array", "uniqueItems": True} - MyMapping = namedtuple("MyMapping", "a, b") - Validator = validators.extend( - self.Validator, - type_checker=self.Validator.TYPE_CHECKER.redefine_many( - { - "array": lambda checker, thing: isinstance( - thing, (list, deque), - ), - "object": lambda checker, thing: isinstance( - thing, (dict, MyMapping), - ), - }, - ), - ) - validator = Validator(schema) - - valid_instances = [ - deque(["a", None, "1", "", True]), - deque([[False], [0]]), - [deque([False]), deque([0])], - [[deque([False])], [deque([0])]], - [[[[[deque([False])]]]], [[[[deque([0])]]]]], - [deque([deque([False])]), deque([deque([0])])], - [MyMapping("a", 0), MyMapping("a", False)], - [ - MyMapping("a", [deque([0])]), - MyMapping("a", [deque([False])]), - ], - [ - MyMapping("a", [MyMapping("a", deque([0]))]), - MyMapping("a", [MyMapping("a", deque([False]))]), - ], - [deque(deque(deque([False]))), deque(deque(deque([0])))], - ] - - for instance in valid_instances: - validator.validate(instance) - - invalid_instances = [ - deque(["a", "b", "a"]), - deque([[False], [False]]), - [deque([False]), deque([False])], - [[deque([False])], [deque([False])]], - [[[[[deque([False])]]]], [[[[deque([False])]]]]], - [deque([deque([False])]), deque([deque([False])])], - [MyMapping("a", False), MyMapping("a", False)], - [ - MyMapping("a", [deque([False])]), - MyMapping("a", [deque([False])]), - ], - [ - MyMapping("a", [MyMapping("a", deque([False]))]), - MyMapping("a", [MyMapping("a", deque([False]))]), - ], - [deque(deque(deque([False]))), deque(deque(deque([False])))], - ] - - for instance in invalid_instances: - with self.assertRaises(exceptions.ValidationError): - validator.validate(instance) - - def test_it_creates_a_ref_resolver_if_not_provided(self): - with self.assertWarns(DeprecationWarning): - resolver = self.Validator({}).resolver - self.assertIsInstance(resolver, validators._RefResolver) - - def test_it_upconverts_from_deprecated_RefResolvers(self): - ref, schema = "someCoolRef", {"type": "integer"} - resolver = validators._RefResolver("", {}, store={ref: schema}) - validator = self.Validator({"$ref": ref}, resolver=resolver) - - with self.assertRaises(exceptions.ValidationError): - validator.validate(None) - - def test_it_upconverts_from_yet_older_deprecated_legacy_RefResolvers(self): - """ - Legacy RefResolvers support only the context manager form of - resolution. - """ - - class LegacyRefResolver: - @contextmanager - def resolving(this, ref): - self.assertEqual(ref, "the ref") - yield {"type": "integer"} - - resolver = LegacyRefResolver() - schema = {"$ref": "the ref"} - - with self.assertRaises(exceptions.ValidationError): - self.Validator(schema, resolver=resolver).validate(None) - - -class AntiDraft6LeakMixin: - """ - Make sure functionality from draft 6 doesn't leak backwards in time. - """ - - def test_True_is_not_a_schema(self): - with self.assertRaises(exceptions.SchemaError) as e: - self.Validator.check_schema(True) - self.assertIn("True is not of type", str(e.exception)) - - def test_False_is_not_a_schema(self): - with self.assertRaises(exceptions.SchemaError) as e: - self.Validator.check_schema(False) - self.assertIn("False is not of type", str(e.exception)) - - def test_True_is_not_a_schema_even_if_you_forget_to_check(self): - with self.assertRaises(Exception) as e: - self.Validator(True).validate(12) - self.assertNotIsInstance(e.exception, exceptions.ValidationError) - - def test_False_is_not_a_schema_even_if_you_forget_to_check(self): - with self.assertRaises(Exception) as e: - self.Validator(False).validate(12) - self.assertNotIsInstance(e.exception, exceptions.ValidationError) - - -class TestDraft3Validator(AntiDraft6LeakMixin, ValidatorTestMixin, TestCase): - Validator = validators.Draft3Validator - valid: tuple[dict, dict] = ({}, {}) - invalid = {"type": "integer"}, "foo" - - def test_any_type_is_valid_for_type_any(self): - validator = self.Validator({"type": "any"}) - validator.validate(object()) - - def test_any_type_is_redefinable(self): - """ - Sigh, because why not. - """ - Crazy = validators.extend( - self.Validator, - type_checker=self.Validator.TYPE_CHECKER.redefine( - "any", lambda checker, thing: isinstance(thing, int), - ), - ) - validator = Crazy({"type": "any"}) - validator.validate(12) - with self.assertRaises(exceptions.ValidationError): - validator.validate("foo") - - def test_is_type_is_true_for_any_type(self): - self.assertTrue(self.Validator({"type": "any"}).is_valid(object())) - - def test_is_type_does_not_evade_bool_if_it_is_being_tested(self): - self.assertTrue(self.Validator({}).is_type(True, "boolean")) - self.assertTrue(self.Validator({"type": "any"}).is_valid(True)) - - -class TestDraft4Validator(AntiDraft6LeakMixin, ValidatorTestMixin, TestCase): - Validator = validators.Draft4Validator - valid: tuple[dict, dict] = ({}, {}) - invalid = {"type": "integer"}, "foo" - - -class TestDraft6Validator(ValidatorTestMixin, TestCase): - Validator = validators.Draft6Validator - valid: tuple[dict, dict] = ({}, {}) - invalid = {"type": "integer"}, "foo" - - -class TestDraft7Validator(ValidatorTestMixin, TestCase): - Validator = validators.Draft7Validator - valid: tuple[dict, dict] = ({}, {}) - invalid = {"type": "integer"}, "foo" - - -class TestDraft201909Validator(ValidatorTestMixin, TestCase): - Validator = validators.Draft201909Validator - valid: tuple[dict, dict] = ({}, {}) - invalid = {"type": "integer"}, "foo" - - -class TestDraft202012Validator(ValidatorTestMixin, TestCase): - Validator = validators.Draft202012Validator - valid: tuple[dict, dict] = ({}, {}) - invalid = {"type": "integer"}, "foo" - - -class TestLatestValidator(TestCase): - """ - These really apply to multiple versions but are easiest to test on one. - """ - - def test_ref_resolvers_may_have_boolean_schemas_stored(self): - ref = "someCoolRef" - schema = {"$ref": ref} - resolver = validators._RefResolver("", {}, store={ref: False}) - validator = validators._LATEST_VERSION(schema, resolver=resolver) - - with self.assertRaises(exceptions.ValidationError): - validator.validate(None) - - -class TestValidatorFor(TestCase): - def test_draft_3(self): - schema = {"$schema": "http://json-schema.org/draft-03/schema"} - self.assertIs( - validators.validator_for(schema), - validators.Draft3Validator, - ) - - schema = {"$schema": "http://json-schema.org/draft-03/schema#"} - self.assertIs( - validators.validator_for(schema), - validators.Draft3Validator, - ) - - def test_draft_4(self): - schema = {"$schema": "http://json-schema.org/draft-04/schema"} - self.assertIs( - validators.validator_for(schema), - validators.Draft4Validator, - ) - - schema = {"$schema": "http://json-schema.org/draft-04/schema#"} - self.assertIs( - validators.validator_for(schema), - validators.Draft4Validator, - ) - - def test_draft_6(self): - schema = {"$schema": "http://json-schema.org/draft-06/schema"} - self.assertIs( - validators.validator_for(schema), - validators.Draft6Validator, - ) - - schema = {"$schema": "http://json-schema.org/draft-06/schema#"} - self.assertIs( - validators.validator_for(schema), - validators.Draft6Validator, - ) - - def test_draft_7(self): - schema = {"$schema": "http://json-schema.org/draft-07/schema"} - self.assertIs( - validators.validator_for(schema), - validators.Draft7Validator, - ) - - schema = {"$schema": "http://json-schema.org/draft-07/schema#"} - self.assertIs( - validators.validator_for(schema), - validators.Draft7Validator, - ) - - def test_draft_201909(self): - schema = {"$schema": "https://json-schema.org/draft/2019-09/schema"} - self.assertIs( - validators.validator_for(schema), - validators.Draft201909Validator, - ) - - schema = {"$schema": "https://json-schema.org/draft/2019-09/schema#"} - self.assertIs( - validators.validator_for(schema), - validators.Draft201909Validator, - ) - - def test_draft_202012(self): - schema = {"$schema": "https://json-schema.org/draft/2020-12/schema"} - self.assertIs( - validators.validator_for(schema), - validators.Draft202012Validator, - ) - - schema = {"$schema": "https://json-schema.org/draft/2020-12/schema#"} - self.assertIs( - validators.validator_for(schema), - validators.Draft202012Validator, - ) - - def test_True(self): - self.assertIs( - validators.validator_for(True), - validators._LATEST_VERSION, - ) - - def test_False(self): - self.assertIs( - validators.validator_for(False), - validators._LATEST_VERSION, - ) - - def test_custom_validator(self): - Validator = validators.create( - meta_schema={"id": "meta schema id"}, - version="12", - id_of=lambda s: s.get("id", ""), - ) - schema = {"$schema": "meta schema id"} - self.assertIs( - validators.validator_for(schema), - Validator, - ) - - def test_custom_validator_draft6(self): - Validator = validators.create( - meta_schema={"$id": "meta schema $id"}, - version="13", - ) - schema = {"$schema": "meta schema $id"} - self.assertIs( - validators.validator_for(schema), - Validator, - ) - - def test_validator_for_jsonschema_default(self): - self.assertIs(validators.validator_for({}), validators._LATEST_VERSION) - - def test_validator_for_custom_default(self): - self.assertIs(validators.validator_for({}, default=None), None) - - def test_warns_if_meta_schema_specified_was_not_found(self): - with self.assertWarns(DeprecationWarning) as cm: - validators.validator_for(schema={"$schema": "unknownSchema"}) - - self.assertEqual(cm.filename, __file__) - self.assertEqual( - str(cm.warning), - "The metaschema specified by $schema was not found. " - "Using the latest draft to validate, but this will raise " - "an error in the future.", - ) - - def test_does_not_warn_if_meta_schema_is_unspecified(self): - with warnings.catch_warnings(record=True) as w: - warnings.simplefilter("always") - validators.validator_for(schema={}, default={}) - self.assertFalse(w) - - def test_validator_for_custom_default_with_schema(self): - schema, default = {"$schema": "mailto:foo@example.com"}, object() - self.assertIs(validators.validator_for(schema, default), default) - - -class TestValidate(TestCase): - def assertUses(self, schema, Validator): - result = [] - with mock.patch.object(Validator, "check_schema", result.append): - validators.validate({}, schema) - self.assertEqual(result, [schema]) - - def test_draft3_validator_is_chosen(self): - self.assertUses( - schema={"$schema": "http://json-schema.org/draft-03/schema#"}, - Validator=validators.Draft3Validator, - ) - # Make sure it works without the empty fragment - self.assertUses( - schema={"$schema": "http://json-schema.org/draft-03/schema"}, - Validator=validators.Draft3Validator, - ) - - def test_draft4_validator_is_chosen(self): - self.assertUses( - schema={"$schema": "http://json-schema.org/draft-04/schema#"}, - Validator=validators.Draft4Validator, - ) - # Make sure it works without the empty fragment - self.assertUses( - schema={"$schema": "http://json-schema.org/draft-04/schema"}, - Validator=validators.Draft4Validator, - ) - - def test_draft6_validator_is_chosen(self): - self.assertUses( - schema={"$schema": "http://json-schema.org/draft-06/schema#"}, - Validator=validators.Draft6Validator, - ) - # Make sure it works without the empty fragment - self.assertUses( - schema={"$schema": "http://json-schema.org/draft-06/schema"}, - Validator=validators.Draft6Validator, - ) - - def test_draft7_validator_is_chosen(self): - self.assertUses( - schema={"$schema": "http://json-schema.org/draft-07/schema#"}, - Validator=validators.Draft7Validator, - ) - # Make sure it works without the empty fragment - self.assertUses( - schema={"$schema": "http://json-schema.org/draft-07/schema"}, - Validator=validators.Draft7Validator, - ) - - def test_draft202012_validator_is_chosen(self): - self.assertUses( - schema={ - "$schema": "https://json-schema.org/draft/2020-12/schema#", - }, - Validator=validators.Draft202012Validator, - ) - # Make sure it works without the empty fragment - self.assertUses( - schema={ - "$schema": "https://json-schema.org/draft/2020-12/schema", - }, - Validator=validators.Draft202012Validator, - ) - - def test_draft202012_validator_is_the_default(self): - self.assertUses(schema={}, Validator=validators.Draft202012Validator) - - def test_validation_error_message(self): - with self.assertRaises(exceptions.ValidationError) as e: - validators.validate(12, {"type": "string"}) - self.assertRegex( - str(e.exception), - "(?s)Failed validating '.*' in schema.*On instance", - ) - - def test_schema_error_message(self): - with self.assertRaises(exceptions.SchemaError) as e: - validators.validate(12, {"type": 12}) - self.assertRegex( - str(e.exception), - "(?s)Failed validating '.*' in metaschema.*On schema", - ) - - def test_it_uses_best_match(self): - schema = { - "oneOf": [ - {"type": "number", "minimum": 20}, - {"type": "array"}, - ], - } - with self.assertRaises(exceptions.ValidationError) as e: - validators.validate(12, schema) - self.assertIn("12 is less than the minimum of 20", str(e.exception)) - - -class TestThreading(TestCase): - """ - Threading-related functionality tests. - - jsonschema doesn't promise thread safety, and its validation behavior - across multiple threads may change at any time, but that means it isn't - safe to share *validators* across threads, not that anytime one has - multiple threads that jsonschema won't work (it certainly is intended to). - - These tests ensure that this minimal level of functionality continues to - work. - """ - - def test_validation_across_a_second_thread(self): - failed = [] - - def validate(): - try: - validators.validate(instance=37, schema=True) - except: # pragma: no cover # noqa: E722 - failed.append(sys.exc_info()) - - validate() # just verify it succeeds - - from threading import Thread - thread = Thread(target=validate) - thread.start() - thread.join() - self.assertEqual((thread.is_alive(), failed), (False, [])) - - -class TestReferencing(TestCase): - def test_registry_with_retrieve(self): - def retrieve(uri): - return DRAFT202012.create_resource({"type": "integer"}) - - registry = referencing.Registry(retrieve=retrieve) - schema = {"$ref": "https://example.com/"} - validator = validators.Draft202012Validator(schema, registry=registry) - - self.assertEqual( - (validator.is_valid(12), validator.is_valid("foo")), - (True, False), - ) - - def test_custom_registries_do_not_autoretrieve_remote_resources(self): - registry = referencing.Registry() - schema = {"$ref": "https://example.com/"} - validator = validators.Draft202012Validator(schema, registry=registry) - - with warnings.catch_warnings(record=True) as w: - warnings.simplefilter("always") - with self.assertRaises(referencing.exceptions.Unresolvable): - validator.validate(12) - self.assertFalse(w) - - -class TestRefResolver(TestCase): - - base_uri = "" - stored_uri = "foo://stored" - stored_schema = {"stored": "schema"} - - def setUp(self): - self.referrer = {} - self.store = {self.stored_uri: self.stored_schema} - self.resolver = validators._RefResolver( - self.base_uri, self.referrer, self.store, - ) - - def test_it_does_not_retrieve_schema_urls_from_the_network(self): - ref = validators.Draft3Validator.META_SCHEMA["id"] - with mock.patch.object(self.resolver, "resolve_remote") as patched: # noqa: SIM117 - with self.resolver.resolving(ref) as resolved: - pass - self.assertEqual(resolved, validators.Draft3Validator.META_SCHEMA) - self.assertFalse(patched.called) - - def test_it_resolves_local_refs(self): - ref = "#/properties/foo" - self.referrer["properties"] = {"foo": object()} - with self.resolver.resolving(ref) as resolved: - self.assertEqual(resolved, self.referrer["properties"]["foo"]) - - def test_it_resolves_local_refs_with_id(self): - schema = {"id": "http://bar/schema#", "a": {"foo": "bar"}} - resolver = validators._RefResolver.from_schema( - schema, - id_of=lambda schema: schema.get("id", ""), - ) - with resolver.resolving("#/a") as resolved: - self.assertEqual(resolved, schema["a"]) - with resolver.resolving("http://bar/schema#/a") as resolved: - self.assertEqual(resolved, schema["a"]) - - def test_it_retrieves_stored_refs(self): - with self.resolver.resolving(self.stored_uri) as resolved: - self.assertIs(resolved, self.stored_schema) - - self.resolver.store["cached_ref"] = {"foo": 12} - with self.resolver.resolving("cached_ref#/foo") as resolved: - self.assertEqual(resolved, 12) - - def test_it_retrieves_unstored_refs_via_requests(self): - ref = "http://bar#baz" - schema = {"baz": 12} - - if "requests" in sys.modules: # pragma: no cover - self.addCleanup( - sys.modules.__setitem__, "requests", sys.modules["requests"], - ) - sys.modules["requests"] = ReallyFakeRequests({"http://bar": schema}) - - with self.resolver.resolving(ref) as resolved: - self.assertEqual(resolved, 12) - - def test_it_retrieves_unstored_refs_via_urlopen(self): - ref = "http://bar#baz" - schema = {"baz": 12} - - if "requests" in sys.modules: # pragma: no cover - self.addCleanup( - sys.modules.__setitem__, "requests", sys.modules["requests"], - ) - sys.modules["requests"] = None - - @contextmanager - def fake_urlopen(url): - self.assertEqual(url, "http://bar") - yield BytesIO(json.dumps(schema).encode("utf8")) - - self.addCleanup(setattr, validators, "urlopen", validators.urlopen) - validators.urlopen = fake_urlopen - - with self.resolver.resolving(ref) as resolved: - pass - self.assertEqual(resolved, 12) - - def test_it_retrieves_local_refs_via_urlopen(self): - with tempfile.NamedTemporaryFile(delete=False, mode="wt") as tempf: - self.addCleanup(os.remove, tempf.name) - json.dump({"foo": "bar"}, tempf) - - ref = f"file://{pathname2url(tempf.name)}#foo" - with self.resolver.resolving(ref) as resolved: - self.assertEqual(resolved, "bar") - - def test_it_can_construct_a_base_uri_from_a_schema(self): - schema = {"id": "foo"} - resolver = validators._RefResolver.from_schema( - schema, - id_of=lambda schema: schema.get("id", ""), - ) - self.assertEqual(resolver.base_uri, "foo") - self.assertEqual(resolver.resolution_scope, "foo") - with resolver.resolving("") as resolved: - self.assertEqual(resolved, schema) - with resolver.resolving("#") as resolved: - self.assertEqual(resolved, schema) - with resolver.resolving("foo") as resolved: - self.assertEqual(resolved, schema) - with resolver.resolving("foo#") as resolved: - self.assertEqual(resolved, schema) - - def test_it_can_construct_a_base_uri_from_a_schema_without_id(self): - schema = {} - resolver = validators._RefResolver.from_schema(schema) - self.assertEqual(resolver.base_uri, "") - self.assertEqual(resolver.resolution_scope, "") - with resolver.resolving("") as resolved: - self.assertEqual(resolved, schema) - with resolver.resolving("#") as resolved: - self.assertEqual(resolved, schema) - - def test_custom_uri_scheme_handlers(self): - def handler(url): - self.assertEqual(url, ref) - return schema - - schema = {"foo": "bar"} - ref = "foo://bar" - resolver = validators._RefResolver("", {}, handlers={"foo": handler}) - with resolver.resolving(ref) as resolved: - self.assertEqual(resolved, schema) - - def test_cache_remote_on(self): - response = [object()] - - def handler(url): - try: - return response.pop() - except IndexError: # pragma: no cover - self.fail("Response must not have been cached!") - - ref = "foo://bar" - resolver = validators._RefResolver( - "", {}, cache_remote=True, handlers={"foo": handler}, - ) - with resolver.resolving(ref): - pass - with resolver.resolving(ref): - pass - - def test_cache_remote_off(self): - response = [object()] - - def handler(url): - try: - return response.pop() - except IndexError: # pragma: no cover - self.fail("Handler called twice!") - - ref = "foo://bar" - resolver = validators._RefResolver( - "", {}, cache_remote=False, handlers={"foo": handler}, - ) - with resolver.resolving(ref): - pass - - def test_if_you_give_it_junk_you_get_a_resolution_error(self): - error = ValueError("Oh no! What's this?") - - def handler(url): - raise error - - ref = "foo://bar" - resolver = validators._RefResolver("", {}, handlers={"foo": handler}) - with self.assertRaises(exceptions._RefResolutionError) as err: # noqa: SIM117 - with resolver.resolving(ref): - self.fail("Shouldn't get this far!") # pragma: no cover - self.assertEqual(err.exception, exceptions._RefResolutionError(error)) - - def test_helpful_error_message_on_failed_pop_scope(self): - resolver = validators._RefResolver("", {}) - resolver.pop_scope() - with self.assertRaises(exceptions._RefResolutionError) as exc: - resolver.pop_scope() - self.assertIn("Failed to pop the scope", str(exc.exception)) - - def test_pointer_within_schema_with_different_id(self): - """ - See #1085. - """ - schema = validators.Draft7Validator.META_SCHEMA - one = validators._RefResolver("", schema) - validator = validators.Draft7Validator(schema, resolver=one) - self.assertFalse(validator.is_valid({"maxLength": "foo"})) - - another = { - "allOf": [{"$ref": validators.Draft7Validator.META_SCHEMA["$id"]}], - } - two = validators._RefResolver("", another) - validator = validators.Draft7Validator(another, resolver=two) - self.assertFalse(validator.is_valid({"maxLength": "foo"})) - - def test_newly_created_validator_with_ref_resolver(self): - """ - See https://github.com/python-jsonschema/jsonschema/issues/1061#issuecomment-1624266555. - """ - - def handle(uri): - self.assertEqual(uri, "http://example.com/foo") - return {"type": "integer"} - - resolver = validators._RefResolver("", {}, handlers={"http": handle}) - Validator = validators.create( - meta_schema={}, - validators=validators.Draft4Validator.VALIDATORS, - ) - schema = {"$id": "http://example.com/bar", "$ref": "foo"} - validator = Validator(schema, resolver=resolver) - self.assertEqual( - (validator.is_valid({}), validator.is_valid(37)), - (False, True), - ) - - def test_refresolver_with_pointer_in_schema_with_no_id(self): - """ - See https://github.com/python-jsonschema/jsonschema/issues/1124#issuecomment-1632574249. - """ - - schema = { - "properties": {"x": {"$ref": "#/definitions/x"}}, - "definitions": {"x": {"type": "integer"}}, - } - - validator = validators.Draft202012Validator( - schema, - resolver=validators._RefResolver("", schema), - ) - self.assertEqual( - (validator.is_valid({"x": "y"}), validator.is_valid({"x": 37})), - (False, True), - ) - - - -def sorted_errors(errors): - def key(error): - return ( - [str(e) for e in error.path], - [str(e) for e in error.schema_path], - ) - return sorted(errors, key=key) - - -@define -class ReallyFakeRequests: - - _responses: dict[str, Any] - - def get(self, url): - response = self._responses.get(url) - if url is None: # pragma: no cover - raise ValueError("Unknown URL: " + repr(url)) - return _ReallyFakeJSONResponse(json.dumps(response)) - - -@define -class _ReallyFakeJSONResponse: - - _response: str - - def json(self): - return json.loads(self._response) diff --git a/agent/vendor/jsonschema-4.23.0/jsonschema/validators.py b/agent/vendor/jsonschema-4.23.0/jsonschema/validators.py deleted file mode 100644 index 85c39160d..000000000 --- a/agent/vendor/jsonschema-4.23.0/jsonschema/validators.py +++ /dev/null @@ -1,1410 +0,0 @@ -""" -Creation and extension of validators, with implementations for existing drafts. -""" -from __future__ import annotations - -from collections import deque -from collections.abc import Iterable, Mapping, Sequence -from functools import lru_cache -from operator import methodcaller -from typing import TYPE_CHECKING -from urllib.parse import unquote, urldefrag, urljoin, urlsplit -from urllib.request import urlopen -from warnings import warn -import contextlib -import json -import reprlib -import warnings - -from attrs import define, field, fields -from jsonschema_specifications import REGISTRY as SPECIFICATIONS -from rpds import HashTrieMap -import referencing.exceptions -import referencing.jsonschema - -from jsonschema import ( - _format, - _keywords, - _legacy_keywords, - _types, - _typing, - _utils, - exceptions, -) - -if TYPE_CHECKING: - from jsonschema.protocols import Validator - -_UNSET = _utils.Unset() - -_VALIDATORS: dict[str, Validator] = {} -_META_SCHEMAS = _utils.URIDict() - - -def __getattr__(name): - if name == "ErrorTree": - warnings.warn( - "Importing ErrorTree from jsonschema.validators is deprecated. " - "Instead import it from jsonschema.exceptions.", - DeprecationWarning, - stacklevel=2, - ) - from jsonschema.exceptions import ErrorTree - return ErrorTree - elif name == "validators": - warnings.warn( - "Accessing jsonschema.validators.validators is deprecated. " - "Use jsonschema.validators.validator_for with a given schema.", - DeprecationWarning, - stacklevel=2, - ) - return _VALIDATORS - elif name == "meta_schemas": - warnings.warn( - "Accessing jsonschema.validators.meta_schemas is deprecated. " - "Use jsonschema.validators.validator_for with a given schema.", - DeprecationWarning, - stacklevel=2, - ) - return _META_SCHEMAS - elif name == "RefResolver": - warnings.warn( - _RefResolver._DEPRECATION_MESSAGE, - DeprecationWarning, - stacklevel=2, - ) - return _RefResolver - raise AttributeError(f"module {__name__} has no attribute {name}") - - -def validates(version): - """ - Register the decorated validator for a ``version`` of the specification. - - Registered validators and their meta schemas will be considered when - parsing :kw:`$schema` keywords' URIs. - - Arguments: - - version (str): - - An identifier to use as the version's name - - Returns: - - collections.abc.Callable: - - a class decorator to decorate the validator with the version - - """ - - def _validates(cls): - _VALIDATORS[version] = cls - meta_schema_id = cls.ID_OF(cls.META_SCHEMA) - _META_SCHEMAS[meta_schema_id] = cls - return cls - return _validates - - -def _warn_for_remote_retrieve(uri: str): - from urllib.request import Request, urlopen - headers = {"User-Agent": "python-jsonschema (deprecated $ref resolution)"} - request = Request(uri, headers=headers) # noqa: S310 - with urlopen(request) as response: # noqa: S310 - warnings.warn( - "Automatically retrieving remote references can be a security " - "vulnerability and is discouraged by the JSON Schema " - "specifications. Relying on this behavior is deprecated " - "and will shortly become an error. If you are sure you want to " - "remotely retrieve your reference and that it is safe to do so, " - "you can find instructions for doing so via referencing.Registry " - "in the referencing documentation " - "(https://referencing.readthedocs.org).", - DeprecationWarning, - stacklevel=9, # Ha ha ha ha magic numbers :/ - ) - return referencing.Resource.from_contents( - json.load(response), - default_specification=referencing.jsonschema.DRAFT202012, - ) - - -_REMOTE_WARNING_REGISTRY = SPECIFICATIONS.combine( - referencing.Registry(retrieve=_warn_for_remote_retrieve), # type: ignore[call-arg] -) - - -def create( - meta_schema: referencing.jsonschema.ObjectSchema, - validators: ( - Mapping[str, _typing.SchemaKeywordValidator] - | Iterable[tuple[str, _typing.SchemaKeywordValidator]] - ) = (), - version: str | None = None, - type_checker: _types.TypeChecker = _types.draft202012_type_checker, - format_checker: _format.FormatChecker = _format.draft202012_format_checker, - id_of: _typing.id_of = referencing.jsonschema.DRAFT202012.id_of, - applicable_validators: _typing.ApplicableValidators = methodcaller( - "items", - ), -): - """ - Create a new validator class. - - Arguments: - - meta_schema: - - the meta schema for the new validator class - - validators: - - a mapping from names to callables, where each callable will - validate the schema property with the given name. - - Each callable should take 4 arguments: - - 1. a validator instance, - 2. the value of the property being validated within the - instance - 3. the instance - 4. the schema - - version: - - an identifier for the version that this validator class will - validate. If provided, the returned validator class will - have its ``__name__`` set to include the version, and also - will have `jsonschema.validators.validates` automatically - called for the given version. - - type_checker: - - a type checker, used when applying the :kw:`type` keyword. - - If unprovided, a `jsonschema.TypeChecker` will be created - with a set of default types typical of JSON Schema drafts. - - format_checker: - - a format checker, used when applying the :kw:`format` keyword. - - If unprovided, a `jsonschema.FormatChecker` will be created - with a set of default formats typical of JSON Schema drafts. - - id_of: - - A function that given a schema, returns its ID. - - applicable_validators: - - A function that, given a schema, returns the list of - applicable schema keywords and associated values - which will be used to validate the instance. - This is mostly used to support pre-draft 7 versions of JSON Schema - which specified behavior around ignoring keywords if they were - siblings of a ``$ref`` keyword. If you're not attempting to - implement similar behavior, you can typically ignore this argument - and leave it at its default. - - Returns: - - a new `jsonschema.protocols.Validator` class - - """ - # preemptively don't shadow the `Validator.format_checker` local - format_checker_arg = format_checker - - specification = referencing.jsonschema.specification_with( - dialect_id=id_of(meta_schema) or "urn:unknown-dialect", - default=referencing.Specification.OPAQUE, - ) - - @define - class Validator: - - VALIDATORS = dict(validators) # noqa: RUF012 - META_SCHEMA = dict(meta_schema) # noqa: RUF012 - TYPE_CHECKER = type_checker - FORMAT_CHECKER = format_checker_arg - ID_OF = staticmethod(id_of) - - _APPLICABLE_VALIDATORS = applicable_validators - _validators = field(init=False, repr=False, eq=False) - - schema: referencing.jsonschema.Schema = field(repr=reprlib.repr) - _ref_resolver = field(default=None, repr=False, alias="resolver") - format_checker: _format.FormatChecker | None = field(default=None) - # TODO: include new meta-schemas added at runtime - _registry: referencing.jsonschema.SchemaRegistry = field( - default=_REMOTE_WARNING_REGISTRY, - kw_only=True, - repr=False, - ) - _resolver = field( - alias="_resolver", - default=None, - kw_only=True, - repr=False, - ) - - def __init_subclass__(cls): - warnings.warn( - ( - "Subclassing validator classes is not intended to " - "be part of their public API. A future version " - "will make doing so an error, as the behavior of " - "subclasses isn't guaranteed to stay the same " - "between releases of jsonschema. Instead, prefer " - "composition of validators, wrapping them in an object " - "owned entirely by the downstream library." - ), - DeprecationWarning, - stacklevel=2, - ) - - def evolve(self, **changes): - cls = self.__class__ - schema = changes.setdefault("schema", self.schema) - NewValidator = validator_for(schema, default=cls) - - for field in fields(cls): # noqa: F402 - if not field.init: - continue - attr_name = field.name - init_name = field.alias - if init_name not in changes: - changes[init_name] = getattr(self, attr_name) - - return NewValidator(**changes) - - cls.evolve = evolve - - def __attrs_post_init__(self): - if self._resolver is None: - registry = self._registry - if registry is not _REMOTE_WARNING_REGISTRY: - registry = SPECIFICATIONS.combine(registry) - resource = specification.create_resource(self.schema) - self._resolver = registry.resolver_with_root(resource) - - if self.schema is True or self.schema is False: - self._validators = [] - else: - self._validators = [ - (self.VALIDATORS[k], k, v) - for k, v in applicable_validators(self.schema) - if k in self.VALIDATORS - ] - - # REMOVEME: Legacy ref resolution state management. - push_scope = getattr(self._ref_resolver, "push_scope", None) - if push_scope is not None: - id = id_of(self.schema) - if id is not None: - push_scope(id) - - @classmethod - def check_schema(cls, schema, format_checker=_UNSET): - Validator = validator_for(cls.META_SCHEMA, default=cls) - if format_checker is _UNSET: - format_checker = Validator.FORMAT_CHECKER - validator = Validator( - schema=cls.META_SCHEMA, - format_checker=format_checker, - ) - for error in validator.iter_errors(schema): - raise exceptions.SchemaError.create_from(error) - - @property - def resolver(self): - warnings.warn( - ( - f"Accessing {self.__class__.__name__}.resolver is " - "deprecated as of v4.18.0, in favor of the " - "https://github.com/python-jsonschema/referencing " - "library, which provides more compliant referencing " - "behavior as well as more flexible APIs for " - "customization." - ), - DeprecationWarning, - stacklevel=2, - ) - if self._ref_resolver is None: - self._ref_resolver = _RefResolver.from_schema( - self.schema, - id_of=id_of, - ) - return self._ref_resolver - - def evolve(self, **changes): - schema = changes.setdefault("schema", self.schema) - NewValidator = validator_for(schema, default=self.__class__) - - for (attr_name, init_name) in evolve_fields: - if init_name not in changes: - changes[init_name] = getattr(self, attr_name) - - return NewValidator(**changes) - - def iter_errors(self, instance, _schema=None): - if _schema is not None: - warnings.warn( - ( - "Passing a schema to Validator.iter_errors " - "is deprecated and will be removed in a future " - "release. Call validator.evolve(schema=new_schema)." - "iter_errors(...) instead." - ), - DeprecationWarning, - stacklevel=2, - ) - validators = [ - (self.VALIDATORS[k], k, v) - for k, v in applicable_validators(_schema) - if k in self.VALIDATORS - ] - else: - _schema, validators = self.schema, self._validators - - if _schema is True: - return - elif _schema is False: - yield exceptions.ValidationError( - f"False schema does not allow {instance!r}", - validator=None, - validator_value=None, - instance=instance, - schema=_schema, - ) - return - - for validator, k, v in validators: - errors = validator(self, v, instance, _schema) or () - for error in errors: - # set details if not already set by the called fn - error._set( - validator=k, - validator_value=v, - instance=instance, - schema=_schema, - type_checker=self.TYPE_CHECKER, - ) - if k not in {"if", "$ref"}: - error.schema_path.appendleft(k) - yield error - - def descend( - self, - instance, - schema, - path=None, - schema_path=None, - resolver=None, - ): - if schema is True: - return - elif schema is False: - yield exceptions.ValidationError( - f"False schema does not allow {instance!r}", - validator=None, - validator_value=None, - instance=instance, - schema=schema, - ) - return - - if self._ref_resolver is not None: - evolved = self.evolve(schema=schema) - else: - if resolver is None: - resolver = self._resolver.in_subresource( - specification.create_resource(schema), - ) - evolved = self.evolve(schema=schema, _resolver=resolver) - - for k, v in applicable_validators(schema): - validator = evolved.VALIDATORS.get(k) - if validator is None: - continue - - errors = validator(evolved, v, instance, schema) or () - for error in errors: - # set details if not already set by the called fn - error._set( - validator=k, - validator_value=v, - instance=instance, - schema=schema, - type_checker=evolved.TYPE_CHECKER, - ) - if k not in {"if", "$ref"}: - error.schema_path.appendleft(k) - if path is not None: - error.path.appendleft(path) - if schema_path is not None: - error.schema_path.appendleft(schema_path) - yield error - - def validate(self, *args, **kwargs): - for error in self.iter_errors(*args, **kwargs): - raise error - - def is_type(self, instance, type): - try: - return self.TYPE_CHECKER.is_type(instance, type) - except exceptions.UndefinedTypeCheck: - exc = exceptions.UnknownType(type, instance, self.schema) - raise exc from None - - def _validate_reference(self, ref, instance): - if self._ref_resolver is None: - try: - resolved = self._resolver.lookup(ref) - except referencing.exceptions.Unresolvable as err: - raise exceptions._WrappedReferencingError(err) from err - - return self.descend( - instance, - resolved.contents, - resolver=resolved.resolver, - ) - else: - resolve = getattr(self._ref_resolver, "resolve", None) - if resolve is None: - with self._ref_resolver.resolving(ref) as resolved: - return self.descend(instance, resolved) - else: - scope, resolved = resolve(ref) - self._ref_resolver.push_scope(scope) - - try: - return list(self.descend(instance, resolved)) - finally: - self._ref_resolver.pop_scope() - - def is_valid(self, instance, _schema=None): - if _schema is not None: - warnings.warn( - ( - "Passing a schema to Validator.is_valid is deprecated " - "and will be removed in a future release. Call " - "validator.evolve(schema=new_schema).is_valid(...) " - "instead." - ), - DeprecationWarning, - stacklevel=2, - ) - self = self.evolve(schema=_schema) - - error = next(self.iter_errors(instance), None) - return error is None - - evolve_fields = [ - (field.name, field.alias) - for field in fields(Validator) - if field.init - ] - - if version is not None: - safe = version.title().replace(" ", "").replace("-", "") - Validator.__name__ = Validator.__qualname__ = f"{safe}Validator" - Validator = validates(version)(Validator) # type: ignore[misc] - - return Validator - - -def extend( - validator, - validators=(), - version=None, - type_checker=None, - format_checker=None, -): - """ - Create a new validator class by extending an existing one. - - Arguments: - - validator (jsonschema.protocols.Validator): - - an existing validator class - - validators (collections.abc.Mapping): - - a mapping of new validator callables to extend with, whose - structure is as in `create`. - - .. note:: - - Any validator callables with the same name as an - existing one will (silently) replace the old validator - callable entirely, effectively overriding any validation - done in the "parent" validator class. - - If you wish to instead extend the behavior of a parent's - validator callable, delegate and call it directly in - the new validator function by retrieving it using - ``OldValidator.VALIDATORS["validation_keyword_name"]``. - - version (str): - - a version for the new validator class - - type_checker (jsonschema.TypeChecker): - - a type checker, used when applying the :kw:`type` keyword. - - If unprovided, the type checker of the extended - `jsonschema.protocols.Validator` will be carried along. - - format_checker (jsonschema.FormatChecker): - - a format checker, used when applying the :kw:`format` keyword. - - If unprovided, the format checker of the extended - `jsonschema.protocols.Validator` will be carried along. - - Returns: - - a new `jsonschema.protocols.Validator` class extending the one - provided - - .. note:: Meta Schemas - - The new validator class will have its parent's meta schema. - - If you wish to change or extend the meta schema in the new - validator class, modify ``META_SCHEMA`` directly on the returned - class. Note that no implicit copying is done, so a copy should - likely be made before modifying it, in order to not affect the - old validator. - - """ - all_validators = dict(validator.VALIDATORS) - all_validators.update(validators) - - if type_checker is None: - type_checker = validator.TYPE_CHECKER - if format_checker is None: - format_checker = validator.FORMAT_CHECKER - return create( - meta_schema=validator.META_SCHEMA, - validators=all_validators, - version=version, - type_checker=type_checker, - format_checker=format_checker, - id_of=validator.ID_OF, - applicable_validators=validator._APPLICABLE_VALIDATORS, - ) - - -Draft3Validator = create( - meta_schema=SPECIFICATIONS.contents( - "http://json-schema.org/draft-03/schema#", - ), - validators={ - "$ref": _keywords.ref, - "additionalItems": _legacy_keywords.additionalItems, - "additionalProperties": _keywords.additionalProperties, - "dependencies": _legacy_keywords.dependencies_draft3, - "disallow": _legacy_keywords.disallow_draft3, - "divisibleBy": _keywords.multipleOf, - "enum": _keywords.enum, - "extends": _legacy_keywords.extends_draft3, - "format": _keywords.format, - "items": _legacy_keywords.items_draft3_draft4, - "maxItems": _keywords.maxItems, - "maxLength": _keywords.maxLength, - "maximum": _legacy_keywords.maximum_draft3_draft4, - "minItems": _keywords.minItems, - "minLength": _keywords.minLength, - "minimum": _legacy_keywords.minimum_draft3_draft4, - "pattern": _keywords.pattern, - "patternProperties": _keywords.patternProperties, - "properties": _legacy_keywords.properties_draft3, - "type": _legacy_keywords.type_draft3, - "uniqueItems": _keywords.uniqueItems, - }, - type_checker=_types.draft3_type_checker, - format_checker=_format.draft3_format_checker, - version="draft3", - id_of=referencing.jsonschema.DRAFT3.id_of, - applicable_validators=_legacy_keywords.ignore_ref_siblings, -) - -Draft4Validator = create( - meta_schema=SPECIFICATIONS.contents( - "http://json-schema.org/draft-04/schema#", - ), - validators={ - "$ref": _keywords.ref, - "additionalItems": _legacy_keywords.additionalItems, - "additionalProperties": _keywords.additionalProperties, - "allOf": _keywords.allOf, - "anyOf": _keywords.anyOf, - "dependencies": _legacy_keywords.dependencies_draft4_draft6_draft7, - "enum": _keywords.enum, - "format": _keywords.format, - "items": _legacy_keywords.items_draft3_draft4, - "maxItems": _keywords.maxItems, - "maxLength": _keywords.maxLength, - "maxProperties": _keywords.maxProperties, - "maximum": _legacy_keywords.maximum_draft3_draft4, - "minItems": _keywords.minItems, - "minLength": _keywords.minLength, - "minProperties": _keywords.minProperties, - "minimum": _legacy_keywords.minimum_draft3_draft4, - "multipleOf": _keywords.multipleOf, - "not": _keywords.not_, - "oneOf": _keywords.oneOf, - "pattern": _keywords.pattern, - "patternProperties": _keywords.patternProperties, - "properties": _keywords.properties, - "required": _keywords.required, - "type": _keywords.type, - "uniqueItems": _keywords.uniqueItems, - }, - type_checker=_types.draft4_type_checker, - format_checker=_format.draft4_format_checker, - version="draft4", - id_of=referencing.jsonschema.DRAFT4.id_of, - applicable_validators=_legacy_keywords.ignore_ref_siblings, -) - -Draft6Validator = create( - meta_schema=SPECIFICATIONS.contents( - "http://json-schema.org/draft-06/schema#", - ), - validators={ - "$ref": _keywords.ref, - "additionalItems": _legacy_keywords.additionalItems, - "additionalProperties": _keywords.additionalProperties, - "allOf": _keywords.allOf, - "anyOf": _keywords.anyOf, - "const": _keywords.const, - "contains": _legacy_keywords.contains_draft6_draft7, - "dependencies": _legacy_keywords.dependencies_draft4_draft6_draft7, - "enum": _keywords.enum, - "exclusiveMaximum": _keywords.exclusiveMaximum, - "exclusiveMinimum": _keywords.exclusiveMinimum, - "format": _keywords.format, - "items": _legacy_keywords.items_draft6_draft7_draft201909, - "maxItems": _keywords.maxItems, - "maxLength": _keywords.maxLength, - "maxProperties": _keywords.maxProperties, - "maximum": _keywords.maximum, - "minItems": _keywords.minItems, - "minLength": _keywords.minLength, - "minProperties": _keywords.minProperties, - "minimum": _keywords.minimum, - "multipleOf": _keywords.multipleOf, - "not": _keywords.not_, - "oneOf": _keywords.oneOf, - "pattern": _keywords.pattern, - "patternProperties": _keywords.patternProperties, - "properties": _keywords.properties, - "propertyNames": _keywords.propertyNames, - "required": _keywords.required, - "type": _keywords.type, - "uniqueItems": _keywords.uniqueItems, - }, - type_checker=_types.draft6_type_checker, - format_checker=_format.draft6_format_checker, - version="draft6", - id_of=referencing.jsonschema.DRAFT6.id_of, - applicable_validators=_legacy_keywords.ignore_ref_siblings, -) - -Draft7Validator = create( - meta_schema=SPECIFICATIONS.contents( - "http://json-schema.org/draft-07/schema#", - ), - validators={ - "$ref": _keywords.ref, - "additionalItems": _legacy_keywords.additionalItems, - "additionalProperties": _keywords.additionalProperties, - "allOf": _keywords.allOf, - "anyOf": _keywords.anyOf, - "const": _keywords.const, - "contains": _legacy_keywords.contains_draft6_draft7, - "dependencies": _legacy_keywords.dependencies_draft4_draft6_draft7, - "enum": _keywords.enum, - "exclusiveMaximum": _keywords.exclusiveMaximum, - "exclusiveMinimum": _keywords.exclusiveMinimum, - "format": _keywords.format, - "if": _keywords.if_, - "items": _legacy_keywords.items_draft6_draft7_draft201909, - "maxItems": _keywords.maxItems, - "maxLength": _keywords.maxLength, - "maxProperties": _keywords.maxProperties, - "maximum": _keywords.maximum, - "minItems": _keywords.minItems, - "minLength": _keywords.minLength, - "minProperties": _keywords.minProperties, - "minimum": _keywords.minimum, - "multipleOf": _keywords.multipleOf, - "not": _keywords.not_, - "oneOf": _keywords.oneOf, - "pattern": _keywords.pattern, - "patternProperties": _keywords.patternProperties, - "properties": _keywords.properties, - "propertyNames": _keywords.propertyNames, - "required": _keywords.required, - "type": _keywords.type, - "uniqueItems": _keywords.uniqueItems, - }, - type_checker=_types.draft7_type_checker, - format_checker=_format.draft7_format_checker, - version="draft7", - id_of=referencing.jsonschema.DRAFT7.id_of, - applicable_validators=_legacy_keywords.ignore_ref_siblings, -) - -Draft201909Validator = create( - meta_schema=SPECIFICATIONS.contents( - "https://json-schema.org/draft/2019-09/schema", - ), - validators={ - "$recursiveRef": _legacy_keywords.recursiveRef, - "$ref": _keywords.ref, - "additionalItems": _legacy_keywords.additionalItems, - "additionalProperties": _keywords.additionalProperties, - "allOf": _keywords.allOf, - "anyOf": _keywords.anyOf, - "const": _keywords.const, - "contains": _keywords.contains, - "dependentRequired": _keywords.dependentRequired, - "dependentSchemas": _keywords.dependentSchemas, - "enum": _keywords.enum, - "exclusiveMaximum": _keywords.exclusiveMaximum, - "exclusiveMinimum": _keywords.exclusiveMinimum, - "format": _keywords.format, - "if": _keywords.if_, - "items": _legacy_keywords.items_draft6_draft7_draft201909, - "maxItems": _keywords.maxItems, - "maxLength": _keywords.maxLength, - "maxProperties": _keywords.maxProperties, - "maximum": _keywords.maximum, - "minItems": _keywords.minItems, - "minLength": _keywords.minLength, - "minProperties": _keywords.minProperties, - "minimum": _keywords.minimum, - "multipleOf": _keywords.multipleOf, - "not": _keywords.not_, - "oneOf": _keywords.oneOf, - "pattern": _keywords.pattern, - "patternProperties": _keywords.patternProperties, - "properties": _keywords.properties, - "propertyNames": _keywords.propertyNames, - "required": _keywords.required, - "type": _keywords.type, - "unevaluatedItems": _legacy_keywords.unevaluatedItems_draft2019, - "unevaluatedProperties": ( - _legacy_keywords.unevaluatedProperties_draft2019 - ), - "uniqueItems": _keywords.uniqueItems, - }, - type_checker=_types.draft201909_type_checker, - format_checker=_format.draft201909_format_checker, - version="draft2019-09", -) - -Draft202012Validator = create( - meta_schema=SPECIFICATIONS.contents( - "https://json-schema.org/draft/2020-12/schema", - ), - validators={ - "$dynamicRef": _keywords.dynamicRef, - "$ref": _keywords.ref, - "additionalProperties": _keywords.additionalProperties, - "allOf": _keywords.allOf, - "anyOf": _keywords.anyOf, - "const": _keywords.const, - "contains": _keywords.contains, - "dependentRequired": _keywords.dependentRequired, - "dependentSchemas": _keywords.dependentSchemas, - "enum": _keywords.enum, - "exclusiveMaximum": _keywords.exclusiveMaximum, - "exclusiveMinimum": _keywords.exclusiveMinimum, - "format": _keywords.format, - "if": _keywords.if_, - "items": _keywords.items, - "maxItems": _keywords.maxItems, - "maxLength": _keywords.maxLength, - "maxProperties": _keywords.maxProperties, - "maximum": _keywords.maximum, - "minItems": _keywords.minItems, - "minLength": _keywords.minLength, - "minProperties": _keywords.minProperties, - "minimum": _keywords.minimum, - "multipleOf": _keywords.multipleOf, - "not": _keywords.not_, - "oneOf": _keywords.oneOf, - "pattern": _keywords.pattern, - "patternProperties": _keywords.patternProperties, - "prefixItems": _keywords.prefixItems, - "properties": _keywords.properties, - "propertyNames": _keywords.propertyNames, - "required": _keywords.required, - "type": _keywords.type, - "unevaluatedItems": _keywords.unevaluatedItems, - "unevaluatedProperties": _keywords.unevaluatedProperties, - "uniqueItems": _keywords.uniqueItems, - }, - type_checker=_types.draft202012_type_checker, - format_checker=_format.draft202012_format_checker, - version="draft2020-12", -) - -_LATEST_VERSION = Draft202012Validator - - -class _RefResolver: - """ - Resolve JSON References. - - Arguments: - - base_uri (str): - - The URI of the referring document - - referrer: - - The actual referring document - - store (dict): - - A mapping from URIs to documents to cache - - cache_remote (bool): - - Whether remote refs should be cached after first resolution - - handlers (dict): - - A mapping from URI schemes to functions that should be used - to retrieve them - - urljoin_cache (:func:`functools.lru_cache`): - - A cache that will be used for caching the results of joining - the resolution scope to subscopes. - - remote_cache (:func:`functools.lru_cache`): - - A cache that will be used for caching the results of - resolved remote URLs. - - Attributes: - - cache_remote (bool): - - Whether remote refs should be cached after first resolution - - .. deprecated:: v4.18.0 - - ``RefResolver`` has been deprecated in favor of `referencing`. - - """ - - _DEPRECATION_MESSAGE = ( - "jsonschema.RefResolver is deprecated as of v4.18.0, in favor of the " - "https://github.com/python-jsonschema/referencing library, which " - "provides more compliant referencing behavior as well as more " - "flexible APIs for customization. A future release will remove " - "RefResolver. Please file a feature request (on referencing) if you " - "are missing an API for the kind of customization you need." - ) - - def __init__( - self, - base_uri, - referrer, - store=HashTrieMap(), - cache_remote=True, - handlers=(), - urljoin_cache=None, - remote_cache=None, - ): - if urljoin_cache is None: - urljoin_cache = lru_cache(1024)(urljoin) - if remote_cache is None: - remote_cache = lru_cache(1024)(self.resolve_from_url) - - self.referrer = referrer - self.cache_remote = cache_remote - self.handlers = dict(handlers) - - self._scopes_stack = [base_uri] - - self.store = _utils.URIDict( - (uri, each.contents) for uri, each in SPECIFICATIONS.items() - ) - self.store.update( - (id, each.META_SCHEMA) for id, each in _META_SCHEMAS.items() - ) - self.store.update(store) - self.store.update( - (schema["$id"], schema) - for schema in store.values() - if isinstance(schema, Mapping) and "$id" in schema - ) - self.store[base_uri] = referrer - - self._urljoin_cache = urljoin_cache - self._remote_cache = remote_cache - - @classmethod - def from_schema( # noqa: D417 - cls, - schema, - id_of=referencing.jsonschema.DRAFT202012.id_of, - *args, - **kwargs, - ): - """ - Construct a resolver from a JSON schema object. - - Arguments: - - schema: - - the referring schema - - Returns: - - `_RefResolver` - - """ - return cls(base_uri=id_of(schema) or "", referrer=schema, *args, **kwargs) # noqa: B026, E501 - - def push_scope(self, scope): - """ - Enter a given sub-scope. - - Treats further dereferences as being performed underneath the - given scope. - """ - self._scopes_stack.append( - self._urljoin_cache(self.resolution_scope, scope), - ) - - def pop_scope(self): - """ - Exit the most recent entered scope. - - Treats further dereferences as being performed underneath the - original scope. - - Don't call this method more times than `push_scope` has been - called. - """ - try: - self._scopes_stack.pop() - except IndexError: - raise exceptions._RefResolutionError( - "Failed to pop the scope from an empty stack. " - "`pop_scope()` should only be called once for every " - "`push_scope()`", - ) from None - - @property - def resolution_scope(self): - """ - Retrieve the current resolution scope. - """ - return self._scopes_stack[-1] - - @property - def base_uri(self): - """ - Retrieve the current base URI, not including any fragment. - """ - uri, _ = urldefrag(self.resolution_scope) - return uri - - @contextlib.contextmanager - def in_scope(self, scope): - """ - Temporarily enter the given scope for the duration of the context. - - .. deprecated:: v4.0.0 - """ - warnings.warn( - "jsonschema.RefResolver.in_scope is deprecated and will be " - "removed in a future release.", - DeprecationWarning, - stacklevel=3, - ) - self.push_scope(scope) - try: - yield - finally: - self.pop_scope() - - @contextlib.contextmanager - def resolving(self, ref): - """ - Resolve the given ``ref`` and enter its resolution scope. - - Exits the scope on exit of this context manager. - - Arguments: - - ref (str): - - The reference to resolve - - """ - url, resolved = self.resolve(ref) - self.push_scope(url) - try: - yield resolved - finally: - self.pop_scope() - - def _find_in_referrer(self, key): - return self._get_subschemas_cache()[key] - - @lru_cache # noqa: B019 - def _get_subschemas_cache(self): - cache = {key: [] for key in _SUBSCHEMAS_KEYWORDS} - for keyword, subschema in _search_schema( - self.referrer, _match_subschema_keywords, - ): - cache[keyword].append(subschema) - return cache - - @lru_cache # noqa: B019 - def _find_in_subschemas(self, url): - subschemas = self._get_subschemas_cache()["$id"] - if not subschemas: - return None - uri, fragment = urldefrag(url) - for subschema in subschemas: - id = subschema["$id"] - if not isinstance(id, str): - continue - target_uri = self._urljoin_cache(self.resolution_scope, id) - if target_uri.rstrip("/") == uri.rstrip("/"): - if fragment: - subschema = self.resolve_fragment(subschema, fragment) - self.store[url] = subschema - return url, subschema - return None - - def resolve(self, ref): - """ - Resolve the given reference. - """ - url = self._urljoin_cache(self.resolution_scope, ref).rstrip("/") - - match = self._find_in_subschemas(url) - if match is not None: - return match - - return url, self._remote_cache(url) - - def resolve_from_url(self, url): - """ - Resolve the given URL. - """ - url, fragment = urldefrag(url) - if not url: - url = self.base_uri - - try: - document = self.store[url] - except KeyError: - try: - document = self.resolve_remote(url) - except Exception as exc: - raise exceptions._RefResolutionError(exc) from exc - - return self.resolve_fragment(document, fragment) - - def resolve_fragment(self, document, fragment): - """ - Resolve a ``fragment`` within the referenced ``document``. - - Arguments: - - document: - - The referent document - - fragment (str): - - a URI fragment to resolve within it - - """ - fragment = fragment.lstrip("/") - - if not fragment: - return document - - if document is self.referrer: - find = self._find_in_referrer - else: - - def find(key): - yield from _search_schema(document, _match_keyword(key)) - - for keyword in ["$anchor", "$dynamicAnchor"]: - for subschema in find(keyword): - if fragment == subschema[keyword]: - return subschema - for keyword in ["id", "$id"]: - for subschema in find(keyword): - if "#" + fragment == subschema[keyword]: - return subschema - - # Resolve via path - parts = unquote(fragment).split("/") if fragment else [] - for part in parts: - part = part.replace("~1", "/").replace("~0", "~") - - if isinstance(document, Sequence): - try: # noqa: SIM105 - part = int(part) - except ValueError: - pass - try: - document = document[part] - except (TypeError, LookupError) as err: - raise exceptions._RefResolutionError( - f"Unresolvable JSON pointer: {fragment!r}", - ) from err - - return document - - def resolve_remote(self, uri): - """ - Resolve a remote ``uri``. - - If called directly, does not check the store first, but after - retrieving the document at the specified URI it will be saved in - the store if :attr:`cache_remote` is True. - - .. note:: - - If the requests_ library is present, ``jsonschema`` will use it to - request the remote ``uri``, so that the correct encoding is - detected and used. - - If it isn't, or if the scheme of the ``uri`` is not ``http`` or - ``https``, UTF-8 is assumed. - - Arguments: - - uri (str): - - The URI to resolve - - Returns: - - The retrieved document - - .. _requests: https://pypi.org/project/requests/ - - """ - try: - import requests - except ImportError: - requests = None - - scheme = urlsplit(uri).scheme - - if scheme in self.handlers: - result = self.handlers[scheme](uri) - elif scheme in ["http", "https"] and requests: - # Requests has support for detecting the correct encoding of - # json over http - result = requests.get(uri).json() - else: - # Otherwise, pass off to urllib and assume utf-8 - with urlopen(uri) as url: # noqa: S310 - result = json.loads(url.read().decode("utf-8")) - - if self.cache_remote: - self.store[uri] = result - return result - - -_SUBSCHEMAS_KEYWORDS = ("$id", "id", "$anchor", "$dynamicAnchor") - - -def _match_keyword(keyword): - - def matcher(value): - if keyword in value: - yield value - - return matcher - - -def _match_subschema_keywords(value): - for keyword in _SUBSCHEMAS_KEYWORDS: - if keyword in value: - yield keyword, value - - -def _search_schema(schema, matcher): - """Breadth-first search routine.""" - values = deque([schema]) - while values: - value = values.pop() - if not isinstance(value, dict): - continue - yield from matcher(value) - values.extendleft(value.values()) - - -def validate(instance, schema, cls=None, *args, **kwargs): # noqa: D417 - """ - Validate an instance under the given schema. - - >>> validate([2, 3, 4], {"maxItems": 2}) - Traceback (most recent call last): - ... - ValidationError: [2, 3, 4] is too long - - :func:`~jsonschema.validators.validate` will first verify that the - provided schema is itself valid, since not doing so can lead to less - obvious error messages and fail in less obvious or consistent ways. - - If you know you have a valid schema already, especially - if you intend to validate multiple instances with - the same schema, you likely would prefer using the - `jsonschema.protocols.Validator.validate` method directly on a - specific validator (e.g. ``Draft202012Validator.validate``). - - - Arguments: - - instance: - - The instance to validate - - schema: - - The schema to validate with - - cls (jsonschema.protocols.Validator): - - The class that will be used to validate the instance. - - If the ``cls`` argument is not provided, two things will happen - in accordance with the specification. First, if the schema has a - :kw:`$schema` keyword containing a known meta-schema [#]_ then the - proper validator will be used. The specification recommends that - all schemas contain :kw:`$schema` properties for this reason. If no - :kw:`$schema` property is found, the default validator class is the - latest released draft. - - Any other provided positional and keyword arguments will be passed - on when instantiating the ``cls``. - - Raises: - - `jsonschema.exceptions.ValidationError`: - - if the instance is invalid - - `jsonschema.exceptions.SchemaError`: - - if the schema itself is invalid - - .. rubric:: Footnotes - .. [#] known by a validator registered with - `jsonschema.validators.validates` - - """ - if cls is None: - cls = validator_for(schema) - - cls.check_schema(schema) - validator = cls(schema, *args, **kwargs) - error = exceptions.best_match(validator.iter_errors(instance)) - if error is not None: - raise error - - -def validator_for( - schema, - default: Validator | _utils.Unset = _UNSET, -) -> type[Validator]: - """ - Retrieve the validator class appropriate for validating the given schema. - - Uses the :kw:`$schema` keyword that should be present in the given - schema to look up the appropriate validator class. - - Arguments: - - schema (collections.abc.Mapping or bool): - - the schema to look at - - default: - - the default to return if the appropriate validator class - cannot be determined. - - If unprovided, the default is to return the latest supported - draft. - - Examples: - - The :kw:`$schema` JSON Schema keyword will control which validator - class is returned: - - >>> schema = { - ... "$schema": "https://json-schema.org/draft/2020-12/schema", - ... "type": "integer", - ... } - >>> jsonschema.validators.validator_for(schema) - - - - Here, a draft 7 schema instead will return the draft 7 validator: - - >>> schema = { - ... "$schema": "http://json-schema.org/draft-07/schema#", - ... "type": "integer", - ... } - >>> jsonschema.validators.validator_for(schema) - - - - Schemas with no ``$schema`` keyword will fallback to the default - argument: - - >>> schema = {"type": "integer"} - >>> jsonschema.validators.validator_for( - ... schema, default=Draft7Validator, - ... ) - - - or if none is provided, to the latest version supported. - Always including the keyword when authoring schemas is highly - recommended. - - """ - DefaultValidator = _LATEST_VERSION if default is _UNSET else default - - if schema is True or schema is False or "$schema" not in schema: - return DefaultValidator - if schema["$schema"] not in _META_SCHEMAS and default is _UNSET: - warn( - ( - "The metaschema specified by $schema was not found. " - "Using the latest draft to validate, but this will raise " - "an error in the future." - ), - DeprecationWarning, - stacklevel=2, - ) - return _META_SCHEMAS.get(schema["$schema"], DefaultValidator) diff --git a/agent/vendor/jsonschema-4.23.0/noxfile.py b/agent/vendor/jsonschema-4.23.0/noxfile.py deleted file mode 100644 index fada3e1f8..000000000 --- a/agent/vendor/jsonschema-4.23.0/noxfile.py +++ /dev/null @@ -1,251 +0,0 @@ -from pathlib import Path -from tempfile import TemporaryDirectory -import os - -import nox - -ROOT = Path(__file__).parent -PACKAGE = ROOT / "jsonschema" -BENCHMARKS = PACKAGE / "benchmarks" -PYPROJECT = ROOT / "pyproject.toml" -CHANGELOG = ROOT / "CHANGELOG.rst" -DOCS = ROOT / "docs" - -INSTALLABLE = [ - nox.param(value, id=name) for name, value in [ - ("no-extras", str(ROOT)), - ("format", f"{ROOT}[format]"), - ("format-nongpl", f"{ROOT}[format-nongpl]"), - ] -] -REQUIREMENTS = dict( - docs=DOCS / "requirements.txt", -) -REQUIREMENTS_IN = [ # this is actually ordered, as files depend on each other - path.parent / f"{path.stem}.in" for path in REQUIREMENTS.values() -] - -NONGPL_LICENSES = [ - "Apache Software License", - "BSD License", - "ISC License (ISCL)", - "MIT License", - "Mozilla Public License 2.0 (MPL 2.0)", - "Python Software Foundation License", - "The Unlicense (Unlicense)", -] - -SUPPORTED = ["3.8", "3.9", "3.10", "pypy3.10", "3.11", "3.12", "3.13"] -LATEST_STABLE = "3.12" - -nox.options.sessions = [] - - -def session(default=True, python=LATEST_STABLE, **kwargs): # noqa: D103 - def _session(fn): - if default: - nox.options.sessions.append(kwargs.get("name", fn.__name__)) - return nox.session(python=python, **kwargs)(fn) - - return _session - - -@session(python=SUPPORTED) -@nox.parametrize("installable", INSTALLABLE) -def tests(session, installable): - """ - Run the test suite with a corresponding Python version. - """ - env = dict(JSON_SCHEMA_TEST_SUITE=str(ROOT / "json")) - - session.install("virtue", installable) - - if session.posargs and session.posargs[0] == "coverage": - if len(session.posargs) > 1 and session.posargs[1] == "github": - posargs = session.posargs[2:] - github = Path(os.environ["GITHUB_STEP_SUMMARY"]) - else: - posargs, github = session.posargs[1:], None - - session.install("coverage[toml]") - session.run( - "coverage", - "run", - *posargs, - "-m", - "virtue", - PACKAGE, - env=env, - ) - - if github is None: - session.run("coverage", "report") - else: - with github.open("a") as summary: - summary.write("### Coverage\n\n") - summary.flush() # without a flush, output seems out of order. - session.run( - "coverage", - "report", - "--format=markdown", - stdout=summary, - ) - else: - session.run("virtue", *session.posargs, PACKAGE, env=env) - - -@session() -@nox.parametrize("installable", INSTALLABLE) -def audit(session, installable): - """ - Audit dependencies for vulnerabilities. - """ - session.install("pip-audit", installable) - session.run("python", "-m", "pip_audit") - - -@session() -def license_check(session): - """ - Check that the non-GPL extra does not allow arbitrary licenses. - """ - session.install("pip-licenses", f"{ROOT}[format-nongpl]") - session.run( - "python", - "-m", - "piplicenses", - "--ignore-packages", - "pip-requirements-parser", - "pip_audit", - "pip-api", - "--allow-only", - ";".join(NONGPL_LICENSES), - ) - - -@session(tags=["build"]) -def build(session): - """ - Build a distribution suitable for PyPI and check its validity. - """ - session.install("build", "docutils", "twine") - with TemporaryDirectory() as tmpdir: - session.run("python", "-m", "build", ROOT, "--outdir", tmpdir) - session.run("twine", "check", "--strict", tmpdir + "/*") - session.run( - "python", "-m", "docutils", "--strict", CHANGELOG, os.devnull, - ) - - -@session() -def secrets(session): - """ - Check for accidentally committed secrets. - """ - session.install("detect-secrets") - session.run("detect-secrets", "scan", ROOT) - - -@session(tags=["style"]) -def style(session): - """ - Check Python code style. - """ - session.install("ruff") - session.run("ruff", "check", ROOT) - - -@session() -def typing(session): - """ - Check static typing. - """ - session.install("mypy", "types-requests", ROOT) - session.run("mypy", "--config", PYPROJECT, PACKAGE) - - -@session(tags=["docs"]) -@nox.parametrize( - "builder", - [ - nox.param(name, id=name) - for name in [ - "dirhtml", - "doctest", - "linkcheck", - "man", - "spelling", - ] - ], -) -def docs(session, builder): - """ - Build the documentation using a specific Sphinx builder. - """ - session.install("-r", REQUIREMENTS["docs"]) - with TemporaryDirectory() as tmpdir_str: - tmpdir = Path(tmpdir_str) - argv = ["-n", "-T", "-W"] - if builder != "spelling": - argv += ["-q"] - posargs = session.posargs or [tmpdir / builder] - session.run( - "python", - "-m", - "sphinx", - "-b", - builder, - DOCS, - *argv, - *posargs, - ) - - -@session(tags=["docs", "style"], name="docs(style)") -def docs_style(session): - """ - Check the documentation style. - """ - session.install( - "doc8", - "pygments", - "pygments-github-lexers", - ) - session.run("python", "-m", "doc8", "--config", PYPROJECT, DOCS) - - -@session(default=False) -@nox.parametrize( - "benchmark", - [ - nox.param(each.stem, id=each.stem) - for each in BENCHMARKS.glob("[!_]*.py") - ], -) -def bench(session, benchmark): - """ - Run a performance benchmark. - """ - session.install("pyperf", f"{ROOT}[format]") - tmpdir = Path(session.create_tmp()) - output = tmpdir / f"bench-{benchmark}.json" - session.run("python", BENCHMARKS / f"{benchmark}.py", "--output", output) - - -@session(default=False) -def requirements(session): - """ - Update the project's pinned requirements. - - You should commit the result afterwards. - """ - session.install("pip-tools") - for each in REQUIREMENTS_IN: - session.run( - "pip-compile", - "--resolver", - "backtracking", - "--strip-extras", - "-U", - each.relative_to(ROOT), - ) diff --git a/agent/vendor/jsonschema-4.23.0/pyproject.toml b/agent/vendor/jsonschema-4.23.0/pyproject.toml deleted file mode 100644 index 1eea228f3..000000000 --- a/agent/vendor/jsonschema-4.23.0/pyproject.toml +++ /dev/null @@ -1,218 +0,0 @@ -[build-system] -requires = ["hatchling", "hatch-vcs", "hatch-fancy-pypi-readme"] -build-backend = "hatchling.build" - -[tool.hatch.version] -source = "vcs" - -[project] -name = "jsonschema" -description = "An implementation of JSON Schema validation for Python" -requires-python = ">=3.8" -license = {text = "MIT"} -keywords = [ - "validation", - "data validation", - "jsonschema", - "json", - "json schema", -] -authors = [ - { name = "Julian Berman", email = "Julian+jsonschema@GrayVines.com" }, -] -classifiers = [ - "Development Status :: 5 - Production/Stable", - "Intended Audience :: Developers", - "License :: OSI Approved :: MIT License", - "Operating System :: OS Independent", - "Programming Language :: Python", - "Programming Language :: Python :: 3.8", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Programming Language :: Python :: 3.12", - "Programming Language :: Python :: 3.13", - "Programming Language :: Python :: Implementation :: CPython", - "Programming Language :: Python :: Implementation :: PyPy", - "Topic :: File Formats :: JSON", - "Topic :: File Formats :: JSON :: JSON Schema", -] -dynamic = ["version", "readme"] -dependencies = [ - "attrs>=22.2.0", - "jsonschema-specifications>=2023.03.6", - "referencing>=0.28.4", - "rpds-py>=0.7.1", - - "importlib_resources>=1.4.0;python_version<'3.9'", - "pkgutil_resolve_name>=1.3.10;python_version<'3.9'", -] - -[project.optional-dependencies] -format = [ - "fqdn", - "idna", - "isoduration", - "jsonpointer>1.13", - "rfc3339-validator", - "rfc3987", - "uri_template", - "webcolors>=1.11", -] -format-nongpl = [ - "fqdn", - "idna", - "isoduration", - "jsonpointer>1.13", - "rfc3339-validator", - "rfc3986-validator>0.1.0", - "uri_template", - "webcolors>=24.6.0", -] - -[project.scripts] -jsonschema = "jsonschema.cli:main" - -[project.urls] -Homepage = "https://github.com/python-jsonschema/jsonschema" -Documentation = "https://python-jsonschema.readthedocs.io/" -Issues = "https://github.com/python-jsonschema/jsonschema/issues/" -Funding = "https://github.com/sponsors/Julian" -Tidelift = "https://tidelift.com/subscription/pkg/pypi-jsonschema?utm_source=pypi-jsonschema&utm_medium=referral&utm_campaign=pypi-link" -Changelog = "https://github.com/python-jsonschema/jsonschema/blob/main/CHANGELOG.rst" -Source = "https://github.com/python-jsonschema/jsonschema" - -[tool.hatch.metadata.hooks.fancy-pypi-readme] -content-type = "text/x-rst" - -[[tool.hatch.metadata.hooks.fancy-pypi-readme.fragments]] -path = "README.rst" -end-before = ".. start cut from PyPI" - -[[tool.hatch.metadata.hooks.fancy-pypi-readme.fragments]] -path = "README.rst" -start-after = ".. end cut from PyPI\n\n\n" - -[[tool.hatch.metadata.hooks.fancy-pypi-readme.fragments]] -text = """ - - -Release Information -------------------- - -""" - -[[tool.hatch.metadata.hooks.fancy-pypi-readme.fragments]] -path = "CHANGELOG.rst" -pattern = "(^v.+?)\nv" - -[tool.coverage.html] -show_contexts = true -skip_covered = false - -[tool.coverage.run] -branch = true -source = ["jsonschema"] -dynamic_context = "test_function" - -[tool.coverage.report] -exclude_also = [ - "if TYPE_CHECKING:", - "\\s*\\.\\.\\.\\s*", -] -omit = [ - "*/jsonschema/__main__.py", - "*/jsonschema/benchmarks/*", - "*/jsonschema/tests/fuzz_validate.py", -] -show_missing = true -skip_covered = true - -[tool.doc8] -ignore = [ - "D000", # see PyCQA/doc8#125 - "D001", # one sentence per line, so max length doesn't make sense -] - -[tool.isort] -combine_as_imports = true -ensure_newline_before_comments = true -from_first = true -include_trailing_comma = true -multi_line_output = 3 - -[tool.mypy] -ignore_missing_imports = true -show_error_codes = true -exclude = ["jsonschema/benchmarks/*"] - -[tool.ruff] -line-length = 79 -extend-exclude = ["json"] - -[tool.ruff.lint] -select = ["ALL"] -ignore = [ - "A001", # It's fine to shadow builtins - "A002", - "A003", - "ARG", # This is all wrong whenever an interface is involved - "ANN", # Just let the type checker do this - "B006", # Mutable arguments require care but are OK if you don't abuse them - "B008", # It's totally OK to call functions for default arguments. - "B904", # raise SomeException(...) is fine. - "B905", # No need for explicit strict, this is simply zip's default behavior - "C408", # Calling dict is fine when it saves quoting the keys - "C901", # Not really something to focus on - "D105", # It's fine to not have docstrings for magic methods. - "D107", # __init__ especially doesn't need a docstring - "D200", # This rule makes diffs uglier when expanding docstrings - "D203", # No blank lines before docstrings. - "D212", # Start docstrings on the second line. - "D400", # This rule misses sassy docstrings ending with ! or ? - "D401", # This rule is too flaky. - "D406", # Section headers should end with a colon not a newline - "D407", # Underlines aren't needed - "D412", # Plz spaces after section headers - "EM101", # These don't bother me. - "EM102", - "FBT", # It's worth avoiding boolean args but I don't care to enforce it - "FIX", # Yes thanks, if I could it wouldn't be there - "N", # These naming rules are silly - "PERF203", # try/excepts in loops are sometimes needed - "PLR0911", # These metrics are fine to be aware of but not to enforce - "PLR0912", - "PLR0913", - "PLR0915", - "PLR1714", # This makes for uglier comparisons sometimes - "PLW2901", # Shadowing for loop variables is occasionally fine. - "PT", # We use unittest - "PYI025", # wat, I'm not confused, thanks. - "RET502", # Returning None implicitly is fine - "RET503", - "RET505", # These push you to use `if` instead of `elif`, but for no reason - "RET506", - "RSE102", # Ha, what, who even knew you could leave the parens off. But no. - "SIM300", # Not sure what heuristic this uses, but it's easily incorrect - "SLF001", # Private usage within this package itself is fine - "TD", # These TODO style rules are also silly - "TRY003", # Some exception classes are essentially intended for free-form - "UP007", # We support 3.8 + 3.9 -] - -[tool.ruff.lint.flake8-pytest-style] -mark-parentheses = false - -[tool.ruff.lint.flake8-quotes] -docstring-quotes = "double" - -[tool.ruff.lint.isort] -combine-as-imports = true -from-first = true - -[tool.ruff.lint.per-file-ignores] -"noxfile.py" = ["ANN", "D100", "S101", "T201"] -"docs/*" = ["ANN", "D", "INP001"] -"jsonschema/tests/*" = ["ANN", "D", "RUF012", "S", "PLR", "PYI024", "TRY"] -"jsonschema/tests/test_format.py" = ["ERA001"] -"jsonschema/benchmarks/*" = ["ANN", "D", "INP001", "S101"] diff --git a/agent/vendor/lock_file b/agent/vendor/lock_file deleted file mode 100644 index c7a40cbc6..000000000 --- a/agent/vendor/lock_file +++ /dev/null @@ -1,12 +0,0 @@ -{ - "name": "jsonschema", - "version": "4.23.0", - "link": { - "url": "https://files.pythonhosted.org/packages/38/2e/03362ee4034a4c917f697890ccd4aec0800ccf9ded7f511971c75451deec/jsonschema-4.23.0.tar.gz", - "comes_from": "https://pypi.org/simple/jsonschema/", - "yank_reason": null, - "requires_python": ">=3.8", - "metadata": null - }, - "local_path": "vendor/jsonschema-4.23.0" -} diff --git a/agent/go/vendor/modules.txt b/agent/vendor/modules.txt similarity index 100% rename from agent/go/vendor/modules.txt rename to agent/vendor/modules.txt diff --git a/containers/agent-go.Dockerfile b/containers/agent-go.Dockerfile deleted file mode 100644 index edf9d308d..000000000 --- a/containers/agent-go.Dockerfile +++ /dev/null @@ -1,59 +0,0 @@ -# SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -ARG GO_VERSION -ARG DEBIAN_VERSION -ARG DISTROLESS_VERSION -ARG DISTROLESS_DIGEST_SUFFIX= - -FROM golang:${GO_VERSION}-${DEBIAN_VERSION} AS builder - -ARG TARGETOS -ARG TARGETARCH -ARG AGENT_VERSION -ARG GIT_SHA - -WORKDIR /workspace -COPY ./ ./ - -RUN CGO_ENABLED=0 GOOS=${TARGETOS:-linux} GOARCH=${TARGETARCH} go build -mod=vendor \ - -trimpath \ - -ldflags "-s -w \ - -X github.com/NVIDIA/nodewright/agent/internal/version.Version=${AGENT_VERSION} \ - -X github.com/NVIDIA/nodewright/agent/internal/version.GitSHA=${GIT_SHA}" \ - -o /out/agent ./cmd/agent - -FROM nvcr.io/nvidia/distroless/static:v${DISTROLESS_VERSION}${DISTROLESS_DIGEST_SUFFIX} - -ARG GO_VERSION -ARG DISTROLESS_VERSION -ARG DISTROLESS_DIGEST_SUFFIX -ARG AGENT_VERSION -ARG GIT_SHA - -LABEL org.opencontainers.image.base.name="nvcr.io/nvidia/distroless/static:v${DISTROLESS_VERSION}${DISTROLESS_DIGEST_SUFFIX}" \ - org.opencontainers.image.licenses="Apache-2.0" \ - org.opencontainers.image.title="nodewright-agent-go" \ - org.opencontainers.image.version="${AGENT_VERSION}" \ - org.opencontainers.image.revision="${GIT_SHA}" \ - go.version="${GO_VERSION}" \ - distroless.version="${DISTROLESS_VERSION}" - -COPY --from=builder /out/agent /usr/local/bin/agent - -# Run as root so the agent can chroot into the host filesystem. -USER 0:0 - -ENTRYPOINT ["/usr/local/bin/agent"] diff --git a/containers/agent.Dockerfile b/containers/agent.Dockerfile index 345367a89..b3cc83c2d 100644 --- a/containers/agent.Dockerfile +++ b/containers/agent.Dockerfile @@ -1,7 +1,6 @@ # SPDX-FileCopyrightText: Copyright (c) 2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # -# # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at @@ -14,61 +13,47 @@ # See the License for the specific language governing permissions and # limitations under the License. -ARG PYTHON_VERSION +ARG GO_VERSION ARG DEBIAN_VERSION ARG DISTROLESS_VERSION -# Digest of the distroless base as an "@sha256:..." suffix, so the tag stays -# readable in the FROM. CI resolves the tag to a digest once and passes it to -# every architecture's build, which pins them all to the byte-identical base even -# if the tag is re-pushed mid-run. Empty by default so a local build still works -# from the tag alone. ARG DISTROLESS_DIGEST_SUFFIX= -FROM python:${PYTHON_VERSION}-${DEBIAN_VERSION} AS builder +FROM golang:${GO_VERSION}-${DEBIAN_VERSION} AS builder -ARG AGENT_VERSION +ARG TARGETOS +ARG TARGETARCH +ARG AGENT_VERSION +ARG GIT_SHA -COPY . /code -WORKDIR /code -RUN echo "AGENT_VERSION=${AGENT_VERSION}" -RUN apt-get update && apt-get install -y \ - bash \ - make \ - build-essential \ - gcc \ - python3-dev \ - linux-headers-generic -#RUN make test -RUN make clean -RUN make venv -RUN make build build_version=${AGENT_VERSION} +WORKDIR /workspace +COPY ./ ./ -# Install the wheel in the builder stage -RUN python3 -m venv venv && ./venv/bin/pip install /code/skyhook-agent/dist/skyhook_agent*.whl +RUN CGO_ENABLED=0 GOOS=${TARGETOS:-linux} GOARCH=${TARGETARCH} go build -mod=vendor \ + -trimpath \ + -ldflags "-s -w \ + -X github.com/NVIDIA/nodewright/agent/internal/version.Version=${AGENT_VERSION} \ + -X github.com/NVIDIA/nodewright/agent/internal/version.GitSHA=${GIT_SHA}" \ + -o /out/agent ./cmd/agent -FROM nvcr.io/nvidia/distroless/python:${PYTHON_VERSION}-v${DISTROLESS_VERSION}${DISTROLESS_DIGEST_SUFFIX} +FROM nvcr.io/nvidia/distroless/static:v${DISTROLESS_VERSION}${DISTROLESS_DIGEST_SUFFIX} -ARG PYTHON_VERSION +ARG GO_VERSION ARG DISTROLESS_VERSION ARG DISTROLESS_DIGEST_SUFFIX ARG AGENT_VERSION ARG GIT_SHA -## https://github.com/opencontainers/image-spec/blob/main/annotations.md -LABEL org.opencontainers.image.base.name="nvcr.io/nvidia/distroless/python:${PYTHON_VERSION}-v${DISTROLESS_VERSION}${DISTROLESS_DIGEST_SUFFIX}" \ +LABEL org.opencontainers.image.base.name="nvcr.io/nvidia/distroless/static:v${DISTROLESS_VERSION}${DISTROLESS_DIGEST_SUFFIX}" \ org.opencontainers.image.licenses="Apache-2.0" \ - org.opencontainers.image.title="skyhook-agent" \ + org.opencontainers.image.title="nodewright-agent" \ org.opencontainers.image.version="${AGENT_VERSION}" \ org.opencontainers.image.revision="${GIT_SHA}" \ - python.version="${PYTHON_VERSION}" \ + go.version="${GO_VERSION}" \ distroless.version="${DISTROLESS_VERSION}" -# Copy the installed packages and scripts from builder -COPY --from=builder /code/venv/lib/python${PYTHON_VERSION}/site-packages /usr/local/lib/python${PYTHON_VERSION}/site-packages -COPY --from=builder /code/venv/bin/controller /usr/local/bin/ +COPY --from=builder /out/agent /usr/local/bin/agent -# Run as root so we can chroot +# Run as root so the agent can chroot into the host filesystem. USER 0:0 -# Use Python to run the controller script -ENTRYPOINT [ "python", "-m", "skyhook_agent.controller" ] +ENTRYPOINT ["/usr/local/bin/agent"] diff --git a/docs/contributing/ci-test-pools.md b/docs/contributing/ci-test-pools.md index c9f0d1dae..9431c1c77 100644 --- a/docs/contributing/ci-test-pools.md +++ b/docs/contributing/ci-test-pools.md @@ -68,27 +68,21 @@ the kind image either way. `upgrade` is **not** covered: the `shellscript` package these scenarios use declares no `upgrade` mode in any published version, so an upgrade scenario needs a package that supports one. -`agent-ci.yaml` already runs it when the *agent* changes, against a freshly built agent. This row -covers the other direction: the operator is what builds the pod the agent runs in — its args, -mounts, copy dir and `config.json` — and until this row existed, an operator change could break -that contract without any suite noticing. - -During the Python-to-Go agent rewrite the suite is the **parity contract**, so it runs against -both agents and the scenarios are shared, never forked — a scenario is the behaviour the operator -depends on, not something either implementation gets its own copy of. Which agents run is decided -by the paths a PR touches, because each workflow owns one image: - -| Paths changed | `agent-ci.yaml` (Python) | `agent-go-ci.yaml` (Go) | -|---|---|---| -| `agent/**` excluding `agent/go/**` | ✅ | — | -| `agent/go/**` | — | ✅ | -| `k8s-tests/operator-agent/**` | ✅ | ✅ | +`agent-ci.yaml` already runs it when the *agent* changes (`agent/**`, `containers/agent.Dockerfile` +or `k8s-tests/operator-agent/**`), against the image that run just built. This row covers the other +direction: the operator is what builds the pod the agent runs in — its args, mounts, copy dir and +`config.json` — and until this row existed, an operator change could break that contract without +any suite noticing. + +The scenarios are shared between the two workflows, never forked: a scenario is the behaviour the +operator depends on. The suite ran against both the Python and the Go agent through the rewrite, +so it is also what proved the Go agent honours the same on-node state; the Python agent is gone +since the cutover (#222), but state written by an `agent/v6.x` node is still exercised by the +flag-compatibility unit tests in `agent/internal/flags`. Both workflows dump agent pod logs and the agent's on-node state under `/var/lib/skyhook` and -`/var/log/skyhook` on failure, via `.github/actions/dump-operator-agent-diagnostics`. A parity -failure is only useful if both sides are diagnosed from the same evidence. - -Once the cutover (#222) removes the Python agent, the Python row and its path filter go with it. +`/var/log/skyhook` on failure, via `.github/actions/dump-operator-agent-diagnostics`, so a failure +is diagnosed from the same evidence wherever it runs. It resolves `AGENT_IMAGE` from `chart/values.yaml` rather than pinning a version in the workflow, so bumping the agent in one place cannot leave this row testing an older one. The suite refuses to @@ -156,7 +150,7 @@ Workflows publishing `ci-gate`: - `lint-ci.yaml` — runs on every PR (no path filter). Guarantees a `ci-gate` is always posted, even on doc-only changes. -- `operator-ci.yaml`, `agent-ci.yaml`, `agent-go-ci.yaml` — wrapper job +- `operator-ci.yaml`, `agent-ci.yaml` — wrapper job that depends on the matrix and image-build jobs. Posts `ci-gate` only when the workflow's paths trigger. - `commit-linting.yaml`, `security-checkov.yaml`, @@ -169,12 +163,12 @@ standard fix for GitHub Actions' "skipped == green" pitfall. Each gate's (`create-manifest`/`upload-coverage` on fork PRs / tag builds) are deliberately excluded so legitimate skips don't fail the gate. -`agent-go-ci.yaml` is the one exception, and the reason is worth +`agent-ci.yaml` is the one exception, and the reason is worth understanding before copying either shape. Excluding a job from `needs:` does not merely stop a skip from failing the gate — it stops that job from affecting the gate *at all*, including when it genuinely fails. That is acceptable for jobs whose failure is incidental to the merge decision, -but `operator-agent-go-tests` is the parity check the whole workflow +but `operator-agent-tests` is the contract check the whole workflow exists for, so excluding it would gate on nothing. It and `create-manifest` are therefore in `needs:`, and the gate asserts their expected state in both directions: `success` when `PUSH_TO_REGISTRY` is diff --git a/docs/contributing/development.md b/docs/contributing/development.md index df7dfd31e..0d33853f6 100644 --- a/docs/contributing/development.md +++ b/docs/contributing/development.md @@ -72,13 +72,13 @@ Workflow steps that download a pinned binary pass curl's own `--retry ... --retr ## Distroless Base Images -The operator and agent images build `FROM` NVIDIA's distroless bases (`nvcr.io/nvidia/distroless/static` and `nvcr.io/nvidia/distroless/python`). CI picks the version with `scripts/latest-distroless.sh`, which asks the registry directly instead of reading `https://developer.download.nvidia.com/distroless-oss/versions.json`. That file advertises a release days before the matching image is pushed, so a build that trusts it fails with a 404 on the base image for as long as the two are out of step; the registry's tag list cannot be ahead of the images it lists. +The operator and agent images build `FROM` NVIDIA's distroless base (`nvcr.io/nvidia/distroless/static`). CI picks the version with `scripts/latest-distroless.sh`, which asks the registry directly instead of reading `https://developer.download.nvidia.com/distroless-oss/versions.json`. That file advertises a release days before the matching image is pushed, so a build that trusts it fails with a 404 on the base image for as long as the two are out of step; the registry's tag list cannot be ahead of the images it lists. The distroless repositories are public, so the script reads them with [`oras`](https://oras.land) anonymously and no NGC credentials are involved. Each `oras` call goes through `scripts/retry.sh`, so a reset connection does not fail the build. CI installs `oras` through `.github/actions/setup-oras`; install it locally to run the script yourself. ```bash scripts/latest-distroless.sh --repo nvcr.io/nvidia/distroless/static --major 4 -scripts/latest-distroless.sh --repo nvcr.io/nvidia/distroless/python --major 4 --tag-prefix 3.13- --print +scripts/latest-distroless.sh --repo nvcr.io/nvidia/distroless/static --major 4 --print ``` `--major` is required. A new distroless major is a base-OS change that should be reviewed, not something a build picks up on its own, so raising it is a deliberate edit to the workflow. diff --git a/docs/contributing/release-process.md b/docs/contributing/release-process.md index 65101f41f..b51d747a4 100644 --- a/docs/contributing/release-process.md +++ b/docs/contributing/release-process.md @@ -623,12 +623,12 @@ NodeWright ships `THIRD_PARTY_NOTICES.md` files that list every third-party modu | File | Covers | Tool | | --- | --- | --- | | `operator/THIRD_PARTY_NOTICES.md` | Operator + CLI (Go) | `go-licenses` | -| `agent/THIRD_PARTY_NOTICES.md` | Agent (Python) | `pip-licenses` | +| `agent/THIRD_PARTY_NOTICES.md` | Agent (Go) | `go-licenses` | | `THIRD_PARTY_NOTICES.md` (repo root) | Combined rollup for `chart/` releases | Composed from the two component files | The generated files are a pure function of the dependency set and the current component tags: there is no wall-clock timestamp in them, so regenerating without changing a dependency produces a byte-identical file. That is what makes the freshness gate below possible, and it stops concurrent dependency pull requests from conflicting on a line that carries no information. -**`go-licenses` v2 is required, and the pin in `operator/deps.mk` is not incidental.** v1 picks a single license at random from a file that contains several, so `sigs.k8s.io/yaml`, `sigs.k8s.io/json`, `github.com/google/cel-go` and `go.opentelemetry.io/otel` were classified differently on every run and no regenerate-and-diff check could ever be stable. v2 reports the complete set every time, which is both deterministic and the more accurate disclosure. The `go-licenses` make target therefore verifies the installed binary's version rather than just its existence, because a stale v1 binary left in `operator/bin/` would otherwise produce notices that fail the gate in CI with nothing on screen to explain why. v2 also refuses to resolve standard-library packages instead of skipping them, so `license-check` and `license-report` pass the same stdlib ignore list. +**`go-licenses` v2 is required, and the pins in `operator/deps.mk` and `agent/deps.mk` are not incidental.** v1 picks a single license at random from a file that contains several, so `sigs.k8s.io/yaml`, `sigs.k8s.io/json`, `github.com/google/cel-go` and `go.opentelemetry.io/otel` were classified differently on every run and no regenerate-and-diff check could ever be stable. v2 reports the complete set every time, which is both deterministic and the more accurate disclosure. The `go-licenses` make target therefore verifies the installed binary's version rather than just its existence, because a stale v1 binary left in `operator/bin/` would otherwise produce notices that fail the gate in CI with nothing on screen to explain why. v2 also refuses to resolve standard-library packages instead of skipping them, so `license-check` and `license-report` pass the same stdlib ignore list. ### What the operator pass collects @@ -648,7 +648,7 @@ make notices # Or per-component: make notices-operator # operator + CLI Go deps -make notices-agent # agent Python deps +make notices-agent # agent Go deps make notices-rollup # root rollup (run after the two above) # Verify the committed files match a fresh generation: @@ -658,18 +658,14 @@ make notices-check make notices-test ``` -The operator notice targets install `go-licenses` into `operator/bin/` when needed. Other prerequisites: - -- Python 3 — required for the generator script and the agent pass's pip-licenses venv. - -The agent pass caches a Python venv at `agent/.notices-venv`. First run installs `pip-licenses` and the agent's pinned deps (~30s). Subsequent runs reuse the venv (~2s). +The notice targets install `go-licenses` into `operator/bin/` and `agent/bin/` when needed. The only other prerequisite is Python 3, for the generator script itself. ### When to regenerate Run `make notices` and commit the refreshed file(s) whenever you: - Bump a Go dependency (changes to `operator/go.mod`, `operator/go.sum`, or `operator/vendor/`). -- Bump a Python dependency (changes to `agent/skyhook-agent/pyproject.toml` or `agent/vendor/`). +- Bump an agent Go dependency (changes to `agent/go.mod`, `agent/go.sum`, or `agent/vendor/`). The `Operator tag:` / `Agent tag:` / `Chart tag:` lines name the newest final release of each component, so they also go stale when a release is cut. @@ -677,8 +673,8 @@ Tag resolution reads the local clone, so run `git fetch --tags` before `make not ### CI behavior -- **Renovate** (`.github/workflows/renovate.yaml`): Go and Python dependency branches run `make notices` after artifact updates and commit the refreshed notice files with the dependency change. -- **Merge gate** (`.github/workflows/merge-gate.yaml`): when Go dependency files change in a PR, the `verify-licenses` job runs `make -C operator license-check` to confirm every dep's license is on the approved list. A second job, `verify-notices`, runs `make notices-test` and `make notices-check` when Go or Python dependencies, the generator script, or the notices files themselves change; it fails if the committed notices do not match a fresh generation. Both jobs are required and each has a paired skip job so the check name is satisfied when nothing relevant changed. +- **Renovate** (`.github/workflows/renovate.yaml`): Go dependency branches run `make notices` after artifact updates and commit the refreshed notice files with the dependency change. +- **Merge gate** (`.github/workflows/merge-gate.yaml`): when Go dependency files change in a PR, the `verify-licenses` job runs `make license-check` in `operator/` and `agent/` to confirm every dep's license is on the approved list. A second job, `verify-notices`, runs `make notices-test` and `make notices-check` when Go dependencies, the generator script, or the notices files themselves change; it fails if the committed notices do not match a fresh generation. Both jobs are required and each has a paired skip job so the check name is satisfied when nothing relevant changed. A release tag changes the `Operator tag:` / `Agent tag:` / `Chart tag:` lines, so the first pull request after a release that touches these paths will see `verify-notices` fail until `make notices` is re-run and committed. That is the intended remedy, and the failure message says so. - **Release upload** (`.github/workflows/release.yml`): every operator/agent/chart release regenerates the notices files in CI and attaches the appropriate one as a release asset: diff --git a/docs/operations/versioning.md b/docs/operations/versioning.md index 9fd0c3f74..65203acfb 100644 --- a/docs/operations/versioning.md +++ b/docs/operations/versioning.md @@ -24,12 +24,13 @@ chart/v{version} # Chart releases - **Semantic versioning**: MAJOR.MINOR.PATCH - **Compatibility**: Maintained through well-defined interfaces -During validation of the Go agent rewrite, an `agent/vx.y.z` tag continues to -publish only the production legacy agent image. CI builds and smoke-tests the -Go agent container for relevant changes, but release automation does not -publish that image before the full cutover. The Go implementation will continue -the existing Agent version stream rather than introduce a separate component -version. +The agent has been implemented in Go since the cutover (#222) and continues the +existing `agent/vx.y.z` version stream rather than starting a new component: +`agent/v6.x` tags are the Python implementation, and the first Go release is +`agent/v7.0.0`, a major bump for the build-stack change. The operator-facing +contract (arguments, environment variables, exit codes, and the on-host state +paths) is unchanged; the behaviour differences are listed in +`agent/RELEASE_NOTES.md`. ### Helm Chart diff --git a/scripts/generate-notices.py b/scripts/generate-notices.py index ca296e19a..e2ddd544b 100755 --- a/scripts/generate-notices.py +++ b/scripts/generate-notices.py @@ -29,9 +29,7 @@ REPO_ROOT = Path(__file__).resolve().parent.parent OPERATOR_DIR = REPO_ROOT / "operator" -AGENT_GO_DIR = REPO_ROOT / "agent" / "go" -AGENT_VENDOR = REPO_ROOT / "agent" / "vendor" -NOTICES_VENV = REPO_ROOT / "agent" / ".notices-venv" +AGENT_DIR = REPO_ROOT / "agent" LICENSES_CACHE = REPO_ROOT / ".licenses-cache" OPERATOR_FILE = REPO_ROOT / "operator" / "THIRD_PARTY_NOTICES.md" AGENT_FILE = REPO_ROOT / "agent" / "THIRD_PARTY_NOTICES.md" @@ -95,10 +93,11 @@ def _repo_relative_url(url: str, component_dir: Path, module_path: str) -> str: """Rewrite an in-repo source URL that go-licenses placed at the wrong path. For a vendored dependency go-licenses builds the URL from the *module path*, - assuming it mirrors the module's directory inside the repo. agent/go breaks - that assumption: it declares `github.com/NVIDIA/nodewright/agent` while - living in `agent/go/`, so every link loses the `go` segment and 404s. The - operator does mirror its path, so this is a no-op there. + assuming it mirrors the module's directory inside the repo. Both modules + mirror their paths today, so this is a no-op for both. It stays because a + module that does not (the Go agent was checked out one level deeper than + its declared path before the cutover) 404s every link, and a link that + 404s discloses nothing. """ head, sep, tail = url.partition("/blob/HEAD/") if not sep: @@ -278,83 +277,35 @@ def operator_notices(): print(f"Wrote {OPERATOR_FILE.relative_to(REPO_ROOT)} ({len(rows)} Go deps)", file=sys.stderr) -def _agent_python_notices(): - deps = [] - if AGENT_VENDOR.exists(): - for d in sorted(AGENT_VENDOR.iterdir()): - if d.is_dir() and "-" in d.name: - name, _, version = d.name.rpartition("-") - deps.append((name, version)) - if not deps: - return ["_No vendored Python dependencies found._", ""], 0 - - if not (NOTICES_VENV / "bin" / "pip").exists(): - subprocess.run(["python3", "-m", "venv", str(NOTICES_VENV)], check=True) - pip = str(NOTICES_VENV / "bin" / "pip") - pip_licenses = str(NOTICES_VENV / "bin" / "pip-licenses") - subprocess.run([pip, "install", "--quiet", "--upgrade", "pip", "pip-licenses"], check=True) - subprocess.run( - [pip, "install", "--quiet", "--upgrade", *[f"{n}=={v}" for n, v in deps]], - check=True, - ) - raw = subprocess.check_output( - [pip_licenses, "--packages", *[n for n, _ in deps], - "--with-license-file", "--with-urls", "--format=json", "--no-license-path"], - text=True, - ) - entries = sorted(json.loads(raw), key=lambda e: e["Name"].lower()) - - def src(e) -> str: - u = e.get("URL") or "" - return u if u and u != "UNKNOWN" else "n/a" - - out = ["| Package | Version | License | Source |", "|---|---|---|---|"] - for e in entries: - out.append(f"| `{e['Name']}` | {e['Version']} | {e.get('License') or 'Unknown'} | {src(e)} |") - out += ["", "### License Texts", ""] - for e in entries: - out += [ - f"#### {e['Name']} {e['Version']}", "", - f"* License: {e.get('License') or 'Unknown'}", - f"* Source: {src(e)}", "", - ] - text = (e.get("LicenseText") or "").strip() - if text: - out += ["```text", text, "```", ""] - else: - out += ["License text unavailable. See upstream source for the full license.", ""] - return out, len(entries) - - def _agent_go_notices(): - gl = AGENT_GO_DIR / "bin" / "go-licenses" + gl = AGENT_DIR / "bin" / "go-licenses" gl_path = str(gl) if gl.exists() else (shutil.which("go-licenses") or "") if not gl_path: - sys.exit("ERROR: go-licenses not found. Run 'make -C agent/go go-licenses'.") + sys.exit("ERROR: go-licenses not found. Run 'make -C agent go-licenses'.") def go_out(args: list[str]) -> str: - return subprocess.check_output(["go", *args], cwd=AGENT_GO_DIR, env=os.environ, text=True) + return subprocess.check_output(["go", *args], cwd=AGENT_DIR, env=os.environ, text=True) local = go_out(["list", "-m"]).strip() stdlib = go_out(["list", "std"]) ignore = ",".join([*sorted(line for line in stdlib.splitlines() if line), local]) - cache_dir = LICENSES_CACHE / "agent-go" + cache_dir = LICENSES_CACHE / "agent" if cache_dir.is_dir(): shutil.rmtree(cache_dir) elif cache_dir.exists(): cache_dir.unlink() subprocess.run( [gl_path, "save", "./...", f"--save_path={cache_dir}", "--force", f"--ignore={ignore}"], - cwd=AGENT_GO_DIR, env=os.environ, check=True, + cwd=AGENT_DIR, env=os.environ, check=True, ) csv = subprocess.check_output( - [gl_path, "csv", "./...", f"--ignore={ignore}"], cwd=AGENT_GO_DIR, env=os.environ, text=True + [gl_path, "csv", "./...", f"--ignore={ignore}"], cwd=AGENT_DIR, env=os.environ, text=True ) rows = sorted({tuple(line.split(",", 2)) for line in csv.splitlines() if line.strip()}) if not rows: - sys.exit("ERROR: go-licenses produced no entries for agent/go.") - rows = [(pkg, _repo_relative_url(url, AGENT_GO_DIR, local), lic) for pkg, url, lic in rows] + sys.exit("ERROR: go-licenses produced no entries for the agent.") + rows = [(pkg, _repo_relative_url(url, AGENT_DIR, local), lic) for pkg, url, lic in rows] linked = set( m for m in go_out( @@ -363,7 +314,7 @@ def go_out(args: list[str]) -> str: ) if not linked: sys.exit( - "ERROR: 'go list -deps ./cmd/...' resolved no modules for agent/go; " + "ERROR: 'go list -deps ./cmd/...' resolved no modules for the agent; " "cannot verify license coverage." ) @@ -376,7 +327,7 @@ def go_out(args: list[str]) -> str: pkg_to_module[parts[0]] = parts[1] if not pkg_to_module: sys.exit( - "ERROR: 'go list -deps ./...' produced no package-to-module map for agent/go; " + "ERROR: 'go list -deps ./...' produced no package-to-module map for the agent; " "cannot verify license coverage." ) @@ -405,14 +356,13 @@ def go_out(args: list[str]) -> str: out += [f"##### {f.name}", "", "```text", f.read_text(errors="replace").rstrip(), "```", ""] if textless: sys.exit( - "ERROR: go-licenses reported a license for these agent/go packages but saved no license text:\n" + "ERROR: go-licenses reported a license for these agent packages but saved no license text:\n" + "\n".join(f" {t}" for t in textless) ) return out, len(rows) def agent_notices(): - py_section, py_count = _agent_python_notices() go_section, go_count = _agent_go_notices() out = [ @@ -420,17 +370,13 @@ def agent_notices(): "", f"Agent tag: `{tag('agent')}`", "", - "## Python Dependencies", - "", - *py_section, "## Go Dependencies", "", *go_section, ] AGENT_FILE.write_text(_collapse_blanks("\n".join(out)) + "\n") print( - f"Wrote {AGENT_FILE.relative_to(REPO_ROOT)} " - f"({py_count} Python deps, {go_count} Go deps)", + f"Wrote {AGENT_FILE.relative_to(REPO_ROOT)} ({go_count} Go deps)", file=sys.stderr, ) diff --git a/scripts/generate-notices_test.py b/scripts/generate-notices_test.py index 09f1b2440..0f051ca43 100644 --- a/scripts/generate-notices_test.py +++ b/scripts/generate-notices_test.py @@ -232,6 +232,8 @@ class RepoRelativeUrlTest(unittest.TestCase): BLOB = "https://github.com/NVIDIA/nodewright/blob/HEAD" def test_module_path_not_mirroring_its_directory_is_corrected(self): + # A module declared as .../agent but checked out under agent/go, which is + # how the Go agent lived before the cutover. Kept as the regression case. self.assertEqual( repo_relative_url( f"{self.BLOB}/agent/vendor/golang.org/x/text/LICENSE", @@ -241,6 +243,13 @@ def test_module_path_not_mirroring_its_directory_is_corrected(self): f"{self.BLOB}/agent/go/vendor/golang.org/x/text/LICENSE", ) + def test_agent_module_mirroring_its_directory_is_untouched(self): + url = f"{self.BLOB}/agent/vendor/golang.org/x/text/LICENSE" + self.assertEqual( + repo_relative_url(url, self.REPO / "agent", "github.com/NVIDIA/nodewright/agent"), + url, + ) + def test_module_path_mirroring_its_directory_is_untouched(self): url = f"{self.BLOB}/operator/vendor/cel.dev/expr/LICENSE" self.assertEqual(