Skip to content

Commit 579ff53

Browse files
Bump the all-dependencies group with 3 updates (#408)
* Bump the all-dependencies group with 3 updates Bumps the all-dependencies group with 3 updates: [@mdn/browser-compat-data](https://github.com/mdn/browser-compat-data), [semver](https://github.com/npm/node-semver) and [web-features](https://github.com/web-platform-dx/web-features). Updates `@mdn/browser-compat-data` from 5.5.39 to 5.5.40 - [Release notes](https://github.com/mdn/browser-compat-data/releases) - [Changelog](https://github.com/mdn/browser-compat-data/blob/main/RELEASE_NOTES.md) - [Commits](mdn/browser-compat-data@v5.5.39...v5.5.40) Updates `semver` from 7.6.2 to 7.6.3 - [Release notes](https://github.com/npm/node-semver/releases) - [Changelog](https://github.com/npm/node-semver/blob/main/CHANGELOG.md) - [Commits](npm/node-semver@v7.6.2...v7.6.3) Updates `web-features` from 0.10.0 to 1.0.0 - [Release notes](https://github.com/web-platform-dx/web-features/releases) - [Commits](web-platform-dx/web-features@v0.10.0...v1.0.0) --- updated-dependencies: - dependency-name: "@mdn/browser-compat-data" dependency-type: direct:development update-type: version-update:semver-patch dependency-group: all-dependencies - dependency-name: semver dependency-type: direct:development update-type: version-update:semver-patch dependency-group: all-dependencies - dependency-name: web-features dependency-type: direct:development update-type: version-update:semver-major dependency-group: all-dependencies ... Signed-off-by: dependabot[bot] <support@github.com> * refine the interop algorithm --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Romain Menke <romainmenke@gmail.com>
1 parent e34f5f2 commit 579ff53

8 files changed

+104
-57
lines changed

cssdb.json

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@
235235
"mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/clamp"
236236
},
237237
"example": "button {\n font-size: clamp(1rem, 2.5vw, 2rem);\n}",
238-
"interoperable_at": 1586217600,
238+
"interoperable_at": 1595894400,
239239
"polyfills": [
240240
{
241241
"type": "PostCSS Plugin",
@@ -1382,7 +1382,6 @@
13821382
"chrome": "118",
13831383
"edge": "118",
13841384
"firefox": "63",
1385-
"ios_saf": "16",
13861385
"op_mob": "79",
13871386
"opera": "104",
13881387
"safari": "16",
@@ -1392,14 +1391,13 @@
13921391
"mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/resize"
13931392
},
13941393
"example": "area {\n resize: inline;\n}",
1395-
"interoperable_at": 1697155200,
13961394
"polyfills": [
13971395
{
13981396
"type": "PostCSS Plugin",
13991397
"link": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-logical-resize"
14001398
}
14011399
],
1402-
"vendors_implementations": 3
1400+
"vendors_implementations": 2
14031401
},
14041402
{
14051403
"id": "logical-viewport-units",
@@ -1652,7 +1650,7 @@
16521650
"mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/opacity"
16531651
},
16541652
"example": "img {\n opacity: 90%;\n}",
1655-
"interoperable_at": 1585008000,
1653+
"interoperable_at": 1595894400,
16561654
"polyfills": [
16571655
{
16581656
"type": "PostCSS Plugin",
@@ -1750,8 +1748,7 @@
17501748
"mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/overscroll-behavior"
17511749
},
17521750
"example": ".messages {\n height: 220px;\n overflow: auto;\n overscroll-behavior-y: contain;\n}\n\nbody {\n margin: 0;\n overscroll-behavior: none;\n}",
1753-
"interoperable_at": 1662940800,
1754-
"vendors_implementations": 3
1751+
"vendors_implementations": 2
17551752
},
17561753
{
17571754
"id": "place-properties",
@@ -1874,7 +1871,7 @@
18741871
"mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/:read-only"
18751872
},
18761873
"example": "input:read-only {\n background-color: #ccc;\n}",
1877-
"interoperable_at": 1593475200,
1874+
"interoperable_at": 1595894400,
18781875
"vendors_implementations": 3,
18791876
"web-feature": "read-write-pseudos"
18801877
},

cssdb.mjs

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ export default [
235235
"mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/clamp"
236236
},
237237
"example": "button {\n font-size: clamp(1rem, 2.5vw, 2rem);\n}",
238-
"interoperable_at": 1586217600,
238+
"interoperable_at": 1595894400,
239239
"polyfills": [
240240
{
241241
"type": "PostCSS Plugin",
@@ -1382,7 +1382,6 @@ export default [
13821382
"chrome": "118",
13831383
"edge": "118",
13841384
"firefox": "63",
1385-
"ios_saf": "16",
13861385
"op_mob": "79",
13871386
"opera": "104",
13881387
"safari": "16",
@@ -1392,14 +1391,13 @@ export default [
13921391
"mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/resize"
13931392
},
13941393
"example": "area {\n resize: inline;\n}",
1395-
"interoperable_at": 1697155200,
13961394
"polyfills": [
13971395
{
13981396
"type": "PostCSS Plugin",
13991397
"link": "https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-logical-resize"
14001398
}
14011399
],
1402-
"vendors_implementations": 3
1400+
"vendors_implementations": 2
14031401
},
14041402
{
14051403
"id": "logical-viewport-units",
@@ -1652,7 +1650,7 @@ export default [
16521650
"mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/opacity"
16531651
},
16541652
"example": "img {\n opacity: 90%;\n}",
1655-
"interoperable_at": 1585008000,
1653+
"interoperable_at": 1595894400,
16561654
"polyfills": [
16571655
{
16581656
"type": "PostCSS Plugin",
@@ -1750,8 +1748,7 @@ export default [
17501748
"mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/overscroll-behavior"
17511749
},
17521750
"example": ".messages {\n height: 220px;\n overflow: auto;\n overscroll-behavior-y: contain;\n}\n\nbody {\n margin: 0;\n overscroll-behavior: none;\n}",
1753-
"interoperable_at": 1662940800,
1754-
"vendors_implementations": 3
1751+
"vendors_implementations": 2
17551752
},
17561753
{
17571754
"id": "place-properties",
@@ -1874,7 +1871,7 @@ export default [
18741871
"mdn": "https://developer.mozilla.org/en-US/docs/Web/CSS/:read-only"
18751872
},
18761873
"example": "input:read-only {\n background-color: #ccc;\n}",
1877-
"interoperable_at": 1593475200,
1874+
"interoperable_at": 1595894400,
18781875
"vendors_implementations": 3,
18791876
"web-feature": "read-write-pseudos"
18801877
},

package-lock.json

Lines changed: 21 additions & 21 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -61,17 +61,17 @@
6161
"test:doc-links": "node tasks/check-doc-links.mjs"
6262
},
6363
"devDependencies": {
64-
"@mdn/browser-compat-data": "^5.5.39",
64+
"@mdn/browser-compat-data": "^5.5.40",
6565
"browserslist": "^4.23.2",
6666
"glob": "^11.0.0",
6767
"lodash.get": "^4.4.2",
6868
"postcss": "^8.4.39",
6969
"postcss-cli": "^11.0.0",
7070
"postcss-preset-env": "^9.6.0",
71-
"semver": "^7.6.0",
71+
"semver": "^7.6.3",
7272
"stylelint": "^16.7.0",
7373
"stylelint-config-standard": "^36.0.1",
74-
"web-features": "^0.10.0"
74+
"web-features": "^1.0.0"
7575
},
7676
"stylelint": {
7777
"extends": "stylelint-config-standard",

utils/baseline-data.mjs

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1+
import { BrowserslistToMDN } from "./mdn-to-browserslist.mjs";
12
import { releaseDateForBrowserVersion } from "./release-date-for-browser-version.mjs";
3+
import { scanForNextBrowserVersionWithReleaseDate } from "./scan-for-next-browser-version.mjs";
24

35
const baselineEngines = {
46
blink: [
@@ -40,25 +42,25 @@ export function baselineData(feature) {
4042
let latestReleaseDate;
4143

4244
for (const engine in baselineEngines) {
43-
let engineIsSupported = false;
44-
for (const browser of engines[engine]) {
45-
const releaseDate = releaseDateForBrowserVersion(browser, feature.browser_support[browser]);
45+
let supportedBrowsers = 0;
46+
const browsersInEngine = engines[engine];
47+
for (const browser of browsersInEngine) {
48+
const releaseDate = scanForNextBrowserVersionWithReleaseDate(BrowserslistToMDN(browser), feature.browser_support[browser], releaseDateForBrowserVersion);
4649
if (!releaseDate) {
4750
continue;
4851
}
4952

50-
engineIsSupported = true;
51-
break;
53+
supportedBrowsers++;
5254
}
5355

54-
if (engineIsSupported) {
56+
if (supportedBrowsers === browsersInEngine.length) {
5557
supportedEngines++;
5658
}
5759
}
5860

5961
for (const engine in engines) {
6062
for (const browser of engines[engine]) {
61-
const releaseDate = releaseDateForBrowserVersion(browser, feature.browser_support[browser]);
63+
const releaseDate = scanForNextBrowserVersionWithReleaseDate(BrowserslistToMDN(browser), feature.browser_support[browser], releaseDateForBrowserVersion);
6264
if (!releaseDate) {
6365
continue;
6466
}

utils/mdn-to-browserslist.mjs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
export const MDNToBrowserlistMap = {
2+
chrome_android: 'and_chr',
3+
safari_ios: 'ios_saf',
4+
firefox_android: 'and_ff',
5+
opera_android: 'op_mob',
6+
samsunginternet_android: 'samsung',
7+
webview_android: 'android',
8+
};
9+
10+
export function MDNToBrowserlist(browser) {
11+
return MDNToBrowserlistMap[browser] || browser;
12+
}
13+
14+
export const BrowserslistToMDNMap = {
15+
and_chr: 'chrome_android',
16+
ios_saf: 'safari_ios',
17+
and_ff: 'firefox_android',
18+
op_mob: 'opera_android',
19+
samsung: 'samsunginternet_android',
20+
android: 'webview_android',
21+
};
22+
23+
export function BrowserslistToMDN(browser) {
24+
return BrowserslistToMDNMap[browser] || browser;
25+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import bcd from '@mdn/browser-compat-data' assert { type: 'json' };
2+
import semver from 'semver';
3+
4+
export function scanForNextBrowserVersionWithReleaseDate(browser, version, cb) {
5+
if (!browser || !version) {
6+
return;
7+
}
8+
9+
{
10+
const result = cb(browser, version);
11+
if (result) {
12+
return result;
13+
}
14+
}
15+
16+
const versionNames = Object.keys(bcd.browsers?.[browser]?.releases);
17+
const thisVersion = semver.coerce(version);
18+
const thisVersionOrLater = versionNames.find(v => {
19+
return semver.gte(semver.coerce(v), thisVersion);
20+
});
21+
const thisVersionIndex = versionNames.indexOf(thisVersionOrLater);
22+
if (thisVersionIndex === -1) {
23+
return;
24+
}
25+
26+
for (let i = 1; i < 10; i++) {
27+
const result = cb(browser, version);
28+
if (result) {
29+
return result;
30+
}
31+
32+
version = versionNames[thisVersionIndex + i];
33+
}
34+
}

utils/supported-browsers-from-mdn.mjs

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,7 @@
11
import bcd from '@mdn/browser-compat-data' assert { type: 'json' };
22
import _get from 'lodash.get';
33
import semver from 'semver';
4-
5-
const MDNToBrowserlist = {
6-
chrome_android: 'and_chr',
7-
safari_ios: 'ios_saf',
8-
firefox_android: 'and_ff',
9-
opera_android: 'op_mob',
10-
samsunginternet_android: 'samsung',
11-
webview_android: 'android',
12-
};
4+
import { MDNToBrowserlist } from './mdn-to-browserslist.mjs';
135

146
function getBrowsersFromFeature(mdnConfigPath, feature) {
157
const mdnFeature = _get(bcd, mdnConfigPath);
@@ -90,7 +82,7 @@ function getBrowsersFromFeature(mdnConfigPath, feature) {
9082
version = version.substring(1);
9183
}
9284

93-
const browser = MDNToBrowserlist[browserKey] || browserKey;
85+
const browser = MDNToBrowserlist(browserKey);
9486
result[browser] = version;
9587
}
9688
});

0 commit comments

Comments
 (0)