stylehacks 8.0.4 → 9.0.1
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 +4 -7
- package/src/dictionary/browsers.js +1 -3
- package/src/dictionary/identifiers.js +1 -3
- package/src/dictionary/postcss.js +1 -3
- package/src/dictionary/tags.js +1 -3
- package/src/exists.js +4 -5
- package/src/index.js +51 -9
- package/src/isMixin.js +4 -4
- package/src/lib/computeBrowsersToSupport.js +10 -12
- package/src/lib/getBrowsersForWebBuild.js +2 -4
- package/src/plugin.js +17 -16
- package/src/plugins/bodyEmpty.js +10 -11
- package/src/plugins/htmlCombinatorCommentBody.js +10 -11
- package/src/plugins/htmlFirstChild.js +10 -11
- package/src/plugins/important.js +5 -6
- package/src/plugins/index.js +33 -14
- package/src/plugins/leadingStar.js +6 -8
- package/src/plugins/leadingUnderscore.js +6 -8
- package/src/plugins/mediaSlash0.js +6 -7
- package/src/plugins/mediaSlash0Slash9.js +6 -7
- package/src/plugins/mediaSlash9.js +6 -7
- package/src/plugins/slash9.js +6 -7
- package/src/plugins/starHtml.js +10 -11
- package/src/plugins/trailingSlashComma.js +7 -8
- package/types/dictionary/browsers.d.ts +7 -9
- package/types/dictionary/browsers.d.ts.map +1 -1
- package/types/dictionary/identifiers.d.ts +5 -7
- package/types/dictionary/identifiers.d.ts.map +1 -1
- package/types/dictionary/postcss.d.ts +4 -6
- package/types/dictionary/postcss.d.ts.map +1 -1
- package/types/dictionary/tags.d.ts +3 -5
- package/types/dictionary/tags.d.ts.map +1 -1
- package/types/exists.d.ts +1 -1
- package/types/exists.d.ts.map +1 -1
- package/types/index.d.ts +4 -4
- package/types/index.d.ts.map +1 -1
- package/types/isMixin.d.ts +1 -1
- package/types/isMixin.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/getBrowsersForWebBuild.d.ts +2 -2
- package/types/plugin.d.ts +30 -27
- package/types/plugin.d.ts.map +1 -1
- package/types/plugins/bodyEmpty.d.ts +3 -3
- package/types/plugins/bodyEmpty.d.ts.map +1 -1
- package/types/plugins/htmlCombinatorCommentBody.d.ts +3 -3
- package/types/plugins/htmlCombinatorCommentBody.d.ts.map +1 -1
- package/types/plugins/htmlFirstChild.d.ts +3 -3
- package/types/plugins/htmlFirstChild.d.ts.map +1 -1
- package/types/plugins/important.d.ts +2 -2
- package/types/plugins/important.d.ts.map +1 -1
- package/types/plugins/index.d.ts +41 -6
- package/types/plugins/index.d.ts.map +1 -1
- package/types/plugins/leadingStar.d.ts +3 -3
- package/types/plugins/leadingStar.d.ts.map +1 -1
- package/types/plugins/leadingUnderscore.d.ts +2 -2
- package/types/plugins/leadingUnderscore.d.ts.map +1 -1
- package/types/plugins/mediaSlash0.d.ts +2 -2
- package/types/plugins/mediaSlash0.d.ts.map +1 -1
- package/types/plugins/mediaSlash0Slash9.d.ts +2 -2
- package/types/plugins/mediaSlash0Slash9.d.ts.map +1 -1
- package/types/plugins/mediaSlash9.d.ts +2 -2
- package/types/plugins/mediaSlash9.d.ts.map +1 -1
- package/types/plugins/slash9.d.ts +2 -2
- package/types/plugins/slash9.d.ts.map +1 -1
- package/types/plugins/starHtml.d.ts +3 -3
- package/types/plugins/starHtml.d.ts.map +1 -1
- package/types/plugins/trailingSlashComma.d.ts +2 -2
- package/types/plugins/trailingSlashComma.d.ts.map +1 -1
package/package.json
CHANGED
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "stylehacks",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "9.0.1",
|
|
4
4
|
"description": "Detect/remove browser hacks from CSS files.",
|
|
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/*": "./src/*.js",
|
|
12
|
-
"./src/*.js": "./src/*.js",
|
|
13
|
-
"./package.json": "./package.json"
|
|
9
|
+
}
|
|
14
10
|
},
|
|
15
11
|
"imports": {
|
|
16
12
|
"#getBrowsersList": {
|
|
@@ -52,7 +48,7 @@
|
|
|
52
48
|
"url": "https://github.com/cssnano/cssnano/issues"
|
|
53
49
|
},
|
|
54
50
|
"engines": {
|
|
55
|
-
"node": "^22.
|
|
51
|
+
"node": "^22.22.3 || ^24.15.0 || >=26.0"
|
|
56
52
|
},
|
|
57
53
|
"devDependencies": {
|
|
58
54
|
"postcss": "^8.5.26"
|
|
@@ -60,6 +56,7 @@
|
|
|
60
56
|
"peerDependencies": {
|
|
61
57
|
"postcss": "^8.5.26"
|
|
62
58
|
},
|
|
59
|
+
"type": "module",
|
|
63
60
|
"scripts": {
|
|
64
61
|
"test": "node --test"
|
|
65
62
|
}
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
'use strict';
|
|
2
1
|
const FF_2 = 'firefox 2';
|
|
3
2
|
const IE_5_5 = 'ie 5.5';
|
|
4
3
|
const IE_6 = 'ie 6';
|
|
5
4
|
const IE_7 = 'ie 7';
|
|
6
5
|
const IE_8 = 'ie 8';
|
|
7
6
|
const OP_9 = 'opera 9';
|
|
8
|
-
|
|
9
|
-
module.exports = { FF_2, IE_5_5, IE_6, IE_7, IE_8, OP_9 };
|
|
7
|
+
export { FF_2, IE_5_5, IE_6, IE_7, IE_8, OP_9 };
|
package/src/dictionary/tags.js
CHANGED
package/src/exists.js
CHANGED
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
1
|
/**
|
|
4
2
|
* @param {import('postcss-selector-parser').Selector} selector
|
|
5
3
|
* @param {number} index
|
|
6
4
|
* @param {string} value
|
|
7
5
|
* @return {boolean | undefined | ''}
|
|
8
6
|
*/
|
|
9
|
-
|
|
7
|
+
function exists(selector, index, value) {
|
|
10
8
|
const node = selector.at(index);
|
|
11
|
-
|
|
12
9
|
return node && node.value && node.value.toLowerCase() === value;
|
|
13
|
-
}
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export default exists;
|
package/src/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import getBrowsersList from '#getBrowsersList';
|
|
2
|
+
import plugins, { pluginsByNodeType } from './plugins/index.js';
|
|
3
|
+
|
|
4
|
+
/** @import {Declaration} from 'postcss'; */
|
|
4
5
|
|
|
5
6
|
/**
|
|
6
7
|
* @import browserslist from 'browserslist'
|
|
@@ -30,7 +31,7 @@ function pluginCreator(opts = {}) {
|
|
|
30
31
|
* @param {import('postcss').Root} css
|
|
31
32
|
*/
|
|
32
33
|
OnceExit(css) {
|
|
33
|
-
/** @type {import('./plugin').Plugin[]} */
|
|
34
|
+
/** @type {import('./plugin.js').Plugin[]} */
|
|
34
35
|
const processors = [];
|
|
35
36
|
for (const Plugin of plugins) {
|
|
36
37
|
const hack = new Plugin(result);
|
|
@@ -57,17 +58,58 @@ function pluginCreator(opts = {}) {
|
|
|
57
58
|
};
|
|
58
59
|
}
|
|
59
60
|
|
|
60
|
-
/** @type {
|
|
61
|
-
|
|
62
|
-
|
|
61
|
+
/** @type {WeakMap<Declaration, {before: string | undefined, prop: string, value: string, detected: boolean}>} */
|
|
62
|
+
const declarationDetections = new WeakMap();
|
|
63
|
+
|
|
64
|
+
/** @param {import('postcss').Node} node */
|
|
65
|
+
function detect(node) {
|
|
66
|
+
if (node.type === 'decl') {
|
|
67
|
+
const declaration = /** @type {Declaration} */ (node);
|
|
68
|
+
const { before } = declaration.raws;
|
|
69
|
+
const cached = declarationDetections.get(declaration);
|
|
70
|
+
|
|
71
|
+
if (
|
|
72
|
+
cached &&
|
|
73
|
+
cached.before === before &&
|
|
74
|
+
cached.prop === declaration.prop &&
|
|
75
|
+
cached.value === declaration.value
|
|
76
|
+
) {
|
|
77
|
+
return cached.detected;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
const detected = pluginsByNodeType.decl.some((Plugin) => {
|
|
81
|
+
const hack = new Plugin();
|
|
82
|
+
|
|
83
|
+
return hack.any(node);
|
|
84
|
+
});
|
|
85
|
+
declarationDetections.set(declaration, {
|
|
86
|
+
before,
|
|
87
|
+
prop: declaration.prop,
|
|
88
|
+
value: declaration.value,
|
|
89
|
+
detected,
|
|
90
|
+
});
|
|
91
|
+
|
|
92
|
+
return detected;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
const nodePlugins = pluginsByNodeType[node.type];
|
|
96
|
+
if (!nodePlugins) {
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
return nodePlugins.some((Plugin) => {
|
|
63
101
|
const hack = new Plugin();
|
|
64
102
|
|
|
65
103
|
return hack.any(node);
|
|
66
104
|
});
|
|
67
|
-
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
pluginCreator.detect = detect;
|
|
68
108
|
|
|
69
109
|
pluginCreator.postcss = true;
|
|
70
|
-
|
|
110
|
+
const moduleExports =
|
|
71
111
|
/** @type {import('postcss').PluginCreator<Options> & {detect: (node: import('postcss').Node) => boolean}} */ (
|
|
72
112
|
pluginCreator
|
|
73
113
|
);
|
|
114
|
+
|
|
115
|
+
export { moduleExports as default, moduleExports as 'module.exports' };
|
package/src/isMixin.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
'use strict';
|
|
2
1
|
/**
|
|
3
2
|
* @param {import('postcss').Rule} node
|
|
4
3
|
* @return {boolean}
|
|
5
4
|
*/
|
|
6
|
-
|
|
5
|
+
function isMixin(node) {
|
|
7
6
|
const { selector } = node;
|
|
8
7
|
|
|
9
8
|
// If the selector ends with a ':' it is likely a part of a custom mixin.
|
|
10
9
|
if (!selector || selector[selector.length - 1] === ':') {
|
|
11
10
|
return true;
|
|
12
11
|
}
|
|
13
|
-
|
|
14
12
|
return false;
|
|
15
|
-
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export default isMixin;
|
|
@@ -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;
|
package/src/plugin.js
CHANGED
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
'use strict';
|
|
2
1
|
/**
|
|
3
|
-
* @typedef {
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
2
|
+
* @typedef {import('postcss').Node & {
|
|
3
|
+
* _stylehacks: {
|
|
4
|
+
* message: string,
|
|
5
|
+
* browsers: Set<string>,
|
|
6
|
+
* identifier: string,
|
|
7
|
+
* hack: string
|
|
8
|
+
* }
|
|
9
|
+
* }} NodeWithInfo
|
|
8
10
|
*/
|
|
9
11
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
module.exports = class BasePlugin {
|
|
12
|
+
export default (class BasePlugin {
|
|
13
|
+
/**
|
|
14
|
+
* @typedef {object} Plugin
|
|
15
|
+
* @prop {Set<string>} targets
|
|
16
|
+
* @prop {Set<string>} nodeTypes
|
|
17
|
+
* @prop {(node: import('postcss').Node) => void} detectAndResolve
|
|
18
|
+
* @prop {(node: import('postcss').Node) => void} detectAndWarn
|
|
19
|
+
*/
|
|
19
20
|
/**
|
|
20
21
|
* @param {string[]} targets
|
|
21
22
|
* @param {string[]} nodeTypes
|
|
@@ -107,4 +108,4 @@ module.exports = class BasePlugin {
|
|
|
107
108
|
);
|
|
108
109
|
}
|
|
109
110
|
}
|
|
110
|
-
};
|
|
111
|
+
});
|
package/src/plugins/bodyEmpty.js
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const { BODY } = require('../dictionary/tags');
|
|
1
|
+
import parser from 'postcss-selector-parser';
|
|
2
|
+
import exists from '../exists.js';
|
|
3
|
+
import isMixin from '../isMixin.js';
|
|
4
|
+
import BasePlugin from '../plugin.js';
|
|
5
|
+
import { FF_2 } from '../dictionary/browsers.js';
|
|
6
|
+
import { SELECTOR } from '../dictionary/identifiers.js';
|
|
7
|
+
import { RULE } from '../dictionary/postcss.js';
|
|
8
|
+
import { BODY } from '../dictionary/tags.js';
|
|
10
9
|
|
|
11
|
-
|
|
10
|
+
export default (class BodyEmpty extends BasePlugin {
|
|
12
11
|
/** @param {import('postcss').Result} result */
|
|
13
12
|
constructor(result) {
|
|
14
13
|
super([FF_2], [RULE], result);
|
|
@@ -46,4 +45,4 @@ module.exports = class BodyEmpty extends BasePlugin {
|
|
|
46
45
|
});
|
|
47
46
|
};
|
|
48
47
|
}
|
|
49
|
-
};
|
|
48
|
+
});
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const { BODY, HTML } = require('../dictionary/tags');
|
|
1
|
+
import parser from 'postcss-selector-parser';
|
|
2
|
+
import exists from '../exists.js';
|
|
3
|
+
import isMixin from '../isMixin.js';
|
|
4
|
+
import BasePlugin from '../plugin.js';
|
|
5
|
+
import { IE_5_5, IE_6, IE_7 } from '../dictionary/browsers.js';
|
|
6
|
+
import { SELECTOR } from '../dictionary/identifiers.js';
|
|
7
|
+
import { RULE } from '../dictionary/postcss.js';
|
|
8
|
+
import { BODY, HTML } from '../dictionary/tags.js';
|
|
10
9
|
|
|
11
|
-
|
|
10
|
+
export default (class HtmlCombinatorCommentBody extends BasePlugin {
|
|
12
11
|
/** @param {import('postcss').Result} result */
|
|
13
12
|
constructor(result) {
|
|
14
13
|
super([IE_5_5, IE_6, IE_7], [RULE], result);
|
|
@@ -51,4 +50,4 @@ module.exports = class HtmlCombinatorCommentBody extends BasePlugin {
|
|
|
51
50
|
});
|
|
52
51
|
};
|
|
53
52
|
}
|
|
54
|
-
};
|
|
53
|
+
});
|
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const { HTML } = require('../dictionary/tags');
|
|
1
|
+
import parser from 'postcss-selector-parser';
|
|
2
|
+
import exists from '../exists.js';
|
|
3
|
+
import isMixin from '../isMixin.js';
|
|
4
|
+
import BasePlugin from '../plugin.js';
|
|
5
|
+
import { OP_9 } from '../dictionary/browsers.js';
|
|
6
|
+
import { SELECTOR } from '../dictionary/identifiers.js';
|
|
7
|
+
import { RULE } from '../dictionary/postcss.js';
|
|
8
|
+
import { HTML } from '../dictionary/tags.js';
|
|
10
9
|
|
|
11
|
-
|
|
10
|
+
export default (class HtmlFirstChild extends BasePlugin {
|
|
12
11
|
/** @param {import('postcss').Result} result */
|
|
13
12
|
constructor(result) {
|
|
14
13
|
super([OP_9], [RULE], result);
|
|
@@ -47,4 +46,4 @@ module.exports = class HtmlFirstChild extends BasePlugin {
|
|
|
47
46
|
});
|
|
48
47
|
};
|
|
49
48
|
}
|
|
50
|
-
};
|
|
49
|
+
});
|
package/src/plugins/important.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const { DECL } = require('../dictionary/postcss');
|
|
1
|
+
import BasePlugin from '../plugin.js';
|
|
2
|
+
import { IE_5_5, IE_6, IE_7 } from '../dictionary/browsers.js';
|
|
3
|
+
import { DECL } from '../dictionary/postcss.js';
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
export default (class Important extends BasePlugin {
|
|
7
6
|
/** @param {import('postcss').Result=} result */
|
|
8
7
|
constructor(result) {
|
|
9
8
|
super([IE_5_5, IE_6, IE_7], [DECL], result);
|
|
@@ -22,4 +21,4 @@ module.exports = class Important extends BasePlugin {
|
|
|
22
21
|
});
|
|
23
22
|
}
|
|
24
23
|
}
|
|
25
|
-
};
|
|
24
|
+
});
|
package/src/plugins/index.js
CHANGED
|
@@ -1,18 +1,17 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const trailingSlashComma = require('./trailingSlashComma');
|
|
1
|
+
import bodyEmpty from './bodyEmpty.js';
|
|
2
|
+
import htmlCombinatorCommentBody from './htmlCombinatorCommentBody.js';
|
|
3
|
+
import htmlFirstChild from './htmlFirstChild.js';
|
|
4
|
+
import important from './important.js';
|
|
5
|
+
import leadingStar from './leadingStar.js';
|
|
6
|
+
import leadingUnderscore from './leadingUnderscore.js';
|
|
7
|
+
import mediaSlash0 from './mediaSlash0.js';
|
|
8
|
+
import mediaSlash0Slash9 from './mediaSlash0Slash9.js';
|
|
9
|
+
import mediaSlash9 from './mediaSlash9.js';
|
|
10
|
+
import slash9 from './slash9.js';
|
|
11
|
+
import starHtml from './starHtml.js';
|
|
12
|
+
import trailingSlashComma from './trailingSlashComma.js';
|
|
14
13
|
|
|
15
|
-
|
|
14
|
+
const plugins = [
|
|
16
15
|
bodyEmpty,
|
|
17
16
|
htmlCombinatorCommentBody,
|
|
18
17
|
htmlFirstChild,
|
|
@@ -26,3 +25,23 @@ module.exports = [
|
|
|
26
25
|
starHtml,
|
|
27
26
|
trailingSlashComma,
|
|
28
27
|
];
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Detectors grouped by the PostCSS node types they accept. `detect()` uses
|
|
31
|
+
* this to avoid constructing detectors that cannot inspect the given node.
|
|
32
|
+
*
|
|
33
|
+
* @type {Record<string, (typeof plugins)[number][]>}
|
|
34
|
+
*/
|
|
35
|
+
export const pluginsByNodeType = {
|
|
36
|
+
atrule: [leadingStar, mediaSlash0, mediaSlash0Slash9, mediaSlash9],
|
|
37
|
+
decl: [important, leadingStar, leadingUnderscore, slash9],
|
|
38
|
+
rule: [
|
|
39
|
+
bodyEmpty,
|
|
40
|
+
htmlCombinatorCommentBody,
|
|
41
|
+
htmlFirstChild,
|
|
42
|
+
starHtml,
|
|
43
|
+
trailingSlashComma,
|
|
44
|
+
],
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
export default plugins;
|
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const { ATRULE, DECL } = require('../dictionary/postcss');
|
|
1
|
+
import BasePlugin from '../plugin.js';
|
|
2
|
+
import { IE_5_5, IE_6, IE_7 } from '../dictionary/browsers.js';
|
|
3
|
+
import { PROPERTY } from '../dictionary/identifiers.js';
|
|
4
|
+
import { ATRULE, DECL } from '../dictionary/postcss.js';
|
|
6
5
|
|
|
7
6
|
/** @import {Declaration, AtRule} from 'postcss'; */
|
|
8
7
|
|
|
9
8
|
const hacks = '!_$_&_*_)_=_%_+_,_._/_`_]_#_~_?_:_|'.split('_');
|
|
10
|
-
|
|
11
|
-
module.exports = class LeadingStar extends BasePlugin {
|
|
9
|
+
export default (class LeadingStar extends BasePlugin {
|
|
12
10
|
/** @param {import('postcss').Result=} result */
|
|
13
11
|
constructor(result) {
|
|
14
12
|
super([IE_5_5, IE_6, IE_7], [ATRULE, DECL], result);
|
|
@@ -54,4 +52,4 @@ module.exports = class LeadingStar extends BasePlugin {
|
|
|
54
52
|
}
|
|
55
53
|
}
|
|
56
54
|
}
|
|
57
|
-
};
|
|
55
|
+
});
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const { DECL } = require('../dictionary/postcss');
|
|
1
|
+
import BasePlugin from '../plugin.js';
|
|
2
|
+
import { IE_6 } from '../dictionary/browsers.js';
|
|
3
|
+
import { PROPERTY } from '../dictionary/identifiers.js';
|
|
4
|
+
import { DECL } from '../dictionary/postcss.js';
|
|
6
5
|
|
|
7
6
|
const vendorPrefixRegex = /^(-\w+-)/;
|
|
8
7
|
/**
|
|
@@ -17,8 +16,7 @@ function vendorPrefix(prop) {
|
|
|
17
16
|
|
|
18
17
|
return '';
|
|
19
18
|
}
|
|
20
|
-
|
|
21
|
-
module.exports = class LeadingUnderscore extends BasePlugin {
|
|
19
|
+
export default (class LeadingUnderscore extends BasePlugin {
|
|
22
20
|
/** @param {import('postcss').Result=} result */
|
|
23
21
|
constructor(result) {
|
|
24
22
|
super([IE_6], [DECL], result);
|
|
@@ -49,4 +47,4 @@ module.exports = class LeadingUnderscore extends BasePlugin {
|
|
|
49
47
|
});
|
|
50
48
|
}
|
|
51
49
|
}
|
|
52
|
-
};
|
|
50
|
+
});
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const { ATRULE } = require('../dictionary/postcss');
|
|
1
|
+
import BasePlugin from '../plugin.js';
|
|
2
|
+
import { IE_8 } from '../dictionary/browsers.js';
|
|
3
|
+
import { MEDIA_QUERY } from '../dictionary/identifiers.js';
|
|
4
|
+
import { ATRULE } from '../dictionary/postcss.js';
|
|
6
5
|
|
|
7
|
-
|
|
6
|
+
export default (class MediaSlash0 extends BasePlugin {
|
|
8
7
|
/** @param {import('postcss').Result} result */
|
|
9
8
|
constructor(result) {
|
|
10
9
|
super([IE_8], [ATRULE], result);
|
|
@@ -23,4 +22,4 @@ module.exports = class MediaSlash0 extends BasePlugin {
|
|
|
23
22
|
});
|
|
24
23
|
}
|
|
25
24
|
}
|
|
26
|
-
};
|
|
25
|
+
});
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const { ATRULE } = require('../dictionary/postcss');
|
|
1
|
+
import BasePlugin from '../plugin.js';
|
|
2
|
+
import { IE_5_5, IE_6, IE_7, IE_8 } from '../dictionary/browsers.js';
|
|
3
|
+
import { MEDIA_QUERY } from '../dictionary/identifiers.js';
|
|
4
|
+
import { ATRULE } from '../dictionary/postcss.js';
|
|
6
5
|
|
|
7
|
-
|
|
6
|
+
export default (class MediaSlash0Slash9 extends BasePlugin {
|
|
8
7
|
/** @param {import('postcss').Result} result */
|
|
9
8
|
constructor(result) {
|
|
10
9
|
super([IE_5_5, IE_6, IE_7, IE_8], [ATRULE], result);
|
|
@@ -24,4 +23,4 @@ module.exports = class MediaSlash0Slash9 extends BasePlugin {
|
|
|
24
23
|
});
|
|
25
24
|
}
|
|
26
25
|
}
|
|
27
|
-
};
|
|
26
|
+
});
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const { ATRULE } = require('../dictionary/postcss');
|
|
1
|
+
import BasePlugin from '../plugin.js';
|
|
2
|
+
import { IE_5_5, IE_6, IE_7 } from '../dictionary/browsers.js';
|
|
3
|
+
import { MEDIA_QUERY } from '../dictionary/identifiers.js';
|
|
4
|
+
import { ATRULE } from '../dictionary/postcss.js';
|
|
6
5
|
|
|
7
|
-
|
|
6
|
+
export default (class MediaSlash9 extends BasePlugin {
|
|
8
7
|
/** @param {import('postcss').Result=} result */
|
|
9
8
|
constructor(result) {
|
|
10
9
|
super([IE_5_5, IE_6, IE_7], [ATRULE], result);
|
|
@@ -24,4 +23,4 @@ module.exports = class MediaSlash9 extends BasePlugin {
|
|
|
24
23
|
});
|
|
25
24
|
}
|
|
26
25
|
}
|
|
27
|
-
};
|
|
26
|
+
});
|
package/src/plugins/slash9.js
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const { DECL } = require('../dictionary/postcss');
|
|
1
|
+
import BasePlugin from '../plugin.js';
|
|
2
|
+
import { IE_6, IE_7, IE_8 } from '../dictionary/browsers.js';
|
|
3
|
+
import { VALUE } from '../dictionary/identifiers.js';
|
|
4
|
+
import { DECL } from '../dictionary/postcss.js';
|
|
6
5
|
|
|
7
|
-
|
|
6
|
+
export default (class Slash9 extends BasePlugin {
|
|
8
7
|
/** @param {import('postcss').Result=} result */
|
|
9
8
|
constructor(result) {
|
|
10
9
|
super([IE_6, IE_7, IE_8], [DECL], result);
|
|
@@ -23,4 +22,4 @@ module.exports = class Slash9 extends BasePlugin {
|
|
|
23
22
|
});
|
|
24
23
|
}
|
|
25
24
|
}
|
|
26
|
-
};
|
|
25
|
+
});
|
package/src/plugins/starHtml.js
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const { HTML } = require('../dictionary/tags');
|
|
1
|
+
import parser from 'postcss-selector-parser';
|
|
2
|
+
import exists from '../exists.js';
|
|
3
|
+
import isMixin from '../isMixin.js';
|
|
4
|
+
import BasePlugin from '../plugin.js';
|
|
5
|
+
import { IE_5_5, IE_6 } from '../dictionary/browsers.js';
|
|
6
|
+
import { SELECTOR } from '../dictionary/identifiers.js';
|
|
7
|
+
import { RULE } from '../dictionary/postcss.js';
|
|
8
|
+
import { HTML } from '../dictionary/tags.js';
|
|
10
9
|
|
|
11
|
-
|
|
10
|
+
export default (class StarHtml extends BasePlugin {
|
|
12
11
|
/** @param {import('postcss').Result=} result */
|
|
13
12
|
constructor(result) {
|
|
14
13
|
super([IE_5_5, IE_6], [RULE], result);
|
|
@@ -47,4 +46,4 @@ module.exports = class StarHtml extends BasePlugin {
|
|
|
47
46
|
});
|
|
48
47
|
};
|
|
49
48
|
}
|
|
50
|
-
};
|
|
49
|
+
});
|