Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package conftest for openSUSE:Factory 
checked in at 2025-04-14 16:08:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/conftest (Old)
 and      /work/SRC/openSUSE:Factory/.conftest.new.1907 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "conftest"

Mon Apr 14 16:08:07 2025 rev:24 rq:1269160 version:0.59.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/conftest/conftest.changes        2025-03-03 
16:26:17.844312059 +0100
+++ /work/SRC/openSUSE:Factory/.conftest.new.1907/conftest.changes      
2025-04-14 16:08:16.918516729 +0200
@@ -1,0 +2,27 @@
+Sat Apr 12 17:39:03 UTC 2025 - Johannes Kastl 
<[email protected]>
+
+- Update to version 0.59.0:
+  * refactor(ci): replace Makefile-based Docker builds with GitHub
+    Action (#1082)
+  * deps: Bump hcl2json to v0.6.7 (#1074)
+  * build(deps): bump github.com/magiconair/properties from 1.8.9
+    to 1.8.10 (#1097)
+  * build(deps): bump cuelang.org/go from 0.12.0 to 0.12.1 (#1094)
+  * build(deps): bump golang from 1.24.1-alpine to 1.24.2-alpine
+    (#1096)
+  * build(deps): bump github.com/open-policy-agent/opa from 1.2.0
+    to 1.3.0 (#1092)
+  * build(deps): bump github.com/moby/buildkit from 0.20.1 to
+    0.20.2 (#1091)
+  * ci: Remove PR workflow access to all permissions from
+    GITHUB_TOKEN (#1088)
+  * build(deps): bump github.com/BurntSushi/toml from 1.4.0 to
+    1.5.0 (#1089)
+  * build(deps): bump golang from 1.24.0-alpine to 1.24.1-alpine
+    (#1086)
+  * feat: add pre-commit hook support (#1077)
+  * docs: add documentation feature to the navigation bar (#1087)
+  * build(deps): bump github.com/moby/buildkit from 0.20.0 to
+    0.20.1 (#1083)
+
+-------------------------------------------------------------------

Old:
----
  conftest-0.58.0.obscpio

New:
----
  conftest-0.59.0.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ conftest.spec ++++++
--- /var/tmp/diff_new_pack.gySxUG/_old  2025-04-14 16:08:17.598545287 +0200
+++ /var/tmp/diff_new_pack.gySxUG/_new  2025-04-14 16:08:17.598545287 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           conftest
-Version:        0.58.0
+Version:        0.59.0
 Release:        0
 Summary:        Tool to write tests against structured configuration data
 License:        Apache-2.0

++++++ _service ++++++
--- /var/tmp/diff_new_pack.gySxUG/_old  2025-04-14 16:08:17.630546632 +0200
+++ /var/tmp/diff_new_pack.gySxUG/_new  2025-04-14 16:08:17.630546632 +0200
@@ -4,7 +4,7 @@
     <param name="scm">git</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
-    <param name="revision">v0.58.0</param>
+    <param name="revision">v0.59.0</param>
     <param name="changesgenerate">enable</param>
   </service>
   <service name="set_version" mode="manual">

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.gySxUG/_old  2025-04-14 16:08:17.650547472 +0200
+++ /var/tmp/diff_new_pack.gySxUG/_new  2025-04-14 16:08:17.658547808 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param 
name="url">https://github.com/open-policy-agent/conftest.git</param>
-              <param 
name="changesrevision">39bd5fcee10393a902ebd48387920bf89411a5b7</param></service></servicedata>
+              <param 
name="changesrevision">e9612c334c7995a72c4647c92a776f5d11150497</param></service></servicedata>
 (No newline at EOF)
 

++++++ conftest-0.58.0.obscpio -> conftest-0.59.0.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conftest-0.58.0/.github/workflows/pr.yaml 
new/conftest-0.59.0/.github/workflows/pr.yaml
--- old/conftest-0.58.0/.github/workflows/pr.yaml       2025-03-01 
22:51:36.000000000 +0100
+++ new/conftest-0.59.0/.github/workflows/pr.yaml       2025-04-12 
17:41:27.000000000 +0200
@@ -2,17 +2,12 @@
 
 on: [pull_request]
 
-permissions:
-  actions: read
-  checks: none
-  contents: none
-  deployments: none
-  issues: none
-  packages: none
-  pull-requests: none
-  repository-projects: none
-  security-events: none
-  statuses: none
+
+permissions: {}
+
+env:
+  IMAGE: openpolicyagent/conftest
+  PLATFORMS: linux/amd64,linux/arm64
 
 jobs:
   style:
@@ -70,9 +65,29 @@
       - name: build
         run: make build
 
+      - name: setup docker buildx
+        run: docker buildx create --name conftestbuild --use
+
+      - name: Build Docker image
+        uses: docker/build-push-action@v6 
+        with:
+          context: .
+          push: false
+          tags: |
+            ${{ env.IMAGE }}:latest
+          platforms: ${{ env.PLATFORMS }}
+
       - name: unit test
         run: make test
 
+      # Ensure Actions runner has Python installed
+      # This is required for pre-commit tests to work
+      - name: setup python
+        uses: actions/setup-python@v5
+        with:
+          python-version: '3.13'
+          cache: 'pip'
+
       - name: setup bats
         uses: bats-core/[email protected]
         with:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conftest-0.58.0/.github/workflows/release.yaml 
new/conftest-0.59.0/.github/workflows/release.yaml
--- old/conftest-0.58.0/.github/workflows/release.yaml  2025-03-01 
22:51:36.000000000 +0100
+++ new/conftest-0.59.0/.github/workflows/release.yaml  2025-04-12 
17:41:27.000000000 +0200
@@ -4,6 +4,9 @@
   push:
     tags:
       - 'v*'
+env:
+  IMAGE: openpolicyagent/conftest
+  PLATFORMS: linux/amd64,linux/arm64
 
 jobs:
   release:
@@ -36,10 +39,37 @@
       - name: setup docker buildx
         run: docker buildx create --name conftestbuild --use
 
-      - name: push images
-        env:
-          VERSION: ${{ steps.get-version.outputs.VERSION }}
-        run: make push TAG=$VERSION
+      - name: Build and push Docker image
+        uses: docker/build-push-action@v6 
+        with:
+          context: .
+          push: true
+          build-args: |
+            VERSION=${{ steps.get-version.outputs.VERSION }}
+          tags: |
+            ${{ env.IMAGE }}:${{ steps.get-version.outputs.VERSION }}
+          platforms: ${{ env.PLATFORMS }}
+
+      - name: Build and push Docker latest image
+        uses: docker/build-push-action@v6 
+        with:
+          context: .
+          push: true
+          build-args: |
+            VERSION=${{ steps.get-version.outputs.VERSION }}
+          tags: |
+            ${{ env.IMAGE }}:latest
+          platforms: ${{ env.PLATFORMS }}
+
+      - name: Build and push examples image
+        uses: docker/build-push-action@v6
+        with:
+          context: .
+          push: true
+          target: examples
+          tags: |
+            ${{ env.IMAGE }}:examples
+          platforms: ${{ env.PLATFORMS }}
 
       - name: setup go
         uses: actions/setup-go@v4
@@ -52,4 +82,4 @@
           args: release --clean
           version: "~> v1"
         env:
-          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conftest-0.58.0/.pre-commit-hooks.yaml 
new/conftest-0.59.0/.pre-commit-hooks.yaml
--- old/conftest-0.58.0/.pre-commit-hooks.yaml  1970-01-01 01:00:00.000000000 
+0100
+++ new/conftest-0.59.0/.pre-commit-hooks.yaml  2025-04-12 17:41:27.000000000 
+0200
@@ -0,0 +1,19 @@
+- id: conftest-test
+  name: Conftest Test Policy Check
+  description: Validate configuration files against Open Policy Agent policies 
using Conftest
+  entry: conftest test
+  language: golang
+  pass_filenames: true
+  require_serial: true
+  minimum_pre_commit_version: "2.9.0"
+  stages: [pre-commit, pre-merge-commit, pre-push, manual]
+
+- id: conftest-verify
+  name: Conftest Verify Policy Tests
+  description: Run Rego unit tests for Conftest policies
+  entry: conftest verify
+  language: golang
+  pass_filenames: false
+  require_serial: true
+  minimum_pre_commit_version: "2.9.0"
+  stages: [pre-commit, pre-merge-commit, pre-push, manual]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conftest-0.58.0/Dockerfile 
new/conftest-0.59.0/Dockerfile
--- old/conftest-0.58.0/Dockerfile      2025-03-01 22:51:36.000000000 +0100
+++ new/conftest-0.59.0/Dockerfile      2025-04-12 17:41:27.000000000 +0200
@@ -1,4 +1,4 @@
-FROM golang:1.24.0-alpine as base
+FROM golang:1.24.2-alpine as base
 ARG TARGETARCH
 ARG VERSION
 ARG COMMIT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conftest-0.58.0/Makefile new/conftest-0.59.0/Makefile
--- old/conftest-0.58.0/Makefile        2025-03-01 22:51:36.000000000 +0100
+++ new/conftest-0.59.0/Makefile        2025-04-12 17:41:27.000000000 +0200
@@ -38,11 +38,15 @@
        @bats acceptance.bats
 
 .PHONY: test-acceptance
-test-acceptance: build ## Runs the tests in the test folder.
+test-acceptance: build install-test-deps ## Runs the tests in the test folder.
        @for testdir in $(TEST_DIRS) ; do \
                cd $(CURDIR)/$$testdir && CONFTEST=$(ROOT_DIR)/$(BIN) bats 
test.bats || exit 1; \
        done
 
+.PHONY: install-test-deps
+install-test-deps: ## Installs dependencies required for testing.
+       @command -v pre-commit >/dev/null 2>&1 || python -m pip install -r 
requirements-dev.txt
+
 .PHONY: test-oci
 test-oci: ## Runs the OCI integration test for push and pull.
        @./scripts/push-pull-e2e.sh
@@ -60,18 +64,3 @@
 #
 ##@ Releases
 #
-
-.PHONY: image
-image: ## Builds a Docker image for Conftest.
-       @$(DOCKER) build . -t $(IMAGE):latest
-
-.PHONY: examples
-examples: ## Builds the examples Docker image.
-       @$(DOCKER) build . --target examples -t $(IMAGE):examples
-
-.PHONY: push
-push: ## Pushes the examples and Conftest image to DockerHub. Requires `TAG` 
parameter.
-       @test -n "$(TAG)" || (echo "TAG parameter not set." && exit 1)
-       @$(DOCKER) buildx build . --push --build-arg VERSION="$(TAG)" -t 
$(IMAGE):$(TAG) --platform $(DOCKER_PLATFORMS)
-       @$(DOCKER) buildx build . --push --build-arg VERSION="$(TAG)" -t 
$(IMAGE):latest --platform $(DOCKER_PLATFORMS)
-       @$(DOCKER) buildx build . --push --target examples -t $(IMAGE):examples 
--platform $(DOCKER_PLATFORMS)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conftest-0.58.0/docs/index.md 
new/conftest-0.59.0/docs/index.md
--- old/conftest-0.58.0/docs/index.md   2025-03-01 22:51:36.000000000 +0100
+++ new/conftest-0.59.0/docs/index.md   2025-04-12 17:41:27.000000000 +0200
@@ -84,6 +84,28 @@
 * XML
 * YAML
 
+### Pre-commit Integration
+
+Conftest can be used as a [pre-commit](https://pre-commit.com/) hook to 
validate your configuration files before committing them.
+
+To use Conftest with pre-commit, add the following to your 
`.pre-commit-config.yaml`:
+
+```yaml
+repos:
+  - repo: https://github.com/open-policy-agent/conftest
+    rev: v0.59.0  # Use a specific tag or 'HEAD' for the latest commit
+    hooks:
+      - id: conftest-test
+        args: [--policy, path/to/your/policies]  # Specify your policy 
directory
+      # Optional: Add the verify hook to run policy unit tests
+      - id: conftest-verify
+        args: [--policy, path/to/your/policies]
+```
+
+The `conftest-test` hook validates your configuration files against policies, 
while the `conftest-verify` hook runs unit tests for your policies.
+
+For more information on pre-commit hooks, refer to the [pre-commit 
documentation](https://pre-commit.com/).
+
 ### Testing/Verifying Policies
 
 When authoring policies, it is helpful to test them. Consult the Rego [testing 
documentation](https://www.openpolicyagent.org/docs/latest/policy-testing)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conftest-0.58.0/examples/hcl2/policy/deny.rego 
new/conftest-0.59.0/examples/hcl2/policy/deny.rego
--- old/conftest-0.58.0/examples/hcl2/policy/deny.rego  2025-03-01 
22:51:36.000000000 +0100
+++ new/conftest-0.59.0/examples/hcl2/policy/deny.rego  2025-04-12 
17:41:27.000000000 +0200
@@ -6,15 +6,15 @@
 }
 
 deny contains msg if {
-       some lb
-       proto := input.resource.aws_alb_listener[lb].protocol
-       proto == "HTTP"
-       msg = sprintf("ALB `%v` is using HTTP rather than HTTPS", [lb])
+       some name
+       some lb in input.resource.aws_alb_listener[name]
+       lb.protocol == "HTTP"
+       msg = sprintf("ALB `%v` is using HTTP rather than HTTPS", [name])
 }
 
 deny contains msg if {
        some name
-       rule := input.resource.aws_security_group_rule[name]
+       some rule in input.resource.aws_security_group_rule[name]
        rule.type == "ingress"
        contains(rule.cidr_blocks[_], "0.0.0.0/0")
        msg = sprintf("ASG `%v` defines a fully open ingress", [name])
@@ -22,9 +22,9 @@
 
 deny contains msg if {
        some name
-       disk = input.resource.azurerm_managed_disk[name]
+       some disk in input.resource.azurerm_managed_disk[name]
        has_field(disk, "encryption_settings")
-       disk.encryption_settings.enabled != true
+       not disk.encryption_settings.enabled
        msg = sprintf("Azure disk `%v` is not encrypted", [name])
 }
 
@@ -34,7 +34,7 @@
 
 deny contains msg if {
        some aws_resource, name
-       resource := input.resource[aws_resource][name] # all resources
+       some resource in input.resource[aws_resource][name] # all resources
        startswith(aws_resource, "aws_") # only AWS resources
        missing := missing_tags(resource)
        count(missing) > 0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conftest-0.58.0/go.mod new/conftest-0.59.0/go.mod
--- old/conftest-0.58.0/go.mod  2025-03-01 22:51:36.000000000 +0100
+++ new/conftest-0.59.0/go.mod  2025-04-12 17:41:27.000000000 +0200
@@ -2,9 +2,11 @@
 
 go 1.23.6
 
+toolchain go1.24.1
+
 require (
-       cuelang.org/go v0.12.0
-       github.com/BurntSushi/toml v1.4.0
+       cuelang.org/go v0.12.1
+       github.com/BurntSushi/toml v1.5.0
        github.com/CycloneDX/cyclonedx-go v0.9.2
        github.com/KeisukeYamashita/go-vcl v0.4.0
        github.com/basgys/goxml2json v1.1.0
@@ -17,11 +19,11 @@
        github.com/hashicorp/hcl v1.0.0
        github.com/jstemmer/go-junit-report v1.0.0
        github.com/logrusorgru/aurora v2.0.3+incompatible
-       github.com/magiconair/properties v1.8.9
-       github.com/moby/buildkit v0.20.0
+       github.com/magiconair/properties v1.8.10
+       github.com/moby/buildkit v0.20.2
        github.com/olekukonko/tablewriter v0.0.5
-       github.com/open-policy-agent/opa v1.2.0
-       github.com/opencontainers/image-spec v1.1.0
+       github.com/open-policy-agent/opa v1.3.0
+       github.com/opencontainers/image-spec v1.1.1
        github.com/owenrumney/go-sarif/v2 v2.3.3
        github.com/pkg/errors v0.9.1
        github.com/shteou/go-ignore v0.3.1
@@ -29,9 +31,9 @@
        github.com/spf13/cobra v1.9.1
        github.com/spf13/viper v1.18.2
        github.com/subosito/gotenv v1.6.0
-       github.com/tmccombs/hcl2json v0.3.1
+       github.com/tmccombs/hcl2json v0.6.7
        golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f
-       google.golang.org/protobuf v1.36.3
+       google.golang.org/protobuf v1.36.5
        muzzammil.xyz/jsonc v1.0.0
        olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3
        oras.land/oras-go/v2 v2.4.0
@@ -40,13 +42,13 @@
 
 require (
        cloud.google.com/go v0.112.1 // indirect
-       cloud.google.com/go/compute/metadata v0.5.2 // indirect
+       cloud.google.com/go/compute/metadata v0.6.0 // indirect
        cloud.google.com/go/iam v1.1.6 // indirect
        cloud.google.com/go/storage v1.38.0 // indirect
        github.com/agext/levenshtein v1.2.3 // indirect
        github.com/agnivade/levenshtein v1.2.1 // indirect
        github.com/anchore/go-struct-converter 
v0.0.0-20221118182256-c68fdcfa2092 // indirect
-       github.com/apparentlymart/go-textseg/v13 v13.0.0 // indirect
+       github.com/apparentlymart/go-textseg/v15 v15.0.0 // indirect
        github.com/aws/aws-sdk-go v1.49.6 // indirect
        github.com/beorn7/perks v1.0.1 // indirect
        github.com/bgentry/go-netrc v0.0.0-20140422174119-9fd32a8b3d3d // 
indirect
@@ -71,10 +73,10 @@
        github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
        github.com/hashicorp/go-safetemp v1.0.0 // indirect
        github.com/hashicorp/go-version v1.6.0 // indirect
-       github.com/hashicorp/hcl/v2 v2.17.0 // indirect
+       github.com/hashicorp/hcl/v2 v2.23.0 // indirect
        github.com/inconshreveable/mousetrap v1.1.0 // indirect
        github.com/jmespath/go-jmespath v0.4.0 // indirect
-       github.com/klauspost/compress v1.17.11 // indirect
+       github.com/klauspost/compress v1.18.0 // indirect
        github.com/mattn/go-runewidth v0.0.14 // indirect
        github.com/mitchellh/go-homedir v1.1.0 // indirect
        github.com/mitchellh/go-testing-interface v1.14.1 // indirect
@@ -85,7 +87,7 @@
        github.com/opencontainers/go-digest v1.0.0 // indirect
        github.com/pelletier/go-toml/v2 v2.2.3 // indirect
        github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10 
// indirect
-       github.com/prometheus/client_golang v1.21.0 // indirect
+       github.com/prometheus/client_golang v1.21.1 // indirect
        github.com/prometheus/client_model v0.6.1 // indirect
        github.com/prometheus/common v0.62.0 // indirect
        github.com/prometheus/procfs v0.15.1 // indirect
@@ -104,30 +106,31 @@
        github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb // 
indirect
        github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 
// indirect
        github.com/yashtewari/glob-intersection v0.2.0 // indirect
-       github.com/zclconf/go-cty v1.13.2 // indirect
+       github.com/zclconf/go-cty v1.16.2 // indirect
        go.opencensus.io v0.24.0 // indirect
        go.opentelemetry.io/auto/sdk v1.1.0 // indirect
        
go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc 
v0.56.0 // indirect
-       go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0 
// indirect
-       go.opentelemetry.io/otel v1.34.0 // indirect
-       go.opentelemetry.io/otel/metric v1.34.0 // indirect
-       go.opentelemetry.io/otel/sdk v1.34.0 // indirect
-       go.opentelemetry.io/otel/trace v1.34.0 // indirect
+       go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 
// indirect
+       go.opentelemetry.io/otel v1.35.0 // indirect
+       go.opentelemetry.io/otel/metric v1.35.0 // indirect
+       go.opentelemetry.io/otel/sdk v1.35.0 // indirect
+       go.opentelemetry.io/otel/trace v1.35.0 // indirect
        go.uber.org/atomic v1.9.0 // indirect
        go.uber.org/multierr v1.9.0 // indirect
-       golang.org/x/crypto v0.33.0 // indirect
-       golang.org/x/mod v0.22.0 // indirect
-       golang.org/x/net v0.35.0 // indirect
-       golang.org/x/oauth2 v0.25.0 // indirect
-       golang.org/x/sync v0.11.0 // indirect
-       golang.org/x/sys v0.30.0 // indirect
-       golang.org/x/text v0.22.0 // indirect
-       golang.org/x/time v0.10.0 // indirect
+       golang.org/x/crypto v0.37.0 // indirect
+       golang.org/x/mod v0.24.0 // indirect
+       golang.org/x/net v0.39.0 // indirect
+       golang.org/x/oauth2 v0.26.0 // indirect
+       golang.org/x/sync v0.13.0 // indirect
+       golang.org/x/sys v0.32.0 // indirect
+       golang.org/x/text v0.24.0 // indirect
+       golang.org/x/time v0.11.0 // indirect
+       golang.org/x/tools v0.32.0 // indirect
        google.golang.org/api v0.169.0 // indirect
        google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de // 
indirect
-       google.golang.org/genproto/googleapis/api 
v0.0.0-20250115164207-1a7da9e5054f // indirect
-       google.golang.org/genproto/googleapis/rpc 
v0.0.0-20250115164207-1a7da9e5054f // indirect
-       google.golang.org/grpc v1.70.0 // indirect
+       google.golang.org/genproto/googleapis/api 
v0.0.0-20250218202821-56aae31c358a // indirect
+       google.golang.org/genproto/googleapis/rpc 
v0.0.0-20250218202821-56aae31c358a // indirect
+       google.golang.org/grpc v1.71.0 // indirect
        gopkg.in/ini.v1 v1.67.0 // indirect
        gopkg.in/yaml.v3 v3.0.1 // indirect
 )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conftest-0.58.0/go.sum new/conftest-0.59.0/go.sum
--- old/conftest-0.58.0/go.sum  2025-03-01 22:51:36.000000000 +0100
+++ new/conftest-0.59.0/go.sum  2025-04-12 17:41:27.000000000 +0200
@@ -178,8 +178,8 @@
 cloud.google.com/go/compute/metadata v0.2.0/go.mod 
h1:zFmK7XCadkQkj6TtorcaGlCW1hT1fIilQDwofLpJ20k=
 cloud.google.com/go/compute/metadata v0.2.1/go.mod 
h1:jgHgmJd2RKBGzXqF5LR2EZMGxBkeanZ9wwa75XHJgOM=
 cloud.google.com/go/compute/metadata v0.2.3/go.mod 
h1:VAV5nSsACxMJvgaAuX6Pk2AawlZn8kiOGuCv6gTkwuA=
-cloud.google.com/go/compute/metadata v0.5.2 
h1:UxK4uu/Tn+I3p2dYWTfiX4wva7aYlKixAHn3fyqngqo=
-cloud.google.com/go/compute/metadata v0.5.2/go.mod 
h1:C66sj2AluDcIqakBq/M8lw8/ybHgOZqin2obFxa/E5k=
+cloud.google.com/go/compute/metadata v0.6.0 
h1:A6hENjEsCDtC1k8byVsgwvVcioamEHvZ4j01OwKxG9I=
+cloud.google.com/go/compute/metadata v0.6.0/go.mod 
h1:FjyFAW1MW0C203CEOMDTu3Dk1FlqW3Rga40jzHL4hfg=
 cloud.google.com/go/contactcenterinsights v1.3.0/go.mod 
h1:Eu2oemoePuEFc/xKFPjbTuPSj0fYJcPls9TFlPNnHHY=
 cloud.google.com/go/contactcenterinsights v1.4.0/go.mod 
h1:L2YzkGbPsv+vMQMCADxJoT9YiTTnSEd6fEvCeHTYVck=
 cloud.google.com/go/contactcenterinsights v1.6.0/go.mod 
h1:IIDlT6CLcDoyv79kDv8iWxMSTZhLxSCofVV5W6YFM/w=
@@ -602,14 +602,14 @@
 cloud.google.com/go/workflows v1.10.0/go.mod 
h1:fZ8LmRmZQWacon9UCX1r/g/DfAXx5VcPALq2CxzdePw=
 cuelabs.dev/go/oci/ociregistry v0.0.0-20241125120445-2c00c104c6e1 
h1:mRwydyTyhtRX2wXS3mqYWzR2qlv6KsmoKXmlz5vInjg=
 cuelabs.dev/go/oci/ociregistry v0.0.0-20241125120445-2c00c104c6e1/go.mod 
h1:5A4xfTzHTXfeVJBU6RAUf+QrlfTCW+017q/QiW+sMLg=
-cuelang.org/go v0.12.0 h1:q4W5I+RtDIA27rslQyyt6sWkXX0YS9qm43+U1/3e0kU=
-cuelang.org/go v0.12.0/go.mod h1:B4+kjvGGQnbkz+GuAv1dq/R308gTkp0sO28FdMrJ2Kw=
+cuelang.org/go v0.12.1 h1:5I+zxmXim9MmiN2tqRapIqowQxABv2NKTgbOspud1Eo=
+cuelang.org/go v0.12.1/go.mod h1:B4+kjvGGQnbkz+GuAv1dq/R308gTkp0sO28FdMrJ2Kw=
 dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod 
h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
 gioui.org v0.0.0-20210308172011-57750fc8a0a6/go.mod 
h1:RSH6KIUZ0p2xy5zHDxgAM4zumjgTw83q2ge/PI+yyw8=
 git.sr.ht/~sbinet/gg v0.3.1/go.mod 
h1:KGYtlADtqsqANL9ueOFkWymvzUvLMQllU5Ixo+8v3pc=
 github.com/BurntSushi/toml v0.3.1/go.mod 
h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
-github.com/BurntSushi/toml v1.4.0 
h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0=
-github.com/BurntSushi/toml v1.4.0/go.mod 
h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
+github.com/BurntSushi/toml v1.5.0 
h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg=
+github.com/BurntSushi/toml v1.5.0/go.mod 
h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
 github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod 
h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
 github.com/CycloneDX/cyclonedx-go v0.9.2 
h1:688QHn2X/5nRezKe2ueIVCt+NRqf7fl3AVQk+vaFcIo=
 github.com/CycloneDX/cyclonedx-go v0.9.2/go.mod 
h1:vcK6pKgO1WanCdd61qx4bFnSsDJQ6SbM2ZuMIgq86Jg=
@@ -617,7 +617,6 @@
 github.com/KeisukeYamashita/go-vcl v0.4.0 
h1:dFxZq2yVeaCWBJAT7Oh9Z+Pp8y32i7b11QHdzsuBcsk=
 github.com/KeisukeYamashita/go-vcl v0.4.0/go.mod 
h1:af2qGlXbsHDQN5abN7hyGNKtGhcFSaDdbLl4sfud+AU=
 github.com/OneOfOne/xxhash v1.2.2/go.mod 
h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
-github.com/agext/levenshtein v1.2.1/go.mod 
h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558=
 github.com/agext/levenshtein v1.2.3 
h1:YB2fHEn0UJagG8T1rrWknE3ZQzWM06O8AMAatNn7lmo=
 github.com/agext/levenshtein v1.2.3/go.mod 
h1:JEDfjyjHDjOF/1e4FlBE/PkbqA9OfWu2ki2W0IB5558=
 github.com/agnivade/levenshtein v1.0.1/go.mod 
h1:CURSv5d9Uaml+FovSIICkLbAUZ9S4RqaHDIsdSBg7lM=
@@ -635,11 +634,9 @@
 github.com/apache/arrow/go/v10 v10.0.1/go.mod 
h1:YvhnlEePVnBS4+0z3fhPfUy7W1Ikj0Ih0vcRo/gZ1M0=
 github.com/apache/arrow/go/v11 v11.0.0/go.mod 
h1:Eg5OsL5H+e299f7u5ssuXsuHQVEGC4xei5aX110hRiI=
 github.com/apache/thrift v0.16.0/go.mod 
h1:PHK3hniurgQaNMZYaCLEqXKsYK8upmhPbmdP2FXSqgU=
-github.com/apparentlymart/go-dump v0.0.0-20180507223929-23540a00eaa3/go.mod 
h1:oL81AME2rN47vu18xqj1S1jPIPuN7afo62yKTNn3XMM=
-github.com/apparentlymart/go-textseg v1.0.0/go.mod 
h1:z96Txxhf3xSFMPmb5X/1W05FF/Nj9VFpLOpjS5yuumk=
-github.com/apparentlymart/go-textseg/v12 v12.0.0/go.mod 
h1:S/4uRK2UtaQttw1GenVJEynmyUenKwP++x/+DdGV/Ec=
-github.com/apparentlymart/go-textseg/v13 v13.0.0 
h1:Y+KvPE1NYz0xl601PVImeQfFyEy6iT90AvPUL1NNfNw=
 github.com/apparentlymart/go-textseg/v13 v13.0.0/go.mod 
h1:ZK2fH7c4NqDTLtiYLvIkEghdlcqw7yxLeM89kiTRPUo=
+github.com/apparentlymart/go-textseg/v15 v15.0.0 
h1:uYvfpb3DyLSCGWnctWKGj857c6ew1u1fNQOlOtuGxQY=
+github.com/apparentlymart/go-textseg/v15 v15.0.0/go.mod 
h1:K8XmNZdhEBkdlyDdvbmmsvpAG721bKi0joRfFdHIWJ4=
 github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0 
h1:jfIu9sQUG6Ig+0+Ap1h4unLjW6YQJpKZVmUzxsD4E/Q=
 github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0/go.mod 
h1:t2tdKJDJF9BV14lnkjHmOQgcvEKgtqs5a1N3LNdJhGE=
 github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod 
h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=
@@ -704,8 +701,8 @@
 github.com/davecgh/go-spew v1.1.1/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc 
h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
 github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/dgraph-io/badger/v4 v4.5.1 
h1:7DCIXrQjo1LKmM96YD+hLVJ2EEsyyoWxJfpdd56HLps=
-github.com/dgraph-io/badger/v4 v4.5.1/go.mod 
h1:qn3Be0j3TfV4kPbVoK0arXCD1/nr1ftth6sbL5jxdoA=
+github.com/dgraph-io/badger/v4 v4.6.0 
h1:acOwfOOZ4p1dPRnYzvkVm7rUk2Y21TgPVepCy5dJdFQ=
+github.com/dgraph-io/badger/v4 v4.6.0/go.mod 
h1:KSJ5VTuZNC3Sd+YhvVjk2nYua9UZnnTr/SkXvdtiPgI=
 github.com/dgraph-io/ristretto/v2 v2.1.0 
h1:59LjpOJLNDULHh8MC4UaegN52lC4JnO2dITsie/Pa8I=
 github.com/dgraph-io/ristretto/v2 v2.1.0/go.mod 
h1:uejeqfYXpUomfse0+lO+13ATz4TypQYLJZzBSAemuB4=
 github.com/dgryski/trifles v0.0.0-20230903005119-f50d829f2e54 
h1:SG7nF6SRlWhcT7cNTs5R6Hk4V2lcmLz2NsG2VnInyNo=
@@ -771,8 +768,8 @@
 github.com/go-pdf/fpdf v0.6.0/go.mod 
h1:HzcnA+A23uwogo0tp9yU+l3V+KXhiESpt1PMayhOh5M=
 github.com/go-quicktest/qt v1.101.0 
h1:O1K29Txy5P2OK0dGo59b7b0LR6wKfIhttaAhHUyn7eI=
 github.com/go-quicktest/qt v1.101.0/go.mod 
h1:14Bz/f7NwaXPtdYEgzsx46kqSxVwTbzVZsDC26tQJow=
-github.com/go-test/deep v1.0.3 h1:ZrJSEWsXzPOxaZnFteGEfooLba+ju3FYIbOrS+rQd68=
-github.com/go-test/deep v1.0.3/go.mod 
h1:wGDj63lr65AM2AQyKZd/NYHGb0R+1RLqB8NKt3aSFNA=
+github.com/go-test/deep v1.0.7 h1:/VSMRlnY/JSyqxQUzQLKVMAskpY/NZKFA5j2P+0pP2M=
+github.com/go-test/deep v1.0.7/go.mod 
h1:QV8Hv/iy04NyLBxAdO9njL0iVPN1S4d/A3NVv1V36o8=
 github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
 github.com/gobwas/glob v0.2.3/go.mod 
h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=
 github.com/goccy/go-json v0.9.11/go.mod 
h1:6MelG93GURQebXPDq3khkgXZkazVtN9CRI+MGFi0w8I=
@@ -797,7 +794,6 @@
 github.com/golang/mock v1.4.4/go.mod 
h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4=
 github.com/golang/mock v1.5.0/go.mod 
h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8=
 github.com/golang/mock v1.6.0/go.mod 
h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs=
-github.com/golang/protobuf v1.1.0/go.mod 
h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 github.com/golang/protobuf v1.2.0/go.mod 
h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 github.com/golang/protobuf v1.3.1/go.mod 
h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
 github.com/golang/protobuf v1.3.2/go.mod 
h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
@@ -823,8 +819,8 @@
 github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod 
h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
 github.com/google/btree v1.0.0/go.mod 
h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
 github.com/google/flatbuffers v2.0.8+incompatible/go.mod 
h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8=
-github.com/google/flatbuffers v24.12.23+incompatible 
h1:ubBKR94NR4pXUCY/MUsRVzd9umNW7ht7EG9hHfS9FX8=
-github.com/google/flatbuffers v24.12.23+incompatible/go.mod 
h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8=
+github.com/google/flatbuffers v25.2.10+incompatible 
h1:F3vclr7C3HpB1k9mxCGRMXq6FdUalZ6H/pNX4FP1v0Q=
+github.com/google/flatbuffers v25.2.10+incompatible/go.mod 
h1:1AeVuKshWv4vARoZatz6mlQ0JxURH0Kv5+zNeJKJCa8=
 github.com/google/go-cmp v0.2.0/go.mod 
h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
 github.com/google/go-cmp v0.3.0/go.mod 
h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
 github.com/google/go-cmp v0.3.1/go.mod 
h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
@@ -902,8 +898,8 @@
 github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod 
h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw=
 github.com/grpc-ecosystem/grpc-gateway/v2 v2.7.0/go.mod 
h1:hgWBS7lorOAVIJEQMi4ZsPv9hVvWI6+ch50m39Pf2Ks=
 github.com/grpc-ecosystem/grpc-gateway/v2 v2.11.3/go.mod 
h1:o//XUCC/F+yRGJoPO/VU0GSB0f8Nhgmxx0VIRUvaC0w=
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.25.1 
h1:VNqngBF40hVlDloBruUehVYC3ArSgIyScOAyMRqBxRg=
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.25.1/go.mod 
h1:RBRO7fro65R6tjKzYgLAFo0t1QEXY1Dp+i/bvpRiqiQ=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.1 
h1:e9Rjr40Z98/clHv5Yg79Is0NtosR5LXRvdr7o/6NwbA=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.26.1/go.mod 
h1:tIxuGz/9mpox++sgp9fJjHO0+q1X9/UOWd798aAm22M=
 github.com/hashicorp/go-cleanhttp v0.5.2 
h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ=
 github.com/hashicorp/go-cleanhttp v0.5.2/go.mod 
h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48=
 github.com/hashicorp/go-getter v1.7.8 
h1:mshVHx1Fto0/MydBekWan5zUipGq7jO0novchgMmSiY=
@@ -916,9 +912,8 @@
 github.com/hashicorp/golang-lru v0.5.1/go.mod 
h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
 github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
 github.com/hashicorp/hcl v1.0.0/go.mod 
h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
-github.com/hashicorp/hcl/v2 v2.6.0/go.mod 
h1:bQTN5mpo+jewjJgh8jr0JUguIi7qPHUF6yIfAEN3jqY=
-github.com/hashicorp/hcl/v2 v2.17.0 
h1:z1XvSUyXd1HP10U4lrLg5e0JMVz6CPaJvAgxM0KNZVY=
-github.com/hashicorp/hcl/v2 v2.17.0/go.mod 
h1:gJyW2PTShkJqQBKpAmPO3yxMxIuoXkOF2TpqXzrQyx4=
+github.com/hashicorp/hcl/v2 v2.23.0 
h1:Fphj1/gCylPxHutVSEOf2fBOh1VE4AuLV7+kbJf3qos=
+github.com/hashicorp/hcl/v2 v2.23.0/go.mod 
h1:62ZYHrXgPoX8xBnzl8QzbWq4dyDsDtfCRgIq1rbJEvA=
 github.com/iancoleman/strcase v0.2.0/go.mod 
h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho=
 github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod 
h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
 github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod 
h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc=
@@ -942,8 +937,8 @@
 github.com/klauspost/asmfmt v1.3.2/go.mod 
h1:AG8TuvYojzulgDAMCnYn50l/5QV3Bs/tp6j0HLHbNSE=
 github.com/klauspost/compress v1.15.9/go.mod 
h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU=
 github.com/klauspost/compress v1.15.11/go.mod 
h1:QPwzmACJjUTFsnSHH934V6woptycfrDDJnH7hvFVbGM=
-github.com/klauspost/compress v1.17.11 
h1:In6xLpyWOi1+C7tXUUWv2ot1QvBjxevKAaI6IXrJmUc=
-github.com/klauspost/compress v1.17.11/go.mod 
h1:pMDklpSncoRMuLFrf1W9Ss9KT+0rH90U12bZKk7uwG0=
+github.com/klauspost/compress v1.18.0 
h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo=
+github.com/klauspost/compress v1.18.0/go.mod 
h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ=
 github.com/klauspost/cpuid/v2 v2.0.9/go.mod 
h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
 github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
 github.com/kr/pretty v0.1.0/go.mod 
h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
@@ -955,9 +950,6 @@
 github.com/kr/text v0.1.0/go.mod 
h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
 github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
 github.com/kr/text v0.2.0/go.mod 
h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
-github.com/kylelemons/godebug v0.0.0-20170820004349-d65d576e9348/go.mod 
h1:B69LEHPfb2qLo0BaaOLcbitczOKLWTsrBG9LczfCD4k=
-github.com/kylelemons/godebug v1.1.0 
h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
-github.com/kylelemons/godebug v1.1.0/go.mod 
h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
 github.com/lib/pq v1.10.7 h1:p7ZhMD+KsSRozJr34udlUrhboJwWAgCg34+/ZZNvZZw=
 github.com/lib/pq v1.10.7/go.mod 
h1:AlVN5x4E4T544tWzH6hKfbfQvm3HdbOxrmggDNAPY9o=
 github.com/logrusorgru/aurora v2.0.3+incompatible 
h1:tOpm7WcpBTn4fjmVfgpQq0EfczGlG91VSDkswnjF5A8=
@@ -966,8 +958,8 @@
 github.com/lyft/protoc-gen-star v0.6.1/go.mod 
h1:TGAoBVkt8w7MPG72TrKIu85MIdXwDuzJYeZuUPFPNwA=
 github.com/lyft/protoc-gen-star/v2 v2.0.1/go.mod 
h1:RcCdONR2ScXaYnQC5tUzxzlpA3WVYF7/opLeUgcQs/o=
 github.com/magiconair/properties v1.8.0/go.mod 
h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
-github.com/magiconair/properties v1.8.9 
h1:nWcCbLq1N2v/cpNsy5WvQ37Fb+YElfq20WJ/a8RkpQM=
-github.com/magiconair/properties v1.8.9/go.mod 
h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
+github.com/magiconair/properties v1.8.10 
h1:s31yESBquKXCV9a/ScB3ESkOjUYYv+X0rg8SYxI99mE=
+github.com/magiconair/properties v1.8.10/go.mod 
h1:Dhd985XPs7jluiymwWYZ0G4Z61jb3vdS329zhj2hYo0=
 github.com/mattn/go-colorable v0.0.9/go.mod 
h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
 github.com/mattn/go-colorable v0.1.4/go.mod 
h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
 github.com/mattn/go-isatty v0.0.8/go.mod 
h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
@@ -986,26 +978,25 @@
 github.com/mitchellh/go-homedir v1.1.0/go.mod 
h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
 github.com/mitchellh/go-testing-interface v1.14.1 
h1:jrgshOhYAUVNMAJiKbEu7EqAwgJJ2JqpQmpLJOu07cU=
 github.com/mitchellh/go-testing-interface v1.14.1/go.mod 
h1:gfgS7OtZj6MA4U1UrDRp04twqAjfvlZyCfX3sDjEym8=
-github.com/mitchellh/go-wordwrap v0.0.0-20150314170334-ad45545899c7/go.mod 
h1:ZXFpozHsX6DPmq2I0TCekCxypsnAUbP2oI0UX1GXzOo=
 github.com/mitchellh/go-wordwrap v1.0.1 
h1:TLuKupo69TCn6TQSyGxwI1EblZZEsQ0vMlAFQflz0v0=
 github.com/mitchellh/go-wordwrap v1.0.1/go.mod 
h1:R62XHJLzvMFRBbcrT7m7WgmE1eOyTSsCt+hzestvNj0=
 github.com/mitchellh/mapstructure v1.1.2/go.mod 
h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
 github.com/mitchellh/mapstructure v1.5.0 
h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY=
 github.com/mitchellh/mapstructure v1.5.0/go.mod 
h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
-github.com/moby/buildkit v0.20.0 
h1:aF5RujjQ310Pn6SLL/wQYIrSsPXy0sQ5KvWifwq1h8Y=
-github.com/moby/buildkit v0.20.0/go.mod 
h1:HYFUIK+iGDRxRgdphZ9Nv0y1Fz7mv0HrU7xZoXx217E=
+github.com/moby/buildkit v0.20.2 
h1:qIeR47eQ1tzI1rwz0on3Xx2enRw/1CKjFhoONVcTlMA=
+github.com/moby/buildkit v0.20.2/go.mod 
h1:DhaF82FjwOElTftl0JUAJpH/SUIUx4UvcFncLeOtlDI=
 github.com/moby/docker-image-spec v1.3.1 
h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0=
 github.com/moby/docker-image-spec v1.3.1/go.mod 
h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo=
 github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 
h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
 github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod 
h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
 github.com/olekukonko/tablewriter v0.0.5 
h1:P2Ga83D34wi1o9J6Wh1mRuqd4mF/x/lgBS7N7AbDhec=
 github.com/olekukonko/tablewriter v0.0.5/go.mod 
h1:hPp6KlRPjbx+hW8ykQs1w3UBbZlj6HuIJcUGPhkA7kY=
-github.com/open-policy-agent/opa v1.2.0 
h1:88NDVCM0of1eO6Z4AFeL3utTEtMuwloFmWWU7dRV1z0=
-github.com/open-policy-agent/opa v1.2.0/go.mod 
h1:30euUmOvuBoebRCcJ7DMF42bRBOPznvt0ACUMYDUGVY=
+github.com/open-policy-agent/opa v1.3.0 
h1:zVvQvQg+9+FuSRBt4LgKNzJwsWl/c85kD5jPozJTydY=
+github.com/open-policy-agent/opa v1.3.0/go.mod 
h1:t9iPNhaplD2qpiBqeudzJtEX3fKHK8zdA29oFvofAHo=
 github.com/opencontainers/go-digest v1.0.0 
h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8Oi/yOhh5U=
 github.com/opencontainers/go-digest v1.0.0/go.mod 
h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM=
-github.com/opencontainers/image-spec v1.1.0 
h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug=
-github.com/opencontainers/image-spec v1.1.0/go.mod 
h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM=
+github.com/opencontainers/image-spec v1.1.1 
h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040=
+github.com/opencontainers/image-spec v1.1.1/go.mod 
h1:qpqAh3Dmcf36wStyyWU+kCeDgrGnAve2nCC8+7h8Q0M=
 github.com/owenrumney/go-sarif v1.1.1/go.mod 
h1:dNDiPlF04ESR/6fHlPyq7gHKmrM0sHUvAGjsoh8ZH0U=
 github.com/owenrumney/go-sarif/v2 v2.3.3 
h1:ubWDJcF5i3L/EIOER+ZyQ03IfplbSU1BLOE26uKQIIU=
 github.com/owenrumney/go-sarif/v2 v2.3.3/go.mod 
h1:MSqMMx9WqlBSY7pXoOZWgEsVB4FDNfhcaXDA1j6Sr+w=
@@ -1027,8 +1018,8 @@
 github.com/pmezard/go-difflib v1.0.0/go.mod 
h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 
h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U=
 github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod 
h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/prometheus/client_golang v1.21.0 
h1:DIsaGmiaBkSangBgMtWdNfxbMNdku5IK6iNhrEqWvdA=
-github.com/prometheus/client_golang v1.21.0/go.mod 
h1:U9NM32ykUErtVBxdvD3zfi+EuFkkaBvMb09mIfe0Zgg=
+github.com/prometheus/client_golang v1.21.1 
h1:DOvXXTqVzvkIewV/CDPFdejpMCGeMcbGCQ8YOmu+Ibk=
+github.com/prometheus/client_golang v1.21.1/go.mod 
h1:U9NM32ykUErtVBxdvD3zfi+EuFkkaBvMb09mIfe0Zgg=
 github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod 
h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
 github.com/prometheus/client_model v0.2.0/go.mod 
h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
 github.com/prometheus/client_model v0.3.0/go.mod 
h1:LDGWKZIo7rky3hgvBe+caln+Dr3dPggB5dvjtD7w9+w=
@@ -1086,7 +1077,6 @@
 github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo=
 github.com/spf13/cobra v1.9.1/go.mod 
h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0=
 github.com/spf13/jwalterweatherman v1.0.0/go.mod 
h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
-github.com/spf13/pflag v1.0.2/go.mod 
h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
 github.com/spf13/pflag v1.0.3/go.mod 
h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
 github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o=
 github.com/spf13/pflag v1.0.6/go.mod 
h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
@@ -1117,8 +1107,10 @@
 github.com/tchap/go-patricia/v2 v2.3.2/go.mod 
h1:VZRHKAb53DLaG+nA9EaYYiaEx6YztwDlLElMsnSHD4k=
 github.com/terminalstatic/go-xsd-validate v0.1.6 
h1:TenYeQ3eY631qNi1/cTmLH/s2slHPRKTTHT+XSHkepo=
 github.com/terminalstatic/go-xsd-validate v0.1.6/go.mod 
h1:18lsvYFofBflqCrvo1umpABZ99+GneNTw2kEEc8UPJw=
-github.com/tmccombs/hcl2json v0.3.1 
h1:Pf+Lb9OpZ5lkQuIC0BB5txdCQskZ2ud/l8sz/Nkjf3A=
-github.com/tmccombs/hcl2json v0.3.1/go.mod 
h1:ljY0/prd2IFUF3cagQjV3cpPEEQKzqyGqnKI7m5DBVY=
+github.com/tmccombs/hcl2json v0.6.5 
h1:SieU9/Xdsx0kRRtZcms+5CjXaWsl7LKnuSmtKGFGjx4=
+github.com/tmccombs/hcl2json v0.6.5/go.mod 
h1:ANXQ1E2omHPISSL1R5iRuL2HoYtrKKefPzTI7XUD+IQ=
+github.com/tmccombs/hcl2json v0.6.7 
h1:RYKTs4kd/gzRsEiv7J3M2WQ7TYRYZVc+0H0pZdERkxA=
+github.com/tmccombs/hcl2json v0.6.7/go.mod 
h1:lJgBOOGDpbhjvdG2dLaWsqB4KBzul2HytfDTS3H465o=
 github.com/tonistiigi/go-csvvalue v0.0.0-20240710180619-ddb21b71c0b4 
h1:7I5c2Ig/5FgqkYOh/N87NzoyI9U15qUPXhDD8uCupv8=
 github.com/tonistiigi/go-csvvalue v0.0.0-20240710180619-ddb21b71c0b4/go.mod 
h1:278M4p8WsNh3n4a1eqiFcV2FGk7wE5fwUpUom9mK9lE=
 github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod 
h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=
@@ -1126,7 +1118,6 @@
 github.com/ulikunitz/xz v0.5.11 h1:kpFauv27b6ynzBNT/Xy+1k+fK4WswhN/6PN5WhFAGw8=
 github.com/ulikunitz/xz v0.5.11/go.mod 
h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
 github.com/vektah/gqlparser v1.2.0/go.mod 
h1:bkVf0FX+Stjg/MHnm8mEyubuaArhNEqfQhF+OTiAL74=
-github.com/vmihailenco/msgpack v3.3.3+incompatible/go.mod 
h1:fy3FlTQTDXWkZ7Bh6AcGMlsjHatGryHQYUTf1ShIgkk=
 github.com/vmihailenco/msgpack/v4 v4.3.12/go.mod 
h1:gborTTJjAo/GWTqqRjrLCn9pgNN+NXzzngzBKDPIqw4=
 github.com/vmihailenco/tagparser v0.1.1/go.mod 
h1:OeAg3pn3UbLjkWt+rN9oFYB6u/cQgqMEUPoW2WPyhdI=
 github.com/willf/bitset v1.1.10/go.mod 
h1:RjeCKbqT1RxIR/KWY6phxZiaY1IyutSBfGjNPySAYV4=
@@ -1146,11 +1137,13 @@
 github.com/yuin/goldmark v1.3.5/go.mod 
h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
 github.com/yuin/goldmark v1.4.1/go.mod 
h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
 github.com/yuin/goldmark v1.4.13/go.mod 
h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
-github.com/zclconf/go-cty v1.2.0/go.mod 
h1:hOPWgoHbaTUnI5k4D2ld+GRpFJSCe6bCM7m1q/N4PQ8=
-github.com/zclconf/go-cty v1.6.1/go.mod 
h1:VDR4+I79ubFBGm1uJac1226K5yANQFHeauxPBoP54+o=
 github.com/zclconf/go-cty v1.10.0/go.mod 
h1:vVKLxnk3puL4qRAv72AO+W99LUD4da90g3uUAzyuvAk=
-github.com/zclconf/go-cty v1.13.2 
h1:4GvrUxe/QUDYuJKAav4EYqdM47/kZa672LwmXFmEKT0=
-github.com/zclconf/go-cty v1.13.2/go.mod 
h1:YKQzy/7pZ7iq2jNFzy5go57xdxdWoLLpaEp4u238AE0=
+github.com/zclconf/go-cty v1.15.1 
h1:RgQYm4j2EvoBRXOPxhUvxPzRrGDo1eCOhHXuGfrj5S0=
+github.com/zclconf/go-cty v1.15.1/go.mod 
h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE=
+github.com/zclconf/go-cty v1.16.2 
h1:LAJSwc3v81IRBZyUVQDUdZ7hs3SYs9jv0eZJDWHD/70=
+github.com/zclconf/go-cty v1.16.2/go.mod 
h1:VvMs5i0vgZdhYawQNq5kePSpLAoz8u1xvZgrPIxfnZE=
+github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940 
h1:4r45xpDWB6ZMSMNJFMOjqrGHynW3DIBuR2H9j0ug+Mo=
+github.com/zclconf/go-cty-debug v0.0.0-20240509010212-0d6042c53940/go.mod 
h1:CmBdvvj3nqzfzJ6nTCIwDTPZ56aVGvDrmztiO5g3qrM=
 github.com/zeebo/assert v1.3.0/go.mod 
h1:Pq9JiuJQpG8JLJdtkwrJESF0Foym2/D9XMU5ciN/wJ0=
 github.com/zeebo/xxh3 v1.0.2/go.mod 
h1:5NWz9Sef7zIDm2JHfFlcQvNekmcEl9ekUZQQKCYaDcA=
 go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
@@ -1166,22 +1159,24 @@
 go.opentelemetry.io/auto/sdk v1.1.0/go.mod 
h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc 
v0.56.0 h1:yMkBS9yViCc7U7yeLzJPM2XizlfdVvBRSmsQDWu6qc0=
 go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc 
v0.56.0/go.mod h1:n8MR6/liuGB5EmTETUBeU5ZgqMOlqKRxUaqPQBOANZ8=
-go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0 
h1:CV7UdSGJt/Ao6Gp4CXckLxVRRsRgDHoI8XjbL3PDl8s=
-go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.59.0/go.mod 
h1:FRmFuRJfag1IZ2dPkHnEoSFVgTVPUd2qf5Vi69hLb8I=
-go.opentelemetry.io/otel v1.34.0 
h1:zRLXxLCgL1WyKsPVrgbSdMN4c0FMkDAskSTQP+0hdUY=
-go.opentelemetry.io/otel v1.34.0/go.mod 
h1:OWFPOQ+h4G8xpyjgqo4SxJYdDQ/qmRH+wivy7zzx9oI=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0 
h1:OeNbIYk/2C15ckl7glBlOBp5+WlYsOElzTNmiPW/x60=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.34.0/go.mod 
h1:7Bept48yIeqxP2OZ9/AqIpYS94h2or0aB4FypJTc8ZM=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0 
h1:tgJ0uaNS4c98WRNUEx5U3aDlrDOI5Rs+1Vifcw4DJ8U=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.34.0/go.mod 
h1:U7HYyW0zt/a9x5J1Kjs+r1f/d4ZHnYFclhYY2+YbeoE=
-go.opentelemetry.io/otel/metric v1.34.0 
h1:+eTR3U0MyfWjRDhmFMxe2SsW64QrZ84AOhvqS7Y+PoQ=
-go.opentelemetry.io/otel/metric v1.34.0/go.mod 
h1:CEDrp0fy2D0MvkXE+dPV7cMi8tWZwX3dmaIhwPOaqHE=
-go.opentelemetry.io/otel/sdk v1.34.0 
h1:95zS4k/2GOy069d321O8jWgYsW3MzVV+KuSPKp7Wr1A=
-go.opentelemetry.io/otel/sdk v1.34.0/go.mod 
h1:0e/pNiaMAqaykJGKbi+tSjWfNNHMTxoC9qANsCzbyxU=
-go.opentelemetry.io/otel/sdk/metric v1.32.0 
h1:rZvFnvmvawYb0alrYkjraqJq0Z4ZUJAiyYCU9snn1CU=
-go.opentelemetry.io/otel/sdk/metric v1.32.0/go.mod 
h1:PWeZlq0zt9YkYAp3gjKZ0eicRYvOh1Gd+X99x6GHpCQ=
-go.opentelemetry.io/otel/trace v1.34.0 
h1:+ouXS2V8Rd4hp4580a8q23bg0azF2nI8cqLYnC8mh/k=
-go.opentelemetry.io/otel/trace v1.34.0/go.mod 
h1:Svm7lSjQD7kG7KJ/MUHPVXSDGz2OX4h0M2jHBhmSfRE=
+go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0 
h1:sbiXRNDSWJOTobXh5HyQKjq6wUC5tNybqjIqDpAY4CU=
+go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.60.0/go.mod 
h1:69uWxva0WgAA/4bu2Yy70SLDBwZXuQ6PbBpbsa5iZrQ=
+go.opentelemetry.io/otel v1.35.0 
h1:xKWKPxrxB6OtMCbmMY021CqC45J+3Onta9MqjhnusiQ=
+go.opentelemetry.io/otel v1.35.0/go.mod 
h1:UEqy8Zp11hpkUrL73gSlELM0DupHoiq72dR+Zqel/+Y=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0 
h1:1fTNlAIJZGWLP5FVu0fikVry1IsiUnXjf7QFvoNN3Xw=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.35.0/go.mod 
h1:zjPK58DtkqQFn+YUMbx0M2XV3QgKU0gS9LeGohREyK4=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0 
h1:m639+BofXTvcY1q8CGs4ItwQarYtJPOWmVobfM1HpVI=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.35.0/go.mod 
h1:LjReUci/F4BUyv+y4dwnq3h/26iNOeC3wAIqgvTIZVo=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.35.0 
h1:xJ2qHD0C1BeYVTLLR9sX12+Qb95kfeD/byKj6Ky1pXg=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.35.0/go.mod 
h1:u5BF1xyjstDowA1R5QAO9JHzqK+ublenEW/dyqTjBVk=
+go.opentelemetry.io/otel/metric v1.35.0 
h1:0znxYu2SNyuMSQT4Y9WDWej0VpcsxkuklLa4/siN90M=
+go.opentelemetry.io/otel/metric v1.35.0/go.mod 
h1:nKVFgxBZ2fReX6IlyW28MgZojkoAkJGaE8CpgeAU3oE=
+go.opentelemetry.io/otel/sdk v1.35.0 
h1:iPctf8iprVySXSKJffSS79eOjl9pvxV9ZqOWT0QejKY=
+go.opentelemetry.io/otel/sdk v1.35.0/go.mod 
h1:+ga1bZliga3DxJ3CQGg3updiaAJoNECOgJREo9KHGQg=
+go.opentelemetry.io/otel/sdk/metric v1.35.0 
h1:1RriWBmCKgkeHEhM7a2uMjMUfP7MsOF5JpUCaEqEI9o=
+go.opentelemetry.io/otel/sdk/metric v1.35.0/go.mod 
h1:is6XYCUMpcKi+ZsOvfluY5YstFnhW0BidkR+gL+qN+w=
+go.opentelemetry.io/otel/trace v1.35.0 
h1:dPpEfJu1sDIqruz7BHFG3c7528f6ddfSWfFDVt/xgMs=
+go.opentelemetry.io/otel/trace v1.35.0/go.mod 
h1:WUk7DtFp1Aw2MkvqGdwiXYDZZNvA/1J8o6xRXLrIkyc=
 go.opentelemetry.io/proto/otlp v0.7.0/go.mod 
h1:PqfVotwruBrMGOCsRd/89rSnXhoiJIqeYNgFYFoEGnI=
 go.opentelemetry.io/proto/otlp v0.15.0/go.mod 
h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U=
 go.opentelemetry.io/proto/otlp v0.19.0/go.mod 
h1:H7XAot3MsfNsj7EXtrA2q5xSNQ10UqI405h3+duxN4U=
@@ -1189,11 +1184,12 @@
 go.opentelemetry.io/proto/otlp v1.5.0/go.mod 
h1:keN8WnHxOy8PG0rQZjJJ5A2ebUoafqWp0eVQ4yIXvJ4=
 go.uber.org/atomic v1.9.0 h1:ECmE8Bn/WFTYwEW/bpKD3M8VtR/zQVbavAoalC1PYyE=
 go.uber.org/atomic v1.9.0/go.mod 
h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc=
+go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
+go.uber.org/goleak v1.3.0/go.mod 
h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
 go.uber.org/multierr v1.9.0 h1:7fIwc/ZtS0q++VgcfqFDxSBZVv/Xo49/SYnDFupUwlI=
 go.uber.org/multierr v1.9.0/go.mod 
h1:X2jQV1h+kxSjClGpnseKVIxpmcjrj7MNnI0bnlfKTVQ=
 golang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod 
h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
 golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod 
h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.0.0-20190426145343-a29dc8fdc734/go.mod 
h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod 
h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod 
h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
 golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod 
h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
@@ -1206,8 +1202,10 @@
 golang.org/x/crypto v0.19.0/go.mod 
h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU=
 golang.org/x/crypto v0.23.0/go.mod 
h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8=
 golang.org/x/crypto v0.32.0/go.mod 
h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc=
-golang.org/x/crypto v0.33.0 h1:IOBPskki6Lysi0lo9qQvbxiQ+FvsCC/YWOecCHAixus=
-golang.org/x/crypto v0.33.0/go.mod 
h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M=
+golang.org/x/crypto v0.36.0 h1:AnAEvhDddvBdpY+uR+MyHmuZzzNqXSe/GvuDeob5L34=
+golang.org/x/crypto v0.36.0/go.mod 
h1:Y4J0ReaxCR1IMaabaSMugxJES1EpwhBHhv2bDHklZvc=
+golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE=
+golang.org/x/crypto v0.37.0/go.mod 
h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc=
 golang.org/x/exp v0.0.0-20180321215751-8460e604b9de/go.mod 
h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20180807140117-3d87b88a115f/go.mod 
h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
 golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod 
h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
@@ -1272,8 +1270,9 @@
 golang.org/x/mod v0.17.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c=
 golang.org/x/mod v0.22.0 h1:D4nJWe9zXqHOmWqj4VMOJhvzj7bEZg4wEYa759z1pH4=
 golang.org/x/mod v0.22.0/go.mod h1:6SkKJ3Xj0I0BrPOZoBy3bdMptDDU9oJrpohJ3eWZ1fY=
+golang.org/x/mod v0.24.0 h1:ZfthKaKaT4NrhGVZHO1/WDTwGES4De8KtWO0SIbNJMU=
+golang.org/x/mod v0.24.0/go.mod h1:IXM97Txy2VM4PJ3gI61r1YEk/gAj6zAHN3AdZt6S9Ww=
 golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
 golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod 
h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -1335,8 +1334,10 @@
 golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44=
 golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM=
 golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k=
-golang.org/x/net v0.35.0 h1:T5GQRQb2y08kTAByq9L4/bz8cipCdA8FbRTXewonqY8=
-golang.org/x/net v0.35.0/go.mod h1:EglIi67kWsHKlRzzVMUD93VMSWGFOMSZgxFjparz1Qk=
+golang.org/x/net v0.37.0 h1:1zLorHbz+LYj7MQlSf1+2tPIIgibq2eL5xkrGk6f+2c=
+golang.org/x/net v0.37.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8=
+golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY=
+golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E=
 golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod 
h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
 golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod 
h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
 golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod 
h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
@@ -1366,8 +1367,8 @@
 golang.org/x/oauth2 v0.5.0/go.mod 
h1:9/XBHVqLaWO3/BRHs5jbpYCnOZVjj5V0ndyaAM7KB4I=
 golang.org/x/oauth2 v0.6.0/go.mod 
h1:ycmewcwgD4Rpr3eZJLSB4Kyyljb3qDh40vJ8STE5HKw=
 golang.org/x/oauth2 v0.7.0/go.mod 
h1:hPLQkd9LyjfXTiRohC/41GhcFqxisoUQ99sCUOHO9x4=
-golang.org/x/oauth2 v0.25.0 h1:CY4y7XT9v0cRI9oupztF8AgiIu99L/ksR/Xp/6jrZ70=
-golang.org/x/oauth2 v0.25.0/go.mod 
h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
+golang.org/x/oauth2 v0.26.0 h1:afQXWNNaeC4nvZ0Ed9XvCCzXM6UHJG7iCg0W4fPqSBE=
+golang.org/x/oauth2 v0.26.0/go.mod 
h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
 golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod 
h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -1388,8 +1389,10 @@
 golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
 golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
 golang.org/x/sync v0.10.0/go.mod 
h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
-golang.org/x/sync v0.11.0 h1:GGz8+XQP4FvTTrjZPzNKTMFtSXH80RAzG+5ghFPgK9w=
-golang.org/x/sync v0.11.0/go.mod 
h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
+golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw=
+golang.org/x/sync v0.12.0/go.mod 
h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
+golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610=
+golang.org/x/sync v0.13.0/go.mod 
h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
 golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod 
h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -1397,7 +1400,6 @@
 golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190502175342-a43fa875dd82/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
 golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod 
h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -1476,8 +1478,10 @@
 golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
 golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
 golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
-golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc=
-golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik=
+golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
+golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20=
+golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
 golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod 
h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE=
 golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod 
h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
 golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod 
h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
@@ -1512,16 +1516,18 @@
 golang.org/x/text v0.14.0/go.mod 
h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
 golang.org/x/text v0.15.0/go.mod 
h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU=
 golang.org/x/text v0.21.0/go.mod 
h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
-golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM=
-golang.org/x/text v0.22.0/go.mod 
h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY=
+golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY=
+golang.org/x/text v0.23.0/go.mod 
h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4=
+golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0=
+golang.org/x/text v0.24.0/go.mod 
h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU=
 golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod 
h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod 
h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod 
h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.0.0-20220922220347-f3bd1da661af/go.mod 
h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.1.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
 golang.org/x/time v0.3.0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
-golang.org/x/time v0.10.0 h1:3usCWA8tQn0L8+hFJQNgzpWbd89begxN66o1Ojdn5L4=
-golang.org/x/time v0.10.0/go.mod 
h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
+golang.org/x/time v0.11.0 h1:/bpjEDfN9tkoN/ryeYHnv5hcMlc8ncjMcM4XBk5NWV0=
+golang.org/x/time v0.11.0/go.mod 
h1:CDIdPxbZBQxdj6cxyCIdrNogrJKMJ7pr37NYpMcMDSg=
 golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod 
h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod 
h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
 golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod 
h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
@@ -1591,6 +1597,8 @@
 golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod 
h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
 golang.org/x/tools v0.29.0 h1:Xx0h3TtM9rzQpQuR4dKLrdglAmCEN5Oi+P74JdhdzXE=
 golang.org/x/tools v0.29.0/go.mod 
h1:KMQVMRsVxU6nHCFXrBPhDB8XncLNLM0lIy/F14RP588=
+golang.org/x/tools v0.32.0 h1:Q7N1vhpkQv7ybVzLFtTjvQya2ewbwNDZzUgfXGqtMWU=
+golang.org/x/tools v0.32.0/go.mod 
h1:ZxrU41P/wAbZD8EDa6dDCa6XfpkhJ7HFMjHJXfBDu8s=
 golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
 golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod 
h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
@@ -1809,10 +1817,10 @@
 google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod 
h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU=
 google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de 
h1:F6qOa9AZTYJXOUEr4jDysRDLrm4PHePlge4v4TGAlxY=
 google.golang.org/genproto v0.0.0-20240227224415-6ceb2ff114de/go.mod 
h1:VUhTRKeHn9wwcdrk73nvdC9gF178Tzhmt/qyaFcPLSo=
-google.golang.org/genproto/googleapis/api v0.0.0-20250115164207-1a7da9e5054f 
h1:gap6+3Gk41EItBuyi4XX/bp4oqJ3UwuIMl25yGinuAA=
-google.golang.org/genproto/googleapis/api 
v0.0.0-20250115164207-1a7da9e5054f/go.mod 
h1:Ic02D47M+zbarjYYUlK57y316f2MoN0gjAwI3f2S95o=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20250115164207-1a7da9e5054f 
h1:OxYkA3wjPsZyBylwymxSHa7ViiW1Sml4ToBrncvFehI=
-google.golang.org/genproto/googleapis/rpc 
v0.0.0-20250115164207-1a7da9e5054f/go.mod 
h1:+2Yz8+CLJbIfL9z73EW45avw8Lmge3xVElCP9zEKi50=
+google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a 
h1:nwKuGPlUAt+aR+pcrkfFRrTU1BVrSmYyYMxYbUIVHr0=
+google.golang.org/genproto/googleapis/api 
v0.0.0-20250218202821-56aae31c358a/go.mod 
h1:3kWAYMk1I75K4vykHtKt2ycnOgpA6974V7bREqbsenU=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a 
h1:51aaUVRocpvUOSQKM6Q7VuoaktNIaMCLuhZB6DKksq4=
+google.golang.org/genproto/googleapis/rpc 
v0.0.0-20250218202821-56aae31c358a/go.mod 
h1:uRxBH1mhmO8PGhU89cMcHaXKZqO+OfakD8QQO0oYwlQ=
 google.golang.org/grpc v1.19.0/go.mod 
h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
 google.golang.org/grpc v1.20.1/go.mod 
h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
 google.golang.org/grpc v1.21.1/go.mod 
h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
@@ -1854,8 +1862,8 @@
 google.golang.org/grpc v1.53.0/go.mod 
h1:OnIrk0ipVdj4N5d9IUoFUx72/VlD7+jUsHwZgwSMQpw=
 google.golang.org/grpc v1.54.0/go.mod 
h1:PUSEXI6iWghWaB6lXM4knEgpJNu2qUcKfDtNci3EC2g=
 google.golang.org/grpc v1.56.3/go.mod 
h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s=
-google.golang.org/grpc v1.70.0 h1:pWFv03aZoHzlRKHWicjsZytKAiYCtNS0dHbXnIdq7jQ=
-google.golang.org/grpc v1.70.0/go.mod 
h1:ofIJqVKDXx/JiXrwr2IG4/zwdH9txy3IlF40RmcJSQw=
+google.golang.org/grpc v1.71.0 h1:kF77BGdPTQ4/JZWMlb9VpJ5pa25aqvVqogsxNHHdeBg=
+google.golang.org/grpc v1.71.0/go.mod 
h1:H0GRtasmQOh9LkFoCPDu3ZrwUtD1YGE+b2vYBYd/8Ec=
 google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod 
h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw=
 google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod 
h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8=
 google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod 
h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0=
@@ -1875,8 +1883,8 @@
 google.golang.org/protobuf v1.29.1/go.mod 
h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
 google.golang.org/protobuf v1.30.0/go.mod 
h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
 google.golang.org/protobuf v1.33.0/go.mod 
h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
-google.golang.org/protobuf v1.36.3 
h1:82DV7MYdb8anAVi3qge1wSnMDrnKK7ebr+I0hHRN1BU=
-google.golang.org/protobuf v1.36.3/go.mod 
h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
+google.golang.org/protobuf v1.36.5 
h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM=
+google.golang.org/protobuf v1.36.5/go.mod 
h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod 
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod 
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c 
h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conftest-0.58.0/mkdocs.yml 
new/conftest-0.59.0/mkdocs.yml
--- old/conftest-0.58.0/mkdocs.yml      2025-03-01 22:51:36.000000000 +0100
+++ new/conftest-0.59.0/mkdocs.yml      2025-04-12 17:41:27.000000000 +0200
@@ -10,6 +10,7 @@
     - "Exceptions": "exceptions.md"
     - "Sharing policies": "sharing.md"
     - "Debugging policies": "debug.md"
+    - "Documenting policies": "documentation.md"
     - "Plugins": "plugins.md"
 markdown_extensions:
     - codehilite
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conftest-0.58.0/parser/hcl2/convert_test.go 
new/conftest-0.59.0/parser/hcl2/convert_test.go
--- old/conftest-0.58.0/parser/hcl2/convert_test.go     2025-03-01 
22:51:36.000000000 +0100
+++ new/conftest-0.59.0/parser/hcl2/convert_test.go     2025-04-12 
17:41:27.000000000 +0200
@@ -1,146 +1,150 @@
 package hcl2
 
 import (
-       "bytes"
-       "encoding/json"
        "testing"
 
-       "github.com/tmccombs/hcl2json/convert"
+       "github.com/google/go-cmp/cmp"
 )
 
-const inputa = `
-resource "aws_elastic_beanstalk_environment" "example" {
-       name        = "test_environment"
-       application = "testing"
-
-       setting {
-         namespace = "aws:autoscaling:asg"
-         name      = "MinSize"
-         value     = "1"
-       }
+func TestHCL2(t *testing.T) {
 
-       dynamic "setting" {
-         for_each = data.consul_key_prefix.environment.var
-         content {
-               heredoc = <<-EOF
-               This is a heredoc template.
-               It references ${local.other.3}
-               EOF
-               simple = "${4 - 2}"
-               cond = test3 > 2 ? 1: 0
-               heredoc2 = <<EOF
-                       Another heredoc, that
-                       doesn't remove indentation
-                       ${local.other.3}
-                       %{if true ? false : true}"gotcha"\n%{else}4%{endif}
-               EOF
-               loop = "This has a for loop: %{for x in local.arr}x,%{endfor}"
-               namespace = "aws:elasticbeanstalk:application:environment"
-               name      = setting.key
-               value     = setting.value
-         }
-       }
-  }`
+       tests := []struct {
+               desc  string
+               input string
+               want  map[string]any
+       }{
+               {
+                       desc: "simple-resources",
+                       input: `
+resource "aws_elastic_beanstalk_environment" "example" {
+  name        = "test_environment"
+  application = "testing"
 
-const outputa = `{
-    "resource": {
-        "aws_elastic_beanstalk_environment": {
-            "example": {
-                "application": "testing",
-                "dynamic": {
-                    "setting": {
-                        "content": {
-                            "cond": "${test3 \u003e 2 ? 1: 0}",
-                            "heredoc": "This is a heredoc template.\nIt 
references ${local.other.3}\n",
-                            "heredoc2": "\t\t\tAnother heredoc, 
that\n\t\t\tdoesn't remove indentation\n\t\t\t${local.other.3}\n\t\t\t%{if true 
? false : true}\"gotcha\"\\n%{else}4%{endif}\n",
-                            "loop": "This has a for loop: %{for x in 
local.arr}x,%{endfor}",
-                            "name": "${setting.key}",
-                            "namespace": 
"aws:elasticbeanstalk:application:environment",
-                            "simple": "${4 - 2}",
-                            "value": "${setting.value}"
-                        },
-                        "for_each": "${data.consul_key_prefix.environment.var}"
-                    }
-                },
-                "name": "test_environment",
-                "setting": {
-                    "name": "MinSize",
-                    "namespace": "aws:autoscaling:asg",
-                    "value": "1"
-                }
-            }
-        }
+  setting {
+    namespace = "aws:autoscaling:asg"
+    name      = "MinSize"
+    value     = "1"
+  }
+
+  dynamic "setting" {
+    for_each = data.consul_key_prefix.environment.var
+    content {
+      heredoc = <<-EOF
+        This is a heredoc template.
+        It references ${local.other.3}
+        EOF
+      simple = "${4 - 2}"
+      cond = test3 > 2 ? 1: 0
+      heredoc2 = <<EOF
+        Another heredoc, that
+        doesn't remove indentation
+        ${local.other.3}
+        %{if true ? false : true}"gotcha"\n%{else}4%{endif}
+      EOF
+      loop = "This has a for loop: %{for x in local.arr}x,%{endfor}"
+      namespace = "aws:elasticbeanstalk:application:environment"
+      name      = setting.key
+      value     = setting.value
     }
-}`
-
-const inputb = `
+  }
+}`,
+                       want: map[string]any{
+                               "resource": map[string]any{
+                                       "aws_elastic_beanstalk_environment": 
map[string]any{
+                                               "example": []any{
+                                                       map[string]any{
+                                                               "name":        
"test_environment",
+                                                               "application": 
"testing",
+                                                               "setting": 
[]any{
+                                                                       
map[string]any{
+                                                                               
"name":      "MinSize",
+                                                                               
"namespace": "aws:autoscaling:asg",
+                                                                               
"value":     "1",
+                                                                       },
+                                                               },
+                                                               "dynamic": 
map[string]any{
+                                                                       
"setting": []any{
+                                                                               
map[string]any{
+                                                                               
        "for_each": "${data.consul_key_prefix.environment.var}",
+                                                                               
        "content": []any{
+                                                                               
                map[string]any{
+                                                                               
                        "cond":      "${test3 \u003e 2 ? 1: 0}",
+                                                                               
                        "heredoc":   "This is a heredoc template.\nIt 
references ${local.other.3}\n",
+                                                                               
                        "heredoc2":  "        Another heredoc, that\n        
doesn't remove indentation\n        ${local.other.3}\n        %{if true ? false 
: true}\"gotcha\"\\n%{else}4%{endif}\n",
+                                                                               
                        "loop":      "This has a for loop: %{for x in 
local.arr}x,%{endfor}",
+                                                                               
                        "name":      "${setting.key}",
+                                                                               
                        "namespace": 
"aws:elasticbeanstalk:application:environment",
+                                                                               
                        "simple":    "${4 - 2}",
+                                                                               
                        "value":     "${setting.value}",
+                                                                               
                },
+                                                                               
        },
+                                                                               
},
+                                                                       },
+                                                               },
+                                                       },
+                                               },
+                                       },
+                               },
+                       },
+               },
+               {
+                       desc: "single-provider",
+                       input: `
 provider "aws" {
-    version             = "=2.46.0"
-    alias                  = "one"
+  version = "=2.46.0"
+  alias   = "one"
 }
-`
-
-const outputb = `{
-    "provider": {
-        "aws": {
-            "alias": "one",
-            "version": "=2.46.0"
-        }
-    }
-}`
-
-const inputc = `
+`,
+                       want: map[string]any{
+                               "provider": map[string]any{
+                                       "aws": []any{
+                                               map[string]any{
+                                                       "alias":   "one",
+                                                       "version": "=2.46.0",
+                                               },
+                                       },
+                               },
+                       },
+               },
+               {
+                       desc: "multiple-providers",
+                       input: `
 provider "aws" {
-    version             = "=2.46.0"
-    alias                  = "one"
+  version = "=2.46.0"
+  alias   = "one"
 }
 provider "aws" {
-    version             = "=2.47.0"
-    alias                  = "two"
+  version = "=2.47.0"
+  alias   = "two"
 }
-`
-
-const outputc = `{
-    "provider": {
-        "aws": [
-            {
-                "alias": "one",
-                "version": "=2.46.0"
-            },
-            {
-                "alias": "two",
-                "version": "=2.47.0"
-            }
-        ]
-    }
-}`
-
-func TestConversion(t *testing.T) {
-       testTable := map[string]struct {
-               input  string
-               output string
-       }{
-               "simple-resources": {input: inputa, output: outputa},
-               "single-provider":  {input: inputb, output: outputb},
-               "two-providers":    {input: inputc, output: outputc},
+`,
+                       want: map[string]any{
+                               "provider": map[string]any{
+                                       "aws": []any{
+                                               map[string]any{
+                                                       "alias":   "one",
+                                                       "version": "=2.46.0",
+                                               },
+                                               map[string]any{
+                                                       "alias":   "two",
+                                                       "version": "=2.47.0",
+                                               },
+                                       },
+                               },
+                       },
+               },
        }
 
-       for name, tc := range testTable {
-               testInput := []byte(tc.input)
-
-               convertedInput, err := convert.Bytes(testInput, "", 
convert.Options{})
-               if err != nil {
-                       t.Fatal("convert bytes:", err)
-               }
-
-               var indented bytes.Buffer
-               if err := json.Indent(&indented, convertedInput, "", "    "); 
err != nil {
-                       t.Fatal("Failed to indent file:", err)
-               }
-
-               computedJSON := indented.String()
-               if computedJSON != tc.output {
-                       t.Errorf("For test %s\nExpected:\n%s\n\nGot:\n%s", 
name, tc.output, computedJSON)
-               }
+       p := Parser{}
+       for _, tc := range tests {
+               t.Run(tc.desc, func(t *testing.T) {
+                       var got map[string]any
+                       if err := p.Unmarshal([]byte(tc.input), &got); err != 
nil {
+                               t.Fatalf("Unmarshal: unexpected error %v", err)
+                       }
+                       if diff := cmp.Diff(got, tc.want); diff != "" {
+                               t.Errorf("HCL2 produced unexpected diff 
(-want,+got):\n%s", diff)
+                       }
+               })
        }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conftest-0.58.0/requirements-dev.txt 
new/conftest-0.59.0/requirements-dev.txt
--- old/conftest-0.58.0/requirements-dev.txt    1970-01-01 01:00:00.000000000 
+0100
+++ new/conftest-0.59.0/requirements-dev.txt    2025-04-12 17:41:27.000000000 
+0200
@@ -0,0 +1 @@
+pre-commit==4.1.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conftest-0.58.0/tests/pre-commit/README.md 
new/conftest-0.59.0/tests/pre-commit/README.md
--- old/conftest-0.58.0/tests/pre-commit/README.md      1970-01-01 
01:00:00.000000000 +0100
+++ new/conftest-0.59.0/tests/pre-commit/README.md      2025-04-12 
17:41:27.000000000 +0200
@@ -0,0 +1,21 @@
+# Pre-commit Hook Tests
+
+These tests verify the functionality of Conftest's pre-commit hook integration.
+
+## Test Cases
+
+1. Hook Installation
+   - Verifies that the pre-commit hook can be installed successfully
+
+2. Basic Policy Validation
+   - Tests single policy validation using the basic example
+
+## Running Tests
+
+The tests are automatically run as part of the project's CI pipeline. To run 
them locally:
+
+```bash
+bats tests/pre-commit/test.bats
+```
+
+Note: Requires pre-commit to be installed (`pip install -r 
requirements-dev.txt`)
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/conftest-0.58.0/tests/pre-commit/test.bats 
new/conftest-0.59.0/tests/pre-commit/test.bats
--- old/conftest-0.58.0/tests/pre-commit/test.bats      1970-01-01 
01:00:00.000000000 +0100
+++ new/conftest-0.59.0/tests/pre-commit/test.bats      2025-04-12 
17:41:27.000000000 +0200
@@ -0,0 +1,70 @@
+#!/usr/bin/env bats
+
+DIR="$( cd "$( dirname "${BATS_TEST_FILENAME}" )" >/dev/null 2>&1 && pwd )"
+PROJECT_ROOT="$( cd "$DIR/../.." >/dev/null 2>&1 && pwd )"
+
+# Git configuration for temporary repo
+GIT_AUTHOR_NAME="Conftest Test User"
+GIT_AUTHOR_EMAIL="[email protected]"
+
+setup_file() {
+    # Create a temporary directory for testing
+    export TEST_REPO=$(mktemp -d)
+    cd "$TEST_REPO"
+
+    # Initialize a new Git repository
+    git init
+
+    # Configure Git to use environment variables and disable signing
+    git config commit.gpgsign false
+    git config tag.gpgsign false
+    git config user.name "$GIT_AUTHOR_NAME"
+    git config user.email "$GIT_AUTHOR_EMAIL"
+
+    # Copy necessary files from the main repo
+    mkdir -p examples
+    cp -r "$PROJECT_ROOT/examples/kubernetes" examples/
+
+    # Create pre-commit config
+    cat > .pre-commit-config.yaml << EOF
+repos:
+- repo: ${PROJECT_ROOT}
+  rev: HEAD
+  hooks:
+    - id: conftest-test
+      args:
+        - --policy
+        - examples/kubernetes/policy
+    - id: conftest-verify
+      args:
+        - --policy
+        - examples/kubernetes/policy
+EOF
+
+    # Add and commit files
+    git add .
+    git commit -m "Initial commit"
+
+    # Install pre-commit hooks in the temporary repo
+    run pre-commit try-repo "$PROJECT_ROOT"
+    run pre-commit install --hook-type pre-commit
+    [ "$status" -eq 0 ]
+}
+
+teardown_file() {
+    # Clean up the temporary repository
+    rm -rf "$TEST_REPO"
+}
+
+@test "pre-commit: test hook validates as expected" {
+    cd "$TEST_REPO"
+    run pre-commit run conftest-test --files 
examples/kubernetes/deployment.yaml
+    [ "$status" -eq 1 ]
+    [[ "$output" =~ "Containers must not run as root" ]]
+}
+
+@test "pre-commit: verify hook runs policy tests" {
+    cd "$TEST_REPO"
+    run pre-commit run conftest-verify
+    [ "$status" -eq 0 ]
+}

++++++ conftest.obsinfo ++++++
--- /var/tmp/diff_new_pack.gySxUG/_old  2025-04-14 16:08:17.834555200 +0200
+++ /var/tmp/diff_new_pack.gySxUG/_new  2025-04-14 16:08:17.838555367 +0200
@@ -1,5 +1,5 @@
 name: conftest
-version: 0.58.0
-mtime: 1740865896
-commit: 39bd5fcee10393a902ebd48387920bf89411a5b7
+version: 0.59.0
+mtime: 1744472487
+commit: e9612c334c7995a72c4647c92a776f5d11150497
 

++++++ vendor.tar.gz ++++++
/work/SRC/openSUSE:Factory/conftest/vendor.tar.gz 
/work/SRC/openSUSE:Factory/.conftest.new.1907/vendor.tar.gz differ: char 5, 
line 1

Reply via email to