From a0bca42a7ad98a37f4bdc4d7adc419471163edfb Mon Sep 17 00:00:00 2001 From: Wim Date: Wed, 5 May 2021 22:03:28 +0200 Subject: Update vendor (#1461) * Update vendored libs * Fix slack api changes --- .../github.com/SevereCloud/vksdk/v2/.golangci.yml | 8 + vendor/github.com/SevereCloud/vksdk/v2/doc.go | 2 +- .../SevereCloud/vksdk/v2/events/objects.go | 20 +- vendor/github.com/SevereCloud/vksdk/v2/go.mod | 4 +- vendor/github.com/SevereCloud/vksdk/v2/go.sum | 8 +- .../github.com/SevereCloud/vksdk/v2/object/ads.go | 3 +- .../SevereCloud/vksdk/v2/object/messages.go | 3 +- .../SevereCloud/vksdk/v2/object/newsfeed.go | 10 +- .../github.com/SevereCloud/vksdk/v2/object/wall.go | 2 +- vendor/github.com/gomarkdown/markdown/html/doc.go | 2 +- .../gomarkdown/markdown/html/renderer.go | 7 +- vendor/github.com/google/gops/agent/agent.go | 2 +- vendor/github.com/labstack/echo/v4/CHANGELOG.md | 10 + vendor/github.com/labstack/echo/v4/bind.go | 4 + vendor/github.com/labstack/echo/v4/echo.go | 2 +- .../labstack/echo/v4/middleware/middleware.go | 46 +- .../labstack/echo/v4/middleware/proxy.go | 5 +- .../labstack/echo/v4/middleware/redirect.go | 45 +- .../labstack/echo/v4/middleware/rewrite.go | 6 +- .../labstack/echo/v4/middleware/timeout.go | 9 +- vendor/github.com/slack-go/slack/README.md | 5 +- vendor/github.com/slack-go/slack/apps.go | 3 +- vendor/github.com/slack-go/slack/attachments.go | 4 +- vendor/github.com/slack-go/slack/block.go | 4 +- vendor/github.com/slack-go/slack/block_conv.go | 2 + vendor/github.com/slack-go/slack/channels.go | 678 --------------------- vendor/github.com/slack-go/slack/chat.go | 3 +- vendor/github.com/slack-go/slack/conversation.go | 6 +- vendor/github.com/slack-go/slack/files.go | 8 +- vendor/github.com/slack-go/slack/go.mod | 2 +- vendor/github.com/slack-go/slack/groups.go | 567 ----------------- vendor/github.com/slack-go/slack/im.go | 199 ------ vendor/github.com/slack-go/slack/info.go | 3 +- vendor/github.com/slack-go/slack/interactions.go | 4 +- vendor/github.com/slack-go/slack/misc.go | 11 +- vendor/github.com/slack-go/slack/slack.go | 4 +- vendor/github.com/slack-go/slack/users.go | 23 +- .../x/text/encoding/simplifiedchinese/hzgb2312.go | 2 +- .../golang.org/x/text/internal/language/parse.go | 11 +- vendor/golang.org/x/text/unicode/bidi/bidi.go | 221 ++++++- vendor/golang.org/x/text/unicode/bidi/core.go | 63 +- vendor/modules.txt | 14 +- 42 files changed, 406 insertions(+), 1629 deletions(-) (limited to 'vendor') diff --git a/vendor/github.com/SevereCloud/vksdk/v2/.golangci.yml b/vendor/github.com/SevereCloud/vksdk/v2/.golangci.yml index 97b7a3fe..3887ceb7 100644 --- a/vendor/github.com/SevereCloud/vksdk/v2/.golangci.yml +++ b/vendor/github.com/SevereCloud/vksdk/v2/.golangci.yml @@ -39,6 +39,13 @@ linters: - tparallel - errorlint - paralleltest + - forbidigo + - makezero + - thelper + - predeclared + - ifshort + - revive + - durationcheck # - wrapcheck # TODO: v3 Fix # - testpackage # TODO: Fix testpackage @@ -62,6 +69,7 @@ linters: # - nlreturn # - gci # - exhaustivestruct +# - cyclop issues: exclude-rules: diff --git a/vendor/github.com/SevereCloud/vksdk/v2/doc.go b/vendor/github.com/SevereCloud/vksdk/v2/doc.go index 7bb83d0c..778f2ecf 100644 --- a/vendor/github.com/SevereCloud/vksdk/v2/doc.go +++ b/vendor/github.com/SevereCloud/vksdk/v2/doc.go @@ -7,6 +7,6 @@ package vksdk // Module constants. const ( - Version = "2.9.0" + Version = "2.9.1" API = "5.126" ) diff --git a/vendor/github.com/SevereCloud/vksdk/v2/events/objects.go b/vendor/github.com/SevereCloud/vksdk/v2/events/objects.go index 8cd94a91..8ee261ac 100644 --- a/vendor/github.com/SevereCloud/vksdk/v2/events/objects.go +++ b/vendor/github.com/SevereCloud/vksdk/v2/events/objects.go @@ -316,40 +316,40 @@ type LikeRemoveObject struct { // DonutSubscriptionCreateObject struct. type DonutSubscriptionCreateObject struct { - Amount int `json:"amount"` + Amount float64 `json:"amount"` AmountWithoutFee float64 `json:"amount_without_fee"` - UserID int `json:"user_id"` + UserID float64 `json:"user_id"` } // DonutSubscriptionProlongedObject struct. type DonutSubscriptionProlongedObject struct { - Amount int `json:"amount"` + Amount float64 `json:"amount"` AmountWithoutFee float64 `json:"amount_without_fee"` - UserID int `json:"user_id"` + UserID float64 `json:"user_id"` } // DonutSubscriptionExpiredObject struct. type DonutSubscriptionExpiredObject struct { - UserID int `json:"user_id"` + UserID float64 `json:"user_id"` } // DonutSubscriptionCancelledObject struct. type DonutSubscriptionCancelledObject struct { - UserID int `json:"user_id"` + UserID float64 `json:"user_id"` } // DonutSubscriptionPriceChangedObject struct. type DonutSubscriptionPriceChangedObject struct { - AmountOld int `json:"amount_old"` - AmountNew int `json:"amount_new"` + AmountOld float64 `json:"amount_old"` + AmountNew float64 `json:"amount_new"` AmountDiff float64 `json:"amount_diff"` AmountDiffWithoutFee float64 `json:"amount_diff_without_fee"` - UserID int `json:"user_id"` + UserID float64 `json:"user_id"` } // DonutMoneyWithdrawObject struct. type DonutMoneyWithdrawObject struct { - Amount int `json:"amount"` + Amount float64 `json:"amount"` AmountWithoutFee float64 `json:"amount_without_fee"` } diff --git a/vendor/github.com/SevereCloud/vksdk/v2/go.mod b/vendor/github.com/SevereCloud/vksdk/v2/go.mod index 27f7256f..622b04ad 100644 --- a/vendor/github.com/SevereCloud/vksdk/v2/go.mod +++ b/vendor/github.com/SevereCloud/vksdk/v2/go.mod @@ -5,6 +5,6 @@ go 1.13 require ( github.com/gorilla/schema v1.2.0 github.com/gorilla/websocket v1.4.2 - github.com/stretchr/testify v1.6.1 - golang.org/x/text v0.3.4 + github.com/stretchr/testify v1.7.0 + golang.org/x/text v0.3.5 ) diff --git a/vendor/github.com/SevereCloud/vksdk/v2/go.sum b/vendor/github.com/SevereCloud/vksdk/v2/go.sum index a9885d73..aea36340 100644 --- a/vendor/github.com/SevereCloud/vksdk/v2/go.sum +++ b/vendor/github.com/SevereCloud/vksdk/v2/go.sum @@ -7,10 +7,10 @@ github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/ad github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -golang.org/x/text v0.3.4 h1:0YWbFKbhXG/wIiuHDSKpS0Iy7FSA+u45VtBMfQcFTTc= -golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= +github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +golang.org/x/text v0.3.5 h1:i6eZZ+zk0SOf0xgBpEpPD18qWcJda6q1sxt3S0kzyUQ= +golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= diff --git a/vendor/github.com/SevereCloud/vksdk/v2/object/ads.go b/vendor/github.com/SevereCloud/vksdk/v2/object/ads.go index b2d7f135..e0c379b4 100644 --- a/vendor/github.com/SevereCloud/vksdk/v2/object/ads.go +++ b/vendor/github.com/SevereCloud/vksdk/v2/object/ads.go @@ -207,8 +207,7 @@ type AdsStatsSexAge struct { } // AdsTargSettings struct. -type AdsTargSettings struct { -} +type AdsTargSettings struct{} // AdsTargStats struct. type AdsTargStats struct { diff --git a/vendor/github.com/SevereCloud/vksdk/v2/object/messages.go b/vendor/github.com/SevereCloud/vksdk/v2/object/messages.go index dc2648b1..65c65f53 100644 --- a/vendor/github.com/SevereCloud/vksdk/v2/object/messages.go +++ b/vendor/github.com/SevereCloud/vksdk/v2/object/messages.go @@ -721,8 +721,7 @@ type MessagesPinnedMessage struct { } // MessagesUserXtrInvitedBy struct. -type MessagesUserXtrInvitedBy struct { -} +type MessagesUserXtrInvitedBy struct{} // MessagesForward struct. type MessagesForward struct { diff --git a/vendor/github.com/SevereCloud/vksdk/v2/object/newsfeed.go b/vendor/github.com/SevereCloud/vksdk/v2/object/newsfeed.go index e9bda35a..857fb4c5 100644 --- a/vendor/github.com/SevereCloud/vksdk/v2/object/newsfeed.go +++ b/vendor/github.com/SevereCloud/vksdk/v2/object/newsfeed.go @@ -87,11 +87,11 @@ type NewsfeedItemStoriesBlock struct { } // NewsfeedItemTopic struct. -type NewsfeedItemTopic struct { - // Comments BaseCommentsInfo `json:"comments"` - // Likes BaseLikesInfo `json:"likes"` - // Text string `json:"text"` // Post text -} +// +// Comments BaseCommentsInfo `json:"comments"` +// Likes BaseLikesInfo `json:"likes"` +// Text string `json:"text"` // Post text. +type NewsfeedItemTopic struct{} // NewsfeedItemVideo struct. type NewsfeedItemVideo struct { diff --git a/vendor/github.com/SevereCloud/vksdk/v2/object/wall.go b/vendor/github.com/SevereCloud/vksdk/v2/object/wall.go index 5345fc5c..3dc2ad4f 100644 --- a/vendor/github.com/SevereCloud/vksdk/v2/object/wall.go +++ b/vendor/github.com/SevereCloud/vksdk/v2/object/wall.go @@ -142,7 +142,7 @@ type WallWallpost struct { FriendsOnly int `json:"friends_only"` Comments BaseCommentsInfo `json:"comments"` Likes BaseLikesInfo `json:"likes"` // Count of likes - Reposts BaseRepostsInfo `json:"reposts"` // Count of views + Reposts BaseRepostsInfo `json:"reposts"` // Count of reposts Views WallViews `json:"views"` // Count of views PostType string `json:"post_type"` PostSource WallPostSource `json:"post_source"` diff --git a/vendor/github.com/gomarkdown/markdown/html/doc.go b/vendor/github.com/gomarkdown/markdown/html/doc.go index b8d498d6..93a2cf55 100644 --- a/vendor/github.com/gomarkdown/markdown/html/doc.go +++ b/vendor/github.com/gomarkdown/markdown/html/doc.go @@ -9,7 +9,7 @@ A renderer can be configured with multiple options: flags := html.CommonFlags | html.CompletePage | html.HrefTargetBlank opts := html.RendererOptions{ - TItle: "A custom title", + Title: "A custom title", Flags: flags, } renderer := html.NewRenderer(opts) diff --git a/vendor/github.com/gomarkdown/markdown/html/renderer.go b/vendor/github.com/gomarkdown/markdown/html/renderer.go index c57d7eb6..1b466876 100644 --- a/vendor/github.com/gomarkdown/markdown/html/renderer.go +++ b/vendor/github.com/gomarkdown/markdown/html/renderer.go @@ -43,6 +43,7 @@ const ( SmartypantsAngledQuotes // Enable angled double quotes (with Smartypants) for double quotes rendering SmartypantsQuotesNBSP // Enable « French guillemets » (with Smartypants) TOC // Generate a table of contents + LazyLoadImages // Include loading="lazy" with images CommonFlags Flags = Smartypants | SmartypantsFractions | SmartypantsDashes | SmartypantsLatexDashes ) @@ -589,7 +590,11 @@ func (r *Renderer) imageEnter(w io.Writer, image *ast.Image) { //if options.safe && potentiallyUnsafe(dest) { //out(w, ``)
 		//} else {
-		r.Outs(w, `<img src= cap(s.b) { + b = make([]byte, n) copy(b, s.b[:oldStart]) - copy(b[end:], s.b[oldEnd:]) - s.b = b } else { - s.b = append(s.b[end:], s.b[oldEnd:]...) + b = s.b[:n:n] } + copy(b[end:], s.b[oldEnd:]) + s.b = b s.next = end + (s.next - s.end) s.end = end } diff --git a/vendor/golang.org/x/text/unicode/bidi/bidi.go b/vendor/golang.org/x/text/unicode/bidi/bidi.go index e8edc54c..fd057601 100644 --- a/vendor/golang.org/x/text/unicode/bidi/bidi.go +++ b/vendor/golang.org/x/text/unicode/bidi/bidi.go @@ -12,15 +12,14 @@ // and without notice. package bidi // import "golang.org/x/text/unicode/bidi" -// TODO: -// The following functionality would not be hard to implement, but hinges on -// the definition of a Segmenter interface. For now this is up to the user. -// - Iterate over paragraphs -// - Segmenter to iterate over runs directly from a given text. -// Also: +// TODO // - Transformer for reordering? // - Transformer (validator, really) for Bidi Rule. +import ( + "bytes" +) + // This API tries to avoid dealing with embedding levels for now. Under the hood // these will be computed, but the question is to which extent the user should // know they exist. We should at some point allow the user to specify an @@ -49,7 +48,9 @@ const ( Neutral ) -type options struct{} +type options struct { + defaultDirection Direction +} // An Option is an option for Bidi processing. type Option func(*options) @@ -66,12 +67,62 @@ type Option func(*options) // DefaultDirection sets the default direction for a Paragraph. The direction is // overridden if the text contains directional characters. func DefaultDirection(d Direction) Option { - panic("unimplemented") + return func(opts *options) { + opts.defaultDirection = d + } } // A Paragraph holds a single Paragraph for Bidi processing. type Paragraph struct { - // buffers + p []byte + o Ordering + opts []Option + types []Class + pairTypes []bracketType + pairValues []rune + runes []rune + options options +} + +// Initialize the p.pairTypes, p.pairValues and p.types from the input previously +// set by p.SetBytes() or p.SetString(). Also limit the input up to (and including) a paragraph +// separator (bidi class B). +// +// The function p.Order() needs these values to be set, so this preparation could be postponed. +// But since the SetBytes and SetStrings functions return the length of the input up to the paragraph +// separator, the whole input needs to be processed anyway and should not be done twice. +// +// The function has the same return values as SetBytes() / SetString() +func (p *Paragraph) prepareInput() (n int, err error) { + p.runes = bytes.Runes(p.p) + bytecount := 0 + // clear slices from previous SetString or SetBytes + p.pairTypes = nil + p.pairValues = nil + p.types = nil + + for _, r := range p.runes { + props, i := LookupRune(r) + bytecount += i + cls := props.Class() + if cls == B { + return bytecount, nil + } + p.types = append(p.types, cls) + if props.IsOpeningBracket() { + p.pairTypes = append(p.pairTypes, bpOpen) + p.pairValues = append(p.pairValues, r) + } else if props.IsBracket() { + // this must be a closing bracket, + // since IsOpeningBracket is not true + p.pairTypes = append(p.pairTypes, bpClose) + p.pairValues = append(p.pairValues, r) + } else { + p.pairTypes = append(p.pairTypes, bpNone) + p.pairValues = append(p.pairValues, 0) + } + } + return bytecount, nil } // SetBytes configures p for the given paragraph text. It replaces text @@ -80,70 +131,150 @@ type Paragraph struct { // consumed from b including this separator. Error may be non-nil if options are // given. func (p *Paragraph) SetBytes(b []byte, opts ...Option) (n int, err error) { - panic("unimplemented") + p.p = b + p.opts = opts + return p.prepareInput() } -// SetString configures p for the given paragraph text. It replaces text -// previously set by SetBytes or SetString. If b contains a paragraph separator +// SetString configures s for the given paragraph text. It replaces text +// previously set by SetBytes or SetString. If s contains a paragraph separator // it will only process the first paragraph and report the number of bytes -// consumed from b including this separator. Error may be non-nil if options are +// consumed from s including this separator. Error may be non-nil if options are // given. func (p *Paragraph) SetString(s string, opts ...Option) (n int, err error) { - panic("unimplemented") + p.p = []byte(s) + p.opts = opts + return p.prepareInput() } // IsLeftToRight reports whether the principle direction of rendering for this // paragraphs is left-to-right. If this returns false, the principle direction // of rendering is right-to-left. func (p *Paragraph) IsLeftToRight() bool { - panic("unimplemented") + return p.Direction() == LeftToRight } // Direction returns the direction of the text of this paragraph. // // The direction may be LeftToRight, RightToLeft, Mixed, or Neutral. func (p *Paragraph) Direction() Direction { - panic("unimplemented") + return p.o.Direction() } +// TODO: what happens if the position is > len(input)? This should return an error. + // RunAt reports the Run at the given position of the input text. // // This method can be used for computing line breaks on paragraphs. func (p *Paragraph) RunAt(pos int) Run { - panic("unimplemented") + c := 0 + runNumber := 0 + for i, r := range p.o.runes { + c += len(r) + if pos < c { + runNumber = i + } + } + return p.o.Run(runNumber) +} + +func calculateOrdering(levels []level, runes []rune) Ordering { + var curDir Direction + + prevDir := Neutral + prevI := 0 + + o := Ordering{} + // lvl = 0,2,4,...: left to right + // lvl = 1,3,5,...: right to left + for i, lvl := range levels { + if lvl%2 == 0 { + curDir = LeftToRight + } else { + curDir = RightToLeft + } + if curDir != prevDir { + if i > 0 { + o.runes = append(o.runes, runes[prevI:i]) + o.directions = append(o.directions, prevDir) + o.startpos = append(o.startpos, prevI) + } + prevI = i + prevDir = curDir + } + } + o.runes = append(o.runes, runes[prevI:]) + o.directions = append(o.directions, prevDir) + o.startpos = append(o.startpos, prevI) + return o } // Order computes the visual ordering of all the runs in a Paragraph. func (p *Paragraph) Order() (Ordering, error) { - panic("unimplemented") + if len(p.types) == 0 { + return Ordering{}, nil + } + + for _, fn := range p.opts { + fn(&p.options) + } + lvl := level(-1) + if p.options.defaultDirection == RightToLeft { + lvl = 1 + } + para, err := newParagraph(p.types, p.pairTypes, p.pairValues, lvl) + if err != nil { + return Ordering{}, err + } + + levels := para.getLevels([]int{len(p.types)}) + + p.o = calculateOrdering(levels, p.runes) + return p.o, nil } // Line computes the visual ordering of runs for a single line starting and // ending at the given positions in the original text. func (p *Paragraph) Line(start, end int) (Ordering, error) { - panic("unimplemented") + lineTypes := p.types[start:end] + para, err := newParagraph(lineTypes, p.pairTypes[start:end], p.pairValues[start:end], -1) + if err != nil { + return Ordering{}, err + } + levels := para.getLevels([]int{len(lineTypes)}) + o := calculateOrdering(levels, p.runes[start:end]) + return o, nil } // An Ordering holds the computed visual order of runs of a Paragraph. Calling // SetBytes or SetString on the originating Paragraph invalidates an Ordering. // The methods of an Ordering should only be called by one goroutine at a time. -type Ordering struct{} +type Ordering struct { + runes [][]rune + directions []Direction + startpos []int +} // Direction reports the directionality of the runs. // // The direction may be LeftToRight, RightToLeft, Mixed, or Neutral. func (o *Ordering) Direction() Direction { - panic("unimplemented") + return o.directions[0] } // NumRuns returns the number of runs. func (o *Ordering) NumRuns() int { - panic("unimplemented") + return len(o.runes) } // Run returns the ith run within the ordering. func (o *Ordering) Run(i int) Run { - panic("unimplemented") + r := Run{ + runes: o.runes[i], + direction: o.directions[i], + startpos: o.startpos[i], + } + return r } // TODO: perhaps with options. @@ -155,16 +286,19 @@ func (o *Ordering) Run(i int) Run { // A Run is a continuous sequence of characters of a single direction. type Run struct { + runes []rune + direction Direction + startpos int } // String returns the text of the run in its original order. func (r *Run) String() string { - panic("unimplemented") + return string(r.runes) } // Bytes returns the text of the run in its original order. func (r *Run) Bytes() []byte { - panic("unimplemented") + return []byte(r.String()) } // TODO: methods for @@ -174,25 +308,52 @@ func (r *Run) Bytes() []byte { // Direction reports the direction of the run. func (r *Run) Direction() Direction { - panic("unimplemented") + return r.direction } -// Position of the Run within the text passed to SetBytes or SetString of the +// Pos returns the position of the Run within the text passed to SetBytes or SetString of the // originating Paragraph value. func (r *Run) Pos() (start, end int) { - panic("unimplemented") + return r.startpos, r.startpos + len(r.runes) - 1 } // AppendReverse reverses the order of characters of in, appends them to out, // and returns the result. Modifiers will still follow the runes they modify. // Brackets are replaced with their counterparts. func AppendReverse(out, in []byte) []byte { - panic("unimplemented") + ret := make([]byte, len(in)+len(out)) + copy(ret, out) + inRunes := bytes.Runes(in) + + for i, r := range inRunes { + prop, _ := LookupRune(r) + if prop.IsBracket() { + inRunes[i] = prop.reverseBracket(r) + } + } + + for i, j := 0, len(inRunes)-1; i < j; i, j = i+1, j-1 { + inRunes[i], inRunes[j] = inRunes[j], inRunes[i] + } + copy(ret[len(out):], string(inRunes)) + + return ret } // ReverseString reverses the order of characters in s and returns a new string. // Modifiers will still follow the runes they modify. Brackets are replaced with // their counterparts. func ReverseString(s string) string { - panic("unimplemented") + input := []rune(s) + li := len(input) + ret := make([]rune, li) + for i, r := range input { + prop, _ := LookupRune(r) + if prop.IsBracket() { + ret[li-i-1] = prop.reverseBracket(r) + } else { + ret[li-i-1] = r + } + } + return string(ret) } diff --git a/vendor/golang.org/x/text/unicode/bidi/core.go b/vendor/golang.org/x/text/unicode/bidi/core.go index 50deb660..e4c08110 100644 --- a/vendor/golang.org/x/text/unicode/bidi/core.go +++ b/vendor/golang.org/x/text/unicode/bidi/core.go @@ -4,7 +4,10 @@ package bidi -import "log" +import ( + "fmt" + "log" +) // This implementation is a port based on the reference implementation found at: // https://www.unicode.org/Public/PROGRAMS/BidiReferenceJava/ @@ -97,13 +100,20 @@ type paragraph struct { // rune (suggested is the rune of the open bracket for opening and matching // close brackets, after normalization). The embedding levels are optional, but // may be supplied to encode embedding levels of styled text. -// -// TODO: return an error. -func newParagraph(types []Class, pairTypes []bracketType, pairValues []rune, levels level) *paragraph { - validateTypes(types) - validatePbTypes(pairTypes) - validatePbValues(pairValues, pairTypes) - validateParagraphEmbeddingLevel(levels) +func newParagraph(types []Class, pairTypes []bracketType, pairValues []rune, levels level) (*paragraph, error) { + var err error + if err = validateTypes(types); err != nil { + return nil, err + } + if err = validatePbTypes(pairTypes); err != nil { + return nil, err + } + if err = validatePbValues(pairValues, pairTypes); err != nil { + return nil, err + } + if err = validateParagraphEmbeddingLevel(levels); err != nil { + return nil, err + } p := ¶graph{ initialTypes: append([]Class(nil), types...), @@ -115,7 +125,7 @@ func newParagraph(types []Class, pairTypes []bracketType, pairValues []rune, lev resultTypes: append([]Class(nil), types...), } p.run() - return p + return p, nil } func (p *paragraph) Len() int { return len(p.initialTypes) } @@ -1001,58 +1011,61 @@ func typeForLevel(level level) Class { return R } -// TODO: change validation to not panic - -func validateTypes(types []Class) { +func validateTypes(types []Class) error { if len(types) == 0 { - log.Panic("types is null") + return fmt.Errorf("types is null") } for i, t := range types[:len(types)-1] { if t == B { - log.Panicf("B type before end of paragraph at index: %d", i) + return fmt.Errorf("B type before end of paragraph at index: %d", i) } } + return nil } -func validateParagraphEmbeddingLevel(embeddingLevel level) { +func validateParagraphEmbeddingLevel(embeddingLevel level) error { if embeddingLevel != implicitLevel && embeddingLevel != 0 && embeddingLevel != 1 { - log.Panicf("illegal paragraph embedding level: %d", embeddingLevel) + return fmt.Errorf("illegal paragraph embedding level: %d", embeddingLevel) } + return nil } -func validateLineBreaks(linebreaks []int, textLength int) { +func validateLineBreaks(linebreaks []int, textLength int) error { prev := 0 for i, next := range linebreaks { if next <= prev { - log.Panicf("bad linebreak: %d at index: %d", next, i) + return fmt.Errorf("bad linebreak: %d at index: %d", next, i) } prev = next } if prev != textLength { - log.Panicf("last linebreak was %d, want %d", prev, textLength) + return fmt.Errorf("last linebreak was %d, want %d", prev, textLength) } + return nil } -func validatePbTypes(pairTypes []bracketType) { +func validatePbTypes(pairTypes []bracketType) error { if len(pairTypes) == 0 { - log.Panic("pairTypes is null") + return fmt.Errorf("pairTypes is null") } for i, pt := range pairTypes { switch pt { case bpNone, bpOpen, bpClose: default: - log.Panicf("illegal pairType value at %d: %v", i, pairTypes[i]) + return fmt.Errorf("illegal pairType value at %d: %v", i, pairTypes[i]) } } + return nil } -func validatePbValues(pairValues []rune, pairTypes []bracketType) { +func validatePbValues(pairValues []rune, pairTypes []bracketType) error { if pairValues == nil { - log.Panic("pairValues is null") + return fmt.Errorf("pairValues is null") } if len(pairTypes) != len(pairValues) { - log.Panic("pairTypes is different length from pairValues") + return fmt.Errorf("pairTypes is different length from pairValues") } + return nil } diff --git a/vendor/modules.txt b/vendor/modules.txt index d83d4732..b94a1791 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -28,7 +28,7 @@ github.com/Rhymen/go-whatsapp/binary/token github.com/Rhymen/go-whatsapp/crypto/cbc github.com/Rhymen/go-whatsapp/crypto/curve25519 github.com/Rhymen/go-whatsapp/crypto/hkdf -# github.com/SevereCloud/vksdk/v2 v2.9.0 +# github.com/SevereCloud/vksdk/v2 v2.9.1 ## explicit github.com/SevereCloud/vksdk/v2 github.com/SevereCloud/vksdk/v2/api @@ -67,13 +67,13 @@ github.com/go-telegram-bot-api/telegram-bot-api # github.com/golang/protobuf v1.4.2 github.com/golang/protobuf/proto github.com/golang/protobuf/protoc-gen-go/descriptor -# github.com/gomarkdown/markdown v0.0.0-20210208175418-bda154fe17d8 +# github.com/gomarkdown/markdown v0.0.0-20210408062403-ad838ccf8cdd ## explicit github.com/gomarkdown/markdown github.com/gomarkdown/markdown/ast github.com/gomarkdown/markdown/html github.com/gomarkdown/markdown/parser -# github.com/google/gops v0.3.17 +# github.com/google/gops v0.3.18 ## explicit github.com/google/gops/agent github.com/google/gops/internal @@ -121,7 +121,7 @@ github.com/keybase/go-keybase-chat-bot/kbchat/types/stellar1 # github.com/kyokomi/emoji/v2 v2.2.8 ## explicit github.com/kyokomi/emoji/v2 -# github.com/labstack/echo/v4 v4.2.1 +# github.com/labstack/echo/v4 v4.2.2 ## explicit github.com/labstack/echo/v4 github.com/labstack/echo/v4/middleware @@ -242,7 +242,7 @@ github.com/sirupsen/logrus github.com/skip2/go-qrcode github.com/skip2/go-qrcode/bitset github.com/skip2/go-qrcode/reedsolomon -# github.com/slack-go/slack v0.8.2 +# github.com/slack-go/slack v0.9.0 ## explicit github.com/slack-go/slack github.com/slack-go/slack/internal/backoff @@ -352,7 +352,7 @@ golang.org/x/net/http2/h2c golang.org/x/net/http2/hpack golang.org/x/net/idna golang.org/x/net/websocket -# golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602 +# golang.org/x/oauth2 v0.0.0-20210427180440-81ed05c6b58c ## explicit golang.org/x/oauth2 golang.org/x/oauth2/clientcredentials @@ -363,7 +363,7 @@ golang.org/x/sys/cpu golang.org/x/sys/internal/unsafeheader golang.org/x/sys/unix golang.org/x/sys/windows -# golang.org/x/text v0.3.4 +# golang.org/x/text v0.3.5 golang.org/x/text/encoding golang.org/x/text/encoding/charmap golang.org/x/text/encoding/internal -- cgit v1.2.3