baseline-browser-mapping 0.2.9 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -989,6 +989,12 @@
|
|
|
989
989
|
"engine_version": "100",
|
|
990
990
|
"status": "unknown",
|
|
991
991
|
"release_date": "2025-01-07"
|
|
992
|
+
},
|
|
993
|
+
"17.4": {
|
|
994
|
+
"engine": "Blink",
|
|
995
|
+
"engine_version": "100",
|
|
996
|
+
"status": "unknown",
|
|
997
|
+
"release_date": "2025-02-26"
|
|
992
998
|
}
|
|
993
999
|
}
|
|
994
1000
|
},
|
|
@@ -1492,5 +1498,5 @@
|
|
|
1492
1498
|
}
|
|
1493
1499
|
}
|
|
1494
1500
|
},
|
|
1495
|
-
"lastUpdated": "2025-02-
|
|
1501
|
+
"lastUpdated": "2025-02-26T14:04:04.566Z"
|
|
1496
1502
|
}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
|
|
1
|
+
type BrowserVersion = {
|
|
2
2
|
browser: string;
|
|
3
3
|
version: string;
|
|
4
4
|
release_date: string;
|
|
5
5
|
engine: string | null;
|
|
6
6
|
engine_version: string | null;
|
|
7
|
-
}
|
|
7
|
+
};
|
|
8
8
|
export declare function getMinimumWidelyAvailable(includeDownstream?: boolean): BrowserVersion[];
|
|
9
9
|
export declare function getAllWidelyAvailable(includeDownstream?: boolean): BrowserVersion[];
|
|
10
10
|
export declare function getMinimumWidelyAvailableOnDate(dateString: string, includeDownstream?: boolean): BrowserVersion[];
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import { createRequire } from "node:module";
|
|
2
|
+
const require = createRequire(import.meta.url);
|
|
3
|
+
const bcdBrowsers = require("@mdn/browser-compat-data");
|
|
4
|
+
const otherBrowsers = require("../data/downstream-browsers.json");
|
|
3
5
|
const bcdCoreBrowserNames = [
|
|
4
6
|
"chrome",
|
|
5
7
|
"chrome_android",
|
|
@@ -9,7 +11,7 @@ const bcdCoreBrowserNames = [
|
|
|
9
11
|
"safari",
|
|
10
12
|
"safari_ios",
|
|
11
13
|
];
|
|
12
|
-
const coreBrowserData = Object.entries(bcdBrowsers.browsers).filter(([browserName
|
|
14
|
+
const coreBrowserData = Object.entries(bcdBrowsers.browsers).filter(([browserName]) => bcdCoreBrowserNames.includes(browserName));
|
|
13
15
|
const bcdDownstreamBrowserNames = [
|
|
14
16
|
"webview_android",
|
|
15
17
|
"samsunginternet_android",
|
|
@@ -17,7 +19,7 @@ const bcdDownstreamBrowserNames = [
|
|
|
17
19
|
"opera",
|
|
18
20
|
];
|
|
19
21
|
const downstreamBrowserData = [
|
|
20
|
-
...Object.entries(bcdBrowsers.browsers).filter(([browserName
|
|
22
|
+
...Object.entries(bcdBrowsers.browsers).filter(([browserName]) => bcdDownstreamBrowserNames.includes(browserName)),
|
|
21
23
|
...Object.entries(otherBrowsers.browsers),
|
|
22
24
|
];
|
|
23
25
|
const acceptableStatuses = ["current", "esr", "retired", "unknown"];
|
|
@@ -57,16 +59,14 @@ const getCoreVersionsByDate = (date, minOnly = true) => {
|
|
|
57
59
|
let versions = new Array();
|
|
58
60
|
coreBrowserData.forEach(([browserName, browserData]) => {
|
|
59
61
|
let sortedVersions = Object.entries(browserData.releases)
|
|
60
|
-
.filter(([
|
|
62
|
+
.filter(([, versionData]) => {
|
|
61
63
|
if (!acceptableStatuses.includes(versionData.status)) {
|
|
62
64
|
return false;
|
|
63
65
|
}
|
|
64
66
|
return true;
|
|
65
67
|
})
|
|
66
68
|
.sort((a, b) => {
|
|
67
|
-
|
|
68
|
-
return compareVersions(a[0], b[0]);
|
|
69
|
-
}
|
|
69
|
+
return compareVersions(a[0], b[0]);
|
|
70
70
|
});
|
|
71
71
|
for (let i = 1; i < sortedVersions.length; i++) {
|
|
72
72
|
const thisVersion = sortedVersions[i];
|
|
@@ -110,15 +110,18 @@ const getDownstreamBrowsers = (inputArray = [], minOnly = true) => {
|
|
|
110
110
|
}
|
|
111
111
|
let downstreamArray = new Array();
|
|
112
112
|
downstreamBrowserData.forEach(([browserName, browserData]) => {
|
|
113
|
+
if (!browserData.releases)
|
|
114
|
+
return;
|
|
113
115
|
let sortedAndFilteredVersions = Object.entries(browserData.releases)
|
|
114
|
-
.filter(([
|
|
116
|
+
.filter(([, versionData]) => {
|
|
115
117
|
if (!versionData.engine) {
|
|
116
118
|
return false;
|
|
117
119
|
}
|
|
118
120
|
if (versionData.engine != "Blink") {
|
|
119
121
|
return false;
|
|
120
122
|
}
|
|
121
|
-
if (
|
|
123
|
+
if (versionData.engine_version &&
|
|
124
|
+
parseInt(versionData.engine_version) < parseInt(minimumChromeVersion)) {
|
|
122
125
|
return false;
|
|
123
126
|
}
|
|
124
127
|
return true;
|
|
@@ -133,9 +136,9 @@ const getDownstreamBrowsers = (inputArray = [], minOnly = true) => {
|
|
|
133
136
|
downstreamArray.push({
|
|
134
137
|
browser: browserName,
|
|
135
138
|
version: versionNumber,
|
|
136
|
-
release_date: versionData.release_date,
|
|
137
|
-
engine: versionData.engine,
|
|
138
|
-
engine_version: versionData.engine_version,
|
|
139
|
+
release_date: versionData.release_date ?? "unknown",
|
|
140
|
+
engine: versionData.engine ?? null,
|
|
141
|
+
engine_version: versionData.engine_version ?? null,
|
|
139
142
|
});
|
|
140
143
|
if (minOnly) {
|
|
141
144
|
break;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "baseline-browser-mapping",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "A library for obtaining browser versions with their maximum supported Baseline feature set and Widely Available status.",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dist/index.js"
|
|
@@ -14,10 +14,14 @@
|
|
|
14
14
|
"type": "module",
|
|
15
15
|
"scripts": {
|
|
16
16
|
"test": "echo \"Error: no test specified\" && exit 1",
|
|
17
|
-
"prepare": "prettier . --write; tsc"
|
|
17
|
+
"prepare": "rm -rf dist; prettier . --write; tsc"
|
|
18
18
|
},
|
|
19
19
|
"license": "Apache-2.0",
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@mdn/browser-compat-data": "latest"
|
|
22
|
+
},
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"@types/node": "^22.13.5",
|
|
25
|
+
"typescript": "^5.7.2"
|
|
22
26
|
}
|
|
23
27
|
}
|