html-minifier-next 6.2.8 → 6.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +35 -1
- package/dist/htmlminifier.cjs +882 -557
- package/dist/types/htmlminifier.d.ts +77 -60
- package/dist/types/htmlminifier.d.ts.map +1 -1
- package/dist/types/htmlparser.d.ts +19 -3
- package/dist/types/htmlparser.d.ts.map +1 -1
- package/dist/types/lib/attributes.d.ts +137 -23
- package/dist/types/lib/attributes.d.ts.map +1 -1
- package/dist/types/lib/content.d.ts +37 -5
- package/dist/types/lib/content.d.ts.map +1 -1
- package/dist/types/lib/elements.d.ts +29 -4
- package/dist/types/lib/elements.d.ts.map +1 -1
- package/dist/types/lib/options.d.ts +17 -14
- package/dist/types/lib/options.d.ts.map +1 -1
- package/dist/types/lib/utils.d.ts +28 -11
- package/dist/types/lib/utils.d.ts.map +1 -1
- package/dist/types/lib/whitespace.d.ts +40 -6
- package/dist/types/lib/whitespace.d.ts.map +1 -1
- package/dist/types/tokenchain.d.ts +17 -3
- package/dist/types/tokenchain.d.ts.map +1 -1
- package/package.json +3 -2
- package/src/htmlminifier.js +405 -346
- package/src/htmlparser.js +101 -48
- package/src/lib/attributes.js +166 -50
- package/src/lib/content.js +28 -12
- package/src/lib/elements.js +30 -7
- package/src/lib/options.js +55 -42
- package/src/lib/utils.js +26 -7
- package/src/lib/whitespace.js +30 -11
- package/src/presets.js +1 -1
- package/src/tokenchain.js +30 -17
|
@@ -1,33 +1,147 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export
|
|
5
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Internal counterpart of the public typedef in `htmlminifier.js`—keep in sync.
|
|
3
|
+
*/
|
|
4
|
+
export type HTMLAttribute = {
|
|
5
|
+
name: string;
|
|
6
|
+
value?: string | undefined;
|
|
7
|
+
quote?: string;
|
|
8
|
+
customAssign?: string;
|
|
9
|
+
customOpen?: string;
|
|
10
|
+
customClose?: string;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* @param {string} text
|
|
14
|
+
* @param {{ignoreCustomComments: RegExp[]}} options
|
|
15
|
+
*/
|
|
16
|
+
export function isIgnoredComment(text: string, options: {
|
|
17
|
+
ignoreCustomComments: RegExp[];
|
|
18
|
+
}): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* @param {string} attrName
|
|
21
|
+
* @param {{customEventAttributes?: RegExp[]}} options
|
|
22
|
+
*/
|
|
23
|
+
export function isEventAttribute(attrName: string, options: {
|
|
24
|
+
customEventAttributes?: RegExp[];
|
|
25
|
+
}): boolean;
|
|
26
|
+
/** @param {string} value */
|
|
27
|
+
export function canRemoveAttributeQuotes(value: string): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* @param {HTMLAttribute[]} attributes
|
|
30
|
+
* @param {string} attribute
|
|
31
|
+
*/
|
|
32
|
+
export function attributesInclude(attributes: HTMLAttribute[], attribute: string): boolean;
|
|
33
|
+
/**
|
|
34
|
+
* @param {string} tag
|
|
35
|
+
* @param {string} attrName
|
|
36
|
+
* @param {string} attrValue
|
|
37
|
+
* @param {HTMLAttribute[]} attrs
|
|
38
|
+
*/
|
|
39
|
+
export function isAttributeRedundant(tag: string, attrName: string, attrValue: string, attrs: HTMLAttribute[]): boolean;
|
|
6
40
|
export function isScriptTypeAttribute(attrValue?: string): boolean;
|
|
7
41
|
export function keepScriptTypeAttribute(attrValue?: string): boolean;
|
|
8
|
-
|
|
42
|
+
/**
|
|
43
|
+
* @param {string} tag
|
|
44
|
+
* @param {HTMLAttribute[]} attrs
|
|
45
|
+
*/
|
|
46
|
+
export function isExecutableScript(tag: string, attrs: HTMLAttribute[]): boolean;
|
|
9
47
|
export function isStyleLinkTypeAttribute(attrValue?: string): boolean;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
export function
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
export function
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
48
|
+
/**
|
|
49
|
+
* @param {string} tag
|
|
50
|
+
* @param {HTMLAttribute[]} attrs
|
|
51
|
+
*/
|
|
52
|
+
export function isStyleElement(tag: string, attrs: HTMLAttribute[]): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* @param {string} attrName
|
|
55
|
+
* @param {string} attrValue
|
|
56
|
+
*/
|
|
57
|
+
export function isBooleanAttribute(attrName: string, attrValue: string): boolean | undefined;
|
|
58
|
+
/**
|
|
59
|
+
* @param {string} attrName
|
|
60
|
+
* @param {string} tag
|
|
61
|
+
*/
|
|
62
|
+
export function isUriTypeAttribute(attrName: string, tag: string): boolean;
|
|
63
|
+
/**
|
|
64
|
+
* @param {string} attrName
|
|
65
|
+
* @param {string} tag
|
|
66
|
+
*/
|
|
67
|
+
export function isNumberTypeAttribute(attrName: string, tag: string): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* @param {string} tag
|
|
70
|
+
* @param {HTMLAttribute[]} attrs
|
|
71
|
+
* @param {string} value
|
|
72
|
+
*/
|
|
73
|
+
export function isLinkType(tag: string, attrs: HTMLAttribute[], value: string): boolean;
|
|
74
|
+
/**
|
|
75
|
+
* @param {string} tag
|
|
76
|
+
* @param {HTMLAttribute[]} attrs
|
|
77
|
+
* @param {string} attrName
|
|
78
|
+
*/
|
|
79
|
+
export function isMediaQuery(tag: string, attrs: HTMLAttribute[], attrName: string): boolean;
|
|
80
|
+
/**
|
|
81
|
+
* @param {string} attrName
|
|
82
|
+
* @param {string} tag
|
|
83
|
+
*/
|
|
84
|
+
export function isSrcset(attrName: string, tag: string): boolean;
|
|
85
|
+
/**
|
|
86
|
+
* @param {string} tag
|
|
87
|
+
* @param {HTMLAttribute[]} attrs
|
|
88
|
+
*/
|
|
89
|
+
export function isMetaViewport(tag: string, attrs: HTMLAttribute[]): boolean;
|
|
90
|
+
/**
|
|
91
|
+
* @param {string} tag
|
|
92
|
+
* @param {HTMLAttribute[]} attrs
|
|
93
|
+
*/
|
|
94
|
+
export function isContentSecurityPolicy(tag: string, attrs: HTMLAttribute[]): boolean;
|
|
95
|
+
/**
|
|
96
|
+
* @param {string} tag
|
|
97
|
+
* @param {string} attrName
|
|
98
|
+
* @param {string | undefined} attrValue
|
|
99
|
+
* @param {{removeEmptyAttributes?: boolean | Function}} options
|
|
100
|
+
*/
|
|
101
|
+
export function canDeleteEmptyAttribute(tag: string, attrName: string, attrValue: string | undefined, options: {
|
|
102
|
+
removeEmptyAttributes?: boolean | Function;
|
|
103
|
+
}): any;
|
|
104
|
+
/**
|
|
105
|
+
* @param {string} name
|
|
106
|
+
* @param {HTMLAttribute[]} attrs
|
|
107
|
+
*/
|
|
108
|
+
export function hasAttrName(name: string, attrs: HTMLAttribute[]): boolean;
|
|
109
|
+
/**
|
|
110
|
+
* @param {string} tag
|
|
111
|
+
* @param {string} attrName
|
|
112
|
+
* @param {string} attrValue
|
|
113
|
+
* @param {Record<string, any>} options
|
|
114
|
+
* @param {HTMLAttribute[]} attrs
|
|
115
|
+
* @param {Function} minifyHTMLSelf
|
|
116
|
+
*/
|
|
117
|
+
export function cleanAttributeValue(tag: string, attrName: string, attrValue: string, options: Record<string, any>, attrs: HTMLAttribute[], minifyHTMLSelf: Function): any;
|
|
118
|
+
/**
|
|
119
|
+
* @param {HTMLAttribute} attr
|
|
120
|
+
* @param {HTMLAttribute[]} attrs
|
|
121
|
+
* @param {string} tag
|
|
122
|
+
* @param {Record<string, any>} options
|
|
123
|
+
* @param {Function} minifyHTML
|
|
124
|
+
*/
|
|
125
|
+
export function normalizeAttr(attr: HTMLAttribute, attrs: HTMLAttribute[], tag: string, options: Record<string, any>, minifyHTML: Function): any;
|
|
126
|
+
/**
|
|
127
|
+
* @param {{name: string, value?: string, attr: HTMLAttribute}} normalized
|
|
128
|
+
* @param {string | boolean | undefined} hasUnarySlash
|
|
129
|
+
* @param {Record<string, any>} options
|
|
130
|
+
* @param {boolean} isLast
|
|
131
|
+
* @param {string | undefined} uidAttr
|
|
132
|
+
*/
|
|
133
|
+
export function buildAttr(normalized: {
|
|
134
|
+
name: string;
|
|
135
|
+
value?: string;
|
|
136
|
+
attr: HTMLAttribute;
|
|
137
|
+
}, hasUnarySlash: string | boolean | undefined, options: Record<string, any>, isLast: boolean, uidAttr: string | undefined): string;
|
|
24
138
|
/**
|
|
25
139
|
* Remove duplicate attributes from an attribute list.
|
|
26
140
|
* Per HTML spec, when an attribute appears multiple times, the first occurrence wins.
|
|
27
141
|
* Duplicate attributes result in invalid HTML, so only the first is kept.
|
|
28
|
-
* @param {
|
|
142
|
+
* @param {HTMLAttribute[]} attrs - Array of attribute objects with `name` property
|
|
29
143
|
* @param {boolean} caseSensitive - Whether to compare names case-sensitively (for XML/SVG)
|
|
30
|
-
* @returns {
|
|
144
|
+
* @returns {HTMLAttribute[]} Deduplicated attribute array (modifies in place and returns)
|
|
31
145
|
*/
|
|
32
|
-
export function deduplicateAttributes(attrs:
|
|
146
|
+
export function deduplicateAttributes(attrs: HTMLAttribute[], caseSensitive: boolean): HTMLAttribute[];
|
|
33
147
|
//# sourceMappingURL=attributes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../../../src/lib/attributes.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"attributes.d.ts","sourceRoot":"","sources":["../../../src/lib/attributes.js"],"names":[],"mappings":";;;4BAwBa;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE;AAiB3I;;;GAGG;AACH,uCAHW,MAAM,WACN;IAAC,oBAAoB,EAAE,MAAM,EAAE,CAAA;CAAC,WAW1C;AAED;;;GAGG;AACH,2CAHW,MAAM,WACN;IAAC,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAA;CAAC,WAa5C;AAED,4BAA4B;AAC5B,gDADY,MAAM,WAIjB;AAED;;;GAGG;AACH,8CAHW,aAAa,EAAE,aACf,MAAM,WAShB;AA+BD;;;;;GAKG;AACH,0CALW,MAAM,YACN,MAAM,aACN,MAAM,SACN,aAAa,EAAE,WAyCzB;AAED,mEAGC;AAED,qEAGC;AAED;;;GAGG;AACH,wCAHW,MAAM,SACN,aAAa,EAAE,WAYzB;AAED,sEAGC;AAED;;;GAGG;AACH,oCAHW,MAAM,SACN,aAAa,EAAE,WAYzB;AAED;;;GAGG;AACH,6CAHW,MAAM,aACN,MAAM,uBAMhB;AAmBD;;;GAGG;AACH,6CAHW,MAAM,OACN,MAAM,WAKhB;AAgBD;;;GAGG;AACH,gDAHW,MAAM,OACN,MAAM,WAKhB;AAED;;;;GAIG;AACH,gCAJW,MAAM,SACN,aAAa,EAAE,SACf,MAAM,WAYhB;AAED;;;;GAIG;AACH,kCAJW,MAAM,SACN,aAAa,EAAE,YACf,MAAM,WAIhB;AAED;;;GAGG;AACH,mCAHW,MAAM,OACN,MAAM,WAIhB;AAED;;;GAGG;AACH,oCAHW,MAAM,SACN,aAAa,EAAE,WAYzB;AAED;;;GAGG;AACH,6CAHW,MAAM,SACN,aAAa,EAAE,WAYzB;AAED;;;;;GAKG;AACH,6CALW,MAAM,YACN,MAAM,aACN,MAAM,GAAG,SAAS,WAClB;IAAC,qBAAqB,CAAC,EAAE,OAAO,WAAW,CAAA;CAAC,OAWtD;AAED;;;GAGG;AACH,kCAHW,MAAM,SACN,aAAa,EAAE,WASzB;AAUD;;;;;;;GAOG;AACH,yCAPW,MAAM,YACN,MAAM,aACN,MAAM,WACN,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,SACnB,aAAa,EAAE,iCAiMzB;AAwBD;;;;;;GAMG;AACH,oCANW,aAAa,SACb,aAAa,EAAE,OACf,MAAM,WACN,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,6BAe7B;AA0DD;;;;;;GAMG;AACH,sCANW;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,aAAa,CAAA;CAAC,iBACnD,MAAM,GAAG,OAAO,GAAG,SAAS,WAC5B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,UACnB,OAAO,WACP,MAAM,GAAG,SAAS,UA0H5B;AAxsBD;;;;;;;GAOG;AACH,6CAJW,aAAa,EAAE,iBACf,OAAO,GACL,aAAa,EAAE,CAqB3B"}
|
|
@@ -1,6 +1,38 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
export function
|
|
1
|
+
/**
|
|
2
|
+
* @param {string} text
|
|
3
|
+
* @param {string} type
|
|
4
|
+
*/
|
|
5
|
+
export function wrapCSS(text: string, type: string): string;
|
|
6
|
+
/**
|
|
7
|
+
* @param {string} text
|
|
8
|
+
* @param {string} type
|
|
9
|
+
*/
|
|
10
|
+
export function unwrapCSS(text: string, type: string): string;
|
|
11
|
+
/**
|
|
12
|
+
* @param {string} text
|
|
13
|
+
* @param {{continueOnMinifyError?: boolean, log?: Function}} options
|
|
14
|
+
*/
|
|
15
|
+
export function minifyJson(text: string, options: {
|
|
16
|
+
continueOnMinifyError?: boolean;
|
|
17
|
+
log?: Function;
|
|
18
|
+
}): string;
|
|
19
|
+
/** @param {Array<{name: string, value?: string}>} attrs */
|
|
20
|
+
export function hasJsonScriptType(attrs: Array<{
|
|
21
|
+
name: string;
|
|
22
|
+
value?: string;
|
|
23
|
+
}>): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* @param {string} text
|
|
26
|
+
* @param {{continueOnMinifyError?: boolean, log?: Function, processScripts?: string[]}} options
|
|
27
|
+
* @param {Array<{name: string, value?: string | undefined}>} currentAttrs
|
|
28
|
+
* @param {Function} minifyHTML
|
|
29
|
+
*/
|
|
30
|
+
export function processScript(text: string, options: {
|
|
31
|
+
continueOnMinifyError?: boolean;
|
|
32
|
+
log?: Function;
|
|
33
|
+
processScripts?: string[];
|
|
34
|
+
}, currentAttrs: Array<{
|
|
35
|
+
name: string;
|
|
36
|
+
value?: string | undefined;
|
|
37
|
+
}>, minifyHTML: Function): Promise<any>;
|
|
6
38
|
//# sourceMappingURL=content.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../../src/lib/content.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../../src/lib/content.js"],"names":[],"mappings":"AASA;;;GAGG;AACH,8BAHW,MAAM,QACN,MAAM,UAWhB;AAED;;;GAGG;AACH,gCAHW,MAAM,QACN,MAAM,UAahB;AAID;;;GAGG;AACH,iCAHW,MAAM,WACN;IAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,WAAU;CAAC,UAa3D;AAED,2DAA2D;AAC3D,yCADY,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC,WAWhD;AAED;;;;;GAKG;AACH,oCALW,MAAM,WACN;IAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,WAAW;IAAC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;CAAC,gBAC5E,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CAAC,CAAC,sCAoB3D"}
|
|
@@ -1,7 +1,31 @@
|
|
|
1
|
-
export
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
export type MinifierOptions = {
|
|
2
|
+
name: (str: string) => string;
|
|
3
|
+
log?: Function;
|
|
4
|
+
};
|
|
5
|
+
/** @import { HTMLAttribute } from './attributes.js' */
|
|
6
|
+
/**
|
|
7
|
+
* @typedef {{ name: (str: string) => string, log?: Function }} MinifierOptions
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* @param {string} optionalStartTag
|
|
11
|
+
* @param {string} tag
|
|
12
|
+
*/
|
|
13
|
+
export function canRemoveParentTag(optionalStartTag: string, tag: string): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* @param {string} optionalEndTag
|
|
16
|
+
* @param {string} tag
|
|
17
|
+
*/
|
|
18
|
+
export function isStartTagMandatory(optionalEndTag: string, tag: string): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* @param {string} optionalEndTag
|
|
21
|
+
* @param {string} tag
|
|
22
|
+
*/
|
|
23
|
+
export function canRemovePrecedingTag(optionalEndTag: string, tag: string): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* @param {string} tag
|
|
26
|
+
* @param {HTMLAttribute[]} attrs
|
|
27
|
+
*/
|
|
28
|
+
export function canRemoveElement(tag: string, attrs: HTMLAttribute[]): boolean;
|
|
5
29
|
/**
|
|
6
30
|
* @param {string} str - Tag name or HTML-like element spec (e.g., “td” or “<span aria-hidden='true'>”)
|
|
7
31
|
* @param {MinifierOptions} options - Options object for name normalization
|
|
@@ -36,4 +60,5 @@ export function shouldPreserveEmptyElement(tag: string, attrs: HTMLAttribute[],
|
|
|
36
60
|
[x: string]: string | undefined;
|
|
37
61
|
} | null;
|
|
38
62
|
}>): boolean;
|
|
63
|
+
import type { HTMLAttribute } from './attributes.js';
|
|
39
64
|
//# sourceMappingURL=elements.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elements.d.ts","sourceRoot":"","sources":["../../../src/lib/elements.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"elements.d.ts","sourceRoot":"","sources":["../../../src/lib/elements.js"],"names":[],"mappings":"8BAkBa;IAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IAAC,GAAG,CAAC,WAAU;CAAE;AAL9D,uDAAuD;AAIvD;;GAEG;AAIH;;;GAGG;AACH,qDAHW,MAAM,OACN,MAAM,WAehB;AAED;;;GAGG;AACH,oDAHW,MAAM,OACN,MAAM,WAUhB;AAED;;;GAGG;AACH,sDAHW,MAAM,OACN,MAAM,WAqChB;AAID;;;GAGG;AACH,sCAHW,MAAM,SACN,aAAa,EAAE,WAwCzB;AAED;;;;GAIG;AACH,sCAJW,MAAM,WACN,eAAe,GACb;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE;YAAQ,MAAM,GAAE,MAAM,GAAC,SAAS;KAAC,GAAC,IAAI,CAAA;CAAC,GAAC,IAAI,CAgD7E;AAED;;;;GAIG;AACH,sDAJW,MAAM,EAAE,WACR,eAAe,GACb,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE;YAAQ,MAAM,GAAE,MAAM,GAAC,SAAS;KAAC,GAAC,IAAI,CAAA;CAAC,CAAC,CAoB/E;AAED;;;;;GAKG;AACH,gDALW,MAAM,SACN,aAAa,EAAE,gBACf,KAAK,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE;YAAQ,MAAM,GAAE,MAAM,GAAC,SAAS;KAAC,GAAC,IAAI,CAAA;CAAC,CAAC,GACjE,OAAO,CAkCnB;mCAtPkC,iBAAiB"}
|
|
@@ -1,19 +1,22 @@
|
|
|
1
|
-
export
|
|
1
|
+
export type MinifierOptions = Record<string, any>;
|
|
2
2
|
/**
|
|
3
|
-
* @
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
* @param {
|
|
9
|
-
* @param {LRU} deps
|
|
10
|
-
* @param {LRU} deps.jsMinifyCache - JS minification cache
|
|
11
|
-
* @param {LRU} deps.svgMinifyCache - SVG minification cache
|
|
3
|
+
* @typedef {Record<string, any>} MinifierOptions
|
|
4
|
+
*/
|
|
5
|
+
/** @param {MinifierOptions} options */
|
|
6
|
+
export function shouldMinifyInnerHTML(options: MinifierOptions): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* @param {MinifierOptions} inputOptions - User-provided options
|
|
9
|
+
* @param {{getLightningCSS?: Function | undefined, getTerser?: Function | undefined, getSwc?: Function | undefined, getSvgo?: Function | undefined, cssMinifyCache?: LRU | undefined, jsMinifyCache?: LRU | undefined, svgMinifyCache?: LRU | undefined}} [deps] - Dependencies from htmlminifier.js
|
|
12
10
|
* @returns {MinifierOptions} Normalized options with defaults applied
|
|
13
11
|
*/
|
|
14
|
-
export function processOptions(inputOptions:
|
|
15
|
-
getLightningCSS
|
|
16
|
-
getTerser
|
|
17
|
-
getSwc
|
|
12
|
+
export function processOptions(inputOptions: MinifierOptions, { getLightningCSS, getTerser, getSwc, getSvgo, cssMinifyCache, jsMinifyCache, svgMinifyCache }?: {
|
|
13
|
+
getLightningCSS?: Function | undefined;
|
|
14
|
+
getTerser?: Function | undefined;
|
|
15
|
+
getSwc?: Function | undefined;
|
|
16
|
+
getSvgo?: Function | undefined;
|
|
17
|
+
cssMinifyCache?: LRU | undefined;
|
|
18
|
+
jsMinifyCache?: LRU | undefined;
|
|
19
|
+
svgMinifyCache?: LRU | undefined;
|
|
18
20
|
}): MinifierOptions;
|
|
21
|
+
import { LRU } from './utils.js';
|
|
19
22
|
//# sourceMappingURL=options.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/lib/options.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../../../src/lib/options.js"],"names":[],"mappings":"8BAWa,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;AADhC;;GAEG;AAMH,uCAAuC;AACvC,+CADY,eAAe,WAW1B;AAID;;;;GAIG;AACH,6CAJW,eAAe,mGACf;IAAC,eAAe,CAAC,EAAE,WAAW,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,WAAW,SAAS,CAAC;IAAC,MAAM,CAAC,EAAE,WAAW,SAAS,CAAC;IAAC,OAAO,CAAC,EAAE,WAAW,SAAS,CAAC;IAAC,cAAc,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC;IAAC,aAAa,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC;IAAC,cAAc,CAAC,EAAE,GAAG,GAAG,SAAS,CAAA;CAAC,GAC5O,eAAe,CA6X3B;oBAhaiG,YAAY"}
|
|
@@ -1,17 +1,33 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @param {unknown} obj
|
|
3
|
+
* @returns {string}
|
|
4
|
+
*/
|
|
5
|
+
export function stableStringify(obj: unknown): string;
|
|
2
6
|
export class LRU {
|
|
3
7
|
constructor(limit?: number);
|
|
4
8
|
limit: number;
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
+
/** @type {Map<string, unknown>} */
|
|
10
|
+
map: Map<string, unknown>;
|
|
11
|
+
/** @param {string} key */
|
|
12
|
+
get(key: string): unknown;
|
|
13
|
+
/**
|
|
14
|
+
* @param {string} key
|
|
15
|
+
* @param {unknown} value
|
|
16
|
+
*/
|
|
17
|
+
set(key: string, value: unknown): void;
|
|
18
|
+
/** @param {string} key */
|
|
19
|
+
delete(key: string): void;
|
|
9
20
|
}
|
|
10
|
-
|
|
11
|
-
export function
|
|
12
|
-
|
|
13
|
-
export function
|
|
14
|
-
|
|
21
|
+
/** @param {string} str */
|
|
22
|
+
export function hashContent(str: string): string;
|
|
23
|
+
/** @param {string} value */
|
|
24
|
+
export function uniqueId(value: string): string;
|
|
25
|
+
/** @param {string} value */
|
|
26
|
+
export function identity(value: string): string;
|
|
27
|
+
/** @param {unknown} value */
|
|
28
|
+
export function isThenable(value: unknown): boolean;
|
|
29
|
+
/** @param {string} value */
|
|
30
|
+
export function lowercase(value: string): string;
|
|
15
31
|
/**
|
|
16
32
|
* Asynchronously replace matches in a string
|
|
17
33
|
* @param {string} str - Input string
|
|
@@ -20,5 +36,6 @@ export function lowercase(value: any): any;
|
|
|
20
36
|
* @returns {Promise<string>} Processed string
|
|
21
37
|
*/
|
|
22
38
|
export function replaceAsync(str: string, regex: RegExp, asyncFn: Function): Promise<string>;
|
|
23
|
-
|
|
39
|
+
/** @param {string | RegExp} value */
|
|
40
|
+
export function parseRegExp(value: string | RegExp): RegExp | undefined;
|
|
24
41
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.js"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/lib/utils.js"],"names":[],"mappings":"AAEA;;;GAGG;AACH,qCAHW,OAAO,GACL,MAAM,CAYlB;AAID;IACE,4BAIC;IAHC,cAAkB;IAClB,mCAAmC;IACnC,KADW,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CACX;IAEtB,0BAA0B;IAC1B,SADY,MAAM,WASjB;IACD;;;OAGG;IACH,SAHW,MAAM,SACN,OAAO,QASjB;IACD,0BAA0B;IAC1B,YADY,MAAM,QACmB;CACtC;AAID,0BAA0B;AAC1B,iCADY,MAAM,UAQjB;AAID,4BAA4B;AAC5B,gCADY,MAAM,UAOjB;AAID,4BAA4B;AAC5B,gCADY,MAAM,UAGjB;AAED,6BAA6B;AAC7B,kCADY,OAAO,WAGlB;AAED,4BAA4B;AAC5B,iCADY,MAAM,UAGjB;AAID;;;;;;GAMG;AACH,kCALW,MAAM,SACN,MAAM,sBAEJ,OAAO,CAAC,MAAM,CAAC,CAc3B;AAID,qCAAqC;AACrC,mCADY,MAAM,GAAG,MAAM,sBAW1B"}
|
|
@@ -1,7 +1,41 @@
|
|
|
1
|
-
|
|
2
|
-
export function
|
|
3
|
-
|
|
4
|
-
export function
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
/** @param {string} str */
|
|
2
|
+
export function trimWhitespace(str: string): string;
|
|
3
|
+
/** @param {string} str */
|
|
4
|
+
export function collapseWhitespaceAll(str: string): string;
|
|
5
|
+
/**
|
|
6
|
+
* @param {string} str
|
|
7
|
+
* @param {{preserveLineBreaks?: boolean | undefined, conservativeCollapse?: boolean | undefined}} options
|
|
8
|
+
* @param {boolean} trimLeft
|
|
9
|
+
* @param {boolean} trimRight
|
|
10
|
+
* @param {boolean} [collapseAll]
|
|
11
|
+
*/
|
|
12
|
+
export function collapseWhitespace(str: string, options: {
|
|
13
|
+
preserveLineBreaks?: boolean | undefined;
|
|
14
|
+
conservativeCollapse?: boolean | undefined;
|
|
15
|
+
}, trimLeft: boolean, trimRight: boolean, collapseAll?: boolean): string;
|
|
16
|
+
/**
|
|
17
|
+
* @param {string} str
|
|
18
|
+
* @param {string} prevTag
|
|
19
|
+
* @param {string} nextTag
|
|
20
|
+
* @param {Array<{name: string, value?: string}>} prevAttrs
|
|
21
|
+
* @param {Array<{name: string, value?: string}>} nextAttrs
|
|
22
|
+
* @param {{preserveLineBreaks?: boolean, conservativeCollapse?: boolean, collapseInlineTagWhitespace?: boolean}} options
|
|
23
|
+
* @param {Set<string>} inlineElements
|
|
24
|
+
* @param {Set<string>} inlineTextSet
|
|
25
|
+
*/
|
|
26
|
+
export function collapseWhitespaceSmart(str: string, prevTag: string, nextTag: string, prevAttrs: Array<{
|
|
27
|
+
name: string;
|
|
28
|
+
value?: string;
|
|
29
|
+
}>, nextAttrs: Array<{
|
|
30
|
+
name: string;
|
|
31
|
+
value?: string;
|
|
32
|
+
}>, options: {
|
|
33
|
+
preserveLineBreaks?: boolean;
|
|
34
|
+
conservativeCollapse?: boolean;
|
|
35
|
+
collapseInlineTagWhitespace?: boolean;
|
|
36
|
+
}, inlineElements: Set<string>, inlineTextSet: Set<string>): string;
|
|
37
|
+
/** @param {string} tag */
|
|
38
|
+
export function canCollapseWhitespace(tag: string): boolean;
|
|
39
|
+
/** @param {string} tag */
|
|
40
|
+
export function canTrimWhitespace(tag: string): boolean;
|
|
7
41
|
//# sourceMappingURL=whitespace.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whitespace.d.ts","sourceRoot":"","sources":["../../../src/lib/whitespace.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"whitespace.d.ts","sourceRoot":"","sources":["../../../src/lib/whitespace.js"],"names":[],"mappings":"AAeA,0BAA0B;AAC1B,oCADY,MAAM,UAQjB;AAID,0BAA0B;AAC1B,2CADY,MAAM,UAiBjB;AAID;;;;;;GAMG;AACH,wCANW,MAAM,WACN;IAAC,kBAAkB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAAC,oBAAoB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAC,YACtF,OAAO,aACP,OAAO,gBACP,OAAO,UAuFjB;AAID;;;;;;;;;GASG;AACH,6CATW,MAAM,WACN,MAAM,WACN,MAAM,aACN,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC,aACrC,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAC,CAAC,WACrC;IAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAAC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAAC,2BAA2B,CAAC,EAAE,OAAO,CAAA;CAAC,kBACrG,GAAG,CAAC,MAAM,CAAC,iBACX,GAAG,CAAC,MAAM,CAAC,UA0ErB;AAOD,0BAA0B;AAC1B,2CADY,MAAM,WAGjB;AAED,0BAA0B;AAC1B,uCADY,MAAM,WAGjB"}
|
|
@@ -1,10 +1,24 @@
|
|
|
1
1
|
export default TokenChain;
|
|
2
2
|
declare class TokenChain {
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
/** @type {Map<string, {arrays: string[][], processed: number}>} */
|
|
4
|
+
map: Map<string, {
|
|
5
|
+
arrays: string[][];
|
|
6
|
+
processed: number;
|
|
7
|
+
}>;
|
|
8
|
+
/** @param {string[]} tokens */
|
|
9
|
+
add(tokens: string[]): void;
|
|
5
10
|
createSorter(): Sorter;
|
|
6
11
|
}
|
|
7
12
|
declare class Sorter {
|
|
8
|
-
|
|
13
|
+
/** @type {string[]} */
|
|
14
|
+
keys: string[];
|
|
15
|
+
/** @type {Map<string, Sorter>} */
|
|
16
|
+
sorterMap: Map<string, Sorter>;
|
|
17
|
+
/**
|
|
18
|
+
* @param {string[]} tokens
|
|
19
|
+
* @param {number} fromIndex
|
|
20
|
+
* @returns {string[]}
|
|
21
|
+
*/
|
|
22
|
+
sort(tokens: string[], fromIndex?: number): string[];
|
|
9
23
|
}
|
|
10
24
|
//# sourceMappingURL=tokenchain.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tokenchain.d.ts","sourceRoot":"","sources":["../../src/tokenchain.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"tokenchain.d.ts","sourceRoot":"","sources":["../../src/tokenchain.js"],"names":[],"mappings":";AA+CA;IAEI,mEAAmE;IACnE,KADW,GAAG,CAAC,MAAM,EAAE;QAAC,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAC,CAAC,CAC3C;IAGtB,+BAA+B;IAC/B,YADY,MAAM,EAAE,QAUnB;IAED,uBA+CC;CACF;AAjHD;IAEI,uBAAuB;IACvB,MADW,MAAM,EAAE,CACL;IACd,kCAAkC;IAClC,WADW,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CACJ;IAG5B;;;;OAIG;IACH,aAJW,MAAM,EAAE,cACR,MAAM,GACJ,MAAM,EAAE,CAiCpB;CACF"}
|
package/package.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
},
|
|
7
7
|
"bugs": "https://github.com/j9t/html-minifier-next/issues",
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"commander": "^
|
|
9
|
+
"commander": "^15.0.0",
|
|
10
10
|
"entities": "^8.0.0",
|
|
11
11
|
"lightningcss": "^1.32.0",
|
|
12
12
|
"svgo": "^4.0.1",
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
"@rollup/plugin-json": "^6.1.0",
|
|
21
21
|
"@rollup/plugin-node-resolve": "^16.0.3",
|
|
22
22
|
"@swc/core": "^1.15.40",
|
|
23
|
+
"@types/node": "^25.9.1",
|
|
23
24
|
"eslint": "^10.4.0",
|
|
24
25
|
"rollup": "^4.60.4",
|
|
25
26
|
"rollup-plugin-polyfill-node": "^0.13.0",
|
|
@@ -97,5 +98,5 @@
|
|
|
97
98
|
},
|
|
98
99
|
"type": "module",
|
|
99
100
|
"types": "./dist/types/htmlminifier.d.ts",
|
|
100
|
-
"version": "6.2.
|
|
101
|
+
"version": "6.2.9"
|
|
101
102
|
}
|