rollup 2.61.1 → 2.65.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.61.1
4
- Sat, 11 Dec 2021 06:17:07 GMT - commit 2e91c85fc95bc722e5a7141d7fa0acde4aab61aa
3
+ Rollup.js v2.65.0
4
+ Fri, 21 Jan 2022 07:42:35 GMT - commit bebc50ddb613d240a03988d51787fd71b1a3914f
5
5
 
6
6
 
7
7
  https://github.com/rollup/rollup
@@ -10,10 +10,12 @@
10
10
  */
11
11
  'use strict';
12
12
 
13
- const path$2 = require('path');
13
+ const require$$0 = require('path');
14
+ const process$1 = require('process');
15
+ const perf_hooks = require('perf_hooks');
14
16
  const crypto = require('crypto');
15
17
  const fs = require('fs');
16
- const require$$0 = require('events');
18
+ const require$$0$1 = require('events');
17
19
 
18
20
  function _interopNamespaceDefault(e) {
19
21
  const n = Object.create(null);
@@ -26,7 +28,7 @@ function _interopNamespaceDefault(e) {
26
28
  return n;
27
29
  }
28
30
 
29
- var version$1 = "2.61.1";
31
+ var version$1 = "2.65.0";
30
32
 
31
33
  function ensureArray$1(items) {
32
34
  if (Array.isArray(items)) {
@@ -140,13 +142,13 @@ function normalize(path) {
140
142
  }
141
143
 
142
144
  function getAliasName(id) {
143
- const base = path$2.basename(id);
144
- return base.substr(0, base.length - path$2.extname(id).length);
145
+ const base = require$$0.basename(id);
146
+ return base.substr(0, base.length - require$$0.extname(id).length);
145
147
  }
146
148
  function relativeId(id) {
147
149
  if (!isAbsolute(id))
148
150
  return id;
149
- return path$2.relative(path$2.resolve(), id);
151
+ return require$$0.relative(require$$0.resolve(), id);
150
152
  }
151
153
  function isPathFragment(name) {
152
154
  // starting with "/", "./", "../", "C:/"
@@ -554,6 +556,7 @@ const generatedCodePresets = {
554
556
  reservedNamesAsProps: true
555
557
  }
556
558
  };
559
+ const objectifyOption = (value) => value && typeof value === 'object' ? value : {};
557
560
  const objectifyOptionWithPresets = (presets, optionName, additionalValues) => (value) => {
558
561
  if (typeof value === 'string') {
559
562
  const preset = presets[value];
@@ -562,7 +565,7 @@ const objectifyOptionWithPresets = (presets, optionName, additionalValues) => (v
562
565
  }
563
566
  error(errInvalidOption(optionName, getHashFromObjectOption(optionName), `valid values are ${additionalValues}${printQuotedStringList(Object.keys(presets))}. You can also supply an object for more fine-grained control`, value));
564
567
  }
565
- return value && typeof value === 'object' ? value : {};
568
+ return objectifyOption(value);
566
569
  };
567
570
  const getOptionWithPreset = (value, presets, optionName, additionalValues) => {
568
571
  var _a;
@@ -582,23 +585,48 @@ const getHashFromObjectOption = (optionName) => optionName.split('.').join('').t
582
585
 
583
586
  let fsEvents;
584
587
  let fsEventsImportError;
585
- function loadFsEvents() {
586
- const moduleName = 'fsevents';
587
- return Promise.resolve().then(() => /*#__PURE__*/_interopNamespaceDefault(require(moduleName)))
588
- .then(namespace => {
589
- fsEvents = namespace.default;
590
- })
591
- .catch(err => {
588
+ async function loadFsEvents() {
589
+ try {
590
+ ({ default: fsEvents } = await Promise.resolve().then(() => /*#__PURE__*/_interopNamespaceDefault(require('fsevents'))));
591
+ }
592
+ catch (err) {
592
593
  fsEventsImportError = err;
593
- });
594
+ }
595
+ }
596
+ // A call to this function will be injected into the chokidar code
597
+ function getFsEvents() {
598
+ if (fsEventsImportError)
599
+ throw fsEventsImportError;
600
+ return fsEvents;
594
601
  }
595
602
 
603
+ const fseventsImporter = {
604
+ __proto__: null,
605
+ loadFsEvents,
606
+ getFsEvents
607
+ };
608
+
596
609
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
597
610
 
611
+ function getAugmentedNamespace(n) {
612
+ if (n.__esModule) return n;
613
+ var a = Object.defineProperty({}, '__esModule', {value: true});
614
+ Object.keys(n).forEach(function (k) {
615
+ var d = Object.getOwnPropertyDescriptor(n, k);
616
+ Object.defineProperty(a, k, d.get ? d : {
617
+ enumerable: true,
618
+ get: function () {
619
+ return n[k];
620
+ }
621
+ });
622
+ });
623
+ return a;
624
+ }
625
+
598
626
  var charToInteger = {};
599
627
  var chars$1 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
600
- for (var i = 0; i < chars$1.length; i++) {
601
- 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;
602
630
  }
603
631
  function decode(mappings) {
604
632
  var decoded = [];
@@ -2225,20 +2253,70 @@ const BLANK = Object.freeze(Object.create(null));
2225
2253
  const EMPTY_OBJECT = Object.freeze({});
2226
2254
  const EMPTY_ARRAY = Object.freeze([]);
2227
2255
 
2228
- const reservedWords$2 = 'break case class catch const continue debugger default delete do else export extends finally for function if import in instanceof let new return super switch this throw try typeof var void while with yield enum await implements package protected static interface private public'.split(' ');
2229
- const builtins$2 = 'Infinity NaN undefined null true false eval uneval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Symbol Error EvalError InternalError RangeError ReferenceError SyntaxError TypeError URIError Number Math Date String RegExp Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array Map Set WeakMap WeakSet SIMD ArrayBuffer DataView JSON Promise Generator GeneratorFunction Reflect Proxy Intl'.split(' ');
2230
- const blacklisted = new Set(reservedWords$2.concat(builtins$2));
2256
+ const RESERVED_NAMES = new Set([
2257
+ 'await',
2258
+ 'break',
2259
+ 'case',
2260
+ 'catch',
2261
+ 'class',
2262
+ 'const',
2263
+ 'continue',
2264
+ 'debugger',
2265
+ 'default',
2266
+ 'delete',
2267
+ 'do',
2268
+ 'else',
2269
+ 'enum',
2270
+ 'eval',
2271
+ 'export',
2272
+ 'extends',
2273
+ 'false',
2274
+ 'finally',
2275
+ 'for',
2276
+ 'function',
2277
+ 'if',
2278
+ 'implements',
2279
+ 'import',
2280
+ 'in',
2281
+ 'instanceof',
2282
+ 'interface',
2283
+ 'let',
2284
+ 'NaN',
2285
+ 'new',
2286
+ 'null',
2287
+ 'package',
2288
+ 'private',
2289
+ 'protected',
2290
+ 'public',
2291
+ 'return',
2292
+ 'static',
2293
+ 'super',
2294
+ 'switch',
2295
+ 'this',
2296
+ 'throw',
2297
+ 'true',
2298
+ 'try',
2299
+ 'typeof',
2300
+ 'undefined',
2301
+ 'var',
2302
+ 'void',
2303
+ 'while',
2304
+ 'with',
2305
+ 'yield'
2306
+ ]);
2307
+ const RESERVED_NAMES$1 = RESERVED_NAMES;
2308
+
2231
2309
  const illegalCharacters = /[^$_a-zA-Z0-9]/g;
2232
2310
  const startsWithDigit = (str) => /\d/.test(str[0]);
2233
2311
  function isLegal(str) {
2234
- if (startsWithDigit(str) || blacklisted.has(str)) {
2312
+ if (startsWithDigit(str) || RESERVED_NAMES$1.has(str)) {
2235
2313
  return false;
2236
2314
  }
2237
2315
  return !illegalCharacters.test(str);
2238
2316
  }
2239
2317
  function makeLegal(str) {
2240
2318
  str = str.replace(/-(\w)/g, (_, letter) => letter.toUpperCase()).replace(illegalCharacters, '_');
2241
- if (startsWithDigit(str) || blacklisted.has(str))
2319
+ if (startsWithDigit(str) || RESERVED_NAMES$1.has(str))
2242
2320
  str = `_${str}`;
2243
2321
  return str || '_';
2244
2322
  }
@@ -2266,6 +2344,7 @@ class ExternalModule {
2266
2344
  this.info = {
2267
2345
  ast: null,
2268
2346
  code: null,
2347
+ dynamicallyImportedIdResolutions: EMPTY_ARRAY,
2269
2348
  dynamicallyImportedIds: EMPTY_ARRAY,
2270
2349
  get dynamicImporters() {
2271
2350
  return dynamicImporters.sort();
@@ -2274,12 +2353,14 @@ class ExternalModule {
2274
2353
  id,
2275
2354
  implicitlyLoadedAfterOneOf: EMPTY_ARRAY,
2276
2355
  implicitlyLoadedBefore: EMPTY_ARRAY,
2356
+ importedIdResolutions: EMPTY_ARRAY,
2277
2357
  importedIds: EMPTY_ARRAY,
2278
2358
  get importers() {
2279
2359
  return importers.sort();
2280
2360
  },
2281
2361
  isEntry: false,
2282
2362
  isExternal: true,
2363
+ isIncluded: null,
2283
2364
  meta,
2284
2365
  syntheticNamedExports: false
2285
2366
  };
@@ -2297,7 +2378,7 @@ class ExternalModule {
2297
2378
  typeof options.paths === 'function' ? options.paths(this.id) : options.paths[this.id];
2298
2379
  if (!this.renderPath) {
2299
2380
  this.renderPath = this.renormalizeRenderPath
2300
- ? normalize(path$2.relative(inputBase, this.id))
2381
+ ? normalize(require$$0.relative(inputBase, this.id))
2301
2382
  : this.id;
2302
2383
  }
2303
2384
  return this.renderPath;
@@ -2340,7 +2421,7 @@ class ExternalModule {
2340
2421
 
2341
2422
  var utils$3 = {};
2342
2423
 
2343
- const path$1 = path$2;
2424
+ const path$1 = require$$0;
2344
2425
  const WIN_SLASH = '\\\\/';
2345
2426
  const WIN_NO_SLASH = `[^${WIN_SLASH}]`;
2346
2427
 
@@ -2520,7 +2601,7 @@ var constants$2 = {
2520
2601
 
2521
2602
  (function (exports) {
2522
2603
 
2523
- const path = path$2;
2604
+ const path = require$$0;
2524
2605
  const win32 = process.platform === 'win32';
2525
2606
  const {
2526
2607
  REGEX_BACKSLASH,
@@ -3217,7 +3298,14 @@ const parse$1 = (input, options) => {
3217
3298
  }
3218
3299
 
3219
3300
  if (token.inner.includes('*') && (rest = remaining()) && /^\.[^\\/.]+$/.test(rest)) {
3220
- output = token.close = `)${rest})${extglobStar})`;
3301
+ // Any non-magical string (`.ts`) or even nested expression (`.{ts,tsx}`) can follow after the closing parenthesis.
3302
+ // In this case, we need to parse the string and use it in the output of the original pattern.
3303
+ // Suitable patterns: `/!(*.d).ts`, `/!(*.d).{ts,tsx}`, `**/!(*-dbg).@(js)`.
3304
+ //
3305
+ // Disabling the `fastpaths` option due to a problem with parsing strings as `.ts` in the pattern like `**/!(*.d).ts`.
3306
+ const expression = parse$1(rest, { ...options, fastpaths: false }).output;
3307
+
3308
+ output = token.close = `)${expression})${extglobStar})`;
3221
3309
  }
3222
3310
 
3223
3311
  if (token.prev.type === 'bos') {
@@ -4050,7 +4138,7 @@ parse$1.fastpaths = (input, options) => {
4050
4138
 
4051
4139
  var parse_1 = parse$1;
4052
4140
 
4053
- const path = path$2;
4141
+ const path = require$$0;
4054
4142
  const scan = scan_1;
4055
4143
  const parse = parse_1;
4056
4144
  const utils = utils$3;
@@ -4443,22 +4531,22 @@ function ensureArray(thing) {
4443
4531
  }
4444
4532
 
4445
4533
  const normalizePath = function normalizePath(filename) {
4446
- return filename.split(path$2.win32.sep).join(path$2.posix.sep);
4534
+ return filename.split(require$$0.win32.sep).join(require$$0.posix.sep);
4447
4535
  };
4448
4536
 
4449
4537
  function getMatcherString(id, resolutionBase) {
4450
- if (resolutionBase === false || path$2.isAbsolute(id) || id.startsWith('*')) {
4538
+ if (resolutionBase === false || require$$0.isAbsolute(id) || id.startsWith('*')) {
4451
4539
  return id;
4452
4540
  }
4453
4541
  // resolve('') is valid and will default to process.cwd()
4454
- const basePath = normalizePath(path$2.resolve(resolutionBase || ''))
4542
+ const basePath = normalizePath(require$$0.resolve(resolutionBase || ''))
4455
4543
  // escape all possible (posix + win) path characters that might interfere with regex
4456
4544
  .replace(/[-^$*+?.()|[\]{}]/g, '\\$&');
4457
4545
  // Note that we use posix.join because:
4458
4546
  // 1. the basePath has been normalized to use /
4459
4547
  // 2. the incoming glob (id) matcher, also uses /
4460
4548
  // otherwise Node will force backslash (\) on windows
4461
- return path$2.posix.join(basePath, id);
4549
+ return require$$0.posix.join(basePath, id);
4462
4550
  }
4463
4551
  const createFilter = function createFilter(include, exclude, options) {
4464
4552
  const resolutionBase = options && options.resolve;
@@ -4812,10 +4900,10 @@ const SequenceExpression$1 = 'SequenceExpression';
4812
4900
 
4813
4901
  // this looks ridiculous, but it prevents sourcemap tooling from mistaking
4814
4902
  // this for an actual sourceMappingURL
4815
- let SOURCEMAPPING_URL = 'sourceMa';
4816
- SOURCEMAPPING_URL += 'ppingURL';
4903
+ exports.SOURCEMAPPING_URL = 'sourceMa';
4904
+ exports.SOURCEMAPPING_URL += 'ppingURL';
4817
4905
  const whiteSpaceNoNewline = '[ \\f\\r\\t\\v\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]';
4818
- const SOURCEMAPPING_URL_RE = new RegExp(`^#${whiteSpaceNoNewline}+${SOURCEMAPPING_URL}=.+`);
4906
+ const SOURCEMAPPING_URL_RE = new RegExp(`^#${whiteSpaceNoNewline}+${exports.SOURCEMAPPING_URL}=.+`);
4819
4907
 
4820
4908
  // patch up acorn-walk until class-fields are officially supported
4821
4909
  base$1.PropertyDefinition = function (node, st, c) {
@@ -5522,8 +5610,6 @@ const knownGlobals = {
5522
5610
  __proto__: null,
5523
5611
  [ValueProperties]: PURE,
5524
5612
  create: PF,
5525
- getNotifier: PF,
5526
- getOwn: PF,
5527
5613
  getOwnPropertyDescriptor: PF,
5528
5614
  getOwnPropertyNames: PF,
5529
5615
  getOwnPropertySymbols: PF,
@@ -6565,61 +6651,10 @@ function toBase64(num) {
6565
6651
  return outStr;
6566
6652
  }
6567
6653
 
6568
- const RESERVED_NAMES = new Set([
6569
- 'await',
6570
- 'break',
6571
- 'case',
6572
- 'catch',
6573
- 'class',
6574
- 'const',
6575
- 'continue',
6576
- 'debugger',
6577
- 'default',
6578
- 'delete',
6579
- 'do',
6580
- 'else',
6581
- 'enum',
6582
- 'eval',
6583
- 'export',
6584
- 'extends',
6585
- 'false',
6586
- 'finally',
6587
- 'for',
6588
- 'function',
6589
- 'if',
6590
- 'implements',
6591
- 'import',
6592
- 'in',
6593
- 'instanceof',
6594
- 'interface',
6595
- 'let',
6596
- 'new',
6597
- 'null',
6598
- 'package',
6599
- 'private',
6600
- 'protected',
6601
- 'public',
6602
- 'return',
6603
- 'static',
6604
- 'super',
6605
- 'switch',
6606
- 'this',
6607
- 'throw',
6608
- 'true',
6609
- 'try',
6610
- 'typeof',
6611
- 'undefined',
6612
- 'var',
6613
- 'void',
6614
- 'while',
6615
- 'with',
6616
- 'yield'
6617
- ]);
6618
-
6619
6654
  function getSafeName(baseName, usedNames) {
6620
6655
  let safeName = baseName;
6621
6656
  let count = 1;
6622
- while (usedNames.has(safeName) || RESERVED_NAMES.has(safeName)) {
6657
+ while (usedNames.has(safeName) || RESERVED_NAMES$1.has(safeName)) {
6623
6658
  safeName = `${baseName}$${toBase64(count++)}`;
6624
6659
  }
6625
6660
  usedNames.add(safeName);
@@ -6730,16 +6765,27 @@ const literalNumberMembers = assembleMemberDescriptions({
6730
6765
  valueOf: returnsNumber
6731
6766
  }, objectMembers);
6732
6767
  const literalStringMembers = assembleMemberDescriptions({
6768
+ anchor: returnsString,
6769
+ at: returnsUnknown,
6770
+ big: returnsString,
6771
+ blink: returnsString,
6772
+ bold: returnsString,
6733
6773
  charAt: returnsString,
6734
6774
  charCodeAt: returnsNumber,
6735
- codePointAt: returnsNumber,
6775
+ codePointAt: returnsUnknown,
6736
6776
  concat: returnsString,
6737
6777
  endsWith: returnsBoolean,
6778
+ fixed: returnsString,
6779
+ fontcolor: returnsString,
6780
+ fontsize: returnsString,
6738
6781
  includes: returnsBoolean,
6739
6782
  indexOf: returnsNumber,
6783
+ italics: returnsString,
6740
6784
  lastIndexOf: returnsNumber,
6785
+ link: returnsString,
6741
6786
  localeCompare: returnsNumber,
6742
- match: returnsBoolean,
6787
+ match: returnsUnknown,
6788
+ matchAll: returnsUnknown,
6743
6789
  normalize: returnsString,
6744
6790
  padEnd: returnsString,
6745
6791
  padStart: returnsString,
@@ -6750,17 +6796,32 @@ const literalStringMembers = assembleMemberDescriptions({
6750
6796
  returns: UNKNOWN_LITERAL_STRING
6751
6797
  }
6752
6798
  },
6799
+ replaceAll: {
6800
+ value: {
6801
+ callsArgs: [1],
6802
+ returns: UNKNOWN_LITERAL_STRING
6803
+ }
6804
+ },
6753
6805
  search: returnsNumber,
6754
6806
  slice: returnsString,
6807
+ small: returnsString,
6755
6808
  split: returnsUnknown,
6756
6809
  startsWith: returnsBoolean,
6810
+ strike: returnsString,
6811
+ sub: returnsString,
6757
6812
  substr: returnsString,
6758
6813
  substring: returnsString,
6814
+ sup: returnsString,
6759
6815
  toLocaleLowerCase: returnsString,
6760
6816
  toLocaleUpperCase: returnsString,
6761
6817
  toLowerCase: returnsString,
6818
+ toString: returnsString,
6762
6819
  toUpperCase: returnsString,
6763
6820
  trim: returnsString,
6821
+ trimEnd: returnsString,
6822
+ trimLeft: returnsString,
6823
+ trimRight: returnsString,
6824
+ trimStart: returnsString,
6764
6825
  valueOf: returnsString
6765
6826
  }, objectMembers);
6766
6827
  function getLiteralMembersForValue(value) {
@@ -8576,6 +8637,10 @@ const ARRAY_PROTOTYPE = new ObjectEntity({
8576
8637
  filter: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_NEW_ARRAY,
8577
8638
  find: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_UNKNOWN,
8578
8639
  findIndex: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_NUMBER,
8640
+ findLast: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_UNKNOWN,
8641
+ findLastIndex: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_NUMBER,
8642
+ flat: METHOD_DEOPTS_SELF_RETURNS_NEW_ARRAY,
8643
+ flatMap: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_NEW_ARRAY,
8579
8644
  forEach: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_UNKNOWN,
8580
8645
  includes: METHOD_RETURNS_BOOLEAN,
8581
8646
  indexOf: METHOD_RETURNS_NUMBER,
@@ -8593,6 +8658,8 @@ const ARRAY_PROTOTYPE = new ObjectEntity({
8593
8658
  some: METHOD_CALLS_ARG_DEOPTS_SELF_RETURNS_BOOLEAN,
8594
8659
  sort: METHOD_CALLS_ARG_MUTATES_SELF_RETURNS_SELF,
8595
8660
  splice: METHOD_MUTATES_SELF_RETURNS_NEW_ARRAY,
8661
+ toLocaleString: METHOD_RETURNS_STRING,
8662
+ toString: METHOD_RETURNS_STRING,
8596
8663
  unshift: METHOD_MUTATES_SELF_RETURNS_NUMBER,
8597
8664
  values: METHOD_DEOPTS_SELF_RETURNS_UNKNOWN
8598
8665
  }, OBJECT_PROTOTYPE, true);
@@ -10844,7 +10911,7 @@ class MetaProperty extends NodeBase {
10844
10911
  chunkReferenceId = metaProperty.substr(CHUNK_PREFIX.length);
10845
10912
  fileName = outputPluginDriver.getFileName(chunkReferenceId);
10846
10913
  }
10847
- const relativePath = normalize(path$2.relative(path$2.dirname(chunkId), fileName));
10914
+ const relativePath = normalize(require$$0.relative(require$$0.dirname(chunkId), fileName));
10848
10915
  let replacement;
10849
10916
  if (assetReferenceId !== null) {
10850
10917
  replacement = outputPluginDriver.hookFirstSync('resolveAssetUrl', [
@@ -12045,13 +12112,19 @@ class SyntheticNamedExportVariable extends Variable {
12045
12112
  }
12046
12113
  }
12047
12114
 
12115
+ var BuildPhase;
12116
+ (function (BuildPhase) {
12117
+ BuildPhase[BuildPhase["LOAD_AND_PARSE"] = 0] = "LOAD_AND_PARSE";
12118
+ BuildPhase[BuildPhase["ANALYSE"] = 1] = "ANALYSE";
12119
+ BuildPhase[BuildPhase["GENERATE"] = 2] = "GENERATE";
12120
+ })(BuildPhase || (BuildPhase = {}));
12121
+
12048
12122
  function getId(m) {
12049
12123
  return m.id;
12050
12124
  }
12051
12125
 
12052
12126
  function getOriginalLocation(sourcemapChain, location) {
12053
- // This cast is guaranteed. If it were a missing Map, it wouldn't have a mappings.
12054
- const filteredSourcemapChain = sourcemapChain.filter(sourcemap => sourcemap.mappings);
12127
+ const filteredSourcemapChain = sourcemapChain.filter((sourcemap) => !!sourcemap.mappings);
12055
12128
  while (filteredSourcemapChain.length > 0) {
12056
12129
  const sourcemap = filteredSourcemapChain.pop();
12057
12130
  const line = sourcemap.mappings[location.line - 1];
@@ -12080,24 +12153,7 @@ function getOriginalLocation(sourcemapChain, location) {
12080
12153
  }
12081
12154
 
12082
12155
  const NOOP = () => { };
12083
- let getStartTime = () => [0, 0];
12084
- let getElapsedTime = () => 0;
12085
- let getMemory = () => 0;
12086
- let timers = {};
12087
- const normalizeHrTime = (time) => time[0] * 1e3 + time[1] / 1e6;
12088
- function setTimeHelpers() {
12089
- if (typeof process !== 'undefined' && typeof process.hrtime === 'function') {
12090
- getStartTime = process.hrtime.bind(process);
12091
- getElapsedTime = previous => normalizeHrTime(process.hrtime(previous));
12092
- }
12093
- else if (typeof performance !== 'undefined' && typeof performance.now === 'function') {
12094
- getStartTime = () => [performance.now(), 0];
12095
- getElapsedTime = previous => performance.now() - previous[0];
12096
- }
12097
- if (typeof process !== 'undefined' && typeof process.memoryUsage === 'function') {
12098
- getMemory = () => process.memoryUsage().heapUsed;
12099
- }
12100
- }
12156
+ let timers = new Map();
12101
12157
  function getPersistedLabel(label, level) {
12102
12158
  switch (level) {
12103
12159
  case 1:
@@ -12112,58 +12168,59 @@ function getPersistedLabel(label, level) {
12112
12168
  }
12113
12169
  function timeStartImpl(label, level = 3) {
12114
12170
  label = getPersistedLabel(label, level);
12115
- if (!timers.hasOwnProperty(label)) {
12116
- timers[label] = {
12171
+ const startMemory = process$1.memoryUsage().heapUsed;
12172
+ const startTime = perf_hooks.performance.now();
12173
+ const timer = timers.get(label);
12174
+ if (timer === undefined) {
12175
+ timers.set(label, {
12117
12176
  memory: 0,
12118
- startMemory: undefined,
12119
- startTime: undefined,
12177
+ startMemory,
12178
+ startTime,
12120
12179
  time: 0,
12121
12180
  totalMemory: 0
12122
- };
12181
+ });
12182
+ }
12183
+ else {
12184
+ timer.startMemory = startMemory;
12185
+ timer.startTime = startTime;
12123
12186
  }
12124
- const currentMemory = getMemory();
12125
- timers[label].startTime = getStartTime();
12126
- timers[label].startMemory = currentMemory;
12127
12187
  }
12128
12188
  function timeEndImpl(label, level = 3) {
12129
12189
  label = getPersistedLabel(label, level);
12130
- if (timers.hasOwnProperty(label)) {
12131
- const currentMemory = getMemory();
12132
- timers[label].time += getElapsedTime(timers[label].startTime);
12133
- timers[label].totalMemory = Math.max(timers[label].totalMemory, currentMemory);
12134
- timers[label].memory += currentMemory - timers[label].startMemory;
12190
+ const timer = timers.get(label);
12191
+ if (timer !== undefined) {
12192
+ const currentMemory = process$1.memoryUsage().heapUsed;
12193
+ timer.memory += currentMemory - timer.startMemory;
12194
+ timer.time += perf_hooks.performance.now() - timer.startTime;
12195
+ timer.totalMemory = Math.max(timer.totalMemory, currentMemory);
12135
12196
  }
12136
12197
  }
12137
12198
  function getTimings() {
12138
12199
  const newTimings = {};
12139
- for (const [label, { time, memory, totalMemory }] of Object.entries(timers)) {
12200
+ for (const [label, { memory, time, totalMemory }] of timers) {
12140
12201
  newTimings[label] = [time, memory, totalMemory];
12141
12202
  }
12142
12203
  return newTimings;
12143
12204
  }
12144
- let timeStart = NOOP, timeEnd = NOOP;
12145
- const TIMED_PLUGIN_HOOKS = {
12146
- load: true,
12147
- resolveDynamicImport: true,
12148
- resolveId: true,
12149
- transform: true
12150
- };
12205
+ let timeStart = NOOP;
12206
+ let timeEnd = NOOP;
12207
+ const TIMED_PLUGIN_HOOKS = ['load', 'resolveDynamicImport', 'resolveId', 'transform'];
12151
12208
  function getPluginWithTimers(plugin, index) {
12152
- const timedPlugin = {};
12153
- for (const hook of Object.keys(plugin)) {
12154
- if (TIMED_PLUGIN_HOOKS[hook] === true) {
12209
+ for (const hook of TIMED_PLUGIN_HOOKS) {
12210
+ if (hook in plugin) {
12155
12211
  let timerLabel = `plugin ${index}`;
12156
12212
  if (plugin.name) {
12157
12213
  timerLabel += ` (${plugin.name})`;
12158
12214
  }
12159
12215
  timerLabel += ` - ${hook}`;
12160
- timedPlugin[hook] = function (...args) {
12216
+ const func = plugin[hook];
12217
+ plugin[hook] = function (...args) {
12161
12218
  timeStart(timerLabel, 4);
12162
- let result = plugin[hook].apply(this === timedPlugin ? plugin : this, args);
12219
+ const result = func.apply(this, args);
12163
12220
  timeEnd(timerLabel, 4);
12164
12221
  if (result && typeof result.then === 'function') {
12165
12222
  timeStart(`${timerLabel} (async)`, 4);
12166
- result = result.then((hookResult) => {
12223
+ return result.then((hookResult) => {
12167
12224
  timeEnd(`${timerLabel} (async)`, 4);
12168
12225
  return hookResult;
12169
12226
  });
@@ -12171,16 +12228,12 @@ function getPluginWithTimers(plugin, index) {
12171
12228
  return result;
12172
12229
  };
12173
12230
  }
12174
- else {
12175
- timedPlugin[hook] = plugin[hook];
12176
- }
12177
12231
  }
12178
- return timedPlugin;
12232
+ return plugin;
12179
12233
  }
12180
12234
  function initialiseTimers(inputOptions) {
12181
12235
  if (inputOptions.perf) {
12182
- timers = {};
12183
- setTimeHelpers();
12236
+ timers = new Map();
12184
12237
  timeStart = timeStartImpl;
12185
12238
  timeEnd = timeEndImpl;
12186
12239
  inputOptions.plugins = inputOptions.plugins.map(getPluginWithTimers);
@@ -12309,6 +12362,11 @@ class Module {
12309
12362
  this.info = {
12310
12363
  ast: null,
12311
12364
  code: null,
12365
+ get dynamicallyImportedIdResolutions() {
12366
+ return module.dynamicImports
12367
+ .map(({ argument }) => typeof argument === 'string' && module.resolvedIds[argument])
12368
+ .filter(Boolean);
12369
+ },
12312
12370
  get dynamicallyImportedIds() {
12313
12371
  const dynamicallyImportedIds = [];
12314
12372
  for (const { id } of module.dynamicImports) {
@@ -12329,6 +12387,9 @@ class Module {
12329
12387
  get implicitlyLoadedBefore() {
12330
12388
  return Array.from(module.implicitlyLoadedBefore, getId).sort();
12331
12389
  },
12390
+ get importedIdResolutions() {
12391
+ return Array.from(module.sources, source => module.resolvedIds[source]).filter(Boolean);
12392
+ },
12332
12393
  get importedIds() {
12333
12394
  return Array.from(module.sources, source => { var _a; return (_a = module.resolvedIds[source]) === null || _a === void 0 ? void 0 : _a.id; }).filter(Boolean);
12334
12395
  },
@@ -12337,13 +12398,19 @@ class Module {
12337
12398
  },
12338
12399
  isEntry,
12339
12400
  isExternal: false,
12340
- meta,
12401
+ get isIncluded() {
12402
+ if (module.graph.phase !== BuildPhase.GENERATE) {
12403
+ return null;
12404
+ }
12405
+ return module.isIncluded();
12406
+ },
12407
+ meta: { ...meta },
12341
12408
  syntheticNamedExports
12342
12409
  };
12343
12410
  }
12344
12411
  basename() {
12345
- const base = path$2.basename(this.id);
12346
- const ext = path$2.extname(this.id);
12412
+ const base = require$$0.basename(this.id);
12413
+ const ext = require$$0.extname(this.id);
12347
12414
  return makeLegal(ext ? base.slice(0, -ext.length) : base);
12348
12415
  }
12349
12416
  bindReferences() {
@@ -12358,7 +12425,7 @@ class Module {
12358
12425
  return this.allExportNames;
12359
12426
  }
12360
12427
  const allExportNames = (this.allExportNames = new Set());
12361
- for (const name of Object.keys(this.exports)) {
12428
+ for (const name of this.getExports()) {
12362
12429
  allExportNames.add(name);
12363
12430
  }
12364
12431
  for (const name of Object.keys(this.reexportDescriptions)) {
@@ -12382,12 +12449,11 @@ class Module {
12382
12449
  const relevantDependencies = new Set();
12383
12450
  const necessaryDependencies = new Set();
12384
12451
  const alwaysCheckedDependencies = new Set();
12385
- let dependencyVariables = this.imports.keys();
12452
+ const dependencyVariables = new Set(this.imports);
12386
12453
  if (this.info.isEntry ||
12387
12454
  this.includedDynamicImporters.length > 0 ||
12388
12455
  this.namespace.included ||
12389
12456
  this.implicitlyLoadedAfter.size > 0) {
12390
- dependencyVariables = new Set(dependencyVariables);
12391
12457
  for (const exportName of [...this.getReexports(), ...this.getExports()]) {
12392
12458
  const exportedVariable = this.getVariableForExportName(exportName);
12393
12459
  if (exportedVariable) {
@@ -12769,7 +12835,7 @@ class Module {
12769
12835
  this.info.syntheticNamedExports = syntheticNamedExports;
12770
12836
  }
12771
12837
  if (meta != null) {
12772
- this.info.meta = { ...this.info.meta, ...meta };
12838
+ Object.assign(this.info.meta, meta);
12773
12839
  }
12774
12840
  }
12775
12841
  warn(props, pos) {
@@ -12860,11 +12926,7 @@ class Module {
12860
12926
  for (const specifier of node.specifiers) {
12861
12927
  const isDefault = specifier.type === ImportDefaultSpecifier$1;
12862
12928
  const isNamespace = specifier.type === ImportNamespaceSpecifier$1;
12863
- const name = isDefault
12864
- ? 'default'
12865
- : isNamespace
12866
- ? '*'
12867
- : specifier.imported.name;
12929
+ const name = isDefault ? 'default' : isNamespace ? '*' : specifier.imported.name;
12868
12930
  this.importDescriptions[specifier.local.name] = {
12869
12931
  module: null,
12870
12932
  name,
@@ -13011,7 +13073,7 @@ class Module {
13011
13073
  variable.include();
13012
13074
  this.graph.needsTreeshakingPass = true;
13013
13075
  const variableModule = variable.module;
13014
- if (variableModule && variableModule instanceof Module) {
13076
+ if (variableModule instanceof Module) {
13015
13077
  if (!variableModule.isExecuted) {
13016
13078
  markModuleAndImpureDependenciesAsExecuted(variableModule);
13017
13079
  }
@@ -13961,9 +14023,9 @@ function getCollapsedSourcemap(id, originalCode, originalSourcemap, sourcemapCha
13961
14023
  else {
13962
14024
  const sources = originalSourcemap.sources;
13963
14025
  const sourcesContent = originalSourcemap.sourcesContent || [];
13964
- const directory = path$2.dirname(id) || '.';
14026
+ const directory = require$$0.dirname(id) || '.';
13965
14027
  const sourceRoot = originalSourcemap.sourceRoot || '.';
13966
- const baseSources = sources.map((source, i) => new Source(path$2.resolve(directory, sourceRoot, source), sourcesContent[i]));
14028
+ const baseSources = sources.map((source, i) => new Source(require$$0.resolve(directory, sourceRoot, source), sourcesContent[i]));
13967
14029
  source = new Link(originalSourcemap, baseSources);
13968
14030
  }
13969
14031
  return sourcemapChain.reduce(linkMap, source);
@@ -13979,9 +14041,9 @@ function collapseSourcemaps(file, map, modules, bundleSourcemapChain, excludeCon
13979
14041
  source = bundleSourcemapChain.reduce(linkMap, source);
13980
14042
  let { sources, sourcesContent, names, mappings } = source.traceMappings();
13981
14043
  if (file) {
13982
- const directory = path$2.dirname(file);
13983
- sources = sources.map((source) => path$2.relative(directory, source));
13984
- file = path$2.basename(file);
14044
+ const directory = require$$0.dirname(file);
14045
+ sources = sources.map((source) => require$$0.relative(directory, source));
14046
+ file = require$$0.basename(file);
13985
14047
  }
13986
14048
  sourcesContent = (excludeContent ? null : sourcesContent);
13987
14049
  return new SourceMap({ file, mappings, names, sources, sourcesContent });
@@ -14127,7 +14189,7 @@ function escapeId(id) {
14127
14189
  function assignExportsToMangledNames(exports, exportsByName, exportNamesByVariable) {
14128
14190
  let nameIndex = 0;
14129
14191
  for (const variable of exports) {
14130
- let exportName = variable.name[0];
14192
+ let [exportName] = variable.name;
14131
14193
  if (exportsByName[exportName]) {
14132
14194
  do {
14133
14195
  exportName = toBase64(++nameIndex);
@@ -14136,7 +14198,7 @@ function assignExportsToMangledNames(exports, exportsByName, exportNamesByVariab
14136
14198
  nameIndex += 9 * 64 ** (exportName.length - 1);
14137
14199
  exportName = toBase64(nameIndex);
14138
14200
  }
14139
- } while (RESERVED_NAMES.has(exportName) || exportsByName[exportName]);
14201
+ } while (RESERVED_NAMES$1.has(exportName) || exportsByName[exportName]);
14140
14202
  }
14141
14203
  exportsByName[exportName] = variable;
14142
14204
  exportNamesByVariable.set(variable, [exportName]);
@@ -14313,7 +14375,7 @@ function makeUnique(name, existingNames) {
14313
14375
  const existingNamesLowercase = new Set(Object.keys(existingNames).map(key => key.toLowerCase()));
14314
14376
  if (!existingNamesLowercase.has(name.toLocaleLowerCase()))
14315
14377
  return name;
14316
- const ext = path$2.extname(name);
14378
+ const ext = require$$0.extname(name);
14317
14379
  name = name.substr(0, name.length - ext.length);
14318
14380
  let uniqueName, uniqueIndex = 1;
14319
14381
  while (existingNamesLowercase.has((uniqueName = name + ++uniqueIndex + ext).toLowerCase()))
@@ -14369,6 +14431,7 @@ class Chunk {
14369
14431
  this.implicitlyLoadedBefore = new Set();
14370
14432
  this.imports = new Set();
14371
14433
  this.indentString = undefined;
14434
+ // This may only be updated in the constructor
14372
14435
  this.isEmpty = true;
14373
14436
  this.name = null;
14374
14437
  this.renderedDependencies = null;
@@ -14554,7 +14617,7 @@ class Chunk {
14554
14617
  }), existingNames);
14555
14618
  }
14556
14619
  generateIdPreserveModules(preserveModulesRelativeDir, options, existingNames, unsetOptions) {
14557
- const id = this.orderedModules[0].id;
14620
+ const [{ id }] = this.orderedModules;
14558
14621
  const sanitizedId = this.outputOptions.sanitizeFileName(id);
14559
14622
  let path;
14560
14623
  const patternOpt = unsetOptions.has('entryFileNames')
@@ -14562,8 +14625,8 @@ class Chunk {
14562
14625
  : options.entryFileNames;
14563
14626
  const pattern = typeof patternOpt === 'function' ? patternOpt(this.getChunkInfo()) : patternOpt;
14564
14627
  if (isAbsolute(id)) {
14565
- const currentDir = path$2.dirname(sanitizedId);
14566
- const extension = path$2.extname(id);
14628
+ const currentDir = require$$0.dirname(sanitizedId);
14629
+ const extension = require$$0.extname(id);
14567
14630
  const fileName = renderNamePattern(pattern, 'output.entryFileNames', {
14568
14631
  assetExtname: () => (NON_ASSET_EXTENSIONS.includes(extension) ? '' : extension),
14569
14632
  ext: () => extension.substr(1),
@@ -14581,7 +14644,7 @@ class Chunk {
14581
14644
  }
14582
14645
  }
14583
14646
  else {
14584
- const extension = path$2.extname(sanitizedId);
14647
+ const extension = require$$0.extname(sanitizedId);
14585
14648
  const fileName = renderNamePattern(pattern, 'output.entryFileNames', {
14586
14649
  assetExtname: () => (NON_ASSET_EXTENSIONS.includes(extension) ? '' : extension),
14587
14650
  ext: () => extension.substr(1),
@@ -14834,11 +14897,11 @@ class Chunk {
14834
14897
  timeStart('sourcemap', 2);
14835
14898
  let file;
14836
14899
  if (options.file)
14837
- file = path$2.resolve(options.sourcemapFile || options.file);
14900
+ file = require$$0.resolve(options.sourcemapFile || options.file);
14838
14901
  else if (options.dir)
14839
- file = path$2.resolve(options.dir, this.id);
14902
+ file = require$$0.resolve(options.dir, this.id);
14840
14903
  else
14841
- file = path$2.resolve(this.id);
14904
+ file = require$$0.resolve(this.id);
14842
14905
  const decodedMap = magicString.generateDecodedMap({});
14843
14906
  map = collapseSourcemaps(file, decodedMap, this.usedModules, chunkSourcemapChain, options.sourcemapExcludeSources, this.inputOptions.onwarn);
14844
14907
  map.sources = map.sources
@@ -15203,14 +15266,14 @@ class Chunk {
15203
15266
  return referencedFiles;
15204
15267
  }
15205
15268
  getRelativePath(targetPath, stripJsExtension) {
15206
- let relativePath = normalize(relative(path$2.dirname(this.id), targetPath));
15269
+ let relativePath = normalize(relative(require$$0.dirname(this.id), targetPath));
15207
15270
  if (stripJsExtension && relativePath.endsWith('.js')) {
15208
15271
  relativePath = relativePath.slice(0, -3);
15209
15272
  }
15210
15273
  if (relativePath === '..')
15211
- return '../../' + path$2.basename(targetPath);
15274
+ return '../../' + require$$0.basename(targetPath);
15212
15275
  if (relativePath === '')
15213
- return '../' + path$2.basename(targetPath);
15276
+ return '../' + require$$0.basename(targetPath);
15214
15277
  return relativePath.startsWith('../') ? relativePath : './' + relativePath;
15215
15278
  }
15216
15279
  inlineChunkDependencies(chunk) {
@@ -15354,20 +15417,13 @@ function getChunkNameFromModule(module) {
15354
15417
  return module.chunkName || getAliasName(module.id);
15355
15418
  }
15356
15419
 
15357
- var BuildPhase;
15358
- (function (BuildPhase) {
15359
- BuildPhase[BuildPhase["LOAD_AND_PARSE"] = 0] = "LOAD_AND_PARSE";
15360
- BuildPhase[BuildPhase["ANALYSE"] = 1] = "ANALYSE";
15361
- BuildPhase[BuildPhase["GENERATE"] = 2] = "GENERATE";
15362
- })(BuildPhase || (BuildPhase = {}));
15363
-
15364
15420
  function generateAssetFileName(name, source, outputOptions, bundle) {
15365
15421
  const emittedName = outputOptions.sanitizeFileName(name || 'asset');
15366
15422
  return makeUnique(renderNamePattern(typeof outputOptions.assetFileNames === 'function'
15367
15423
  ? outputOptions.assetFileNames({ name, source, type: 'asset' })
15368
15424
  : outputOptions.assetFileNames, 'output.assetFileNames', {
15369
- ext: () => path$2.extname(emittedName).substr(1),
15370
- extname: () => path$2.extname(emittedName),
15425
+ ext: () => require$$0.extname(emittedName).substr(1),
15426
+ extname: () => require$$0.extname(emittedName),
15371
15427
  hash() {
15372
15428
  const hash = createHash();
15373
15429
  hash.update(emittedName);
@@ -15375,7 +15431,7 @@ function generateAssetFileName(name, source, outputOptions, bundle) {
15375
15431
  hash.update(source);
15376
15432
  return hash.digest('hex').substr(0, 8);
15377
15433
  },
15378
- name: () => emittedName.substr(0, emittedName.length - path$2.extname(emittedName).length)
15434
+ name: () => emittedName.substr(0, emittedName.length - require$$0.extname(emittedName).length)
15379
15435
  }), bundle);
15380
15436
  }
15381
15437
  function reserveFileNameInBundle(fileName, bundle, warn) {
@@ -15767,7 +15823,7 @@ function commondir(files) {
15767
15823
  if (files.length === 0)
15768
15824
  return '/';
15769
15825
  if (files.length === 1)
15770
- return path$2.dirname(files[0]);
15826
+ return require$$0.dirname(files[0]);
15771
15827
  const commonSegments = files.slice(1).reduce((commonSegments, file) => {
15772
15828
  const pathSegements = file.split(/\/+|\\+/);
15773
15829
  let i;
@@ -15871,7 +15927,7 @@ function getGenerateCodeSnippets({ compact, generatedCode: { arrowFunctions, con
15871
15927
  ];
15872
15928
  const isValidPropName = reservedNamesAsProps
15873
15929
  ? (name) => validPropName.test(name)
15874
- : (name) => !RESERVED_NAMES.has(name) && validPropName.test(name);
15930
+ : (name) => !RESERVED_NAMES$1.has(name) && validPropName.test(name);
15875
15931
  return {
15876
15932
  _,
15877
15933
  cnst,
@@ -15987,7 +16043,7 @@ class Bundle {
15987
16043
  const chunksForNaming = entryChunks.concat(otherChunks);
15988
16044
  for (const chunk of chunksForNaming) {
15989
16045
  if (this.outputOptions.file) {
15990
- chunk.id = path$2.basename(this.outputOptions.file);
16046
+ chunk.id = require$$0.basename(this.outputOptions.file);
15991
16047
  }
15992
16048
  else if (this.outputOptions.preserveModules) {
15993
16049
  chunk.id = chunk.generateIdPreserveModules(inputBase, this.outputOptions, bundle, this.unsetOptions);
@@ -16096,7 +16152,7 @@ function validateOptionsForMultiChunkOutput(outputOptions, onWarn) {
16096
16152
  onWarn(errInvalidOption('output.amd.id', 'outputamd', 'this option is only properly supported for single-file builds. Use "output.amd.autoId" and "output.amd.basePath" instead'));
16097
16153
  }
16098
16154
  function getIncludedModules(modulesById) {
16099
- return [...modulesById.values()].filter(module => module instanceof Module &&
16155
+ return [...modulesById.values()].filter((module) => module instanceof Module &&
16100
16156
  (module.isIncluded() || module.info.isEntry || module.includedDynamicImporters.length > 0));
16101
16157
  }
16102
16158
  function addModuleToManualChunk(alias, module, manualChunkAliasByEntry) {
@@ -16136,8 +16192,8 @@ var keywordRelationalOperator = /^in(stanceof)?$/;
16136
16192
  // are only applied when a character is found to actually have a
16137
16193
  // code point above 128.
16138
16194
  // Generated by `bin/generate-identifier-regex.js`.
16139
- 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";
16140
- 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";
16195
+ 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";
16196
+ 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";
16141
16197
 
16142
16198
  var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]");
16143
16199
  var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]");
@@ -16151,10 +16207,10 @@ nonASCIIidentifierStartChars = nonASCIIidentifierChars = null;
16151
16207
  // generated by bin/generate-identifier-regex.js
16152
16208
 
16153
16209
  // eslint-disable-next-line comma-spacing
16154
- 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];
16210
+ 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];
16155
16211
 
16156
16212
  // eslint-disable-next-line comma-spacing
16157
- 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];
16213
+ 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];
16158
16214
 
16159
16215
  // This has a complexity linear to the value of the code. The
16160
16216
  // assumption is that looking up astral identifier characters is
@@ -16359,6 +16415,17 @@ function isNewLine(code) {
16359
16415
  return code === 10 || code === 13 || code === 0x2028 || code === 0x2029
16360
16416
  }
16361
16417
 
16418
+ function nextLineBreak(code, from, end) {
16419
+ if ( end === void 0 ) end = code.length;
16420
+
16421
+ for (var i = from; i < end; i++) {
16422
+ var next = code.charCodeAt(i);
16423
+ if (isNewLine(next))
16424
+ { return i < end - 1 && next === 13 && code.charCodeAt(i + 1) === 10 ? i + 2 : i + 1 }
16425
+ }
16426
+ return -1
16427
+ }
16428
+
16362
16429
  var nonASCIIwhitespace = /[\u1680\u2000-\u200a\u202f\u205f\u3000\ufeff]/;
16363
16430
 
16364
16431
  var skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g;
@@ -16367,11 +16434,9 @@ var ref = Object.prototype;
16367
16434
  var hasOwnProperty = ref.hasOwnProperty;
16368
16435
  var toString = ref.toString;
16369
16436
 
16370
- // Checks if an object has a property.
16371
-
16372
- function has(obj, propName) {
16373
- return hasOwnProperty.call(obj, propName)
16374
- }
16437
+ var hasOwn = Object.hasOwn || (function (obj, propName) { return (
16438
+ hasOwnProperty.call(obj, propName)
16439
+ ); });
16375
16440
 
16376
16441
  var isArray = Array.isArray || (function (obj) { return (
16377
16442
  toString.call(obj) === "[object Array]"
@@ -16381,6 +16446,8 @@ function wordsRegexp(words) {
16381
16446
  return new RegExp("^(?:" + words.replace(/ /g, "|") + ")$")
16382
16447
  }
16383
16448
 
16449
+ var loneSurrogate = /(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/;
16450
+
16384
16451
  // These are used when `options.locations` is on, for the
16385
16452
  // `startLoc` and `endLoc` properties.
16386
16453
 
@@ -16407,14 +16474,10 @@ var SourceLocation = function SourceLocation(p, start, end) {
16407
16474
 
16408
16475
  function getLineInfo(input, offset) {
16409
16476
  for (var line = 1, cur = 0;;) {
16410
- lineBreakG.lastIndex = cur;
16411
- var match = lineBreakG.exec(input);
16412
- if (match && match.index < offset) {
16413
- ++line;
16414
- cur = match.index + match[0].length;
16415
- } else {
16416
- return new Position(line, offset - cur)
16417
- }
16477
+ var nextBreak = nextLineBreak(input, cur, offset);
16478
+ if (nextBreak < 0) { return new Position(line, offset - cur) }
16479
+ ++line;
16480
+ cur = nextBreak;
16418
16481
  }
16419
16482
  }
16420
16483
 
@@ -16520,7 +16583,7 @@ function getOptions(opts) {
16520
16583
  var options = {};
16521
16584
 
16522
16585
  for (var opt in defaultOptions)
16523
- { options[opt] = opts && has(opts, opt) ? opts[opt] : defaultOptions[opt]; }
16586
+ { options[opt] = opts && hasOwn(opts, opt) ? opts[opt] : defaultOptions[opt]; }
16524
16587
 
16525
16588
  if (options.ecmaVersion === "latest") {
16526
16589
  options.ecmaVersion = 1e8;
@@ -17686,7 +17749,7 @@ pp$8.exitClassBody = function() {
17686
17749
  var parent = len === 0 ? null : this.privateNameStack[len - 1];
17687
17750
  for (var i = 0; i < used.length; ++i) {
17688
17751
  var id = used[i];
17689
- if (!has(declared, id.name)) {
17752
+ if (!hasOwn(declared, id.name)) {
17690
17753
  if (parent) {
17691
17754
  parent.used.push(id);
17692
17755
  } else {
@@ -17739,7 +17802,7 @@ pp$8.parseExport = function(node, exports) {
17739
17802
  if (this.eat(types$1.star)) {
17740
17803
  if (this.options.ecmaVersion >= 11) {
17741
17804
  if (this.eatContextual("as")) {
17742
- node.exported = this.parseIdent(true);
17805
+ node.exported = this.parseModuleExportName();
17743
17806
  this.checkExport(exports, node.exported.name, this.lastTokStart);
17744
17807
  } else {
17745
17808
  node.exported = null;
@@ -17791,6 +17854,10 @@ pp$8.parseExport = function(node, exports) {
17791
17854
  this.checkUnreserved(spec.local);
17792
17855
  // check if export is defined
17793
17856
  this.checkLocalExport(spec.local);
17857
+
17858
+ if (spec.local.type === "Literal") {
17859
+ this.raise(spec.local.start, "A string literal cannot be used as an exported binding without `from`.");
17860
+ }
17794
17861
  }
17795
17862
 
17796
17863
  node.source = null;
@@ -17802,7 +17869,7 @@ pp$8.parseExport = function(node, exports) {
17802
17869
 
17803
17870
  pp$8.checkExport = function(exports, name, pos) {
17804
17871
  if (!exports) { return }
17805
- if (has(exports, name))
17872
+ if (hasOwn(exports, name))
17806
17873
  { this.raiseRecoverable(pos, "Duplicate export '" + name + "'"); }
17807
17874
  exports[name] = true;
17808
17875
  };
@@ -17866,9 +17933,13 @@ pp$8.parseExportSpecifiers = function(exports) {
17866
17933
  } else { first = false; }
17867
17934
 
17868
17935
  var node = this.startNode();
17869
- node.local = this.parseIdent(true);
17870
- node.exported = this.eatContextual("as") ? this.parseIdent(true) : node.local;
17871
- this.checkExport(exports, node.exported.name, node.exported.start);
17936
+ node.local = this.parseModuleExportName();
17937
+ node.exported = this.eatContextual("as") ? this.parseModuleExportName() : node.local;
17938
+ this.checkExport(
17939
+ exports,
17940
+ node.exported[node.exported.type === "Identifier" ? "name" : "value"],
17941
+ node.exported.start
17942
+ );
17872
17943
  nodes.push(this.finishNode(node, "ExportSpecifier"));
17873
17944
  }
17874
17945
  return nodes
@@ -17920,7 +17991,7 @@ pp$8.parseImportSpecifiers = function() {
17920
17991
  } else { first = false; }
17921
17992
 
17922
17993
  var node$2 = this.startNode();
17923
- node$2.imported = this.parseIdent(true);
17994
+ node$2.imported = this.parseModuleExportName();
17924
17995
  if (this.eatContextual("as")) {
17925
17996
  node$2.local = this.parseIdent();
17926
17997
  } else {
@@ -17933,6 +18004,17 @@ pp$8.parseImportSpecifiers = function() {
17933
18004
  return nodes
17934
18005
  };
17935
18006
 
18007
+ pp$8.parseModuleExportName = function() {
18008
+ if (this.options.ecmaVersion >= 13 && this.type === types$1.string) {
18009
+ var stringLiteral = this.parseLiteral(this.value);
18010
+ if (loneSurrogate.test(stringLiteral.value)) {
18011
+ this.raise(stringLiteral.start, "An export name cannot include a lone surrogate.");
18012
+ }
18013
+ return stringLiteral
18014
+ }
18015
+ return this.parseIdent(true)
18016
+ };
18017
+
17936
18018
  // Set `ExpressionStatement#directive` property for directive prologues.
17937
18019
  pp$8.adaptDirectivePrologue = function(statements) {
17938
18020
  for (var i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) {
@@ -18206,7 +18288,7 @@ pp$7.checkLValSimple = function(expr, bindingType, checkClashes) {
18206
18288
  if (bindingType === BIND_LEXICAL && expr.name === "let")
18207
18289
  { this.raiseRecoverable(expr.start, "let is disallowed as a lexically bound name"); }
18208
18290
  if (checkClashes) {
18209
- if (has(checkClashes, expr.name))
18291
+ if (hasOwn(checkClashes, expr.name))
18210
18292
  { this.raiseRecoverable(expr.start, "Argument name clash"); }
18211
18293
  checkClashes[expr.name] = true;
18212
18294
  }
@@ -19701,26 +19783,30 @@ var ecma9BinaryProperties = "ASCII ASCII_Hex_Digit AHex Alphabetic Alpha Any Ass
19701
19783
  var ecma10BinaryProperties = ecma9BinaryProperties + " Extended_Pictographic";
19702
19784
  var ecma11BinaryProperties = ecma10BinaryProperties;
19703
19785
  var ecma12BinaryProperties = ecma11BinaryProperties + " EBase EComp EMod EPres ExtPict";
19786
+ var ecma13BinaryProperties = ecma12BinaryProperties;
19704
19787
  var unicodeBinaryProperties = {
19705
19788
  9: ecma9BinaryProperties,
19706
19789
  10: ecma10BinaryProperties,
19707
19790
  11: ecma11BinaryProperties,
19708
- 12: ecma12BinaryProperties
19791
+ 12: ecma12BinaryProperties,
19792
+ 13: ecma13BinaryProperties
19709
19793
  };
19710
19794
 
19711
19795
  // #table-unicode-general-category-values
19712
19796
  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";
19713
19797
 
19714
19798
  // #table-unicode-script-values
19715
- 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";
19799
+ 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";
19716
19800
  var ecma10ScriptValues = ecma9ScriptValues + " Dogra Dogr Gunjala_Gondi Gong Hanifi_Rohingya Rohg Makasar Maka Medefaidrin Medf Old_Sogdian Sogo Sogdian Sogd";
19717
19801
  var ecma11ScriptValues = ecma10ScriptValues + " Elymaic Elym Nandinagari Nand Nyiakeng_Puachue_Hmong Hmnp Wancho Wcho";
19718
19802
  var ecma12ScriptValues = ecma11ScriptValues + " Chorasmian Chrs Diak Dives_Akuru Khitan_Small_Script Kits Yezi Yezidi";
19803
+ var ecma13ScriptValues = ecma12ScriptValues + " Cypro_Minoan Cpmn Old_Uyghur Ougr Tangsa Tnsa Toto Vithkuqi Vith";
19719
19804
  var unicodeScriptValues = {
19720
19805
  9: ecma9ScriptValues,
19721
19806
  10: ecma10ScriptValues,
19722
19807
  11: ecma11ScriptValues,
19723
- 12: ecma12ScriptValues
19808
+ 12: ecma12ScriptValues,
19809
+ 13: ecma13ScriptValues
19724
19810
  };
19725
19811
 
19726
19812
  var data = {};
@@ -19738,17 +19824,19 @@ function buildUnicodeData(ecmaVersion) {
19738
19824
  d.nonBinary.sc = d.nonBinary.Script;
19739
19825
  d.nonBinary.scx = d.nonBinary.Script_Extensions;
19740
19826
  }
19741
- buildUnicodeData(9);
19742
- buildUnicodeData(10);
19743
- buildUnicodeData(11);
19744
- buildUnicodeData(12);
19827
+
19828
+ for (var i = 0, list = [9, 10, 11, 12, 13]; i < list.length; i += 1) {
19829
+ var ecmaVersion = list[i];
19830
+
19831
+ buildUnicodeData(ecmaVersion);
19832
+ }
19745
19833
 
19746
19834
  var pp$1 = Parser.prototype;
19747
19835
 
19748
19836
  var RegExpValidationState = function RegExpValidationState(parser) {
19749
19837
  this.parser = parser;
19750
19838
  this.validFlags = "gim" + (parser.options.ecmaVersion >= 6 ? "uy" : "") + (parser.options.ecmaVersion >= 9 ? "s" : "") + (parser.options.ecmaVersion >= 13 ? "d" : "");
19751
- this.unicodeProperties = data[parser.options.ecmaVersion >= 12 ? 12 : parser.options.ecmaVersion];
19839
+ this.unicodeProperties = data[parser.options.ecmaVersion >= 13 ? 13 : parser.options.ecmaVersion];
19752
19840
  this.source = "";
19753
19841
  this.flags = "";
19754
19842
  this.start = 0;
@@ -20547,7 +20635,7 @@ pp$1.regexp_eatUnicodePropertyValueExpression = function(state) {
20547
20635
  return false
20548
20636
  };
20549
20637
  pp$1.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) {
20550
- if (!has(state.unicodeProperties.nonBinary, name))
20638
+ if (!hasOwn(state.unicodeProperties.nonBinary, name))
20551
20639
  { state.raise("Invalid property name"); }
20552
20640
  if (!state.unicodeProperties.nonBinary[name].test(value))
20553
20641
  { state.raise("Invalid property value"); }
@@ -20899,11 +20987,9 @@ pp.skipBlockComment = function() {
20899
20987
  if (end === -1) { this.raise(this.pos - 2, "Unterminated comment"); }
20900
20988
  this.pos = end + 2;
20901
20989
  if (this.options.locations) {
20902
- lineBreakG.lastIndex = start;
20903
- var match;
20904
- while ((match = lineBreakG.exec(this.input)) && match.index < this.pos) {
20990
+ for (var nextBreak = (void 0), pos = start; (nextBreak = nextLineBreak(this.input, pos, this.pos)) > -1;) {
20905
20991
  ++this.curLine;
20906
- this.lineStart = match.index + match[0].length;
20992
+ pos = this.lineStart = nextBreak;
20907
20993
  }
20908
20994
  }
20909
20995
  if (this.options.onComment)
@@ -21614,7 +21700,7 @@ pp.readWord = function() {
21614
21700
 
21615
21701
  // Acorn is a tiny, fast JavaScript parser written in JavaScript.
21616
21702
 
21617
- var version = "8.6.0";
21703
+ var version = "8.7.0";
21618
21704
 
21619
21705
  Parser.acorn = {
21620
21706
  Parser: Parser,
@@ -21640,7 +21726,7 @@ Parser.acorn = {
21640
21726
 
21641
21727
  const readFile = (file) => new Promise((fulfil, reject) => fs.readFile(file, 'utf-8', (err, contents) => (err ? reject(err) : fulfil(contents))));
21642
21728
  function mkdirpath(path) {
21643
- const dir = path$2.dirname(path);
21729
+ const dir = require$$0.dirname(path);
21644
21730
  fs.mkdirSync(dir, { recursive: true });
21645
21731
  }
21646
21732
  function writeFile(dest, data) {
@@ -21658,9 +21744,9 @@ function writeFile(dest, data) {
21658
21744
  }
21659
21745
 
21660
21746
  class Queue {
21661
- constructor(maxParallel = 1) {
21747
+ constructor(maxParallel) {
21662
21748
  this.maxParallel = maxParallel;
21663
- this.queue = new Array();
21749
+ this.queue = [];
21664
21750
  this.workerCount = 0;
21665
21751
  }
21666
21752
  run(task) {
@@ -21720,7 +21806,7 @@ async function resolveId(source, importer, preserveSymlinks, pluginDriver, modul
21720
21806
  // absolute path is created. Absolute importees therefore shortcircuit the
21721
21807
  // resolve call and require no special handing on our part.
21722
21808
  // See https://nodejs.org/api/path.html#path_path_resolve_paths
21723
- return addJsExtensionIfNecessary(importer ? path$2.resolve(path$2.dirname(importer), source) : path$2.resolve(source), preserveSymlinks);
21809
+ return addJsExtensionIfNecessary(importer ? require$$0.resolve(require$$0.dirname(importer), source) : require$$0.resolve(source), preserveSymlinks);
21724
21810
  }
21725
21811
  function addJsExtensionIfNecessary(file, preserveSymlinks) {
21726
21812
  let found = findFile(file, preserveSymlinks);
@@ -21739,8 +21825,8 @@ function findFile(file, preserveSymlinks) {
21739
21825
  return findFile(fs.realpathSync(file), preserveSymlinks);
21740
21826
  if ((preserveSymlinks && stats.isSymbolicLink()) || stats.isFile()) {
21741
21827
  // check case
21742
- const name = path$2.basename(file);
21743
- const files = fs.readdirSync(path$2.dirname(file));
21828
+ const name = require$$0.basename(file);
21829
+ const files = fs.readdirSync(require$$0.dirname(file));
21744
21830
  if (files.indexOf(name) !== -1)
21745
21831
  return file;
21746
21832
  }
@@ -21870,7 +21956,7 @@ function getCacheForUncacheablePlugin(pluginName) {
21870
21956
  };
21871
21957
  }
21872
21958
 
21873
- function transform(source, module, pluginDriver, warn) {
21959
+ async function transform(source, module, pluginDriver, warn) {
21874
21960
  const id = module.id;
21875
21961
  const sourcemapChain = [];
21876
21962
  let originalSourcemap = source.map === null ? null : decodedSourcemap(source.map);
@@ -21880,7 +21966,7 @@ function transform(source, module, pluginDriver, warn) {
21880
21966
  const emittedFiles = [];
21881
21967
  let customTransformCache = false;
21882
21968
  const useCustomTransformCache = () => (customTransformCache = true);
21883
- let curPlugin;
21969
+ let pluginName = '';
21884
21970
  const curSource = source.code;
21885
21971
  function transformReducer(previousCode, result, plugin) {
21886
21972
  let code;
@@ -21911,90 +21997,91 @@ function transform(source, module, pluginDriver, warn) {
21911
21997
  }
21912
21998
  return code;
21913
21999
  }
21914
- return pluginDriver
21915
- .hookReduceArg0('transform', [curSource, id], transformReducer, (pluginContext, plugin) => {
21916
- curPlugin = plugin;
21917
- return {
21918
- ...pluginContext,
21919
- addWatchFile(id) {
21920
- transformDependencies.push(id);
21921
- pluginContext.addWatchFile(id);
21922
- },
21923
- cache: customTransformCache
21924
- ? pluginContext.cache
21925
- : getTrackedPluginCache(pluginContext.cache, useCustomTransformCache),
21926
- emitAsset(name, source) {
21927
- emittedFiles.push({ name, source, type: 'asset' });
21928
- return pluginContext.emitAsset(name, source);
21929
- },
21930
- emitChunk(id, options) {
21931
- emittedFiles.push({ id, name: options && options.name, type: 'chunk' });
21932
- return pluginContext.emitChunk(id, options);
21933
- },
21934
- emitFile(emittedFile) {
21935
- emittedFiles.push(emittedFile);
21936
- return pluginDriver.emitFile(emittedFile);
21937
- },
21938
- error(err, pos) {
21939
- if (typeof err === 'string')
21940
- err = { message: err };
21941
- if (pos)
21942
- augmentCodeLocation(err, pos, curSource, id);
21943
- err.id = id;
21944
- err.hook = 'transform';
21945
- return pluginContext.error(err);
21946
- },
21947
- getCombinedSourcemap() {
21948
- const combinedMap = collapseSourcemap(id, originalCode, originalSourcemap, sourcemapChain, warn);
21949
- if (!combinedMap) {
21950
- const magicString = new MagicString$1(originalCode);
21951
- return magicString.generateMap({ hires: true, includeContent: true, source: id });
21952
- }
21953
- if (originalSourcemap !== combinedMap) {
21954
- originalSourcemap = combinedMap;
21955
- sourcemapChain.length = 0;
22000
+ let code;
22001
+ try {
22002
+ code = await pluginDriver.hookReduceArg0('transform', [curSource, id], transformReducer, (pluginContext, plugin) => {
22003
+ pluginName = plugin.name;
22004
+ return {
22005
+ ...pluginContext,
22006
+ addWatchFile(id) {
22007
+ transformDependencies.push(id);
22008
+ pluginContext.addWatchFile(id);
22009
+ },
22010
+ cache: customTransformCache
22011
+ ? pluginContext.cache
22012
+ : getTrackedPluginCache(pluginContext.cache, useCustomTransformCache),
22013
+ emitAsset(name, source) {
22014
+ emittedFiles.push({ name, source, type: 'asset' });
22015
+ return pluginContext.emitAsset(name, source);
22016
+ },
22017
+ emitChunk(id, options) {
22018
+ emittedFiles.push({ id, name: options && options.name, type: 'chunk' });
22019
+ return pluginContext.emitChunk(id, options);
22020
+ },
22021
+ emitFile(emittedFile) {
22022
+ emittedFiles.push(emittedFile);
22023
+ return pluginDriver.emitFile(emittedFile);
22024
+ },
22025
+ error(err, pos) {
22026
+ if (typeof err === 'string')
22027
+ err = { message: err };
22028
+ if (pos)
22029
+ augmentCodeLocation(err, pos, curSource, id);
22030
+ err.id = id;
22031
+ err.hook = 'transform';
22032
+ return pluginContext.error(err);
22033
+ },
22034
+ getCombinedSourcemap() {
22035
+ const combinedMap = collapseSourcemap(id, originalCode, originalSourcemap, sourcemapChain, warn);
22036
+ if (!combinedMap) {
22037
+ const magicString = new MagicString$1(originalCode);
22038
+ return magicString.generateMap({ hires: true, includeContent: true, source: id });
22039
+ }
22040
+ if (originalSourcemap !== combinedMap) {
22041
+ originalSourcemap = combinedMap;
22042
+ sourcemapChain.length = 0;
22043
+ }
22044
+ return new SourceMap({
22045
+ ...combinedMap,
22046
+ file: null,
22047
+ sourcesContent: combinedMap.sourcesContent
22048
+ });
22049
+ },
22050
+ setAssetSource() {
22051
+ return this.error({
22052
+ code: 'INVALID_SETASSETSOURCE',
22053
+ message: `setAssetSource cannot be called in transform for caching reasons. Use emitFile with a source, or call setAssetSource in another hook.`
22054
+ });
22055
+ },
22056
+ warn(warning, pos) {
22057
+ if (typeof warning === 'string')
22058
+ warning = { message: warning };
22059
+ if (pos)
22060
+ augmentCodeLocation(warning, pos, curSource, id);
22061
+ warning.id = id;
22062
+ warning.hook = 'transform';
22063
+ pluginContext.warn(warning);
21956
22064
  }
21957
- return new SourceMap({
21958
- ...combinedMap,
21959
- file: null,
21960
- sourcesContent: combinedMap.sourcesContent
21961
- });
21962
- },
21963
- setAssetSource() {
21964
- return this.error({
21965
- code: 'INVALID_SETASSETSOURCE',
21966
- message: `setAssetSource cannot be called in transform for caching reasons. Use emitFile with a source, or call setAssetSource in another hook.`
21967
- });
21968
- },
21969
- warn(warning, pos) {
21970
- if (typeof warning === 'string')
21971
- warning = { message: warning };
21972
- if (pos)
21973
- augmentCodeLocation(warning, pos, curSource, id);
21974
- warning.id = id;
21975
- warning.hook = 'transform';
21976
- pluginContext.warn(warning);
21977
- }
21978
- };
21979
- })
21980
- .catch(err => throwPluginError(err, curPlugin.name, { hook: 'transform', id }))
21981
- .then(code => {
21982
- if (!customTransformCache) {
21983
- // files emitted by a transform hook need to be emitted again if the hook is skipped
21984
- if (emittedFiles.length)
21985
- module.transformFiles = emittedFiles;
21986
- }
21987
- return {
21988
- ast,
21989
- code,
21990
- customTransformCache,
21991
- meta: module.info.meta,
21992
- originalCode,
21993
- originalSourcemap,
21994
- sourcemapChain,
21995
- transformDependencies
21996
- };
21997
- });
22065
+ };
22066
+ });
22067
+ }
22068
+ catch (err) {
22069
+ throwPluginError(err, pluginName, { hook: 'transform', id });
22070
+ }
22071
+ if (!customTransformCache) {
22072
+ // files emitted by a transform hook need to be emitted again if the hook is skipped
22073
+ if (emittedFiles.length)
22074
+ module.transformFiles = emittedFiles;
22075
+ }
22076
+ return {
22077
+ ast,
22078
+ code,
22079
+ customTransformCache,
22080
+ originalCode,
22081
+ originalSourcemap,
22082
+ sourcemapChain,
22083
+ transformDependencies
22084
+ };
21998
22085
  }
21999
22086
 
22000
22087
  class ModuleLoader {
@@ -22009,7 +22096,6 @@ class ModuleLoader {
22009
22096
  this.moduleLoadPromises = new Map();
22010
22097
  this.modulesWithLoadedDependencies = new Set();
22011
22098
  this.nextEntryModuleIndex = 0;
22012
- this.readQueue = new Queue();
22013
22099
  this.resolveId = async (source, importer, customOptions, isEntry, skip = null) => {
22014
22100
  return this.addDefaultsToResolvedId(this.getNormalizedResolvedIdWithoutDefaults(this.options.external(source, importer, false)
22015
22101
  ? false
@@ -22018,7 +22104,7 @@ class ModuleLoader {
22018
22104
  this.hasModuleSideEffects = options.treeshake
22019
22105
  ? options.treeshake.moduleSideEffects
22020
22106
  : () => true;
22021
- this.readQueue.maxParallel = options.maxParallelFileReads;
22107
+ this.readQueue = new Queue(options.maxParallelFileReads);
22022
22108
  }
22023
22109
  async addAdditionalModules(unresolvedModules) {
22024
22110
  const result = this.extendLoadModulesPromise(Promise.all(unresolvedModules.map(id => this.loadEntryModule(id, false, undefined, null))));
@@ -22069,8 +22155,9 @@ class ModuleLoader {
22069
22155
  }
22070
22156
  return module;
22071
22157
  }
22072
- preloadModule(resolvedId) {
22073
- return this.fetchModule(this.addDefaultsToResolvedId(resolvedId), undefined, false, true).then(module => module.info);
22158
+ async preloadModule(resolvedId) {
22159
+ const module = await this.fetchModule(this.addDefaultsToResolvedId(resolvedId), undefined, false, true);
22160
+ return module.info;
22074
22161
  }
22075
22162
  addDefaultsToResolvedId(resolvedId) {
22076
22163
  var _a, _b;
@@ -22081,7 +22168,7 @@ class ModuleLoader {
22081
22168
  return {
22082
22169
  external,
22083
22170
  id: resolvedId.id,
22084
- meta: resolvedId.meta || EMPTY_OBJECT,
22171
+ meta: resolvedId.meta || {},
22085
22172
  moduleSideEffects: (_a = resolvedId.moduleSideEffects) !== null && _a !== void 0 ? _a : this.hasModuleSideEffects(resolvedId.id, !!external),
22086
22173
  syntheticNamedExports: (_b = resolvedId.syntheticNamedExports) !== null && _b !== void 0 ? _b : false
22087
22174
  };
@@ -22120,13 +22207,23 @@ class ModuleLoader {
22120
22207
  timeEnd('load modules', 3);
22121
22208
  const sourceDescription = typeof source === 'string'
22122
22209
  ? { code: source }
22123
- : typeof source === 'object' && typeof source.code === 'string'
22210
+ : source != null && typeof source === 'object' && typeof source.code === 'string'
22124
22211
  ? source
22125
22212
  : error(errBadLoader(id));
22126
22213
  const cachedModule = this.graph.cachedModules.get(id);
22127
22214
  if (cachedModule &&
22128
22215
  !cachedModule.customTransformCache &&
22129
- cachedModule.originalCode === sourceDescription.code) {
22216
+ cachedModule.originalCode === sourceDescription.code &&
22217
+ !(await this.pluginDriver.hookFirst('shouldTransformCachedModule', [
22218
+ {
22219
+ ast: cachedModule.ast,
22220
+ code: cachedModule.code,
22221
+ id: cachedModule.id,
22222
+ meta: cachedModule.meta,
22223
+ moduleSideEffects: cachedModule.moduleSideEffects,
22224
+ syntheticNamedExports: cachedModule.syntheticNamedExports
22225
+ }
22226
+ ]))) {
22130
22227
  if (cachedModule.transformFiles) {
22131
22228
  for (const emittedFile of cachedModule.transformFiles)
22132
22229
  this.pluginDriver.emitFile(emittedFile);
@@ -22323,7 +22420,7 @@ class ModuleLoader {
22323
22420
  return {
22324
22421
  external: true,
22325
22422
  id: source,
22326
- meta: EMPTY_OBJECT,
22423
+ meta: {},
22327
22424
  moduleSideEffects: this.hasModuleSideEffects(source, true),
22328
22425
  syntheticNamedExports: false
22329
22426
  };
@@ -22381,8 +22478,8 @@ class ModuleLoader {
22381
22478
  function normalizeRelativeExternalId(source, importer) {
22382
22479
  return isRelative(source)
22383
22480
  ? importer
22384
- ? path$2.resolve(importer, '..', source)
22385
- : path$2.resolve(source)
22481
+ ? require$$0.resolve(importer, '..', source)
22482
+ : require$$0.resolve(source)
22386
22483
  : source;
22387
22484
  }
22388
22485
  function addChunkNamesToModule(module, { fileName, name }, isUserDefined) {
@@ -22518,6 +22615,40 @@ function getPluginContext(plugin, pluginCache, graph, options, fileEmitter, exis
22518
22615
  return context;
22519
22616
  }
22520
22617
 
22618
+ const unfulfilledActions = new Set();
22619
+ function addUnresolvedAction(actionTuple) {
22620
+ unfulfilledActions.add(actionTuple);
22621
+ }
22622
+ function resolveAction(actionTuple) {
22623
+ unfulfilledActions.delete(actionTuple);
22624
+ }
22625
+ function formatAction([pluginName, hookName, args]) {
22626
+ let action = `(${pluginName}) ${hookName}`;
22627
+ const s = JSON.stringify;
22628
+ switch (hookName) {
22629
+ case 'resolveId':
22630
+ action += ` ${s(args[0])} ${s(args[1])}`;
22631
+ break;
22632
+ case 'load':
22633
+ action += ` ${s(args[0])}`;
22634
+ break;
22635
+ case 'transform':
22636
+ action += ` ${s(args[1])}`;
22637
+ break;
22638
+ }
22639
+ return action;
22640
+ }
22641
+ process.on('exit', () => {
22642
+ if (unfulfilledActions.size) {
22643
+ let err = '[!] Error: unfinished hook action(s) on exit:\n';
22644
+ for (const action of unfulfilledActions) {
22645
+ err += formatAction(action) + '\n';
22646
+ }
22647
+ console.error('%s', err);
22648
+ process.exit(1);
22649
+ }
22650
+ });
22651
+
22521
22652
  const inputHookNames = {
22522
22653
  buildEnd: 1,
22523
22654
  buildStart: 1,
@@ -22528,6 +22659,7 @@ const inputHookNames = {
22528
22659
  options: 1,
22529
22660
  resolveDynamicImport: 1,
22530
22661
  resolveId: 1,
22662
+ shouldTransformCachedModule: 1,
22531
22663
  transform: 1,
22532
22664
  watchChange: 1
22533
22665
  };
@@ -22669,6 +22801,7 @@ class PluginDriver {
22669
22801
  if (hookContext) {
22670
22802
  context = hookContext(context, plugin);
22671
22803
  }
22804
+ let action = null;
22672
22805
  return Promise.resolve()
22673
22806
  .then(() => {
22674
22807
  // permit values allows values to be returned instead of a functional hook
@@ -22678,9 +22811,35 @@ class PluginDriver {
22678
22811
  return throwInvalidHookError(hookName, plugin.name);
22679
22812
  }
22680
22813
  // eslint-disable-next-line @typescript-eslint/ban-types
22681
- return hook.apply(context, args);
22814
+ const hookResult = hook.apply(context, args);
22815
+ if (!hookResult || !hookResult.then) {
22816
+ // short circuit for non-thenables and non-Promises
22817
+ return hookResult;
22818
+ }
22819
+ // Track pending hook actions to properly error out when
22820
+ // unfulfilled promises cause rollup to abruptly and confusingly
22821
+ // exit with a successful 0 return code but without producing any
22822
+ // output, errors or warnings.
22823
+ action = [plugin.name, hookName, args];
22824
+ addUnresolvedAction(action);
22825
+ // Although it would be more elegant to just return hookResult here
22826
+ // and put the .then() handler just above the .catch() handler below,
22827
+ // doing so would subtly change the defacto async event dispatch order
22828
+ // which at least one test and some plugins in the wild may depend on.
22829
+ const promise = Promise.resolve(hookResult);
22830
+ return promise.then(() => {
22831
+ // action was fulfilled
22832
+ resolveAction(action);
22833
+ return promise;
22834
+ });
22682
22835
  })
22683
- .catch(err => throwPluginError(err, plugin.name, { hook: hookName }));
22836
+ .catch(err => {
22837
+ if (action !== null) {
22838
+ // action considered to be fulfilled since error being handled
22839
+ resolveAction(action);
22840
+ }
22841
+ return throwPluginError(err, plugin.name, { hook: hookName });
22842
+ });
22684
22843
  }
22685
22844
  /**
22686
22845
  * Run a sync plugin hook and return the result.
@@ -23045,7 +23204,7 @@ const getModuleContext = (config, context) => {
23045
23204
  if (configModuleContext) {
23046
23205
  const contextByModuleId = Object.create(null);
23047
23206
  for (const [key, moduleContext] of Object.entries(configModuleContext)) {
23048
- contextByModuleId[path$2.resolve(key)] = moduleContext;
23207
+ contextByModuleId[require$$0.resolve(key)] = moduleContext;
23049
23208
  }
23050
23209
  return id => contextByModuleId[id] || context;
23051
23210
  }
@@ -23251,7 +23410,7 @@ const getPreserveModulesRoot = (config) => {
23251
23410
  if (preserveModulesRoot === null || preserveModulesRoot === undefined) {
23252
23411
  return undefined;
23253
23412
  }
23254
- return path$2.resolve(preserveModulesRoot);
23413
+ return require$$0.resolve(preserveModulesRoot);
23255
23414
  };
23256
23415
  const getAmd = (config) => {
23257
23416
  const mergedOption = {
@@ -23523,7 +23682,7 @@ function getSortingFileType(file) {
23523
23682
  return SortingFileType.SECONDARY_CHUNK;
23524
23683
  }
23525
23684
  function writeOutputFile(outputFile, outputOptions) {
23526
- const fileName = path$2.resolve(outputOptions.dir || path$2.dirname(outputOptions.file), outputFile.fileName);
23685
+ const fileName = require$$0.resolve(outputOptions.dir || require$$0.dirname(outputOptions.file), outputFile.fileName);
23527
23686
  let writeSourceMapPromise;
23528
23687
  let source;
23529
23688
  if (outputFile.type === 'asset') {
@@ -23537,11 +23696,11 @@ function writeOutputFile(outputFile, outputOptions) {
23537
23696
  url = outputFile.map.toUrl();
23538
23697
  }
23539
23698
  else {
23540
- url = `${path$2.basename(outputFile.fileName)}.map`;
23699
+ url = `${require$$0.basename(outputFile.fileName)}.map`;
23541
23700
  writeSourceMapPromise = writeFile(`${fileName}.map`, outputFile.map.toString());
23542
23701
  }
23543
23702
  if (outputOptions.sourcemap !== 'hidden') {
23544
- source += `//# ${SOURCEMAPPING_URL}=${url}\n`;
23703
+ source += `//# ${exports.SOURCEMAPPING_URL}=${url}\n`;
23545
23704
  }
23546
23705
  }
23547
23706
  }
@@ -23556,7 +23715,7 @@ function defineConfig(options) {
23556
23715
  return options;
23557
23716
  }
23558
23717
 
23559
- class WatchEmitter extends require$$0.EventEmitter {
23718
+ class WatchEmitter extends require$$0$1.EventEmitter {
23560
23719
  constructor() {
23561
23720
  super();
23562
23721
  // Allows more than 10 bundles to be watched without
@@ -23584,10 +23743,13 @@ exports.defaultOnWarn = defaultOnWarn;
23584
23743
  exports.defineConfig = defineConfig;
23585
23744
  exports.ensureArray = ensureArray$1;
23586
23745
  exports.error = error;
23746
+ exports.fseventsImporter = fseventsImporter;
23587
23747
  exports.generatedCodePresets = generatedCodePresets;
23588
23748
  exports.getAliasName = getAliasName;
23749
+ exports.getAugmentedNamespace = getAugmentedNamespace;
23589
23750
  exports.getOrCreate = getOrCreate;
23590
23751
  exports.loadFsEvents = loadFsEvents;
23752
+ exports.objectifyOption = objectifyOption;
23591
23753
  exports.objectifyOptionWithPresets = objectifyOptionWithPresets;
23592
23754
  exports.picomatch = picomatch;
23593
23755
  exports.printQuotedStringList = printQuotedStringList;