[chore] update dependencies (#4188)

Update dependencies:
- github.com/gin-gonic/gin v1.10.0 -> v1.10.1
- github.com/gin-contrib/sessions v1.10.3 -> v1.10.4
- github.com/jackc/pgx/v5 v5.7.4 -> v5.7.5
- github.com/minio/minio-go/v7 v7.0.91 -> v7.0.92
- github.com/pquerna/otp v1.4.0 -> v1.5.0
- github.com/tdewolff/minify/v2 v2.23.5 -> v2.23.8
- github.com/yuin/goldmark v1.7.11 -> v1.7.12
- go.opentelemetry.io/otel{,/*} v1.35.0 -> v1.36.0
- modernc.org/sqlite v1.37.0 -> v1.37.1

Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4188
Reviewed-by: Daenney <daenney@noreply.codeberg.org>
Co-authored-by: kim <grufwub@gmail.com>
Co-committed-by: kim <grufwub@gmail.com>
This commit is contained in:
kim 2025-05-22 16:27:55 +02:00 committed by kim
commit b6ff55662e
214 changed files with 44839 additions and 32023 deletions

View file

@ -10,8 +10,8 @@ import (
// A BaseBlock struct implements the Node interface partialliy.
type BaseBlock struct {
BaseNode
lines textm.Segments
blankPreviousLines bool
lines *textm.Segments
}
// Type implements Node.Type.
@ -36,15 +36,12 @@ func (b *BaseBlock) SetBlankPreviousLines(v bool) {
// Lines implements Node.Lines.
func (b *BaseBlock) Lines() *textm.Segments {
if b.lines == nil {
b.lines = textm.NewSegments()
}
return b.lines
return &b.lines
}
// SetLines implements Node.SetLines.
func (b *BaseBlock) SetLines(v *textm.Segments) {
b.lines = v
b.lines = *v
}
// A Document struct is a root node of Markdown text.

View file

@ -37,7 +37,7 @@ func (b *codeBlockParser) Open(parent ast.Node, reader text.Reader, pc Context)
}
segment.ForceNewline = true
node.Lines().Append(segment)
reader.Advance(segment.Len() - 1)
reader.AdvanceToEOL()
return node, NoChildren
}
@ -62,7 +62,7 @@ func (b *codeBlockParser) Continue(node ast.Node, reader text.Reader, pc Context
segment.ForceNewline = true
node.Lines().Append(segment)
reader.Advance(segment.Len() - 1)
reader.AdvanceToEOL()
return Continue | NoChildren
}

View file

@ -150,7 +150,7 @@ func (b *htmlBlockParser) Open(parent ast.Node, reader text.Reader, pc Context)
}
}
if node != nil {
reader.Advance(segment.Len() - util.TrimRightSpaceLength(line))
reader.AdvanceToEOL()
node.Lines().Append(segment)
return node, NoChildren
}
@ -173,7 +173,7 @@ func (b *htmlBlockParser) Continue(node ast.Node, reader text.Reader, pc Context
}
if htmlBlockType1CloseRegexp.Match(line) {
htmlBlock.ClosureLine = segment
reader.Advance(segment.Len() - util.TrimRightSpaceLength(line))
reader.AdvanceToEOL()
return Close
}
case ast.HTMLBlockType2:
@ -202,7 +202,7 @@ func (b *htmlBlockParser) Continue(node ast.Node, reader text.Reader, pc Context
}
if bytes.Contains(line, closurePattern) {
htmlBlock.ClosureLine = segment
reader.Advance(segment.Len())
reader.AdvanceToEOL()
return Close
}
@ -212,7 +212,7 @@ func (b *htmlBlockParser) Continue(node ast.Node, reader text.Reader, pc Context
}
}
node.Lines().Append(segment)
reader.Advance(segment.Len() - util.TrimRightSpaceLength(line))
reader.AdvanceToEOL()
return Continue | NoChildren
}

View file

@ -53,7 +53,7 @@ func (b *listItemParser) Open(parent ast.Node, reader text.Reader, pc Context) (
func (b *listItemParser) Continue(node ast.Node, reader text.Reader, pc Context) State {
line, _ := reader.PeekLine()
if util.IsBlank(line) {
reader.Advance(len(line) - 1)
reader.AdvanceToEOL()
return Continue | HasChildren
}

View file

@ -29,7 +29,7 @@ func (b *paragraphParser) Open(parent ast.Node, reader text.Reader, pc Context)
}
node := ast.NewParagraph()
node.Lines().Append(segment)
reader.Advance(segment.Len() - 1)
reader.AdvanceToEOL()
return node, NoChildren
}
@ -39,7 +39,7 @@ func (b *paragraphParser) Continue(node ast.Node, reader text.Reader, pc Context
return Close
}
node.Lines().Append(segment)
reader.Advance(segment.Len() - 1)
reader.AdvanceToEOL()
return Continue | NoChildren
}

View file

@ -1030,47 +1030,35 @@ type lineStat struct {
}
func isBlankLine(lineNum, level int, stats []lineStat) bool {
ret := true
for i := len(stats) - 1 - level; i >= 0; i-- {
ret = false
l := len(stats)
if l == 0 {
return true
}
for i := l - 1 - level; i >= 0; i-- {
s := stats[i]
if s.lineNum == lineNum {
if s.level < level && s.isBlank {
return true
} else if s.level == level {
return s.isBlank
}
}
if s.lineNum < lineNum {
return ret
if s.lineNum == lineNum && s.level <= level {
return s.isBlank
} else if s.lineNum < lineNum {
break
}
}
return ret
return false
}
func (p *parser) parseBlocks(parent ast.Node, reader text.Reader, pc Context) {
pc.SetOpenedBlocks([]Block{})
pc.SetOpenedBlocks(nil)
blankLines := make([]lineStat, 0, 128)
var isBlank bool
for { // process blocks separated by blank lines
_, lines, ok := reader.SkipBlankLines()
_, _, ok := reader.SkipBlankLines()
if !ok {
return
}
lineNum, _ := reader.Position()
if lines != 0 {
blankLines = blankLines[0:0]
l := len(pc.OpenedBlocks())
for i := 0; i < l; i++ {
blankLines = append(blankLines, lineStat{lineNum - 1, i, lines != 0})
}
}
isBlank = isBlankLine(lineNum-1, 0, blankLines)
// first, we try to open blocks
if p.openBlocks(parent, isBlank, reader, pc) != newBlocksOpened {
if p.openBlocks(parent, true, reader, pc) != newBlocksOpened {
return
}
reader.AdvanceLine()
blankLines = blankLines[0:0]
for { // process opened blocks line by line
openedBlocks := pc.OpenedBlocks()
l := len(openedBlocks)
@ -1096,7 +1084,7 @@ func (p *parser) parseBlocks(parent ast.Node, reader text.Reader, pc Context) {
// When current node is a container block and has no children,
// we try to open new child nodes
if state&HasChildren != 0 && i == lastIndex {
isBlank = isBlankLine(lineNum-1, i+1, blankLines)
isBlank := isBlankLine(lineNum-1, i+1, blankLines)
p.openBlocks(be.Node, isBlank, reader, pc)
break
}
@ -1104,7 +1092,7 @@ func (p *parser) parseBlocks(parent ast.Node, reader text.Reader, pc Context) {
}
}
// current node may be closed or lazy continuation
isBlank = isBlankLine(lineNum-1, i, blankLines)
isBlank := isBlankLine(lineNum-1, i, blankLines)
thisParent := parent
if i != 0 {
thisParent = openedBlocks[i-1].Node

View file

@ -50,9 +50,9 @@ func (b *thematicBreakPraser) Trigger() []byte {
}
func (b *thematicBreakPraser) Open(parent ast.Node, reader text.Reader, pc Context) (ast.Node, State) {
line, segment := reader.PeekLine()
line, _ := reader.PeekLine()
if isThematicBreak(line, reader.LineOffset()) {
reader.Advance(segment.Len() - 1)
reader.AdvanceToEOL()
return ast.NewThematicBreak(), NoChildren
}
return nil, NoChildren

View file

@ -55,6 +55,11 @@ type Reader interface {
// reader.
AdvanceAndSetPadding(int, int)
// AdvanceToEOL advances the internal pointer to the end of line.
// If the line ends with a newline, it will be included in the segment.
// If the line ends with EOF, it will not be included in the segment.
AdvanceToEOL()
// AdvanceLine advances the internal pointer to the next line head.
AdvanceLine()
@ -220,21 +225,46 @@ func (r *reader) AdvanceAndSetPadding(n, padding int) {
}
}
func (r *reader) AdvanceToEOL() {
if r.pos.Start >= r.sourceLength {
return
}
r.lineOffset = -1
i := -1
if r.peekedLine != nil {
r.pos.Start += len(r.peekedLine) - r.pos.Padding - 1
if r.source[r.pos.Start] == '\n' {
i = 0
}
}
if i == -1 {
i = bytes.IndexByte(r.source[r.pos.Start:], '\n')
}
r.peekedLine = nil
if i != -1 {
r.pos.Start += i
} else {
r.pos.Start = r.sourceLength
}
r.pos.Padding = 0
}
func (r *reader) AdvanceLine() {
r.lineOffset = -1
r.peekedLine = nil
r.pos.Start = r.pos.Stop
r.head = r.pos.Start
if r.pos.Start < 0 {
if r.pos.Start < 0 || r.pos.Start >= r.sourceLength {
return
}
r.pos.Stop = r.sourceLength
for i := r.pos.Start; i < r.sourceLength; i++ {
c := r.source[i]
if c == '\n' {
r.pos.Stop = i + 1
break
}
i := 0
if r.source[r.pos.Start] != '\n' {
i = bytes.IndexByte(r.source[r.pos.Start:], '\n')
}
if i != -1 {
r.pos.Stop = r.pos.Start + i + 1
}
r.line++
r.pos.Padding = 0
@ -444,6 +474,17 @@ func (r *blockReader) AdvanceAndSetPadding(n, padding int) {
}
}
func (r *blockReader) AdvanceToEOL() {
r.lineOffset = -1
r.pos.Padding = 0
c := r.source[r.pos.Stop-1]
if c == '\n' {
r.pos.Start = r.pos.Stop - 1
} else {
r.pos.Start = r.pos.Stop
}
}
func (r *blockReader) AdvanceLine() {
r.SetPosition(r.line+1, NewSegment(invalidValue, invalidValue))
r.head = r.pos.Start

View file

@ -176,17 +176,11 @@ func NewSegments() *Segments {
// Append appends the given segment after the tail of the collection.
func (s *Segments) Append(t Segment) {
if s.values == nil {
s.values = make([]Segment, 0, 20)
}
s.values = append(s.values, t)
}
// AppendAll appends all elements of given segments after the tail of the collection.
func (s *Segments) AppendAll(t []Segment) {
if s.values == nil {
s.values = make([]Segment, 0, 20)
}
s.values = append(s.values, t...)
}