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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "postcss-minify-params",
3
- "version": "9.0.4",
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.1",
45
- "cssnano-utils": "^8.0.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
@@ -3,7 +3,7 @@ import {
3
3
  significantIndex,
4
4
  TokenType,
5
5
  tokenEnd,
6
- } from './token-utils.js';
6
+ } from './tokenUtils.js';
7
7
 
8
8
  /** @import cssnanoUtils from 'cssnano-utils' */
9
9
  /** @typedef {Exclude<ReturnType<typeof cssnanoUtils.balancedTokens>, undefined>['tokens']} Tokens */
@@ -5,9 +5,15 @@ import {
5
5
  minifyWhitespace,
6
6
  parentIndexes,
7
7
  } from './whitespace.js';
8
- import { serializeSegments, tokenEnd } from './token-utils.js';
8
+ import { serializeSegments } from './tokenUtils.js';
9
9
 
10
- const { balancedTokens } = cssnanoUtils;
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.raws.afterName = '';
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
- if (!rule.params.length) rule.raws.afterName = '';
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
  }
@@ -12,7 +12,7 @@ import {
12
12
  TokenType,
13
13
  tokenEnd,
14
14
  whitespaceInsensitiveFunctions,
15
- } from './token-utils.js';
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":"AAWA;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,MAAM,EAJ7B,OAI6B,EAAE,IAAI,EAHnC,OAAO,SAAS,EAAE,MAGiB,GAFlC,IAAI,CAgDf"}
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