rollup 2.64.0 → 2.67.0

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.
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v2.64.0
4
- Fri, 14 Jan 2022 14:02:32 GMT - commit 82a3e2634a9d51b5040752e4fb2fd264651d504e
3
+ Rollup.js v2.67.0
4
+ Wed, 02 Feb 2022 06:19:08 GMT - commit 61d772ba59be605e53e72613ae51cee4b72aee64
5
5
 
6
6
 
7
7
  https://github.com/rollup/rollup
@@ -14,8 +14,8 @@ const require$$0 = require('path');
14
14
  const process$1 = require('process');
15
15
  const perf_hooks = require('perf_hooks');
16
16
  const crypto = require('crypto');
17
- const fs = require('fs');
18
- const require$$0$1 = require('events');
17
+ const require$$0$1 = require('fs');
18
+ const require$$0$2 = require('events');
19
19
 
20
20
  function _interopNamespaceDefault(e) {
21
21
  const n = Object.create(null);
@@ -28,7 +28,7 @@ function _interopNamespaceDefault(e) {
28
28
  return n;
29
29
  }
30
30
 
31
- var version$1 = "2.64.0";
31
+ var version$1 = "2.67.0";
32
32
 
33
33
  function ensureArray$1(items) {
34
34
  if (Array.isArray(items)) {
@@ -381,22 +381,22 @@ function errMixedExport(facadeModuleId, name) {
381
381
  url: `https://rollupjs.org/guide/en/#outputexports`
382
382
  };
383
383
  }
384
- function errNamespaceConflict(name, reexportingModule, additionalExportAllModule) {
384
+ function errNamespaceConflict(name, reexportingModuleId, sources) {
385
385
  return {
386
386
  code: Errors.NAMESPACE_CONFLICT,
387
- message: `Conflicting namespaces: "${relativeId(reexportingModule.id)}" re-exports "${name}" from both "${relativeId(reexportingModule.exportsAll[name])}" and "${relativeId(additionalExportAllModule.exportsAll[name])}" (will be ignored)`,
387
+ message: `Conflicting namespaces: "${relativeId(reexportingModuleId)}" re-exports "${name}" from one of the modules ${printQuotedStringList(sources.map(moduleId => relativeId(moduleId)))} (will be ignored)`,
388
388
  name,
389
- reexporter: reexportingModule.id,
390
- sources: [reexportingModule.exportsAll[name], additionalExportAllModule.exportsAll[name]]
389
+ reexporter: reexportingModuleId,
390
+ sources
391
391
  };
392
392
  }
393
- function errAmbiguousExternalNamespaces(name, reexportingModule, usedExternalModule, externalModules) {
393
+ function errAmbiguousExternalNamespaces(name, reexportingModule, usedModule, sources) {
394
394
  return {
395
395
  code: Errors.AMBIGUOUS_EXTERNAL_NAMESPACES,
396
- message: `Ambiguous external namespace resolution: "${relativeId(reexportingModule)}" re-exports "${name}" from one of the external modules ${printQuotedStringList(externalModules.map(module => relativeId(module)))}, guessing "${relativeId(usedExternalModule)}".`,
396
+ 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)}".`,
397
397
  name,
398
398
  reexporter: reexportingModule,
399
- sources: externalModules
399
+ sources
400
400
  };
401
401
  }
402
402
  function errNoTransformMapOrAstWithoutCode(pluginName) {
@@ -420,7 +420,7 @@ function errSyntheticNamedExportsNeedNamespaceExport(id, syntheticNamedExportsOp
420
420
  code: Errors.SYNTHETIC_NAMED_EXPORTS_NEED_NAMESPACE_EXPORT,
421
421
  id,
422
422
  message: `Module "${relativeId(id)}" that is marked with 'syntheticNamedExports: ${JSON.stringify(syntheticNamedExportsOption)}' needs ${typeof syntheticNamedExportsOption === 'string' && syntheticNamedExportsOption !== 'default'
423
- ? `an export named "${syntheticNamedExportsOption}"`
423
+ ? `an explicit export named "${syntheticNamedExportsOption}"`
424
424
  : 'a default export'} that does not reexport an unresolved named export of the same module.`
425
425
  };
426
426
  }
@@ -586,9 +586,8 @@ const getHashFromObjectOption = (optionName) => optionName.split('.').join('').t
586
586
  let fsEvents;
587
587
  let fsEventsImportError;
588
588
  async function loadFsEvents() {
589
- const moduleName = 'fsevents';
590
589
  try {
591
- ({ default: fsEvents } = await Promise.resolve().then(() => /*#__PURE__*/_interopNamespaceDefault(require(moduleName))));
590
+ ({ default: fsEvents } = await Promise.resolve().then(() => /*#__PURE__*/_interopNamespaceDefault(require('fsevents'))));
592
591
  }
593
592
  catch (err) {
594
593
  fsEventsImportError = err;
@@ -626,8 +625,8 @@ function getAugmentedNamespace(n) {
626
625
 
627
626
  var charToInteger = {};
628
627
  var chars$1 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
629
- for (var i = 0; i < chars$1.length; i++) {
630
- charToInteger[chars$1.charCodeAt(i)] = i;
628
+ for (var i$1 = 0; i$1 < chars$1.length; i$1++) {
629
+ charToInteger[chars$1.charCodeAt(i$1)] = i$1;
631
630
  }
632
631
  function decode(mappings) {
633
632
  var decoded = [];
@@ -2323,7 +2322,7 @@ function makeLegal(str) {
2323
2322
  }
2324
2323
 
2325
2324
  class ExternalModule {
2326
- constructor(options, id, hasModuleSideEffects, meta, renormalizeRenderPath) {
2325
+ constructor(options, id, moduleSideEffects, meta, renormalizeRenderPath) {
2327
2326
  this.options = options;
2328
2327
  this.id = id;
2329
2328
  this.renormalizeRenderPath = renormalizeRenderPath;
@@ -2342,17 +2341,23 @@ class ExternalModule {
2342
2341
  this.variableName = '';
2343
2342
  this.suggestedVariableName = makeLegal(id.split(/[\\/]/).pop());
2344
2343
  const { importers, dynamicImporters } = this;
2345
- this.info = {
2344
+ const info = (this.info = {
2346
2345
  ast: null,
2347
2346
  code: null,
2347
+ dynamicallyImportedIdResolutions: EMPTY_ARRAY,
2348
2348
  dynamicallyImportedIds: EMPTY_ARRAY,
2349
2349
  get dynamicImporters() {
2350
2350
  return dynamicImporters.sort();
2351
2351
  },
2352
- hasModuleSideEffects,
2352
+ hasDefaultExport: null,
2353
+ get hasModuleSideEffects() {
2354
+ warnDeprecation('Accessing ModuleInfo.hasModuleSideEffects from plugins is deprecated. Please use ModuleInfo.moduleSideEffects instead.', false, options);
2355
+ return info.moduleSideEffects;
2356
+ },
2353
2357
  id,
2354
2358
  implicitlyLoadedAfterOneOf: EMPTY_ARRAY,
2355
2359
  implicitlyLoadedBefore: EMPTY_ARRAY,
2360
+ importedIdResolutions: EMPTY_ARRAY,
2356
2361
  importedIds: EMPTY_ARRAY,
2357
2362
  get importers() {
2358
2363
  return importers.sort();
@@ -2361,16 +2366,22 @@ class ExternalModule {
2361
2366
  isExternal: true,
2362
2367
  isIncluded: null,
2363
2368
  meta,
2369
+ moduleSideEffects,
2364
2370
  syntheticNamedExports: false
2365
- };
2371
+ });
2372
+ // Hide the deprecated key so that it only warns when accessed explicitly
2373
+ Object.defineProperty(this.info, 'hasModuleSideEffects', {
2374
+ ...Object.getOwnPropertyDescriptor(this.info, 'hasModuleSideEffects'),
2375
+ enumerable: false
2376
+ });
2366
2377
  }
2367
2378
  getVariableForExportName(name) {
2368
2379
  let declaration = this.declarations[name];
2369
2380
  if (declaration)
2370
- return declaration;
2381
+ return [declaration];
2371
2382
  this.declarations[name] = declaration = new ExternalVariable(this, name);
2372
2383
  this.exportedVariables.set(declaration, name);
2373
- return declaration;
2384
+ return [declaration];
2374
2385
  }
2375
2386
  setRenderPath(options, inputBase) {
2376
2387
  this.renderPath =
@@ -3297,7 +3308,14 @@ const parse$1 = (input, options) => {
3297
3308
  }
3298
3309
 
3299
3310
  if (token.inner.includes('*') && (rest = remaining()) && /^\.[^\\/.]+$/.test(rest)) {
3300
- output = token.close = `)${rest})${extglobStar})`;
3311
+ // Any non-magical string (`.ts`) or even nested expression (`.{ts,tsx}`) can follow after the closing parenthesis.
3312
+ // In this case, we need to parse the string and use it in the output of the original pattern.
3313
+ // Suitable patterns: `/!(*.d).ts`, `/!(*.d).{ts,tsx}`, `**/!(*-dbg).@(js)`.
3314
+ //
3315
+ // Disabling the `fastpaths` option due to a problem with parsing strings as `.ts` in the pattern like `**/!(*.d).ts`.
3316
+ const expression = parse$1(rest, { ...options, fastpaths: false }).output;
3317
+
3318
+ output = token.close = `)${expression})${extglobStar})`;
3301
3319
  }
3302
3320
 
3303
3321
  if (token.prev.type === 'bos') {
@@ -4892,20 +4910,11 @@ const SequenceExpression$1 = 'SequenceExpression';
4892
4910
 
4893
4911
  // this looks ridiculous, but it prevents sourcemap tooling from mistaking
4894
4912
  // this for an actual sourceMappingURL
4895
- let SOURCEMAPPING_URL = 'sourceMa';
4896
- SOURCEMAPPING_URL += 'ppingURL';
4913
+ exports.SOURCEMAPPING_URL = 'sourceMa';
4914
+ exports.SOURCEMAPPING_URL += 'ppingURL';
4897
4915
  const whiteSpaceNoNewline = '[ \\f\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]';
4898
- const SOURCEMAPPING_URL_RE = new RegExp(`^#${whiteSpaceNoNewline}+${SOURCEMAPPING_URL}=.+`);
4916
+ const SOURCEMAPPING_URL_RE = new RegExp(`^#${whiteSpaceNoNewline}+${exports.SOURCEMAPPING_URL}=.+`);
4899
4917
 
4900
- // patch up acorn-walk until class-fields are officially supported
4901
- base$1.PropertyDefinition = function (node, st, c) {
4902
- if (node.computed) {
4903
- c(node.key, st, 'Expression');
4904
- }
4905
- if (node.value) {
4906
- c(node.value, st, 'Expression');
4907
- }
4908
- };
4909
4918
  const ANNOTATION_KEY = '_rollupAnnotations';
4910
4919
  const INVALID_COMMENT_KEY = '_rollupRemoved';
4911
4920
  function handlePureAnnotationsOfNode(node, state, type = node.type) {
@@ -8634,6 +8643,8 @@ const ARRAY_PROTOTYPE = new ObjectEntity({
8634
8643
  flat: METHOD_DEOPTS_SELF_RETURNS_NEW_ARRAY,
8635
8644
  flatMap: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_NEW_ARRAY,
8636
8645
  forEach: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_UNKNOWN,
8646
+ groupBy: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_UNKNOWN,
8647
+ groupByToMap: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_UNKNOWN,
8637
8648
  includes: METHOD_RETURNS_BOOLEAN,
8638
8649
  indexOf: METHOD_RETURNS_NUMBER,
8639
8650
  join: METHOD_RETURNS_STRING,
@@ -12198,7 +12209,6 @@ let timeStart = NOOP;
12198
12209
  let timeEnd = NOOP;
12199
12210
  const TIMED_PLUGIN_HOOKS = ['load', 'resolveDynamicImport', 'resolveId', 'transform'];
12200
12211
  function getPluginWithTimers(plugin, index) {
12201
- const timedPlugin = {};
12202
12212
  for (const hook of TIMED_PLUGIN_HOOKS) {
12203
12213
  if (hook in plugin) {
12204
12214
  let timerLabel = `plugin ${index}`;
@@ -12206,9 +12216,10 @@ function getPluginWithTimers(plugin, index) {
12206
12216
  timerLabel += ` (${plugin.name})`;
12207
12217
  }
12208
12218
  timerLabel += ` - ${hook}`;
12209
- timedPlugin[hook] = function (...args) {
12219
+ const func = plugin[hook];
12220
+ plugin[hook] = function (...args) {
12210
12221
  timeStart(timerLabel, 4);
12211
- const result = plugin[hook](...args);
12222
+ const result = func.apply(this, args);
12212
12223
  timeEnd(timerLabel, 4);
12213
12224
  if (result && typeof result.then === 'function') {
12214
12225
  timeStart(`${timerLabel} (async)`, 4);
@@ -12221,10 +12232,7 @@ function getPluginWithTimers(plugin, index) {
12221
12232
  };
12222
12233
  }
12223
12234
  }
12224
- return {
12225
- ...plugin,
12226
- ...timedPlugin
12227
- };
12235
+ return plugin;
12228
12236
  }
12229
12237
  function initialiseTimers(inputOptions) {
12230
12238
  if (inputOptions.perf) {
@@ -12247,7 +12255,7 @@ function markModuleAndImpureDependenciesAsExecuted(baseModule) {
12247
12255
  for (const dependency of [...module.dependencies, ...module.implicitlyLoadedBefore]) {
12248
12256
  if (!(dependency instanceof ExternalModule) &&
12249
12257
  !dependency.isExecuted &&
12250
- (dependency.info.hasModuleSideEffects || module.implicitlyLoadedBefore.has(dependency)) &&
12258
+ (dependency.info.moduleSideEffects || module.implicitlyLoadedBefore.has(dependency)) &&
12251
12259
  !visitedModules.has(dependency.id)) {
12252
12260
  dependency.isExecuted = true;
12253
12261
  visitedModules.add(dependency.id);
@@ -12261,11 +12269,11 @@ const MISSING_EXPORT_SHIM_DESCRIPTION = {
12261
12269
  identifier: null,
12262
12270
  localName: MISSING_EXPORT_SHIM_VARIABLE
12263
12271
  };
12264
- function getVariableForExportNameRecursive(target, name, importerForSideEffects, isExportAllSearch, searchedNamesAndModules = new Map(), skipExternalNamespaceReexports) {
12272
+ function getVariableForExportNameRecursive(target, name, importerForSideEffects, isExportAllSearch, searchedNamesAndModules = new Map()) {
12265
12273
  const searchedModules = searchedNamesAndModules.get(name);
12266
12274
  if (searchedModules) {
12267
12275
  if (searchedModules.has(target)) {
12268
- return isExportAllSearch ? null : error(errCircularReexport(name, target.id));
12276
+ return isExportAllSearch ? [null] : error(errCircularReexport(name, target.id));
12269
12277
  }
12270
12278
  searchedModules.add(target);
12271
12279
  }
@@ -12275,8 +12283,7 @@ function getVariableForExportNameRecursive(target, name, importerForSideEffects,
12275
12283
  return target.getVariableForExportName(name, {
12276
12284
  importerForSideEffects,
12277
12285
  isExportAllSearch,
12278
- searchedNamesAndModules,
12279
- skipExternalNamespaceReexports
12286
+ searchedNamesAndModules
12280
12287
  });
12281
12288
  }
12282
12289
  function getAndExtendSideEffectModules(variable, module) {
@@ -12306,7 +12313,7 @@ function getAndExtendSideEffectModules(variable, module) {
12306
12313
  return sideEffectModules;
12307
12314
  }
12308
12315
  class Module {
12309
- constructor(graph, id, options, isEntry, hasModuleSideEffects, syntheticNamedExports, meta) {
12316
+ constructor(graph, id, options, isEntry, moduleSideEffects, syntheticNamedExports, meta) {
12310
12317
  this.graph = graph;
12311
12318
  this.id = id;
12312
12319
  this.options = options;
@@ -12322,7 +12329,6 @@ class Module {
12322
12329
  this.execIndex = Infinity;
12323
12330
  this.exportAllSources = new Set();
12324
12331
  this.exports = Object.create(null);
12325
- this.exportsAll = Object.create(null);
12326
12332
  this.implicitlyLoadedAfter = new Set();
12327
12333
  this.implicitlyLoadedBefore = new Set();
12328
12334
  this.importDescriptions = Object.create(null);
@@ -12354,12 +12360,18 @@ class Module {
12354
12360
  this.preserveSignature = this.options.preserveEntrySignatures;
12355
12361
  // eslint-disable-next-line @typescript-eslint/no-this-alias
12356
12362
  const module = this;
12363
+ const { dynamicImports, dynamicImporters, reexportDescriptions, implicitlyLoadedAfter, implicitlyLoadedBefore, sources, importers } = this;
12357
12364
  this.info = {
12358
12365
  ast: null,
12359
12366
  code: null,
12367
+ get dynamicallyImportedIdResolutions() {
12368
+ return dynamicImports
12369
+ .map(({ argument }) => typeof argument === 'string' && module.resolvedIds[argument])
12370
+ .filter(Boolean);
12371
+ },
12360
12372
  get dynamicallyImportedIds() {
12361
12373
  const dynamicallyImportedIds = [];
12362
- for (const { id } of module.dynamicImports) {
12374
+ for (const { id } of dynamicImports) {
12363
12375
  if (id) {
12364
12376
  dynamicallyImportedIds.push(id);
12365
12377
  }
@@ -12367,33 +12379,52 @@ class Module {
12367
12379
  return dynamicallyImportedIds;
12368
12380
  },
12369
12381
  get dynamicImporters() {
12370
- return module.dynamicImporters.sort();
12382
+ return dynamicImporters.sort();
12383
+ },
12384
+ get hasDefaultExport() {
12385
+ // This information is only valid after parsing
12386
+ if (!module.ast) {
12387
+ return null;
12388
+ }
12389
+ return 'default' in module.exports || 'default' in reexportDescriptions;
12390
+ },
12391
+ get hasModuleSideEffects() {
12392
+ warnDeprecation('Accessing ModuleInfo.hasModuleSideEffects from plugins is deprecated. Please use ModuleInfo.moduleSideEffects instead.', false, options);
12393
+ return module.info.moduleSideEffects;
12371
12394
  },
12372
- hasModuleSideEffects,
12373
12395
  id,
12374
12396
  get implicitlyLoadedAfterOneOf() {
12375
- return Array.from(module.implicitlyLoadedAfter, getId).sort();
12397
+ return Array.from(implicitlyLoadedAfter, getId).sort();
12376
12398
  },
12377
12399
  get implicitlyLoadedBefore() {
12378
- return Array.from(module.implicitlyLoadedBefore, getId).sort();
12400
+ return Array.from(implicitlyLoadedBefore, getId).sort();
12401
+ },
12402
+ get importedIdResolutions() {
12403
+ return Array.from(sources, source => module.resolvedIds[source]).filter(Boolean);
12379
12404
  },
12380
12405
  get importedIds() {
12381
- return Array.from(module.sources, source => { var _a; return (_a = module.resolvedIds[source]) === null || _a === void 0 ? void 0 : _a.id; }).filter(Boolean);
12406
+ return Array.from(sources, source => { var _a; return (_a = module.resolvedIds[source]) === null || _a === void 0 ? void 0 : _a.id; }).filter(Boolean);
12382
12407
  },
12383
12408
  get importers() {
12384
- return module.importers.sort();
12409
+ return importers.sort();
12385
12410
  },
12386
12411
  isEntry,
12387
12412
  isExternal: false,
12388
12413
  get isIncluded() {
12389
- if (module.graph.phase !== BuildPhase.GENERATE) {
12414
+ if (graph.phase !== BuildPhase.GENERATE) {
12390
12415
  return null;
12391
12416
  }
12392
12417
  return module.isIncluded();
12393
12418
  },
12394
12419
  meta: { ...meta },
12420
+ moduleSideEffects,
12395
12421
  syntheticNamedExports
12396
12422
  };
12423
+ // Hide the deprecated key so that it only warns when accessed explicitly
12424
+ Object.defineProperty(this.info, 'hasModuleSideEffects', {
12425
+ ...Object.getOwnPropertyDescriptor(this.info, 'hasModuleSideEffects'),
12426
+ enumerable: false
12427
+ });
12397
12428
  }
12398
12429
  basename() {
12399
12430
  const base = require$$0.basename(this.id);
@@ -12428,6 +12459,11 @@ class Module {
12428
12459
  allExportNames.add(name);
12429
12460
  }
12430
12461
  }
12462
+ // We do not count the synthetic namespace as a regular export to hide it
12463
+ // from entry signatures and namespace objects
12464
+ if (typeof this.info.syntheticNamedExports === 'string') {
12465
+ allExportNames.delete(this.info.syntheticNamedExports);
12466
+ }
12431
12467
  return allExportNames;
12432
12468
  }
12433
12469
  getDependenciesToBeIncluded() {
@@ -12442,7 +12478,7 @@ class Module {
12442
12478
  this.namespace.included ||
12443
12479
  this.implicitlyLoadedAfter.size > 0) {
12444
12480
  for (const exportName of [...this.getReexports(), ...this.getExports()]) {
12445
- const exportedVariable = this.getVariableForExportName(exportName);
12481
+ const [exportedVariable] = this.getVariableForExportName(exportName);
12446
12482
  if (exportedVariable) {
12447
12483
  dependencyVariables.add(exportedVariable);
12448
12484
  }
@@ -12463,7 +12499,7 @@ class Module {
12463
12499
  }
12464
12500
  necessaryDependencies.add(variable.module);
12465
12501
  }
12466
- if (!this.options.treeshake || this.info.hasModuleSideEffects === 'no-treeshake') {
12502
+ if (!this.options.treeshake || this.info.moduleSideEffects === 'no-treeshake') {
12467
12503
  for (const dependency of this.dependencies) {
12468
12504
  relevantDependencies.add(dependency);
12469
12505
  }
@@ -12482,9 +12518,7 @@ class Module {
12482
12518
  }
12483
12519
  const exportNamesByVariable = new Map();
12484
12520
  for (const exportName of this.getAllExportNames()) {
12485
- if (exportName === this.info.syntheticNamedExports)
12486
- continue;
12487
- let tracedVariable = this.getVariableForExportName(exportName);
12521
+ let [tracedVariable] = this.getVariableForExportName(exportName);
12488
12522
  if (tracedVariable instanceof ExportDefaultVariable) {
12489
12523
  tracedVariable = tracedVariable.getOriginalVariable();
12490
12524
  }
@@ -12533,7 +12567,7 @@ class Module {
12533
12567
  const renderedExports = [];
12534
12568
  const removedExports = [];
12535
12569
  for (const exportName in this.exports) {
12536
- const variable = this.getVariableForExportName(exportName);
12570
+ const [variable] = this.getVariableForExportName(exportName);
12537
12571
  (variable && variable.included ? renderedExports : removedExports).push(exportName);
12538
12572
  }
12539
12573
  return { removedExports, renderedExports };
@@ -12541,20 +12575,20 @@ class Module {
12541
12575
  getSyntheticNamespace() {
12542
12576
  if (this.syntheticNamespace === null) {
12543
12577
  this.syntheticNamespace = undefined;
12544
- this.syntheticNamespace = this.getVariableForExportName(typeof this.info.syntheticNamedExports === 'string'
12578
+ [this.syntheticNamespace] = this.getVariableForExportName(typeof this.info.syntheticNamedExports === 'string'
12545
12579
  ? this.info.syntheticNamedExports
12546
- : 'default');
12580
+ : 'default', { onlyExplicit: true });
12547
12581
  }
12548
12582
  if (!this.syntheticNamespace) {
12549
12583
  return error(errSyntheticNamedExportsNeedNamespaceExport(this.id, this.info.syntheticNamedExports));
12550
12584
  }
12551
12585
  return this.syntheticNamespace;
12552
12586
  }
12553
- getVariableForExportName(name, { importerForSideEffects, isExportAllSearch, searchedNamesAndModules, skipExternalNamespaceReexports } = EMPTY_OBJECT) {
12587
+ getVariableForExportName(name, { importerForSideEffects, isExportAllSearch, onlyExplicit, searchedNamesAndModules } = EMPTY_OBJECT) {
12554
12588
  if (name[0] === '*') {
12555
12589
  if (name.length === 1) {
12556
12590
  // export * from './other'
12557
- return this.namespace;
12591
+ return [this.namespace];
12558
12592
  }
12559
12593
  else {
12560
12594
  // export * from 'external'
@@ -12565,19 +12599,19 @@ class Module {
12565
12599
  // export { foo } from './other'
12566
12600
  const reexportDeclaration = this.reexportDescriptions[name];
12567
12601
  if (reexportDeclaration) {
12568
- const variable = getVariableForExportNameRecursive(reexportDeclaration.module, reexportDeclaration.localName, importerForSideEffects, false, searchedNamesAndModules, false);
12602
+ const [variable] = getVariableForExportNameRecursive(reexportDeclaration.module, reexportDeclaration.localName, importerForSideEffects, false, searchedNamesAndModules);
12569
12603
  if (!variable) {
12570
12604
  return this.error(errMissingExport(reexportDeclaration.localName, this.id, reexportDeclaration.module.id), reexportDeclaration.start);
12571
12605
  }
12572
12606
  if (importerForSideEffects) {
12573
12607
  setAlternativeExporterIfCyclic(variable, importerForSideEffects, this);
12574
12608
  }
12575
- return variable;
12609
+ return [variable];
12576
12610
  }
12577
12611
  const exportDeclaration = this.exports[name];
12578
12612
  if (exportDeclaration) {
12579
12613
  if (exportDeclaration === MISSING_EXPORT_SHIM_DESCRIPTION) {
12580
- return this.exportShimVariable;
12614
+ return [this.exportShimVariable];
12581
12615
  }
12582
12616
  const name = exportDeclaration.localName;
12583
12617
  const variable = this.traceVariable(name, importerForSideEffects);
@@ -12585,41 +12619,37 @@ class Module {
12585
12619
  getOrCreate(importerForSideEffects.sideEffectDependenciesByVariable, variable, () => new Set()).add(this);
12586
12620
  setAlternativeExporterIfCyclic(variable, importerForSideEffects, this);
12587
12621
  }
12588
- return variable;
12622
+ return [variable];
12623
+ }
12624
+ if (onlyExplicit) {
12625
+ return [null];
12589
12626
  }
12590
12627
  if (name !== 'default') {
12591
12628
  const foundNamespaceReexport = name in this.namespaceReexportsByName
12592
12629
  ? this.namespaceReexportsByName[name]
12593
- : this.getVariableFromNamespaceReexports(name, importerForSideEffects, searchedNamesAndModules, skipExternalNamespaceReexports);
12594
- if (!skipExternalNamespaceReexports) {
12595
- this.namespaceReexportsByName[name] = foundNamespaceReexport;
12596
- }
12597
- if (foundNamespaceReexport) {
12630
+ : this.getVariableFromNamespaceReexports(name, importerForSideEffects, searchedNamesAndModules);
12631
+ this.namespaceReexportsByName[name] = foundNamespaceReexport;
12632
+ if (foundNamespaceReexport[0]) {
12598
12633
  return foundNamespaceReexport;
12599
12634
  }
12600
12635
  }
12601
12636
  if (this.info.syntheticNamedExports) {
12602
- let syntheticExport = this.syntheticExports.get(name);
12603
- if (!syntheticExport) {
12604
- const syntheticNamespace = this.getSyntheticNamespace();
12605
- syntheticExport = new SyntheticNamedExportVariable(this.astContext, name, syntheticNamespace);
12606
- this.syntheticExports.set(name, syntheticExport);
12607
- return syntheticExport;
12608
- }
12609
- return syntheticExport;
12637
+ return [
12638
+ getOrCreate(this.syntheticExports, name, () => new SyntheticNamedExportVariable(this.astContext, name, this.getSyntheticNamespace()))
12639
+ ];
12610
12640
  }
12611
12641
  // we don't want to create shims when we are just
12612
12642
  // probing export * modules for exports
12613
12643
  if (!isExportAllSearch) {
12614
12644
  if (this.options.shimMissingExports) {
12615
12645
  this.shimMissingExport(name);
12616
- return this.exportShimVariable;
12646
+ return [this.exportShimVariable];
12617
12647
  }
12618
12648
  }
12619
- return null;
12649
+ return [null];
12620
12650
  }
12621
12651
  hasEffects() {
12622
- return (this.info.hasModuleSideEffects === 'no-treeshake' ||
12652
+ return (this.info.moduleSideEffects === 'no-treeshake' ||
12623
12653
  (this.ast.included && this.ast.hasEffects(createHasEffectsContext())));
12624
12654
  }
12625
12655
  include() {
@@ -12634,7 +12664,7 @@ class Module {
12634
12664
  }
12635
12665
  for (const exportName of this.getExports()) {
12636
12666
  if (includeNamespaceMembers || exportName !== this.info.syntheticNamedExports) {
12637
- const variable = this.getVariableForExportName(exportName);
12667
+ const variable = this.getVariableForExportName(exportName)[0];
12638
12668
  variable.deoptimizePath(UNKNOWN_PATH);
12639
12669
  if (!variable.included) {
12640
12670
  this.includeVariable(variable);
@@ -12642,7 +12672,7 @@ class Module {
12642
12672
  }
12643
12673
  }
12644
12674
  for (const name of this.getReexports()) {
12645
- const variable = this.getVariableForExportName(name);
12675
+ const [variable] = this.getVariableForExportName(name);
12646
12676
  if (variable) {
12647
12677
  variable.deoptimizePath(UNKNOWN_PATH);
12648
12678
  if (!variable.included) {
@@ -12667,11 +12697,6 @@ class Module {
12667
12697
  linkImports() {
12668
12698
  this.addModulesToImportDescriptions(this.importDescriptions);
12669
12699
  this.addModulesToImportDescriptions(this.reexportDescriptions);
12670
- for (const name in this.exports) {
12671
- if (name !== 'default' && name !== this.info.syntheticNamedExports) {
12672
- this.exportsAll[name] = this.id;
12673
- }
12674
- }
12675
12700
  const externalExportAllModules = [];
12676
12701
  for (const source of this.exportAllSources) {
12677
12702
  const module = this.graph.modulesById.get(this.resolvedIds[source].id);
@@ -12680,14 +12705,6 @@ class Module {
12680
12705
  continue;
12681
12706
  }
12682
12707
  this.exportAllModules.push(module);
12683
- for (const name in module.exportsAll) {
12684
- if (name in this.exportsAll) {
12685
- this.options.onwarn(errNamespaceConflict(name, this, module));
12686
- }
12687
- else {
12688
- this.exportsAll[name] = module.exportsAll[name];
12689
- }
12690
- }
12691
12708
  }
12692
12709
  this.exportAllModules.push(...externalExportAllModules);
12693
12710
  }
@@ -12745,7 +12762,7 @@ class Module {
12745
12762
  moduleContext: this.context,
12746
12763
  options: this.options,
12747
12764
  requestTreeshakingPass: () => (this.graph.needsTreeshakingPass = true),
12748
- traceExport: this.getVariableForExportName.bind(this),
12765
+ traceExport: (name) => this.getVariableForExportName(name)[0],
12749
12766
  traceVariable: this.traceVariable.bind(this),
12750
12767
  usesTopLevelAwait: false,
12751
12768
  warn: this.warn.bind(this)
@@ -12764,7 +12781,7 @@ class Module {
12764
12781
  dependencies: Array.from(this.dependencies, getId),
12765
12782
  id: this.id,
12766
12783
  meta: this.info.meta,
12767
- moduleSideEffects: this.info.hasModuleSideEffects,
12784
+ moduleSideEffects: this.info.moduleSideEffects,
12768
12785
  originalCode: this.originalCode,
12769
12786
  originalSourcemap: this.originalSourcemap,
12770
12787
  resolvedIds: this.resolvedIds,
@@ -12785,7 +12802,7 @@ class Module {
12785
12802
  if (otherModule instanceof Module && importDeclaration.name === '*') {
12786
12803
  return otherModule.namespace;
12787
12804
  }
12788
- const declaration = otherModule.getVariableForExportName(importDeclaration.name, {
12805
+ const [declaration] = otherModule.getVariableForExportName(importDeclaration.name, {
12789
12806
  importerForSideEffects: importerForSideEffects || this
12790
12807
  });
12791
12808
  if (!declaration) {
@@ -12816,7 +12833,7 @@ class Module {
12816
12833
  }
12817
12834
  updateOptions({ meta, moduleSideEffects, syntheticNamedExports }) {
12818
12835
  if (moduleSideEffects != null) {
12819
- this.info.hasModuleSideEffects = moduleSideEffects;
12836
+ this.info.moduleSideEffects = moduleSideEffects;
12820
12837
  }
12821
12838
  if (syntheticNamedExports != null) {
12822
12839
  this.info.syntheticNamedExports = syntheticNamedExports;
@@ -12970,7 +12987,7 @@ class Module {
12970
12987
  relevantDependencies.add(dependency);
12971
12988
  continue;
12972
12989
  }
12973
- if (!(dependency.info.hasModuleSideEffects || alwaysCheckedDependencies.has(dependency))) {
12990
+ if (!(dependency.info.moduleSideEffects || alwaysCheckedDependencies.has(dependency))) {
12974
12991
  continue;
12975
12992
  }
12976
12993
  if (dependency instanceof ExternalModule || dependency.hasEffects()) {
@@ -12983,58 +13000,57 @@ class Module {
12983
13000
  addSideEffectDependencies(this.dependencies);
12984
13001
  addSideEffectDependencies(alwaysCheckedDependencies);
12985
13002
  }
12986
- getVariableFromNamespaceReexports(name, importerForSideEffects, searchedNamesAndModules, skipExternalNamespaceReexports = false) {
13003
+ getVariableFromNamespaceReexports(name, importerForSideEffects, searchedNamesAndModules) {
12987
13004
  let foundSyntheticDeclaration = null;
12988
- const skipExternalNamespaceValues = [{ searchedNamesAndModules, skipExternalNamespaces: true }];
12989
- if (!skipExternalNamespaceReexports) {
12990
- const clonedSearchedNamesAndModules = new Map();
12991
- for (const [name, modules] of searchedNamesAndModules || []) {
12992
- clonedSearchedNamesAndModules.set(name, new Set(modules));
12993
- }
12994
- skipExternalNamespaceValues.push({
12995
- searchedNamesAndModules: clonedSearchedNamesAndModules,
12996
- skipExternalNamespaces: false
12997
- });
12998
- }
12999
- for (const { skipExternalNamespaces, searchedNamesAndModules } of skipExternalNamespaceValues) {
13000
- const foundDeclarations = new Set();
13001
- for (const module of this.exportAllModules) {
13002
- if (module instanceof Module || !skipExternalNamespaces) {
13003
- const declaration = getVariableForExportNameRecursive(module, name, importerForSideEffects, true, searchedNamesAndModules, skipExternalNamespaces);
13004
- if (declaration) {
13005
- if (!(declaration instanceof SyntheticNamedExportVariable)) {
13006
- foundDeclarations.add(declaration);
13007
- }
13008
- else if (!foundSyntheticDeclaration) {
13009
- foundSyntheticDeclaration = declaration;
13010
- }
13011
- }
13012
- }
13005
+ const foundInternalDeclarations = new Map();
13006
+ const foundExternalDeclarations = new Set();
13007
+ for (const module of this.exportAllModules) {
13008
+ // Synthetic namespaces should not hide "regular" exports of the same name
13009
+ if (module.info.syntheticNamedExports === name) {
13010
+ continue;
13013
13011
  }
13014
- if (foundDeclarations.size === 1) {
13015
- return [...foundDeclarations][0];
13012
+ const [variable, indirectExternal] = getVariableForExportNameRecursive(module, name, importerForSideEffects, true, searchedNamesAndModules);
13013
+ if (module instanceof ExternalModule || indirectExternal) {
13014
+ foundExternalDeclarations.add(variable);
13016
13015
  }
13017
- if (foundDeclarations.size > 1) {
13018
- if (skipExternalNamespaces) {
13019
- return null;
13016
+ else if (variable instanceof SyntheticNamedExportVariable) {
13017
+ if (!foundSyntheticDeclaration) {
13018
+ foundSyntheticDeclaration = variable;
13020
13019
  }
13021
- const foundDeclarationList = [...foundDeclarations];
13022
- const usedDeclaration = foundDeclarationList[0];
13020
+ }
13021
+ else if (variable) {
13022
+ foundInternalDeclarations.set(variable, module);
13023
+ }
13024
+ }
13025
+ if (foundInternalDeclarations.size > 0) {
13026
+ const foundDeclarationList = [...foundInternalDeclarations];
13027
+ const usedDeclaration = foundDeclarationList[0][0];
13028
+ if (foundDeclarationList.length === 1) {
13029
+ return [usedDeclaration];
13030
+ }
13031
+ this.options.onwarn(errNamespaceConflict(name, this.id, foundDeclarationList.map(([, module]) => module.id)));
13032
+ // TODO we are pretending it was not found while it should behave like "undefined"
13033
+ return [null];
13034
+ }
13035
+ if (foundExternalDeclarations.size > 0) {
13036
+ const foundDeclarationList = [...foundExternalDeclarations];
13037
+ const usedDeclaration = foundDeclarationList[0];
13038
+ if (foundDeclarationList.length > 1) {
13023
13039
  this.options.onwarn(errAmbiguousExternalNamespaces(name, this.id, usedDeclaration.module.id, foundDeclarationList.map(declaration => declaration.module.id)));
13024
- return usedDeclaration;
13025
13040
  }
13041
+ return [usedDeclaration, true];
13026
13042
  }
13027
13043
  if (foundSyntheticDeclaration) {
13028
- return foundSyntheticDeclaration;
13044
+ return [foundSyntheticDeclaration];
13029
13045
  }
13030
- return null;
13046
+ return [null];
13031
13047
  }
13032
13048
  includeAndGetAdditionalMergedNamespaces() {
13033
13049
  const externalNamespaces = new Set();
13034
13050
  const syntheticNamespaces = new Set();
13035
13051
  for (const module of [this, ...this.exportAllModules]) {
13036
13052
  if (module instanceof ExternalModule) {
13037
- const externalVariable = module.getVariableForExportName('*');
13053
+ const [externalVariable] = module.getVariableForExportName('*');
13038
13054
  externalVariable.include();
13039
13055
  this.imports.add(externalVariable);
13040
13056
  externalNamespaces.add(externalVariable);
@@ -14022,10 +14038,8 @@ function collapseSourcemaps(file, map, modules, bundleSourcemapChain, excludeCon
14022
14038
  const moduleSources = modules
14023
14039
  .filter(module => !module.excludeFromSourcemap)
14024
14040
  .map(module => getCollapsedSourcemap(module.id, module.originalCode, module.originalSourcemap, module.sourcemapChain, linkMap));
14025
- // DecodedSourceMap (from magic-string) uses a number[] instead of the more
14026
- // correct SourceMapSegment tuples. Cast it here to gain type safety.
14027
- let source = new Link(map, moduleSources);
14028
- source = bundleSourcemapChain.reduce(linkMap, source);
14041
+ const link = new Link(map, moduleSources);
14042
+ const source = bundleSourcemapChain.reduce(linkMap, link);
14029
14043
  let { sources, sourcesContent, names, mappings } = source.traceMappings();
14030
14044
  if (file) {
14031
14045
  const directory = require$$0.dirname(file);
@@ -14177,7 +14191,7 @@ function assignExportsToMangledNames(exports, exportsByName, exportNamesByVariab
14177
14191
  let nameIndex = 0;
14178
14192
  for (const variable of exports) {
14179
14193
  let [exportName] = variable.name;
14180
- if (exportsByName[exportName]) {
14194
+ if (exportsByName.has(exportName)) {
14181
14195
  do {
14182
14196
  exportName = toBase64(++nameIndex);
14183
14197
  // skip past leading number identifiers
@@ -14185,9 +14199,9 @@ function assignExportsToMangledNames(exports, exportsByName, exportNamesByVariab
14185
14199
  nameIndex += 9 * 64 ** (exportName.length - 1);
14186
14200
  exportName = toBase64(nameIndex);
14187
14201
  }
14188
- } while (RESERVED_NAMES$1.has(exportName) || exportsByName[exportName]);
14202
+ } while (RESERVED_NAMES$1.has(exportName) || exportsByName.has(exportName));
14189
14203
  }
14190
- exportsByName[exportName] = variable;
14204
+ exportsByName.set(exportName, variable);
14191
14205
  exportNamesByVariable.set(variable, [exportName]);
14192
14206
  }
14193
14207
  }
@@ -14195,10 +14209,10 @@ function assignExportsToNames(exports, exportsByName, exportNamesByVariable) {
14195
14209
  for (const variable of exports) {
14196
14210
  let nameIndex = 0;
14197
14211
  let exportName = variable.name;
14198
- while (exportsByName[exportName]) {
14212
+ while (exportsByName.has(exportName)) {
14199
14213
  exportName = variable.name + '$' + ++nameIndex;
14200
14214
  }
14201
- exportsByName[exportName] = variable;
14215
+ exportsByName.set(exportName, variable);
14202
14216
  exportNamesByVariable.set(variable, [exportName]);
14203
14217
  }
14204
14218
  }
@@ -14316,13 +14330,7 @@ function decodedSourcemap(map) {
14316
14330
  version: 3
14317
14331
  };
14318
14332
  }
14319
- let mappings;
14320
- if (typeof map.mappings === 'string') {
14321
- mappings = decode(map.mappings);
14322
- }
14323
- else {
14324
- mappings = map.mappings;
14325
- }
14333
+ const mappings = typeof map.mappings === 'string' ? decode(map.mappings) : map.mappings;
14326
14334
  return { ...map, mappings };
14327
14335
  }
14328
14336
 
@@ -14412,7 +14420,7 @@ class Chunk {
14412
14420
  this.dynamicName = null;
14413
14421
  this.exportNamesByVariable = new Map();
14414
14422
  this.exports = new Set();
14415
- this.exportsByName = Object.create(null);
14423
+ this.exportsByName = new Map();
14416
14424
  this.fileName = null;
14417
14425
  this.implicitEntryModules = [];
14418
14426
  this.implicitlyLoadedBefore = new Set();
@@ -14468,7 +14476,7 @@ class Chunk {
14468
14476
  chunk.dependencies.add(dependency instanceof Module ? chunkByModule.get(dependency) : dependency);
14469
14477
  }
14470
14478
  if (!chunk.dependencies.has(chunkByModule.get(facadedModule)) &&
14471
- facadedModule.info.hasModuleSideEffects &&
14479
+ facadedModule.info.moduleSideEffects &&
14472
14480
  facadedModule.hasEffects()) {
14473
14481
  chunk.dependencies.add(chunkByModule.get(facadedModule));
14474
14482
  }
@@ -14511,7 +14519,7 @@ class Chunk {
14511
14519
  for (const [variable, exportNames] of exportNamesByVariable) {
14512
14520
  this.exportNamesByVariable.set(variable, [...exportNames]);
14513
14521
  for (const exportName of exportNames) {
14514
- this.exportsByName[exportName] = variable;
14522
+ this.exportsByName.set(exportName, variable);
14515
14523
  }
14516
14524
  remainingExports.delete(variable);
14517
14525
  }
@@ -14605,15 +14613,15 @@ class Chunk {
14605
14613
  }
14606
14614
  generateIdPreserveModules(preserveModulesRelativeDir, options, existingNames, unsetOptions) {
14607
14615
  const [{ id }] = this.orderedModules;
14608
- const sanitizedId = this.outputOptions.sanitizeFileName(id);
14616
+ const sanitizedId = this.outputOptions.sanitizeFileName(id.split(QUERY_HASH_REGEX, 1)[0]);
14609
14617
  let path;
14610
14618
  const patternOpt = unsetOptions.has('entryFileNames')
14611
14619
  ? '[name][assetExtname].js'
14612
14620
  : options.entryFileNames;
14613
14621
  const pattern = typeof patternOpt === 'function' ? patternOpt(this.getChunkInfo()) : patternOpt;
14614
- if (isAbsolute(id)) {
14622
+ if (isAbsolute(sanitizedId)) {
14615
14623
  const currentDir = require$$0.dirname(sanitizedId);
14616
- const extension = require$$0.extname(id);
14624
+ const extension = require$$0.extname(sanitizedId);
14617
14625
  const fileName = renderNamePattern(pattern, 'output.entryFileNames', {
14618
14626
  assetExtname: () => (NON_ASSET_EXTENSIONS.includes(extension) ? '' : extension),
14619
14627
  ext: () => extension.substr(1),
@@ -14672,10 +14680,12 @@ class Chunk {
14672
14680
  });
14673
14681
  }
14674
14682
  getChunkName() {
14675
- return (this.name || (this.name = this.outputOptions.sanitizeFileName(this.getFallbackChunkName())));
14683
+ var _a;
14684
+ return ((_a = this.name) !== null && _a !== void 0 ? _a : (this.name = this.outputOptions.sanitizeFileName(this.getFallbackChunkName())));
14676
14685
  }
14677
14686
  getExportNames() {
14678
- return (this.sortedExportNames || (this.sortedExportNames = Object.keys(this.exportsByName).sort()));
14687
+ var _a;
14688
+ return ((_a = this.sortedExportNames) !== null && _a !== void 0 ? _a : (this.sortedExportNames = Array.from(this.exportsByName.keys()).sort()));
14679
14689
  }
14680
14690
  getRenderedHash() {
14681
14691
  if (this.renderedHash)
@@ -14691,7 +14701,7 @@ class Chunk {
14691
14701
  hash.update(this.renderedSource.toString());
14692
14702
  hash.update(this.getExportNames()
14693
14703
  .map(exportName => {
14694
- const variable = this.exportsByName[exportName];
14704
+ const variable = this.exportsByName.get(exportName);
14695
14705
  return `${relativeId(variable.module.id).replace(/\\/g, '/')}:${variable.name}:${exportName}`;
14696
14706
  })
14697
14707
  .join(','));
@@ -14950,12 +14960,12 @@ class Chunk {
14950
14960
  }
14951
14961
  computeContentHashWithDependencies(addons, options, existingNames) {
14952
14962
  const hash = createHash();
14953
- hash.update([addons.intro, addons.outro, addons.banner, addons.footer].map(addon => addon || '').join(':'));
14963
+ hash.update([addons.intro, addons.outro, addons.banner, addons.footer].join(':'));
14954
14964
  hash.update(options.format);
14955
14965
  const dependenciesForHashing = new Set([this]);
14956
14966
  for (const current of dependenciesForHashing) {
14957
14967
  if (current instanceof ExternalModule) {
14958
- hash.update(':' + current.renderPath);
14968
+ hash.update(`:${current.renderPath}`);
14959
14969
  }
14960
14970
  else {
14961
14971
  hash.update(current.getRenderedHash());
@@ -15062,7 +15072,7 @@ class Chunk {
15062
15072
  for (const exportName of this.getExportNames()) {
15063
15073
  if (exportName[0] === '*')
15064
15074
  continue;
15065
- const variable = this.exportsByName[exportName];
15075
+ const variable = this.exportsByName.get(exportName);
15066
15076
  if (!(variable instanceof SyntheticNamedExportVariable)) {
15067
15077
  const module = variable.module;
15068
15078
  if (module && this.chunkByModule.get(module) !== this)
@@ -15210,7 +15220,7 @@ class Chunk {
15210
15220
  imported = exportName = '*';
15211
15221
  }
15212
15222
  else {
15213
- const variable = this.exportsByName[exportName];
15223
+ const variable = this.exportsByName.get(exportName);
15214
15224
  if (variable instanceof SyntheticNamedExportVariable)
15215
15225
  continue;
15216
15226
  const module = variable.module;
@@ -15311,7 +15321,7 @@ class Chunk {
15311
15321
  setIdentifierRenderResolutions({ format, interop, namespaceToStringTag }) {
15312
15322
  const syntheticExports = new Set();
15313
15323
  for (const exportName of this.getExportNames()) {
15314
- const exportVariable = this.exportsByName[exportName];
15324
+ const exportVariable = this.exportsByName.get(exportName);
15315
15325
  if (format !== 'es' &&
15316
15326
  format !== 'system' &&
15317
15327
  exportVariable.isReassigned &&
@@ -15403,6 +15413,7 @@ class Chunk {
15403
15413
  function getChunkNameFromModule(module) {
15404
15414
  return module.chunkName || getAliasName(module.id);
15405
15415
  }
15416
+ const QUERY_HASH_REGEX = /[?#]/;
15406
15417
 
15407
15418
  function generateAssetFileName(name, source, outputOptions, bundle) {
15408
15419
  const emittedName = outputOptions.sanitizeFileName(name || 'asset');
@@ -16179,8 +16190,8 @@ var keywordRelationalOperator = /^in(stanceof)?$/;
16179
16190
  // are only applied when a character is found to actually have a
16180
16191
  // code point above 128.
16181
16192
  // Generated by `bin/generate-identifier-regex.js`.
16182
- var nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u08a0-\u08b4\u08b6-\u08c7\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u170c\u170e-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4b\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2c2e\u2c30-\u2c5e\u2c60-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\u9ffc\ua000-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7bf\ua7c2-\ua7ca\ua7f5-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc";
16183
- var nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u08d3-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u1810-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf\u1ac0\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1df9\u1dfb-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f";
16193
+ var nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088e\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ca\ua7d0\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc";
16194
+ var nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0898-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f";
16184
16195
 
16185
16196
  var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]");
16186
16197
  var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]");
@@ -16194,10 +16205,10 @@ nonASCIIidentifierStartChars = nonASCIIidentifierChars = null;
16194
16205
  // generated by bin/generate-identifier-regex.js
16195
16206
 
16196
16207
  // eslint-disable-next-line comma-spacing
16197
- var astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,157,310,10,21,11,7,153,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,107,20,28,22,13,52,76,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,230,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,35,56,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2749,1070,4050,582,8634,568,8,30,114,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8952,286,50,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,2357,44,11,6,17,0,370,43,1301,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42717,35,4148,12,221,3,5761,15,7472,3104,541,1507,4938];
16208
+ var astralIdentifierStartCodes = [0,11,2,25,2,18,2,1,2,14,3,13,35,122,70,52,268,28,4,48,48,31,14,29,6,37,11,29,3,35,5,7,2,4,43,157,19,35,5,35,5,39,9,51,13,10,2,14,2,6,2,1,2,10,2,14,2,6,2,1,68,310,10,21,11,7,25,5,2,41,2,8,70,5,3,0,2,43,2,1,4,0,3,22,11,22,10,30,66,18,2,1,11,21,11,25,71,55,7,1,65,0,16,3,2,2,2,28,43,28,4,28,36,7,2,27,28,53,11,21,11,18,14,17,111,72,56,50,14,50,14,35,349,41,7,1,79,28,11,0,9,21,43,17,47,20,28,22,13,52,58,1,3,0,14,44,33,24,27,35,30,0,3,0,9,34,4,0,13,47,15,3,22,0,2,0,36,17,2,24,85,6,2,0,2,3,2,14,2,9,8,46,39,7,3,1,3,21,2,6,2,1,2,4,4,0,19,0,13,4,159,52,19,3,21,2,31,47,21,1,2,0,185,46,42,3,37,47,21,0,60,42,14,0,72,26,38,6,186,43,117,63,32,7,3,0,3,7,2,1,2,23,16,0,2,0,95,7,3,38,17,0,2,0,29,0,11,39,8,0,22,0,12,45,20,0,19,72,264,8,2,36,18,0,50,29,113,6,2,1,2,37,22,0,26,5,2,1,2,31,15,0,328,18,190,0,80,921,103,110,18,195,2637,96,16,1070,4050,582,8634,568,8,30,18,78,18,29,19,47,17,3,32,20,6,18,689,63,129,74,6,0,67,12,65,1,2,0,29,6135,9,1237,43,8,8936,3,2,6,2,1,2,290,46,2,18,3,9,395,2309,106,6,12,4,8,8,9,5991,84,2,70,2,1,3,0,3,1,3,3,2,11,2,0,2,6,2,64,2,3,3,7,2,6,2,27,2,3,2,4,2,0,4,6,2,339,3,24,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,30,2,24,2,7,1845,30,482,44,11,6,17,0,322,29,19,43,1269,6,2,3,2,1,2,14,2,196,60,67,8,0,1205,3,2,26,2,1,2,0,3,0,2,9,2,3,2,0,2,0,7,0,5,0,2,0,2,0,2,2,2,1,2,0,3,0,2,0,2,0,2,0,2,0,2,1,2,0,3,3,2,6,2,3,2,3,2,0,2,9,2,16,6,2,2,4,2,16,4421,42719,33,4152,8,221,3,5761,15,7472,3104,541,1507,4938];
16198
16209
 
16199
16210
  // eslint-disable-next-line comma-spacing
16200
- var astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,176,2,54,14,32,9,16,3,46,10,54,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,135,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,5319,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,419,13,1495,6,110,6,6,9,4759,9,787719,239];
16211
+ var astralIdentifierCodes = [509,0,227,0,150,4,294,9,1368,2,2,1,6,3,41,2,5,0,166,1,574,3,9,9,370,1,154,10,50,3,123,2,54,14,32,10,3,1,11,3,46,10,8,0,46,9,7,2,37,13,2,9,6,1,45,0,13,2,49,13,9,3,2,11,83,11,7,0,161,11,6,9,7,3,56,1,2,6,3,1,3,2,10,0,11,1,3,6,4,4,193,17,10,9,5,0,82,19,13,9,214,6,3,8,28,1,83,16,16,9,82,12,9,9,84,14,5,9,243,14,166,9,71,5,2,1,3,3,2,0,2,1,13,9,120,6,3,6,4,0,29,9,41,6,2,3,9,0,10,10,47,15,406,7,2,7,17,9,57,21,2,13,123,5,4,0,2,1,2,6,2,0,9,9,49,4,2,1,2,4,9,9,330,3,19306,9,87,9,39,4,60,6,26,9,1014,0,2,54,8,3,82,0,12,1,19628,1,4706,45,3,22,543,4,4,5,9,7,3,6,31,3,149,2,1418,49,513,54,5,49,9,0,15,0,23,4,2,14,1361,6,2,16,3,6,2,1,2,4,262,6,10,9,357,0,62,13,1495,6,110,6,6,9,4759,9,787719,239];
16201
16212
 
16202
16213
  // This has a complexity linear to the value of the code. The
16203
16214
  // assumption is that looking up astral identifier characters is
@@ -16402,6 +16413,17 @@ function isNewLine(code) {
16402
16413
  return code === 10 || code === 13 || code === 0x2028 || code === 0x2029
16403
16414
  }
16404
16415
 
16416
+ function nextLineBreak(code, from, end) {
16417
+ if ( end === void 0 ) end = code.length;
16418
+
16419
+ for (var i = from; i < end; i++) {
16420
+ var next = code.charCodeAt(i);
16421
+ if (isNewLine(next))
16422
+ { return i < end - 1 && next === 13 && code.charCodeAt(i + 1) === 10 ? i + 2 : i + 1 }
16423
+ }
16424
+ return -1
16425
+ }
16426
+
16405
16427
  var nonASCIIwhitespace = /[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/;
16406
16428
 
16407
16429
  var skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g;
@@ -16410,11 +16432,9 @@ var ref = Object.prototype;
16410
16432
  var hasOwnProperty = ref.hasOwnProperty;
16411
16433
  var toString = ref.toString;
16412
16434
 
16413
- // Checks if an object has a property.
16414
-
16415
- function has(obj, propName) {
16416
- return hasOwnProperty.call(obj, propName)
16417
- }
16435
+ var hasOwn = Object.hasOwn || (function (obj, propName) { return (
16436
+ hasOwnProperty.call(obj, propName)
16437
+ ); });
16418
16438
 
16419
16439
  var isArray = Array.isArray || (function (obj) { return (
16420
16440
  toString.call(obj) === "[object Array]"
@@ -16424,6 +16444,8 @@ function wordsRegexp(words) {
16424
16444
  return new RegExp("^(?:" + words.replace(/ /g, "|") + ")$")
16425
16445
  }
16426
16446
 
16447
+ var loneSurrogate = /(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/;
16448
+
16427
16449
  // These are used when `options.locations` is on, for the
16428
16450
  // `startLoc` and `endLoc` properties.
16429
16451
 
@@ -16450,14 +16472,10 @@ var SourceLocation = function SourceLocation(p, start, end) {
16450
16472
 
16451
16473
  function getLineInfo(input, offset) {
16452
16474
  for (var line = 1, cur = 0;;) {
16453
- lineBreakG.lastIndex = cur;
16454
- var match = lineBreakG.exec(input);
16455
- if (match && match.index < offset) {
16456
- ++line;
16457
- cur = match.index + match[0].length;
16458
- } else {
16459
- return new Position(line, offset - cur)
16460
- }
16475
+ var nextBreak = nextLineBreak(input, cur, offset);
16476
+ if (nextBreak < 0) { return new Position(line, offset - cur) }
16477
+ ++line;
16478
+ cur = nextBreak;
16461
16479
  }
16462
16480
  }
16463
16481
 
@@ -16563,7 +16581,7 @@ function getOptions(opts) {
16563
16581
  var options = {};
16564
16582
 
16565
16583
  for (var opt in defaultOptions)
16566
- { options[opt] = opts && has(opts, opt) ? opts[opt] : defaultOptions[opt]; }
16584
+ { options[opt] = opts && hasOwn(opts, opt) ? opts[opt] : defaultOptions[opt]; }
16567
16585
 
16568
16586
  if (options.ecmaVersion === "latest") {
16569
16587
  options.ecmaVersion = 1e8;
@@ -17729,7 +17747,7 @@ pp$8.exitClassBody = function() {
17729
17747
  var parent = len === 0 ? null : this.privateNameStack[len - 1];
17730
17748
  for (var i = 0; i < used.length; ++i) {
17731
17749
  var id = used[i];
17732
- if (!has(declared, id.name)) {
17750
+ if (!hasOwn(declared, id.name)) {
17733
17751
  if (parent) {
17734
17752
  parent.used.push(id);
17735
17753
  } else {
@@ -17782,7 +17800,7 @@ pp$8.parseExport = function(node, exports) {
17782
17800
  if (this.eat(types$1.star)) {
17783
17801
  if (this.options.ecmaVersion >= 11) {
17784
17802
  if (this.eatContextual("as")) {
17785
- node.exported = this.parseIdent(true);
17803
+ node.exported = this.parseModuleExportName();
17786
17804
  this.checkExport(exports, node.exported.name, this.lastTokStart);
17787
17805
  } else {
17788
17806
  node.exported = null;
@@ -17834,6 +17852,10 @@ pp$8.parseExport = function(node, exports) {
17834
17852
  this.checkUnreserved(spec.local);
17835
17853
  // check if export is defined
17836
17854
  this.checkLocalExport(spec.local);
17855
+
17856
+ if (spec.local.type === "Literal") {
17857
+ this.raise(spec.local.start, "A string literal cannot be used as an exported binding without `from`.");
17858
+ }
17837
17859
  }
17838
17860
 
17839
17861
  node.source = null;
@@ -17845,7 +17867,7 @@ pp$8.parseExport = function(node, exports) {
17845
17867
 
17846
17868
  pp$8.checkExport = function(exports, name, pos) {
17847
17869
  if (!exports) { return }
17848
- if (has(exports, name))
17870
+ if (hasOwn(exports, name))
17849
17871
  { this.raiseRecoverable(pos, "Duplicate export '" + name + "'"); }
17850
17872
  exports[name] = true;
17851
17873
  };
@@ -17909,9 +17931,13 @@ pp$8.parseExportSpecifiers = function(exports) {
17909
17931
  } else { first = false; }
17910
17932
 
17911
17933
  var node = this.startNode();
17912
- node.local = this.parseIdent(true);
17913
- node.exported = this.eatContextual("as") ? this.parseIdent(true) : node.local;
17914
- this.checkExport(exports, node.exported.name, node.exported.start);
17934
+ node.local = this.parseModuleExportName();
17935
+ node.exported = this.eatContextual("as") ? this.parseModuleExportName() : node.local;
17936
+ this.checkExport(
17937
+ exports,
17938
+ node.exported[node.exported.type === "Identifier" ? "name" : "value"],
17939
+ node.exported.start
17940
+ );
17915
17941
  nodes.push(this.finishNode(node, "ExportSpecifier"));
17916
17942
  }
17917
17943
  return nodes
@@ -17963,7 +17989,7 @@ pp$8.parseImportSpecifiers = function() {
17963
17989
  } else { first = false; }
17964
17990
 
17965
17991
  var node$2 = this.startNode();
17966
- node$2.imported = this.parseIdent(true);
17992
+ node$2.imported = this.parseModuleExportName();
17967
17993
  if (this.eatContextual("as")) {
17968
17994
  node$2.local = this.parseIdent();
17969
17995
  } else {
@@ -17976,6 +18002,17 @@ pp$8.parseImportSpecifiers = function() {
17976
18002
  return nodes
17977
18003
  };
17978
18004
 
18005
+ pp$8.parseModuleExportName = function() {
18006
+ if (this.options.ecmaVersion >= 13 && this.type === types$1.string) {
18007
+ var stringLiteral = this.parseLiteral(this.value);
18008
+ if (loneSurrogate.test(stringLiteral.value)) {
18009
+ this.raise(stringLiteral.start, "An export name cannot include a lone surrogate.");
18010
+ }
18011
+ return stringLiteral
18012
+ }
18013
+ return this.parseIdent(true)
18014
+ };
18015
+
17979
18016
  // Set `ExpressionStatement#directive` property for directive prologues.
17980
18017
  pp$8.adaptDirectivePrologue = function(statements) {
17981
18018
  for (var i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) {
@@ -18249,7 +18286,7 @@ pp$7.checkLValSimple = function(expr, bindingType, checkClashes) {
18249
18286
  if (bindingType === BIND_LEXICAL && expr.name === "let")
18250
18287
  { this.raiseRecoverable(expr.start, "let is disallowed as a lexically bound name"); }
18251
18288
  if (checkClashes) {
18252
- if (has(checkClashes, expr.name))
18289
+ if (hasOwn(checkClashes, expr.name))
18253
18290
  { this.raiseRecoverable(expr.start, "Argument name clash"); }
18254
18291
  checkClashes[expr.name] = true;
18255
18292
  }
@@ -19744,26 +19781,30 @@ var ecma9BinaryProperties = "ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Ass
19744
19781
  var ecma10BinaryProperties = ecma9BinaryProperties + " Extended_Pictographic";
19745
19782
  var ecma11BinaryProperties = ecma10BinaryProperties;
19746
19783
  var ecma12BinaryProperties = ecma11BinaryProperties + " EBase EComp EMod EPres ExtPict";
19784
+ var ecma13BinaryProperties = ecma12BinaryProperties;
19747
19785
  var unicodeBinaryProperties = {
19748
19786
  9: ecma9BinaryProperties,
19749
19787
  10: ecma10BinaryProperties,
19750
19788
  11: ecma11BinaryProperties,
19751
- 12: ecma12BinaryProperties
19789
+ 12: ecma12BinaryProperties,
19790
+ 13: ecma13BinaryProperties
19752
19791
  };
19753
19792
 
19754
19793
  // #table-unicode-general-category-values
19755
19794
  var unicodeGeneralCategoryValues = "Cased_Letter LC Close_Punctuation Pe Connector_Punctuation Pc Control Cc cntrl Currency_Symbol Sc Dash_Punctuation Pd Decimal_Number Nd digit Enclosing_Mark Me Final_Punctuation Pf Format Cf Initial_Punctuation Pi Letter L Letter_Number Nl Line_Separator Zl Lowercase_Letter Ll Mark M Combining_Mark Math_Symbol Sm Modifier_Letter Lm Modifier_Symbol Sk Nonspacing_Mark Mn Number N Open_Punctuation Ps Other C Other_Letter Lo Other_Number No Other_Punctuation Po Other_Symbol So Paragraph_Separator Zp Private_Use Co Punctuation P punct Separator Z Space_Separator Zs Spacing_Mark Mc Surrogate Cs Symbol S Titlecase_Letter Lt Unassigned Cn Uppercase_Letter Lu";
19756
19795
 
19757
19796
  // #table-unicode-script-values
19758
- var ecma9ScriptValues = "Adlam Adlm Ahom Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb";
19797
+ var ecma9ScriptValues = "Adlam Adlm Ahom Anatolian_Hieroglyphs Hluw Arabic Arab Armenian Armn Avestan Avst Balinese Bali Bamum Bamu Bassa_Vah Bass Batak Batk Bengali Beng Bhaiksuki Bhks Bopomofo Bopo Brahmi Brah Braille Brai Buginese Bugi Buhid Buhd Canadian_Aboriginal Cans Carian Cari Caucasian_Albanian Aghb Chakma Cakm Cham Cham Cherokee Cher Common Zyyy Coptic Copt Qaac Cuneiform Xsux Cypriot Cprt Cyrillic Cyrl Deseret Dsrt Devanagari Deva Duployan Dupl Egyptian_Hieroglyphs Egyp Elbasan Elba Ethiopic Ethi Georgian Geor Glagolitic Glag Gothic Goth Grantha Gran Greek Grek Gujarati Gujr Gurmukhi Guru Han Hani Hangul Hang Hanunoo Hano Hatran Hatr Hebrew Hebr Hiragana Hira Imperial_Aramaic Armi Inherited Zinh Qaai Inscriptional_Pahlavi Phli Inscriptional_Parthian Prti Javanese Java Kaithi Kthi Kannada Knda Katakana Kana Kayah_Li Kali Kharoshthi Khar Khmer Khmr Khojki Khoj Khudawadi Sind Lao Laoo Latin Latn Lepcha Lepc Limbu Limb Linear_A Lina Linear_B Linb Lisu Lisu Lycian Lyci Lydian Lydi Mahajani Mahj Malayalam Mlym Mandaic Mand Manichaean Mani Marchen Marc Masaram_Gondi Gonm Meetei_Mayek Mtei Mende_Kikakui Mend Meroitic_Cursive Merc Meroitic_Hieroglyphs Mero Miao Plrd Modi Mongolian Mong Mro Mroo Multani Mult Myanmar Mymr Nabataean Nbat New_Tai_Lue Talu Newa Newa Nko Nkoo Nushu Nshu Ogham Ogam Ol_Chiki Olck Old_Hungarian Hung Old_Italic Ital Old_North_Arabian Narb Old_Permic Perm Old_Persian Xpeo Old_South_Arabian Sarb Old_Turkic Orkh Oriya Orya Osage Osge Osmanya Osma Pahawh_Hmong Hmng Palmyrene Palm Pau_Cin_Hau Pauc Phags_Pa Phag Phoenician Phnx Psalter_Pahlavi Phlp Rejang Rjng Runic Runr Samaritan Samr Saurashtra Saur Sharada Shrd Shavian Shaw Siddham Sidd SignWriting Sgnw Sinhala Sinh Sora_Sompeng Sora Soyombo Soyo Sundanese Sund Syloti_Nagri Sylo Syriac Syrc Tagalog Tglg Tagbanwa Tagb Tai_Le Tale Tai_Tham Lana Tai_Viet Tavt Takri Takr Tamil Taml Tangut Tang Telugu Telu Thaana Thaa Thai Thai Tibetan Tibt Tifinagh Tfng Tirhuta Tirh Ugaritic Ugar Vai Vaii Warang_Citi Wara Yi Yiii Zanabazar_Square Zanb";
19759
19798
  var ecma10ScriptValues = ecma9ScriptValues + " Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd";
19760
19799
  var ecma11ScriptValues = ecma10ScriptValues + " Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho";
19761
19800
  var ecma12ScriptValues = ecma11ScriptValues + " Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi";
19801
+ var ecma13ScriptValues = ecma12ScriptValues + " Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith";
19762
19802
  var unicodeScriptValues = {
19763
19803
  9: ecma9ScriptValues,
19764
19804
  10: ecma10ScriptValues,
19765
19805
  11: ecma11ScriptValues,
19766
- 12: ecma12ScriptValues
19806
+ 12: ecma12ScriptValues,
19807
+ 13: ecma13ScriptValues
19767
19808
  };
19768
19809
 
19769
19810
  var data = {};
@@ -19781,17 +19822,19 @@ function buildUnicodeData(ecmaVersion) {
19781
19822
  d.nonBinary.sc = d.nonBinary.Script;
19782
19823
  d.nonBinary.scx = d.nonBinary.Script_Extensions;
19783
19824
  }
19784
- buildUnicodeData(9);
19785
- buildUnicodeData(10);
19786
- buildUnicodeData(11);
19787
- buildUnicodeData(12);
19825
+
19826
+ for (var i = 0, list = [9, 10, 11, 12, 13]; i < list.length; i += 1) {
19827
+ var ecmaVersion = list[i];
19828
+
19829
+ buildUnicodeData(ecmaVersion);
19830
+ }
19788
19831
 
19789
19832
  var pp$1 = Parser.prototype;
19790
19833
 
19791
19834
  var RegExpValidationState = function RegExpValidationState(parser) {
19792
19835
  this.parser = parser;
19793
19836
  this.validFlags = "gim" + (parser.options.ecmaVersion >= 6 ? "uy" : "") + (parser.options.ecmaVersion >= 9 ? "s" : "") + (parser.options.ecmaVersion >= 13 ? "d" : "");
19794
- this.unicodeProperties = data[parser.options.ecmaVersion >= 12 ? 12 : parser.options.ecmaVersion];
19837
+ this.unicodeProperties = data[parser.options.ecmaVersion >= 13 ? 13 : parser.options.ecmaVersion];
19795
19838
  this.source = "";
19796
19839
  this.flags = "";
19797
19840
  this.start = 0;
@@ -20590,7 +20633,7 @@ pp$1.regexp_eatUnicodePropertyValueExpression = function(state) {
20590
20633
  return false
20591
20634
  };
20592
20635
  pp$1.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) {
20593
- if (!has(state.unicodeProperties.nonBinary, name))
20636
+ if (!hasOwn(state.unicodeProperties.nonBinary, name))
20594
20637
  { state.raise("Invalid property name"); }
20595
20638
  if (!state.unicodeProperties.nonBinary[name].test(value))
20596
20639
  { state.raise("Invalid property value"); }
@@ -20942,11 +20985,9 @@ pp.skipBlockComment = function() {
20942
20985
  if (end === -1) { this.raise(this.pos - 2, "Unterminated comment"); }
20943
20986
  this.pos = end + 2;
20944
20987
  if (this.options.locations) {
20945
- lineBreakG.lastIndex = start;
20946
- var match;
20947
- while ((match = lineBreakG.exec(this.input)) && match.index < this.pos) {
20988
+ for (var nextBreak = (void 0), pos = start; (nextBreak = nextLineBreak(this.input, pos, this.pos)) > -1;) {
20948
20989
  ++this.curLine;
20949
- this.lineStart = match.index + match[0].length;
20990
+ pos = this.lineStart = nextBreak;
20950
20991
  }
20951
20992
  }
20952
20993
  if (this.options.onComment)
@@ -21657,7 +21698,7 @@ pp.readWord = function() {
21657
21698
 
21658
21699
  // Acorn is a tiny, fast JavaScript parser written in JavaScript.
21659
21700
 
21660
- var version = "8.6.0";
21701
+ var version = "8.7.0";
21661
21702
 
21662
21703
  Parser.acorn = {
21663
21704
  Parser: Parser,
@@ -21681,25 +21722,6 @@ Parser.acorn = {
21681
21722
  nonASCIIwhitespace: nonASCIIwhitespace
21682
21723
  };
21683
21724
 
21684
- const readFile = (file) => new Promise((fulfil, reject) => fs.readFile(file, 'utf-8', (err, contents) => (err ? reject(err) : fulfil(contents))));
21685
- function mkdirpath(path) {
21686
- const dir = require$$0.dirname(path);
21687
- fs.mkdirSync(dir, { recursive: true });
21688
- }
21689
- function writeFile(dest, data) {
21690
- return new Promise((fulfil, reject) => {
21691
- mkdirpath(dest);
21692
- fs.writeFile(dest, data, err => {
21693
- if (err) {
21694
- reject(err);
21695
- }
21696
- else {
21697
- fulfil();
21698
- }
21699
- });
21700
- });
21701
- }
21702
-
21703
21725
  class Queue {
21704
21726
  constructor(maxParallel) {
21705
21727
  this.maxParallel = maxParallel;
@@ -21766,25 +21788,19 @@ async function resolveId(source, importer, preserveSymlinks, pluginDriver, modul
21766
21788
  return addJsExtensionIfNecessary(importer ? require$$0.resolve(require$$0.dirname(importer), source) : require$$0.resolve(source), preserveSymlinks);
21767
21789
  }
21768
21790
  function addJsExtensionIfNecessary(file, preserveSymlinks) {
21769
- let found = findFile(file, preserveSymlinks);
21770
- if (found)
21771
- return found;
21772
- found = findFile(file + '.mjs', preserveSymlinks);
21773
- if (found)
21774
- return found;
21775
- found = findFile(file + '.js', preserveSymlinks);
21776
- return found;
21791
+ var _a, _b;
21792
+ return ((_b = (_a = findFile(file, preserveSymlinks)) !== null && _a !== void 0 ? _a : findFile(file + '.mjs', preserveSymlinks)) !== null && _b !== void 0 ? _b : findFile(file + '.js', preserveSymlinks));
21777
21793
  }
21778
21794
  function findFile(file, preserveSymlinks) {
21779
21795
  try {
21780
- const stats = fs.lstatSync(file);
21796
+ const stats = require$$0$1.lstatSync(file);
21781
21797
  if (!preserveSymlinks && stats.isSymbolicLink())
21782
- return findFile(fs.realpathSync(file), preserveSymlinks);
21798
+ return findFile(require$$0$1.realpathSync(file), preserveSymlinks);
21783
21799
  if ((preserveSymlinks && stats.isSymbolicLink()) || stats.isFile()) {
21784
21800
  // check case
21785
21801
  const name = require$$0.basename(file);
21786
- const files = fs.readdirSync(require$$0.dirname(file));
21787
- if (files.indexOf(name) !== -1)
21802
+ const files = require$$0$1.readdirSync(require$$0.dirname(file));
21803
+ if (files.includes(name))
21788
21804
  return file;
21789
21805
  }
21790
21806
  }
@@ -22041,6 +22057,7 @@ async function transform(source, module, pluginDriver, warn) {
22041
22057
  };
22042
22058
  }
22043
22059
 
22060
+ const RESOLVE_DEPENDENCIES = 'resolveDependencies';
22044
22061
  class ModuleLoader {
22045
22062
  constructor(graph, modulesById, options, pluginDriver) {
22046
22063
  this.graph = graph;
@@ -22054,7 +22071,7 @@ class ModuleLoader {
22054
22071
  this.modulesWithLoadedDependencies = new Set();
22055
22072
  this.nextEntryModuleIndex = 0;
22056
22073
  this.resolveId = async (source, importer, customOptions, isEntry, skip = null) => {
22057
- return this.addDefaultsToResolvedId(this.getNormalizedResolvedIdWithoutDefaults(this.options.external(source, importer, false)
22074
+ return this.getResolvedIdWithDefaults(this.getNormalizedResolvedIdWithoutDefaults(this.options.external(source, importer, false)
22058
22075
  ? false
22059
22076
  : await resolveId(source, importer, this.options.preserveSymlinks, this.pluginDriver, this.resolveId, skip, customOptions, typeof isEntry === 'boolean' ? isEntry : !importer), importer, source));
22060
22077
  };
@@ -22113,23 +22130,9 @@ class ModuleLoader {
22113
22130
  return module;
22114
22131
  }
22115
22132
  async preloadModule(resolvedId) {
22116
- const module = await this.fetchModule(this.addDefaultsToResolvedId(resolvedId), undefined, false, true);
22133
+ const module = await this.fetchModule(this.getResolvedIdWithDefaults(resolvedId), undefined, false, resolvedId.resolveDependencies ? RESOLVE_DEPENDENCIES : true);
22117
22134
  return module.info;
22118
22135
  }
22119
- addDefaultsToResolvedId(resolvedId) {
22120
- var _a, _b;
22121
- if (!resolvedId) {
22122
- return null;
22123
- }
22124
- const external = resolvedId.external || false;
22125
- return {
22126
- external,
22127
- id: resolvedId.id,
22128
- meta: resolvedId.meta || {},
22129
- moduleSideEffects: (_a = resolvedId.moduleSideEffects) !== null && _a !== void 0 ? _a : this.hasModuleSideEffects(resolvedId.id, !!external),
22130
- syntheticNamedExports: (_b = resolvedId.syntheticNamedExports) !== null && _b !== void 0 ? _b : false
22131
- };
22132
- }
22133
22136
  addEntryWithImplicitDependants(unresolvedModule, implicitlyLoadedAfter) {
22134
22137
  return this.extendLoadModulesPromise(this.loadEntryModule(unresolvedModule.id, false, unresolvedModule.importer, null).then(async (entryModule) => {
22135
22138
  addChunkNamesToModule(entryModule, unresolvedModule, false);
@@ -22150,7 +22153,7 @@ class ModuleLoader {
22150
22153
  timeStart('load modules', 3);
22151
22154
  let source;
22152
22155
  try {
22153
- source = await this.readQueue.run(async () => { var _a; return (_a = (await this.pluginDriver.hookFirst('load', [id]))) !== null && _a !== void 0 ? _a : (await readFile(id)); });
22156
+ source = await this.readQueue.run(async () => { var _a; return (_a = (await this.pluginDriver.hookFirst('load', [id]))) !== null && _a !== void 0 ? _a : (await require$$0$1.promises.readFile(id, 'utf8')); });
22154
22157
  }
22155
22158
  catch (err) {
22156
22159
  timeEnd('load modules', 3);
@@ -22243,9 +22246,7 @@ class ModuleLoader {
22243
22246
  this.getResolveDynamicImportPromises(module),
22244
22247
  loadAndResolveDependenciesPromise
22245
22248
  ]);
22246
- const loadAndResolveDependenciesPromise = loadPromise
22247
- .then(([resolveStaticDependencyPromises, resolveDynamicImportPromises]) => Promise.all([...resolveStaticDependencyPromises, ...resolveDynamicImportPromises]))
22248
- .then(() => this.pluginDriver.hookParallel('moduleParsed', [module.info]));
22249
+ const loadAndResolveDependenciesPromise = waitForDependencyResolution(loadPromise).then(() => this.pluginDriver.hookParallel('moduleParsed', [module.info]));
22249
22250
  loadAndResolveDependenciesPromise.catch(() => {
22250
22251
  /* avoid unhandled promise rejections */
22251
22252
  });
@@ -22254,6 +22255,9 @@ class ModuleLoader {
22254
22255
  if (!isPreload) {
22255
22256
  await this.fetchModuleDependencies(module, ...resolveDependencyPromises);
22256
22257
  }
22258
+ else if (isPreload === RESOLVE_DEPENDENCIES) {
22259
+ await loadAndResolveDependenciesPromise;
22260
+ }
22257
22261
  return module;
22258
22262
  }
22259
22263
  async fetchModuleDependencies(module, resolveStaticDependencyPromises, resolveDynamicDependencyPromises, loadAndResolveDependenciesPromise) {
@@ -22290,7 +22294,7 @@ class ModuleLoader {
22290
22294
  module.dependencies.add(dependency);
22291
22295
  dependency.importers.push(module.id);
22292
22296
  }
22293
- if (!this.options.treeshake || module.info.hasModuleSideEffects === 'no-treeshake') {
22297
+ if (!this.options.treeshake || module.info.moduleSideEffects === 'no-treeshake') {
22294
22298
  for (const dependency of module.dependencies) {
22295
22299
  if (dependency instanceof Module) {
22296
22300
  dependency.importedFromNotTreeshaken = true;
@@ -22353,10 +22357,26 @@ class ModuleLoader {
22353
22357
  this.handleResolveId(await this.resolveId(source, module.id, EMPTY_OBJECT, false), source, module.id))
22354
22358
  ]);
22355
22359
  }
22360
+ getResolvedIdWithDefaults(resolvedId) {
22361
+ var _a, _b;
22362
+ if (!resolvedId) {
22363
+ return null;
22364
+ }
22365
+ const external = resolvedId.external || false;
22366
+ return {
22367
+ external,
22368
+ id: resolvedId.id,
22369
+ meta: resolvedId.meta || {},
22370
+ moduleSideEffects: (_a = resolvedId.moduleSideEffects) !== null && _a !== void 0 ? _a : this.hasModuleSideEffects(resolvedId.id, !!external),
22371
+ syntheticNamedExports: (_b = resolvedId.syntheticNamedExports) !== null && _b !== void 0 ? _b : false
22372
+ };
22373
+ }
22356
22374
  async handleExistingModule(module, isEntry, isPreload) {
22357
22375
  const loadPromise = this.moduleLoadPromises.get(module);
22358
22376
  if (isPreload) {
22359
- return loadPromise;
22377
+ return isPreload === RESOLVE_DEPENDENCIES
22378
+ ? waitForDependencyResolution(loadPromise)
22379
+ : loadPromise;
22360
22380
  }
22361
22381
  if (isEntry) {
22362
22382
  module.info.isEntry = true;
@@ -22382,10 +22402,8 @@ class ModuleLoader {
22382
22402
  syntheticNamedExports: false
22383
22403
  };
22384
22404
  }
22385
- else {
22386
- if (resolvedId.external && resolvedId.syntheticNamedExports) {
22387
- this.options.onwarn(errExternalSyntheticExports(source, importer));
22388
- }
22405
+ else if (resolvedId.external && resolvedId.syntheticNamedExports) {
22406
+ this.options.onwarn(errExternalSyntheticExports(source, importer));
22389
22407
  }
22390
22408
  return resolvedId;
22391
22409
  }
@@ -22402,7 +22420,7 @@ class ModuleLoader {
22402
22420
  ? errEntryCannotBeExternal(unresolvedId)
22403
22421
  : errImplicitDependantCannotBeExternal(unresolvedId, implicitlyLoadedBefore));
22404
22422
  }
22405
- return this.fetchModule(this.addDefaultsToResolvedId(typeof resolveIdResult === 'object'
22423
+ return this.fetchModule(this.getResolvedIdWithDefaults(typeof resolveIdResult === 'object'
22406
22424
  ? resolveIdResult
22407
22425
  : { id: resolveIdResult }), undefined, isEntry, false);
22408
22426
  }
@@ -22429,7 +22447,7 @@ class ModuleLoader {
22429
22447
  module.resolvedIds[specifier] ||
22430
22448
  this.handleResolveId(await this.resolveId(specifier, module.id, EMPTY_OBJECT, false), specifier, module.id));
22431
22449
  }
22432
- return this.handleResolveId(this.addDefaultsToResolvedId(this.getNormalizedResolvedIdWithoutDefaults(resolution, importer, specifier)), specifier, importer);
22450
+ return this.handleResolveId(this.getResolvedIdWithDefaults(this.getNormalizedResolvedIdWithoutDefaults(resolution, importer, specifier)), specifier, importer);
22433
22451
  }
22434
22452
  }
22435
22453
  function normalizeRelativeExternalId(source, importer) {
@@ -22457,6 +22475,10 @@ function isNotAbsoluteExternal(id, source, makeAbsoluteExternalsRelative) {
22457
22475
  (makeAbsoluteExternalsRelative === 'ifRelativeSource' && isRelative(source)) ||
22458
22476
  !isAbsolute(id));
22459
22477
  }
22478
+ async function waitForDependencyResolution(loadPromise) {
22479
+ const [resolveStaticDependencyPromises, resolveDynamicImportPromises] = await loadPromise;
22480
+ return Promise.all([...resolveStaticDependencyPromises, ...resolveDynamicImportPromises]);
22481
+ }
22460
22482
 
22461
22483
  class GlobalScope extends Scope$1 {
22462
22484
  constructor() {
@@ -22631,7 +22653,6 @@ class PluginDriver {
22631
22653
  constructor(graph, options, userPlugins, pluginCache, basePluginDriver) {
22632
22654
  this.graph = graph;
22633
22655
  this.options = options;
22634
- this.pluginContexts = new Map();
22635
22656
  warnDeprecatedHooks(userPlugins, options);
22636
22657
  this.pluginCache = pluginCache;
22637
22658
  this.fileEmitter = new FileEmitter(graph, options, basePluginDriver && basePluginDriver.fileEmitter);
@@ -22641,9 +22662,10 @@ class PluginDriver {
22641
22662
  this.setOutputBundle = this.fileEmitter.setOutputBundle.bind(this.fileEmitter);
22642
22663
  this.plugins = userPlugins.concat(basePluginDriver ? basePluginDriver.plugins : []);
22643
22664
  const existingPluginNames = new Set();
22644
- for (const plugin of this.plugins) {
22645
- this.pluginContexts.set(plugin, getPluginContext(plugin, pluginCache, graph, options, this.fileEmitter, existingPluginNames));
22646
- }
22665
+ this.pluginContexts = new Map(this.plugins.map(plugin => [
22666
+ plugin,
22667
+ getPluginContext(plugin, pluginCache, graph, options, this.fileEmitter, existingPluginNames)
22668
+ ]));
22647
22669
  if (basePluginDriver) {
22648
22670
  for (const plugin of userPlugins) {
22649
22671
  for (const hook of inputHooks) {
@@ -22976,7 +22998,7 @@ class Graph {
22976
22998
  this.needsTreeshakingPass = false;
22977
22999
  for (const module of this.modules) {
22978
23000
  if (module.isExecuted) {
22979
- if (module.info.hasModuleSideEffects === 'no-treeshake') {
23001
+ if (module.info.moduleSideEffects === 'no-treeshake') {
22980
23002
  module.includeAllInBundle();
22981
23003
  }
22982
23004
  else {
@@ -23031,7 +23053,7 @@ class Graph {
23031
23053
  for (const module of this.modules) {
23032
23054
  for (const importDescription of Object.values(module.importDescriptions)) {
23033
23055
  if (importDescription.name !== '*' &&
23034
- !importDescription.module.getVariableForExportName(importDescription.name)) {
23056
+ !importDescription.module.getVariableForExportName(importDescription.name)[0]) {
23035
23057
  module.warn({
23036
23058
  code: 'NON_EXISTENT_EXPORT',
23037
23059
  message: `Non-existent export '${importDescription.name}' is imported from ${relativeId(importDescription.module.id)}`,
@@ -23226,13 +23248,14 @@ const getHasModuleSideEffects = (moduleSideEffectsOption, pureExternalModules) =
23226
23248
 
23227
23249
  // https://datatracker.ietf.org/doc/html/rfc2396
23228
23250
  // eslint-disable-next-line no-control-regex
23229
- const INVALID_CHAR_RE = /[\x00-\x1F\x7F<>*#"{}|^[\]`;?:&=+$,]/g;
23251
+ const INVALID_CHAR_REGEX = /[\x00-\x1F\x7F<>*#"{}|^[\]`;?:&=+$,]/g;
23252
+ const DRIVE_LETTER_REGEX = /^[a-z]:/i;
23230
23253
  function sanitizeFileName(name) {
23231
- const match = /^[a-z]:/i.exec(name);
23254
+ const match = DRIVE_LETTER_REGEX.exec(name);
23232
23255
  const driveLetter = match ? match[0] : '';
23233
23256
  // A `:` is only allowed as part of a windows drive letter (ex: C:\foo)
23234
23257
  // Otherwise, avoid them because they can refer to NTFS alternate data streams.
23235
- return driveLetter + name.substr(driveLetter.length).replace(INVALID_CHAR_RE, '_');
23258
+ return driveLetter + name.substr(driveLetter.length).replace(INVALID_CHAR_REGEX, '_');
23236
23259
  }
23237
23260
 
23238
23261
  function normalizeOutputOptions(config, inputOptions, unsetInputOptions) {
@@ -23453,7 +23476,14 @@ const getIndent = (config, compact) => {
23453
23476
  const configIndent = config.indent;
23454
23477
  return configIndent === false ? '' : configIndent !== null && configIndent !== void 0 ? configIndent : true;
23455
23478
  };
23456
- const ALLOWED_INTEROP_TYPES = new Set(['auto', 'esModule', 'default', 'defaultOnly', true, false]);
23479
+ const ALLOWED_INTEROP_TYPES = new Set([
23480
+ 'auto',
23481
+ 'esModule',
23482
+ 'default',
23483
+ 'defaultOnly',
23484
+ true,
23485
+ false
23486
+ ]);
23457
23487
  const getInterop = (config, inputOptions) => {
23458
23488
  const configInterop = config.interop;
23459
23489
  const validatedInteropTypes = new Set();
@@ -23638,8 +23668,10 @@ function getSortingFileType(file) {
23638
23668
  }
23639
23669
  return SortingFileType.SECONDARY_CHUNK;
23640
23670
  }
23641
- function writeOutputFile(outputFile, outputOptions) {
23671
+ async function writeOutputFile(outputFile, outputOptions) {
23642
23672
  const fileName = require$$0.resolve(outputOptions.dir || require$$0.dirname(outputOptions.file), outputFile.fileName);
23673
+ // 'recursive: true' does not throw if the folder structure, or parts of it, already exist
23674
+ await require$$0$1.promises.mkdir(require$$0.dirname(fileName), { recursive: true });
23643
23675
  let writeSourceMapPromise;
23644
23676
  let source;
23645
23677
  if (outputFile.type === 'asset') {
@@ -23654,14 +23686,14 @@ function writeOutputFile(outputFile, outputOptions) {
23654
23686
  }
23655
23687
  else {
23656
23688
  url = `${require$$0.basename(outputFile.fileName)}.map`;
23657
- writeSourceMapPromise = writeFile(`${fileName}.map`, outputFile.map.toString());
23689
+ writeSourceMapPromise = require$$0$1.promises.writeFile(`${fileName}.map`, outputFile.map.toString());
23658
23690
  }
23659
23691
  if (outputOptions.sourcemap !== 'hidden') {
23660
- source += `//# ${SOURCEMAPPING_URL}=${url}\n`;
23692
+ source += `//# ${exports.SOURCEMAPPING_URL}=${url}\n`;
23661
23693
  }
23662
23694
  }
23663
23695
  }
23664
- return Promise.all([writeFile(fileName, source), writeSourceMapPromise]);
23696
+ return Promise.all([require$$0$1.promises.writeFile(fileName, source), writeSourceMapPromise]);
23665
23697
  }
23666
23698
  /**
23667
23699
  * Auxiliary function for defining rollup configuration
@@ -23672,7 +23704,7 @@ function defineConfig(options) {
23672
23704
  return options;
23673
23705
  }
23674
23706
 
23675
- class WatchEmitter extends require$$0$1.EventEmitter {
23707
+ class WatchEmitter extends require$$0$2.EventEmitter {
23676
23708
  constructor() {
23677
23709
  super();
23678
23710
  // Allows more than 10 bundles to be watched without