postcss-preset-env 7.8.3 → 8.0.0-alpha.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/CHANGELOG.md +45 -0
- package/README.md +3 -131
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +14 -14
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,50 @@
|
|
|
1
1
|
# Changes to PostCSS Preset Env
|
|
2
2
|
|
|
3
|
+
### (8.0.0-alpha.1) (November 14, 2022)
|
|
4
|
+
|
|
5
|
+
- Updated Support for Node v14+ (major).
|
|
6
|
+
- Removed `postcss-env-function` (breaking).
|
|
7
|
+
- Removed `importFrom` and `exportTo` plugin options from multiple plugins. (breaking)
|
|
8
|
+
- `postcss-custom-media`
|
|
9
|
+
- `postcss-custom-properties`
|
|
10
|
+
- `postcss-custom-selectors`
|
|
11
|
+
- Added `@csstools/postcss-scope-pseudo-class` [Check the plugin README](https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-scope-pseudo-class#readme) for usage details.
|
|
12
|
+
- Updated `postcss-custom-media` to `9.0.0` (major)
|
|
13
|
+
- Updated `postcss-custom-properties` to `13.0.0` (major)
|
|
14
|
+
- Updated `postcss-custom-selectors` to `7.0.0` (major)
|
|
15
|
+
- Updated `@csstools/postcss-cascade-layers` to `2.0.0` (major)
|
|
16
|
+
- Updated `css-blank-pseudo` to `4.1.1` (minor)
|
|
17
|
+
- Updated `css-has-pseudo` to `4.0.1` (patch)
|
|
18
|
+
- Updated `css-prefers-color-scheme` to `7.0.1` (patch)
|
|
19
|
+
- Updated `postcss-focus-visible` to `7.1.0` (minor)
|
|
20
|
+
- Updated `postcss-focus-within` to `6.1.1` (minor)
|
|
21
|
+
|
|
22
|
+
### 8.0.0-alpha.0 (July 8, 2022)
|
|
23
|
+
|
|
24
|
+
- Breaking: `enableClientSidePolyfills` is now `false` by default (was `true`)
|
|
25
|
+
- Updated `@csstools/postcss-stepped-value-functions` to `1.0.1` (patch)
|
|
26
|
+
- Updated `@csstools/postcss-trigonometric-functions` to `1.0.2` (patch)
|
|
27
|
+
- Updated `@csstools/postcss-unset-value` to `1.0.2` (patch)
|
|
28
|
+
- Updated `browserslist` to `4.21.1` (patch)
|
|
29
|
+
- Updated `css-blank-pseudo` to `4.0.0` (major)
|
|
30
|
+
- Updated `css-has-pseudo` to `4.0.0` (major)
|
|
31
|
+
- Updated `css-prefers-color-scheme` to `7.0.0` (major)
|
|
32
|
+
- Updated `postcss-attribute-case-insensitive` to `5.0.2` (patch)
|
|
33
|
+
- Updated `postcss-color-functional-notation` to `4.2.4` (patch)
|
|
34
|
+
- Updated `postcss-color-rebeccapurple` to `7.1.1` (patch)
|
|
35
|
+
- Updated `postcss-dir-pseudo-class` to `6.0.5` (patch)
|
|
36
|
+
- Updated `postcss-double-position-gradients` to `3.1.2` (patch)
|
|
37
|
+
- Updated `postcss-focus-visible` to `7.0.0` (major)
|
|
38
|
+
- Updated `postcss-focus-within` to `6.0.0` (major)
|
|
39
|
+
- Updated `postcss-gap-properties` to `3.0.4` (patch)
|
|
40
|
+
- Updated `postcss-image-set-function` to `4.0.7` (patch)
|
|
41
|
+
- Updated `postcss-lab-function` to `4.2.1` (patch)
|
|
42
|
+
- Updated `postcss-nesting` to `10.1.10` (patch)
|
|
43
|
+
- Updated `postcss-overflow-shorthand` to `3.0.4` (patch)
|
|
44
|
+
- Updated `postcss-place` to `7.0.5` (patch)
|
|
45
|
+
- Updated `postcss-pseudo-class-any-link` to `7.1.6` (patch)
|
|
46
|
+
- Updated `postcss-selector-not` to `6.0.1` (patch)
|
|
47
|
+
|
|
3
48
|
### 7.8.3 (November 14, 2022)
|
|
4
49
|
|
|
5
50
|
- Update `autoprefixer` to `10.4.13` (patch)
|
package/README.md
CHANGED
|
@@ -215,10 +215,10 @@ Passing an object to a specific feature ID will both enable and configure it.
|
|
|
215
215
|
|
|
216
216
|
```js
|
|
217
217
|
postcssPresetEnv({
|
|
218
|
-
/* use stage 3 features +
|
|
218
|
+
/* use stage 3 features + custom-selectors (preserving the original CSS) */
|
|
219
219
|
stage: 3,
|
|
220
220
|
features: {
|
|
221
|
-
'
|
|
221
|
+
'custom-selectors': { preserve: true }
|
|
222
222
|
}
|
|
223
223
|
})
|
|
224
224
|
```
|
|
@@ -326,141 +326,13 @@ postcssPresetEnv({
|
|
|
326
326
|
});
|
|
327
327
|
```
|
|
328
328
|
|
|
329
|
-
### importFrom
|
|
330
|
-
|
|
331
|
-
The `importFrom` option specifies sources where variables like Custom Media,
|
|
332
|
-
Custom Properties, Custom Selectors, and Environment Variables can be imported
|
|
333
|
-
from, which might be CSS, JS, and JSON files, functions, and directly passed
|
|
334
|
-
objects.
|
|
335
|
-
|
|
336
|
-
```js
|
|
337
|
-
postcssPresetEnv({
|
|
338
|
-
/*
|
|
339
|
-
@custom-media --small-viewport (max-width: 30em);
|
|
340
|
-
@custom-selector :--heading h1, h2, h3;
|
|
341
|
-
:root { --color: red; }
|
|
342
|
-
*/
|
|
343
|
-
importFrom: 'path/to/file.css'
|
|
344
|
-
});
|
|
345
|
-
```
|
|
346
|
-
|
|
347
|
-
Multiple sources can be passed into this option, and they will be parsed in the
|
|
348
|
-
order they are received. JavaScript files, JSON files, functions, and objects
|
|
349
|
-
will use different namespaces to import different kinds of variables.
|
|
350
|
-
|
|
351
|
-
```js
|
|
352
|
-
postcssPresetEnv({
|
|
353
|
-
importFrom: [
|
|
354
|
-
/*
|
|
355
|
-
@custom-media --small-viewport (max-width: 30em);
|
|
356
|
-
@custom-selector :--heading h1, h2, h3;
|
|
357
|
-
:root { --color: red; }
|
|
358
|
-
*/
|
|
359
|
-
'path/to/file.css',
|
|
360
|
-
|
|
361
|
-
/* module.exports = {
|
|
362
|
-
customMedia: { '--small-viewport': '(max-width: 30em)' },
|
|
363
|
-
customProperties: { '--color': 'red' },
|
|
364
|
-
customSelectors: { ':--heading': 'h1, h2, h3' },
|
|
365
|
-
environmentVariables: { '--branding-padding': '20px' }
|
|
366
|
-
} */
|
|
367
|
-
'and/then/this.js',
|
|
368
|
-
|
|
369
|
-
/* {
|
|
370
|
-
"custom-media": { "--small-viewport": "(max-width: 30em)" }
|
|
371
|
-
"custom-properties": { "--color": "red" },
|
|
372
|
-
"custom-selectors": { ":--heading": "h1, h2, h3" },
|
|
373
|
-
"environment-variables": { "--branding-padding": "20px" }
|
|
374
|
-
} */
|
|
375
|
-
'and/then/that.json',
|
|
376
|
-
|
|
377
|
-
{
|
|
378
|
-
customMedia: { '--small-viewport': '(max-width: 30em)' },
|
|
379
|
-
customProperties: { '--color': 'red' },
|
|
380
|
-
customSelectors: { ':--heading': 'h1, h2, h3' },
|
|
381
|
-
environmentVariables: { '--branding-padding': '20px' }
|
|
382
|
-
},
|
|
383
|
-
() => {
|
|
384
|
-
const customMedia = { '--small-viewport': '(max-width: 30em)' };
|
|
385
|
-
const customProperties = { '--color': 'red' };
|
|
386
|
-
const customSelectors = { ':--heading': 'h1, h2, h3' };
|
|
387
|
-
const environmentVariables = { '--branding-padding': '20px' };
|
|
388
|
-
|
|
389
|
-
return { customMedia, customProperties, customSelectors, environmentVariables };
|
|
390
|
-
}
|
|
391
|
-
]
|
|
392
|
-
});
|
|
393
|
-
```
|
|
394
|
-
|
|
395
|
-
### exportTo
|
|
396
|
-
|
|
397
|
-
The `exportTo` option specifies destinations where variables like Custom Media,
|
|
398
|
-
Custom Properties, Custom Selectors, and Environment Variables can be exported
|
|
399
|
-
to, which might be CSS, JS, and JSON files, functions, and directly passed
|
|
400
|
-
objects.
|
|
401
|
-
|
|
402
|
-
```js
|
|
403
|
-
postcssPresetEnv({
|
|
404
|
-
/*
|
|
405
|
-
@custom-media --small-viewport (max-width: 30em);
|
|
406
|
-
@custom-selector :--heading h1, h2, h3;
|
|
407
|
-
:root { --color: red; }
|
|
408
|
-
*/
|
|
409
|
-
exportTo: 'path/to/file.css'
|
|
410
|
-
});
|
|
411
|
-
```
|
|
412
|
-
|
|
413
|
-
Multiple destinations can be passed into this option as well, and they will be
|
|
414
|
-
parsed in the order they are received. JavaScript files, JSON files, and
|
|
415
|
-
objects will use different namespaces to import different kinds of variables.
|
|
416
|
-
|
|
417
|
-
```js
|
|
418
|
-
const cachedObject = {};
|
|
419
|
-
|
|
420
|
-
postcssPresetEnv({
|
|
421
|
-
exportTo: [
|
|
422
|
-
/*
|
|
423
|
-
@custom-media --small-viewport (max-width: 30em);
|
|
424
|
-
@custom-selector :--heading h1, h2, h3;
|
|
425
|
-
:root { --color: red; }
|
|
426
|
-
*/
|
|
427
|
-
'path/to/file.css',
|
|
428
|
-
|
|
429
|
-
/* module.exports = {
|
|
430
|
-
customMedia: { '--small-viewport': '(max-width: 30em)' },
|
|
431
|
-
customProperties: { '--color': 'red' },
|
|
432
|
-
customSelectors: { ':--heading': 'h1, h2, h3' },
|
|
433
|
-
environmentVariables: { '--branding-padding': '20px' }
|
|
434
|
-
} */
|
|
435
|
-
'and/then/this.js',
|
|
436
|
-
|
|
437
|
-
/* {
|
|
438
|
-
"custom-media": { "--small-viewport": "(max-width: 30em)" }
|
|
439
|
-
"custom-properties": { "--color": "red" },
|
|
440
|
-
"custom-selectors": { ":--heading": "h1, h2, h3" },
|
|
441
|
-
"environment-variables": { "--branding-padding": "20px" }
|
|
442
|
-
} */
|
|
443
|
-
'and/then/that.json',
|
|
444
|
-
|
|
445
|
-
cachedObject,
|
|
446
|
-
variables => {
|
|
447
|
-
if ('customProperties' in variables) {
|
|
448
|
-
// do something special with customProperties
|
|
449
|
-
}
|
|
450
|
-
|
|
451
|
-
Object.assign(cachedObject, variables);
|
|
452
|
-
}
|
|
453
|
-
]
|
|
454
|
-
});
|
|
455
|
-
```
|
|
456
|
-
|
|
457
329
|
### debug
|
|
458
330
|
|
|
459
331
|
The `debug` option enables debugging messages to stdout which should be useful to help you debug which features have been enabled/disabled and why.
|
|
460
332
|
|
|
461
333
|
### enableClientSidePolyfills
|
|
462
334
|
|
|
463
|
-
The `enableClientSidePolyfills` enables any feature that would need an extra browser library to be loaded into the page for it to work. Defaults to `
|
|
335
|
+
The `enableClientSidePolyfills` enables any feature that would need an extra browser library to be loaded into the page for it to work. Defaults to `false`.
|
|
464
336
|
|
|
465
337
|
Note that manually enabling/disabling features via the "feature" option overrides this flag.
|
|
466
338
|
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var s=require("autoprefixer"),e=require("cssdb"),t=require("@csstools/postcss-progressive-custom-properties"),o=require("fs"),i=require("path"),r=require("browserslist"),a=require("postcss-initial"),n=require("postcss-pseudo-class-any-link"),c=require("css-blank-pseudo"),p=require("postcss-page-break"),u=require("@csstools/postcss-cascade-layers"),l=require("postcss-attribute-case-insensitive"),m=require("postcss-clamp"),d=require("@csstools/postcss-color-function"),f=require("postcss-color-functional-notation"),g=require("postcss-custom-media"),b=require("postcss-custom-properties"),h=require("postcss-custom-selectors"),N=require("postcss-dir-pseudo-class"),y=require("@csstools/postcss-normalize-display-values"),k=require("postcss-double-position-gradients"),v=require("postcss-env-function"),w=require("postcss-focus-visible"),q=require("postcss-focus-within"),$=require("@csstools/postcss-font-format-keywords"),O=require("postcss-font-variant"),S=require("postcss-gap-properties"),x=require("css-has-pseudo"),j=require("postcss-color-hex-alpha"),P=require("@csstools/postcss-hwb-function"),F=require("@csstools/postcss-ic-unit"),E=require("postcss-image-set-function"),C=require("@csstools/postcss-is-pseudo-class"),M=require("postcss-lab-function"),_=require("postcss-logical"),A=require("postcss-media-minmax"),R=require("@csstools/postcss-nested-calc"),U=require("postcss-nesting"),T=require("postcss-selector-not"),B=require("@csstools/postcss-oklab-function"),I=require("postcss-opacity-percentage"),V=require("postcss-overflow-shorthand"),W=require("postcss-replace-overflow-wrap"),L=require("postcss-place"),D=require("css-prefers-color-scheme"),H=require("postcss-color-rebeccapurple"),J=require("@csstools/postcss-stepped-value-functions"),z=require("@csstools/postcss-text-decoration-shorthand"),G=require("@csstools/postcss-trigonometric-functions"),K=require("@csstools/postcss-unset-value");function Q(s){return s&&"object"==typeof s&&"default"in s?s:{default:s}}var X=Q(s),Y=Q(e),Z=Q(t),ss=Q(o),es=Q(i),ts=Q(r),os=Q(a),is=Q(n),rs=Q(c),as=Q(p),ns=Q(u),cs=Q(l),ps=Q(m),us=Q(d),ls=Q(f),ms=Q(g),ds=Q(b),fs=Q(h),gs=Q(N),bs=Q(y),hs=Q(k),Ns=Q(v),ys=Q(w),ks=Q(q),vs=Q($),ws=Q(O),qs=Q(S),$s=Q(x),Os=Q(j),Ss=Q(P),xs=Q(F),js=Q(E),Ps=Q(C),Fs=Q(M),Es=Q(_),Cs=Q(A),Ms=Q(R),_s=Q(U),As=Q(T),Rs=Q(B),Us=Q(I),Ts=Q(V),Bs=Q(W),Is=Q(L),Vs=Q(D),Ws=Q(H),Ls=Q(J),Ds=Q(z),Hs=Q(G),Js=Q(K);const zs={"blank-pseudo-class":"https://github.com/csstools/postcss-plugins/blob/main/plugins/css-blank-pseudo/README-BROWSER.md","focus-visible-pseudo-class":"https://github.com/WICG/focus-visible","focus-within-pseudo-class":"https://github.com/jsxtools/focus-within/blob/master/README-BROWSER.md","has-pseudo-class":"https://github.com/csstools/postcss-plugins/blob/main/plugins/css-has-pseudo/README-BROWSER.md","prefers-color-scheme-query":"https://github.com/csstools/postcss-plugins/blob/main/plugins/css-prefers-color-scheme/README-BROWSER.md"},Gs=["blank-pseudo-class","focus-visible-pseudo-class","focus-within-pseudo-class","has-pseudo-class","prefers-color-scheme-query"];async function Ks(s,e,t,o){const i=function(s){return`:root {\n${Object.keys(s).reduce(((e,t)=>(e.push(`\t${t}: ${s[t]};`),e)),[]).join("\n")}\n}\n`}(t),r=function(s){return`${Object.keys(s).reduce(((e,t)=>(e.push(`@custom-media ${t} ${s[t]};`),e)),[]).join("\n")}\n`}(e),a=function(s){return`${Object.keys(s).reduce(((e,t)=>(e.push(`@custom-selector ${t} ${s[t]};`),e)),[]).join("\n")}\n`}(o),n=`${r}\n${a}\n${i}`;await se(s,n)}function Qs(s,e){return`\n\t${s}: {\n${Object.keys(e).reduce(((s,t)=>(s.push(`\t\t'${ee(t)}': '${ee(e[t])}'`),s)),[]).join(",\n")}\n\t}`}function Xs(s,e){return`export const ${s} = {\n${Object.keys(e).reduce(((s,t)=>(s.push(`\t'${ee(t)}': '${ee(e[t])}'`),s)),[]).join(",\n")}\n};\n`}function Ys(s,e){return Promise.all([].concat(e).map((async e=>{if(e instanceof Function)await e({customMedia:Zs(s.customMedia),customProperties:Zs(s.customProperties),customSelectors:Zs(s.customSelectors)});else{const t=e===Object(e)?e:{to:String(e)},o=t.toJSON||Zs;if("customMedia"in t||"customProperties"in t||"customSelectors"in t)t.customMedia=o(s.customMedia),t.customProperties=o(s.customProperties),t.customSelectors=o(s.customSelectors);else if("custom-media"in t||"custom-properties"in t||"custom-selectors"in t)t["custom-media"]=o(s.customMedia),t["custom-properties"]=o(s.customProperties),t["custom-selectors"]=o(s.customSelectors);else{const e=String(t.to||""),i=(t.type||es.default.extname(t.to).slice(1)).toLowerCase(),r=o(s.customMedia),a=o(s.customProperties),n=o(s.customSelectors);"css"===i&&await Ks(e,r,a,n),"js"===i&&await async function(s,e,t,o){const i=`module.exports = {${Qs("customMedia",e)},${Qs("customProperties",t)},${Qs("customSelectors",o)}\n};\n`;await se(s,i)}(e,r,a,n),"json"===i&&await async function(s,e,t,o){const i=`${JSON.stringify({"custom-media":e,"custom-properties":t,"custom-selectors":o},null," ")}\n`;await se(s,i)}(e,r,a,n),"mjs"===i&&await async function(s,e,t,o){const i=`${Xs("customMedia",e)}\n${Xs("customProperties",t)}\n${Xs("customSelectors",o)}`;await se(s,i)}(e,r,a,n)}}})))}function Zs(s){return Object.keys(s).reduce(((e,t)=>(e[t]=String(s[t]),e)),{})}function se(s,e){return new Promise(((t,o)=>{ss.default.writeFile(s,e,(s=>{s?o(s):t()}))}))}function ee(s){return s.replace(/\\([\s\S])|(')/g,"\\$1$2").replace(/\n/g,"\\n").replace(/\r/g,"\\r")}function te(s,e){if(!s)return!1;if("string"==typeof s)return!0;if(Array.isArray(s)){for(let t=0;t<s.length;t++){if("string"==typeof s[t])return!0;if(s[t]&&e in Object(s[t]))return!0}return!1}return e in Object(s)}function oe(s,e,t){return Math.max(s,Math.min(e,t))}const ie=Symbol("insertBefore"),re=Symbol("insertAfter"),ae=Symbol("insertOrder"),ne=Symbol("plugin");function ce(s,e,t){if("insertBefore"!==t&&"insertAfter"!==t)return[];const o="insertBefore"===t?ie:re,i=[];for(const t in e){if(!Object.hasOwnProperty.call(e,t))continue;if(!s.find((s=>s.id===t)))continue;let r=e[t];Array.isArray(r)||(r=[r]);for(let s=0;s<r.length;s++)i.push({id:t,[ne]:r[s],[ae]:s,[o]:!0})}return i}var pe=["custom-media-queries","custom-properties","environment-variables","image-set-function","media-query-ranges","prefers-color-scheme-query","nesting-rules","custom-selectors","any-link-pseudo-class","case-insensitive-attributes","focus-visible-pseudo-class","focus-within-pseudo-class","not-pseudo-class","logical-properties-and-values","dir-pseudo-class","all-property","color-functional-notation","double-position-gradients","hexadecimal-alpha-notation","hwb-function","lab-function","rebeccapurple-color","blank-pseudo-class","break-properties","font-variant-property","is-pseudo-class","has-pseudo-class","gap-properties","overflow-property","overflow-wrap-property","place-properties","system-ui-font-family","cascade-layers","stepped-value-functions","trigonometric-functions"];function ue(){return{postcssPlugin:"postcss-system-ui-font",Declaration(s){le.test(s.prop)&&(s.value.includes(de.join(", "))||(s.value=s.value.replace(fe,ge)))}}}ue.postcss=!0;const le=/(?:^(?:-|\\002d){2})|(?:^font(?:-family)?$)/i,me="[\\f\\n\\r\\x09\\x20]",de=["system-ui","-apple-system","Segoe UI","Roboto","Ubuntu","Cantarell","Noto Sans","sans-serif"],fe=new RegExp(`(^|,|${me}+)(?:system-ui${me}*)(?:,${me}*(?:${de.join("|")})${me}*)?(,|$)`,"i"),ge=`$1${de.join(", ")}$2`,be=new Map([["all-property",os.default],["any-link-pseudo-class",is.default],["blank-pseudo-class",rs.default],["break-properties",as.default],["cascade-layers",ns.default],["case-insensitive-attributes",cs.default],["clamp",ps.default],["color-function",us.default],["color-functional-notation",ls.default],["custom-media-queries",ms.default],["custom-properties",ds.default],["custom-selectors",fs.default],["dir-pseudo-class",gs.default],["display-two-values",bs.default],["double-position-gradients",hs.default],["environment-variables",Ns.default],["focus-visible-pseudo-class",ys.default],["focus-within-pseudo-class",ks.default],["font-format-keywords",vs.default],["font-variant-property",ws.default],["gap-properties",qs.default],["has-pseudo-class",$s.default],["hexadecimal-alpha-notation",Os.default],["hwb-function",Ss.default],["ic-unit",xs.default],["image-set-function",js.default],["is-pseudo-class",Ps.default],["lab-function",Fs.default],["logical-properties-and-values",Es.default],["media-query-ranges",Cs.default],["nested-calc",Ms.default],["nesting-rules",_s.default],["not-pseudo-class",As.default],["oklab-function",Rs.default],["opacity-percentage",Us.default],["overflow-property",Ts.default],["overflow-wrap-property",Bs.default],["place-properties",Is.default],["prefers-color-scheme-query",Vs.default],["rebeccapurple-color",Ws.default],["stepped-value-functions",Ls.default],["system-ui-font-family",ue],["text-decoration-shorthand",Ds.default],["trigonometric-functions",Hs.default],["unset-value",Js.default]]);function he(s,e,t){return s.concat(ce(s,e,"insertBefore"),ce(s,t,"insertAfter")).filter((s=>function(s){return!!s[ie]||!!s[re]||!!be.has(s.id)}(s))).sort(((s,e)=>function(s,e){return s.id===e.id?s[ie]&&e[ie]||s[re]&&e[re]?oe(-1,s[ae]-e[ae],1):s[ie]||e[re]?-1:s[re]||e[ie]?1:0:oe(-1,pe.indexOf(s.id)-pe.indexOf(e.id),1)}(s,e)))}const Ne=["and_chr","and_ff","and_qq","and_uc","android","baidu","chrome","edge","firefox","ie","ie_mob","ios_saf","kaios","op_mini","op_mob","opera","safari","samsung"];function ye(s){if(!s)return[];if(!("browser_support"in s))return["> 0%"];const e=[];return Ne.forEach((t=>{if("op_mini"===t&&void 0===s.browser_support[t])return void e.push("op_mini all");const o=s.browser_support[t];"string"==typeof o&&/^[0-9|.]+$/.test(o)?e.push(`${t} < ${s.browser_support[t]}`):e.push(`${t} >= 1`)})),e}function ke(s,e,t,o){const i=ts.default(s,{ignoreUnknownVersions:!0});switch(e.id){case"is-pseudo-class":return{onComplexSelector:"warning"};case"nesting-rules":if(function(s,e){const t=ye(s);if(e.some((s=>ts.default(t,{ignoreUnknownVersions:!0}).some((e=>e===s)))))return!0;return!1}(t.find((s=>"is-pseudo-class"===s.id)),i))return o.log('Disabling :is on "nesting-rules" due to lack of browser support.'),{noIsPseudoSelector:!0};return{};case"any-link-pseudo-class":if(i.find((s=>s.startsWith("ie ")||s.startsWith("edge "))))return o.log('Adding area[href] fallbacks for ":any-link" support in Edge and IE.'),{subFeatures:{areaHrefNeedsFixing:!0}};return{};default:return{}}}function ve(s,e,t,o){const i=Object(e.features),r=!("enableClientSidePolyfills"in e)||e.enableClientSidePolyfills,a=Object(e.insertBefore),n=Object(e.insertAfter),c=e.browsers,p=oe(0,function(s){const e=parseInt(s,10);return Number.isNaN(e)?0:e}(e.minimumVendorImplementations),3);p>0&&o.log(`Using features with ${p} or more vendor implementations`);const u=function(s,e){let t=2;if(void 0===s.stage)return e.log(`Using features from Stage ${t} (default)`),t;if(!1===s.stage)t=5;else{let e=parseInt(s.stage,10);Number.isNaN(e)&&(e=0),t=oe(0,e,5)}return 5===t?e.log('Stage has been disabled, features will be handled via the "features" option.'):e.log(`Using features from Stage ${t}`),t}(e,o);2===u&&t&&!1===t.preserve&&(s=JSON.parse(JSON.stringify(s))).forEach((s=>{("blank-pseudo-class"===s.id||"prefers-color-scheme-query"===s.id)&&(s.stage=1)}));const l=he(s,a,n).map((s=>function(s){const e=ye(s);if(s[ie]||s[re]){let t=s.id;return t=s.insertBefore?`before-${t}`:`after-${t}`,{browsers:e,vendors_implementations:s.vendors_implementations,plugin:s[ne],id:t,stage:6}}return{browsers:e,vendors_implementations:s.vendors_implementations,plugin:be.get(s.id),id:s.id,stage:s.stage}}(s))).filter((s=>0===p||(!(!s[ie]&&!s[re])||(p<=s.vendors_implementations||(i[s.id]?(o.log(` ${s.id} does not meet the required vendor implementations but has been enabled by options`),!0):(o.log(` ${s.id} with ${s.vendors_implementations} vendor implementations has been disabled`),!1)))))).filter((s=>{const e=s.stage>=u,t=r||!Gs.includes(s.id),a=!1===i[s.id],n=i[s.id]?i[s.id]:e&&t;return a?o.log(` ${s.id} has been disabled by options`):e?t||o.log(` ${s.id} has been disabled by "enableClientSidePolyfills: false".`):n?o.log(` ${s.id} does not meet the required stage but has been enabled by options`):o.log(` ${s.id} with stage ${s.stage} has been disabled`),n})).map((e=>function(s,e,t,o,i,r){let a,n;return a=ke(e,o,s,r),!0===t[o.id]?i&&(a=Object.assign({},a,i)):a=i?Object.assign({},a,i,t[o.id]):Object.assign({},a,t[o.id]),a.enableProgressiveCustomProperties=!1,n=o.plugin.postcss&&"function"==typeof o.plugin?o.plugin(a):o.plugin&&o.plugin.default&&"function"==typeof o.plugin.default&&o.plugin.default.postcss?o.plugin.default(a):o.plugin,{browsers:o.browsers,vendors_implementations:o.vendors_implementations,plugin:n,pluginOptions:a,id:o.id}}(s,c,i,e,t,o))),m=ts.default(c,{ignoreUnknownVersions:!0});return l.filter((s=>{if(s.id in i)return i[s.id];if(function(s){if("importFrom"in Object(s.pluginOptions))switch(s.id){case"custom-media-queries":if(te(s.pluginOptions.importFrom,"customMedia"))return!0;break;case"custom-properties":if(te(s.pluginOptions.importFrom,"customProperties"))return!0;break;case"environment-variables":if(te(s.pluginOptions.importFrom,"environmentVariables"))return!0;break;case"custom-selectors":if(te(s.pluginOptions.importFrom,"customSelectors"))return!0}if("exportTo"in Object(s.pluginOptions))switch(s.id){case"custom-media-queries":if(te(s.pluginOptions.exportTo,"customMedia"))return!0;break;case"custom-properties":if(te(s.pluginOptions.exportTo,"customProperties"))return!0;break;case"environment-variables":if(te(s.pluginOptions.exportTo,"environmentVariables"))return!0;break;case"custom-selectors":if(te(s.pluginOptions.exportTo,"customSelectors"))return!0}return!1}(s))return!0;const e=ts.default(s.browsers,{ignoreUnknownVersions:!0}),t=m.some((s=>e.some((e=>e===s))));return t||o.log(`${s.id} disabled due to browser support`),t}))}class we{constructor(){this.logs=[]}log(s){this.logs.push(s)}resetLogger(){this.logs.length=0}dumpLogs(s){s&&this.logs.forEach((e=>s.warn(e))),this.resetLogger()}}var qe=[{packageName:"css-blank-pseudo",id:"blank-pseudo-class",importName:"postcssBlankPseudo"},{packageName:"css-has-pseudo",id:"has-pseudo-class",importName:"postcssHasPseudo"},{packageName:"css-prefers-color-scheme",id:"prefers-color-scheme-query",importName:"postcssPrefersColorScheme"},{packageName:"postcss-attribute-case-insensitive",id:"case-insensitive-attributes",importName:"postcssAttributeCaseInsensitive"},{packageName:"postcss-clamp",id:"clamp",importName:"postcssClamp"},{packageName:"@csstools/postcss-color-function",id:"color-function",importName:"postcssColorFunction"},{packageName:"postcss-color-functional-notation",id:"color-functional-notation",importName:"postcssColorFunctionalNotation"},{packageName:"postcss-color-hex-alpha",id:"hexadecimal-alpha-notation",importName:"postcssColorHexAlpha"},{packageName:"postcss-color-rebeccapurple",id:"rebeccapurple-color",importName:"postcssColorRebeccapurple"},{packageName:"postcss-custom-media",id:"custom-media-queries",importName:"postcssCustomMedia"},{packageName:"postcss-custom-properties",id:"custom-properties",importName:"postcssCustomProperties"},{packageName:"postcss-custom-selectors",id:"custom-selectors",importName:"postcssCustomSelectors"},{packageName:"postcss-dir-pseudo-class",id:"dir-pseudo-class",importName:"postcssDirPseudoClass"},{packageName:"postcss-double-position-gradients",id:"double-position-gradients",importName:"postcssDoublePositionGradients"},{packageName:"postcss-env-function",id:"environment-variables",importName:"postcssEnvFunction"},{packageName:"postcss-focus-visible",id:"focus-visible-pseudo-class",importName:"postcssFocusVisible"},{packageName:"postcss-focus-within",id:"focus-within-pseudo-class",importName:"postcssFocusWithin"},{packageName:"@csstools/postcss-font-format-keywords",id:"font-format-keywords",importName:"postcssFontFormatKeywords"},{packageName:"postcss-font-variant",id:"font-variant-property",importName:"postcssFontVariant"},{packageName:"postcss-gap-properties",id:"gap-properties",importName:"postcssGapProperties"},{packageName:"@csstools/postcss-hwb-function",id:"hwb-function",importName:"postcssHWBFunction"},{packageName:"@csstools/postcss-ic-unit",id:"ic-unit",importName:"postcssICUnit"},{packageName:"postcss-image-set-function",id:"image-set-function",importName:"postcssImageSetFunction"},{packageName:"postcss-initial",id:"all-property",importName:"postcssInitial"},{packageName:"@csstools/postcss-is-pseudo-class",id:"is-pseudo-class",importName:"postcssIsPseudoClass"},{packageName:"postcss-lab-function",id:"lab-function",importName:"postcssLabFunction"},{packageName:"postcss-logical",id:"logical-properties-and-values",importName:"postcssLogical"},{packageName:"postcss-media-minmax",id:"media-query-ranges",importName:"postcssMediaMinmax"},{packageName:"postcss-nesting",id:"nesting-rules",importName:"postcssNesting"},{packageName:"@csstools/postcss-normalize-display-values",id:"display-two-values",importName:"postcssNormalizeDisplayValues"},{packageName:"@csstools/postcss-oklab-function",id:"oklab-function",importName:"postcssOKLabFunction"},{packageName:"postcss-opacity-percentage",id:"opacity-percentage",importName:"postcssOpacityPercentage"},{packageName:"postcss-overflow-shorthand",id:"overflow-property",importName:"postcssOverflowShorthand"},{packageName:"postcss-page-break",id:"break-properties",importName:"postcssPageBreak"},{packageName:"postcss-place",id:"place-properties",importName:"postcssPlace"},{packageName:"postcss-pseudo-class-any-link",id:"any-link-pseudo-class",importName:"postcssPseudoClassAnyLink"},{packageName:"postcss-replace-overflow-wrap",id:"overflow-wrap-property",importName:"postcssReplaceOverflowWrap"},{packageName:"postcss-selector-not",id:"not-pseudo-class",importName:"postcssSelectorNot"},{packageName:"@csstools/postcss-stepped-value-functions",id:"stepped-value-functions",importName:"postcssSteppedValueFunctions"},{packageName:"postcss-system-ui-font-family",importedPackage:"../patch/postcss-system-ui-font-family.mjs",id:"system-ui-font-family",importName:"postcssFontFamilySystemUI"},{packageName:"@csstools/postcss-unset-value",id:"unset-value",importName:"postcssUnsetValue"},{packageName:"@csstools/postcss-cascade-layers",id:"cascade-layers",importName:"postcssCascadeLayers"},{packageName:"@csstools/postcss-trigonometric-functions",id:"trigonometric-functions",importName:"postcssTrigonometricFunctions"},{packageName:"@csstools/postcss-nested-calc",id:"nested-calc",importName:"postcssNestedCalc"},{packageName:"@csstools/postcss-text-decoration-shorthand",id:"text-decoration-shorthand",importName:"postcssTextDecorationShorthand"}];function $e(s,e,t){const o=qe.map((s=>s.id)),i=qe.map((s=>s.packageName)),r=function(){const s={};return qe.forEach((e=>{s[e.packageName]=e.id})),s}();s.forEach((s=>{if(o.includes(s))return;const a=Oe(s,o),n=Oe(s,i);Math.min(a.distance,n.distance)>10?e.warn(t`Unknown feature: "${s}", see the list of features https://github.com/csstools/postcss-plugins/blob/main/plugin-packs/postcss-preset-env/FEATURES.md`):a.distance<n.distance?e.warn(t,`Unknown feature: "${s}", did you mean: "${a.mostSimilar}"`):e.warn(t,`Unknown feature: "${s}", did you mean: "${r[n.mostSimilar]}"`)}))}function Oe(s,e){let t="unknown",o=1/0;for(let i=0;i<e.length;i++){const r=Se(s,e[i]);r<o&&(o=r,t=e[i])}return{mostSimilar:t,distance:o}}function Se(s,e){if(!s.length)return e.length;if(!e.length)return s.length;const t=[];for(let o=0;o<=e.length;o++){t[o]=[o];for(let i=1;i<=s.length;i++)t[o][i]=0===o?i:Math.min(t[o-1][i]+1,t[o][i-1]+1,t[o-1][i-1]+(s[i-1]===e[o-1]?0:1))}return t[e.length][s.length]}const xe=s=>{const e=new we,t=Object(s),o=Object.keys(Object(t.features)),i=t.browsers,r=function(s){if("importFrom"in s||"exportTo"in s||"preserve"in s){const e={};return"importFrom"in s&&(e.importFrom=s.importFrom),"exportTo"in s&&(e.exportTo={customMedia:{},customProperties:{},customSelectors:{}}),"preserve"in s&&(e.preserve=s.preserve),e}return!1}(t),a=ve(Y.default,t,r,e),n=a.map((s=>s.plugin));!1!==t.autoprefixer&&n.push(X.default(Object.assign({overrideBrowserslist:i},t.autoprefixer))),n.push(Z.default()),function(s,e,t){if(e.debug){t.log("Enabling the following feature(s):");const e=[];s.forEach((s=>{s.id.startsWith("before")||s.id.startsWith("after")?t.log(` ${s.id} (injected via options)`):t.log(` ${s.id}`),void 0!==zs[s.id]&&e.push(s.id)})),e.length&&(t.log("These feature(s) need a browser library to work:"),e.forEach((s=>t.log(` ${s}: ${zs[s]}`))))}}(a,t,e);const c=()=>({postcssPlugin:"postcss-preset-env",OnceExit:function(i,{result:a}){$e(o,i,a),t.debug&&e.dumpLogs(a),e.resetLogger(),t.exportTo&&Ys(r.exportTo,s.exportTo)}});return c.postcss=!0,{postcssPlugin:"postcss-preset-env",plugins:[...n,c()]}};xe.postcss=!0,module.exports=xe;
|
|
1
|
+
"use strict";var s=require("autoprefixer"),e=require("cssdb"),o=require("@csstools/postcss-progressive-custom-properties"),t=require("browserslist"),i=require("postcss-initial"),r=require("postcss-pseudo-class-any-link"),a=require("css-blank-pseudo"),n=require("postcss-page-break"),c=require("@csstools/postcss-cascade-layers"),p=require("postcss-attribute-case-insensitive"),l=require("postcss-clamp"),u=require("@csstools/postcss-color-function"),m=require("postcss-color-functional-notation"),d=require("postcss-custom-media"),g=require("postcss-custom-properties"),f=require("postcss-custom-selectors"),b=require("postcss-dir-pseudo-class"),h=require("@csstools/postcss-normalize-display-values"),N=require("postcss-double-position-gradients"),y=require("postcss-focus-visible"),k=require("postcss-focus-within"),v=require("@csstools/postcss-font-format-keywords"),w=require("postcss-font-variant"),q=require("postcss-gap-properties"),S=require("css-has-pseudo"),F=require("postcss-color-hex-alpha"),O=require("@csstools/postcss-hwb-function"),$=require("@csstools/postcss-ic-unit"),P=require("postcss-image-set-function"),x=require("@csstools/postcss-is-pseudo-class"),E=require("postcss-lab-function"),I=require("postcss-logical"),B=require("postcss-media-minmax"),C=require("@csstools/postcss-nested-calc"),U=require("postcss-nesting"),_=require("postcss-selector-not"),L=require("@csstools/postcss-oklab-function"),j=require("postcss-opacity-percentage"),A=require("postcss-overflow-shorthand"),R=require("postcss-replace-overflow-wrap"),D=require("postcss-place"),M=require("css-prefers-color-scheme"),W=require("postcss-color-rebeccapurple"),V=require("@csstools/postcss-scope-pseudo-class"),T=require("@csstools/postcss-stepped-value-functions"),H=require("@csstools/postcss-text-decoration-shorthand"),z=require("@csstools/postcss-trigonometric-functions"),G=require("@csstools/postcss-unset-value");const J={"blank-pseudo-class":"https://github.com/csstools/postcss-plugins/blob/main/plugins/css-blank-pseudo/README-BROWSER.md","focus-visible-pseudo-class":"https://github.com/WICG/focus-visible","focus-within-pseudo-class":"https://github.com/jsxtools/focus-within/blob/master/README-BROWSER.md","has-pseudo-class":"https://github.com/csstools/postcss-plugins/blob/main/plugins/css-has-pseudo/README-BROWSER.md","prefers-color-scheme-query":"https://github.com/csstools/postcss-plugins/blob/main/plugins/css-prefers-color-scheme/README-BROWSER.md"},K=["blank-pseudo-class","focus-visible-pseudo-class","focus-within-pseudo-class","has-pseudo-class","prefers-color-scheme-query"];function logFeaturesList(s,e,o){if(e.debug){o.log("Enabling the following feature(s):");const e=[];s.forEach((s=>{s.id.startsWith("before")||s.id.startsWith("after")?o.log(` ${s.id} (injected via options)`):o.log(` ${s.id}`),void 0!==J[s.id]&&e.push(s.id)})),e.length&&(o.log("These feature(s) need a browser library to work:"),e.forEach((s=>o.log(` ${s}: ${J[s]}`))))}}function initializeSharedOptions(s){if("preserve"in s){const e={};return"preserve"in s&&(e.preserve=s.preserve),e}return!1}function clamp(s,e,o){return Math.max(s,Math.min(e,o))}function stageFromOptions(s,e){let o=2;if(void 0===s.stage)return e.log(`Using features from Stage ${o} (default)`),o;if(!1===s.stage)o=5;else{let e=parseInt(s.stage,10);Number.isNaN(e)&&(e=0),o=clamp(0,e,5)}return 5===o?e.log('Stage has been disabled, features will be handled via the "features" option.'):e.log(`Using features from Stage ${o}`),o}const Z=Symbol("insertBefore"),Q=Symbol("insertAfter"),X=Symbol("insertOrder"),Y=Symbol("plugin");function getTransformedInsertions(s,e,o){if("insertBefore"!==o&&"insertAfter"!==o)return[];const t="insertBefore"===o?Z:Q,i=[];for(const o in e){if(!Object.hasOwnProperty.call(e,o))continue;if(!s.find((s=>s.id===o)))continue;let r=e[o];Array.isArray(r)||(r=[r]);for(let s=0;s<r.length;s++)i.push({id:o,[Y]:r[s],[X]:s,[t]:!0})}return i}var ss=["cascade-layers","custom-media-queries","custom-properties","environment-variables","image-set-function","media-query-ranges","prefers-color-scheme-query","nesting-rules","custom-selectors","any-link-pseudo-class","case-insensitive-attributes","focus-visible-pseudo-class","focus-within-pseudo-class","not-pseudo-class","logical-properties-and-values","dir-pseudo-class","all-property","color-functional-notation","double-position-gradients","hexadecimal-alpha-notation","hwb-function","lab-function","rebeccapurple-color","blank-pseudo-class","break-properties","font-variant-property","is-pseudo-class","scope-pseudo-class","has-pseudo-class","gap-properties","overflow-property","overflow-wrap-property","place-properties","system-ui-font-family","stepped-value-functions","trigonometric-functions"];function featureIsLess(s,e){return s.id===e.id?s[Z]&&e[Z]||s[Q]&&e[Q]?clamp(-1,s[X]-e[X],1):s[Z]||e[Q]?-1:s[Q]||e[Z]?1:0:clamp(-1,ss.indexOf(s.id)-ss.indexOf(e.id),1)}function postcssSystemUiFont(){return{postcssPlugin:"postcss-system-ui-font",Declaration(s){es.test(s.prop)&&(s.value.includes(ts.join(", "))||(s.value=s.value.replace(is,rs)))}}}postcssSystemUiFont.postcss=!0;const es=/(?:^(?:-|\\002d){2})|(?:^font(?:-family)?$)/i,os="[\\f\\n\\r\\x09\\x20]",ts=["system-ui","-apple-system","Segoe UI","Roboto","Ubuntu","Cantarell","Noto Sans","sans-serif"],is=new RegExp(`(^|,|${os}+)(?:system-ui${os}*)(?:,${os}*(?:${ts.join("|")})${os}*)?(,|$)`,"i"),rs=`$1${ts.join(", ")}$2`,as=new Map([["all-property",i],["any-link-pseudo-class",r],["blank-pseudo-class",a],["break-properties",n],["cascade-layers",c],["case-insensitive-attributes",p],["clamp",l],["color-function",u],["color-functional-notation",m],["custom-media-queries",d],["custom-properties",g],["custom-selectors",f],["dir-pseudo-class",b],["display-two-values",h],["double-position-gradients",N],["focus-visible-pseudo-class",y],["focus-within-pseudo-class",k],["font-format-keywords",v],["font-variant-property",w],["gap-properties",q],["has-pseudo-class",S],["hexadecimal-alpha-notation",F],["hwb-function",O],["ic-unit",$],["image-set-function",P],["is-pseudo-class",x],["lab-function",E],["logical-properties-and-values",I],["media-query-ranges",B],["nested-calc",C],["nesting-rules",U],["not-pseudo-class",_],["oklab-function",L],["opacity-percentage",j],["overflow-property",A],["overflow-wrap-property",R],["place-properties",D],["prefers-color-scheme-query",M],["rebeccapurple-color",W],["scope-pseudo-class",V],["stepped-value-functions",T],["system-ui-font-family",postcssSystemUiFont],["text-decoration-shorthand",H],["trigonometric-functions",z],["unset-value",G]]);function featureIsInsertedOrHasAPlugin(s){return!!s[Z]||(!!s[Q]||!!as.has(s.id))}function prepareFeaturesList(s,e,o){return s.concat(getTransformedInsertions(s,e,"insertBefore"),getTransformedInsertions(s,o,"insertAfter")).filter((s=>featureIsInsertedOrHasAPlugin(s))).sort(((s,e)=>featureIsLess(s,e)))}const ns=["and_chr","and_ff","and_qq","and_uc","android","baidu","chrome","edge","firefox","ie","ie_mob","ios_saf","kaios","op_mini","op_mob","opera","safari","samsung"];function getUnsupportedBrowsersByFeature(s){if(!s)return[];if(!("browser_support"in s))return["> 0%"];const e=[];return ns.forEach((o=>{if("op_mini"===o&&void 0===s.browser_support[o])return void e.push("op_mini all");const t=s.browser_support[o];"string"==typeof t&&/^[0-9|.]+$/.test(t)?e.push(`${o} < ${s.browser_support[o]}`):e.push(`${o} >= 1`)})),e}function getOptionsForBrowsersByFeature(s,e,o,i){const r=t(s,{ignoreUnknownVersions:!0});switch(e.id){case"is-pseudo-class":return{onComplexSelector:"warning"};case"nesting-rules":if(needsOptionFor(o.find((s=>"is-pseudo-class"===s.id)),r))return i.log('Disabling :is on "nesting-rules" due to lack of browser support.'),{noIsPseudoSelector:!0};return{};case"any-link-pseudo-class":if(r.find((s=>s.startsWith("ie ")||s.startsWith("edge "))))return i.log('Adding area[href] fallbacks for ":any-link" support in Edge and IE.'),{subFeatures:{areaHrefNeedsFixing:!0}};return{};default:return{}}}function needsOptionFor(s,e){const o=getUnsupportedBrowsersByFeature(s);return!!e.some((s=>t(o,{ignoreUnknownVersions:!0}).some((e=>e===s))))}function formatPolyfillableFeature(s){const e=getUnsupportedBrowsersByFeature(s);if(s[Z]||s[Q]){let o=s.id;return o=s.insertBefore?`before-${o}`:`after-${o}`,{browsers:e,vendors_implementations:s.vendors_implementations,plugin:s[Y],id:o,stage:6}}return{browsers:e,vendors_implementations:s.vendors_implementations,plugin:as.get(s.id),id:s.id,stage:s.stage}}function formatStagedFeature(s,e,o,t,i,r){let a,n;return a=getOptionsForBrowsersByFeature(e,t,s,r),!0===o[t.id]?i&&(a=Object.assign({},a,i)):a=i?Object.assign({},a,i,o[t.id]):Object.assign({},a,o[t.id]),a.enableProgressiveCustomProperties=!1,n=t.plugin.postcss&&"function"==typeof t.plugin?t.plugin(a):t.plugin&&t.plugin.default&&"function"==typeof t.plugin.default&&t.plugin.default.postcss?t.plugin.default(a):t.plugin,{browsers:t.browsers,vendors_implementations:t.vendors_implementations,plugin:n,pluginOptions:a,id:t.id}}function intOrZero(s){const e=parseInt(s,10);return Number.isNaN(e)?0:e}function listFeatures(s,e,o,i){const r=Object(e.features),a="enableClientSidePolyfills"in e&&e.enableClientSidePolyfills,n=Object(e.insertBefore),c=Object(e.insertAfter),p=e.browsers,l=clamp(0,intOrZero(e.minimumVendorImplementations),3);l>0&&i.log(`Using features with ${l} or more vendor implementations`);const u=stageFromOptions(e,i);2===u&&o&&!1===o.preserve&&(s=JSON.parse(JSON.stringify(s))).forEach((s=>{("blank-pseudo-class"===s.id||"prefers-color-scheme-query"===s.id)&&(s.stage=1)}));const m=prepareFeaturesList(s,n,c).map((s=>formatPolyfillableFeature(s))).filter((s=>0===l||(!(!s[Z]&&!s[Q])||(l<=s.vendors_implementations||(r[s.id]?(i.log(` ${s.id} does not meet the required vendor implementations but has been enabled by options`),!0):(i.log(` ${s.id} with ${s.vendors_implementations} vendor implementations has been disabled`),!1)))))).filter((s=>{const e=s.stage>=u,o=a||!K.includes(s.id),t=!1===r[s.id],n=r[s.id]?r[s.id]:e&&o;return t?i.log(` ${s.id} has been disabled by options`):e?o||i.log(` ${s.id} has been disabled by "enableClientSidePolyfills: false".`):n?i.log(` ${s.id} does not meet the required stage but has been enabled by options`):i.log(` ${s.id} with stage ${s.stage} has been disabled`),n})).map((e=>formatStagedFeature(s,p,r,e,o,i))),d=t(p,{ignoreUnknownVersions:!0});return m.filter((s=>{if(s.id in r)return r[s.id];const e=t(s.browsers,{ignoreUnknownVersions:!0}),o=d.some((s=>e.some((e=>e===s))));return o||i.log(`${s.id} disabled due to browser support`),o}))}class Logger{constructor(){this.logs=[]}log(s){this.logs.push(s)}resetLogger(){this.logs.length=0}dumpLogs(s){s&&this.logs.forEach((e=>s.warn(e))),this.resetLogger()}}var cs=[{packageName:"css-blank-pseudo",id:"blank-pseudo-class",importName:"postcssBlankPseudo"},{packageName:"css-has-pseudo",id:"has-pseudo-class",importName:"postcssHasPseudo"},{packageName:"css-prefers-color-scheme",id:"prefers-color-scheme-query",importName:"postcssPrefersColorScheme"},{packageName:"postcss-attribute-case-insensitive",id:"case-insensitive-attributes",importName:"postcssAttributeCaseInsensitive"},{packageName:"postcss-clamp",id:"clamp",importName:"postcssClamp"},{packageName:"@csstools/postcss-color-function",id:"color-function",importName:"postcssColorFunction"},{packageName:"postcss-color-functional-notation",id:"color-functional-notation",importName:"postcssColorFunctionalNotation"},{packageName:"postcss-color-hex-alpha",id:"hexadecimal-alpha-notation",importName:"postcssColorHexAlpha"},{packageName:"postcss-color-rebeccapurple",id:"rebeccapurple-color",importName:"postcssColorRebeccapurple"},{packageName:"postcss-custom-media",id:"custom-media-queries",importName:"postcssCustomMedia"},{packageName:"postcss-custom-properties",id:"custom-properties",importName:"postcssCustomProperties"},{packageName:"postcss-custom-selectors",id:"custom-selectors",importName:"postcssCustomSelectors"},{packageName:"postcss-dir-pseudo-class",id:"dir-pseudo-class",importName:"postcssDirPseudoClass"},{packageName:"postcss-double-position-gradients",id:"double-position-gradients",importName:"postcssDoublePositionGradients"},{packageName:"postcss-focus-visible",id:"focus-visible-pseudo-class",importName:"postcssFocusVisible"},{packageName:"postcss-focus-within",id:"focus-within-pseudo-class",importName:"postcssFocusWithin"},{packageName:"@csstools/postcss-font-format-keywords",id:"font-format-keywords",importName:"postcssFontFormatKeywords"},{packageName:"postcss-font-variant",id:"font-variant-property",importName:"postcssFontVariant"},{packageName:"postcss-gap-properties",id:"gap-properties",importName:"postcssGapProperties"},{packageName:"@csstools/postcss-hwb-function",id:"hwb-function",importName:"postcssHWBFunction"},{packageName:"@csstools/postcss-ic-unit",id:"ic-unit",importName:"postcssICUnit"},{packageName:"postcss-image-set-function",id:"image-set-function",importName:"postcssImageSetFunction"},{packageName:"postcss-initial",id:"all-property",importName:"postcssInitial"},{packageName:"@csstools/postcss-is-pseudo-class",id:"is-pseudo-class",importName:"postcssIsPseudoClass"},{packageName:"@csstools/postcss-scope-pseudo-class",id:"scope-pseudo-class",importName:"postcssScopePseudoClass"},{packageName:"postcss-lab-function",id:"lab-function",importName:"postcssLabFunction"},{packageName:"postcss-logical",id:"logical-properties-and-values",importName:"postcssLogical"},{packageName:"postcss-media-minmax",id:"media-query-ranges",importName:"postcssMediaMinmax"},{packageName:"postcss-nesting",id:"nesting-rules",importName:"postcssNesting"},{packageName:"@csstools/postcss-normalize-display-values",id:"display-two-values",importName:"postcssNormalizeDisplayValues"},{packageName:"@csstools/postcss-oklab-function",id:"oklab-function",importName:"postcssOKLabFunction"},{packageName:"postcss-opacity-percentage",id:"opacity-percentage",importName:"postcssOpacityPercentage"},{packageName:"postcss-overflow-shorthand",id:"overflow-property",importName:"postcssOverflowShorthand"},{packageName:"postcss-page-break",id:"break-properties",importName:"postcssPageBreak"},{packageName:"postcss-place",id:"place-properties",importName:"postcssPlace"},{packageName:"postcss-pseudo-class-any-link",id:"any-link-pseudo-class",importName:"postcssPseudoClassAnyLink"},{packageName:"postcss-replace-overflow-wrap",id:"overflow-wrap-property",importName:"postcssReplaceOverflowWrap"},{packageName:"postcss-selector-not",id:"not-pseudo-class",importName:"postcssSelectorNot"},{packageName:"@csstools/postcss-stepped-value-functions",id:"stepped-value-functions",importName:"postcssSteppedValueFunctions"},{packageName:"postcss-system-ui-font-family",importedPackage:"../patch/postcss-system-ui-font-family.mjs",id:"system-ui-font-family",importName:"postcssFontFamilySystemUI"},{packageName:"@csstools/postcss-unset-value",id:"unset-value",importName:"postcssUnsetValue"},{packageName:"@csstools/postcss-cascade-layers",id:"cascade-layers",importName:"postcssCascadeLayers"},{packageName:"@csstools/postcss-trigonometric-functions",id:"trigonometric-functions",importName:"postcssTrigonometricFunctions"},{packageName:"@csstools/postcss-nested-calc",id:"nested-calc",importName:"postcssNestedCalc"},{packageName:"@csstools/postcss-text-decoration-shorthand",id:"text-decoration-shorthand",importName:"postcssTextDecorationShorthand"}];function getPackageNamesToIds(){const s={};return cs.forEach((e=>{s[e.packageName]=e.id})),s}function pluginIdHelp(s,e,o){const t=cs.map((s=>s.id)),i=cs.map((s=>s.packageName)),r=getPackageNamesToIds();s.forEach((s=>{if(t.includes(s))return;const a=mostSimilar(s,t),n=mostSimilar(s,i);Math.min(a.distance,n.distance)>10?e.warn(o`Unknown feature: "${s}", see the list of features https://github.com/csstools/postcss-plugins/blob/main/plugin-packs/postcss-preset-env/FEATURES.md`):a.distance<n.distance?e.warn(o,`Unknown feature: "${s}", did you mean: "${a.mostSimilar}"`):e.warn(o,`Unknown feature: "${s}", did you mean: "${r[n.mostSimilar]}"`)}))}function mostSimilar(s,e){let o="unknown",t=1/0;for(let i=0;i<e.length;i++){const r=levenshteinDistance(s,e[i]);r<t&&(t=r,o=e[i])}return{mostSimilar:o,distance:t}}function levenshteinDistance(s,e){if(!s.length)return e.length;if(!e.length)return s.length;const o=[];for(let t=0;t<=e.length;t++){o[t]=[t];for(let i=1;i<=s.length;i++)o[t][i]=0===t?i:Math.min(o[t-1][i]+1,o[t][i-1]+1,o[t-1][i-1]+(s[i-1]===e[t-1]?0:1))}return o[e.length][s.length]}const plugin=t=>{const i=new Logger,r=Object(t),a=Object.keys(Object(r.features)),n=r.browsers,c=initializeSharedOptions(r),p=listFeatures(e,r,c,i),l=p.map((s=>s.plugin));!1!==r.autoprefixer&&l.push(s(Object.assign({overrideBrowserslist:n},r.autoprefixer))),l.push(o()),logFeaturesList(p,r,i);const internalPlugin=()=>({postcssPlugin:"postcss-preset-env",OnceExit:function(s,{result:e}){pluginIdHelp(a,s,e),r.debug&&i.dumpLogs(e),i.resetLogger()}});return internalPlugin.postcss=!0,{postcssPlugin:"postcss-preset-env",plugins:[...l,internalPlugin()]}};plugin.postcss=!0,module.exports=plugin;
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import s from"autoprefixer";import e from"cssdb";import o from"@csstools/postcss-progressive-custom-properties";import t from"fs";import i from"path";import r from"browserslist";import n from"postcss-initial";import a from"postcss-pseudo-class-any-link";import c from"css-blank-pseudo";import p from"postcss-page-break";import m from"@csstools/postcss-cascade-layers";import u from"postcss-attribute-case-insensitive";import l from"postcss-clamp";import d from"@csstools/postcss-color-function";import f from"postcss-color-functional-notation";import g from"postcss-custom-media";import b from"postcss-custom-properties";import h from"postcss-custom-selectors";import N from"postcss-dir-pseudo-class";import k from"@csstools/postcss-normalize-display-values";import y from"postcss-double-position-gradients";import v from"postcss-env-function";import w from"postcss-focus-visible";import $ from"postcss-focus-within";import O from"@csstools/postcss-font-format-keywords";import S from"postcss-font-variant";import x from"postcss-gap-properties";import P from"css-has-pseudo";import j from"postcss-color-hex-alpha";import F from"@csstools/postcss-hwb-function";import E from"@csstools/postcss-ic-unit";import C from"postcss-image-set-function";import M from"@csstools/postcss-is-pseudo-class";import _ from"postcss-lab-function";import q from"postcss-logical";import A from"postcss-media-minmax";import R from"@csstools/postcss-nested-calc";import U from"postcss-nesting";import T from"postcss-selector-not";import B from"@csstools/postcss-oklab-function";import I from"postcss-opacity-percentage";import V from"postcss-overflow-shorthand";import W from"postcss-replace-overflow-wrap";import L from"postcss-place";import D from"css-prefers-color-scheme";import H from"postcss-color-rebeccapurple";import J from"@csstools/postcss-stepped-value-functions";import z from"@csstools/postcss-text-decoration-shorthand";import G from"@csstools/postcss-trigonometric-functions";import K from"@csstools/postcss-unset-value";const Q={"blank-pseudo-class":"https://github.com/csstools/postcss-plugins/blob/main/plugins/css-blank-pseudo/README-BROWSER.md","focus-visible-pseudo-class":"https://github.com/WICG/focus-visible","focus-within-pseudo-class":"https://github.com/jsxtools/focus-within/blob/master/README-BROWSER.md","has-pseudo-class":"https://github.com/csstools/postcss-plugins/blob/main/plugins/css-has-pseudo/README-BROWSER.md","prefers-color-scheme-query":"https://github.com/csstools/postcss-plugins/blob/main/plugins/css-prefers-color-scheme/README-BROWSER.md"},X=["blank-pseudo-class","focus-visible-pseudo-class","focus-within-pseudo-class","has-pseudo-class","prefers-color-scheme-query"];async function Y(s,e,o,t){const i=function(s){return`:root {\n${Object.keys(s).reduce(((e,o)=>(e.push(`\t${o}: ${s[o]};`),e)),[]).join("\n")}\n}\n`}(o),r=function(s){return`${Object.keys(s).reduce(((e,o)=>(e.push(`@custom-media ${o} ${s[o]};`),e)),[]).join("\n")}\n`}(e),n=function(s){return`${Object.keys(s).reduce(((e,o)=>(e.push(`@custom-selector ${o} ${s[o]};`),e)),[]).join("\n")}\n`}(t),a=`${r}\n${n}\n${i}`;await ts(s,a)}function Z(s,e){return`\n\t${s}: {\n${Object.keys(e).reduce(((s,o)=>(s.push(`\t\t'${is(o)}': '${is(e[o])}'`),s)),[]).join(",\n")}\n\t}`}function ss(s,e){return`export const ${s} = {\n${Object.keys(e).reduce(((s,o)=>(s.push(`\t'${is(o)}': '${is(e[o])}'`),s)),[]).join(",\n")}\n};\n`}function es(s,e){return Promise.all([].concat(e).map((async e=>{if(e instanceof Function)await e({customMedia:os(s.customMedia),customProperties:os(s.customProperties),customSelectors:os(s.customSelectors)});else{const o=e===Object(e)?e:{to:String(e)},t=o.toJSON||os;if("customMedia"in o||"customProperties"in o||"customSelectors"in o)o.customMedia=t(s.customMedia),o.customProperties=t(s.customProperties),o.customSelectors=t(s.customSelectors);else if("custom-media"in o||"custom-properties"in o||"custom-selectors"in o)o["custom-media"]=t(s.customMedia),o["custom-properties"]=t(s.customProperties),o["custom-selectors"]=t(s.customSelectors);else{const e=String(o.to||""),r=(o.type||i.extname(o.to).slice(1)).toLowerCase(),n=t(s.customMedia),a=t(s.customProperties),c=t(s.customSelectors);"css"===r&&await Y(e,n,a,c),"js"===r&&await async function(s,e,o,t){const i=`module.exports = {${Z("customMedia",e)},${Z("customProperties",o)},${Z("customSelectors",t)}\n};\n`;await ts(s,i)}(e,n,a,c),"json"===r&&await async function(s,e,o,t){const i=`${JSON.stringify({"custom-media":e,"custom-properties":o,"custom-selectors":t},null," ")}\n`;await ts(s,i)}(e,n,a,c),"mjs"===r&&await async function(s,e,o,t){const i=`${ss("customMedia",e)}\n${ss("customProperties",o)}\n${ss("customSelectors",t)}`;await ts(s,i)}(e,n,a,c)}}})))}function os(s){return Object.keys(s).reduce(((e,o)=>(e[o]=String(s[o]),e)),{})}function ts(s,e){return new Promise(((o,i)=>{t.writeFile(s,e,(s=>{s?i(s):o()}))}))}function is(s){return s.replace(/\\([\s\S])|(')/g,"\\$1$2").replace(/\n/g,"\\n").replace(/\r/g,"\\r")}function rs(s,e){if(!s)return!1;if("string"==typeof s)return!0;if(Array.isArray(s)){for(let o=0;o<s.length;o++){if("string"==typeof s[o])return!0;if(s[o]&&e in Object(s[o]))return!0}return!1}return e in Object(s)}function ns(s,e,o){return Math.max(s,Math.min(e,o))}const as=Symbol("insertBefore"),cs=Symbol("insertAfter"),ps=Symbol("insertOrder"),ms=Symbol("plugin");function us(s,e,o){if("insertBefore"!==o&&"insertAfter"!==o)return[];const t="insertBefore"===o?as:cs,i=[];for(const o in e){if(!Object.hasOwnProperty.call(e,o))continue;if(!s.find((s=>s.id===o)))continue;let r=e[o];Array.isArray(r)||(r=[r]);for(let s=0;s<r.length;s++)i.push({id:o,[ms]:r[s],[ps]:s,[t]:!0})}return i}var ls=["custom-media-queries","custom-properties","environment-variables","image-set-function","media-query-ranges","prefers-color-scheme-query","nesting-rules","custom-selectors","any-link-pseudo-class","case-insensitive-attributes","focus-visible-pseudo-class","focus-within-pseudo-class","not-pseudo-class","logical-properties-and-values","dir-pseudo-class","all-property","color-functional-notation","double-position-gradients","hexadecimal-alpha-notation","hwb-function","lab-function","rebeccapurple-color","blank-pseudo-class","break-properties","font-variant-property","is-pseudo-class","has-pseudo-class","gap-properties","overflow-property","overflow-wrap-property","place-properties","system-ui-font-family","cascade-layers","stepped-value-functions","trigonometric-functions"];function ds(){return{postcssPlugin:"postcss-system-ui-font",Declaration(s){fs.test(s.prop)&&(s.value.includes(bs.join(", "))||(s.value=s.value.replace(hs,Ns)))}}}ds.postcss=!0;const fs=/(?:^(?:-|\\002d){2})|(?:^font(?:-family)?$)/i,gs="[\\f\\n\\r\\x09\\x20]",bs=["system-ui","-apple-system","Segoe UI","Roboto","Ubuntu","Cantarell","Noto Sans","sans-serif"],hs=new RegExp(`(^|,|${gs}+)(?:system-ui${gs}*)(?:,${gs}*(?:${bs.join("|")})${gs}*)?(,|$)`,"i"),Ns=`$1${bs.join(", ")}$2`,ks=new Map([["all-property",n],["any-link-pseudo-class",a],["blank-pseudo-class",c],["break-properties",p],["cascade-layers",m],["case-insensitive-attributes",u],["clamp",l],["color-function",d],["color-functional-notation",f],["custom-media-queries",g],["custom-properties",b],["custom-selectors",h],["dir-pseudo-class",N],["display-two-values",k],["double-position-gradients",y],["environment-variables",v],["focus-visible-pseudo-class",w],["focus-within-pseudo-class",$],["font-format-keywords",O],["font-variant-property",S],["gap-properties",x],["has-pseudo-class",P],["hexadecimal-alpha-notation",j],["hwb-function",F],["ic-unit",E],["image-set-function",C],["is-pseudo-class",M],["lab-function",_],["logical-properties-and-values",q],["media-query-ranges",A],["nested-calc",R],["nesting-rules",U],["not-pseudo-class",T],["oklab-function",B],["opacity-percentage",I],["overflow-property",V],["overflow-wrap-property",W],["place-properties",L],["prefers-color-scheme-query",D],["rebeccapurple-color",H],["stepped-value-functions",J],["system-ui-font-family",ds],["text-decoration-shorthand",z],["trigonometric-functions",G],["unset-value",K]]);function ys(s,e,o){return s.concat(us(s,e,"insertBefore"),us(s,o,"insertAfter")).filter((s=>function(s){return!!s[as]||!!s[cs]||!!ks.has(s.id)}(s))).sort(((s,e)=>function(s,e){return s.id===e.id?s[as]&&e[as]||s[cs]&&e[cs]?ns(-1,s[ps]-e[ps],1):s[as]||e[cs]?-1:s[cs]||e[as]?1:0:ns(-1,ls.indexOf(s.id)-ls.indexOf(e.id),1)}(s,e)))}const vs=["and_chr","and_ff","and_qq","and_uc","android","baidu","chrome","edge","firefox","ie","ie_mob","ios_saf","kaios","op_mini","op_mob","opera","safari","samsung"];function ws(s){if(!s)return[];if(!("browser_support"in s))return["> 0%"];const e=[];return vs.forEach((o=>{if("op_mini"===o&&void 0===s.browser_support[o])return void e.push("op_mini all");const t=s.browser_support[o];"string"==typeof t&&/^[0-9|.]+$/.test(t)?e.push(`${o} < ${s.browser_support[o]}`):e.push(`${o} >= 1`)})),e}function $s(s,e,o,t){const i=r(s,{ignoreUnknownVersions:!0});switch(e.id){case"is-pseudo-class":return{onComplexSelector:"warning"};case"nesting-rules":if(function(s,e){const o=ws(s);if(e.some((s=>r(o,{ignoreUnknownVersions:!0}).some((e=>e===s)))))return!0;return!1}(o.find((s=>"is-pseudo-class"===s.id)),i))return t.log('Disabling :is on "nesting-rules" due to lack of browser support.'),{noIsPseudoSelector:!0};return{};case"any-link-pseudo-class":if(i.find((s=>s.startsWith("ie ")||s.startsWith("edge "))))return t.log('Adding area[href] fallbacks for ":any-link" support in Edge and IE.'),{subFeatures:{areaHrefNeedsFixing:!0}};return{};default:return{}}}function Os(s,e,o,t){const i=Object(e.features),n=!("enableClientSidePolyfills"in e)||e.enableClientSidePolyfills,a=Object(e.insertBefore),c=Object(e.insertAfter),p=e.browsers,m=ns(0,function(s){const e=parseInt(s,10);return Number.isNaN(e)?0:e}(e.minimumVendorImplementations),3);m>0&&t.log(`Using features with ${m} or more vendor implementations`);const u=function(s,e){let o=2;if(void 0===s.stage)return e.log(`Using features from Stage ${o} (default)`),o;if(!1===s.stage)o=5;else{let e=parseInt(s.stage,10);Number.isNaN(e)&&(e=0),o=ns(0,e,5)}return 5===o?e.log('Stage has been disabled, features will be handled via the "features" option.'):e.log(`Using features from Stage ${o}`),o}(e,t);2===u&&o&&!1===o.preserve&&(s=JSON.parse(JSON.stringify(s))).forEach((s=>{("blank-pseudo-class"===s.id||"prefers-color-scheme-query"===s.id)&&(s.stage=1)}));const l=ys(s,a,c).map((s=>function(s){const e=ws(s);if(s[as]||s[cs]){let o=s.id;return o=s.insertBefore?`before-${o}`:`after-${o}`,{browsers:e,vendors_implementations:s.vendors_implementations,plugin:s[ms],id:o,stage:6}}return{browsers:e,vendors_implementations:s.vendors_implementations,plugin:ks.get(s.id),id:s.id,stage:s.stage}}(s))).filter((s=>0===m||(!(!s[as]&&!s[cs])||(m<=s.vendors_implementations||(i[s.id]?(t.log(` ${s.id} does not meet the required vendor implementations but has been enabled by options`),!0):(t.log(` ${s.id} with ${s.vendors_implementations} vendor implementations has been disabled`),!1)))))).filter((s=>{const e=s.stage>=u,o=n||!X.includes(s.id),r=!1===i[s.id],a=i[s.id]?i[s.id]:e&&o;return r?t.log(` ${s.id} has been disabled by options`):e?o||t.log(` ${s.id} has been disabled by "enableClientSidePolyfills: false".`):a?t.log(` ${s.id} does not meet the required stage but has been enabled by options`):t.log(` ${s.id} with stage ${s.stage} has been disabled`),a})).map((e=>function(s,e,o,t,i,r){let n,a;return n=$s(e,t,s,r),!0===o[t.id]?i&&(n=Object.assign({},n,i)):n=i?Object.assign({},n,i,o[t.id]):Object.assign({},n,o[t.id]),n.enableProgressiveCustomProperties=!1,a=t.plugin.postcss&&"function"==typeof t.plugin?t.plugin(n):t.plugin&&t.plugin.default&&"function"==typeof t.plugin.default&&t.plugin.default.postcss?t.plugin.default(n):t.plugin,{browsers:t.browsers,vendors_implementations:t.vendors_implementations,plugin:a,pluginOptions:n,id:t.id}}(s,p,i,e,o,t))),d=r(p,{ignoreUnknownVersions:!0});return l.filter((s=>{if(s.id in i)return i[s.id];if(function(s){if("importFrom"in Object(s.pluginOptions))switch(s.id){case"custom-media-queries":if(rs(s.pluginOptions.importFrom,"customMedia"))return!0;break;case"custom-properties":if(rs(s.pluginOptions.importFrom,"customProperties"))return!0;break;case"environment-variables":if(rs(s.pluginOptions.importFrom,"environmentVariables"))return!0;break;case"custom-selectors":if(rs(s.pluginOptions.importFrom,"customSelectors"))return!0}if("exportTo"in Object(s.pluginOptions))switch(s.id){case"custom-media-queries":if(rs(s.pluginOptions.exportTo,"customMedia"))return!0;break;case"custom-properties":if(rs(s.pluginOptions.exportTo,"customProperties"))return!0;break;case"environment-variables":if(rs(s.pluginOptions.exportTo,"environmentVariables"))return!0;break;case"custom-selectors":if(rs(s.pluginOptions.exportTo,"customSelectors"))return!0}return!1}(s))return!0;const e=r(s.browsers,{ignoreUnknownVersions:!0}),o=d.some((s=>e.some((e=>e===s))));return o||t.log(`${s.id} disabled due to browser support`),o}))}class Ss{constructor(){this.logs=[]}log(s){this.logs.push(s)}resetLogger(){this.logs.length=0}dumpLogs(s){s&&this.logs.forEach((e=>s.warn(e))),this.resetLogger()}}var xs=[{packageName:"css-blank-pseudo",id:"blank-pseudo-class",importName:"postcssBlankPseudo"},{packageName:"css-has-pseudo",id:"has-pseudo-class",importName:"postcssHasPseudo"},{packageName:"css-prefers-color-scheme",id:"prefers-color-scheme-query",importName:"postcssPrefersColorScheme"},{packageName:"postcss-attribute-case-insensitive",id:"case-insensitive-attributes",importName:"postcssAttributeCaseInsensitive"},{packageName:"postcss-clamp",id:"clamp",importName:"postcssClamp"},{packageName:"@csstools/postcss-color-function",id:"color-function",importName:"postcssColorFunction"},{packageName:"postcss-color-functional-notation",id:"color-functional-notation",importName:"postcssColorFunctionalNotation"},{packageName:"postcss-color-hex-alpha",id:"hexadecimal-alpha-notation",importName:"postcssColorHexAlpha"},{packageName:"postcss-color-rebeccapurple",id:"rebeccapurple-color",importName:"postcssColorRebeccapurple"},{packageName:"postcss-custom-media",id:"custom-media-queries",importName:"postcssCustomMedia"},{packageName:"postcss-custom-properties",id:"custom-properties",importName:"postcssCustomProperties"},{packageName:"postcss-custom-selectors",id:"custom-selectors",importName:"postcssCustomSelectors"},{packageName:"postcss-dir-pseudo-class",id:"dir-pseudo-class",importName:"postcssDirPseudoClass"},{packageName:"postcss-double-position-gradients",id:"double-position-gradients",importName:"postcssDoublePositionGradients"},{packageName:"postcss-env-function",id:"environment-variables",importName:"postcssEnvFunction"},{packageName:"postcss-focus-visible",id:"focus-visible-pseudo-class",importName:"postcssFocusVisible"},{packageName:"postcss-focus-within",id:"focus-within-pseudo-class",importName:"postcssFocusWithin"},{packageName:"@csstools/postcss-font-format-keywords",id:"font-format-keywords",importName:"postcssFontFormatKeywords"},{packageName:"postcss-font-variant",id:"font-variant-property",importName:"postcssFontVariant"},{packageName:"postcss-gap-properties",id:"gap-properties",importName:"postcssGapProperties"},{packageName:"@csstools/postcss-hwb-function",id:"hwb-function",importName:"postcssHWBFunction"},{packageName:"@csstools/postcss-ic-unit",id:"ic-unit",importName:"postcssICUnit"},{packageName:"postcss-image-set-function",id:"image-set-function",importName:"postcssImageSetFunction"},{packageName:"postcss-initial",id:"all-property",importName:"postcssInitial"},{packageName:"@csstools/postcss-is-pseudo-class",id:"is-pseudo-class",importName:"postcssIsPseudoClass"},{packageName:"postcss-lab-function",id:"lab-function",importName:"postcssLabFunction"},{packageName:"postcss-logical",id:"logical-properties-and-values",importName:"postcssLogical"},{packageName:"postcss-media-minmax",id:"media-query-ranges",importName:"postcssMediaMinmax"},{packageName:"postcss-nesting",id:"nesting-rules",importName:"postcssNesting"},{packageName:"@csstools/postcss-normalize-display-values",id:"display-two-values",importName:"postcssNormalizeDisplayValues"},{packageName:"@csstools/postcss-oklab-function",id:"oklab-function",importName:"postcssOKLabFunction"},{packageName:"postcss-opacity-percentage",id:"opacity-percentage",importName:"postcssOpacityPercentage"},{packageName:"postcss-overflow-shorthand",id:"overflow-property",importName:"postcssOverflowShorthand"},{packageName:"postcss-page-break",id:"break-properties",importName:"postcssPageBreak"},{packageName:"postcss-place",id:"place-properties",importName:"postcssPlace"},{packageName:"postcss-pseudo-class-any-link",id:"any-link-pseudo-class",importName:"postcssPseudoClassAnyLink"},{packageName:"postcss-replace-overflow-wrap",id:"overflow-wrap-property",importName:"postcssReplaceOverflowWrap"},{packageName:"postcss-selector-not",id:"not-pseudo-class",importName:"postcssSelectorNot"},{packageName:"@csstools/postcss-stepped-value-functions",id:"stepped-value-functions",importName:"postcssSteppedValueFunctions"},{packageName:"postcss-system-ui-font-family",importedPackage:"../patch/postcss-system-ui-font-family.mjs",id:"system-ui-font-family",importName:"postcssFontFamilySystemUI"},{packageName:"@csstools/postcss-unset-value",id:"unset-value",importName:"postcssUnsetValue"},{packageName:"@csstools/postcss-cascade-layers",id:"cascade-layers",importName:"postcssCascadeLayers"},{packageName:"@csstools/postcss-trigonometric-functions",id:"trigonometric-functions",importName:"postcssTrigonometricFunctions"},{packageName:"@csstools/postcss-nested-calc",id:"nested-calc",importName:"postcssNestedCalc"},{packageName:"@csstools/postcss-text-decoration-shorthand",id:"text-decoration-shorthand",importName:"postcssTextDecorationShorthand"}];function Ps(s,e,o){const t=xs.map((s=>s.id)),i=xs.map((s=>s.packageName)),r=function(){const s={};return xs.forEach((e=>{s[e.packageName]=e.id})),s}();s.forEach((s=>{if(t.includes(s))return;const n=js(s,t),a=js(s,i);Math.min(n.distance,a.distance)>10?e.warn(o`Unknown feature: "${s}", see the list of features https://github.com/csstools/postcss-plugins/blob/main/plugin-packs/postcss-preset-env/FEATURES.md`):n.distance<a.distance?e.warn(o,`Unknown feature: "${s}", did you mean: "${n.mostSimilar}"`):e.warn(o,`Unknown feature: "${s}", did you mean: "${r[a.mostSimilar]}"`)}))}function js(s,e){let o="unknown",t=1/0;for(let i=0;i<e.length;i++){const r=Fs(s,e[i]);r<t&&(t=r,o=e[i])}return{mostSimilar:o,distance:t}}function Fs(s,e){if(!s.length)return e.length;if(!e.length)return s.length;const o=[];for(let t=0;t<=e.length;t++){o[t]=[t];for(let i=1;i<=s.length;i++)o[t][i]=0===t?i:Math.min(o[t-1][i]+1,o[t][i-1]+1,o[t-1][i-1]+(s[i-1]===e[t-1]?0:1))}return o[e.length][s.length]}const Es=t=>{const i=new Ss,r=Object(t),n=Object.keys(Object(r.features)),a=r.browsers,c=function(s){if("importFrom"in s||"exportTo"in s||"preserve"in s){const e={};return"importFrom"in s&&(e.importFrom=s.importFrom),"exportTo"in s&&(e.exportTo={customMedia:{},customProperties:{},customSelectors:{}}),"preserve"in s&&(e.preserve=s.preserve),e}return!1}(r),p=Os(e,r,c,i),m=p.map((s=>s.plugin));!1!==r.autoprefixer&&m.push(s(Object.assign({overrideBrowserslist:a},r.autoprefixer))),m.push(o()),function(s,e,o){if(e.debug){o.log("Enabling the following feature(s):");const e=[];s.forEach((s=>{s.id.startsWith("before")||s.id.startsWith("after")?o.log(` ${s.id} (injected via options)`):o.log(` ${s.id}`),void 0!==Q[s.id]&&e.push(s.id)})),e.length&&(o.log("These feature(s) need a browser library to work:"),e.forEach((s=>o.log(` ${s}: ${Q[s]}`))))}}(p,r,i);const u=()=>({postcssPlugin:"postcss-preset-env",OnceExit:function(s,{result:e}){Ps(n,s,e),r.debug&&i.dumpLogs(e),i.resetLogger(),r.exportTo&&es(c.exportTo,t.exportTo)}});return u.postcss=!0,{postcssPlugin:"postcss-preset-env",plugins:[...m,u()]}};Es.postcss=!0;export{Es as default};
|
|
1
|
+
import s from"autoprefixer";import e from"cssdb";import o from"@csstools/postcss-progressive-custom-properties";import t from"browserslist";import i from"postcss-initial";import r from"postcss-pseudo-class-any-link";import a from"css-blank-pseudo";import n from"postcss-page-break";import p from"@csstools/postcss-cascade-layers";import c from"postcss-attribute-case-insensitive";import l from"postcss-clamp";import m from"@csstools/postcss-color-function";import u from"postcss-color-functional-notation";import d from"postcss-custom-media";import f from"postcss-custom-properties";import g from"postcss-custom-selectors";import b from"postcss-dir-pseudo-class";import h from"@csstools/postcss-normalize-display-values";import N from"postcss-double-position-gradients";import y from"postcss-focus-visible";import k from"postcss-focus-within";import v from"@csstools/postcss-font-format-keywords";import w from"postcss-font-variant";import S from"postcss-gap-properties";import F from"css-has-pseudo";import O from"postcss-color-hex-alpha";import $ from"@csstools/postcss-hwb-function";import P from"@csstools/postcss-ic-unit";import x from"postcss-image-set-function";import E from"@csstools/postcss-is-pseudo-class";import I from"postcss-lab-function";import B from"postcss-logical";import C from"postcss-media-minmax";import U from"@csstools/postcss-nested-calc";import _ from"postcss-nesting";import L from"postcss-selector-not";import j from"@csstools/postcss-oklab-function";import A from"postcss-opacity-percentage";import R from"postcss-overflow-shorthand";import q from"postcss-replace-overflow-wrap";import D from"postcss-place";import M from"css-prefers-color-scheme";import W from"postcss-color-rebeccapurple";import V from"@csstools/postcss-scope-pseudo-class";import T from"@csstools/postcss-stepped-value-functions";import H from"@csstools/postcss-text-decoration-shorthand";import z from"@csstools/postcss-trigonometric-functions";import G from"@csstools/postcss-unset-value";const J={"blank-pseudo-class":"https://github.com/csstools/postcss-plugins/blob/main/plugins/css-blank-pseudo/README-BROWSER.md","focus-visible-pseudo-class":"https://github.com/WICG/focus-visible","focus-within-pseudo-class":"https://github.com/jsxtools/focus-within/blob/master/README-BROWSER.md","has-pseudo-class":"https://github.com/csstools/postcss-plugins/blob/main/plugins/css-has-pseudo/README-BROWSER.md","prefers-color-scheme-query":"https://github.com/csstools/postcss-plugins/blob/main/plugins/css-prefers-color-scheme/README-BROWSER.md"},K=["blank-pseudo-class","focus-visible-pseudo-class","focus-within-pseudo-class","has-pseudo-class","prefers-color-scheme-query"];function logFeaturesList(s,e,o){if(e.debug){o.log("Enabling the following feature(s):");const e=[];s.forEach((s=>{s.id.startsWith("before")||s.id.startsWith("after")?o.log(` ${s.id} (injected via options)`):o.log(` ${s.id}`),void 0!==J[s.id]&&e.push(s.id)})),e.length&&(o.log("These feature(s) need a browser library to work:"),e.forEach((s=>o.log(` ${s}: ${J[s]}`))))}}function initializeSharedOptions(s){if("preserve"in s){const e={};return"preserve"in s&&(e.preserve=s.preserve),e}return!1}function clamp(s,e,o){return Math.max(s,Math.min(e,o))}function stageFromOptions(s,e){let o=2;if(void 0===s.stage)return e.log(`Using features from Stage ${o} (default)`),o;if(!1===s.stage)o=5;else{let e=parseInt(s.stage,10);Number.isNaN(e)&&(e=0),o=clamp(0,e,5)}return 5===o?e.log('Stage has been disabled, features will be handled via the "features" option.'):e.log(`Using features from Stage ${o}`),o}const Z=Symbol("insertBefore"),Q=Symbol("insertAfter"),X=Symbol("insertOrder"),Y=Symbol("plugin");function getTransformedInsertions(s,e,o){if("insertBefore"!==o&&"insertAfter"!==o)return[];const t="insertBefore"===o?Z:Q,i=[];for(const o in e){if(!Object.hasOwnProperty.call(e,o))continue;if(!s.find((s=>s.id===o)))continue;let r=e[o];Array.isArray(r)||(r=[r]);for(let s=0;s<r.length;s++)i.push({id:o,[Y]:r[s],[X]:s,[t]:!0})}return i}var ss=["cascade-layers","custom-media-queries","custom-properties","environment-variables","image-set-function","media-query-ranges","prefers-color-scheme-query","nesting-rules","custom-selectors","any-link-pseudo-class","case-insensitive-attributes","focus-visible-pseudo-class","focus-within-pseudo-class","not-pseudo-class","logical-properties-and-values","dir-pseudo-class","all-property","color-functional-notation","double-position-gradients","hexadecimal-alpha-notation","hwb-function","lab-function","rebeccapurple-color","blank-pseudo-class","break-properties","font-variant-property","is-pseudo-class","scope-pseudo-class","has-pseudo-class","gap-properties","overflow-property","overflow-wrap-property","place-properties","system-ui-font-family","stepped-value-functions","trigonometric-functions"];function featureIsLess(s,e){return s.id===e.id?s[Z]&&e[Z]||s[Q]&&e[Q]?clamp(-1,s[X]-e[X],1):s[Z]||e[Q]?-1:s[Q]||e[Z]?1:0:clamp(-1,ss.indexOf(s.id)-ss.indexOf(e.id),1)}function postcssSystemUiFont(){return{postcssPlugin:"postcss-system-ui-font",Declaration(s){es.test(s.prop)&&(s.value.includes(ts.join(", "))||(s.value=s.value.replace(is,rs)))}}}postcssSystemUiFont.postcss=!0;const es=/(?:^(?:-|\\002d){2})|(?:^font(?:-family)?$)/i,os="[\\f\\n\\r\\x09\\x20]",ts=["system-ui","-apple-system","Segoe UI","Roboto","Ubuntu","Cantarell","Noto Sans","sans-serif"],is=new RegExp(`(^|,|${os}+)(?:system-ui${os}*)(?:,${os}*(?:${ts.join("|")})${os}*)?(,|$)`,"i"),rs=`$1${ts.join(", ")}$2`,as=new Map([["all-property",i],["any-link-pseudo-class",r],["blank-pseudo-class",a],["break-properties",n],["cascade-layers",p],["case-insensitive-attributes",c],["clamp",l],["color-function",m],["color-functional-notation",u],["custom-media-queries",d],["custom-properties",f],["custom-selectors",g],["dir-pseudo-class",b],["display-two-values",h],["double-position-gradients",N],["focus-visible-pseudo-class",y],["focus-within-pseudo-class",k],["font-format-keywords",v],["font-variant-property",w],["gap-properties",S],["has-pseudo-class",F],["hexadecimal-alpha-notation",O],["hwb-function",$],["ic-unit",P],["image-set-function",x],["is-pseudo-class",E],["lab-function",I],["logical-properties-and-values",B],["media-query-ranges",C],["nested-calc",U],["nesting-rules",_],["not-pseudo-class",L],["oklab-function",j],["opacity-percentage",A],["overflow-property",R],["overflow-wrap-property",q],["place-properties",D],["prefers-color-scheme-query",M],["rebeccapurple-color",W],["scope-pseudo-class",V],["stepped-value-functions",T],["system-ui-font-family",postcssSystemUiFont],["text-decoration-shorthand",H],["trigonometric-functions",z],["unset-value",G]]);function featureIsInsertedOrHasAPlugin(s){return!!s[Z]||(!!s[Q]||!!as.has(s.id))}function prepareFeaturesList(s,e,o){return s.concat(getTransformedInsertions(s,e,"insertBefore"),getTransformedInsertions(s,o,"insertAfter")).filter((s=>featureIsInsertedOrHasAPlugin(s))).sort(((s,e)=>featureIsLess(s,e)))}const ns=["and_chr","and_ff","and_qq","and_uc","android","baidu","chrome","edge","firefox","ie","ie_mob","ios_saf","kaios","op_mini","op_mob","opera","safari","samsung"];function getUnsupportedBrowsersByFeature(s){if(!s)return[];if(!("browser_support"in s))return["> 0%"];const e=[];return ns.forEach((o=>{if("op_mini"===o&&void 0===s.browser_support[o])return void e.push("op_mini all");const t=s.browser_support[o];"string"==typeof t&&/^[0-9|.]+$/.test(t)?e.push(`${o} < ${s.browser_support[o]}`):e.push(`${o} >= 1`)})),e}function getOptionsForBrowsersByFeature(s,e,o,i){const r=t(s,{ignoreUnknownVersions:!0});switch(e.id){case"is-pseudo-class":return{onComplexSelector:"warning"};case"nesting-rules":if(needsOptionFor(o.find((s=>"is-pseudo-class"===s.id)),r))return i.log('Disabling :is on "nesting-rules" due to lack of browser support.'),{noIsPseudoSelector:!0};return{};case"any-link-pseudo-class":if(r.find((s=>s.startsWith("ie ")||s.startsWith("edge "))))return i.log('Adding area[href] fallbacks for ":any-link" support in Edge and IE.'),{subFeatures:{areaHrefNeedsFixing:!0}};return{};default:return{}}}function needsOptionFor(s,e){const o=getUnsupportedBrowsersByFeature(s);return!!e.some((s=>t(o,{ignoreUnknownVersions:!0}).some((e=>e===s))))}function formatPolyfillableFeature(s){const e=getUnsupportedBrowsersByFeature(s);if(s[Z]||s[Q]){let o=s.id;return o=s.insertBefore?`before-${o}`:`after-${o}`,{browsers:e,vendors_implementations:s.vendors_implementations,plugin:s[Y],id:o,stage:6}}return{browsers:e,vendors_implementations:s.vendors_implementations,plugin:as.get(s.id),id:s.id,stage:s.stage}}function formatStagedFeature(s,e,o,t,i,r){let a,n;return a=getOptionsForBrowsersByFeature(e,t,s,r),!0===o[t.id]?i&&(a=Object.assign({},a,i)):a=i?Object.assign({},a,i,o[t.id]):Object.assign({},a,o[t.id]),a.enableProgressiveCustomProperties=!1,n=t.plugin.postcss&&"function"==typeof t.plugin?t.plugin(a):t.plugin&&t.plugin.default&&"function"==typeof t.plugin.default&&t.plugin.default.postcss?t.plugin.default(a):t.plugin,{browsers:t.browsers,vendors_implementations:t.vendors_implementations,plugin:n,pluginOptions:a,id:t.id}}function intOrZero(s){const e=parseInt(s,10);return Number.isNaN(e)?0:e}function listFeatures(s,e,o,i){const r=Object(e.features),a="enableClientSidePolyfills"in e&&e.enableClientSidePolyfills,n=Object(e.insertBefore),p=Object(e.insertAfter),c=e.browsers,l=clamp(0,intOrZero(e.minimumVendorImplementations),3);l>0&&i.log(`Using features with ${l} or more vendor implementations`);const m=stageFromOptions(e,i);2===m&&o&&!1===o.preserve&&(s=JSON.parse(JSON.stringify(s))).forEach((s=>{("blank-pseudo-class"===s.id||"prefers-color-scheme-query"===s.id)&&(s.stage=1)}));const u=prepareFeaturesList(s,n,p).map((s=>formatPolyfillableFeature(s))).filter((s=>0===l||(!(!s[Z]&&!s[Q])||(l<=s.vendors_implementations||(r[s.id]?(i.log(` ${s.id} does not meet the required vendor implementations but has been enabled by options`),!0):(i.log(` ${s.id} with ${s.vendors_implementations} vendor implementations has been disabled`),!1)))))).filter((s=>{const e=s.stage>=m,o=a||!K.includes(s.id),t=!1===r[s.id],n=r[s.id]?r[s.id]:e&&o;return t?i.log(` ${s.id} has been disabled by options`):e?o||i.log(` ${s.id} has been disabled by "enableClientSidePolyfills: false".`):n?i.log(` ${s.id} does not meet the required stage but has been enabled by options`):i.log(` ${s.id} with stage ${s.stage} has been disabled`),n})).map((e=>formatStagedFeature(s,c,r,e,o,i))),d=t(c,{ignoreUnknownVersions:!0});return u.filter((s=>{if(s.id in r)return r[s.id];const e=t(s.browsers,{ignoreUnknownVersions:!0}),o=d.some((s=>e.some((e=>e===s))));return o||i.log(`${s.id} disabled due to browser support`),o}))}class Logger{constructor(){this.logs=[]}log(s){this.logs.push(s)}resetLogger(){this.logs.length=0}dumpLogs(s){s&&this.logs.forEach((e=>s.warn(e))),this.resetLogger()}}var ps=[{packageName:"css-blank-pseudo",id:"blank-pseudo-class",importName:"postcssBlankPseudo"},{packageName:"css-has-pseudo",id:"has-pseudo-class",importName:"postcssHasPseudo"},{packageName:"css-prefers-color-scheme",id:"prefers-color-scheme-query",importName:"postcssPrefersColorScheme"},{packageName:"postcss-attribute-case-insensitive",id:"case-insensitive-attributes",importName:"postcssAttributeCaseInsensitive"},{packageName:"postcss-clamp",id:"clamp",importName:"postcssClamp"},{packageName:"@csstools/postcss-color-function",id:"color-function",importName:"postcssColorFunction"},{packageName:"postcss-color-functional-notation",id:"color-functional-notation",importName:"postcssColorFunctionalNotation"},{packageName:"postcss-color-hex-alpha",id:"hexadecimal-alpha-notation",importName:"postcssColorHexAlpha"},{packageName:"postcss-color-rebeccapurple",id:"rebeccapurple-color",importName:"postcssColorRebeccapurple"},{packageName:"postcss-custom-media",id:"custom-media-queries",importName:"postcssCustomMedia"},{packageName:"postcss-custom-properties",id:"custom-properties",importName:"postcssCustomProperties"},{packageName:"postcss-custom-selectors",id:"custom-selectors",importName:"postcssCustomSelectors"},{packageName:"postcss-dir-pseudo-class",id:"dir-pseudo-class",importName:"postcssDirPseudoClass"},{packageName:"postcss-double-position-gradients",id:"double-position-gradients",importName:"postcssDoublePositionGradients"},{packageName:"postcss-focus-visible",id:"focus-visible-pseudo-class",importName:"postcssFocusVisible"},{packageName:"postcss-focus-within",id:"focus-within-pseudo-class",importName:"postcssFocusWithin"},{packageName:"@csstools/postcss-font-format-keywords",id:"font-format-keywords",importName:"postcssFontFormatKeywords"},{packageName:"postcss-font-variant",id:"font-variant-property",importName:"postcssFontVariant"},{packageName:"postcss-gap-properties",id:"gap-properties",importName:"postcssGapProperties"},{packageName:"@csstools/postcss-hwb-function",id:"hwb-function",importName:"postcssHWBFunction"},{packageName:"@csstools/postcss-ic-unit",id:"ic-unit",importName:"postcssICUnit"},{packageName:"postcss-image-set-function",id:"image-set-function",importName:"postcssImageSetFunction"},{packageName:"postcss-initial",id:"all-property",importName:"postcssInitial"},{packageName:"@csstools/postcss-is-pseudo-class",id:"is-pseudo-class",importName:"postcssIsPseudoClass"},{packageName:"@csstools/postcss-scope-pseudo-class",id:"scope-pseudo-class",importName:"postcssScopePseudoClass"},{packageName:"postcss-lab-function",id:"lab-function",importName:"postcssLabFunction"},{packageName:"postcss-logical",id:"logical-properties-and-values",importName:"postcssLogical"},{packageName:"postcss-media-minmax",id:"media-query-ranges",importName:"postcssMediaMinmax"},{packageName:"postcss-nesting",id:"nesting-rules",importName:"postcssNesting"},{packageName:"@csstools/postcss-normalize-display-values",id:"display-two-values",importName:"postcssNormalizeDisplayValues"},{packageName:"@csstools/postcss-oklab-function",id:"oklab-function",importName:"postcssOKLabFunction"},{packageName:"postcss-opacity-percentage",id:"opacity-percentage",importName:"postcssOpacityPercentage"},{packageName:"postcss-overflow-shorthand",id:"overflow-property",importName:"postcssOverflowShorthand"},{packageName:"postcss-page-break",id:"break-properties",importName:"postcssPageBreak"},{packageName:"postcss-place",id:"place-properties",importName:"postcssPlace"},{packageName:"postcss-pseudo-class-any-link",id:"any-link-pseudo-class",importName:"postcssPseudoClassAnyLink"},{packageName:"postcss-replace-overflow-wrap",id:"overflow-wrap-property",importName:"postcssReplaceOverflowWrap"},{packageName:"postcss-selector-not",id:"not-pseudo-class",importName:"postcssSelectorNot"},{packageName:"@csstools/postcss-stepped-value-functions",id:"stepped-value-functions",importName:"postcssSteppedValueFunctions"},{packageName:"postcss-system-ui-font-family",importedPackage:"../patch/postcss-system-ui-font-family.mjs",id:"system-ui-font-family",importName:"postcssFontFamilySystemUI"},{packageName:"@csstools/postcss-unset-value",id:"unset-value",importName:"postcssUnsetValue"},{packageName:"@csstools/postcss-cascade-layers",id:"cascade-layers",importName:"postcssCascadeLayers"},{packageName:"@csstools/postcss-trigonometric-functions",id:"trigonometric-functions",importName:"postcssTrigonometricFunctions"},{packageName:"@csstools/postcss-nested-calc",id:"nested-calc",importName:"postcssNestedCalc"},{packageName:"@csstools/postcss-text-decoration-shorthand",id:"text-decoration-shorthand",importName:"postcssTextDecorationShorthand"}];function getPackageNamesToIds(){const s={};return ps.forEach((e=>{s[e.packageName]=e.id})),s}function pluginIdHelp(s,e,o){const t=ps.map((s=>s.id)),i=ps.map((s=>s.packageName)),r=getPackageNamesToIds();s.forEach((s=>{if(t.includes(s))return;const a=mostSimilar(s,t),n=mostSimilar(s,i);Math.min(a.distance,n.distance)>10?e.warn(o`Unknown feature: "${s}", see the list of features https://github.com/csstools/postcss-plugins/blob/main/plugin-packs/postcss-preset-env/FEATURES.md`):a.distance<n.distance?e.warn(o,`Unknown feature: "${s}", did you mean: "${a.mostSimilar}"`):e.warn(o,`Unknown feature: "${s}", did you mean: "${r[n.mostSimilar]}"`)}))}function mostSimilar(s,e){let o="unknown",t=1/0;for(let i=0;i<e.length;i++){const r=levenshteinDistance(s,e[i]);r<t&&(t=r,o=e[i])}return{mostSimilar:o,distance:t}}function levenshteinDistance(s,e){if(!s.length)return e.length;if(!e.length)return s.length;const o=[];for(let t=0;t<=e.length;t++){o[t]=[t];for(let i=1;i<=s.length;i++)o[t][i]=0===t?i:Math.min(o[t-1][i]+1,o[t][i-1]+1,o[t-1][i-1]+(s[i-1]===e[t-1]?0:1))}return o[e.length][s.length]}const plugin=t=>{const i=new Logger,r=Object(t),a=Object.keys(Object(r.features)),n=r.browsers,p=initializeSharedOptions(r),c=listFeatures(e,r,p,i),l=c.map((s=>s.plugin));!1!==r.autoprefixer&&l.push(s(Object.assign({overrideBrowserslist:n},r.autoprefixer))),l.push(o()),logFeaturesList(c,r,i);const internalPlugin=()=>({postcssPlugin:"postcss-preset-env",OnceExit:function(s,{result:e}){pluginIdHelp(a,s,e),r.debug&&i.dumpLogs(e),i.resetLogger()}});return internalPlugin.postcss=!0,{postcssPlugin:"postcss-preset-env",plugins:[...l,internalPlugin()]}};plugin.postcss=!0;export{plugin as default};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "postcss-preset-env",
|
|
3
3
|
"description": "Convert modern CSS into something browsers understand",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "8.0.0-alpha.1",
|
|
5
5
|
"author": "Jonathan Neal <jonathantneal@hotmail.com>",
|
|
6
6
|
"license": "CC0-1.0",
|
|
7
7
|
"funding": {
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"url": "https://opencollective.com/csstools"
|
|
10
10
|
},
|
|
11
11
|
"engines": {
|
|
12
|
-
"node": "^
|
|
12
|
+
"node": "^14 || ^16 || >=18"
|
|
13
13
|
},
|
|
14
14
|
"main": "dist/index.cjs",
|
|
15
15
|
"module": "dist/index.mjs",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"dist"
|
|
28
28
|
],
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@csstools/postcss-cascade-layers": "^
|
|
30
|
+
"@csstools/postcss-cascade-layers": "^2.0.0",
|
|
31
31
|
"@csstools/postcss-color-function": "^1.1.1",
|
|
32
32
|
"@csstools/postcss-font-format-keywords": "^1.0.1",
|
|
33
33
|
"@csstools/postcss-hwb-function": "^1.0.2",
|
|
@@ -37,29 +37,29 @@
|
|
|
37
37
|
"@csstools/postcss-normalize-display-values": "^1.0.1",
|
|
38
38
|
"@csstools/postcss-oklab-function": "^1.1.1",
|
|
39
39
|
"@csstools/postcss-progressive-custom-properties": "^1.3.0",
|
|
40
|
+
"@csstools/postcss-scope-pseudo-class": "^1.0.0",
|
|
40
41
|
"@csstools/postcss-stepped-value-functions": "^1.0.1",
|
|
41
42
|
"@csstools/postcss-text-decoration-shorthand": "^1.0.0",
|
|
42
43
|
"@csstools/postcss-trigonometric-functions": "^1.0.2",
|
|
43
44
|
"@csstools/postcss-unset-value": "^1.0.2",
|
|
44
45
|
"autoprefixer": "^10.4.13",
|
|
45
46
|
"browserslist": "^4.21.4",
|
|
46
|
-
"css-blank-pseudo": "^
|
|
47
|
-
"css-has-pseudo": "^
|
|
48
|
-
"css-prefers-color-scheme": "^
|
|
47
|
+
"css-blank-pseudo": "^4.1.1",
|
|
48
|
+
"css-has-pseudo": "^4.0.1",
|
|
49
|
+
"css-prefers-color-scheme": "^7.0.1",
|
|
49
50
|
"cssdb": "^7.1.0",
|
|
50
51
|
"postcss-attribute-case-insensitive": "^5.0.2",
|
|
51
52
|
"postcss-clamp": "^4.1.0",
|
|
52
53
|
"postcss-color-functional-notation": "^4.2.4",
|
|
53
54
|
"postcss-color-hex-alpha": "^8.0.4",
|
|
54
55
|
"postcss-color-rebeccapurple": "^7.1.1",
|
|
55
|
-
"postcss-custom-media": "^
|
|
56
|
-
"postcss-custom-properties": "^
|
|
57
|
-
"postcss-custom-selectors": "^
|
|
56
|
+
"postcss-custom-media": "^9.0.0",
|
|
57
|
+
"postcss-custom-properties": "^13.0.0",
|
|
58
|
+
"postcss-custom-selectors": "^7.0.0",
|
|
58
59
|
"postcss-dir-pseudo-class": "^6.0.5",
|
|
59
60
|
"postcss-double-position-gradients": "^3.1.2",
|
|
60
|
-
"postcss-
|
|
61
|
-
"postcss-focus-
|
|
62
|
-
"postcss-focus-within": "^5.0.4",
|
|
61
|
+
"postcss-focus-visible": "^7.1.0",
|
|
62
|
+
"postcss-focus-within": "^6.1.1",
|
|
63
63
|
"postcss-font-variant": "^5.0.0",
|
|
64
64
|
"postcss-gap-properties": "^3.0.5",
|
|
65
65
|
"postcss-image-set-function": "^4.0.7",
|
|
@@ -78,14 +78,14 @@
|
|
|
78
78
|
"postcss-value-parser": "^4.2.0"
|
|
79
79
|
},
|
|
80
80
|
"peerDependencies": {
|
|
81
|
-
"postcss": "^8.
|
|
81
|
+
"postcss": "^8.4"
|
|
82
82
|
},
|
|
83
83
|
"devDependencies": {
|
|
84
84
|
"postcss-simple-vars": "^7.0.0"
|
|
85
85
|
},
|
|
86
86
|
"scripts": {
|
|
87
87
|
"prebuild": "node ./scripts/generate-plugins-data.mjs && eslint --fix ./src/plugins/*.mjs",
|
|
88
|
-
"build": "rollup -c ../../rollup/default.
|
|
88
|
+
"build": "rollup -c ../../rollup/default.mjs",
|
|
89
89
|
"clean": "node -e \"fs.rmSync('./dist', { recursive: true, force: true });\"",
|
|
90
90
|
"docs": "node ./docs/generate.mjs",
|
|
91
91
|
"lint": "npm run lint:eslint && npm run lint:package-json",
|