From d2f13e7564059cb4be90650b570b93e4acc964a9 Mon Sep 17 00:00:00 2001 From: kim Date: Sat, 10 May 2025 14:27:25 +0000 Subject: [PATCH] [chore] update direct Go dependencies (#4162) - update gruf/go-stroage v0.2.0 -> v0.2.1 - update KimMachineGun/automemlimit v0.7.1 -> v0.7.2 - update miekg/dns v1.1.65 -> v1.1.66 - update ncruces/go-sqlite3 v0.25.1 -> v0.25.2 - update spf13/cast v1.7.1 -> v1.8.0 - update tdewolff/minify/v2 v2.23.1 -> v2.23.5 - update x/crypto v0.37.0 -> v0.38.0 - update x/image v0.26.0 -> v0.27.0 - update x/net v0.39.0 -> v0.40.0 - update x/oauth2 v0.29.0 -> v0.30.0 - update x/sys v0.32.0 -> v0.33.0 - update x/text v0.24.0 -> v0.25.0 Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4162 Co-authored-by: kim Co-committed-by: kim --- go.mod | 30 +- go.sum | 64 +-- vendor/codeberg.org/gruf/go-storage/test.sh | 5 +- .../automemlimit/memlimit/cgroups.go | 4 +- vendor/github.com/miekg/dns/README.md | 1 + vendor/github.com/miekg/dns/msg.go | 26 +- vendor/github.com/miekg/dns/reverse.go | 5 +- vendor/github.com/miekg/dns/scan.go | 7 + vendor/github.com/miekg/dns/types.go | 67 ++- vendor/github.com/miekg/dns/version.go | 2 +- vendor/github.com/miekg/dns/xfr.go | 7 +- .../ncruces/go-sqlite3/embed/README.md | 2 +- .../ncruces/go-sqlite3/embed/sqlite3.wasm | Bin 1398689 -> 1399642 bytes vendor/github.com/spf13/cast/.editorconfig | 15 + vendor/github.com/spf13/cast/.golangci.yaml | 39 ++ vendor/github.com/spf13/cast/README.md | 12 +- vendor/github.com/spf13/cast/cast.go | 18 + vendor/github.com/spf13/cast/caste.go | 284 ++++------ vendor/github.com/tdewolff/parse/v2/binary.go | 10 + .../tdewolff/parse/v2/binary_unix.go | 8 +- .../tdewolff/parse/v2/strconv/number.go | 30 +- vendor/golang.org/x/crypto/acme/acme.go | 4 + .../x/crypto/acme/autocert/listener.go | 32 +- vendor/golang.org/x/crypto/acme/http.go | 7 +- vendor/golang.org/x/crypto/acme/types.go | 4 + vendor/golang.org/x/crypto/ssh/mlkem.go | 187 +++++++ vendor/golang.org/x/oauth2/internal/doc.go | 2 +- vendor/golang.org/x/oauth2/internal/oauth2.go | 2 +- vendor/golang.org/x/oauth2/internal/token.go | 50 +- .../golang.org/x/oauth2/internal/transport.go | 4 +- vendor/golang.org/x/oauth2/oauth2.go | 55 +- vendor/golang.org/x/oauth2/pkce.go | 15 +- vendor/golang.org/x/oauth2/token.go | 15 +- vendor/golang.org/x/oauth2/transport.go | 24 +- vendor/golang.org/x/sync/errgroup/errgroup.go | 107 +++- vendor/golang.org/x/sys/cpu/cpu.go | 11 + .../golang.org/x/sys/cpu/cpu_linux_riscv64.go | 23 + vendor/golang.org/x/sys/cpu/cpu_riscv64.go | 12 + .../x/sys/windows/security_windows.go | 49 +- .../x/sys/windows/syscall_windows.go | 6 +- .../golang.org/x/sys/windows/types_windows.go | 212 +++++++ .../x/sys/windows/zsyscall_windows.go | 9 + .../x/tools/go/ast/astutil/imports.go | 3 +- .../x/tools/go/gcexportdata/gcexportdata.go | 5 +- .../x/tools/go/packages/external.go | 2 +- .../x/tools/go/types/typeutil/callee.go | 83 +-- .../x/tools/internal/event/label/label.go | 7 +- .../x/tools/internal/gcimporter/iexport.go | 34 +- .../x/tools/internal/gcimporter/iimport.go | 3 +- .../x/tools/internal/gocommand/invoke.go | 2 +- .../x/tools/internal/gopathwalk/walk.go | 7 +- .../x/tools/internal/imports/fix.go | 11 +- .../x/tools/internal/imports/mod.go | 5 +- .../x/tools/internal/imports/mod_cache.go | 4 +- .../x/tools/internal/imports/sortimports.go | 5 +- .../x/tools/internal/modindex/lookup.go | 4 +- .../x/tools/internal/pkgbits/decoder.go | 2 +- .../x/tools/internal/stdlib/deps.go | 528 +++++++++--------- .../x/tools/internal/stdlib/manifest.go | 7 - .../x/tools/internal/typeparams/free.go | 2 +- .../x/tools/internal/typeparams/termlist.go | 12 +- .../x/tools/internal/typeparams/typeterm.go | 3 + .../internal/typesinternal/classify_call.go | 135 +++++ .../x/tools/internal/typesinternal/types.go | 15 + vendor/modules.txt | 38 +- 65 files changed, 1586 insertions(+), 797 deletions(-) create mode 100644 vendor/github.com/spf13/cast/.editorconfig create mode 100644 vendor/github.com/spf13/cast/.golangci.yaml create mode 100644 vendor/golang.org/x/crypto/ssh/mlkem.go create mode 100644 vendor/golang.org/x/tools/internal/typesinternal/classify_call.go diff --git a/go.mod b/go.mod index 4f819cebc..c1042e76c 100644 --- a/go.mod +++ b/go.mod @@ -30,10 +30,10 @@ require ( codeberg.org/gruf/go-runners v1.6.3 codeberg.org/gruf/go-sched v1.2.4 codeberg.org/gruf/go-split v1.2.0 - codeberg.org/gruf/go-storage v0.2.0 + codeberg.org/gruf/go-storage v0.2.1 codeberg.org/gruf/go-structr v0.9.7 github.com/DmitriyVTitov/size v1.5.0 - github.com/KimMachineGun/automemlimit v0.7.1 + github.com/KimMachineGun/automemlimit v0.7.2 github.com/SherClockHolmes/webpush-go v1.4.0 github.com/buckket/go-blurhash v1.1.0 github.com/coreos/go-oidc/v3 v3.14.1 @@ -50,19 +50,19 @@ require ( github.com/jackc/pgx/v5 v5.7.4 github.com/k3a/html2text v1.2.1 github.com/microcosm-cc/bluemonday v1.0.27 - github.com/miekg/dns v1.1.65 + github.com/miekg/dns v1.1.66 github.com/minio/minio-go/v7 v7.0.91 github.com/mitchellh/mapstructure v1.5.0 - github.com/ncruces/go-sqlite3 v0.25.1 + github.com/ncruces/go-sqlite3 v0.25.2 github.com/oklog/ulid v1.3.1 github.com/pquerna/otp v1.4.0 github.com/rivo/uniseg v0.4.7 - github.com/spf13/cast v1.7.1 + github.com/spf13/cast v1.8.0 github.com/spf13/cobra v1.9.1 github.com/spf13/pflag v1.0.6 github.com/spf13/viper v1.20.1 github.com/stretchr/testify v1.10.0 - github.com/tdewolff/minify/v2 v2.23.1 + github.com/tdewolff/minify/v2 v2.23.5 github.com/technologize/otel-go-contrib v1.1.1 github.com/temoto/robotstxt v1.1.2 github.com/tetratelabs/wazero v1.9.0 @@ -82,12 +82,12 @@ require ( go.opentelemetry.io/otel/sdk/metric v1.35.0 go.opentelemetry.io/otel/trace v1.35.0 go.uber.org/automaxprocs v1.6.0 - golang.org/x/crypto v0.37.0 - golang.org/x/image v0.26.0 - golang.org/x/net v0.39.0 - golang.org/x/oauth2 v0.29.0 - golang.org/x/sys v0.32.0 - golang.org/x/text v0.24.0 + golang.org/x/crypto v0.38.0 + golang.org/x/image v0.27.0 + golang.org/x/net v0.40.0 + golang.org/x/oauth2 v0.30.0 + golang.org/x/sys v0.33.0 + golang.org/x/text v0.25.0 gopkg.in/mcuadros/go-syslog.v2 v2.3.0 gopkg.in/yaml.v3 v3.0.1 modernc.org/sqlite v1.37.0 @@ -198,7 +198,7 @@ require ( github.com/sourcegraph/conc v0.3.0 // indirect github.com/spf13/afero v1.12.0 // indirect github.com/subosito/gotenv v1.6.0 // indirect - github.com/tdewolff/parse/v2 v2.7.23 // indirect + github.com/tdewolff/parse/v2 v2.8.0 // indirect github.com/tmthrgd/go-hex v0.0.0-20190904060850-447a3041c3bc // indirect github.com/toqueteos/webbrowser v1.2.0 // indirect github.com/twitchyliquid64/golang-asm v0.15.1 // indirect @@ -227,8 +227,8 @@ require ( golang.org/x/arch v0.16.0 // indirect golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 // indirect golang.org/x/mod v0.24.0 // indirect - golang.org/x/sync v0.13.0 // indirect - golang.org/x/tools v0.31.0 // indirect + golang.org/x/sync v0.14.0 // indirect + golang.org/x/tools v0.32.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20250218202821-56aae31c358a // indirect google.golang.org/grpc v1.71.0 // indirect diff --git a/go.sum b/go.sum index a2f0a441f..df8fdf527 100644 --- a/go.sum +++ b/go.sum @@ -48,16 +48,16 @@ codeberg.org/gruf/go-sched v1.2.4 h1:ddBB9o0D/2oU8NbQ0ldN5aWxogpXPRBATWi58+p++Hw codeberg.org/gruf/go-sched v1.2.4/go.mod h1:wad6l+OcYGWMA2TzNLMmLObsrbBDxdJfEy5WvTgBjNk= codeberg.org/gruf/go-split v1.2.0 h1:PmzL23nVEVHm8VxjsJmv4m4wGQz2bGgQw52dgSSj65c= codeberg.org/gruf/go-split v1.2.0/go.mod h1:0rejWJpqvOoFAd7nwm5tIXYKaAqjtFGOXmTqQV+VO38= -codeberg.org/gruf/go-storage v0.2.0 h1:mKj3Lx6AavEkuXXtxqPhdq+akW9YwrnP16yQBF7K5ZI= -codeberg.org/gruf/go-storage v0.2.0/go.mod h1:o3GzMDE5QNUaRnm/daUzFqvuAaC4utlgXDXYO79sWKU= +codeberg.org/gruf/go-storage v0.2.1 h1:AHVU+7ZKpaL6fTzcH7GU+JwY3HQVYOZ84U4HV//K1GA= +codeberg.org/gruf/go-storage v0.2.1/go.mod h1:zJ5Nd2rKv0R5vF1rYbH+IEggUx8cIv72Vj2d8e//IAw= codeberg.org/gruf/go-structr v0.9.7 h1:yQeIxTjYb6reNdgESk915twyjolydYBqat/mlZrP7bg= codeberg.org/gruf/go-structr v0.9.7/go.mod h1:9k5hYztZ4PsBS+m1v5hUTeFiVUBTLF5VA7d9cd1OEMs= codeberg.org/superseriousbusiness/go-swagger v0.31.0-gts-go1.23-fix h1:+JvBZqsQfdT+ROnk2DkvXsKQ9QBorKKKBk5fBqw62I8= codeberg.org/superseriousbusiness/go-swagger v0.31.0-gts-go1.23-fix/go.mod h1:WSigRRWEig8zV6t6Sm8Y+EmUjlzA/HoaZJ5edupq7po= github.com/DmitriyVTitov/size v1.5.0 h1:/PzqxYrOyOUX1BXj6J9OuVRVGe+66VL4D9FlUaW515g= github.com/DmitriyVTitov/size v1.5.0/go.mod h1:le6rNI4CoLQV1b9gzp1+3d7hMAD/uu2QcJ+aYbNgiU0= -github.com/KimMachineGun/automemlimit v0.7.1 h1:QcG/0iCOLChjfUweIMC3YL5Xy9C3VBeNmCZHrZfJMBw= -github.com/KimMachineGun/automemlimit v0.7.1/go.mod h1:QZxpHaGOQoYvFhv/r4u3U0JTC2ZcOwbSr11UZF46UBM= +github.com/KimMachineGun/automemlimit v0.7.2 h1:DyfHI7zLWmZPn2Wqdy2AgTiUvrGPmnYWgwhHXtAegX4= +github.com/KimMachineGun/automemlimit v0.7.2/go.mod h1:QZxpHaGOQoYvFhv/r4u3U0JTC2ZcOwbSr11UZF46UBM= github.com/Masterminds/goutils v1.1.1 h1:5nUrii3FMTL5diU80unEVvNevw1nH4+ZV4DSLVJLSYI= github.com/Masterminds/goutils v1.1.1/go.mod h1:8cTjp+g8YejhMuvIA5y2vz3BpJxksy863GQaJW2MFNU= github.com/Masterminds/semver/v3 v3.2.0/go.mod h1:qvl/7zhW3nngYb5+80sSMF+FG2BjYrf8m9wsX0PNOMQ= @@ -297,8 +297,8 @@ github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWE github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y= github.com/microcosm-cc/bluemonday v1.0.27 h1:MpEUotklkwCSLeH+Qdx1VJgNqLlpY2KXwXFM08ygZfk= github.com/microcosm-cc/bluemonday v1.0.27/go.mod h1:jFi9vgW+H7c3V0lb6nR74Ib/DIB5OBs92Dimizgw2cA= -github.com/miekg/dns v1.1.65 h1:0+tIPHzUW0GCge7IiK3guGP57VAw7hoPDfApjkMD1Fc= -github.com/miekg/dns v1.1.65/go.mod h1:Dzw9769uoKVaLuODMDZz9M6ynFU6Em65csPuoi8G0ck= +github.com/miekg/dns v1.1.66 h1:FeZXOS3VCVsKnEAd+wBkjMC3D2K+ww66Cq3VnCINuJE= +github.com/miekg/dns v1.1.66/go.mod h1:jGFzBsSNbJw6z1HYut1RKBKHA9PBdxeHrZG8J+gC2WE= github.com/minio/crc64nvme v1.0.1 h1:DHQPrYPdqK7jQG/Ls5CTBZWeex/2FMS3G5XGkycuFrY= github.com/minio/crc64nvme v1.0.1/go.mod h1:eVfm2fAzLlxMdUGc0EEBGSMmPwmXD5XiNRpnu9J3bvg= github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34= @@ -324,8 +324,8 @@ github.com/moul/http2curl v1.0.0 h1:dRMWoAtb+ePxMlLkrCbAqh4TlPHXvoGUSQ323/9Zahs= github.com/moul/http2curl v1.0.0/go.mod h1:8UbvGypXm98wA/IqH45anm5Y2Z6ep6O31QGOAZ3H0fQ= 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/ncruces/go-sqlite3 v0.25.1 h1:nRK2mZ0jLNFJco8QFZ9+dCXxOGe6Re8bbG5o8gyalr8= -github.com/ncruces/go-sqlite3 v0.25.1/go.mod h1:4BtkHRLbX5hE0PhBxJ11qETTwL7M4lk0ttru9nora1E= +github.com/ncruces/go-sqlite3 v0.25.2 h1:suu3C7y92hPqozqO8+w3K333Q1VhWyN6K3JJKXdtC2U= +github.com/ncruces/go-sqlite3 v0.25.2/go.mod h1:46HIzeCQQ+aNleAxCli+vpA2tfh7ttSnw24kQahBc1o= github.com/ncruces/go-strftime v0.1.9 h1:bY0MQC28UADQmHmaF5dgpLmImcShSi2kHU9XLdhx/f4= github.com/ncruces/go-strftime v0.1.9/go.mod h1:Fwc5htZGVVkseilnfgOVb9mKy6w1naJmn9CehxcKcls= github.com/ncruces/julianday v1.0.0 h1:fH0OKwa7NWvniGQtxdJRxAgkBMolni2BjDHaWTxqt7M= @@ -386,8 +386,8 @@ github.com/sourcegraph/conc v0.3.0/go.mod h1:Sdozi7LEKbFPqYX2/J+iBAM6HpqSLTASQIK github.com/spf13/afero v1.12.0 h1:UcOPyRBYczmFn6yvphxkn9ZEOY65cpwGKb5mL36mrqs= github.com/spf13/afero v1.12.0/go.mod h1:ZTlWwG4/ahT8W7T0WQ5uYmjI9duaLQGy3Q2OAl4sk/4= github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.7.1 h1:cuNEagBQEHWN1FnbGEjCXL2szYEXqfJPbP2HNUaca9Y= -github.com/spf13/cast v1.7.1/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cast v1.8.0 h1:gEN9K4b8Xws4EX0+a0reLmhq8moKn7ntRlQYgjPeCDk= +github.com/spf13/cast v1.8.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.9.1 h1:CXSaggrXdbHK9CF+8ywj8Amf7PBRmPCOJugH954Nnlo= github.com/spf13/cobra v1.9.1/go.mod h1:nDyEzZ8ogv936Cinf6g1RU9MRY64Ir93oCnqb9wxYW0= github.com/spf13/pflag v1.0.6 h1:jFzHGLGAlb3ruxLB8MhbI6A8+AQX/2eW4qeyNZXNp2o= @@ -410,10 +410,10 @@ github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOf github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY= github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8= github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= -github.com/tdewolff/minify/v2 v2.23.1 h1:r6sKQrumHzskWZRdhiRa+pZhn7CdBMojACNP9fuKpXQ= -github.com/tdewolff/minify/v2 v2.23.1/go.mod h1:RkUGjklq6uIsBoOdzY3ll35HKKQ2aFqLQhnanBHhDyU= -github.com/tdewolff/parse/v2 v2.7.23 h1:sCW2PNTCM1yVldh5YK/8wrpRI9rSbloUZWjAydlN2IA= -github.com/tdewolff/parse/v2 v2.7.23/go.mod h1:I7TXO37t3aSG9SlPUBefAhgIF8nt7yYUwVGgETIoBcA= +github.com/tdewolff/minify/v2 v2.23.5 h1:/P548KcpTkIOUvNg22zN83/GiaYSOIrbqtoue4I7kYM= +github.com/tdewolff/minify/v2 v2.23.5/go.mod h1:2RI9tiIrzJU1Z5EasXEPaI1MqobRyxKHOOgrRkq5oEw= +github.com/tdewolff/parse/v2 v2.8.0 h1:jW0afj6zpUGXuZTwJ7/UfP2SddyLalb/SDryjaMTkA4= +github.com/tdewolff/parse/v2 v2.8.0/go.mod h1:Hwlni2tiVNKyzR1o6nUs4FOF07URA+JLBLd6dlIXYqo= github.com/tdewolff/test v1.0.11 h1:FdLbwQVHxqG16SlkGveC0JVyrJN62COWTRyUFzfbtBE= github.com/tdewolff/test v1.0.11/go.mod h1:XPuWBzvdUzhCuxWO1ojpXsyzsA5bFoS3tO/Q3kFuTG8= github.com/technologize/otel-go-contrib v1.1.1 h1:wZH9aSPNWZWIkEh3vfaKfMb15AJ80jJ1aVj/4GZdqIw= @@ -552,12 +552,12 @@ golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliY golang.org/x/crypto v0.19.0/go.mod h1:Iy9bg/ha4yyC70EfRS8jz+B6ybOBKMaSxLj6P6oBDfU= golang.org/x/crypto v0.23.0/go.mod h1:CKFgDieR+mRhux2Lsu27y0fO304Db0wZe70UKqHu0v8= golang.org/x/crypto v0.31.0/go.mod h1:kDsLvtWBEx7MV9tJOj9bnXsPbxwJQ6csT/x4KIN4Ssk= -golang.org/x/crypto v0.37.0 h1:kJNSjF/Xp7kU0iB2Z+9viTPMW4EqqsrywMXLJOOsXSE= -golang.org/x/crypto v0.37.0/go.mod h1:vg+k43peMZ0pUMhYmVAWysMK35e6ioLh3wB8ZCAfbVc= +golang.org/x/crypto v0.38.0 h1:jt+WWG8IZlBnVbomuhg2Mdq0+BBQaHbtqHEFEigjUV8= +golang.org/x/crypto v0.38.0/go.mod h1:MvrbAqul58NNYPKnOra203SB9vpuZW0e+RRZV+Ggqjw= golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 h1:nDVHiLt8aIbd/VzvPWN6kSOPE7+F/fNFDSXLVYkE/Iw= golang.org/x/exp v0.0.0-20250305212735-054e65f0b394/go.mod h1:sIifuuw/Yco/y6yb6+bDNfyeQ/MdPUy/hKEMYQV17cM= -golang.org/x/image v0.26.0 h1:4XjIFEZWQmCZi6Wv8BoxsDhRU3RVnLX04dToTDAEPlY= -golang.org/x/image v0.26.0/go.mod h1:lcxbMFAovzpnJxzXS3nyL83K27tmqtKzIJpctK8YO5c= +golang.org/x/image v0.27.0 h1:C8gA4oWU/tKkdCfYT6T2u4faJu3MeNS5O8UPWlPF61w= +golang.org/x/image v0.27.0/go.mod h1:xbdrClrAUway1MUTEZDq9mz/UpRwYAkFFNUslZtcB+g= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= golang.org/x/mod v0.12.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs= @@ -580,10 +580,10 @@ golang.org/x/net v0.10.0/go.mod h1:0qNGK6F8kojg2nk9dLZ2mShWaEBan6FAoqfSigmmuDg= golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/net v0.21.0/go.mod h1:bIjVDfnllIU7BJ2DNgfnXvpSvtn8VRwhlsaeUTyUS44= golang.org/x/net v0.25.0/go.mod h1:JkAGAh7GEvH74S6FOH42FLoXpXbE/aqXSrIQjXgsiwM= -golang.org/x/net v0.39.0 h1:ZCu7HMWDxpXpaiKdhzIfaltL9Lp31x/3fCP11bc6/fY= -golang.org/x/net v0.39.0/go.mod h1:X7NRbYVEA+ewNkCNyJ513WmMdQ3BineSwVtN2zD/d+E= -golang.org/x/oauth2 v0.29.0 h1:WdYw2tdTK1S8olAzWHdgeqfy+Mtm9XNhv/xJsY65d98= -golang.org/x/oauth2 v0.29.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8= +golang.org/x/net v0.40.0 h1:79Xs7wF06Gbdcg4kdCCIQArK11Z1hr5POQ6+fIYHNuY= +golang.org/x/net v0.40.0/go.mod h1:y0hY0exeL2Pku80/zKK7tpntoX23cqL3Oa6njdgRtds= +golang.org/x/oauth2 v0.30.0 h1:dnDm7JmhM45NNpd8FDDeLhK6FwqbOf4MLCM9zb1BOHI= +golang.org/x/oauth2 v0.30.0/go.mod h1:B++QgG3ZKulg6sRPGD/mqlHQs5rB3Ml9erfeDY7xKlU= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -591,8 +591,8 @@ golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sync v0.6.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= -golang.org/x/sync v0.13.0 h1:AauUjRAJ9OSnvULf/ARrrVywoJDy0YS2AwQ98I37610= -golang.org/x/sync v0.13.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= +golang.org/x/sync v0.14.0 h1:woo0S4Yywslg6hp4eUFjTVOyKt0RookbpAHG4c1HmhQ= +golang.org/x/sync v0.14.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -608,8 +608,8 @@ golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.17.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.20.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= -golang.org/x/sys v0.32.0 h1:s77OFDvIQeibCmezSnk/q6iAfkdiQaJi4VzroCFrN20= -golang.org/x/sys v0.32.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= +golang.org/x/sys v0.33.0 h1:q3i8TbbEz+JRD9ywIRlyRAQbM0qF7hu24q3teo2hbuw= +golang.org/x/sys v0.33.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k= golang.org/x/telemetry v0.0.0-20240228155512-f48c80bd79b2/go.mod h1:TeRTkGYfJXctD9OcfyVLyj2J3IxLnKwHJR8f4D8a3YE= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= @@ -620,8 +620,8 @@ golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/term v0.17.0/go.mod h1:lLRBjIVuehSbZlaOtGMbcMncT+aqLLLmKrsjNrUguwk= golang.org/x/term v0.20.0/go.mod h1:8UkIAJTvZgivsXaD6/pH6U9ecQzZ45awqEOzuCvwpFY= golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM= -golang.org/x/term v0.31.0 h1:erwDkOK1Msy6offm1mOgvspSkslFnIGsFnxOKoufg3o= -golang.org/x/term v0.31.0/go.mod h1:R4BeIy7D95HzImkxGkTW1UQTtP54tio2RyHz7PwK0aw= +golang.org/x/term v0.32.0 h1:DR4lr0TjUs3epypdhTOkMmuF5CDFJ/8pOnbzMZPQ7bg= +golang.org/x/term v0.32.0/go.mod h1:uZG1FhGx848Sqfsq4/DlJr3xGGsYMu/L5GW4abiaEPQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= @@ -632,8 +632,8 @@ golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= golang.org/x/text v0.14.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.15.0/go.mod h1:18ZOQIKpY8NJVqYksKHtTdi31H5itFRjB5/qKTNYzSU= golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ= -golang.org/x/text v0.24.0 h1:dd5Bzh4yt5KYA8f9CJHCP4FB4D51c2c6JvN37xJJkJ0= -golang.org/x/text v0.24.0/go.mod h1:L8rBsPeo2pSS+xqN0d5u2ikmjtmoJbDBT1b7nHvFCdU= +golang.org/x/text v0.25.0 h1:qVyWApTSYLk/drJRO5mDlNYskwQznZmkpV2c8q9zls4= +golang.org/x/text v0.25.0/go.mod h1:WEdwpYrmk1qmdHvhkSTNPm3app7v4rsT8F2UD6+VHIA= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= @@ -641,8 +641,8 @@ golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc golang.org/x/tools v0.6.0/go.mod h1:Xwgl3UAJ/d3gWutnCtw505GrjyAbvKui8lOU390QaIU= golang.org/x/tools v0.13.0/go.mod h1:HvlwmtVNQAhOuCjW7xxvovg8wbNq7LwfXh/k7wXUl58= golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk= -golang.org/x/tools v0.31.0 h1:0EedkvKDbh+qistFTd0Bcwe/YLh4vHwWEkiI0toFIBU= -golang.org/x/tools v0.31.0/go.mod h1:naFTU+Cev749tSJRXJlna0T3WxKvb1kWEx15xA4SdmQ= +golang.org/x/tools v0.32.0 h1:Q7N1vhpkQv7ybVzLFtTjvQya2ewbwNDZzUgfXGqtMWU= +golang.org/x/tools v0.32.0/go.mod h1:ZxrU41P/wAbZD8EDa6dDCa6XfpkhJ7HFMjHJXfBDu8s= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a h1:nwKuGPlUAt+aR+pcrkfFRrTU1BVrSmYyYMxYbUIVHr0= google.golang.org/genproto/googleapis/api v0.0.0-20250218202821-56aae31c358a/go.mod h1:3kWAYMk1I75K4vykHtKt2ycnOgpA6974V7bREqbsenU= diff --git a/vendor/codeberg.org/gruf/go-storage/test.sh b/vendor/codeberg.org/gruf/go-storage/test.sh index 91286b5c8..6eb18fa65 100644 --- a/vendor/codeberg.org/gruf/go-storage/test.sh +++ b/vendor/codeberg.org/gruf/go-storage/test.sh @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash export \ MINIO_ADDR='127.0.0.1:8080' \ @@ -9,8 +9,7 @@ export \ S3_DIR=$(mktemp -d) # Drop the test S3 bucket and kill minio on exit -trap 'rm -rf "$S3_DIR"; [ $MINIO_PID -ne 0 ] && kill -9 $MINIO_PID' \ - HUP INT QUIT ABRT KILL TERM EXIT +trap 'rm -rf "$S3_DIR"; [ $MINIO_PID -ne 0 ] && kill -9 $MINIO_PID' EXIT # Create required S3 bucket dir mkdir -p "${S3_DIR}/${MINIO_BUCKET}" diff --git a/vendor/github.com/KimMachineGun/automemlimit/memlimit/cgroups.go b/vendor/github.com/KimMachineGun/automemlimit/memlimit/cgroups.go index 73a57c3eb..69d1771f0 100644 --- a/vendor/github.com/KimMachineGun/automemlimit/memlimit/cgroups.go +++ b/vendor/github.com/KimMachineGun/automemlimit/memlimit/cgroups.go @@ -276,11 +276,9 @@ func parseMountInfoLine(line string) (mountInfo, error) { fields1 = append(fields1, "") } - fields2 := strings.Split(fieldss[1], " ") + fields2 := strings.SplitN(fieldss[1], " ", 3) if len(fields2) < 3 { return mountInfo{}, fmt.Errorf("not enough fields after separator: %v", fields2) - } else if len(fields2) > 3 { - return mountInfo{}, fmt.Errorf("too many fields after separator: %v", fields2) } return mountInfo{ diff --git a/vendor/github.com/miekg/dns/README.md b/vendor/github.com/miekg/dns/README.md index 0e42858ae..54471f5c2 100644 --- a/vendor/github.com/miekg/dns/README.md +++ b/vendor/github.com/miekg/dns/README.md @@ -185,6 +185,7 @@ Example programs can be found in the `github.com/miekg/exdns` repository. * 7871 - EDNS0 Client Subnet * 7873 - Domain Name System (DNS) Cookies * 8080 - EdDSA for DNSSEC +* 8490 - DNS Stateful Operations * 8499 - DNS Terminology * 8659 - DNS Certification Authority Authorization (CAA) Resource Record * 8777 - DNS Reverse IP Automatic Multicast Tunneling (AMT) Discovery diff --git a/vendor/github.com/miekg/dns/msg.go b/vendor/github.com/miekg/dns/msg.go index 5fa7f9e83..d87b5323b 100644 --- a/vendor/github.com/miekg/dns/msg.go +++ b/vendor/github.com/miekg/dns/msg.go @@ -136,18 +136,19 @@ var OpcodeToString = map[int]string{ // RcodeToString maps Rcodes to strings. var RcodeToString = map[int]string{ - RcodeSuccess: "NOERROR", - RcodeFormatError: "FORMERR", - RcodeServerFailure: "SERVFAIL", - RcodeNameError: "NXDOMAIN", - RcodeNotImplemented: "NOTIMP", - RcodeRefused: "REFUSED", - RcodeYXDomain: "YXDOMAIN", // See RFC 2136 - RcodeYXRrset: "YXRRSET", - RcodeNXRrset: "NXRRSET", - RcodeNotAuth: "NOTAUTH", - RcodeNotZone: "NOTZONE", - RcodeBadSig: "BADSIG", // Also known as RcodeBadVers, see RFC 6891 + RcodeSuccess: "NOERROR", + RcodeFormatError: "FORMERR", + RcodeServerFailure: "SERVFAIL", + RcodeNameError: "NXDOMAIN", + RcodeNotImplemented: "NOTIMP", + RcodeRefused: "REFUSED", + RcodeYXDomain: "YXDOMAIN", // See RFC 2136 + RcodeYXRrset: "YXRRSET", + RcodeNXRrset: "NXRRSET", + RcodeNotAuth: "NOTAUTH", + RcodeNotZone: "NOTZONE", + RcodeStatefulTypeNotImplemented: "DSOTYPENI", + RcodeBadSig: "BADSIG", // Also known as RcodeBadVers, see RFC 6891 // RcodeBadVers: "BADVERS", RcodeBadKey: "BADKEY", RcodeBadTime: "BADTIME", @@ -874,7 +875,6 @@ func (dns *Msg) unpack(dh Header, msg []byte, off int) (err error) { // // println("dns: extra bytes in dns packet", off, "<", len(msg)) // } return err - } // Unpack unpacks a binary message to a Msg structure. diff --git a/vendor/github.com/miekg/dns/reverse.go b/vendor/github.com/miekg/dns/reverse.go index 28151af83..6f5b3ea70 100644 --- a/vendor/github.com/miekg/dns/reverse.go +++ b/vendor/github.com/miekg/dns/reverse.go @@ -23,9 +23,12 @@ var StringToAlgorithm = reverseInt8(AlgorithmToString) // StringToHash is a map of names to hash IDs. var StringToHash = reverseInt8(HashToString) -// StringToCertType is the reverseof CertTypeToString. +// StringToCertType is the reverse of CertTypeToString. var StringToCertType = reverseInt16(CertTypeToString) +// StringToStatefulType is the reverse of StatefulTypeToString. +var StringToStatefulType = reverseInt16(StatefulTypeToString) + // Reverse a map func reverseInt8(m map[uint8]string) map[string]uint8 { n := make(map[string]uint8, len(m)) diff --git a/vendor/github.com/miekg/dns/scan.go b/vendor/github.com/miekg/dns/scan.go index fa8a332ed..31957b2ea 100644 --- a/vendor/github.com/miekg/dns/scan.go +++ b/vendor/github.com/miekg/dns/scan.go @@ -1318,6 +1318,13 @@ func toAbsoluteName(name, origin string) (absolute string, ok bool) { return origin, true } + // this can happen when we have a comment after a RR that has a domain, '... MX 20 ; this is wrong'. + // technically a newline can be in a domain name, but this is clearly an error and the newline only shows + // because of the scanning and the comment. + if name == "\n" { + return "", false + } + // require a valid domain name _, ok = IsDomainName(name) if !ok || name == "" { diff --git a/vendor/github.com/miekg/dns/types.go b/vendor/github.com/miekg/dns/types.go index e39cf2fec..f5067cd43 100644 --- a/vendor/github.com/miekg/dns/types.go +++ b/vendor/github.com/miekg/dns/types.go @@ -126,33 +126,35 @@ const ( ClassANY = 255 // Message Response Codes, see https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml - RcodeSuccess = 0 // NoError - No Error [DNS] - RcodeFormatError = 1 // FormErr - Format Error [DNS] - RcodeServerFailure = 2 // ServFail - Server Failure [DNS] - RcodeNameError = 3 // NXDomain - Non-Existent Domain [DNS] - RcodeNotImplemented = 4 // NotImp - Not Implemented [DNS] - RcodeRefused = 5 // Refused - Query Refused [DNS] - RcodeYXDomain = 6 // YXDomain - Name Exists when it should not [DNS Update] - RcodeYXRrset = 7 // YXRRSet - RR Set Exists when it should not [DNS Update] - RcodeNXRrset = 8 // NXRRSet - RR Set that should exist does not [DNS Update] - RcodeNotAuth = 9 // NotAuth - Server Not Authoritative for zone [DNS Update] - RcodeNotZone = 10 // NotZone - Name not contained in zone [DNS Update/TSIG] - RcodeBadSig = 16 // BADSIG - TSIG Signature Failure [TSIG] https://www.rfc-editor.org/rfc/rfc6895.html#section-2.3 - RcodeBadVers = 16 // BADVERS - Bad OPT Version [EDNS0] https://www.rfc-editor.org/rfc/rfc6895.html#section-2.3 - RcodeBadKey = 17 // BADKEY - Key not recognized [TSIG] - RcodeBadTime = 18 // BADTIME - Signature out of time window [TSIG] - RcodeBadMode = 19 // BADMODE - Bad TKEY Mode [TKEY] - RcodeBadName = 20 // BADNAME - Duplicate key name [TKEY] - RcodeBadAlg = 21 // BADALG - Algorithm not supported [TKEY] - RcodeBadTrunc = 22 // BADTRUNC - Bad Truncation [TSIG] - RcodeBadCookie = 23 // BADCOOKIE - Bad/missing Server Cookie [DNS Cookies] + RcodeSuccess = 0 // NoError - No Error [DNS] + RcodeFormatError = 1 // FormErr - Format Error [DNS] + RcodeServerFailure = 2 // ServFail - Server Failure [DNS] + RcodeNameError = 3 // NXDomain - Non-Existent Domain [DNS] + RcodeNotImplemented = 4 // NotImp - Not Implemented [DNS] + RcodeRefused = 5 // Refused - Query Refused [DNS] + RcodeYXDomain = 6 // YXDomain - Name Exists when it should not [DNS Update] + RcodeYXRrset = 7 // YXRRSet - RR Set Exists when it should not [DNS Update] + RcodeNXRrset = 8 // NXRRSet - RR Set that should exist does not [DNS Update] + RcodeNotAuth = 9 // NotAuth - Server Not Authoritative for zone [DNS Update] + RcodeNotZone = 10 // NotZone - Name not contained in zone [DNS Update/TSIG] + RcodeStatefulTypeNotImplemented = 11 // DSOTypeNI - DSO-TYPE not implemented [DNS Stateful Operations] https://www.rfc-editor.org/rfc/rfc8490.html#section-10.2 + RcodeBadSig = 16 // BADSIG - TSIG Signature Failure [TSIG] https://www.rfc-editor.org/rfc/rfc6895.html#section-2.3 + RcodeBadVers = 16 // BADVERS - Bad OPT Version [EDNS0] https://www.rfc-editor.org/rfc/rfc6895.html#section-2.3 + RcodeBadKey = 17 // BADKEY - Key not recognized [TSIG] + RcodeBadTime = 18 // BADTIME - Signature out of time window [TSIG] + RcodeBadMode = 19 // BADMODE - Bad TKEY Mode [TKEY] + RcodeBadName = 20 // BADNAME - Duplicate key name [TKEY] + RcodeBadAlg = 21 // BADALG - Algorithm not supported [TKEY] + RcodeBadTrunc = 22 // BADTRUNC - Bad Truncation [TSIG] + RcodeBadCookie = 23 // BADCOOKIE - Bad/missing Server Cookie [DNS Cookies] // Message Opcodes. There is no 3. - OpcodeQuery = 0 - OpcodeIQuery = 1 - OpcodeStatus = 2 - OpcodeNotify = 4 - OpcodeUpdate = 5 + OpcodeQuery = 0 + OpcodeIQuery = 1 + OpcodeStatus = 2 + OpcodeNotify = 4 + OpcodeUpdate = 5 + OpcodeStateful = 6 ) // Used in ZONEMD https://tools.ietf.org/html/rfc8976 @@ -179,6 +181,19 @@ const ( AMTRELAYHost = IPSECGatewayHost ) +// Stateful types as defined in RFC 8490. +const ( + StatefulTypeKeepAlive uint16 = iota + 1 + StatefulTypeRetryDelay + StatefulTypeEncryptionPadding +) + +var StatefulTypeToString = map[uint16]string{ + StatefulTypeKeepAlive: "KeepAlive", + StatefulTypeRetryDelay: "RetryDelay", + StatefulTypeEncryptionPadding: "EncryptionPadding", +} + // Header is the wire format for the DNS packet header. type Header struct { Id uint16 @@ -886,7 +901,7 @@ func (rr *LOC) String() string { lon = lon % LOC_HOURS s += fmt.Sprintf("%02d %02d %0.3f %s ", h, m, float64(lon)/1000, ew) - var alt = float64(rr.Altitude) / 100 + alt := float64(rr.Altitude) / 100 alt -= LOC_ALTITUDEBASE if rr.Altitude%100 != 0 { s += fmt.Sprintf("%.2fm ", alt) diff --git a/vendor/github.com/miekg/dns/version.go b/vendor/github.com/miekg/dns/version.go index 73e34edc3..936dc2124 100644 --- a/vendor/github.com/miekg/dns/version.go +++ b/vendor/github.com/miekg/dns/version.go @@ -3,7 +3,7 @@ package dns import "fmt" // Version is current version of this library. -var Version = v{1, 1, 65} +var Version = v{1, 1, 66} // v holds the version of this library. type v struct { diff --git a/vendor/github.com/miekg/dns/xfr.go b/vendor/github.com/miekg/dns/xfr.go index 5cfbb516a..97a642471 100644 --- a/vendor/github.com/miekg/dns/xfr.go +++ b/vendor/github.com/miekg/dns/xfr.go @@ -251,10 +251,13 @@ func (t *Transfer) ReadMsg() (*Msg, error) { if err := m.Unpack(p); err != nil { return nil, err } - if ts, tp := m.IsTsig(), t.tsigProvider(); ts != nil && tp != nil { + + if tp := t.tsigProvider(); tp != nil { // Need to work on the original message p, as that was used to calculate the tsig. err = TsigVerifyWithProvider(p, tp, t.tsigRequestMAC, t.tsigTimersOnly) - t.tsigRequestMAC = ts.MAC + if ts := m.IsTsig(); ts != nil { + t.tsigRequestMAC = ts.MAC + } } return m, err } diff --git a/vendor/github.com/ncruces/go-sqlite3/embed/README.md b/vendor/github.com/ncruces/go-sqlite3/embed/README.md index 765c4b685..1a2d575bb 100644 --- a/vendor/github.com/ncruces/go-sqlite3/embed/README.md +++ b/vendor/github.com/ncruces/go-sqlite3/embed/README.md @@ -1,6 +1,6 @@ # Embeddable Wasm build of SQLite -This folder includes an embeddable Wasm build of SQLite 3.49.1 for use with +This folder includes an embeddable Wasm build of SQLite 3.49.2 for use with [`github.com/ncruces/go-sqlite3`](https://pkg.go.dev/github.com/ncruces/go-sqlite3). The following optional features are compiled in: diff --git a/vendor/github.com/ncruces/go-sqlite3/embed/sqlite3.wasm b/vendor/github.com/ncruces/go-sqlite3/embed/sqlite3.wasm index 88ebe993294d0c03fd59ee7c478a8d052754f075..44f66792631b15e7376f48b3bcff0c960273d4a2 100644 GIT binary patch delta 260799 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 o4$(}Y=dj;}e~efFQC)J9YON|@;A87#JCjbBd delta 259548 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 max { - return max - } - return d + return min(d, maxVal) } // retryAfter parses a Retry-After HTTP header value, diff --git a/vendor/golang.org/x/crypto/acme/types.go b/vendor/golang.org/x/crypto/acme/types.go index 45492adc8..640223cb7 100644 --- a/vendor/golang.org/x/crypto/acme/types.go +++ b/vendor/golang.org/x/crypto/acme/types.go @@ -56,6 +56,10 @@ var ( // ErrNoAccount indicates that the Client's key has not been registered with the CA. ErrNoAccount = errors.New("acme: account does not exist") + + // errPreAuthorizationNotSupported indicates that the server does not + // support pre-authorization of identifiers. + errPreAuthorizationNotSupported = errors.New("acme: pre-authorization is not supported") ) // A Subproblem describes an ACME subproblem as reported in an Error. diff --git a/vendor/golang.org/x/crypto/ssh/mlkem.go b/vendor/golang.org/x/crypto/ssh/mlkem.go new file mode 100644 index 000000000..40681dd69 --- /dev/null +++ b/vendor/golang.org/x/crypto/ssh/mlkem.go @@ -0,0 +1,187 @@ +// Copyright 2024 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//go:build go1.24 + +package ssh + +import ( + "crypto" + "crypto/mlkem" + "crypto/sha256" + "errors" + "fmt" + "io" + "runtime" + "slices" + + "golang.org/x/crypto/curve25519" +) + +const ( + kexAlgoMLKEM768xCurve25519SHA256 = "mlkem768x25519-sha256" +) + +func init() { + // After Go 1.24rc1 mlkem swapped the order of return values of Encapsulate. + // See #70950. + if runtime.Version() == "go1.24rc1" { + return + } + supportedKexAlgos = slices.Insert(supportedKexAlgos, 0, kexAlgoMLKEM768xCurve25519SHA256) + preferredKexAlgos = slices.Insert(preferredKexAlgos, 0, kexAlgoMLKEM768xCurve25519SHA256) + kexAlgoMap[kexAlgoMLKEM768xCurve25519SHA256] = &mlkem768WithCurve25519sha256{} +} + +// mlkem768WithCurve25519sha256 implements the hybrid ML-KEM768 with +// curve25519-sha256 key exchange method, as described by +// draft-kampanakis-curdle-ssh-pq-ke-05 section 2.3.3. +type mlkem768WithCurve25519sha256 struct{} + +func (kex *mlkem768WithCurve25519sha256) Client(c packetConn, rand io.Reader, magics *handshakeMagics) (*kexResult, error) { + var c25519kp curve25519KeyPair + if err := c25519kp.generate(rand); err != nil { + return nil, err + } + + seed := make([]byte, mlkem.SeedSize) + if _, err := io.ReadFull(rand, seed); err != nil { + return nil, err + } + + mlkemDk, err := mlkem.NewDecapsulationKey768(seed) + if err != nil { + return nil, err + } + + hybridKey := append(mlkemDk.EncapsulationKey().Bytes(), c25519kp.pub[:]...) + if err := c.writePacket(Marshal(&kexECDHInitMsg{hybridKey})); err != nil { + return nil, err + } + + packet, err := c.readPacket() + if err != nil { + return nil, err + } + + var reply kexECDHReplyMsg + if err = Unmarshal(packet, &reply); err != nil { + return nil, err + } + + if len(reply.EphemeralPubKey) != mlkem.CiphertextSize768+32 { + return nil, errors.New("ssh: peer's mlkem768x25519 public value has wrong length") + } + + // Perform KEM decapsulate operation to obtain shared key from ML-KEM. + mlkem768Secret, err := mlkemDk.Decapsulate(reply.EphemeralPubKey[:mlkem.CiphertextSize768]) + if err != nil { + return nil, err + } + + // Complete Curve25519 ECDH to obtain its shared key. + c25519Secret, err := curve25519.X25519(c25519kp.priv[:], reply.EphemeralPubKey[mlkem.CiphertextSize768:]) + if err != nil { + return nil, fmt.Errorf("ssh: peer's mlkem768x25519 public value is not valid: %w", err) + } + // Compute actual shared key. + h := sha256.New() + h.Write(mlkem768Secret) + h.Write(c25519Secret) + secret := h.Sum(nil) + + h.Reset() + magics.write(h) + writeString(h, reply.HostKey) + writeString(h, hybridKey) + writeString(h, reply.EphemeralPubKey) + + K := make([]byte, stringLength(len(secret))) + marshalString(K, secret) + h.Write(K) + + return &kexResult{ + H: h.Sum(nil), + K: K, + HostKey: reply.HostKey, + Signature: reply.Signature, + Hash: crypto.SHA256, + }, nil +} + +func (kex *mlkem768WithCurve25519sha256) Server(c packetConn, rand io.Reader, magics *handshakeMagics, priv AlgorithmSigner, algo string) (*kexResult, error) { + packet, err := c.readPacket() + if err != nil { + return nil, err + } + + var kexInit kexECDHInitMsg + if err = Unmarshal(packet, &kexInit); err != nil { + return nil, err + } + + if len(kexInit.ClientPubKey) != mlkem.EncapsulationKeySize768+32 { + return nil, errors.New("ssh: peer's ML-KEM768/curve25519 public value has wrong length") + } + + encapsulationKey, err := mlkem.NewEncapsulationKey768(kexInit.ClientPubKey[:mlkem.EncapsulationKeySize768]) + if err != nil { + return nil, fmt.Errorf("ssh: peer's ML-KEM768 encapsulation key is not valid: %w", err) + } + // Perform KEM encapsulate operation to obtain ciphertext and shared key. + mlkem768Secret, mlkem768Ciphertext := encapsulationKey.Encapsulate() + + // Perform server side of Curve25519 ECDH to obtain server public value and + // shared key. + var c25519kp curve25519KeyPair + if err := c25519kp.generate(rand); err != nil { + return nil, err + } + c25519Secret, err := curve25519.X25519(c25519kp.priv[:], kexInit.ClientPubKey[mlkem.EncapsulationKeySize768:]) + if err != nil { + return nil, fmt.Errorf("ssh: peer's ML-KEM768/curve25519 public value is not valid: %w", err) + } + hybridKey := append(mlkem768Ciphertext, c25519kp.pub[:]...) + + // Compute actual shared key. + h := sha256.New() + h.Write(mlkem768Secret) + h.Write(c25519Secret) + secret := h.Sum(nil) + + hostKeyBytes := priv.PublicKey().Marshal() + + h.Reset() + magics.write(h) + writeString(h, hostKeyBytes) + writeString(h, kexInit.ClientPubKey) + writeString(h, hybridKey) + + K := make([]byte, stringLength(len(secret))) + marshalString(K, secret) + h.Write(K) + + H := h.Sum(nil) + + sig, err := signAndMarshal(priv, rand, H, algo) + if err != nil { + return nil, err + } + + reply := kexECDHReplyMsg{ + EphemeralPubKey: hybridKey, + HostKey: hostKeyBytes, + Signature: sig, + } + if err := c.writePacket(Marshal(&reply)); err != nil { + return nil, err + } + return &kexResult{ + H: H, + K: K, + HostKey: hostKeyBytes, + Signature: sig, + Hash: crypto.SHA256, + }, nil +} diff --git a/vendor/golang.org/x/oauth2/internal/doc.go b/vendor/golang.org/x/oauth2/internal/doc.go index 03265e888..8c7c475f2 100644 --- a/vendor/golang.org/x/oauth2/internal/doc.go +++ b/vendor/golang.org/x/oauth2/internal/doc.go @@ -2,5 +2,5 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// Package internal contains support packages for oauth2 package. +// Package internal contains support packages for [golang.org/x/oauth2]. package internal diff --git a/vendor/golang.org/x/oauth2/internal/oauth2.go b/vendor/golang.org/x/oauth2/internal/oauth2.go index 14989beaf..71ea6ad1f 100644 --- a/vendor/golang.org/x/oauth2/internal/oauth2.go +++ b/vendor/golang.org/x/oauth2/internal/oauth2.go @@ -13,7 +13,7 @@ import ( ) // ParseKey converts the binary contents of a private key file -// to an *rsa.PrivateKey. It detects whether the private key is in a +// to an [*rsa.PrivateKey]. It detects whether the private key is in a // PEM container or not. If so, it extracts the private key // from PEM container before conversion. It only supports PEM // containers with no passphrase. diff --git a/vendor/golang.org/x/oauth2/internal/token.go b/vendor/golang.org/x/oauth2/internal/token.go index e83ddeef0..8389f2462 100644 --- a/vendor/golang.org/x/oauth2/internal/token.go +++ b/vendor/golang.org/x/oauth2/internal/token.go @@ -10,7 +10,6 @@ import ( "errors" "fmt" "io" - "io/ioutil" "math" "mime" "net/http" @@ -26,9 +25,9 @@ import ( // the requests to access protected resources on the OAuth 2.0 // provider's backend. // -// This type is a mirror of oauth2.Token and exists to break +// This type is a mirror of [golang.org/x/oauth2.Token] and exists to break // an otherwise-circular dependency. Other internal packages -// should convert this Token into an oauth2.Token before use. +// should convert this Token into an [golang.org/x/oauth2.Token] before use. type Token struct { // AccessToken is the token that authorizes and authenticates // the requests. @@ -50,9 +49,16 @@ type Token struct { // mechanisms for that TokenSource will not be used. Expiry time.Time + // ExpiresIn is the OAuth2 wire format "expires_in" field, + // which specifies how many seconds later the token expires, + // relative to an unknown time base approximately around "now". + // It is the application's responsibility to populate + // `Expiry` from `ExpiresIn` when required. + ExpiresIn int64 `json:"expires_in,omitempty"` + // Raw optionally contains extra metadata from the server // when updating a token. - Raw interface{} + Raw any } // tokenJSON is the struct representing the HTTP response from OAuth2 @@ -99,14 +105,6 @@ func (e *expirationTime) UnmarshalJSON(b []byte) error { return nil } -// RegisterBrokenAuthHeaderProvider previously did something. It is now a no-op. -// -// Deprecated: this function no longer does anything. Caller code that -// wants to avoid potential extra HTTP requests made during -// auto-probing of the provider's auth style should set -// Endpoint.AuthStyle. -func RegisterBrokenAuthHeaderProvider(tokenURL string) {} - // AuthStyle is a copy of the golang.org/x/oauth2 package's AuthStyle type. type AuthStyle int @@ -143,6 +141,11 @@ func (lc *LazyAuthStyleCache) Get() *AuthStyleCache { return c } +type authStyleCacheKey struct { + url string + clientID string +} + // AuthStyleCache is the set of tokenURLs we've successfully used via // RetrieveToken and which style auth we ended up using. // It's called a cache, but it doesn't (yet?) shrink. It's expected that @@ -150,26 +153,26 @@ func (lc *LazyAuthStyleCache) Get() *AuthStyleCache { // small. type AuthStyleCache struct { mu sync.Mutex - m map[string]AuthStyle // keyed by tokenURL + m map[authStyleCacheKey]AuthStyle } // lookupAuthStyle reports which auth style we last used with tokenURL // when calling RetrieveToken and whether we have ever done so. -func (c *AuthStyleCache) lookupAuthStyle(tokenURL string) (style AuthStyle, ok bool) { +func (c *AuthStyleCache) lookupAuthStyle(tokenURL, clientID string) (style AuthStyle, ok bool) { c.mu.Lock() defer c.mu.Unlock() - style, ok = c.m[tokenURL] + style, ok = c.m[authStyleCacheKey{tokenURL, clientID}] return } // setAuthStyle adds an entry to authStyleCache, documented above. -func (c *AuthStyleCache) setAuthStyle(tokenURL string, v AuthStyle) { +func (c *AuthStyleCache) setAuthStyle(tokenURL, clientID string, v AuthStyle) { c.mu.Lock() defer c.mu.Unlock() if c.m == nil { - c.m = make(map[string]AuthStyle) + c.m = make(map[authStyleCacheKey]AuthStyle) } - c.m[tokenURL] = v + c.m[authStyleCacheKey{tokenURL, clientID}] = v } // newTokenRequest returns a new *http.Request to retrieve a new token @@ -210,9 +213,9 @@ func cloneURLValues(v url.Values) url.Values { } func RetrieveToken(ctx context.Context, clientID, clientSecret, tokenURL string, v url.Values, authStyle AuthStyle, styleCache *AuthStyleCache) (*Token, error) { - needsAuthStyleProbe := authStyle == 0 + needsAuthStyleProbe := authStyle == AuthStyleUnknown if needsAuthStyleProbe { - if style, ok := styleCache.lookupAuthStyle(tokenURL); ok { + if style, ok := styleCache.lookupAuthStyle(tokenURL, clientID); ok { authStyle = style needsAuthStyleProbe = false } else { @@ -242,7 +245,7 @@ func RetrieveToken(ctx context.Context, clientID, clientSecret, tokenURL string, token, err = doTokenRoundTrip(ctx, req) } if needsAuthStyleProbe && err == nil { - styleCache.setAuthStyle(tokenURL, authStyle) + styleCache.setAuthStyle(tokenURL, clientID, authStyle) } // Don't overwrite `RefreshToken` with an empty value // if this was a token refreshing request. @@ -257,7 +260,7 @@ func doTokenRoundTrip(ctx context.Context, req *http.Request) (*Token, error) { if err != nil { return nil, err } - body, err := ioutil.ReadAll(io.LimitReader(r.Body, 1<<20)) + body, err := io.ReadAll(io.LimitReader(r.Body, 1<<20)) r.Body.Close() if err != nil { return nil, fmt.Errorf("oauth2: cannot fetch token: %v", err) @@ -312,7 +315,8 @@ func doTokenRoundTrip(ctx context.Context, req *http.Request) (*Token, error) { TokenType: tj.TokenType, RefreshToken: tj.RefreshToken, Expiry: tj.expiry(), - Raw: make(map[string]interface{}), + ExpiresIn: int64(tj.ExpiresIn), + Raw: make(map[string]any), } json.Unmarshal(body, &token.Raw) // no error checks for optional fields } diff --git a/vendor/golang.org/x/oauth2/internal/transport.go b/vendor/golang.org/x/oauth2/internal/transport.go index b9db01ddf..afc0aeb27 100644 --- a/vendor/golang.org/x/oauth2/internal/transport.go +++ b/vendor/golang.org/x/oauth2/internal/transport.go @@ -9,8 +9,8 @@ import ( "net/http" ) -// HTTPClient is the context key to use with golang.org/x/net/context's -// WithValue function to associate an *http.Client value with a context. +// HTTPClient is the context key to use with [context.WithValue] +// to associate an [*http.Client] value with a context. var HTTPClient ContextKey // ContextKey is just an empty struct. It exists so HTTPClient can be diff --git a/vendor/golang.org/x/oauth2/oauth2.go b/vendor/golang.org/x/oauth2/oauth2.go index eacdd7fd9..de34feb84 100644 --- a/vendor/golang.org/x/oauth2/oauth2.go +++ b/vendor/golang.org/x/oauth2/oauth2.go @@ -22,9 +22,9 @@ import ( ) // NoContext is the default context you should supply if not using -// your own context.Context (see https://golang.org/x/net/context). +// your own [context.Context]. // -// Deprecated: Use context.Background() or context.TODO() instead. +// Deprecated: Use [context.Background] or [context.TODO] instead. var NoContext = context.TODO() // RegisterBrokenAuthHeaderProvider previously did something. It is now a no-op. @@ -37,8 +37,8 @@ func RegisterBrokenAuthHeaderProvider(tokenURL string) {} // Config describes a typical 3-legged OAuth2 flow, with both the // client application information and the server's endpoint URLs. -// For the client credentials 2-legged OAuth2 flow, see the clientcredentials -// package (https://golang.org/x/oauth2/clientcredentials). +// For the client credentials 2-legged OAuth2 flow, see the +// [golang.org/x/oauth2/clientcredentials] package. type Config struct { // ClientID is the application's ID. ClientID string @@ -46,7 +46,7 @@ type Config struct { // ClientSecret is the application's secret. ClientSecret string - // Endpoint contains the resource server's token endpoint + // Endpoint contains the authorization server's token endpoint // URLs. These are constants specific to each server and are // often available via site-specific packages, such as // google.Endpoint or github.Endpoint. @@ -135,7 +135,7 @@ type setParam struct{ k, v string } func (p setParam) setValue(m url.Values) { m.Set(p.k, p.v) } -// SetAuthURLParam builds an AuthCodeOption which passes key/value parameters +// SetAuthURLParam builds an [AuthCodeOption] which passes key/value parameters // to a provider's authorization endpoint. func SetAuthURLParam(key, value string) AuthCodeOption { return setParam{key, value} @@ -148,8 +148,8 @@ func SetAuthURLParam(key, value string) AuthCodeOption { // request and callback. The authorization server includes this value when // redirecting the user agent back to the client. // -// Opts may include AccessTypeOnline or AccessTypeOffline, as well -// as ApprovalForce. +// Opts may include [AccessTypeOnline] or [AccessTypeOffline], as well +// as [ApprovalForce]. // // To protect against CSRF attacks, opts should include a PKCE challenge // (S256ChallengeOption). Not all servers support PKCE. An alternative is to @@ -194,7 +194,7 @@ func (c *Config) AuthCodeURL(state string, opts ...AuthCodeOption) string { // and when other authorization grant types are not available." // See https://tools.ietf.org/html/rfc6749#section-4.3 for more info. // -// The provided context optionally controls which HTTP client is used. See the HTTPClient variable. +// The provided context optionally controls which HTTP client is used. See the [HTTPClient] variable. func (c *Config) PasswordCredentialsToken(ctx context.Context, username, password string) (*Token, error) { v := url.Values{ "grant_type": {"password"}, @@ -212,10 +212,10 @@ func (c *Config) PasswordCredentialsToken(ctx context.Context, username, passwor // It is used after a resource provider redirects the user back // to the Redirect URI (the URL obtained from AuthCodeURL). // -// The provided context optionally controls which HTTP client is used. See the HTTPClient variable. +// The provided context optionally controls which HTTP client is used. See the [HTTPClient] variable. // -// The code will be in the *http.Request.FormValue("code"). Before -// calling Exchange, be sure to validate FormValue("state") if you are +// The code will be in the [http.Request.FormValue]("code"). Before +// calling Exchange, be sure to validate [http.Request.FormValue]("state") if you are // using it to protect against CSRF attacks. // // If using PKCE to protect against CSRF attacks, opts should include a @@ -242,10 +242,10 @@ func (c *Config) Client(ctx context.Context, t *Token) *http.Client { return NewClient(ctx, c.TokenSource(ctx, t)) } -// TokenSource returns a TokenSource that returns t until t expires, +// TokenSource returns a [TokenSource] that returns t until t expires, // automatically refreshing it as necessary using the provided context. // -// Most users will use Config.Client instead. +// Most users will use [Config.Client] instead. func (c *Config) TokenSource(ctx context.Context, t *Token) TokenSource { tkr := &tokenRefresher{ ctx: ctx, @@ -260,7 +260,7 @@ func (c *Config) TokenSource(ctx context.Context, t *Token) TokenSource { } } -// tokenRefresher is a TokenSource that makes "grant_type"=="refresh_token" +// tokenRefresher is a TokenSource that makes "grant_type=refresh_token" // HTTP requests to renew a token using a RefreshToken. type tokenRefresher struct { ctx context.Context // used to get HTTP requests @@ -305,8 +305,7 @@ type reuseTokenSource struct { } // Token returns the current token if it's still valid, else will -// refresh the current token (using r.Context for HTTP client -// information) and return the new one. +// refresh the current token and return the new one. func (s *reuseTokenSource) Token() (*Token, error) { s.mu.Lock() defer s.mu.Unlock() @@ -322,7 +321,7 @@ func (s *reuseTokenSource) Token() (*Token, error) { return t, nil } -// StaticTokenSource returns a TokenSource that always returns the same token. +// StaticTokenSource returns a [TokenSource] that always returns the same token. // Because the provided token t is never refreshed, StaticTokenSource is only // useful for tokens that never expire. func StaticTokenSource(t *Token) TokenSource { @@ -338,16 +337,16 @@ func (s staticTokenSource) Token() (*Token, error) { return s.t, nil } -// HTTPClient is the context key to use with golang.org/x/net/context's -// WithValue function to associate an *http.Client value with a context. +// HTTPClient is the context key to use with [context.WithValue] +// to associate a [*http.Client] value with a context. var HTTPClient internal.ContextKey -// NewClient creates an *http.Client from a Context and TokenSource. +// NewClient creates an [*http.Client] from a [context.Context] and [TokenSource]. // The returned client is not valid beyond the lifetime of the context. // -// Note that if a custom *http.Client is provided via the Context it +// Note that if a custom [*http.Client] is provided via the [context.Context] it // is used only for token acquisition and is not used to configure the -// *http.Client returned from NewClient. +// [*http.Client] returned from NewClient. // // As a special case, if src is nil, a non-OAuth2 client is returned // using the provided context. This exists to support related OAuth2 @@ -368,7 +367,7 @@ func NewClient(ctx context.Context, src TokenSource) *http.Client { } } -// ReuseTokenSource returns a TokenSource which repeatedly returns the +// ReuseTokenSource returns a [TokenSource] which repeatedly returns the // same token as long as it's valid, starting with t. // When its cached token is invalid, a new token is obtained from src. // @@ -376,10 +375,10 @@ func NewClient(ctx context.Context, src TokenSource) *http.Client { // (such as a file on disk) between runs of a program, rather than // obtaining new tokens unnecessarily. // -// The initial token t may be nil, in which case the TokenSource is +// The initial token t may be nil, in which case the [TokenSource] is // wrapped in a caching version if it isn't one already. This also // means it's always safe to wrap ReuseTokenSource around any other -// TokenSource without adverse effects. +// [TokenSource] without adverse effects. func ReuseTokenSource(t *Token, src TokenSource) TokenSource { // Don't wrap a reuseTokenSource in itself. That would work, // but cause an unnecessary number of mutex operations. @@ -397,8 +396,8 @@ func ReuseTokenSource(t *Token, src TokenSource) TokenSource { } } -// ReuseTokenSourceWithExpiry returns a TokenSource that acts in the same manner as the -// TokenSource returned by ReuseTokenSource, except the expiry buffer is +// ReuseTokenSourceWithExpiry returns a [TokenSource] that acts in the same manner as the +// [TokenSource] returned by [ReuseTokenSource], except the expiry buffer is // configurable. The expiration time of a token is calculated as // t.Expiry.Add(-earlyExpiry). func ReuseTokenSourceWithExpiry(t *Token, src TokenSource, earlyExpiry time.Duration) TokenSource { diff --git a/vendor/golang.org/x/oauth2/pkce.go b/vendor/golang.org/x/oauth2/pkce.go index 6a95da975..cea8374d5 100644 --- a/vendor/golang.org/x/oauth2/pkce.go +++ b/vendor/golang.org/x/oauth2/pkce.go @@ -1,6 +1,7 @@ // Copyright 2023 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. + package oauth2 import ( @@ -20,9 +21,9 @@ const ( // This follows recommendations in RFC 7636. // // A fresh verifier should be generated for each authorization. -// S256ChallengeOption(verifier) should then be passed to Config.AuthCodeURL -// (or Config.DeviceAuth) and VerifierOption(verifier) to Config.Exchange -// (or Config.DeviceAccessToken). +// The resulting verifier should be passed to [Config.AuthCodeURL] or [Config.DeviceAuth] +// with [S256ChallengeOption], and to [Config.Exchange] or [Config.DeviceAccessToken] +// with [VerifierOption]. func GenerateVerifier() string { // "RECOMMENDED that the output of a suitable random number generator be // used to create a 32-octet sequence. The octet sequence is then @@ -36,22 +37,22 @@ func GenerateVerifier() string { return base64.RawURLEncoding.EncodeToString(data) } -// VerifierOption returns a PKCE code verifier AuthCodeOption. It should be -// passed to Config.Exchange or Config.DeviceAccessToken only. +// VerifierOption returns a PKCE code verifier [AuthCodeOption]. It should only be +// passed to [Config.Exchange] or [Config.DeviceAccessToken]. func VerifierOption(verifier string) AuthCodeOption { return setParam{k: codeVerifierKey, v: verifier} } // S256ChallengeFromVerifier returns a PKCE code challenge derived from verifier with method S256. // -// Prefer to use S256ChallengeOption where possible. +// Prefer to use [S256ChallengeOption] where possible. func S256ChallengeFromVerifier(verifier string) string { sha := sha256.Sum256([]byte(verifier)) return base64.RawURLEncoding.EncodeToString(sha[:]) } // S256ChallengeOption derives a PKCE code challenge derived from verifier with -// method S256. It should be passed to Config.AuthCodeURL or Config.DeviceAuth +// method S256. It should be passed to [Config.AuthCodeURL] or [Config.DeviceAuth] // only. func S256ChallengeOption(verifier string) AuthCodeOption { return challengeOption{ diff --git a/vendor/golang.org/x/oauth2/token.go b/vendor/golang.org/x/oauth2/token.go index 8c31136c4..239ec3296 100644 --- a/vendor/golang.org/x/oauth2/token.go +++ b/vendor/golang.org/x/oauth2/token.go @@ -44,7 +44,7 @@ type Token struct { // Expiry is the optional expiration time of the access token. // - // If zero, TokenSource implementations will reuse the same + // If zero, [TokenSource] implementations will reuse the same // token forever and RefreshToken or equivalent // mechanisms for that TokenSource will not be used. Expiry time.Time `json:"expiry,omitempty"` @@ -58,7 +58,7 @@ type Token struct { // raw optionally contains extra metadata from the server // when updating a token. - raw interface{} + raw any // expiryDelta is used to calculate when a token is considered // expired, by subtracting from Expiry. If zero, defaultExpiryDelta @@ -86,16 +86,16 @@ func (t *Token) Type() string { // SetAuthHeader sets the Authorization header to r using the access // token in t. // -// This method is unnecessary when using Transport or an HTTP Client +// This method is unnecessary when using [Transport] or an HTTP Client // returned by this package. func (t *Token) SetAuthHeader(r *http.Request) { r.Header.Set("Authorization", t.Type()+" "+t.AccessToken) } -// WithExtra returns a new Token that's a clone of t, but using the +// WithExtra returns a new [Token] that's a clone of t, but using the // provided raw extra map. This is only intended for use by packages // implementing derivative OAuth2 flows. -func (t *Token) WithExtra(extra interface{}) *Token { +func (t *Token) WithExtra(extra any) *Token { t2 := new(Token) *t2 = *t t2.raw = extra @@ -105,8 +105,8 @@ func (t *Token) WithExtra(extra interface{}) *Token { // Extra returns an extra field. // Extra fields are key-value pairs returned by the server as a // part of the token retrieval response. -func (t *Token) Extra(key string) interface{} { - if raw, ok := t.raw.(map[string]interface{}); ok { +func (t *Token) Extra(key string) any { + if raw, ok := t.raw.(map[string]any); ok { return raw[key] } @@ -163,6 +163,7 @@ func tokenFromInternal(t *internal.Token) *Token { TokenType: t.TokenType, RefreshToken: t.RefreshToken, Expiry: t.Expiry, + ExpiresIn: t.ExpiresIn, raw: t.Raw, } } diff --git a/vendor/golang.org/x/oauth2/transport.go b/vendor/golang.org/x/oauth2/transport.go index 90657915f..8bbebbac9 100644 --- a/vendor/golang.org/x/oauth2/transport.go +++ b/vendor/golang.org/x/oauth2/transport.go @@ -11,12 +11,12 @@ import ( "sync" ) -// Transport is an http.RoundTripper that makes OAuth 2.0 HTTP requests, -// wrapping a base RoundTripper and adding an Authorization header -// with a token from the supplied Sources. +// Transport is an [http.RoundTripper] that makes OAuth 2.0 HTTP requests, +// wrapping a base [http.RoundTripper] and adding an Authorization header +// with a token from the supplied [TokenSource]. // // Transport is a low-level mechanism. Most code will use the -// higher-level Config.Client method instead. +// higher-level [Config.Client] method instead. type Transport struct { // Source supplies the token to add to outgoing requests' // Authorization headers. @@ -47,7 +47,7 @@ func (t *Transport) RoundTrip(req *http.Request) (*http.Response, error) { return nil, err } - req2 := cloneRequest(req) // per RoundTripper contract + req2 := req.Clone(req.Context()) token.SetAuthHeader(req2) // req.Body is assumed to be closed by the base RoundTripper. @@ -73,17 +73,3 @@ func (t *Transport) base() http.RoundTripper { } return http.DefaultTransport } - -// cloneRequest returns a clone of the provided *http.Request. -// The clone is a shallow copy of the struct and its Header map. -func cloneRequest(r *http.Request) *http.Request { - // shallow copy of the struct - r2 := new(http.Request) - *r2 = *r - // deep copy of the Header - r2.Header = make(http.Header, len(r.Header)) - for k, s := range r.Header { - r2.Header[k] = append([]string(nil), s...) - } - return r2 -} diff --git a/vendor/golang.org/x/sync/errgroup/errgroup.go b/vendor/golang.org/x/sync/errgroup/errgroup.go index f8c3c0926..cfafed5b5 100644 --- a/vendor/golang.org/x/sync/errgroup/errgroup.go +++ b/vendor/golang.org/x/sync/errgroup/errgroup.go @@ -12,6 +12,8 @@ package errgroup import ( "context" "fmt" + "runtime" + "runtime/debug" "sync" ) @@ -31,6 +33,10 @@ type Group struct { errOnce sync.Once err error + + mu sync.Mutex + panicValue any // = PanicError | PanicValue; non-nil if some Group.Go goroutine panicked. + abnormal bool // some Group.Go goroutine terminated abnormally (panic or goexit). } func (g *Group) done() { @@ -50,13 +56,22 @@ func WithContext(ctx context.Context) (*Group, context.Context) { return &Group{cancel: cancel}, ctx } -// Wait blocks until all function calls from the Go method have returned, then -// returns the first non-nil error (if any) from them. +// Wait blocks until all function calls from the Go method have returned +// normally, then returns the first non-nil error (if any) from them. +// +// If any of the calls panics, Wait panics with a [PanicValue]; +// and if any of them calls [runtime.Goexit], Wait calls runtime.Goexit. func (g *Group) Wait() error { g.wg.Wait() if g.cancel != nil { g.cancel(g.err) } + if g.panicValue != nil { + panic(g.panicValue) + } + if g.abnormal { + runtime.Goexit() + } return g.err } @@ -65,18 +80,56 @@ func (g *Group) Wait() error { // It blocks until the new goroutine can be added without the number of // active goroutines in the group exceeding the configured limit. // -// The first call to return a non-nil error cancels the group's context, if the -// group was created by calling WithContext. The error will be returned by Wait. +// It blocks until the new goroutine can be added without the number of +// goroutines in the group exceeding the configured limit. +// +// The first goroutine in the group that returns a non-nil error, panics, or +// invokes [runtime.Goexit] will cancel the associated Context, if any. func (g *Group) Go(f func() error) { if g.sem != nil { g.sem <- token{} } + g.add(f) +} + +func (g *Group) add(f func() error) { g.wg.Add(1) go func() { defer g.done() + normalReturn := false + defer func() { + if normalReturn { + return + } + v := recover() + g.mu.Lock() + defer g.mu.Unlock() + if !g.abnormal { + if g.cancel != nil { + g.cancel(g.err) + } + g.abnormal = true + } + if v != nil && g.panicValue == nil { + switch v := v.(type) { + case error: + g.panicValue = PanicError{ + Recovered: v, + Stack: debug.Stack(), + } + default: + g.panicValue = PanicValue{ + Recovered: v, + Stack: debug.Stack(), + } + } + } + }() - if err := f(); err != nil { + err := f() + normalReturn = true + if err != nil { g.errOnce.Do(func() { g.err = err if g.cancel != nil { @@ -101,19 +154,7 @@ func (g *Group) TryGo(f func() error) bool { } } - g.wg.Add(1) - go func() { - defer g.done() - - if err := f(); err != nil { - g.errOnce.Do(func() { - g.err = err - if g.cancel != nil { - g.cancel(g.err) - } - }) - } - }() + g.add(f) return true } @@ -135,3 +176,33 @@ func (g *Group) SetLimit(n int) { } g.sem = make(chan token, n) } + +// PanicError wraps an error recovered from an unhandled panic +// when calling a function passed to Go or TryGo. +type PanicError struct { + Recovered error + Stack []byte // result of call to [debug.Stack] +} + +func (p PanicError) Error() string { + // A Go Error method conventionally does not include a stack dump, so omit it + // here. (Callers who care can extract it from the Stack field.) + return fmt.Sprintf("recovered from errgroup.Group: %v", p.Recovered) +} + +func (p PanicError) Unwrap() error { return p.Recovered } + +// PanicValue wraps a value that does not implement the error interface, +// recovered from an unhandled panic when calling a function passed to Go or +// TryGo. +type PanicValue struct { + Recovered any + Stack []byte // result of call to [debug.Stack] +} + +func (p PanicValue) String() string { + if len(p.Stack) > 0 { + return fmt.Sprintf("recovered from errgroup.Group: %v\n%s", p.Recovered, p.Stack) + } + return fmt.Sprintf("recovered from errgroup.Group: %v", p.Recovered) +} diff --git a/vendor/golang.org/x/sys/cpu/cpu.go b/vendor/golang.org/x/sys/cpu/cpu.go index 2e73ee197..63541994e 100644 --- a/vendor/golang.org/x/sys/cpu/cpu.go +++ b/vendor/golang.org/x/sys/cpu/cpu.go @@ -232,6 +232,17 @@ var RISCV64 struct { HasZba bool // Address generation instructions extension HasZbb bool // Basic bit-manipulation extension HasZbs bool // Single-bit instructions extension + HasZvbb bool // Vector Basic Bit-manipulation + HasZvbc bool // Vector Carryless Multiplication + HasZvkb bool // Vector Cryptography Bit-manipulation + HasZvkt bool // Vector Data-Independent Execution Latency + HasZvkg bool // Vector GCM/GMAC + HasZvkn bool // NIST Algorithm Suite (AES/SHA256/SHA512) + HasZvknc bool // NIST Algorithm Suite with carryless multiply + HasZvkng bool // NIST Algorithm Suite with GCM + HasZvks bool // ShangMi Algorithm Suite + HasZvksc bool // ShangMi Algorithm Suite with carryless multiplication + HasZvksg bool // ShangMi Algorithm Suite with GCM _ CacheLinePad } diff --git a/vendor/golang.org/x/sys/cpu/cpu_linux_riscv64.go b/vendor/golang.org/x/sys/cpu/cpu_linux_riscv64.go index cb4a0c572..ad741536f 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_linux_riscv64.go +++ b/vendor/golang.org/x/sys/cpu/cpu_linux_riscv64.go @@ -58,6 +58,15 @@ const ( riscv_HWPROBE_EXT_ZBA = 0x8 riscv_HWPROBE_EXT_ZBB = 0x10 riscv_HWPROBE_EXT_ZBS = 0x20 + riscv_HWPROBE_EXT_ZVBB = 0x20000 + riscv_HWPROBE_EXT_ZVBC = 0x40000 + riscv_HWPROBE_EXT_ZVKB = 0x80000 + riscv_HWPROBE_EXT_ZVKG = 0x100000 + riscv_HWPROBE_EXT_ZVKNED = 0x200000 + riscv_HWPROBE_EXT_ZVKNHB = 0x800000 + riscv_HWPROBE_EXT_ZVKSED = 0x1000000 + riscv_HWPROBE_EXT_ZVKSH = 0x2000000 + riscv_HWPROBE_EXT_ZVKT = 0x4000000 riscv_HWPROBE_KEY_CPUPERF_0 = 0x5 riscv_HWPROBE_MISALIGNED_FAST = 0x3 riscv_HWPROBE_MISALIGNED_MASK = 0x7 @@ -99,6 +108,20 @@ func doinit() { RISCV64.HasZba = isSet(v, riscv_HWPROBE_EXT_ZBA) RISCV64.HasZbb = isSet(v, riscv_HWPROBE_EXT_ZBB) RISCV64.HasZbs = isSet(v, riscv_HWPROBE_EXT_ZBS) + RISCV64.HasZvbb = isSet(v, riscv_HWPROBE_EXT_ZVBB) + RISCV64.HasZvbc = isSet(v, riscv_HWPROBE_EXT_ZVBC) + RISCV64.HasZvkb = isSet(v, riscv_HWPROBE_EXT_ZVKB) + RISCV64.HasZvkg = isSet(v, riscv_HWPROBE_EXT_ZVKG) + RISCV64.HasZvkt = isSet(v, riscv_HWPROBE_EXT_ZVKT) + // Cryptography shorthand extensions + RISCV64.HasZvkn = isSet(v, riscv_HWPROBE_EXT_ZVKNED) && + isSet(v, riscv_HWPROBE_EXT_ZVKNHB) && RISCV64.HasZvkb && RISCV64.HasZvkt + RISCV64.HasZvknc = RISCV64.HasZvkn && RISCV64.HasZvbc + RISCV64.HasZvkng = RISCV64.HasZvkn && RISCV64.HasZvkg + RISCV64.HasZvks = isSet(v, riscv_HWPROBE_EXT_ZVKSED) && + isSet(v, riscv_HWPROBE_EXT_ZVKSH) && RISCV64.HasZvkb && RISCV64.HasZvkt + RISCV64.HasZvksc = RISCV64.HasZvks && RISCV64.HasZvbc + RISCV64.HasZvksg = RISCV64.HasZvks && RISCV64.HasZvkg } if pairs[1].key != -1 { v := pairs[1].value & riscv_HWPROBE_MISALIGNED_MASK diff --git a/vendor/golang.org/x/sys/cpu/cpu_riscv64.go b/vendor/golang.org/x/sys/cpu/cpu_riscv64.go index aca3199c9..0f617aef5 100644 --- a/vendor/golang.org/x/sys/cpu/cpu_riscv64.go +++ b/vendor/golang.org/x/sys/cpu/cpu_riscv64.go @@ -16,5 +16,17 @@ func initOptions() { {Name: "zba", Feature: &RISCV64.HasZba}, {Name: "zbb", Feature: &RISCV64.HasZbb}, {Name: "zbs", Feature: &RISCV64.HasZbs}, + // RISC-V Cryptography Extensions + {Name: "zvbb", Feature: &RISCV64.HasZvbb}, + {Name: "zvbc", Feature: &RISCV64.HasZvbc}, + {Name: "zvkb", Feature: &RISCV64.HasZvkb}, + {Name: "zvkg", Feature: &RISCV64.HasZvkg}, + {Name: "zvkt", Feature: &RISCV64.HasZvkt}, + {Name: "zvkn", Feature: &RISCV64.HasZvkn}, + {Name: "zvknc", Feature: &RISCV64.HasZvknc}, + {Name: "zvkng", Feature: &RISCV64.HasZvkng}, + {Name: "zvks", Feature: &RISCV64.HasZvks}, + {Name: "zvksc", Feature: &RISCV64.HasZvksc}, + {Name: "zvksg", Feature: &RISCV64.HasZvksg}, } } diff --git a/vendor/golang.org/x/sys/windows/security_windows.go b/vendor/golang.org/x/sys/windows/security_windows.go index b6e1ab76f..a8b0364c7 100644 --- a/vendor/golang.org/x/sys/windows/security_windows.go +++ b/vendor/golang.org/x/sys/windows/security_windows.go @@ -1303,7 +1303,10 @@ func (selfRelativeSD *SECURITY_DESCRIPTOR) ToAbsolute() (absoluteSD *SECURITY_DE return nil, err } if absoluteSDSize > 0 { - absoluteSD = (*SECURITY_DESCRIPTOR)(unsafe.Pointer(&make([]byte, absoluteSDSize)[0])) + absoluteSD = new(SECURITY_DESCRIPTOR) + if unsafe.Sizeof(*absoluteSD) < uintptr(absoluteSDSize) { + panic("sizeof(SECURITY_DESCRIPTOR) too small") + } } var ( dacl *ACL @@ -1312,19 +1315,55 @@ func (selfRelativeSD *SECURITY_DESCRIPTOR) ToAbsolute() (absoluteSD *SECURITY_DE group *SID ) if daclSize > 0 { - dacl = (*ACL)(unsafe.Pointer(&make([]byte, daclSize)[0])) + dacl = (*ACL)(unsafe.Pointer(unsafe.SliceData(make([]byte, daclSize)))) } if saclSize > 0 { - sacl = (*ACL)(unsafe.Pointer(&make([]byte, saclSize)[0])) + sacl = (*ACL)(unsafe.Pointer(unsafe.SliceData(make([]byte, saclSize)))) } if ownerSize > 0 { - owner = (*SID)(unsafe.Pointer(&make([]byte, ownerSize)[0])) + owner = (*SID)(unsafe.Pointer(unsafe.SliceData(make([]byte, ownerSize)))) } if groupSize > 0 { - group = (*SID)(unsafe.Pointer(&make([]byte, groupSize)[0])) + group = (*SID)(unsafe.Pointer(unsafe.SliceData(make([]byte, groupSize)))) } + // We call into Windows via makeAbsoluteSD, which sets up + // pointers within absoluteSD that point to other chunks of memory + // we pass into makeAbsoluteSD, and that happens outside the view of the GC. + // We therefore take some care here to then verify the pointers are as we expect + // and set them explicitly in view of the GC. See https://go.dev/issue/73199. + // TODO: consider weak pointers once Go 1.24 is appropriate. See suggestion in https://go.dev/cl/663575. err = makeAbsoluteSD(selfRelativeSD, absoluteSD, &absoluteSDSize, dacl, &daclSize, sacl, &saclSize, owner, &ownerSize, group, &groupSize) + if err != nil { + // Don't return absoluteSD, which might be partially initialized. + return nil, err + } + // Before using any fields, verify absoluteSD is in the format we expect according to Windows. + // See https://learn.microsoft.com/en-us/windows/win32/secauthz/absolute-and-self-relative-security-descriptors + absControl, _, err := absoluteSD.Control() + if err != nil { + panic("absoluteSD: " + err.Error()) + } + if absControl&SE_SELF_RELATIVE != 0 { + panic("absoluteSD not in absolute format") + } + if absoluteSD.dacl != dacl { + panic("dacl pointer mismatch") + } + if absoluteSD.sacl != sacl { + panic("sacl pointer mismatch") + } + if absoluteSD.owner != owner { + panic("owner pointer mismatch") + } + if absoluteSD.group != group { + panic("group pointer mismatch") + } + absoluteSD.dacl = dacl + absoluteSD.sacl = sacl + absoluteSD.owner = owner + absoluteSD.group = group + return } diff --git a/vendor/golang.org/x/sys/windows/syscall_windows.go b/vendor/golang.org/x/sys/windows/syscall_windows.go index 4a3254386..640f6b153 100644 --- a/vendor/golang.org/x/sys/windows/syscall_windows.go +++ b/vendor/golang.org/x/sys/windows/syscall_windows.go @@ -870,6 +870,7 @@ const socket_error = uintptr(^uint32(0)) //sys WSARecvFrom(s Handle, bufs *WSABuf, bufcnt uint32, recvd *uint32, flags *uint32, from *RawSockaddrAny, fromlen *int32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSARecvFrom //sys WSASendTo(s Handle, bufs *WSABuf, bufcnt uint32, sent *uint32, flags uint32, to *RawSockaddrAny, tolen int32, overlapped *Overlapped, croutine *byte) (err error) [failretval==socket_error] = ws2_32.WSASendTo //sys WSASocket(af int32, typ int32, protocol int32, protoInfo *WSAProtocolInfo, group uint32, flags uint32) (handle Handle, err error) [failretval==InvalidHandle] = ws2_32.WSASocketW +//sys WSADuplicateSocket(s Handle, processID uint32, info *WSAProtocolInfo) (err error) [failretval!=0] = ws2_32.WSADuplicateSocketW //sys GetHostByName(name string) (h *Hostent, err error) [failretval==nil] = ws2_32.gethostbyname //sys GetServByName(name string, proto string) (s *Servent, err error) [failretval==nil] = ws2_32.getservbyname //sys Ntohs(netshort uint16) (u uint16) = ws2_32.ntohs @@ -1698,8 +1699,9 @@ func NewNTUnicodeString(s string) (*NTUnicodeString, error) { // Slice returns a uint16 slice that aliases the data in the NTUnicodeString. func (s *NTUnicodeString) Slice() []uint16 { - slice := unsafe.Slice(s.Buffer, s.MaximumLength) - return slice[:s.Length] + // Note: this rounds the length down, if it happens + // to (incorrectly) be odd. Probably safer than rounding up. + return unsafe.Slice(s.Buffer, s.MaximumLength/2)[:s.Length/2] } func (s *NTUnicodeString) String() string { diff --git a/vendor/golang.org/x/sys/windows/types_windows.go b/vendor/golang.org/x/sys/windows/types_windows.go index ad67df2fd..958bcf47a 100644 --- a/vendor/golang.org/x/sys/windows/types_windows.go +++ b/vendor/golang.org/x/sys/windows/types_windows.go @@ -2700,6 +2700,8 @@ type CommTimeouts struct { // NTUnicodeString is a UTF-16 string for NT native APIs, corresponding to UNICODE_STRING. type NTUnicodeString struct { + // Note: Length and MaximumLength are in *bytes*, not uint16s. + // They should always be even. Length uint16 MaximumLength uint16 Buffer *uint16 @@ -3628,3 +3630,213 @@ const ( KLF_NOTELLSHELL = 0x00000080 KLF_SETFORPROCESS = 0x00000100 ) + +// Virtual Key codes +// https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes +const ( + VK_LBUTTON = 0x01 + VK_RBUTTON = 0x02 + VK_CANCEL = 0x03 + VK_MBUTTON = 0x04 + VK_XBUTTON1 = 0x05 + VK_XBUTTON2 = 0x06 + VK_BACK = 0x08 + VK_TAB = 0x09 + VK_CLEAR = 0x0C + VK_RETURN = 0x0D + VK_SHIFT = 0x10 + VK_CONTROL = 0x11 + VK_MENU = 0x12 + VK_PAUSE = 0x13 + VK_CAPITAL = 0x14 + VK_KANA = 0x15 + VK_HANGEUL = 0x15 + VK_HANGUL = 0x15 + VK_IME_ON = 0x16 + VK_JUNJA = 0x17 + VK_FINAL = 0x18 + VK_HANJA = 0x19 + VK_KANJI = 0x19 + VK_IME_OFF = 0x1A + VK_ESCAPE = 0x1B + VK_CONVERT = 0x1C + VK_NONCONVERT = 0x1D + VK_ACCEPT = 0x1E + VK_MODECHANGE = 0x1F + VK_SPACE = 0x20 + VK_PRIOR = 0x21 + VK_NEXT = 0x22 + VK_END = 0x23 + VK_HOME = 0x24 + VK_LEFT = 0x25 + VK_UP = 0x26 + VK_RIGHT = 0x27 + VK_DOWN = 0x28 + VK_SELECT = 0x29 + VK_PRINT = 0x2A + VK_EXECUTE = 0x2B + VK_SNAPSHOT = 0x2C + VK_INSERT = 0x2D + VK_DELETE = 0x2E + VK_HELP = 0x2F + VK_LWIN = 0x5B + VK_RWIN = 0x5C + VK_APPS = 0x5D + VK_SLEEP = 0x5F + VK_NUMPAD0 = 0x60 + VK_NUMPAD1 = 0x61 + VK_NUMPAD2 = 0x62 + VK_NUMPAD3 = 0x63 + VK_NUMPAD4 = 0x64 + VK_NUMPAD5 = 0x65 + VK_NUMPAD6 = 0x66 + VK_NUMPAD7 = 0x67 + VK_NUMPAD8 = 0x68 + VK_NUMPAD9 = 0x69 + VK_MULTIPLY = 0x6A + VK_ADD = 0x6B + VK_SEPARATOR = 0x6C + VK_SUBTRACT = 0x6D + VK_DECIMAL = 0x6E + VK_DIVIDE = 0x6F + VK_F1 = 0x70 + VK_F2 = 0x71 + VK_F3 = 0x72 + VK_F4 = 0x73 + VK_F5 = 0x74 + VK_F6 = 0x75 + VK_F7 = 0x76 + VK_F8 = 0x77 + VK_F9 = 0x78 + VK_F10 = 0x79 + VK_F11 = 0x7A + VK_F12 = 0x7B + VK_F13 = 0x7C + VK_F14 = 0x7D + VK_F15 = 0x7E + VK_F16 = 0x7F + VK_F17 = 0x80 + VK_F18 = 0x81 + VK_F19 = 0x82 + VK_F20 = 0x83 + VK_F21 = 0x84 + VK_F22 = 0x85 + VK_F23 = 0x86 + VK_F24 = 0x87 + VK_NUMLOCK = 0x90 + VK_SCROLL = 0x91 + VK_OEM_NEC_EQUAL = 0x92 + VK_OEM_FJ_JISHO = 0x92 + VK_OEM_FJ_MASSHOU = 0x93 + VK_OEM_FJ_TOUROKU = 0x94 + VK_OEM_FJ_LOYA = 0x95 + VK_OEM_FJ_ROYA = 0x96 + VK_LSHIFT = 0xA0 + VK_RSHIFT = 0xA1 + VK_LCONTROL = 0xA2 + VK_RCONTROL = 0xA3 + VK_LMENU = 0xA4 + VK_RMENU = 0xA5 + VK_BROWSER_BACK = 0xA6 + VK_BROWSER_FORWARD = 0xA7 + VK_BROWSER_REFRESH = 0xA8 + VK_BROWSER_STOP = 0xA9 + VK_BROWSER_SEARCH = 0xAA + VK_BROWSER_FAVORITES = 0xAB + VK_BROWSER_HOME = 0xAC + VK_VOLUME_MUTE = 0xAD + VK_VOLUME_DOWN = 0xAE + VK_VOLUME_UP = 0xAF + VK_MEDIA_NEXT_TRACK = 0xB0 + VK_MEDIA_PREV_TRACK = 0xB1 + VK_MEDIA_STOP = 0xB2 + VK_MEDIA_PLAY_PAUSE = 0xB3 + VK_LAUNCH_MAIL = 0xB4 + VK_LAUNCH_MEDIA_SELECT = 0xB5 + VK_LAUNCH_APP1 = 0xB6 + VK_LAUNCH_APP2 = 0xB7 + VK_OEM_1 = 0xBA + VK_OEM_PLUS = 0xBB + VK_OEM_COMMA = 0xBC + VK_OEM_MINUS = 0xBD + VK_OEM_PERIOD = 0xBE + VK_OEM_2 = 0xBF + VK_OEM_3 = 0xC0 + VK_OEM_4 = 0xDB + VK_OEM_5 = 0xDC + VK_OEM_6 = 0xDD + VK_OEM_7 = 0xDE + VK_OEM_8 = 0xDF + VK_OEM_AX = 0xE1 + VK_OEM_102 = 0xE2 + VK_ICO_HELP = 0xE3 + VK_ICO_00 = 0xE4 + VK_PROCESSKEY = 0xE5 + VK_ICO_CLEAR = 0xE6 + VK_OEM_RESET = 0xE9 + VK_OEM_JUMP = 0xEA + VK_OEM_PA1 = 0xEB + VK_OEM_PA2 = 0xEC + VK_OEM_PA3 = 0xED + VK_OEM_WSCTRL = 0xEE + VK_OEM_CUSEL = 0xEF + VK_OEM_ATTN = 0xF0 + VK_OEM_FINISH = 0xF1 + VK_OEM_COPY = 0xF2 + VK_OEM_AUTO = 0xF3 + VK_OEM_ENLW = 0xF4 + VK_OEM_BACKTAB = 0xF5 + VK_ATTN = 0xF6 + VK_CRSEL = 0xF7 + VK_EXSEL = 0xF8 + VK_EREOF = 0xF9 + VK_PLAY = 0xFA + VK_ZOOM = 0xFB + VK_NONAME = 0xFC + VK_PA1 = 0xFD + VK_OEM_CLEAR = 0xFE +) + +// Mouse button constants. +// https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str +const ( + FROM_LEFT_1ST_BUTTON_PRESSED = 0x0001 + RIGHTMOST_BUTTON_PRESSED = 0x0002 + FROM_LEFT_2ND_BUTTON_PRESSED = 0x0004 + FROM_LEFT_3RD_BUTTON_PRESSED = 0x0008 + FROM_LEFT_4TH_BUTTON_PRESSED = 0x0010 +) + +// Control key state constaints. +// https://docs.microsoft.com/en-us/windows/console/key-event-record-str +// https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str +const ( + CAPSLOCK_ON = 0x0080 + ENHANCED_KEY = 0x0100 + LEFT_ALT_PRESSED = 0x0002 + LEFT_CTRL_PRESSED = 0x0008 + NUMLOCK_ON = 0x0020 + RIGHT_ALT_PRESSED = 0x0001 + RIGHT_CTRL_PRESSED = 0x0004 + SCROLLLOCK_ON = 0x0040 + SHIFT_PRESSED = 0x0010 +) + +// Mouse event record event flags. +// https://docs.microsoft.com/en-us/windows/console/mouse-event-record-str +const ( + MOUSE_MOVED = 0x0001 + DOUBLE_CLICK = 0x0002 + MOUSE_WHEELED = 0x0004 + MOUSE_HWHEELED = 0x0008 +) + +// Input Record Event Types +// https://learn.microsoft.com/en-us/windows/console/input-record-str +const ( + FOCUS_EVENT = 0x0010 + KEY_EVENT = 0x0001 + MENU_EVENT = 0x0008 + MOUSE_EVENT = 0x0002 + WINDOW_BUFFER_SIZE_EVENT = 0x0004 +) diff --git a/vendor/golang.org/x/sys/windows/zsyscall_windows.go b/vendor/golang.org/x/sys/windows/zsyscall_windows.go index 01c0716c2..a58bc48b8 100644 --- a/vendor/golang.org/x/sys/windows/zsyscall_windows.go +++ b/vendor/golang.org/x/sys/windows/zsyscall_windows.go @@ -511,6 +511,7 @@ var ( procFreeAddrInfoW = modws2_32.NewProc("FreeAddrInfoW") procGetAddrInfoW = modws2_32.NewProc("GetAddrInfoW") procWSACleanup = modws2_32.NewProc("WSACleanup") + procWSADuplicateSocketW = modws2_32.NewProc("WSADuplicateSocketW") procWSAEnumProtocolsW = modws2_32.NewProc("WSAEnumProtocolsW") procWSAGetOverlappedResult = modws2_32.NewProc("WSAGetOverlappedResult") procWSAIoctl = modws2_32.NewProc("WSAIoctl") @@ -4391,6 +4392,14 @@ func WSACleanup() (err error) { return } +func WSADuplicateSocket(s Handle, processID uint32, info *WSAProtocolInfo) (err error) { + r1, _, e1 := syscall.Syscall(procWSADuplicateSocketW.Addr(), 3, uintptr(s), uintptr(processID), uintptr(unsafe.Pointer(info))) + if r1 != 0 { + err = errnoErr(e1) + } + return +} + func WSAEnumProtocols(protocols *int32, protocolBuffer *WSAProtocolInfo, bufferLength *uint32) (n int32, err error) { r0, _, e1 := syscall.Syscall(procWSAEnumProtocolsW.Addr(), 3, uintptr(unsafe.Pointer(protocols)), uintptr(unsafe.Pointer(protocolBuffer)), uintptr(unsafe.Pointer(bufferLength))) n = int32(r0) diff --git a/vendor/golang.org/x/tools/go/ast/astutil/imports.go b/vendor/golang.org/x/tools/go/ast/astutil/imports.go index a6b5ed0a8..5e5601aa4 100644 --- a/vendor/golang.org/x/tools/go/ast/astutil/imports.go +++ b/vendor/golang.org/x/tools/go/ast/astutil/imports.go @@ -9,6 +9,7 @@ import ( "fmt" "go/ast" "go/token" + "slices" "strconv" "strings" ) @@ -186,7 +187,7 @@ func AddNamedImport(fset *token.FileSet, f *ast.File, name, path string) (added spec.(*ast.ImportSpec).Path.ValuePos = first.Pos() first.Specs = append(first.Specs, spec) } - f.Decls = append(f.Decls[:i], f.Decls[i+1:]...) + f.Decls = slices.Delete(f.Decls, i, i+1) i-- } diff --git a/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go b/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go index 65fe2628e..7b90bc923 100644 --- a/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go +++ b/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go @@ -193,10 +193,7 @@ func Read(in io.Reader, fset *token.FileSet, imports map[string]*types.Package, return pkg, err default: - l := len(data) - if l > 10 { - l = 10 - } + l := min(len(data), 10) return nil, fmt.Errorf("unexpected export data with prefix %q for path %s", string(data[:l]), path) } } diff --git a/vendor/golang.org/x/tools/go/packages/external.go b/vendor/golang.org/x/tools/go/packages/external.go index 91bd62e83..f37bc6510 100644 --- a/vendor/golang.org/x/tools/go/packages/external.go +++ b/vendor/golang.org/x/tools/go/packages/external.go @@ -90,7 +90,7 @@ func findExternalDriver(cfg *Config) driver { const toolPrefix = "GOPACKAGESDRIVER=" tool := "" for _, env := range cfg.Env { - if val := strings.TrimPrefix(env, toolPrefix); val != env { + if val, ok := strings.CutPrefix(env, toolPrefix); ok { tool = val } } diff --git a/vendor/golang.org/x/tools/go/types/typeutil/callee.go b/vendor/golang.org/x/tools/go/types/typeutil/callee.go index 754380351..53b713393 100644 --- a/vendor/golang.org/x/tools/go/types/typeutil/callee.go +++ b/vendor/golang.org/x/tools/go/types/typeutil/callee.go @@ -7,45 +7,23 @@ package typeutil import ( "go/ast" "go/types" - - "golang.org/x/tools/internal/typeparams" + _ "unsafe" // for linkname ) // Callee returns the named target of a function call, if any: // a function, method, builtin, or variable. // // Functions and methods may potentially have type parameters. +// +// Note: for calls of instantiated functions and methods, Callee returns +// the corresponding generic function or method on the generic type. func Callee(info *types.Info, call *ast.CallExpr) types.Object { - fun := ast.Unparen(call.Fun) - - // Look through type instantiation if necessary. - isInstance := false - switch fun.(type) { - case *ast.IndexExpr, *ast.IndexListExpr: - // When extracting the callee from an *IndexExpr, we need to check that - // it is a *types.Func and not a *types.Var. - // Example: Don't match a slice m within the expression `m[0]()`. - isInstance = true - fun, _, _, _ = typeparams.UnpackIndexExpr(fun) - } - - var obj types.Object - switch fun := fun.(type) { - case *ast.Ident: - obj = info.Uses[fun] // type, var, builtin, or declared func - case *ast.SelectorExpr: - if sel, ok := info.Selections[fun]; ok { - obj = sel.Obj() // method or field - } else { - obj = info.Uses[fun.Sel] // qualified identifier? - } + obj := info.Uses[usedIdent(info, call.Fun)] + if obj == nil { + return nil } if _, ok := obj.(*types.TypeName); ok { - return nil // T(x) is a conversion, not a call - } - // A Func is required to match instantiations. - if _, ok := obj.(*types.Func); isInstance && !ok { - return nil // Was not a Func. + return nil } return obj } @@ -56,13 +34,52 @@ func Callee(info *types.Info, call *ast.CallExpr) types.Object { // Note: for calls of instantiated functions and methods, StaticCallee returns // the corresponding generic function or method on the generic type. func StaticCallee(info *types.Info, call *ast.CallExpr) *types.Func { - if f, ok := Callee(info, call).(*types.Func); ok && !interfaceMethod(f) { - return f + obj := info.Uses[usedIdent(info, call.Fun)] + fn, _ := obj.(*types.Func) + if fn == nil || interfaceMethod(fn) { + return nil + } + return fn +} + +// usedIdent is the implementation of [internal/typesinternal.UsedIdent]. +// It returns the identifier associated with e. +// See typesinternal.UsedIdent for a fuller description. +// This function should live in typesinternal, but cannot because it would +// create an import cycle. +// +//go:linkname usedIdent +func usedIdent(info *types.Info, e ast.Expr) *ast.Ident { + if info.Types == nil || info.Uses == nil { + panic("one of info.Types or info.Uses is nil; both must be populated") + } + // Look through type instantiation if necessary. + switch d := ast.Unparen(e).(type) { + case *ast.IndexExpr: + if info.Types[d.Index].IsType() { + e = d.X + } + case *ast.IndexListExpr: + e = d.X + } + + switch e := ast.Unparen(e).(type) { + // info.Uses always has the object we want, even for selector expressions. + // We don't need info.Selections. + // See go/types/recording.go:recordSelection. + case *ast.Ident: + return e + case *ast.SelectorExpr: + return e.Sel } return nil } +// interfaceMethod reports whether its argument is a method of an interface. +// This function should live in typesinternal, but cannot because it would create an import cycle. +// +//go:linkname interfaceMethod func interfaceMethod(f *types.Func) bool { - recv := f.Type().(*types.Signature).Recv() + recv := f.Signature().Recv() return recv != nil && types.IsInterface(recv.Type()) } diff --git a/vendor/golang.org/x/tools/internal/event/label/label.go b/vendor/golang.org/x/tools/internal/event/label/label.go index 7c00ca2a6..92a391057 100644 --- a/vendor/golang.org/x/tools/internal/event/label/label.go +++ b/vendor/golang.org/x/tools/internal/event/label/label.go @@ -8,6 +8,7 @@ import ( "fmt" "io" "reflect" + "slices" "unsafe" ) @@ -154,10 +155,8 @@ func (f *filter) Valid(index int) bool { func (f *filter) Label(index int) Label { l := f.underlying.Label(index) - for _, f := range f.keys { - if l.Key() == f { - return Label{} - } + if slices.Contains(f.keys, l.Key()) { + return Label{} } return l } diff --git a/vendor/golang.org/x/tools/internal/gcimporter/iexport.go b/vendor/golang.org/x/tools/internal/gcimporter/iexport.go index 253d6493c..780873e3a 100644 --- a/vendor/golang.org/x/tools/internal/gcimporter/iexport.go +++ b/vendor/golang.org/x/tools/internal/gcimporter/iexport.go @@ -236,6 +236,7 @@ import ( "io" "math/big" "reflect" + "slices" "sort" "strconv" "strings" @@ -271,10 +272,10 @@ import ( // file system, be sure to include a cryptographic digest of the executable in // the key to avoid version skew. // -// If the provided reportf func is non-nil, it will be used for reporting bugs -// encountered during export. -// TODO(rfindley): remove reportf when we are confident enough in the new -// objectpath encoding. +// If the provided reportf func is non-nil, it is used for reporting +// bugs (e.g. recovered panics) encountered during export, enabling us +// to obtain via telemetry the stack that would otherwise be lost by +// merely returning an error. func IExportShallow(fset *token.FileSet, pkg *types.Package, reportf ReportFunc) ([]byte, error) { // In principle this operation can only fail if out.Write fails, // but that's impossible for bytes.Buffer---and as a matter of @@ -283,7 +284,7 @@ func IExportShallow(fset *token.FileSet, pkg *types.Package, reportf ReportFunc) // TODO(adonovan): use byte slices throughout, avoiding copying. const bundle, shallow = false, true var out bytes.Buffer - err := iexportCommon(&out, fset, bundle, shallow, iexportVersion, []*types.Package{pkg}) + err := iexportCommon(&out, fset, bundle, shallow, iexportVersion, []*types.Package{pkg}, reportf) return out.Bytes(), err } @@ -323,20 +324,27 @@ const bundleVersion = 0 // so that calls to IImportData can override with a provided package path. func IExportData(out io.Writer, fset *token.FileSet, pkg *types.Package) error { const bundle, shallow = false, false - return iexportCommon(out, fset, bundle, shallow, iexportVersion, []*types.Package{pkg}) + return iexportCommon(out, fset, bundle, shallow, iexportVersion, []*types.Package{pkg}, nil) } // IExportBundle writes an indexed export bundle for pkgs to out. func IExportBundle(out io.Writer, fset *token.FileSet, pkgs []*types.Package) error { const bundle, shallow = true, false - return iexportCommon(out, fset, bundle, shallow, iexportVersion, pkgs) + return iexportCommon(out, fset, bundle, shallow, iexportVersion, pkgs, nil) } -func iexportCommon(out io.Writer, fset *token.FileSet, bundle, shallow bool, version int, pkgs []*types.Package) (err error) { +func iexportCommon(out io.Writer, fset *token.FileSet, bundle, shallow bool, version int, pkgs []*types.Package, reportf ReportFunc) (err error) { if !debug { defer func() { if e := recover(); e != nil { + // Report the stack via telemetry (see #71067). + if reportf != nil { + reportf("panic in exporter") + } if ierr, ok := e.(internalError); ok { + // internalError usually means we exported a + // bad go/types data structure: a violation + // of an implicit precondition of Export. err = ierr return } @@ -458,7 +466,7 @@ func (p *iexporter) encodeFile(w *intWriter, file *token.File, needed []uint64) w.uint64(size) // Sort the set of needed offsets. Duplicates are harmless. - sort.Slice(needed, func(i, j int) bool { return needed[i] < needed[j] }) + slices.Sort(needed) lines := file.Lines() // byte offset of each line start w.uint64(uint64(len(lines))) @@ -812,7 +820,7 @@ func (p *iexporter) doDecl(obj types.Object) { n := named.NumMethods() w.uint64(uint64(n)) - for i := 0; i < n; i++ { + for i := range n { m := named.Method(i) w.pos(m.Pos()) w.string(m.Name()) @@ -1089,7 +1097,7 @@ func (w *exportWriter) doTyp(t types.Type, pkg *types.Package) { w.pkg(fieldPkg) w.uint64(uint64(n)) - for i := 0; i < n; i++ { + for i := range n { f := t.Field(i) if w.p.shallow { w.objectPath(f) @@ -1138,7 +1146,7 @@ func (w *exportWriter) doTyp(t types.Type, pkg *types.Package) { w.startType(unionType) nt := t.Len() w.uint64(uint64(nt)) - for i := 0; i < nt; i++ { + for i := range nt { term := t.Term(i) w.bool(term.Tilde()) w.typ(term.Type(), pkg) @@ -1267,7 +1275,7 @@ func tparamName(exportName string) string { func (w *exportWriter) paramList(tup *types.Tuple) { n := tup.Len() w.uint64(uint64(n)) - for i := 0; i < n; i++ { + for i := range n { w.param(tup.At(i)) } } diff --git a/vendor/golang.org/x/tools/internal/gcimporter/iimport.go b/vendor/golang.org/x/tools/internal/gcimporter/iimport.go index bc6c9741e..82e6c9d2d 100644 --- a/vendor/golang.org/x/tools/internal/gcimporter/iimport.go +++ b/vendor/golang.org/x/tools/internal/gcimporter/iimport.go @@ -16,6 +16,7 @@ import ( "go/types" "io" "math/big" + "slices" "sort" "strings" @@ -314,7 +315,7 @@ func iimportCommon(fset *token.FileSet, getPackages GetPackagesFunc, data []byte pkgs = pkgList[:1] // record all referenced packages as imports - list := append(([]*types.Package)(nil), pkgList[1:]...) + list := slices.Clone(pkgList[1:]) sort.Sort(byPath(list)) pkgs[0].SetImports(list) } diff --git a/vendor/golang.org/x/tools/internal/gocommand/invoke.go b/vendor/golang.org/x/tools/internal/gocommand/invoke.go index 7ea901344..58721202d 100644 --- a/vendor/golang.org/x/tools/internal/gocommand/invoke.go +++ b/vendor/golang.org/x/tools/internal/gocommand/invoke.go @@ -141,7 +141,7 @@ func (runner *Runner) runPiped(ctx context.Context, inv Invocation, stdout, stde // Wait for all in-progress go commands to return before proceeding, // to avoid load concurrency errors. - for i := 0; i < maxInFlight; i++ { + for range maxInFlight { select { case <-ctx.Done(): return ctx.Err(), ctx.Err() diff --git a/vendor/golang.org/x/tools/internal/gopathwalk/walk.go b/vendor/golang.org/x/tools/internal/gopathwalk/walk.go index 984b79c2a..5252144d0 100644 --- a/vendor/golang.org/x/tools/internal/gopathwalk/walk.go +++ b/vendor/golang.org/x/tools/internal/gopathwalk/walk.go @@ -14,6 +14,7 @@ import ( "os" "path/filepath" "runtime" + "slices" "strings" "sync" "time" @@ -195,10 +196,8 @@ func (w *walker) getIgnoredDirs(path string) []string { // shouldSkipDir reports whether the file should be skipped or not. func (w *walker) shouldSkipDir(dir string) bool { - for _, ignoredDir := range w.ignoredDirs { - if dir == ignoredDir { - return true - } + if slices.Contains(w.ignoredDirs, dir) { + return true } if w.skip != nil { // Check with the user specified callback. diff --git a/vendor/golang.org/x/tools/internal/imports/fix.go b/vendor/golang.org/x/tools/internal/imports/fix.go index 737a9bfae..89b96381c 100644 --- a/vendor/golang.org/x/tools/internal/imports/fix.go +++ b/vendor/golang.org/x/tools/internal/imports/fix.go @@ -32,6 +32,7 @@ import ( "golang.org/x/tools/internal/gocommand" "golang.org/x/tools/internal/gopathwalk" "golang.org/x/tools/internal/stdlib" + "maps" ) // importToGroup is a list of functions which map from an import path to @@ -585,7 +586,7 @@ func getFixesWithSource(ctx context.Context, fset *token.FileSet, f *ast.File, f srcDir := filepath.Dir(abs) if logf != nil { - logf("fixImports(filename=%q), srcDir=%q ...", filename, abs, srcDir) + logf("fixImports(filename=%q), srcDir=%q ...", filename, srcDir) } // First pass: looking only at f, and using the naive algorithm to @@ -968,9 +969,7 @@ func (e *ProcessEnv) CopyConfig() *ProcessEnv { resolver: nil, Env: map[string]string{}, } - for k, v := range e.Env { - copy.Env[k] = v - } + maps.Copy(copy.Env, e.Env) return copy } @@ -1003,9 +1002,7 @@ func (e *ProcessEnv) init() error { if err := json.Unmarshal(stdout.Bytes(), &goEnv); err != nil { return err } - for k, v := range goEnv { - e.Env[k] = v - } + maps.Copy(e.Env, goEnv) e.initialized = true return nil } diff --git a/vendor/golang.org/x/tools/internal/imports/mod.go b/vendor/golang.org/x/tools/internal/imports/mod.go index 8555e3f83..df94ec818 100644 --- a/vendor/golang.org/x/tools/internal/imports/mod.go +++ b/vendor/golang.org/x/tools/internal/imports/mod.go @@ -13,6 +13,7 @@ import ( "path" "path/filepath" "regexp" + "slices" "sort" "strconv" "strings" @@ -150,8 +151,8 @@ func newModuleResolver(e *ProcessEnv, moduleCacheCache *DirInfoCache) (*ModuleRe Path: "", Dir: filepath.Join(filepath.Dir(goWork), "vendor"), } - r.modsByModPath = append(append([]*gocommand.ModuleJSON{}, mainModsVendor...), r.dummyVendorMod) - r.modsByDir = append(append([]*gocommand.ModuleJSON{}, mainModsVendor...), r.dummyVendorMod) + r.modsByModPath = append(slices.Clone(mainModsVendor), r.dummyVendorMod) + r.modsByDir = append(slices.Clone(mainModsVendor), r.dummyVendorMod) } } else { // Vendor mode is off, so run go list -m ... to find everything. diff --git a/vendor/golang.org/x/tools/internal/imports/mod_cache.go b/vendor/golang.org/x/tools/internal/imports/mod_cache.go index b1192696b..b96c9d4bf 100644 --- a/vendor/golang.org/x/tools/internal/imports/mod_cache.go +++ b/vendor/golang.org/x/tools/internal/imports/mod_cache.go @@ -128,7 +128,7 @@ func (d *DirInfoCache) ScanAndListen(ctx context.Context, listener cacheListener // are going to be. Setting an arbitrary limit makes it much easier. const maxInFlight = 10 sema := make(chan struct{}, maxInFlight) - for i := 0; i < maxInFlight; i++ { + for range maxInFlight { sema <- struct{}{} } @@ -156,7 +156,7 @@ func (d *DirInfoCache) ScanAndListen(ctx context.Context, listener cacheListener d.mu.Lock() delete(d.listeners, cookie) d.mu.Unlock() - for i := 0; i < maxInFlight; i++ { + for range maxInFlight { <-sema } } diff --git a/vendor/golang.org/x/tools/internal/imports/sortimports.go b/vendor/golang.org/x/tools/internal/imports/sortimports.go index da8194fd9..67c17bc43 100644 --- a/vendor/golang.org/x/tools/internal/imports/sortimports.go +++ b/vendor/golang.org/x/tools/internal/imports/sortimports.go @@ -11,6 +11,7 @@ import ( "go/ast" "go/token" "log" + "slices" "sort" "strconv" ) @@ -30,7 +31,7 @@ func sortImports(localPrefix string, tokFile *token.File, f *ast.File) { if len(d.Specs) == 0 { // Empty import block, remove it. - f.Decls = append(f.Decls[:i], f.Decls[i+1:]...) + f.Decls = slices.Delete(f.Decls, i, i+1) } if !d.Lparen.IsValid() { @@ -91,7 +92,7 @@ func mergeImports(f *ast.File) { spec.(*ast.ImportSpec).Path.ValuePos = first.Pos() first.Specs = append(first.Specs, spec) } - f.Decls = append(f.Decls[:i], f.Decls[i+1:]...) + f.Decls = slices.Delete(f.Decls, i, i+1) i-- } } diff --git a/vendor/golang.org/x/tools/internal/modindex/lookup.go b/vendor/golang.org/x/tools/internal/modindex/lookup.go index 5499c5c67..bd605e0d7 100644 --- a/vendor/golang.org/x/tools/internal/modindex/lookup.go +++ b/vendor/golang.org/x/tools/internal/modindex/lookup.go @@ -120,7 +120,7 @@ func (ix *Index) Lookup(pkg, name string, prefix bool) []Candidate { px.Results = int16(n) if len(flds) >= 4 { sig := strings.Split(flds[3], " ") - for i := 0; i < len(sig); i++ { + for i := range sig { // $ cannot otherwise occur. removing the spaces // almost works, but for chan struct{}, e.g. sig[i] = strings.Replace(sig[i], "$", " ", -1) @@ -136,7 +136,7 @@ func (ix *Index) Lookup(pkg, name string, prefix bool) []Candidate { func toFields(sig []string) []Field { ans := make([]Field, len(sig)/2) - for i := 0; i < len(ans); i++ { + for i := range ans { ans[i] = Field{Arg: sig[2*i], Type: sig[2*i+1]} } return ans diff --git a/vendor/golang.org/x/tools/internal/pkgbits/decoder.go b/vendor/golang.org/x/tools/internal/pkgbits/decoder.go index f6cb37c5c..c0aba26c4 100644 --- a/vendor/golang.org/x/tools/internal/pkgbits/decoder.go +++ b/vendor/golang.org/x/tools/internal/pkgbits/decoder.go @@ -259,7 +259,7 @@ func (r *Decoder) rawUvarint() uint64 { func readUvarint(r *strings.Reader) (uint64, error) { var x uint64 var s uint - for i := 0; i < binary.MaxVarintLen64; i++ { + for i := range binary.MaxVarintLen64 { b, err := r.ReadByte() if err != nil { if i > 0 && err == io.EOF { diff --git a/vendor/golang.org/x/tools/internal/stdlib/deps.go b/vendor/golang.org/x/tools/internal/stdlib/deps.go index 7cca431cd..c50bf406b 100644 --- a/vendor/golang.org/x/tools/internal/stdlib/deps.go +++ b/vendor/golang.org/x/tools/internal/stdlib/deps.go @@ -12,348 +12,348 @@ type pkginfo struct { } var deps = [...]pkginfo{ - {"archive/tar", "\x03k\x03E5\x01\v\x01#\x01\x01\x02\x05\t\x02\x01\x02\x02\v"}, - {"archive/zip", "\x02\x04a\a\x16\x0205\x01+\x05\x01\x10\x03\x02\r\x04"}, - {"bufio", "\x03k}E\x13"}, - {"bytes", "n+R\x03\fG\x02\x02"}, + {"archive/tar", "\x03j\x03E6\x01\v\x01\"\x01\x01\x02\x05\n\x02\x01\x02\x02\v"}, + {"archive/zip", "\x02\x04`\a\x16\x0206\x01*\x05\x01\x11\x03\x02\r\x04"}, + {"bufio", "\x03j~E\x13"}, + {"bytes", "m+S\x03\fG\x02\x02"}, {"cmp", ""}, {"compress/bzip2", "\x02\x02\xe7\x01B"}, - {"compress/flate", "\x02l\x03z\r\x024\x01\x03"}, - {"compress/gzip", "\x02\x04a\a\x03\x15eT"}, - {"compress/lzw", "\x02l\x03z"}, - {"compress/zlib", "\x02\x04a\a\x03\x13\x01f"}, + {"compress/flate", "\x02k\x03{\r\x024\x01\x03"}, + {"compress/gzip", "\x02\x04`\a\x03\x15fT"}, + {"compress/lzw", "\x02k\x03{"}, + {"compress/zlib", "\x02\x04`\a\x03\x13\x01g"}, {"container/heap", "\xae\x02"}, {"container/list", ""}, {"container/ring", ""}, - {"context", "n\\h\x01\f"}, - {"crypto", "\x84\x01gD"}, + {"context", "m\\i\x01\f"}, + {"crypto", "\x83\x01hD"}, {"crypto/aes", "\x10\n\a\x8e\x02"}, - {"crypto/cipher", "\x03\x1e\x01\x01\x1d\x11\x1d,Q"}, - {"crypto/des", "\x10\x13\x1d.,\x95\x01\x03"}, - {"crypto/dsa", "@\x04*}\x0e"}, - {"crypto/ecdh", "\x03\v\f\x0e\x04\x14\x04\r\x1d}"}, - {"crypto/ecdsa", "\x0e\x05\x03\x04\x01\x0e\x16\x01\x04\f\x01\x1d}\x0e\x04K\x01"}, - {"crypto/ed25519", "\x0e\x1c\x16\n\a\x1d}D"}, - {"crypto/elliptic", "0>}\x0e9"}, - {"crypto/fips140", " \x05\x91\x01"}, - {"crypto/hkdf", "-\x12\x01.\x16"}, - {"crypto/hmac", "\x1a\x14\x11\x01\x113"}, - {"crypto/internal/boring", "\x0e\x02\rg"}, + {"crypto/cipher", "\x03\x1e\x01\x01\x1d\x11\x1c,R"}, + {"crypto/des", "\x10\x13\x1d-,\x96\x01\x03"}, + {"crypto/dsa", "@\x04)~\x0e"}, + {"crypto/ecdh", "\x03\v\f\x0e\x04\x14\x04\r\x1c~"}, + {"crypto/ecdsa", "\x0e\x05\x03\x04\x01\x0e\x16\x01\x04\f\x01\x1c~\x0e\x04K\x01"}, + {"crypto/ed25519", "\x0e\x1c\x16\n\a\x1c~D"}, + {"crypto/elliptic", "0=~\x0e9"}, + {"crypto/fips140", " \x05\x90\x01"}, + {"crypto/hkdf", "-\x12\x01-\x16"}, + {"crypto/hmac", "\x1a\x14\x11\x01\x112"}, + {"crypto/internal/boring", "\x0e\x02\rf"}, {"crypto/internal/boring/bbig", "\x1a\xdf\x01L"}, {"crypto/internal/boring/bcache", "\xb3\x02\x12"}, {"crypto/internal/boring/sig", ""}, - {"crypto/internal/cryptotest", "\x03\r\n)\x0e\x1a\x06\x13\x12#\a\t\x11\x11\x11\x1b\x01\f\f\x05\n"}, + {"crypto/internal/cryptotest", "\x03\r\n)\x0e\x19\x06\x13\x12#\a\t\x11\x12\x11\x1a\r\r\x05\n"}, {"crypto/internal/entropy", "E"}, - {"crypto/internal/fips140", ">0}9\f\x15"}, - {"crypto/internal/fips140/aes", "\x03\x1d\x03\x02\x13\x04\x01\x01\x05+\x8c\x015"}, - {"crypto/internal/fips140/aes/gcm", " \x01\x02\x02\x02\x11\x04\x01\x06+\x8a\x01"}, + {"crypto/internal/fips140", ">/~8\r\x15"}, + {"crypto/internal/fips140/aes", "\x03\x1d\x03\x02\x13\x04\x01\x01\x05*\x8d\x015"}, + {"crypto/internal/fips140/aes/gcm", " \x01\x02\x02\x02\x11\x04\x01\x06*\x8b\x01"}, {"crypto/internal/fips140/alias", "\xc5\x02"}, - {"crypto/internal/fips140/bigmod", "%\x17\x01\x06+\x8c\x01"}, + {"crypto/internal/fips140/bigmod", "%\x17\x01\x06*\x8d\x01"}, {"crypto/internal/fips140/check", " \x0e\x06\b\x02\xad\x01Z"}, - {"crypto/internal/fips140/check/checktest", "%\xff\x01!"}, - {"crypto/internal/fips140/drbg", "\x03\x1c\x01\x01\x04\x13\x04\b\x01)}\x0f8"}, - {"crypto/internal/fips140/ecdh", "\x03\x1d\x05\x02\t\f2}\x0f8"}, - {"crypto/internal/fips140/ecdsa", "\x03\x1d\x04\x01\x02\a\x02\x068}G"}, - {"crypto/internal/fips140/ed25519", "\x03\x1d\x05\x02\x04\v8\xc1\x01\x03"}, - {"crypto/internal/fips140/edwards25519", "%\a\f\x042\x8c\x018"}, - {"crypto/internal/fips140/edwards25519/field", "%\x13\x042\x8c\x01"}, - {"crypto/internal/fips140/hkdf", "\x03\x1d\x05\t\x06:"}, - {"crypto/internal/fips140/hmac", "\x03\x1d\x14\x01\x018"}, - {"crypto/internal/fips140/mlkem", "\x03\x1d\x05\x02\x0e\x03\x042"}, - {"crypto/internal/fips140/nistec", "%\f\a\x042\x8c\x01*\x0e\x13"}, - {"crypto/internal/fips140/nistec/fiat", "%\x136\x8c\x01"}, - {"crypto/internal/fips140/pbkdf2", "\x03\x1d\x05\t\x06:"}, - {"crypto/internal/fips140/rsa", "\x03\x1d\x04\x01\x02\r\x01\x01\x026}G"}, - {"crypto/internal/fips140/sha256", "\x03\x1d\x1c\x01\x06+\x8c\x01"}, - {"crypto/internal/fips140/sha3", "\x03\x1d\x18\x04\x011\x8c\x01K"}, - {"crypto/internal/fips140/sha512", "\x03\x1d\x1c\x01\x06+\x8c\x01"}, + {"crypto/internal/fips140/check/checktest", "%\xfe\x01\""}, + {"crypto/internal/fips140/drbg", "\x03\x1c\x01\x01\x04\x13\x04\b\x01(~\x0f8"}, + {"crypto/internal/fips140/ecdh", "\x03\x1d\x05\x02\t\f1~\x0f8"}, + {"crypto/internal/fips140/ecdsa", "\x03\x1d\x04\x01\x02\a\x02\x067~G"}, + {"crypto/internal/fips140/ed25519", "\x03\x1d\x05\x02\x04\v7\xc2\x01\x03"}, + {"crypto/internal/fips140/edwards25519", "%\a\f\x041\x8d\x018"}, + {"crypto/internal/fips140/edwards25519/field", "%\x13\x041\x8d\x01"}, + {"crypto/internal/fips140/hkdf", "\x03\x1d\x05\t\x069"}, + {"crypto/internal/fips140/hmac", "\x03\x1d\x14\x01\x017"}, + {"crypto/internal/fips140/mlkem", "\x03\x1d\x05\x02\x0e\x03\x041"}, + {"crypto/internal/fips140/nistec", "%\f\a\x041\x8d\x01)\x0f\x13"}, + {"crypto/internal/fips140/nistec/fiat", "%\x135\x8d\x01"}, + {"crypto/internal/fips140/pbkdf2", "\x03\x1d\x05\t\x069"}, + {"crypto/internal/fips140/rsa", "\x03\x1d\x04\x01\x02\r\x01\x01\x025~G"}, + {"crypto/internal/fips140/sha256", "\x03\x1d\x1c\x01\x06*\x8d\x01"}, + {"crypto/internal/fips140/sha3", "\x03\x1d\x18\x04\x010\x8d\x01K"}, + {"crypto/internal/fips140/sha512", "\x03\x1d\x1c\x01\x06*\x8d\x01"}, {"crypto/internal/fips140/ssh", " \x05"}, - {"crypto/internal/fips140/subtle", "#\x19\xbe\x01"}, - {"crypto/internal/fips140/tls12", "\x03\x1d\x05\t\x06\x028"}, - {"crypto/internal/fips140/tls13", "\x03\x1d\x05\b\a\b2"}, + {"crypto/internal/fips140/subtle", "#"}, + {"crypto/internal/fips140/tls12", "\x03\x1d\x05\t\x06\x027"}, + {"crypto/internal/fips140/tls13", "\x03\x1d\x05\b\a\b1"}, {"crypto/internal/fips140deps", ""}, - {"crypto/internal/fips140deps/byteorder", "\x9a\x01"}, - {"crypto/internal/fips140deps/cpu", "\xae\x01\a"}, - {"crypto/internal/fips140deps/godebug", "\xb6\x01"}, - {"crypto/internal/fips140hash", "5\x1a5\xc1\x01"}, - {"crypto/internal/fips140only", "'\r\x01\x01N25"}, + {"crypto/internal/fips140deps/byteorder", "\x99\x01"}, + {"crypto/internal/fips140deps/cpu", "\xad\x01\a"}, + {"crypto/internal/fips140deps/godebug", "\xb5\x01"}, + {"crypto/internal/fips140hash", "5\x1a4\xc2\x01"}, + {"crypto/internal/fips140only", "'\r\x01\x01M26"}, {"crypto/internal/fips140test", ""}, - {"crypto/internal/hpke", "\x0e\x01\x01\x03\x1a\x1d$,`M"}, + {"crypto/internal/hpke", "\x0e\x01\x01\x03\x1a\x1d#,aM"}, {"crypto/internal/impl", "\xb0\x02"}, {"crypto/internal/randutil", "\xeb\x01\x12"}, - {"crypto/internal/sysrand", "\xd7\x01@\x1b\x01\f\x06"}, - {"crypto/internal/sysrand/internal/seccomp", "n"}, - {"crypto/md5", "\x0e2.\x16\x16`"}, + {"crypto/internal/sysrand", "mi\"\x1e\r\x0f\x01\x01\v\x06"}, + {"crypto/internal/sysrand/internal/seccomp", "m"}, + {"crypto/md5", "\x0e2-\x16\x16a"}, {"crypto/mlkem", "/"}, - {"crypto/pbkdf2", "2\r\x01.\x16"}, - {"crypto/rand", "\x1a\x06\a\x19\x04\x01)}\x0eL"}, - {"crypto/rc4", "#\x1d.\xc1\x01"}, - {"crypto/rsa", "\x0e\f\x01\t\x0f\f\x01\x04\x06\a\x1d\x03\x1325\r\x01"}, - {"crypto/sha1", "\x0e\f&.\x16\x16\x14L"}, - {"crypto/sha256", "\x0e\f\x1aP"}, - {"crypto/sha3", "\x0e'O\xc1\x01"}, - {"crypto/sha512", "\x0e\f\x1cN"}, - {"crypto/subtle", "8\x98\x01T"}, - {"crypto/tls", "\x03\b\x02\x01\x01\x01\x01\x02\x01\x01\x01\x03\x01\a\x01\v\x02\n\x01\b\x05\x03\x01\x01\x01\x01\x02\x01\x02\x01\x18\x02\x03\x13\x16\x14\b5\x16\x16\r\t\x01\x01\x01\x02\x01\f\x06\x02\x01"}, + {"crypto/pbkdf2", "2\r\x01-\x16"}, + {"crypto/rand", "\x1a\x06\a\x19\x04\x01(~\x0eL"}, + {"crypto/rc4", "#\x1d-\xc2\x01"}, + {"crypto/rsa", "\x0e\f\x01\t\x0f\f\x01\x04\x06\a\x1c\x03\x1326\r\x01"}, + {"crypto/sha1", "\x0e\f&-\x16\x16\x14M"}, + {"crypto/sha256", "\x0e\f\x1aO"}, + {"crypto/sha3", "\x0e'N\xc2\x01"}, + {"crypto/sha512", "\x0e\f\x1cM"}, + {"crypto/subtle", "8\x96\x01U"}, + {"crypto/tls", "\x03\b\x02\x01\x01\x01\x01\x02\x01\x01\x01\x03\x01\a\x01\v\x02\n\x01\b\x05\x03\x01\x01\x01\x01\x02\x01\x02\x01\x17\x02\x03\x13\x16\x14\b6\x16\x15\r\n\x01\x01\x01\x02\x01\f\x06\x02\x01"}, {"crypto/tls/internal/fips140tls", " \x93\x02"}, - {"crypto/x509", "\x03\v\x01\x01\x01\x01\x01\x01\x01\x011\x03\x02\x01\x01\x02\x05\x01\x0e\x06\x02\x02\x03E5\x03\t\x01\x01\x01\a\x10\x05\t\x05\v\x01\x02\r\x02\x01\x01\x02\x03\x01"}, - {"crypto/x509/internal/macos", "\x03k'\x8f\x01\v\x10\x06"}, - {"crypto/x509/pkix", "d\x06\a\x88\x01F"}, - {"database/sql", "\x03\nK\x16\x03z\f\x06\"\x05\t\x02\x03\x01\f\x02\x02\x02"}, - {"database/sql/driver", "\ra\x03\xae\x01\x10\x10"}, - {"debug/buildinfo", "\x03X\x02\x01\x01\b\a\x03`\x18\x02\x01+\x10\x1e"}, - {"debug/dwarf", "\x03d\a\x03z1\x12\x01\x01"}, - {"debug/elf", "\x03\x06Q\r\a\x03`\x19\x01,\x18\x01\x15"}, - {"debug/gosym", "\x03d\n\xbd\x01\x01\x01\x02"}, - {"debug/macho", "\x03\x06Q\r\n`\x1a,\x18\x01"}, - {"debug/pe", "\x03\x06Q\r\a\x03`\x1a,\x18\x01\x15"}, - {"debug/plan9obj", "g\a\x03`\x1a,"}, - {"embed", "n+:\x18\x01S"}, + {"crypto/x509", "\x03\v\x01\x01\x01\x01\x01\x01\x01\x011\x03\x02\x01\x01\x02\x05\x0e\x06\x02\x02\x03E\x033\x01\x02\t\x01\x01\x01\a\x0f\x05\x01\x06\x02\x05\f\x01\x02\r\x02\x01\x01\x02\x03\x01"}, + {"crypto/x509/pkix", "c\x06\a\x89\x01F"}, + {"database/sql", "\x03\nJ\x16\x03{\f\x06!\x05\n\x02\x03\x01\f\x02\x02\x02"}, + {"database/sql/driver", "\r`\x03\xae\x01\x11\x10"}, + {"debug/buildinfo", "\x03W\x02\x01\x01\b\a\x03`\x19\x02\x01*\x0f "}, + {"debug/dwarf", "\x03c\a\x03{0\x13\x01\x01"}, + {"debug/elf", "\x03\x06P\r\a\x03`\x1a\x01+\x19\x01\x15"}, + {"debug/gosym", "\x03c\n\xbe\x01\x01\x01\x02"}, + {"debug/macho", "\x03\x06P\r\n`\x1b+\x19\x01"}, + {"debug/pe", "\x03\x06P\r\a\x03`\x1b+\x19\x01\x15"}, + {"debug/plan9obj", "f\a\x03`\x1b+"}, + {"embed", "m+:\x19\x01S"}, {"embed/internal/embedtest", ""}, {"encoding", ""}, {"encoding/ascii85", "\xeb\x01D"}, - {"encoding/asn1", "\x03k\x03\x87\x01\x01&\x0e\x02\x01\x0f\x03\x01"}, + {"encoding/asn1", "\x03j\x03\x88\x01\x01%\x0f\x02\x01\x0f\x03\x01"}, {"encoding/base32", "\xeb\x01B\x02"}, - {"encoding/base64", "\x9a\x01QB\x02"}, - {"encoding/binary", "n}\r'\x0e\x05"}, - {"encoding/csv", "\x02\x01k\x03zE\x11\x02"}, - {"encoding/gob", "\x02`\x05\a\x03`\x1a\f\x01\x02\x1d\b\x13\x01\x0e\x02"}, - {"encoding/hex", "n\x03zB\x03"}, - {"encoding/json", "\x03\x01^\x04\b\x03z\r'\x0e\x02\x01\x02\x0f\x01\x01\x02"}, - {"encoding/pem", "\x03c\b}B\x03"}, - {"encoding/xml", "\x02\x01_\f\x03z4\x05\v\x01\x02\x0f\x02"}, - {"errors", "\xca\x01{"}, - {"expvar", "kK9\t\n\x15\r\t\x02\x03\x01\x10"}, - {"flag", "b\f\x03z,\b\x05\t\x02\x01\x0f"}, - {"fmt", "nE8\r\x1f\b\x0e\x02\x03\x11"}, - {"go/ast", "\x03\x01m\x0f\x01j\x03)\b\x0e\x02\x01"}, + {"encoding/base64", "f\x85\x01B\x02"}, + {"encoding/binary", "m~\r&\x0f\x05"}, + {"encoding/csv", "\x02\x01j\x03{E\x11\x02"}, + {"encoding/gob", "\x02_\x05\a\x03`\x1b\f\x01\x02\x1c\b\x14\x01\x0e\x02"}, + {"encoding/hex", "m\x03{B\x03"}, + {"encoding/json", "\x03\x01]\x04\b\x03{\r&\x0f\x02\x01\x02\x0f\x01\x01\x02"}, + {"encoding/pem", "\x03b\b~B\x03"}, + {"encoding/xml", "\x02\x01^\f\x03{3\x05\f\x01\x02\x0f\x02"}, + {"errors", "\xc9\x01|"}, + {"expvar", "jK:\t\n\x14\r\n\x02\x03\x01\x10"}, + {"flag", "a\f\x03{+\b\x05\n\x02\x01\x0f"}, + {"fmt", "mE9\r\x1e\b\x0f\x02\x03\x11"}, + {"go/ast", "\x03\x01l\x0f\x01k\x03(\b\x0f\x02\x01"}, {"go/ast/internal/tests", ""}, - {"go/build", "\x02\x01k\x03\x01\x03\x02\a\x02\x01\x17\x1e\x04\x02\t\x14\x12\x01+\x01\x04\x01\a\t\x02\x01\x11\x02\x02"}, - {"go/build/constraint", "n\xc1\x01\x01\x11\x02"}, - {"go/constant", "q\x10w\x01\x015\x01\x02\x11"}, - {"go/doc", "\x04m\x01\x06\t=-1\x11\x02\x01\x11\x02"}, - {"go/doc/comment", "\x03n\xbc\x01\x01\x01\x01\x11\x02"}, - {"go/format", "\x03n\x01\f\x01\x02jE"}, - {"go/importer", "t\a\x01\x01\x04\x01i9"}, - {"go/internal/gccgoimporter", "\x02\x01X\x13\x03\x05\v\x01g\x02,\x01\x05\x12\x01\v\b"}, - {"go/internal/gcimporter", "\x02o\x10\x01/\x05\x0e',\x16\x03\x02"}, - {"go/internal/srcimporter", "q\x01\x02\n\x03\x01i,\x01\x05\x13\x02\x13"}, - {"go/parser", "\x03k\x03\x01\x03\v\x01j\x01+\x06\x13"}, - {"go/printer", "q\x01\x03\x03\tj\r\x1f\x16\x02\x01\x02\n\x05\x02"}, - {"go/scanner", "\x03n\x10j2\x11\x01\x12\x02"}, - {"go/token", "\x04m\xbc\x01\x02\x03\x01\x0e\x02"}, - {"go/types", "\x03\x01\x06d\x03\x01\x04\b\x03\x02\x15\x1e\x06+\x04\x03\n%\a\t\x01\x01\x01\x02\x01\x0e\x02\x02"}, - {"go/version", "\xbb\x01u"}, + {"go/build", "\x02\x01j\x03\x01\x03\x02\a\x02\x01\x17\x1e\x04\x02\t\x14\x13\x01*\x01\x04\x01\a\n\x02\x01\x11\x02\x02"}, + {"go/build/constraint", "m\xc2\x01\x01\x11\x02"}, + {"go/constant", "p\x10x\x01\x015\x01\x02\x11"}, + {"go/doc", "\x04l\x01\x06\t=.0\x12\x02\x01\x11\x02"}, + {"go/doc/comment", "\x03m\xbd\x01\x01\x01\x01\x11\x02"}, + {"go/format", "\x03m\x01\f\x01\x02kE"}, + {"go/importer", "s\a\x01\x01\x04\x01j8"}, + {"go/internal/gccgoimporter", "\x02\x01W\x13\x03\x05\v\x01h\x02+\x01\x05\x13\x01\v\b"}, + {"go/internal/gcimporter", "\x02n\x10\x01/\x05\x0e(+\x17\x03\x02"}, + {"go/internal/srcimporter", "p\x01\x02\n\x03\x01j+\x01\x05\x14\x02\x13"}, + {"go/parser", "\x03j\x03\x01\x03\v\x01k\x01*\x06\x14"}, + {"go/printer", "p\x01\x03\x03\tk\r\x1e\x17\x02\x01\x02\n\x05\x02"}, + {"go/scanner", "\x03m\x10k1\x12\x01\x12\x02"}, + {"go/token", "\x04l\xbd\x01\x02\x03\x01\x0e\x02"}, + {"go/types", "\x03\x01\x06c\x03\x01\x04\b\x03\x02\x15\x1e\x06,\x04\x03\n$\a\n\x01\x01\x01\x02\x01\x0e\x02\x02"}, + {"go/version", "\xba\x01v"}, {"hash", "\xeb\x01"}, - {"hash/adler32", "n\x16\x16"}, - {"hash/crc32", "n\x16\x16\x14\x84\x01\x01"}, - {"hash/crc64", "n\x16\x16\x98\x01"}, - {"hash/fnv", "n\x16\x16`"}, - {"hash/maphash", "\x95\x01\x05\x1b\x03@M"}, + {"hash/adler32", "m\x16\x16"}, + {"hash/crc32", "m\x16\x16\x14\x85\x01\x01\x12"}, + {"hash/crc64", "m\x16\x16\x99\x01"}, + {"hash/fnv", "m\x16\x16a"}, + {"hash/maphash", "\x94\x01\x05\x1b\x03AM"}, {"html", "\xb0\x02\x02\x11"}, - {"html/template", "\x03h\x06\x19,5\x01\v \x05\x01\x02\x03\r\x01\x02\v\x01\x03\x02"}, - {"image", "\x02l\x1f^\x0f5\x03\x01"}, + {"html/template", "\x03g\x06\x19,6\x01\v\x1f\x05\x01\x02\x03\x0e\x01\x02\v\x01\x03\x02"}, + {"image", "\x02k\x1f_\x0f5\x03\x01"}, {"image/color", ""}, - {"image/color/palette", "\x8d\x01"}, - {"image/draw", "\x8c\x01\x01\x04"}, - {"image/gif", "\x02\x01\x05f\x03\x1b\x01\x01\x01\vQ"}, - {"image/internal/imageutil", "\x8c\x01"}, - {"image/jpeg", "\x02l\x1e\x01\x04Z"}, - {"image/png", "\x02\a^\n\x13\x02\x06\x01^D"}, - {"index/suffixarray", "\x03d\a}\r*\v\x01"}, - {"internal/abi", "\xb5\x01\x90\x01"}, + {"image/color/palette", "\x8c\x01"}, + {"image/draw", "\x8b\x01\x01\x04"}, + {"image/gif", "\x02\x01\x05e\x03\x1b\x01\x01\x01\vR"}, + {"image/internal/imageutil", "\x8b\x01"}, + {"image/jpeg", "\x02k\x1e\x01\x04["}, + {"image/png", "\x02\a]\n\x13\x02\x06\x01_D"}, + {"index/suffixarray", "\x03c\a~\r)\f\x01"}, + {"internal/abi", "\xb4\x01\x91\x01"}, {"internal/asan", "\xc5\x02"}, - {"internal/bisect", "\xa4\x02\x0e\x01"}, - {"internal/buildcfg", "qG_\x06\x02\x05\v\x01"}, - {"internal/bytealg", "\xae\x01\x97\x01"}, + {"internal/bisect", "\xa3\x02\x0f\x01"}, + {"internal/buildcfg", "pG_\x06\x02\x05\f\x01"}, + {"internal/bytealg", "\xad\x01\x98\x01"}, {"internal/byteorder", ""}, {"internal/cfg", ""}, - {"internal/chacha8rand", "\x9a\x01\x1b\x90\x01"}, + {"internal/chacha8rand", "\x99\x01\x1b\x91\x01"}, {"internal/copyright", ""}, {"internal/coverage", ""}, {"internal/coverage/calloc", ""}, - {"internal/coverage/cfile", "k\x06\x17\x16\x01\x02\x01\x01\x01\x01\x01\x01\x01$\x01\x1e,\x06\a\v\x01\x03\f\x06"}, - {"internal/coverage/cformat", "\x04m-\x04I\f6\x01\x02\f"}, - {"internal/coverage/cmerge", "q-Z"}, - {"internal/coverage/decodecounter", "g\n-\v\x02@,\x18\x16"}, - {"internal/coverage/decodemeta", "\x02e\n\x17\x16\v\x02@,"}, - {"internal/coverage/encodecounter", "\x02e\n-\f\x01\x02>\f \x16"}, - {"internal/coverage/encodemeta", "\x02\x01d\n\x13\x04\x16\r\x02>,."}, - {"internal/coverage/pods", "\x04m-y\x06\x05\v\x02\x01"}, + {"internal/coverage/cfile", "j\x06\x17\x16\x01\x02\x01\x01\x01\x01\x01\x01\x01#\x01 +\x06\a\f\x01\x03\f\x06"}, + {"internal/coverage/cformat", "\x04l-\x04J\f6\x01\x02\f"}, + {"internal/coverage/cmerge", "p-["}, + {"internal/coverage/decodecounter", "f\n-\v\x02A+\x19\x16"}, + {"internal/coverage/decodemeta", "\x02d\n\x17\x16\v\x02A+"}, + {"internal/coverage/encodecounter", "\x02d\n-\f\x01\x02?\f\x1f\x17"}, + {"internal/coverage/encodemeta", "\x02\x01c\n\x13\x04\x16\r\x02?+/"}, + {"internal/coverage/pods", "\x04l-y\x06\x05\f\x02\x01"}, {"internal/coverage/rtcov", "\xc5\x02"}, - {"internal/coverage/slicereader", "g\nzZ"}, - {"internal/coverage/slicewriter", "qz"}, - {"internal/coverage/stringtab", "q8\x04>"}, + {"internal/coverage/slicereader", "f\n{Z"}, + {"internal/coverage/slicewriter", "p{"}, + {"internal/coverage/stringtab", "p8\x04?"}, {"internal/coverage/test", ""}, {"internal/coverage/uleb128", ""}, {"internal/cpu", "\xc5\x02"}, - {"internal/dag", "\x04m\xbc\x01\x03"}, - {"internal/diff", "\x03n\xbd\x01\x02"}, - {"internal/exportdata", "\x02\x01k\x03\x03]\x1a,\x01\x05\x12\x01\x02"}, - {"internal/filepathlite", "n+:\x19A"}, - {"internal/fmtsort", "\x04\x9b\x02\x0e"}, - {"internal/fuzz", "\x03\nA\x19\x04\x03\x03\x01\f\x0355\r\x02\x1d\x01\x05\x02\x05\v\x01\x02\x01\x01\v\x04\x02"}, + {"internal/dag", "\x04l\xbd\x01\x03"}, + {"internal/diff", "\x03m\xbe\x01\x02"}, + {"internal/exportdata", "\x02\x01j\x03\x03]\x1b+\x01\x05\x13\x01\x02"}, + {"internal/filepathlite", "m+:\x1aA"}, + {"internal/fmtsort", "\x04\x9a\x02\x0f"}, + {"internal/fuzz", "\x03\nA\x18\x04\x03\x03\x01\f\x0356\r\x02\x1c\x01\x05\x02\x05\f\x01\x02\x01\x01\v\x04\x02"}, {"internal/goarch", ""}, - {"internal/godebug", "\x97\x01 {\x01\x12"}, + {"internal/godebug", "\x96\x01 |\x01\x12"}, {"internal/godebugs", ""}, {"internal/goexperiment", ""}, {"internal/goos", ""}, - {"internal/goroot", "\x97\x02\x01\x05\x13\x02"}, + {"internal/goroot", "\x96\x02\x01\x05\x14\x02"}, {"internal/gover", "\x04"}, {"internal/goversion", ""}, {"internal/itoa", ""}, - {"internal/lazyregexp", "\x97\x02\v\x0e\x02"}, - {"internal/lazytemplate", "\xeb\x01,\x19\x02\v"}, + {"internal/lazyregexp", "\x96\x02\v\x0f\x02"}, + {"internal/lazytemplate", "\xeb\x01+\x1a\x02\v"}, {"internal/msan", "\xc5\x02"}, {"internal/nettrace", ""}, - {"internal/obscuretestdata", "f\x85\x01,"}, - {"internal/oserror", "n"}, - {"internal/pkgbits", "\x03K\x19\a\x03\x05\vj\x0e\x1e\r\v\x01"}, + {"internal/obscuretestdata", "e\x86\x01+"}, + {"internal/oserror", "m"}, + {"internal/pkgbits", "\x03K\x18\a\x03\x05\vk\x0e\x1d\r\f\x01"}, {"internal/platform", ""}, - {"internal/poll", "nO\x1a\x149\x0e\x01\x01\v\x06"}, - {"internal/profile", "\x03\x04g\x03z7\f\x01\x01\x0f"}, + {"internal/poll", "mO\x1a\x158\x0f\x01\x01\v\x06"}, + {"internal/profile", "\x03\x04f\x03{6\r\x01\x01\x0f"}, {"internal/profilerecord", ""}, - {"internal/race", "\x95\x01\xb0\x01"}, - {"internal/reflectlite", "\x95\x01 3+\x1a\x02"}, {"internal/syslist", ""}, - {"internal/testenv", "\x03\na\x02\x01*\x1a\x10'+\x01\x05\a\v\x01\x02\x02\x01\n"}, + {"internal/testenv", "\x03\n`\x02\x01*\x1a\x10(*\x01\x05\a\f\x01\x02\x02\x01\n"}, {"internal/testlog", "\xb2\x02\x01\x12"}, - {"internal/testpty", "n\x03f@\x1d"}, - {"internal/trace", "\x02\x01\x01\x06]\a\x03n\x03\x03\x06\x03\n5\x01\x02\x0f\x06"}, - {"internal/trace/internal/testgen", "\x03d\nl\x03\x02\x03\x011\v\x0e"}, - {"internal/trace/internal/tracev1", "\x03\x01c\a\x03t\x06\r5\x01"}, - {"internal/trace/raw", "\x02e\nq\x03\x06D\x01\x11"}, - {"internal/trace/testtrace", "\x02\x01k\x03l\x03\x06\x057\v\x02\x01"}, - {"internal/trace/tracev2", ""}, - {"internal/trace/traceviewer", "\x02^\v\x06\x1a<\x16\a\a\x04\t\n\x15\x01\x05\a\v\x01\x02\r"}, + {"internal/testpty", "m\x03\xa6\x01"}, + {"internal/trace", "\x02\x01\x01\x06\\\a\x03m\x01\x01\x06\x06\x03\n5\x01\x02\x0f"}, + {"internal/trace/event", ""}, + {"internal/trace/event/go122", "pm"}, + {"internal/trace/internal/oldtrace", "\x03\x01b\a\x03m\b\x06\r5\x01"}, + {"internal/trace/internal/testgen/go122", "\x03c\nl\x01\x01\x03\x04\x010\v\x0f"}, + {"internal/trace/raw", "\x02d\nm\b\x06D\x01\x11"}, + {"internal/trace/testtrace", "\x02\x01j\x03l\x05\x05\x056\f\x02\x01"}, + {"internal/trace/traceviewer", "\x02]\v\x06\x1a<\x16\b\a\x04\t\n\x14\x01\x05\a\f\x01\x02\r"}, {"internal/trace/traceviewer/format", ""}, - {"internal/trace/version", "qq\t"}, - {"internal/txtar", "\x03n\xa6\x01\x19"}, + {"internal/trace/version", "pm\x01\r"}, + {"internal/txtar", "\x03m\xa6\x01\x1a"}, {"internal/types/errors", "\xaf\x02"}, {"internal/unsafeheader", "\xc5\x02"}, - {"internal/xcoff", "Z\r\a\x03`\x1a,\x18\x01"}, - {"internal/zstd", "g\a\x03z\x0f"}, - {"io", "n\xc4\x01"}, - {"io/fs", "n+*(1\x11\x12\x04"}, - {"io/ioutil", "\xeb\x01\x01+\x16\x03"}, - {"iter", "\xc9\x01[!"}, - {"log", "qz\x05'\r\x0e\x01\f"}, + {"internal/xcoff", "Y\r\a\x03`\x1b+\x19\x01"}, + {"internal/zstd", "f\a\x03{\x0f"}, + {"io", "m\xc5\x01"}, + {"io/fs", "m+*)0\x12\x12\x04"}, + {"io/ioutil", "\xeb\x01\x01*\x17\x03"}, + {"iter", "\xc8\x01[\""}, + {"log", "p{\x05&\r\x0f\x01\f"}, {"log/internal", ""}, - {"log/slog", "\x03\nU\t\x03\x03z\x04\x01\x02\x02\x04'\x05\t\x02\x01\x02\x01\f\x02\x02\x02"}, + {"log/slog", "\x03\nT\t\x03\x03{\x04\x01\x02\x02\x04&\x05\n\x02\x01\x02\x01\f\x02\x02\x02"}, {"log/slog/internal", ""}, - {"log/slog/internal/benchmarks", "\ra\x03z\x06\x03;\x10"}, + {"log/slog/internal/benchmarks", "\r`\x03{\x06\x03;\x10"}, {"log/slog/internal/buffer", "\xb2\x02"}, {"log/slog/internal/slogtest", "\xf1\x01"}, - {"log/syslog", "n\x03~\x12\x16\x19\x02\r"}, + {"log/syslog", "m\x03\x7f\x12\x15\x1a\x02\r"}, {"maps", "\xee\x01W"}, - {"math", "\xfa\x01K"}, - {"math/big", "\x03k\x03)Q\r\x02\x021\x02\x01\x02\x13"}, + {"math", "\xad\x01MK"}, + {"math/big", "\x03j\x03)\x14>\r\x02\x023\x01\x02\x13"}, {"math/bits", "\xc5\x02"}, {"math/cmplx", "\xf8\x01\x02"}, - {"math/rand", "\xb6\x01B:\x01\x12"}, - {"math/rand/v2", "n,\x02\\\x02K"}, - {"mime", "\x02\x01c\b\x03z\f \x16\x03\x02\x0f\x02"}, - {"mime/multipart", "\x02\x01G$\x03E5\f\x01\x06\x02\x15\x02\x06\x10\x02\x01\x15"}, - {"mime/quotedprintable", "\x02\x01nz"}, - {"net", "\x04\ta+\x1d\a\x04\x05\x05\a\x01\x04\x14\x01%\x06\r\t\x05\x01\x01\v\x06\a"}, - {"net/http", "\x02\x01\x04\x04\x02=\b\x14\x01\a\x03E5\x01\x03\b\x01\x02\x02\x02\x01\x02\x06\x02\x01\x01\n\x01\x01\x05\x01\x02\x05\t\x01\x01\x01\x02\x01\f\x02\x02\x02\b\x01\x01\x01"}, - {"net/http/cgi", "\x02P\x1c\x03z\x04\b\n\x01\x13\x01\x01\x01\x04\x01\x05\x02\t\x02\x01\x0f\x0e"}, - {"net/http/cookiejar", "\x04j\x03\x90\x01\x01\b\f\x17\x03\x02\r\x04"}, - {"net/http/fcgi", "\x02\x01\nZ\a\x03z\x16\x01\x01\x14\x19\x02\r"}, - {"net/http/httptest", "\x02\x01\nE\x02\x1c\x01z\x04\x12\x01\n\t\x02\x18\x01\x02\r\x0e"}, - {"net/http/httptrace", "\rEo@\x14\n "}, - {"net/http/httputil", "\x02\x01\na\x03z\x04\x0f\x03\x01\x05\x02\x01\v\x01\x1a\x02\r\x0e"}, - {"net/http/internal", "\x02\x01k\x03z"}, + {"math/rand", "\xb5\x01C:\x01\x12"}, + {"math/rand/v2", "m,\x02]\x02K"}, + {"mime", "\x02\x01b\b\x03{\f\x1f\x17\x03\x02\x0f\x02"}, + {"mime/multipart", "\x02\x01G#\x03E6\f\x01\x06\x02\x14\x02\x06\x11\x02\x01\x15"}, + {"mime/quotedprintable", "\x02\x01m{"}, + {"net", "\x04\t`+\x1d\a\x04\x05\f\x01\x04\x15\x01$\x06\r\n\x05\x01\x01\v\x06\a"}, + {"net/http", "\x02\x01\x04\x04\x02=\b\x13\x01\a\x03E6\x01\x03\b\x01\x02\x02\x02\x01\x02\x06\x02\x01\n\x01\x01\x05\x01\x02\x05\n\x01\x01\x01\x02\x01\f\x02\x02\x02\b\x01\x01\x01"}, + {"net/http/cgi", "\x02P\x1b\x03{\x04\b\n\x01\x12\x01\x01\x01\x04\x01\x05\x02\n\x02\x01\x0f\x0e"}, + {"net/http/cookiejar", "\x04i\x03\x91\x01\x01\b\v\x18\x03\x02\r\x04"}, + {"net/http/fcgi", "\x02\x01\nY\a\x03{\x16\x01\x01\x13\x1a\x02\r"}, + {"net/http/httptest", "\x02\x01\nE\x02\x1b\x01{\x04\x12\x01\t\t\x02\x19\x01\x02\r\x0e"}, + {"net/http/httptrace", "\rEnA\x13\n!"}, + {"net/http/httputil", "\x02\x01\n`\x03{\x04\x0f\x03\x01\x05\x02\x01\n\x01\x1b\x02\r\x0e"}, + {"net/http/internal", "\x02\x01j\x03{"}, {"net/http/internal/ascii", "\xb0\x02\x11"}, - {"net/http/internal/httpcommon", "\ra\x03\x96\x01\x0e\x01\x18\x01\x01\x02\x1b\x02"}, {"net/http/internal/testcert", "\xb0\x02"}, - {"net/http/pprof", "\x02\x01\nd\x19,\x11$\x04\x13\x14\x01\r\x06\x02\x01\x02\x01\x0f"}, - {"net/internal/cgotest", "\xd7\x01n"}, - {"net/internal/socktest", "q\xc1\x01\x02"}, - {"net/mail", "\x02l\x03z\x04\x0f\x03\x14\x1b\x02\r\x04"}, - {"net/netip", "\x04j+\x01#;\x025\x15"}, - {"net/rpc", "\x02g\x05\x03\x10\n`\x04\x12\x01\x1d\x0e\x03\x02"}, - {"net/rpc/jsonrpc", "k\x03\x03z\x16\x11 "}, - {"net/smtp", "\x19.\v\x14\b\x03z\x16\x14\x1b"}, - {"net/textproto", "\x02\x01k\x03z\r\t.\x01\x02\x13"}, - {"net/url", "n\x03\x86\x01%\x11\x02\x01\x15"}, - {"os", "n+\x19\v\t\r\x03\x01\x04\x10\x018\t\x05\x01\x01\v\x06"}, - {"os/exec", "\x03\naH \x01\x14\x01+\x06\a\v\x01\x04\v"}, + {"net/http/pprof", "\x02\x01\nc\x19,\x11%\x04\x13\x13\x01\r\x06\x03\x01\x02\x01\x0f"}, + {"net/internal/cgotest", ""}, + {"net/internal/socktest", "p\xc2\x01\x02"}, + {"net/mail", "\x02k\x03{\x04\x0f\x03\x13\x1c\x02\r\x04"}, + {"net/netip", "\x04i+\x01#<\x025\x15"}, + {"net/rpc", "\x02f\x05\x03\x10\na\x04\x12\x01\x1c\x0f\x03\x02"}, + {"net/rpc/jsonrpc", "j\x03\x03{\x16\x10!"}, + {"net/smtp", "\x19.\v\x13\b\x03{\x16\x13\x1c"}, + {"net/textproto", "\x02\x01j\x03{\r\t.\x01\x02\x13"}, + {"net/url", "m\x03\x87\x01$\x12\x02\x01\x15"}, + {"os", "m+\x01\x18\x03\b\t\r\x03\x01\x04\x11\x017\n\x05\x01\x01\v\x06"}, + {"os/exec", "\x03\n`H \x01\x15\x01*\x06\a\f\x01\x04\v"}, {"os/exec/internal/fdtest", "\xb4\x02"}, - {"os/signal", "\r\x8a\x02\x16\x05\x02"}, - {"os/user", "qfM\v\x01\x02\x02\x11"}, - {"path", "n+\xaa\x01"}, - {"path/filepath", "n+\x19:+\r\t\x03\x04\x0f"}, - {"plugin", "n\xc4\x01\x13"}, - {"reflect", "n'\x04\x1c\b\f\x05\x02\x18\x06\n,\v\x03\x0f\x02\x02"}, + {"os/signal", "\r\x89\x02\x17\x05\x02"}, + {"os/user", "\x02\x01j\x03{+\r\f\x01\x02"}, + {"path", "m+\xab\x01"}, + {"path/filepath", "m+\x19;*\r\n\x03\x04\x0f"}, + {"plugin", "m"}, + {"reflect", "m'\x04\x1c\b\f\x04\x02\x1a\x06\n+\f\x03\x0f\x02\x02"}, {"reflect/internal/example1", ""}, {"reflect/internal/example2", ""}, - {"regexp", "\x03\xe8\x018\n\x02\x01\x02\x0f\x02"}, + {"regexp", "\x03\xe8\x017\v\x02\x01\x02\x0f\x02"}, {"regexp/syntax", "\xad\x02\x01\x01\x01\x11\x02"}, - {"runtime", "\x95\x01\x04\x01\x02\f\x06\a\x02\x01\x01\x0f\x04\x01\x01\x01\x01\x03\x0fc"}, - {"runtime/cgo", "\xd0\x01b\x01\x12"}, - {"runtime/coverage", "\xa0\x01K"}, - {"runtime/debug", "qUQ\r\t\x02\x01\x0f\x06"}, + {"runtime", "\x94\x01\x04\x01\x02\f\x06\a\x02\x01\x01\x0f\x03\x01\x01\x01\x01\x01\x03s"}, + {"runtime/coverage", "\x9f\x01L"}, + {"runtime/debug", "pUQ\r\n\x02\x01\x0f\x06"}, + {"runtime/internal/startlinetest", ""}, {"runtime/internal/wasitest", ""}, - {"runtime/metrics", "\xb7\x01A,!"}, - {"runtime/pprof", "\x02\x01\x01\x03\x06Z\a\x03$3#\r\x1f\r\t\x01\x01\x01\x02\x02\b\x03\x06"}, - {"runtime/race", ""}, - {"runtime/trace", "\rdz9\x0e\x01\x12"}, + {"runtime/metrics", "\xb6\x01B+\""}, + {"runtime/pprof", "\x02\x01\x01\x03\x06Y\a\x03$3$\r\x1e\r\n\x01\x01\x01\x02\x02\b\x03\x06"}, + {"runtime/race", "\xab\x02"}, + {"runtime/race/internal/amd64v1", ""}, + {"runtime/trace", "\rc{8\x0f\x01\x12"}, {"slices", "\x04\xea\x01\fK"}, - {"sort", "\xca\x0103"}, - {"strconv", "n+:%\x02I"}, - {"strings", "n'\x04:\x18\x03\f8\x0f\x02\x02"}, + {"sort", "\xc9\x0113"}, + {"strconv", "m+:&\x02I"}, + {"strings", "m'\x04:\x19\x03\f8\x0f\x02\x02"}, {"structs", ""}, - {"sync", "\xc9\x01\vP\x0f\x12"}, + {"sync", "\xc8\x01\vP\x10\x12"}, {"sync/atomic", "\xc5\x02"}, - {"syscall", "n'\x01\x03\x01\x1b\b\x03\x03\x06[\x0e\x01\x12"}, - {"testing", "\x03\na\x02\x01X\x0f\x13\r\x04\x1b\x06\x02\x05\x03\x05\x01\x02\x01\x02\x01\f\x02\x02\x02"}, - {"testing/fstest", "n\x03z\x01\v%\x11\x03\b\a"}, - {"testing/internal/testdeps", "\x02\v\xa7\x01'\x10,\x03\x05\x03\b\x06\x02\r"}, - {"testing/iotest", "\x03k\x03z\x04"}, - {"testing/quick", "p\x01\x87\x01\x04#\x11\x0f"}, - {"testing/slogtest", "\ra\x03\x80\x01.\x05\x11\n"}, - {"text/scanner", "\x03nz,*\x02"}, - {"text/tabwriter", "qzX"}, - {"text/template", "n\x03B8\x01\v\x1f\x01\x05\x01\x02\x05\f\x02\f\x03\x02"}, - {"text/template/parse", "\x03n\xb3\x01\v\x01\x11\x02"}, - {"time", "n+\x1d\x1d'*\x0e\x02\x11"}, - {"time/tzdata", "n\xc6\x01\x11"}, + {"syscall", "m(\x03\x01\x1b\b\x03\x03\x06\aT\x0f\x01\x12"}, + {"testing", "\x03\n`\x02\x01G\x11\x0f\x14\r\x04\x1a\x06\x02\x05\x02\a\x01\x02\x01\x02\x01\f\x02\x02\x02"}, + {"testing/fstest", "m\x03{\x01\v$\x12\x03\b\a"}, + {"testing/internal/testdeps", "\x02\v\xa6\x01'\x11+\x03\x05\x03\b\a\x02\r"}, + {"testing/iotest", "\x03j\x03{\x04"}, + {"testing/quick", "o\x01\x88\x01\x04\"\x12\x0f"}, + {"testing/slogtest", "\r`\x03\x81\x01-\x05\x12\n"}, + {"text/scanner", "\x03m{++\x02"}, + {"text/tabwriter", "p{X"}, + {"text/template", "m\x03B9\x01\v\x1e\x01\x05\x01\x02\x05\r\x02\f\x03\x02"}, + {"text/template/parse", "\x03m\xb3\x01\f\x01\x11\x02"}, + {"time", "m+\x1d\x1d()\x0f\x02\x11"}, + {"time/tzdata", "m\xc7\x01\x11"}, {"unicode", ""}, {"unicode/utf16", ""}, {"unicode/utf8", ""}, - {"unique", "\x95\x01>\x01P\x0e\x13\x12"}, + {"unique", "\x94\x01>\x01P\x0f\x13\x12"}, {"unsafe", ""}, - {"vendor/golang.org/x/crypto/chacha20", "\x10W\a\x8c\x01*&"}, - {"vendor/golang.org/x/crypto/chacha20poly1305", "\x10W\a\xd8\x01\x04\x01"}, - {"vendor/golang.org/x/crypto/cryptobyte", "d\n\x03\x88\x01& \n"}, + {"vendor/golang.org/x/crypto/chacha20", "\x10V\a\x8d\x01)'"}, + {"vendor/golang.org/x/crypto/chacha20poly1305", "\x10V\a\xd9\x01\x04\x01\a"}, + {"vendor/golang.org/x/crypto/cryptobyte", "c\n\x03\x89\x01%!\n"}, {"vendor/golang.org/x/crypto/cryptobyte/asn1", ""}, {"vendor/golang.org/x/crypto/internal/alias", "\xc5\x02"}, - {"vendor/golang.org/x/crypto/internal/poly1305", "Q\x16\x93\x01"}, - {"vendor/golang.org/x/net/dns/dnsmessage", "n"}, - {"vendor/golang.org/x/net/http/httpguts", "\x81\x02\x14\x1b\x13\r"}, - {"vendor/golang.org/x/net/http/httpproxy", "n\x03\x90\x01\x15\x01\x19\x13\r"}, - {"vendor/golang.org/x/net/http2/hpack", "\x03k\x03zG"}, - {"vendor/golang.org/x/net/idna", "q\x87\x018\x13\x10\x02\x01"}, - {"vendor/golang.org/x/net/nettest", "\x03d\a\x03z\x11\x05\x16\x01\f\v\x01\x02\x02\x01\n"}, - {"vendor/golang.org/x/sys/cpu", "\x97\x02\r\v\x01\x15"}, - {"vendor/golang.org/x/text/secure/bidirule", "n\xd5\x01\x11\x01"}, - {"vendor/golang.org/x/text/transform", "\x03k}X"}, - {"vendor/golang.org/x/text/unicode/bidi", "\x03\bf~?\x15"}, - {"vendor/golang.org/x/text/unicode/norm", "g\nzG\x11\x11"}, - {"weak", "\x95\x01\x8f\x01!"}, + {"vendor/golang.org/x/crypto/internal/poly1305", "Q\x15\x94\x01"}, + {"vendor/golang.org/x/net/dns/dnsmessage", "m"}, + {"vendor/golang.org/x/net/http/httpguts", "\x81\x02\x13\x1c\x13\r"}, + {"vendor/golang.org/x/net/http/httpproxy", "m\x03\x91\x01\x0f\x05\x01\x1a\x13\r"}, + {"vendor/golang.org/x/net/http2/hpack", "\x03j\x03{G"}, + {"vendor/golang.org/x/net/idna", "p\x88\x018\x13\x10\x02\x01"}, + {"vendor/golang.org/x/net/nettest", "\x03c\a\x03{\x11\x05\x15\x01\f\f\x01\x02\x02\x01\n"}, + {"vendor/golang.org/x/sys/cpu", "\x96\x02\r\f\x01\x15"}, + {"vendor/golang.org/x/text/secure/bidirule", "m\xd6\x01\x11\x01"}, + {"vendor/golang.org/x/text/transform", "\x03j~X"}, + {"vendor/golang.org/x/text/unicode/bidi", "\x03\be\x7f?\x15"}, + {"vendor/golang.org/x/text/unicode/norm", "f\n{G\x11\x11"}, + {"weak", "\x94\x01\x8f\x01\""}, } diff --git a/vendor/golang.org/x/tools/internal/stdlib/manifest.go b/vendor/golang.org/x/tools/internal/stdlib/manifest.go index 00776a31b..2b418796a 100644 --- a/vendor/golang.org/x/tools/internal/stdlib/manifest.go +++ b/vendor/golang.org/x/tools/internal/stdlib/manifest.go @@ -7119,7 +7119,6 @@ var PackageSymbols = map[string][]Symbol{ {"FormatFileInfo", Func, 21}, {"Glob", Func, 16}, {"GlobFS", Type, 16}, - {"Lstat", Func, 25}, {"ModeAppend", Const, 16}, {"ModeCharDevice", Const, 16}, {"ModeDevice", Const, 16}, @@ -7144,8 +7143,6 @@ var PackageSymbols = map[string][]Symbol{ {"ReadDirFile", Type, 16}, {"ReadFile", Func, 16}, {"ReadFileFS", Type, 16}, - {"ReadLink", Func, 25}, - {"ReadLinkFS", Type, 25}, {"SkipAll", Var, 20}, {"SkipDir", Var, 16}, {"Stat", Func, 16}, @@ -9149,8 +9146,6 @@ var PackageSymbols = map[string][]Symbol{ {"(*ProcessState).SysUsage", Method, 0}, {"(*ProcessState).SystemTime", Method, 0}, {"(*ProcessState).UserTime", Method, 0}, - {"(*Root).Chmod", Method, 25}, - {"(*Root).Chown", Method, 25}, {"(*Root).Close", Method, 24}, {"(*Root).Create", Method, 24}, {"(*Root).FS", Method, 24}, @@ -16759,11 +16754,9 @@ var PackageSymbols = map[string][]Symbol{ }, "testing/fstest": { {"(MapFS).Glob", Method, 16}, - {"(MapFS).Lstat", Method, 25}, {"(MapFS).Open", Method, 16}, {"(MapFS).ReadDir", Method, 16}, {"(MapFS).ReadFile", Method, 16}, - {"(MapFS).ReadLink", Method, 25}, {"(MapFS).Stat", Method, 16}, {"(MapFS).Sub", Method, 16}, {"MapFS", Type, 16}, diff --git a/vendor/golang.org/x/tools/internal/typeparams/free.go b/vendor/golang.org/x/tools/internal/typeparams/free.go index 0ade5c294..709d2fc14 100644 --- a/vendor/golang.org/x/tools/internal/typeparams/free.go +++ b/vendor/golang.org/x/tools/internal/typeparams/free.go @@ -70,7 +70,7 @@ func (w *Free) Has(typ types.Type) (res bool) { case *types.Tuple: n := t.Len() - for i := 0; i < n; i++ { + for i := range n { if w.Has(t.At(i).Type()) { return true } diff --git a/vendor/golang.org/x/tools/internal/typeparams/termlist.go b/vendor/golang.org/x/tools/internal/typeparams/termlist.go index cbd12f801..9bc29143f 100644 --- a/vendor/golang.org/x/tools/internal/typeparams/termlist.go +++ b/vendor/golang.org/x/tools/internal/typeparams/termlist.go @@ -1,3 +1,6 @@ +// Code generated by "go test -run=Generate -write=all"; DO NOT EDIT. +// Source: ../../cmd/compile/internal/types2/termlist.go + // Copyright 2021 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. @@ -7,8 +10,8 @@ package typeparams import ( - "bytes" "go/types" + "strings" ) // A termlist represents the type set represented by the union @@ -22,15 +25,18 @@ type termlist []*term // It is in normal form. var allTermlist = termlist{new(term)} +// termSep is the separator used between individual terms. +const termSep = " | " + // String prints the termlist exactly (without normalization). func (xl termlist) String() string { if len(xl) == 0 { return "∅" } - var buf bytes.Buffer + var buf strings.Builder for i, x := range xl { if i > 0 { - buf.WriteString(" | ") + buf.WriteString(termSep) } buf.WriteString(x.String()) } diff --git a/vendor/golang.org/x/tools/internal/typeparams/typeterm.go b/vendor/golang.org/x/tools/internal/typeparams/typeterm.go index 7350bb702..fa758cdc9 100644 --- a/vendor/golang.org/x/tools/internal/typeparams/typeterm.go +++ b/vendor/golang.org/x/tools/internal/typeparams/typeterm.go @@ -1,3 +1,6 @@ +// Code generated by "go test -run=Generate -write=all"; DO NOT EDIT. +// Source: ../../cmd/compile/internal/types2/typeterm.go + // Copyright 2021 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. diff --git a/vendor/golang.org/x/tools/internal/typesinternal/classify_call.go b/vendor/golang.org/x/tools/internal/typesinternal/classify_call.go new file mode 100644 index 000000000..649c82b6b --- /dev/null +++ b/vendor/golang.org/x/tools/internal/typesinternal/classify_call.go @@ -0,0 +1,135 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package typesinternal + +import ( + "fmt" + "go/ast" + "go/types" + _ "unsafe" +) + +// CallKind describes the function position of an [*ast.CallExpr]. +type CallKind int + +const ( + CallStatic CallKind = iota // static call to known function + CallInterface // dynamic call through an interface method + CallDynamic // dynamic call of a func value + CallBuiltin // call to a builtin function + CallConversion // a conversion (not a call) +) + +var callKindNames = []string{ + "CallStatic", + "CallInterface", + "CallDynamic", + "CallBuiltin", + "CallConversion", +} + +func (k CallKind) String() string { + if i := int(k); i >= 0 && i < len(callKindNames) { + return callKindNames[i] + } + return fmt.Sprintf("typeutil.CallKind(%d)", k) +} + +// ClassifyCall classifies the function position of a call expression ([*ast.CallExpr]). +// It distinguishes among true function calls, calls to builtins, and type conversions, +// and further classifies function calls as static calls (where the function is known), +// dynamic interface calls, and other dynamic calls. +// +// For the declarations: +// +// func f() {} +// func g[T any]() {} +// var v func() +// var s []func() +// type I interface { M() } +// var i I +// +// ClassifyCall returns the following: +// +// f() CallStatic +// g[int]() CallStatic +// i.M() CallInterface +// min(1, 2) CallBuiltin +// v() CallDynamic +// s[0]() CallDynamic +// int(x) CallConversion +// []byte("") CallConversion +func ClassifyCall(info *types.Info, call *ast.CallExpr) CallKind { + if info.Types == nil { + panic("ClassifyCall: info.Types is nil") + } + if info.Types[call.Fun].IsType() { + return CallConversion + } + obj := info.Uses[UsedIdent(info, call.Fun)] + // Classify the call by the type of the object, if any. + switch obj := obj.(type) { + case *types.Builtin: + return CallBuiltin + case *types.Func: + if interfaceMethod(obj) { + return CallInterface + } + return CallStatic + default: + return CallDynamic + } +} + +// UsedIdent returns the identifier such that info.Uses[UsedIdent(info, e)] +// is the [types.Object] used by e, if any. +// +// If e is one of various forms of reference: +// +// f, c, v, T lexical reference +// pkg.X qualified identifier +// f[T] or pkg.F[K,V] instantiations of the above kinds +// expr.f field or method value selector +// T.f method expression selector +// +// UsedIdent returns the identifier whose is associated value in [types.Info.Uses] +// is the object to which it refers. +// +// For the declarations: +// +// func F[T any] {...} +// type I interface { M() } +// var ( +// x int +// s struct { f int } +// a []int +// i I +// ) +// +// UsedIdent returns the following: +// +// Expr UsedIdent +// x x +// s.f f +// F[int] F +// i.M M +// I.M M +// min min +// int int +// 1 nil +// a[0] nil +// []byte nil +// +// Note: if e is an instantiated function or method, UsedIdent returns +// the corresponding generic function or method on the generic type. +func UsedIdent(info *types.Info, e ast.Expr) *ast.Ident { + return usedIdent(info, e) +} + +//go:linkname usedIdent golang.org/x/tools/go/types/typeutil.usedIdent +func usedIdent(info *types.Info, e ast.Expr) *ast.Ident + +//go:linkname interfaceMethod golang.org/x/tools/go/types/typeutil.interfaceMethod +func interfaceMethod(f *types.Func) bool diff --git a/vendor/golang.org/x/tools/internal/typesinternal/types.go b/vendor/golang.org/x/tools/internal/typesinternal/types.go index edf0347ec..cc244689e 100644 --- a/vendor/golang.org/x/tools/internal/typesinternal/types.go +++ b/vendor/golang.org/x/tools/internal/typesinternal/types.go @@ -7,6 +7,7 @@ package typesinternal import ( + "go/ast" "go/token" "go/types" "reflect" @@ -127,3 +128,17 @@ func Origin(t NamedOrAlias) NamedOrAlias { func IsPackageLevel(obj types.Object) bool { return obj.Pkg() != nil && obj.Parent() == obj.Pkg().Scope() } + +// NewTypesInfo returns a *types.Info with all maps populated. +func NewTypesInfo() *types.Info { + return &types.Info{ + Types: map[ast.Expr]types.TypeAndValue{}, + Instances: map[*ast.Ident]types.Instance{}, + Defs: map[*ast.Ident]types.Object{}, + Uses: map[*ast.Ident]types.Object{}, + Implicits: map[ast.Node]types.Object{}, + Selections: map[*ast.SelectorExpr]*types.Selection{}, + Scopes: map[ast.Node]*types.Scope{}, + FileVersions: map[*ast.File]string{}, + } +} diff --git a/vendor/modules.txt b/vendor/modules.txt index 4caacf97d..74ec27cfe 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -273,8 +273,8 @@ codeberg.org/gruf/go-sched # codeberg.org/gruf/go-split v1.2.0 ## explicit; go 1.20 codeberg.org/gruf/go-split -# codeberg.org/gruf/go-storage v0.2.0 -## explicit; go 1.22 +# codeberg.org/gruf/go-storage v0.2.1 +## explicit; go 1.23.0 codeberg.org/gruf/go-storage codeberg.org/gruf/go-storage/disk codeberg.org/gruf/go-storage/internal @@ -286,7 +286,7 @@ codeberg.org/gruf/go-structr # github.com/DmitriyVTitov/size v1.5.0 ## explicit; go 1.14 github.com/DmitriyVTitov/size -# github.com/KimMachineGun/automemlimit v0.7.1 +# github.com/KimMachineGun/automemlimit v0.7.2 ## explicit; go 1.22.0 github.com/KimMachineGun/automemlimit/memlimit # github.com/Masterminds/goutils v1.1.1 @@ -666,8 +666,8 @@ github.com/mattn/go-isatty ## explicit; go 1.19 github.com/microcosm-cc/bluemonday github.com/microcosm-cc/bluemonday/css -# github.com/miekg/dns v1.1.65 -## explicit; go 1.22.0 +# github.com/miekg/dns v1.1.66 +## explicit; go 1.23.0 github.com/miekg/dns # github.com/minio/crc64nvme v1.0.1 ## explicit; go 1.22 @@ -707,7 +707,7 @@ github.com/modern-go/reflect2 # github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 ## explicit github.com/munnerz/goautoneg -# github.com/ncruces/go-sqlite3 v0.25.1 +# github.com/ncruces/go-sqlite3 v0.25.2 ## explicit; go 1.23.0 github.com/ncruces/go-sqlite3 github.com/ncruces/go-sqlite3/driver @@ -804,7 +804,7 @@ github.com/sourcegraph/conc/panics github.com/spf13/afero github.com/spf13/afero/internal/common github.com/spf13/afero/mem -# github.com/spf13/cast v1.7.1 +# github.com/spf13/cast v1.8.0 ## explicit; go 1.19 github.com/spf13/cast # github.com/spf13/cobra v1.9.1 @@ -830,12 +830,12 @@ github.com/stretchr/testify/suite # github.com/subosito/gotenv v1.6.0 ## explicit; go 1.18 github.com/subosito/gotenv -# github.com/tdewolff/minify/v2 v2.23.1 -## explicit; go 1.18.0 +# github.com/tdewolff/minify/v2 v2.23.5 +## explicit; go 1.17 github.com/tdewolff/minify/v2 github.com/tdewolff/minify/v2/html -# github.com/tdewolff/parse/v2 v2.7.23 -## explicit; go 1.13 +# github.com/tdewolff/parse/v2 v2.8.0 +## explicit; go 1.11 github.com/tdewolff/parse/v2 github.com/tdewolff/parse/v2/buffer github.com/tdewolff/parse/v2/html @@ -1123,7 +1123,7 @@ go.uber.org/multierr # golang.org/x/arch v0.16.0 ## explicit; go 1.23.0 golang.org/x/arch/x86/x86asm -# golang.org/x/crypto v0.37.0 +# golang.org/x/crypto v0.38.0 ## explicit; go 1.23.0 golang.org/x/crypto/acme golang.org/x/crypto/acme/autocert @@ -1147,7 +1147,7 @@ golang.org/x/crypto/ssh/internal/bcrypt_pbkdf # golang.org/x/exp v0.0.0-20250305212735-054e65f0b394 ## explicit; go 1.23.0 golang.org/x/exp/constraints -# golang.org/x/image v0.26.0 +# golang.org/x/image v0.27.0 ## explicit; go 1.23.0 golang.org/x/image/riff golang.org/x/image/vp8 @@ -1158,7 +1158,7 @@ golang.org/x/image/webp golang.org/x/mod/internal/lazyregexp golang.org/x/mod/module golang.org/x/mod/semver -# golang.org/x/net v0.39.0 +# golang.org/x/net v0.40.0 ## explicit; go 1.23.0 golang.org/x/net/bpf golang.org/x/net/context @@ -1177,21 +1177,21 @@ golang.org/x/net/ipv4 golang.org/x/net/ipv6 golang.org/x/net/publicsuffix golang.org/x/net/trace -# golang.org/x/oauth2 v0.29.0 +# golang.org/x/oauth2 v0.30.0 ## explicit; go 1.23.0 golang.org/x/oauth2 golang.org/x/oauth2/internal -# golang.org/x/sync v0.13.0 +# golang.org/x/sync v0.14.0 ## explicit; go 1.23.0 golang.org/x/sync/errgroup golang.org/x/sync/semaphore -# golang.org/x/sys v0.32.0 +# golang.org/x/sys v0.33.0 ## explicit; go 1.23.0 golang.org/x/sys/cpu golang.org/x/sys/unix golang.org/x/sys/windows golang.org/x/sys/windows/registry -# golang.org/x/text v0.24.0 +# golang.org/x/text v0.25.0 ## explicit; go 1.23.0 golang.org/x/text/cases golang.org/x/text/encoding @@ -1213,7 +1213,7 @@ golang.org/x/text/transform golang.org/x/text/unicode/bidi golang.org/x/text/unicode/norm golang.org/x/text/width -# golang.org/x/tools v0.31.0 +# golang.org/x/tools v0.32.0 ## explicit; go 1.23.0 golang.org/x/tools/go/ast/astutil golang.org/x/tools/go/gcexportdata