diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 6eea3bc0..88e2fcef 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -60,4 +60,5 @@ jobs:
- name: golangci-lint
uses: golangci/golangci-lint-action@v6
with:
- version: v1.63
+ version: latest
+ skip-cache: true
diff --git a/.golangci.yaml b/.golangci.yaml
index f0509dec..1eeee878 100644
--- a/.golangci.yaml
+++ b/.golangci.yaml
@@ -4,7 +4,7 @@ linters:
- revive
- errcheck
- gocyclo
- - goerr113
+ - err113
- goimports
- gosec
- gosimple
diff --git a/.snyk b/.snyk
new file mode 100644
index 00000000..391a4c51
--- /dev/null
+++ b/.snyk
@@ -0,0 +1,11 @@
+# Snyk (https://snyk.io) policy file
+version: v1.25.0
+ignore:
+ SNYK-GOLANG-GITHUBCOMGOJOSEGOJOSEV4-6419234:
+ - '*':
+ reason: Fixed via go.mod replace directive to v4.0.5
+ expires: 2027-01-20T00:00:00.000Z
+ SNYK-GOLANG-GITHUBCOMGOJOSEGOJOSEV4-8745975:
+ - '*':
+ reason: Fixed via go.mod replace directive to v4.0.5
+ expires: 2027-01-20T00:00:00.000Z
diff --git a/cmd/pr-bot/main.go b/cmd/pr-bot/main.go
index 50ea333f..2341df55 100644
--- a/cmd/pr-bot/main.go
+++ b/cmd/pr-bot/main.go
@@ -9,7 +9,7 @@ import (
"github.com/google/go-github/v50/github"
"github.com/jonboulle/clockwork"
- "github.com/open-policy-agent/opa/sdk"
+ "github.com/open-policy-agent/opa/v1/sdk"
"github.com/rs/zerolog/log"
"github.com/shurcooL/githubv4"
"golang.org/x/oauth2"
diff --git a/go.mod b/go.mod
index 0da0f4d1..911c29a3 100644
--- a/go.mod
+++ b/go.mod
@@ -1,6 +1,6 @@
module github.com/marqeta/pr-bot
-go 1.23.5
+go 1.24.6
require (
cirello.io/dynamolock/v2 v2.0.3
@@ -23,23 +23,20 @@ require (
github.com/ilyakaznacheev/cleanenv v1.5.0
github.com/jonboulle/clockwork v0.4.0
github.com/mennanov/limiters v1.2.2
- github.com/open-policy-agent/opa v0.60.0
+ github.com/open-policy-agent/opa v1.12.3
github.com/rs/zerolog v1.33.0
github.com/shurcooL/githubv4 v0.0.0-20230704064427-599ae7bbf278
github.com/slok/go-http-metrics v0.13.0
- github.com/stretchr/testify v1.10.0
- golang.org/x/oauth2 v0.25.0
- oras.land/oras-go/v2 v2.3.1
+ github.com/stretchr/testify v1.11.1
+ golang.org/x/oauth2 v0.32.0
+ oras.land/oras-go/v2 v2.6.0
)
require (
- github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 // indirect
github.com/BurntSushi/toml v1.4.0 // indirect
github.com/Microsoft/go-winio v0.6.2 // indirect
- github.com/Microsoft/hcsshim v0.11.4 // indirect
- github.com/OneOfOne/xxhash v1.2.8 // indirect
github.com/ProtonMail/go-crypto v1.1.5 // indirect
- github.com/agnivade/levenshtein v1.1.1 // indirect
+ github.com/agnivade/levenshtein v1.2.1 // indirect
github.com/ajg/form v1.5.1 // indirect
github.com/armon/go-metrics v0.4.1 // indirect
github.com/aws/aws-sdk-go-v2/credentials v1.17.54 // indirect
@@ -55,28 +52,32 @@ require (
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.28.10 // indirect
github.com/aws/smithy-go v1.22.2 // indirect
github.com/beorn7/perks v1.0.1 // indirect
- github.com/bytecodealliance/wasmtime-go/v3 v3.0.2 // indirect
+ github.com/bytecodealliance/wasmtime-go/v39 v39.0.1 // indirect
github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/cloudflare/circl v1.5.0 // indirect
- github.com/containerd/containerd v1.7.11 // indirect
+ github.com/containerd/containerd/v2 v2.2.0 // indirect
+ github.com/containerd/errdefs v1.0.0 // indirect
github.com/containerd/log v0.1.0 // indirect
+ github.com/containerd/platforms v1.0.0-rc.2 // indirect
+ github.com/containerd/typeurl/v2 v2.2.3 // indirect
github.com/coreos/go-semver v0.3.1 // indirect
- github.com/coreos/go-systemd/v22 v22.5.0 // indirect
+ github.com/coreos/go-systemd/v22 v22.6.0 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
+ github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 // indirect
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect
github.com/dlclark/regexp2 v1.10.0 // indirect
github.com/fatih/color v1.16.0 // indirect
github.com/felixge/httpsnoop v1.0.4 // indirect
- github.com/fsnotify/fsnotify v1.7.0 // indirect
+ github.com/fsnotify/fsnotify v1.9.0 // indirect
github.com/go-ini/ini v1.67.0 // indirect
- github.com/go-logr/logr v1.3.0 // indirect
+ github.com/go-logr/logr v1.4.3 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-redsync/redsync/v4 v4.11.0 // indirect
github.com/gobwas/glob v0.2.3 // indirect
+ github.com/goccy/go-json v0.10.5 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang/protobuf v1.5.4 // indirect
github.com/google/go-querystring v1.1.0 // indirect
- github.com/gorilla/mux v1.8.1 // indirect
github.com/hashicorp/consul/api v1.26.1 // indirect
github.com/hashicorp/errwrap v1.1.0 // indirect
github.com/hashicorp/go-cleanhttp v0.5.2 // indirect
@@ -85,10 +86,22 @@ require (
github.com/hashicorp/go-multierror v1.1.1 // indirect
github.com/hashicorp/go-rootcerts v1.0.2 // indirect
github.com/hashicorp/golang-lru v1.0.2 // indirect
+ github.com/hashicorp/golang-lru/v2 v2.0.7 // indirect
github.com/hashicorp/serf v0.10.1 // indirect
+ github.com/huandu/go-clone v1.7.3 // indirect
+ github.com/huandu/go-sqlbuilder v1.38.1 // indirect
+ github.com/huandu/xstrings v1.4.0 // indirect
github.com/jmespath/go-jmespath v0.4.0 // indirect
github.com/joho/godotenv v1.5.1 // indirect
- github.com/klauspost/compress v1.17.9 // indirect
+ github.com/klauspost/compress v1.18.1 // indirect
+ github.com/lestrrat-go/blackmagic v1.0.4 // indirect
+ github.com/lestrrat-go/dsig v1.0.0 // indirect
+ github.com/lestrrat-go/dsig-secp256k1 v1.0.0 // indirect
+ github.com/lestrrat-go/httpcc v1.0.1 // indirect
+ github.com/lestrrat-go/httprc/v3 v3.0.1 // indirect
+ github.com/lestrrat-go/jwx/v3 v3.0.12 // indirect
+ github.com/lestrrat-go/option v1.0.1 // indirect
+ github.com/lestrrat-go/option/v2 v2.0.0 // indirect
github.com/mattn/go-colorable v0.1.14 // indirect
github.com/mattn/go-isatty v0.0.20 // indirect
github.com/mitchellh/go-homedir v1.1.0 // indirect
@@ -96,48 +109,57 @@ require (
github.com/moby/locker v1.0.1 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/opencontainers/go-digest v1.0.0 // indirect
- github.com/opencontainers/image-spec v1.1.0-rc5 // indirect
+ github.com/opencontainers/image-spec v1.1.1 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
- github.com/prometheus/client_golang v1.20.3 // indirect
- github.com/prometheus/client_model v0.6.1 // indirect
- github.com/prometheus/common v0.59.1 // indirect
- github.com/prometheus/procfs v0.15.1 // indirect
- github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0 // indirect
+ github.com/prometheus/client_golang v1.23.2 // indirect
+ github.com/prometheus/client_model v0.6.2 // indirect
+ github.com/prometheus/common v0.66.1 // indirect
+ github.com/prometheus/procfs v0.17.0 // indirect
+ github.com/rcrowley/go-metrics v0.0.0-20250401214520-65e299d6c5c9 // indirect
github.com/redis/go-redis/v9 v9.3.0 // indirect
github.com/samuel/go-zookeeper v0.0.0-20201211165307-7117e9ea2414 // indirect
+ github.com/segmentio/asm v1.2.1 // indirect
github.com/shurcooL/graphql v0.0.0-20230722043721-ed46e5a46466 // indirect
- github.com/sirupsen/logrus v1.9.3 // indirect
+ github.com/sirupsen/logrus v1.9.4-0.20230606125235-dd1b4c2e81af // indirect
github.com/stretchr/objx v0.5.2 // indirect
- github.com/tchap/go-patricia/v2 v2.3.1 // indirect
+ github.com/tchap/go-patricia/v2 v2.3.3 // indirect
+ github.com/valyala/fastjson v1.6.4 // indirect
+ github.com/vektah/gqlparser/v2 v2.5.31 // indirect
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
go.etcd.io/etcd/api/v3 v3.5.10 // indirect
go.etcd.io/etcd/client/pkg/v3 v3.5.10 // indirect
go.etcd.io/etcd/client/v3 v3.5.10 // indirect
- go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 // indirect
- go.opentelemetry.io/otel v1.21.0 // indirect
- go.opentelemetry.io/otel/metric v1.21.0 // indirect
- go.opentelemetry.io/otel/sdk v1.21.0 // indirect
- go.opentelemetry.io/otel/trace v1.21.0 // indirect
- go.uber.org/goleak v1.3.0 // indirect
+ go.opentelemetry.io/auto/sdk v1.2.1 // indirect
+ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 // indirect
+ go.opentelemetry.io/otel v1.38.0 // indirect
+ go.opentelemetry.io/otel/metric v1.38.0 // indirect
+ go.opentelemetry.io/otel/sdk v1.38.0 // indirect
+ go.opentelemetry.io/otel/trace v1.38.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
go.uber.org/zap v1.26.0 // indirect
- golang.org/x/crypto v0.32.0 // indirect
- golang.org/x/exp v0.0.0-20240904232852-e7e105dedf7e // indirect
- golang.org/x/net v0.34.0 // indirect
- golang.org/x/sync v0.10.0 // indirect
- golang.org/x/sys v0.29.0 // indirect
- golang.org/x/text v0.21.0 // indirect
- golang.org/x/time v0.6.0 // indirect
- google.golang.org/genproto v0.0.0-20231120223509-83a465c0220f // indirect
- google.golang.org/genproto/googleapis/api v0.0.0-20231120223509-83a465c0220f // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f // indirect
- google.golang.org/grpc v1.60.1 // indirect
- google.golang.org/protobuf v1.36.3 // indirect
- gopkg.in/yaml.v2 v2.4.0 // indirect
+ go.yaml.in/yaml/v2 v2.4.2 // indirect
+ golang.org/x/crypto v0.45.0 // indirect
+ golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f // indirect
+ golang.org/x/net v0.47.0 // indirect
+ golang.org/x/sync v0.18.0 // indirect
+ golang.org/x/sys v0.38.0 // indirect
+ golang.org/x/text v0.31.0 // indirect
+ golang.org/x/time v0.14.0 // indirect
+ google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8 // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8 // indirect
+ google.golang.org/grpc v1.77.0 // indirect
+ google.golang.org/protobuf v1.36.10 // indirect
gopkg.in/yaml.v3 v3.0.1 // indirect
olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 // indirect
- sigs.k8s.io/yaml v1.4.0 // indirect
+ sigs.k8s.io/yaml v1.6.0 // indirect
+)
+
+replace (
+ github.com/containerd/containerd => github.com/containerd/containerd v1.7.30
+ github.com/go-jose/go-jose/v3 => github.com/go-jose/go-jose/v3 v3.0.4
+ github.com/go-jose/go-jose/v4 => github.com/go-jose/go-jose/v4 v4.0.5
+ github.com/go-viper/mapstructure/v2 => github.com/go-viper/mapstructure/v2 v2.4.0
)
diff --git a/go.sum b/go.sum
index 79778338..b4d50a83 100644
--- a/go.sum
+++ b/go.sum
@@ -1,7 +1,7 @@
cirello.io/dynamolock/v2 v2.0.3 h1:1v6BSRa3ov/ytEX8hFtY9yMstFQEnMsj9s8+jCXFDxg=
cirello.io/dynamolock/v2 v2.0.3/go.mod h1:0GKOMMD//uxSPfZk/uxgquAI7C5FvGI5AL8B6cEVvLE=
-github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24 h1:bvDV9vkmnHYOMsOr4WLk+Vo07yKIzd94sVoIqshQ4bU=
-github.com/AdaLogics/go-fuzz-headers v0.0.0-20230811130428-ced1acdcaa24/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8=
+github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6 h1:He8afgbRMd7mFxO99hRNu+6tazq8nFF9lIwo9JFroBk=
+github.com/AdaLogics/go-fuzz-headers v0.0.0-20240806141605-e8a1dd7889d6/go.mod h1:8o94RPi1/7XTJvwPpRSzSUedZrtlirdB3r9Z20bi2f8=
github.com/BurntSushi/toml v1.2.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
github.com/BurntSushi/toml v1.4.0 h1:kuoIxZQy2WRRk1pttg9asf+WVv6tWQuBNVmK8+nqPr0=
github.com/BurntSushi/toml v1.4.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
@@ -10,16 +10,12 @@ github.com/DataDog/datadog-go v4.8.3+incompatible h1:fNGaYSuObuQb5nzeTQqowRAd9bp
github.com/DataDog/datadog-go v4.8.3+incompatible/go.mod h1:LButxg5PwREeZtORoXG3tL4fMGNddJ+vMq1mwgfaqoQ=
github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY=
github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU=
-github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8=
-github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w=
-github.com/OneOfOne/xxhash v1.2.8 h1:31czK/TI9sNkxIKfaUfGlU47BAxQ0ztGgd9vPyqimf8=
-github.com/OneOfOne/xxhash v1.2.8/go.mod h1:eZbhyaAYD41SGSSsnmcpxVoRiQ/MPUTjUdIIOT9Um7Q=
github.com/ProtonMail/go-crypto v1.1.5 h1:eoAQfK2dwL+tFSFpr7TbOaPNUbPiJj4fLYwwGE1FQO4=
github.com/ProtonMail/go-crypto v1.1.5/go.mod h1:rA3QumHc/FZ8pAHreoekgiAbzpNsfQAosU5td4SnOrE=
github.com/a-h/templ v0.2.543 h1:8YyLvyUtf0/IE2nIwZ62Z/m2o2NqwhnMynzOL78Lzbk=
github.com/a-h/templ v0.2.543/go.mod h1:jP908DQCwI08IrnTalhzSEH9WJqG/Q94+EODQcJGFUA=
-github.com/agnivade/levenshtein v1.1.1 h1:QY8M92nrzkmr798gCo3kmMyqXFzdQVpxLlGPRBij0P8=
-github.com/agnivade/levenshtein v1.1.1/go.mod h1:veldBMzWxcCG2ZvUTKD2kJNRdCk5hVbJomOvKkmgYbo=
+github.com/agnivade/levenshtein v1.2.1 h1:EHBY3UOn1gwdy/VbFwgo4cxecRznFk7fKWN1KOX7eoM=
+github.com/agnivade/levenshtein v1.2.1/go.mod h1:QVVI16kDrtSuwcpd0p1+xMC6Z/VfhtCyDIjcwga4/DU=
github.com/ajg/form v1.5.1 h1:t9c7v8JUKu/XxOGBU0yjNpaMloxGEJhUkqFRq0ibGeU=
github.com/ajg/form v1.5.1/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY=
github.com/alecthomas/assert/v2 v2.2.1 h1:XivOgYcduV98QCahG8T5XTezV5bylXe+lBxLG2K2ink=
@@ -32,6 +28,8 @@ github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuy
github.com/alecthomas/template v0.0.0-20190718012654-fb15b899a751/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
github.com/alecthomas/units v0.0.0-20190717042225-c3de453c63f4/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
+github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883 h1:bvNMNQO63//z+xNgfBlViaCIJKLlCJ6/fmUseuG0wVQ=
+github.com/andreyvit/diff v0.0.0-20170406064948-c7f18ee00883/go.mod h1:rCTlJbsFo29Kk6CurOXKm700vrz8f0KW0JNfpkRJY/8=
github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0 h1:jfIu9sQUG6Ig+0+Ap1h4unLjW6YQJpKZVmUzxsD4E/Q=
github.com/arbovm/levenshtein v0.0.0-20160628152529-48b4e1c0c4d0/go.mod h1:t2tdKJDJF9BV14lnkjHmOQgcvEKgtqs5a1N3LNdJhGE=
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
@@ -89,12 +87,10 @@ github.com/bsm/ginkgo/v2 v2.12.0 h1:Ny8MWAHyOepLGlLKYmXG4IEkioBysk6GpaRTLC8zwWs=
github.com/bsm/ginkgo/v2 v2.12.0/go.mod h1:SwYbGRRDovPVboqFv0tPTcG1sN61LM1Z4ARdbAV9g4c=
github.com/bsm/gomega v1.27.10 h1:yeMWxP2pV2fG3FgAODIY8EiRE3dy0aeFYt4l7wh6yKA=
github.com/bsm/gomega v1.27.10/go.mod h1:JyEr/xRbxbtgWNi8tIEVPUYZ5Dzef52k01W3YH0H+O0=
-github.com/bytecodealliance/wasmtime-go/v3 v3.0.2 h1:3uZCA/BLTIu+DqCfguByNMJa2HVHpXvjfy0Dy7g6fuA=
-github.com/bytecodealliance/wasmtime-go/v3 v3.0.2/go.mod h1:RnUjnIXxEJcL6BgCvNyzCCRzZcxCgsZCi+RNlvYor5Q=
-github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM=
-github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
-github.com/cespare/xxhash v1.1.0 h1:a6HrQnmkObjyL+Gs60czilIUGqrzKutQD6XZog3p+ko=
-github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
+github.com/bytecodealliance/wasmtime-go/v39 v39.0.1 h1:RibaT47yiyCRxMOj/l2cvL8cWiWBSqDXHyqsa9sGcCE=
+github.com/bytecodealliance/wasmtime-go/v39 v39.0.1/go.mod h1:miR4NYIEBXeDNamZIzpskhJ0z/p8al+lwMWylQ/ZJb4=
+github.com/cenkalti/backoff/v5 v5.0.3 h1:ZN+IMa753KfX5hd8vVaMixjnqRZ3y8CuJKRKj1xcsSM=
+github.com/cenkalti/backoff/v5 v5.0.3/go.mod h1:rkhZdG3JZukswDf7f0cwqPNk4K0sa+F97BxZthm/crw=
github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
@@ -102,34 +98,39 @@ github.com/circonus-labs/circonus-gometrics v2.3.1+incompatible/go.mod h1:nmEj6D
github.com/circonus-labs/circonusllhist v0.1.3/go.mod h1:kMXHVDlOchFAehlya5ePtbp5jckzBHf4XRpQvBOLI+I=
github.com/cloudflare/circl v1.5.0 h1:hxIWksrX6XN5a1L2TI/h53AGPhNHoUBo+TD1ms9+pys=
github.com/cloudflare/circl v1.5.0/go.mod h1:uddAzsPgqdMAYatqJ0lsjX1oECcQLIlRpzZh3pJrofs=
-github.com/containerd/cgroups v1.1.0 h1:v8rEWFl6EoqHB+swVNjVoCJE8o3jX7e8nqBGPLaDFBM=
-github.com/containerd/cgroups v1.1.0/go.mod h1:6ppBcbh/NOOUU+dMKrykgaBnK9lCIBxHqJDGwsa1mIw=
-github.com/containerd/containerd v1.7.11 h1:lfGKw3eU35sjV0aG2eYZTiwFEY1pCzxdzicHP3SZILw=
-github.com/containerd/containerd v1.7.11/go.mod h1:5UluHxHTX2rdvYuZ5OJTC5m/KJNs0Zs9wVoJm9zf5ZE=
-github.com/containerd/continuity v0.4.2 h1:v3y/4Yz5jwnvqPKJJ+7Wf93fyWoCB3F5EclWG023MDM=
-github.com/containerd/continuity v0.4.2/go.mod h1:F6PTNCKepoxEaXLQp3wDAjygEnImnZ/7o4JzpodfroQ=
+github.com/containerd/containerd/v2 v2.2.0 h1:K7TqcXy+LnFmZaui2DgHsnp2gAHhVNWYaHlx7HXfys8=
+github.com/containerd/containerd/v2 v2.2.0/go.mod h1:YCMjKjA4ZA7egdHNi3/93bJR1+2oniYlnS+c0N62HdE=
+github.com/containerd/errdefs v1.0.0 h1:tg5yIfIlQIrxYtu9ajqY42W3lpS19XqdxRQeEwYG8PI=
+github.com/containerd/errdefs v1.0.0/go.mod h1:+YBYIdtsnF4Iw6nWZhJcqGSg/dwvV7tyJ/kCkyJ2k+M=
github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I=
github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo=
+github.com/containerd/platforms v1.0.0-rc.2 h1:0SPgaNZPVWGEi4grZdV8VRYQn78y+nm6acgLGv/QzE4=
+github.com/containerd/platforms v1.0.0-rc.2/go.mod h1:J71L7B+aiM5SdIEqmd9wp6THLVRzJGXfNuWCZCllLA4=
+github.com/containerd/typeurl/v2 v2.2.3 h1:yNA/94zxWdvYACdYO8zofhrTVuQY73fFU1y++dYSw40=
+github.com/containerd/typeurl/v2 v2.2.3/go.mod h1:95ljDnPfD3bAbDJRugOiShd/DlAAsxGtUBhJxIn7SCk=
github.com/coreos/go-semver v0.3.1 h1:yi21YpKnrx1gt5R+la8n5WgS0kCrsPp33dmEyHReZr4=
github.com/coreos/go-semver v0.3.1/go.mod h1:irMmmIw/7yzSRPWryHsK7EYSg09caPQL03VsM8rvUec=
-github.com/coreos/go-systemd/v22 v22.5.0 h1:RrqgGjYQKalulkV8NGVIfkXQf6YYmOyiJKk8iXXhfZs=
github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
+github.com/coreos/go-systemd/v22 v22.6.0 h1:aGVa/v8B7hpb0TKl0MWoAavPDmHvobFe5R5zn0bCJWo=
+github.com/coreos/go-systemd/v22 v22.6.0/go.mod h1:iG+pp635Fo7ZmV/j14KUcmEyWF+0X7Lua8rrTWzYgWU=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/dgraph-io/badger/v3 v3.2103.5 h1:ylPa6qzbjYRQMU6jokoj4wzcaweHylt//CH0AKt0akg=
-github.com/dgraph-io/badger/v3 v3.2103.5/go.mod h1:4MPiseMeDQ3FNCYwRbbcBOGJLf5jsE0PPFzRiKjtcdw=
-github.com/dgraph-io/ristretto v0.1.1 h1:6CWw5tJNgpegArSHpNHJKldNeq03FQCwYvfMVWajOK8=
-github.com/dgraph-io/ristretto v0.1.1/go.mod h1:S1GPSBCYCIhmVNfcth17y2zZtQT6wzkzgwUve0VDWWA=
+github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0 h1:NMZiJj8QnKe1LgsbDayM4UoHwbvwDRwnI3hwNaAHRnc=
+github.com/decred/dcrd/dcrec/secp256k1/v4 v4.4.0/go.mod h1:ZXNYxsqcloTdSy/rNShjYzMhyjf0LaoftYK0p+A3h40=
+github.com/dgraph-io/badger/v4 v4.8.0 h1:JYph1ChBijCw8SLeybvPINizbDKWZ5n/GYbz2yhN/bs=
+github.com/dgraph-io/badger/v4 v4.8.0/go.mod h1:U6on6e8k/RTbUWxqKR0MvugJuVmkxSNc79ap4917h4w=
+github.com/dgraph-io/ristretto/v2 v2.2.0 h1:bkY3XzJcXoMuELV8F+vS8kzNgicwQFAaGINAEJdWGOM=
+github.com/dgraph-io/ristretto/v2 v2.2.0/go.mod h1:RZrm63UmcBAaYWC1DotLYBmTvgkrs0+XhBd7Npn7/zI=
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f h1:lO4WD4F/rVNCu3HqELle0jiPLLBs70cWOduZpkS1E78=
github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f/go.mod h1:cuUVRXasLTGF7a8hSLbxyZXjz+1KgoB3wDUb6vlszIc=
-github.com/dgryski/trifles v0.0.0-20200323201526-dd97f9abfb48 h1:fRzb/w+pyskVMQ+UbP35JkH8yB7MYb4q/qhBarqZE6g=
-github.com/dgryski/trifles v0.0.0-20200323201526-dd97f9abfb48/go.mod h1:if7Fbed8SFyPtHLHbg49SI7NAdJiC5WIA09pe59rfAA=
+github.com/dgryski/trifles v0.0.0-20230903005119-f50d829f2e54 h1:SG7nF6SRlWhcT7cNTs5R6Hk4V2lcmLz2NsG2VnInyNo=
+github.com/dgryski/trifles v0.0.0-20230903005119-f50d829f2e54/go.mod h1:if7Fbed8SFyPtHLHbg49SI7NAdJiC5WIA09pe59rfAA=
github.com/dlclark/regexp2 v1.10.0 h1:+/GIL799phkJqYW+3YbOd8LCcbHzT0Pbo8zl70MHsq0=
github.com/dlclark/regexp2 v1.10.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
-github.com/dustin/go-humanize v1.0.0 h1:VSnTsYCnlFHaM2/igO1h6X3HA71jcobQuxemgkq4zYo=
-github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
+github.com/dustin/go-humanize v1.0.1 h1:GzkhY7T5VNhEkwH0PVJgjz+fX1rhBrR7pRT3mDkpeCY=
+github.com/dustin/go-humanize v1.0.1/go.mod h1:Mu1zIs6XwVuF/gI1OepvI0qD18qycQx+mFykh5fBlto=
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
github.com/fatih/color v1.13.0/go.mod h1:kLAiJbzzSOZDVNGyDpeOxJ47H46qBXwg5ILebYFFOfk=
@@ -139,10 +140,10 @@ github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2
github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw=
github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g=
-github.com/foxcpp/go-mockdns v1.0.0 h1:7jBqxd3WDWwi/6WhDvacvH1XsN3rOLXyHM1uhvIx6FI=
-github.com/foxcpp/go-mockdns v1.0.0/go.mod h1:lgRN6+KxQBawyIghpnl5CezHFGS9VLzvtVlwxvzXTQ4=
-github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
-github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
+github.com/foxcpp/go-mockdns v1.1.0 h1:jI0rD8M0wuYAxL7r/ynTrCQQq0BVqfB99Vgk7DlmewI=
+github.com/foxcpp/go-mockdns v1.1.0/go.mod h1:IhLeSFGed3mJIAXPH2aiRQB+kqz7oqu8ld2qVbOu7Wk=
+github.com/fsnotify/fsnotify v1.9.0 h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k=
+github.com/fsnotify/fsnotify v1.9.0/go.mod h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
github.com/go-chi/chi/v5 v5.0.7/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8=
github.com/go-chi/chi/v5 v5.2.0 h1:Aj1EtB0qR2Rdo2dG4O94RIU35w2lvQSj6BRA4+qwFL0=
github.com/go-chi/chi/v5 v5.2.0/go.mod h1:DslCQbL2OYiznFReuXYUmQ2hGd1aDpCnlMNITLSKoi8=
@@ -157,8 +158,8 @@ github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
-github.com/go-logr/logr v1.3.0 h1:2y3SDp0ZXuc6/cjLSZ+Q3ir+QB9T/iG5yYRXqsagWSY=
-github.com/go-logr/logr v1.3.0/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
+github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI=
+github.com/go-logr/logr v1.4.3/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
github.com/go-redis/redis v6.15.9+incompatible h1:K0pv1D7EQUjfyoMql+r/jZqCLizCGKFlFgcHWWmHQjg=
@@ -172,34 +173,29 @@ github.com/go-redsync/redsync/v4 v4.11.0/go.mod h1:ZfayzutkgeBmEmBlUR3j+rF6kN44U
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
github.com/gobwas/glob v0.2.3 h1:A4xDbljILXROh+kObIiy5kIaPYD8e96x1tgBhUI5J+Y=
github.com/gobwas/glob v0.2.3/go.mod h1:d3Ez4x06l9bZtSvzIay5+Yzi0fmZzPgnTbPcKjJAkT8=
+github.com/goccy/go-json v0.10.5 h1:Fq85nIqj+gXn/S5ahsiTlK3TmC85qgirsdTP/+DeaC4=
+github.com/goccy/go-json v0.10.5/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M=
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
-github.com/golang/glog v1.1.2 h1:DVjP2PbBOzHyzA+dn3WhHIq4NdVu3Q+pvivFICf/7fo=
-github.com/golang/glog v1.1.2/go.mod h1:zR+okUeTbrL6EL3xHUDxZuEtGv04p5shwip1+mL/rLQ=
-github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
-github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
-github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM=
-github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q=
github.com/gomodule/redigo v1.8.9 h1:Sl3u+2BI/kk+VEatbj0scLdrFhjPmbxOc1myhDP41ws=
github.com/gomodule/redigo v1.8.9/go.mod h1:7ArFNvsTjH8GMMzB4uy1snslv2BwmginuMs06a1uzZE=
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/btree v1.0.1 h1:gK4Kx5IaGY9CD5sPJ36FHiBJ6ZXl0kilRiiCj+jdYp4=
github.com/google/btree v1.0.1/go.mod h1:xXMiIv4Fb/0kKde4SpL7qlzvu5cMJDRkFDxJfI9uaxA=
-github.com/google/flatbuffers v1.12.1 h1:MVlul7pQNoDzWRLTw5imwYsl+usrS1TXG2H4jg6ImGw=
-github.com/google/flatbuffers v1.12.1/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.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
-github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
-github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
+github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
+github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
github.com/google/go-github/v50 v50.2.0 h1:j2FyongEHlO9nxXLc+LP3wuBSVU9mVxfpdYUexMpIfk=
github.com/google/go-github/v50 v50.2.0/go.mod h1:VBY8FB6yPIjrtKhozXv4FQupxKLS6H4m6xFZlT43q8Q=
github.com/google/go-querystring v1.1.0 h1:AnCroh3fv4ZBgVIf1Iwtovgjaw/GiKJo8M8yD/fhyJ8=
@@ -207,11 +203,9 @@ github.com/google/go-querystring v1.1.0/go.mod h1:Kcdr2DB4koayq7X8pmAG4sNG59So17
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/gorilla/mux v1.8.1 h1:TuBL49tXwgrFYWhqrNgrUNEY92u81SPhu7sTdzQEiWY=
-github.com/gorilla/mux v1.8.1/go.mod h1:AKf9I4AEqPTmMytcMc0KkNouC66V3BtZ4qD5fmWSiMQ=
github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo=
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms=
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2 h1:8Tjv8EJ+pM1xP8mK6egEbD1OgnVTyacbefKhmbLhIhU=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.27.2/go.mod h1:pkJQ2tZHJ0aFOVEEot6oZmaVEZcRme73eIFmhiVuRWs=
github.com/hashicorp/consul/api v1.26.1 h1:5oSXOO5fboPZeW5SN+TdGFP/BILDgBm19OrPZ/pICIM=
github.com/hashicorp/consul/api v1.26.1/go.mod h1:B4sQTeaSO16NtynqrAdwOlahJ7IUDZM9cj2420xYL8A=
github.com/hashicorp/consul/sdk v0.15.0 h1:2qK9nDrr4tiJKRoxPGhm6B7xJjLVIQqkjiab2M4aKjU=
@@ -250,6 +244,8 @@ github.com/hashicorp/go-version v1.2.1/go.mod h1:fltr4n8CU8Ke44wwGCBoEymUuxUHl09
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v1.0.2 h1:dV3g9Z/unq5DpblPpw+Oqcv4dU/1omnb4Ok8iPY6p1c=
github.com/hashicorp/golang-lru v1.0.2/go.mod h1:iADmTwqILo4mZ8BN3D2Q6+9jd8WM5uGBxy+E8yxSoD4=
+github.com/hashicorp/golang-lru/v2 v2.0.7 h1:a+bsQ5rvGLjzHuww6tVxozPZFVghXaHOwFs4luLUK2k=
+github.com/hashicorp/golang-lru/v2 v2.0.7/go.mod h1:QeFd9opnmA6QUJc5vARoKUSoFhyfM2/ZepoAG6RGpeM=
github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
github.com/hashicorp/mdns v1.0.4/go.mod h1:mtBihi+LeNXGtG8L9dX59gAEa12BDtBQSp4v/YAJqrc=
github.com/hashicorp/memberlist v0.5.0 h1:EtYPN8DpAURiapus508I4n9CzHs2W+8NZGbmmR/prTM=
@@ -258,6 +254,15 @@ github.com/hashicorp/serf v0.10.1 h1:Z1H2J60yRKvfDYAOZLd2MU0ND4AH/WDz7xYHDWQsIPY
github.com/hashicorp/serf v0.10.1/go.mod h1:yL2t6BqATOLGc5HF7qbFkTfXoPIY0WZdWHfEvMqbG+4=
github.com/hexops/gotextdiff v1.0.3 h1:gitA9+qJrrTCsiCl7+kh75nPqQt1cx4ZkudSTLoUqJM=
github.com/hexops/gotextdiff v1.0.3/go.mod h1:pSWU5MAI3yDq+fZBTazCSJysOMbxWL1BSow5/V2vxeg=
+github.com/huandu/go-assert v1.1.5/go.mod h1:yOLvuqZwmcHIC5rIzrBhT7D3Q9c3GFnd0JrPVhn/06U=
+github.com/huandu/go-assert v1.1.6 h1:oaAfYxq9KNDi9qswn/6aE0EydfxSa+tWZC1KabNitYs=
+github.com/huandu/go-assert v1.1.6/go.mod h1:JuIfbmYG9ykwvuxoJ3V8TB5QP+3+ajIA54Y44TmkMxs=
+github.com/huandu/go-clone v1.7.3 h1:rtQODA+ABThEn6J5LBTppJfKmZy/FwfpMUWa8d01TTQ=
+github.com/huandu/go-clone v1.7.3/go.mod h1:ReGivhG6op3GYr+UY3lS6mxjKp7MIGTknuU5TbTVaXE=
+github.com/huandu/go-sqlbuilder v1.38.1 h1:kajV1CFJQIrJgyTONhQFheJLRFnwDmTnU6e3CfFP5GQ=
+github.com/huandu/go-sqlbuilder v1.38.1/go.mod h1:zdONH67liL+/TvoUMwnZP/sUYGSSvHh9psLe/HpXn8E=
+github.com/huandu/xstrings v1.4.0 h1:D17IlohoQq4UcpqD7fDk80P7l+lwAmlFaBHgOipl2FU=
+github.com/huandu/xstrings v1.4.0/go.mod h1:y5/lhBue+AyNmUVz9RLU9xbLR0o4KIIExikq4ovT0aE=
github.com/ilyakaznacheev/cleanenv v1.5.0 h1:0VNZXggJE2OYdXE87bfSSwGxeiGt9moSR2lOrsHHvr4=
github.com/ilyakaznacheev/cleanenv v1.5.0/go.mod h1:a5aDzaJrLCQZsazHol1w8InnDcOX0OColm64SlIi6gk=
github.com/jmespath/go-jmespath v0.4.0 h1:BEgLn5cpjn8UN1mAw4NjwDrS35OdebyEtFe+9YPoQUg=
@@ -273,8 +278,8 @@ github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/u
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
-github.com/klauspost/compress v1.17.9 h1:6KIumPrER1LHsvBVuDa0r5xaG0Es51mhhB9BQB2qeMA=
-github.com/klauspost/compress v1.17.9/go.mod h1:Di0epgTjJY877eYKx5yC51cX2A2Vl2ibi7bDH9ttBbw=
+github.com/klauspost/compress v1.18.1 h1:bcSGx7UbpBqMChDtsF28Lw6v/G94LPrrbMbdC3JH2co=
+github.com/klauspost/compress v1.18.1/go.mod h1:ZQFFVG+MdnR0P+l6wpXgIL4NTtwiKIdBnrBd8Nrxr+0=
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
@@ -286,6 +291,22 @@ github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
+github.com/lestrrat-go/blackmagic v1.0.4 h1:IwQibdnf8l2KoO+qC3uT4OaTWsW7tuRQXy9TRN9QanA=
+github.com/lestrrat-go/blackmagic v1.0.4/go.mod h1:6AWFyKNNj0zEXQYfTMPfZrAXUWUfTIZ5ECEUEJaijtw=
+github.com/lestrrat-go/dsig v1.0.0 h1:OE09s2r9Z81kxzJYRn07TFM9XA4akrUdoMwr0L8xj38=
+github.com/lestrrat-go/dsig v1.0.0/go.mod h1:dEgoOYYEJvW6XGbLasr8TFcAxoWrKlbQvmJgCR0qkDo=
+github.com/lestrrat-go/dsig-secp256k1 v1.0.0 h1:JpDe4Aybfl0soBvoVwjqDbp+9S1Y2OM7gcrVVMFPOzY=
+github.com/lestrrat-go/dsig-secp256k1 v1.0.0/go.mod h1:CxUgAhssb8FToqbL8NjSPoGQlnO4w3LG1P0qPWQm/NU=
+github.com/lestrrat-go/httpcc v1.0.1 h1:ydWCStUeJLkpYyjLDHihupbn2tYmZ7m22BGkcvZZrIE=
+github.com/lestrrat-go/httpcc v1.0.1/go.mod h1:qiltp3Mt56+55GPVCbTdM9MlqhvzyuL6W/NMDA8vA5E=
+github.com/lestrrat-go/httprc/v3 v3.0.1 h1:3n7Es68YYGZb2Jf+k//llA4FTZMl3yCwIjFIk4ubevI=
+github.com/lestrrat-go/httprc/v3 v3.0.1/go.mod h1:2uAvmbXE4Xq8kAUjVrZOq1tZVYYYs5iP62Cmtru00xk=
+github.com/lestrrat-go/jwx/v3 v3.0.12 h1:p25r68Y4KrbBdYjIsQweYxq794CtGCzcrc5dGzJIRjg=
+github.com/lestrrat-go/jwx/v3 v3.0.12/go.mod h1:HiUSaNmMLXgZ08OmGBaPVvoZQgJVOQphSrGr5zMamS8=
+github.com/lestrrat-go/option v1.0.1 h1:oAzP2fvZGQKWkvHa1/SAcFolBEca1oN+mQ7eooNBEYU=
+github.com/lestrrat-go/option v1.0.1/go.mod h1:5ZHFbivi4xwXxhxY9XHDe2FHo6/Z7WWmtT7T5nBBp3I=
+github.com/lestrrat-go/option/v2 v2.0.0 h1:XxrcaJESE1fokHy3FpaQ/cXW8ZsIdWcdFzzLOcID3Ss=
+github.com/lestrrat-go/option/v2 v2.0.0/go.mod h1:oSySsmzMoR0iRzCDCaUfsCzxQHUEuhOViQObyy7S6Vg=
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-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc=
@@ -308,8 +329,8 @@ github.com/mennanov/limiters v1.2.2 h1:zuZFf/Bmva5Vypzbmf6LB/0VFENOwaEUKKte3iY4e
github.com/mennanov/limiters v1.2.2/go.mod h1:sfXAtfzVXScTObHoh8sHPQmjEX9uGb4aUiwVdWtsw7Y=
github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso=
github.com/miekg/dns v1.1.41/go.mod h1:p6aan82bvRIyn+zDIv9xYNUpwa73JcSh9BKwknJysuI=
-github.com/miekg/dns v1.1.43 h1:JKfpVSCB84vrAmHzyrsxB5NAr5kLoMXZArPSw7Qlgyg=
-github.com/miekg/dns v1.1.43/go.mod h1:+evo5L0630/F6ca/Z9+GAqzhjGyn8/c+TBaOyfEl0V4=
+github.com/miekg/dns v1.1.57 h1:Jzi7ApEIzwEPLHWRcafCN9LZSBbqQpxjt/wpgvg7wcM=
+github.com/miekg/dns v1.1.57/go.mod h1:uqRjCRUuEAA6qsOiJvDd+CFo/vW+y5WR6SNmHE55hZk=
github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI=
github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
@@ -318,8 +339,6 @@ github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyua
github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo=
github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg=
github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc=
-github.com/moby/sys/mountinfo v0.6.2 h1:BzJjoreD5BMFNmD9Rus6gdd1pLuecOFPt8wC+Vygl78=
-github.com/moby/sys/mountinfo v0.6.2/go.mod h1:IJb6JQeOklcdMU9F5xQ8ZALD+CUr5VlGpwtX+VE0rpI=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
@@ -327,12 +346,12 @@ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3Rllmb
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
-github.com/open-policy-agent/opa v0.60.0 h1:ZPoPt4yeNs5UXCpd/P/btpSyR8CR0wfhVoh9BOwgJNs=
-github.com/open-policy-agent/opa v0.60.0/go.mod h1:aD5IK6AiLNYBjNXn7E02++yC8l4Z+bRDvgM6Ss0bBzA=
+github.com/open-policy-agent/opa v1.12.3 h1:qe3m/w52baKC/HJtippw+hYBUKCzuBCPjB+D5P9knfc=
+github.com/open-policy-agent/opa v1.12.3/go.mod h1:RnDgm04GA1RjEXJvrsG9uNT/+FyBNmozcPvA2qz60M4=
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-rc5 h1:Ygwkfw9bpDvs+c9E34SdgGOj41dX/cbdlwvlWt0pnFI=
-github.com/opencontainers/image-spec v1.1.0-rc5/go.mod h1:X4pATf0uXsnn3g5aiGIsVnJBR4mxhKzfwmvK/B2NTm8=
+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/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY=
github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
@@ -348,30 +367,30 @@ github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSg
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo=
github.com/prometheus/client_golang v1.4.0/go.mod h1:e9GMxYsXl05ICDXkRhurwBS4Q3OK1iX/F2sw+iXX5zU=
-github.com/prometheus/client_golang v1.20.3 h1:oPksm4K8B+Vt35tUhw6GbSNSgVlVSBH0qELP/7u83l4=
-github.com/prometheus/client_golang v1.20.3/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE=
+github.com/prometheus/client_golang v1.23.2 h1:Je96obch5RDVy3FDMndoUsjAhG5Edi49h0RJWRi/o0o=
+github.com/prometheus/client_golang v1.23.2/go.mod h1:Tb1a6LWHB3/SPIzCoaDXI4I8UHKeFTEQ1YCr+0Gyqmg=
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/client_model v0.2.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E=
-github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY=
+github.com/prometheus/client_model v0.6.2 h1:oBsgwpGs7iVziMvrGhE53c/GrLUsZdHnqNwqPLxwZyk=
+github.com/prometheus/client_model v0.6.2/go.mod h1:y3m2F6Gdpfy6Ut/GBsUqTWZqCUvMVzSfMLjcu6wAwpE=
github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
github.com/prometheus/common v0.9.1/go.mod h1:yhUN8i9wzaXS3w1O07YhxHEBxD+W35wd8bs7vj7HSQ4=
-github.com/prometheus/common v0.59.1 h1:LXb1quJHWm1P6wq/U824uxYi4Sg0oGvNeUm1z5dJoX0=
-github.com/prometheus/common v0.59.1/go.mod h1:GpWM7dewqmVYcd7SmRaiWVe9SSqjf0UrwnYnpEZNuT0=
+github.com/prometheus/common v0.66.1 h1:h5E0h5/Y8niHc5DlaLlWLArTQI7tMrsfQjHV+d9ZoGs=
+github.com/prometheus/common v0.66.1/go.mod h1:gcaUsgf3KfRSwHY4dIMXLPV0K/Wg1oZ8+SbZk/HH/dA=
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A=
-github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc=
-github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk=
-github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0 h1:MkV+77GLUNo5oJ0jf870itWm3D0Sjh7+Za9gazKc5LQ=
-github.com/rcrowley/go-metrics v0.0.0-20200313005456-10cdbea86bc0/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
+github.com/prometheus/procfs v0.17.0 h1:FuLQ+05u4ZI+SS/w9+BWEM2TXiHKsUQ9TADiRH7DuK0=
+github.com/prometheus/procfs v0.17.0/go.mod h1:oPQLaDAMRbA+u8H5Pbfq+dl3VDAvHxMUOVhe0wYB2zw=
+github.com/rcrowley/go-metrics v0.0.0-20250401214520-65e299d6c5c9 h1:bsUq1dX0N8AOIL7EB/X911+m4EHsnWEHeJ0c+3TTBrg=
+github.com/rcrowley/go-metrics v0.0.0-20250401214520-65e299d6c5c9/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
github.com/redis/go-redis/v9 v9.3.0 h1:RiVDjmig62jIWp7Kk4XVLs0hzV6pI3PyTnnL0cnn0u0=
github.com/redis/go-redis/v9 v9.3.0/go.mod h1:hdY0cQFCN4fnSYT6TkisLufl/4W5UIXyv0b/CLO2V2M=
github.com/redis/rueidis v1.0.19 h1:s65oWtotzlIFN8eMPhyYwxlwLR1lUdhza2KtWprKYSo=
github.com/redis/rueidis v1.0.19/go.mod h1:8B+r5wdnjwK3lTFml5VtxjzGOQAC+5UmujoD12pDrEo=
-github.com/rogpeppe/go-internal v1.10.0 h1:TMyTOH3F/DB16zRVcYyreMH6GnZZrwQVAoYjRBZyWFQ=
-github.com/rogpeppe/go-internal v1.10.0/go.mod h1:UQnix2H7Ngw/k4C5ijL5+65zddjncjaFoBhdsK/akog=
+github.com/rogpeppe/go-internal v1.14.1 h1:UQB4HGPB6osV0SQTLymcB4TgvyWu6ZyliaW0tI/otEQ=
+github.com/rogpeppe/go-internal v1.14.1/go.mod h1:MaRKkUm5W0goXpeCfT7UZI6fk/L7L7so1lCWt35ZSgc=
github.com/rs/xid v1.4.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg=
github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg=
github.com/rs/zerolog v1.29.1/go.mod h1:Le6ESbR7hc+DP6Lt1THiV8CQSdkkNrd3R0XbEgp3ZBU=
@@ -382,14 +401,18 @@ github.com/samuel/go-zookeeper v0.0.0-20201211165307-7117e9ea2414 h1:AJNDS0kP60X
github.com/samuel/go-zookeeper v0.0.0-20201211165307-7117e9ea2414/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E=
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529 h1:nn5Wsu0esKSJiIVhscUtVbo7ada43DJhG55ua/hjS5I=
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
+github.com/segmentio/asm v1.2.1 h1:DTNbBqs57ioxAD4PrArqftgypG4/qNpXoJx8TVXxPR0=
+github.com/segmentio/asm v1.2.1/go.mod h1:BqMnlJP91P8d+4ibuonYZw9mfnzI9HfxselHZr5aAcs=
+github.com/sergi/go-diff v1.4.0 h1:n/SP9D5ad1fORl+llWyN+D6qoUETXNZARKjyY2/KVCw=
+github.com/sergi/go-diff v1.4.0/go.mod h1:A0bzQcvG0E7Rwjx0REVgAGH58e96+X0MeOfepqsbeW4=
github.com/shurcooL/githubv4 v0.0.0-20230704064427-599ae7bbf278 h1:kdEGVAV4sO46DPtb8k793jiecUEhaX9ixoIBt41HEGU=
github.com/shurcooL/githubv4 v0.0.0-20230704064427-599ae7bbf278/go.mod h1:zqMwyHmnN/eDOZOdiTohqIUKUrTFX62PNlu7IJdu0q8=
github.com/shurcooL/graphql v0.0.0-20230722043721-ed46e5a46466 h1:17JxqqJY66GmZVHkmAsGEkcIu0oCe3AM420QDgGwZx0=
github.com/shurcooL/graphql v0.0.0-20230722043721-ed46e5a46466/go.mod h1:9dIRpgIY7hVhoqfe0/FcYp0bpInZaT7dc3BYOprrIUE=
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE=
-github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
-github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
+github.com/sirupsen/logrus v1.9.4-0.20230606125235-dd1b4c2e81af h1:Sp5TG9f7K39yfB+If0vjp97vuT74F72r8hfRpP8jLU0=
+github.com/sirupsen/logrus v1.9.4-0.20230606125235-dd1b4c2e81af/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ=
github.com/slok/go-http-metrics v0.13.0 h1:lQDyJJx9wKhmbliyUsZ2l6peGnXRHjsjoqPt5VYzcP8=
github.com/slok/go-http-metrics v0.13.0/go.mod h1:HIr7t/HbN2sJaunvnt9wKP9xoBBVZFo1/KiHU3b0w+4=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
@@ -399,15 +422,21 @@ github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4=
+github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.2/go.mod h1:R6va5+xMeoiuVRoj+gSkQ7d3FALtqAAGI1FQKckRals=
-github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
-github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
+github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U=
+github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U=
github.com/stvp/tempredis v0.0.0-20181119212430-b82af8480203 h1:QVqDTf3h2WHt08YuiTGPZLls0Wq99X9bWd0Q5ZSBesM=
github.com/stvp/tempredis v0.0.0-20181119212430-b82af8480203/go.mod h1:oqN97ltKNihBbwlX8dLpwxCl3+HnXKV/R0e+sRLd9C8=
-github.com/tchap/go-patricia/v2 v2.3.1 h1:6rQp39lgIYZ+MHmdEq4xzuk1t7OdC35z/xm0BGhTkes=
-github.com/tchap/go-patricia/v2 v2.3.1/go.mod h1:VZRHKAb53DLaG+nA9EaYYiaEx6YztwDlLElMsnSHD4k=
+github.com/tchap/go-patricia/v2 v2.3.3 h1:xfNEsODumaEcCcY3gI0hYPZ/PcpVv5ju6RMAhgwZDDc=
+github.com/tchap/go-patricia/v2 v2.3.3/go.mod h1:VZRHKAb53DLaG+nA9EaYYiaEx6YztwDlLElMsnSHD4k=
github.com/tv42/httpunix v0.0.0-20150427012821-b75d8614f926/go.mod h1:9ESjWnEqriFuLhtthL60Sar/7RFoluCcXsuvEwTV5KM=
+github.com/valyala/fastjson v1.6.4 h1:uAUNq9Z6ymTgGhcm0UynUAB6tlbakBrz6CQFax3BXVQ=
+github.com/valyala/fastjson v1.6.4/go.mod h1:CLCAqky6SMuOcxStkYQvblddUtoRxhYMGLrsQns1aXY=
+github.com/vektah/gqlparser/v2 v2.5.31 h1:YhWGA1mfTjID7qJhd1+Vxhpk5HTgydrGU9IgkWBTJ7k=
+github.com/vektah/gqlparser/v2 v2.5.31/go.mod h1:c1I28gSOVNzlfc4WuDlqU7voQnsqI6OG2amkBAFmgts=
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo=
github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU=
github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0=
@@ -422,41 +451,51 @@ go.etcd.io/etcd/client/pkg/v3 v3.5.10 h1:kfYIdQftBnbAq8pUWFXfpuuxFSKzlmM5cSn76JB
go.etcd.io/etcd/client/pkg/v3 v3.5.10/go.mod h1:DYivfIviIuQ8+/lCq4vcxuseg2P2XbHygkKwFo9fc8U=
go.etcd.io/etcd/client/v3 v3.5.10 h1:W9TXNZ+oB3MCd/8UjxHTWK5J9Nquw9fQBLJd5ne5/Ao=
go.etcd.io/etcd/client/v3 v3.5.10/go.mod h1:RVeBnDz2PUEZqTpgqwAtUd8nAPf5kjyFyND7P1VkOKc=
-go.opencensus.io v0.24.0 h1:y73uSU6J157QMP2kn2r30vwW1A2W2WFwSCGnAVxeaD0=
-go.opencensus.io v0.24.0/go.mod h1:vNK8G9p7aAivkbmorf4v+7Hgx+Zs0yY+0fOtgBfjQKo=
-go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1 h1:aFJWCqJMNjENlcleuuOkGAPH82y0yULBScfXcIEdS24=
-go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.46.1/go.mod h1:sEGXWArGqc3tVa+ekntsN65DmVbVeW+7lTKTjZF3/Fo=
-go.opentelemetry.io/otel v1.21.0 h1:hzLeKBZEL7Okw2mGzZ0cc4k/A7Fta0uoPgaJCr8fsFc=
-go.opentelemetry.io/otel v1.21.0/go.mod h1:QZzNPQPm1zLX4gZK4cMi+71eaorMSGT3A4znnUvNNEo=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0 h1:cl5P5/GIfFh4t6xyruOgJP5QiA1pw4fYYdv6nc6CBWw=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.21.0/go.mod h1:zgBdWWAu7oEEMC06MMKc5NLbA/1YDXV1sMpSqEeLQLg=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0 h1:tIqheXEFWAZ7O8A7m+J0aPTmpJN3YQ7qetUAdkkkKpk=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.21.0/go.mod h1:nUeKExfxAQVbiVFn32YXpXZZHZ61Cc3s3Rn1pDBGAb0=
-go.opentelemetry.io/otel/metric v1.21.0 h1:tlYWfeo+Bocx5kLEloTjbcDwBuELRrIFxwdQ36PlJu4=
-go.opentelemetry.io/otel/metric v1.21.0/go.mod h1:o1p3CA8nNHW8j5yuQLdc1eeqEaPfzug24uvsyIEJRWM=
-go.opentelemetry.io/otel/sdk v1.21.0 h1:FTt8qirL1EysG6sTQRZ5TokkU8d0ugCj8htOgThZXQ8=
-go.opentelemetry.io/otel/sdk v1.21.0/go.mod h1:Nna6Yv7PWTdgJHVRD9hIYywQBRx7pbox6nwBnZIxl/E=
-go.opentelemetry.io/otel/trace v1.21.0 h1:WD9i5gzvoUPuXIXH24ZNBudiarZDKuekPqi/E8fpfLc=
-go.opentelemetry.io/otel/trace v1.21.0/go.mod h1:LGbsEB0f9LGjN+OZaQQ26sohbOmiMR+BaslueVtS/qQ=
-go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I=
-go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
+go.opentelemetry.io/auto/sdk v1.2.1 h1:jXsnJ4Lmnqd11kwkBV2LgLoFMZKizbCi5fNZ/ipaZ64=
+go.opentelemetry.io/auto/sdk v1.2.1/go.mod h1:KRTj+aOaElaLi+wW1kO/DZRXwkF4C5xPbEe3ZiIhN7Y=
+go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0 h1:RbKq8BG0FI8OiXhBfcRtqqHcZcka+gU3cskNuf05R18=
+go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.63.0/go.mod h1:h06DGIukJOevXaj/xrNjhi/2098RZzcLTbc0jDAUbsg=
+go.opentelemetry.io/otel v1.38.0 h1:RkfdswUDRimDg0m2Az18RKOsnI8UDzppJAtj01/Ymk8=
+go.opentelemetry.io/otel v1.38.0/go.mod h1:zcmtmQ1+YmQM9wrNsTGV/q/uyusom3P8RxwExxkZhjM=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0 h1:GqRJVj7UmLjCVyVJ3ZFLdPRmhDUp2zFmQe3RHIOsw24=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.38.0/go.mod h1:ri3aaHSmCTVYu2AWv44YMauwAQc0aqI9gHKIcSbI1pU=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0 h1:lwI4Dc5leUqENgGuQImwLo4WnuXFPetmPpkLi2IrX54=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.38.0/go.mod h1:Kz/oCE7z5wuyhPxsXDuaPteSWqjSBD5YaSdbxZYGbGk=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0 h1:aTL7F04bJHUlztTsNGJ2l+6he8c+y/b//eR0jjjemT4=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp v1.38.0/go.mod h1:kldtb7jDTeol0l3ewcmd8SDvx3EmIE7lyvqbasU3QC4=
+go.opentelemetry.io/otel/metric v1.38.0 h1:Kl6lzIYGAh5M159u9NgiRkmoMKjvbsKtYRwgfrA6WpA=
+go.opentelemetry.io/otel/metric v1.38.0/go.mod h1:kB5n/QoRM8YwmUahxvI3bO34eVtQf2i4utNVLr9gEmI=
+go.opentelemetry.io/otel/sdk v1.38.0 h1:l48sr5YbNf2hpCUj/FoGhW9yDkl+Ma+LrVl8qaM5b+E=
+go.opentelemetry.io/otel/sdk v1.38.0/go.mod h1:ghmNdGlVemJI3+ZB5iDEuk4bWA3GkTpW+DOoZMYBVVg=
+go.opentelemetry.io/otel/sdk/metric v1.38.0 h1:aSH66iL0aZqo//xXzQLYozmWrXxyFkBJ6qT5wthqPoM=
+go.opentelemetry.io/otel/sdk/metric v1.38.0/go.mod h1:dg9PBnW9XdQ1Hd6ZnRz689CbtrUp0wMMs9iPcgT9EZA=
+go.opentelemetry.io/otel/trace v1.38.0 h1:Fxk5bKrDZJUH+AMyyIXGcFAPah0oRcT+LuNtJrmcNLE=
+go.opentelemetry.io/otel/trace v1.38.0/go.mod h1:j1P9ivuFsTceSWe1oY+EeW3sc+Pp42sO++GHkg4wwhs=
+go.opentelemetry.io/proto/otlp v1.7.1 h1:gTOMpGDb0WTBOP8JaO72iL3auEZhVmAQg4ipjOVAtj4=
+go.opentelemetry.io/proto/otlp v1.7.1/go.mod h1:b2rVh6rfI/s2pHWNlB7ILJcRALpcNDzKhACevjI+ZnE=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo=
go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so=
+go.yaml.in/yaml/v2 v2.4.2 h1:DzmwEr2rDGHl7lsFgAHxmNz/1NlQ7xLIrlN2h5d1eGI=
+go.yaml.in/yaml/v2 v2.4.2/go.mod h1:081UH+NErpNdqlCXm3TtEran0rJZGxAYx9hb/ELlsPU=
+go.yaml.in/yaml/v3 v3.0.4 h1:tfq32ie2Jv2UxXFdLJdh3jXuOzWiL1fo0bu/FbuKpbc=
+go.yaml.in/yaml/v3 v3.0.4/go.mod h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/crypto v0.32.0 h1:euUpcYgM8WcP71gNpTqQCn6rC2t6ULUPiOzfWaXVVfc=
-golang.org/x/crypto v0.32.0/go.mod h1:ZnnJkOaASj8g0AjIduWNlq2NRxL0PlBrbKVyZ6V/Ugc=
-golang.org/x/exp v0.0.0-20240904232852-e7e105dedf7e h1:I88y4caeGeuDQxgdoFPUq097j7kNfw6uvuiNxUBfcBk=
-golang.org/x/exp v0.0.0-20240904232852-e7e105dedf7e/go.mod h1:akd2r19cwCdwSwWeIdzYQGa/EZZyqcOdwWiwj5L5eKQ=
+golang.org/x/crypto v0.45.0 h1:jMBrvKuj23MTlT0bQEOBcAE0mjg8mK9RXFhRH6nyF3Q=
+golang.org/x/crypto v0.45.0/go.mod h1:XTGrrkGJve7CYK7J8PEww4aY7gM3qMCElcJQ8n8JdX4=
+golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f h1:XdNn9LlyWAhLVp6P/i8QYBW+hlyhrhei9uErw2B5GJo=
+golang.org/x/exp v0.0.0-20241108190413-2d47ceb2692f/go.mod h1:D5SMRVC3C2/4+F/DB1wZsLRnSNimn2Sp/NPsCrsv8ak=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
+golang.org/x/mod v0.29.0 h1:HV8lRxZC4l2cr3Zq1LvtOsi/ThTgWnUk/y64QSs8GwA=
+golang.org/x/mod v0.29.0/go.mod h1:NyhrlYXJ2H4eJiRy/WDBO6HMqZQ6q9nk4JzS3NuCK+w=
golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
@@ -466,18 +505,18 @@ golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLL
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20210410081132-afb366fc7cd1/go.mod h1:9tjilg8BloeKEkVJvy7fQ90B1CfIiPueXVOjqfkSzI8=
-golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0=
-golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k=
-golang.org/x/oauth2 v0.25.0 h1:CY4y7XT9v0cRI9oupztF8AgiIu99L/ksR/Xp/6jrZ70=
-golang.org/x/oauth2 v0.25.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
+golang.org/x/net v0.47.0 h1:Mx+4dIFzqraBXUugkia1OOvlD6LemFo1ALMHjrXDOhY=
+golang.org/x/net v0.47.0/go.mod h1:/jNxtkgq5yWUGYkaZGqo27cfGZ1c5Nen03aYrrKpVRU=
+golang.org/x/oauth2 v0.32.0 h1:jsCblLleRMDrxMN29H3z/k1KliIvpLgCkE6R8FXXNgY=
+golang.org/x/oauth2 v0.32.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
-golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
+golang.org/x/sync v0.18.0 h1:kr88TuHDroi+UVf+0hZnirlk8o8T+4MrK6mr60WkH/I=
+golang.org/x/sync v0.18.0/go.mod h1:9KTHXmSnoGruLpwFjVSX0lNNA75CykiMECbovNTZqGI=
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -504,36 +543,38 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.29.0 h1:TPYlXGxvx1MGTn2GiZDhnjPA9wZzZeGKHHmKhHYvgaU=
-golang.org/x/sys v0.29.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
+golang.org/x/sys v0.38.0 h1:3yZWxaJjBmCWXqhN1qh02AkOnCQ1poK6oF+a7xWL6Gc=
+golang.org/x/sys v0.38.0/go.mod h1:OgkHotnGiDImocRcuBABYBEXf8A9a87e/uXjp9XT3ks=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
-golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
-golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U=
-golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
+golang.org/x/text v0.31.0 h1:aC8ghyu4JhP8VojJ2lEHBnochRno1sgL6nEi9WGFGMM=
+golang.org/x/text v0.31.0/go.mod h1:tKRAlv61yKIjGGHX/4tP1LTbc13YSec1pxVEWXzfoeM=
+golang.org/x/time v0.14.0 h1:MRx4UaLrDotUKUdCIqzPC48t1Y9hANFKIRpNx+Te8PI=
+golang.org/x/time v0.14.0/go.mod h1:eL/Oa2bBBK0TkX57Fyni+NgnyQQN4LitPmob2Hjnqw4=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
+golang.org/x/tools v0.38.0 h1:Hx2Xv8hISq8Lm16jvBZ2VQf+RLmbd7wVUsALibYI/IQ=
+golang.org/x/tools v0.38.0/go.mod h1:yEsQ/d/YK8cjh0L6rZlY8tgtlKiBNTL14pGDJPJpYQs=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-google.golang.org/genproto v0.0.0-20231120223509-83a465c0220f h1:Vn+VyHU5guc9KjB5KrjI2q0wCOWEOIh0OEsleqakHJg=
-google.golang.org/genproto v0.0.0-20231120223509-83a465c0220f/go.mod h1:nWSwAFPb+qfNJXsoeO3Io7zf4tMSfN8EA8RlDA04GhY=
-google.golang.org/genproto/googleapis/api v0.0.0-20231120223509-83a465c0220f h1:2yNACc1O40tTnrsbk9Cv6oxiW8pxI/pXj0wRtdlYmgY=
-google.golang.org/genproto/googleapis/api v0.0.0-20231120223509-83a465c0220f/go.mod h1:Uy9bTZJqmfrw2rIBxgGLnamc78euZULUBrLZ9XTITKI=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f h1:ultW7fxlIvee4HYrtnaRPon9HpEgFk5zYpmfMgtKB5I=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20231120223509-83a465c0220f/go.mod h1:L9KNLi232K1/xB6f7AlSX692koaRnKaWSR0stBki0Yc=
-google.golang.org/grpc v1.60.1 h1:26+wFr+cNqSGFcOXcabYC0lUVJVRa2Sb2ortSK7VrEU=
-google.golang.org/grpc v1.60.1/go.mod h1:OlCHIeLYqSSsLi6i49B5QGdzaMZK9+M7LXN2FKz4eGM=
-google.golang.org/protobuf v1.36.3 h1:82DV7MYdb8anAVi3qge1wSnMDrnKK7ebr+I0hHRN1BU=
-google.golang.org/protobuf v1.36.3/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
+gonum.org/v1/gonum v0.16.0 h1:5+ul4Swaf3ESvrOnidPp4GZbzf0mxVQpDCYUQE7OJfk=
+gonum.org/v1/gonum v0.16.0/go.mod h1:fef3am4MQ93R2HHpKnLk4/Tbh/s0+wqD5nfa6Pnwy4E=
+google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8 h1:mepRgnBZa07I4TRuomDE4sTIYieg/osKmzIf4USdWS4=
+google.golang.org/genproto/googleapis/api v0.0.0-20251022142026-3a174f9686a8/go.mod h1:fDMmzKV90WSg1NbozdqrE64fkuTv6mlq2zxo9ad+3yo=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8 h1:M1rk8KBnUsBDg1oPGHNCxG4vc1f49epmTO7xscSajMk=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20251022142026-3a174f9686a8/go.mod h1:7i2o+ce6H/6BluujYR+kqX3GKH+dChPTQU19wjRPiGk=
+google.golang.org/grpc v1.77.0 h1:wVVY6/8cGA6vvffn+wWK5ToddbgdU3d8MNENr4evgXM=
+google.golang.org/grpc v1.77.0/go.mod h1:z0BY1iVj0q8E1uSQCjL9cppRj+gnZjzDnzV0dHhrNig=
+google.golang.org/protobuf v1.36.10 h1:AYd7cD/uASjIL6Q9LiTjz8JLcrh/88q5UObnmY3aOOE=
+google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j23XfzDpco=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
@@ -551,7 +592,7 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3 h1:slmdOY3vp8a7KQbHkL+FLbvbkgMqmXojpFUO/jENuqQ=
olympos.io/encoding/edn v0.0.0-20201019073823-d3554ca0b0a3/go.mod h1:oVgVk4OWVDi43qWBEyGhXgYxt7+ED4iYNpTngSLX2Iw=
-oras.land/oras-go/v2 v2.3.1 h1:lUC6q8RkeRReANEERLfH86iwGn55lbSWP20egdFHVec=
-oras.land/oras-go/v2 v2.3.1/go.mod h1:5AQXVEu1X/FKp1F9DMOb5ZItZBOa0y5dha0yCm4NR9c=
-sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
-sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=
+oras.land/oras-go/v2 v2.6.0 h1:X4ELRsiGkrbeox69+9tzTu492FMUu7zJQW6eJU+I2oc=
+oras.land/oras-go/v2 v2.6.0/go.mod h1:magiQDfG6H1O9APp+rOsvCPcW1GD2MM7vgnKY0Y+u1o=
+sigs.k8s.io/yaml v1.6.0 h1:G8fkbMSAFqgEFgh4b1wmtzDnioxFCUgTZhlbj5P9QYs=
+sigs.k8s.io/yaml v1.6.0/go.mod h1:796bPqUfzR/0jLAl6XjHl3Ck7MiyVv8dbTdyT3/pMf4=
diff --git a/opa/client/client.go b/opa/client/client.go
index bd2e6d9f..a8f5be65 100644
--- a/opa/client/client.go
+++ b/opa/client/client.go
@@ -5,7 +5,7 @@ import (
"fmt"
"github.com/go-chi/chi/v5/middleware"
- "github.com/open-policy-agent/opa/sdk"
+ "github.com/open-policy-agent/opa/v1/sdk"
)
//go:generate mockery --name Client
diff --git a/opa/client/mock_client.go b/opa/client/mock_client.go
index ddad9e02..ea2f657b 100644
--- a/opa/client/mock_client.go
+++ b/opa/client/mock_client.go
@@ -5,7 +5,7 @@ package client
import (
context "context"
- sdk "github.com/open-policy-agent/opa/sdk"
+ sdk "github.com/open-policy-agent/opa/v1/sdk"
mock "github.com/stretchr/testify/mock"
)
diff --git a/opa/rules/review.go b/opa/rules/review.go
index 669c22ce..c4355d0d 100644
--- a/opa/rules/review.go
+++ b/opa/rules/review.go
@@ -7,7 +7,7 @@ import (
"github.com/marqeta/pr-bot/opa/client"
"github.com/marqeta/pr-bot/opa/input"
"github.com/marqeta/pr-bot/opa/types"
- "github.com/open-policy-agent/opa/sdk"
+ "github.com/open-policy-agent/opa/v1/sdk"
)
type Review struct {
diff --git a/opa/rules/review_test.go b/opa/rules/review_test.go
index 097ee5c5..e0461b39 100644
--- a/opa/rules/review_test.go
+++ b/opa/rules/review_test.go
@@ -10,7 +10,7 @@ import (
"github.com/marqeta/pr-bot/opa/input"
"github.com/marqeta/pr-bot/opa/rules"
"github.com/marqeta/pr-bot/opa/types"
- "github.com/open-policy-agent/opa/sdk"
+ "github.com/open-policy-agent/opa/v1/sdk"
)
func TestReview_Evaluate(t *testing.T) {
diff --git a/opa/rules/schema.go b/opa/rules/schema.go
index affcafff..40984fe7 100644
--- a/opa/rules/schema.go
+++ b/opa/rules/schema.go
@@ -6,7 +6,7 @@ import (
"github.com/marqeta/pr-bot/opa/client"
"github.com/marqeta/pr-bot/opa/input"
- "github.com/open-policy-agent/opa/sdk"
+ "github.com/open-policy-agent/opa/v1/sdk"
)
type Schema struct {
diff --git a/opa/rules/schema_test.go b/opa/rules/schema_test.go
index 57cd622b..0acd46d6 100644
--- a/opa/rules/schema_test.go
+++ b/opa/rules/schema_test.go
@@ -8,7 +8,7 @@ import (
"github.com/marqeta/pr-bot/opa/client"
"github.com/marqeta/pr-bot/opa/input"
"github.com/marqeta/pr-bot/opa/rules"
- "github.com/open-policy-agent/opa/sdk"
+ "github.com/open-policy-agent/opa/v1/sdk"
)
func TestSchema_Evaluate(t *testing.T) {
diff --git a/opa/rules/track.go b/opa/rules/track.go
index 8924947d..28846389 100644
--- a/opa/rules/track.go
+++ b/opa/rules/track.go
@@ -6,7 +6,7 @@ import (
"github.com/marqeta/pr-bot/opa/client"
"github.com/marqeta/pr-bot/opa/input"
- "github.com/open-policy-agent/opa/sdk"
+ "github.com/open-policy-agent/opa/v1/sdk"
)
type Track struct {
diff --git a/opa/rules/track_test.go b/opa/rules/track_test.go
index e4559386..317e9638 100644
--- a/opa/rules/track_test.go
+++ b/opa/rules/track_test.go
@@ -9,7 +9,7 @@ import (
"github.com/marqeta/pr-bot/opa/client"
"github.com/marqeta/pr-bot/opa/input"
"github.com/marqeta/pr-bot/opa/rules"
- "github.com/open-policy-agent/opa/sdk"
+ "github.com/open-policy-agent/opa/v1/sdk"
)
func TestTrack_Evaluate(t *testing.T) {
diff --git a/vendor/github.com/AdaLogics/go-fuzz-headers/README.md b/vendor/github.com/AdaLogics/go-fuzz-headers/README.md
deleted file mode 100644
index 0a0d60c7..00000000
--- a/vendor/github.com/AdaLogics/go-fuzz-headers/README.md
+++ /dev/null
@@ -1,93 +0,0 @@
-# go-fuzz-headers
-This repository contains various helper functions for go fuzzing. It is mostly used in combination with [go-fuzz](https://github.com/dvyukov/go-fuzz), but compatibility with fuzzing in the standard library will also be supported. Any coverage guided fuzzing engine that provides an array or slice of bytes can be used with go-fuzz-headers.
-
-
-## Usage
-Using go-fuzz-headers is easy. First create a new consumer with the bytes provided by the fuzzing engine:
-
-```go
-import (
- fuzz "github.com/AdaLogics/go-fuzz-headers"
-)
-data := []byte{'R', 'a', 'n', 'd', 'o', 'm'}
-f := fuzz.NewConsumer(data)
-
-```
-
-This creates a `Consumer` that consumes the bytes of the input as it uses them to fuzz different types.
-
-After that, `f` can be used to easily create fuzzed instances of different types. Below are some examples:
-
-### Structs
-One of the most useful features of go-fuzz-headers is its ability to fill structs with the data provided by the fuzzing engine. This is done with a single line:
-```go
-type Person struct {
- Name string
- Age int
-}
-p := Person{}
-// Fill p with values based on the data provided by the fuzzing engine:
-err := f.GenerateStruct(&p)
-```
-
-This includes nested structs too. In this example, the fuzz Consumer will also insert values in `p.BestFriend`:
-```go
-type PersonI struct {
- Name string
- Age int
- BestFriend PersonII
-}
-type PersonII struct {
- Name string
- Age int
-}
-p := PersonI{}
-err := f.GenerateStruct(&p)
-```
-
-If the consumer should insert values for unexported fields as well as exported, this can be enabled with:
-
-```go
-f.AllowUnexportedFields()
-```
-
-...and disabled with:
-
-```go
-f.DisallowUnexportedFields()
-```
-
-### Other types:
-
-Other useful APIs:
-
-```go
-createdString, err := f.GetString() // Gets a string
-createdInt, err := f.GetInt() // Gets an integer
-createdByte, err := f.GetByte() // Gets a byte
-createdBytes, err := f.GetBytes() // Gets a byte slice
-createdBool, err := f.GetBool() // Gets a boolean
-err := f.FuzzMap(target_map) // Fills a map
-createdTarBytes, err := f.TarBytes() // Gets bytes of a valid tar archive
-err := f.CreateFiles(inThisDir) // Fills inThisDir with files
-createdString, err := f.GetStringFrom("anyCharInThisString", ofThisLength) // Gets a string that consists of chars from "anyCharInThisString" and has the exact length "ofThisLength"
-```
-
-Most APIs are added as they are needed.
-
-## Projects that use go-fuzz-headers
-- [runC](https://github.com/opencontainers/runc)
-- [Istio](https://github.com/istio/istio)
-- [Vitess](https://github.com/vitessio/vitess)
-- [Containerd](https://github.com/containerd/containerd)
-
-Feel free to add your own project to the list, if you use go-fuzz-headers to fuzz it.
-
-
-
-
-## Status
-The project is under development and will be updated regularly.
-
-## References
-go-fuzz-headers' approach to fuzzing structs is strongly inspired by [gofuzz](https://github.com/google/gofuzz).
\ No newline at end of file
diff --git a/vendor/github.com/AdaLogics/go-fuzz-headers/consumer.go b/vendor/github.com/AdaLogics/go-fuzz-headers/consumer.go
deleted file mode 100644
index adfeedf5..00000000
--- a/vendor/github.com/AdaLogics/go-fuzz-headers/consumer.go
+++ /dev/null
@@ -1,914 +0,0 @@
-// Copyright 2023 The go-fuzz-headers Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package gofuzzheaders
-
-import (
- "archive/tar"
- "bytes"
- "encoding/binary"
- "errors"
- "fmt"
- "io"
- "math"
- "os"
- "path/filepath"
- "reflect"
- "strconv"
- "strings"
- "time"
- "unsafe"
-)
-
-var (
- MaxTotalLen uint32 = 2000000
- maxDepth = 100
-)
-
-func SetMaxTotalLen(newLen uint32) {
- MaxTotalLen = newLen
-}
-
-type ConsumeFuzzer struct {
- data []byte
- dataTotal uint32
- CommandPart []byte
- RestOfArray []byte
- NumberOfCalls int
- position uint32
- fuzzUnexportedFields bool
- curDepth int
- Funcs map[reflect.Type]reflect.Value
-}
-
-func IsDivisibleBy(n int, divisibleby int) bool {
- return (n % divisibleby) == 0
-}
-
-func NewConsumer(fuzzData []byte) *ConsumeFuzzer {
- return &ConsumeFuzzer{
- data: fuzzData,
- dataTotal: uint32(len(fuzzData)),
- Funcs: make(map[reflect.Type]reflect.Value),
- curDepth: 0,
- }
-}
-
-func (f *ConsumeFuzzer) Split(minCalls, maxCalls int) error {
- if f.dataTotal == 0 {
- return errors.New("could not split")
- }
- numberOfCalls := int(f.data[0])
- if numberOfCalls < minCalls || numberOfCalls > maxCalls {
- return errors.New("bad number of calls")
- }
- if int(f.dataTotal) < numberOfCalls+numberOfCalls+1 {
- return errors.New("length of data does not match required parameters")
- }
-
- // Define part 2 and 3 of the data array
- commandPart := f.data[1 : numberOfCalls+1]
- restOfArray := f.data[numberOfCalls+1:]
-
- // Just a small check. It is necessary
- if len(commandPart) != numberOfCalls {
- return errors.New("length of commandPart does not match number of calls")
- }
-
- // Check if restOfArray is divisible by numberOfCalls
- if !IsDivisibleBy(len(restOfArray), numberOfCalls) {
- return errors.New("length of commandPart does not match number of calls")
- }
- f.CommandPart = commandPart
- f.RestOfArray = restOfArray
- f.NumberOfCalls = numberOfCalls
- return nil
-}
-
-func (f *ConsumeFuzzer) AllowUnexportedFields() {
- f.fuzzUnexportedFields = true
-}
-
-func (f *ConsumeFuzzer) DisallowUnexportedFields() {
- f.fuzzUnexportedFields = false
-}
-
-func (f *ConsumeFuzzer) GenerateStruct(targetStruct interface{}) error {
- e := reflect.ValueOf(targetStruct).Elem()
- return f.fuzzStruct(e, false)
-}
-
-func (f *ConsumeFuzzer) setCustom(v reflect.Value) error {
- // First: see if we have a fuzz function for it.
- doCustom, ok := f.Funcs[v.Type()]
- if !ok {
- return fmt.Errorf("could not find a custom function")
- }
-
- switch v.Kind() {
- case reflect.Ptr:
- if v.IsNil() {
- if !v.CanSet() {
- return fmt.Errorf("could not use a custom function")
- }
- v.Set(reflect.New(v.Type().Elem()))
- }
- case reflect.Map:
- if v.IsNil() {
- if !v.CanSet() {
- return fmt.Errorf("could not use a custom function")
- }
- v.Set(reflect.MakeMap(v.Type()))
- }
- default:
- return fmt.Errorf("could not use a custom function")
- }
-
- verr := doCustom.Call([]reflect.Value{v, reflect.ValueOf(Continue{
- F: f,
- })})
-
- // check if we return an error
- if verr[0].IsNil() {
- return nil
- }
- return fmt.Errorf("could not use a custom function")
-}
-
-func (f *ConsumeFuzzer) fuzzStruct(e reflect.Value, customFunctions bool) error {
- if f.curDepth >= maxDepth {
- // return err or nil here?
- return nil
- }
- f.curDepth++
- defer func() { f.curDepth-- }()
-
- // We check if we should check for custom functions
- if customFunctions && e.IsValid() && e.CanAddr() {
- err := f.setCustom(e.Addr())
- if err != nil {
- return err
- }
- }
-
- switch e.Kind() {
- case reflect.Struct:
- for i := 0; i < e.NumField(); i++ {
- var v reflect.Value
- if !e.Field(i).CanSet() {
- if f.fuzzUnexportedFields {
- v = reflect.NewAt(e.Field(i).Type(), unsafe.Pointer(e.Field(i).UnsafeAddr())).Elem()
- }
- if err := f.fuzzStruct(v, customFunctions); err != nil {
- return err
- }
- } else {
- v = e.Field(i)
- if err := f.fuzzStruct(v, customFunctions); err != nil {
- return err
- }
- }
- }
- case reflect.String:
- str, err := f.GetString()
- if err != nil {
- return err
- }
- if e.CanSet() {
- e.SetString(str)
- }
- case reflect.Slice:
- var maxElements uint32
- // Byte slices should not be restricted
- if e.Type().String() == "[]uint8" {
- maxElements = 10000000
- } else {
- maxElements = 50
- }
-
- randQty, err := f.GetUint32()
- if err != nil {
- return err
- }
- numOfElements := randQty % maxElements
- if (f.dataTotal - f.position) < numOfElements {
- numOfElements = f.dataTotal - f.position
- }
-
- uu := reflect.MakeSlice(e.Type(), int(numOfElements), int(numOfElements))
-
- for i := 0; i < int(numOfElements); i++ {
- // If we have more than 10, then we can proceed with that.
- if err := f.fuzzStruct(uu.Index(i), customFunctions); err != nil {
- if i >= 10 {
- if e.CanSet() {
- e.Set(uu)
- }
- return nil
- } else {
- return err
- }
- }
- }
- if e.CanSet() {
- e.Set(uu)
- }
- case reflect.Uint16:
- newInt, err := f.GetUint16()
- if err != nil {
- return err
- }
- if e.CanSet() {
- e.SetUint(uint64(newInt))
- }
- case reflect.Uint32:
- newInt, err := f.GetUint32()
- if err != nil {
- return err
- }
- if e.CanSet() {
- e.SetUint(uint64(newInt))
- }
- case reflect.Uint64:
- newInt, err := f.GetInt()
- if err != nil {
- return err
- }
- if e.CanSet() {
- e.SetUint(uint64(newInt))
- }
- case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
- newInt, err := f.GetInt()
- if err != nil {
- return err
- }
- if e.CanSet() {
- e.SetInt(int64(newInt))
- }
- case reflect.Float32:
- newFloat, err := f.GetFloat32()
- if err != nil {
- return err
- }
- if e.CanSet() {
- e.SetFloat(float64(newFloat))
- }
- case reflect.Float64:
- newFloat, err := f.GetFloat64()
- if err != nil {
- return err
- }
- if e.CanSet() {
- e.SetFloat(float64(newFloat))
- }
- case reflect.Map:
- if e.CanSet() {
- e.Set(reflect.MakeMap(e.Type()))
- const maxElements = 50
- randQty, err := f.GetInt()
- if err != nil {
- return err
- }
- numOfElements := randQty % maxElements
- for i := 0; i < numOfElements; i++ {
- key := reflect.New(e.Type().Key()).Elem()
- if err := f.fuzzStruct(key, customFunctions); err != nil {
- return err
- }
- val := reflect.New(e.Type().Elem()).Elem()
- if err = f.fuzzStruct(val, customFunctions); err != nil {
- return err
- }
- e.SetMapIndex(key, val)
- }
- }
- case reflect.Ptr:
- if e.CanSet() {
- e.Set(reflect.New(e.Type().Elem()))
- if err := f.fuzzStruct(e.Elem(), customFunctions); err != nil {
- return err
- }
- return nil
- }
- case reflect.Uint8:
- b, err := f.GetByte()
- if err != nil {
- return err
- }
- if e.CanSet() {
- e.SetUint(uint64(b))
- }
- }
- return nil
-}
-
-func (f *ConsumeFuzzer) GetStringArray() (reflect.Value, error) {
- // The max size of the array:
- const max uint32 = 20
-
- arraySize := f.position
- if arraySize > max {
- arraySize = max
- }
- stringArray := reflect.MakeSlice(reflect.SliceOf(reflect.TypeOf("string")), int(arraySize), int(arraySize))
- if f.position+arraySize >= f.dataTotal {
- return stringArray, errors.New("could not make string array")
- }
-
- for i := 0; i < int(arraySize); i++ {
- stringSize := uint32(f.data[f.position])
- if f.position+stringSize >= f.dataTotal {
- return stringArray, nil
- }
- stringToAppend := string(f.data[f.position : f.position+stringSize])
- strVal := reflect.ValueOf(stringToAppend)
- stringArray = reflect.Append(stringArray, strVal)
- f.position += stringSize
- }
- return stringArray, nil
-}
-
-func (f *ConsumeFuzzer) GetInt() (int, error) {
- if f.position >= f.dataTotal {
- return 0, errors.New("not enough bytes to create int")
- }
- returnInt := int(f.data[f.position])
- f.position++
- return returnInt, nil
-}
-
-func (f *ConsumeFuzzer) GetByte() (byte, error) {
- if f.position >= f.dataTotal {
- return 0x00, errors.New("not enough bytes to get byte")
- }
- returnByte := f.data[f.position]
- f.position++
- return returnByte, nil
-}
-
-func (f *ConsumeFuzzer) GetNBytes(numberOfBytes int) ([]byte, error) {
- if f.position >= f.dataTotal {
- return nil, errors.New("not enough bytes to get byte")
- }
- returnBytes := make([]byte, 0, numberOfBytes)
- for i := 0; i < numberOfBytes; i++ {
- newByte, err := f.GetByte()
- if err != nil {
- return nil, err
- }
- returnBytes = append(returnBytes, newByte)
- }
- return returnBytes, nil
-}
-
-func (f *ConsumeFuzzer) GetUint16() (uint16, error) {
- u16, err := f.GetNBytes(2)
- if err != nil {
- return 0, err
- }
- littleEndian, err := f.GetBool()
- if err != nil {
- return 0, err
- }
- if littleEndian {
- return binary.LittleEndian.Uint16(u16), nil
- }
- return binary.BigEndian.Uint16(u16), nil
-}
-
-func (f *ConsumeFuzzer) GetUint32() (uint32, error) {
- u32, err := f.GetNBytes(4)
- if err != nil {
- return 0, err
- }
- return binary.BigEndian.Uint32(u32), nil
-}
-
-func (f *ConsumeFuzzer) GetUint64() (uint64, error) {
- u64, err := f.GetNBytes(8)
- if err != nil {
- return 0, err
- }
- littleEndian, err := f.GetBool()
- if err != nil {
- return 0, err
- }
- if littleEndian {
- return binary.LittleEndian.Uint64(u64), nil
- }
- return binary.BigEndian.Uint64(u64), nil
-}
-
-func (f *ConsumeFuzzer) GetBytes() ([]byte, error) {
- var length uint32
- var err error
- length, err = f.GetUint32()
- if err != nil {
- return nil, errors.New("not enough bytes to create byte array")
- }
-
- if length == 0 {
- length = 30
- }
- bytesLeft := f.dataTotal - f.position
- if bytesLeft <= 0 {
- return nil, errors.New("not enough bytes to create byte array")
- }
-
- // If the length is the same as bytes left, we will not overflow
- // the remaining bytes.
- if length != bytesLeft {
- length = length % bytesLeft
- }
- byteBegin := f.position
- if byteBegin+length < byteBegin {
- return nil, errors.New("numbers overflow")
- }
- f.position = byteBegin + length
- return f.data[byteBegin:f.position], nil
-}
-
-func (f *ConsumeFuzzer) GetString() (string, error) {
- if f.position >= f.dataTotal {
- return "nil", errors.New("not enough bytes to create string")
- }
- length, err := f.GetUint32()
- if err != nil {
- return "nil", errors.New("not enough bytes to create string")
- }
- if f.position > MaxTotalLen {
- return "nil", errors.New("created too large a string")
- }
- byteBegin := f.position
- if byteBegin >= f.dataTotal {
- return "nil", errors.New("not enough bytes to create string")
- }
- if byteBegin+length > f.dataTotal {
- return "nil", errors.New("not enough bytes to create string")
- }
- if byteBegin > byteBegin+length {
- return "nil", errors.New("numbers overflow")
- }
- f.position = byteBegin + length
- return string(f.data[byteBegin:f.position]), nil
-}
-
-func (f *ConsumeFuzzer) GetBool() (bool, error) {
- if f.position >= f.dataTotal {
- return false, errors.New("not enough bytes to create bool")
- }
- if IsDivisibleBy(int(f.data[f.position]), 2) {
- f.position++
- return true, nil
- } else {
- f.position++
- return false, nil
- }
-}
-
-func (f *ConsumeFuzzer) FuzzMap(m interface{}) error {
- return f.GenerateStruct(m)
-}
-
-func returnTarBytes(buf []byte) ([]byte, error) {
- return buf, nil
- // Count files
- var fileCounter int
- tr := tar.NewReader(bytes.NewReader(buf))
- for {
- _, err := tr.Next()
- if err == io.EOF {
- break
- }
- if err != nil {
- return nil, err
- }
- fileCounter++
- }
- if fileCounter >= 1 {
- return buf, nil
- }
- return nil, fmt.Errorf("not enough files were created\n")
-}
-
-func setTarHeaderFormat(hdr *tar.Header, f *ConsumeFuzzer) error {
- ind, err := f.GetInt()
- if err != nil {
- hdr.Format = tar.FormatGNU
- //return nil
- }
- switch ind % 4 {
- case 0:
- hdr.Format = tar.FormatUnknown
- case 1:
- hdr.Format = tar.FormatUSTAR
- case 2:
- hdr.Format = tar.FormatPAX
- case 3:
- hdr.Format = tar.FormatGNU
- }
- return nil
-}
-
-func setTarHeaderTypeflag(hdr *tar.Header, f *ConsumeFuzzer) error {
- ind, err := f.GetInt()
- if err != nil {
- return err
- }
- switch ind % 13 {
- case 0:
- hdr.Typeflag = tar.TypeReg
- case 1:
- hdr.Typeflag = tar.TypeLink
- linkname, err := f.GetString()
- if err != nil {
- return err
- }
- hdr.Linkname = linkname
- case 2:
- hdr.Typeflag = tar.TypeSymlink
- linkname, err := f.GetString()
- if err != nil {
- return err
- }
- hdr.Linkname = linkname
- case 3:
- hdr.Typeflag = tar.TypeChar
- case 4:
- hdr.Typeflag = tar.TypeBlock
- case 5:
- hdr.Typeflag = tar.TypeDir
- case 6:
- hdr.Typeflag = tar.TypeFifo
- case 7:
- hdr.Typeflag = tar.TypeCont
- case 8:
- hdr.Typeflag = tar.TypeXHeader
- case 9:
- hdr.Typeflag = tar.TypeXGlobalHeader
- case 10:
- hdr.Typeflag = tar.TypeGNUSparse
- case 11:
- hdr.Typeflag = tar.TypeGNULongName
- case 12:
- hdr.Typeflag = tar.TypeGNULongLink
- }
- return nil
-}
-
-func (f *ConsumeFuzzer) createTarFileBody() ([]byte, error) {
- return f.GetBytes()
- /*length, err := f.GetUint32()
- if err != nil {
- return nil, errors.New("not enough bytes to create byte array")
- }
-
- // A bit of optimization to attempt to create a file body
- // when we don't have as many bytes left as "length"
- remainingBytes := f.dataTotal - f.position
- if remainingBytes <= 0 {
- return nil, errors.New("created too large a string")
- }
- if f.position+length > MaxTotalLen {
- return nil, errors.New("created too large a string")
- }
- byteBegin := f.position
- if byteBegin >= f.dataTotal {
- return nil, errors.New("not enough bytes to create byte array")
- }
- if length == 0 {
- return nil, errors.New("zero-length is not supported")
- }
- if byteBegin+length >= f.dataTotal {
- return nil, errors.New("not enough bytes to create byte array")
- }
- if byteBegin+length < byteBegin {
- return nil, errors.New("numbers overflow")
- }
- f.position = byteBegin + length
- return f.data[byteBegin:f.position], nil*/
-}
-
-// getTarFileName is similar to GetString(), but creates string based
-// on the length of f.data to reduce the likelihood of overflowing
-// f.data.
-func (f *ConsumeFuzzer) getTarFilename() (string, error) {
- return f.GetString()
- /*length, err := f.GetUint32()
- if err != nil {
- return "nil", errors.New("not enough bytes to create string")
- }
-
- // A bit of optimization to attempt to create a file name
- // when we don't have as many bytes left as "length"
- remainingBytes := f.dataTotal - f.position
- if remainingBytes <= 0 {
- return "nil", errors.New("created too large a string")
- }
- if f.position > MaxTotalLen {
- return "nil", errors.New("created too large a string")
- }
- byteBegin := f.position
- if byteBegin >= f.dataTotal {
- return "nil", errors.New("not enough bytes to create string")
- }
- if byteBegin+length > f.dataTotal {
- return "nil", errors.New("not enough bytes to create string")
- }
- if byteBegin > byteBegin+length {
- return "nil", errors.New("numbers overflow")
- }
- f.position = byteBegin + length
- return string(f.data[byteBegin:f.position]), nil*/
-}
-
-type TarFile struct {
- Hdr *tar.Header
- Body []byte
-}
-
-// TarBytes returns valid bytes for a tar archive
-func (f *ConsumeFuzzer) TarBytes() ([]byte, error) {
- numberOfFiles, err := f.GetInt()
- if err != nil {
- return nil, err
- }
- var tarFiles []*TarFile
- tarFiles = make([]*TarFile, 0)
-
- const maxNoOfFiles = 100
- for i := 0; i < numberOfFiles%maxNoOfFiles; i++ {
- var filename string
- var filebody []byte
- var sec, nsec int
- var err error
-
- filename, err = f.getTarFilename()
- if err != nil {
- var sb strings.Builder
- sb.WriteString("file-")
- sb.WriteString(strconv.Itoa(i))
- filename = sb.String()
- }
- filebody, err = f.createTarFileBody()
- if err != nil {
- var sb strings.Builder
- sb.WriteString("filebody-")
- sb.WriteString(strconv.Itoa(i))
- filebody = []byte(sb.String())
- }
-
- sec, err = f.GetInt()
- if err != nil {
- sec = 1672531200 // beginning of 2023
- }
- nsec, err = f.GetInt()
- if err != nil {
- nsec = 1703980800 // end of 2023
- }
-
- hdr := &tar.Header{
- Name: filename,
- Size: int64(len(filebody)),
- Mode: 0o600,
- ModTime: time.Unix(int64(sec), int64(nsec)),
- }
- if err := setTarHeaderTypeflag(hdr, f); err != nil {
- return []byte(""), err
- }
- if err := setTarHeaderFormat(hdr, f); err != nil {
- return []byte(""), err
- }
- tf := &TarFile{
- Hdr: hdr,
- Body: filebody,
- }
- tarFiles = append(tarFiles, tf)
- }
-
- var buf bytes.Buffer
- tw := tar.NewWriter(&buf)
- defer tw.Close()
-
- for _, tf := range tarFiles {
- tw.WriteHeader(tf.Hdr)
- tw.Write(tf.Body)
- }
- return buf.Bytes(), nil
-}
-
-// This is similar to TarBytes, but it returns a series of
-// files instead of raw tar bytes. The advantage of this
-// api is that it is cheaper in terms of cpu power to
-// modify or check the files in the fuzzer with TarFiles()
-// because it avoids creating a tar reader.
-func (f *ConsumeFuzzer) TarFiles() ([]*TarFile, error) {
- numberOfFiles, err := f.GetInt()
- if err != nil {
- return nil, err
- }
- var tarFiles []*TarFile
- tarFiles = make([]*TarFile, 0)
-
- const maxNoOfFiles = 100
- for i := 0; i < numberOfFiles%maxNoOfFiles; i++ {
- filename, err := f.getTarFilename()
- if err != nil {
- return tarFiles, err
- }
- filebody, err := f.createTarFileBody()
- if err != nil {
- return tarFiles, err
- }
-
- sec, err := f.GetInt()
- if err != nil {
- return tarFiles, err
- }
- nsec, err := f.GetInt()
- if err != nil {
- return tarFiles, err
- }
-
- hdr := &tar.Header{
- Name: filename,
- Size: int64(len(filebody)),
- Mode: 0o600,
- ModTime: time.Unix(int64(sec), int64(nsec)),
- }
- if err := setTarHeaderTypeflag(hdr, f); err != nil {
- hdr.Typeflag = tar.TypeReg
- }
- if err := setTarHeaderFormat(hdr, f); err != nil {
- return tarFiles, err // should not happend
- }
- tf := &TarFile{
- Hdr: hdr,
- Body: filebody,
- }
- tarFiles = append(tarFiles, tf)
- }
- return tarFiles, nil
-}
-
-// CreateFiles creates pseudo-random files in rootDir.
-// It creates subdirs and places the files there.
-// It is the callers responsibility to ensure that
-// rootDir exists.
-func (f *ConsumeFuzzer) CreateFiles(rootDir string) error {
- numberOfFiles, err := f.GetInt()
- if err != nil {
- return err
- }
- maxNumberOfFiles := numberOfFiles % 4000 // This is completely arbitrary
- if maxNumberOfFiles == 0 {
- return errors.New("maxNumberOfFiles is nil")
- }
-
- var noOfCreatedFiles int
- for i := 0; i < maxNumberOfFiles; i++ {
- // The file to create:
- fileName, err := f.GetString()
- if err != nil {
- if noOfCreatedFiles > 0 {
- // If files have been created, we don't return an error.
- break
- } else {
- return errors.New("could not get fileName")
- }
- }
- if strings.Contains(fileName, "..") || (len(fileName) > 0 && fileName[0] == 47) || strings.Contains(fileName, "\\") {
- continue
- }
- fullFilePath := filepath.Join(rootDir, fileName)
-
- // Find the subdirectory of the file
- if subDir := filepath.Dir(fileName); subDir != "" && subDir != "." {
- // create the dir first; avoid going outside the root dir
- if strings.Contains(subDir, "../") || (len(subDir) > 0 && subDir[0] == 47) || strings.Contains(subDir, "\\") {
- continue
- }
- dirPath := filepath.Join(rootDir, subDir)
- if _, err := os.Stat(dirPath); os.IsNotExist(err) {
- err2 := os.MkdirAll(dirPath, 0o777)
- if err2 != nil {
- continue
- }
- }
- fullFilePath = filepath.Join(dirPath, fileName)
- } else {
- // Create symlink
- createSymlink, err := f.GetBool()
- if err != nil {
- if noOfCreatedFiles > 0 {
- break
- } else {
- return errors.New("could not create the symlink")
- }
- }
- if createSymlink {
- symlinkTarget, err := f.GetString()
- if err != nil {
- return err
- }
- err = os.Symlink(symlinkTarget, fullFilePath)
- if err != nil {
- return err
- }
- // stop loop here, since a symlink needs no further action
- noOfCreatedFiles++
- continue
- }
- // We create a normal file
- fileContents, err := f.GetBytes()
- if err != nil {
- if noOfCreatedFiles > 0 {
- break
- } else {
- return errors.New("could not create the file")
- }
- }
- err = os.WriteFile(fullFilePath, fileContents, 0o666)
- if err != nil {
- continue
- }
- noOfCreatedFiles++
- }
- }
- return nil
-}
-
-// GetStringFrom returns a string that can only consist of characters
-// included in possibleChars. It returns an error if the created string
-// does not have the specified length.
-func (f *ConsumeFuzzer) GetStringFrom(possibleChars string, length int) (string, error) {
- if (f.dataTotal - f.position) < uint32(length) {
- return "", errors.New("not enough bytes to create a string")
- }
- output := make([]byte, 0, length)
- for i := 0; i < length; i++ {
- charIndex, err := f.GetInt()
- if err != nil {
- return string(output), err
- }
- output = append(output, possibleChars[charIndex%len(possibleChars)])
- }
- return string(output), nil
-}
-
-func (f *ConsumeFuzzer) GetRune() ([]rune, error) {
- stringToConvert, err := f.GetString()
- if err != nil {
- return []rune("nil"), err
- }
- return []rune(stringToConvert), nil
-}
-
-func (f *ConsumeFuzzer) GetFloat32() (float32, error) {
- u32, err := f.GetNBytes(4)
- if err != nil {
- return 0, err
- }
- littleEndian, err := f.GetBool()
- if err != nil {
- return 0, err
- }
- if littleEndian {
- u32LE := binary.LittleEndian.Uint32(u32)
- return math.Float32frombits(u32LE), nil
- }
- u32BE := binary.BigEndian.Uint32(u32)
- return math.Float32frombits(u32BE), nil
-}
-
-func (f *ConsumeFuzzer) GetFloat64() (float64, error) {
- u64, err := f.GetNBytes(8)
- if err != nil {
- return 0, err
- }
- littleEndian, err := f.GetBool()
- if err != nil {
- return 0, err
- }
- if littleEndian {
- u64LE := binary.LittleEndian.Uint64(u64)
- return math.Float64frombits(u64LE), nil
- }
- u64BE := binary.BigEndian.Uint64(u64)
- return math.Float64frombits(u64BE), nil
-}
-
-func (f *ConsumeFuzzer) CreateSlice(targetSlice interface{}) error {
- return f.GenerateStruct(targetSlice)
-}
diff --git a/vendor/github.com/AdaLogics/go-fuzz-headers/funcs.go b/vendor/github.com/AdaLogics/go-fuzz-headers/funcs.go
deleted file mode 100644
index 8ca3a61b..00000000
--- a/vendor/github.com/AdaLogics/go-fuzz-headers/funcs.go
+++ /dev/null
@@ -1,62 +0,0 @@
-// Copyright 2023 The go-fuzz-headers Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package gofuzzheaders
-
-import (
- "fmt"
- "reflect"
-)
-
-type Continue struct {
- F *ConsumeFuzzer
-}
-
-func (f *ConsumeFuzzer) AddFuncs(fuzzFuncs []interface{}) {
- for i := range fuzzFuncs {
- v := reflect.ValueOf(fuzzFuncs[i])
- if v.Kind() != reflect.Func {
- panic("Need only funcs!")
- }
- t := v.Type()
- if t.NumIn() != 2 || t.NumOut() != 1 {
- fmt.Println(t.NumIn(), t.NumOut())
-
- panic("Need 2 in and 1 out params. In must be the type. Out must be an error")
- }
- argT := t.In(0)
- switch argT.Kind() {
- case reflect.Ptr, reflect.Map:
- default:
- panic("fuzzFunc must take pointer or map type")
- }
- if t.In(1) != reflect.TypeOf(Continue{}) {
- panic("fuzzFunc's second parameter must be type Continue")
- }
- f.Funcs[argT] = v
- }
-}
-
-func (f *ConsumeFuzzer) GenerateWithCustom(targetStruct interface{}) error {
- e := reflect.ValueOf(targetStruct).Elem()
- return f.fuzzStruct(e, true)
-}
-
-func (c Continue) GenerateStruct(targetStruct interface{}) error {
- return c.F.GenerateStruct(targetStruct)
-}
-
-func (c Continue) GenerateStructWithCustom(targetStruct interface{}) error {
- return c.F.GenerateWithCustom(targetStruct)
-}
diff --git a/vendor/github.com/AdaLogics/go-fuzz-headers/sql.go b/vendor/github.com/AdaLogics/go-fuzz-headers/sql.go
deleted file mode 100644
index 2afd49f8..00000000
--- a/vendor/github.com/AdaLogics/go-fuzz-headers/sql.go
+++ /dev/null
@@ -1,556 +0,0 @@
-// Copyright 2023 The go-fuzz-headers Authors.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package gofuzzheaders
-
-import (
- "fmt"
- "strings"
-)
-
-// returns a keyword by index
-func getKeyword(f *ConsumeFuzzer) (string, error) {
- index, err := f.GetInt()
- if err != nil {
- return keywords[0], err
- }
- for i, k := range keywords {
- if i == index {
- return k, nil
- }
- }
- return keywords[0], fmt.Errorf("could not get a kw")
-}
-
-// Simple utility function to check if a string
-// slice contains a string.
-func containsString(s []string, e string) bool {
- for _, a := range s {
- if a == e {
- return true
- }
- }
- return false
-}
-
-// These keywords are used specifically for fuzzing Vitess
-var keywords = []string{
- "accessible", "action", "add", "after", "against", "algorithm",
- "all", "alter", "always", "analyze", "and", "as", "asc", "asensitive",
- "auto_increment", "avg_row_length", "before", "begin", "between",
- "bigint", "binary", "_binary", "_utf8mb4", "_utf8", "_latin1", "bit",
- "blob", "bool", "boolean", "both", "by", "call", "cancel", "cascade",
- "cascaded", "case", "cast", "channel", "change", "char", "character",
- "charset", "check", "checksum", "coalesce", "code", "collate", "collation",
- "column", "columns", "comment", "committed", "commit", "compact", "complete",
- "compressed", "compression", "condition", "connection", "constraint", "continue",
- "convert", "copy", "cume_dist", "substr", "substring", "create", "cross",
- "csv", "current_date", "current_time", "current_timestamp", "current_user",
- "cursor", "data", "database", "databases", "day", "day_hour", "day_microsecond",
- "day_minute", "day_second", "date", "datetime", "dec", "decimal", "declare",
- "default", "definer", "delay_key_write", "delayed", "delete", "dense_rank",
- "desc", "describe", "deterministic", "directory", "disable", "discard",
- "disk", "distinct", "distinctrow", "div", "double", "do", "drop", "dumpfile",
- "duplicate", "dynamic", "each", "else", "elseif", "empty", "enable",
- "enclosed", "encryption", "end", "enforced", "engine", "engines", "enum",
- "error", "escape", "escaped", "event", "exchange", "exclusive", "exists",
- "exit", "explain", "expansion", "export", "extended", "extract", "false",
- "fetch", "fields", "first", "first_value", "fixed", "float", "float4",
- "float8", "flush", "for", "force", "foreign", "format", "from", "full",
- "fulltext", "function", "general", "generated", "geometry", "geometrycollection",
- "get", "global", "gtid_executed", "grant", "group", "grouping", "groups",
- "group_concat", "having", "header", "high_priority", "hosts", "hour", "hour_microsecond",
- "hour_minute", "hour_second", "if", "ignore", "import", "in", "index", "indexes",
- "infile", "inout", "inner", "inplace", "insensitive", "insert", "insert_method",
- "int", "int1", "int2", "int3", "int4", "int8", "integer", "interval",
- "into", "io_after_gtids", "is", "isolation", "iterate", "invoker", "join",
- "json", "json_table", "key", "keys", "keyspaces", "key_block_size", "kill", "lag",
- "language", "last", "last_value", "last_insert_id", "lateral", "lead", "leading",
- "leave", "left", "less", "level", "like", "limit", "linear", "lines",
- "linestring", "load", "local", "localtime", "localtimestamp", "lock", "logs",
- "long", "longblob", "longtext", "loop", "low_priority", "manifest",
- "master_bind", "match", "max_rows", "maxvalue", "mediumblob", "mediumint",
- "mediumtext", "memory", "merge", "microsecond", "middleint", "min_rows", "minute",
- "minute_microsecond", "minute_second", "mod", "mode", "modify", "modifies",
- "multilinestring", "multipoint", "multipolygon", "month", "name",
- "names", "natural", "nchar", "next", "no", "none", "not", "no_write_to_binlog",
- "nth_value", "ntile", "null", "numeric", "of", "off", "offset", "on",
- "only", "open", "optimize", "optimizer_costs", "option", "optionally",
- "or", "order", "out", "outer", "outfile", "over", "overwrite", "pack_keys",
- "parser", "partition", "partitioning", "password", "percent_rank", "plugins",
- "point", "polygon", "precision", "primary", "privileges", "processlist",
- "procedure", "query", "quarter", "range", "rank", "read", "reads", "read_write",
- "real", "rebuild", "recursive", "redundant", "references", "regexp", "relay",
- "release", "remove", "rename", "reorganize", "repair", "repeat", "repeatable",
- "replace", "require", "resignal", "restrict", "return", "retry", "revert",
- "revoke", "right", "rlike", "rollback", "row", "row_format", "row_number",
- "rows", "s3", "savepoint", "schema", "schemas", "second", "second_microsecond",
- "security", "select", "sensitive", "separator", "sequence", "serializable",
- "session", "set", "share", "shared", "show", "signal", "signed", "slow",
- "smallint", "spatial", "specific", "sql", "sqlexception", "sqlstate",
- "sqlwarning", "sql_big_result", "sql_cache", "sql_calc_found_rows",
- "sql_no_cache", "sql_small_result", "ssl", "start", "starting",
- "stats_auto_recalc", "stats_persistent", "stats_sample_pages", "status",
- "storage", "stored", "straight_join", "stream", "system", "vstream",
- "table", "tables", "tablespace", "temporary", "temptable", "terminated",
- "text", "than", "then", "time", "timestamp", "timestampadd", "timestampdiff",
- "tinyblob", "tinyint", "tinytext", "to", "trailing", "transaction", "tree",
- "traditional", "trigger", "triggers", "true", "truncate", "uncommitted",
- "undefined", "undo", "union", "unique", "unlock", "unsigned", "update",
- "upgrade", "usage", "use", "user", "user_resources", "using", "utc_date",
- "utc_time", "utc_timestamp", "validation", "values", "variables", "varbinary",
- "varchar", "varcharacter", "varying", "vgtid_executed", "virtual", "vindex",
- "vindexes", "view", "vitess", "vitess_keyspaces", "vitess_metadata",
- "vitess_migration", "vitess_migrations", "vitess_replication_status",
- "vitess_shards", "vitess_tablets", "vschema", "warnings", "when",
- "where", "while", "window", "with", "without", "work", "write", "xor",
- "year", "year_month", "zerofill",
-}
-
-// Keywords that could get an additional keyword
-var needCustomString = []string{
- "DISTINCTROW", "FROM", // Select keywords:
- "GROUP BY", "HAVING", "WINDOW",
- "FOR",
- "ORDER BY", "LIMIT",
- "INTO", "PARTITION", "AS", // Insert Keywords:
- "ON DUPLICATE KEY UPDATE",
- "WHERE", "LIMIT", // Delete keywords
- "INFILE", "INTO TABLE", "CHARACTER SET", // Load keywords
- "TERMINATED BY", "ENCLOSED BY",
- "ESCAPED BY", "STARTING BY",
- "TERMINATED BY", "STARTING BY",
- "IGNORE",
- "VALUE", "VALUES", // Replace tokens
- "SET", // Update tokens
- "ENGINE =", // Drop tokens
- "DEFINER =", "ON SCHEDULE", "RENAME TO", // Alter tokens
- "COMMENT", "DO", "INITIAL_SIZE = ", "OPTIONS",
-}
-
-var alterTableTokens = [][]string{
- {"CUSTOM_FUZZ_STRING"},
- {"CUSTOM_ALTTER_TABLE_OPTIONS"},
- {"PARTITION_OPTIONS_FOR_ALTER_TABLE"},
-}
-
-var alterTokens = [][]string{
- {
- "DATABASE", "SCHEMA", "DEFINER = ", "EVENT", "FUNCTION", "INSTANCE",
- "LOGFILE GROUP", "PROCEDURE", "SERVER",
- },
- {"CUSTOM_FUZZ_STRING"},
- {
- "ON SCHEDULE", "ON COMPLETION PRESERVE", "ON COMPLETION NOT PRESERVE",
- "ADD UNDOFILE", "OPTIONS",
- },
- {"RENAME TO", "INITIAL_SIZE = "},
- {"ENABLE", "DISABLE", "DISABLE ON SLAVE", "ENGINE"},
- {"COMMENT"},
- {"DO"},
-}
-
-var setTokens = [][]string{
- {"CHARACTER SET", "CHARSET", "CUSTOM_FUZZ_STRING", "NAMES"},
- {"CUSTOM_FUZZ_STRING", "DEFAULT", "="},
- {"CUSTOM_FUZZ_STRING"},
-}
-
-var dropTokens = [][]string{
- {"TEMPORARY", "UNDO"},
- {
- "DATABASE", "SCHEMA", "EVENT", "INDEX", "LOGFILE GROUP",
- "PROCEDURE", "FUNCTION", "SERVER", "SPATIAL REFERENCE SYSTEM",
- "TABLE", "TABLESPACE", "TRIGGER", "VIEW",
- },
- {"IF EXISTS"},
- {"CUSTOM_FUZZ_STRING"},
- {"ON", "ENGINE = ", "RESTRICT", "CASCADE"},
-}
-
-var renameTokens = [][]string{
- {"TABLE"},
- {"CUSTOM_FUZZ_STRING"},
- {"TO"},
- {"CUSTOM_FUZZ_STRING"},
-}
-
-var truncateTokens = [][]string{
- {"TABLE"},
- {"CUSTOM_FUZZ_STRING"},
-}
-
-var createTokens = [][]string{
- {"OR REPLACE", "TEMPORARY", "UNDO"}, // For create spatial reference system
- {
- "UNIQUE", "FULLTEXT", "SPATIAL", "ALGORITHM = UNDEFINED", "ALGORITHM = MERGE",
- "ALGORITHM = TEMPTABLE",
- },
- {
- "DATABASE", "SCHEMA", "EVENT", "FUNCTION", "INDEX", "LOGFILE GROUP",
- "PROCEDURE", "SERVER", "SPATIAL REFERENCE SYSTEM", "TABLE", "TABLESPACE",
- "TRIGGER", "VIEW",
- },
- {"IF NOT EXISTS"},
- {"CUSTOM_FUZZ_STRING"},
-}
-
-/*
-// For future use.
-var updateTokens = [][]string{
- {"LOW_PRIORITY"},
- {"IGNORE"},
- {"SET"},
- {"WHERE"},
- {"ORDER BY"},
- {"LIMIT"},
-}
-*/
-
-var replaceTokens = [][]string{
- {"LOW_PRIORITY", "DELAYED"},
- {"INTO"},
- {"PARTITION"},
- {"CUSTOM_FUZZ_STRING"},
- {"VALUES", "VALUE"},
-}
-
-var loadTokens = [][]string{
- {"DATA"},
- {"LOW_PRIORITY", "CONCURRENT", "LOCAL"},
- {"INFILE"},
- {"REPLACE", "IGNORE"},
- {"INTO TABLE"},
- {"PARTITION"},
- {"CHARACTER SET"},
- {"FIELDS", "COLUMNS"},
- {"TERMINATED BY"},
- {"OPTIONALLY"},
- {"ENCLOSED BY"},
- {"ESCAPED BY"},
- {"LINES"},
- {"STARTING BY"},
- {"TERMINATED BY"},
- {"IGNORE"},
- {"LINES", "ROWS"},
- {"CUSTOM_FUZZ_STRING"},
-}
-
-// These Are everything that comes after "INSERT"
-var insertTokens = [][]string{
- {"LOW_PRIORITY", "DELAYED", "HIGH_PRIORITY", "IGNORE"},
- {"INTO"},
- {"PARTITION"},
- {"CUSTOM_FUZZ_STRING"},
- {"AS"},
- {"ON DUPLICATE KEY UPDATE"},
-}
-
-// These are everything that comes after "SELECT"
-var selectTokens = [][]string{
- {"*", "CUSTOM_FUZZ_STRING", "DISTINCTROW"},
- {"HIGH_PRIORITY"},
- {"STRAIGHT_JOIN"},
- {"SQL_SMALL_RESULT", "SQL_BIG_RESULT", "SQL_BUFFER_RESULT"},
- {"SQL_NO_CACHE", "SQL_CALC_FOUND_ROWS"},
- {"CUSTOM_FUZZ_STRING"},
- {"FROM"},
- {"WHERE"},
- {"GROUP BY"},
- {"HAVING"},
- {"WINDOW"},
- {"ORDER BY"},
- {"LIMIT"},
- {"CUSTOM_FUZZ_STRING"},
- {"FOR"},
-}
-
-// These are everything that comes after "DELETE"
-var deleteTokens = [][]string{
- {"LOW_PRIORITY", "QUICK", "IGNORE", "FROM", "AS"},
- {"PARTITION"},
- {"WHERE"},
- {"ORDER BY"},
- {"LIMIT"},
-}
-
-var alter_table_options = []string{
- "ADD", "COLUMN", "FIRST", "AFTER", "INDEX", "KEY", "FULLTEXT", "SPATIAL",
- "CONSTRAINT", "UNIQUE", "FOREIGN KEY", "CHECK", "ENFORCED", "DROP", "ALTER",
- "NOT", "INPLACE", "COPY", "SET", "VISIBLE", "INVISIBLE", "DEFAULT", "CHANGE",
- "CHARACTER SET", "COLLATE", "DISABLE", "ENABLE", "KEYS", "TABLESPACE", "LOCK",
- "FORCE", "MODIFY", "SHARED", "EXCLUSIVE", "NONE", "ORDER BY", "RENAME COLUMN",
- "AS", "=", "ASC", "DESC", "WITH", "WITHOUT", "VALIDATION", "ADD PARTITION",
- "DROP PARTITION", "DISCARD PARTITION", "IMPORT PARTITION", "TRUNCATE PARTITION",
- "COALESCE PARTITION", "REORGANIZE PARTITION", "EXCHANGE PARTITION",
- "ANALYZE PARTITION", "CHECK PARTITION", "OPTIMIZE PARTITION", "REBUILD PARTITION",
- "REPAIR PARTITION", "REMOVE PARTITIONING", "USING", "BTREE", "HASH", "COMMENT",
- "KEY_BLOCK_SIZE", "WITH PARSER", "AUTOEXTEND_SIZE", "AUTO_INCREMENT", "AVG_ROW_LENGTH",
- "CHECKSUM", "INSERT_METHOD", "ROW_FORMAT", "DYNAMIC", "FIXED", "COMPRESSED", "REDUNDANT",
- "COMPACT", "SECONDARY_ENGINE_ATTRIBUTE", "STATS_AUTO_RECALC", "STATS_PERSISTENT",
- "STATS_SAMPLE_PAGES", "ZLIB", "LZ4", "ENGINE_ATTRIBUTE", "KEY_BLOCK_SIZE", "MAX_ROWS",
- "MIN_ROWS", "PACK_KEYS", "PASSWORD", "COMPRESSION", "CONNECTION", "DIRECTORY",
- "DELAY_KEY_WRITE", "ENCRYPTION", "STORAGE", "DISK", "MEMORY", "UNION",
-}
-
-// Creates an 'alter table' statement. 'alter table' is an exception
-// in that it has its own function. The majority of statements
-// are created by 'createStmt()'.
-func createAlterTableStmt(f *ConsumeFuzzer) (string, error) {
- maxArgs, err := f.GetInt()
- if err != nil {
- return "", err
- }
- maxArgs = maxArgs % 30
- if maxArgs == 0 {
- return "", fmt.Errorf("could not create alter table stmt")
- }
-
- var stmt strings.Builder
- stmt.WriteString("ALTER TABLE ")
- for i := 0; i < maxArgs; i++ {
- // Calculate if we get existing token or custom string
- tokenType, err := f.GetInt()
- if err != nil {
- return "", err
- }
- if tokenType%4 == 1 {
- customString, err := f.GetString()
- if err != nil {
- return "", err
- }
- stmt.WriteString(" " + customString)
- } else {
- tokenIndex, err := f.GetInt()
- if err != nil {
- return "", err
- }
- stmt.WriteString(" " + alter_table_options[tokenIndex%len(alter_table_options)])
- }
- }
- return stmt.String(), nil
-}
-
-func chooseToken(tokens []string, f *ConsumeFuzzer) (string, error) {
- index, err := f.GetInt()
- if err != nil {
- return "", err
- }
- var token strings.Builder
- token.WriteString(tokens[index%len(tokens)])
- if token.String() == "CUSTOM_FUZZ_STRING" {
- customFuzzString, err := f.GetString()
- if err != nil {
- return "", err
- }
- return customFuzzString, nil
- }
-
- // Check if token requires an argument
- if containsString(needCustomString, token.String()) {
- customFuzzString, err := f.GetString()
- if err != nil {
- return "", err
- }
- token.WriteString(" " + customFuzzString)
- }
- return token.String(), nil
-}
-
-var stmtTypes = map[string][][]string{
- "DELETE": deleteTokens,
- "INSERT": insertTokens,
- "SELECT": selectTokens,
- "LOAD": loadTokens,
- "REPLACE": replaceTokens,
- "CREATE": createTokens,
- "DROP": dropTokens,
- "RENAME": renameTokens,
- "TRUNCATE": truncateTokens,
- "SET": setTokens,
- "ALTER": alterTokens,
- "ALTER TABLE": alterTableTokens, // ALTER TABLE has its own set of tokens
-}
-
-var stmtTypeEnum = map[int]string{
- 0: "DELETE",
- 1: "INSERT",
- 2: "SELECT",
- 3: "LOAD",
- 4: "REPLACE",
- 5: "CREATE",
- 6: "DROP",
- 7: "RENAME",
- 8: "TRUNCATE",
- 9: "SET",
- 10: "ALTER",
- 11: "ALTER TABLE",
-}
-
-func createStmt(f *ConsumeFuzzer) (string, error) {
- stmtIndex, err := f.GetInt()
- if err != nil {
- return "", err
- }
- stmtIndex = stmtIndex % len(stmtTypes)
-
- queryType := stmtTypeEnum[stmtIndex]
- tokens := stmtTypes[queryType]
-
- // We have custom creator for ALTER TABLE
- if queryType == "ALTER TABLE" {
- query, err := createAlterTableStmt(f)
- if err != nil {
- return "", err
- }
- return query, nil
- }
-
- // Here we are creating a query that is not
- // an 'alter table' query. For available
- // queries, see "stmtTypes"
-
- // First specify the first query keyword:
- var query strings.Builder
- query.WriteString(queryType)
-
- // Next create the args for the
- queryArgs, err := createStmtArgs(tokens, f)
- if err != nil {
- return "", err
- }
- query.WriteString(" " + queryArgs)
- return query.String(), nil
-}
-
-// Creates the arguments of a statements. In a select statement
-// that would be everything after "select".
-func createStmtArgs(tokenslice [][]string, f *ConsumeFuzzer) (string, error) {
- var query, token strings.Builder
-
- // We go through the tokens in the tokenslice,
- // create the respective token and add it to
- // "query"
- for _, tokens := range tokenslice {
- // For extra randomization, the fuzzer can
- // choose to not include this token.
- includeThisToken, err := f.GetBool()
- if err != nil {
- return "", err
- }
- if !includeThisToken {
- continue
- }
-
- // There may be several tokens to choose from:
- if len(tokens) > 1 {
- chosenToken, err := chooseToken(tokens, f)
- if err != nil {
- return "", err
- }
- query.WriteString(" " + chosenToken)
- } else {
- token.WriteString(tokens[0])
-
- // In case the token is "CUSTOM_FUZZ_STRING"
- // we will then create a non-structured string
- if token.String() == "CUSTOM_FUZZ_STRING" {
- customFuzzString, err := f.GetString()
- if err != nil {
- return "", err
- }
- query.WriteString(" " + customFuzzString)
- continue
- }
-
- // Check if token requires an argument.
- // Tokens that take an argument can be found
- // in 'needCustomString'. If so, we add a
- // non-structured string to the token.
- if containsString(needCustomString, token.String()) {
- customFuzzString, err := f.GetString()
- if err != nil {
- return "", err
- }
- token.WriteString(fmt.Sprintf(" %s", customFuzzString))
- }
- query.WriteString(fmt.Sprintf(" %s", token.String()))
- }
- }
- return query.String(), nil
-}
-
-// Creates a semi-structured query. It creates a string
-// that is a combination of the keywords and random strings.
-func createQuery(f *ConsumeFuzzer) (string, error) {
- queryLen, err := f.GetInt()
- if err != nil {
- return "", err
- }
- maxLen := queryLen % 60
- if maxLen == 0 {
- return "", fmt.Errorf("could not create a query")
- }
- var query strings.Builder
- for i := 0; i < maxLen; i++ {
- // Get a new token:
- useKeyword, err := f.GetBool()
- if err != nil {
- return "", err
- }
- if useKeyword {
- keyword, err := getKeyword(f)
- if err != nil {
- return "", err
- }
- query.WriteString(" " + keyword)
- } else {
- customString, err := f.GetString()
- if err != nil {
- return "", err
- }
- query.WriteString(" " + customString)
- }
- }
- if query.String() == "" {
- return "", fmt.Errorf("could not create a query")
- }
- return query.String(), nil
-}
-
-// GetSQLString is the API that users interact with.
-//
-// Usage:
-//
-// f := NewConsumer(data)
-// sqlString, err := f.GetSQLString()
-func (f *ConsumeFuzzer) GetSQLString() (string, error) {
- var query string
- veryStructured, err := f.GetBool()
- if err != nil {
- return "", err
- }
- if veryStructured {
- query, err = createStmt(f)
- if err != nil {
- return "", err
- }
- } else {
- query, err = createQuery(f)
- if err != nil {
- return "", err
- }
- }
- return query, nil
-}
diff --git a/vendor/github.com/Microsoft/hcsshim/LICENSE b/vendor/github.com/Microsoft/hcsshim/LICENSE
deleted file mode 100644
index 49d21669..00000000
--- a/vendor/github.com/Microsoft/hcsshim/LICENSE
+++ /dev/null
@@ -1,21 +0,0 @@
-The MIT License (MIT)
-
-Copyright (c) 2015 Microsoft
-
-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.
\ No newline at end of file
diff --git a/vendor/github.com/Microsoft/hcsshim/osversion/osversion_windows.go b/vendor/github.com/Microsoft/hcsshim/osversion/osversion_windows.go
deleted file mode 100644
index 6c435d2b..00000000
--- a/vendor/github.com/Microsoft/hcsshim/osversion/osversion_windows.go
+++ /dev/null
@@ -1,59 +0,0 @@
-package osversion
-
-import (
- "fmt"
- "sync"
-
- "golang.org/x/sys/windows"
-)
-
-// OSVersion is a wrapper for Windows version information
-// https://msdn.microsoft.com/en-us/library/windows/desktop/ms724439(v=vs.85).aspx
-type OSVersion struct {
- Version uint32
- MajorVersion uint8
- MinorVersion uint8
- Build uint16
-}
-
-var (
- osv OSVersion
- once sync.Once
-)
-
-// Get gets the operating system version on Windows.
-// The calling application must be manifested to get the correct version information.
-func Get() OSVersion {
- once.Do(func() {
- var err error
- osv = OSVersion{}
- osv.Version, err = windows.GetVersion()
- if err != nil {
- // GetVersion never fails.
- panic(err)
- }
- osv.MajorVersion = uint8(osv.Version & 0xFF)
- osv.MinorVersion = uint8(osv.Version >> 8 & 0xFF)
- osv.Build = uint16(osv.Version >> 16)
- })
- return osv
-}
-
-// Build gets the build-number on Windows
-// The calling application must be manifested to get the correct version information.
-func Build() uint16 {
- return Get().Build
-}
-
-// String returns the OSVersion formatted as a string. It implements the
-// [fmt.Stringer] interface.
-func (osv OSVersion) String() string {
- return fmt.Sprintf("%d.%d.%d", osv.MajorVersion, osv.MinorVersion, osv.Build)
-}
-
-// ToString returns the OSVersion formatted as a string.
-//
-// Deprecated: use [OSVersion.String].
-func (osv OSVersion) ToString() string {
- return osv.String()
-}
diff --git a/vendor/github.com/Microsoft/hcsshim/osversion/platform_compat_windows.go b/vendor/github.com/Microsoft/hcsshim/osversion/platform_compat_windows.go
deleted file mode 100644
index f8d411ad..00000000
--- a/vendor/github.com/Microsoft/hcsshim/osversion/platform_compat_windows.go
+++ /dev/null
@@ -1,35 +0,0 @@
-package osversion
-
-// List of stable ABI compliant ltsc releases
-// Note: List must be sorted in ascending order
-var compatLTSCReleases = []uint16{
- V21H2Server,
-}
-
-// CheckHostAndContainerCompat checks if given host and container
-// OS versions are compatible.
-// It includes support for stable ABI compliant versions as well.
-// Every release after WS 2022 will support the previous ltsc
-// container image. Stable ABI is in preview mode for windows 11 client.
-// Refer: https://learn.microsoft.com/en-us/virtualization/windowscontainers/deploy-containers/version-compatibility?tabs=windows-server-2022%2Cwindows-10#windows-server-host-os-compatibility
-func CheckHostAndContainerCompat(host, ctr OSVersion) bool {
- // check major minor versions of host and guest
- if host.MajorVersion != ctr.MajorVersion ||
- host.MinorVersion != ctr.MinorVersion {
- return false
- }
-
- // If host is < WS 2022, exact version match is required
- if host.Build < V21H2Server {
- return host.Build == ctr.Build
- }
-
- var supportedLtscRelease uint16
- for i := len(compatLTSCReleases) - 1; i >= 0; i-- {
- if host.Build >= compatLTSCReleases[i] {
- supportedLtscRelease = compatLTSCReleases[i]
- break
- }
- }
- return ctr.Build >= supportedLtscRelease && ctr.Build <= host.Build
-}
diff --git a/vendor/github.com/Microsoft/hcsshim/osversion/windowsbuilds.go b/vendor/github.com/Microsoft/hcsshim/osversion/windowsbuilds.go
deleted file mode 100644
index 44636959..00000000
--- a/vendor/github.com/Microsoft/hcsshim/osversion/windowsbuilds.go
+++ /dev/null
@@ -1,84 +0,0 @@
-package osversion
-
-// Windows Client and Server build numbers.
-//
-// See:
-// https://learn.microsoft.com/en-us/windows/release-health/release-information
-// https://learn.microsoft.com/en-us/windows/release-health/windows-server-release-info
-// https://learn.microsoft.com/en-us/windows/release-health/windows11-release-information
-const (
- // RS1 (version 1607, codename "Redstone 1") corresponds to Windows Server
- // 2016 (ltsc2016) and Windows 10 (Anniversary Update).
- RS1 = 14393
- // V1607 (version 1607, codename "Redstone 1") is an alias for [RS1].
- V1607 = RS1
- // LTSC2016 (Windows Server 2016) is an alias for [RS1].
- LTSC2016 = RS1
-
- // RS2 (version 1703, codename "Redstone 2") was a client-only update, and
- // corresponds to Windows 10 (Creators Update).
- RS2 = 15063
- // V1703 (version 1703, codename "Redstone 2") is an alias for [RS2].
- V1703 = RS2
-
- // RS3 (version 1709, codename "Redstone 3") corresponds to Windows Server
- // 1709 (Semi-Annual Channel (SAC)), and Windows 10 (Fall Creators Update).
- RS3 = 16299
- // V1709 (version 1709, codename "Redstone 3") is an alias for [RS3].
- V1709 = RS3
-
- // RS4 (version 1803, codename "Redstone 4") corresponds to Windows Server
- // 1803 (Semi-Annual Channel (SAC)), and Windows 10 (April 2018 Update).
- RS4 = 17134
- // V1803 (version 1803, codename "Redstone 4") is an alias for [RS4].
- V1803 = RS4
-
- // RS5 (version 1809, codename "Redstone 5") corresponds to Windows Server
- // 2019 (ltsc2019), and Windows 10 (October 2018 Update).
- RS5 = 17763
- // V1809 (version 1809, codename "Redstone 5") is an alias for [RS5].
- V1809 = RS5
- // LTSC2019 (Windows Server 2019) is an alias for [RS5].
- LTSC2019 = RS5
-
- // V19H1 (version 1903, codename 19H1) corresponds to Windows Server 1903 (semi-annual
- // channel).
- V19H1 = 18362
- // V1903 (version 1903) is an alias for [V19H1].
- V1903 = V19H1
-
- // V19H2 (version 1909, codename 19H2) corresponds to Windows Server 1909 (semi-annual
- // channel).
- V19H2 = 18363
- // V1909 (version 1909) is an alias for [V19H2].
- V1909 = V19H2
-
- // V20H1 (version 2004, codename 20H1) corresponds to Windows Server 2004 (semi-annual
- // channel).
- V20H1 = 19041
- // V2004 (version 2004) is an alias for [V20H1].
- V2004 = V20H1
-
- // V20H2 corresponds to Windows Server 20H2 (semi-annual channel).
- V20H2 = 19042
-
- // V21H1 corresponds to Windows Server 21H1 (semi-annual channel).
- V21H1 = 19043
-
- // V21H2Win10 corresponds to Windows 10 (November 2021 Update).
- V21H2Win10 = 19044
-
- // V21H2Server corresponds to Windows Server 2022 (ltsc2022).
- V21H2Server = 20348
- // LTSC2022 (Windows Server 2022) is an alias for [V21H2Server]
- LTSC2022 = V21H2Server
-
- // V21H2Win11 corresponds to Windows 11 (original release).
- V21H2Win11 = 22000
-
- // V22H2Win10 corresponds to Windows 10 (2022 Update).
- V22H2Win10 = 19045
-
- // V22H2Win11 corresponds to Windows 11 (2022 Update).
- V22H2Win11 = 22621
-)
diff --git a/vendor/github.com/OneOfOne/xxhash/.gitignore b/vendor/github.com/OneOfOne/xxhash/.gitignore
deleted file mode 100644
index f4faa7f8..00000000
--- a/vendor/github.com/OneOfOne/xxhash/.gitignore
+++ /dev/null
@@ -1,4 +0,0 @@
-*.txt
-*.pprof
-cmap2/
-cache/
diff --git a/vendor/github.com/OneOfOne/xxhash/.travis.yml b/vendor/github.com/OneOfOne/xxhash/.travis.yml
deleted file mode 100644
index 1c6dc55b..00000000
--- a/vendor/github.com/OneOfOne/xxhash/.travis.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-language: go
-sudo: false
-
-go:
- - "1.10"
- - "1.11"
- - "1.12"
- - master
-
-script:
- - go test -tags safe ./...
- - go test ./...
- -
diff --git a/vendor/github.com/OneOfOne/xxhash/LICENSE b/vendor/github.com/OneOfOne/xxhash/LICENSE
deleted file mode 100644
index 9e30b4f3..00000000
--- a/vendor/github.com/OneOfOne/xxhash/LICENSE
+++ /dev/null
@@ -1,187 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "{}"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
diff --git a/vendor/github.com/OneOfOne/xxhash/README.md b/vendor/github.com/OneOfOne/xxhash/README.md
deleted file mode 100644
index 8eea28c3..00000000
--- a/vendor/github.com/OneOfOne/xxhash/README.md
+++ /dev/null
@@ -1,74 +0,0 @@
-# xxhash [](https://godoc.org/github.com/OneOfOne/xxhash) [](https://travis-ci.org/OneOfOne/xxhash) [](https://gocover.io/github.com/OneOfOne/xxhash)
-
-This is a native Go implementation of the excellent [xxhash](https://github.com/Cyan4973/xxHash)* algorithm, an extremely fast non-cryptographic Hash algorithm, working at speeds close to RAM limits.
-
-* The C implementation is ([Copyright](https://github.com/Cyan4973/xxHash/blob/master/LICENSE) (c) 2012-2014, Yann Collet)
-
-## Install
-
- go get github.com/OneOfOne/xxhash
-
-## Features
-
-* On Go 1.7+ the pure go version is faster than CGO for all inputs.
-* Supports ChecksumString{32,64} xxhash{32,64}.WriteString, which uses no copies when it can, falls back to copy on appengine.
-* The native version falls back to a less optimized version on appengine due to the lack of unsafe.
-* Almost as fast as the mostly pure assembly version written by the brilliant [cespare](https://github.com/cespare/xxhash), while also supporting seeds.
-* To manually toggle the appengine version build with `-tags safe`.
-
-## Benchmark
-
-### Core i7-4790 @ 3.60GHz, Linux 4.12.6-1-ARCH (64bit), Go tip (+ff90f4af66 2017-08-19)
-
-```bash
-➤ go test -bench '64' -count 5 -tags cespare | benchstat /dev/stdin
-name time/op
-
-# https://github.com/cespare/xxhash
-XXSum64Cespare/Func-8 160ns ± 2%
-XXSum64Cespare/Struct-8 173ns ± 1%
-XXSum64ShortCespare/Func-8 6.78ns ± 1%
-XXSum64ShortCespare/Struct-8 19.6ns ± 2%
-
-# this package (default mode, using unsafe)
-XXSum64/Func-8 170ns ± 1%
-XXSum64/Struct-8 182ns ± 1%
-XXSum64Short/Func-8 13.5ns ± 3%
-XXSum64Short/Struct-8 20.4ns ± 0%
-
-# this package (appengine, *not* using unsafe)
-XXSum64/Func-8 241ns ± 5%
-XXSum64/Struct-8 243ns ± 6%
-XXSum64Short/Func-8 15.2ns ± 2%
-XXSum64Short/Struct-8 23.7ns ± 5%
-
-CRC64ISO-8 1.23µs ± 1%
-CRC64ISOString-8 2.71µs ± 4%
-CRC64ISOShort-8 22.2ns ± 3%
-
-Fnv64-8 2.34µs ± 1%
-Fnv64Short-8 74.7ns ± 8%
-```
-
-## Usage
-
-```go
- h := xxhash.New64()
- // r, err := os.Open("......")
- // defer f.Close()
- r := strings.NewReader(F)
- io.Copy(h, r)
- fmt.Println("xxhash.Backend:", xxhash.Backend)
- fmt.Println("File checksum:", h.Sum64())
-```
-
-[playground](https://play.golang.org/p/wHKBwfu6CPV)
-
-## TODO
-
-* Rewrite the 32bit version to be more optimized.
-* General cleanup as the Go inliner gets smarter.
-
-## License
-
-This project is released under the Apache v2. license. See [LICENSE](LICENSE) for more details.
diff --git a/vendor/github.com/OneOfOne/xxhash/xxhash.go b/vendor/github.com/OneOfOne/xxhash/xxhash.go
deleted file mode 100644
index af2496b7..00000000
--- a/vendor/github.com/OneOfOne/xxhash/xxhash.go
+++ /dev/null
@@ -1,294 +0,0 @@
-package xxhash
-
-import (
- "encoding/binary"
- "errors"
- "hash"
-)
-
-const (
- prime32x1 uint32 = 2654435761
- prime32x2 uint32 = 2246822519
- prime32x3 uint32 = 3266489917
- prime32x4 uint32 = 668265263
- prime32x5 uint32 = 374761393
-
- prime64x1 uint64 = 11400714785074694791
- prime64x2 uint64 = 14029467366897019727
- prime64x3 uint64 = 1609587929392839161
- prime64x4 uint64 = 9650029242287828579
- prime64x5 uint64 = 2870177450012600261
-
- maxInt32 int32 = (1<<31 - 1)
-
- // precomputed zero Vs for seed 0
- zero64x1 = 0x60ea27eeadc0b5d6
- zero64x2 = 0xc2b2ae3d27d4eb4f
- zero64x3 = 0x0
- zero64x4 = 0x61c8864e7a143579
-)
-
-const (
- magic32 = "xxh\x07"
- magic64 = "xxh\x08"
- marshaled32Size = len(magic32) + 4*7 + 16
- marshaled64Size = len(magic64) + 8*6 + 32 + 1
-)
-
-func NewHash32() hash.Hash { return New32() }
-func NewHash64() hash.Hash { return New64() }
-
-// Checksum32 returns the checksum of the input data with the seed set to 0.
-func Checksum32(in []byte) uint32 {
- return Checksum32S(in, 0)
-}
-
-// ChecksumString32 returns the checksum of the input data, without creating a copy, with the seed set to 0.
-func ChecksumString32(s string) uint32 {
- return ChecksumString32S(s, 0)
-}
-
-type XXHash32 struct {
- mem [16]byte
- ln, memIdx int32
- v1, v2, v3, v4 uint32
- seed uint32
-}
-
-// Size returns the number of bytes Sum will return.
-func (xx *XXHash32) Size() int {
- return 4
-}
-
-// BlockSize returns the hash's underlying block size.
-// The Write method must be able to accept any amount
-// of data, but it may operate more efficiently if all writes
-// are a multiple of the block size.
-func (xx *XXHash32) BlockSize() int {
- return 16
-}
-
-// NewS32 creates a new hash.Hash32 computing the 32bit xxHash checksum starting with the specific seed.
-func NewS32(seed uint32) (xx *XXHash32) {
- xx = &XXHash32{
- seed: seed,
- }
- xx.Reset()
- return
-}
-
-// New32 creates a new hash.Hash32 computing the 32bit xxHash checksum starting with the seed set to 0.
-func New32() *XXHash32 {
- return NewS32(0)
-}
-
-func (xx *XXHash32) Reset() {
- xx.v1 = xx.seed + prime32x1 + prime32x2
- xx.v2 = xx.seed + prime32x2
- xx.v3 = xx.seed
- xx.v4 = xx.seed - prime32x1
- xx.ln, xx.memIdx = 0, 0
-}
-
-// Sum appends the current hash to b and returns the resulting slice.
-// It does not change the underlying hash state.
-func (xx *XXHash32) Sum(in []byte) []byte {
- s := xx.Sum32()
- return append(in, byte(s>>24), byte(s>>16), byte(s>>8), byte(s))
-}
-
-// MarshalBinary implements the encoding.BinaryMarshaler interface.
-func (xx *XXHash32) MarshalBinary() ([]byte, error) {
- b := make([]byte, 0, marshaled32Size)
- b = append(b, magic32...)
- b = appendUint32(b, xx.v1)
- b = appendUint32(b, xx.v2)
- b = appendUint32(b, xx.v3)
- b = appendUint32(b, xx.v4)
- b = appendUint32(b, xx.seed)
- b = appendInt32(b, xx.ln)
- b = appendInt32(b, xx.memIdx)
- b = append(b, xx.mem[:]...)
- return b, nil
-}
-
-// UnmarshalBinary implements the encoding.BinaryUnmarshaler interface.
-func (xx *XXHash32) UnmarshalBinary(b []byte) error {
- if len(b) < len(magic32) || string(b[:len(magic32)]) != magic32 {
- return errors.New("xxhash: invalid hash state identifier")
- }
- if len(b) != marshaled32Size {
- return errors.New("xxhash: invalid hash state size")
- }
- b = b[len(magic32):]
- b, xx.v1 = consumeUint32(b)
- b, xx.v2 = consumeUint32(b)
- b, xx.v3 = consumeUint32(b)
- b, xx.v4 = consumeUint32(b)
- b, xx.seed = consumeUint32(b)
- b, xx.ln = consumeInt32(b)
- b, xx.memIdx = consumeInt32(b)
- copy(xx.mem[:], b)
- return nil
-}
-
-// Checksum64 an alias for Checksum64S(in, 0)
-func Checksum64(in []byte) uint64 {
- return Checksum64S(in, 0)
-}
-
-// ChecksumString64 returns the checksum of the input data, without creating a copy, with the seed set to 0.
-func ChecksumString64(s string) uint64 {
- return ChecksumString64S(s, 0)
-}
-
-type XXHash64 struct {
- v1, v2, v3, v4 uint64
- seed uint64
- ln uint64
- mem [32]byte
- memIdx int8
-}
-
-// Size returns the number of bytes Sum will return.
-func (xx *XXHash64) Size() int {
- return 8
-}
-
-// BlockSize returns the hash's underlying block size.
-// The Write method must be able to accept any amount
-// of data, but it may operate more efficiently if all writes
-// are a multiple of the block size.
-func (xx *XXHash64) BlockSize() int {
- return 32
-}
-
-// NewS64 creates a new hash.Hash64 computing the 64bit xxHash checksum starting with the specific seed.
-func NewS64(seed uint64) (xx *XXHash64) {
- xx = &XXHash64{
- seed: seed,
- }
- xx.Reset()
- return
-}
-
-// New64 creates a new hash.Hash64 computing the 64bit xxHash checksum starting with the seed set to 0x0.
-func New64() *XXHash64 {
- return NewS64(0)
-}
-
-func (xx *XXHash64) Reset() {
- xx.ln, xx.memIdx = 0, 0
- xx.v1, xx.v2, xx.v3, xx.v4 = resetVs64(xx.seed)
-}
-
-// Sum appends the current hash to b and returns the resulting slice.
-// It does not change the underlying hash state.
-func (xx *XXHash64) Sum(in []byte) []byte {
- s := xx.Sum64()
- return append(in, byte(s>>56), byte(s>>48), byte(s>>40), byte(s>>32), byte(s>>24), byte(s>>16), byte(s>>8), byte(s))
-}
-
-// MarshalBinary implements the encoding.BinaryMarshaler interface.
-func (xx *XXHash64) MarshalBinary() ([]byte, error) {
- b := make([]byte, 0, marshaled64Size)
- b = append(b, magic64...)
- b = appendUint64(b, xx.v1)
- b = appendUint64(b, xx.v2)
- b = appendUint64(b, xx.v3)
- b = appendUint64(b, xx.v4)
- b = appendUint64(b, xx.seed)
- b = appendUint64(b, xx.ln)
- b = append(b, byte(xx.memIdx))
- b = append(b, xx.mem[:]...)
- return b, nil
-}
-
-// UnmarshalBinary implements the encoding.BinaryUnmarshaler interface.
-func (xx *XXHash64) UnmarshalBinary(b []byte) error {
- if len(b) < len(magic64) || string(b[:len(magic64)]) != magic64 {
- return errors.New("xxhash: invalid hash state identifier")
- }
- if len(b) != marshaled64Size {
- return errors.New("xxhash: invalid hash state size")
- }
- b = b[len(magic64):]
- b, xx.v1 = consumeUint64(b)
- b, xx.v2 = consumeUint64(b)
- b, xx.v3 = consumeUint64(b)
- b, xx.v4 = consumeUint64(b)
- b, xx.seed = consumeUint64(b)
- b, xx.ln = consumeUint64(b)
- xx.memIdx = int8(b[0])
- b = b[1:]
- copy(xx.mem[:], b)
- return nil
-}
-
-func appendInt32(b []byte, x int32) []byte { return appendUint32(b, uint32(x)) }
-
-func appendUint32(b []byte, x uint32) []byte {
- var a [4]byte
- binary.LittleEndian.PutUint32(a[:], x)
- return append(b, a[:]...)
-}
-
-func appendUint64(b []byte, x uint64) []byte {
- var a [8]byte
- binary.LittleEndian.PutUint64(a[:], x)
- return append(b, a[:]...)
-}
-
-func consumeInt32(b []byte) ([]byte, int32) { bn, x := consumeUint32(b); return bn, int32(x) }
-func consumeUint32(b []byte) ([]byte, uint32) { x := u32(b); return b[4:], x }
-func consumeUint64(b []byte) ([]byte, uint64) { x := u64(b); return b[8:], x }
-
-// force the compiler to use ROTL instructions
-
-func rotl32_1(x uint32) uint32 { return (x << 1) | (x >> (32 - 1)) }
-func rotl32_7(x uint32) uint32 { return (x << 7) | (x >> (32 - 7)) }
-func rotl32_11(x uint32) uint32 { return (x << 11) | (x >> (32 - 11)) }
-func rotl32_12(x uint32) uint32 { return (x << 12) | (x >> (32 - 12)) }
-func rotl32_13(x uint32) uint32 { return (x << 13) | (x >> (32 - 13)) }
-func rotl32_17(x uint32) uint32 { return (x << 17) | (x >> (32 - 17)) }
-func rotl32_18(x uint32) uint32 { return (x << 18) | (x >> (32 - 18)) }
-
-func rotl64_1(x uint64) uint64 { return (x << 1) | (x >> (64 - 1)) }
-func rotl64_7(x uint64) uint64 { return (x << 7) | (x >> (64 - 7)) }
-func rotl64_11(x uint64) uint64 { return (x << 11) | (x >> (64 - 11)) }
-func rotl64_12(x uint64) uint64 { return (x << 12) | (x >> (64 - 12)) }
-func rotl64_18(x uint64) uint64 { return (x << 18) | (x >> (64 - 18)) }
-func rotl64_23(x uint64) uint64 { return (x << 23) | (x >> (64 - 23)) }
-func rotl64_27(x uint64) uint64 { return (x << 27) | (x >> (64 - 27)) }
-func rotl64_31(x uint64) uint64 { return (x << 31) | (x >> (64 - 31)) }
-
-func mix64(h uint64) uint64 {
- h ^= h >> 33
- h *= prime64x2
- h ^= h >> 29
- h *= prime64x3
- h ^= h >> 32
- return h
-}
-
-func resetVs64(seed uint64) (v1, v2, v3, v4 uint64) {
- if seed == 0 {
- return zero64x1, zero64x2, zero64x3, zero64x4
- }
- return (seed + prime64x1 + prime64x2), (seed + prime64x2), (seed), (seed - prime64x1)
-}
-
-// borrowed from cespare
-func round64(h, v uint64) uint64 {
- h += v * prime64x2
- h = rotl64_31(h)
- h *= prime64x1
- return h
-}
-
-func mergeRound64(h, v uint64) uint64 {
- v = round64(0, v)
- h ^= v
- h = h*prime64x1 + prime64x4
- return h
-}
diff --git a/vendor/github.com/OneOfOne/xxhash/xxhash_go17.go b/vendor/github.com/OneOfOne/xxhash/xxhash_go17.go
deleted file mode 100644
index ae48e0c5..00000000
--- a/vendor/github.com/OneOfOne/xxhash/xxhash_go17.go
+++ /dev/null
@@ -1,161 +0,0 @@
-package xxhash
-
-func u32(in []byte) uint32 {
- return uint32(in[0]) | uint32(in[1])<<8 | uint32(in[2])<<16 | uint32(in[3])<<24
-}
-
-func u64(in []byte) uint64 {
- return uint64(in[0]) | uint64(in[1])<<8 | uint64(in[2])<<16 | uint64(in[3])<<24 | uint64(in[4])<<32 | uint64(in[5])<<40 | uint64(in[6])<<48 | uint64(in[7])<<56
-}
-
-// Checksum32S returns the checksum of the input bytes with the specific seed.
-func Checksum32S(in []byte, seed uint32) (h uint32) {
- var i int
-
- if len(in) > 15 {
- var (
- v1 = seed + prime32x1 + prime32x2
- v2 = seed + prime32x2
- v3 = seed + 0
- v4 = seed - prime32x1
- )
- for ; i < len(in)-15; i += 16 {
- in := in[i : i+16 : len(in)]
- v1 += u32(in[0:4:len(in)]) * prime32x2
- v1 = rotl32_13(v1) * prime32x1
-
- v2 += u32(in[4:8:len(in)]) * prime32x2
- v2 = rotl32_13(v2) * prime32x1
-
- v3 += u32(in[8:12:len(in)]) * prime32x2
- v3 = rotl32_13(v3) * prime32x1
-
- v4 += u32(in[12:16:len(in)]) * prime32x2
- v4 = rotl32_13(v4) * prime32x1
- }
-
- h = rotl32_1(v1) + rotl32_7(v2) + rotl32_12(v3) + rotl32_18(v4)
-
- } else {
- h = seed + prime32x5
- }
-
- h += uint32(len(in))
- for ; i <= len(in)-4; i += 4 {
- in := in[i : i+4 : len(in)]
- h += u32(in[0:4:len(in)]) * prime32x3
- h = rotl32_17(h) * prime32x4
- }
-
- for ; i < len(in); i++ {
- h += uint32(in[i]) * prime32x5
- h = rotl32_11(h) * prime32x1
- }
-
- h ^= h >> 15
- h *= prime32x2
- h ^= h >> 13
- h *= prime32x3
- h ^= h >> 16
-
- return
-}
-
-func (xx *XXHash32) Write(in []byte) (n int, err error) {
- i, ml := 0, int(xx.memIdx)
- n = len(in)
- xx.ln += int32(n)
-
- if d := 16 - ml; ml > 0 && ml+len(in) > 16 {
- xx.memIdx += int32(copy(xx.mem[xx.memIdx:], in[:d]))
- ml, in = 16, in[d:len(in):len(in)]
- } else if ml+len(in) < 16 {
- xx.memIdx += int32(copy(xx.mem[xx.memIdx:], in))
- return
- }
-
- if ml > 0 {
- i += 16 - ml
- xx.memIdx += int32(copy(xx.mem[xx.memIdx:len(xx.mem):len(xx.mem)], in))
- in := xx.mem[:16:len(xx.mem)]
-
- xx.v1 += u32(in[0:4:len(in)]) * prime32x2
- xx.v1 = rotl32_13(xx.v1) * prime32x1
-
- xx.v2 += u32(in[4:8:len(in)]) * prime32x2
- xx.v2 = rotl32_13(xx.v2) * prime32x1
-
- xx.v3 += u32(in[8:12:len(in)]) * prime32x2
- xx.v3 = rotl32_13(xx.v3) * prime32x1
-
- xx.v4 += u32(in[12:16:len(in)]) * prime32x2
- xx.v4 = rotl32_13(xx.v4) * prime32x1
-
- xx.memIdx = 0
- }
-
- for ; i <= len(in)-16; i += 16 {
- in := in[i : i+16 : len(in)]
- xx.v1 += u32(in[0:4:len(in)]) * prime32x2
- xx.v1 = rotl32_13(xx.v1) * prime32x1
-
- xx.v2 += u32(in[4:8:len(in)]) * prime32x2
- xx.v2 = rotl32_13(xx.v2) * prime32x1
-
- xx.v3 += u32(in[8:12:len(in)]) * prime32x2
- xx.v3 = rotl32_13(xx.v3) * prime32x1
-
- xx.v4 += u32(in[12:16:len(in)]) * prime32x2
- xx.v4 = rotl32_13(xx.v4) * prime32x1
- }
-
- if len(in)-i != 0 {
- xx.memIdx += int32(copy(xx.mem[xx.memIdx:], in[i:len(in):len(in)]))
- }
-
- return
-}
-
-func (xx *XXHash32) Sum32() (h uint32) {
- var i int32
- if xx.ln > 15 {
- h = rotl32_1(xx.v1) + rotl32_7(xx.v2) + rotl32_12(xx.v3) + rotl32_18(xx.v4)
- } else {
- h = xx.seed + prime32x5
- }
-
- h += uint32(xx.ln)
-
- if xx.memIdx > 0 {
- for ; i < xx.memIdx-3; i += 4 {
- in := xx.mem[i : i+4 : len(xx.mem)]
- h += u32(in[0:4:len(in)]) * prime32x3
- h = rotl32_17(h) * prime32x4
- }
-
- for ; i < xx.memIdx; i++ {
- h += uint32(xx.mem[i]) * prime32x5
- h = rotl32_11(h) * prime32x1
- }
- }
- h ^= h >> 15
- h *= prime32x2
- h ^= h >> 13
- h *= prime32x3
- h ^= h >> 16
-
- return
-}
-
-// Checksum64S returns the 64bit xxhash checksum for a single input
-func Checksum64S(in []byte, seed uint64) uint64 {
- if len(in) == 0 && seed == 0 {
- return 0xef46db3751d8e999
- }
-
- if len(in) > 31 {
- return checksum64(in, seed)
- }
-
- return checksum64Short(in, seed)
-}
diff --git a/vendor/github.com/OneOfOne/xxhash/xxhash_safe.go b/vendor/github.com/OneOfOne/xxhash/xxhash_safe.go
deleted file mode 100644
index e92ec29e..00000000
--- a/vendor/github.com/OneOfOne/xxhash/xxhash_safe.go
+++ /dev/null
@@ -1,183 +0,0 @@
-// +build appengine safe ppc64le ppc64be mipsle mips s390x
-
-package xxhash
-
-// Backend returns the current version of xxhash being used.
-const Backend = "GoSafe"
-
-func ChecksumString32S(s string, seed uint32) uint32 {
- return Checksum32S([]byte(s), seed)
-}
-
-func (xx *XXHash32) WriteString(s string) (int, error) {
- if len(s) == 0 {
- return 0, nil
- }
- return xx.Write([]byte(s))
-}
-
-func ChecksumString64S(s string, seed uint64) uint64 {
- return Checksum64S([]byte(s), seed)
-}
-
-func (xx *XXHash64) WriteString(s string) (int, error) {
- if len(s) == 0 {
- return 0, nil
- }
- return xx.Write([]byte(s))
-}
-
-func checksum64(in []byte, seed uint64) (h uint64) {
- var (
- v1, v2, v3, v4 = resetVs64(seed)
-
- i int
- )
-
- for ; i < len(in)-31; i += 32 {
- in := in[i : i+32 : len(in)]
- v1 = round64(v1, u64(in[0:8:len(in)]))
- v2 = round64(v2, u64(in[8:16:len(in)]))
- v3 = round64(v3, u64(in[16:24:len(in)]))
- v4 = round64(v4, u64(in[24:32:len(in)]))
- }
-
- h = rotl64_1(v1) + rotl64_7(v2) + rotl64_12(v3) + rotl64_18(v4)
-
- h = mergeRound64(h, v1)
- h = mergeRound64(h, v2)
- h = mergeRound64(h, v3)
- h = mergeRound64(h, v4)
-
- h += uint64(len(in))
-
- for ; i < len(in)-7; i += 8 {
- h ^= round64(0, u64(in[i:len(in):len(in)]))
- h = rotl64_27(h)*prime64x1 + prime64x4
- }
-
- for ; i < len(in)-3; i += 4 {
- h ^= uint64(u32(in[i:len(in):len(in)])) * prime64x1
- h = rotl64_23(h)*prime64x2 + prime64x3
- }
-
- for ; i < len(in); i++ {
- h ^= uint64(in[i]) * prime64x5
- h = rotl64_11(h) * prime64x1
- }
-
- return mix64(h)
-}
-
-func checksum64Short(in []byte, seed uint64) uint64 {
- var (
- h = seed + prime64x5 + uint64(len(in))
- i int
- )
-
- for ; i < len(in)-7; i += 8 {
- k := u64(in[i : i+8 : len(in)])
- h ^= round64(0, k)
- h = rotl64_27(h)*prime64x1 + prime64x4
- }
-
- for ; i < len(in)-3; i += 4 {
- h ^= uint64(u32(in[i:i+4:len(in)])) * prime64x1
- h = rotl64_23(h)*prime64x2 + prime64x3
- }
-
- for ; i < len(in); i++ {
- h ^= uint64(in[i]) * prime64x5
- h = rotl64_11(h) * prime64x1
- }
-
- return mix64(h)
-}
-
-func (xx *XXHash64) Write(in []byte) (n int, err error) {
- var (
- ml = int(xx.memIdx)
- d = 32 - ml
- )
-
- n = len(in)
- xx.ln += uint64(n)
-
- if ml+len(in) < 32 {
- xx.memIdx += int8(copy(xx.mem[xx.memIdx:len(xx.mem):len(xx.mem)], in))
- return
- }
-
- i, v1, v2, v3, v4 := 0, xx.v1, xx.v2, xx.v3, xx.v4
- if ml > 0 && ml+len(in) > 32 {
- xx.memIdx += int8(copy(xx.mem[xx.memIdx:len(xx.mem):len(xx.mem)], in[:d:len(in)]))
- in = in[d:len(in):len(in)]
-
- in := xx.mem[0:32:len(xx.mem)]
-
- v1 = round64(v1, u64(in[0:8:len(in)]))
- v2 = round64(v2, u64(in[8:16:len(in)]))
- v3 = round64(v3, u64(in[16:24:len(in)]))
- v4 = round64(v4, u64(in[24:32:len(in)]))
-
- xx.memIdx = 0
- }
-
- for ; i < len(in)-31; i += 32 {
- in := in[i : i+32 : len(in)]
- v1 = round64(v1, u64(in[0:8:len(in)]))
- v2 = round64(v2, u64(in[8:16:len(in)]))
- v3 = round64(v3, u64(in[16:24:len(in)]))
- v4 = round64(v4, u64(in[24:32:len(in)]))
- }
-
- if len(in)-i != 0 {
- xx.memIdx += int8(copy(xx.mem[xx.memIdx:], in[i:len(in):len(in)]))
- }
-
- xx.v1, xx.v2, xx.v3, xx.v4 = v1, v2, v3, v4
-
- return
-}
-
-func (xx *XXHash64) Sum64() (h uint64) {
- var i int
- if xx.ln > 31 {
- v1, v2, v3, v4 := xx.v1, xx.v2, xx.v3, xx.v4
- h = rotl64_1(v1) + rotl64_7(v2) + rotl64_12(v3) + rotl64_18(v4)
-
- h = mergeRound64(h, v1)
- h = mergeRound64(h, v2)
- h = mergeRound64(h, v3)
- h = mergeRound64(h, v4)
- } else {
- h = xx.seed + prime64x5
- }
-
- h += uint64(xx.ln)
- if xx.memIdx > 0 {
- in := xx.mem[:xx.memIdx]
- for ; i < int(xx.memIdx)-7; i += 8 {
- in := in[i : i+8 : len(in)]
- k := u64(in[0:8:len(in)])
- k *= prime64x2
- k = rotl64_31(k)
- k *= prime64x1
- h ^= k
- h = rotl64_27(h)*prime64x1 + prime64x4
- }
-
- for ; i < int(xx.memIdx)-3; i += 4 {
- in := in[i : i+4 : len(in)]
- h ^= uint64(u32(in[0:4:len(in)])) * prime64x1
- h = rotl64_23(h)*prime64x2 + prime64x3
- }
-
- for ; i < int(xx.memIdx); i++ {
- h ^= uint64(in[i]) * prime64x5
- h = rotl64_11(h) * prime64x1
- }
- }
-
- return mix64(h)
-}
diff --git a/vendor/github.com/OneOfOne/xxhash/xxhash_unsafe.go b/vendor/github.com/OneOfOne/xxhash/xxhash_unsafe.go
deleted file mode 100644
index 1e2b5e8f..00000000
--- a/vendor/github.com/OneOfOne/xxhash/xxhash_unsafe.go
+++ /dev/null
@@ -1,240 +0,0 @@
-// +build !safe
-// +build !appengine
-// +build !ppc64le
-// +build !mipsle
-// +build !ppc64be
-// +build !mips
-// +build !s390x
-
-package xxhash
-
-import (
- "reflect"
- "unsafe"
-)
-
-// Backend returns the current version of xxhash being used.
-const Backend = "GoUnsafe"
-
-// ChecksumString32S returns the checksum of the input data, without creating a copy, with the specific seed.
-func ChecksumString32S(s string, seed uint32) uint32 {
- if len(s) == 0 {
- return Checksum32S(nil, seed)
- }
- ss := (*reflect.StringHeader)(unsafe.Pointer(&s))
- return Checksum32S((*[maxInt32]byte)(unsafe.Pointer(ss.Data))[:len(s):len(s)], seed)
-}
-
-func (xx *XXHash32) WriteString(s string) (int, error) {
- if len(s) == 0 {
- return 0, nil
- }
-
- ss := (*reflect.StringHeader)(unsafe.Pointer(&s))
- return xx.Write((*[maxInt32]byte)(unsafe.Pointer(ss.Data))[:len(s):len(s)])
-}
-
-// ChecksumString64S returns the checksum of the input data, without creating a copy, with the specific seed.
-func ChecksumString64S(s string, seed uint64) uint64 {
- if len(s) == 0 {
- return Checksum64S(nil, seed)
- }
-
- ss := (*reflect.StringHeader)(unsafe.Pointer(&s))
- return Checksum64S((*[maxInt32]byte)(unsafe.Pointer(ss.Data))[:len(s):len(s)], seed)
-}
-
-func (xx *XXHash64) WriteString(s string) (int, error) {
- if len(s) == 0 {
- return 0, nil
- }
- ss := (*reflect.StringHeader)(unsafe.Pointer(&s))
- return xx.Write((*[maxInt32]byte)(unsafe.Pointer(ss.Data))[:len(s):len(s)])
-}
-
-//go:nocheckptr
-func checksum64(in []byte, seed uint64) uint64 {
- var (
- wordsLen = len(in) >> 3
- words = ((*[maxInt32 / 8]uint64)(unsafe.Pointer(&in[0])))[:wordsLen:wordsLen]
-
- v1, v2, v3, v4 = resetVs64(seed)
-
- h uint64
- i int
- )
-
- for ; i < len(words)-3; i += 4 {
- words := (*[4]uint64)(unsafe.Pointer(&words[i]))
-
- v1 = round64(v1, words[0])
- v2 = round64(v2, words[1])
- v3 = round64(v3, words[2])
- v4 = round64(v4, words[3])
- }
-
- h = rotl64_1(v1) + rotl64_7(v2) + rotl64_12(v3) + rotl64_18(v4)
-
- h = mergeRound64(h, v1)
- h = mergeRound64(h, v2)
- h = mergeRound64(h, v3)
- h = mergeRound64(h, v4)
-
- h += uint64(len(in))
-
- for _, k := range words[i:] {
- h ^= round64(0, k)
- h = rotl64_27(h)*prime64x1 + prime64x4
- }
-
- if in = in[wordsLen<<3 : len(in) : len(in)]; len(in) > 3 {
- words := (*[1]uint32)(unsafe.Pointer(&in[0]))
- h ^= uint64(words[0]) * prime64x1
- h = rotl64_23(h)*prime64x2 + prime64x3
-
- in = in[4:len(in):len(in)]
- }
-
- for _, b := range in {
- h ^= uint64(b) * prime64x5
- h = rotl64_11(h) * prime64x1
- }
-
- return mix64(h)
-}
-
-//go:nocheckptr
-func checksum64Short(in []byte, seed uint64) uint64 {
- var (
- h = seed + prime64x5 + uint64(len(in))
- i int
- )
-
- if len(in) > 7 {
- var (
- wordsLen = len(in) >> 3
- words = ((*[maxInt32 / 8]uint64)(unsafe.Pointer(&in[0])))[:wordsLen:wordsLen]
- )
-
- for i := range words {
- h ^= round64(0, words[i])
- h = rotl64_27(h)*prime64x1 + prime64x4
- }
-
- i = wordsLen << 3
- }
-
- if in = in[i:len(in):len(in)]; len(in) > 3 {
- words := (*[1]uint32)(unsafe.Pointer(&in[0]))
- h ^= uint64(words[0]) * prime64x1
- h = rotl64_23(h)*prime64x2 + prime64x3
-
- in = in[4:len(in):len(in)]
- }
-
- for _, b := range in {
- h ^= uint64(b) * prime64x5
- h = rotl64_11(h) * prime64x1
- }
-
- return mix64(h)
-}
-
-func (xx *XXHash64) Write(in []byte) (n int, err error) {
- mem, idx := xx.mem[:], int(xx.memIdx)
-
- xx.ln, n = xx.ln+uint64(len(in)), len(in)
-
- if idx+len(in) < 32 {
- xx.memIdx += int8(copy(mem[idx:len(mem):len(mem)], in))
- return
- }
-
- var (
- v1, v2, v3, v4 = xx.v1, xx.v2, xx.v3, xx.v4
-
- i int
- )
-
- if d := 32 - int(idx); d > 0 && int(idx)+len(in) > 31 {
- copy(mem[idx:len(mem):len(mem)], in[:len(in):len(in)])
-
- words := (*[4]uint64)(unsafe.Pointer(&mem[0]))
-
- v1 = round64(v1, words[0])
- v2 = round64(v2, words[1])
- v3 = round64(v3, words[2])
- v4 = round64(v4, words[3])
-
- if in, xx.memIdx = in[d:len(in):len(in)], 0; len(in) == 0 {
- goto RET
- }
- }
-
- for ; i < len(in)-31; i += 32 {
- words := (*[4]uint64)(unsafe.Pointer(&in[i]))
-
- v1 = round64(v1, words[0])
- v2 = round64(v2, words[1])
- v3 = round64(v3, words[2])
- v4 = round64(v4, words[3])
- }
-
- if len(in)-i != 0 {
- xx.memIdx += int8(copy(mem[xx.memIdx:len(mem):len(mem)], in[i:len(in):len(in)]))
- }
-
-RET:
- xx.v1, xx.v2, xx.v3, xx.v4 = v1, v2, v3, v4
-
- return
-}
-
-func (xx *XXHash64) Sum64() (h uint64) {
- if seed := xx.seed; xx.ln > 31 {
- v1, v2, v3, v4 := xx.v1, xx.v2, xx.v3, xx.v4
- h = rotl64_1(v1) + rotl64_7(v2) + rotl64_12(v3) + rotl64_18(v4)
-
- h = mergeRound64(h, v1)
- h = mergeRound64(h, v2)
- h = mergeRound64(h, v3)
- h = mergeRound64(h, v4)
- } else if seed == 0 {
- h = prime64x5
- } else {
- h = seed + prime64x5
- }
-
- h += uint64(xx.ln)
-
- if xx.memIdx == 0 {
- return mix64(h)
- }
-
- var (
- in = xx.mem[:xx.memIdx:xx.memIdx]
- wordsLen = len(in) >> 3
- words = ((*[maxInt32 / 8]uint64)(unsafe.Pointer(&in[0])))[:wordsLen:wordsLen]
- )
-
- for _, k := range words {
- h ^= round64(0, k)
- h = rotl64_27(h)*prime64x1 + prime64x4
- }
-
- if in = in[wordsLen<<3 : len(in) : len(in)]; len(in) > 3 {
- words := (*[1]uint32)(unsafe.Pointer(&in[0]))
-
- h ^= uint64(words[0]) * prime64x1
- h = rotl64_23(h)*prime64x2 + prime64x3
-
- in = in[4:len(in):len(in)]
- }
-
- for _, b := range in {
- h ^= uint64(b) * prime64x5
- h = rotl64_11(h) * prime64x1
- }
-
- return mix64(h)
-}
diff --git a/vendor/github.com/agnivade/levenshtein/.travis.yml b/vendor/github.com/agnivade/levenshtein/.travis.yml
deleted file mode 100644
index 0873fa98..00000000
--- a/vendor/github.com/agnivade/levenshtein/.travis.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-language: go
-
-# See https://travis-ci.community/t/goos-js-goarch-wasm-go-run-fails-panic-newosproc-not-implemented/1651
-#addons:
-# chrome: stable
-
-before_install:
-- export GO111MODULE=on
-
-#install:
-#- go get github.com/agnivade/wasmbrowsertest
-#- mv $GOPATH/bin/wasmbrowsertest $GOPATH/bin/go_js_wasm_exec
-#- export PATH=$GOPATH/bin:$PATH
-
-go:
-- 1.13.x
-- 1.14.x
-- 1.15.x
-- tip
-
-script:
-#- GOOS=js GOARCH=wasm go test -v
-- go test -v
diff --git a/vendor/github.com/agnivade/levenshtein/Makefile b/vendor/github.com/agnivade/levenshtein/Makefile
index 5f6890d6..3bbda319 100644
--- a/vendor/github.com/agnivade/levenshtein/Makefile
+++ b/vendor/github.com/agnivade/levenshtein/Makefile
@@ -4,12 +4,10 @@ install:
go install
lint:
- gofmt -l -s -w . && go vet . && golint -set_exit_status=1 .
+ gofmt -l -s -w . && go vet .
-test: # The first 2 go gets are to support older Go versions
- go get github.com/arbovm/levenshtein
- go get github.com/dgryski/trifles/leven
- GO111MODULE=on go test -race -v -coverprofile=coverage.txt -covermode=atomic
+test:
+ go test -race -v -coverprofile=coverage.txt -covermode=atomic
bench:
go test -run=XXX -bench=. -benchmem -count=5
diff --git a/vendor/github.com/agnivade/levenshtein/README.md b/vendor/github.com/agnivade/levenshtein/README.md
index 13c52a21..34378aab 100644
--- a/vendor/github.com/agnivade/levenshtein/README.md
+++ b/vendor/github.com/agnivade/levenshtein/README.md
@@ -1,4 +1,4 @@
-levenshtein [](https://travis-ci.org/agnivade/levenshtein) [](https://goreportcard.com/report/github.com/agnivade/levenshtein) [](https://pkg.go.dev/github.com/agnivade/levenshtein)
+levenshtein  [](https://goreportcard.com/report/github.com/agnivade/levenshtein) [](https://pkg.go.dev/github.com/agnivade/levenshtein)
===========
[Go](http://golang.org) package to calculate the [Levenshtein Distance](http://en.wikipedia.org/wiki/Levenshtein_distance)
diff --git a/vendor/github.com/agnivade/levenshtein/levenshtein.go b/vendor/github.com/agnivade/levenshtein/levenshtein.go
index f727a66f..861f409d 100644
--- a/vendor/github.com/agnivade/levenshtein/levenshtein.go
+++ b/vendor/github.com/agnivade/levenshtein/levenshtein.go
@@ -41,6 +41,25 @@ func ComputeDistance(a, b string) int {
if len(s1) > len(s2) {
s1, s2 = s2, s1
}
+
+ // remove trailing identical runes.
+ for i := 0; i < len(s1); i++ {
+ if s1[len(s1)-1-i] != s2[len(s2)-1-i] {
+ s1 = s1[:len(s1)-i]
+ s2 = s2[:len(s2)-i]
+ break
+ }
+ }
+
+ // Remove leading identical runes.
+ for i := 0; i < len(s1); i++ {
+ if s1[i] != s2[i] {
+ s1 = s1[i:]
+ s2 = s2[i:]
+ break
+ }
+ }
+
lenS1 := len(s1)
lenS2 := len(s2)
@@ -71,7 +90,7 @@ func ComputeDistance(a, b string) int {
for j := 1; j <= lenS1; j++ {
current := x[j-1] // match
if s2[i-1] != s1[j-1] {
- current = min(min(x[j-1]+1, prev+1), x[j]+1)
+ current = min(x[j-1]+1, prev+1, x[j]+1)
}
x[j-1] = prev
prev = current
@@ -80,10 +99,3 @@ func ComputeDistance(a, b string) int {
}
return int(x[lenS1])
}
-
-func min(a, b uint16) uint16 {
- if a < b {
- return a
- }
- return b
-}
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/BUILD.bazel b/vendor/github.com/bytecodealliance/wasmtime-go/v3/BUILD.bazel
deleted file mode 100644
index 58a2c501..00000000
--- a/vendor/github.com/bytecodealliance/wasmtime-go/v3/BUILD.bazel
+++ /dev/null
@@ -1,76 +0,0 @@
-load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
-
-cc_library(
- name = "wasmtime",
- srcs = select({
- "@io_bazel_rules_go//go/platform:darwin_amd64": ["build/macos-x86_64/libwasmtime.a"],
- "@io_bazel_rules_go//go/platform:linux_amd64": ["build/linux-x86_64/libwasmtime.a"],
- "@io_bazel_rules_go//go/platform:windows_amd64": ["build/windows-x86_64/libwasmtime.a"],
- }),
- hdrs = glob(["build/include/**/*.h"]),
- includes = ["build/include"],
- visibility = ["//visibility:public"],
-)
-
-go_library(
- name = "go_default_library",
- srcs = [
- "config.go",
- "doc.go",
- "engine.go",
- "error.go",
- "exporttype.go",
- "extern.go",
- "externtype.go",
- "ffi.go",
- "func.go",
- "functype.go",
- "global.go",
- "globaltype.go",
- "importtype.go",
- "instance.go",
- "linker.go",
- "maybe_gc_no.go",
- "memory.go",
- "memorytype.go",
- "module.go",
- "shims.c",
- "shims.h",
- "slab.go",
- "store.go",
- "table.go",
- "tabletype.go",
- "trap.go",
- "val.go",
- "valtype.go",
- "wasi.go",
- "wat2wasm.go",
- ],
- cdeps = [":wasmtime"], # add wasmtime dep
- cgo = True,
- clinkopts = select({
- "@io_bazel_rules_go//go/platform:windows": [
- "-luserenv -lole32 -lntdll -lws2_32 -lkernel32 -lbcrypt",
- ],
- "//conditions:default": ["-lm -ldl"],
- }),
- copts = [
- "-Ibuild/include",
- ] + select({
- "@io_bazel_rules_go//go/platform:windows": [
- "-DWASM_API_EXTERN= -DWASI_API_EXTERN=",
- ],
- "//conditions:default": [],
- }),
- importpath = "github.com/bytecodealliance/wasmtime-go/v3",
- visibility = ["//visibility:public"],
-)
-
-go_test(
- name = "go_default_test",
- srcs = glob(["**/*_test.go"]),
- embed = [":go_default_library"],
- deps = [
- "@com_github_stretchr_testify//require:go_default_library",
- ]
-)
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/README.md b/vendor/github.com/bytecodealliance/wasmtime-go/v3/README.md
deleted file mode 100644
index 38fe6571..00000000
--- a/vendor/github.com/bytecodealliance/wasmtime-go/v3/README.md
+++ /dev/null
@@ -1,153 +0,0 @@
-
-
-## Installation
-
-```sh
-go get -u github.com/bytecodealliance/wasmtime-go/v3@v3.0.2
-```
-
-Be sure to check out the [API documentation][api]!
-
-This Go library uses CGO to consume the C API of the [Wasmtime
-project][wasmtime] which is written in Rust. Precompiled binaries of Wasmtime
-are checked into this repository on tagged releases so you won't have to install
-Wasmtime locally, but it means that this project only works on Linux x86\_64,
-macOS x86\_64 , and Windows x86\_64 currently. Building on other platforms will
-need to arrange to build Wasmtime and use `CGO_*` env vars to compile correctly.
-
-This project has been tested with Go 1.13 or later.
-
-[api]: https://pkg.go.dev/github.com/bytecodealliance/wasmtime-go/v3
-[wasmtime]: https://github.com/bytecodealliance/wasmtime
-
-If you are a bazel user, add following to your WORKSPACE file:
-
-```
-go_repository(
- name = "com_github_bytecodealliance_wasmtime_go",
- importpath = "github.com/bytecodealliance/wasmtime-go/v3",
- version = "v3.0.2",
-)
-```
-
-## Usage
-
-A "Hello, world!" example of using this package looks like:
-
-```go
-package main
-
-import (
- "fmt"
- "github.com/bytecodealliance/wasmtime-go/v3"
-)
-
-func main() {
- // Almost all operations in wasmtime require a contextual `store`
- // argument to share, so create that first
- store := wasmtime.NewStore(wasmtime.NewEngine())
-
- // Compiling modules requires WebAssembly binary input, but the wasmtime
- // package also supports converting the WebAssembly text format to the
- // binary format.
- wasm, err := wasmtime.Wat2Wasm(`
- (module
- (import "" "hello" (func $hello))
- (func (export "run")
- (call $hello))
- )
- `)
- check(err)
-
- // Once we have our binary `wasm` we can compile that into a `*Module`
- // which represents compiled JIT code.
- module, err := wasmtime.NewModule(store.Engine, wasm)
- check(err)
-
- // Our `hello.wat` file imports one item, so we create that function
- // here.
- item := wasmtime.WrapFunc(store, func() {
- fmt.Println("Hello from Go!")
- })
-
- // Next up we instantiate a module which is where we link in all our
- // imports. We've got one import so we pass that in here.
- instance, err := wasmtime.NewInstance(store, module, []wasmtime.AsExtern{item})
- check(err)
-
- // After we've instantiated we can lookup our `run` function and call
- // it.
- run := instance.GetFunc(store, "run")
- if run == nil {
- panic("not a function")
- }
- _, err = run.Call(store)
- check(err)
-}
-
-func check(e error) {
- if e != nil {
- panic(e)
- }
-}
-```
-
-## Contributing
-
-So far this extension has been written by folks who are primarily Rust
-programmers, so it's highly likely that there's some faux pas in terms of Go
-idioms. Feel free to send a PR to help make things more idiomatic if you see
-something!
-
-To work on this extension locally you'll first want to clone the project:
-
-```sh
-$ git clone https://github.com/bytecodealliance/wasmtime-go
-```
-
-Next up you'll want to have a [local Wasmtime build
-available](https://bytecodealliance.github.io/wasmtime/contributing-building.html).
-
-You'll need to build at least the `wasmtime-c-api` crate, which, at the time of
-this writing, would be:
-
-```sh
-$ cargo build -p wasmtime-c-api
-```
-
-Once you've got that you can set up the environment of this library with:
-
-```sh
-$ ./ci/local.sh /path/to/wasmtime
-```
-
-This will create a `build` directory which has the compiled libraries and header
-files. Next up you can run normal commands such as:
-
-```sh
-$ go test
-```
-
-And after that you should be good to go!
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/WORKSPACE b/vendor/github.com/bytecodealliance/wasmtime-go/v3/WORKSPACE
deleted file mode 100644
index 361778a4..00000000
--- a/vendor/github.com/bytecodealliance/wasmtime-go/v3/WORKSPACE
+++ /dev/null
@@ -1,68 +0,0 @@
-load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
-
-http_archive(
- name = "io_bazel_rules_go",
- sha256 = "685052b498b6ddfe562ca7a97736741d87916fe536623afb7da2824c0211c369",
- urls = [
- "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.33.0/rules_go-v0.33.0.zip",
- "https://github.com/bazelbuild/rules_go/releases/download/v0.33.0/rules_go-v0.33.0.zip",
- ],
-)
-
-http_archive(
- name = "bazel_gazelle",
- sha256 = "5982e5463f171da99e3bdaeff8c0f48283a7a5f396ec5282910b9e8a49c0dd7e",
- urls = [
- "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.25.0/bazel-gazelle-v0.25.0.tar.gz",
- "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.25.0/bazel-gazelle-v0.25.0.tar.gz",
- ],
-)
-
-load("@io_bazel_rules_go//go:deps.bzl", "go_rules_dependencies", "go_register_toolchains")
-load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies", "go_repository")
-
-go_repository(
- name = "com_github_davecgh_go_spew",
- build_file_proto_mode = "disable_global",
- importpath = "github.com/davecgh/go-spew",
- sum = "h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=",
- version = "v1.1.1",
-)
-
-go_repository(
- name = "com_github_pmezard_go_difflib",
- build_file_proto_mode = "disable_global",
- importpath = "github.com/pmezard/go-difflib",
- sum = "h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=",
- version = "v1.0.0",
-)
-
-go_repository(
- name = "com_github_stretchr_testify",
- build_file_proto_mode = "disable_global",
- importpath = "github.com/stretchr/testify",
- sum = "h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk=",
- version = "v1.8.0",
-)
-
-go_repository(
- name = "in_gopkg_yaml_v3",
- build_file_proto_mode = "disable_global",
- importpath = "gopkg.in/yaml.v3",
- sum = "h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=",
- version = "v3.0.0-20200313102051-9f266ea9e77c",
-)
-
-go_repository(
- name = "com_github_stretchr_objx",
- build_file_proto_mode = "disable_global",
- importpath = "github.com/stretchr/objx",
- sum = "h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=",
- version = "v0.4.0",
-)
-
-go_rules_dependencies()
-
-go_register_toolchains(version = "1.16")
-
-gazelle_dependencies()
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasi.h b/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasi.h
deleted file mode 100644
index f3d1dfd4..00000000
--- a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasi.h
+++ /dev/null
@@ -1,165 +0,0 @@
-/**
- * \file wasi.h
- *
- * C API for WASI
- */
-
-#ifndef WASI_H
-#define WASI_H
-
-#include "wasm.h"
-
-#ifndef WASI_API_EXTERN
-#ifdef _WIN32
-#define WASI_API_EXTERN __declspec(dllimport)
-#else
-#define WASI_API_EXTERN
-#endif
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#define own
-
-#define WASI_DECLARE_OWN(name) \
- typedef struct wasi_##name##_t wasi_##name##_t; \
- WASI_API_EXTERN void wasi_##name##_delete(own wasi_##name##_t*);
-
-/**
- * \typedef wasi_config_t
- * \brief Convenience alias for #wasi_config_t
- *
- * \struct wasi_config_t
- * \brief TODO
- *
- * \fn void wasi_config_delete(wasi_config_t *);
- * \brief Deletes a configuration object.
- */
-WASI_DECLARE_OWN(config)
-
-/**
- * \brief Creates a new empty configuration object.
- *
- * The caller is expected to deallocate the returned configuration
- */
-WASI_API_EXTERN own wasi_config_t* wasi_config_new();
-
-/**
- * \brief Sets the argv list for this configuration object.
- *
- * By default WASI programs have an empty argv list, but this can be used to
- * explicitly specify what the argv list for the program is.
- *
- * The arguments are copied into the `config` object as part of this function
- * call, so the `argv` pointer only needs to stay alive for this function call.
- */
-WASI_API_EXTERN void wasi_config_set_argv(wasi_config_t* config, int argc, const char* argv[]);
-
-/**
- * \brief Indicates that the argv list should be inherited from this process's
- * argv list.
- */
-WASI_API_EXTERN void wasi_config_inherit_argv(wasi_config_t* config);
-
-/**
- * \brief Sets the list of environment variables available to the WASI instance.
- *
- * By default WASI programs have a blank environment, but this can be used to
- * define some environment variables for them.
- *
- * It is required that the `names` and `values` lists both have `envc` entries.
- *
- * The env vars are copied into the `config` object as part of this function
- * call, so the `names` and `values` pointers only need to stay alive for this
- * function call.
- */
-WASI_API_EXTERN void wasi_config_set_env(wasi_config_t* config, int envc, const char* names[], const char* values[]);
-
-/**
- * \brief Indicates that the entire environment of the calling process should be
- * inherited by this WASI configuration.
- */
-WASI_API_EXTERN void wasi_config_inherit_env(wasi_config_t* config);
-
-/**
- * \brief Configures standard input to be taken from the specified file.
- *
- * By default WASI programs have no stdin, but this configures the specified
- * file to be used as stdin for this configuration.
- *
- * If the stdin location does not exist or it cannot be opened for reading then
- * `false` is returned. Otherwise `true` is returned.
- */
-WASI_API_EXTERN bool wasi_config_set_stdin_file(wasi_config_t* config, const char* path);
-
-/**
- * \brief Configures standard input to be taken from the specified #wasm_byte_vec_t.
- *
- * By default WASI programs have no stdin, but this configures the specified
- * bytes to be used as stdin for this configuration.
- *
- * This function takes ownership of the `binary` argument.
- */
-WASI_API_EXTERN void wasi_config_set_stdin_bytes(wasi_config_t* config, wasm_byte_vec_t* binary);
-
-/**
- * \brief Configures this process's own stdin stream to be used as stdin for
- * this WASI configuration.
- */
-WASI_API_EXTERN void wasi_config_inherit_stdin(wasi_config_t* config);
-
-/**
- * \brief Configures standard output to be written to the specified file.
- *
- * By default WASI programs have no stdout, but this configures the specified
- * file to be used as stdout.
- *
- * If the stdout location could not be opened for writing then `false` is
- * returned. Otherwise `true` is returned.
- */
-WASI_API_EXTERN bool wasi_config_set_stdout_file(wasi_config_t* config, const char* path);
-
-/**
- * \brief Configures this process's own stdout stream to be used as stdout for
- * this WASI configuration.
- */
-WASI_API_EXTERN void wasi_config_inherit_stdout(wasi_config_t* config);
-
-/**
- * \brief Configures standard output to be written to the specified file.
- *
- * By default WASI programs have no stderr, but this configures the specified
- * file to be used as stderr.
- *
- * If the stderr location could not be opened for writing then `false` is
- * returned. Otherwise `true` is returned.
- */
-WASI_API_EXTERN bool wasi_config_set_stderr_file(wasi_config_t* config, const char* path);
-
-/**
- * \brief Configures this process's own stderr stream to be used as stderr for
- * this WASI configuration.
- */
-WASI_API_EXTERN void wasi_config_inherit_stderr(wasi_config_t* config);
-
-/**
- * \brief Configures a "preopened directory" to be available to WASI APIs.
- *
- * By default WASI programs do not have access to anything on the filesystem.
- * This API can be used to grant WASI programs access to a directory on the
- * filesystem, but only that directory (its whole contents but nothing above it).
- *
- * The `path` argument here is a path name on the host filesystem, and
- * `guest_path` is the name by which it will be known in wasm.
- */
-WASI_API_EXTERN bool wasi_config_preopen_dir(wasi_config_t* config, const char* path, const char* guest_path);
-
-#undef own
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif // #ifdef WASI_H
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/config.h b/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/config.h
deleted file mode 100644
index 77c11936..00000000
--- a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/config.h
+++ /dev/null
@@ -1,283 +0,0 @@
-/**
- * \file wasmtime/config.h
- *
- * \brief Wasmtime-specific extensions to #wasm_config_t
- */
-
-#ifndef WASMTIME_CONFIG_H
-#define WASMTIME_CONFIG_H
-
-#include
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \brief Specifier for how Wasmtime will compile code, values are in
- * #wasmtime_strategy_enum
- */
-typedef uint8_t wasmtime_strategy_t;
-
-/**
- * \brief Different ways that Wasmtime can compile WebAssembly
- *
- * The default value is #WASMTIME_STRATEGY_AUTO.
- */
-enum wasmtime_strategy_enum { // Strategy
- /// Automatically picks the compilation backend, currently always defaulting
- /// to Cranelift.
- WASMTIME_STRATEGY_AUTO,
-
- /// Indicates that Wasmtime will unconditionally use Cranelift to compile
- /// WebAssembly code.
- WASMTIME_STRATEGY_CRANELIFT,
-};
-
-/**
- * \brief Specifier of what optimization level to use for generated JIT code.
- *
- * See #wasmtime_opt_level_enum for possible values.
- */
-typedef uint8_t wasmtime_opt_level_t;
-
-/**
- * \brief Different ways Wasmtime can optimize generated code.
- *
- * The default value is #WASMTIME_OPT_LEVEL_SPEED.
- */
-enum wasmtime_opt_level_enum { // OptLevel
- /// Generated code will not be optimized at all.
- WASMTIME_OPT_LEVEL_NONE,
- /// Generated code will be optimized purely for speed.
- WASMTIME_OPT_LEVEL_SPEED,
- /// Generated code will be optimized, but some speed optimizations are
- /// disabled if they cause the generated code to be significantly larger.
- WASMTIME_OPT_LEVEL_SPEED_AND_SIZE,
-};
-
-/**
- * \brief Different ways wasmtime can enable profiling JIT code.
- *
- * See #wasmtime_profiling_strategy_enum for possible values.
- */
-typedef uint8_t wasmtime_profiling_strategy_t;
-
-/**
- * \brief Different ways to profile JIT code.
- *
- * The default is #WASMTIME_PROFILING_STRATEGY_NONE.
- */
-enum wasmtime_profiling_strategy_enum { // ProfilingStrategy
- /// No profiling is enabled at runtime.
- WASMTIME_PROFILING_STRATEGY_NONE,
- /// Linux's "jitdump" support in `perf` is enabled and when Wasmtime is run
- /// under `perf` necessary calls will be made to profile generated JIT code.
- WASMTIME_PROFILING_STRATEGY_JITDUMP,
- /// Support for VTune will be enabled and the VTune runtime will be informed,
- /// at runtime, about JIT code.
- ///
- /// Note that this isn't always enabled at build time.
- WASMTIME_PROFILING_STRATEGY_VTUNE,
-};
-
-#define WASMTIME_CONFIG_PROP(ret, name, ty) \
- WASM_API_EXTERN ret wasmtime_config_##name##_set(wasm_config_t*, ty);
-
-/**
- * \brief Configures whether DWARF debug information is constructed at runtime
- * to describe JIT code.
- *
- * This setting is `false` by default. When enabled it will attempt to inform
- * native debuggers about DWARF debugging information for JIT code to more
- * easily debug compiled WebAssembly via native debuggers. This can also
- * sometimes improve the quality of output when profiling is enabled.
- */
-WASMTIME_CONFIG_PROP(void, debug_info, bool)
-
-/**
- * \brief Whether or not fuel is enabled for generated code.
- *
- * This setting is `false` by default. When enabled it will enable fuel counting
- * meaning that fuel will be consumed every time a wasm instruction is executed,
- * and trap when reaching zero.
- */
-WASMTIME_CONFIG_PROP(void, consume_fuel, bool)
-
-/**
- * \brief Whether or not epoch-based interruption is enabled for generated code.
- *
- * This setting is `false` by default. When enabled wasm code will check the
- * current epoch periodically and abort if the current epoch is beyond a
- * store-configured limit.
- *
- * Note that when this setting is enabled all stores will immediately trap and
- * need to have their epoch deadline otherwise configured with
- * #wasmtime_context_set_epoch_deadline.
- *
- * Note that the current epoch is engine-local and can be incremented with
- * #wasmtime_engine_increment_epoch.
- */
-WASMTIME_CONFIG_PROP(void, epoch_interruption, bool)
-
-/**
- * \brief Configures the maximum stack size, in bytes, that JIT code can use.
- *
- * This setting is 2MB by default. Configuring this setting will limit the
- * amount of native stack space that JIT code can use while it is executing. If
- * you're hitting stack overflow you can try making this setting larger, or if
- * you'd like to limit wasm programs to less stack you can also configure this.
- *
- * Note that this setting is not interpreted with 100% precision. Additionally
- * the amount of stack space that wasm takes is always relative to the first
- * invocation of wasm on the stack, so recursive calls with host frames in the
- * middle will all need to fit within this setting.
- */
-WASMTIME_CONFIG_PROP(void, max_wasm_stack, size_t)
-
-/**
- * \brief Configures whether the WebAssembly threading proposal is enabled.
- *
- * This setting is `false` by default.
- *
- * Note that threads are largely unimplemented in Wasmtime at this time.
- */
-WASMTIME_CONFIG_PROP(void, wasm_threads, bool)
-
-/**
- * \brief Configures whether the WebAssembly reference types proposal is
- * enabled.
- *
- * This setting is `false` by default.
- */
-WASMTIME_CONFIG_PROP(void, wasm_reference_types, bool)
-
-/**
- * \brief Configures whether the WebAssembly SIMD proposal is
- * enabled.
- *
- * This setting is `false` by default.
- */
-WASMTIME_CONFIG_PROP(void, wasm_simd, bool)
-
-/**
- * \brief Configures whether the WebAssembly bulk memory proposal is
- * enabled.
- *
- * This setting is `false` by default.
- */
-WASMTIME_CONFIG_PROP(void, wasm_bulk_memory, bool)
-
-/**
- * \brief Configures whether the WebAssembly multi value proposal is
- * enabled.
- *
- * This setting is `true` by default.
- */
-WASMTIME_CONFIG_PROP(void, wasm_multi_value, bool)
-
-/**
- * \brief Configures whether the WebAssembly multi-memory proposal is
- * enabled.
- *
- * This setting is `false` by default.
- */
-WASMTIME_CONFIG_PROP(void, wasm_multi_memory, bool)
-
-/**
- * \brief Configures whether the WebAssembly memory64 proposal is
- * enabled.
- *
- * This setting is `false` by default.
- */
-WASMTIME_CONFIG_PROP(void, wasm_memory64, bool)
-
-/**
- * \brief Configures how JIT code will be compiled.
- *
- * This setting is #WASMTIME_STRATEGY_AUTO by default.
- */
-WASMTIME_CONFIG_PROP(void, strategy, wasmtime_strategy_t)
-
-/**
- * \brief Configures whether Cranelift's debug verifier is enabled.
- *
- * This setting in `false` by default.
- *
- * When cranelift is used for compilation this enables expensive debug checks
- * within Cranelift itself to verify it's correct.
- */
-WASMTIME_CONFIG_PROP(void, cranelift_debug_verifier, bool)
-
-/**
- * \brief Configures whether Cranelift should perform a NaN-canonicalization pass.
- *
- * When Cranelift is used as a code generation backend this will configure
- * it to replace NaNs with a single canonical value. This is useful for users
- * requiring entirely deterministic WebAssembly computation.
- *
- * This is not required by the WebAssembly spec, so it is not enabled by default.
- *
- * The default value for this is `false`
- */
-WASMTIME_CONFIG_PROP(void, cranelift_nan_canonicalization, bool)
-
-/**
- * \brief Configures Cranelift's optimization level for JIT code.
- *
- * This setting in #WASMTIME_OPT_LEVEL_SPEED by default.
- */
-WASMTIME_CONFIG_PROP(void, cranelift_opt_level, wasmtime_opt_level_t)
-
-/**
- * \brief Configures the profiling strategy used for JIT code.
- *
- * This setting in #WASMTIME_PROFILING_STRATEGY_NONE by default.
- */
-WASMTIME_CONFIG_PROP(void, profiler, wasmtime_profiling_strategy_t)
-
-/**
- * \brief Configures the maximum size for memory to be considered "static"
- *
- * For more information see the Rust documentation at
- * https://bytecodealliance.github.io/wasmtime/api/wasmtime/struct.Config.html#method.static_memory_maximum_size.
- */
-WASMTIME_CONFIG_PROP(void, static_memory_maximum_size, uint64_t)
-
-/**
- * \brief Configures the guard region size for "static" memory.
- *
- * For more information see the Rust documentation at
- * https://bytecodealliance.github.io/wasmtime/api/wasmtime/struct.Config.html#method.static_memory_guard_size.
- */
-WASMTIME_CONFIG_PROP(void, static_memory_guard_size, uint64_t)
-
-/**
- * \brief Configures the guard region size for "dynamic" memory.
- *
- * For more information see the Rust documentation at
- * https://bytecodealliance.github.io/wasmtime/api/wasmtime/struct.Config.html#method.dynamic_memory_guard_size.
- */
-WASMTIME_CONFIG_PROP(void, dynamic_memory_guard_size, uint64_t)
-
-/**
- * \brief Enables Wasmtime's cache and loads configuration from the specified
- * path.
- *
- * By default the Wasmtime compilation cache is disabled. The configuration path
- * here can be `NULL` to use the default settings, and otherwise the argument
- * here must be a file on the filesystem with TOML configuration -
- * https://bytecodealliance.github.io/wasmtime/cli-cache.html.
- *
- * An error is returned if the cache configuration could not be loaded or if the
- * cache could not be enabled.
- */
-WASM_API_EXTERN wasmtime_error_t* wasmtime_config_cache_config_load(wasm_config_t*, const char*);
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif // WASMTIME_CONFIG_H
-
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/engine.h b/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/engine.h
deleted file mode 100644
index 1b8336f4..00000000
--- a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/engine.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/**
- * \file wasmtime/engine.h
- *
- * Wasmtime-specific extensions to #wasm_engine_t.
- */
-
-#ifndef WASMTIME_ENGINE_H
-#define WASMTIME_ENGINE_H
-
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \brief Increments the engine-local epoch variable.
- *
- * This function will increment the engine's current epoch which can be used to
- * force WebAssembly code to trap if the current epoch goes beyond the
- * #wasmtime_store_t configured epoch deadline.
- *
- * This function is safe to call from any thread, and it is also
- * async-signal-safe.
- *
- * See also #wasmtime_config_epoch_interruption_set.
- */
-WASM_API_EXTERN void wasmtime_engine_increment_epoch(wasm_engine_t *engine);
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif // WASMTIME_ENGINE_H
-
-
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/extern.h b/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/extern.h
deleted file mode 100644
index 29dcb217..00000000
--- a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/extern.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/**
- * \file wasmtime/extern.h
- *
- * \brief Definition of #wasmtime_extern_t and external items.
- */
-
-#ifndef WASMTIME_EXTERN_H
-#define WASMTIME_EXTERN_H
-
-#include
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/// \brief Representation of a function in Wasmtime.
-///
-/// Functions are represented with a 64-bit identifying integer in Wasmtime.
-/// They do not have any destructor associated with them. Functions cannot
-/// interoperate between #wasmtime_store_t instances and if the wrong function
-/// is passed to the wrong store then it may trigger an assertion to abort the
-/// process.
-typedef struct wasmtime_func {
- /// Internal identifier of what store this belongs to, never zero.
- uint64_t store_id;
- /// Internal index within the store.
- size_t index;
-} wasmtime_func_t;
-
-/// \brief Representation of a table in Wasmtime.
-///
-/// Tables are represented with a 64-bit identifying integer in Wasmtime.
-/// They do not have any destructor associated with them. Tables cannot
-/// interoperate between #wasmtime_store_t instances and if the wrong table
-/// is passed to the wrong store then it may trigger an assertion to abort the
-/// process.
-typedef struct wasmtime_table {
- /// Internal identifier of what store this belongs to, never zero.
- uint64_t store_id;
- /// Internal index within the store.
- size_t index;
-} wasmtime_table_t;
-
-/// \brief Representation of a memory in Wasmtime.
-///
-/// Memories are represented with a 64-bit identifying integer in Wasmtime.
-/// They do not have any destructor associated with them. Memories cannot
-/// interoperate between #wasmtime_store_t instances and if the wrong memory
-/// is passed to the wrong store then it may trigger an assertion to abort the
-/// process.
-typedef struct wasmtime_memory {
- /// Internal identifier of what store this belongs to, never zero.
- uint64_t store_id;
- /// Internal index within the store.
- size_t index;
-} wasmtime_memory_t;
-
-/// \brief Representation of a global in Wasmtime.
-///
-/// Globals are represented with a 64-bit identifying integer in Wasmtime.
-/// They do not have any destructor associated with them. Globals cannot
-/// interoperate between #wasmtime_store_t instances and if the wrong global
-/// is passed to the wrong store then it may trigger an assertion to abort the
-/// process.
-typedef struct wasmtime_global {
- /// Internal identifier of what store this belongs to, never zero.
- uint64_t store_id;
- /// Internal index within the store.
- size_t index;
-} wasmtime_global_t;
-
-/// \brief Discriminant of #wasmtime_extern_t
-typedef uint8_t wasmtime_extern_kind_t;
-
-/// \brief Value of #wasmtime_extern_kind_t meaning that #wasmtime_extern_t is a
-/// function
-#define WASMTIME_EXTERN_FUNC 0
-/// \brief Value of #wasmtime_extern_kind_t meaning that #wasmtime_extern_t is a
-/// global
-#define WASMTIME_EXTERN_GLOBAL 1
-/// \brief Value of #wasmtime_extern_kind_t meaning that #wasmtime_extern_t is a
-/// table
-#define WASMTIME_EXTERN_TABLE 2
-/// \brief Value of #wasmtime_extern_kind_t meaning that #wasmtime_extern_t is a
-/// memory
-#define WASMTIME_EXTERN_MEMORY 3
-
-/**
- * \typedef wasmtime_extern_union_t
- * \brief Convenience alias for #wasmtime_extern_union
- *
- * \union wasmtime_extern_union
- * \brief Container for different kinds of extern items.
- *
- * This type is contained in #wasmtime_extern_t and contains the payload for the
- * various kinds of items an extern wasm item can be.
- */
-typedef union wasmtime_extern_union {
- /// Field used if #wasmtime_extern_t::kind is #WASMTIME_EXTERN_FUNC
- wasmtime_func_t func;
- /// Field used if #wasmtime_extern_t::kind is #WASMTIME_EXTERN_GLOBAL
- wasmtime_global_t global;
- /// Field used if #wasmtime_extern_t::kind is #WASMTIME_EXTERN_TABLE
- wasmtime_table_t table;
- /// Field used if #wasmtime_extern_t::kind is #WASMTIME_EXTERN_MEMORY
- wasmtime_memory_t memory;
-} wasmtime_extern_union_t;
-
-/**
- * \typedef wasmtime_extern_t
- * \brief Convenience alias for #wasmtime_extern_t
- *
- * \union wasmtime_extern
- * \brief Container for different kinds of extern items.
- *
- * Note that this structure may contain an owned value, namely
- * #wasmtime_module_t, depending on the context in which this is used. APIs
- * which consume a #wasmtime_extern_t do not take ownership, but APIs that
- * return #wasmtime_extern_t require that #wasmtime_extern_delete is called to
- * deallocate the value.
- */
-typedef struct wasmtime_extern {
- /// Discriminant of which field of #of is valid.
- wasmtime_extern_kind_t kind;
- /// Container for the extern item's value.
- wasmtime_extern_union_t of;
-} wasmtime_extern_t;
-
-/// \brief Deletes a #wasmtime_extern_t.
-void wasmtime_extern_delete(wasmtime_extern_t *val);
-
-/// \brief Returns the type of the #wasmtime_extern_t defined within the given
-/// store.
-///
-/// Does not take ownership of `context` or `val`, but the returned
-/// #wasm_externtype_t is an owned value that needs to be deleted.
-wasm_externtype_t *wasmtime_extern_type(wasmtime_context_t *context, wasmtime_extern_t *val);
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif // WASMTIME_EXTERN_H
-
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/func.h b/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/func.h
deleted file mode 100644
index e65d002c..00000000
--- a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/func.h
+++ /dev/null
@@ -1,311 +0,0 @@
-/**
- * \file wasmtime/func.h
- *
- * Wasmtime definitions of how to interact with host and wasm functions.
- */
-
-#ifndef WASMTIME_FUNC_H
-#define WASMTIME_FUNC_H
-
-#include
-#include
-#include
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \typedef wasmtime_caller_t
- * \brief Alias to #wasmtime_caller
- *
- * \brief Structure used to learn about the caller of a host-defined function.
- * \struct wasmtime_caller
- *
- * This structure is an argument to #wasmtime_func_callback_t. The purpose
- * of this structure is acquire a #wasmtime_context_t pointer to interact with
- * objects, but it can also be used for inspect the state of the caller (such as
- * getting memories and functions) with #wasmtime_caller_export_get.
- *
- * This object is never owned and does not need to be deleted.
- */
-typedef struct wasmtime_caller wasmtime_caller_t;
-
-/**
- * \brief Callback signature for #wasmtime_func_new.
- *
- * This is the function signature for host functions that can be made accessible
- * to WebAssembly. The arguments to this function are:
- *
- * \param env user-provided argument passed to #wasmtime_func_new
- * \param caller a temporary object that can only be used during this function
- * call. Used to acquire #wasmtime_context_t or caller's state
- * \param args the arguments provided to this function invocation
- * \param nargs how many arguments are provided
- * \param results where to write the results of this function
- * \param nresults how many results must be produced
- *
- * Callbacks are guaranteed to get called with the right types of arguments, but
- * they must produce the correct number and types of results. Failure to do so
- * will cause traps to get raised on the wasm side.
- *
- * This callback can optionally return a #wasm_trap_t indicating that a trap
- * should be raised in WebAssembly. It's expected that in this case the caller
- * relinquishes ownership of the trap and it is passed back to the engine.
- */
-typedef wasm_trap_t* (*wasmtime_func_callback_t)(
- void *env,
- wasmtime_caller_t* caller,
- const wasmtime_val_t *args,
- size_t nargs,
- wasmtime_val_t *results,
- size_t nresults);
-
-/**
- * \brief Creates a new host-defined function.
- *
- * Inserts a host-defined function into the `store` provided which can be used
- * to then instantiate a module with or define within a #wasmtime_linker_t.
- *
- * \param store the store in which to create the function
- * \param type the wasm type of the function that's being created
- * \param callback the host-defined callback to invoke
- * \param env host-specific data passed to the callback invocation, can be
- * `NULL`
- * \param finalizer optional finalizer for `env`, can be `NULL`
- * \param ret the #wasmtime_func_t return value to be filled in.
- *
- * The returned function can only be used with the specified `store`.
- */
-WASM_API_EXTERN void wasmtime_func_new(
- wasmtime_context_t *store,
- const wasm_functype_t* type,
- wasmtime_func_callback_t callback,
- void *env,
- void (*finalizer)(void*),
- wasmtime_func_t *ret
-);
-
-/**
- * \brief Callback signature for #wasmtime_func_new_unchecked.
- *
- * This is the function signature for host functions that can be made accessible
- * to WebAssembly. The arguments to this function are:
- *
- * \param env user-provided argument passed to #wasmtime_func_new_unchecked
- * \param caller a temporary object that can only be used during this function
- * call. Used to acquire #wasmtime_context_t or caller's state
- * \param args_and_results storage space for both the parameters to the
- * function as well as the results of the function. The size of this
- * array depends on the function type that the host function is created
- * with, but it will be the maximum of the number of parameters and
- * number of results.
- * \param num_args_and_results the size of the `args_and_results` parameter in
- * units of #wasmtime_val_raw_t.
- *
- * This callback can optionally return a #wasm_trap_t indicating that a trap
- * should be raised in WebAssembly. It's expected that in this case the caller
- * relinquishes ownership of the trap and it is passed back to the engine.
- *
- * This differs from #wasmtime_func_callback_t in that the payload of
- * `args_and_results` does not have type information, nor does it have sizing
- * information. This is especially unsafe because it's only valid within the
- * particular #wasm_functype_t that the function was created with. The onus is
- * on the embedder to ensure that `args_and_results` are all read correctly
- * for parameters and all written for results within the execution of a
- * function.
- *
- * Parameters will be listed starting at index 0 in the `args_and_results`
- * array. Results are also written starting at index 0, which will overwrite
- * the arguments.
- */
-typedef wasm_trap_t* (*wasmtime_func_unchecked_callback_t)(
- void *env,
- wasmtime_caller_t* caller,
- wasmtime_val_raw_t *args_and_results,
- size_t num_args_and_results);
-
-/**
- * \brief Creates a new host function in the same manner of #wasmtime_func_new,
- * but the function-to-call has no type information available at runtime.
- *
- * This function is very similar to #wasmtime_func_new. The difference is that
- * this version is "more unsafe" in that when the host callback is invoked there
- * is no type information and no checks that the right types of values are
- * produced. The onus is on the consumer of this API to ensure that all
- * invariants are upheld such as:
- *
- * * The host callback reads parameters correctly and interprets their types
- * correctly.
- * * If a trap doesn't happen then all results are written to the results
- * pointer. All results must have the correct type.
- * * Types such as `funcref` cannot cross stores.
- * * Types such as `externref` have valid reference counts.
- *
- * It's generally only recommended to use this if your application can wrap
- * this in a safe embedding. This should not be frequently used due to the
- * number of invariants that must be upheld on the wasm<->host boundary. On the
- * upside, though, this flavor of host function will be faster to call than
- * those created by #wasmtime_func_new (hence the reason for this function's
- * existence).
- */
-WASM_API_EXTERN void wasmtime_func_new_unchecked(
- wasmtime_context_t *store,
- const wasm_functype_t* type,
- wasmtime_func_unchecked_callback_t callback,
- void *env,
- void (*finalizer)(void*),
- wasmtime_func_t *ret
-);
-
-/**
- * \brief Returns the type of the function specified
- *
- * The returned #wasm_functype_t is owned by the caller.
- */
-WASM_API_EXTERN wasm_functype_t* wasmtime_func_type(
- const wasmtime_context_t *store,
- const wasmtime_func_t *func
-);
-
-/**
- * \brief Call a WebAssembly function.
- *
- * This function is used to invoke a function defined within a store. For
- * example this might be used after extracting a function from a
- * #wasmtime_instance_t.
- *
- * \param store the store which owns `func`
- * \param func the function to call
- * \param args the arguments to the function call
- * \param nargs the number of arguments provided
- * \param results where to write the results of the function call
- * \param nresults the number of results expected
- * \param trap where to store a trap, if one happens.
- *
- * There are three possible return states from this function:
- *
- * 1. The returned error is non-null. This means `results`
- * wasn't written to and `trap` will have `NULL` written to it. This state
- * means that programmer error happened when calling the function, for
- * example when the size of the arguments/results was wrong, the types of the
- * arguments were wrong, or arguments may come from the wrong store.
- * 2. The trap pointer is filled in. This means the returned error is `NULL` and
- * `results` was not written to. This state means that the function was
- * executing but hit a wasm trap while executing.
- * 3. The error and trap returned are both `NULL` and `results` are written to.
- * This means that the function call succeeded and the specified results were
- * produced.
- *
- * The `trap` pointer cannot be `NULL`. The `args` and `results` pointers may be
- * `NULL` if the corresponding length is zero.
- *
- * Does not take ownership of #wasmtime_val_t arguments. Gives ownership of
- * #wasmtime_val_t results.
- */
-WASM_API_EXTERN wasmtime_error_t *wasmtime_func_call(
- wasmtime_context_t *store,
- const wasmtime_func_t *func,
- const wasmtime_val_t *args,
- size_t nargs,
- wasmtime_val_t *results,
- size_t nresults,
- wasm_trap_t **trap
-);
-
-/**
- * \brief Call a WebAssembly function in an "unchecked" fashion.
- *
- * This function is similar to #wasmtime_func_call except that there is no type
- * information provided with the arguments (or sizing information). Consequently
- * this is less safe to call since it's up to the caller to ensure that `args`
- * has an appropriate size and all the parameters are configured with their
- * appropriate values/types. Additionally all the results must be interpreted
- * correctly if this function returns successfully.
- *
- * Parameters must be specified starting at index 0 in the `args_and_results`
- * array. Results are written starting at index 0, which will overwrite
- * the arguments.
- *
- * Callers must ensure that various correctness variants are upheld when this
- * API is called such as:
- *
- * * The `args_and_results` pointer has enough space to hold all the parameters
- * and all the results (but not at the same time).
- * * Parameters must all be configured as if they were the correct type.
- * * Values such as `externref` and `funcref` are valid within the store being
- * called.
- *
- * When in doubt it's much safer to call #wasmtime_func_call. This function is
- * faster than that function, but the tradeoff is that embeddings must uphold
- * more invariants rather than relying on Wasmtime to check them for you.
- */
-WASM_API_EXTERN wasmtime_error_t *wasmtime_func_call_unchecked(
- wasmtime_context_t *store,
- const wasmtime_func_t *func,
- wasmtime_val_raw_t *args_and_results,
- wasm_trap_t **trap
-);
-
-/**
- * \brief Loads a #wasmtime_extern_t from the caller's context
- *
- * This function will attempt to look up the export named `name` on the caller
- * instance provided. If it is found then the #wasmtime_extern_t for that is
- * returned, otherwise `NULL` is returned.
- *
- * Note that this only works for exported memories right now for WASI
- * compatibility.
- *
- * \param caller the caller object to look up the export from
- * \param name the name that's being looked up
- * \param name_len the byte length of `name`
- * \param item where to store the return value
- *
- * Returns a nonzero value if the export was found, or 0 if the export wasn't
- * found. If the export wasn't found then `item` isn't written to.
- */
-WASM_API_EXTERN bool wasmtime_caller_export_get(
- wasmtime_caller_t *caller,
- const char *name,
- size_t name_len,
- wasmtime_extern_t *item
-);
-
-/**
- * \brief Returns the store context of the caller object.
- */
-WASM_API_EXTERN wasmtime_context_t* wasmtime_caller_context(wasmtime_caller_t* caller);
-
-/**
- * \brief Converts a `raw` nonzero `funcref` value from #wasmtime_val_raw_t
- * into a #wasmtime_func_t.
- *
- * This function can be used to interpret nonzero values of the `funcref` field
- * of the #wasmtime_val_raw_t structure. It is assumed that `raw` does not have
- * a value of 0, or otherwise the program will abort.
- *
- * Note that this function is unchecked and unsafe. It's only safe to pass
- * values learned from #wasmtime_val_raw_t with the same corresponding
- * #wasmtime_context_t that they were produced from. Providing arbitrary values
- * to `raw` here or cross-context values with `context` is UB.
- */
-WASM_API_EXTERN void wasmtime_func_from_raw(
- wasmtime_context_t* context,
- size_t raw,
- wasmtime_func_t *ret);
-
-/**
- * \brief Converts a `func` which belongs to `context` into a `usize`
- * parameter that is suitable for insertion into a #wasmtime_val_raw_t.
- */
-WASM_API_EXTERN size_t wasmtime_func_to_raw(
- wasmtime_context_t* context,
- const wasmtime_func_t *func);
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif // WASMTIME_FUNC_H
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/global.h b/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/global.h
deleted file mode 100644
index 4e244285..00000000
--- a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/global.h
+++ /dev/null
@@ -1,91 +0,0 @@
-/**
- * \file wasmtime/global.h
- *
- * Wasmtime APIs for interacting with WebAssembly globals.
- */
-
-#ifndef WASMTIME_GLOBAL_H
-#define WASMTIME_GLOBAL_H
-
-#include
-#include
-#include
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \brief Creates a new global value.
- *
- * Creates a new host-defined global value within the provided `store`
- *
- * \param store the store in which to create the global
- * \param type the wasm type of the global being created
- * \param val the initial value of the global
- * \param ret a return pointer for the created global.
- *
- * This function may return an error if the `val` argument does not match the
- * specified type of the global, or if `val` comes from a different store than
- * the one provided.
- *
- * This function does not take ownership of any of its arguments but error is
- * owned by the caller.
- */
-WASM_API_EXTERN wasmtime_error_t *wasmtime_global_new(
- wasmtime_context_t *store,
- const wasm_globaltype_t *type,
- const wasmtime_val_t *val,
- wasmtime_global_t *ret
-);
-
-/**
- * \brief Returns the wasm type of the specified global.
- *
- * The returned #wasm_globaltype_t is owned by the caller.
- */
-WASM_API_EXTERN wasm_globaltype_t* wasmtime_global_type(
- const wasmtime_context_t *store,
- const wasmtime_global_t *global
-);
-
-/**
- * \brief Get the value of the specified global.
- *
- * \param store the store that owns `global`
- * \param global the global to get
- * \param out where to store the value in this global.
- *
- * This function returns ownership of the contents of `out`, so
- * #wasmtime_val_delete may need to be called on the value.
- */
-WASM_API_EXTERN void wasmtime_global_get(
- wasmtime_context_t *store,
- const wasmtime_global_t *global,
- wasmtime_val_t *out
-);
-
-/**
- * \brief Sets a global to a new value.
- *
- * \param store the store that owns `global`
- * \param global the global to set
- * \param val the value to store in the global
- *
- * This function may return an error if `global` is not mutable or if `val` has
- * the wrong type for `global`.
- *
- * THis does not take ownership of any argument but returns ownership of the error.
- */
-WASM_API_EXTERN wasmtime_error_t *wasmtime_global_set(
- wasmtime_context_t *store,
- const wasmtime_global_t *global,
- const wasmtime_val_t *val
-);
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif // WASMTIME_GLOBAL_H
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/instance.h b/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/instance.h
deleted file mode 100644
index 544661f9..00000000
--- a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/instance.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/**
- * \file wasmtime/instance.h
- *
- * Wasmtime APIs for interacting with wasm instances.
- */
-
-#ifndef WASMTIME_INSTANCE_H
-#define WASMTIME_INSTANCE_H
-
-#include
-#include
-#include
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/// \brief Representation of a instance in Wasmtime.
-///
-/// Instances are represented with a 64-bit identifying integer in Wasmtime.
-/// They do not have any destructor associated with them. Instances cannot
-/// interoperate between #wasmtime_store_t instances and if the wrong instance
-/// is passed to the wrong store then it may trigger an assertion to abort the
-/// process.
-typedef struct wasmtime_instance {
- /// Internal identifier of what store this belongs to, never zero.
- uint64_t store_id;
- /// Internal index within the store.
- size_t index;
-} wasmtime_instance_t;
-
-/**
- * \brief Instantiate a wasm module.
- *
- * This function will instantiate a WebAssembly module with the provided
- * imports, creating a WebAssembly instance. The returned instance can then
- * afterwards be inspected for exports.
- *
- * \param store the store in which to create the instance
- * \param module the module that's being instantiated
- * \param imports the imports provided to the module
- * \param nimports the size of `imports`
- * \param instance where to store the returned instance
- * \param trap where to store the returned trap
- *
- * This function requires that `imports` is the same size as the imports that
- * `module` has. Additionally the `imports` array must be 1:1 lined up with the
- * imports of the `module` specified. This is intended to be relatively low
- * level, and #wasmtime_linker_instantiate is provided for a more ergonomic
- * name-based resolution API.
- *
- * The states of return values from this function are similar to
- * #wasmtime_func_call where an error can be returned meaning something like a
- * link error in this context. A trap can be returned (meaning no error or
- * instance is returned), or an instance can be returned (meaning no error or
- * trap is returned).
- *
- * Note that this function requires that all `imports` specified must be owned
- * by the `store` provided as well.
- *
- * This function does not take ownership of any of its arguments, but all return
- * values are owned by the caller.
- */
-WASM_API_EXTERN wasmtime_error_t *wasmtime_instance_new(
- wasmtime_context_t *store,
- const wasmtime_module_t *module,
- const wasmtime_extern_t* imports,
- size_t nimports,
- wasmtime_instance_t *instance,
- wasm_trap_t **trap
-);
-
-/**
- * \brief Get an export by name from an instance.
- *
- * \param store the store that owns `instance`
- * \param instance the instance to lookup within
- * \param name the export name to lookup
- * \param name_len the byte length of `name`
- * \param item where to store the returned value
- *
- * Returns nonzero if the export was found, and `item` is filled in. Otherwise
- * returns 0.
- *
- * Doesn't take ownership of any arguments but does return ownership of the
- * #wasmtime_extern_t.
- */
-WASM_API_EXTERN bool wasmtime_instance_export_get(
- wasmtime_context_t *store,
- const wasmtime_instance_t *instance,
- const char *name,
- size_t name_len,
- wasmtime_extern_t *item
-);
-
-/**
- * \brief Get an export by index from an instance.
- *
- * \param store the store that owns `instance`
- * \param instance the instance to lookup within
- * \param index the index to lookup
- * \param name where to store the name of the export
- * \param name_len where to store the byte length of the name
- * \param item where to store the export itself
- *
- * Returns nonzero if the export was found, and `name`, `name_len`, and `item`
- * are filled in. Otherwise returns 0.
- *
- * Doesn't take ownership of any arguments but does return ownership of the
- * #wasmtime_extern_t. The `name` pointer return value is owned by the `store`
- * and must be immediately used before calling any other APIs on
- * #wasmtime_context_t.
- */
-WASM_API_EXTERN bool wasmtime_instance_export_nth(
- wasmtime_context_t *store,
- const wasmtime_instance_t *instance,
- size_t index,
- char **name,
- size_t *name_len,
- wasmtime_extern_t *item
-);
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif // WASMTIME_INSTANCE_H
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/linker.h b/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/linker.h
deleted file mode 100644
index edd52442..00000000
--- a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/linker.h
+++ /dev/null
@@ -1,297 +0,0 @@
-/**
- * \file wasmtime/linker.h
- *
- * Wasmtime API for a name-based linker used to instantiate modules.
- */
-
-#ifndef WASMTIME_LINKER_H
-#define WASMTIME_LINKER_H
-
-#include
-#include
-#include
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \typedef wasmtime_linker_t
- * \brief Alias to #wasmtime_linker
- *
- * \struct #wasmtime_linker
- * \brief Object used to conveniently link together and instantiate wasm
- * modules.
- *
- * This type corresponds to the `wasmtime::Linker` type in Rust. This
- * type is intended to make it easier to manage a set of modules that link
- * together, or to make it easier to link WebAssembly modules to WASI.
- *
- * A #wasmtime_linker_t is a higher level way to instantiate a module than
- * #wasm_instance_new since it works at the "string" level of imports rather
- * than requiring 1:1 mappings.
- */
-typedef struct wasmtime_linker wasmtime_linker_t;
-
-/**
- * \brief Creates a new linker for the specified engine.
- *
- * This function does not take ownership of the engine argument, and the caller
- * is expected to delete the returned linker.
- */
-WASM_API_EXTERN wasmtime_linker_t* wasmtime_linker_new(wasm_engine_t* engine);
-
-/**
- * \brief Deletes a linker
- */
-WASM_API_EXTERN void wasmtime_linker_delete(wasmtime_linker_t* linker);
-
-/**
- * \brief Configures whether this linker allows later definitions to shadow
- * previous definitions.
- *
- * By default this setting is `false`.
- */
-WASM_API_EXTERN void wasmtime_linker_allow_shadowing(wasmtime_linker_t* linker, bool allow_shadowing);
-
-/**
- * \brief Defines a new item in this linker.
- *
- * \param linker the linker the name is being defined in.
- * \param module the module name the item is defined under.
- * \param module_len the byte length of `module`
- * \param name the field name the item is defined under
- * \param name_len the byte length of `name`
- * \param item the item that is being defined in this linker.
- *
- * \return On success `NULL` is returned, otherwise an error is returned which
- * describes why the definition failed.
- *
- * For more information about name resolution consult the [Rust
- * documentation](https://bytecodealliance.github.io/wasmtime/api/wasmtime/struct.Linker.html#name-resolution).
- */
-WASM_API_EXTERN wasmtime_error_t* wasmtime_linker_define(
- wasmtime_linker_t *linker,
- const char *module,
- size_t module_len,
- const char *name,
- size_t name_len,
- const wasmtime_extern_t *item
-);
-
-/**
- * \brief Defines a new function in this linker.
- *
- * \param linker the linker the name is being defined in.
- * \param module the module name the item is defined under.
- * \param module_len the byte length of `module`
- * \param name the field name the item is defined under
- * \param name_len the byte length of `name`
- * \param ty the type of the function that's being defined
- * \param cb the host callback to invoke when the function is called
- * \param data the host-provided data to provide as the first argument to the callback
- * \param finalizer an optional finalizer for the `data` argument.
- *
- * \return On success `NULL` is returned, otherwise an error is returned which
- * describes why the definition failed.
- *
- * For more information about name resolution consult the [Rust
- * documentation](https://bytecodealliance.github.io/wasmtime/api/wasmtime/struct.Linker.html#name-resolution).
- *
- * Note that this function does not create a #wasmtime_func_t. This creates a
- * store-independent function within the linker, allowing this function
- * definition to be used with multiple stores.
- *
- * For more information about host callbacks see #wasmtime_func_new.
- */
-WASM_API_EXTERN wasmtime_error_t* wasmtime_linker_define_func(
- wasmtime_linker_t *linker,
- const char *module,
- size_t module_len,
- const char *name,
- size_t name_len,
- const wasm_functype_t *ty,
- wasmtime_func_callback_t cb,
- void *data,
- void (*finalizer)(void*)
-);
-
-/**
- * \brief Defines a new function in this linker.
- *
- * This is the same as #wasmtime_linker_define_func except that it's the analog
- * of #wasmtime_func_new_unchecked instead of #wasmtime_func_new. Be sure to
- * consult the documentation of #wasmtime_linker_define_func for argument
- * information as well as #wasmtime_func_new_unchecked for why this is an
- * unsafe API.
- */
-WASM_API_EXTERN wasmtime_error_t* wasmtime_linker_define_func_unchecked(
- wasmtime_linker_t *linker,
- const char *module,
- size_t module_len,
- const char *name,
- size_t name_len,
- const wasm_functype_t *ty,
- wasmtime_func_unchecked_callback_t cb,
- void *data,
- void (*finalizer)(void*)
-);
-
-/**
- * \brief Defines WASI functions in this linker.
- *
- * \param linker the linker the name is being defined in.
- *
- * \return On success `NULL` is returned, otherwise an error is returned which
- * describes why the definition failed.
- *
- * This function will provide WASI function names in the specified linker. Note
- * that when an instance is created within a store then the store also needs to
- * have its WASI settings configured with #wasmtime_context_set_wasi for WASI
- * functions to work, otherwise an assert will be tripped that will abort the
- * process.
- *
- * For more information about name resolution consult the [Rust
- * documentation](https://bytecodealliance.github.io/wasmtime/api/wasmtime/struct.Linker.html#name-resolution).
- */
-WASM_API_EXTERN wasmtime_error_t* wasmtime_linker_define_wasi(
- wasmtime_linker_t *linker
-);
-
-/**
- * \brief Defines an instance under the specified name in this linker.
- *
- * \param linker the linker the name is being defined in.
- * \param store the store that owns `instance`
- * \param name the module name to define `instance` under.
- * \param name_len the byte length of `name`
- * \param instance a previously-created instance.
- *
- * \return On success `NULL` is returned, otherwise an error is returned which
- * describes why the definition failed.
- *
- * This function will take all of the exports of the `instance` provided and
- * defined them under a module called `name` with a field name as the export's
- * own name.
- *
- * For more information about name resolution consult the [Rust
- * documentation](https://bytecodealliance.github.io/wasmtime/api/wasmtime/struct.Linker.html#name-resolution).
- */
-WASM_API_EXTERN wasmtime_error_t* wasmtime_linker_define_instance(
- wasmtime_linker_t *linker,
- wasmtime_context_t *store,
- const char *name,
- size_t name_len,
- const wasmtime_instance_t *instance
-);
-
-/**
- * \brief Instantiates a #wasm_module_t with the items defined in this linker.
- *
- * \param linker the linker used to instantiate the provided module.
- * \param store the store that is used to instantiate within
- * \param module the module that is being instantiated.
- * \param instance the returned instance, if successful.
- * \param trap a trap returned, if the start function traps.
- *
- * \return One of three things can happen as a result of this function. First
- * the module could be successfully instantiated and returned through
- * `instance`, meaning the return value and `trap` are both set to `NULL`.
- * Second the start function may trap, meaning the return value and `instance`
- * are set to `NULL` and `trap` describes the trap that happens. Finally
- * instantiation may fail for another reason, in which case an error is returned
- * and `trap` and `instance` are set to `NULL`.
- *
- * This function will attempt to satisfy all of the imports of the `module`
- * provided with items previously defined in this linker. If any name isn't
- * defined in the linker than an error is returned. (or if the previously
- * defined item is of the wrong type).
- */
-WASM_API_EXTERN wasmtime_error_t* wasmtime_linker_instantiate(
- const wasmtime_linker_t *linker,
- wasmtime_context_t *store,
- const wasmtime_module_t *module,
- wasmtime_instance_t *instance,
- wasm_trap_t **trap
-);
-
-/**
- * \brief Defines automatic instantiations of a #wasm_module_t in this linker.
- *
- * \param linker the linker the module is being added to
- * \param store the store that is used to instantiate `module`
- * \param name the name of the module within the linker
- * \param name_len the byte length of `name`
- * \param module the module that's being instantiated
- *
- * \return An error if the module could not be instantiated or added or `NULL`
- * on success.
- *
- * This function automatically handles [Commands and
- * Reactors](https://github.com/WebAssembly/WASI/blob/master/design/application-abi.md#current-unstable-abi)
- * instantiation and initialization.
- *
- * For more information see the [Rust
- * documentation](https://bytecodealliance.github.io/wasmtime/api/wasmtime/struct.Linker.html#method.module).
- */
-WASM_API_EXTERN wasmtime_error_t* wasmtime_linker_module(
- wasmtime_linker_t *linker,
- wasmtime_context_t *store,
- const char *name,
- size_t name_len,
- const wasmtime_module_t *module
-);
-
-/**
- * \brief Acquires the "default export" of the named module in this linker.
- *
- * \param linker the linker to load from
- * \param store the store to load a function into
- * \param name the name of the module to get the default export for
- * \param name_len the byte length of `name`
- * \param func where to store the extracted default function.
- *
- * \return An error is returned if the default export could not be found, or
- * `NULL` is returned and `func` is filled in otherwise.
- *
- * For more information see the [Rust
- * documentation](https://bytecodealliance.github.io/wasmtime/api/wasmtime/struct.Linker.html#method.get_default).
- */
-WASM_API_EXTERN wasmtime_error_t* wasmtime_linker_get_default(
- const wasmtime_linker_t *linker,
- wasmtime_context_t *store,
- const char *name,
- size_t name_len,
- wasmtime_func_t *func
-);
-
-/**
- * \brief Loads an item by name from this linker.
- *
- * \param linker the linker to load from
- * \param store the store to load the item into
- * \param module the name of the module to get
- * \param module_len the byte length of `module`
- * \param name the name of the field to get
- * \param name_len the byte length of `name`
- * \param item where to store the extracted item
- *
- * \return A nonzero value if the item is defined, in which case `item` is also
- * filled in. Otherwise zero is returned.
- */
-WASM_API_EXTERN bool wasmtime_linker_get(
- const wasmtime_linker_t *linker,
- wasmtime_context_t *store,
- const char *module,
- size_t module_len,
- const char *name,
- size_t name_len,
- wasmtime_extern_t *item
-);
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif // WASMTIME_LINKER_H
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/memory.h b/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/memory.h
deleted file mode 100644
index 6aecbaff..00000000
--- a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/memory.h
+++ /dev/null
@@ -1,123 +0,0 @@
-/**
- * \file wasmtime/memory.h
- *
- * Wasmtime API for interacting with wasm memories.
- */
-
-#ifndef WASMTIME_MEMORY_H
-#define WASMTIME_MEMORY_H
-
-#include
-#include
-#include
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \brief Creates a new memory type from the specified parameters.
- *
- * Note that this function is preferred over #wasm_memorytype_new for
- * compatibility with the memory64 proposal.
- */
-WASM_API_EXTERN wasm_memorytype_t *wasmtime_memorytype_new(uint64_t min, bool max_present, uint64_t max, bool is_64);
-
-/**
- * \brief Returns the minimum size, in pages, of the specified memory type.
- *
- * Note that this function is preferred over #wasm_memorytype_limits for
- * compatibility with the memory64 proposal.
- */
-WASM_API_EXTERN uint64_t wasmtime_memorytype_minimum(const wasm_memorytype_t *ty);
-
-/**
- * \brief Returns the maximum size, in pages, of the specified memory type.
- *
- * If this memory type doesn't have a maximum size listed then `false` is
- * returned. Otherwise `true` is returned and the `max` pointer is filled in
- * with the specified maximum size, in pages.
- *
- * Note that this function is preferred over #wasm_memorytype_limits for
- * compatibility with the memory64 proposal.
- */
-WASM_API_EXTERN bool wasmtime_memorytype_maximum(const wasm_memorytype_t *ty, uint64_t *max);
-
-/**
- * \brief Returns whether this type of memory represents a 64-bit memory.
- */
-WASM_API_EXTERN bool wasmtime_memorytype_is64(const wasm_memorytype_t *ty);
-
-/**
- * \brief Creates a new WebAssembly linear memory
- *
- * \param store the store to create the memory within
- * \param ty the type of the memory to create
- * \param ret where to store the returned memory
- *
- * If an error happens when creating the memory it's returned and owned by the
- * caller. If an error happens then `ret` is not filled in.
- */
-WASM_API_EXTERN wasmtime_error_t *wasmtime_memory_new(
- wasmtime_context_t *store,
- const wasm_memorytype_t* ty,
- wasmtime_memory_t *ret
-);
-
-/**
- * \brief Returns the tyep of the memory specified
- */
-WASM_API_EXTERN wasm_memorytype_t* wasmtime_memory_type(
- const wasmtime_context_t *store,
- const wasmtime_memory_t *memory
-);
-
-/**
- * \brief Returns the base pointer in memory where the linear memory starts.
- */
-WASM_API_EXTERN uint8_t *wasmtime_memory_data(
- const wasmtime_context_t *store,
- const wasmtime_memory_t *memory
-);
-
-/**
- * \brief Returns the byte length of this linear memory.
- */
-WASM_API_EXTERN size_t wasmtime_memory_data_size(
- const wasmtime_context_t *store,
- const wasmtime_memory_t *memory
-);
-
-/**
- * \brief Returns the length, in WebAssembly pages, of this linear memory
- */
-WASM_API_EXTERN uint64_t wasmtime_memory_size(
- const wasmtime_context_t *store,
- const wasmtime_memory_t *memory
-);
-
-/**
- * \brief Attempts to grow the specified memory by `delta` pages.
- *
- * \param store the store that owns `memory`
- * \param memory the memory to grow
- * \param delta the number of pages to grow by
- * \param prev_size where to store the previous size of memory
- *
- * If memory cannot be grown then `prev_size` is left unchanged and an error is
- * returned. Otherwise `prev_size` is set to the previous size of the memory, in
- * WebAssembly pages, and `NULL` is returned.
- */
-WASM_API_EXTERN wasmtime_error_t *wasmtime_memory_grow(
- wasmtime_context_t *store,
- const wasmtime_memory_t *memory,
- uint64_t delta,
- uint64_t *prev_size
-);
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif // WASMTIME_MEMORY_H
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/module.h b/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/module.h
deleted file mode 100644
index deb6bcec..00000000
--- a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/module.h
+++ /dev/null
@@ -1,155 +0,0 @@
-/**
- * \file wasmtime/module.h
- *
- * APIs for interacting with modules in Wasmtime
- */
-
-#ifndef WASMTIME_MODULE_H
-#define WASMTIME_MODULE_H
-
-#include
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \typedef wasmtime_module_t
- * \brief Convenience alias for #wasmtime_module
- *
- * \struct wasmtime_module
- * \brief A compiled Wasmtime module.
- *
- * This type represents a compiled WebAssembly module. The compiled module is
- * ready to be instantiated and can be inspected for imports/exports. It is safe
- * to use a module across multiple threads simultaneously.
- */
-typedef struct wasmtime_module wasmtime_module_t;
-
-/**
- * \brief Compiles a WebAssembly binary into a #wasmtime_module_t
- *
- * This function will compile a WebAssembly binary into an owned #wasm_module_t.
- * This performs the same as #wasm_module_new except that it returns a
- * #wasmtime_error_t type to get richer error information.
- *
- * On success the returned #wasmtime_error_t is `NULL` and the `ret` pointer is
- * filled in with a #wasm_module_t. On failure the #wasmtime_error_t is
- * non-`NULL` and the `ret` pointer is unmodified.
- *
- * This function does not take ownership of any of its arguments, but the
- * returned error and module are owned by the caller.
- */
-WASM_API_EXTERN wasmtime_error_t *wasmtime_module_new(
- wasm_engine_t *engine,
- const uint8_t *wasm,
- size_t wasm_len,
- wasmtime_module_t **ret
-);
-
-/**
- * \brief Deletes a module.
- */
-WASM_API_EXTERN void wasmtime_module_delete(wasmtime_module_t *m);
-
-/**
- * \brief Creates a shallow clone of the specified module, increasing the
- * internal reference count.
- */
-WASM_API_EXTERN wasmtime_module_t *wasmtime_module_clone(wasmtime_module_t *m);
-
-/**
- * \brief Same as #wasm_module_imports, but for #wasmtime_module_t.
- */
-WASM_API_EXTERN void wasmtime_module_imports(
- const wasmtime_module_t *module,
- wasm_importtype_vec_t *out
-);
-
-/**
- * \brief Same as #wasm_module_exports, but for #wasmtime_module_t.
- */
-WASM_API_EXTERN void wasmtime_module_exports(
- const wasmtime_module_t *module,
- wasm_exporttype_vec_t *out
-);
-
-/**
- * \brief Validate a WebAssembly binary.
- *
- * This function will validate the provided byte sequence to determine if it is
- * a valid WebAssembly binary within the context of the engine provided.
- *
- * This function does not take ownership of its arguments but the caller is
- * expected to deallocate the returned error if it is non-`NULL`.
- *
- * If the binary validates then `NULL` is returned, otherwise the error returned
- * describes why the binary did not validate.
- */
-WASM_API_EXTERN wasmtime_error_t *wasmtime_module_validate(
- wasm_engine_t *engine,
- const uint8_t *wasm,
- size_t wasm_len
-);
-
-/**
- * \brief This function serializes compiled module artifacts as blob data.
- *
- * \param module the module
- * \param ret if the conversion is successful, this byte vector is filled in with
- * the serialized compiled module.
- *
- * \return a non-null error if parsing fails, or returns `NULL`. If parsing
- * fails then `ret` isn't touched.
- *
- * This function does not take ownership of `module`, and the caller is
- * expected to deallocate the returned #wasmtime_error_t and #wasm_byte_vec_t.
- */
-WASM_API_EXTERN wasmtime_error_t* wasmtime_module_serialize(
- wasmtime_module_t* module,
- wasm_byte_vec_t *ret
-);
-
-/**
- * \brief Build a module from serialized data.
- *
- * This function does not take ownership of any of its arguments, but the
- * returned error and module are owned by the caller.
- *
- * This function is not safe to receive arbitrary user input. See the Rust
- * documentation for more information on what inputs are safe to pass in here
- * (e.g. only that of #wasmtime_module_serialize)
- */
-WASM_API_EXTERN wasmtime_error_t *wasmtime_module_deserialize(
- wasm_engine_t *engine,
- const uint8_t *bytes,
- size_t bytes_len,
- wasmtime_module_t **ret
-);
-
-/**
- * \brief Deserialize a module from an on-disk file.
- *
- * This function is the same as #wasmtime_module_deserialize except that it
- * reads the data for the serialized module from the path on disk. This can be
- * faster than the alternative which may require copying the data around.
- *
- * This function does not take ownership of any of its arguments, but the
- * returned error and module are owned by the caller.
- *
- * This function is not safe to receive arbitrary user input. See the Rust
- * documentation for more information on what inputs are safe to pass in here
- * (e.g. only that of #wasmtime_module_serialize)
- */
-WASM_API_EXTERN wasmtime_error_t *wasmtime_module_deserialize_file(
- wasm_engine_t *engine,
- const char *path,
- wasmtime_module_t **ret
-);
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif // WASMTIME_MODULE_H
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/store.h b/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/store.h
deleted file mode 100644
index 55c9f680..00000000
--- a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/store.h
+++ /dev/null
@@ -1,185 +0,0 @@
-/**
- * \file wasmtime/store.h
- *
- * Wasmtime definition of a "store".
- */
-
-#ifndef WASMTIME_STORE_H
-#define WASMTIME_STORE_H
-
-#include
-#include
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \typedef wasmtime_store_t
- * \brief Convenience alias for #wasmtime_store_t
- *
- * \struct wasmtime_store
- * \brief Storage of WebAssembly objects
- *
- * A store is the unit of isolation between WebAssembly instances in an
- * embedding of Wasmtime. Values in one #wasmtime_store_t cannot flow into
- * another #wasmtime_store_t. Stores are cheap to create and cheap to dispose.
- * It's expected that one-off stores are common in embeddings.
- *
- * Objects stored within a #wasmtime_store_t are referenced with integer handles
- * rather than interior pointers. This means that most APIs require that the
- * store be explicitly passed in, which is done via #wasmtime_context_t. It is
- * safe to move a #wasmtime_store_t to any thread at any time. A store generally
- * cannot be concurrently used, however.
- */
-typedef struct wasmtime_store wasmtime_store_t;
-
-/**
- * \typedef wasmtime_context_t
- * \brief Convenience alias for #wasmtime_context
- *
- * \struct wasmtime_context
- * \brief An interior pointer into a #wasmtime_store_t which is used as
- * "context" for many functions.
- *
- * This context pointer is used pervasively throught Wasmtime's API. This can be
- * acquired from #wasmtime_store_context or #wasmtime_caller_context. The
- * context pointer for a store is the same for the entire lifetime of a store,
- * so it can safely be stored adjacent to a #wasmtime_store_t itself.
- *
- * Usage of a #wasmtime_context_t must not outlive the original
- * #wasmtime_store_t. Additionally #wasmtime_context_t can only be used in
- * situations where it has explicitly been granted access to doing so. For
- * example finalizers cannot use #wasmtime_context_t because they are not given
- * access to it.
- */
-typedef struct wasmtime_context wasmtime_context_t;
-
-/**
- * \brief Creates a new store within the specified engine.
- *
- * \param engine the compilation environment with configuration this store is
- * connected to
- * \param data user-provided data to store, can later be acquired with
- * #wasmtime_context_get_data.
- * \param finalizer an optional finalizer for `data`
- *
- * This function creates a fresh store with the provided configuration settings.
- * The returned store must be deleted with #wasmtime_store_delete.
- */
-WASM_API_EXTERN wasmtime_store_t *wasmtime_store_new(
- wasm_engine_t *engine,
- void *data,
- void (*finalizer)(void*)
-);
-
-/**
- * \brief Returns the interior #wasmtime_context_t pointer to this store
- */
-WASM_API_EXTERN wasmtime_context_t *wasmtime_store_context(wasmtime_store_t *store);
-
-/**
- * \brief Deletes a store.
- */
-WASM_API_EXTERN void wasmtime_store_delete(wasmtime_store_t *store);
-
-/**
- * \brief Returns the user-specified data associated with the specified store
- */
-WASM_API_EXTERN void *wasmtime_context_get_data(const wasmtime_context_t* context);
-
-/**
- * \brief Overwrites the user-specified data associated with this store.
- *
- * Note that this does not execute the original finalizer for the provided data,
- * and the original finalizer will be executed for the provided data when the
- * store is deleted.
- */
-WASM_API_EXTERN void wasmtime_context_set_data(wasmtime_context_t* context, void *data);
-
-/**
- * \brief Perform garbage collection within the given context.
- *
- * Garbage collects `externref`s that are used within this store. Any
- * `externref`s that are discovered to be unreachable by other code or objects
- * will have their finalizers run.
- *
- * The `context` argument must not be NULL.
- */
-WASM_API_EXTERN void wasmtime_context_gc(wasmtime_context_t* context);
-
-/**
- * \brief Adds fuel to this context's store for wasm to consume while executing.
- *
- * For this method to work fuel consumption must be enabled via
- * #wasmtime_config_consume_fuel_set. By default a store starts with 0 fuel
- * for wasm to execute with (meaning it will immediately trap).
- * This function must be called for the store to have
- * some fuel to allow WebAssembly to execute.
- *
- * Note that at this time when fuel is entirely consumed it will cause
- * wasm to trap. More usages of fuel are planned for the future.
- *
- * If fuel is not enabled within this store then an error is returned. If fuel
- * is successfully added then NULL is returned.
- */
-WASM_API_EXTERN wasmtime_error_t *wasmtime_context_add_fuel(wasmtime_context_t *store, uint64_t fuel);
-
-/**
- * \brief Returns the amount of fuel consumed by this context's store execution
- * so far.
- *
- * If fuel consumption is not enabled via #wasmtime_config_consume_fuel_set
- * then this function will return false. Otherwise true is returned and the
- * fuel parameter is filled in with fuel consuemd so far.
- *
- * Also note that fuel, if enabled, must be originally configured via
- * #wasmtime_context_add_fuel.
- */
-WASM_API_EXTERN bool wasmtime_context_fuel_consumed(const wasmtime_context_t *context, uint64_t *fuel);
-
-/**
- * \brief Attempt to manually consume fuel from the store.
- *
- * If fuel consumption is not enabled via #wasmtime_config_consume_fuel_set then
- * this function will return an error. Otherwise this will attempt to consume
- * the specified amount of `fuel` from the store. If successful the remaining
- * amount of fuel is stored into `remaining`. If `fuel` couldn't be consumed
- * then an error is returned.
- *
- * Also note that fuel, if enabled, must be originally configured via
- * #wasmtime_context_add_fuel.
- */
-WASM_API_EXTERN wasmtime_error_t *wasmtime_context_consume_fuel(wasmtime_context_t *context, uint64_t fuel, uint64_t *remaining);
-
-/**
- * \brief Configures WASI state within the specified store.
- *
- * This function is required if #wasmtime_linker_define_wasi is called. This
- * will configure the WASI state for instances defined within this store to the
- * configuration specified.
- *
- * This function does not take ownership of `context` but it does take ownership
- * of `wasi`. The caller should no longer use `wasi` after calling this function
- * (even if an error is returned).
- */
-WASM_API_EXTERN wasmtime_error_t *wasmtime_context_set_wasi(wasmtime_context_t *context, wasi_config_t *wasi);
-
-/**
- * \brief Configures the relative deadline at which point WebAssembly code will
- * trap.
- *
- * This function configures the store-local epoch deadline after which point
- * WebAssembly code will trap.
- *
- * See also #wasmtime_config_epoch_interruption_set.
- */
-WASM_API_EXTERN void wasmtime_context_set_epoch_deadline(wasmtime_context_t *context, uint64_t ticks_beyond_current);
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif // WASMTIME_STORE_H
-
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/table.h b/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/table.h
deleted file mode 100644
index 630cee9e..00000000
--- a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/table.h
+++ /dev/null
@@ -1,126 +0,0 @@
-/**
- * \file wasmtime/table.h
- *
- * Wasmtime APIs for interacting with WebAssembly tables.
- */
-
-#ifndef WASMTIME_TABLE_H
-#define WASMTIME_TABLE_H
-
-#include
-#include
-#include
-#include
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \brief Creates a new host-defined wasm table.
- *
- * \param store the store to create the table within
- * \param ty the type of the table to create
- * \param init the initial value for this table's elements
- * \param table where to store the returned table
- *
- * This function does not take ownership of any of its parameters, but yields
- * ownership of returned error. This function may return an error if the `init`
- * value does not match `ty`, for example.
- */
-WASM_API_EXTERN wasmtime_error_t *wasmtime_table_new(
- wasmtime_context_t *store,
- const wasm_tabletype_t *ty,
- const wasmtime_val_t *init,
- wasmtime_table_t *table
-);
-
-/**
- * \brief Returns the type of this table.
- *
- * The caller has ownership of the returned #wasm_tabletype_t
- */
-WASM_API_EXTERN wasm_tabletype_t* wasmtime_table_type(
- const wasmtime_context_t *store,
- const wasmtime_table_t *table
-);
-
-/**
- * \brief Gets a value in a table.
- *
- * \param store the store that owns `table`
- * \param table the table to access
- * \param index the table index to access
- * \param val where to store the table's value
- *
- * This function will attempt to access a table element. If a nonzero value is
- * returned then `val` is filled in and is owned by the caller. Otherwise zero
- * is returned because the `index` is out-of-bounds.
- */
-WASM_API_EXTERN bool wasmtime_table_get(
- wasmtime_context_t *store,
- const wasmtime_table_t *table,
- uint32_t index,
- wasmtime_val_t *val
-);
-
-/**
- * \brief Sets a value in a table.
- *
- * \param store the store that owns `table`
- * \param table the table to write to
- * \param index the table index to write
- * \param value the value to store.
- *
- * This function will store `value` into the specified index in the table. This
- * does not take ownership of any argument but yields ownership of the error.
- * This function can fail if `value` has the wrong type for the table, or if
- * `index` is out of bounds.
- */
-WASM_API_EXTERN wasmtime_error_t *wasmtime_table_set(
- wasmtime_context_t *store,
- const wasmtime_table_t *table,
- uint32_t index,
- const wasmtime_val_t *value
-);
-
-/**
- * \brief Returns the size, in elements, of the specified table
- */
-WASM_API_EXTERN uint32_t wasmtime_table_size(
- const wasmtime_context_t *store,
- const wasmtime_table_t *table
-);
-
-/**
- * \brief Grows a table.
- *
- * \param store the store that owns `table`
- * \param table the table to grow
- * \param delta the number of elements to grow the table by
- * \param init the initial value for new table element slots
- * \param prev_size where to store the previous size of the table before growth
- *
- * This function will attempt to grow the table by `delta` table elements. This
- * can fail if `delta` would exceed the maximum size of the table or if `init`
- * is the wrong type for this table. If growth is successful then `NULL` is
- * returned and `prev_size` is filled in with the previous size of the table, in
- * elements, before the growth happened.
- *
- * This function does not take ownership of any of its arguments.
- */
-WASM_API_EXTERN wasmtime_error_t *wasmtime_table_grow(
- wasmtime_context_t *store,
- const wasmtime_table_t *table,
- uint32_t delta,
- const wasmtime_val_t *init,
- uint32_t *prev_size
-);
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif // WASMTIME_TABLE_H
-
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/trap.h b/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/trap.h
deleted file mode 100644
index 6346cf44..00000000
--- a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/trap.h
+++ /dev/null
@@ -1,97 +0,0 @@
-/**
- * \file wasmtime/trap.h
- *
- * Wasmtime APIs for interacting with traps and extensions to #wasm_trap_t.
- */
-
-#ifndef WASMTIME_TRAP_H
-#define WASMTIME_TRAP_H
-
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \brief Code of an instruction trap.
- *
- * See #wasmtime_trap_code_enum for possible values.
- */
-typedef uint8_t wasmtime_trap_code_t;
-
-/**
- * \brief Trap codes for instruction traps.
- */
-enum wasmtime_trap_code_enum {
- /// The current stack space was exhausted.
- WASMTIME_TRAP_CODE_STACK_OVERFLOW,
- /// An out-of-bounds memory access.
- WASMTIME_TRAP_CODE_MEMORY_OUT_OF_BOUNDS,
- /// A wasm atomic operation was presented with a not-naturally-aligned linear-memory address.
- WASMTIME_TRAP_CODE_HEAP_MISALIGNED,
- /// An out-of-bounds access to a table.
- WASMTIME_TRAP_CODE_TABLE_OUT_OF_BOUNDS,
- /// Indirect call to a null table entry.
- WASMTIME_TRAP_CODE_INDIRECT_CALL_TO_NULL,
- /// Signature mismatch on indirect call.
- WASMTIME_TRAP_CODE_BAD_SIGNATURE,
- /// An integer arithmetic operation caused an overflow.
- WASMTIME_TRAP_CODE_INTEGER_OVERFLOW,
- /// An integer division by zero.
- WASMTIME_TRAP_CODE_INTEGER_DIVISION_BY_ZERO,
- /// Failed float-to-int conversion.
- WASMTIME_TRAP_CODE_BAD_CONVERSION_TO_INTEGER,
- /// Code that was supposed to have been unreachable was reached.
- WASMTIME_TRAP_CODE_UNREACHABLE_CODE_REACHED,
- /// Execution has potentially run too long and may be interrupted.
- WASMTIME_TRAP_CODE_INTERRUPT,
-};
-
-/**
- * \brief Creates a new trap.
- *
- * \param msg the message to associate with this trap
- * \param msg_len the byte length of `msg`
- *
- * The #wasm_trap_t returned is owned by the caller.
- */
-WASM_API_EXTERN wasm_trap_t *wasmtime_trap_new(const char *msg, size_t msg_len);
-
-/**
- * \brief Attempts to extract the trap code from this trap.
- *
- * Returns `true` if the trap is an instruction trap triggered while
- * executing Wasm. If `true` is returned then the trap code is returned
- * through the `code` pointer. If `false` is returned then this is not
- * an instruction trap -- traps can also be created using wasm_trap_new,
- * or occur with WASI modules exiting with a certain exit code.
- */
-WASM_API_EXTERN bool wasmtime_trap_code(const wasm_trap_t*, wasmtime_trap_code_t *code);
-
-/**
- * \brief Returns a human-readable name for this frame's function.
- *
- * This function will attempt to load a human-readable name for function this
- * frame points to. This function may return `NULL`.
- *
- * The lifetime of the returned name is the same as the #wasm_frame_t itself.
- */
-WASM_API_EXTERN const wasm_name_t *wasmtime_frame_func_name(const wasm_frame_t*);
-
-/**
- * \brief Returns a human-readable name for this frame's module.
- *
- * This function will attempt to load a human-readable name for module this
- * frame points to. This function may return `NULL`.
- *
- * The lifetime of the returned name is the same as the #wasm_frame_t itself.
- */
-WASM_API_EXTERN const wasm_name_t *wasmtime_frame_module_name(const wasm_frame_t*);
-
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif // WASMTIME_TRAP_H
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/val.h b/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/val.h
deleted file mode 100644
index ae0a1961..00000000
--- a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime/val.h
+++ /dev/null
@@ -1,232 +0,0 @@
-/**
- * \file wasmtime/val.h
- *
- * APIs for interacting with WebAssembly values in Wasmtime.
- */
-
-#ifndef WASMTIME_VAL_H
-#define WASMTIME_VAL_H
-
-#include
-#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * \typedef wasmtime_externref_t
- * \brief Convenience alias for #wasmtime_externref
- *
- * \struct wasmtime_externref
- * \brief A host-defined un-forgeable reference to pass into WebAssembly.
- *
- * This structure represents an `externref` that can be passed to WebAssembly.
- * It cannot be forged by WebAssembly itself and is guaranteed to have been
- * created by the host.
- */
-typedef struct wasmtime_externref wasmtime_externref_t;
-
-/**
- * \brief Create a new `externref` value.
- *
- * Creates a new `externref` value wrapping the provided data, returning the
- * pointer to the externref.
- *
- * \param data the host-specific data to wrap
- * \param finalizer an optional finalizer for `data`
- *
- * When the reference is reclaimed, the wrapped data is cleaned up with the
- * provided `finalizer`.
- *
- * The returned value must be deleted with #wasmtime_externref_delete
- */
-WASM_API_EXTERN wasmtime_externref_t *wasmtime_externref_new(void *data, void (*finalizer)(void*));
-
-/**
- * \brief Get an `externref`'s wrapped data
- *
- * Returns the original `data` passed to #wasmtime_externref_new. It is required
- * that `data` is not `NULL`.
- */
-WASM_API_EXTERN void *wasmtime_externref_data(wasmtime_externref_t *data);
-
-/**
- * \brief Creates a shallow copy of the `externref` argument, returning a
- * separately owned pointer (increases the reference count).
- */
-WASM_API_EXTERN wasmtime_externref_t *wasmtime_externref_clone(wasmtime_externref_t *ref);
-
-/**
- * \brief Decrements the reference count of the `ref`, deleting it if it's the
- * last reference.
- */
-WASM_API_EXTERN void wasmtime_externref_delete(wasmtime_externref_t *ref);
-
-/**
- * \brief Converts a raw `externref` value coming from #wasmtime_val_raw_t into
- * a #wasmtime_externref_t.
- *
- * Note that the returned #wasmtime_externref_t is an owned value that must be
- * deleted via #wasmtime_externref_delete by the caller if it is non-null.
- */
-WASM_API_EXTERN wasmtime_externref_t *wasmtime_externref_from_raw(wasmtime_context_t *context, size_t raw);
-
-/**
- * \brief Converts a #wasmtime_externref_t to a raw value suitable for storing
- * into a #wasmtime_val_raw_t.
- *
- * Note that the returned underlying value is not tracked by Wasmtime's garbage
- * collector until it enters WebAssembly. This means that a GC may release the
- * context's reference to the raw value, making the raw value invalid within the
- * context of the store. Do not perform a GC between calling this function and
- * passing it to WebAssembly.
- */
-WASM_API_EXTERN size_t wasmtime_externref_to_raw(
- wasmtime_context_t *context,
- const wasmtime_externref_t *ref);
-
-/// \brief Discriminant stored in #wasmtime_val::kind
-typedef uint8_t wasmtime_valkind_t;
-/// \brief Value of #wasmtime_valkind_t meaning that #wasmtime_val_t is an i32
-#define WASMTIME_I32 0
-/// \brief Value of #wasmtime_valkind_t meaning that #wasmtime_val_t is an i64
-#define WASMTIME_I64 1
-/// \brief Value of #wasmtime_valkind_t meaning that #wasmtime_val_t is a f32
-#define WASMTIME_F32 2
-/// \brief Value of #wasmtime_valkind_t meaning that #wasmtime_val_t is a f64
-#define WASMTIME_F64 3
-/// \brief Value of #wasmtime_valkind_t meaning that #wasmtime_val_t is a v128
-#define WASMTIME_V128 4
-/// \brief Value of #wasmtime_valkind_t meaning that #wasmtime_val_t is a funcref
-#define WASMTIME_FUNCREF 5
-/// \brief Value of #wasmtime_valkind_t meaning that #wasmtime_val_t is an externref
-#define WASMTIME_EXTERNREF 6
-
-/// \brief A 128-bit value representing the WebAssembly `v128` type. Bytes are
-/// stored in little-endian order.
-typedef uint8_t wasmtime_v128[16];
-
-/**
- * \typedef wasmtime_valunion_t
- * \brief Convenience alias for #wasmtime_valunion
- *
- * \union wasmtime_valunion
- * \brief Container for different kinds of wasm values.
- *
- * This type is contained in #wasmtime_val_t and contains the payload for the
- * various kinds of items a value can be.
- */
-typedef union wasmtime_valunion {
- /// Field used if #wasmtime_val_t::kind is #WASMTIME_I32
- ///
- /// Note that this field is always stored in a little-endian format.
- int32_t i32;
- /// Field used if #wasmtime_val_t::kind is #WASMTIME_I64
- ///
- /// Note that this field is always stored in a little-endian format.
- int64_t i64;
- /// Field used if #wasmtime_val_t::kind is #WASMTIME_F32
- ///
- /// Note that this field is always stored in a little-endian format.
- float32_t f32;
- /// Field used if #wasmtime_val_t::kind is #WASMTIME_F64
- ///
- /// Note that this field is always stored in a little-endian format.
- float64_t f64;
- /// Field used if #wasmtime_val_t::kind is #WASMTIME_FUNCREF
- ///
- /// If this value represents a `ref.null func` value then the `store_id` field
- /// is set to zero.
- ///
- /// Note that this field is always stored in a little-endian format.
- wasmtime_func_t funcref;
- /// Field used if #wasmtime_val_t::kind is #WASMTIME_EXTERNREF
- ///
- /// If this value represents a `ref.null extern` value then this pointer will
- /// be `NULL`.
- ///
- /// Note that this field is always stored in a little-endian format.
- wasmtime_externref_t *externref;
- /// Field used if #wasmtime_val_t::kind is #WASMTIME_V128
- ///
- /// Note that this field is always stored in a little-endian format.
- wasmtime_v128 v128;
-} wasmtime_valunion_t;
-
-/**
- * \typedef wasmtime_val_raw_t
- * \brief Convenience alias for #wasmtime_val_raw
- *
- * \union wasmtime_val_raw
- * \brief Container for possible wasm values.
- *
- * This type is used on conjunction with #wasmtime_func_new_unchecked as well
- * as #wasmtime_func_call_unchecked. Instances of this type do not have type
- * information associated with them, it's up to the embedder to figure out
- * how to interpret the bits contained within, often using some other channel
- * to determine the type.
- */
-typedef union wasmtime_val_raw {
- /// Field for when this val is a WebAssembly `i32` value.
- int32_t i32;
- /// Field for when this val is a WebAssembly `i64` value.
- int64_t i64;
- /// Field for when this val is a WebAssembly `f32` value.
- float32_t f32;
- /// Field for when this val is a WebAssembly `f64` value.
- float64_t f64;
- /// Field for when this val is a WebAssembly `v128` value.
- wasmtime_v128 v128;
- /// Field for when this val is a WebAssembly `funcref` value.
- ///
- /// If this is set to 0 then it's a null funcref, otherwise this must be
- /// passed to `wasmtime_func_from_raw` to determine the `wasmtime_func_t`.
- size_t funcref;
- /// Field for when this val is a WebAssembly `externref` value.
- ///
- /// If this is set to 0 then it's a null externref, otherwise this must be
- /// passed to `wasmtime_externref_from_raw` to determine the
- /// `wasmtime_externref_t`.
- size_t externref;
-} wasmtime_val_raw_t;
-
-/**
- * \typedef wasmtime_val_t
- * \brief Convenience alias for #wasmtime_val_t
- *
- * \union wasmtime_val
- * \brief Container for different kinds of wasm values.
- *
- * Note that this structure may contain an owned value, namely
- * #wasmtime_externref_t, depending on the context in which this is used. APIs
- * which consume a #wasmtime_val_t do not take ownership, but APIs that return
- * #wasmtime_val_t require that #wasmtime_val_delete is called to deallocate
- * the value.
- */
-typedef struct wasmtime_val {
- /// Discriminant of which field of #of is valid.
- wasmtime_valkind_t kind;
- /// Container for the extern item's value.
- wasmtime_valunion_t of;
-} wasmtime_val_t;
-
-/**
- * \brief Delets an owned #wasmtime_val_t.
- *
- * Note that this only deletes the contents, not the memory that `val` points to
- * itself (which is owned by the caller).
- */
-WASM_API_EXTERN void wasmtime_val_delete(wasmtime_val_t *val);
-
-/**
- * \brief Copies `src` into `dst`.
- */
-WASM_API_EXTERN void wasmtime_val_copy(wasmtime_val_t *dst, const wasmtime_val_t *src);
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif // WASMTIME_VAL_H
-
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/config.go b/vendor/github.com/bytecodealliance/wasmtime-go/v3/config.go
deleted file mode 100644
index 12907088..00000000
--- a/vendor/github.com/bytecodealliance/wasmtime-go/v3/config.go
+++ /dev/null
@@ -1,184 +0,0 @@
-package wasmtime
-
-// #include
-// #include
-// #include
-import "C"
-import (
- "runtime"
- "unsafe"
-)
-
-// Strategy is the compilation strategies for wasmtime
-type Strategy C.wasmtime_strategy_t
-
-const (
- // StrategyAuto will let wasmtime automatically pick an appropriate compilation strategy
- StrategyAuto Strategy = C.WASMTIME_STRATEGY_AUTO
- // StrategyCranelift will force wasmtime to use the Cranelift backend
- StrategyCranelift Strategy = C.WASMTIME_STRATEGY_CRANELIFT
-)
-
-// OptLevel decides what degree of optimization wasmtime will perform on generated machine code
-type OptLevel C.wasmtime_opt_level_t
-
-const (
- // OptLevelNone will perform no optimizations
- OptLevelNone OptLevel = C.WASMTIME_OPT_LEVEL_NONE
- // OptLevelSpeed will optimize machine code to be as fast as possible
- OptLevelSpeed OptLevel = C.WASMTIME_OPT_LEVEL_SPEED
- // OptLevelSpeedAndSize will optimize machine code for speed, but also optimize
- // to be small, sometimes at the cost of speed.
- OptLevelSpeedAndSize OptLevel = C.WASMTIME_OPT_LEVEL_SPEED_AND_SIZE
-)
-
-// ProfilingStrategy decides what sort of profiling to enable, if any.
-type ProfilingStrategy C.wasmtime_profiling_strategy_t
-
-const (
- // ProfilingStrategyNone means no profiler will be used
- ProfilingStrategyNone ProfilingStrategy = C.WASMTIME_PROFILING_STRATEGY_NONE
- // ProfilingStrategyJitdump will use the "jitdump" linux support
- ProfilingStrategyJitdump ProfilingStrategy = C.WASMTIME_PROFILING_STRATEGY_JITDUMP
-)
-
-// Config holds options used to create an Engine and customize its behavior.
-type Config struct {
- _ptr *C.wasm_config_t
-}
-
-// NewConfig creates a new `Config` with all default options configured.
-func NewConfig() *Config {
- config := &Config{_ptr: C.wasm_config_new()}
- runtime.SetFinalizer(config, func(config *Config) {
- C.wasm_config_delete(config._ptr)
- })
- return config
-}
-
-// SetDebugInfo configures whether dwarf debug information for JIT code is enabled
-func (cfg *Config) SetDebugInfo(enabled bool) {
- C.wasmtime_config_debug_info_set(cfg.ptr(), C.bool(enabled))
- runtime.KeepAlive(cfg)
-}
-
-// SetWasmThreads configures whether the wasm threads proposal is enabled
-func (cfg *Config) SetWasmThreads(enabled bool) {
- C.wasmtime_config_wasm_threads_set(cfg.ptr(), C.bool(enabled))
- runtime.KeepAlive(cfg)
-}
-
-// SetWasmReferenceTypes configures whether the wasm reference types proposal is enabled
-func (cfg *Config) SetWasmReferenceTypes(enabled bool) {
- C.wasmtime_config_wasm_reference_types_set(cfg.ptr(), C.bool(enabled))
- runtime.KeepAlive(cfg)
-}
-
-// SetWasmSIMD configures whether the wasm SIMD proposal is enabled
-func (cfg *Config) SetWasmSIMD(enabled bool) {
- C.wasmtime_config_wasm_simd_set(cfg.ptr(), C.bool(enabled))
- runtime.KeepAlive(cfg)
-}
-
-// SetWasmBulkMemory configures whether the wasm bulk memory proposal is enabled
-func (cfg *Config) SetWasmBulkMemory(enabled bool) {
- C.wasmtime_config_wasm_bulk_memory_set(cfg.ptr(), C.bool(enabled))
- runtime.KeepAlive(cfg)
-}
-
-// SetWasmMultiValue configures whether the wasm multi value proposal is enabled
-func (cfg *Config) SetWasmMultiValue(enabled bool) {
- C.wasmtime_config_wasm_multi_value_set(cfg.ptr(), C.bool(enabled))
- runtime.KeepAlive(cfg)
-}
-
-// SetWasmMultiMemory configures whether the wasm multi memory proposal is enabled
-func (cfg *Config) SetWasmMultiMemory(enabled bool) {
- C.wasmtime_config_wasm_multi_memory_set(cfg.ptr(), C.bool(enabled))
- runtime.KeepAlive(cfg)
-}
-
-// SetWasmMemory64 configures whether the wasm memory64 proposal is enabled
-func (cfg *Config) SetWasmMemory64(enabled bool) {
- C.wasmtime_config_wasm_memory64_set(cfg.ptr(), C.bool(enabled))
- runtime.KeepAlive(cfg)
-}
-
-// SetConsumFuel configures whether fuel is enabled
-func (cfg *Config) SetConsumeFuel(enabled bool) {
- C.wasmtime_config_consume_fuel_set(cfg.ptr(), C.bool(enabled))
- runtime.KeepAlive(cfg)
-}
-
-// SetStrategy configures what compilation strategy is used to compile wasm code
-func (cfg *Config) SetStrategy(strat Strategy) {
- C.wasmtime_config_strategy_set(cfg.ptr(), C.wasmtime_strategy_t(strat))
- runtime.KeepAlive(cfg)
-}
-
-// SetCraneliftDebugVerifier configures whether the cranelift debug verifier will be active when
-// cranelift is used to compile wasm code.
-func (cfg *Config) SetCraneliftDebugVerifier(enabled bool) {
- C.wasmtime_config_cranelift_debug_verifier_set(cfg.ptr(), C.bool(enabled))
- runtime.KeepAlive(cfg)
-}
-
-// SetCraneliftOptLevel configures the cranelift optimization level for generated code
-func (cfg *Config) SetCraneliftOptLevel(level OptLevel) {
- C.wasmtime_config_cranelift_opt_level_set(cfg.ptr(), C.wasmtime_opt_level_t(level))
- runtime.KeepAlive(cfg)
-}
-
-// SetProfiler configures what profiler strategy to use for generated code
-func (cfg *Config) SetProfiler(profiler ProfilingStrategy) {
- C.wasmtime_config_profiler_set(cfg.ptr(), C.wasmtime_profiling_strategy_t(profiler))
- runtime.KeepAlive(cfg)
-}
-
-// CacheConfigLoadDefault enables compiled code caching for this `Config` using the default settings
-// configuration can be found.
-//
-// For more information about caching see
-// https://bytecodealliance.github.io/wasmtime/cli-cache.html
-func (cfg *Config) CacheConfigLoadDefault() error {
- err := C.wasmtime_config_cache_config_load(cfg.ptr(), nil)
- runtime.KeepAlive(cfg)
- if err != nil {
- return mkError(err)
- }
- return nil
-}
-
-// CacheConfigLoad enables compiled code caching for this `Config` using the settings specified
-// in the configuration file `path`.
-//
-// For more information about caching and configuration options see
-// https://bytecodealliance.github.io/wasmtime/cli-cache.html
-func (cfg *Config) CacheConfigLoad(path string) error {
- cstr := C.CString(path)
- err := C.wasmtime_config_cache_config_load(cfg.ptr(), cstr)
- C.free(unsafe.Pointer(cstr))
- runtime.KeepAlive(cfg)
- if err != nil {
- return mkError(err)
- }
- return nil
-}
-
-// SetEpochInterruption enables epoch-based instrumentation of generated code to
-// interrupt WebAssembly execution when the current engine epoch exceeds a
-// defined threshold.
-func (cfg *Config) SetEpochInterruption(enable bool) {
- C.wasmtime_config_epoch_interruption_set(cfg.ptr(), C.bool(enable))
- runtime.KeepAlive(cfg)
-}
-
-// See comments in `ffi.go` for what's going on here
-func (cfg *Config) ptr() *C.wasm_config_t {
- ret := cfg._ptr
- maybeGC()
- if ret == nil {
- panic("Config has already been used up")
- }
- return ret
-}
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/doc.go b/vendor/github.com/bytecodealliance/wasmtime-go/v3/doc.go
deleted file mode 100644
index ef44184b..00000000
--- a/vendor/github.com/bytecodealliance/wasmtime-go/v3/doc.go
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
-Package wasmtime is a WebAssembly runtime for Go powered by Wasmtime.
-
-This package provides everything necessary to compile and execute WebAssembly
-modules as part of a Go program. Wasmtime is a JIT compiler written in Rust,
-and can be found at https://github.com/bytecodealliance/wasmtime. This package
-is a binding to the C API provided by Wasmtime.
-
-The API of this Go package is intended to mirror the Rust API
-(https://docs.rs/wasmtime) relatively closely, so if you find something is
-under-documented here then you may have luck consulting the Rust documentation
-as well. As always though feel free to file any issues at
-https://github.com/bytecodealliance/wasmtime-go/issues/new.
-
-It's also worth pointing out that the authors of this package up to this point
-primarily work in Rust, so if you've got suggestions of how to make this package
-more idiomatic for Go we'd love to hear your thoughts! */
-package wasmtime
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/engine.go b/vendor/github.com/bytecodealliance/wasmtime-go/v3/engine.go
deleted file mode 100644
index f3e5c1c5..00000000
--- a/vendor/github.com/bytecodealliance/wasmtime-go/v3/engine.go
+++ /dev/null
@@ -1,56 +0,0 @@
-package wasmtime
-
-// #include
-import "C"
-import (
- "runtime"
-)
-
-// Engine is an instance of a wasmtime engine which is used to create a `Store`.
-//
-// Engines are a form of global configuration for wasm compilations and modules
-// and such.
-type Engine struct {
- _ptr *C.wasm_engine_t
-}
-
-// NewEngine creates a new `Engine` with default configuration.
-func NewEngine() *Engine {
- engine := &Engine{_ptr: C.wasm_engine_new()}
- runtime.SetFinalizer(engine, func(engine *Engine) {
- C.wasm_engine_delete(engine._ptr)
- })
- return engine
-}
-
-// NewEngineWithConfig creates a new `Engine` with the `Config` provided
-//
-// Note that once a `Config` is passed to this method it cannot be used again.
-func NewEngineWithConfig(config *Config) *Engine {
- if config.ptr() == nil {
- panic("config already used")
- }
- engine := &Engine{_ptr: C.wasm_engine_new_with_config(config.ptr())}
- runtime.SetFinalizer(config, nil)
- config._ptr = nil
- runtime.SetFinalizer(engine, func(engine *Engine) {
- C.wasm_engine_delete(engine._ptr)
- })
- return engine
-}
-
-func (engine *Engine) ptr() *C.wasm_engine_t {
- ret := engine._ptr
- maybeGC()
- return ret
-}
-
-// IncrementEpoch will increase the current epoch number by 1 within the
-// current engine which will cause any connected stores with their epoch
-// deadline exceeded to now be interrupted.
-//
-// This method is safe to call from any goroutine.
-func (engine *Engine) IncrementEpoch() {
- C.wasmtime_engine_increment_epoch(engine.ptr())
- runtime.KeepAlive(engine)
-}
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/error.go b/vendor/github.com/bytecodealliance/wasmtime-go/v3/error.go
deleted file mode 100644
index 4f7d6666..00000000
--- a/vendor/github.com/bytecodealliance/wasmtime-go/v3/error.go
+++ /dev/null
@@ -1,42 +0,0 @@
-package wasmtime
-
-// #include
-import "C"
-import "runtime"
-
-type Error struct {
- _ptr *C.wasmtime_error_t
-}
-
-func mkError(ptr *C.wasmtime_error_t) *Error {
- err := &Error{_ptr: ptr}
- runtime.SetFinalizer(err, func(err *Error) {
- C.wasmtime_error_delete(err._ptr)
- })
- return err
-}
-
-func (e *Error) ptr() *C.wasmtime_error_t {
- ret := e._ptr
- maybeGC()
- return ret
-}
-
-func (e *Error) Error() string {
- message := C.wasm_byte_vec_t{}
- C.wasmtime_error_message(e.ptr(), &message)
- ret := C.GoStringN(message.data, C.int(message.size))
- runtime.KeepAlive(e)
- C.wasm_byte_vec_delete(&message)
- return ret
-}
-
-// ExitStatus returns an `int32` exit status if this was a WASI-defined exit
-// code. The `bool` returned indicates whether it was a WASI-defined exit or
-// not.
-func (e *Error) ExitStatus() (int32, bool) {
- status := C.int(0)
- ok := C.wasmtime_error_exit_status(e.ptr(), &status)
- runtime.KeepAlive(e)
- return int32(status), bool(ok)
-}
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/func.go b/vendor/github.com/bytecodealliance/wasmtime-go/v3/func.go
deleted file mode 100644
index 9759ec00..00000000
--- a/vendor/github.com/bytecodealliance/wasmtime-go/v3/func.go
+++ /dev/null
@@ -1,545 +0,0 @@
-package wasmtime
-
-// #include "shims.h"
-import "C"
-import (
- "errors"
- "reflect"
- "runtime"
- "unsafe"
-)
-
-// Func is a function instance, which is the runtime representation of a function.
-// It effectively is a closure of the original function over the runtime module instance of its originating module.
-// The module instance is used to resolve references to other definitions during execution of the function.
-// Read more in [spec](https://webassembly.github.io/spec/core/exec/runtime.html#function-instances)
-type Func struct {
- val C.wasmtime_func_t
-}
-
-// Caller is provided to host-defined functions when they're invoked from
-// WebAssembly.
-//
-// A `Caller` can be used for `Storelike` arguments to allow recursive execution
-// or creation of wasm objects. Additionally `Caller` can be used to learn about
-// the exports of the calling instance.
-type Caller struct {
- // Note that unlike other structures in these bindings this is named `ptr`
- // instead of `_ptr` because no finalizer is configured with `Caller` so it's
- // ok to access this raw value.
- ptr *C.wasmtime_caller_t
-}
-
-// NewFunc creates a new `Func` with the given `ty` which, when called, will call `f`
-//
-// The `ty` given is the wasm type signature of the `Func` to create. When called
-// the `f` callback receives two arguments. The first is a `Caller` to learn
-// information about the calling context and the second is a list of arguments
-// represented as a `Val`. The parameters are guaranteed to match the parameters
-// types specified in `ty`.
-//
-// The `f` callback is expected to produce one of two values. Results can be
-// returned as an array of `[]Val`. The number and types of these results much
-// match the `ty` given, otherwise the program will panic. The `f` callback can
-// also produce a trap which will trigger trap unwinding in wasm, and the trap
-// will be returned to the original caller.
-//
-// If the `f` callback panics then the panic will be propagated to the caller
-// as well.
-func NewFunc(
- store Storelike,
- ty *FuncType,
- f func(*Caller, []Val) ([]Val, *Trap),
-) *Func {
- idx := insertFuncNew(getDataInStore(store), ty, f)
-
- ret := C.wasmtime_func_t{}
- C.go_func_new(
- store.Context(),
- ty.ptr(),
- C.size_t(idx),
- 0,
- &ret,
- )
- runtime.KeepAlive(store)
- runtime.KeepAlive(ty)
-
- return mkFunc(ret)
-}
-
-//export goTrampolineNew
-func goTrampolineNew(
- callerPtr *C.wasmtime_caller_t,
- env C.size_t,
- argsPtr *C.wasmtime_val_t,
- argsNum C.size_t,
- resultsPtr *C.wasmtime_val_t,
- resultsNum C.size_t,
-) *C.wasm_trap_t {
- caller := &Caller{ptr: callerPtr}
- defer func() { caller.ptr = nil }()
- data := getDataInStore(caller)
- entry := data.getFuncNew(int(env))
-
- params := make([]Val, int(argsNum))
- var val C.wasmtime_val_t
- base := unsafe.Pointer(argsPtr)
- for i := 0; i < len(params); i++ {
- ptr := (*C.wasmtime_val_t)(unsafe.Pointer(uintptr(base) + uintptr(i)*unsafe.Sizeof(val)))
- params[i] = mkVal(ptr)
- }
-
- var results []Val
- var trap *Trap
- var lastPanic interface{}
- func() {
- defer func() { lastPanic = recover() }()
- results, trap = entry.callback(caller, params)
- if trap != nil {
- if trap._ptr == nil {
- panic("returned an already-returned trap")
- }
- return
- }
- if len(results) != len(entry.results) {
- panic("callback didn't produce the correct number of results")
- }
- for i, ty := range entry.results {
- if results[i].Kind() != ty.Kind() {
- panic("callback produced wrong type of result")
- }
- }
- }()
- if trap == nil && lastPanic != nil {
- data.lastPanic = lastPanic
- trap := NewTrap("go panicked")
- runtime.SetFinalizer(trap, nil)
- return trap.ptr()
- }
- if trap != nil {
- runtime.SetFinalizer(trap, nil)
- ret := trap.ptr()
- trap._ptr = nil
- return ret
- }
-
- base = unsafe.Pointer(resultsPtr)
- for i := 0; i < len(results); i++ {
- ptr := (*C.wasmtime_val_t)(unsafe.Pointer(uintptr(base) + uintptr(i)*unsafe.Sizeof(val)))
- C.wasmtime_val_copy(ptr, results[i].ptr())
- }
- runtime.KeepAlive(results)
- return nil
-}
-
-// WrapFunc wraps a native Go function, `f`, as a wasm `Func`.
-//
-// This function differs from `NewFunc` in that it will determine the type
-// signature of the wasm function given the input value `f`. The `f` value
-// provided must be a Go function. It may take any number of the following
-// types as arguments:
-//
-// `int32` - a wasm `i32`
-//
-// `int64` - a wasm `i64`
-//
-// `float32` - a wasm `f32`
-//
-// `float64` - a wasm `f64`
-//
-// `*Caller` - information about the caller's instance
-//
-// `*Func` - a wasm `funcref`
-//
-// anything else - a wasm `externref`
-//
-// The Go function may return any number of values. It can return any number of
-// primitive wasm values (integers/floats), and the last return value may
-// optionally be `*Trap`. If a `*Trap` returned is `nil` then the other values
-// are returned from the wasm function. Otherwise the `*Trap` is returned and
-// it's considered as if the host function trapped.
-//
-// If the function `f` panics then the panic will be propagated to the caller.
-func WrapFunc(
- store Storelike,
- f interface{},
-) *Func {
- val := reflect.ValueOf(f)
- wasmTy := inferFuncType(val)
- idx := insertFuncWrap(getDataInStore(store), val)
-
- ret := C.wasmtime_func_t{}
- C.go_func_new(
- store.Context(),
- wasmTy.ptr(),
- C.size_t(idx),
- 1, // this is `WrapFunc`, not `NewFunc`
- &ret,
- )
- runtime.KeepAlive(store)
- runtime.KeepAlive(wasmTy)
- return mkFunc(ret)
-}
-
-func inferFuncType(val reflect.Value) *FuncType {
- // Make sure the `interface{}` passed in was indeed a function
- ty := val.Type()
- if ty.Kind() != reflect.Func {
- panic("callback provided must be a `func`")
- }
-
- // infer the parameter types, and `*Caller` type is special in the
- // parameters so be sure to case on that as well.
- params := make([]*ValType, 0, ty.NumIn())
- var caller *Caller
- for i := 0; i < ty.NumIn(); i++ {
- paramTy := ty.In(i)
- if paramTy != reflect.TypeOf(caller) {
- params = append(params, typeToValType(paramTy))
- }
- }
-
- // Then infer the result types, where a final `*Trap` result value is
- // also special.
- results := make([]*ValType, 0, ty.NumOut())
- var trap *Trap
- for i := 0; i < ty.NumOut(); i++ {
- resultTy := ty.Out(i)
- if i == ty.NumOut()-1 && resultTy == reflect.TypeOf(trap) {
- continue
- }
- results = append(results, typeToValType(resultTy))
- }
- return NewFuncType(params, results)
-}
-
-func typeToValType(ty reflect.Type) *ValType {
- var a int32
- if ty == reflect.TypeOf(a) {
- return NewValType(KindI32)
- }
- var b int64
- if ty == reflect.TypeOf(b) {
- return NewValType(KindI64)
- }
- var c float32
- if ty == reflect.TypeOf(c) {
- return NewValType(KindF32)
- }
- var d float64
- if ty == reflect.TypeOf(d) {
- return NewValType(KindF64)
- }
- var f *Func
- if ty == reflect.TypeOf(f) {
- return NewValType(KindFuncref)
- }
- return NewValType(KindExternref)
-}
-
-//export goTrampolineWrap
-func goTrampolineWrap(
- callerPtr *C.wasmtime_caller_t,
- env C.size_t,
- argsPtr *C.wasmtime_val_t,
- argsNum C.size_t,
- resultsPtr *C.wasmtime_val_t,
- resultsNum C.size_t,
-) *C.wasm_trap_t {
- // Convert all our parameters to `[]reflect.Value`, taking special care
- // for `*Caller` but otherwise reading everything through `Val`.
- caller := &Caller{ptr: callerPtr}
- defer func() { caller.ptr = nil }()
- data := getDataInStore(caller)
- entry := data.getFuncWrap(int(env))
-
- ty := entry.callback.Type()
- params := make([]reflect.Value, ty.NumIn())
- base := unsafe.Pointer(argsPtr)
- var raw C.wasmtime_val_t
- for i := 0; i < len(params); i++ {
- if ty.In(i) == reflect.TypeOf(caller) {
- params[i] = reflect.ValueOf(caller)
- } else {
- ptr := (*C.wasmtime_val_t)(base)
- val := mkVal(ptr)
- params[i] = reflect.ValueOf(val.Get())
- base = unsafe.Pointer(uintptr(base) + unsafe.Sizeof(raw))
- }
- }
-
- // Invoke the function, catching any panics to propagate later. Panics
- // result in immediately returning a trap.
- var results []reflect.Value
- var lastPanic interface{}
- func() {
- defer func() { lastPanic = recover() }()
- results = entry.callback.Call(params)
- }()
- if lastPanic != nil {
- data.lastPanic = lastPanic
- trap := NewTrap("go panicked")
- runtime.SetFinalizer(trap, nil)
- return trap.ptr()
- }
-
- // And now we write all the results into memory depending on the type
- // of value that was returned.
- base = unsafe.Pointer(resultsPtr)
- for _, result := range results {
- ptr := (*C.wasmtime_val_t)(base)
- switch val := result.Interface().(type) {
- case int32:
- *ptr = *ValI32(val).ptr()
- case int64:
- *ptr = *ValI64(val).ptr()
- case float32:
- *ptr = *ValF32(val).ptr()
- case float64:
- *ptr = *ValF64(val).ptr()
- case *Func:
- *ptr = *ValFuncref(val).ptr()
- case *Trap:
- if val != nil {
- runtime.SetFinalizer(val, nil)
- ret := val._ptr
- val._ptr = nil
- if ret == nil {
- data.lastPanic = "cannot return trap twice"
- return nil
- } else {
- return ret
- }
- }
- default:
- raw := ValExternref(val)
- C.wasmtime_val_copy(ptr, raw.ptr())
- runtime.KeepAlive(raw)
- }
- base = unsafe.Pointer(uintptr(base) + unsafe.Sizeof(raw))
- }
- return nil
-}
-
-func mkFunc(val C.wasmtime_func_t) *Func {
- return &Func{val}
-}
-
-// Type returns the type of this func
-func (f *Func) Type(store Storelike) *FuncType {
- ptr := C.wasmtime_func_type(store.Context(), &f.val)
- runtime.KeepAlive(store)
- return mkFuncType(ptr, nil)
-}
-
-// Call invokes this function with the provided `args`.
-//
-// This variadic function must be invoked with the correct number and type of
-// `args` as specified by the type of this function. This property is checked
-// at runtime. Each `args` may have one of the following types:
-//
-// `int32` - a wasm `i32`
-//
-// `int64` - a wasm `i64`
-//
-// `float32` - a wasm `f32`
-//
-// `float64` - a wasm `f64`
-//
-// `Val` - correspond to a wasm value
-//
-// `*Func` - a wasm `funcref`
-//
-// anything else - a wasm `externref`
-//
-// This function will have one of three results:
-//
-// 1. If the function returns successfully, then the `interface{}` return
-// argument will be the result of the function. If there were 0 results then
-// this value is `nil`. If there was one result then this is that result.
-// Otherwise if there were multiple results then `[]Val` is returned.
-//
-// 2. If this function invocation traps, then the returned `interface{}` value
-// will be `nil` and a non-`nil` `*Trap` will be returned with information
-// about the trap that happened.
-//
-// 3. If a panic in Go ends up happening somewhere, then this function will
-// panic.
-func (f *Func) Call(store Storelike, args ...interface{}) (interface{}, error) {
- ty := f.Type(store)
- params := ty.Params()
- if len(args) > len(params) {
- return nil, errors.New("too many arguments provided")
- }
- paramVals := make([]C.wasmtime_val_t, len(args))
- var externrefs []Val
- for i, param := range args {
- dst := ¶mVals[i]
- switch val := param.(type) {
- case int:
- switch params[i].Kind() {
- case KindI32:
- dst.kind = C.WASMTIME_I32
- C.go_wasmtime_val_i32_set(dst, C.int32_t(val))
- case KindI64:
- dst.kind = C.WASMTIME_I64
- C.go_wasmtime_val_i64_set(dst, C.int64_t(val))
- default:
- return nil, errors.New("integer provided for non-integer argument")
- }
- case int32:
- dst.kind = C.WASMTIME_I32
- C.go_wasmtime_val_i32_set(dst, C.int32_t(val))
- case int64:
- dst.kind = C.WASMTIME_I64
- C.go_wasmtime_val_i64_set(dst, C.int64_t(val))
- case float32:
- dst.kind = C.WASMTIME_F32
- C.go_wasmtime_val_f32_set(dst, C.float(val))
- case float64:
- dst.kind = C.WASMTIME_F64
- C.go_wasmtime_val_f64_set(dst, C.double(val))
- case *Func:
- dst.kind = C.WASMTIME_FUNCREF
- C.go_wasmtime_val_funcref_set(dst, val.val)
- case Val:
- *dst = *val.ptr()
-
- default:
- externref := ValExternref(val)
- externrefs = append(externrefs, externref)
- *dst = *externref.ptr()
- }
-
- }
-
- resultVals := make([]C.wasmtime_val_t, len(ty.Results()))
-
- err := enterWasm(store, func(trap **C.wasm_trap_t) *C.wasmtime_error_t {
- var paramsPtr *C.wasmtime_val_t
- if len(paramVals) > 0 {
- paramsPtr = (*C.wasmtime_val_t)(unsafe.Pointer(¶mVals[0]))
- }
- var resultsPtr *C.wasmtime_val_t
- if len(resultVals) > 0 {
- resultsPtr = (*C.wasmtime_val_t)(unsafe.Pointer(&resultVals[0]))
- }
- return C.wasmtime_func_call(
- store.Context(),
- &f.val,
- paramsPtr,
- C.size_t(len(paramVals)),
- resultsPtr,
- C.size_t(len(resultVals)),
- trap,
- )
- })
- runtime.KeepAlive(store)
- runtime.KeepAlive(args)
- runtime.KeepAlive(resultVals)
- runtime.KeepAlive(paramVals)
- runtime.KeepAlive(externrefs)
-
- if err != nil {
- return nil, err
- }
-
- if len(resultVals) == 0 {
- return nil, nil
- } else if len(resultVals) == 1 {
- ret := takeVal(&resultVals[0]).Get()
- return ret, nil
- } else {
- results := make([]Val, len(resultVals))
- for i := 0; i < len(results); i++ {
- results[i] = takeVal(&resultVals[i])
- }
- return results, nil
- }
-
-}
-
-// Implementation of the `AsExtern` interface for `Func`
-func (f *Func) AsExtern() C.wasmtime_extern_t {
- ret := C.wasmtime_extern_t{kind: C.WASMTIME_EXTERN_FUNC}
- C.go_wasmtime_extern_func_set(&ret, f.val)
- return ret
-}
-
-// GetExport gets an exported item from the caller's module.
-//
-// May return `nil` if the export doesn't, if it's not a memory, if there isn't
-// a caller, etc.
-func (c *Caller) GetExport(name string) *Extern {
- if c.ptr == nil {
- return nil
- }
- var ret C.wasmtime_extern_t
- ok := C.wasmtime_caller_export_get(
- c.ptr,
- C._GoStringPtr(name),
- C._GoStringLen(name),
- &ret,
- )
- runtime.KeepAlive(name)
- runtime.KeepAlive(c)
- if ok {
- return mkExtern(&ret)
- }
- return nil
-
-}
-
-// Implementation of the `Storelike` interface for `Caller`.
-func (c *Caller) Context() *C.wasmtime_context_t {
- if c.ptr == nil {
- panic("cannot use caller after host function returns")
- }
- return C.wasmtime_caller_context(c.ptr)
-}
-
-// Shim function that's expected to wrap any invocations of WebAssembly from Go
-// itself.
-//
-// This is used to handle traps and error returns from any invocation of
-// WebAssembly. This will also automatically propagate panics that happen within
-// Go from one end back to this original invocation point.
-//
-// The `store` object is the context being used for the invocation, and `wasm`
-// is the closure which will internally execute WebAssembly. A trap pointer is
-// provided to the closure and it's expected that the closure returns an error.
-func enterWasm(store Storelike, wasm func(**C.wasm_trap_t) *C.wasmtime_error_t) error {
- // Load the internal `storeData` that our `store` references, which is
- // used for handling panics which we are going to use here.
- data := getDataInStore(store)
-
- var trap *C.wasm_trap_t
- err := wasm(&trap)
-
- // Take ownership of any returned values to ensure we properly run
- // destructors for them.
- var wrappedTrap *Trap
- var wrappedError error
- if trap != nil {
- wrappedTrap = mkTrap(trap)
- }
- if err != nil {
- wrappedError = mkError(err)
- }
-
- // Check to see if wasm panicked, and if it did then we need to
- // propagate that. Note that this happens after we take ownership of
- // return values to ensure they're cleaned up properly.
- if data.lastPanic != nil {
- lastPanic := data.lastPanic
- data.lastPanic = nil
- panic(lastPanic)
- }
-
- // If there wasn't a panic then we determine whether to return the trap
- // or the error.
- if wrappedTrap != nil {
- return wrappedTrap
- }
- return wrappedError
-}
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/includebuild.go b/vendor/github.com/bytecodealliance/wasmtime-go/v3/includebuild.go
deleted file mode 100644
index 6b234afc..00000000
--- a/vendor/github.com/bytecodealliance/wasmtime-go/v3/includebuild.go
+++ /dev/null
@@ -1,22 +0,0 @@
-//go:build includebuild
-// +build includebuild
-
-package wasmtime
-
-// This file is not built and not included in BUILD.bazel;
-// it is only used to prevent "go mod vendor" to prune the
-// build directory.
-
-import (
- // Import these build directories in order to have them
- // included in vendored dependencies.
- // Cf. https://github.com/golang/go/issues/26366
-
- _ "github.com/bytecodealliance/wasmtime-go/v3/build/include"
- _ "github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime"
- _ "github.com/bytecodealliance/wasmtime-go/v3/build/linux-aarch64"
- _ "github.com/bytecodealliance/wasmtime-go/v3/build/linux-x86_64"
- _ "github.com/bytecodealliance/wasmtime-go/v3/build/macos-aarch64"
- _ "github.com/bytecodealliance/wasmtime-go/v3/build/macos-x86_64"
- _ "github.com/bytecodealliance/wasmtime-go/v3/build/windows-x86_64"
-)
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/memory.go b/vendor/github.com/bytecodealliance/wasmtime-go/v3/memory.go
deleted file mode 100644
index 4b0d1fd6..00000000
--- a/vendor/github.com/bytecodealliance/wasmtime-go/v3/memory.go
+++ /dev/null
@@ -1,97 +0,0 @@
-package wasmtime
-
-// #include "shims.h"
-import "C"
-import (
- "runtime"
- "unsafe"
-)
-
-// Memory instance is the runtime representation of a linear memory.
-// It holds a vector of bytes and an optional maximum size, if one was specified at the definition site of the memory.
-// Read more in [spec](https://webassembly.github.io/spec/core/exec/runtime.html#memory-instances)
-// In wasmtime-go, you can get the vector of bytes by the unsafe pointer of memory from `Memory.Data()`, or go style byte slice from `Memory.UnsafeData()`
-type Memory struct {
- val C.wasmtime_memory_t
-}
-
-// NewMemory creates a new `Memory` in the given `Store` with the specified `ty`.
-func NewMemory(store Storelike, ty *MemoryType) (*Memory, error) {
- var ret C.wasmtime_memory_t
- err := C.wasmtime_memory_new(store.Context(), ty.ptr(), &ret)
- runtime.KeepAlive(store)
- runtime.KeepAlive(ty)
- if err != nil {
- return nil, mkError(err)
- }
- return mkMemory(ret), nil
-}
-
-func mkMemory(val C.wasmtime_memory_t) *Memory {
- return &Memory{val}
-}
-
-// Type returns the type of this memory
-func (mem *Memory) Type(store Storelike) *MemoryType {
- ptr := C.wasmtime_memory_type(store.Context(), &mem.val)
- runtime.KeepAlive(store)
- return mkMemoryType(ptr, nil)
-}
-
-// Data returns the raw pointer in memory of where this memory starts
-func (mem *Memory) Data(store Storelike) unsafe.Pointer {
- ret := unsafe.Pointer(C.wasmtime_memory_data(store.Context(), &mem.val))
- runtime.KeepAlive(store)
- return ret
-}
-
-// UnsafeData returns the raw memory backed by this `Memory` as a byte slice (`[]byte`).
-//
-// This is not a safe method to call, hence the "unsafe" in the name. The byte
-// slice returned from this function is not managed by the Go garbage collector.
-// You need to ensure that `m`, the original `Memory`, lives longer than the
-// `[]byte` returned.
-//
-// Note that you may need to use `runtime.KeepAlive` to keep the original memory
-// `m` alive for long enough while you're using the `[]byte` slice. If the
-// `[]byte` slice is used after `m` is GC'd then that is undefined behavior.
-func (mem *Memory) UnsafeData(store Storelike) []byte {
- // see https://github.com/golang/go/wiki/cgo#turning-c-arrays-into-go-slices
- const MaxLen = 1 << 32
- length := mem.DataSize(store)
- if length >= MaxLen {
- panic("memory is too big")
- }
- return (*[MaxLen]byte)(mem.Data(store))[:length:length]
-}
-
-// DataSize returns the size, in bytes, that `Data()` is valid for
-func (mem *Memory) DataSize(store Storelike) uintptr {
- ret := uintptr(C.wasmtime_memory_data_size(store.Context(), &mem.val))
- runtime.KeepAlive(store)
- return ret
-}
-
-// Size returns the size, in wasm pages, of this memory
-func (mem *Memory) Size(store Storelike) uint64 {
- ret := uint64(C.wasmtime_memory_size(store.Context(), &mem.val))
- runtime.KeepAlive(store)
- return ret
-}
-
-// Grow grows this memory by `delta` pages
-func (mem *Memory) Grow(store Storelike, delta uint64) (uint64, error) {
- prev := C.uint64_t(0)
- err := C.wasmtime_memory_grow(store.Context(), &mem.val, C.uint64_t(delta), &prev)
- runtime.KeepAlive(store)
- if err != nil {
- return 0, mkError(err)
- }
- return uint64(prev), nil
-}
-
-func (mem *Memory) AsExtern() C.wasmtime_extern_t {
- ret := C.wasmtime_extern_t{kind: C.WASMTIME_EXTERN_MEMORY}
- C.go_wasmtime_extern_memory_set(&ret, mem.val)
- return ret
-}
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/memorytype.go b/vendor/github.com/bytecodealliance/wasmtime-go/v3/memorytype.go
deleted file mode 100644
index 3a5b7d6c..00000000
--- a/vendor/github.com/bytecodealliance/wasmtime-go/v3/memorytype.go
+++ /dev/null
@@ -1,98 +0,0 @@
-package wasmtime
-
-// #include
-import "C"
-import "runtime"
-
-// MemoryType is one of Memory types which classify linear memories and their size range.
-// The limits constrain the minimum and optionally the maximum size of a memory. The limits are given in units of page size.
-type MemoryType struct {
- _ptr *C.wasm_memorytype_t
- _owner interface{}
-}
-
-// NewMemoryType creates a new `MemoryType` with the limits on size provided
-//
-// The `min` value is the minimum size, in WebAssembly pages, of this memory.
-// The `has_max` boolean indicates whether a maximum size is present, and if so
-// `max` is used as the maximum size of memory, in wasm pages.
-//
-// Note that this will create a 32-bit memory type, the default outside of the
-// memory64 proposal.
-func NewMemoryType(min uint32, has_max bool, max uint32) *MemoryType {
- if min > (1<<16) || max > (1<<16) {
- panic("provided sizes are too large")
- }
- ptr := C.wasmtime_memorytype_new(C.uint64_t(min), C._Bool(has_max), C.uint64_t(max), false)
- return mkMemoryType(ptr, nil)
-}
-
-// NewMemoryType64 creates a new 64-bit `MemoryType` with the provided limits
-//
-// The `min` value is the minimum size, in WebAssembly pages, of this memory.
-// The `has_max` boolean indicates whether a maximum size is present, and if so
-// `max` is used as the maximum size of memory, in wasm pages.
-//
-// Note that 64-bit memories are part of the memory64 WebAssembly proposal.
-func NewMemoryType64(min uint64, has_max bool, max uint64) *MemoryType {
- if min > (1<<48) || max > (1<<48) {
- panic("provided sizes are too large")
- }
- ptr := C.wasmtime_memorytype_new(C.uint64_t(min), C._Bool(has_max), C.uint64_t(max), true)
- return mkMemoryType(ptr, nil)
-}
-
-func mkMemoryType(ptr *C.wasm_memorytype_t, owner interface{}) *MemoryType {
- memorytype := &MemoryType{_ptr: ptr, _owner: owner}
- if owner == nil {
- runtime.SetFinalizer(memorytype, func(memorytype *MemoryType) {
- C.wasm_memorytype_delete(memorytype._ptr)
- })
- }
- return memorytype
-}
-
-func (ty *MemoryType) ptr() *C.wasm_memorytype_t {
- ret := ty._ptr
- maybeGC()
- return ret
-}
-
-func (ty *MemoryType) owner() interface{} {
- if ty._owner != nil {
- return ty._owner
- }
- return ty
-}
-
-// Minimum returns the minimum size of this memory, in WebAssembly pages
-func (ty *MemoryType) Minimum() uint64 {
- ret := C.wasmtime_memorytype_minimum(ty.ptr())
- runtime.KeepAlive(ty)
- return uint64(ret)
-}
-
-// Maximum returns the maximum size of this memory, in WebAssembly pages, if
-// specified.
-//
-// If the maximum size is not specified then `(false, 0)` is returned, otherwise
-// `(true, N)` is returned where `N` is the listed maximum size of this memory.
-func (ty *MemoryType) Maximum() (bool, uint64) {
- size := C.uint64_t(0)
- present := C.wasmtime_memorytype_maximum(ty.ptr(), &size)
- runtime.KeepAlive(ty)
- return bool(present), uint64(size)
-}
-
-// Is64 returns whether this is a 64-bit memory or not.
-func (ty *MemoryType) Is64() bool {
- ok := C.wasmtime_memorytype_is64(ty.ptr())
- runtime.KeepAlive(ty)
- return bool(ok)
-}
-
-// AsExternType converts this type to an instance of `ExternType`
-func (ty *MemoryType) AsExternType() *ExternType {
- ptr := C.wasm_memorytype_as_externtype_const(ty.ptr())
- return mkExternType(ptr, ty.owner())
-}
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/store.go b/vendor/github.com/bytecodealliance/wasmtime-go/v3/store.go
deleted file mode 100644
index 7dc8c59f..00000000
--- a/vendor/github.com/bytecodealliance/wasmtime-go/v3/store.go
+++ /dev/null
@@ -1,288 +0,0 @@
-package wasmtime
-
-// #include
-// #include "shims.h"
-import "C"
-import (
- "reflect"
- "runtime"
- "sync"
- "unsafe"
-)
-
-// Store is a general group of wasm instances, and many objects
-// must all be created with and reference the same `Store`
-type Store struct {
- _ptr *C.wasmtime_store_t
-
- // The `Engine` that this store uses for compilation and environment
- // settings.
- Engine *Engine
-}
-
-// Storelike represents types that can be used to contextually reference a
-// `Store`.
-//
-// This interface is implemented by `*Store` and `*Caller` and is pervasively
-// used throughout this library. You'll want to pass one of those two objects
-// into functions that take a `Storelike`.
-type Storelike interface {
- // Returns the wasmtime context pointer this store is attached to.
- Context() *C.wasmtime_context_t
-}
-
-var gStoreLock sync.Mutex
-var gStoreMap = make(map[int]*storeData)
-var gStoreSlab slab
-
-// State associated with a `Store`, currently used to propagate panic
-// information through invocations as well as store Go closures that have been
-// added to the store.
-type storeData struct {
- engine *Engine
- funcNew []funcNewEntry
- funcWrap []funcWrapEntry
- lastPanic interface{}
-}
-
-type funcNewEntry struct {
- callback func(*Caller, []Val) ([]Val, *Trap)
- results []*ValType
-}
-
-type funcWrapEntry struct {
- callback reflect.Value
-}
-
-// NewStore creates a new `Store` from the configuration provided in `engine`
-func NewStore(engine *Engine) *Store {
- // Allocate an index for this store and allocate some internal data to go with
- // the store.
- gStoreLock.Lock()
- idx := gStoreSlab.allocate()
- gStoreMap[idx] = &storeData{engine: engine}
- gStoreLock.Unlock()
-
- ptr := C.go_store_new(engine.ptr(), C.size_t(idx))
- store := &Store{
- _ptr: ptr,
- Engine: engine,
- }
- runtime.SetFinalizer(store, func(store *Store) {
- C.wasmtime_store_delete(store._ptr)
- })
- return store
-}
-
-//export goFinalizeStore
-func goFinalizeStore(env unsafe.Pointer) {
- // When a store is finalized this is used as the finalization callback for the
- // custom data within the store, and our finalization here will delete the
- // store's data from the global map and deallocate its index to get reused by
- // a future store.
- idx := int(uintptr(env))
- gStoreLock.Lock()
- defer gStoreLock.Unlock()
- delete(gStoreMap, idx)
- gStoreSlab.deallocate(idx)
-}
-
-// GC will clean up any `externref` values that are no longer actually
-// referenced.
-//
-// This function is not required to be called for correctness, it's only an
-// optimization if desired to clean out any extra `externref` values.
-func (store *Store) GC() {
- C.wasmtime_context_gc(store.Context())
- runtime.KeepAlive(store)
-}
-
-// SetWasi will configure the WASI state to use for instances within this
-// `Store`.
-//
-// The `wasi` argument cannot be reused for another `Store`, it's consumed by
-// this function.
-func (store *Store) SetWasi(wasi *WasiConfig) {
- runtime.SetFinalizer(wasi, nil)
- ptr := wasi.ptr()
- wasi._ptr = nil
- if ptr == nil {
- panic("reuse of already-consumed WasiConfig")
- }
- C.wasmtime_context_set_wasi(store.Context(), ptr)
- runtime.KeepAlive(store)
-}
-
-// Implementation of the `Storelike` interface
-func (store *Store) Context() *C.wasmtime_context_t {
- ret := C.wasmtime_store_context(store._ptr)
- maybeGC()
- return ret
-}
-
-// SetEpochDeadline will configure the relative deadline, from the current
-// engine's epoch number, after which wasm code will be interrupted.
-func (store *Store) SetEpochDeadline(deadline uint64) {
- C.wasmtime_context_set_epoch_deadline(store.Context(), C.uint64_t(deadline))
- runtime.KeepAlive(store)
-}
-
-// Returns the underlying `*storeData` that this store references in Go, used
-// for inserting functions or storing panic data.
-func getDataInStore(store Storelike) *storeData {
- data := uintptr(C.wasmtime_context_get_data(store.Context()))
- gStoreLock.Lock()
- defer gStoreLock.Unlock()
- return gStoreMap[int(data)]
-}
-
-var gEngineFuncLock sync.Mutex
-var gEngineFuncNew = make(map[int]*funcNewEntry)
-var gEngineFuncNewSlab slab
-var gEngineFuncWrap = make(map[int]*funcWrapEntry)
-var gEngineFuncWrapSlab slab
-
-func insertFuncNew(data *storeData, ty *FuncType, callback func(*Caller, []Val) ([]Val, *Trap)) int {
- var idx int
- entry := funcNewEntry{
- callback: callback,
- results: ty.Results(),
- }
- if data == nil {
- gEngineFuncLock.Lock()
- defer gEngineFuncLock.Unlock()
- idx = gEngineFuncNewSlab.allocate()
- gEngineFuncNew[idx] = &entry
- idx = (idx << 1)
- } else {
- idx = len(data.funcNew)
- data.funcNew = append(data.funcNew, entry)
- idx = (idx << 1) | 1
- }
- return idx
-}
-
-func (data *storeData) getFuncNew(idx int) *funcNewEntry {
- if idx&1 == 0 {
- gEngineFuncLock.Lock()
- defer gEngineFuncLock.Unlock()
- return gEngineFuncNew[idx>>1]
- } else {
- return &data.funcNew[idx>>1]
- }
-}
-
-func insertFuncWrap(data *storeData, callback reflect.Value) int {
- var idx int
- entry := funcWrapEntry{callback}
- if data == nil {
- gEngineFuncLock.Lock()
- defer gEngineFuncLock.Unlock()
- idx = gEngineFuncWrapSlab.allocate()
- gEngineFuncWrap[idx] = &entry
- idx = (idx << 1)
- } else {
- idx = len(data.funcWrap)
- data.funcWrap = append(data.funcWrap, entry)
- idx = (idx << 1) | 1
- }
- return idx
-
-}
-
-func (data *storeData) getFuncWrap(idx int) *funcWrapEntry {
- if idx&1 == 0 {
- gEngineFuncLock.Lock()
- defer gEngineFuncLock.Unlock()
- return gEngineFuncWrap[idx>>1]
- } else {
- return &data.funcWrap[idx>>1]
- }
-}
-
-//export goFinalizeFuncNew
-func goFinalizeFuncNew(env unsafe.Pointer) {
- idx := int(uintptr(env))
- if idx&1 != 0 {
- panic("shouldn't finalize a store-local index")
- }
- idx = idx >> 1
- gEngineFuncLock.Lock()
- defer gEngineFuncLock.Unlock()
- delete(gEngineFuncNew, idx)
- gEngineFuncNewSlab.deallocate(idx)
-
-}
-
-//export goFinalizeFuncWrap
-func goFinalizeFuncWrap(env unsafe.Pointer) {
- idx := int(uintptr(env))
- if idx&1 != 0 {
- panic("shouldn't finalize a store-local index")
- }
- idx = idx >> 1
- gEngineFuncLock.Lock()
- defer gEngineFuncLock.Unlock()
- delete(gEngineFuncWrap, idx)
- gEngineFuncWrapSlab.deallocate(idx)
-}
-
-// FuelConsumed returns the amount of fuel consumed by this context's store
-// execution so far.
-//
-// If fuel consumption is not enabled via `Config.SetConsumeFuel` then this function
-// will return false. Otherwise true is returned and the fuel parameter is
-// filled in with fuel consumed so far.
-//
-// Also note that fuel, if enabled, must be originally configured via `Store.AddFuel`.
-func (store *Store) FuelConsumed() (uint64, bool) {
- fuel := C.uint64_t(0)
- enable := C.wasmtime_context_fuel_consumed(store.Context(), &fuel)
- runtime.KeepAlive(store)
-
- return uint64(fuel), bool(enable)
-}
-
-// AddFuel adds fuel to this context's store for wasm to consume while executing.
-//
-// For this method to work fuel consumption must be enabled via
-// `Config.SetConsumeFuel`. By default a store starts with 0 fuel
-// for wasm to execute with (meaning it will immediately trap).
-// This function must be called for the store to have
-// some fuel to allow WebAssembly to execute.
-//
-// Note that at this time when fuel is entirely consumed it will cause
-// wasm to trap. More usages of fuel are planned for the future.
-//
-// If fuel is not enabled within this store then an error is returned.
-func (store *Store) AddFuel(fuel uint64) error {
- err := C.wasmtime_context_add_fuel(store.Context(), C.uint64_t(fuel))
- runtime.KeepAlive(store)
- if err != nil {
- return mkError(err)
- }
-
- return nil
-}
-
-// ConsumeFuel attempts to manually consume fuel from the store.
-//
-// If fuel consumption is not enabled via `Config.SetConsumeFuel` then
-// this function will return an error. Otherwise this will attempt to consume
-// the specified amount of `fuel` from the store. If successful the remaining
-// amount of fuel is returned. If `fuel` couldn't be consumed
-// then an error is returned.
-//
-// Also note that fuel, if enabled, must be originally configured via
-// `Store.AddFuel`.
-func (store *Store) ConsumeFuel(fuel uint64) (uint64, error) {
- var remaining uint64
- c_remaining := C.uint64_t(remaining)
- err := C.wasmtime_context_consume_fuel(store.Context(), C.uint64_t(fuel), &c_remaining)
- runtime.KeepAlive(store)
- if err != nil {
- return 0, mkError(err)
- }
-
- return uint64(c_remaining), nil
-}
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/table.go b/vendor/github.com/bytecodealliance/wasmtime-go/v3/table.go
deleted file mode 100644
index c0804fa2..00000000
--- a/vendor/github.com/bytecodealliance/wasmtime-go/v3/table.go
+++ /dev/null
@@ -1,103 +0,0 @@
-package wasmtime
-
-// #include "shims.h"
-import "C"
-import (
- "errors"
- "runtime"
-)
-
-// Table is a table instance, which is the runtime representation of a table.
-//
-// It holds a vector of reference types and an optional maximum size, if one was
-// specified in the table type at the table’s definition site.
-// Read more in [spec](https://webassembly.github.io/spec/core/exec/runtime.html#table-instances)
-type Table struct {
- val C.wasmtime_table_t
-}
-
-// NewTable creates a new `Table` in the given `Store` with the specified `ty`.
-//
-// The `ty` must be a reference type (`funref` or `externref`) and `init`
-// is the initial value for all table slots and must have the type specified by
-// `ty`.
-func NewTable(store Storelike, ty *TableType, init Val) (*Table, error) {
- var ret C.wasmtime_table_t
- err := C.wasmtime_table_new(store.Context(), ty.ptr(), init.ptr(), &ret)
- runtime.KeepAlive(store)
- runtime.KeepAlive(ty)
- runtime.KeepAlive(init)
- if err != nil {
- return nil, mkError(err)
- }
- return mkTable(ret), nil
-}
-
-func mkTable(val C.wasmtime_table_t) *Table {
- return &Table{val}
-}
-
-// Size returns the size of this table in units of elements.
-func (t *Table) Size(store Storelike) uint32 {
- ret := C.wasmtime_table_size(store.Context(), &t.val)
- runtime.KeepAlive(store)
- return uint32(ret)
-}
-
-// Grow grows this table by the number of units specified, using the
-// specified initializer value for new slots.
-//
-// Returns an error if the table failed to grow, or the previous size of the
-// table if growth was successful.
-func (t *Table) Grow(store Storelike, delta uint32, init Val) (uint32, error) {
- var prev C.uint32_t
- err := C.wasmtime_table_grow(store.Context(), &t.val, C.uint32_t(delta), init.ptr(), &prev)
- runtime.KeepAlive(store)
- runtime.KeepAlive(init)
- if err != nil {
- return 0, mkError(err)
- }
-
- return uint32(prev), nil
-}
-
-// Get gets an item from this table from the specified index.
-//
-// Returns an error if the index is out of bounds, or returns a value (which
-// may be internally null) if the index is in bounds corresponding to the entry
-// at the specified index.
-func (t *Table) Get(store Storelike, idx uint32) (Val, error) {
- var val C.wasmtime_val_t
- ok := C.wasmtime_table_get(store.Context(), &t.val, C.uint32_t(idx), &val)
- runtime.KeepAlive(store)
- if !ok {
- return Val{}, errors.New("index out of bounds")
- }
- return takeVal(&val), nil
-}
-
-// Set sets an item in this table at the specified index.
-//
-// Returns an error if the index is out of bounds.
-func (t *Table) Set(store Storelike, idx uint32, val Val) error {
- err := C.wasmtime_table_set(store.Context(), &t.val, C.uint32_t(idx), val.ptr())
- runtime.KeepAlive(store)
- runtime.KeepAlive(val)
- if err != nil {
- return mkError(err)
- }
- return nil
-}
-
-// Type returns the underlying type of this table
-func (t *Table) Type(store Storelike) *TableType {
- ptr := C.wasmtime_table_type(store.Context(), &t.val)
- runtime.KeepAlive(store)
- return mkTableType(ptr, nil)
-}
-
-func (t *Table) AsExtern() C.wasmtime_extern_t {
- ret := C.wasmtime_extern_t{kind: C.WASMTIME_EXTERN_TABLE}
- C.go_wasmtime_extern_table_set(&ret, t.val)
- return ret
-}
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/val.go b/vendor/github.com/bytecodealliance/wasmtime-go/v3/val.go
deleted file mode 100644
index bdb8dadd..00000000
--- a/vendor/github.com/bytecodealliance/wasmtime-go/v3/val.go
+++ /dev/null
@@ -1,223 +0,0 @@
-package wasmtime
-
-// #include
-// #include "shims.h"
-import "C"
-import (
- "runtime"
- "sync"
- "unsafe"
-)
-
-var gExternrefLock sync.Mutex
-var gExternrefMap = make(map[int]interface{})
-var gExternrefSlab slab
-
-// Val is a primitive numeric value.
-// Moreover, in the definition of programs, immutable sequences of values occur to represent more complex data, such as text strings or other vectors.
-type Val struct {
- _raw *C.wasmtime_val_t
-}
-
-// ValI32 converts a go int32 to a i32 Val
-func ValI32(val int32) Val {
- ret := Val{_raw: &C.wasmtime_val_t{kind: C.WASMTIME_I32}}
- C.go_wasmtime_val_i32_set(ret.ptr(), C.int32_t(val))
- return ret
-}
-
-// ValI64 converts a go int64 to a i64 Val
-func ValI64(val int64) Val {
- ret := Val{_raw: &C.wasmtime_val_t{kind: C.WASMTIME_I64}}
- C.go_wasmtime_val_i64_set(ret.ptr(), C.int64_t(val))
- return ret
-}
-
-// ValF32 converts a go float32 to a f32 Val
-func ValF32(val float32) Val {
- ret := Val{_raw: &C.wasmtime_val_t{kind: C.WASMTIME_F32}}
- C.go_wasmtime_val_f32_set(ret.ptr(), C.float(val))
- return ret
-}
-
-// ValF64 converts a go float64 to a f64 Val
-func ValF64(val float64) Val {
- ret := Val{_raw: &C.wasmtime_val_t{kind: C.WASMTIME_F64}}
- C.go_wasmtime_val_f64_set(ret.ptr(), C.double(val))
- return ret
-}
-
-// ValFuncref converts a Func to a funcref Val
-//
-// Note that `f` can be `nil` to represent a null `funcref`.
-func ValFuncref(f *Func) Val {
- ret := Val{_raw: &C.wasmtime_val_t{kind: C.WASMTIME_FUNCREF}}
- if f != nil {
- C.go_wasmtime_val_funcref_set(ret.ptr(), f.val)
- }
- return ret
-}
-
-// ValExternref converts a go value to a externref Val
-//
-// Using `externref` is a way to pass arbitrary Go data into a WebAssembly
-// module for it to store. Later, when you get a `Val`, you can extract the type
-// with the `Externref()` method.
-func ValExternref(val interface{}) Val {
- ret := Val{_raw: &C.wasmtime_val_t{kind: C.WASMTIME_EXTERNREF}}
-
- // If we have a non-nil value then store it in our global map of all
- // externref values. Otherwise there's nothing for us to do since the
- // `ref` field will already be a nil pointer.
- //
- // Note that we add 1 so all non-null externref values are created with
- // non-null pointers.
- if val != nil {
- gExternrefLock.Lock()
- defer gExternrefLock.Unlock()
- index := gExternrefSlab.allocate()
- gExternrefMap[index] = val
- ptr := C.go_externref_new(C.size_t(index + 1))
- C.go_wasmtime_val_externref_set(ret.ptr(), ptr)
- ret.setDtor()
- }
- return ret
-}
-
-//export goFinalizeExternref
-func goFinalizeExternref(env unsafe.Pointer) {
- idx := int(uintptr(env)) - 1
- gExternrefLock.Lock()
- defer gExternrefLock.Unlock()
- delete(gExternrefMap, idx)
- gExternrefSlab.deallocate(idx)
-}
-
-func mkVal(src *C.wasmtime_val_t) Val {
- ret := Val{_raw: &C.wasmtime_val_t{}}
- C.wasmtime_val_copy(ret.ptr(), src)
- ret.setDtor()
- return ret
-}
-
-func takeVal(src *C.wasmtime_val_t) Val {
- ret := Val{_raw: &C.wasmtime_val_t{}}
- *ret.ptr() = *src
- ret.setDtor()
- return ret
-}
-
-func (v Val) setDtor() {
- runtime.SetFinalizer(v.ptr(), func(ptr *C.wasmtime_val_t) {
- C.wasmtime_val_delete(ptr)
- })
-}
-
-func (v Val) ptr() *C.wasmtime_val_t {
- ret := v._raw
- maybeGC()
- return ret
-}
-
-// Kind returns the kind of value that this `Val` contains.
-func (v Val) Kind() ValKind {
- switch v.ptr().kind {
- case C.WASMTIME_I32:
- return KindI32
- case C.WASMTIME_I64:
- return KindI64
- case C.WASMTIME_F32:
- return KindF32
- case C.WASMTIME_F64:
- return KindF64
- case C.WASMTIME_FUNCREF:
- return KindFuncref
- case C.WASMTIME_EXTERNREF:
- return KindExternref
- }
- panic("failed to get kind of `Val`")
-}
-
-// I32 returns the underlying 32-bit integer if this is an `i32`, or panics.
-func (v Val) I32() int32 {
- if v.Kind() != KindI32 {
- panic("not an i32")
- }
- return int32(C.go_wasmtime_val_i32_get(v.ptr()))
-}
-
-// I64 returns the underlying 64-bit integer if this is an `i64`, or panics.
-func (v Val) I64() int64 {
- if v.Kind() != KindI64 {
- panic("not an i64")
- }
- return int64(C.go_wasmtime_val_i64_get(v.ptr()))
-}
-
-// F32 returns the underlying 32-bit float if this is an `f32`, or panics.
-func (v Val) F32() float32 {
- if v.Kind() != KindF32 {
- panic("not an f32")
- }
- return float32(C.go_wasmtime_val_f32_get(v.ptr()))
-}
-
-// F64 returns the underlying 64-bit float if this is an `f64`, or panics.
-func (v Val) F64() float64 {
- if v.Kind() != KindF64 {
- panic("not an f64")
- }
- return float64(C.go_wasmtime_val_f64_get(v.ptr()))
-}
-
-// Funcref returns the underlying function if this is a `funcref`, or panics.
-//
-// Note that a null `funcref` is returned as `nil`.
-func (v Val) Funcref() *Func {
- if v.Kind() != KindFuncref {
- panic("not a funcref")
- }
- val := C.go_wasmtime_val_funcref_get(v.ptr())
- if val.store_id == 0 {
- return nil
- } else {
- return mkFunc(val)
- }
-}
-
-// Externref returns the underlying value if this is an `externref`, or panics.
-//
-// Note that a null `externref` is returned as `nil`.
-func (v Val) Externref() interface{} {
- if v.Kind() != KindExternref {
- panic("not an externref")
- }
- val := C.go_wasmtime_val_externref_get(v.ptr())
- if val == nil {
- return nil
- }
- data := C.wasmtime_externref_data(val)
-
- gExternrefLock.Lock()
- defer gExternrefLock.Unlock()
- return gExternrefMap[int(uintptr(data))-1]
-}
-
-// Get returns the underlying 64-bit float if this is an `f64`, or panics.
-func (v Val) Get() interface{} {
- switch v.Kind() {
- case KindI32:
- return v.I32()
- case KindI64:
- return v.I64()
- case KindF32:
- return v.F32()
- case KindF64:
- return v.F64()
- case KindFuncref:
- return v.Funcref()
- case KindExternref:
- return v.Externref()
- }
- panic("failed to get value of `Val`")
-}
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v39/BUILD.bazel b/vendor/github.com/bytecodealliance/wasmtime-go/v39/BUILD.bazel
new file mode 100644
index 00000000..110bf0a1
--- /dev/null
+++ b/vendor/github.com/bytecodealliance/wasmtime-go/v39/BUILD.bazel
@@ -0,0 +1,77 @@
+load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
+
+cc_library(
+ name = "wasmtime",
+ srcs = select({
+ "@io_bazel_rules_go//go/platform:darwin_amd64": ["build/macos-x86_64/libwasmtime.a"],
+ "@io_bazel_rules_go//go/platform:linux_amd64": ["build/linux-x86_64/libwasmtime.a"],
+ "@io_bazel_rules_go//go/platform:windows_amd64": ["build/windows-x86_64/libwasmtime.a"],
+ "@io_bazel_rules_go//go/platform:darwin_arm64": ["build/macos-aarch64/libwasmtime.a"],
+ }),
+ hdrs = glob(["build/include/**/*.h"]),
+ includes = ["build/include"],
+ visibility = ["//visibility:public"],
+)
+
+go_library(
+ name = "go_default_library",
+ srcs = [
+ "config.go",
+ "doc.go",
+ "engine.go",
+ "error.go",
+ "exporttype.go",
+ "extern.go",
+ "externtype.go",
+ "ffi.go",
+ "func.go",
+ "functype.go",
+ "global.go",
+ "globaltype.go",
+ "importtype.go",
+ "instance.go",
+ "linker.go",
+ "maybe_gc_no.go",
+ "memory.go",
+ "memorytype.go",
+ "module.go",
+ "shims.c",
+ "shims.h",
+ "slab.go",
+ "store.go",
+ "table.go",
+ "tabletype.go",
+ "trap.go",
+ "val.go",
+ "valtype.go",
+ "wasi.go",
+ "wat2wasm.go",
+ ],
+ cdeps = [":wasmtime"], # add wasmtime dep
+ cgo = True,
+ clinkopts = select({
+ "@io_bazel_rules_go//go/platform:windows": [
+ "-luserenv -lole32 -lntdll -lws2_32 -lkernel32 -lbcrypt",
+ ],
+ "//conditions:default": ["-lm -ldl"],
+ }),
+ copts = [
+ "-Ibuild/include",
+ ] + select({
+ "@io_bazel_rules_go//go/platform:windows": [
+ "-DWASM_API_EXTERN= -DWASI_API_EXTERN=",
+ ],
+ "//conditions:default": [],
+ }),
+ importpath = "github.com/bytecodealliance/wasmtime-go/v39",
+ visibility = ["//visibility:public"],
+)
+
+go_test(
+ name = "go_default_test",
+ srcs = glob(["**/*_test.go"]),
+ embed = [":go_default_library"],
+ deps = [
+ "@com_github_stretchr_testify//require:go_default_library",
+ ]
+)
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/LICENSE b/vendor/github.com/bytecodealliance/wasmtime-go/v39/LICENSE
similarity index 100%
rename from vendor/github.com/bytecodealliance/wasmtime-go/v3/LICENSE
rename to vendor/github.com/bytecodealliance/wasmtime-go/v39/LICENSE
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v39/README.md b/vendor/github.com/bytecodealliance/wasmtime-go/v39/README.md
new file mode 100644
index 00000000..7c71f7c1
--- /dev/null
+++ b/vendor/github.com/bytecodealliance/wasmtime-go/v39/README.md
@@ -0,0 +1,186 @@
+
+
+## Installation
+
+```sh
+go get -u github.com/bytecodealliance/wasmtime-go/v39@v39.0.1
+```
+
+Be sure to check out the [API documentation][api]!
+
+This Go library uses CGO to consume the C API of the [Wasmtime
+project][wasmtime] which is written in Rust. Precompiled binaries of Wasmtime
+are checked into this repository on tagged releases so you won't have to install
+Wasmtime locally, but it means that this project only works on Linux x86\_64,
+macOS x86\_64 , and Windows x86\_64 currently. Building on other platforms will
+need to arrange to build Wasmtime and use `CGO_*` env vars to compile correctly.
+
+This project has been tested with Go 1.13 or later.
+
+[api]: https://pkg.go.dev/github.com/bytecodealliance/wasmtime-go/v39
+[wasmtime]: https://github.com/bytecodealliance/wasmtime
+
+If you are a bazel user, add following to your WORKSPACE file:
+
+```
+go_repository(
+ name = "com_github_bytecodealliance_wasmtime_go",
+ importpath = "github.com/bytecodealliance/wasmtime-go/v39",
+ version = "v39.0.1",
+)
+```
+
+## Usage
+
+A "Hello, world!" example of using this package looks like:
+
+```go
+package main
+
+import (
+ "fmt"
+ "github.com/bytecodealliance/wasmtime-go/v39"
+)
+
+func main() {
+ // Almost all operations in wasmtime require a contextual `store`
+ // argument to share, so create that first
+ store := wasmtime.NewStore(wasmtime.NewEngine())
+
+ // Compiling modules requires WebAssembly binary input, but the wasmtime
+ // package also supports converting the WebAssembly text format to the
+ // binary format.
+ wasm, err := wasmtime.Wat2Wasm(`
+ (module
+ (import "" "hello" (func $hello))
+ (func (export "run")
+ (call $hello))
+ )
+ `)
+ check(err)
+
+ // Once we have our binary `wasm` we can compile that into a `*Module`
+ // which represents compiled JIT code.
+ module, err := wasmtime.NewModule(store.Engine, wasm)
+ check(err)
+
+ // Our `hello.wat` file imports one item, so we create that function
+ // here.
+ item := wasmtime.WrapFunc(store, func() {
+ fmt.Println("Hello from Go!")
+ })
+
+ // Next up we instantiate a module which is where we link in all our
+ // imports. We've got one import so we pass that in here.
+ instance, err := wasmtime.NewInstance(store, module, []wasmtime.AsExtern{item})
+ check(err)
+
+ // After we've instantiated we can lookup our `run` function and call
+ // it.
+ run := instance.GetFunc(store, "run")
+ if run == nil {
+ panic("not a function")
+ }
+ _, err = run.Call(store)
+ check(err)
+}
+
+func check(e error) {
+ if e != nil {
+ panic(e)
+ }
+}
+```
+
+## Contributing
+
+So far this extension has been written by folks who are primarily Rust
+programmers, so it's highly likely that there's some faux pas in terms of Go
+idioms. Feel free to send a PR to help make things more idiomatic if you see
+something!
+
+To work on this extension locally you'll first want to clone the project:
+
+```sh
+$ git clone https://github.com/bytecodealliance/wasmtime-go
+```
+
+Next up you'll want to have a [local Wasmtime build
+available](https://bytecodealliance.github.io/wasmtime/contributing-building.html).
+
+You'll need to build at least the `wasmtime-c-api` crate, which, at the time of
+this writing, would be:
+
+```sh
+$ cargo build -p wasmtime-c-api
+```
+
+Once you've got that you can set up the environment of this library with:
+
+```sh
+$ ./ci/local.sh /path/to/wasmtime
+```
+
+This will create a `build` directory which has the compiled libraries and header
+files. Next up you can run normal commands such as:
+
+```sh
+$ go test
+```
+
+And after that you should be good to go!
+
+### Release Checklist
+
+First run:
+
+```
+$ python3 ci/download-wasmtime.py
+$ go test
+```
+
+Make sure everything passes at the current version.
+
+Next run:
+
+```
+$ git ls-files | xargs sed -i 's/v16/v17/g'
+$ python3 ci/download-wasmtime.py
+$ go test
+```
+
+Fix all errors and such and then commit and make a PR.
+
+Once merged checkout `main` and do:
+
+```
+$ rm .gitignore
+$ python3 ci/download-wasmtime.py
+$ git add .
+$ git commit -m 'v39.0.0 release artifacts'
+$ git tag v39.0.0
+```
+
+and push up the tag
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v39/WORKSPACE b/vendor/github.com/bytecodealliance/wasmtime-go/v39/WORKSPACE
new file mode 100644
index 00000000..6aff0453
--- /dev/null
+++ b/vendor/github.com/bytecodealliance/wasmtime-go/v39/WORKSPACE
@@ -0,0 +1,68 @@
+load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
+
+http_archive(
+ name = "io_bazel_rules_go",
+ sha256 = "91585017debb61982f7054c9688857a2ad1fd823fc3f9cb05048b0025c47d023",
+ urls = [
+ "https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.42.0/rules_go-v0.42.0.zip",
+ "https://github.com/bazelbuild/rules_go/releases/download/v0.42.0/rules_go-v0.42.0.zip",
+ ],
+)
+
+http_archive(
+ name = "bazel_gazelle",
+ sha256 = "5982e5463f171da99e3bdaeff8c0f48283a7a5f396ec5282910b9e8a49c0dd7e",
+ urls = [
+ "https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.25.0/bazel-gazelle-v0.25.0.tar.gz",
+ "https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.25.0/bazel-gazelle-v0.25.0.tar.gz",
+ ],
+)
+
+load("@io_bazel_rules_go//go:deps.bzl", "go_rules_dependencies", "go_register_toolchains")
+load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies", "go_repository")
+
+go_repository(
+ name = "com_github_davecgh_go_spew",
+ build_file_proto_mode = "disable_global",
+ importpath = "github.com/davecgh/go-spew",
+ sum = "h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=",
+ version = "v1.1.1",
+)
+
+go_repository(
+ name = "com_github_pmezard_go_difflib",
+ build_file_proto_mode = "disable_global",
+ importpath = "github.com/pmezard/go-difflib",
+ sum = "h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=",
+ version = "v1.0.0",
+)
+
+go_repository(
+ name = "com_github_stretchr_testify",
+ build_file_proto_mode = "disable_global",
+ importpath = "github.com/stretchr/testify",
+ sum = "h1:pSgiaMZlXftHpm5L7V1+rVB+AZJydKsMxsQBIJw4PKk=",
+ version = "v1.8.0",
+)
+
+go_repository(
+ name = "in_gopkg_yaml_v3",
+ build_file_proto_mode = "disable_global",
+ importpath = "gopkg.in/yaml.v3",
+ sum = "h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=",
+ version = "v3.0.0-20200313102051-9f266ea9e77c",
+)
+
+go_repository(
+ name = "com_github_stretchr_objx",
+ build_file_proto_mode = "disable_global",
+ importpath = "github.com/stretchr/objx",
+ sum = "h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=",
+ version = "v0.4.0",
+)
+
+go_rules_dependencies()
+
+go_register_toolchains(version = "1.21.1")
+
+gazelle_dependencies()
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/doc-wasm.h b/vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/doc-wasm.h
similarity index 99%
rename from vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/doc-wasm.h
rename to vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/doc-wasm.h
index 6bad15c7..d7911f0e 100644
--- a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/doc-wasm.h
+++ b/vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/doc-wasm.h
@@ -1,3 +1,5 @@
+/* clang-format off */
+
/**
* \file wasm.h
*
@@ -218,7 +220,7 @@
* vector should not be previously initialized and the caller is responsible for
* calling #wasm_byte_vec_delete after this function returns.
*
- * Note that memory of the the initialization vector provided to this function
+ * Note that memory of the initialization vector provided to this function
* must be managed externally. This function will copy the contents to the
* output vector, but it's up to the caller to properly deallocate the memory.
*
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/empty.go b/vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/empty.go
similarity index 100%
rename from vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/empty.go
rename to vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/empty.go
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/wasi.h b/vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/wasi.h
new file mode 100644
index 00000000..5f341dee
--- /dev/null
+++ b/vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/wasi.h
@@ -0,0 +1,276 @@
+/**
+ * \file wasi.h
+ *
+ * C API for WASI
+ */
+
+#ifndef WASI_H
+#define WASI_H
+
+#include "wasm.h"
+#include
+#include
+
+#ifdef WASMTIME_FEATURE_WASI
+
+#ifndef WASI_API_EXTERN
+#ifdef _WIN32
+#define WASI_API_EXTERN __declspec(dllimport)
+#else
+#define WASI_API_EXTERN
+#endif
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define own
+
+#define WASI_DECLARE_OWN(name) \
+ typedef struct wasi_##name##_t wasi_##name##_t; \
+ WASI_API_EXTERN void wasi_##name##_delete(own wasi_##name##_t *);
+
+/**
+ * \typedef wasi_config_t
+ * \brief Convenience alias for #wasi_config_t
+ *
+ * \struct wasi_config_t
+ * \brief TODO
+ *
+ * \fn void wasi_config_delete(wasi_config_t *);
+ * \brief Deletes a configuration object.
+ */
+WASI_DECLARE_OWN(config)
+
+/**
+ * \brief Creates a new empty configuration object.
+ *
+ * The caller is expected to deallocate the returned configuration
+ */
+WASI_API_EXTERN own wasi_config_t *wasi_config_new();
+
+/**
+ * \brief Sets the argv list for this configuration object.
+ *
+ * By default WASI programs have an empty argv list, but this can be used to
+ * explicitly specify what the argv list for the program is.
+ *
+ * The arguments are copied into the `config` object as part of this function
+ * call, so the `argv` pointer only needs to stay alive for this function call.
+ *
+ * This function returns `true` if all arguments were registered successfully,
+ * or `false` if an argument was not valid UTF-8.
+ */
+WASI_API_EXTERN bool wasi_config_set_argv(wasi_config_t *config, size_t argc,
+ const char *argv[]);
+
+/**
+ * \brief Indicates that the argv list should be inherited from this process's
+ * argv list.
+ */
+WASI_API_EXTERN void wasi_config_inherit_argv(wasi_config_t *config);
+
+/**
+ * \brief Sets the list of environment variables available to the WASI instance.
+ *
+ * By default WASI programs have a blank environment, but this can be used to
+ * define some environment variables for them.
+ *
+ * It is required that the `names` and `values` lists both have `envc` entries.
+ *
+ * The env vars are copied into the `config` object as part of this function
+ * call, so the `names` and `values` pointers only need to stay alive for this
+ * function call.
+ *
+ * This function returns `true` if all environment variables were successfully
+ * registered. This returns `false` if environment variables are not valid
+ * UTF-8.
+ */
+WASI_API_EXTERN bool wasi_config_set_env(wasi_config_t *config, size_t envc,
+ const char *names[],
+ const char *values[]);
+
+/**
+ * \brief Indicates that the entire environment of the calling process should be
+ * inherited by this WASI configuration.
+ */
+WASI_API_EXTERN void wasi_config_inherit_env(wasi_config_t *config);
+
+/**
+ * \brief Configures standard input to be taken from the specified file.
+ *
+ * By default WASI programs have no stdin, but this configures the specified
+ * file to be used as stdin for this configuration.
+ *
+ * If the stdin location does not exist or it cannot be opened for reading then
+ * `false` is returned. Otherwise `true` is returned.
+ */
+WASI_API_EXTERN bool wasi_config_set_stdin_file(wasi_config_t *config,
+ const char *path);
+
+/**
+ * \brief Configures standard input to be taken from the specified
+ * #wasm_byte_vec_t.
+ *
+ * By default WASI programs have no stdin, but this configures the specified
+ * bytes to be used as stdin for this configuration.
+ *
+ * This function takes ownership of the `binary` argument.
+ */
+WASI_API_EXTERN void wasi_config_set_stdin_bytes(wasi_config_t *config,
+ wasm_byte_vec_t *binary);
+
+/**
+ * \brief Configures this process's own stdin stream to be used as stdin for
+ * this WASI configuration.
+ */
+WASI_API_EXTERN void wasi_config_inherit_stdin(wasi_config_t *config);
+
+/**
+ * \brief Configures standard output to be written to the specified file.
+ *
+ * By default WASI programs have no stdout, but this configures the specified
+ * file to be used as stdout.
+ *
+ * If the stdout location could not be opened for writing then `false` is
+ * returned. Otherwise `true` is returned.
+ */
+WASI_API_EXTERN bool wasi_config_set_stdout_file(wasi_config_t *config,
+ const char *path);
+
+/**
+ * \brief Configures this process's own stdout stream to be used as stdout for
+ * this WASI configuration.
+ */
+WASI_API_EXTERN void wasi_config_inherit_stdout(wasi_config_t *config);
+
+/**
+ * \brief Configures standard output to be directed to \p callback
+ *
+ * \param config The config to operate on
+ * \param callback A non-null callback must be provided, that will get called
+ * for each write with the buffer. A positive return value indicates the amount
+ * of bytes written. Negative return values are treated as OS error codes.
+ * \param data An optional user provided data that will be passed to \p callback
+ * \param finalizer An optional callback to be called to destroy \p data
+ */
+WASI_API_EXTERN void wasi_config_set_stdout_custom(
+ wasi_config_t *config,
+ ptrdiff_t (*callback)(void *, const unsigned char *, size_t), void *data,
+ void (*finalizer)(void *));
+
+/**
+ * \brief Configures standard output to be written to the specified file.
+ *
+ * By default WASI programs have no stderr, but this configures the specified
+ * file to be used as stderr.
+ *
+ * If the stderr location could not be opened for writing then `false` is
+ * returned. Otherwise `true` is returned.
+ */
+WASI_API_EXTERN bool wasi_config_set_stderr_file(wasi_config_t *config,
+ const char *path);
+
+/**
+ * \brief Configures this process's own stderr stream to be used as stderr for
+ * this WASI configuration.
+ */
+WASI_API_EXTERN void wasi_config_inherit_stderr(wasi_config_t *config);
+
+/**
+ * \brief Configures standard error output to be directed to \p callback
+ *
+ * \param config The config to operate on
+ * \param callback A non-null callback must be provided, that will get called
+ * for each write with the buffer. A positive return value indicates the amount
+ * of bytes written. Negative return values are treated as OS error codes.
+ * \param data An optional user provided data that will be passed to \p callback
+ * \param finalizer An optional callback to be called to destroy \p data
+ */
+WASI_API_EXTERN void wasi_config_set_stderr_custom(
+ wasi_config_t *config,
+ ptrdiff_t (*callback)(void *, const unsigned char *, size_t), void *data,
+ void (*finalizer)(void *));
+
+/**
+ * \brief The permissions granted for a directory when preopening it.
+ */
+enum wasi_dir_perms_flags {
+ /**
+ * \brief This directory can be read, for example its entries can be iterated
+ */
+ WASMTIME_WASI_DIR_PERMS_READ = 1,
+
+ /**
+ * \brief This directory can be written to, for example new files can be
+ * created within it.
+ */
+ WASMTIME_WASI_DIR_PERMS_WRITE = 2,
+};
+
+/**
+ * \brief The permissions granted for directories when preopening them,
+ * which is a bitmask with flag values from wasi_dir_perms_flags.
+ */
+typedef size_t wasi_dir_perms;
+
+/**
+ * \brief The permissions granted for files when preopening a directory.
+ */
+enum wasi_file_perms_flags {
+ /**
+ * \brief Files can be read.
+ */
+ WASMTIME_WASI_FILE_PERMS_READ = 1,
+
+ /**
+ * \brief Files can be written to.
+ */
+ WASMTIME_WASI_FILE_PERMS_WRITE = 2,
+};
+
+/**
+ * \brief The max permissions granted a file within a preopened directory,
+ * which is a bitmask with flag values from wasi_file_perms_flags.
+ */
+typedef size_t wasi_file_perms;
+
+/**
+ * \brief Configures a "preopened directory" to be available to WASI APIs.
+ *
+ * By default WASI programs do not have access to anything on the filesystem.
+ * This API can be used to grant WASI programs access to a directory on the
+ * filesystem, but only that directory (its whole contents but nothing above
+ * it).
+ *
+ * The `host_path` argument here is a path name on the host filesystem, and
+ * `guest_path` is the name by which it will be known in wasm.
+ *
+ * The `dir_perms` argument is the permissions that wasm will have to operate on
+ * `guest_path`. This can be used, for example, to provide readonly access to a
+ * directory. This argument is a bitmask with the following flag values:
+ * - WASMTIME_WASI_DIR_PERMS_READ
+ * - WASMTIME_WASI_DIR_PERMS_WRITE
+ *
+ * The `file_perms` argument is similar to `dir_perms` but corresponds to the
+ * maximum set of permissions that can be used for any file in this directory.
+ * This argument is a bitmask with the following flag values:
+ * - WASMTIME_WASI_FILE_PERMS_READ
+ * - WASMTIME_WASI_FILE_PERMS_WRITE
+ */
+WASI_API_EXTERN bool wasi_config_preopen_dir(wasi_config_t *config,
+ const char *host_path,
+ const char *guest_path,
+ wasi_dir_perms dir_perms,
+ wasi_file_perms file_perms);
+
+#undef own
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif // WASMTIME_FEATURE_WASI
+
+#endif // #ifdef WASI_H
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasm.h b/vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/wasm.h
similarity index 96%
rename from vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasm.h
rename to vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/wasm.h
index 325e618b..c8b3cb7d 100644
--- a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasm.h
+++ b/vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/wasm.h
@@ -1,3 +1,9 @@
+// Wasmtime-vendored copy of this header file as present in upstream:
+//
+//
+// Wasmtime maintainers can update this vendored copy in-tree with the
+// ./ci/vendor-c-api-headers.sh shell script.
+//
// WebAssembly C API
#ifndef WASM_H
@@ -10,7 +16,7 @@
#include
#ifndef WASM_API_EXTERN
-#ifdef _WIN32
+#if defined(_WIN32) && !defined(__MINGW32__) && !defined(LIBWASM_STATIC)
#define WASM_API_EXTERN __declspec(dllimport)
#else
#define WASM_API_EXTERN
@@ -182,7 +188,7 @@ enum wasm_valkind_enum {
WASM_I64,
WASM_F32,
WASM_F64,
- WASM_ANYREF = 128,
+ WASM_EXTERNREF = 128,
WASM_FUNCREF,
};
@@ -191,10 +197,10 @@ WASM_API_EXTERN own wasm_valtype_t* wasm_valtype_new(wasm_valkind_t);
WASM_API_EXTERN wasm_valkind_t wasm_valtype_kind(const wasm_valtype_t*);
static inline bool wasm_valkind_is_num(wasm_valkind_t k) {
- return k < WASM_ANYREF;
+ return k < WASM_EXTERNREF;
}
static inline bool wasm_valkind_is_ref(wasm_valkind_t k) {
- return k >= WASM_ANYREF;
+ return k >= WASM_EXTERNREF;
}
static inline bool wasm_valtype_is_num(const wasm_valtype_t* t) {
@@ -547,8 +553,8 @@ static inline own wasm_valtype_t* wasm_valtype_new_f64(void) {
return wasm_valtype_new(WASM_F64);
}
-static inline own wasm_valtype_t* wasm_valtype_new_anyref(void) {
- return wasm_valtype_new(WASM_ANYREF);
+static inline own wasm_valtype_t* wasm_valtype_new_externref(void) {
+ return wasm_valtype_new(WASM_EXTERNREF);
}
static inline own wasm_valtype_t* wasm_valtype_new_funcref(void) {
return wasm_valtype_new(WASM_FUNCREF);
@@ -708,8 +714,8 @@ static inline void* wasm_val_ptr(const wasm_val_t* val) {
#define WASM_I64_VAL(i) {.kind = WASM_I64, .of = {.i64 = i}}
#define WASM_F32_VAL(z) {.kind = WASM_F32, .of = {.f32 = z}}
#define WASM_F64_VAL(z) {.kind = WASM_F64, .of = {.f64 = z}}
-#define WASM_REF_VAL(r) {.kind = WASM_ANYREF, .of = {.ref = r}}
-#define WASM_INIT_VAL {.kind = WASM_ANYREF, .of = {.ref = NULL}}
+#define WASM_REF_VAL(r) {.kind = WASM_EXTERNREF, .of = {.ref = r}}
+#define WASM_INIT_VAL {.kind = WASM_EXTERNREF, .of = {.ref = NULL}}
///////////////////////////////////////////////////////////////////////////////
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/wasm.hh b/vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/wasm.hh
new file mode 100644
index 00000000..e0340824
--- /dev/null
+++ b/vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/wasm.hh
@@ -0,0 +1,849 @@
+// Wasmtime-vendored copy of this header file as present in upstream:
+//
+//
+// Wasmtime maintainers can update this vendored copy in-tree with the
+// ./ci/vendor-c-api-headers.sh shell script.
+//
+// WebAssembly C++ API
+
+#ifndef WASM_HH
+#define WASM_HH
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#ifndef WASM_API_EXTERN
+#if defined(_WIN32) && !defined(__MINGW32__) && !defined(LIBWASM_STATIC)
+#define WASM_API_EXTERN __declspec(dllimport)
+#else
+#define WASM_API_EXTERN
+#endif
+#endif
+
+
+///////////////////////////////////////////////////////////////////////////////
+// Auxiliaries
+
+// Machine types
+
+static_assert(sizeof(float) == sizeof(int32_t), "incompatible float type");
+static_assert(sizeof(double) == sizeof(int64_t), "incompatible double type");
+static_assert(sizeof(intptr_t) == sizeof(int32_t) ||
+ sizeof(intptr_t) == sizeof(int64_t), "incompatible pointer type");
+
+using byte_t = char;
+using float32_t = float;
+using float64_t = double;
+
+
+namespace wasm {
+
+// Vectors
+
+template
+class vec {
+ static const size_t invalid_size = SIZE_MAX;
+
+ size_t size_;
+ std::unique_ptr data_;
+
+#ifdef WASM_API_DEBUG
+ WASM_API_EXTERN void make_data();
+ WASM_API_EXTERN void free_data();
+#else
+ void make_data() {}
+ void free_data() {}
+#endif
+
+ vec(size_t size) : vec(size, size ? new(std::nothrow) T[size] : nullptr) {
+ make_data();
+ }
+
+ vec(size_t size, T* data) : size_(size), data_(data) {
+ assert(!!size_ == !!data_ || size_ == invalid_size);
+ }
+
+public:
+ using elem_type = T;
+
+ vec(vec&& that) : vec(that.size_, that.data_.release()) {
+ that.size_ = invalid_size;
+ }
+
+ ~vec() {
+ free_data();
+ }
+
+ operator bool() const {
+ return bool(size_ != invalid_size);
+ }
+
+ auto size() const -> size_t {
+ return size_;
+ }
+
+ auto get() const -> const T* {
+ return data_.get();
+ }
+
+ auto get() -> T* {
+ return data_.get();
+ }
+
+ auto release() -> T* {
+ size_ = invalid_size;
+ return data_.release();
+ }
+
+ void reset() {
+ free_data();
+ size_ = invalid_size;
+ data_.reset();
+ }
+
+ void reset(vec& that) {
+ free_data();
+ size_ = that.size_;
+ data_.reset(that.data_.release());
+ that.size_ = invalid_size;
+ }
+
+ auto operator=(vec&& that) -> vec& {
+ reset(that);
+ return *this;
+ }
+
+ auto operator[](size_t i) -> T& {
+ assert(i < size_);
+ return data_[i];
+ }
+
+ auto operator[](size_t i) const -> const T& {
+ assert(i < size_);
+ return data_[i];
+ }
+
+ auto copy() const -> vec {
+ auto v = vec(size_);
+ if (v) for (size_t i = 0; i < size_; ++i) v.data_[i] = data_[i];
+ return v;
+ }
+
+ // TODO: This can't be used for e.g. vec
+ auto deep_copy() const -> vec {
+ auto v = vec(size_);
+ if (v) for (size_t i = 0; i < size_; ++i) v.data_[i] = data_[i]->copy();
+ return v;
+ }
+
+ static auto make_uninitialized(size_t size = 0) -> vec {
+ return vec(size);
+ }
+
+ static auto make(size_t size, T init[]) -> vec {
+ auto v = vec(size);
+ if (v) for (size_t i = 0; i < size; ++i) v.data_[i] = std::move(init[i]);
+ return v;
+ }
+
+ static auto make(std::string s) -> vec {
+ auto v = vec(s.length());
+ if (v) std::strncpy(v.get(), s.data(), s.length());
+ return v;
+ }
+
+ static auto make_nt(std::string s) -> vec {
+ auto v = vec(s.length() + 1);
+ if (v) std::strcpy(v.get(), s.data());
+ return v;
+ }
+
+ // TODO(mvsc): MVSC requires this special case:
+ static auto make() -> vec {
+ return vec(0);
+ }
+
+ template
+ static auto make(Ts&&... args) -> vec {
+ T data[] = { std::forward(args)... };
+ return make(sizeof...(Ts), data);
+ }
+
+ static auto adopt(size_t size, T data[]) -> vec {
+ return vec(size, data);
+ }
+
+ static auto invalid() -> vec {
+ return vec(invalid_size, nullptr);
+ }
+};
+
+
+// Ownership
+
+class destroyer {
+public:
+ template
+ void operator()(T* ptr) {
+ ptr->destroy();
+ }
+};
+
+template using own = std::unique_ptr;
+template using ownvec = vec>;
+
+template own make_own(T* ptr) {
+ return own(ptr);
+}
+
+///////////////////////////////////////////////////////////////////////////////
+// Runtime Environment
+
+// Configuration
+
+class WASM_API_EXTERN Config {
+ friend class destroyer;
+ void destroy();
+
+protected:
+ Config() = default;
+ ~Config() = default;
+
+public:
+ static auto make() -> own;
+
+ // Implementations may provide custom methods for manipulating Configs.
+};
+
+
+// Engine
+
+class WASM_API_EXTERN Engine {
+ friend class destroyer;
+ void destroy();
+
+protected:
+ Engine() = default;
+ ~Engine() = default;
+
+public:
+ static auto make(own&& = Config::make()) -> own;
+};
+
+
+// Store
+
+class WASM_API_EXTERN Store {
+ friend class destroyer;
+ void destroy();
+
+protected:
+ Store() = default;
+ ~Store() = default;
+
+public:
+ static auto make(Engine*) -> own;
+};
+
+
+///////////////////////////////////////////////////////////////////////////////
+// Type Representations
+
+// Type attributes
+
+enum class Mutability : uint8_t { CONST, VAR };
+
+struct Limits {
+ uint32_t min;
+ uint32_t max;
+
+ Limits(uint32_t min, uint32_t max = std::numeric_limits::max()) :
+ min(min), max(max) {}
+};
+
+
+// Value Types
+
+enum class ValKind : uint8_t {
+ I32, I64, F32, F64,
+ EXTERNREF = 128, FUNCREF,
+};
+
+inline bool is_num(ValKind k) { return k < ValKind::EXTERNREF; }
+inline bool is_ref(ValKind k) { return k >= ValKind::EXTERNREF; }
+
+
+class WASM_API_EXTERN ValType {
+ friend class destroyer;
+ void destroy();
+
+protected:
+ ValType() = default;
+ ~ValType() = default;
+
+public:
+ static auto make(ValKind) -> own;
+ auto copy() const -> own;
+
+ auto kind() const -> ValKind;
+ auto is_num() const -> bool { return wasm::is_num(kind()); }
+ auto is_ref() const -> bool { return wasm::is_ref(kind()); }
+};
+
+
+// External Types
+
+enum class ExternKind : uint8_t {
+ FUNC, GLOBAL, TABLE, MEMORY
+};
+
+class FuncType;
+class GlobalType;
+class TableType;
+class MemoryType;
+
+class WASM_API_EXTERN ExternType {
+ friend class destroyer;
+ void destroy();
+
+protected:
+ ExternType() = default;
+ ~ExternType() = default;
+
+public:
+ auto copy() const-> own;
+
+ auto kind() const -> ExternKind;
+
+ auto func() -> FuncType*;
+ auto global() -> GlobalType*;
+ auto table() -> TableType*;
+ auto memory() -> MemoryType*;
+
+ auto func() const -> const FuncType*;
+ auto global() const -> const GlobalType*;
+ auto table() const -> const TableType*;
+ auto memory() const -> const MemoryType*;
+};
+
+
+// Function Types
+
+class WASM_API_EXTERN FuncType : public ExternType {
+ friend class destroyer;
+ void destroy();
+
+protected:
+ FuncType() = default;
+ ~FuncType() = default;
+
+public:
+ static auto make(
+ ownvec&& params = ownvec::make(),
+ ownvec&& results = ownvec::make()
+ ) -> own;
+
+ auto copy() const -> own;
+
+ auto params() const -> const ownvec&;
+ auto results() const -> const ownvec&;
+};
+
+
+// Global Types
+
+class WASM_API_EXTERN GlobalType : public ExternType {
+ friend class destroyer;
+ void destroy();
+
+protected:
+ GlobalType() = default;
+ ~GlobalType() = default;
+
+public:
+ static auto make(own&&, Mutability) -> own;
+ auto copy() const -> own;
+
+ auto content() const -> const ValType*;
+ auto mutability() const -> Mutability;
+};
+
+
+// Table Types
+
+class WASM_API_EXTERN TableType : public ExternType {
+ friend class destroyer;
+ void destroy();
+
+protected:
+ TableType() = default;
+ ~TableType() = default;
+
+public:
+ static auto make(own&&, Limits) -> own;
+ auto copy() const -> own;
+
+ auto element() const -> const ValType*;
+ auto limits() const -> const Limits&;
+};
+
+
+// Memory Types
+
+class WASM_API_EXTERN MemoryType : public ExternType {
+ friend class destroyer;
+ void destroy();
+
+protected:
+ MemoryType() = default;
+ ~MemoryType() = default;
+
+public:
+ static auto make(Limits) -> own;
+ auto copy() const -> own;
+
+ auto limits() const -> const Limits&;
+};
+
+
+// Import Types
+
+using Name = vec;
+
+class WASM_API_EXTERN ImportType {
+ friend class destroyer;
+ void destroy();
+
+protected:
+ ImportType() = default;
+ ~ImportType() = default;
+
+public:
+ static auto make(Name&& module, Name&& name, own&&) ->
+ own;
+ auto copy() const -> own;
+
+ auto module() const -> const Name&;
+ auto name() const -> const Name&;
+ auto type() const -> const ExternType*;
+};
+
+
+// Export Types
+
+class WASM_API_EXTERN ExportType {
+ friend class destroyer;
+ void destroy();
+
+protected:
+ ExportType() = default;
+ ~ExportType() = default;
+
+public:
+ static auto make(Name&&, own&&) -> own;
+ auto copy() const -> own;
+
+ auto name() const -> const Name&;
+ auto type() const -> const ExternType*;
+};
+
+
+///////////////////////////////////////////////////////////////////////////////
+// Runtime Objects
+
+// References
+
+class WASM_API_EXTERN Ref {
+ friend class destroyer;
+ void destroy();
+
+protected:
+ Ref() = default;
+ ~Ref() = default;
+
+public:
+ auto copy() const -> own[;
+ auto same(const Ref*) const -> bool;
+
+ auto get_host_info() const -> void*;
+ void set_host_info(void* info, void (*finalizer)(void*) = nullptr);
+};
+
+
+// Values
+
+class Val {
+ ValKind kind_;
+ union impl {
+ int32_t i32;
+ int64_t i64;
+ float32_t f32;
+ float64_t f64;
+ Ref* ref;
+ } impl_;
+
+ Val(ValKind kind, impl impl) : kind_(kind), impl_(impl) {}
+
+public:
+ Val() : kind_(ValKind::EXTERNREF) { impl_.ref = nullptr; }
+ explicit Val(int32_t i) : kind_(ValKind::I32) { impl_.i32 = i; }
+ explicit Val(int64_t i) : kind_(ValKind::I64) { impl_.i64 = i; }
+ explicit Val(float32_t z) : kind_(ValKind::F32) { impl_.f32 = z; }
+ explicit Val(float64_t z) : kind_(ValKind::F64) { impl_.f64 = z; }
+ explicit Val(own][&& r) : kind_(ValKind::EXTERNREF) { impl_.ref = r.release(); }
+
+ Val(Val&& that) : kind_(that.kind_), impl_(that.impl_) {
+ if (is_ref()) that.impl_.ref = nullptr;
+ }
+
+ ~Val() {
+ reset();
+ }
+
+ auto is_num() const -> bool { return wasm::is_num(kind_); }
+ auto is_ref() const -> bool { return wasm::is_ref(kind_); }
+
+ static auto i32(int32_t x) -> Val { return Val(x); }
+ static auto i64(int64_t x) -> Val { return Val(x); }
+ static auto f32(float32_t x) -> Val { return Val(x); }
+ static auto f64(float64_t x) -> Val { return Val(x); }
+ static auto ref(own][&& x) -> Val { return Val(std::move(x)); }
+ template inline static auto make(T x) -> Val;
+ template inline static auto make(own&& x) -> Val;
+
+ void reset() {
+ if (is_ref() && impl_.ref) {
+ destroyer()(impl_.ref);
+ impl_.ref = nullptr;
+ }
+ }
+
+ void reset(Val& that) {
+ reset();
+ kind_ = that.kind_;
+ impl_ = that.impl_;
+ if (is_ref()) that.impl_.ref = nullptr;
+ }
+
+ auto operator=(Val&& that) -> Val& {
+ reset(that);
+ return *this;
+ }
+
+ auto kind() const -> ValKind { return kind_; }
+ auto i32() const -> int32_t { assert(kind_ == ValKind::I32); return impl_.i32; }
+ auto i64() const -> int64_t { assert(kind_ == ValKind::I64); return impl_.i64; }
+ auto f32() const -> float32_t { assert(kind_ == ValKind::F32); return impl_.f32; }
+ auto f64() const -> float64_t { assert(kind_ == ValKind::F64); return impl_.f64; }
+ auto ref() const -> Ref* { assert(is_ref()); return impl_.ref; }
+ template inline auto get() const -> T;
+
+ auto release_ref() -> own][ {
+ assert(is_ref());
+ auto ref = impl_.ref;
+ impl_.ref = nullptr;
+ return own][(ref);
+ }
+
+ auto copy() const -> Val {
+ if (is_ref() && impl_.ref != nullptr) {
+ // TODO(mvsc): MVSC cannot handle this:
+ // impl impl = {.ref = impl_.ref->copy().release()};
+ impl impl;
+ impl.ref = impl_.ref->copy().release();
+ return Val(kind_, impl);
+ } else {
+ return Val(kind_, impl_);
+ }
+ }
+};
+
+
+template<> inline auto Val::make(int32_t x) -> Val { return Val(x); }
+template<> inline auto Val::make(int64_t x) -> Val { return Val(x); }
+template<> inline auto Val::make(float32_t x) -> Val { return Val(x); }
+template<> inline auto Val::make(float64_t x) -> Val { return Val(x); }
+template<> inline auto Val::make][(own][&& x) -> Val {
+ return Val(std::move(x));
+}
+
+template<> inline auto Val::make(uint32_t x) -> Val {
+ return Val(static_cast(x));
+}
+template<> inline auto Val::make(uint64_t x) -> Val {
+ return Val(static_cast(x));
+}
+
+template<> inline auto Val::get() const -> int32_t { return i32(); }
+template<> inline auto Val::get() const -> int64_t { return i64(); }
+template<> inline auto Val::get() const -> float32_t { return f32(); }
+template<> inline auto Val::get() const -> float64_t { return f64(); }
+template<> inline auto Val::get][() const -> Ref* { return ref(); }
+
+template<> inline auto Val::get() const -> uint32_t {
+ return static_cast(i32());
+}
+template<> inline auto Val::get() const -> uint64_t {
+ return static_cast(i64());
+}
+
+
+// Traps
+
+using Message = vec; // null terminated
+
+class Instance;
+
+class WASM_API_EXTERN Frame {
+ friend class destroyer;
+ void destroy();
+
+protected:
+ Frame() = default;
+ ~Frame() = default;
+
+public:
+ auto copy() const -> own;
+
+ auto instance() const -> Instance*;
+ auto func_index() const -> uint32_t;
+ auto func_offset() const -> size_t;
+ auto module_offset() const -> size_t;
+};
+
+class WASM_API_EXTERN Trap : public Ref {
+ friend class destroyer;
+ void destroy();
+
+protected:
+ Trap() = default;
+ ~Trap() = default;
+
+public:
+ static auto make(Store*, const Message& msg) -> own;
+ auto copy() const -> own;
+
+ auto message() const -> Message;
+ auto origin() const -> own; // may be null
+ auto trace() const -> ownvec; // may be empty, origin first
+};
+
+
+// Modules
+
+template class WASM_API_EXTERN Shared;
+
+class WASM_API_EXTERN Module : public Ref {
+ friend class destroyer;
+ void destroy();
+
+protected:
+ Module() = default;
+ ~Module() = default;
+
+public:
+ static auto validate(Store*, const vec& binary) -> bool;
+ static auto make(Store*, const vec& binary) -> own;
+ auto copy() const -> own;
+
+ auto imports() const -> ownvec;
+ auto exports() const -> ownvec;
+
+ auto share() const -> own>;
+ static auto obtain(Store*, const Shared*) -> own;
+
+ auto serialize() const -> vec;
+ static auto deserialize(Store*, const vec&) -> own;
+};
+
+
+// Shared objects
+
+template<>
+class WASM_API_EXTERN Shared {
+ friend class destroyer;
+ void destroy();
+
+protected:
+ Shared() = default;
+ ~Shared() = default;
+};
+
+
+// Foreign Objects
+
+class WASM_API_EXTERN Foreign : public Ref {
+ friend class destroyer;
+ void destroy();
+
+protected:
+ Foreign() = default;
+ ~Foreign() = default;
+
+public:
+ static auto make(Store*) -> own;
+ auto copy() const -> own;
+};
+
+
+// Externals
+
+class Func;
+class Global;
+class Table;
+class Memory;
+
+class WASM_API_EXTERN Extern : public Ref {
+ friend class destroyer;
+ void destroy();
+
+protected:
+ Extern() = default;
+ ~Extern() = default;
+
+public:
+ auto copy() const -> own;
+
+ auto kind() const -> ExternKind;
+ auto type() const -> own;
+
+ auto func() -> Func*;
+ auto global() -> Global*;
+ auto table() -> Table*;
+ auto memory() -> Memory*;
+
+ auto func() const -> const Func*;
+ auto global() const -> const Global*;
+ auto table() const -> const Table*;
+ auto memory() const -> const Memory*;
+};
+
+
+// Function Instances
+
+class WASM_API_EXTERN Func : public Extern {
+ friend class destroyer;
+ void destroy();
+
+protected:
+ Func() = default;
+ ~Func() = default;
+
+public:
+ using callback = auto (*)(const vec&, vec&) -> own;
+ using callback_with_env = auto (*)(void*, const vec&, vec&) -> own;
+
+ static auto make(Store*, const FuncType*, callback) -> own;
+ static auto make(Store*, const FuncType*, callback_with_env,
+ void*, void (*finalizer)(void*) = nullptr) -> own;
+ auto copy() const -> own;
+
+ auto type() const -> own;
+ auto param_arity() const -> size_t;
+ auto result_arity() const -> size_t;
+
+ auto call(const vec&, vec&) const -> own;
+};
+
+
+// Global Instances
+
+class WASM_API_EXTERN Global : public Extern {
+ friend class destroyer;
+ void destroy();
+
+protected:
+ Global() = default;
+ ~Global() = default;
+
+ public:
+ static auto make(Store*, const GlobalType*, const Val&) -> own;
+ auto copy() const -> own;
+
+ auto type() const -> own;
+ auto get() const -> Val;
+ void set(const Val&);
+};
+
+
+// Table Instances
+
+class WASM_API_EXTERN Table : public Extern {
+ friend class destroyer;
+ void destroy();
+
+protected:
+ Table() = default;
+ ~Table() = default;
+
+public:
+ using size_t = uint32_t;
+
+ static auto make(
+ Store*, const TableType*, const Ref* init = nullptr) -> own];
+ auto copy() const -> own;
+
+ auto type() const -> own;
+ auto get(size_t index) const -> own[;
+ auto set(size_t index, const Ref*) -> bool;
+ auto size() const -> size_t;
+ auto grow(size_t delta, const Ref* init = nullptr) -> bool;
+};
+
+
+// Memory Instances
+
+class WASM_API_EXTERN Memory : public Extern {
+ friend class destroyer;
+ void destroy();
+
+protected:
+ Memory() = default;
+ ~Memory() = default;
+
+public:
+ static auto make(Store*, const MemoryType*) -> own;
+ auto copy() const -> own;
+
+ using pages_t = uint32_t;
+
+ static const size_t page_size = 0x10000;
+
+ auto type() const -> own;
+ auto data() const -> byte_t*;
+ auto data_size() const -> size_t;
+ auto size() const -> pages_t;
+ auto grow(pages_t delta) -> bool;
+};
+
+
+// Module Instances
+
+class WASM_API_EXTERN Instance : public Ref {
+ friend class destroyer;
+ void destroy();
+
+protected:
+ Instance() = default;
+ ~Instance() = default;
+
+public:
+ static auto make(
+ Store*, const Module*, const vec&, own* = nullptr
+ ) -> own;
+ auto copy() const -> own;
+
+ auto exports() const -> ownvec;
+};
+
+
+///////////////////////////////////////////////////////////////////////////////
+
+} // namespace wasm
+
+#endif // #ifdef WASM_HH
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime.h b/vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/wasmtime.h
similarity index 87%
rename from vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime.h
rename to vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/wasmtime.h
index c70fd8b7..f585b1a7 100644
--- a/vendor/github.com/bytecodealliance/wasmtime-go/v3/build/include/wasmtime.h
+++ b/vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/wasmtime.h
@@ -1,13 +1,17 @@
/**
- * \mainpage Wasmtime C API
+ * \mainpage Wasmtime C/C++ API
*
- * This documentation is an overview and API reference for the C API of
+ * This documentation is an overview and API reference for the C and C++ API of
* Wasmtime. The C API is spread between three different header files:
*
* * \ref wasmtime.h
* * \ref wasi.h
* * \ref wasm.h
*
+ * The C++ API builds on the C API and thus is represented in just header files:
+ *
+ * * \ref wasmtime.hh
+ *
* The \ref wasmtime.h header file includes all the other header files and is
* the main header file you'll likely be using. The \ref wasm.h header file
* comes directly from the
@@ -57,7 +61,8 @@
*
* * Linux - `-lpthread -ldl -lm`
* * macOS - no extra flags needed
- * * Windows - `ws2_32.lib advapi32.lib userenv.lib ntdll.lib shell32.lib ole32.lib bcrypt.lib`
+ * * Windows - `ws2_32.lib advapi32.lib userenv.lib ntdll.lib shell32.lib
+ * ole32.lib bcrypt.lib`
*
* ## Building from Source
*
@@ -89,7 +94,7 @@
* issue](https://github.com/bytecodealliance/wasmtime/issues/new).
*
* * [C embedding
- * examples](https://bytecodealliance.github.io/wasmtime/examples-c-embed.html)
+ * examples](https://bytecodealliance.github.io/wasmtime/lang-c.html)
* are available online and are tested from the Wasmtime repository itself.
*
* * [Contribution documentation for
@@ -151,9 +156,7 @@
* provided access to it. For example in a host function created with
* #wasmtime_func_new you can use #wasmtime_context_t in the host function
* callback. This is because an argument, a #wasmtime_caller_t, provides access
- * to #wasmtime_context_t. On the other hand a destructor passed to
- * #wasmtime_externref_new, however, cannot use a #wasmtime_context_t because
- * it was not provided access to one. Doing so may lead to memory unsafety.
+ * to #wasmtime_context_t.
*
* ### Stores
*
@@ -181,6 +184,9 @@
#define WASMTIME_API_H
#include
+#include
+// clang-format off
+// IWYU pragma: begin_exports
#include
#include
#include
@@ -191,38 +197,33 @@
#include
#include
#include
+#include
+#include
#include
#include
#include
#include
-
-#ifdef __cplusplus
-extern "C" {
-#endif
+#include
+#include
+#include
+// IWYU pragma: end_exports
+// clang-format on
/**
- * \brief Converts from the text format of WebAssembly to to the binary format.
- *
- * \param wat this it the input pointer with the WebAssembly Text Format inside of
- * it. This will be parsed and converted to the binary format.
- * \param wat_len this it the length of `wat`, in bytes.
- * \param ret if the conversion is successful, this byte vector is filled in with
- * the WebAssembly binary format.
- *
- * \return a non-null error if parsing fails, or returns `NULL`. If parsing
- * fails then `ret` isn't touched.
- *
- * This function does not take ownership of `wat`, and the caller is expected to
- * deallocate the returned #wasmtime_error_t and #wasm_byte_vec_t.
+ * \brief Wasmtime version string.
*/
-WASM_API_EXTERN wasmtime_error_t* wasmtime_wat2wasm(
- const char *wat,
- size_t wat_len,
- wasm_byte_vec_t *ret
-);
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
+#define WASMTIME_VERSION "39.0.0"
+/**
+ * \brief Wasmtime major version number.
+ */
+#define WASMTIME_VERSION_MAJOR 39
+/**
+ * \brief Wasmtime minor version number.
+ */
+#define WASMTIME_VERSION_MINOR 0
+/**
+ * \brief Wasmtime patch version number.
+ */
+#define WASMTIME_VERSION_PATCH 0
#endif // WASMTIME_API_H
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/wasmtime.hh b/vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/wasmtime.hh
new file mode 100644
index 00000000..9a7c11cb
--- /dev/null
+++ b/vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/wasmtime.hh
@@ -0,0 +1,55 @@
+/**
+ * This project is a C++ API for
+ * [Wasmtime](https://github.com/bytecodealliance/wasmtime). Support for the
+ * C++ API is exclusively built on the [C API of
+ * Wasmtime](https://docs.wasmtime.dev/c-api/), so the C++ support for this is
+ * just a set of header files. Like the C API the C++ API is split into
+ * separate headers to be included on an as-needed basis. Types shouldn't
+ * need to use the C API, but if something is missing please feel free to file
+ * an issue.
+ *
+ * Examples can be [found
+ * online](https://github.com/bytecodealliance/wasmtime/tree/main/examples)
+ * and otherwise be sure to check out the
+ * [README](https://github.com/bytecodealliance/wasmtime/blob/main/crates/c-api/README.md)
+ * for simple usage instructions. Otherwise you can dive right in to the
+ * reference documentation of \ref wasmtime.hh
+ *
+ * \example hello.cc
+ * \example gcd.cc
+ * \example linking.cc
+ * \example memory.cc
+ * \example multimemory.cc
+ * \example interrupt.cc
+ * \example multi.cc
+ * \example anyref.cc
+ * \example externref.cc
+ * \example serialize.cc
+ * \example threads.cc
+ */
+
+/**
+ * \file wasmtime.hh
+ */
+
+#ifndef WASMTIME_HH
+#define WASMTIME_HH
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#endif // WASMTIME_HH
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/wasmtime/async.h b/vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/wasmtime/async.h
new file mode 100644
index 00000000..06327ca0
--- /dev/null
+++ b/vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/wasmtime/async.h
@@ -0,0 +1,374 @@
+/**
+ * \file wasmtime/async.h
+ *
+ * \brief Wasmtime async functionality
+ *
+ * Async functionality in Wasmtime is well documented here:
+ * https://docs.wasmtime.dev/api/wasmtime/struct.Config.html#method.async_support
+ *
+ * All WebAssembly executes synchronously, but an async support enables the Wasm
+ * code be executed on a separate stack, so it can be paused and resumed. There
+ * are three mechanisms for yielding control from wasm to the caller: fuel,
+ * epochs, and async host functions.
+ *
+ * When WebAssembly is executed, a `wasmtime_call_future_t` is returned. This
+ * struct represents the state of the execution and each call to
+ * `wasmtime_call_future_poll` will execute the WebAssembly code on a separate
+ * stack until the function returns or yields control back to the caller.
+ *
+ * It's expected these futures are pulled in a loop until completed, at which
+ * point the future should be deleted. Functions that return a
+ * `wasmtime_call_future_t` are special in that all parameters to that function
+ * should not be modified in any way and must be kept alive until the future is
+ * deleted. This includes concurrent calls for a single store - another function
+ * on a store should not be called while there is a `wasmtime_call_future_t`
+ * alive.
+ *
+ * As for asynchronous host calls - the reverse contract is upheld. Wasmtime
+ * will keep all parameters to the function alive and unmodified until the
+ * `wasmtime_func_async_continuation_callback_t` returns true.
+ *
+ */
+
+#ifndef WASMTIME_ASYNC_H
+#define WASMTIME_ASYNC_H
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+#ifdef WASMTIME_FEATURE_ASYNC
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * \brief Whether or not to enable support for asynchronous functions in
+ * Wasmtime.
+ *
+ * When enabled, the config can optionally define host functions with async.
+ * Instances created and functions called with this Config must be called
+ * through their asynchronous APIs, however. For example using
+ * wasmtime_func_call will panic when used with this config.
+ *
+ * For more information see the Rust documentation at
+ * https://docs.wasmtime.dev/api/wasmtime/struct.Config.html#method.async_support
+ */
+WASMTIME_CONFIG_PROP(void, async_support, bool)
+
+/**
+ * \brief Configures the size of the stacks used for asynchronous execution.
+ *
+ * This setting configures the size of the stacks that are allocated for
+ * asynchronous execution.
+ *
+ * The value cannot be less than max_wasm_stack.
+ *
+ * The amount of stack space guaranteed for host functions is async_stack_size -
+ * max_wasm_stack, so take care not to set these two values close to one
+ * another; doing so may cause host functions to overflow the stack and abort
+ * the process.
+ *
+ * By default this option is 2 MiB.
+ *
+ * For more information see the Rust documentation at
+ * https://docs.wasmtime.dev/api/wasmtime/struct.Config.html#method.async_stack_size
+ */
+WASMTIME_CONFIG_PROP(void, async_stack_size, uint64_t)
+
+/**
+ * \brief Configures a Store to yield execution of async WebAssembly code
+ * periodically.
+ *
+ * When a Store is configured to consume fuel with
+ * `wasmtime_config_consume_fuel` this method will configure what happens when
+ * fuel runs out. Specifically executing WebAssembly will be suspended and
+ * control will be yielded back to the caller.
+ *
+ * This is only suitable with use of a store associated with an async config
+ * because only then are futures used and yields are possible.
+ *
+ * \param context the context for the store to configure.
+ * \param interval the amount of fuel at which to yield. A value of 0 will
+ * disable yielding.
+ */
+WASM_API_EXTERN wasmtime_error_t *
+wasmtime_context_fuel_async_yield_interval(wasmtime_context_t *context,
+ uint64_t interval);
+
+/**
+ * \brief Configures epoch-deadline expiration to yield to the async caller and
+ * the update the deadline.
+ *
+ * This is only suitable with use of a store associated with an async config
+ * because only then are futures used and yields are possible.
+ *
+ * See the Rust documentation for more:
+ * https://docs.wasmtime.dev/api/wasmtime/struct.Store.html#method.epoch_deadline_async_yield_and_update
+ */
+WASM_API_EXTERN wasmtime_error_t *
+wasmtime_context_epoch_deadline_async_yield_and_update(
+ wasmtime_context_t *context, uint64_t delta);
+
+/**
+ * The callback to determine a continuation's current state.
+ *
+ * Return true if the host call has completed, otherwise false will
+ * continue to yield WebAssembly execution.
+ */
+typedef bool (*wasmtime_func_async_continuation_callback_t)(void *env);
+
+/**
+ * A continuation for the current state of the host function's execution.
+ */
+typedef struct wasmtime_async_continuation_t {
+ /// Callback for if the async function has completed.
+ wasmtime_func_async_continuation_callback_t callback;
+ /// User-provided argument to pass to the callback.
+ void *env;
+ /// A finalizer for the user-provided *env
+ void (*finalizer)(void *);
+} wasmtime_async_continuation_t;
+
+/**
+ * \brief Callback signature for #wasmtime_linker_define_async_func.
+ *
+ * This is a host function that returns a continuation to be called later.
+ *
+ * All the arguments to this function will be kept alive until the continuation
+ * returns that it has errored or has completed.
+ *
+ * \param env user-provided argument passed to
+ * #wasmtime_linker_define_async_func
+ * \param caller a temporary object that can only be used during this function
+ * call. Used to acquire #wasmtime_context_t or caller's state
+ * \param args the arguments provided to this function invocation
+ * \param nargs how many arguments are provided
+ * \param results where to write the results of this function
+ * \param nresults how many results must be produced
+ * \param trap_ret if assigned a not `NULL` value then the called
+ * function will trap with the returned error. Note that ownership of
+ * trap is transferred to wasmtime.
+ * \param continuation_ret the returned continuation
+ * that determines when the async function has completed executing.
+ *
+ * Only supported for async stores.
+ *
+ * See #wasmtime_func_callback_t for more information.
+ */
+typedef void (*wasmtime_func_async_callback_t)(
+ void *env, wasmtime_caller_t *caller, const wasmtime_val_t *args,
+ size_t nargs, wasmtime_val_t *results, size_t nresults,
+ wasm_trap_t **trap_ret, wasmtime_async_continuation_t *continuation_ret);
+
+/**
+ * \brief The structure representing a asynchronously running function.
+ *
+ * This structure is always owned by the caller and must be deleted using
+ * #wasmtime_call_future_delete.
+ *
+ * Functions that return this type require that the parameters to the function
+ * are unmodified until this future is destroyed.
+ */
+typedef struct wasmtime_call_future wasmtime_call_future_t;
+
+/**
+ * \brief Executes WebAssembly in the function.
+ *
+ * Returns true if the function call has completed. After this function returns
+ * true, it should *not* be called again for a given future.
+ *
+ * This function returns false if execution has yielded either due to being out
+ * of fuel (see wasmtime_context_fuel_async_yield_interval), or the epoch has
+ * been incremented enough (see
+ * wasmtime_context_epoch_deadline_async_yield_and_update). The function may
+ * also return false if asynchronous host functions have been called, which then
+ * calling this function will call the continuation from the async host
+ * function.
+ *
+ * For more see the information at
+ * https://docs.wasmtime.dev/api/wasmtime/struct.Config.html#asynchronous-wasm
+ *
+ */
+WASM_API_EXTERN bool wasmtime_call_future_poll(wasmtime_call_future_t *future);
+
+/**
+ * /brief Frees the underlying memory for a future.
+ *
+ * All wasmtime_call_future_t are owned by the caller and should be deleted
+ * using this function.
+ */
+WASM_API_EXTERN void
+wasmtime_call_future_delete(wasmtime_call_future_t *future);
+
+/**
+ * \brief Invokes this function with the params given, returning the results
+ * asynchronously.
+ *
+ * This function is the same as wasmtime_func_call except that it is
+ * asynchronous. This is only compatible with stores associated with an
+ * asynchronous config.
+ *
+ * The result is a future that is owned by the caller and must be deleted via
+ * #wasmtime_call_future_delete.
+ *
+ * The `args` and `results` pointers may be `NULL` if the corresponding length
+ * is zero. The `trap_ret` and `error_ret` pointers may *not* be `NULL`.
+ *
+ * Does not take ownership of #wasmtime_val_t arguments or #wasmtime_val_t
+ * results, and all parameters to this function must be kept alive and not
+ * modified until the returned #wasmtime_call_future_t is deleted. This includes
+ * the context and store parameters. Only a single future can be alive for a
+ * given store at a single time (meaning only call this function after the
+ * previous call's future was deleted).
+ *
+ * See the header documentation for for more information.
+ *
+ * For more information see the Rust documentation at
+ * https://docs.wasmtime.dev/api/wasmtime/struct.Func.html#method.call_async
+ */
+WASM_API_EXTERN wasmtime_call_future_t *wasmtime_func_call_async(
+ wasmtime_context_t *context, const wasmtime_func_t *func,
+ const wasmtime_val_t *args, size_t nargs, wasmtime_val_t *results,
+ size_t nresults, wasm_trap_t **trap_ret, wasmtime_error_t **error_ret);
+
+/**
+ * \brief Defines a new async function in this linker.
+ *
+ * This function behaves similar to #wasmtime_linker_define_func, except it
+ * supports async callbacks.
+ *
+ * The callback `cb` will be invoked on another stack (fiber for Windows).
+ */
+WASM_API_EXTERN wasmtime_error_t *wasmtime_linker_define_async_func(
+ wasmtime_linker_t *linker, const char *module, size_t module_len,
+ const char *name, size_t name_len, const wasm_functype_t *ty,
+ wasmtime_func_async_callback_t cb, void *data, void (*finalizer)(void *));
+
+/**
+ * \brief Instantiates a #wasm_module_t with the items defined in this linker
+ * for an async store.
+ *
+ * This is the same as #wasmtime_linker_instantiate but used for async stores
+ * (which requires functions are called asynchronously). The returning
+ * #wasmtime_call_future_t must be polled using #wasmtime_call_future_poll, and
+ * is owned and must be deleted using #wasmtime_call_future_delete.
+ *
+ * The `trap_ret` and `error_ret` pointers may *not* be `NULL` and the returned
+ * memory is owned by the caller.
+ *
+ * All arguments to this function must outlive the returned future and be
+ * unmodified until the future is deleted.
+ */
+WASM_API_EXTERN wasmtime_call_future_t *wasmtime_linker_instantiate_async(
+ const wasmtime_linker_t *linker, wasmtime_context_t *store,
+ const wasmtime_module_t *module, wasmtime_instance_t *instance,
+ wasm_trap_t **trap_ret, wasmtime_error_t **error_ret);
+
+/**
+ * \brief Instantiates instance within the given store.
+ *
+ * This will also run the function's startup function, if there is one.
+ *
+ * For more information on async instantiation see
+ * #wasmtime_linker_instantiate_async.
+ *
+ * \param instance_pre the pre-initialized instance
+ * \param store the store in which to create the instance
+ * \param instance where to store the returned instance
+ * \param trap_ret where to store the returned trap
+ * \param error_ret where to store the returned trap
+ *
+ * The `trap_ret` and `error_ret` pointers may *not* be `NULL` and the returned
+ * memory is owned by the caller.
+ *
+ * All arguments to this function must outlive the returned future and be
+ * unmodified until the future is deleted.
+ */
+WASM_API_EXTERN wasmtime_call_future_t *wasmtime_instance_pre_instantiate_async(
+ const wasmtime_instance_pre_t *instance_pre, wasmtime_context_t *store,
+ wasmtime_instance_t *instance, wasm_trap_t **trap_ret,
+ wasmtime_error_t **error_ret);
+
+/**
+ * A callback to get the top of the stack address and the length of the stack,
+ * excluding guard pages.
+ *
+ * For more information about the parameters see the Rust documentation at
+ * https://docs.wasmtime.dev/api/wasmtime/trait.StackMemory.html
+ */
+typedef uint8_t *(*wasmtime_stack_memory_get_callback_t)(void *env,
+ size_t *out_len);
+
+/**
+ * A Stack instance created from a #wasmtime_new_stack_memory_callback_t.
+ *
+ * For more information see the Rust documentation at
+ * https://docs.wasmtime.dev/api/wasmtime/trait.StackMemory.html
+ */
+typedef struct {
+ /// User provided value to be passed to get_memory and grow_memory
+ void *env;
+ /// Callback to get the memory and size of this LinearMemory
+ wasmtime_stack_memory_get_callback_t get_stack_memory;
+ /// An optional finalizer for env
+ void (*finalizer)(void *);
+} wasmtime_stack_memory_t;
+
+/**
+ * A callback to create a new StackMemory from the specified parameters.
+ *
+ * The result should be written to `stack_ret` and wasmtime will own the values
+ * written into that struct.
+ *
+ * This callback must be thread-safe.
+ *
+ * For more information about the parameters see the Rust documentation at
+ * https://docs.wasmtime.dev/api/wasmtime/trait.StackCreator.html#tymethod.new_stack
+ */
+typedef wasmtime_error_t *(*wasmtime_new_stack_memory_callback_t)(
+ void *env, size_t size, bool zeroed, wasmtime_stack_memory_t *stack_ret);
+
+/**
+ * A representation of custom stack creator.
+ *
+ * For more information see the Rust documentation at
+ * https://docs.wasmtime.dev/api/wasmtime/trait.StackCreator.html
+ */
+typedef struct {
+ /// User provided value to be passed to new_stack
+ void *env;
+ /// The callback to create a new stack, must be thread safe
+ wasmtime_new_stack_memory_callback_t new_stack;
+ /// An optional finalizer for env.
+ void (*finalizer)(void *);
+} wasmtime_stack_creator_t;
+
+/**
+ * Sets a custom stack creator.
+ *
+ * Custom memory creators are used when creating creating async instance stacks
+ * for the on-demand instance allocation strategy.
+ *
+ * The config does **not** take ownership of the #wasmtime_stack_creator_t
+ * passed in, but instead copies all the values in the struct.
+ *
+ * For more information see the Rust documentation at
+ * https://docs.wasmtime.dev/api/wasmtime/struct.Config.html#method.with_host_stack
+ */
+WASM_API_EXTERN void
+wasmtime_config_host_stack_creator_set(wasm_config_t *,
+ wasmtime_stack_creator_t *);
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif // WASMTIME_FEATURE_ASYNC
+
+#endif // WASMTIME_ASYNC_H
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/wasmtime/component.h b/vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/wasmtime/component.h
new file mode 100644
index 00000000..0eadb270
--- /dev/null
+++ b/vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/wasmtime/component.h
@@ -0,0 +1,11 @@
+#ifndef WASMTIME_COMPONENT_H
+#define WASMTIME_COMPONENT_H
+
+#include
+#include
+#include
+#include
+#include
+#include
+
+#endif // WASMTIME_COMPONENT_H
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/wasmtime/component.hh b/vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/wasmtime/component.hh
new file mode 100644
index 00000000..b0e86c2f
--- /dev/null
+++ b/vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/wasmtime/component.hh
@@ -0,0 +1,13 @@
+// Convenience header to include all of `wasmtime/component/*.hh`.
+
+#ifndef WASMTIME_COMPONENT_HH
+#define WASMTIME_COMPONENT_HH
+
+#include
+#include
+#include
+#include
+#include
+#include
+
+#endif // WASMTIME_COMPONENT_HH
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/wasmtime/component/component.h b/vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/wasmtime/component/component.h
new file mode 100644
index 00000000..de22e7fd
--- /dev/null
+++ b/vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/wasmtime/component/component.h
@@ -0,0 +1,163 @@
+/// \file wasmtime/component/component.h
+
+#ifndef WASMTIME_COMPONENT_COMPONENT_H
+#define WASMTIME_COMPONENT_COMPONENT_H
+
+#include
+#include
+#include
+#include
+
+#ifdef WASMTIME_FEATURE_COMPONENT_MODEL
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/// Representation of a component in the component model.
+typedef struct wasmtime_component_t wasmtime_component_t;
+
+#ifdef WASMTIME_FEATURE_COMPILER
+
+/**
+ * \brief Compiles a WebAssembly binary into a #wasmtime_component_t
+ *
+ * This function will compile a WebAssembly binary into an owned
+ #wasmtime_component_t.
+ *
+ * It requires a component binary, such as what is produced by Rust `cargo
+ component` tooling.
+ *
+ * This function does not take ownership of any of its arguments, but the
+ * returned error and component are owned by the caller.
+
+ * \param engine the #wasm_engine_t that will create the component
+ * \param buf the address of the buffer containing the WebAssembly binary
+ * \param len the length of the buffer containing the WebAssembly binary
+ * \param component_out on success, contains the address of the created
+ * component
+ *
+ * \return NULL on success, else a #wasmtime_error_t describing the error
+ */
+WASM_API_EXTERN wasmtime_error_t *
+wasmtime_component_new(const wasm_engine_t *engine, const uint8_t *buf,
+ size_t len, wasmtime_component_t **component_out);
+
+/**
+ * \brief This function serializes compiled component artifacts as blob data.
+ *
+ * \param component the component
+ * \param ret if the conversion is successful, this byte vector is filled in
+ * with the serialized compiled component.
+ *
+ * \return a non-null error if parsing fails, or returns `NULL`. If parsing
+ * fails then `ret` isn't touched.
+ *
+ * This function does not take ownership of `component`, and the caller is
+ * expected to deallocate the returned #wasmtime_error_t and #wasm_byte_vec_t.
+ */
+WASM_API_EXTERN wasmtime_error_t *
+wasmtime_component_serialize(const wasmtime_component_t *component,
+ wasm_byte_vec_t *ret);
+
+#endif // WASMTIME_FEATURE_COMPILER
+
+/**
+ * \brief Build a component from serialized data.
+ *
+ * This function does not take ownership of any of its arguments, but the
+ * returned error and component are owned by the caller.
+ *
+ * This function is not safe to receive arbitrary user input. See the Rust
+ * documentation for more information on what inputs are safe to pass in here
+ * (e.g. only that of `wasmtime_component_serialize`)
+ */
+WASM_API_EXTERN wasmtime_error_t *
+wasmtime_component_deserialize(const wasm_engine_t *engine, const uint8_t *buf,
+ size_t len,
+ wasmtime_component_t **component_out);
+
+/**
+ * \brief Deserialize a component from an on-disk file.
+ *
+ * This function is the same as #wasmtime_component_deserialize except that it
+ * reads the data for the serialized component from the path on disk. This can
+ * be faster than the alternative which may require copying the data around.
+ *
+ * This function does not take ownership of any of its arguments, but the
+ * returned error and component are owned by the caller.
+ *
+ * This function is not safe to receive arbitrary user input. See the Rust
+ * documentation for more information on what inputs are safe to pass in here
+ * (e.g. only that of `wasmtime_component_serialize`)
+ */
+WASM_API_EXTERN wasmtime_error_t *
+wasmtime_component_deserialize_file(const wasm_engine_t *engine,
+ const char *path,
+ wasmtime_component_t **component_out);
+
+/**
+ * \brief Creates a shallow clone of the specified component, increasing the
+ * internal reference count.
+ */
+WASM_API_EXTERN wasmtime_component_t *
+wasmtime_component_clone(const wasmtime_component_t *component);
+
+/**
+ * \brief Returns the type of this component.
+ *
+ * The returned pointer must be deallocatd with
+ * `wasmtime_component_type_delete`.
+ */
+WASM_API_EXTERN wasmtime_component_type_t *
+wasmtime_component_type(const wasmtime_component_t *component);
+
+/**
+ * \brief Deletes a #wasmtime_component_t created by #wasmtime_component_new
+ *
+ * \param component the component to delete
+ */
+WASM_API_EXTERN void wasmtime_component_delete(wasmtime_component_t *component);
+
+/// A value which represents a known export of a component.
+typedef struct wasmtime_component_export_index_t
+ wasmtime_component_export_index_t;
+
+/**
+ * \brief Looks up a specific export of this component by \p name optionally
+ * nested within the \p instance provided.
+ *
+ * \param component the component to look up \p name in
+ * \param instance_export_index optional (i.e. nullable) instance to look up in
+ * \param name the name of the export
+ * \param name_len length of \p name in bytes
+ * \return export index if found, else NULL
+ */
+WASM_API_EXTERN wasmtime_component_export_index_t *
+wasmtime_component_get_export_index(
+ const wasmtime_component_t *component,
+ const wasmtime_component_export_index_t *instance_export_index,
+ const char *name, size_t name_len);
+
+/**
+ * \brief Creates a new separately-owned copy of the specified index.
+ */
+WASM_API_EXTERN wasmtime_component_export_index_t *
+wasmtime_component_export_index_clone(
+ const wasmtime_component_export_index_t *index);
+
+/**
+ * \brief Deletes a #wasmtime_component_export_index_t
+ *
+ * \param export_index the export index to delete
+ */
+WASM_API_EXTERN void wasmtime_component_export_index_delete(
+ wasmtime_component_export_index_t *export_index);
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif // WASMTIME_FEATURE_COMPONENT_MODEL
+
+#endif // WASMTIME_COMPONENT_COMPONENT_H
diff --git a/vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/wasmtime/component/component.hh b/vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/wasmtime/component/component.hh
new file mode 100644
index 00000000..0463516d
--- /dev/null
+++ b/vendor/github.com/bytecodealliance/wasmtime-go/v39/build/include/wasmtime/component/component.hh
@@ -0,0 +1,175 @@
+/**
+ * \file wasmtime/component/component.hh
+ */
+
+#ifndef WASMTIME_COMPONENT_COMPONENT_HH
+#define WASMTIME_COMPONENT_COMPONENT_HH
+
+#include
+
+#ifdef WASMTIME_FEATURE_COMPONENT_MODEL
+
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+namespace wasmtime {
+namespace component {
+
+/**
+ * \brief An index to an exported item within a particular component.
+ *
+ * This structure is acquired from a `Component` and used to lookup exports on
+ * instances.
+ */
+class ExportIndex {
+ WASMTIME_CLONE_WRAPPER(ExportIndex, wasmtime_component_export_index);
+};
+
+/**
+ * \brief Representation of a compiled WebAssembly component.
+ */
+class Component {
+ WASMTIME_CLONE_WRAPPER(Component, wasmtime_component);
+
+#ifdef WASMTIME_FEATURE_COMPILER
+ /**
+ * \brief Compiles a component from the WebAssembly text format.
+ *
+ * This function will automatically use `wat2wasm` on the input and then
+ * delegate to the #compile function.
+ */
+ static Result compile(Engine &engine, std::string_view wat) {
+ auto wasm = wat2wasm(wat);
+ if (!wasm) {
+ return wasm.err();
+ }
+ auto bytes = wasm.ok();
+ return compile(engine, bytes);
+ }
+
+ /**
+ * \brief Compiles a component from the WebAssembly binary format.
+ *
+ * This function compiles the provided WebAssembly binary specified by `wasm`
+ * within the compilation settings configured by `engine`. This method is
+ * synchronous and will not return until the component has finished compiling.
+ *
+ * This function can fail if the WebAssembly binary is invalid or doesn't
+ * validate (or similar). Note that this API does not compile WebAssembly
+ * modules, which is done with `Module` instead of `Component`.
+ */
+ static Result compile(Engine &engine, Span wasm) {
+ wasmtime_component_t *ret = nullptr;
+ auto *error =
+ wasmtime_component_new(engine.capi(), wasm.data(), wasm.size(), &ret);
+ if (error != nullptr) {
+ return Error(error);
+ }
+ return Component(ret);
+ }
+#endif // WASMTIME_FEATURE_COMPILER
+
+ /**
+ * \brief Deserializes a previous list of bytes created with `serialize`.
+ *
+ * This function is intended to be much faster than `compile` where it uses
+ * the artifacts of a previous compilation to quickly create an in-memory
+ * component ready for instantiation.
+ *
+ * It is not safe to pass arbitrary input to this function, it is only safe to
+ * pass in output from previous calls to `serialize`. For more information see
+ * the Rust documentation -
+ * https://docs.wasmtime.dev/api/wasmtime/struct.Module.html#method.deserialize
+ */
+ static Result deserialize(Engine &engine, Span]