diff --git a/.github/ISSUE_TEMPLATE/css-issue.yml b/.github/ISSUE_TEMPLATE/css-issue.yml
index 9fe9251c8e..af32318b34 100644
--- a/.github/ISSUE_TEMPLATE/css-issue.yml
+++ b/.github/ISSUE_TEMPLATE/css-issue.yml
@@ -93,6 +93,7 @@ body:
- PostCSS Focus Visible
- PostCSS Focus Within
- PostCSS Font Variant
+ - PostCSS Font Width Property
- PostCSS Gamut Mapping
- PostCSS Gap Properties
- PostCSS Global Data
diff --git a/.github/ISSUE_TEMPLATE/plugin-issue.yml b/.github/ISSUE_TEMPLATE/plugin-issue.yml
index e287c1a2f6..a3c99c2849 100644
--- a/.github/ISSUE_TEMPLATE/plugin-issue.yml
+++ b/.github/ISSUE_TEMPLATE/plugin-issue.yml
@@ -90,6 +90,7 @@ body:
- PostCSS Focus Visible
- PostCSS Focus Within
- PostCSS Font Variant
+ - PostCSS Font Width Property
- PostCSS Gamut Mapping
- PostCSS Gap Properties
- PostCSS Global Data
diff --git a/.github/labeler.yml b/.github/labeler.yml
index 449c844b4f..fdf0307fa5 100644
--- a/.github/labeler.yml
+++ b/.github/labeler.yml
@@ -233,6 +233,12 @@
- plugins/postcss-font-format-keywords/**
- experimental/postcss-font-format-keywords/**
+"plugins/postcss-font-width-property":
+ - changed-files:
+ - any-glob-to-any-file:
+ - plugins/postcss-font-width-property/**
+ - experimental/postcss-font-width-property/**
+
"plugins/postcss-gamut-mapping":
- changed-files:
- any-glob-to-any-file:
diff --git a/package-lock.json b/package-lock.json
index b0d7c1344c..18e0b27489 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -2002,6 +2002,10 @@
"resolved": "plugins/postcss-font-format-keywords",
"link": true
},
+ "node_modules/@csstools/postcss-font-width-property": {
+ "resolved": "plugins/postcss-font-width-property",
+ "link": true
+ },
"node_modules/@csstools/postcss-gamut-mapping": {
"resolved": "plugins/postcss-gamut-mapping",
"link": true
@@ -2267,15 +2271,15 @@
}
},
"node_modules/@eslint/config-array": {
- "version": "0.23.1",
- "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.1.tgz",
- "integrity": "sha512-uVSdg/V4dfQmTjJzR0szNczjOH/J+FyUMMjYtr07xFRXR7EDf9i1qdxrD0VusZH9knj1/ecxzCQQxyic5NzAiA==",
+ "version": "0.23.2",
+ "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.23.2.tgz",
+ "integrity": "sha512-YF+fE6LV4v5MGWRGj7G404/OZzGNepVF8fxk7jqmqo3lrza7a0uUcDnROGRBG1WFC1omYUS/Wp1f42i0M+3Q3A==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
- "@eslint/object-schema": "^3.0.1",
+ "@eslint/object-schema": "^3.0.2",
"debug": "^4.3.1",
- "minimatch": "^10.1.1"
+ "minimatch": "^10.2.1"
},
"engines": {
"node": "^20.19.0 || ^22.13.0 || >=24"
@@ -2329,9 +2333,9 @@
}
},
"node_modules/@eslint/object-schema": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.1.tgz",
- "integrity": "sha512-P9cq2dpr+LU8j3qbLygLcSZrl2/ds/pUpfnHNNuk5HW7mnngHs+6WSq5C9mO3rqRX8A1poxqLTC9cu0KOyJlBg==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-3.0.2.tgz",
+ "integrity": "sha512-HOy56KJt48Bx8KmJ+XGQNSUMT/6dZee/M54XyUyuvTvPXJmsERRvBchsUVx1UMe1WwIH49XLAczNC7V2INsuUw==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -2748,29 +2752,6 @@
}
}
},
- "node_modules/@isaacs/balanced-match": {
- "version": "4.0.1",
- "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz",
- "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": "20 || >=22"
- }
- },
- "node_modules/@isaacs/brace-expansion": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.1.tgz",
- "integrity": "sha512-WMz71T1JS624nWj2n2fnYAuPovhv7EUhk69R6i9dsVyzxt5eM3bjwvgk9L+APE1TRscGysAVMANkB0jh0LQZrQ==",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "@isaacs/balanced-match": "^4.0.1"
- },
- "engines": {
- "node": "20 || >=22"
- }
- },
"node_modules/@jridgewell/gen-mapping": {
"version": "0.3.13",
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
@@ -2840,17 +2821,17 @@
"license": "MIT"
},
"node_modules/@microsoft/api-documenter": {
- "version": "7.28.9",
- "resolved": "https://registry.npmjs.org/@microsoft/api-documenter/-/api-documenter-7.28.9.tgz",
- "integrity": "sha512-zyNSZ7bzlbv04LqJemVt8pdo5iPhcMOmdBnGVgAPewjq6uFv7oELuqSLF7ye3Ca+yJD60lmNmd4Wx+4796anxA==",
+ "version": "7.29.2",
+ "resolved": "https://registry.npmjs.org/@microsoft/api-documenter/-/api-documenter-7.29.2.tgz",
+ "integrity": "sha512-6yO8mxwUyKwk8p3X0uKC3nMLpB7AEmN+KcCBlmuWZxn57jERWzsumBO7KQsW7q+AxzRJp18vwFNekUY4Lwqbyw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@microsoft/api-extractor-model": "7.32.2",
+ "@microsoft/api-extractor-model": "7.33.1",
"@microsoft/tsdoc": "~0.16.0",
- "@rushstack/node-core-library": "5.19.1",
- "@rushstack/terminal": "0.21.0",
- "@rushstack/ts-command-line": "5.2.0",
+ "@rushstack/node-core-library": "5.20.1",
+ "@rushstack/terminal": "0.22.1",
+ "@rushstack/ts-command-line": "5.3.1",
"js-yaml": "~4.1.0",
"resolve": "~1.22.1"
},
@@ -2859,22 +2840,22 @@
}
},
"node_modules/@microsoft/api-extractor": {
- "version": "7.56.3",
- "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.56.3.tgz",
- "integrity": "sha512-fRqok4aRNq5GpgGBv2fKlSSKbirPKTJ75vQefthB5x9dwt4Zz+AezUzdc1p/AG4wUBIgmhjcEwn/Rj+N4Wh4Mw==",
+ "version": "7.57.2",
+ "resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.57.2.tgz",
+ "integrity": "sha512-Dih58xLlG+M6k2qVSksk9xJx8HvmJEyK3LcHrcqXE7eK/U7pg/8cTT8j1TKijU4P4639wvCy1zhDuvtjRy+02Q==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@microsoft/api-extractor-model": "7.32.2",
+ "@microsoft/api-extractor-model": "7.33.1",
"@microsoft/tsdoc": "~0.16.0",
"@microsoft/tsdoc-config": "~0.18.0",
- "@rushstack/node-core-library": "5.19.1",
- "@rushstack/rig-package": "0.6.0",
- "@rushstack/terminal": "0.21.0",
- "@rushstack/ts-command-line": "5.2.0",
+ "@rushstack/node-core-library": "5.20.1",
+ "@rushstack/rig-package": "0.7.1",
+ "@rushstack/terminal": "0.22.1",
+ "@rushstack/ts-command-line": "5.3.1",
"diff": "~8.0.2",
"lodash": "~4.17.23",
- "minimatch": "10.1.2",
+ "minimatch": "10.2.1",
"resolve": "~1.22.1",
"semver": "~7.5.4",
"source-map": "~0.6.1",
@@ -2885,15 +2866,15 @@
}
},
"node_modules/@microsoft/api-extractor-model": {
- "version": "7.32.2",
- "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.32.2.tgz",
- "integrity": "sha512-Ussc25rAalc+4JJs9HNQE7TuO9y6jpYQX9nWD1DhqUzYPBr3Lr7O9intf+ZY8kD5HnIqeIRJX7ccCT0QyBy2Ww==",
+ "version": "7.33.1",
+ "resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.33.1.tgz",
+ "integrity": "sha512-KX0LI6xzI0gcBOXXmr5mnnbdhsK2W93pqvJo8OgJgWvRRh+wMEp0Ccj38h1XKeJ29E1tuAZKSUOfHUQ1WA8fZg==",
"dev": true,
"license": "MIT",
"dependencies": {
"@microsoft/tsdoc": "~0.16.0",
"@microsoft/tsdoc-config": "~0.18.0",
- "@rushstack/node-core-library": "5.19.1"
+ "@rushstack/node-core-library": "5.20.1"
}
},
"node_modules/@microsoft/api-extractor/node_modules/lru-cache": {
@@ -3046,9 +3027,9 @@
}
},
"node_modules/@oxc-resolver/binding-android-arm-eabi": {
- "version": "11.17.1",
- "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-android-arm-eabi/-/binding-android-arm-eabi-11.17.1.tgz",
- "integrity": "sha512-+VuZyMYYaap5uDAU1xDU3Kul0FekLqpBS8kI5JozlWfYQKnc/HsZg2gHPkQrj0SC9lt74WMNCfOzZZJlYXSdEQ==",
+ "version": "11.18.0",
+ "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-android-arm-eabi/-/binding-android-arm-eabi-11.18.0.tgz",
+ "integrity": "sha512-EhwJNzbfLwQQIeyak3n08EB3UHknMnjy1dFyL98r3xlorje2uzHOT2vkB5nB1zqtTtzT31uSot3oGZFfODbGUg==",
"cpu": [
"arm"
],
@@ -3060,9 +3041,9 @@
]
},
"node_modules/@oxc-resolver/binding-android-arm64": {
- "version": "11.17.1",
- "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-android-arm64/-/binding-android-arm64-11.17.1.tgz",
- "integrity": "sha512-YlDDTjvOEKhom/cRSVsXsMVeXVIAM9PJ/x2mfe08rfuS0iIEfJd8PngKbEIhG72WPxleUa+vkEZj9ncmC14z3Q==",
+ "version": "11.18.0",
+ "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-android-arm64/-/binding-android-arm64-11.18.0.tgz",
+ "integrity": "sha512-esOPsT9S9B6vEMMp1qR9Yz5UepQXljoWRJYoyp7GV/4SYQOSTpN0+V2fTruxbMmzqLK+fjCEU2x3SVhc96LQLQ==",
"cpu": [
"arm64"
],
@@ -3074,9 +3055,9 @@
]
},
"node_modules/@oxc-resolver/binding-darwin-arm64": {
- "version": "11.17.1",
- "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-darwin-arm64/-/binding-darwin-arm64-11.17.1.tgz",
- "integrity": "sha512-HOYYLSY4JDk14YkXaz/ApgJYhgDP4KsG8EZpgpOxdszGW9HmIMMY/vXqVKYW74dSH+GQkIXYxBrEh3nv+XODVg==",
+ "version": "11.18.0",
+ "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-darwin-arm64/-/binding-darwin-arm64-11.18.0.tgz",
+ "integrity": "sha512-iJknScn8fRLRhGR6VHG31bzOoyLihSDmsJHRjHwRUL0yF1MkLlvzmZ+liKl9MGl+WZkZHaOFT5T1jNlLSWTowQ==",
"cpu": [
"arm64"
],
@@ -3088,9 +3069,9 @@
]
},
"node_modules/@oxc-resolver/binding-darwin-x64": {
- "version": "11.17.1",
- "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-darwin-x64/-/binding-darwin-x64-11.17.1.tgz",
- "integrity": "sha512-JHPJbsa5HvPq2/RIdtGlqfaG9zV2WmgvHrKTYmlW0L5esqtKCBuetFudXTBzkNcyD69kSZLzH92AzTr6vFHMFg==",
+ "version": "11.18.0",
+ "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-darwin-x64/-/binding-darwin-x64-11.18.0.tgz",
+ "integrity": "sha512-3rMweF2GQLzkaUoWgFKy1fRtk0dpj4JDqucoZLJN9IZG+TC+RZg7QMwG5WKMvmEjzdYmOTw1L1XqZDVXF2ksaQ==",
"cpu": [
"x64"
],
@@ -3102,9 +3083,9 @@
]
},
"node_modules/@oxc-resolver/binding-freebsd-x64": {
- "version": "11.17.1",
- "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-freebsd-x64/-/binding-freebsd-x64-11.17.1.tgz",
- "integrity": "sha512-UD1FRC8j8xZstFXYsXwQkNmmg7vUbee006IqxokwDUUA+xEgKZDpLhBEiVKM08Urb+bn7Q0gn6M1pyNR0ng5mg==",
+ "version": "11.18.0",
+ "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-freebsd-x64/-/binding-freebsd-x64-11.18.0.tgz",
+ "integrity": "sha512-TfXsFby4QvpGwmUP66+X+XXQsycddZe9ZUUu/vHhq2XGI1EkparCSzjpYW1Nz5fFncbI5oLymQLln/qR+qxyOw==",
"cpu": [
"x64"
],
@@ -3116,9 +3097,9 @@
]
},
"node_modules/@oxc-resolver/binding-linux-arm-gnueabihf": {
- "version": "11.17.1",
- "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-11.17.1.tgz",
- "integrity": "sha512-wFWC1wyf2ROFWTxK5x0Enm++DSof3EBQ/ypyAesMDLiYxOOASDoMOZG1ylWUnlKaCt5W7eNOWOzABpdfFf/ssA==",
+ "version": "11.18.0",
+ "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-11.18.0.tgz",
+ "integrity": "sha512-WolOILquy9DJsHcfFMHeA5EjTCI9A7JoERFJru4UI2zKZcnfNPo5GApzYwiloscEp/s+fALPmyRntswUns0qHg==",
"cpu": [
"arm"
],
@@ -3130,9 +3111,9 @@
]
},
"node_modules/@oxc-resolver/binding-linux-arm-musleabihf": {
- "version": "11.17.1",
- "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-11.17.1.tgz",
- "integrity": "sha512-k/hUif0GEBk/csSqCfTPXb8AAVs1NNWCa/skBghvNbTtORcWfOVqJ3mM+2pE189+enRm4UnryLREu5ysI0kXEQ==",
+ "version": "11.18.0",
+ "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm-musleabihf/-/binding-linux-arm-musleabihf-11.18.0.tgz",
+ "integrity": "sha512-r+5nHJyPdiBqOGTYAFyuq5RtuAQbm4y69GYWNG/uup9Cqr7RG9Ak0YZgGEbkQsc+XBs00ougu/D1+w3UAYIWHA==",
"cpu": [
"arm"
],
@@ -3144,9 +3125,9 @@
]
},
"node_modules/@oxc-resolver/binding-linux-arm64-gnu": {
- "version": "11.17.1",
- "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-11.17.1.tgz",
- "integrity": "sha512-Cwm6A071ww60QouJ9LoHAwBgEoZzHQ0Qaqk2E7WLfBdiQN9mLXIDhnrpn04hlRElRPhLiu/dtg+o5PPLvaINXQ==",
+ "version": "11.18.0",
+ "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-11.18.0.tgz",
+ "integrity": "sha512-bUzg6QxljqMLLwsxYajAQEHW1LYRLdKOg/aykt14PSqUUOmfnOJjPdSLTiHIZCluVzPCQxv1LjoyRcoTAXfQaQ==",
"cpu": [
"arm64"
],
@@ -3158,9 +3139,9 @@
]
},
"node_modules/@oxc-resolver/binding-linux-arm64-musl": {
- "version": "11.17.1",
- "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm64-musl/-/binding-linux-arm64-musl-11.17.1.tgz",
- "integrity": "sha512-+hwlE2v3m0r3sk93SchJL1uyaKcPjf+NGO/TD2DZUDo+chXx7FfaEj0nUMewigSt7oZ2sQN9Z4NJOtUa75HE5Q==",
+ "version": "11.18.0",
+ "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-arm64-musl/-/binding-linux-arm64-musl-11.18.0.tgz",
+ "integrity": "sha512-l43GVwls5+YR8WXOIez5x7Pp/MfhdkMOZOOjFUSWC/9qMnSLX1kd95j9oxDrkWdD321JdHTyd4eau5KQPxZM9w==",
"cpu": [
"arm64"
],
@@ -3172,9 +3153,9 @@
]
},
"node_modules/@oxc-resolver/binding-linux-ppc64-gnu": {
- "version": "11.17.1",
- "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-11.17.1.tgz",
- "integrity": "sha512-bO+rsaE5Ox8cFyeL5Ct5tzot1TnQpFa/Wmu5k+hqBYSH2dNVDGoi0NizBN5QV8kOIC6O5MZr81UG4yW/2FyDTA==",
+ "version": "11.18.0",
+ "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-11.18.0.tgz",
+ "integrity": "sha512-ayj7TweYWi/azxWmRpUZGz41kKNvfkXam20UrFhaQDrSNGNqefQRODxhJn0iv6jt4qChh7TUxDIoavR6ftRsjw==",
"cpu": [
"ppc64"
],
@@ -3186,9 +3167,9 @@
]
},
"node_modules/@oxc-resolver/binding-linux-riscv64-gnu": {
- "version": "11.17.1",
- "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-11.17.1.tgz",
- "integrity": "sha512-B/P+hxKQ1oX4YstI9Lyh4PGzqB87Ddqj/A4iyRBbPdXTcxa+WW3oRLx1CsJKLmHPdDk461Hmbghq1Bm3pl+8Aw==",
+ "version": "11.18.0",
+ "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-riscv64-gnu/-/binding-linux-riscv64-gnu-11.18.0.tgz",
+ "integrity": "sha512-2Jz7jpq6BBNlBBup3usZB6sZWEZOBbjWn++/bKC2lpAT+sTEwdTonnf3rNcb+XY7+v53jYB9pM8LEKVXZfr8BA==",
"cpu": [
"riscv64"
],
@@ -3200,9 +3181,9 @@
]
},
"node_modules/@oxc-resolver/binding-linux-riscv64-musl": {
- "version": "11.17.1",
- "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-11.17.1.tgz",
- "integrity": "sha512-ulp2H3bFXzd/th2maH+QNKj5qgOhJ3v9Yspdf1svTw3CDOuuTl6sRKsWQ7MUw0vnkSNvQndtflBwVXgzZvURsQ==",
+ "version": "11.18.0",
+ "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-riscv64-musl/-/binding-linux-riscv64-musl-11.18.0.tgz",
+ "integrity": "sha512-omw8/ISOc6ubR247iEMma4/JRfbY2I+nGJC59oKBhCIEZoyqEg/NmDSBc4ToMH+AsZDucqQUDOCku3k7pBiEag==",
"cpu": [
"riscv64"
],
@@ -3214,9 +3195,9 @@
]
},
"node_modules/@oxc-resolver/binding-linux-s390x-gnu": {
- "version": "11.17.1",
- "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-11.17.1.tgz",
- "integrity": "sha512-LAXYVe3rKk09Zo9YKF2ZLBcH8sz8Oj+JIyiUxiHtq0hiYLMsN6dOpCf2hzQEjPAmsSEA/hdC1PVKeXo+oma8mQ==",
+ "version": "11.18.0",
+ "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-11.18.0.tgz",
+ "integrity": "sha512-uFipBXaS+honSL5r5G/rlvVrkffUjpKwD3S/aIiwp64bylK3+RztgV+mM1blk+OT5gBRG864auhH6jCfrOo3ZA==",
"cpu": [
"s390x"
],
@@ -3228,9 +3209,9 @@
]
},
"node_modules/@oxc-resolver/binding-linux-x64-gnu": {
- "version": "11.17.1",
- "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-x64-gnu/-/binding-linux-x64-gnu-11.17.1.tgz",
- "integrity": "sha512-3RAhxipMKE8RCSPn7O//sj440i+cYTgYbapLeOoDvQEt6R1QcJjTsFgI4iz99FhVj3YbPxlZmcLB5VW+ipyRTA==",
+ "version": "11.18.0",
+ "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-x64-gnu/-/binding-linux-x64-gnu-11.18.0.tgz",
+ "integrity": "sha512-bY4uMIoKRv8Ine3UiKLFPWRZ+fPCDamTHZFf5pNOjlfmTJIANtJo0mzWDUdFZLYhVgQdegrDL9etZbTMR8qieg==",
"cpu": [
"x64"
],
@@ -3242,9 +3223,9 @@
]
},
"node_modules/@oxc-resolver/binding-linux-x64-musl": {
- "version": "11.17.1",
- "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-x64-musl/-/binding-linux-x64-musl-11.17.1.tgz",
- "integrity": "sha512-wpjMEubGU8r9VjZTLdZR3aPHaBqTl8Jl8F4DBbgNoZ+yhkhQD1/MGvY70v2TLnAI6kAHSvcqgfvaqKDa2iWsPQ==",
+ "version": "11.18.0",
+ "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-linux-x64-musl/-/binding-linux-x64-musl-11.18.0.tgz",
+ "integrity": "sha512-40IicL/aitfNOWur06x7Do41WcqFJ9VUNAciFjZCXzF6wR2i6uVsi6N19ecqgSRoLYFCAoRYi9F50QteIxCwKQ==",
"cpu": [
"x64"
],
@@ -3256,9 +3237,9 @@
]
},
"node_modules/@oxc-resolver/binding-openharmony-arm64": {
- "version": "11.17.1",
- "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-openharmony-arm64/-/binding-openharmony-arm64-11.17.1.tgz",
- "integrity": "sha512-XIE4w17RYAVIgx+9Gs3deTREq5tsmalbatYOOBGNdH7n0DfTE600c7wYXsp7ANc3BPDXsInnOzXDEPCvO1F6cg==",
+ "version": "11.18.0",
+ "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-openharmony-arm64/-/binding-openharmony-arm64-11.18.0.tgz",
+ "integrity": "sha512-DJIzYjUnSJtz4Trs/J9TnzivtPcUKn9AeL3YjHlM5+RvK27ZL9xISs3gg2VAo2nWU7ThuadC1jSYkWaZyONMwg==",
"cpu": [
"arm64"
],
@@ -3270,9 +3251,9 @@
]
},
"node_modules/@oxc-resolver/binding-wasm32-wasi": {
- "version": "11.17.1",
- "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-wasm32-wasi/-/binding-wasm32-wasi-11.17.1.tgz",
- "integrity": "sha512-Lqi5BlHX3zS4bpSOkIbOKVf7DIk6Gvmdifr2OuOI58eUUyP944M8/OyaB09cNpPy9Vukj7nmmhOzj8pwLgAkIg==",
+ "version": "11.18.0",
+ "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-wasm32-wasi/-/binding-wasm32-wasi-11.18.0.tgz",
+ "integrity": "sha512-57+R8Ioqc8g9k80WovoupOoyIOfLEceHTizkUcwOXspXLhiZ67ScM7Q8OuvhDoRRSZzH6yI0qML3WZwMFR3s7g==",
"cpu": [
"wasm32"
],
@@ -3287,9 +3268,9 @@
}
},
"node_modules/@oxc-resolver/binding-win32-arm64-msvc": {
- "version": "11.17.1",
- "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-11.17.1.tgz",
- "integrity": "sha512-l6lTcLBQVj1HNquFpXSsrkCIM8X5Hlng5YNQJrg00z/KyovvDV5l3OFhoRyZ+aLBQ74zUnMRaJZC7xcBnHyeNg==",
+ "version": "11.18.0",
+ "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-11.18.0.tgz",
+ "integrity": "sha512-t9Oa4BPptJqVlHTT1cV1frs+LY/vjsKhHI6ltj2EwoGM1TykJ0WW43UlQaU4SC8N+oTY8JRbAywVMNkfqjSu9w==",
"cpu": [
"arm64"
],
@@ -3301,9 +3282,9 @@
]
},
"node_modules/@oxc-resolver/binding-win32-ia32-msvc": {
- "version": "11.17.1",
- "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-11.17.1.tgz",
- "integrity": "sha512-VTzVtfnCCsU/6GgvursWoyZrhe3Gj/RyXzDWmh4/U1Y3IW0u1FZbp+hCIlBL16pRPbDc5YvXVtCOnA41QOrOoQ==",
+ "version": "11.18.0",
+ "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-11.18.0.tgz",
+ "integrity": "sha512-4maf/f6ea5IEtIXqGwSw38srRtVHTre9iKShG4gjzat7c3Iq6B1OppXMj8gNmTuM4n8Xh1hQM9z2hBELccJr1g==",
"cpu": [
"ia32"
],
@@ -3315,9 +3296,9 @@
]
},
"node_modules/@oxc-resolver/binding-win32-x64-msvc": {
- "version": "11.17.1",
- "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-win32-x64-msvc/-/binding-win32-x64-msvc-11.17.1.tgz",
- "integrity": "sha512-jRPVU+6/12baj87q2+UGRh30FBVBzqKdJ7rP/mSqiL1kpNQB9yZ1j0+m3sru1m+C8hiFK7lBFwjUtYUBI7+UpQ==",
+ "version": "11.18.0",
+ "resolved": "https://registry.npmjs.org/@oxc-resolver/binding-win32-x64-msvc/-/binding-win32-x64-msvc-11.18.0.tgz",
+ "integrity": "sha512-EhW8Su3AEACSw5HfzKMmyCtV0oArNrVViPdeOfvVYL9TrkL+/4c8fWHFTBtxUMUyCjhSG5xYNdwty1D/TAgL0Q==",
"cpu": [
"x64"
],
@@ -3537,9 +3518,9 @@
}
},
"node_modules/@rollup/rollup-android-arm-eabi": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.57.1.tgz",
- "integrity": "sha512-A6ehUVSiSaaliTxai040ZpZ2zTevHYbvu/lDoeAteHI8QnaosIzm4qwtezfRg1jOYaUmnzLX1AOD6Z+UJjtifg==",
+ "version": "4.58.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.58.0.tgz",
+ "integrity": "sha512-mr0tmS/4FoVk1cnaeN244A/wjvGDNItZKR8hRhnmCzygyRXYtKF5jVDSIILR1U97CTzAYmbgIj/Dukg62ggG5w==",
"cpu": [
"arm"
],
@@ -3551,9 +3532,9 @@
]
},
"node_modules/@rollup/rollup-android-arm64": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.57.1.tgz",
- "integrity": "sha512-dQaAddCY9YgkFHZcFNS/606Exo8vcLHwArFZ7vxXq4rigo2bb494/xKMMwRRQW6ug7Js6yXmBZhSBRuBvCCQ3w==",
+ "version": "4.58.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.58.0.tgz",
+ "integrity": "sha512-+s++dbp+/RTte62mQD9wLSbiMTV+xr/PeRJEc/sFZFSBRlHPNPVaf5FXlzAL77Mr8FtSfQqCN+I598M8U41ccQ==",
"cpu": [
"arm64"
],
@@ -3565,9 +3546,9 @@
]
},
"node_modules/@rollup/rollup-darwin-arm64": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.57.1.tgz",
- "integrity": "sha512-crNPrwJOrRxagUYeMn/DZwqN88SDmwaJ8Cvi/TN1HnWBU7GwknckyosC2gd0IqYRsHDEnXf328o9/HC6OkPgOg==",
+ "version": "4.58.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.58.0.tgz",
+ "integrity": "sha512-MFWBwTcYs0jZbINQBXHfSrpSQJq3IUOakcKPzfeSznONop14Pxuqa0Kg19GD0rNBMPQI2tFtu3UzapZpH0Uc1Q==",
"cpu": [
"arm64"
],
@@ -3579,9 +3560,9 @@
]
},
"node_modules/@rollup/rollup-darwin-x64": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.57.1.tgz",
- "integrity": "sha512-Ji8g8ChVbKrhFtig5QBV7iMaJrGtpHelkB3lsaKzadFBe58gmjfGXAOfI5FV0lYMH8wiqsxKQ1C9B0YTRXVy4w==",
+ "version": "4.58.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.58.0.tgz",
+ "integrity": "sha512-yiKJY7pj9c9JwzuKYLFaDZw5gma3fI9bkPEIyofvVfsPqjCWPglSHdpdwXpKGvDeYDms3Qal8qGMEHZ1M/4Udg==",
"cpu": [
"x64"
],
@@ -3593,9 +3574,9 @@
]
},
"node_modules/@rollup/rollup-freebsd-arm64": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.57.1.tgz",
- "integrity": "sha512-R+/WwhsjmwodAcz65guCGFRkMb4gKWTcIeLy60JJQbXrJ97BOXHxnkPFrP+YwFlaS0m+uWJTstrUA9o+UchFug==",
+ "version": "4.58.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.58.0.tgz",
+ "integrity": "sha512-x97kCoBh5MOevpn/CNK9W1x8BEzO238541BGWBc315uOlN0AD/ifZ1msg+ZQB05Ux+VF6EcYqpiagfLJ8U3LvQ==",
"cpu": [
"arm64"
],
@@ -3607,9 +3588,9 @@
]
},
"node_modules/@rollup/rollup-freebsd-x64": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.57.1.tgz",
- "integrity": "sha512-IEQTCHeiTOnAUC3IDQdzRAGj3jOAYNr9kBguI7MQAAZK3caezRrg0GxAb6Hchg4lxdZEI5Oq3iov/w/hnFWY9Q==",
+ "version": "4.58.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.58.0.tgz",
+ "integrity": "sha512-Aa8jPoZ6IQAG2eIrcXPpjRcMjROMFxCt1UYPZZtCxRV68WkuSigYtQ/7Zwrcr2IvtNJo7T2JfDXyMLxq5L4Jlg==",
"cpu": [
"x64"
],
@@ -3621,9 +3602,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.57.1.tgz",
- "integrity": "sha512-F8sWbhZ7tyuEfsmOxwc2giKDQzN3+kuBLPwwZGyVkLlKGdV1nvnNwYD0fKQ8+XS6hp9nY7B+ZeK01EBUE7aHaw==",
+ "version": "4.58.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.58.0.tgz",
+ "integrity": "sha512-Ob8YgT5kD/lSIYW2Rcngs5kNB/44Q2RzBSPz9brf2WEtcGR7/f/E9HeHn1wYaAwKBni+bdXEwgHvUd0x12lQSA==",
"cpu": [
"arm"
],
@@ -3635,9 +3616,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.57.1.tgz",
- "integrity": "sha512-rGfNUfn0GIeXtBP1wL5MnzSj98+PZe/AXaGBCRmT0ts80lU5CATYGxXukeTX39XBKsxzFpEeK+Mrp9faXOlmrw==",
+ "version": "4.58.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.58.0.tgz",
+ "integrity": "sha512-K+RI5oP1ceqoadvNt1FecL17Qtw/n9BgRSzxif3rTL2QlIu88ccvY+Y9nnHe/cmT5zbH9+bpiJuG1mGHRVwF4Q==",
"cpu": [
"arm"
],
@@ -3649,9 +3630,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-gnu": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.57.1.tgz",
- "integrity": "sha512-MMtej3YHWeg/0klK2Qodf3yrNzz6CGjo2UntLvk2RSPlhzgLvYEB3frRvbEF2wRKh1Z2fDIg9KRPe1fawv7C+g==",
+ "version": "4.58.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.58.0.tgz",
+ "integrity": "sha512-T+17JAsCKUjmbopcKepJjHWHXSjeW7O5PL7lEFaeQmiVyw4kkc5/lyYKzrv6ElWRX/MrEWfPiJWqbTvfIvjM1Q==",
"cpu": [
"arm64"
],
@@ -3663,9 +3644,9 @@
]
},
"node_modules/@rollup/rollup-linux-arm64-musl": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.57.1.tgz",
- "integrity": "sha512-1a/qhaaOXhqXGpMFMET9VqwZakkljWHLmZOX48R0I/YLbhdxr1m4gtG1Hq7++VhVUmf+L3sTAf9op4JlhQ5u1Q==",
+ "version": "4.58.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.58.0.tgz",
+ "integrity": "sha512-cCePktb9+6R9itIJdeCFF9txPU7pQeEHB5AbHu/MKsfH/k70ZtOeq1k4YAtBv9Z7mmKI5/wOLYjQ+B9QdxR6LA==",
"cpu": [
"arm64"
],
@@ -3677,9 +3658,9 @@
]
},
"node_modules/@rollup/rollup-linux-loong64-gnu": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.57.1.tgz",
- "integrity": "sha512-QWO6RQTZ/cqYtJMtxhkRkidoNGXc7ERPbZN7dVW5SdURuLeVU7lwKMpo18XdcmpWYd0qsP1bwKPf7DNSUinhvA==",
+ "version": "4.58.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.58.0.tgz",
+ "integrity": "sha512-iekUaLkfliAsDl4/xSdoCJ1gnnIXvoNz85C8U8+ZxknM5pBStfZjeXgB8lXobDQvvPRCN8FPmmuTtH+z95HTmg==",
"cpu": [
"loong64"
],
@@ -3691,9 +3672,9 @@
]
},
"node_modules/@rollup/rollup-linux-loong64-musl": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.57.1.tgz",
- "integrity": "sha512-xpObYIf+8gprgWaPP32xiN5RVTi/s5FCR+XMXSKmhfoJjrpRAjCuuqQXyxUa/eJTdAE6eJ+KDKaoEqjZQxh3Gw==",
+ "version": "4.58.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-musl/-/rollup-linux-loong64-musl-4.58.0.tgz",
+ "integrity": "sha512-68ofRgJNl/jYJbxFjCKE7IwhbfxOl1muPN4KbIqAIe32lm22KmU7E8OPvyy68HTNkI2iV/c8y2kSPSm2mW/Q9Q==",
"cpu": [
"loong64"
],
@@ -3705,9 +3686,9 @@
]
},
"node_modules/@rollup/rollup-linux-ppc64-gnu": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.57.1.tgz",
- "integrity": "sha512-4BrCgrpZo4hvzMDKRqEaW1zeecScDCR+2nZ86ATLhAoJ5FQ+lbHVD3ttKe74/c7tNT9c6F2viwB3ufwp01Oh2w==",
+ "version": "4.58.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.58.0.tgz",
+ "integrity": "sha512-dpz8vT0i+JqUKuSNPCP5SYyIV2Lh0sNL1+FhM7eLC457d5B9/BC3kDPp5BBftMmTNsBarcPcoz5UGSsnCiw4XQ==",
"cpu": [
"ppc64"
],
@@ -3719,9 +3700,9 @@
]
},
"node_modules/@rollup/rollup-linux-ppc64-musl": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.57.1.tgz",
- "integrity": "sha512-NOlUuzesGauESAyEYFSe3QTUguL+lvrN1HtwEEsU2rOwdUDeTMJdO5dUYl/2hKf9jWydJrO9OL/XSSf65R5+Xw==",
+ "version": "4.58.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-musl/-/rollup-linux-ppc64-musl-4.58.0.tgz",
+ "integrity": "sha512-4gdkkf9UJ7tafnweBCR/mk4jf3Jfl0cKX9Np80t5i78kjIH0ZdezUv/JDI2VtruE5lunfACqftJ8dIMGN4oHew==",
"cpu": [
"ppc64"
],
@@ -3733,9 +3714,9 @@
]
},
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.57.1.tgz",
- "integrity": "sha512-ptA88htVp0AwUUqhVghwDIKlvJMD/fmL/wrQj99PRHFRAG6Z5nbWoWG4o81Nt9FT+IuqUQi+L31ZKAFeJ5Is+A==",
+ "version": "4.58.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.58.0.tgz",
+ "integrity": "sha512-YFS4vPnOkDTD/JriUeeZurFYoJhPf9GQQEF/v4lltp3mVcBmnsAdjEWhr2cjUCZzZNzxCG0HZOvJU44UGHSdzw==",
"cpu": [
"riscv64"
],
@@ -3747,9 +3728,9 @@
]
},
"node_modules/@rollup/rollup-linux-riscv64-musl": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.57.1.tgz",
- "integrity": "sha512-S51t7aMMTNdmAMPpBg7OOsTdn4tySRQvklmL3RpDRyknk87+Sp3xaumlatU+ppQ+5raY7sSTcC2beGgvhENfuw==",
+ "version": "4.58.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.58.0.tgz",
+ "integrity": "sha512-x2xgZlFne+QVNKV8b4wwaCS8pwq3y14zedZ5DqLzjdRITvreBk//4Knbcvm7+lWmms9V9qFp60MtUd0/t/PXPw==",
"cpu": [
"riscv64"
],
@@ -3761,9 +3742,9 @@
]
},
"node_modules/@rollup/rollup-linux-s390x-gnu": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.57.1.tgz",
- "integrity": "sha512-Bl00OFnVFkL82FHbEqy3k5CUCKH6OEJL54KCyx2oqsmZnFTR8IoNqBF+mjQVcRCT5sB6yOvK8A37LNm/kPJiZg==",
+ "version": "4.58.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.58.0.tgz",
+ "integrity": "sha512-jIhrujyn4UnWF8S+DHSkAkDEO3hLX0cjzxJZPLF80xFyzyUIYgSMRcYQ3+uqEoyDD2beGq7Dj7edi8OnJcS/hg==",
"cpu": [
"s390x"
],
@@ -3775,9 +3756,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-gnu": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.57.1.tgz",
- "integrity": "sha512-ABca4ceT4N+Tv/GtotnWAeXZUZuM/9AQyCyKYyKnpk4yoA7QIAuBt6Hkgpw8kActYlew2mvckXkvx0FfoInnLg==",
+ "version": "4.58.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.58.0.tgz",
+ "integrity": "sha512-+410Srdoh78MKSJxTQ+hZ/Mx+ajd6RjjPwBPNd0R3J9FtL6ZA0GqiiyNjCO9In0IzZkCNrpGymSfn+kgyPQocg==",
"cpu": [
"x64"
],
@@ -3789,9 +3770,9 @@
]
},
"node_modules/@rollup/rollup-linux-x64-musl": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.57.1.tgz",
- "integrity": "sha512-HFps0JeGtuOR2convgRRkHCekD7j+gdAuXM+/i6kGzQtFhlCtQkpwtNzkNj6QhCDp7DRJ7+qC/1Vg2jt5iSOFw==",
+ "version": "4.58.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.58.0.tgz",
+ "integrity": "sha512-ZjMyby5SICi227y1MTR3VYBpFTdZs823Rs/hpakufleBoufoOIB6jtm9FEoxn/cgO7l6PM2rCEl5Kre5vX0QrQ==",
"cpu": [
"x64"
],
@@ -3803,9 +3784,9 @@
]
},
"node_modules/@rollup/rollup-openbsd-x64": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.57.1.tgz",
- "integrity": "sha512-H+hXEv9gdVQuDTgnqD+SQffoWoc0Of59AStSzTEj/feWTBAnSfSD3+Dql1ZruJQxmykT/JVY0dE8Ka7z0DH1hw==",
+ "version": "4.58.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openbsd-x64/-/rollup-openbsd-x64-4.58.0.tgz",
+ "integrity": "sha512-ds4iwfYkSQ0k1nb8LTcyXw//ToHOnNTJtceySpL3fa7tc/AsE+UpUFphW126A6fKBGJD5dhRvg8zw1rvoGFxmw==",
"cpu": [
"x64"
],
@@ -3817,9 +3798,9 @@
]
},
"node_modules/@rollup/rollup-openharmony-arm64": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.57.1.tgz",
- "integrity": "sha512-4wYoDpNg6o/oPximyc/NG+mYUejZrCU2q+2w6YZqrAs2UcNUChIZXjtafAiiZSUc7On8v5NyNj34Kzj/Ltk6dQ==",
+ "version": "4.58.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.58.0.tgz",
+ "integrity": "sha512-fd/zpJniln4ICdPkjWFhZYeY/bpnaN9pGa6ko+5WD38I0tTqk9lXMgXZg09MNdhpARngmxiCg0B0XUamNw/5BQ==",
"cpu": [
"arm64"
],
@@ -3831,9 +3812,9 @@
]
},
"node_modules/@rollup/rollup-win32-arm64-msvc": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.57.1.tgz",
- "integrity": "sha512-O54mtsV/6LW3P8qdTcamQmuC990HDfR71lo44oZMZlXU4tzLrbvTii87Ni9opq60ds0YzuAlEr/GNwuNluZyMQ==",
+ "version": "4.58.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.58.0.tgz",
+ "integrity": "sha512-YpG8dUOip7DCz3nr/JUfPbIUo+2d/dy++5bFzgi4ugOGBIox+qMbbqt/JoORwvI/C9Kn2tz6+Bieoqd5+B1CjA==",
"cpu": [
"arm64"
],
@@ -3845,9 +3826,9 @@
]
},
"node_modules/@rollup/rollup-win32-ia32-msvc": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.57.1.tgz",
- "integrity": "sha512-P3dLS+IerxCT/7D2q2FYcRdWRl22dNbrbBEtxdWhXrfIMPP9lQhb5h4Du04mdl5Woq05jVCDPCMF7Ub0NAjIew==",
+ "version": "4.58.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.58.0.tgz",
+ "integrity": "sha512-b9DI8jpFQVh4hIXFr0/+N/TzLdpBIoPzjt0Rt4xJbW3mzguV3mduR9cNgiuFcuL/TeORejJhCWiAXe3E/6PxWA==",
"cpu": [
"ia32"
],
@@ -3859,9 +3840,9 @@
]
},
"node_modules/@rollup/rollup-win32-x64-gnu": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.57.1.tgz",
- "integrity": "sha512-VMBH2eOOaKGtIJYleXsi2B8CPVADrh+TyNxJ4mWPnKfLB/DBUmzW+5m1xUrcwWoMfSLagIRpjUFeW5CO5hyciQ==",
+ "version": "4.58.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.58.0.tgz",
+ "integrity": "sha512-CSrVpmoRJFN06LL9xhkitkwUcTZtIotYAF5p6XOR2zW0Zz5mzb3IPpcoPhB02frzMHFNo1reQ9xSF5fFm3hUsQ==",
"cpu": [
"x64"
],
@@ -3873,9 +3854,9 @@
]
},
"node_modules/@rollup/rollup-win32-x64-msvc": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.57.1.tgz",
- "integrity": "sha512-mxRFDdHIWRxg3UfIIAwCm6NzvxG0jDX/wBN6KsQFTvKFqqg9vTrWUE68qEjHt19A5wwx5X5aUi2zuZT7YR0jrA==",
+ "version": "4.58.0",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.58.0.tgz",
+ "integrity": "sha512-QFsBgQNTnh5K0t/sBsjJLq24YVqEIVkGpfN2VHsnN90soZyhaiA9UUHufcctVNL4ypJY0wrwad0wslx2KJQ1/w==",
"cpu": [
"x64"
],
@@ -3887,9 +3868,9 @@
]
},
"node_modules/@rushstack/node-core-library": {
- "version": "5.19.1",
- "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.19.1.tgz",
- "integrity": "sha512-ESpb2Tajlatgbmzzukg6zyAhH+sICqJR2CNXNhXcEbz6UGCQfrKCtkxOpJTftWc8RGouroHG0Nud1SJAszvpmA==",
+ "version": "5.20.1",
+ "resolved": "https://registry.npmjs.org/@rushstack/node-core-library/-/node-core-library-5.20.1.tgz",
+ "integrity": "sha512-QvxZyh+RsTJ77JpQkS9K9lJujh6lj5WyMxieT0bdACtwqxEkGB9zCuSMX5UlXRweaIgSpu1ztdHmhV07fKUpMg==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3965,9 +3946,9 @@
"license": "ISC"
},
"node_modules/@rushstack/problem-matcher": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/@rushstack/problem-matcher/-/problem-matcher-0.1.1.tgz",
- "integrity": "sha512-Fm5XtS7+G8HLcJHCWpES5VmeMyjAKaWeyZU5qPzZC+22mPlJzAsOxymHiWIfuirtPckX3aptWws+K2d0BzniJA==",
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/@rushstack/problem-matcher/-/problem-matcher-0.2.1.tgz",
+ "integrity": "sha512-gulfhBs6n+I5b7DvjKRfhMGyUejtSgOHTclF/eONr8hcgF1APEDjhxIsfdUYYMzC3rvLwGluqLjbwCFZ8nxrog==",
"dev": true,
"license": "MIT",
"peerDependencies": {
@@ -3980,9 +3961,9 @@
}
},
"node_modules/@rushstack/rig-package": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.6.0.tgz",
- "integrity": "sha512-ZQmfzsLE2+Y91GF15c65L/slMRVhF6Hycq04D4TwtdGaUAbIXXg9c5pKA5KFU7M4QMaihoobp9JJYpYcaY3zOw==",
+ "version": "0.7.1",
+ "resolved": "https://registry.npmjs.org/@rushstack/rig-package/-/rig-package-0.7.1.tgz",
+ "integrity": "sha512-hLwDnp4yMcAd/gcUol8NPWNctpIXzVOgMyhZ8DagnEJls9TOZd0xF//5hS+YTiX7/+4rLfBra+NoB3rtFxjDdA==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -3991,14 +3972,14 @@
}
},
"node_modules/@rushstack/terminal": {
- "version": "0.21.0",
- "resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.21.0.tgz",
- "integrity": "sha512-cLaI4HwCNYmknM5ns4G+drqdEB6q3dCPV423+d3TZeBusYSSm09+nR7CnhzJMjJqeRcdMAaLnrA4M/3xDz4R3w==",
+ "version": "0.22.1",
+ "resolved": "https://registry.npmjs.org/@rushstack/terminal/-/terminal-0.22.1.tgz",
+ "integrity": "sha512-Mdtu0VN7v31O5Zcno8ZZH5kQHF13Ez7WN9Aio7nFJVcR36i4bkERionYrWgBDQJ0JdVPLKGecZER/xRU5IvGLw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@rushstack/node-core-library": "5.19.1",
- "@rushstack/problem-matcher": "0.1.1",
+ "@rushstack/node-core-library": "5.20.1",
+ "@rushstack/problem-matcher": "0.2.1",
"supports-color": "~8.1.1"
},
"peerDependencies": {
@@ -4011,13 +3992,13 @@
}
},
"node_modules/@rushstack/ts-command-line": {
- "version": "5.2.0",
- "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-5.2.0.tgz",
- "integrity": "sha512-lYxCX0nDdkDtCkVpvF0m25ymf66SaMWuppbD6b7MdkIzvGXKBXNIVZlwBH/C0YfkanrupnICWf2n4z3AKSfaHw==",
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/@rushstack/ts-command-line/-/ts-command-line-5.3.1.tgz",
+ "integrity": "sha512-mid/JIZSJafwy3x9e4v0wVLuAqSSYYErEHV0HXPALYLSBN13YNkR5caOk0hf97lSRKrxhtvQjGaDKSEelR3sMg==",
"dev": true,
"license": "MIT",
"dependencies": {
- "@rushstack/terminal": "0.21.0",
+ "@rushstack/terminal": "0.22.1",
"@types/argparse": "1.0.38",
"argparse": "~1.0.9",
"string-argv": "~0.3.1"
@@ -4117,6 +4098,22 @@
"url": "https://github.com/sponsors/epoberezkin"
}
},
+ "node_modules/@stryker-mutator/core/node_modules/minimatch": {
+ "version": "10.1.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.3.tgz",
+ "integrity": "sha512-IF6URNyBX7Z6XfvjpaNy5meRxPZiIf2OqtOoSLs+hLJ9pJAScnM1RjrFcbCaD85y42KcI+oZmKjFIJKYDFjQfg==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "brace-expansion": "^5.0.2"
+ },
+ "engines": {
+ "node": "20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
"node_modules/@stryker-mutator/core/node_modules/semver": {
"version": "7.7.4",
"resolved": "https://registry.npmjs.org/semver/-/semver-7.7.4.tgz",
@@ -4259,14 +4256,14 @@
"license": "Apache-2.0"
},
"node_modules/@stylistic/eslint-plugin": {
- "version": "5.8.0",
- "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-5.8.0.tgz",
- "integrity": "sha512-WNPVF/FfBAjyi3OA7gok8swRiImNLKI4dmV3iK/GC/0xSJR7eCzBFsw9hLZVgb1+MYNLy7aDsjohxN1hA/FIfQ==",
+ "version": "5.9.0",
+ "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-5.9.0.tgz",
+ "integrity": "sha512-FqqSkvDMYJReydrMhlugc71M76yLLQWNfmGq+SIlLa7N3kHp8Qq8i2PyWrVNAfjOyOIY+xv9XaaYwvVW7vroMA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.9.1",
- "@typescript-eslint/types": "^8.54.0",
+ "@typescript-eslint/types": "^8.56.0",
"eslint-visitor-keys": "^4.2.1",
"espree": "^10.4.0",
"estraverse": "^5.3.0",
@@ -4276,7 +4273,7 @@
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"peerDependencies": {
- "eslint": ">=9.0.0"
+ "eslint": "^9.0.0 || ^10.0.0"
}
},
"node_modules/@tootallnate/quickjs-emscripten": {
@@ -4326,14 +4323,14 @@
"license": "MIT"
},
"node_modules/@types/node": {
- "version": "25.2.3",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-25.2.3.tgz",
- "integrity": "sha512-m0jEgYlYz+mDJZ2+F4v8D1AyQb+QzsNqRuI7xg1VQX/KlKS0qT9r1Mo16yo5F/MtifXFgaofIFsdFMox2SxIbQ==",
+ "version": "25.3.0",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-25.3.0.tgz",
+ "integrity": "sha512-4K3bqJpXpqfg2XKGK9bpDTc6xO/xoUP/RBWS7AtRMug6zZFaRekiLzjVtAoZMquxoAbzBvy5nxQ7veS5eYzf8A==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
- "undici-types": "~7.16.0"
+ "undici-types": "~7.18.0"
}
},
"node_modules/@types/resolve": {
@@ -4543,6 +4540,23 @@
"typescript": ">=4.8.4 <6.0.0"
}
},
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
"node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
"version": "9.0.5",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
@@ -4615,9 +4629,9 @@
}
},
"node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.0.tgz",
- "integrity": "sha512-A0XeIi7CXU7nPlfHS9loMYEKxUaONu/hTEzHTGba9Huu94Cq1hPivf+DE5erJozZOky0LfvXAyrV/tcswpLI0Q==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz",
+ "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -4638,9 +4652,9 @@
}
},
"node_modules/acorn": {
- "version": "8.15.0",
- "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
- "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
+ "version": "8.16.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.16.0.tgz",
+ "integrity": "sha512-UVJyE9MttOsBQIDKw1skb9nAwQuR5wuGD3+82K6JgJlm/Y+KI92oNsMNGZCYdDsVtRHSak0pcV5Dno5+4jh9sw==",
"dev": true,
"license": "MIT",
"peer": true,
@@ -4830,9 +4844,9 @@
}
},
"node_modules/b4a": {
- "version": "1.7.5",
- "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.7.5.tgz",
- "integrity": "sha512-iEsKNwDh1wiWTps1/hdkNdmBgDlDVZP5U57ZVOlt+dNFqpc/lpPouCIxZw+DYBgc4P9NDfIZMPNR4CHNhzwLIA==",
+ "version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/b4a/-/b4a-1.8.0.tgz",
+ "integrity": "sha512-qRuSmNSkGQaHwNbM7J78Wwy+ghLEYF1zNrSeMxj4Kgw6y33O3mXcQ6Ie9fRvfU/YnxWkOchPXbaLb73TkIsfdg==",
"dev": true,
"license": "Apache-2.0",
"peerDependencies": {
@@ -4887,11 +4901,14 @@
}
},
"node_modules/balanced-match": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
- "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-4.0.3.tgz",
+ "integrity": "sha512-1pHv8LX9CpKut1Zp4EXey7Z8OfH11ONNH6Dhi2WDUt31VVZFXZzKwXcysBgqSumFCmR+0dqjMK5v5JiFHzi0+g==",
"dev": true,
- "license": "MIT"
+ "license": "MIT",
+ "engines": {
+ "node": "20 || >=22"
+ }
},
"node_modules/bare-events": {
"version": "2.8.2",
@@ -4992,12 +5009,15 @@
}
},
"node_modules/baseline-browser-mapping": {
- "version": "2.9.19",
- "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.19.tgz",
- "integrity": "sha512-ipDqC8FrAl/76p2SSWKSI+H9tFwm7vYqXQrItCuiVPt26Km0jS+NzSsBWAaBusvSbQcfJG+JitdMm+wZAgTYqg==",
+ "version": "2.10.0",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.0.tgz",
+ "integrity": "sha512-lIyg0szRfYbiy67j9KN8IyeD7q7hcmqnJ1ddWmNt19ItGpNN64mnllmxUNFIOdOm6by97jlL6wfpTTJrmnjWAA==",
"license": "Apache-2.0",
"bin": {
- "baseline-browser-mapping": "dist/cli.js"
+ "baseline-browser-mapping": "dist/cli.cjs"
+ },
+ "engines": {
+ "node": ">=6.0.0"
}
},
"node_modules/basic-ftp": {
@@ -5011,13 +5031,16 @@
}
},
"node_modules/brace-expansion": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
- "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.2.tgz",
+ "integrity": "sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==",
"dev": true,
"license": "MIT",
"dependencies": {
- "balanced-match": "^1.0.0"
+ "balanced-match": "^4.0.2"
+ },
+ "engines": {
+ "node": "20 || >=22"
}
},
"node_modules/braces": {
@@ -5435,9 +5458,9 @@
"license": "CC0-1.0"
},
"node_modules/cssdb": {
- "version": "8.7.1",
- "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.7.1.tgz",
- "integrity": "sha512-+F6LKx48RrdGOtE4DT5jz7Uo+VeyKXpK797FAevIkzjV8bMHz6xTO5F7gNDcRCHmPgD5jj2g6QCsY9zmVrh38A==",
+ "version": "8.8.0",
+ "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-8.8.0.tgz",
+ "integrity": "sha512-QbLeyz2Bgso1iRlh7IpWk6OKa3lLNGXsujVjDMPl9rOZpxKeiG69icLpbLCFxeURwmcdIfZqQyhlooKJYM4f8Q==",
"funding": [
{
"type": "opencollective",
@@ -5574,9 +5597,9 @@
}
},
"node_modules/electron-to-chromium": {
- "version": "1.5.286",
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.286.tgz",
- "integrity": "sha512-9tfDXhJ4RKFNerfjdCcZfufu49vg620741MNs26a9+bhLThdB+plgMeou98CAaHu/WATj2iHOOHTp1hWtABj2A==",
+ "version": "1.5.302",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.302.tgz",
+ "integrity": "sha512-sM6HAN2LyK82IyPBpznDRqlTQAtuSaO+ShzFiWTvoMJLHyZ+Y39r8VMfHzwbU8MVBzQ4Wdn85+wlZl2TLGIlwg==",
"license": "ISC"
},
"node_modules/emoji-regex": {
@@ -5694,16 +5717,16 @@
}
},
"node_modules/eslint": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.0.0.tgz",
- "integrity": "sha512-O0piBKY36YSJhlFSG8p9VUdPV/SxxS4FYDWVpr/9GJuMaepzwlf4J8I4ov1b+ySQfDTPhc3DtLaxcT1fN0yqCg==",
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-10.0.1.tgz",
+ "integrity": "sha512-20MV9SUdeN6Jd84xESsKhRly+/vxI+hwvpBMA93s+9dAcjdCuCojn4IqUGS3lvVaqjVYGYHSRMCpeFtF2rQYxQ==",
"dev": true,
"license": "MIT",
"peer": true,
"dependencies": {
"@eslint-community/eslint-utils": "^4.8.0",
"@eslint-community/regexpp": "^4.12.2",
- "@eslint/config-array": "^0.23.0",
+ "@eslint/config-array": "^0.23.2",
"@eslint/config-helpers": "^0.5.2",
"@eslint/core": "^1.1.0",
"@eslint/plugin-kit": "^0.6.0",
@@ -5715,9 +5738,9 @@
"cross-spawn": "^7.0.6",
"debug": "^4.3.2",
"escape-string-regexp": "^4.0.0",
- "eslint-scope": "^9.1.0",
- "eslint-visitor-keys": "^5.0.0",
- "espree": "^11.1.0",
+ "eslint-scope": "^9.1.1",
+ "eslint-visitor-keys": "^5.0.1",
+ "espree": "^11.1.1",
"esquery": "^1.7.0",
"esutils": "^2.0.2",
"fast-deep-equal": "^3.1.3",
@@ -5728,7 +5751,7 @@
"imurmurhash": "^0.1.4",
"is-glob": "^4.0.0",
"json-stable-stringify-without-jsonify": "^1.0.1",
- "minimatch": "^10.1.1",
+ "minimatch": "^10.2.1",
"natural-compare": "^1.4.0",
"optionator": "^0.9.3"
},
@@ -5751,9 +5774,9 @@
}
},
"node_modules/eslint-scope": {
- "version": "9.1.0",
- "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.0.tgz",
- "integrity": "sha512-CkWE42hOJsNj9FJRaoMX9waUFYhqY4jmyLFdAdzZr6VaCg3ynLYx4WnOdkaIifGfH4gsUcBTn4OZbHXkpLD0FQ==",
+ "version": "9.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-9.1.1.tgz",
+ "integrity": "sha512-GaUN0sWim5qc8KVErfPBWmc31LEsOkrUJbvJZV+xuL3u2phMUK4HIvXlWAakfC8W4nzlK+chPEAkYOYb5ZScIw==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
@@ -5783,9 +5806,9 @@
}
},
"node_modules/eslint/node_modules/ajv": {
- "version": "6.12.6",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
- "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "version": "6.14.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.14.0.tgz",
+ "integrity": "sha512-IWrosm/yrn43eiKqkfkHis7QioDleaXQHdDVPKg0FSwwd/DuvyX79TZnFOnYpB7dcsFAMmtFztZuXPDvSePkFw==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -5800,9 +5823,9 @@
}
},
"node_modules/eslint/node_modules/eslint-visitor-keys": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.0.tgz",
- "integrity": "sha512-A0XeIi7CXU7nPlfHS9loMYEKxUaONu/hTEzHTGba9Huu94Cq1hPivf+DE5erJozZOky0LfvXAyrV/tcswpLI0Q==",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-5.0.1.tgz",
+ "integrity": "sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==",
"dev": true,
"license": "Apache-2.0",
"engines": {
@@ -5813,15 +5836,15 @@
}
},
"node_modules/eslint/node_modules/espree": {
- "version": "11.1.0",
- "resolved": "https://registry.npmjs.org/espree/-/espree-11.1.0.tgz",
- "integrity": "sha512-WFWYhO1fV4iYkqOOvq8FbqIhr2pYfoDY0kCotMkDeNtGpiGGkZ1iov2u8ydjtgM8yF8rzK7oaTbw2NAzbAbehw==",
+ "version": "11.1.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-11.1.1.tgz",
+ "integrity": "sha512-AVHPqQoZYc+RUM4/3Ly5udlZY/U4LS8pIG05jEjWM2lQMU/oaZ7qshzAl2YP1tfNmXfftH3ohurfwNAug+MnsQ==",
"dev": true,
"license": "BSD-2-Clause",
"dependencies": {
- "acorn": "^8.15.0",
+ "acorn": "^8.16.0",
"acorn-jsx": "^5.3.2",
- "eslint-visitor-keys": "^5.0.0"
+ "eslint-visitor-keys": "^5.0.1"
},
"engines": {
"node": "^20.19.0 || ^22.13.0 || >=24"
@@ -6571,9 +6594,9 @@
}
},
"node_modules/hashery": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/hashery/-/hashery-1.4.0.tgz",
- "integrity": "sha512-Wn2i1In6XFxl8Az55kkgnFRiAlIAushzh26PTjL2AKtQcEfXrcLa7Hn5QOWGZEf3LU057P9TwwZjFyxfS1VuvQ==",
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/hashery/-/hashery-1.5.0.tgz",
+ "integrity": "sha512-nhQ6ExaOIqti2FDWoEMWARUqIKyjr2VcZzXShrI+A3zpeiuPWzx6iPftt44LhP74E5sW36B75N6VHbvRtpvO6Q==",
"dev": true,
"license": "MIT",
"dependencies": {
@@ -7051,9 +7074,9 @@
}
},
"node_modules/knip": {
- "version": "5.84.1",
- "resolved": "https://registry.npmjs.org/knip/-/knip-5.84.1.tgz",
- "integrity": "sha512-F1+yACEsSapAwmQLzfD4i9uPsnI82P4p5ABpNQ9pcc4fpQtjHEX34XDtNl5863I4O6SCECpymylcWDHI3ouhQQ==",
+ "version": "5.85.0",
+ "resolved": "https://registry.npmjs.org/knip/-/knip-5.85.0.tgz",
+ "integrity": "sha512-V2kyON+DZiYdNNdY6GALseiNCwX7dYdpz9Pv85AUn69Gk0UKCts+glOKWfe5KmaMByRjM9q17Mzj/KinTVOyxg==",
"dev": true,
"funding": [
{
@@ -7226,9 +7249,9 @@
"license": "CC0-1.0"
},
"node_modules/meow": {
- "version": "14.0.0",
- "resolved": "https://registry.npmjs.org/meow/-/meow-14.0.0.tgz",
- "integrity": "sha512-JhC3R1f6dbspVtmF3vKjAWz1EVIvwFrGGPLSdU6rK79xBwHWTuHoLnRX/t1/zHS1Ch1Y2UtIrih7DAHuH9JFJA==",
+ "version": "14.1.0",
+ "resolved": "https://registry.npmjs.org/meow/-/meow-14.1.0.tgz",
+ "integrity": "sha512-EDYo6VlmtnumlcBCbh1gLJ//9jvM/ndXHfVXIFrZVr6fGcwTUyCTFNTLCKuY3ffbK8L/+3Mzqnd58RojiZqHVw==",
"dev": true,
"license": "MIT",
"engines": {
@@ -7283,13 +7306,13 @@
"license": "ISC"
},
"node_modules/minimatch": {
- "version": "10.1.2",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.2.tgz",
- "integrity": "sha512-fu656aJ0n2kcXwsnwnv9g24tkU5uSmOlTjd6WyyaKm2Z+h1qmY6bAjrcaIxF/BslFqbZ8UBtbJi7KgQOZD2PTw==",
+ "version": "10.2.1",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.2.1.tgz",
+ "integrity": "sha512-MClCe8IL5nRRmawL6ib/eT4oLyeKMGCghibcDWK+J0hh0Q8kqSdia6BvbRMVk6mPa6WqUa5uR2oxt6C5jd533A==",
"dev": true,
"license": "BlueOak-1.0.0",
"dependencies": {
- "@isaacs/brace-expansion": "^5.0.1"
+ "brace-expansion": "^5.0.2"
},
"engines": {
"node": "20 || >=22"
@@ -7499,35 +7522,35 @@
}
},
"node_modules/oxc-resolver": {
- "version": "11.17.1",
- "resolved": "https://registry.npmjs.org/oxc-resolver/-/oxc-resolver-11.17.1.tgz",
- "integrity": "sha512-pyRXK9kH81zKlirHufkFhOFBZRks8iAMLwPH8gU7lvKFiuzUH9L8MxDEllazwOb8fjXMcWjY1PMDfMJ2/yh5cw==",
+ "version": "11.18.0",
+ "resolved": "https://registry.npmjs.org/oxc-resolver/-/oxc-resolver-11.18.0.tgz",
+ "integrity": "sha512-Fv/b05AfhpYoCDvsog6tgsDm2yIwIeJafpMFLncNwKHRYu+Y1xQu5Q/rgUn7xBfuhNgjtPO7C0jCf7p2fLDj1g==",
"dev": true,
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/Boshen"
},
"optionalDependencies": {
- "@oxc-resolver/binding-android-arm-eabi": "11.17.1",
- "@oxc-resolver/binding-android-arm64": "11.17.1",
- "@oxc-resolver/binding-darwin-arm64": "11.17.1",
- "@oxc-resolver/binding-darwin-x64": "11.17.1",
- "@oxc-resolver/binding-freebsd-x64": "11.17.1",
- "@oxc-resolver/binding-linux-arm-gnueabihf": "11.17.1",
- "@oxc-resolver/binding-linux-arm-musleabihf": "11.17.1",
- "@oxc-resolver/binding-linux-arm64-gnu": "11.17.1",
- "@oxc-resolver/binding-linux-arm64-musl": "11.17.1",
- "@oxc-resolver/binding-linux-ppc64-gnu": "11.17.1",
- "@oxc-resolver/binding-linux-riscv64-gnu": "11.17.1",
- "@oxc-resolver/binding-linux-riscv64-musl": "11.17.1",
- "@oxc-resolver/binding-linux-s390x-gnu": "11.17.1",
- "@oxc-resolver/binding-linux-x64-gnu": "11.17.1",
- "@oxc-resolver/binding-linux-x64-musl": "11.17.1",
- "@oxc-resolver/binding-openharmony-arm64": "11.17.1",
- "@oxc-resolver/binding-wasm32-wasi": "11.17.1",
- "@oxc-resolver/binding-win32-arm64-msvc": "11.17.1",
- "@oxc-resolver/binding-win32-ia32-msvc": "11.17.1",
- "@oxc-resolver/binding-win32-x64-msvc": "11.17.1"
+ "@oxc-resolver/binding-android-arm-eabi": "11.18.0",
+ "@oxc-resolver/binding-android-arm64": "11.18.0",
+ "@oxc-resolver/binding-darwin-arm64": "11.18.0",
+ "@oxc-resolver/binding-darwin-x64": "11.18.0",
+ "@oxc-resolver/binding-freebsd-x64": "11.18.0",
+ "@oxc-resolver/binding-linux-arm-gnueabihf": "11.18.0",
+ "@oxc-resolver/binding-linux-arm-musleabihf": "11.18.0",
+ "@oxc-resolver/binding-linux-arm64-gnu": "11.18.0",
+ "@oxc-resolver/binding-linux-arm64-musl": "11.18.0",
+ "@oxc-resolver/binding-linux-ppc64-gnu": "11.18.0",
+ "@oxc-resolver/binding-linux-riscv64-gnu": "11.18.0",
+ "@oxc-resolver/binding-linux-riscv64-musl": "11.18.0",
+ "@oxc-resolver/binding-linux-s390x-gnu": "11.18.0",
+ "@oxc-resolver/binding-linux-x64-gnu": "11.18.0",
+ "@oxc-resolver/binding-linux-x64-musl": "11.18.0",
+ "@oxc-resolver/binding-openharmony-arm64": "11.18.0",
+ "@oxc-resolver/binding-wasm32-wasi": "11.18.0",
+ "@oxc-resolver/binding-win32-arm64-msvc": "11.18.0",
+ "@oxc-resolver/binding-win32-ia32-msvc": "11.18.0",
+ "@oxc-resolver/binding-win32-x64-msvc": "11.18.0"
}
},
"node_modules/p-limit": {
@@ -8097,9 +8120,9 @@
}
},
"node_modules/puppeteer": {
- "version": "24.37.4",
- "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.37.4.tgz",
- "integrity": "sha512-SMSq+FL3gnglolhrIks3maRkrdQEjoDCesy6FXziMPWsF1DxoX+GVxRa82y+euzkzS52/UujM/BoaFPQ+AnPXQ==",
+ "version": "24.37.5",
+ "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-24.37.5.tgz",
+ "integrity": "sha512-3PAOIQLceyEmn1Fi76GkGO2EVxztv5OtdlB1m8hMUZL3f8KDHnlvXbvCXv+Ls7KzF1R0KdKBqLuT/Hhrok12hQ==",
"dev": true,
"hasInstallScript": true,
"license": "Apache-2.0",
@@ -8108,7 +8131,7 @@
"chromium-bidi": "14.0.0",
"cosmiconfig": "^9.0.0",
"devtools-protocol": "0.0.1566079",
- "puppeteer-core": "24.37.4",
+ "puppeteer-core": "24.37.5",
"typed-query-selector": "^2.12.0"
},
"bin": {
@@ -8119,9 +8142,9 @@
}
},
"node_modules/puppeteer-core": {
- "version": "24.37.4",
- "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.37.4.tgz",
- "integrity": "sha512-sQYtYgaNaLYO82k2FHmr7bR1tCmo2fBupEI7Kd0WpBlMropNcfxSTLOJXVRkhiHig0dUiMI7g0yq+HJI1IDCzg==",
+ "version": "24.37.5",
+ "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.37.5.tgz",
+ "integrity": "sha512-ybL7iE78YPN4T6J+sPLO7r0lSByp/0NN6PvfBEql219cOnttoTFzCWKiBOjstXSqi/OKpwae623DWAsL7cn2MQ==",
"dev": true,
"license": "Apache-2.0",
"dependencies": {
@@ -8328,9 +8351,9 @@
}
},
"node_modules/rollup": {
- "version": "4.57.1",
- "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.57.1.tgz",
- "integrity": "sha512-oQL6lgK3e2QZeQ7gcgIkS2YZPg5slw37hYufJ3edKlfQSGGm8ICoxswK15ntSzF/a8+h7ekRy7k7oWc3BQ7y8A==",
+ "version": "4.58.0",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.58.0.tgz",
+ "integrity": "sha512-wbT0mBmWbIvvq8NeEYWWvevvxnOyhKChir47S66WCxw1SXqhw7ssIYejnQEVt7XYQpsj2y8F9PM+Cr3SNEa0gw==",
"dev": true,
"license": "MIT",
"peer": true,
@@ -8345,31 +8368,31 @@
"npm": ">=8.0.0"
},
"optionalDependencies": {
- "@rollup/rollup-android-arm-eabi": "4.57.1",
- "@rollup/rollup-android-arm64": "4.57.1",
- "@rollup/rollup-darwin-arm64": "4.57.1",
- "@rollup/rollup-darwin-x64": "4.57.1",
- "@rollup/rollup-freebsd-arm64": "4.57.1",
- "@rollup/rollup-freebsd-x64": "4.57.1",
- "@rollup/rollup-linux-arm-gnueabihf": "4.57.1",
- "@rollup/rollup-linux-arm-musleabihf": "4.57.1",
- "@rollup/rollup-linux-arm64-gnu": "4.57.1",
- "@rollup/rollup-linux-arm64-musl": "4.57.1",
- "@rollup/rollup-linux-loong64-gnu": "4.57.1",
- "@rollup/rollup-linux-loong64-musl": "4.57.1",
- "@rollup/rollup-linux-ppc64-gnu": "4.57.1",
- "@rollup/rollup-linux-ppc64-musl": "4.57.1",
- "@rollup/rollup-linux-riscv64-gnu": "4.57.1",
- "@rollup/rollup-linux-riscv64-musl": "4.57.1",
- "@rollup/rollup-linux-s390x-gnu": "4.57.1",
- "@rollup/rollup-linux-x64-gnu": "4.57.1",
- "@rollup/rollup-linux-x64-musl": "4.57.1",
- "@rollup/rollup-openbsd-x64": "4.57.1",
- "@rollup/rollup-openharmony-arm64": "4.57.1",
- "@rollup/rollup-win32-arm64-msvc": "4.57.1",
- "@rollup/rollup-win32-ia32-msvc": "4.57.1",
- "@rollup/rollup-win32-x64-gnu": "4.57.1",
- "@rollup/rollup-win32-x64-msvc": "4.57.1",
+ "@rollup/rollup-android-arm-eabi": "4.58.0",
+ "@rollup/rollup-android-arm64": "4.58.0",
+ "@rollup/rollup-darwin-arm64": "4.58.0",
+ "@rollup/rollup-darwin-x64": "4.58.0",
+ "@rollup/rollup-freebsd-arm64": "4.58.0",
+ "@rollup/rollup-freebsd-x64": "4.58.0",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.58.0",
+ "@rollup/rollup-linux-arm-musleabihf": "4.58.0",
+ "@rollup/rollup-linux-arm64-gnu": "4.58.0",
+ "@rollup/rollup-linux-arm64-musl": "4.58.0",
+ "@rollup/rollup-linux-loong64-gnu": "4.58.0",
+ "@rollup/rollup-linux-loong64-musl": "4.58.0",
+ "@rollup/rollup-linux-ppc64-gnu": "4.58.0",
+ "@rollup/rollup-linux-ppc64-musl": "4.58.0",
+ "@rollup/rollup-linux-riscv64-gnu": "4.58.0",
+ "@rollup/rollup-linux-riscv64-musl": "4.58.0",
+ "@rollup/rollup-linux-s390x-gnu": "4.58.0",
+ "@rollup/rollup-linux-x64-gnu": "4.58.0",
+ "@rollup/rollup-linux-x64-musl": "4.58.0",
+ "@rollup/rollup-openbsd-x64": "4.58.0",
+ "@rollup/rollup-openharmony-arm64": "4.58.0",
+ "@rollup/rollup-win32-arm64-msvc": "4.58.0",
+ "@rollup/rollup-win32-ia32-msvc": "4.58.0",
+ "@rollup/rollup-win32-x64-gnu": "4.58.0",
+ "@rollup/rollup-win32-x64-msvc": "4.58.0",
"fsevents": "~2.3.2"
}
},
@@ -9287,16 +9310,16 @@
}
},
"node_modules/underscore": {
- "version": "1.13.7",
- "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.7.tgz",
- "integrity": "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g==",
+ "version": "1.13.8",
+ "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.8.tgz",
+ "integrity": "sha512-DXtD3ZtEQzc7M8m4cXotyHR+FAS18C64asBYY5vqZexfYryNNnDc02W4hKg3rdQuqOYas1jkseX0+nZXjTXnvQ==",
"dev": true,
"license": "MIT"
},
"node_modules/undici-types": {
- "version": "7.16.0",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz",
- "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.18.2.tgz",
+ "integrity": "sha512-AsuCzffGHJybSaRrmr5eHr81mwJU3kjw6M+uprWvCXiNeN9SOGwQ3Jn8jb8m3Z6izVgknn1R0FTCEAP2QrLY/w==",
"dev": true,
"license": "MIT"
},
@@ -11153,6 +11176,33 @@
"postcss": "^8.4"
}
},
+ "plugins/postcss-font-width-property": {
+ "name": "@csstools/postcss-font-width-property",
+ "version": "0.0.0",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "license": "MIT-0",
+ "dependencies": {
+ "@csstools/utilities": "^3.0.0"
+ },
+ "devDependencies": {
+ "@csstools/postcss-tape": "*"
+ },
+ "engines": {
+ "node": ">=20.19.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ }
+ },
"plugins/postcss-gamut-mapping": {
"name": "@csstools/postcss-gamut-mapping",
"version": "3.0.1",
diff --git a/plugins/postcss-font-width-property/.gitignore b/plugins/postcss-font-width-property/.gitignore
new file mode 100644
index 0000000000..e5b28db4ad
--- /dev/null
+++ b/plugins/postcss-font-width-property/.gitignore
@@ -0,0 +1,6 @@
+node_modules
+package-lock.json
+yarn.lock
+*.result.css
+*.result.css.map
+*.result.html
diff --git a/plugins/postcss-font-width-property/.nvmrc b/plugins/postcss-font-width-property/.nvmrc
new file mode 100644
index 0000000000..28d6ff1c82
--- /dev/null
+++ b/plugins/postcss-font-width-property/.nvmrc
@@ -0,0 +1 @@
+v25.1.0
diff --git a/plugins/postcss-font-width-property/CHANGELOG.md b/plugins/postcss-font-width-property/CHANGELOG.md
new file mode 100644
index 0000000000..96697b866b
--- /dev/null
+++ b/plugins/postcss-font-width-property/CHANGELOG.md
@@ -0,0 +1,5 @@
+# Changes to PostCSS Font Width Property
+
+### Unreleased (major)
+
+- Initial version
diff --git a/plugins/postcss-font-width-property/INSTALL.md b/plugins/postcss-font-width-property/INSTALL.md
new file mode 100644
index 0000000000..318c9b1581
--- /dev/null
+++ b/plugins/postcss-font-width-property/INSTALL.md
@@ -0,0 +1,235 @@
+# Installing PostCSS Font Width Property
+
+[PostCSS Font Width Property] runs in all Node environments, with special instructions for:
+
+- [Node](#node)
+- [PostCSS CLI](#postcss-cli)
+- [PostCSS Load Config](#postcss-load-config)
+- [Webpack](#webpack)
+- [Next.js](#nextjs)
+- [Gulp](#gulp)
+- [Grunt](#grunt)
+
+
+
+## Node
+
+Add [PostCSS Font Width Property] to your project:
+
+```bash
+npm install postcss @csstools/postcss-font-width-property --save-dev
+```
+
+Use it as a [PostCSS] plugin:
+
+```js
+// commonjs
+const postcss = require('postcss');
+const postcssFontWidthProperty = require('@csstools/postcss-font-width-property');
+
+postcss([
+ postcssFontWidthProperty(/* pluginOptions */)
+]).process(YOUR_CSS /*, processOptions */);
+```
+
+```js
+// esm
+import postcss from 'postcss';
+import postcssFontWidthProperty from '@csstools/postcss-font-width-property';
+
+postcss([
+ postcssFontWidthProperty(/* pluginOptions */)
+]).process(YOUR_CSS /*, processOptions */);
+```
+
+## PostCSS CLI
+
+Add [PostCSS CLI] to your project:
+
+```bash
+npm install postcss-cli @csstools/postcss-font-width-property --save-dev
+```
+
+Use [PostCSS Font Width Property] in your `postcss.config.js` configuration file:
+
+```js
+const postcssFontWidthProperty = require('@csstools/postcss-font-width-property');
+
+module.exports = {
+ plugins: [
+ postcssFontWidthProperty(/* pluginOptions */)
+ ]
+}
+```
+
+## PostCSS Load Config
+
+If your framework/CLI supports [`postcss-load-config`](https://github.com/postcss/postcss-load-config).
+
+```bash
+npm install @csstools/postcss-font-width-property --save-dev
+```
+
+`package.json`:
+
+```json
+{
+ "postcss": {
+ "plugins": {
+ "@csstools/postcss-font-width-property": {}
+ }
+ }
+}
+```
+
+`.postcssrc.json`:
+
+```json
+{
+ "plugins": {
+ "@csstools/postcss-font-width-property": {}
+ }
+}
+```
+
+_See the [README of `postcss-load-config`](https://github.com/postcss/postcss-load-config#usage) for more usage options._
+
+## Webpack
+
+_Webpack version 5_
+
+Add [PostCSS Loader] to your project:
+
+```bash
+npm install postcss-loader @csstools/postcss-font-width-property --save-dev
+```
+
+Use [PostCSS Font Width Property] in your Webpack configuration:
+
+```js
+module.exports = {
+ module: {
+ rules: [
+ {
+ test: /\.css$/i,
+ use: [
+ "style-loader",
+ {
+ loader: "css-loader",
+ options: { importLoaders: 1 },
+ },
+ {
+ loader: "postcss-loader",
+ options: {
+ postcssOptions: {
+ plugins: [
+ // Other plugins,
+ [
+ "@csstools/postcss-font-width-property",
+ {
+ // Options
+ },
+ ],
+ ],
+ },
+ },
+ },
+ ],
+ },
+ ],
+ },
+};
+```
+
+## Next.js
+
+Read the instructions on how to [customize the PostCSS configuration in Next.js](https://nextjs.org/docs/advanced-features/customizing-postcss-config)
+
+```bash
+npm install @csstools/postcss-font-width-property --save-dev
+```
+
+Use [PostCSS Font Width Property] in your `postcss.config.json` file:
+
+```json
+{
+ "plugins": [
+ "@csstools/postcss-font-width-property"
+ ]
+}
+```
+
+```json5
+{
+ "plugins": [
+ [
+ "@csstools/postcss-font-width-property",
+ {
+ // Optionally add plugin options
+ }
+ ]
+ ]
+}
+```
+
+## Gulp
+
+Add [Gulp PostCSS] to your project:
+
+```bash
+npm install gulp-postcss @csstools/postcss-font-width-property --save-dev
+```
+
+Use [PostCSS Font Width Property] in your Gulpfile:
+
+```js
+const postcss = require('gulp-postcss');
+const postcssFontWidthProperty = require('@csstools/postcss-font-width-property');
+
+gulp.task('css', function () {
+ var plugins = [
+ postcssFontWidthProperty(/* pluginOptions */)
+ ];
+
+ return gulp.src('./src/*.css')
+ .pipe(postcss(plugins))
+ .pipe(gulp.dest('.'));
+});
+```
+
+## Grunt
+
+Add [Grunt PostCSS] to your project:
+
+```bash
+npm install grunt-postcss @csstools/postcss-font-width-property --save-dev
+```
+
+Use [PostCSS Font Width Property] in your Gruntfile:
+
+```js
+const postcssFontWidthProperty = require('@csstools/postcss-font-width-property');
+
+grunt.loadNpmTasks('grunt-postcss');
+
+grunt.initConfig({
+ postcss: {
+ options: {
+ processors: [
+ postcssFontWidthProperty(/* pluginOptions */)
+ ]
+ },
+ dist: {
+ src: '*.css'
+ }
+ }
+});
+```
+
+[Gulp PostCSS]: https://github.com/postcss/gulp-postcss
+[Grunt PostCSS]: https://github.com/nDmitry/grunt-postcss
+[PostCSS]: https://github.com/postcss/postcss
+[PostCSS CLI]: https://github.com/postcss/postcss-cli
+[PostCSS Loader]: https://github.com/postcss/postcss-loader
+[PostCSS Font Width Property]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-font-width-property
+[Next.js]: https://nextjs.org
diff --git a/plugins/postcss-font-width-property/LICENSE.md b/plugins/postcss-font-width-property/LICENSE.md
new file mode 100644
index 0000000000..e8ae93b9f9
--- /dev/null
+++ b/plugins/postcss-font-width-property/LICENSE.md
@@ -0,0 +1,18 @@
+MIT No Attribution (MIT-0)
+
+Copyright © CSSTools Contributors
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the “Software”), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so.
+
+THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/plugins/postcss-font-width-property/README.md b/plugins/postcss-font-width-property/README.md
new file mode 100644
index 0000000000..648f84d011
--- /dev/null
+++ b/plugins/postcss-font-width-property/README.md
@@ -0,0 +1,113 @@
+# PostCSS Font Width Property [
][PostCSS]
+
+[
][npm-url] [
][cli-url] [
][discord]
[
][css-url] [
][css-url]
+
+```bash
+npm install @csstools/postcss-font-width-property --save-dev
+```
+
+[PostCSS Font Width Property] lets you use the `font-width` property and descriptor follow the [CSS Fonts Specification].
+
+```css
+@font-face {
+ src: url("foo.ttf");
+ font-family: "foo";
+ font-style: normal;
+ font-width: 1% 1000%;
+}
+
+.foo {
+ font-width: 50%;
+}
+
+/* becomes */
+
+@font-face {
+ src: url("foo.ttf");
+ font-family: "foo";
+ font-style: normal;
+ font-stretch: 1% 1000%;
+}
+
+.foo {
+ font-stretch: 50%;
+}
+```
+
+## Usage
+
+Add [PostCSS Font Width Property] to your project:
+
+```bash
+npm install postcss @csstools/postcss-font-width-property --save-dev
+```
+
+Use it as a [PostCSS] plugin:
+
+```js
+const postcss = require('postcss');
+const postcssFontWidthProperty = require('@csstools/postcss-font-width-property');
+
+postcss([
+ postcssFontWidthProperty(/* pluginOptions */)
+]).process(YOUR_CSS /*, processOptions */);
+```
+
+[PostCSS Font Width Property] runs in all Node environments, with special
+instructions for:
+
+- [Node](INSTALL.md#node)
+- [PostCSS CLI](INSTALL.md#postcss-cli)
+- [PostCSS Load Config](INSTALL.md#postcss-load-config)
+- [Webpack](INSTALL.md#webpack)
+- [Next.js](INSTALL.md#nextjs)
+- [Gulp](INSTALL.md#gulp)
+- [Grunt](INSTALL.md#grunt)
+
+## Options
+
+### preserve
+
+The `preserve` option determines whether the original notation
+is preserved. By default, it is not preserved.
+
+```js
+postcssFontWidthProperty({ preserve: true })
+```
+
+```css
+@font-face {
+ src: url("foo.ttf");
+ font-family: "foo";
+ font-style: normal;
+ font-width: 1% 1000%;
+}
+
+.foo {
+ font-width: 50%;
+}
+
+/* becomes */
+
+@font-face {
+ src: url("foo.ttf");
+ font-family: "foo";
+ font-style: normal;
+ font-stretch: 1% 1000%;
+ font-width: 1% 1000%;
+}
+
+.foo {
+ font-stretch: 50%;
+ font-width: 50%;
+}
+```
+
+[cli-url]: https://github.com/csstools/postcss-plugins/actions/workflows/test.yml?query=workflow/test
+[css-url]: https://cssdb.org/#font-width-property
+[discord]: https://discord.gg/bUadyRwkJS
+[npm-url]: https://www.npmjs.com/package/@csstools/postcss-font-width-property
+
+[PostCSS]: https://github.com/postcss/postcss
+[PostCSS Font Width Property]: https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-font-width-property
+[CSS Fonts Specification]: https://drafts.csswg.org/css-fonts/#font-stretch-prop
diff --git a/plugins/postcss-font-width-property/api-extractor.json b/plugins/postcss-font-width-property/api-extractor.json
new file mode 100644
index 0000000000..42058be517
--- /dev/null
+++ b/plugins/postcss-font-width-property/api-extractor.json
@@ -0,0 +1,4 @@
+{
+ "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
+ "extends": "../../api-extractor.json"
+}
diff --git a/plugins/postcss-font-width-property/dist/index.d.ts b/plugins/postcss-font-width-property/dist/index.d.ts
new file mode 100644
index 0000000000..0f11de04f8
--- /dev/null
+++ b/plugins/postcss-font-width-property/dist/index.d.ts
@@ -0,0 +1,13 @@
+import type { PluginCreator } from 'postcss';
+
+declare const creator: PluginCreator;
+export default creator;
+export { creator as 'module.exports' }
+
+/** postcss-font-width-property plugin options */
+export declare type pluginOptions = {
+ /** Preserve the original notation. default: false */
+ preserve?: boolean;
+};
+
+export { }
diff --git a/plugins/postcss-font-width-property/dist/index.mjs b/plugins/postcss-font-width-property/dist/index.mjs
new file mode 100644
index 0000000000..77006394d4
--- /dev/null
+++ b/plugins/postcss-font-width-property/dist/index.mjs
@@ -0,0 +1 @@
+import{hasSupportsAtRuleAncestor as t}from"@csstools/utilities";const e=/^font-width$/i,o=/\bfont-width\b/i,s=/^font-stretch$/i,creator=s=>{const r=Object.assign({preserve:!1},s);return{postcssPlugin:"postcss-font-width-property",Declaration(s){e.test(s.prop)&&(hasFallback(s)||t(s,o)||(s.cloneBefore({prop:"font-stretch"}),r.preserve||s.remove()))}}};function hasFallback(t){const e=t.parent;if(!e)return!1;for(const o of e.nodes)if(o!==t&&"decl"===o.type&&s.test(o.prop))return!0;return!1}creator.postcss=!0;export{creator as default,creator as"module.exports"};
diff --git a/plugins/postcss-font-width-property/docs/README.md b/plugins/postcss-font-width-property/docs/README.md
new file mode 100644
index 0000000000..a2fe471863
--- /dev/null
+++ b/plugins/postcss-font-width-property/docs/README.md
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+[] lets you use the `font-width` property and descriptor follow the [CSS Fonts Specification].
+
+```css
+
+
+/* becomes */
+
+
+```
+
+
+
+
+
+## Options
+
+### preserve
+
+The `preserve` option determines whether the original notation
+is preserved. By default, it is not preserved.
+
+```js
+({ preserve: true })
+```
+
+```css
+
+
+/* becomes */
+
+
+```
+
+
+[CSS Fonts Specification]:
diff --git a/plugins/postcss-font-width-property/package.json b/plugins/postcss-font-width-property/package.json
new file mode 100644
index 0000000000..cde334bced
--- /dev/null
+++ b/plugins/postcss-font-width-property/package.json
@@ -0,0 +1,80 @@
+{
+ "name": "@csstools/postcss-font-width-property",
+ "description": "Use the font-width property in CSS",
+ "version": "0.0.0",
+ "contributors": [
+ {
+ "name": "Antonio Laguna",
+ "email": "antonio@laguna.es",
+ "url": "https://antonio.laguna.es"
+ },
+ {
+ "name": "Romain Menke",
+ "email": "romainmenke@gmail.com"
+ }
+ ],
+ "license": "MIT-0",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/csstools"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/csstools"
+ }
+ ],
+ "engines": {
+ "node": ">=20.19.0"
+ },
+ "type": "module",
+ "exports": {
+ ".": {
+ "types": "./dist/index.d.ts",
+ "default": "./dist/index.mjs"
+ }
+ },
+ "files": [
+ "CHANGELOG.md",
+ "LICENSE.md",
+ "README.md",
+ "dist"
+ ],
+ "dependencies": {
+ "@csstools/utilities": "^3.0.0"
+ },
+ "peerDependencies": {
+ "postcss": "^8.4"
+ },
+ "devDependencies": {
+ "@csstools/postcss-tape": "*"
+ },
+ "scripts": {
+ "build": "rollup -c ../../rollup/default.mjs",
+ "docs": "node ../../.github/bin/generate-docs/install.mjs && node ../../.github/bin/generate-docs/readme.mjs",
+ "lint": "node ../../.github/bin/format-package-json.mjs",
+ "prepublishOnly": "npm run build && npm run test",
+ "test": "node --test",
+ "test:rewrite-expects": "REWRITE_EXPECTS=true node --test"
+ },
+ "homepage": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-font-width-property#readme",
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/csstools/postcss-plugins.git",
+ "directory": "plugins/postcss-font-width-property"
+ },
+ "bugs": "https://github.com/csstools/postcss-plugins/issues",
+ "keywords": [
+ "font-width",
+ "postcss-plugin"
+ ],
+ "csstools": {
+ "cssdbId": "font-width-property",
+ "exportName": "postcssFontWidthProperty",
+ "humanReadableName": "PostCSS Font Width Property",
+ "specUrl": "https://drafts.csswg.org/css-fonts/#font-stretch-prop"
+ },
+ "volta": {
+ "extends": "../../package.json"
+ }
+}
diff --git a/plugins/postcss-font-width-property/src/index.ts b/plugins/postcss-font-width-property/src/index.ts
new file mode 100644
index 0000000000..e192ea823f
--- /dev/null
+++ b/plugins/postcss-font-width-property/src/index.ts
@@ -0,0 +1,77 @@
+import { hasSupportsAtRuleAncestor } from '@csstools/utilities';
+import type { Declaration, PluginCreator } from 'postcss';
+
+/** postcss-font-width-property plugin options */
+export type pluginOptions = {
+ /** Preserve the original notation. default: false */
+ preserve?: boolean,
+};
+
+const IS_FONT_WIDTH_REGEX = /^font-width$/i;
+const HAS_FONT_WIDTH_REGEX = /\bfont-width\b/i;
+const IS_FONT_STRETCH_REGEX = /^font-stretch$/i;
+
+const creator: PluginCreator = (opts?: pluginOptions) => {
+ const options: pluginOptions = Object.assign(
+ // Default options
+ {
+ preserve: false,
+ },
+ // Provided options
+ opts,
+ );
+
+ return {
+ postcssPlugin: 'postcss-font-width-property',
+ Declaration(decl): void {
+ if (!IS_FONT_WIDTH_REGEX.test(decl.prop)) {
+ return;
+ }
+
+ if (hasFallback(decl)) {
+ return;
+ }
+
+ if (hasSupportsAtRuleAncestor(decl, HAS_FONT_WIDTH_REGEX)) {
+ return;
+ }
+
+ // Insert the new value before the current value.
+ decl.cloneBefore({
+ prop: 'font-stretch',
+ });
+
+ // If the current value is preserved we are done and return here.
+ if (options.preserve) {
+ return;
+ }
+
+ // If the current value is not preserved we remove it.
+ decl.remove();
+ },
+ };
+};
+
+function hasFallback(node: Declaration): boolean {
+ const parent = node.parent;
+ if (!parent) {
+ return false;
+ }
+
+ for (const sibling of parent.nodes) {
+ if (sibling === node) {
+ continue;
+ }
+
+ if (sibling.type === 'decl' && IS_FONT_STRETCH_REGEX.test(sibling.prop)) {
+ return true;
+ }
+ }
+
+ return false;
+}
+
+creator.postcss = true;
+
+export default creator;
+export { creator as 'module.exports' };
diff --git a/plugins/postcss-font-width-property/test/_import.mjs b/plugins/postcss-font-width-property/test/_import.mjs
new file mode 100644
index 0000000000..3cb50a4afc
--- /dev/null
+++ b/plugins/postcss-font-width-property/test/_import.mjs
@@ -0,0 +1,10 @@
+import assert from 'node:assert/strict';
+import test from 'node:test';
+import plugin from '@csstools/postcss-font-width-property';
+
+test('import', () => {
+ plugin();
+ assert.ok(plugin.postcss, 'should have "postcss flag"');
+ assert.equal(typeof plugin, 'function', 'should return a function');
+});
+
diff --git a/plugins/postcss-font-width-property/test/_require.cjs b/plugins/postcss-font-width-property/test/_require.cjs
new file mode 100644
index 0000000000..ba9bf9cd88
--- /dev/null
+++ b/plugins/postcss-font-width-property/test/_require.cjs
@@ -0,0 +1,9 @@
+const assert = require('node:assert/strict');
+const test = require('node:test');
+const plugin = require('@csstools/postcss-font-width-property');
+
+test('require', () => {
+ plugin();
+ assert.ok(plugin.postcss, 'should have "postcss flag"');
+ assert.equal(typeof plugin, 'function', 'should return a function');
+});
diff --git a/plugins/postcss-font-width-property/test/_tape.mjs b/plugins/postcss-font-width-property/test/_tape.mjs
new file mode 100644
index 0000000000..0957b463d6
--- /dev/null
+++ b/plugins/postcss-font-width-property/test/_tape.mjs
@@ -0,0 +1,23 @@
+import { postcssTape } from '@csstools/postcss-tape';
+import plugin from '@csstools/postcss-font-width-property';
+
+postcssTape(plugin)({
+ basic: {
+ message: 'supports basic usage',
+ },
+ 'basic:preserve-true': {
+ message: 'supports basic usage',
+ options: {
+ preserve: true,
+ },
+ },
+ 'examples/example': {
+ message: 'minimal example',
+ },
+ 'examples/example:preserve-true': {
+ message: 'minimal example',
+ options: {
+ preserve: true,
+ },
+ },
+});
diff --git a/plugins/postcss-font-width-property/test/basic.css b/plugins/postcss-font-width-property/test/basic.css
new file mode 100644
index 0000000000..668dcb7fc2
--- /dev/null
+++ b/plugins/postcss-font-width-property/test/basic.css
@@ -0,0 +1,30 @@
+@font-face {
+ src: url("https://mdn.github.io/shared-assets/fonts/LeagueMono-VF.ttf");
+ font-family: "foo";
+ font-style: normal;
+ font-width: 1% 1000%;
+}
+
+.foo {
+ font-width: 50%;
+}
+
+@font-face {
+ src: url("https://mdn.github.io/shared-assets/fonts/LeagueMono-VF.ttf");
+ font-family: "ignore";
+ font-style: normal;
+ font-stretch: 1% 1000%;
+ font-width: 1% 1000%;
+
+}
+
+.ignore {
+ font-stretch: 50%;
+ font-width: 50%;
+}
+
+@supports (font-width: 1%) {
+ .ignore {
+ font-width: 50%;
+ }
+}
diff --git a/plugins/postcss-font-width-property/test/basic.expect.css b/plugins/postcss-font-width-property/test/basic.expect.css
new file mode 100644
index 0000000000..7400ba038b
--- /dev/null
+++ b/plugins/postcss-font-width-property/test/basic.expect.css
@@ -0,0 +1,30 @@
+@font-face {
+ src: url("https://mdn.github.io/shared-assets/fonts/LeagueMono-VF.ttf");
+ font-family: "foo";
+ font-style: normal;
+ font-stretch: 1% 1000%;
+}
+
+.foo {
+ font-stretch: 50%;
+}
+
+@font-face {
+ src: url("https://mdn.github.io/shared-assets/fonts/LeagueMono-VF.ttf");
+ font-family: "ignore";
+ font-style: normal;
+ font-stretch: 1% 1000%;
+ font-width: 1% 1000%;
+
+}
+
+.ignore {
+ font-stretch: 50%;
+ font-width: 50%;
+}
+
+@supports (font-width: 1%) {
+ .ignore {
+ font-width: 50%;
+ }
+}
diff --git a/plugins/postcss-font-width-property/test/basic.preserve-true.expect.css b/plugins/postcss-font-width-property/test/basic.preserve-true.expect.css
new file mode 100644
index 0000000000..311763f3c8
--- /dev/null
+++ b/plugins/postcss-font-width-property/test/basic.preserve-true.expect.css
@@ -0,0 +1,32 @@
+@font-face {
+ src: url("https://mdn.github.io/shared-assets/fonts/LeagueMono-VF.ttf");
+ font-family: "foo";
+ font-style: normal;
+ font-stretch: 1% 1000%;
+ font-width: 1% 1000%;
+}
+
+.foo {
+ font-stretch: 50%;
+ font-width: 50%;
+}
+
+@font-face {
+ src: url("https://mdn.github.io/shared-assets/fonts/LeagueMono-VF.ttf");
+ font-family: "ignore";
+ font-style: normal;
+ font-stretch: 1% 1000%;
+ font-width: 1% 1000%;
+
+}
+
+.ignore {
+ font-stretch: 50%;
+ font-width: 50%;
+}
+
+@supports (font-width: 1%) {
+ .ignore {
+ font-width: 50%;
+ }
+}
diff --git a/plugins/postcss-font-width-property/test/examples/example.css b/plugins/postcss-font-width-property/test/examples/example.css
new file mode 100644
index 0000000000..76d62a6c04
--- /dev/null
+++ b/plugins/postcss-font-width-property/test/examples/example.css
@@ -0,0 +1,10 @@
+@font-face {
+ src: url("foo.ttf");
+ font-family: "foo";
+ font-style: normal;
+ font-width: 1% 1000%;
+}
+
+.foo {
+ font-width: 50%;
+}
diff --git a/plugins/postcss-font-width-property/test/examples/example.expect.css b/plugins/postcss-font-width-property/test/examples/example.expect.css
new file mode 100644
index 0000000000..ca5724d5b1
--- /dev/null
+++ b/plugins/postcss-font-width-property/test/examples/example.expect.css
@@ -0,0 +1,10 @@
+@font-face {
+ src: url("foo.ttf");
+ font-family: "foo";
+ font-style: normal;
+ font-stretch: 1% 1000%;
+}
+
+.foo {
+ font-stretch: 50%;
+}
diff --git a/plugins/postcss-font-width-property/test/examples/example.preserve-true.expect.css b/plugins/postcss-font-width-property/test/examples/example.preserve-true.expect.css
new file mode 100644
index 0000000000..5c917f8e22
--- /dev/null
+++ b/plugins/postcss-font-width-property/test/examples/example.preserve-true.expect.css
@@ -0,0 +1,12 @@
+@font-face {
+ src: url("foo.ttf");
+ font-family: "foo";
+ font-style: normal;
+ font-stretch: 1% 1000%;
+ font-width: 1% 1000%;
+}
+
+.foo {
+ font-stretch: 50%;
+ font-width: 50%;
+}
diff --git a/plugins/postcss-font-width-property/tsconfig.json b/plugins/postcss-font-width-property/tsconfig.json
new file mode 100644
index 0000000000..500af6d266
--- /dev/null
+++ b/plugins/postcss-font-width-property/tsconfig.json
@@ -0,0 +1,10 @@
+{
+ "extends": "../../tsconfig.json",
+ "compilerOptions": {
+ "outDir": "dist",
+ "declarationDir": ".",
+ "strict": true
+ },
+ "include": ["./src/**/*"],
+ "exclude": ["dist"]
+}
diff --git a/rollup/configs/externals.mjs b/rollup/configs/externals.mjs
index 21f423c69a..00f01669b6 100644
--- a/rollup/configs/externals.mjs
+++ b/rollup/configs/externals.mjs
@@ -35,6 +35,7 @@ export const externalsForCLI = [
'@csstools/postcss-contrast-color-function',
'@csstools/postcss-exponential-functions',
'@csstools/postcss-font-format-keywords',
+ '@csstools/postcss-font-width-property',
'@csstools/postcss-gamut-mapping',
'@csstools/postcss-global-data',
'@csstools/postcss-gradients-interpolation-method',
@@ -148,6 +149,7 @@ export const externalsForPlugin = [
'@csstools/postcss-contrast-color-function',
'@csstools/postcss-exponential-functions',
'@csstools/postcss-font-format-keywords',
+ '@csstools/postcss-font-width-property',
'@csstools/postcss-gamut-mapping',
'@csstools/postcss-gradients-interpolation-method',
'@csstools/postcss-hwb-function',