postcss-merge-rules 8.0.5 → 9.0.0
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 +8 -13
- package/src/index.js +12 -14
- package/src/lib/computeBrowsersToSupport.js +10 -12
- package/src/lib/ensureCompatibility.js +4 -4
- package/src/lib/getBrowsersForWebBuild.js +2 -4
- package/src/lib/propertyRelations.js +2 -5
- package/types/index.d.ts +15 -2
- package/types/index.d.ts.map +1 -1
- package/types/lib/computeBrowsersToSupport.d.ts +2 -2
- package/types/lib/computeBrowsersToSupport.d.ts.map +1 -1
- package/types/lib/ensureCompatibility.d.ts +54 -59
- package/types/lib/ensureCompatibility.d.ts.map +1 -1
- package/types/lib/getBrowsersForWebBuild.d.ts +2 -2
- package/types/lib/propertyRelations.d.ts +1 -4
- package/types/lib/propertyRelations.d.ts.map +1 -1
package/package.json
CHANGED
|
@@ -1,18 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "postcss-merge-rules",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "9.0.0",
|
|
4
4
|
"description": "Merge CSS rules with PostCSS.",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
7
7
|
"types": "./types/index.d.ts",
|
|
8
8
|
"default": "./src/index.js"
|
|
9
|
-
}
|
|
10
|
-
"./src": "./src/index.js",
|
|
11
|
-
"./src/index": "./src/index.js",
|
|
12
|
-
"./src/index.js": "./src/index.js",
|
|
13
|
-
"./src/lib/ensureCompatibility.js": "./src/lib/ensureCompatibility.js",
|
|
14
|
-
"./src/lib/ensureCompatibility": "./src/lib/ensureCompatibility.js",
|
|
15
|
-
"./package.json": "./package.json"
|
|
9
|
+
}
|
|
16
10
|
},
|
|
17
11
|
"imports": {
|
|
18
12
|
"#getBrowsersList": {
|
|
@@ -45,24 +39,25 @@
|
|
|
45
39
|
"dependencies": {
|
|
46
40
|
"browserslist": "^4.28.8",
|
|
47
41
|
"caniuse-api": "^4.0.0",
|
|
48
|
-
"
|
|
49
|
-
"
|
|
42
|
+
"cssnano-utils": "^7.0.0",
|
|
43
|
+
"postcss-selector-parser": "^7.1.5"
|
|
50
44
|
},
|
|
51
45
|
"bugs": {
|
|
52
46
|
"url": "https://github.com/cssnano/cssnano/issues"
|
|
53
47
|
},
|
|
54
48
|
"engines": {
|
|
55
|
-
"node": "^22.
|
|
49
|
+
"node": "^22.22.3 || ^24.15.0 || >=26.0"
|
|
56
50
|
},
|
|
57
51
|
"devDependencies": {
|
|
58
52
|
"@webref/css": "8.7.2",
|
|
59
53
|
"postcss": "^8.5.26",
|
|
60
|
-
"postcss-
|
|
61
|
-
"postcss-
|
|
54
|
+
"postcss-discard-comments": "^9.0.0",
|
|
55
|
+
"postcss-simple-vars": "^7.0.1"
|
|
62
56
|
},
|
|
63
57
|
"peerDependencies": {
|
|
64
58
|
"postcss": "^8.5.26"
|
|
65
59
|
},
|
|
60
|
+
"type": "module",
|
|
66
61
|
"scripts": {
|
|
67
62
|
"acquire": "node ./script/acquire.mjs",
|
|
68
63
|
"test": "node --test"
|
package/src/index.js
CHANGED
|
@@ -1,16 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
/** @import browserslist from 'browserslist' */
|
|
6
|
-
|
|
7
|
-
const { sameParent } = require('cssnano-utils');
|
|
8
|
-
const {
|
|
1
|
+
import getBrowsersList from '#getBrowsersList';
|
|
2
|
+
import cssnanoUtils from 'cssnano-utils';
|
|
3
|
+
import {
|
|
9
4
|
ensureCompatibility,
|
|
10
5
|
sameVendor,
|
|
11
6
|
noVendor,
|
|
12
|
-
}
|
|
13
|
-
|
|
7
|
+
} from './lib/ensureCompatibility.js';
|
|
8
|
+
import { isConflictingProp } from './lib/propertyRelations.js';
|
|
9
|
+
|
|
10
|
+
/** @import browserslist from 'browserslist' */
|
|
11
|
+
const { sameParent } = cssnanoUtils;
|
|
14
12
|
/** @import {Declaration, Rule} from 'postcss' */
|
|
15
13
|
/**
|
|
16
14
|
* @param {Declaration} a
|
|
@@ -716,8 +714,8 @@ function pluginCreator(opts = {}) {
|
|
|
716
714
|
},
|
|
717
715
|
};
|
|
718
716
|
}
|
|
719
|
-
|
|
717
|
+
/** @type {true} */
|
|
720
718
|
pluginCreator.postcss = true;
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
719
|
+
const moduleExports = pluginCreator;
|
|
720
|
+
|
|
721
|
+
export { moduleExports as default, moduleExports as 'module.exports' };
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
import { fileURLToPath } from 'node:url';
|
|
2
|
+
import browserslist from 'browserslist';
|
|
3
|
+
import nodepath from 'node:path';
|
|
2
4
|
|
|
3
|
-
const
|
|
4
|
-
const { dirname } = require('node:path');
|
|
5
|
+
const { dirname } = nodepath;
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
*
|
|
@@ -12,16 +13,13 @@ const { dirname } = require('node:path');
|
|
|
12
13
|
* @param {browserslist.Options["env"]} [env]
|
|
13
14
|
* @returns {string[]}
|
|
14
15
|
*/
|
|
15
|
-
|
|
16
|
-
options,
|
|
17
|
-
stats,
|
|
18
|
-
from,
|
|
19
|
-
file,
|
|
20
|
-
env
|
|
21
|
-
) {
|
|
16
|
+
function computeBrowsersToSupport(options, stats, from, file, env) {
|
|
22
17
|
return browserslist(options.overrideBrowserslist, {
|
|
23
18
|
stats: options.stats || stats,
|
|
24
|
-
path:
|
|
19
|
+
path:
|
|
20
|
+
options.path || dirname(from || file || fileURLToPath(import.meta.url)),
|
|
25
21
|
env: options.env || env,
|
|
26
22
|
});
|
|
27
|
-
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export default computeBrowsersToSupport;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const selectorParser = require('postcss-selector-parser');
|
|
1
|
+
import caniuseApi from 'caniuse-api';
|
|
2
|
+
import selectorParser from 'postcss-selector-parser';
|
|
4
3
|
|
|
4
|
+
const { isSupported } = caniuseApi;
|
|
5
5
|
const simpleSelectorRe = /^#?[-._a-z0-9 ]+$/i;
|
|
6
6
|
|
|
7
7
|
const cssSel2 = 'css-sel2';
|
|
@@ -246,4 +246,4 @@ function ensureCompatibility(selectors, browsers, compatibilityCache) {
|
|
|
246
246
|
});
|
|
247
247
|
}
|
|
248
248
|
|
|
249
|
-
|
|
249
|
+
export { sameVendor, noVendor, pseudoElements, ensureCompatibility };
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
'
|
|
2
|
-
|
|
3
|
-
const data = require('../data/propertyGroups.json');
|
|
1
|
+
import data from '../data/propertyGroups.json' with { type: 'json' };
|
|
4
2
|
|
|
5
3
|
const vendorPrefixRegex = /^-\w+-/;
|
|
6
4
|
/**
|
|
@@ -167,5 +165,4 @@ function isConflictingProp(propA, propB) {
|
|
|
167
165
|
}
|
|
168
166
|
return false;
|
|
169
167
|
}
|
|
170
|
-
|
|
171
|
-
module.exports = { isConflictingProp };
|
|
168
|
+
export { isConflictingProp };
|
package/types/index.d.ts
CHANGED
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
declare const _exports: import("postcss").PluginCreator<Options>;
|
|
2
|
-
export = _exports;
|
|
3
1
|
import type browserslist from 'browserslist';
|
|
4
2
|
import type { Declaration } from 'postcss';
|
|
5
3
|
export type RuleMeta = {
|
|
@@ -21,4 +19,19 @@ export type AutoprefixerOptions = {
|
|
|
21
19
|
};
|
|
22
20
|
export type BrowserslistOptions = Pick<browserslist.Options, 'stats' | 'path' | 'env'>;
|
|
23
21
|
export type Options = AutoprefixerOptions & BrowserslistOptions;
|
|
22
|
+
/**
|
|
23
|
+
* @typedef {{ overrideBrowserslist?: string | string[] }} AutoprefixerOptions
|
|
24
|
+
* @typedef {Pick<browserslist.Options, 'stats' | 'path' | 'env'>} BrowserslistOptions
|
|
25
|
+
* @typedef {AutoprefixerOptions & BrowserslistOptions} Options
|
|
26
|
+
*/
|
|
27
|
+
/**
|
|
28
|
+
* @param {Options} opts
|
|
29
|
+
* @return {import('postcss').Plugin}
|
|
30
|
+
*/
|
|
31
|
+
declare function pluginCreator(opts?: Options): import('postcss').Plugin;
|
|
32
|
+
declare namespace pluginCreator {
|
|
33
|
+
var postcss: true;
|
|
34
|
+
}
|
|
35
|
+
declare const moduleExports: typeof pluginCreator;
|
|
36
|
+
export { moduleExports as default, moduleExports as 'module.exports' };
|
|
24
37
|
//# sourceMappingURL=index.d.ts.map
|
package/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.js"],"names":[],"mappings":"AASI,OAAQ,KAAA,YAAY,MAAM,cAAc,CAAA;AAExC,OAAQ,KAAA,EAAC,WAAW,EAAO,MAAM,SAAS,CAAA;AAmD3C,YAAkB,QAAQ,GAC1B;;;;IAAqB,SAAS,EAAnB,MAAM,EAAE,CACnB;;;;IAA0B,YAAY,EAA3B,WAAW,EAAE,CACxB;;;;IAAoB,KAAK,EAAd,OAAO,CACpB;CAAA,CAAA;AA8lBE,YAAwD,mBAAmB,GAAjE;IAAE,oBAAoB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAAE,CAAqB;AAC3E,YAAgE,mBAAmB,GAAzE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC,CAAqB;AACnF,YAAqD,OAAO,GAAlD,mBAAmB,GAAG,mBAAmB,CAAS;AAH/D;;;;GAIG;AAEH;;;GAGG;AACH,iBAAS,aAAa,CAAC,IAAI,GAHhB,OAGqB,GAFpB,OAAO,SAAS,EAAE,MAAM,CAoCnC;kBAlCQ,aAAa;iBAmCX,IAAI;;AAEf,QAAA,MAAM,aAAa,sBAAgB,CAAC;AAEpC,OAAO,EAAE,aAAa,IAAI,OAAO,EAAE,aAAa,IAAI,gBAAgB,EAAE,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import browserslist from 'browserslist';
|
|
2
2
|
/**
|
|
3
3
|
*
|
|
4
4
|
* @param {{overrideBrowserslist?: string | string[] | undefined, stats?: browserslist.Options["stats"], path?: browserslist.Options["path"], env?: browserslist.Options["env"]}} options
|
|
@@ -14,5 +14,5 @@ declare function computeBrowsersToSupport(options: {
|
|
|
14
14
|
path?: browserslist.Options["path"];
|
|
15
15
|
env?: browserslist.Options["env"];
|
|
16
16
|
}, stats: browserslist.Options["stats"], from: string | undefined, file?: string, env?: browserslist.Options["env"]): string[];
|
|
17
|
-
|
|
17
|
+
export default computeBrowsersToSupport;
|
|
18
18
|
//# sourceMappingURL=computeBrowsersToSupport.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computeBrowsersToSupport.d.ts","sourceRoot":"","sources":["../../src/lib/computeBrowsersToSupport.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"computeBrowsersToSupport.d.ts","sourceRoot":"","sources":["../../src/lib/computeBrowsersToSupport.js"],"names":[],"mappings":"AACA,OAAO,YAAY,MAAM,cAAc,CAAC;AAKxC;;;;;;;;GAQG;AACH,iBAAS,wBAAwB,CAAC,OAAO,EAP9B;IAAC,oBAAoB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC;IAAC,KAAK,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAAC,IAAI,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAAC,GAAG,CAAC,EAAE,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;CAOtI,EAAE,KAAK,EANrC,YAAY,CAAC,OAAO,CAAC,OAAO,CAMS,EAAE,IAAI,EAL3C,MAAM,GAAC,SAKoC,EAAE,IAAI,AAJzD,CACA,EADQ,MAIiD,EAAE,GAAG,AAH9D,CACA,EADQ,YAAY,CAAC,OAAO,CAAC,KAAK,CAG4B,GAFpD,MAAM,EAAE,CASpB;eAEc,wBAAwB"}
|
|
@@ -1,62 +1,3 @@
|
|
|
1
|
-
declare const _exports: {
|
|
2
|
-
sameVendor: typeof sameVendor;
|
|
3
|
-
noVendor: typeof noVendor;
|
|
4
|
-
pseudoElements: {
|
|
5
|
-
':active': string;
|
|
6
|
-
':after': string;
|
|
7
|
-
':any-link': string;
|
|
8
|
-
':before': string;
|
|
9
|
-
':checked': string;
|
|
10
|
-
':default': string;
|
|
11
|
-
':dir': string;
|
|
12
|
-
':disabled': string;
|
|
13
|
-
':empty': string;
|
|
14
|
-
':enabled': string;
|
|
15
|
-
':first-child': string;
|
|
16
|
-
':first-letter': string;
|
|
17
|
-
':first-line': string;
|
|
18
|
-
':first-of-type': string;
|
|
19
|
-
':focus': string;
|
|
20
|
-
':focus-within': string;
|
|
21
|
-
':focus-visible': string;
|
|
22
|
-
':has': string;
|
|
23
|
-
':hover': string;
|
|
24
|
-
':in-range': string;
|
|
25
|
-
':indeterminate': string;
|
|
26
|
-
':invalid': string;
|
|
27
|
-
':is': string;
|
|
28
|
-
':lang': string;
|
|
29
|
-
':last-child': string;
|
|
30
|
-
':last-of-type': string;
|
|
31
|
-
':link': string;
|
|
32
|
-
':matches': string;
|
|
33
|
-
':not': string;
|
|
34
|
-
':nth-child': string;
|
|
35
|
-
':nth-last-child': string;
|
|
36
|
-
':nth-last-of-type': string;
|
|
37
|
-
':nth-of-type': string;
|
|
38
|
-
':only-child': string;
|
|
39
|
-
':only-of-type': string;
|
|
40
|
-
':optional': string;
|
|
41
|
-
':out-of-range': string;
|
|
42
|
-
':placeholder-shown': string;
|
|
43
|
-
':required': string;
|
|
44
|
-
':root': string;
|
|
45
|
-
':target': string;
|
|
46
|
-
'::after': string;
|
|
47
|
-
'::backdrop': string;
|
|
48
|
-
'::before': string;
|
|
49
|
-
'::first-letter': string;
|
|
50
|
-
'::first-line': string;
|
|
51
|
-
'::marker': string;
|
|
52
|
-
'::placeholder': string;
|
|
53
|
-
'::selection': string;
|
|
54
|
-
':valid': string;
|
|
55
|
-
':visited': string;
|
|
56
|
-
};
|
|
57
|
-
ensureCompatibility: typeof ensureCompatibility;
|
|
58
|
-
};
|
|
59
|
-
export = _exports;
|
|
60
1
|
/**
|
|
61
2
|
* @param {string[]} selectorsA
|
|
62
3
|
* @param {string[]} selectorsB
|
|
@@ -68,6 +9,59 @@ declare function sameVendor(selectorsA: string[], selectorsB: string[]): boolean
|
|
|
68
9
|
* @return {boolean}
|
|
69
10
|
*/
|
|
70
11
|
declare function noVendor(selector: string): boolean;
|
|
12
|
+
declare const pseudoElements: {
|
|
13
|
+
':active': string;
|
|
14
|
+
':after': string;
|
|
15
|
+
':any-link': string;
|
|
16
|
+
':before': string;
|
|
17
|
+
':checked': string;
|
|
18
|
+
':default': string;
|
|
19
|
+
':dir': string;
|
|
20
|
+
':disabled': string;
|
|
21
|
+
':empty': string;
|
|
22
|
+
':enabled': string;
|
|
23
|
+
':first-child': string;
|
|
24
|
+
':first-letter': string;
|
|
25
|
+
':first-line': string;
|
|
26
|
+
':first-of-type': string;
|
|
27
|
+
':focus': string;
|
|
28
|
+
':focus-within': string;
|
|
29
|
+
':focus-visible': string;
|
|
30
|
+
':has': string;
|
|
31
|
+
':hover': string;
|
|
32
|
+
':in-range': string;
|
|
33
|
+
':indeterminate': string;
|
|
34
|
+
':invalid': string;
|
|
35
|
+
':is': string;
|
|
36
|
+
':lang': string;
|
|
37
|
+
':last-child': string;
|
|
38
|
+
':last-of-type': string;
|
|
39
|
+
':link': string;
|
|
40
|
+
':matches': string;
|
|
41
|
+
':not': string;
|
|
42
|
+
':nth-child': string;
|
|
43
|
+
':nth-last-child': string;
|
|
44
|
+
':nth-last-of-type': string;
|
|
45
|
+
':nth-of-type': string;
|
|
46
|
+
':only-child': string;
|
|
47
|
+
':only-of-type': string;
|
|
48
|
+
':optional': string;
|
|
49
|
+
':out-of-range': string;
|
|
50
|
+
':placeholder-shown': string;
|
|
51
|
+
':required': string;
|
|
52
|
+
':root': string;
|
|
53
|
+
':target': string;
|
|
54
|
+
'::after': string;
|
|
55
|
+
'::backdrop': string;
|
|
56
|
+
'::before': string;
|
|
57
|
+
'::first-letter': string;
|
|
58
|
+
'::first-line': string;
|
|
59
|
+
'::marker': string;
|
|
60
|
+
'::placeholder': string;
|
|
61
|
+
'::selection': string;
|
|
62
|
+
':valid': string;
|
|
63
|
+
':visited': string;
|
|
64
|
+
};
|
|
71
65
|
/**
|
|
72
66
|
* @param {string[]} selectors
|
|
73
67
|
* @param{string[]=} browsers
|
|
@@ -75,4 +69,5 @@ declare function noVendor(selector: string): boolean;
|
|
|
75
69
|
* @return {boolean}
|
|
76
70
|
*/
|
|
77
71
|
declare function ensureCompatibility(selectors: string[], browsers?: string[] | undefined, compatibilityCache?: Map<string, boolean> | undefined): boolean;
|
|
72
|
+
export { sameVendor, noVendor, pseudoElements, ensureCompatibility };
|
|
78
73
|
//# sourceMappingURL=ensureCompatibility.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ensureCompatibility.d.ts","sourceRoot":"","sources":["../../src/lib/ensureCompatibility.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ensureCompatibility.d.ts","sourceRoot":"","sources":["../../src/lib/ensureCompatibility.js"],"names":[],"mappings":"AAsCA;;;;GAIG;AACH,iBAAS,UAAU,CAAC,UAAU,EAJnB,MAAM,EAIa,EAAE,UAAU,EAH/B,MAAM,EAGyB,GAF9B,OAAO,CAWlB;AAED;;;GAGG;AACH,iBAAS,QAAQ,CAAC,QAAQ,EAHf,MAGe,GAFd,OAAO,CAIlB;AAED,QAAA,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoDnB,CAAC;AAsDF;;;;;GAKG;AACH,iBAAS,mBAAmB,CAAC,SAAS,EAL3B,MAAM,EAKqB,EAAE,QAAQ,AAJ7C,CACA,EADO,MAAM,EAAE,YAI8B,EAAE,kBAAkB,AAHjE,CACA,EADO,GAAG,CAAC,MAAM,EAAC,OAAO,CAAC,YAGuC,GAFxD,OAAO,CA0ElB;AAED,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,mBAAmB,EAAE,CAAC"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export
|
|
2
|
-
declare function
|
|
1
|
+
export default _default;
|
|
2
|
+
declare function _default(): string[];
|
|
3
3
|
//# sourceMappingURL=getBrowsersForWebBuild.d.ts.map
|
|
@@ -1,7 +1,3 @@
|
|
|
1
|
-
declare const _exports: {
|
|
2
|
-
isConflictingProp: typeof isConflictingProp;
|
|
3
|
-
};
|
|
4
|
-
export = _exports;
|
|
5
1
|
/**
|
|
6
2
|
* True if declarations of `propA` and `propB` can set the same underlying
|
|
7
3
|
* property, so that reordering them within a rule can change what the rule
|
|
@@ -14,4 +10,5 @@ export = _exports;
|
|
|
14
10
|
* @return {boolean}
|
|
15
11
|
*/
|
|
16
12
|
declare function isConflictingProp(propA: string, propB: string): boolean;
|
|
13
|
+
export { isConflictingProp };
|
|
17
14
|
//# sourceMappingURL=propertyRelations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"propertyRelations.d.ts","sourceRoot":"","sources":["../../src/lib/propertyRelations.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"propertyRelations.d.ts","sourceRoot":"","sources":["../../src/lib/propertyRelations.js"],"names":[],"mappings":"AAsHA;;;;;;;;;;GAUG;AACH,iBAAS,iBAAiB,CAAC,KAAK,EAJrB,MAIqB,EAAE,KAAK,EAH5B,MAG4B,GAF3B,OAAO,CAuClB;AACD,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
|