Changing front

This commit is contained in:
2023-01-16 17:44:37 +01:00
parent 0b8a93b256
commit 4fe4be7730
48586 changed files with 4725790 additions and 17464 deletions

View File

@@ -0,0 +1,35 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getInclusionReasons = getInclusionReasons;
var _semver = require("semver");
var _pretty = require("./pretty");
var _utils = require("./utils");
function getInclusionReasons(item, targetVersions, list) {
const minVersions = list[item] || {};
return Object.keys(targetVersions).reduce((result, env) => {
const minVersion = (0, _utils.getLowestImplementedVersion)(minVersions, env);
const targetVersion = targetVersions[env];
if (!minVersion) {
result[env] = (0, _pretty.prettifyVersion)(targetVersion);
} else {
const minIsUnreleased = (0, _utils.isUnreleasedVersion)(minVersion, env);
const targetIsUnreleased = (0, _utils.isUnreleasedVersion)(targetVersion, env);
if (!targetIsUnreleased && (minIsUnreleased || _semver.lt(targetVersion.toString(), (0, _utils.semverify)(minVersion)))) {
result[env] = (0, _pretty.prettifyVersion)(targetVersion);
}
}
return result;
}, {});
}
//# sourceMappingURL=debug.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["getInclusionReasons","item","targetVersions","list","minVersions","Object","keys","reduce","result","env","minVersion","getLowestImplementedVersion","targetVersion","prettifyVersion","minIsUnreleased","isUnreleasedVersion","targetIsUnreleased","semver","lt","toString","semverify"],"sources":["../src/debug.ts"],"sourcesContent":["import semver from \"semver\";\nimport { prettifyVersion } from \"./pretty\";\nimport {\n semverify,\n isUnreleasedVersion,\n getLowestImplementedVersion,\n} from \"./utils\";\nimport type { Target, Targets } from \"./types\";\n\nexport function getInclusionReasons(\n item: string,\n targetVersions: Targets,\n list: { [key: string]: Targets },\n) {\n const minVersions = list[item] || ({} as Targets);\n\n return (Object.keys(targetVersions) as Target[]).reduce((result, env) => {\n const minVersion = getLowestImplementedVersion(minVersions, env);\n const targetVersion = targetVersions[env];\n\n if (!minVersion) {\n result[env] = prettifyVersion(targetVersion);\n } else {\n const minIsUnreleased = isUnreleasedVersion(minVersion, env);\n const targetIsUnreleased = isUnreleasedVersion(targetVersion, env);\n\n if (\n !targetIsUnreleased &&\n (minIsUnreleased ||\n semver.lt(targetVersion.toString(), semverify(minVersion)))\n ) {\n result[env] = prettifyVersion(targetVersion);\n }\n }\n\n return result;\n }, {} as Partial<Record<Target, string>>);\n}\n"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AAOO,SAASA,mBAAT,CACLC,IADK,EAELC,cAFK,EAGLC,IAHK,EAIL;EACA,MAAMC,WAAW,GAAGD,IAAI,CAACF,IAAD,CAAJ,IAAe,EAAnC;EAEA,OAAQI,MAAM,CAACC,IAAP,CAAYJ,cAAZ,CAAD,CAA0CK,MAA1C,CAAiD,CAACC,MAAD,EAASC,GAAT,KAAiB;IACvE,MAAMC,UAAU,GAAG,IAAAC,kCAAA,EAA4BP,WAA5B,EAAyCK,GAAzC,CAAnB;IACA,MAAMG,aAAa,GAAGV,cAAc,CAACO,GAAD,CAApC;;IAEA,IAAI,CAACC,UAAL,EAAiB;MACfF,MAAM,CAACC,GAAD,CAAN,GAAc,IAAAI,uBAAA,EAAgBD,aAAhB,CAAd;IACD,CAFD,MAEO;MACL,MAAME,eAAe,GAAG,IAAAC,0BAAA,EAAoBL,UAApB,EAAgCD,GAAhC,CAAxB;MACA,MAAMO,kBAAkB,GAAG,IAAAD,0BAAA,EAAoBH,aAApB,EAAmCH,GAAnC,CAA3B;;MAEA,IACE,CAACO,kBAAD,KACCF,eAAe,IACdG,OAAM,CAACC,EAAP,CAAUN,aAAa,CAACO,QAAd,EAAV,EAAoC,IAAAC,gBAAA,EAAUV,UAAV,CAApC,CAFF,CADF,EAIE;QACAF,MAAM,CAACC,GAAD,CAAN,GAAc,IAAAI,uBAAA,EAAgBD,aAAhB,CAAd;MACD;IACF;;IAED,OAAOJ,MAAP;EACD,CApBM,EAoBJ,EApBI,CAAP;AAqBD"}

View File

@@ -0,0 +1,90 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = filterItems;
exports.isRequired = isRequired;
exports.targetsSupported = targetsSupported;
var _semver = require("semver");
var _plugins = require("@babel/compat-data/plugins");
var _utils = require("./utils");
function targetsSupported(target, support) {
const targetEnvironments = Object.keys(target);
if (targetEnvironments.length === 0) {
return false;
}
const unsupportedEnvironments = targetEnvironments.filter(environment => {
const lowestImplementedVersion = (0, _utils.getLowestImplementedVersion)(support, environment);
if (!lowestImplementedVersion) {
return true;
}
const lowestTargetedVersion = target[environment];
if ((0, _utils.isUnreleasedVersion)(lowestTargetedVersion, environment)) {
return false;
}
if ((0, _utils.isUnreleasedVersion)(lowestImplementedVersion, environment)) {
return true;
}
if (!_semver.valid(lowestTargetedVersion.toString())) {
throw new Error(`Invalid version passed for target "${environment}": "${lowestTargetedVersion}". ` + "Versions must be in semver format (major.minor.patch)");
}
return _semver.gt((0, _utils.semverify)(lowestImplementedVersion), lowestTargetedVersion.toString());
});
return unsupportedEnvironments.length === 0;
}
function isRequired(name, targets, {
compatData = _plugins,
includes,
excludes
} = {}) {
if (excludes != null && excludes.has(name)) return false;
if (includes != null && includes.has(name)) return true;
return !targetsSupported(targets, compatData[name]);
}
function filterItems(list, includes, excludes, targets, defaultIncludes, defaultExcludes, pluginSyntaxMap) {
const result = new Set();
const options = {
compatData: list,
includes,
excludes
};
for (const item in list) {
if (isRequired(item, targets, options)) {
result.add(item);
} else if (pluginSyntaxMap) {
const shippedProposalsSyntax = pluginSyntaxMap.get(item);
if (shippedProposalsSyntax) {
result.add(shippedProposalsSyntax);
}
}
}
if (defaultIncludes) {
defaultIncludes.forEach(item => !excludes.has(item) && result.add(item));
}
if (defaultExcludes) {
defaultExcludes.forEach(item => !includes.has(item) && result.delete(item));
}
return result;
}
//# sourceMappingURL=filter-items.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,252 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "TargetNames", {
enumerable: true,
get: function () {
return _options.TargetNames;
}
});
exports.default = getTargets;
Object.defineProperty(exports, "filterItems", {
enumerable: true,
get: function () {
return _filterItems.default;
}
});
Object.defineProperty(exports, "getInclusionReasons", {
enumerable: true,
get: function () {
return _debug.getInclusionReasons;
}
});
exports.isBrowsersQueryValid = isBrowsersQueryValid;
Object.defineProperty(exports, "isRequired", {
enumerable: true,
get: function () {
return _filterItems.isRequired;
}
});
Object.defineProperty(exports, "prettifyTargets", {
enumerable: true,
get: function () {
return _pretty.prettifyTargets;
}
});
Object.defineProperty(exports, "unreleasedLabels", {
enumerable: true,
get: function () {
return _targets.unreleasedLabels;
}
});
var _browserslist = require("browserslist");
var _helperValidatorOption = require("@babel/helper-validator-option");
var _nativeModules = require("@babel/compat-data/native-modules");
var _utils = require("./utils");
var _targets = require("./targets");
var _options = require("./options");
var _pretty = require("./pretty");
var _debug = require("./debug");
var _filterItems = require("./filter-items");
const ESM_SUPPORT = _nativeModules["es6.module"];
const v = new _helperValidatorOption.OptionValidator("@babel/helper-compilation-targets");
function validateTargetNames(targets) {
const validTargets = Object.keys(_options.TargetNames);
for (const target of Object.keys(targets)) {
if (!(target in _options.TargetNames)) {
throw new Error(v.formatMessage(`'${target}' is not a valid target
- Did you mean '${(0, _helperValidatorOption.findSuggestion)(target, validTargets)}'?`));
}
}
return targets;
}
function isBrowsersQueryValid(browsers) {
return typeof browsers === "string" || Array.isArray(browsers) && browsers.every(b => typeof b === "string");
}
function validateBrowsers(browsers) {
v.invariant(browsers === undefined || isBrowsersQueryValid(browsers), `'${String(browsers)}' is not a valid browserslist query`);
return browsers;
}
function getLowestVersions(browsers) {
return browsers.reduce((all, browser) => {
const [browserName, browserVersion] = browser.split(" ");
const target = _targets.browserNameMap[browserName];
if (!target) {
return all;
}
try {
const splitVersion = browserVersion.split("-")[0].toLowerCase();
const isSplitUnreleased = (0, _utils.isUnreleasedVersion)(splitVersion, target);
if (!all[target]) {
all[target] = isSplitUnreleased ? splitVersion : (0, _utils.semverify)(splitVersion);
return all;
}
const version = all[target];
const isUnreleased = (0, _utils.isUnreleasedVersion)(version, target);
if (isUnreleased && isSplitUnreleased) {
all[target] = (0, _utils.getLowestUnreleased)(version, splitVersion, target);
} else if (isUnreleased) {
all[target] = (0, _utils.semverify)(splitVersion);
} else if (!isUnreleased && !isSplitUnreleased) {
const parsedBrowserVersion = (0, _utils.semverify)(splitVersion);
all[target] = (0, _utils.semverMin)(version, parsedBrowserVersion);
}
} catch (e) {}
return all;
}, {});
}
function outputDecimalWarning(decimalTargets) {
if (!decimalTargets.length) {
return;
}
console.warn("Warning, the following targets are using a decimal version:\n");
decimalTargets.forEach(({
target,
value
}) => console.warn(` ${target}: ${value}`));
console.warn(`
We recommend using a string for minor/patch versions to avoid numbers like 6.10
getting parsed as 6.1, which can lead to unexpected behavior.
`);
}
function semverifyTarget(target, value) {
try {
return (0, _utils.semverify)(value);
} catch (error) {
throw new Error(v.formatMessage(`'${value}' is not a valid value for 'targets.${target}'.`));
}
}
function nodeTargetParser(value) {
const parsed = value === true || value === "current" ? process.versions.node : semverifyTarget("node", value);
return ["node", parsed];
}
function defaultTargetParser(target, value) {
const version = (0, _utils.isUnreleasedVersion)(value, target) ? value.toLowerCase() : semverifyTarget(target, value);
return [target, version];
}
function generateTargets(inputTargets) {
const input = Object.assign({}, inputTargets);
delete input.esmodules;
delete input.browsers;
return input;
}
function resolveTargets(queries, env) {
const resolved = _browserslist(queries, {
mobileToDesktop: true,
env
});
return getLowestVersions(resolved);
}
function getTargets(inputTargets = {}, options = {}) {
var _browsers, _browsers2;
let {
browsers,
esmodules
} = inputTargets;
const {
configPath = "."
} = options;
validateBrowsers(browsers);
const input = generateTargets(inputTargets);
let targets = validateTargetNames(input);
const shouldParseBrowsers = !!browsers;
const hasTargets = shouldParseBrowsers || Object.keys(targets).length > 0;
const shouldSearchForConfig = !options.ignoreBrowserslistConfig && !hasTargets;
if (!browsers && shouldSearchForConfig) {
browsers = _browserslist.loadConfig({
config: options.configFile,
path: configPath,
env: options.browserslistEnv
});
if (browsers == null) {
{
browsers = [];
}
}
}
if (esmodules && (esmodules !== "intersect" || !((_browsers = browsers) != null && _browsers.length))) {
browsers = Object.keys(ESM_SUPPORT).map(browser => `${browser} >= ${ESM_SUPPORT[browser]}`).join(", ");
esmodules = false;
}
if ((_browsers2 = browsers) != null && _browsers2.length) {
const queryBrowsers = resolveTargets(browsers, options.browserslistEnv);
if (esmodules === "intersect") {
for (const browser of Object.keys(queryBrowsers)) {
const version = queryBrowsers[browser];
const esmSupportVersion = ESM_SUPPORT[browser];
if (esmSupportVersion) {
queryBrowsers[browser] = (0, _utils.getHighestUnreleased)(version, (0, _utils.semverify)(esmSupportVersion), browser);
} else {
delete queryBrowsers[browser];
}
}
}
targets = Object.assign(queryBrowsers, targets);
}
const result = {};
const decimalWarnings = [];
for (const target of Object.keys(targets).sort()) {
const value = targets[target];
if (typeof value === "number" && value % 1 !== 0) {
decimalWarnings.push({
target,
value
});
}
const [parsedTarget, parsedValue] = target === "node" ? nodeTargetParser(value) : defaultTargetParser(target, value);
if (parsedValue) {
result[parsedTarget] = parsedValue;
}
}
outputDecimalWarning(decimalWarnings);
return result;
}
//# sourceMappingURL=index.js.map

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,24 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.TargetNames = void 0;
const TargetNames = {
node: "node",
deno: "deno",
chrome: "chrome",
opera: "opera",
edge: "edge",
firefox: "firefox",
safari: "safari",
ie: "ie",
ios: "ios",
android: "android",
electron: "electron",
samsung: "samsung",
rhino: "rhino"
};
exports.TargetNames = TargetNames;
//# sourceMappingURL=options.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["TargetNames","node","deno","chrome","opera","edge","firefox","safari","ie","ios","android","electron","samsung","rhino"],"sources":["../src/options.ts"],"sourcesContent":["export const TargetNames = {\n node: \"node\",\n deno: \"deno\",\n chrome: \"chrome\",\n opera: \"opera\",\n edge: \"edge\",\n firefox: \"firefox\",\n safari: \"safari\",\n ie: \"ie\",\n ios: \"ios\",\n android: \"android\",\n electron: \"electron\",\n samsung: \"samsung\",\n rhino: \"rhino\",\n};\n"],"mappings":";;;;;;AAAO,MAAMA,WAAW,GAAG;EACzBC,IAAI,EAAE,MADmB;EAEzBC,IAAI,EAAE,MAFmB;EAGzBC,MAAM,EAAE,QAHiB;EAIzBC,KAAK,EAAE,OAJkB;EAKzBC,IAAI,EAAE,MALmB;EAMzBC,OAAO,EAAE,SANgB;EAOzBC,MAAM,EAAE,QAPiB;EAQzBC,EAAE,EAAE,IARqB;EASzBC,GAAG,EAAE,KAToB;EAUzBC,OAAO,EAAE,SAVgB;EAWzBC,QAAQ,EAAE,UAXe;EAYzBC,OAAO,EAAE,SAZgB;EAazBC,KAAK,EAAE;AAbkB,CAApB"}

View File

@@ -0,0 +1,49 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.prettifyTargets = prettifyTargets;
exports.prettifyVersion = prettifyVersion;
var _semver = require("semver");
var _targets = require("./targets");
function prettifyVersion(version) {
if (typeof version !== "string") {
return version;
}
const parts = [_semver.major(version)];
const minor = _semver.minor(version);
const patch = _semver.patch(version);
if (minor || patch) {
parts.push(minor);
}
if (patch) {
parts.push(patch);
}
return parts.join(".");
}
function prettifyTargets(targets) {
return Object.keys(targets).reduce((results, target) => {
let value = targets[target];
const unreleasedLabel = _targets.unreleasedLabels[target];
if (typeof value === "string" && unreleasedLabel !== value) {
value = prettifyVersion(value);
}
results[target] = value;
return results;
}, {});
}
//# sourceMappingURL=pretty.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["prettifyVersion","version","parts","semver","major","minor","patch","push","join","prettifyTargets","targets","Object","keys","reduce","results","target","value","unreleasedLabel","unreleasedLabels"],"sources":["../src/pretty.ts"],"sourcesContent":["import semver from \"semver\";\nimport { unreleasedLabels } from \"./targets\";\nimport type { Targets, Target } from \"./types\";\n\nexport function prettifyVersion(version: string) {\n if (typeof version !== \"string\") {\n return version;\n }\n\n const parts = [semver.major(version)];\n const minor = semver.minor(version);\n const patch = semver.patch(version);\n\n if (minor || patch) {\n parts.push(minor);\n }\n\n if (patch) {\n parts.push(patch);\n }\n\n return parts.join(\".\");\n}\n\nexport function prettifyTargets(targets: Targets): Targets {\n return Object.keys(targets).reduce((results, target: Target) => {\n let value = targets[target];\n\n const unreleasedLabel =\n // @ts-expect-error undefined is strictly compared with string later\n unreleasedLabels[target];\n if (typeof value === \"string\" && unreleasedLabel !== value) {\n value = prettifyVersion(value);\n }\n\n results[target] = value;\n return results;\n }, {} as Targets);\n}\n"],"mappings":";;;;;;;;AAAA;;AACA;;AAGO,SAASA,eAAT,CAAyBC,OAAzB,EAA0C;EAC/C,IAAI,OAAOA,OAAP,KAAmB,QAAvB,EAAiC;IAC/B,OAAOA,OAAP;EACD;;EAED,MAAMC,KAAK,GAAG,CAACC,OAAM,CAACC,KAAP,CAAaH,OAAb,CAAD,CAAd;;EACA,MAAMI,KAAK,GAAGF,OAAM,CAACE,KAAP,CAAaJ,OAAb,CAAd;;EACA,MAAMK,KAAK,GAAGH,OAAM,CAACG,KAAP,CAAaL,OAAb,CAAd;;EAEA,IAAII,KAAK,IAAIC,KAAb,EAAoB;IAClBJ,KAAK,CAACK,IAAN,CAAWF,KAAX;EACD;;EAED,IAAIC,KAAJ,EAAW;IACTJ,KAAK,CAACK,IAAN,CAAWD,KAAX;EACD;;EAED,OAAOJ,KAAK,CAACM,IAAN,CAAW,GAAX,CAAP;AACD;;AAEM,SAASC,eAAT,CAAyBC,OAAzB,EAAoD;EACzD,OAAOC,MAAM,CAACC,IAAP,CAAYF,OAAZ,EAAqBG,MAArB,CAA4B,CAACC,OAAD,EAAUC,MAAV,KAA6B;IAC9D,IAAIC,KAAK,GAAGN,OAAO,CAACK,MAAD,CAAnB;IAEA,MAAME,eAAe,GAEnBC,yBAAA,CAAiBH,MAAjB,CAFF;;IAGA,IAAI,OAAOC,KAAP,KAAiB,QAAjB,IAA6BC,eAAe,KAAKD,KAArD,EAA4D;MAC1DA,KAAK,GAAGhB,eAAe,CAACgB,KAAD,CAAvB;IACD;;IAEDF,OAAO,CAACC,MAAD,CAAP,GAAkBC,KAAlB;IACA,OAAOF,OAAP;EACD,CAZM,EAYJ,EAZI,CAAP;AAaD"}

View File

@@ -0,0 +1,30 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.unreleasedLabels = exports.browserNameMap = void 0;
const unreleasedLabels = {
safari: "tp"
};
exports.unreleasedLabels = unreleasedLabels;
const browserNameMap = {
and_chr: "chrome",
and_ff: "firefox",
android: "android",
chrome: "chrome",
edge: "edge",
firefox: "firefox",
ie: "ie",
ie_mob: "ie",
ios_saf: "ios",
node: "node",
deno: "deno",
op_mob: "opera",
opera: "opera",
safari: "safari",
samsung: "samsung"
};
exports.browserNameMap = browserNameMap;
//# sourceMappingURL=targets.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["unreleasedLabels","safari","browserNameMap","and_chr","and_ff","android","chrome","edge","firefox","ie","ie_mob","ios_saf","node","deno","op_mob","opera","samsung"],"sources":["../src/targets.ts"],"sourcesContent":["export const unreleasedLabels = {\n safari: \"tp\",\n} as const;\n\nimport type { Target } from \"./types\";\n\n// Map from browserslist|@mdn/browser-compat-data browser names to @kangax/compat-table browser names\nexport const browserNameMap: Record<string, Target> = {\n and_chr: \"chrome\",\n and_ff: \"firefox\",\n android: \"android\",\n chrome: \"chrome\",\n edge: \"edge\",\n firefox: \"firefox\",\n ie: \"ie\",\n ie_mob: \"ie\",\n ios_saf: \"ios\",\n node: \"node\",\n deno: \"deno\",\n op_mob: \"opera\",\n opera: \"opera\",\n safari: \"safari\",\n samsung: \"samsung\",\n} as const;\n\nexport type BrowserslistBrowserName = keyof typeof browserNameMap;\n"],"mappings":";;;;;;AAAO,MAAMA,gBAAgB,GAAG;EAC9BC,MAAM,EAAE;AADsB,CAAzB;;AAOA,MAAMC,cAAsC,GAAG;EACpDC,OAAO,EAAE,QAD2C;EAEpDC,MAAM,EAAE,SAF4C;EAGpDC,OAAO,EAAE,SAH2C;EAIpDC,MAAM,EAAE,QAJ4C;EAKpDC,IAAI,EAAE,MAL8C;EAMpDC,OAAO,EAAE,SAN2C;EAOpDC,EAAE,EAAE,IAPgD;EAQpDC,MAAM,EAAE,IAR4C;EASpDC,OAAO,EAAE,KAT2C;EAUpDC,IAAI,EAAE,MAV8C;EAWpDC,IAAI,EAAE,MAX8C;EAYpDC,MAAM,EAAE,OAZ4C;EAapDC,KAAK,EAAE,OAb6C;EAcpDd,MAAM,EAAE,QAd4C;EAepDe,OAAO,EAAE;AAf2C,CAA/C"}

View File

@@ -0,0 +1,74 @@
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getHighestUnreleased = getHighestUnreleased;
exports.getLowestImplementedVersion = getLowestImplementedVersion;
exports.getLowestUnreleased = getLowestUnreleased;
exports.isUnreleasedVersion = isUnreleasedVersion;
exports.semverMin = semverMin;
exports.semverify = semverify;
var _semver = require("semver");
var _helperValidatorOption = require("@babel/helper-validator-option");
var _targets = require("./targets");
const versionRegExp = /^(\d+|\d+.\d+)$/;
const v = new _helperValidatorOption.OptionValidator("@babel/helper-compilation-targets");
function semverMin(first, second) {
return first && _semver.lt(first, second) ? first : second;
}
function semverify(version) {
if (typeof version === "string" && _semver.valid(version)) {
return version;
}
v.invariant(typeof version === "number" || typeof version === "string" && versionRegExp.test(version), `'${version}' is not a valid version`);
const split = version.toString().split(".");
while (split.length < 3) {
split.push("0");
}
return split.join(".");
}
function isUnreleasedVersion(version, env) {
const unreleasedLabel = _targets.unreleasedLabels[env];
return !!unreleasedLabel && unreleasedLabel === version.toString().toLowerCase();
}
function getLowestUnreleased(a, b, env) {
const unreleasedLabel = _targets.unreleasedLabels[env];
if (a === unreleasedLabel) {
return b;
}
if (b === unreleasedLabel) {
return a;
}
return semverMin(a, b);
}
function getHighestUnreleased(a, b, env) {
return getLowestUnreleased(a, b, env) === a ? b : a;
}
function getLowestImplementedVersion(plugin, environment) {
const result = plugin[environment];
if (!result && environment === "android") {
return plugin.chrome;
}
return result;
}
//# sourceMappingURL=utils.js.map

View File

@@ -0,0 +1 @@
{"version":3,"names":["versionRegExp","v","OptionValidator","semverMin","first","second","semver","lt","semverify","version","valid","invariant","test","split","toString","length","push","join","isUnreleasedVersion","env","unreleasedLabel","unreleasedLabels","toLowerCase","getLowestUnreleased","a","b","getHighestUnreleased","getLowestImplementedVersion","plugin","environment","result","chrome"],"sources":["../src/utils.ts"],"sourcesContent":["import semver from \"semver\";\nimport { OptionValidator } from \"@babel/helper-validator-option\";\nimport { unreleasedLabels } from \"./targets\";\nimport type { Target, Targets } from \"./types\";\n\ndeclare const PACKAGE_JSON: { name: string; version: string };\n\nconst versionRegExp = /^(\\d+|\\d+.\\d+)$/;\n\nconst v = new OptionValidator(PACKAGE_JSON.name);\n\nexport function semverMin(\n first: string | undefined | null,\n second: string,\n): string {\n return first && semver.lt(first, second) ? first : second;\n}\n\n// Convert version to a semver value.\n// 2.5 -> 2.5.0; 1 -> 1.0.0;\nexport function semverify(version: number | string): string {\n if (typeof version === \"string\" && semver.valid(version)) {\n return version;\n }\n\n v.invariant(\n typeof version === \"number\" ||\n (typeof version === \"string\" && versionRegExp.test(version)),\n `'${version}' is not a valid version`,\n );\n\n const split = version.toString().split(\".\");\n while (split.length < 3) {\n split.push(\"0\");\n }\n return split.join(\".\");\n}\n\nexport function isUnreleasedVersion(\n version: string | number,\n env: Target,\n): boolean {\n const unreleasedLabel =\n // @ts-expect-error unreleasedLabel will be guarded later\n unreleasedLabels[env];\n return (\n !!unreleasedLabel && unreleasedLabel === version.toString().toLowerCase()\n );\n}\n\nexport function getLowestUnreleased(a: string, b: string, env: Target): string {\n const unreleasedLabel:\n | typeof unreleasedLabels[keyof typeof unreleasedLabels]\n | undefined =\n // @ts-expect-error unreleasedLabel is undefined when env is not safari\n unreleasedLabels[env];\n if (a === unreleasedLabel) {\n return b;\n }\n if (b === unreleasedLabel) {\n return a;\n }\n return semverMin(a, b);\n}\n\nexport function getHighestUnreleased(\n a: string,\n b: string,\n env: Target,\n): string {\n return getLowestUnreleased(a, b, env) === a ? b : a;\n}\n\nexport function getLowestImplementedVersion(\n plugin: Targets,\n environment: Target,\n): string {\n const result = plugin[environment];\n // When Android support data is absent, use Chrome data as fallback\n if (!result && environment === \"android\") {\n return plugin.chrome;\n }\n return result;\n}\n"],"mappings":";;;;;;;;;;;;AAAA;;AACA;;AACA;;AAKA,MAAMA,aAAa,GAAG,iBAAtB;AAEA,MAAMC,CAAC,GAAG,IAAIC,sCAAJ,qCAAV;;AAEO,SAASC,SAAT,CACLC,KADK,EAELC,MAFK,EAGG;EACR,OAAOD,KAAK,IAAIE,OAAM,CAACC,EAAP,CAAUH,KAAV,EAAiBC,MAAjB,CAAT,GAAoCD,KAApC,GAA4CC,MAAnD;AACD;;AAIM,SAASG,SAAT,CAAmBC,OAAnB,EAAqD;EAC1D,IAAI,OAAOA,OAAP,KAAmB,QAAnB,IAA+BH,OAAM,CAACI,KAAP,CAAaD,OAAb,CAAnC,EAA0D;IACxD,OAAOA,OAAP;EACD;;EAEDR,CAAC,CAACU,SAAF,CACE,OAAOF,OAAP,KAAmB,QAAnB,IACG,OAAOA,OAAP,KAAmB,QAAnB,IAA+BT,aAAa,CAACY,IAAd,CAAmBH,OAAnB,CAFpC,EAGG,IAAGA,OAAQ,0BAHd;EAMA,MAAMI,KAAK,GAAGJ,OAAO,CAACK,QAAR,GAAmBD,KAAnB,CAAyB,GAAzB,CAAd;;EACA,OAAOA,KAAK,CAACE,MAAN,GAAe,CAAtB,EAAyB;IACvBF,KAAK,CAACG,IAAN,CAAW,GAAX;EACD;;EACD,OAAOH,KAAK,CAACI,IAAN,CAAW,GAAX,CAAP;AACD;;AAEM,SAASC,mBAAT,CACLT,OADK,EAELU,GAFK,EAGI;EACT,MAAMC,eAAe,GAEnBC,yBAAA,CAAiBF,GAAjB,CAFF;EAGA,OACE,CAAC,CAACC,eAAF,IAAqBA,eAAe,KAAKX,OAAO,CAACK,QAAR,GAAmBQ,WAAnB,EAD3C;AAGD;;AAEM,SAASC,mBAAT,CAA6BC,CAA7B,EAAwCC,CAAxC,EAAmDN,GAAnD,EAAwE;EAC7E,MAAMC,eAEO,GAEXC,yBAAA,CAAiBF,GAAjB,CAJF;;EAKA,IAAIK,CAAC,KAAKJ,eAAV,EAA2B;IACzB,OAAOK,CAAP;EACD;;EACD,IAAIA,CAAC,KAAKL,eAAV,EAA2B;IACzB,OAAOI,CAAP;EACD;;EACD,OAAOrB,SAAS,CAACqB,CAAD,EAAIC,CAAJ,CAAhB;AACD;;AAEM,SAASC,oBAAT,CACLF,CADK,EAELC,CAFK,EAGLN,GAHK,EAIG;EACR,OAAOI,mBAAmB,CAACC,CAAD,EAAIC,CAAJ,EAAON,GAAP,CAAnB,KAAmCK,CAAnC,GAAuCC,CAAvC,GAA2CD,CAAlD;AACD;;AAEM,SAASG,2BAAT,CACLC,MADK,EAELC,WAFK,EAGG;EACR,MAAMC,MAAM,GAAGF,MAAM,CAACC,WAAD,CAArB;;EAEA,IAAI,CAACC,MAAD,IAAWD,WAAW,KAAK,SAA/B,EAA0C;IACxC,OAAOD,MAAM,CAACG,MAAd;EACD;;EACD,OAAOD,MAAP;AACD"}