[chore]: Bump github.com/tdewolff/minify/v2 from 2.19.10 to 2.20.0 (#2316)

Bumps [github.com/tdewolff/minify/v2](https://github.com/tdewolff/minify) from 2.19.10 to 2.20.0.
- [Release notes](https://github.com/tdewolff/minify/releases)
- [Commits](https://github.com/tdewolff/minify/compare/v2.19.10...v2.20.0)

---
updated-dependencies:
- dependency-name: github.com/tdewolff/minify/v2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This commit is contained in:
dependabot[bot] 2023-10-30 11:06:51 +01:00 committed by GitHub
parent 9d11c716cc
commit 32e70ec83d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 204 additions and 143 deletions

4
go.mod
View file

@ -46,7 +46,7 @@ require (
github.com/superseriousbusiness/activity v1.4.0-gts
github.com/superseriousbusiness/exif-terminator v0.5.0
github.com/superseriousbusiness/oauth2/v4 v4.3.2-SSB.0.20230227143000-f4900831d6c8
github.com/tdewolff/minify/v2 v2.19.10
github.com/tdewolff/minify/v2 v2.20.0
github.com/tomnomnom/linkheader v0.0.0-20180905144013-02ca5825eb80
github.com/ulule/limiter/v3 v3.11.2
github.com/uptrace/bun v1.1.16
@ -151,7 +151,7 @@ require (
github.com/spf13/pflag v1.0.5 // indirect
github.com/subosito/gotenv v1.4.2 // indirect
github.com/superseriousbusiness/go-jpeg-image-structure/v2 v2.0.0-20220321154430-d89a106fdabe // indirect
github.com/tdewolff/parse/v2 v2.6.8 // indirect
github.com/tdewolff/parse/v2 v2.7.0 // indirect
github.com/tmthrgd/go-hex v0.0.0-20190904060850-447a3041c3bc // indirect
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
github.com/ugorji/go/codec v1.2.11 // indirect

12
go.sum
View file

@ -501,12 +501,12 @@ github.com/superseriousbusiness/go-jpeg-image-structure/v2 v2.0.0-20220321154430
github.com/superseriousbusiness/go-jpeg-image-structure/v2 v2.0.0-20220321154430-d89a106fdabe/go.mod h1:gH4P6gN1V+wmIw5o97KGaa1RgXB/tVpC2UNzijhg3E4=
github.com/superseriousbusiness/oauth2/v4 v4.3.2-SSB.0.20230227143000-f4900831d6c8 h1:nTIhuP157oOFcscuoK1kCme1xTeGIzztSw70lX9NrDQ=
github.com/superseriousbusiness/oauth2/v4 v4.3.2-SSB.0.20230227143000-f4900831d6c8/go.mod h1:uYC/W92oVRJ49Vh1GcvTqpeFqHi+Ovrl2sMllQWRAEo=
github.com/tdewolff/minify/v2 v2.19.10 h1:79Z2DJ9p0zSBj2BxD5fyLkIwhhRZnWSOeK3C52ljAu4=
github.com/tdewolff/minify/v2 v2.19.10/go.mod h1:IX+vt5HNKc+RFIQj7aI4D6RQ9p41vjay9lGorpHNC34=
github.com/tdewolff/parse/v2 v2.6.8 h1:mhNZXYCx//xG7Yq2e/kVLNZw4YfYmeHbhx+Zc0OvFMA=
github.com/tdewolff/parse/v2 v2.6.8/go.mod h1:XHDhaU6IBgsryfdnpzUXBlT6leW/l25yrFBTEb4eIyM=
github.com/tdewolff/test v1.0.9 h1:SswqJCmeN4B+9gEAi/5uqT0qpi1y2/2O47V/1hhGZT0=
github.com/tdewolff/test v1.0.9/go.mod h1:6DAvZliBAAnD7rhVgwaM7DE5/d9NMOAJ09SqYqeK4QE=
github.com/tdewolff/minify/v2 v2.20.0 h1:JFoL/Jxnyebf/jw3woqpmwBjSNJYSeU+sTFl9dTMHQ8=
github.com/tdewolff/minify/v2 v2.20.0/go.mod h1:TEE9CWftBwKQLUTZHuH9upjiqlt8zFpQOGxQ81rsG3c=
github.com/tdewolff/parse/v2 v2.7.0 h1:eVeKTV9nQ9BNS0LPlOgrhLXisiAjacaf60aRgSEtnic=
github.com/tdewolff/parse/v2 v2.7.0/go.mod h1:9p2qMIHpjRSTr1qnFxQr+igogyTUTlwvf9awHSm84h8=
github.com/tdewolff/test v1.0.10 h1:uWiheaLgLcNFqHcdWveum7PQfMnIUTf9Kl3bFxrIoew=
github.com/tdewolff/test v1.0.10/go.mod h1:6DAvZliBAAnD7rhVgwaM7DE5/d9NMOAJ09SqYqeK4QE=
github.com/tidwall/btree v0.0.0-20191029221954-400434d76274 h1:G6Z6HvJuPjG6XfNGi/feOATzeJrfgTNJY+rGrHbA04E=
github.com/tidwall/btree v0.0.0-20191029221954-400434d76274/go.mod h1:huei1BkDWJ3/sLXmO+bsCNELL+Bp2Kks9OLyQFkzvA8=
github.com/tidwall/buntdb v1.1.2 h1:noCrqQXL9EKMtcdwJcmuVKSEjqu1ua99RHHgbLTEHRo=

View file

@ -23,8 +23,10 @@ bindings/js/example/node_modules
bindings/js/example/test.min.html
bindings/py/go.mod
bindings/py/go.sum
bindings/py/minify.h
bindings/py/minify.so
bindings/py/tdewolff_minify.egg-info
bindings/py/**/*.h
bindings/py/**/*.so
bindings/py/**/*.egg-info
bindings/py/example/example.min.html
bindings/py/dist
bindings/py/build
bindings/py/**/*.pyc

View file

@ -449,7 +449,7 @@ func (l *Lexer) shiftXML(rawTag Hash) []byte {
}
} else if c == 0 {
if l.r.Err() == nil {
l.err = parse.NewErrorLexer(l.r, "HTML parse error: unexpected NULL character")
l.err = parse.NewErrorLexer(l.r, "unexpected NULL character")
}
return l.r.Shift()
} else {
@ -464,7 +464,7 @@ func (l *Lexer) shiftXML(rawTag Hash) []byte {
break
} else if c == 0 {
if l.r.Err() == nil {
l.err = parse.NewErrorLexer(l.r, "HTML parse error: unexpected NULL character")
l.err = parse.NewErrorLexer(l.r, "unexpected NULL character")
}
return l.r.Shift()
}

View file

@ -4,60 +4,69 @@ import (
"math"
)
// ParseDecimal parses number of the format 1.2
func ParseDecimal(b []byte) (float64, int) {
// float64 has up to 17 significant decimal digits and an exponent in [-1022,1023]
i := 0
start := i
//sign := 1.0
//if 0 < len(b) && b[0] == '-' {
// sign = -1.0
// i++
//}
start := -1
dot := -1
trunk := -1
n := uint64(0)
for ; i < len(b); i++ {
// parse up to 18 significant digits (with dot will be 17) ignoring zeros before/after
c := b[i]
if '0' <= c && c <= '9' {
if trunk == -1 {
if math.MaxUint64/10 < n {
trunk = i
} else {
n *= 10
n += uint64(c - '0')
if start == -1 {
if '1' <= c && c <= '9' {
n = uint64(c - '0')
start = i
}
} else if i-start < 18 {
n *= 10
n += uint64(c - '0')
}
} else if c == '.' {
if dot != -1 {
break
}
} else if dot == -1 && c == '.' {
dot = i
} else {
break
}
}
if i == start || i == start+1 && dot == start {
return 0.0, 0
if i == 1 && dot == 0 {
return 0.0, 0 // only dot
} else if start == -1 {
return 0.0, i // only zeros and dot
} else if dot == -1 {
dot = i
}
f := float64(n)
mantExp := int64(0)
if dot != -1 {
if trunk == -1 {
trunk = i
}
mantExp = int64(trunk - dot - 1)
} else if trunk != -1 {
mantExp = int64(trunk - i)
exp := (dot - start) - LenUint(n)
if dot < start {
exp++
}
if 1023 < exp {
return math.Inf(1), i
//if sign == 1.0 {
// return math.Inf(1), i
//} else {
// return math.Inf(-1), i
//}
} else if exp < -1022 {
return 0.0, i
}
exp := -mantExp
// copied from strconv/atof.go
if exp == 0 {
return f, i
} else if 0 < exp && exp <= 15+22 { // int * 10^k
// If exponent is big but number of digits is not,
// can move a few zeros into the integer part.
if 22 < exp {
f *= float64pow10[exp-22]
exp = 22
}
if -1e15 <= f && f <= 1e15 {
return f * float64pow10[exp], i
}
} else if exp < 0 && -22 <= exp { // int / 10^k
return f / float64pow10[-exp], i
f := float64(n) // sign * float64(n)
if 0 <= exp && exp < 23 {
return f * float64pow10[exp], i
} else if 23 < exp && exp < 0 {
return f / float64pow10[exp], i
}
return f * math.Pow10(int(-mantExp)), i
return f * math.Pow10(exp), i
}

View file

@ -17,9 +17,10 @@ func ParseInt(b []byte) (int64, int) {
n := uint64(0)
for i < len(b) {
c := b[i]
if n > math.MaxUint64/10 {
return 0, 0
} else if c >= '0' && c <= '9' {
if '0' <= c && c <= '9' {
if uint64(-math.MinInt64)/10 < n || uint64(-math.MinInt64)-uint64(c-'0') < n*10 {
return 0, 0
}
n *= 10
n += uint64(c - '0')
} else {
@ -30,7 +31,7 @@ func ParseInt(b []byte) (int64, int) {
if i == start {
return 0, 0
}
if !neg && n > uint64(math.MaxInt64) || n > uint64(math.MaxInt64)+1 {
if !neg && uint64(math.MaxInt64) < n {
return 0, 0
} else if neg {
return -int64(n), i
@ -45,9 +46,10 @@ func ParseUint(b []byte) (uint64, int) {
n := uint64(0)
for i < len(b) {
c := b[i]
if n > math.MaxUint64/10 {
return 0, 0
} else if c >= '0' && c <= '9' {
if '0' <= c && c <= '9' {
if math.MaxUint64/10 < n || math.MaxUint64-uint64(c-'0') < n*10 {
return 0, 0
}
n *= 10
n += uint64(c - '0')
} else {
@ -66,6 +68,10 @@ func LenInt(i int64) int {
}
i = -i
}
return LenUint(uint64(i))
}
func LenUint(i uint64) int {
switch {
case i < 10:
return 1
@ -103,6 +109,8 @@ func LenInt(i int64) int {
return 17
case i < 1000000000000000000:
return 18
case i < 10000000000000000000:
return 19
}
return 19
return 20
}

125
vendor/github.com/tdewolff/parse/v2/strconv/number.go generated vendored Normal file
View file

@ -0,0 +1,125 @@
package strconv
import (
"math"
"unicode/utf8"
)
// ParseNumber parses a byte-slice and returns the number it represents and the amount of decimals.
// If an invalid character is encountered, it will stop there.
func ParseNumber(b []byte, groupSym rune, decSym rune) (int64, int, int) {
n, dec := 0, 0
sign := int64(1)
price := int64(0)
hasDecimals := false
if 0 < len(b) && b[0] == '-' {
sign = -1
n++
}
for n < len(b) {
if '0' <= b[n] && b[n] <= '9' {
digit := sign * int64(b[n]-'0')
if sign == 1 && (math.MaxInt64/10 < price || math.MaxInt64-digit < price*10) {
break
} else if sign == -1 && (price < math.MinInt64/10 || price*10 < math.MinInt64-digit) {
break
}
price *= 10
price += digit
if hasDecimals {
dec++
}
n++
} else if r, size := utf8.DecodeRune(b[n:]); !hasDecimals && (r == groupSym || r == decSym) {
if r == decSym {
hasDecimals = true
}
n += size
} else {
break
}
}
return price, dec, n
}
// AppendNumber will append an int64 formatted as a number with the given number of decimal digits.
func AppendNumber(b []byte, price int64, dec int, groupSize int, groupSym rune, decSym rune) []byte {
if dec < 0 {
dec = 0
}
if utf8.RuneLen(groupSym) == -1 {
groupSym = '.'
}
if utf8.RuneLen(decSym) == -1 {
decSym = ','
}
sign := int64(1)
if price < 0 {
sign = -1
}
// calculate size
n := LenInt(price)
if dec < n && 0 < groupSize && groupSym != 0 {
n += utf8.RuneLen(groupSym) * (n - dec - 1) / groupSize
}
if 0 < dec {
if n <= dec {
n = 1 + dec // zero and decimals
}
n += utf8.RuneLen(decSym)
}
if sign == -1 {
n++
}
// resize byte slice
i := len(b)
if cap(b) < i+n {
b = append(b, make([]byte, n)...)
} else {
b = b[:i+n]
}
// print fractional-part
i += n - 1
if 0 < dec {
for 0 < dec {
c := byte(sign*(price%10)) + '0'
price /= 10
b[i] = c
dec--
i--
}
i -= utf8.RuneLen(decSym)
utf8.EncodeRune(b[i+1:], decSym)
}
// print integer-part
if price == 0 {
b[i] = '0'
if sign == -1 {
b[i-1] = '-'
}
return b
}
j := 0
for price != 0 {
if 0 < groupSize && groupSym != 0 && 0 < j && j%groupSize == 0 {
i -= utf8.RuneLen(groupSym)
utf8.EncodeRune(b[i+1:], groupSym)
}
c := byte(sign*(price%10)) + '0'
price /= 10
b[i] = c
i--
j++
}
if sign == -1 {
b[i] = '-'
}
return b
}

View file

@ -1,83 +0,0 @@
package strconv
// AppendPrice will append an int64 formatted as a price, where the int64 is the price in cents.
// It does not display whether a price is negative or not.
func AppendPrice(b []byte, price int64, dec bool, milSeparator byte, decSeparator byte) []byte {
if price < 0 {
if price == -9223372036854775808 {
x := []byte("92 233 720 368 547 758 08")
x[2] = milSeparator
x[6] = milSeparator
x[10] = milSeparator
x[14] = milSeparator
x[18] = milSeparator
x[22] = decSeparator
return append(b, x...)
}
price = -price
}
// rounding
if !dec {
firstDec := (price / 10) % 10
if 5 <= firstDec {
price += 100
}
}
// calculate size
n := LenInt(price) - 2
if 0 < n {
n += (n - 1) / 3 // mil separator
} else {
n = 1
}
if dec {
n += 2 + 1 // decimals + dec separator
}
// resize byte slice
i := len(b)
if cap(b) < i+n {
b = append(b, make([]byte, n)...)
} else {
b = b[:i+n]
}
// print fractional-part
i += n - 1
if dec {
for j := 0; j < 2; j++ {
c := byte(price%10) + '0'
price /= 10
b[i] = c
i--
}
b[i] = decSeparator
i--
} else {
price /= 100
}
if price == 0 {
b[i] = '0'
return b
}
// print integer-part
j := 0
for 0 < price {
if j == 3 {
b[i] = milSeparator
i--
j = 0
}
c := byte(price%10) + '0'
price /= 10
b[i] = c
i--
j++
}
return b
}

4
vendor/modules.txt vendored
View file

@ -646,11 +646,11 @@ github.com/superseriousbusiness/oauth2/v4/generates
github.com/superseriousbusiness/oauth2/v4/manage
github.com/superseriousbusiness/oauth2/v4/models
github.com/superseriousbusiness/oauth2/v4/server
# github.com/tdewolff/minify/v2 v2.19.10
# github.com/tdewolff/minify/v2 v2.20.0
## explicit; go 1.18
github.com/tdewolff/minify/v2
github.com/tdewolff/minify/v2/html
# github.com/tdewolff/parse/v2 v2.6.8
# github.com/tdewolff/parse/v2 v2.7.0
## explicit; go 1.13
github.com/tdewolff/parse/v2
github.com/tdewolff/parse/v2/buffer