postcss-minify-params 9.0.4 → 9.0.6
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/package.json +3 -3
- package/src/lib/media.js +1 -1
- package/src/lib/transform.js +44 -4
- package/src/lib/whitespace.js +1 -1
- package/types/lib/token-utils.d.ts +7 -0
- package/types/lib/token-utils.d.ts.map +1 -1
- package/types/lib/tokenUtils.d.ts +37 -0
- package/types/lib/tokenUtils.d.ts.map +1 -0
- package/types/lib/transform.d.ts.map +1 -1
- /package/src/lib/{token-utils.js → tokenUtils.js} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "postcss-minify-params",
|
|
3
|
-
"version": "9.0.
|
|
3
|
+
"version": "9.0.6",
|
|
4
4
|
"description": "Minify at-rule params with PostCSS",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -41,8 +41,8 @@
|
|
|
41
41
|
},
|
|
42
42
|
"homepage": "https://github.com/cssnano/cssnano",
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"browserslist": "^4.29.
|
|
45
|
-
"cssnano-utils": "^8.0.
|
|
44
|
+
"browserslist": "^4.29.3",
|
|
45
|
+
"cssnano-utils": "^8.0.2"
|
|
46
46
|
},
|
|
47
47
|
"engines": {
|
|
48
48
|
"node": "^22.22.3 || ^24.15.0 || >=26.0"
|
package/src/lib/media.js
CHANGED
package/src/lib/transform.js
CHANGED
|
@@ -5,9 +5,15 @@ import {
|
|
|
5
5
|
minifyWhitespace,
|
|
6
6
|
parentIndexes,
|
|
7
7
|
} from './whitespace.js';
|
|
8
|
-
import { serializeSegments
|
|
8
|
+
import { serializeSegments } from './tokenUtils.js';
|
|
9
9
|
|
|
10
|
-
const {
|
|
10
|
+
const {
|
|
11
|
+
TokenType,
|
|
12
|
+
balancedTokens,
|
|
13
|
+
endsWithEscapingBackslash,
|
|
14
|
+
tokenEnd,
|
|
15
|
+
tokens: tokenizeValue,
|
|
16
|
+
} = cssnanoUtils;
|
|
11
17
|
|
|
12
18
|
/**
|
|
13
19
|
* @param {boolean} legacy
|
|
@@ -39,7 +45,7 @@ export default function transform(legacy, rule) {
|
|
|
39
45
|
if (mediaIsUnconditional) {
|
|
40
46
|
rule.params = '';
|
|
41
47
|
if (rule.raws.params?.raw) rule.raws.params = { raw: '', value: '' };
|
|
42
|
-
rule
|
|
48
|
+
updateAfterName(rule);
|
|
43
49
|
return;
|
|
44
50
|
}
|
|
45
51
|
minifyWhitespace(structure, parents, changes);
|
|
@@ -59,5 +65,39 @@ export default function transform(legacy, rule) {
|
|
|
59
65
|
rule.raws.params = { raw: rule.params, value: rule.params };
|
|
60
66
|
}
|
|
61
67
|
|
|
62
|
-
|
|
68
|
+
updateAfterName(rule);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Strip whitespace after @media or @supports when parameters begin with (.
|
|
73
|
+
*
|
|
74
|
+
* @param {import('postcss').AtRule} rule
|
|
75
|
+
* @return {void}
|
|
76
|
+
*/
|
|
77
|
+
function updateAfterName(rule) {
|
|
78
|
+
if (!rule.params.length) {
|
|
79
|
+
rule.raws.afterName = '';
|
|
80
|
+
} else if (
|
|
81
|
+
rule.params.startsWith('(') &&
|
|
82
|
+
!endsWithEscapingBackslash(rule.name)
|
|
83
|
+
) {
|
|
84
|
+
rule.raws.afterName = stripWhitespacePreservingComments(
|
|
85
|
+
rule.raws.afterName
|
|
86
|
+
);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* @param {string | undefined} raw
|
|
92
|
+
* @return {string}
|
|
93
|
+
*/
|
|
94
|
+
function stripWhitespacePreservingComments(raw) {
|
|
95
|
+
if (!raw?.includes('/*')) return '';
|
|
96
|
+
let result = '';
|
|
97
|
+
for (const [type, tokenRaw] of tokenizeValue(raw)) {
|
|
98
|
+
if (type !== TokenType.Whitespace) {
|
|
99
|
+
result += tokenRaw;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return result;
|
|
63
103
|
}
|
package/src/lib/whitespace.js
CHANGED
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
TokenType,
|
|
13
13
|
tokenEnd,
|
|
14
14
|
whitespaceInsensitiveFunctions,
|
|
15
|
-
} from './
|
|
15
|
+
} from './tokenUtils.js';
|
|
16
16
|
|
|
17
17
|
const { numeric } = cssnanoUtils;
|
|
18
18
|
/** @typedef {Exclude<ReturnType<typeof cssnanoUtils.balancedTokens>, undefined>['tokens']} Tokens */
|
|
@@ -5,6 +5,13 @@ declare const tokenEnd: typeof cssnanoUtils.tokenEnd;
|
|
|
5
5
|
export type Tokens = Exclude<ReturnType<typeof cssnanoUtils.balancedTokens>, undefined>['tokens'];
|
|
6
6
|
/** @typedef {Exclude<ReturnType<typeof cssnanoUtils.balancedTokens>, undefined>['tokens']} Tokens */
|
|
7
7
|
export { TokenType, decoded, tokenEnd };
|
|
8
|
+
/**
|
|
9
|
+
* Reports whether a value ends in a backslash that begins an escape
|
|
10
|
+
* sequence, as opposed to a backslash that is itself escaped.
|
|
11
|
+
* @param {string} value
|
|
12
|
+
* @return {boolean}
|
|
13
|
+
*/
|
|
14
|
+
export declare function endsWithEscapingBackslash(value: string): boolean;
|
|
8
15
|
export declare const openingTypes: Set<import("@csstools/css-tokenizer").TokenType>;
|
|
9
16
|
export declare const closingTypes: Set<import("@csstools/css-tokenizer").TokenType>;
|
|
10
17
|
export declare const calcProductEndTypes: Set<import("@csstools/css-tokenizer").TokenType>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token-utils.d.ts","sourceRoot":"","sources":["../../src/lib/token-utils.js"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,QAAA,MAAQ,SAAS,oDAAiB,CAAC;AACnC,QAAA,MAAM,OAAO,EAAc,OAAO,YAAY,CAAC,OAE9C,CAAC;AACF,QAAA,MAAM,QAAQ,EAAc,OAAO,YAAY,CAAC,QAE/C,CAAC;AAEE,YAAwF,MAAM,GAApF,OAAO,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAQ;AAAlG,qGAAqG;AAErG,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAExC,eAAO,MAAM,YAAY,kDAKvB,CAAC;AACH,eAAO,MAAM,YAAY,kDAIvB,CAAC;AACH,eAAO,MAAM,mBAAmB,kDAM9B,CAAC;AACH,eAAO,MAAM,qBAAqB,kDAOhC,CAAC;AACH,eAAO,MAAM,aAAa,aAA6B,CAAC;AACxD,eAAO,MAAM,8BAA8B,aAAwB,CAAC;AACpE,eAAO,MAAM,mBAAmB,aAO9B,CAAC;AA+BH;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAJrB,MAIqB,EAAE,KAAK,EAH5B,MAG4B,GAF3B,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAcvC;AAED,wFAAwF;AACxF,wBAAgB,gBAAgB,CAAC,KAAK,EAD1B,MAC0B,EAAE,KAAK,EADX,MACW,EAAE,IAAI,EADK,MACL,GAD2B,MAAM,CAWnF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAL7B,MAK6B,EAAE,QAAQ,EAJvC;IAAC,KAAK,EAAC,MAAM,CAAC;IAAA,GAAG,EAAC,MAAM,CAAA;CAAC,EAIc,EAAE,KAAK,EAH9C;IAAC,KAAK,EAAC,MAAM,CAAC;IAAA,GAAG,EAAC,MAAM,CAAC;IAAA,IAAI,EAAC,MAAM,CAAA;CAAC,EAGS,GAF7C,MAAM,EAAE,CA+CnB"}
|
|
1
|
+
{"version":3,"file":"token-utils.d.ts","sourceRoot":"","sources":["../../src/lib/token-utils.js"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,QAAA,MAAQ,SAAS,oDAAiB,CAAC;AACnC,QAAA,MAAM,OAAO,EAAc,OAAO,YAAY,CAAC,OAE9C,CAAC;AACF,QAAA,MAAM,QAAQ,EAAc,OAAO,YAAY,CAAC,QAE/C,CAAC;AAEE,YAAwF,MAAM,GAApF,OAAO,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAQ;AAAlG,qGAAqG;AAErG,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAExC;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAHpC,MAGoC,GAFnC,OAAO,CAUlB;AAED,eAAO,MAAM,YAAY,kDAKvB,CAAC;AACH,eAAO,MAAM,YAAY,kDAIvB,CAAC;AACH,eAAO,MAAM,mBAAmB,kDAM9B,CAAC;AACH,eAAO,MAAM,qBAAqB,kDAOhC,CAAC;AACH,eAAO,MAAM,aAAa,aAA6B,CAAC;AACxD,eAAO,MAAM,8BAA8B,aAAwB,CAAC;AACpE,eAAO,MAAM,mBAAmB,aAO9B,CAAC;AA+BH;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAJrB,MAIqB,EAAE,KAAK,EAH5B,MAG4B,GAF3B,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAcvC;AAED,wFAAwF;AACxF,wBAAgB,gBAAgB,CAAC,KAAK,EAD1B,MAC0B,EAAE,KAAK,EADX,MACW,EAAE,IAAI,EADK,MACL,GAD2B,MAAM,CAWnF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAL7B,MAK6B,EAAE,QAAQ,EAJvC;IAAC,KAAK,EAAC,MAAM,CAAC;IAAA,GAAG,EAAC,MAAM,CAAA;CAAC,EAIc,EAAE,KAAK,EAH9C;IAAC,KAAK,EAAC,MAAM,CAAC;IAAA,GAAG,EAAC,MAAM,CAAC;IAAA,IAAI,EAAC,MAAM,CAAA;CAAC,EAGS,GAF7C,MAAM,EAAE,CA+CnB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import cssnanoUtils from 'cssnano-utils';
|
|
2
|
+
declare const TokenType: typeof import("@csstools/css-tokenizer").TokenType;
|
|
3
|
+
declare const decoded: typeof cssnanoUtils.decoded;
|
|
4
|
+
declare const tokenEnd: typeof cssnanoUtils.tokenEnd;
|
|
5
|
+
export type Tokens = Exclude<ReturnType<typeof cssnanoUtils.balancedTokens>, undefined>['tokens'];
|
|
6
|
+
/** @typedef {Exclude<ReturnType<typeof cssnanoUtils.balancedTokens>, undefined>['tokens']} Tokens */
|
|
7
|
+
export { TokenType, decoded, tokenEnd };
|
|
8
|
+
export declare const openingTypes: Set<import("@csstools/css-tokenizer").TokenType>;
|
|
9
|
+
export declare const closingTypes: Set<import("@csstools/css-tokenizer").TokenType>;
|
|
10
|
+
export declare const calcProductEndTypes: Set<import("@csstools/css-tokenizer").TokenType>;
|
|
11
|
+
export declare const calcProductStartTypes: Set<import("@csstools/css-tokenizer").TokenType>;
|
|
12
|
+
export declare const mathFunctions: Set<string>;
|
|
13
|
+
export declare const whitespaceInsensitiveFunctions: Set<string>;
|
|
14
|
+
export declare const aspectRatioFeatures: Set<string>;
|
|
15
|
+
/**
|
|
16
|
+
* @param {string} left
|
|
17
|
+
* @param {string} right
|
|
18
|
+
* @return {[string, string] | undefined}
|
|
19
|
+
*/
|
|
20
|
+
export declare function aspectRatio(left: string, right: string): [string, string] | undefined;
|
|
21
|
+
/** @param {Tokens} input @param {number} index @param {number} step @return {number} */
|
|
22
|
+
export declare function significantIndex(input: Tokens, index: number, step: number): number;
|
|
23
|
+
/**
|
|
24
|
+
* @param {string} source
|
|
25
|
+
* @param {{start:number,end:number}[]} segments
|
|
26
|
+
* @param {{start:number,end:number,text:string}[]} edits
|
|
27
|
+
* @return {string[]}
|
|
28
|
+
*/
|
|
29
|
+
export declare function serializeSegments(source: string, segments: {
|
|
30
|
+
start: number;
|
|
31
|
+
end: number;
|
|
32
|
+
}[], edits: {
|
|
33
|
+
start: number;
|
|
34
|
+
end: number;
|
|
35
|
+
text: string;
|
|
36
|
+
}[]): string[];
|
|
37
|
+
//# sourceMappingURL=tokenUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenUtils.d.ts","sourceRoot":"","sources":["../../src/lib/tokenUtils.js"],"names":[],"mappings":"AAAA,OAAO,YAAY,MAAM,eAAe,CAAC;AAEzC,QAAA,MAAQ,SAAS,oDAAiB,CAAC;AACnC,QAAA,MAAM,OAAO,EAAc,OAAO,YAAY,CAAC,OAE9C,CAAC;AACF,QAAA,MAAM,QAAQ,EAAc,OAAO,YAAY,CAAC,QAE/C,CAAC;AAEE,YAAwF,MAAM,GAApF,OAAO,CAAC,UAAU,CAAC,OAAO,YAAY,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAQ;AAAlG,qGAAqG;AAErG,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AAExC,eAAO,MAAM,YAAY,kDAKvB,CAAC;AACH,eAAO,MAAM,YAAY,kDAIvB,CAAC;AACH,eAAO,MAAM,mBAAmB,kDAM9B,CAAC;AACH,eAAO,MAAM,qBAAqB,kDAOhC,CAAC;AACH,eAAO,MAAM,aAAa,aAA6B,CAAC;AACxD,eAAO,MAAM,8BAA8B,aAAwB,CAAC;AACpE,eAAO,MAAM,mBAAmB,aAO9B,CAAC;AA+BH;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAJrB,MAIqB,EAAE,KAAK,EAH5B,MAG4B,GAF3B,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAcvC;AAED,wFAAwF;AACxF,wBAAgB,gBAAgB,CAAC,KAAK,EAD1B,MAC0B,EAAE,KAAK,EADX,MACW,EAAE,IAAI,EADK,MACL,GAD2B,MAAM,CAWnF;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAL7B,MAK6B,EAAE,QAAQ,EAJvC;IAAC,KAAK,EAAC,MAAM,CAAC;IAAA,GAAG,EAAC,MAAM,CAAA;CAAC,EAIc,EAAE,KAAK,EAH9C;IAAC,KAAK,EAAC,MAAM,CAAC;IAAA,GAAG,EAAC,MAAM,CAAC;IAAA,IAAI,EAAC,MAAM,CAAA;CAAC,EAGS,GAF7C,MAAM,EAAE,CA+CnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/lib/transform.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../src/lib/transform.js"],"names":[],"mappings":"AAiBA;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,MAAM,EAJ7B,OAI6B,EAAE,IAAI,EAHnC,OAAO,SAAS,EAAE,MAGiB,GAFlC,IAAI,CAgDf"}
|
|
File without changes
|