Files
larksuite__cli/internal/qualitygate/deptest/testdata/import-surface-darwin.txt
T
zhaojunlin0405 fda8d7cdae fix: reduce vulnerable dependencies while retaining Go 1.23 (#2659)
* fix: reduce vulnerable dependencies while retaining Go 1.23

* fix(imageconfig): own the standard-library codec registration

Decode dispatches PNG, JPEG and GIF to image.DecodeConfig, which only
answers for codecs some package in the binary has imported. The package
did not import them; it worked because all five call sites still carried
blank imports left over from calling image.DecodeConfig directly. Those
files no longer mention image at all, so the imports now read as dead
weight and the next tidy-up removes them -- silently for base, calendar
and doc-media, as a hard command failure for sheets +set-cell-image and
docs remote images.

Register the three codecs where they are used and drop the call-site
imports. The guard lives in deptest because that package imports no
codec of its own and can therefore prove the ownership.

* fix(imageconfig): keep WebP dimensions readable when the final pad byte is absent

readWebP required every chunk to fit inside the container *with* its
even-padding byte, and required the container size itself to be even,
before it looked at the chunk at all. A writer that omits the pad after
a final odd-sized chunk, or that counts trailing bytes in the RIFF size,
therefore lost its dimensions -- files golang.org/x/image reads without
complaint. That is a silent downgrade on the base, calendar and
doc-media paths and a hard failure on sheets +set-cell-image and docs
remote images, which surface the decode error to the user.

Separate the two bounds. The chunk payload must lie inside the
container, which still rejects a chunk claiming to reach past it; the
padding byte is only required where it is actually consumed, when
skipping to the next chunk.

Differential against x/image v0.30.0 over 300k mutated inputs: 168450
inputs accepted by both, zero dimension disagreements, and x/image-only
acceptances down from 4806 to 3442.

* test(imageconfig): reach the format readers when asserting error preservation

TestMetadataPreservesReadCause injected its failure at offset 0, which
Decode consumes for the magic bytes before it dispatches. readBMP and
readWebP were never entered, so both could discard the source error and
the test would still pass -- verified by mutation: making readBMP return
errMetadata instead of the read error leaves the old assertion green.

Inject at the first offset each reader requests on its own, and assert
the reader ran by checking the format it reports.

Raised by coderabbitai on internal/imageconfig/metadata_test.go.

* test(deptest): pin the binary's external package surface

Adding a module is visible: go.mod changes and the diff invites a look.
Adding a subpackage of a module already required is not. The diff is one
import line, go.mod is untouched, and the binary silently grows a new
package graph.

That is exactly how golang.org/x/net/idna entered this CLI -- via a
single httpguts import added in #1910 for a header check that turned out
to be redundant -- bringing three x/text packages with it. Nobody looked
until an advisory landed on idna. The enumerated guard added alongside
it only names the three packages already known to be a problem; it
cannot see the next one.

Record the non-stdlib package set of the release binary per GOOS and
diff against it. Replaying the #1910 import against this guard reports
the five packages it added, by name, on all three platforms. Regenerate
with -update-import-surface after confirming an addition is intended.

Also assert golang.org/x/image stays out of both the binary and the test
graph, which is what this branch set out to remove and what nothing
currently guards.

* fix(deptest): read only stdout when recording the import surface

The recorder used CombinedOutput, so "go: downloading ..." notices --
which go list writes to stderr -- were parsed as package names whenever
the module cache was cold for the platform being listed. It passed here
and failed on CI, which had never fetched the windows-only modules:
go-winio, coninput, mousetrap and go-localereader showed up as four
added packages.

Read stdout only, keep stderr for the failure message, and fail loudly
on any line containing whitespace, since an import path never does.

Verified against a cold GOMODCACHE: the download notice lands on stderr
and stdout stays clean.

* fix(imageconfig): ignore the VP8X reserved fields, as the spec requires

readWebP rejected a VP8X chunk whose reserved bits were non-zero: the
two high flag bits, the low flag bit, or the 24-bit reserved block. The
container spec says of each of them "MUST be 0. Readers MUST ignore this
field." Writing a non-zero value is the writer's violation; refusing to
read it is ours.

Reproduced against a real cwebp VP8X file: with any one reserved bit
set, golang.org/x/image reads 37x23 from both DecodeConfig and a full
pixel decode, while this reader returned an error -- which surfaces to
the user as a blocked docs image import or a failed sheets
+set-cell-image.

Keep the 10-byte chunk length and the container bounds, drop the
reserved-field check. The malformed-metadata case that pinned the old
behaviour now covers the chunk length instead.

---------
2026-09-11 00:14:28 +08:00

204 lines
9.1 KiB
Plaintext

github.com/atotto/clipboard
github.com/aymanbagabas/go-osc52/v2
github.com/bmatcuk/doublestar/v4
github.com/catppuccin/go
github.com/charmbracelet/bubbles/cursor
github.com/charmbracelet/bubbles/filepicker
github.com/charmbracelet/bubbles/help
github.com/charmbracelet/bubbles/key
github.com/charmbracelet/bubbles/runeutil
github.com/charmbracelet/bubbles/spinner
github.com/charmbracelet/bubbles/textarea
github.com/charmbracelet/bubbles/textarea/memoization
github.com/charmbracelet/bubbles/textinput
github.com/charmbracelet/bubbles/viewport
github.com/charmbracelet/bubbletea
github.com/charmbracelet/colorprofile
github.com/charmbracelet/huh
github.com/charmbracelet/huh/internal/accessibility
github.com/charmbracelet/huh/internal/selector
github.com/charmbracelet/lipgloss
github.com/charmbracelet/x/ansi
github.com/charmbracelet/x/ansi/kitty
github.com/charmbracelet/x/ansi/parser
github.com/charmbracelet/x/cellbuf
github.com/charmbracelet/x/exp/strings
github.com/charmbracelet/x/term
github.com/dustin/go-humanize
github.com/gofrs/flock
github.com/gogo/protobuf/gogoproto
github.com/gogo/protobuf/proto
github.com/gogo/protobuf/protoc-gen-gogo/descriptor
github.com/google/uuid
github.com/gorilla/websocket
github.com/itchyny/gojq
github.com/itchyny/timefmt-go
github.com/larksuite/oapi-sdk-go/v3
github.com/larksuite/oapi-sdk-go/v3/cache
github.com/larksuite/oapi-sdk-go/v3/card
github.com/larksuite/oapi-sdk-go/v3/core
github.com/larksuite/oapi-sdk-go/v3/event
github.com/larksuite/oapi-sdk-go/v3/event/dispatcher
github.com/larksuite/oapi-sdk-go/v3/event/dispatcher/callback
github.com/larksuite/oapi-sdk-go/v3/service/acs
github.com/larksuite/oapi-sdk-go/v3/service/acs/v1
github.com/larksuite/oapi-sdk-go/v3/service/admin
github.com/larksuite/oapi-sdk-go/v3/service/admin/v1
github.com/larksuite/oapi-sdk-go/v3/service/aily
github.com/larksuite/oapi-sdk-go/v3/service/aily/v1
github.com/larksuite/oapi-sdk-go/v3/service/apaas
github.com/larksuite/oapi-sdk-go/v3/service/apaas/v1
github.com/larksuite/oapi-sdk-go/v3/service/application
github.com/larksuite/oapi-sdk-go/v3/service/application/v6
github.com/larksuite/oapi-sdk-go/v3/service/approval
github.com/larksuite/oapi-sdk-go/v3/service/approval/v4
github.com/larksuite/oapi-sdk-go/v3/service/attendance
github.com/larksuite/oapi-sdk-go/v3/service/attendance/v1
github.com/larksuite/oapi-sdk-go/v3/service/auth
github.com/larksuite/oapi-sdk-go/v3/service/auth/v3
github.com/larksuite/oapi-sdk-go/v3/service/authen
github.com/larksuite/oapi-sdk-go/v3/service/authen/v1
github.com/larksuite/oapi-sdk-go/v3/service/baike
github.com/larksuite/oapi-sdk-go/v3/service/baike/v1
github.com/larksuite/oapi-sdk-go/v3/service/base
github.com/larksuite/oapi-sdk-go/v3/service/base/v2
github.com/larksuite/oapi-sdk-go/v3/service/bitable
github.com/larksuite/oapi-sdk-go/v3/service/bitable/v1
github.com/larksuite/oapi-sdk-go/v3/service/block
github.com/larksuite/oapi-sdk-go/v3/service/block/v2
github.com/larksuite/oapi-sdk-go/v3/service/board
github.com/larksuite/oapi-sdk-go/v3/service/board/v1
github.com/larksuite/oapi-sdk-go/v3/service/calendar
github.com/larksuite/oapi-sdk-go/v3/service/calendar/v4
github.com/larksuite/oapi-sdk-go/v3/service/cardkit
github.com/larksuite/oapi-sdk-go/v3/service/cardkit/v1
github.com/larksuite/oapi-sdk-go/v3/service/compensation
github.com/larksuite/oapi-sdk-go/v3/service/compensation/v1
github.com/larksuite/oapi-sdk-go/v3/service/contact
github.com/larksuite/oapi-sdk-go/v3/service/contact/v3
github.com/larksuite/oapi-sdk-go/v3/service/corehr
github.com/larksuite/oapi-sdk-go/v3/service/corehr/v1
github.com/larksuite/oapi-sdk-go/v3/service/corehr/v2
github.com/larksuite/oapi-sdk-go/v3/service/directory
github.com/larksuite/oapi-sdk-go/v3/service/directory/v1
github.com/larksuite/oapi-sdk-go/v3/service/docs
github.com/larksuite/oapi-sdk-go/v3/service/docs/v1
github.com/larksuite/oapi-sdk-go/v3/service/document_ai
github.com/larksuite/oapi-sdk-go/v3/service/document_ai/v1
github.com/larksuite/oapi-sdk-go/v3/service/docx
github.com/larksuite/oapi-sdk-go/v3/service/docx/v1
github.com/larksuite/oapi-sdk-go/v3/service/drive
github.com/larksuite/oapi-sdk-go/v3/service/drive/v1
github.com/larksuite/oapi-sdk-go/v3/service/drive/v2
github.com/larksuite/oapi-sdk-go/v3/service/ehr
github.com/larksuite/oapi-sdk-go/v3/service/ehr/v1
github.com/larksuite/oapi-sdk-go/v3/service/event
github.com/larksuite/oapi-sdk-go/v3/service/event/v1
github.com/larksuite/oapi-sdk-go/v3/service/ext
github.com/larksuite/oapi-sdk-go/v3/service/helpdesk
github.com/larksuite/oapi-sdk-go/v3/service/helpdesk/v1
github.com/larksuite/oapi-sdk-go/v3/service/hire
github.com/larksuite/oapi-sdk-go/v3/service/hire/v1
github.com/larksuite/oapi-sdk-go/v3/service/hire/v2
github.com/larksuite/oapi-sdk-go/v3/service/human_authentication
github.com/larksuite/oapi-sdk-go/v3/service/human_authentication/v1
github.com/larksuite/oapi-sdk-go/v3/service/im
github.com/larksuite/oapi-sdk-go/v3/service/im/v1
github.com/larksuite/oapi-sdk-go/v3/service/im/v2
github.com/larksuite/oapi-sdk-go/v3/service/lingo
github.com/larksuite/oapi-sdk-go/v3/service/lingo/v1
github.com/larksuite/oapi-sdk-go/v3/service/mail
github.com/larksuite/oapi-sdk-go/v3/service/mail/v1
github.com/larksuite/oapi-sdk-go/v3/service/mdm
github.com/larksuite/oapi-sdk-go/v3/service/mdm/v1
github.com/larksuite/oapi-sdk-go/v3/service/mdm/v3
github.com/larksuite/oapi-sdk-go/v3/service/meeting_room
github.com/larksuite/oapi-sdk-go/v3/service/meeting_room/v1
github.com/larksuite/oapi-sdk-go/v3/service/minutes
github.com/larksuite/oapi-sdk-go/v3/service/minutes/v1
github.com/larksuite/oapi-sdk-go/v3/service/moments
github.com/larksuite/oapi-sdk-go/v3/service/moments/v1
github.com/larksuite/oapi-sdk-go/v3/service/okr
github.com/larksuite/oapi-sdk-go/v3/service/okr/v1
github.com/larksuite/oapi-sdk-go/v3/service/optical_char_recognition
github.com/larksuite/oapi-sdk-go/v3/service/optical_char_recognition/v1
github.com/larksuite/oapi-sdk-go/v3/service/passport
github.com/larksuite/oapi-sdk-go/v3/service/passport/v1
github.com/larksuite/oapi-sdk-go/v3/service/payroll
github.com/larksuite/oapi-sdk-go/v3/service/payroll/v1
github.com/larksuite/oapi-sdk-go/v3/service/performance
github.com/larksuite/oapi-sdk-go/v3/service/performance/v2
github.com/larksuite/oapi-sdk-go/v3/service/personal_settings
github.com/larksuite/oapi-sdk-go/v3/service/personal_settings/v1
github.com/larksuite/oapi-sdk-go/v3/service/report
github.com/larksuite/oapi-sdk-go/v3/service/report/v1
github.com/larksuite/oapi-sdk-go/v3/service/search
github.com/larksuite/oapi-sdk-go/v3/service/search/v2
github.com/larksuite/oapi-sdk-go/v3/service/security_and_compliance
github.com/larksuite/oapi-sdk-go/v3/service/security_and_compliance/v1
github.com/larksuite/oapi-sdk-go/v3/service/security_and_compliance/v2
github.com/larksuite/oapi-sdk-go/v3/service/sheets
github.com/larksuite/oapi-sdk-go/v3/service/sheets/v3
github.com/larksuite/oapi-sdk-go/v3/service/speech_to_text
github.com/larksuite/oapi-sdk-go/v3/service/speech_to_text/v1
github.com/larksuite/oapi-sdk-go/v3/service/task
github.com/larksuite/oapi-sdk-go/v3/service/task/v1
github.com/larksuite/oapi-sdk-go/v3/service/task/v2
github.com/larksuite/oapi-sdk-go/v3/service/tenant
github.com/larksuite/oapi-sdk-go/v3/service/tenant/v2
github.com/larksuite/oapi-sdk-go/v3/service/translation
github.com/larksuite/oapi-sdk-go/v3/service/translation/v1
github.com/larksuite/oapi-sdk-go/v3/service/vc
github.com/larksuite/oapi-sdk-go/v3/service/vc/v1
github.com/larksuite/oapi-sdk-go/v3/service/verification
github.com/larksuite/oapi-sdk-go/v3/service/verification/v1
github.com/larksuite/oapi-sdk-go/v3/service/wiki
github.com/larksuite/oapi-sdk-go/v3/service/wiki/v1
github.com/larksuite/oapi-sdk-go/v3/service/wiki/v2
github.com/larksuite/oapi-sdk-go/v3/service/workplace
github.com/larksuite/oapi-sdk-go/v3/service/workplace/v1
github.com/larksuite/oapi-sdk-go/v3/ws
github.com/lucasb-eyer/go-colorful
github.com/mattn/go-isatty
github.com/mattn/go-runewidth
github.com/mitchellh/hashstructure/v2
github.com/muesli/ansi
github.com/muesli/ansi/compressor
github.com/muesli/cancelreader
github.com/muesli/termenv
github.com/rivo/uniseg
github.com/sergi/go-diff/diffmatchpatch
github.com/skip2/go-qrcode
github.com/skip2/go-qrcode/bitset
github.com/skip2/go-qrcode/reedsolomon
github.com/spf13/cobra
github.com/spf13/pflag
github.com/xo/terminfo
github.com/zalando/go-keyring
github.com/zalando/go-keyring/internal/shellescape
golang.org/x/net/html
golang.org/x/net/html/atom
golang.org/x/net/html/charset
golang.org/x/sync/errgroup
golang.org/x/sys/unix
golang.org/x/term
golang.org/x/text/encoding
golang.org/x/text/encoding/charmap
golang.org/x/text/encoding/htmlindex
golang.org/x/text/encoding/internal
golang.org/x/text/encoding/internal/identifier
golang.org/x/text/encoding/japanese
golang.org/x/text/encoding/korean
golang.org/x/text/encoding/simplifiedchinese
golang.org/x/text/encoding/traditionalchinese
golang.org/x/text/encoding/unicode
golang.org/x/text/internal/language
golang.org/x/text/internal/language/compact
golang.org/x/text/internal/tag
golang.org/x/text/internal/utf8internal
golang.org/x/text/language
golang.org/x/text/runes
golang.org/x/text/transform
golang.org/x/text/width
gopkg.in/yaml.v3