vue-simple-range-slider
Version:
Change Your numeric value or numeric range value with dragging handles
1,598 lines (1,404 loc) • 892 kB
JavaScript
/*
@license
Rollup.js v2.77.0
Fri, 15 Jul 2022 10:23:18 GMT - commit 87da8ef24f61d6601dc550026fc59f8066bbb95d
https://github.com/rollup/rollup
Released under the MIT License.
*/
'use strict';
const require$$0 = require('path');
const process$1 = require('process');
const perf_hooks = require('perf_hooks');
const crypto = require('crypto');
const require$$0$1 = require('fs');
const require$$0$2 = require('events');
function _interopNamespaceDefault(e) {
const n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } });
if (e) {
for (const k in e) {
n[k] = e[k];
}
}
n.default = e;
return n;
}
var version$1 = "2.77.0";
function ensureArray$1(items) {
if (Array.isArray(items)) {
return items.filter(Boolean);
}
if (items) {
return [items];
}
return [];
}
function getLocator$1(source, options) {
if (options === void 0) { options = {}; }
var offsetLine = options.offsetLine || 0;
var offsetColumn = options.offsetColumn || 0;
var originalLines = source.split('\n');
var start = 0;
var lineRanges = originalLines.map(function (line, i) {
var end = start + line.length + 1;
var range = { start: start, end: end, line: i };
start = end;
return range;
});
var i = 0;
function rangeContains(range, index) {
return range.start <= index && index < range.end;
}
function getLocation(range, index) {
return { line: offsetLine + range.line, column: offsetColumn + index - range.start, character: index };
}
function locate(search, startIndex) {
if (typeof search === 'string') {
search = source.indexOf(search, startIndex || 0);
}
var range = lineRanges[i];
var d = search >= range.end ? 1 : -1;
while (range) {
if (rangeContains(range, search))
return getLocation(range, search);
i += d;
range = lineRanges[i];
}
}
return locate;
}
function locate(source, search, options) {
if (typeof options === 'number') {
throw new Error('locate takes a { startIndex, offsetLine, offsetColumn } object as the third argument');
}
return getLocator$1(source, options)(search, options && options.startIndex);
}
function spaces(i) {
let result = '';
while (i--)
result += ' ';
return result;
}
function tabsToSpaces(str) {
return str.replace(/^\t+/, match => match.split('\t').join(' '));
}
function getCodeFrame(source, line, column) {
let lines = source.split('\n');
const frameStart = Math.max(0, line - 3);
let frameEnd = Math.min(line + 2, lines.length);
lines = lines.slice(frameStart, frameEnd);
while (!/\S/.test(lines[lines.length - 1])) {
lines.pop();
frameEnd -= 1;
}
const digits = String(frameEnd).length;
return lines
.map((str, i) => {
const isErrorLine = frameStart + i + 1 === line;
let lineNum = String(i + frameStart + 1);
while (lineNum.length < digits)
lineNum = ` ${lineNum}`;
if (isErrorLine) {
const indicator = spaces(digits + 2 + tabsToSpaces(str.slice(0, column)).length) + '^';
return `${lineNum}: ${tabsToSpaces(str)}\n${indicator}`;
}
return `${lineNum}: ${tabsToSpaces(str)}`;
})
.join('\n');
}
function printQuotedStringList(list, verbs) {
const isSingleItem = list.length <= 1;
const quotedList = list.map(item => `"${item}"`);
let output = isSingleItem
? quotedList[0]
: `${quotedList.slice(0, -1).join(', ')} and ${quotedList.slice(-1)[0]}`;
if (verbs) {
output += ` ${isSingleItem ? verbs[0] : verbs[1]}`;
}
return output;
}
const ANY_SLASH_REGEX = /[/\\]/;
function relative(from, to) {
const fromParts = from.split(ANY_SLASH_REGEX).filter(Boolean);
const toParts = to.split(ANY_SLASH_REGEX).filter(Boolean);
if (fromParts[0] === '.')
fromParts.shift();
if (toParts[0] === '.')
toParts.shift();
while (fromParts[0] && toParts[0] && fromParts[0] === toParts[0]) {
fromParts.shift();
toParts.shift();
}
while (toParts[0] === '..' && fromParts.length > 0) {
toParts.shift();
fromParts.pop();
}
while (fromParts.pop()) {
toParts.unshift('..');
}
return toParts.join('/');
}
const ABSOLUTE_PATH_REGEX = /^(?:\/|(?:[A-Za-z]:)?[\\|/])/;
const RELATIVE_PATH_REGEX = /^\.?\.(\/|$)/;
function isAbsolute(path) {
return ABSOLUTE_PATH_REGEX.test(path);
}
function isRelative(path) {
return RELATIVE_PATH_REGEX.test(path);
}
const BACKSLASH_REGEX = /\\/g;
function normalize(path) {
return path.replace(BACKSLASH_REGEX, '/');
}
function getAliasName(id) {
const base = require$$0.basename(id);
return base.substring(0, base.length - require$$0.extname(id).length);
}
function relativeId(id) {
if (!isAbsolute(id))
return id;
return relative(require$$0.resolve(), id);
}
function isPathFragment(name) {
// starting with "/", "./", "../", "C:/"
return (name[0] === '/' || (name[0] === '.' && (name[1] === '/' || name[1] === '.')) || isAbsolute(name));
}
const UPPER_DIR_REGEX = /^(\.\.\/)*\.\.$/;
function getImportPath(importerId, targetPath, stripJsExtension, ensureFileName) {
let relativePath = normalize(relative(require$$0.dirname(importerId), targetPath));
if (stripJsExtension && relativePath.endsWith('.js')) {
relativePath = relativePath.slice(0, -3);
}
if (ensureFileName) {
if (relativePath === '')
return '../' + require$$0.basename(targetPath);
if (UPPER_DIR_REGEX.test(relativePath)) {
return relativePath
.split('/')
.concat(['..', require$$0.basename(targetPath)])
.join('/');
}
}
return !relativePath ? '.' : relativePath.startsWith('..') ? relativePath : './' + relativePath;
}
function error(base) {
if (!(base instanceof Error))
base = Object.assign(new Error(base.message), base);
throw base;
}
function augmentCodeLocation(props, pos, source, id) {
if (typeof pos === 'object') {
const { line, column } = pos;
props.loc = { column, file: id, line };
}
else {
props.pos = pos;
const { line, column } = locate(source, pos, { offsetLine: 1 });
props.loc = { column, file: id, line };
}
if (props.frame === undefined) {
const { line, column } = props.loc;
props.frame = getCodeFrame(source, line, column);
}
}
var Errors;
(function (Errors) {
Errors["ALREADY_CLOSED"] = "ALREADY_CLOSED";
Errors["ASSET_NOT_FINALISED"] = "ASSET_NOT_FINALISED";
Errors["ASSET_NOT_FOUND"] = "ASSET_NOT_FOUND";
Errors["ASSET_SOURCE_ALREADY_SET"] = "ASSET_SOURCE_ALREADY_SET";
Errors["ASSET_SOURCE_MISSING"] = "ASSET_SOURCE_MISSING";
Errors["BAD_LOADER"] = "BAD_LOADER";
Errors["CANNOT_EMIT_FROM_OPTIONS_HOOK"] = "CANNOT_EMIT_FROM_OPTIONS_HOOK";
Errors["CHUNK_NOT_GENERATED"] = "CHUNK_NOT_GENERATED";
Errors["CHUNK_INVALID"] = "CHUNK_INVALID";
Errors["CIRCULAR_REEXPORT"] = "CIRCULAR_REEXPORT";
Errors["CYCLIC_CROSS_CHUNK_REEXPORT"] = "CYCLIC_CROSS_CHUNK_REEXPORT";
Errors["DEPRECATED_FEATURE"] = "DEPRECATED_FEATURE";
Errors["EXTERNAL_SYNTHETIC_EXPORTS"] = "EXTERNAL_SYNTHETIC_EXPORTS";
Errors["FILE_NAME_CONFLICT"] = "FILE_NAME_CONFLICT";
Errors["FILE_NOT_FOUND"] = "FILE_NOT_FOUND";
Errors["INPUT_HOOK_IN_OUTPUT_PLUGIN"] = "INPUT_HOOK_IN_OUTPUT_PLUGIN";
Errors["INVALID_CHUNK"] = "INVALID_CHUNK";
Errors["INVALID_EXPORT_OPTION"] = "INVALID_EXPORT_OPTION";
Errors["INVALID_EXTERNAL_ID"] = "INVALID_EXTERNAL_ID";
Errors["INVALID_OPTION"] = "INVALID_OPTION";
Errors["INVALID_PLUGIN_HOOK"] = "INVALID_PLUGIN_HOOK";
Errors["INVALID_ROLLUP_PHASE"] = "INVALID_ROLLUP_PHASE";
Errors["MISSING_EXPORT"] = "MISSING_EXPORT";
Errors["MISSING_IMPLICIT_DEPENDANT"] = "MISSING_IMPLICIT_DEPENDANT";
Errors["MIXED_EXPORTS"] = "MIXED_EXPORTS";
Errors["NAMESPACE_CONFLICT"] = "NAMESPACE_CONFLICT";
Errors["AMBIGUOUS_EXTERNAL_NAMESPACES"] = "AMBIGUOUS_EXTERNAL_NAMESPACES";
Errors["NO_TRANSFORM_MAP_OR_AST_WITHOUT_CODE"] = "NO_TRANSFORM_MAP_OR_AST_WITHOUT_CODE";
Errors["PLUGIN_ERROR"] = "PLUGIN_ERROR";
Errors["PREFER_NAMED_EXPORTS"] = "PREFER_NAMED_EXPORTS";
Errors["SYNTHETIC_NAMED_EXPORTS_NEED_NAMESPACE_EXPORT"] = "SYNTHETIC_NAMED_EXPORTS_NEED_NAMESPACE_EXPORT";
Errors["UNEXPECTED_NAMED_IMPORT"] = "UNEXPECTED_NAMED_IMPORT";
Errors["UNRESOLVED_ENTRY"] = "UNRESOLVED_ENTRY";
Errors["UNRESOLVED_IMPORT"] = "UNRESOLVED_IMPORT";
Errors["VALIDATION_ERROR"] = "VALIDATION_ERROR";
})(Errors || (Errors = {}));
function errAssetNotFinalisedForFileName(name) {
return {
code: Errors.ASSET_NOT_FINALISED,
message: `Plugin error - Unable to get file name for asset "${name}". Ensure that the source is set and that generate is called first.`
};
}
function errCannotEmitFromOptionsHook() {
return {
code: Errors.CANNOT_EMIT_FROM_OPTIONS_HOOK,
message: `Cannot emit files or set asset sources in the "outputOptions" hook, use the "renderStart" hook instead.`
};
}
function errChunkNotGeneratedForFileName(name) {
return {
code: Errors.CHUNK_NOT_GENERATED,
message: `Plugin error - Unable to get file name for chunk "${name}". Ensure that generate is called first.`
};
}
function errChunkInvalid({ fileName, code }, exception) {
const errorProps = {
code: Errors.CHUNK_INVALID,
message: `Chunk "${fileName}" is not valid JavaScript: ${exception.message}.`
};
augmentCodeLocation(errorProps, exception.loc, code, fileName);
return errorProps;
}
function errCircularReexport(exportName, importedModule) {
return {
code: Errors.CIRCULAR_REEXPORT,
id: importedModule,
message: `"${exportName}" cannot be exported from ${relativeId(importedModule)} as it is a reexport that references itself.`
};
}
function errCyclicCrossChunkReexport(exportName, exporter, reexporter, importer) {
return {
code: Errors.CYCLIC_CROSS_CHUNK_REEXPORT,
exporter,
importer,
message: `Export "${exportName}" of module ${relativeId(exporter)} was reexported through module ${relativeId(reexporter)} while both modules are dependencies of each other and will end up in different chunks by current Rollup settings. This scenario is not well supported at the moment as it will produce a circular dependency between chunks and will likely lead to broken execution order.\nEither change the import in ${relativeId(importer)} to point directly to the exporting module or do not use "preserveModules" to ensure these modules end up in the same chunk.`,
reexporter
};
}
function errAssetReferenceIdNotFoundForSetSource(assetReferenceId) {
return {
code: Errors.ASSET_NOT_FOUND,
message: `Plugin error - Unable to set the source for unknown asset "${assetReferenceId}".`
};
}
function errAssetSourceAlreadySet(name) {
return {
code: Errors.ASSET_SOURCE_ALREADY_SET,
message: `Unable to set the source for asset "${name}", source already set.`
};
}
function errNoAssetSourceSet(assetName) {
return {
code: Errors.ASSET_SOURCE_MISSING,
message: `Plugin error creating asset "${assetName}" - no asset source set.`
};
}
function errBadLoader(id) {
return {
code: Errors.BAD_LOADER,
message: `Error loading ${relativeId(id)}: plugin load hook should return a string, a { code, map } object, or nothing/null`
};
}
function errDeprecation(deprecation) {
return {
code: Errors.DEPRECATED_FEATURE,
...(typeof deprecation === 'string' ? { message: deprecation } : deprecation)
};
}
function errFileReferenceIdNotFoundForFilename(assetReferenceId) {
return {
code: Errors.FILE_NOT_FOUND,
message: `Plugin error - Unable to get file name for unknown file "${assetReferenceId}".`
};
}
function errFileNameConflict(fileName) {
return {
code: Errors.FILE_NAME_CONFLICT,
message: `The emitted file "${fileName}" overwrites a previously emitted file of the same name.`
};
}
function errInputHookInOutputPlugin(pluginName, hookName) {
return {
code: Errors.INPUT_HOOK_IN_OUTPUT_PLUGIN,
message: `The "${hookName}" hook used by the output plugin ${pluginName} is a build time hook and will not be run for that plugin. Either this plugin cannot be used as an output plugin, or it should have an option to configure it as an output plugin.`
};
}
function errCannotAssignModuleToChunk(moduleId, assignToAlias, currentAlias) {
return {
code: Errors.INVALID_CHUNK,
message: `Cannot assign ${relativeId(moduleId)} to the "${assignToAlias}" chunk as it is already in the "${currentAlias}" chunk.`
};
}
function errInvalidExportOptionValue(optionValue) {
return {
code: Errors.INVALID_EXPORT_OPTION,
message: `"output.exports" must be "default", "named", "none", "auto", or left unspecified (defaults to "auto"), received "${optionValue}"`,
url: `https://rollupjs.org/guide/en/#outputexports`
};
}
function errIncompatibleExportOptionValue(optionValue, keys, entryModule) {
return {
code: 'INVALID_EXPORT_OPTION',
message: `"${optionValue}" was specified for "output.exports", but entry module "${relativeId(entryModule)}" has the following exports: ${keys.join(', ')}`
};
}
function errInternalIdCannotBeExternal(source, importer) {
return {
code: Errors.INVALID_EXTERNAL_ID,
message: `'${source}' is imported as an external by ${relativeId(importer)}, but is already an existing non-external module id.`
};
}
function errInvalidOption(option, urlHash, explanation, value) {
return {
code: Errors.INVALID_OPTION,
message: `Invalid value ${value !== undefined ? `${JSON.stringify(value)} ` : ''}for option "${option}" - ${explanation}.`,
url: `https://rollupjs.org/guide/en/#${urlHash}`
};
}
function errInvalidRollupPhaseForAddWatchFile() {
return {
code: Errors.INVALID_ROLLUP_PHASE,
message: `Cannot call addWatchFile after the build has finished.`
};
}
function errInvalidRollupPhaseForChunkEmission() {
return {
code: Errors.INVALID_ROLLUP_PHASE,
message: `Cannot emit chunks after module loading has finished.`
};
}
function errMissingExport(exportName, importingModule, importedModule) {
return {
code: Errors.MISSING_EXPORT,
message: `'${exportName}' is not exported by ${relativeId(importedModule)}, imported by ${relativeId(importingModule)}`,
url: `https://rollupjs.org/guide/en/#error-name-is-not-exported-by-module`
};
}
function errImplicitDependantCannotBeExternal(unresolvedId, implicitlyLoadedBefore) {
return {
code: Errors.MISSING_IMPLICIT_DEPENDANT,
message: `Module "${relativeId(unresolvedId)}" that should be implicitly loaded before "${relativeId(implicitlyLoadedBefore)}" cannot be external.`
};
}
function errUnresolvedImplicitDependant(unresolvedId, implicitlyLoadedBefore) {
return {
code: Errors.MISSING_IMPLICIT_DEPENDANT,
message: `Module "${relativeId(unresolvedId)}" that should be implicitly loaded before "${relativeId(implicitlyLoadedBefore)}" could not be resolved.`
};
}
function errImplicitDependantIsNotIncluded(module) {
const implicitDependencies = Array.from(module.implicitlyLoadedBefore, dependency => relativeId(dependency.id)).sort();
return {
code: Errors.MISSING_IMPLICIT_DEPENDANT,
message: `Module "${relativeId(module.id)}" that should be implicitly loaded before ${printQuotedStringList(implicitDependencies)} is not included in the module graph. Either it was not imported by an included module or only via a tree-shaken dynamic import, or no imported bindings were used and it had otherwise no side-effects.`
};
}
function errMixedExport(facadeModuleId, name) {
return {
code: Errors.MIXED_EXPORTS,
id: facadeModuleId,
message: `Entry module "${relativeId(facadeModuleId)}" is using named and default exports together. Consumers of your bundle will have to use \`${name || 'chunk'}["default"]\` to access the default export, which may not be what you want. Use \`output.exports: "named"\` to disable this warning`,
url: `https://rollupjs.org/guide/en/#outputexports`
};
}
function errNamespaceConflict(name, reexportingModuleId, sources) {
return {
code: Errors.NAMESPACE_CONFLICT,
message: `Conflicting namespaces: "${relativeId(reexportingModuleId)}" re-exports "${name}" from one of the modules ${printQuotedStringList(sources.map(moduleId => relativeId(moduleId)))} (will be ignored)`,
name,
reexporter: reexportingModuleId,
sources
};
}
function errAmbiguousExternalNamespaces(name, reexportingModule, usedModule, sources) {
return {
code: Errors.AMBIGUOUS_EXTERNAL_NAMESPACES,
message: `Ambiguous external namespace resolution: "${relativeId(reexportingModule)}" re-exports "${name}" from one of the external modules ${printQuotedStringList(sources.map(module => relativeId(module)))}, guessing "${relativeId(usedModule)}".`,
name,
reexporter: reexportingModule,
sources
};
}
function errNoTransformMapOrAstWithoutCode(pluginName) {
return {
code: Errors.NO_TRANSFORM_MAP_OR_AST_WITHOUT_CODE,
message: `The plugin "${pluginName}" returned a "map" or "ast" without returning ` +
'a "code". This will be ignored.'
};
}
function errPreferNamedExports(facadeModuleId) {
const file = relativeId(facadeModuleId);
return {
code: Errors.PREFER_NAMED_EXPORTS,
id: facadeModuleId,
message: `Entry module "${file}" is implicitly using "default" export mode, which means for CommonJS output that its default export is assigned to "module.exports". For many tools, such CommonJS output will not be interchangeable with the original ES module. If this is intended, explicitly set "output.exports" to either "auto" or "default", otherwise you might want to consider changing the signature of "${file}" to use named exports only.`,
url: `https://rollupjs.org/guide/en/#outputexports`
};
}
function errSyntheticNamedExportsNeedNamespaceExport(id, syntheticNamedExportsOption) {
return {
code: Errors.SYNTHETIC_NAMED_EXPORTS_NEED_NAMESPACE_EXPORT,
id,
message: `Module "${relativeId(id)}" that is marked with 'syntheticNamedExports: ${JSON.stringify(syntheticNamedExportsOption)}' needs ${typeof syntheticNamedExportsOption === 'string' && syntheticNamedExportsOption !== 'default'
? `an explicit export named "${syntheticNamedExportsOption}"`
: 'a default export'} that does not reexport an unresolved named export of the same module.`
};
}
function errUnexpectedNamedImport(id, imported, isReexport) {
const importType = isReexport ? 'reexport' : 'import';
return {
code: Errors.UNEXPECTED_NAMED_IMPORT,
id,
message: `The named export "${imported}" was ${importType}ed from the external module ${relativeId(id)} even though its interop type is "defaultOnly". Either remove or change this ${importType} or change the value of the "output.interop" option.`,
url: 'https://rollupjs.org/guide/en/#outputinterop'
};
}
function errUnexpectedNamespaceReexport(id) {
return {
code: Errors.UNEXPECTED_NAMED_IMPORT,
id,
message: `There was a namespace "*" reexport from the external module ${relativeId(id)} even though its interop type is "defaultOnly". This will be ignored as namespace reexports only reexport named exports. If this is not intended, either remove or change this reexport or change the value of the "output.interop" option.`,
url: 'https://rollupjs.org/guide/en/#outputinterop'
};
}
function errEntryCannotBeExternal(unresolvedId) {
return {
code: Errors.UNRESOLVED_ENTRY,
message: `Entry module cannot be external (${relativeId(unresolvedId)}).`
};
}
function errUnresolvedEntry(unresolvedId) {
return {
code: Errors.UNRESOLVED_ENTRY,
message: `Could not resolve entry module (${relativeId(unresolvedId)}).`
};
}
function errUnresolvedImport(source, importer) {
return {
code: Errors.UNRESOLVED_IMPORT,
message: `Could not resolve '${source}' from ${relativeId(importer)}`
};
}
function errUnresolvedImportTreatedAsExternal(source, importer) {
return {
code: Errors.UNRESOLVED_IMPORT,
importer: relativeId(importer),
message: `'${source}' is imported by ${relativeId(importer)}, but could not be resolved – treating it as an external dependency`,
source,
url: 'https://rollupjs.org/guide/en/#warning-treating-module-as-external-dependency'
};
}
function errExternalSyntheticExports(source, importer) {
return {
code: Errors.EXTERNAL_SYNTHETIC_EXPORTS,
importer: relativeId(importer),
message: `External '${source}' can not have 'syntheticNamedExports' enabled.`,
source
};
}
function errFailedValidation(message) {
return {
code: Errors.VALIDATION_ERROR,
message
};
}
function errAlreadyClosed() {
return {
code: Errors.ALREADY_CLOSED,
message: 'Bundle is already closed, no more calls to "generate" or "write" are allowed.'
};
}
function warnDeprecation(deprecation, activeDeprecation, options) {
warnDeprecationWithOptions(deprecation, activeDeprecation, options.onwarn, options.strictDeprecations);
}
function warnDeprecationWithOptions(deprecation, activeDeprecation, warn, strictDeprecations) {
if (activeDeprecation || strictDeprecations) {
const warning = errDeprecation(deprecation);
if (strictDeprecations) {
return error(warning);
}
warn(warning);
}
}
const defaultOnWarn = warning => console.warn(warning.message || warning);
function warnUnknownOptions(passedOptions, validOptions, optionType, warn, ignoredKeys = /$./) {
const validOptionSet = new Set(validOptions);
const unknownOptions = Object.keys(passedOptions).filter(key => !(validOptionSet.has(key) || ignoredKeys.test(key)));
if (unknownOptions.length > 0) {
warn({
code: 'UNKNOWN_OPTION',
message: `Unknown ${optionType}: ${unknownOptions.join(', ')}. Allowed options: ${[
...validOptionSet
]
.sort()
.join(', ')}`
});
}
}
const treeshakePresets = {
recommended: {
annotations: true,
correctVarValueBeforeDeclaration: false,
moduleSideEffects: () => true,
propertyReadSideEffects: true,
tryCatchDeoptimization: true,
unknownGlobalSideEffects: false
},
safest: {
annotations: true,
correctVarValueBeforeDeclaration: true,
moduleSideEffects: () => true,
propertyReadSideEffects: true,
tryCatchDeoptimization: true,
unknownGlobalSideEffects: true
},
smallest: {
annotations: true,
correctVarValueBeforeDeclaration: false,
moduleSideEffects: () => false,
propertyReadSideEffects: false,
tryCatchDeoptimization: false,
unknownGlobalSideEffects: false
}
};
const generatedCodePresets = {
es2015: {
arrowFunctions: true,
constBindings: true,
objectShorthand: true,
reservedNamesAsProps: true,
symbols: true
},
es5: {
arrowFunctions: false,
constBindings: false,
objectShorthand: false,
reservedNamesAsProps: true,
symbols: false
}
};
const objectifyOption = (value) => value && typeof value === 'object' ? value : {};
const objectifyOptionWithPresets = (presets, optionName, additionalValues) => (value) => {
if (typeof value === 'string') {
const preset = presets[value];
if (preset) {
return preset;
}
error(errInvalidOption(optionName, getHashFromObjectOption(optionName), `valid values are ${additionalValues}${printQuotedStringList(Object.keys(presets))}. You can also supply an object for more fine-grained control`, value));
}
return objectifyOption(value);
};
const getOptionWithPreset = (value, presets, optionName, additionalValues) => {
const presetName = value === null || value === void 0 ? void 0 : value.preset;
if (presetName) {
const preset = presets[presetName];
if (preset) {
return { ...preset, ...value };
}
else {
error(errInvalidOption(`${optionName}.preset`, getHashFromObjectOption(optionName), `valid values are ${printQuotedStringList(Object.keys(presets))}`, presetName));
}
}
return objectifyOptionWithPresets(presets, optionName, additionalValues)(value);
};
const getHashFromObjectOption = (optionName) => optionName.split('.').join('').toLowerCase();
let fsEvents;
let fsEventsImportError;
async function loadFsEvents() {
try {
({ default: fsEvents } = await Promise.resolve().then(() => /*#__PURE__*/_interopNamespaceDefault(require('fsevents'))));
}
catch (err) {
fsEventsImportError = err;
}
}
// A call to this function will be injected into the chokidar code
function getFsEvents() {
if (fsEventsImportError)
throw fsEventsImportError;
return fsEvents;
}
const fseventsImporter = /*#__PURE__*/Object.defineProperty({
__proto__: null,
loadFsEvents,
getFsEvents
}, Symbol.toStringTag, { value: 'Module' });
var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
function getDefaultExportFromCjs (x) {
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
}
function getAugmentedNamespace(n) {
var f = n.default;
if (typeof f == "function") {
var a = function () {
return f.apply(this, arguments);
};
a.prototype = f.prototype;
} else a = {};
Object.defineProperty(a, '__esModule', {value: true});
Object.keys(n).forEach(function (k) {
var d = Object.getOwnPropertyDescriptor(n, k);
Object.defineProperty(a, k, d.get ? d : {
enumerable: true,
get: function () {
return n[k];
}
});
});
return a;
}
var charToInteger = {};
var chars$1 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
for (var i$1 = 0; i$1 < chars$1.length; i$1++) {
charToInteger[chars$1.charCodeAt(i$1)] = i$1;
}
function decode(mappings) {
var decoded = [];
var line = [];
var segment = [
0,
0,
0,
0,
0,
];
var j = 0;
for (var i = 0, shift = 0, value = 0; i < mappings.length; i++) {
var c = mappings.charCodeAt(i);
if (c === 44) { // ","
segmentify(line, segment, j);
j = 0;
}
else if (c === 59) { // ";"
segmentify(line, segment, j);
j = 0;
decoded.push(line);
line = [];
segment[0] = 0;
}
else {
var integer = charToInteger[c];
if (integer === undefined) {
throw new Error('Invalid character (' + String.fromCharCode(c) + ')');
}
var hasContinuationBit = integer & 32;
integer &= 31;
value += integer << shift;
if (hasContinuationBit) {
shift += 5;
}
else {
var shouldNegate = value & 1;
value >>>= 1;
if (shouldNegate) {
value = value === 0 ? -0x80000000 : -value;
}
segment[j] += value;
j++;
value = shift = 0; // reset
}
}
}
segmentify(line, segment, j);
decoded.push(line);
return decoded;
}
function segmentify(line, segment, j) {
// This looks ugly, but we're creating specialized arrays with a specific
// length. This is much faster than creating a new array (which v8 expands to
// a capacity of 17 after pushing the first item), or slicing out a subarray
// (which is slow). Length 4 is assumed to be the most frequent, followed by
// length 5 (since not everything will have an associated name), followed by
// length 1 (it's probably rare for a source substring to not have an
// associated segment data).
if (j === 4)
line.push([segment[0], segment[1], segment[2], segment[3]]);
else if (j === 5)
line.push([segment[0], segment[1], segment[2], segment[3], segment[4]]);
else if (j === 1)
line.push([segment[0]]);
}
function encode(decoded) {
var sourceFileIndex = 0; // second field
var sourceCodeLine = 0; // third field
var sourceCodeColumn = 0; // fourth field
var nameIndex = 0; // fifth field
var mappings = '';
for (var i = 0; i < decoded.length; i++) {
var line = decoded[i];
if (i > 0)
mappings += ';';
if (line.length === 0)
continue;
var generatedCodeColumn = 0; // first field
var lineMappings = [];
for (var _i = 0, line_1 = line; _i < line_1.length; _i++) {
var segment = line_1[_i];
var segmentMappings = encodeInteger(segment[0] - generatedCodeColumn);
generatedCodeColumn = segment[0];
if (segment.length > 1) {
segmentMappings +=
encodeInteger(segment[1] - sourceFileIndex) +
encodeInteger(segment[2] - sourceCodeLine) +
encodeInteger(segment[3] - sourceCodeColumn);
sourceFileIndex = segment[1];
sourceCodeLine = segment[2];
sourceCodeColumn = segment[3];
}
if (segment.length === 5) {
segmentMappings += encodeInteger(segment[4] - nameIndex);
nameIndex = segment[4];
}
lineMappings.push(segmentMappings);
}
mappings += lineMappings.join(',');
}
return mappings;
}
function encodeInteger(num) {
var result = '';
num = num < 0 ? (-num << 1) | 1 : num << 1;
do {
var clamped = num & 31;
num >>>= 5;
if (num > 0) {
clamped |= 32;
}
result += chars$1[clamped];
} while (num > 0);
return result;
}
class BitSet {
constructor(arg) {
this.bits = arg instanceof BitSet ? arg.bits.slice() : [];
}
add(n) {
this.bits[n >> 5] |= 1 << (n & 31);
}
has(n) {
return !!(this.bits[n >> 5] & (1 << (n & 31)));
}
}
class Chunk$1 {
constructor(start, end, content) {
this.start = start;
this.end = end;
this.original = content;
this.intro = '';
this.outro = '';
this.content = content;
this.storeName = false;
this.edited = false;
// we make these non-enumerable, for sanity while debugging
Object.defineProperties(this, {
previous: { writable: true, value: null },
next: { writable: true, value: null },
});
}
appendLeft(content) {
this.outro += content;
}
appendRight(content) {
this.intro = this.intro + content;
}
clone() {
const chunk = new Chunk$1(this.start, this.end, this.original);
chunk.intro = this.intro;
chunk.outro = this.outro;
chunk.content = this.content;
chunk.storeName = this.storeName;
chunk.edited = this.edited;
return chunk;
}
contains(index) {
return this.start < index && index < this.end;
}
eachNext(fn) {
let chunk = this;
while (chunk) {
fn(chunk);
chunk = chunk.next;
}
}
eachPrevious(fn) {
let chunk = this;
while (chunk) {
fn(chunk);
chunk = chunk.previous;
}
}
edit(content, storeName, contentOnly) {
this.content = content;
if (!contentOnly) {
this.intro = '';
this.outro = '';
}
this.storeName = storeName;
this.edited = true;
return this;
}
prependLeft(content) {
this.outro = content + this.outro;
}
prependRight(content) {
this.intro = content + this.intro;
}
split(index) {
const sliceIndex = index - this.start;
const originalBefore = this.original.slice(0, sliceIndex);
const originalAfter = this.original.slice(sliceIndex);
this.original = originalBefore;
const newChunk = new Chunk$1(index, this.end, originalAfter);
newChunk.outro = this.outro;
this.outro = '';
this.end = index;
if (this.edited) {
// TODO is this block necessary?...
newChunk.edit('', false);
this.content = '';
} else {
this.content = originalBefore;
}
newChunk.next = this.next;
if (newChunk.next) newChunk.next.previous = newChunk;
newChunk.previous = this;
this.next = newChunk;
return newChunk;
}
toString() {
return this.intro + this.content + this.outro;
}
trimEnd(rx) {
this.outro = this.outro.replace(rx, '');
if (this.outro.length) return true;
const trimmed = this.content.replace(rx, '');
if (trimmed.length) {
if (trimmed !== this.content) {
this.split(this.start + trimmed.length).edit('', undefined, true);
}
return true;
} else {
this.edit('', undefined, true);
this.intro = this.intro.replace(rx, '');
if (this.intro.length) return true;
}
}
trimStart(rx) {
this.intro = this.intro.replace(rx, '');
if (this.intro.length) return true;
const trimmed = this.content.replace(rx, '');
if (trimmed.length) {
if (trimmed !== this.content) {
this.split(this.end - trimmed.length);
this.edit('', undefined, true);
}
return true;
} else {
this.edit('', undefined, true);
this.outro = this.outro.replace(rx, '');
if (this.outro.length) return true;
}
}
}
let btoa = () => {
throw new Error('Unsupported environment: `window.btoa` or `Buffer` should be supported.');
};
if (typeof window !== 'undefined' && typeof window.btoa === 'function') {
btoa = (str) => window.btoa(unescape(encodeURIComponent(str)));
} else if (typeof Buffer === 'function') {
btoa = (str) => Buffer.from(str, 'utf-8').toString('base64');
}
class SourceMap {
constructor(properties) {
this.version = 3;
this.file = properties.file;
this.sources = properties.sources;
this.sourcesContent = properties.sourcesContent;
this.names = properties.names;
this.mappings = encode(properties.mappings);
}
toString() {
return JSON.stringify(this);
}
toUrl() {
return 'data:application/json;charset=utf-8;base64,' + btoa(this.toString());
}
}
function guessIndent(code) {
const lines = code.split('\n');
const tabbed = lines.filter((line) => /^\t+/.test(line));
const spaced = lines.filter((line) => /^ {2,}/.test(line));
if (tabbed.length === 0 && spaced.length === 0) {
return null;
}
// More lines tabbed than spaced? Assume tabs, and
// default to tabs in the case of a tie (or nothing
// to go on)
if (tabbed.length >= spaced.length) {
return '\t';
}
// Otherwise, we need to guess the multiple
const min = spaced.reduce((previous, current) => {
const numSpaces = /^ +/.exec(current)[0].length;
return Math.min(numSpaces, previous);
}, Infinity);
return new Array(min + 1).join(' ');
}
function getRelativePath(from, to) {
const fromParts = from.split(/[/\\]/);
const toParts = to.split(/[/\\]/);
fromParts.pop(); // get dirname
while (fromParts[0] === toParts[0]) {
fromParts.shift();
toParts.shift();
}
if (fromParts.length) {
let i = fromParts.length;
while (i--) fromParts[i] = '..';
}
return fromParts.concat(toParts).join('/');
}
const toString$1 = Object.prototype.toString;
function isObject$1(thing) {
return toString$1.call(thing) === '[object Object]';
}
function getLocator(source) {
const originalLines = source.split('\n');
const lineOffsets = [];
for (let i = 0, pos = 0; i < originalLines.length; i++) {
lineOffsets.push(pos);
pos += originalLines[i].length + 1;
}
return function locate(index) {
let i = 0;
let j = lineOffsets.length;
while (i < j) {
const m = (i + j) >> 1;
if (index < lineOffsets[m]) {
j = m;
} else {
i = m + 1;
}
}
const line = i - 1;
const column = index - lineOffsets[line];
return { line, column };
};
}
class Mappings {
constructor(hires) {
this.hires = hires;
this.generatedCodeLine = 0;
this.generatedCodeColumn = 0;
this.raw = [];
this.rawSegments = this.raw[this.generatedCodeLine] = [];
this.pending = null;
}
addEdit(sourceIndex, content, loc, nameIndex) {
if (content.length) {
const segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];
if (nameIndex >= 0) {
segment.push(nameIndex);
}
this.rawSegments.push(segment);
} else if (this.pending) {
this.rawSegments.push(this.pending);
}
this.advance(content);
this.pending = null;
}
addUneditedChunk(sourceIndex, chunk, original, loc, sourcemapLocations) {
let originalCharIndex = chunk.start;
let first = true;
while (originalCharIndex < chunk.end) {
if (this.hires || first || sourcemapLocations.has(originalCharIndex)) {
this.rawSegments.push([this.generatedCodeColumn, sourceIndex, loc.line, loc.column]);
}
if (original[originalCharIndex] === '\n') {
loc.line += 1;
loc.column = 0;
this.generatedCodeLine += 1;
this.raw[this.generatedCodeLine] = this.rawSegments = [];
this.generatedCodeColumn = 0;
first = true;
} else {
loc.column += 1;
this.generatedCodeColumn += 1;
first = false;
}
originalCharIndex += 1;
}
this.pending = null;
}
advance(str) {
if (!str) return;
const lines = str.split('\n');
if (lines.length > 1) {
for (let i = 0; i < lines.length - 1; i++) {
this.generatedCodeLine++;
this.raw[this.generatedCodeLine] = this.rawSegments = [];
}
this.generatedCodeColumn = 0;
}
this.generatedCodeColumn += lines[lines.length - 1].length;
}
}
const n = '\n';
const warned = {
insertLeft: false,
insertRight: false,
storeName: false,
};
class MagicString {
constructor(string, options = {}) {
const chunk = new Chunk$1(0, string.length, string);
Object.defineProperties(this, {
original: { writable: true, value: string },
outro: { writable: true, value: '' },
intro: { writable: true, value: '' },
firstChunk: { writable: true, value: chunk },
lastChunk: { writable: true, value: chunk },
lastSearchedChunk: { writable: true, value: chunk },
byStart: { writable: true, value: {} },
byEnd: { writable: true, value: {} },
filename: { writable: true, value: options.filename },
indentExclusionRanges: { writable: true, value: options.indentExclusionRanges },
sourcemapLocations: { writable: true, value: new BitSet() },
storedNames: { writable: true, value: {} },
indentStr: { writable: true, value: guessIndent(string) },
});
this.byStart[0] = chunk;
this.byEnd[string.length] = chunk;
}
addSourcemapLocation(char) {
this.sourcemapLocations.add(char);
}
append(content) {
if (typeof content !== 'string') throw new TypeError('outro content must be a string');
this.outro += content;
return this;
}
appendLeft(index, content) {
if (typeof content !== 'string') throw new TypeError('inserted content must be a string');
this._split(index);
const chunk = this.byEnd[index];
if (chunk) {
chunk.appendLeft(content);
} else {
this.intro += content;
}
return this;
}
appendRight(index, content) {
if (typeof content !== 'string') throw new TypeError('inserted content must be a string');
this._split(index);
const chunk = this.byStart[index];
if (chunk) {
chunk.appendRight(content);
} else {
this.outro += content;
}
return this;
}
clone() {
const cloned = new MagicString(this.original, { filename: this.filename });
let originalChunk = this.firstChunk;
let clonedChunk = (cloned.firstChunk = cloned.lastSearchedChunk = originalChunk.clone());
while (originalChunk) {
cloned.byStart[clonedChunk.start] = clonedChunk;
cloned.byEnd[clonedChunk.end] = clonedChunk;
const nextOriginalChunk = originalChunk.next;
const nextClonedChunk = nextOriginalChunk && nextOriginalChunk.clone();
if (nextClonedChunk) {
clonedChunk.next = nextClonedChunk;
nextClonedChunk.previous = clonedChunk;
clonedChunk = nextClonedChunk;
}
originalChunk = nextOriginalChunk;
}
cloned.lastChunk = clonedChunk;
if (this.indentExclusionRanges) {
cloned.indentExclusionRanges = this.indentExclusionRanges.slice();
}
cloned.sourcemapLocations = new BitSet(this.sourcemapLocations);
cloned.intro = this.intro;
cloned.outro = this.outro;
return cloned;
}
generateDecodedMap(options) {
options = options || {};
const sourceIndex = 0;
const names = Object.keys(this.storedNames);
const mappings = new Mappings(options.hires);
const locate = getLocator(this.original);
if (this.intro) {
mappings.advance(this.intro);
}
this.firstChunk.eachNext((chunk) => {
const loc = locate(chunk.start);
if (chunk.intro.length) mappings.advance(chunk.intro);
if (chunk.edited) {
mappings.addEdit(
sourceIndex,
chunk.content,
loc,
chunk.storeName ? names.indexOf(chunk.original) : -1
);
} else {
mappings.addUneditedChunk(sourceIndex, chunk, this.original, loc, this.sourcemapLocations);
}
if (chunk.outro.length) mappings.advance(chunk.outro);
});
return {
file: options.file ? options.file.split(/[/\\]/).pop() : null,
sources: [options.source ? getRelativePath(options.file || '', options.source) : null],
sourcesContent: options.includeContent ? [this.original] : [null],
names,
mappings: mappings.raw,
};
}
generateMap(options) {
return new SourceMap(this.generateDecodedMap(options));
}
getIndentString() {
return this.indentStr === null ? '\t' : this.indentStr;
}
indent(indentStr, options) {
const pattern = /^[^\r\n]/gm;
if (isObject$1(indentStr)) {
options = indentStr;
indentStr = undefined;
}
indentStr = indentStr !== undefined ? indentStr : this.indentStr || '\t';
if (indentStr === '') return this; // noop
options = options || {};
// Process exclusion ranges
const isExcluded = {};
if (options.exclude) {
const exclusions =
typeof options.exclude[0] === 'number' ? [options.exclude] : options.exclude;
exclusions.forEach((exclusion) => {
for (let i = exclusion[0]; i < exclusion[1]; i += 1) {
isExcluded[i] = true;
}
});
}
let shouldIndentNextCharacter = options.indentStart !== false;
const replacer = (match) => {
if (shouldIndentNextCharacter) return `${indentStr}${match}`;
shouldIndentNextCharacter = true;
return match;
};
this.intro = this.intro.replace(pattern, replacer);
let charIndex = 0;
let chunk = this.firstChunk;
while (chunk) {
const end = chunk.end;
if (chunk.edited) {
if (!isExcluded[charIndex]) {
chunk.content = chunk.content.replace(pattern, replacer);
if (chunk.content.length) {
shouldIndentNextCharacter = chunk.content[chunk.content.length - 1] === '\n';
}
}
} else {
charIndex = chunk.start;
while (charIndex < end) {
if (!isExcluded[charIndex]) {
const char = this.original[charIndex];
if (char === '\n') {
shouldIndentNextCharacter = true;
} else if (char !== '\r' && shouldIndentNextCharacter) {
shouldIndentNextCharacter = false;
if (charIndex === chunk.start) {
chunk.prependRight(indentStr);
} else {
this._splitChunk(chunk, charIndex);
chunk = chunk.next;
chunk.prependRight(indentStr);
}
}
}
charIndex += 1;
}
}
charIndex = chunk.end;
chunk = chunk.next;
}
this.outro = this.outro.replace(pattern, replacer);
return this;
}
insert() {
throw new Error(
'magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)'
);
}
insertLeft(index, content) {
if (!warned.insertLeft) {
console.warn(
'magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead'
); // eslint-disable-line no-console
warned.insertLeft = true;
}
return this.appendLeft(index, content);
}
insertRight(index, content) {
if (!warned.insertRight) {
console.warn(
'magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead'
); // eslint-disable-line no-console
warned.insertRight = true;
}
return this.prependRight(index, content);
}
move(start, end, index) {
if (index >= start && index <= end) throw new Error('Cannot move a selection inside itself');
this._split(start);
this._split(end);
this._split(index);
const first = this.byStart[start];
const last = this.byEnd[end];
const oldLeft = first.previous;
const oldRight = last.next;
const newRight = this.byStart[index];
if (!newRight && last === this.lastChunk) return this;
const newLeft = newRight ? newRight.previous : this.lastChunk;
if (oldLeft) oldLeft.next = oldRight;
if (oldRight) oldRight.previous = oldLeft;
if (newLeft) newLeft.next = first;
if (newRight) newRight.previous = last;
if (!first.previous) this.firstChunk = last.next;
if (!last.next) {
this.lastChunk = first.previous;
this.lastChunk.next = null;
}
first.previous = newLeft;
last.next = newRight || null;
if (!newLeft) this.firstChunk = first;
if (!newRight) this.lastChunk = last;
return this;
}
overwrite(start, end, content, options) {
if (typeof content !== 'string') throw new TypeError('replacement content must be a string');
while (start < 0) start += this.original.length;
while (end < 0) end += this.original.length;
if (end > this.original.length) throw new Error('end is out of bounds');
if (start === end)
throw new Error(
'Cannot overwrite a zero-length range – use appendLeft or prependRight instead'
);
this._split(start);
this._split(end);
if (options === true) {
if (!warned.storeName) {
console.warn(
'The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string'
); // eslint-disable-line no-console
warned.storeName = true;
}
options = { storeName: true };
}
const storeName = options !== undefined ? options.storeName : false;
const contentOnly = options !== undefined ? options.contentOnly : false;
if (storeName) {
const original = this.original.slice(start, end);
Object.defineProperty(this.storedNames, original, {
writable: true,
value: true,
enumerable: true,
});
}
const first = this.byStart[start];
const last = this.byEnd[end];
if (first) {
let chunk = first;
while (chunk !== last) {
if (chunk.next !== this.byStart[chunk.end]) {
throw new Error('Cannot overwrite across a split point');
}
chunk = chunk.next;
chunk.edit('', false);
}
first.edit(content, storeName, contentOnly);
} else {
// must be inserting at the end
const newChunk = new Chunk$1(start, end, '').edit(content, storeName);
// TODO last chunk in the array may not be the last chunk, if it's moved...
last.next = newChunk;
newChunk.previous = last;
}
return this;
}
prepend(content) {
if (typeof content !== 'string') throw new TypeError('outro content must be a string');
this.intro = content + this.intro;
return this;
}
prependLeft(index, content) {
if (typeof content !== 'string') throw new TypeError('inserted content must be a string');
this._split(index);
const chunk = this.byEnd[index];
if (chunk) {
chunk.prependLeft(content);
} else {
this.intro = content + this.intro;
}
return this;
}
prependRight(index, content) {
if (typeof content !== 'string') throw new TypeError('inserted content must be a string');
this._split(index);
const chunk = this.byStart[index];
if (chunk) {
chunk.prependRight(content);
} else {
this.outro = content + this.outro;
}
return this;
}
remove(start, end) {
while (start < 0) start += this.original.length;
while (end < 0) end += this.original.length;
if (start === end) return this;
if (start < 0 || end > this.original.length) throw new Error('Character is out of bounds');
if (start > end) throw new Error('end must be greater than start');
this._split(start);
this._split(end);
let chunk = this.byStart[start];
while (chunk) {
chunk.intro = '';
chunk.outro = '';
chunk.edit('');
chunk = end > chunk.end ? this.byStart[chunk.end] : null;
}
return this;
}
lastChar() {
if (this.outro.length) return this.outro[this.outro.length - 1];
let chunk = this.lastChunk;
do {
if (chunk.outro.length) return chunk.outro[chunk.outro.length - 1];
if (chunk.content.length) return chunk.content[chunk.content.length - 1];
if (chunk.intro.length) return chunk.intro[chunk.intro.length - 1];
} while ((chunk = chunk.previous));
if (this.intro.length) return this.intro[this.intro.length - 1];
return '';
}
lastLine() {
let lineIndex = this.outro.lastIndexOf(n);
if (lineIndex !== -1) return this.outro.substr(lineIndex + 1);
let lineStr = this.outro;
let chunk = this.lastChunk;
do {
if (chunk.outro.length > 0) {
lineIndex = chunk.outro.lastIndexOf(n);
if (lineIndex !== -1) return chunk.outro.substr(lineIndex + 1) + lineStr;
lineStr = chunk.outro + lineStr;
}
if (chunk.content.length > 0) {
line