Standardize settings file naming and relocate documentation files Fix code quality violations from rsx:check Reorganize user_management directory into logical subdirectories Move Quill Bundle to core and align with Tom Select pattern Simplify Site Settings page to focus on core site information Complete Phase 5: Multi-tenant authentication with login flow and site selection Add route query parameter rule and synchronize filename validation logic Fix critical bug in UpdateNpmCommand causing missing JavaScript stubs Implement filename convention rule and resolve VS Code auto-rename conflict Implement js-sanitizer RPC server to eliminate 900+ Node.js process spawns Implement RPC server architecture for JavaScript parsing WIP: Add RPC server infrastructure for JS parsing (partial implementation) Update jqhtml terminology from destroy to stop, fix datagrid DOM preservation Add JQHTML-CLASS-01 rule and fix redundant class names Improve code quality rules and resolve violations Remove legacy fatal error format in favor of unified 'fatal' error type Filter internal keys from window.rsxapp output Update button styling and comprehensive form/modal documentation Add conditional fly-in animation for modals Fix non-deterministic bundle compilation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
152 lines
7.6 KiB
JavaScript
Executable File
152 lines
7.6 KiB
JavaScript
Executable File
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.checkDuplicateIncludeExcludes = void 0;
|
|
exports.default = normalizeOptions;
|
|
exports.normalizeCoreJSOption = normalizeCoreJSOption;
|
|
exports.validateUseBuiltInsOption = exports.validateModulesOption = exports.normalizePluginName = void 0;
|
|
var _semver = require("semver");
|
|
var _pluginsCompatData = require("./plugins-compat-data.js");
|
|
var _moduleTransformations = require("./module-transformations.js");
|
|
var _options = require("./options.js");
|
|
var _helperValidatorOption = require("@babel/helper-validator-option");
|
|
var _babel7Plugins = require("./polyfills/babel-7-plugins.cjs");
|
|
const corejs3Polyfills = require("core-js-compat/data.json");
|
|
const v = new _helperValidatorOption.OptionValidator("@babel/preset-env");
|
|
const allPluginsList = Object.keys(_pluginsCompatData.plugins);
|
|
const modulePlugins = ["transform-dynamic-import", ...Object.keys(_moduleTransformations.default).map(m => _moduleTransformations.default[m])];
|
|
const getValidIncludesAndExcludes = (type, corejs) => {
|
|
const set = new Set(allPluginsList);
|
|
if (type === "exclude") modulePlugins.map(set.add, set);
|
|
if (corejs) {
|
|
if (corejs === 2) {
|
|
Object.keys(_babel7Plugins.corejs2Polyfills).map(set.add, set);
|
|
set.add("web.timers").add("web.immediate").add("web.dom.iterable");
|
|
} else {
|
|
Object.keys(corejs3Polyfills).map(set.add, set);
|
|
}
|
|
}
|
|
return Array.from(set);
|
|
};
|
|
function flatMap(array, fn) {
|
|
return Array.prototype.concat.apply([], array.map(fn));
|
|
}
|
|
const normalizePluginName = plugin => plugin.replace(/^(?:@babel\/|babel-)(?:plugin-)?/, "");
|
|
exports.normalizePluginName = normalizePluginName;
|
|
const expandIncludesAndExcludes = (filterList = [], type, corejs) => {
|
|
if (filterList.length === 0) return [];
|
|
const filterableItems = getValidIncludesAndExcludes(type, corejs);
|
|
const invalidFilters = [];
|
|
const selectedPlugins = flatMap(filterList, filter => {
|
|
let re;
|
|
if (typeof filter === "string") {
|
|
try {
|
|
re = new RegExp(`^${normalizePluginName(filter)}$`);
|
|
} catch (_) {
|
|
invalidFilters.push(filter);
|
|
return [];
|
|
}
|
|
} else {
|
|
re = filter;
|
|
}
|
|
const items = filterableItems.filter(item => {
|
|
return re.test(item) || re.test(item.replace(/^transform-/, "proposal-"));
|
|
});
|
|
if (items.length === 0) invalidFilters.push(filter);
|
|
return items;
|
|
});
|
|
v.invariant(invalidFilters.length === 0, `The plugins/built-ins '${invalidFilters.join(", ")}' passed to the '${type}' option are not
|
|
valid. Please check data/[plugin-features|built-in-features].js in babel-preset-env`);
|
|
return selectedPlugins;
|
|
};
|
|
const checkDuplicateIncludeExcludes = (include = [], exclude = []) => {
|
|
const duplicates = include.filter(opt => exclude.includes(opt));
|
|
v.invariant(duplicates.length === 0, `The plugins/built-ins '${duplicates.join(", ")}' were found in both the "include" and
|
|
"exclude" options.`);
|
|
};
|
|
exports.checkDuplicateIncludeExcludes = checkDuplicateIncludeExcludes;
|
|
const normalizeTargets = targets => {
|
|
if (typeof targets === "string" || Array.isArray(targets)) {
|
|
return {
|
|
browsers: targets
|
|
};
|
|
}
|
|
return Object.assign({}, targets);
|
|
};
|
|
const validateModulesOption = (modulesOpt = _options.ModulesOption.auto) => {
|
|
v.invariant(_options.ModulesOption[modulesOpt.toString()] || modulesOpt === _options.ModulesOption.false, `The 'modules' option must be one of \n` + ` - 'false' to indicate no module processing\n` + ` - a specific module type: 'commonjs', 'amd', 'umd', 'systemjs'` + ` - 'auto' (default) which will automatically select 'false' if the current\n` + ` process is known to support ES module syntax, or "commonjs" otherwise\n`);
|
|
return modulesOpt;
|
|
};
|
|
exports.validateModulesOption = validateModulesOption;
|
|
const validateUseBuiltInsOption = (builtInsOpt = false) => {
|
|
v.invariant(_options.UseBuiltInsOption[builtInsOpt.toString()] || builtInsOpt === _options.UseBuiltInsOption.false, `The 'useBuiltIns' option must be either
|
|
'false' (default) to indicate no polyfill,
|
|
'"entry"' to indicate replacing the entry polyfill, or
|
|
'"usage"' to import only used polyfills per file`);
|
|
return builtInsOpt;
|
|
};
|
|
exports.validateUseBuiltInsOption = validateUseBuiltInsOption;
|
|
function normalizeCoreJSOption(corejs, useBuiltIns) {
|
|
let proposals = false;
|
|
let rawVersion;
|
|
if (useBuiltIns && corejs === undefined) {
|
|
{
|
|
rawVersion = 2;
|
|
console.warn("\nWARNING (@babel/preset-env): We noticed you're using the `useBuiltIns` option without declaring a " + `core-js version. Currently, we assume version 2.x when no version ` + "is passed. Since this default version will likely change in future " + "versions of Babel, we recommend explicitly setting the core-js version " + "you are using via the `corejs` option.\n" + "\nYou should also be sure that the version you pass to the `corejs` " + "option matches the version specified in your `package.json`'s " + "`dependencies` section. If it doesn't, you need to run one of the " + "following commands:\n\n" + " npm install --save core-js@2 npm install --save core-js@3\n" + " yarn add core-js@2 yarn add core-js@3\n\n" + "More info about useBuiltIns: https://babeljs.io/docs/en/babel-preset-env#usebuiltins\n" + "More info about core-js: https://babeljs.io/docs/en/babel-preset-env#corejs");
|
|
}
|
|
} else if (typeof corejs === "object" && corejs !== null) {
|
|
rawVersion = corejs.version;
|
|
proposals = Boolean(corejs.proposals);
|
|
} else {
|
|
rawVersion = corejs;
|
|
}
|
|
const version = rawVersion ? _semver.coerce(String(rawVersion)) : false;
|
|
if (version) {
|
|
if (useBuiltIns) {
|
|
{
|
|
if (version.major < 2 || version.major > 3) {
|
|
throw new RangeError("Invalid Option: The version passed to `corejs` is invalid. Currently, " + "only core-js@2 and core-js@3 are supported.");
|
|
}
|
|
}
|
|
} else {
|
|
console.warn("\nWARNING (@babel/preset-env): The `corejs` option only has an effect when the `useBuiltIns` option is not `false`\n");
|
|
}
|
|
}
|
|
return {
|
|
version,
|
|
proposals
|
|
};
|
|
}
|
|
function normalizeOptions(opts) {
|
|
;
|
|
v.validateTopLevelOptions(opts, _options.TopLevelOptions);
|
|
const useBuiltIns = validateUseBuiltInsOption(opts.useBuiltIns);
|
|
const corejs = normalizeCoreJSOption(opts.corejs, useBuiltIns);
|
|
const include = expandIncludesAndExcludes(opts.include, _options.TopLevelOptions.include, !!corejs.version && corejs.version.major);
|
|
const exclude = expandIncludesAndExcludes(opts.exclude, _options.TopLevelOptions.exclude, !!corejs.version && corejs.version.major);
|
|
checkDuplicateIncludeExcludes(include, exclude);
|
|
{
|
|
v.validateBooleanOption("loose", opts.loose);
|
|
v.validateBooleanOption("spec", opts.spec);
|
|
v.validateBooleanOption("bugfixes", opts.bugfixes);
|
|
}
|
|
return {
|
|
configPath: v.validateStringOption(_options.TopLevelOptions.configPath, opts.configPath, process.cwd()),
|
|
corejs,
|
|
debug: v.validateBooleanOption(_options.TopLevelOptions.debug, opts.debug, false),
|
|
include,
|
|
exclude,
|
|
forceAllTransforms: v.validateBooleanOption(_options.TopLevelOptions.forceAllTransforms, opts.forceAllTransforms, false),
|
|
ignoreBrowserslistConfig: v.validateBooleanOption(_options.TopLevelOptions.ignoreBrowserslistConfig, opts.ignoreBrowserslistConfig, false),
|
|
modules: validateModulesOption(opts.modules),
|
|
shippedProposals: v.validateBooleanOption(_options.TopLevelOptions.shippedProposals, opts.shippedProposals, false),
|
|
targets: normalizeTargets(opts.targets),
|
|
useBuiltIns: useBuiltIns,
|
|
browserslistEnv: v.validateStringOption(_options.TopLevelOptions.browserslistEnv, opts.browserslistEnv)
|
|
};
|
|
}
|
|
|
|
//# sourceMappingURL=normalize-options.js.map
|