mirror of
https://github.com/superseriousbusiness/gotosocial.git
synced 2025-11-05 13:09:31 -06:00
[chore]: Bump github.com/tdewolff/minify/v2 from 2.20.0 to 2.20.6 (#2337)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
This commit is contained in:
parent
28f85db30a
commit
74b600655d
19 changed files with 2421 additions and 1141 deletions
16
vendor/github.com/tdewolff/minify/v2/html/buffer.go
generated
vendored
16
vendor/github.com/tdewolff/minify/v2/html/buffer.go
generated
vendored
|
|
@ -8,12 +8,13 @@ import (
|
|||
// Token is a single token unit with an attribute value (if given) and hash of the data.
|
||||
type Token struct {
|
||||
html.TokenType
|
||||
Hash Hash
|
||||
Data []byte
|
||||
Text []byte
|
||||
AttrVal []byte
|
||||
Traits traits
|
||||
Offset int
|
||||
Hash Hash
|
||||
Data []byte
|
||||
Text []byte
|
||||
AttrVal []byte
|
||||
Traits traits
|
||||
Offset int
|
||||
HasTemplate bool
|
||||
}
|
||||
|
||||
// TokenBuffer is a buffer that allows for token look-ahead.
|
||||
|
|
@ -40,10 +41,11 @@ func (z *TokenBuffer) read(t *Token) {
|
|||
t.Offset = z.r.Offset()
|
||||
t.TokenType, t.Data = z.l.Next()
|
||||
t.Text = z.l.Text()
|
||||
t.HasTemplate = z.l.HasTemplate()
|
||||
if t.TokenType == html.AttributeToken {
|
||||
t.Offset += 1 + len(t.Text) + 1
|
||||
t.AttrVal = z.l.AttrVal()
|
||||
if len(t.AttrVal) > 1 && (t.AttrVal[0] == '"' || t.AttrVal[0] == '\'') {
|
||||
if 1 < len(t.AttrVal) && (t.AttrVal[0] == '"' || t.AttrVal[0] == '\'') {
|
||||
t.Offset++
|
||||
t.AttrVal = t.AttrVal[1 : len(t.AttrVal)-1] // quotes will be readded in attribute loop if necessary
|
||||
}
|
||||
|
|
|
|||
1066
vendor/github.com/tdewolff/minify/v2/html/hash.go
generated
vendored
1066
vendor/github.com/tdewolff/minify/v2/html/hash.go
generated
vendored
File diff suppressed because it is too large
Load diff
51
vendor/github.com/tdewolff/minify/v2/html/html.go
generated
vendored
51
vendor/github.com/tdewolff/minify/v2/html/html.go
generated
vendored
|
|
@ -41,6 +41,13 @@ var (
|
|||
|
||||
////////////////////////////////////////////////////////////////
|
||||
|
||||
var GoTemplateDelims = [2]string{"{{", "}}"}
|
||||
var HandlebarsTemplateDelims = [2]string{"{{", "}}"}
|
||||
var MustacheTemplateDelims = [2]string{"{{", "}}"}
|
||||
var EJSTemplateDelims = [2]string{"<%", "%>"}
|
||||
var ASPTemplateDelims = [2]string{"<%", "%>"}
|
||||
var PHPTemplateDelims = [2]string{"<?", "?>"}
|
||||
|
||||
// Minifier is an HTML minifier.
|
||||
type Minifier struct {
|
||||
KeepComments bool
|
||||
|
|
@ -50,6 +57,7 @@ type Minifier struct {
|
|||
KeepEndTags bool
|
||||
KeepQuotes bool
|
||||
KeepWhitespace bool
|
||||
TemplateDelims [2]string
|
||||
}
|
||||
|
||||
// Minify minifies HTML data, it reads from r and writes to w.
|
||||
|
|
@ -71,7 +79,7 @@ func (o *Minifier) Minify(m *minify.M, w io.Writer, r io.Reader, _ map[string]st
|
|||
z := parse.NewInput(r)
|
||||
defer z.Restore()
|
||||
|
||||
l := html.NewLexer(z)
|
||||
l := html.NewTemplateLexer(z, o.TemplateDelims)
|
||||
tb := NewTokenBuffer(z, l)
|
||||
for {
|
||||
t := *tb.Shift()
|
||||
|
|
@ -126,8 +134,9 @@ func (o *Minifier) Minify(m *minify.M, w io.Writer, r io.Reader, _ map[string]st
|
|||
w.Write(t.Data)
|
||||
}
|
||||
case html.TextToken:
|
||||
// CSS and JS minifiers for inline code
|
||||
if rawTagHash != 0 {
|
||||
if t.HasTemplate {
|
||||
w.Write(t.Data)
|
||||
} else if rawTagHash != 0 {
|
||||
if rawTagHash == Style || rawTagHash == Script || rawTagHash == Iframe {
|
||||
var mimetype []byte
|
||||
var params map[string]string
|
||||
|
|
@ -372,6 +381,9 @@ func (o *Minifier) Minify(m *minify.M, w io.Writer, r io.Reader, _ map[string]st
|
|||
break
|
||||
} else if attr.Text == nil {
|
||||
continue // removed attribute
|
||||
} else if attr.HasTemplate {
|
||||
w.Write(attr.Data)
|
||||
continue // don't minify attributes that contain templates
|
||||
}
|
||||
|
||||
val := attr.AttrVal
|
||||
|
|
@ -389,35 +401,30 @@ func (o *Minifier) Minify(m *minify.M, w io.Writer, r io.Reader, _ map[string]st
|
|||
attr.Hash == Action && t.Hash == Form) {
|
||||
continue // omit empty attribute values
|
||||
}
|
||||
if attr.Traits&caselessAttr != 0 {
|
||||
val = parse.ToLower(val)
|
||||
}
|
||||
if rawTagHash != 0 && attr.Hash == Type {
|
||||
rawTagMediatype = parse.Copy(val)
|
||||
}
|
||||
|
||||
if attr.Hash == Enctype || attr.Hash == Codetype || attr.Hash == Accept || attr.Hash == Type && (t.Hash == A || t.Hash == Link || t.Hash == Embed || t.Hash == Object || t.Hash == Source || t.Hash == Script || t.Hash == Style) {
|
||||
if attr.Hash == Enctype ||
|
||||
attr.Hash == Formenctype ||
|
||||
attr.Hash == Accept ||
|
||||
attr.Hash == Type && (t.Hash == A || t.Hash == Link || t.Hash == Embed || t.Hash == Object || t.Hash == Source || t.Hash == Script) {
|
||||
val = minify.Mediatype(val)
|
||||
}
|
||||
|
||||
// default attribute values can be omitted
|
||||
if !o.KeepDefaultAttrVals && (attr.Hash == Type && (t.Hash == Script && jsMimetypes[string(val)] ||
|
||||
t.Hash == Style && bytes.Equal(val, cssMimeBytes) ||
|
||||
t.Hash == Link && bytes.Equal(val, cssMimeBytes) ||
|
||||
t.Hash == Input && bytes.Equal(val, textBytes) ||
|
||||
t.Hash == Button && bytes.Equal(val, submitBytes)) ||
|
||||
attr.Hash == Language && t.Hash == Script ||
|
||||
attr.Hash == Method && bytes.Equal(val, getBytes) ||
|
||||
attr.Hash == Enctype && bytes.Equal(val, formMimeBytes) ||
|
||||
if !o.KeepDefaultAttrVals && (attr.Hash == Type && (t.Hash == Script && jsMimetypes[string(parse.ToLower(parse.Copy(val)))] ||
|
||||
t.Hash == Style && parse.EqualFold(val, cssMimeBytes) ||
|
||||
t.Hash == Link && parse.EqualFold(val, cssMimeBytes) ||
|
||||
t.Hash == Input && parse.EqualFold(val, textBytes) ||
|
||||
t.Hash == Button && parse.EqualFold(val, submitBytes)) ||
|
||||
attr.Hash == Method && parse.EqualFold(val, getBytes) ||
|
||||
attr.Hash == Enctype && parse.EqualFold(val, formMimeBytes) ||
|
||||
attr.Hash == Colspan && bytes.Equal(val, oneBytes) ||
|
||||
attr.Hash == Rowspan && bytes.Equal(val, oneBytes) ||
|
||||
attr.Hash == Shape && bytes.Equal(val, rectBytes) ||
|
||||
attr.Hash == Shape && parse.EqualFold(val, rectBytes) ||
|
||||
attr.Hash == Span && bytes.Equal(val, oneBytes) ||
|
||||
attr.Hash == Clear && bytes.Equal(val, noneBytes) ||
|
||||
attr.Hash == Frameborder && bytes.Equal(val, oneBytes) ||
|
||||
attr.Hash == Scrolling && bytes.Equal(val, autoBytes) ||
|
||||
attr.Hash == Valuetype && bytes.Equal(val, dataBytes) ||
|
||||
attr.Hash == Media && t.Hash == Style && bytes.Equal(val, allBytes)) {
|
||||
attr.Hash == Media && t.Hash == Style && parse.EqualFold(val, allBytes)) {
|
||||
continue
|
||||
}
|
||||
|
||||
|
|
@ -440,7 +447,7 @@ func (o *Minifier) Minify(m *minify.M, w io.Writer, r io.Reader, _ map[string]st
|
|||
val = val[11:]
|
||||
}
|
||||
attrMinifyBuffer.Reset()
|
||||
if err := m.MinifyMimetype(jsMimeBytes, attrMinifyBuffer, buffer.NewReader(val), nil); err == nil {
|
||||
if err := m.MinifyMimetype(jsMimeBytes, attrMinifyBuffer, buffer.NewReader(val), inlineParams); err == nil {
|
||||
val = attrMinifyBuffer.Bytes()
|
||||
} else if err != minify.ErrNotExist {
|
||||
return minify.UpdateErrorPosition(err, z, attr.Offset)
|
||||
|
|
|
|||
219
vendor/github.com/tdewolff/minify/v2/html/table.go
generated
vendored
219
vendor/github.com/tdewolff/minify/v2/html/table.go
generated
vendored
|
|
@ -13,7 +13,6 @@ const (
|
|||
|
||||
const (
|
||||
booleanAttr traits = 1 << iota
|
||||
caselessAttr
|
||||
urlAttr
|
||||
trimAttr
|
||||
)
|
||||
|
|
@ -163,106 +162,124 @@ var tagMap = map[Hash]traits{
|
|||
}
|
||||
|
||||
var attrMap = map[Hash]traits{
|
||||
Accept: trimAttr,
|
||||
Accept_Charset: caselessAttr,
|
||||
Action: urlAttr,
|
||||
Align: caselessAttr,
|
||||
Alink: caselessAttr,
|
||||
Allowfullscreen: booleanAttr,
|
||||
Async: booleanAttr,
|
||||
Autofocus: booleanAttr,
|
||||
Autoplay: booleanAttr,
|
||||
Axis: caselessAttr,
|
||||
Background: urlAttr,
|
||||
Bgcolor: caselessAttr,
|
||||
Charset: caselessAttr,
|
||||
Checked: booleanAttr,
|
||||
Cite: urlAttr,
|
||||
Class: trimAttr,
|
||||
Classid: urlAttr,
|
||||
Clear: caselessAttr,
|
||||
Codebase: urlAttr,
|
||||
Codetype: trimAttr,
|
||||
Color: caselessAttr,
|
||||
Cols: trimAttr,
|
||||
Colspan: trimAttr,
|
||||
Compact: booleanAttr,
|
||||
Controls: booleanAttr,
|
||||
Data: urlAttr,
|
||||
Declare: booleanAttr,
|
||||
Default: booleanAttr,
|
||||
DefaultChecked: booleanAttr,
|
||||
DefaultMuted: booleanAttr,
|
||||
DefaultSelected: booleanAttr,
|
||||
Defer: booleanAttr,
|
||||
Dir: caselessAttr,
|
||||
Disabled: booleanAttr,
|
||||
Enabled: booleanAttr,
|
||||
Enctype: trimAttr,
|
||||
Face: caselessAttr,
|
||||
Formaction: urlAttr,
|
||||
Formnovalidate: booleanAttr,
|
||||
Frame: caselessAttr,
|
||||
Hidden: booleanAttr,
|
||||
Href: urlAttr,
|
||||
Hreflang: caselessAttr,
|
||||
Http_Equiv: caselessAttr,
|
||||
Icon: urlAttr,
|
||||
Inert: booleanAttr,
|
||||
Ismap: booleanAttr,
|
||||
Itemscope: booleanAttr,
|
||||
Lang: trimAttr,
|
||||
Language: caselessAttr,
|
||||
Link: caselessAttr,
|
||||
Longdesc: urlAttr,
|
||||
Manifest: urlAttr,
|
||||
Maxlength: trimAttr,
|
||||
Media: caselessAttr | trimAttr,
|
||||
Method: caselessAttr,
|
||||
Multiple: booleanAttr,
|
||||
Muted: booleanAttr,
|
||||
Nohref: booleanAttr,
|
||||
Noresize: booleanAttr,
|
||||
Noshade: booleanAttr,
|
||||
Novalidate: booleanAttr,
|
||||
Nowrap: booleanAttr,
|
||||
Open: booleanAttr,
|
||||
Pauseonexit: booleanAttr,
|
||||
Poster: urlAttr,
|
||||
Profile: urlAttr,
|
||||
Readonly: booleanAttr,
|
||||
Rel: caselessAttr | trimAttr,
|
||||
Required: booleanAttr,
|
||||
Rev: caselessAttr,
|
||||
Reversed: booleanAttr,
|
||||
Rows: trimAttr,
|
||||
Rowspan: trimAttr,
|
||||
Rules: caselessAttr,
|
||||
Scope: caselessAttr,
|
||||
Scoped: booleanAttr,
|
||||
Scrolling: caselessAttr,
|
||||
Seamless: booleanAttr,
|
||||
Selected: booleanAttr,
|
||||
Shape: caselessAttr,
|
||||
Size: trimAttr,
|
||||
Sortable: booleanAttr,
|
||||
Span: trimAttr,
|
||||
Src: urlAttr,
|
||||
Srcset: trimAttr,
|
||||
Tabindex: trimAttr,
|
||||
Target: caselessAttr,
|
||||
Text: caselessAttr,
|
||||
Translate: caselessAttr,
|
||||
Truespeed: booleanAttr,
|
||||
Type: trimAttr,
|
||||
Typemustmatch: booleanAttr,
|
||||
Undeterminate: booleanAttr,
|
||||
Usemap: urlAttr,
|
||||
Valign: caselessAttr,
|
||||
Valuetype: caselessAttr,
|
||||
Vlink: caselessAttr,
|
||||
Visible: booleanAttr,
|
||||
Xmlns: urlAttr,
|
||||
Accept: trimAttr, // list of mimetypes
|
||||
Accept_Charset: trimAttr,
|
||||
Accesskey: trimAttr,
|
||||
Action: urlAttr,
|
||||
Allow: trimAttr,
|
||||
Allowfullscreen: booleanAttr,
|
||||
As: trimAttr,
|
||||
Async: booleanAttr,
|
||||
Autocapitalize: trimAttr,
|
||||
Autocomplete: trimAttr,
|
||||
Autofocus: booleanAttr,
|
||||
Autoplay: booleanAttr,
|
||||
Blocking: trimAttr,
|
||||
Capture: trimAttr,
|
||||
Charset: trimAttr,
|
||||
Checked: booleanAttr,
|
||||
Cite: urlAttr,
|
||||
Class: trimAttr,
|
||||
Color: trimAttr,
|
||||
Cols: trimAttr, // uint bigger than 0
|
||||
Colspan: trimAttr, // uint bigger than 0
|
||||
Contenteditable: trimAttr,
|
||||
Controls: booleanAttr,
|
||||
Coords: trimAttr, // list of floats
|
||||
Crossorigin: trimAttr,
|
||||
Data: urlAttr,
|
||||
Datetime: trimAttr,
|
||||
Decoding: trimAttr,
|
||||
Default: booleanAttr,
|
||||
Defer: booleanAttr,
|
||||
Dir: trimAttr,
|
||||
Disabled: booleanAttr,
|
||||
Draggable: trimAttr,
|
||||
Enctype: trimAttr, // mimetype
|
||||
Enterkeyhint: trimAttr,
|
||||
Fetchpriority: trimAttr,
|
||||
For: trimAttr,
|
||||
Form: trimAttr,
|
||||
Formaction: urlAttr,
|
||||
Formenctype: trimAttr, // mimetype
|
||||
Formmethod: trimAttr,
|
||||
Formnovalidate: booleanAttr,
|
||||
Formtarget: trimAttr,
|
||||
Headers: trimAttr,
|
||||
Height: trimAttr, // uint
|
||||
Hidden: trimAttr, // TODO: boolean
|
||||
High: trimAttr, // float
|
||||
Href: urlAttr,
|
||||
Hreflang: trimAttr, // BCP 47
|
||||
Http_Equiv: trimAttr,
|
||||
Imagesizes: trimAttr,
|
||||
Imagesrcset: trimAttr,
|
||||
Inert: booleanAttr,
|
||||
Inputmode: trimAttr,
|
||||
Is: trimAttr,
|
||||
Ismap: booleanAttr,
|
||||
Itemid: urlAttr,
|
||||
Itemprop: trimAttr,
|
||||
Itemref: trimAttr,
|
||||
Itemscope: booleanAttr,
|
||||
Itemtype: trimAttr, // list of urls
|
||||
Kind: trimAttr,
|
||||
Lang: trimAttr, // BCP 47
|
||||
List: trimAttr,
|
||||
Loading: trimAttr,
|
||||
Loop: booleanAttr,
|
||||
Low: trimAttr, // float
|
||||
Max: trimAttr, // float or varies
|
||||
Maxlength: trimAttr, // uint
|
||||
Media: trimAttr,
|
||||
Method: trimAttr,
|
||||
Min: trimAttr, // float or varies
|
||||
Minlength: trimAttr, // uint
|
||||
Multiple: booleanAttr,
|
||||
Muted: booleanAttr,
|
||||
Nomodule: booleanAttr,
|
||||
Novalidate: booleanAttr,
|
||||
Open: booleanAttr,
|
||||
Optimum: trimAttr, // float
|
||||
Pattern: trimAttr, // regex
|
||||
Ping: trimAttr, // list of urls
|
||||
Playsinline: booleanAttr,
|
||||
Popover: trimAttr,
|
||||
Popovertarget: trimAttr,
|
||||
Popovertargetaction: trimAttr,
|
||||
Poster: urlAttr,
|
||||
Preload: trimAttr,
|
||||
Profile: urlAttr,
|
||||
Readonly: booleanAttr,
|
||||
Referrerpolicy: trimAttr,
|
||||
Rel: trimAttr,
|
||||
Required: booleanAttr,
|
||||
Reversed: booleanAttr,
|
||||
Rows: trimAttr, // uint bigger than 0
|
||||
Rowspan: trimAttr, // uint
|
||||
Sandbox: trimAttr,
|
||||
Scope: trimAttr,
|
||||
Selected: booleanAttr,
|
||||
Shadowrootmode: trimAttr,
|
||||
Shadowrootdelegatesfocus: booleanAttr,
|
||||
Shape: trimAttr,
|
||||
Size: trimAttr, // uint bigger than 0
|
||||
Sizes: trimAttr,
|
||||
Span: trimAttr, // uint bigger than 0
|
||||
Spellcheck: trimAttr,
|
||||
Src: urlAttr,
|
||||
Srclang: trimAttr, // BCP 47
|
||||
Srcset: trimAttr,
|
||||
Start: trimAttr, // int
|
||||
Step: trimAttr, // float or "any"
|
||||
Tabindex: trimAttr, // int
|
||||
Target: trimAttr,
|
||||
Translate: trimAttr,
|
||||
Type: trimAttr,
|
||||
Usemap: trimAttr,
|
||||
Width: trimAttr, // uint
|
||||
Wrap: trimAttr,
|
||||
Xmlns: urlAttr,
|
||||
}
|
||||
|
||||
var jsMimetypes = map[string]bool{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue