rollup 2.70.1 → 2.71.1

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.70.1
4
- Mon, 14 Mar 2022 05:50:08 GMT - commit b8315e03f9790d610a413316fbf6d565f9340cab
3
+ Rollup.js v2.71.1
4
+ Sat, 30 Apr 2022 13:35:44 GMT - commit f44a3a38b357c2ba80a99aca36cfd30dcfb84476
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
@@ -14,7 +14,7 @@ import { createHash as createHash$1 } from 'crypto';
14
14
  import { promises } from 'fs';
15
15
  import { EventEmitter } from 'events';
16
16
 
17
- var version$1 = "2.70.1";
17
+ var version$1 = "2.71.1";
18
18
 
19
19
  var charToInteger = {};
20
20
  var chars$1 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';
@@ -138,204 +138,208 @@ function encodeInteger(num) {
138
138
  return result;
139
139
  }
140
140
 
141
- var BitSet = function BitSet(arg) {
142
- this.bits = arg instanceof BitSet ? arg.bits.slice() : [];
143
- };
144
-
145
- BitSet.prototype.add = function add (n) {
146
- this.bits[n >> 5] |= 1 << (n & 31);
147
- };
141
+ class BitSet {
142
+ constructor(arg) {
143
+ this.bits = arg instanceof BitSet ? arg.bits.slice() : [];
144
+ }
148
145
 
149
- BitSet.prototype.has = function has (n) {
150
- return !!(this.bits[n >> 5] & (1 << (n & 31)));
151
- };
146
+ add(n) {
147
+ this.bits[n >> 5] |= 1 << (n & 31);
148
+ }
152
149
 
153
- var Chunk$1 = function Chunk(start, end, content) {
154
- this.start = start;
155
- this.end = end;
156
- this.original = content;
150
+ has(n) {
151
+ return !!(this.bits[n >> 5] & (1 << (n & 31)));
152
+ }
153
+ }
157
154
 
158
- this.intro = '';
159
- this.outro = '';
155
+ class Chunk$1 {
156
+ constructor(start, end, content) {
157
+ this.start = start;
158
+ this.end = end;
159
+ this.original = content;
160
160
 
161
- this.content = content;
162
- this.storeName = false;
163
- this.edited = false;
161
+ this.intro = '';
162
+ this.outro = '';
164
163
 
165
- // we make these non-enumerable, for sanity while debugging
166
- Object.defineProperties(this, {
167
- previous: { writable: true, value: null },
168
- next: { writable: true, value: null }
169
- });
170
- };
164
+ this.content = content;
165
+ this.storeName = false;
166
+ this.edited = false;
171
167
 
172
- Chunk$1.prototype.appendLeft = function appendLeft (content) {
173
- this.outro += content;
174
- };
168
+ // we make these non-enumerable, for sanity while debugging
169
+ Object.defineProperties(this, {
170
+ previous: { writable: true, value: null },
171
+ next: { writable: true, value: null },
172
+ });
173
+ }
175
174
 
176
- Chunk$1.prototype.appendRight = function appendRight (content) {
177
- this.intro = this.intro + content;
178
- };
175
+ appendLeft(content) {
176
+ this.outro += content;
177
+ }
179
178
 
180
- Chunk$1.prototype.clone = function clone () {
181
- var chunk = new Chunk$1(this.start, this.end, this.original);
179
+ appendRight(content) {
180
+ this.intro = this.intro + content;
181
+ }
182
182
 
183
- chunk.intro = this.intro;
184
- chunk.outro = this.outro;
185
- chunk.content = this.content;
186
- chunk.storeName = this.storeName;
187
- chunk.edited = this.edited;
183
+ clone() {
184
+ const chunk = new Chunk$1(this.start, this.end, this.original);
188
185
 
189
- return chunk;
190
- };
186
+ chunk.intro = this.intro;
187
+ chunk.outro = this.outro;
188
+ chunk.content = this.content;
189
+ chunk.storeName = this.storeName;
190
+ chunk.edited = this.edited;
191
191
 
192
- Chunk$1.prototype.contains = function contains (index) {
193
- return this.start < index && index < this.end;
194
- };
192
+ return chunk;
193
+ }
195
194
 
196
- Chunk$1.prototype.eachNext = function eachNext (fn) {
197
- var chunk = this;
198
- while (chunk) {
199
- fn(chunk);
200
- chunk = chunk.next;
195
+ contains(index) {
196
+ return this.start < index && index < this.end;
201
197
  }
202
- };
203
198
 
204
- Chunk$1.prototype.eachPrevious = function eachPrevious (fn) {
205
- var chunk = this;
206
- while (chunk) {
207
- fn(chunk);
208
- chunk = chunk.previous;
199
+ eachNext(fn) {
200
+ let chunk = this;
201
+ while (chunk) {
202
+ fn(chunk);
203
+ chunk = chunk.next;
204
+ }
209
205
  }
210
- };
211
206
 
212
- Chunk$1.prototype.edit = function edit (content, storeName, contentOnly) {
213
- this.content = content;
214
- if (!contentOnly) {
215
- this.intro = '';
216
- this.outro = '';
207
+ eachPrevious(fn) {
208
+ let chunk = this;
209
+ while (chunk) {
210
+ fn(chunk);
211
+ chunk = chunk.previous;
212
+ }
217
213
  }
218
- this.storeName = storeName;
219
214
 
220
- this.edited = true;
215
+ edit(content, storeName, contentOnly) {
216
+ this.content = content;
217
+ if (!contentOnly) {
218
+ this.intro = '';
219
+ this.outro = '';
220
+ }
221
+ this.storeName = storeName;
221
222
 
222
- return this;
223
- };
223
+ this.edited = true;
224
224
 
225
- Chunk$1.prototype.prependLeft = function prependLeft (content) {
226
- this.outro = content + this.outro;
227
- };
225
+ return this;
226
+ }
228
227
 
229
- Chunk$1.prototype.prependRight = function prependRight (content) {
230
- this.intro = content + this.intro;
231
- };
228
+ prependLeft(content) {
229
+ this.outro = content + this.outro;
230
+ }
232
231
 
233
- Chunk$1.prototype.split = function split (index) {
234
- var sliceIndex = index - this.start;
232
+ prependRight(content) {
233
+ this.intro = content + this.intro;
234
+ }
235
235
 
236
- var originalBefore = this.original.slice(0, sliceIndex);
237
- var originalAfter = this.original.slice(sliceIndex);
236
+ split(index) {
237
+ const sliceIndex = index - this.start;
238
238
 
239
- this.original = originalBefore;
239
+ const originalBefore = this.original.slice(0, sliceIndex);
240
+ const originalAfter = this.original.slice(sliceIndex);
240
241
 
241
- var newChunk = new Chunk$1(index, this.end, originalAfter);
242
- newChunk.outro = this.outro;
243
- this.outro = '';
242
+ this.original = originalBefore;
244
243
 
245
- this.end = index;
244
+ const newChunk = new Chunk$1(index, this.end, originalAfter);
245
+ newChunk.outro = this.outro;
246
+ this.outro = '';
246
247
 
247
- if (this.edited) {
248
- // TODO is this block necessary?...
249
- newChunk.edit('', false);
250
- this.content = '';
251
- } else {
252
- this.content = originalBefore;
253
- }
248
+ this.end = index;
254
249
 
255
- newChunk.next = this.next;
256
- if (newChunk.next) { newChunk.next.previous = newChunk; }
257
- newChunk.previous = this;
258
- this.next = newChunk;
250
+ if (this.edited) {
251
+ // TODO is this block necessary?...
252
+ newChunk.edit('', false);
253
+ this.content = '';
254
+ } else {
255
+ this.content = originalBefore;
256
+ }
259
257
 
260
- return newChunk;
261
- };
258
+ newChunk.next = this.next;
259
+ if (newChunk.next) newChunk.next.previous = newChunk;
260
+ newChunk.previous = this;
261
+ this.next = newChunk;
262
262
 
263
- Chunk$1.prototype.toString = function toString () {
264
- return this.intro + this.content + this.outro;
265
- };
263
+ return newChunk;
264
+ }
266
265
 
267
- Chunk$1.prototype.trimEnd = function trimEnd (rx) {
268
- this.outro = this.outro.replace(rx, '');
269
- if (this.outro.length) { return true; }
266
+ toString() {
267
+ return this.intro + this.content + this.outro;
268
+ }
270
269
 
271
- var trimmed = this.content.replace(rx, '');
270
+ trimEnd(rx) {
271
+ this.outro = this.outro.replace(rx, '');
272
+ if (this.outro.length) return true;
272
273
 
273
- if (trimmed.length) {
274
- if (trimmed !== this.content) {
275
- this.split(this.start + trimmed.length).edit('', undefined, true);
276
- }
277
- return true;
274
+ const trimmed = this.content.replace(rx, '');
278
275
 
279
- } else {
280
- this.edit('', undefined, true);
276
+ if (trimmed.length) {
277
+ if (trimmed !== this.content) {
278
+ this.split(this.start + trimmed.length).edit('', undefined, true);
279
+ }
280
+ return true;
281
+ } else {
282
+ this.edit('', undefined, true);
281
283
 
282
- this.intro = this.intro.replace(rx, '');
283
- if (this.intro.length) { return true; }
284
+ this.intro = this.intro.replace(rx, '');
285
+ if (this.intro.length) return true;
286
+ }
284
287
  }
285
- };
286
288
 
287
- Chunk$1.prototype.trimStart = function trimStart (rx) {
288
- this.intro = this.intro.replace(rx, '');
289
- if (this.intro.length) { return true; }
289
+ trimStart(rx) {
290
+ this.intro = this.intro.replace(rx, '');
291
+ if (this.intro.length) return true;
290
292
 
291
- var trimmed = this.content.replace(rx, '');
293
+ const trimmed = this.content.replace(rx, '');
292
294
 
293
- if (trimmed.length) {
294
- if (trimmed !== this.content) {
295
- this.split(this.end - trimmed.length);
295
+ if (trimmed.length) {
296
+ if (trimmed !== this.content) {
297
+ this.split(this.end - trimmed.length);
298
+ this.edit('', undefined, true);
299
+ }
300
+ return true;
301
+ } else {
296
302
  this.edit('', undefined, true);
297
- }
298
- return true;
299
-
300
- } else {
301
- this.edit('', undefined, true);
302
303
 
303
- this.outro = this.outro.replace(rx, '');
304
- if (this.outro.length) { return true; }
304
+ this.outro = this.outro.replace(rx, '');
305
+ if (this.outro.length) return true;
306
+ }
305
307
  }
306
- };
308
+ }
307
309
 
308
- var btoa = function () {
310
+ let btoa = () => {
309
311
  throw new Error('Unsupported environment: `window.btoa` or `Buffer` should be supported.');
310
312
  };
311
313
  if (typeof window !== 'undefined' && typeof window.btoa === 'function') {
312
- btoa = function (str) { return window.btoa(unescape(encodeURIComponent(str))); };
314
+ btoa = (str) => window.btoa(unescape(encodeURIComponent(str)));
313
315
  } else if (typeof Buffer === 'function') {
314
- btoa = function (str) { return Buffer.from(str, 'utf-8').toString('base64'); };
316
+ btoa = (str) => Buffer.from(str, 'utf-8').toString('base64');
315
317
  }
316
318
 
317
- var SourceMap = function SourceMap(properties) {
318
- this.version = 3;
319
- this.file = properties.file;
320
- this.sources = properties.sources;
321
- this.sourcesContent = properties.sourcesContent;
322
- this.names = properties.names;
323
- this.mappings = encode(properties.mappings);
324
- };
319
+ class SourceMap {
320
+ constructor(properties) {
321
+ this.version = 3;
322
+ this.file = properties.file;
323
+ this.sources = properties.sources;
324
+ this.sourcesContent = properties.sourcesContent;
325
+ this.names = properties.names;
326
+ this.mappings = encode(properties.mappings);
327
+ }
325
328
 
326
- SourceMap.prototype.toString = function toString () {
327
- return JSON.stringify(this);
328
- };
329
+ toString() {
330
+ return JSON.stringify(this);
331
+ }
329
332
 
330
- SourceMap.prototype.toUrl = function toUrl () {
331
- return 'data:application/json;charset=utf-8;base64,' + btoa(this.toString());
332
- };
333
+ toUrl() {
334
+ return 'data:application/json;charset=utf-8;base64,' + btoa(this.toString());
335
+ }
336
+ }
333
337
 
334
338
  function guessIndent(code) {
335
- var lines = code.split('\n');
339
+ const lines = code.split('\n');
336
340
 
337
- var tabbed = lines.filter(function (line) { return /^\t+/.test(line); });
338
- var spaced = lines.filter(function (line) { return /^ {2,}/.test(line); });
341
+ const tabbed = lines.filter((line) => /^\t+/.test(line));
342
+ const spaced = lines.filter((line) => /^ {2,}/.test(line));
339
343
 
340
344
  if (tabbed.length === 0 && spaced.length === 0) {
341
345
  return null;
@@ -349,8 +353,8 @@ function guessIndent(code) {
349
353
  }
350
354
 
351
355
  // Otherwise, we need to guess the multiple
352
- var min = spaced.reduce(function (previous, current) {
353
- var numSpaces = /^ +/.exec(current)[0].length;
356
+ const min = spaced.reduce((previous, current) => {
357
+ const numSpaces = /^ +/.exec(current)[0].length;
354
358
  return Math.min(numSpaces, previous);
355
359
  }, Infinity);
356
360
 
@@ -358,8 +362,8 @@ function guessIndent(code) {
358
362
  }
359
363
 
360
364
  function getRelativePath(from, to) {
361
- var fromParts = from.split(/[/\\]/);
362
- var toParts = to.split(/[/\\]/);
365
+ const fromParts = from.split(/[/\\]/);
366
+ const toParts = to.split(/[/\\]/);
363
367
 
364
368
  fromParts.pop(); // get dirname
365
369
 
@@ -369,1079 +373,1120 @@ function getRelativePath(from, to) {
369
373
  }
370
374
 
371
375
  if (fromParts.length) {
372
- var i = fromParts.length;
373
- while (i--) { fromParts[i] = '..'; }
376
+ let i = fromParts.length;
377
+ while (i--) fromParts[i] = '..';
374
378
  }
375
379
 
376
380
  return fromParts.concat(toParts).join('/');
377
381
  }
378
382
 
379
- var toString$1 = Object.prototype.toString;
383
+ const toString$1 = Object.prototype.toString;
380
384
 
381
385
  function isObject$1(thing) {
382
386
  return toString$1.call(thing) === '[object Object]';
383
387
  }
384
388
 
385
389
  function getLocator$1(source) {
386
- var originalLines = source.split('\n');
387
- var lineOffsets = [];
390
+ const originalLines = source.split('\n');
391
+ const lineOffsets = [];
388
392
 
389
- for (var i = 0, pos = 0; i < originalLines.length; i++) {
393
+ for (let i = 0, pos = 0; i < originalLines.length; i++) {
390
394
  lineOffsets.push(pos);
391
395
  pos += originalLines[i].length + 1;
392
396
  }
393
397
 
394
398
  return function locate(index) {
395
- var i = 0;
396
- var j = lineOffsets.length;
399
+ let i = 0;
400
+ let j = lineOffsets.length;
397
401
  while (i < j) {
398
- var m = (i + j) >> 1;
402
+ const m = (i + j) >> 1;
399
403
  if (index < lineOffsets[m]) {
400
404
  j = m;
401
405
  } else {
402
406
  i = m + 1;
403
407
  }
404
408
  }
405
- var line = i - 1;
406
- var column = index - lineOffsets[line];
407
- return { line: line, column: column };
409
+ const line = i - 1;
410
+ const column = index - lineOffsets[line];
411
+ return { line, column };
408
412
  };
409
413
  }
410
414
 
411
- var Mappings = function Mappings(hires) {
412
- this.hires = hires;
413
- this.generatedCodeLine = 0;
414
- this.generatedCodeColumn = 0;
415
- this.raw = [];
416
- this.rawSegments = this.raw[this.generatedCodeLine] = [];
417
- this.pending = null;
418
- };
415
+ class Mappings {
416
+ constructor(hires) {
417
+ this.hires = hires;
418
+ this.generatedCodeLine = 0;
419
+ this.generatedCodeColumn = 0;
420
+ this.raw = [];
421
+ this.rawSegments = this.raw[this.generatedCodeLine] = [];
422
+ this.pending = null;
423
+ }
419
424
 
420
- Mappings.prototype.addEdit = function addEdit (sourceIndex, content, loc, nameIndex) {
421
- if (content.length) {
422
- var segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];
423
- if (nameIndex >= 0) {
424
- segment.push(nameIndex);
425
+ addEdit(sourceIndex, content, loc, nameIndex) {
426
+ if (content.length) {
427
+ const segment = [this.generatedCodeColumn, sourceIndex, loc.line, loc.column];
428
+ if (nameIndex >= 0) {
429
+ segment.push(nameIndex);
430
+ }
431
+ this.rawSegments.push(segment);
432
+ } else if (this.pending) {
433
+ this.rawSegments.push(this.pending);
425
434
  }
426
- this.rawSegments.push(segment);
427
- } else if (this.pending) {
428
- this.rawSegments.push(this.pending);
435
+
436
+ this.advance(content);
437
+ this.pending = null;
429
438
  }
430
439
 
431
- this.advance(content);
432
- this.pending = null;
433
- };
440
+ addUneditedChunk(sourceIndex, chunk, original, loc, sourcemapLocations) {
441
+ let originalCharIndex = chunk.start;
442
+ let first = true;
434
443
 
435
- Mappings.prototype.addUneditedChunk = function addUneditedChunk (sourceIndex, chunk, original, loc, sourcemapLocations) {
436
- var originalCharIndex = chunk.start;
437
- var first = true;
444
+ while (originalCharIndex < chunk.end) {
445
+ if (this.hires || first || sourcemapLocations.has(originalCharIndex)) {
446
+ this.rawSegments.push([this.generatedCodeColumn, sourceIndex, loc.line, loc.column]);
447
+ }
438
448
 
439
- while (originalCharIndex < chunk.end) {
440
- if (this.hires || first || sourcemapLocations.has(originalCharIndex)) {
441
- this.rawSegments.push([this.generatedCodeColumn, sourceIndex, loc.line, loc.column]);
442
- }
449
+ if (original[originalCharIndex] === '\n') {
450
+ loc.line += 1;
451
+ loc.column = 0;
452
+ this.generatedCodeLine += 1;
453
+ this.raw[this.generatedCodeLine] = this.rawSegments = [];
454
+ this.generatedCodeColumn = 0;
455
+ first = true;
456
+ } else {
457
+ loc.column += 1;
458
+ this.generatedCodeColumn += 1;
459
+ first = false;
460
+ }
443
461
 
444
- if (original[originalCharIndex] === '\n') {
445
- loc.line += 1;
446
- loc.column = 0;
447
- this.generatedCodeLine += 1;
448
- this.raw[this.generatedCodeLine] = this.rawSegments = [];
449
- this.generatedCodeColumn = 0;
450
- first = true;
451
- } else {
452
- loc.column += 1;
453
- this.generatedCodeColumn += 1;
454
- first = false;
462
+ originalCharIndex += 1;
455
463
  }
456
464
 
457
- originalCharIndex += 1;
465
+ this.pending = null;
458
466
  }
459
467
 
460
- this.pending = null;
461
- };
462
-
463
- Mappings.prototype.advance = function advance (str) {
464
- if (!str) { return; }
468
+ advance(str) {
469
+ if (!str) return;
465
470
 
466
- var lines = str.split('\n');
471
+ const lines = str.split('\n');
467
472
 
468
- if (lines.length > 1) {
469
- for (var i = 0; i < lines.length - 1; i++) {
470
- this.generatedCodeLine++;
471
- this.raw[this.generatedCodeLine] = this.rawSegments = [];
473
+ if (lines.length > 1) {
474
+ for (let i = 0; i < lines.length - 1; i++) {
475
+ this.generatedCodeLine++;
476
+ this.raw[this.generatedCodeLine] = this.rawSegments = [];
477
+ }
478
+ this.generatedCodeColumn = 0;
472
479
  }
473
- this.generatedCodeColumn = 0;
474
- }
475
480
 
476
- this.generatedCodeColumn += lines[lines.length - 1].length;
477
- };
481
+ this.generatedCodeColumn += lines[lines.length - 1].length;
482
+ }
483
+ }
478
484
 
479
- var n = '\n';
485
+ const n = '\n';
480
486
 
481
- var warned = {
487
+ const warned = {
482
488
  insertLeft: false,
483
489
  insertRight: false,
484
- storeName: false
485
- };
486
-
487
- var MagicString = function MagicString(string, options) {
488
- if ( options === void 0 ) options = {};
489
-
490
- var chunk = new Chunk$1(0, string.length, string);
491
-
492
- Object.defineProperties(this, {
493
- original: { writable: true, value: string },
494
- outro: { writable: true, value: '' },
495
- intro: { writable: true, value: '' },
496
- firstChunk: { writable: true, value: chunk },
497
- lastChunk: { writable: true, value: chunk },
498
- lastSearchedChunk: { writable: true, value: chunk },
499
- byStart: { writable: true, value: {} },
500
- byEnd: { writable: true, value: {} },
501
- filename: { writable: true, value: options.filename },
502
- indentExclusionRanges: { writable: true, value: options.indentExclusionRanges },
503
- sourcemapLocations: { writable: true, value: new BitSet() },
504
- storedNames: { writable: true, value: {} },
505
- indentStr: { writable: true, value: guessIndent(string) }
506
- });
507
-
508
- this.byStart[0] = chunk;
509
- this.byEnd[string.length] = chunk;
510
- };
511
-
512
- MagicString.prototype.addSourcemapLocation = function addSourcemapLocation (char) {
513
- this.sourcemapLocations.add(char);
514
- };
515
-
516
- MagicString.prototype.append = function append (content) {
517
- if (typeof content !== 'string') { throw new TypeError('outro content must be a string'); }
518
-
519
- this.outro += content;
520
- return this;
521
- };
490
+ storeName: false,
491
+ };
492
+
493
+ class MagicString {
494
+ constructor(string, options = {}) {
495
+ const chunk = new Chunk$1(0, string.length, string);
496
+
497
+ Object.defineProperties(this, {
498
+ original: { writable: true, value: string },
499
+ outro: { writable: true, value: '' },
500
+ intro: { writable: true, value: '' },
501
+ firstChunk: { writable: true, value: chunk },
502
+ lastChunk: { writable: true, value: chunk },
503
+ lastSearchedChunk: { writable: true, value: chunk },
504
+ byStart: { writable: true, value: {} },
505
+ byEnd: { writable: true, value: {} },
506
+ filename: { writable: true, value: options.filename },
507
+ indentExclusionRanges: { writable: true, value: options.indentExclusionRanges },
508
+ sourcemapLocations: { writable: true, value: new BitSet() },
509
+ storedNames: { writable: true, value: {} },
510
+ indentStr: { writable: true, value: guessIndent(string) },
511
+ });
522
512
 
523
- MagicString.prototype.appendLeft = function appendLeft (index, content) {
524
- if (typeof content !== 'string') { throw new TypeError('inserted content must be a string'); }
513
+ this.byStart[0] = chunk;
514
+ this.byEnd[string.length] = chunk;
515
+ }
525
516
 
526
- this._split(index);
517
+ addSourcemapLocation(char) {
518
+ this.sourcemapLocations.add(char);
519
+ }
527
520
 
528
- var chunk = this.byEnd[index];
521
+ append(content) {
522
+ if (typeof content !== 'string') throw new TypeError('outro content must be a string');
529
523
 
530
- if (chunk) {
531
- chunk.appendLeft(content);
532
- } else {
533
- this.intro += content;
524
+ this.outro += content;
525
+ return this;
534
526
  }
535
- return this;
536
- };
537
527
 
538
- MagicString.prototype.appendRight = function appendRight (index, content) {
539
- if (typeof content !== 'string') { throw new TypeError('inserted content must be a string'); }
528
+ appendLeft(index, content) {
529
+ if (typeof content !== 'string') throw new TypeError('inserted content must be a string');
540
530
 
541
- this._split(index);
531
+ this._split(index);
542
532
 
543
- var chunk = this.byStart[index];
533
+ const chunk = this.byEnd[index];
544
534
 
545
- if (chunk) {
546
- chunk.appendRight(content);
547
- } else {
548
- this.outro += content;
535
+ if (chunk) {
536
+ chunk.appendLeft(content);
537
+ } else {
538
+ this.intro += content;
539
+ }
540
+ return this;
549
541
  }
550
- return this;
551
- };
552
-
553
- MagicString.prototype.clone = function clone () {
554
- var cloned = new MagicString(this.original, { filename: this.filename });
555
542
 
556
- var originalChunk = this.firstChunk;
557
- var clonedChunk = (cloned.firstChunk = cloned.lastSearchedChunk = originalChunk.clone());
543
+ appendRight(index, content) {
544
+ if (typeof content !== 'string') throw new TypeError('inserted content must be a string');
558
545
 
559
- while (originalChunk) {
560
- cloned.byStart[clonedChunk.start] = clonedChunk;
561
- cloned.byEnd[clonedChunk.end] = clonedChunk;
546
+ this._split(index);
562
547
 
563
- var nextOriginalChunk = originalChunk.next;
564
- var nextClonedChunk = nextOriginalChunk && nextOriginalChunk.clone();
548
+ const chunk = this.byStart[index];
565
549
 
566
- if (nextClonedChunk) {
567
- clonedChunk.next = nextClonedChunk;
568
- nextClonedChunk.previous = clonedChunk;
569
-
570
- clonedChunk = nextClonedChunk;
550
+ if (chunk) {
551
+ chunk.appendRight(content);
552
+ } else {
553
+ this.outro += content;
571
554
  }
572
-
573
- originalChunk = nextOriginalChunk;
555
+ return this;
574
556
  }
575
557
 
576
- cloned.lastChunk = clonedChunk;
558
+ clone() {
559
+ const cloned = new MagicString(this.original, { filename: this.filename });
577
560
 
578
- if (this.indentExclusionRanges) {
579
- cloned.indentExclusionRanges = this.indentExclusionRanges.slice();
580
- }
561
+ let originalChunk = this.firstChunk;
562
+ let clonedChunk = (cloned.firstChunk = cloned.lastSearchedChunk = originalChunk.clone());
581
563
 
582
- cloned.sourcemapLocations = new BitSet(this.sourcemapLocations);
564
+ while (originalChunk) {
565
+ cloned.byStart[clonedChunk.start] = clonedChunk;
566
+ cloned.byEnd[clonedChunk.end] = clonedChunk;
583
567
 
584
- cloned.intro = this.intro;
585
- cloned.outro = this.outro;
568
+ const nextOriginalChunk = originalChunk.next;
569
+ const nextClonedChunk = nextOriginalChunk && nextOriginalChunk.clone();
586
570
 
587
- return cloned;
588
- };
571
+ if (nextClonedChunk) {
572
+ clonedChunk.next = nextClonedChunk;
573
+ nextClonedChunk.previous = clonedChunk;
589
574
 
590
- MagicString.prototype.generateDecodedMap = function generateDecodedMap (options) {
591
- var this$1$1 = this;
575
+ clonedChunk = nextClonedChunk;
576
+ }
577
+
578
+ originalChunk = nextOriginalChunk;
579
+ }
592
580
 
593
- options = options || {};
581
+ cloned.lastChunk = clonedChunk;
594
582
 
595
- var sourceIndex = 0;
596
- var names = Object.keys(this.storedNames);
597
- var mappings = new Mappings(options.hires);
583
+ if (this.indentExclusionRanges) {
584
+ cloned.indentExclusionRanges = this.indentExclusionRanges.slice();
585
+ }
598
586
 
599
- var locate = getLocator$1(this.original);
587
+ cloned.sourcemapLocations = new BitSet(this.sourcemapLocations);
600
588
 
601
- if (this.intro) {
602
- mappings.advance(this.intro);
589
+ cloned.intro = this.intro;
590
+ cloned.outro = this.outro;
591
+
592
+ return cloned;
603
593
  }
604
594
 
605
- this.firstChunk.eachNext(function (chunk) {
606
- var loc = locate(chunk.start);
595
+ generateDecodedMap(options) {
596
+ options = options || {};
607
597
 
608
- if (chunk.intro.length) { mappings.advance(chunk.intro); }
598
+ const sourceIndex = 0;
599
+ const names = Object.keys(this.storedNames);
600
+ const mappings = new Mappings(options.hires);
609
601
 
610
- if (chunk.edited) {
611
- mappings.addEdit(
612
- sourceIndex,
613
- chunk.content,
614
- loc,
615
- chunk.storeName ? names.indexOf(chunk.original) : -1
616
- );
617
- } else {
618
- mappings.addUneditedChunk(sourceIndex, chunk, this$1$1.original, loc, this$1$1.sourcemapLocations);
602
+ const locate = getLocator$1(this.original);
603
+
604
+ if (this.intro) {
605
+ mappings.advance(this.intro);
619
606
  }
620
607
 
621
- if (chunk.outro.length) { mappings.advance(chunk.outro); }
622
- });
608
+ this.firstChunk.eachNext((chunk) => {
609
+ const loc = locate(chunk.start);
623
610
 
624
- return {
625
- file: options.file ? options.file.split(/[/\\]/).pop() : null,
626
- sources: [options.source ? getRelativePath(options.file || '', options.source) : null],
627
- sourcesContent: options.includeContent ? [this.original] : [null],
628
- names: names,
629
- mappings: mappings.raw
630
- };
631
- };
611
+ if (chunk.intro.length) mappings.advance(chunk.intro);
632
612
 
633
- MagicString.prototype.generateMap = function generateMap (options) {
634
- return new SourceMap(this.generateDecodedMap(options));
635
- };
613
+ if (chunk.edited) {
614
+ mappings.addEdit(
615
+ sourceIndex,
616
+ chunk.content,
617
+ loc,
618
+ chunk.storeName ? names.indexOf(chunk.original) : -1
619
+ );
620
+ } else {
621
+ mappings.addUneditedChunk(sourceIndex, chunk, this.original, loc, this.sourcemapLocations);
622
+ }
636
623
 
637
- MagicString.prototype.getIndentString = function getIndentString () {
638
- return this.indentStr === null ? '\t' : this.indentStr;
639
- };
624
+ if (chunk.outro.length) mappings.advance(chunk.outro);
625
+ });
640
626
 
641
- MagicString.prototype.indent = function indent (indentStr, options) {
642
- var pattern = /^[^\r\n]/gm;
627
+ return {
628
+ file: options.file ? options.file.split(/[/\\]/).pop() : null,
629
+ sources: [options.source ? getRelativePath(options.file || '', options.source) : null],
630
+ sourcesContent: options.includeContent ? [this.original] : [null],
631
+ names,
632
+ mappings: mappings.raw,
633
+ };
634
+ }
643
635
 
644
- if (isObject$1(indentStr)) {
645
- options = indentStr;
646
- indentStr = undefined;
636
+ generateMap(options) {
637
+ return new SourceMap(this.generateDecodedMap(options));
647
638
  }
648
639
 
649
- indentStr = indentStr !== undefined ? indentStr : this.indentStr || '\t';
640
+ getIndentString() {
641
+ return this.indentStr === null ? '\t' : this.indentStr;
642
+ }
650
643
 
651
- if (indentStr === '') { return this; } // noop
644
+ indent(indentStr, options) {
645
+ const pattern = /^[^\r\n]/gm;
652
646
 
653
- options = options || {};
647
+ if (isObject$1(indentStr)) {
648
+ options = indentStr;
649
+ indentStr = undefined;
650
+ }
654
651
 
655
- // Process exclusion ranges
656
- var isExcluded = {};
652
+ indentStr = indentStr !== undefined ? indentStr : this.indentStr || '\t';
657
653
 
658
- if (options.exclude) {
659
- var exclusions =
660
- typeof options.exclude[0] === 'number' ? [options.exclude] : options.exclude;
661
- exclusions.forEach(function (exclusion) {
662
- for (var i = exclusion[0]; i < exclusion[1]; i += 1) {
663
- isExcluded[i] = true;
664
- }
665
- });
666
- }
654
+ if (indentStr === '') return this; // noop
667
655
 
668
- var shouldIndentNextCharacter = options.indentStart !== false;
669
- var replacer = function (match) {
670
- if (shouldIndentNextCharacter) { return ("" + indentStr + match); }
671
- shouldIndentNextCharacter = true;
672
- return match;
673
- };
656
+ options = options || {};
674
657
 
675
- this.intro = this.intro.replace(pattern, replacer);
658
+ // Process exclusion ranges
659
+ const isExcluded = {};
676
660
 
677
- var charIndex = 0;
678
- var chunk = this.firstChunk;
661
+ if (options.exclude) {
662
+ const exclusions =
663
+ typeof options.exclude[0] === 'number' ? [options.exclude] : options.exclude;
664
+ exclusions.forEach((exclusion) => {
665
+ for (let i = exclusion[0]; i < exclusion[1]; i += 1) {
666
+ isExcluded[i] = true;
667
+ }
668
+ });
669
+ }
679
670
 
680
- while (chunk) {
681
- var end = chunk.end;
671
+ let shouldIndentNextCharacter = options.indentStart !== false;
672
+ const replacer = (match) => {
673
+ if (shouldIndentNextCharacter) return `${indentStr}${match}`;
674
+ shouldIndentNextCharacter = true;
675
+ return match;
676
+ };
682
677
 
683
- if (chunk.edited) {
684
- if (!isExcluded[charIndex]) {
685
- chunk.content = chunk.content.replace(pattern, replacer);
678
+ this.intro = this.intro.replace(pattern, replacer);
686
679
 
687
- if (chunk.content.length) {
688
- shouldIndentNextCharacter = chunk.content[chunk.content.length - 1] === '\n';
689
- }
690
- }
691
- } else {
692
- charIndex = chunk.start;
680
+ let charIndex = 0;
681
+ let chunk = this.firstChunk;
682
+
683
+ while (chunk) {
684
+ const end = chunk.end;
693
685
 
694
- while (charIndex < end) {
686
+ if (chunk.edited) {
695
687
  if (!isExcluded[charIndex]) {
696
- var char = this.original[charIndex];
697
-
698
- if (char === '\n') {
699
- shouldIndentNextCharacter = true;
700
- } else if (char !== '\r' && shouldIndentNextCharacter) {
701
- shouldIndentNextCharacter = false;
702
-
703
- if (charIndex === chunk.start) {
704
- chunk.prependRight(indentStr);
705
- } else {
706
- this._splitChunk(chunk, charIndex);
707
- chunk = chunk.next;
708
- chunk.prependRight(indentStr);
709
- }
688
+ chunk.content = chunk.content.replace(pattern, replacer);
689
+
690
+ if (chunk.content.length) {
691
+ shouldIndentNextCharacter = chunk.content[chunk.content.length - 1] === '\n';
710
692
  }
711
693
  }
694
+ } else {
695
+ charIndex = chunk.start;
696
+
697
+ while (charIndex < end) {
698
+ if (!isExcluded[charIndex]) {
699
+ const char = this.original[charIndex];
700
+
701
+ if (char === '\n') {
702
+ shouldIndentNextCharacter = true;
703
+ } else if (char !== '\r' && shouldIndentNextCharacter) {
704
+ shouldIndentNextCharacter = false;
705
+
706
+ if (charIndex === chunk.start) {
707
+ chunk.prependRight(indentStr);
708
+ } else {
709
+ this._splitChunk(chunk, charIndex);
710
+ chunk = chunk.next;
711
+ chunk.prependRight(indentStr);
712
+ }
713
+ }
714
+ }
712
715
 
713
- charIndex += 1;
716
+ charIndex += 1;
717
+ }
714
718
  }
719
+
720
+ charIndex = chunk.end;
721
+ chunk = chunk.next;
715
722
  }
716
723
 
717
- charIndex = chunk.end;
718
- chunk = chunk.next;
719
- }
724
+ this.outro = this.outro.replace(pattern, replacer);
720
725
 
721
- this.outro = this.outro.replace(pattern, replacer);
726
+ return this;
727
+ }
722
728
 
723
- return this;
724
- };
729
+ insert() {
730
+ throw new Error(
731
+ 'magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)'
732
+ );
733
+ }
725
734
 
726
- MagicString.prototype.insert = function insert () {
727
- throw new Error('magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)');
728
- };
735
+ insertLeft(index, content) {
736
+ if (!warned.insertLeft) {
737
+ console.warn(
738
+ 'magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead'
739
+ ); // eslint-disable-line no-console
740
+ warned.insertLeft = true;
741
+ }
729
742
 
730
- MagicString.prototype.insertLeft = function insertLeft (index, content) {
731
- if (!warned.insertLeft) {
732
- console.warn('magicString.insertLeft(...) is deprecated. Use magicString.appendLeft(...) instead'); // eslint-disable-line no-console
733
- warned.insertLeft = true;
743
+ return this.appendLeft(index, content);
734
744
  }
735
745
 
736
- return this.appendLeft(index, content);
737
- };
746
+ insertRight(index, content) {
747
+ if (!warned.insertRight) {
748
+ console.warn(
749
+ 'magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead'
750
+ ); // eslint-disable-line no-console
751
+ warned.insertRight = true;
752
+ }
738
753
 
739
- MagicString.prototype.insertRight = function insertRight (index, content) {
740
- if (!warned.insertRight) {
741
- console.warn('magicString.insertRight(...) is deprecated. Use magicString.prependRight(...) instead'); // eslint-disable-line no-console
742
- warned.insertRight = true;
754
+ return this.prependRight(index, content);
743
755
  }
744
756
 
745
- return this.prependRight(index, content);
746
- };
757
+ move(start, end, index) {
758
+ if (index >= start && index <= end) throw new Error('Cannot move a selection inside itself');
747
759
 
748
- MagicString.prototype.move = function move (start, end, index) {
749
- if (index >= start && index <= end) { throw new Error('Cannot move a selection inside itself'); }
760
+ this._split(start);
761
+ this._split(end);
762
+ this._split(index);
750
763
 
751
- this._split(start);
752
- this._split(end);
753
- this._split(index);
764
+ const first = this.byStart[start];
765
+ const last = this.byEnd[end];
754
766
 
755
- var first = this.byStart[start];
756
- var last = this.byEnd[end];
767
+ const oldLeft = first.previous;
768
+ const oldRight = last.next;
757
769
 
758
- var oldLeft = first.previous;
759
- var oldRight = last.next;
770
+ const newRight = this.byStart[index];
771
+ if (!newRight && last === this.lastChunk) return this;
772
+ const newLeft = newRight ? newRight.previous : this.lastChunk;
760
773
 
761
- var newRight = this.byStart[index];
762
- if (!newRight && last === this.lastChunk) { return this; }
763
- var newLeft = newRight ? newRight.previous : this.lastChunk;
774
+ if (oldLeft) oldLeft.next = oldRight;
775
+ if (oldRight) oldRight.previous = oldLeft;
764
776
 
765
- if (oldLeft) { oldLeft.next = oldRight; }
766
- if (oldRight) { oldRight.previous = oldLeft; }
777
+ if (newLeft) newLeft.next = first;
778
+ if (newRight) newRight.previous = last;
767
779
 
768
- if (newLeft) { newLeft.next = first; }
769
- if (newRight) { newRight.previous = last; }
780
+ if (!first.previous) this.firstChunk = last.next;
781
+ if (!last.next) {
782
+ this.lastChunk = first.previous;
783
+ this.lastChunk.next = null;
784
+ }
770
785
 
771
- if (!first.previous) { this.firstChunk = last.next; }
772
- if (!last.next) {
773
- this.lastChunk = first.previous;
774
- this.lastChunk.next = null;
775
- }
786
+ first.previous = newLeft;
787
+ last.next = newRight || null;
776
788
 
777
- first.previous = newLeft;
778
- last.next = newRight || null;
789
+ if (!newLeft) this.firstChunk = first;
790
+ if (!newRight) this.lastChunk = last;
791
+ return this;
792
+ }
779
793
 
780
- if (!newLeft) { this.firstChunk = first; }
781
- if (!newRight) { this.lastChunk = last; }
782
- return this;
783
- };
794
+ overwrite(start, end, content, options) {
795
+ if (typeof content !== 'string') throw new TypeError('replacement content must be a string');
784
796
 
785
- MagicString.prototype.overwrite = function overwrite (start, end, content, options) {
786
- if (typeof content !== 'string') { throw new TypeError('replacement content must be a string'); }
797
+ while (start < 0) start += this.original.length;
798
+ while (end < 0) end += this.original.length;
787
799
 
788
- while (start < 0) { start += this.original.length; }
789
- while (end < 0) { end += this.original.length; }
800
+ if (end > this.original.length) throw new Error('end is out of bounds');
801
+ if (start === end)
802
+ throw new Error(
803
+ 'Cannot overwrite a zero-length range – use appendLeft or prependRight instead'
804
+ );
790
805
 
791
- if (end > this.original.length) { throw new Error('end is out of bounds'); }
792
- if (start === end)
793
- { throw new Error('Cannot overwrite a zero-length range – use appendLeft or prependRight instead'); }
806
+ this._split(start);
807
+ this._split(end);
794
808
 
795
- this._split(start);
796
- this._split(end);
809
+ if (options === true) {
810
+ if (!warned.storeName) {
811
+ console.warn(
812
+ 'The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string'
813
+ ); // eslint-disable-line no-console
814
+ warned.storeName = true;
815
+ }
797
816
 
798
- if (options === true) {
799
- if (!warned.storeName) {
800
- console.warn('The final argument to magicString.overwrite(...) should be an options object. See https://github.com/rich-harris/magic-string'); // eslint-disable-line no-console
801
- warned.storeName = true;
817
+ options = { storeName: true };
802
818
  }
803
-
804
- options = { storeName: true };
805
- }
806
- var storeName = options !== undefined ? options.storeName : false;
807
- var contentOnly = options !== undefined ? options.contentOnly : false;
808
-
809
- if (storeName) {
810
- var original = this.original.slice(start, end);
811
- this.storedNames[original] = true;
812
- }
813
-
814
- var first = this.byStart[start];
815
- var last = this.byEnd[end];
816
-
817
- if (first) {
818
- if (end > first.end && first.next !== this.byStart[first.end]) {
819
- throw new Error('Cannot overwrite across a split point');
819
+ const storeName = options !== undefined ? options.storeName : false;
820
+ const contentOnly = options !== undefined ? options.contentOnly : false;
821
+
822
+ if (storeName) {
823
+ const original = this.original.slice(start, end);
824
+ Object.defineProperty(this.storedNames, original, {
825
+ writable: true,
826
+ value: true,
827
+ enumerable: true,
828
+ });
820
829
  }
821
830
 
822
- first.edit(content, storeName, contentOnly);
831
+ const first = this.byStart[start];
832
+ const last = this.byEnd[end];
823
833
 
824
- if (first !== last) {
825
- var chunk = first.next;
834
+ if (first) {
835
+ let chunk = first;
826
836
  while (chunk !== last) {
827
- chunk.edit('', false);
837
+ if (chunk.next !== this.byStart[chunk.end]) {
838
+ throw new Error('Cannot overwrite across a split point');
839
+ }
828
840
  chunk = chunk.next;
841
+ chunk.edit('', false);
829
842
  }
830
843
 
831
- chunk.edit('', false);
832
- }
833
- } else {
834
- // must be inserting at the end
835
- var newChunk = new Chunk$1(start, end, '').edit(content, storeName);
844
+ first.edit(content, storeName, contentOnly);
845
+ } else {
846
+ // must be inserting at the end
847
+ const newChunk = new Chunk$1(start, end, '').edit(content, storeName);
836
848
 
837
- // TODO last chunk in the array may not be the last chunk, if it's moved...
838
- last.next = newChunk;
839
- newChunk.previous = last;
849
+ // TODO last chunk in the array may not be the last chunk, if it's moved...
850
+ last.next = newChunk;
851
+ newChunk.previous = last;
852
+ }
853
+ return this;
840
854
  }
841
- return this;
842
- };
843
855
 
844
- MagicString.prototype.prepend = function prepend (content) {
845
- if (typeof content !== 'string') { throw new TypeError('outro content must be a string'); }
856
+ prepend(content) {
857
+ if (typeof content !== 'string') throw new TypeError('outro content must be a string');
846
858
 
847
- this.intro = content + this.intro;
848
- return this;
849
- };
850
-
851
- MagicString.prototype.prependLeft = function prependLeft (index, content) {
852
- if (typeof content !== 'string') { throw new TypeError('inserted content must be a string'); }
853
-
854
- this._split(index);
855
-
856
- var chunk = this.byEnd[index];
857
-
858
- if (chunk) {
859
- chunk.prependLeft(content);
860
- } else {
861
859
  this.intro = content + this.intro;
860
+ return this;
862
861
  }
863
- return this;
864
- };
865
862
 
866
- MagicString.prototype.prependRight = function prependRight (index, content) {
867
- if (typeof content !== 'string') { throw new TypeError('inserted content must be a string'); }
863
+ prependLeft(index, content) {
864
+ if (typeof content !== 'string') throw new TypeError('inserted content must be a string');
868
865
 
869
- this._split(index);
866
+ this._split(index);
870
867
 
871
- var chunk = this.byStart[index];
868
+ const chunk = this.byEnd[index];
872
869
 
873
- if (chunk) {
874
- chunk.prependRight(content);
875
- } else {
876
- this.outro = content + this.outro;
870
+ if (chunk) {
871
+ chunk.prependLeft(content);
872
+ } else {
873
+ this.intro = content + this.intro;
874
+ }
875
+ return this;
877
876
  }
878
- return this;
879
- };
880
-
881
- MagicString.prototype.remove = function remove (start, end) {
882
- while (start < 0) { start += this.original.length; }
883
- while (end < 0) { end += this.original.length; }
884
877
 
885
- if (start === end) { return this; }
878
+ prependRight(index, content) {
879
+ if (typeof content !== 'string') throw new TypeError('inserted content must be a string');
886
880
 
887
- if (start < 0 || end > this.original.length) { throw new Error('Character is out of bounds'); }
888
- if (start > end) { throw new Error('end must be greater than start'); }
881
+ this._split(index);
889
882
 
890
- this._split(start);
891
- this._split(end);
883
+ const chunk = this.byStart[index];
892
884
 
893
- var chunk = this.byStart[start];
894
-
895
- while (chunk) {
896
- chunk.intro = '';
897
- chunk.outro = '';
898
- chunk.edit('');
899
-
900
- chunk = end > chunk.end ? this.byStart[chunk.end] : null;
901
- }
902
- return this;
903
- };
904
-
905
- MagicString.prototype.lastChar = function lastChar () {
906
- if (this.outro.length)
907
- { return this.outro[this.outro.length - 1]; }
908
- var chunk = this.lastChunk;
909
- do {
910
- if (chunk.outro.length)
911
- { return chunk.outro[chunk.outro.length - 1]; }
912
- if (chunk.content.length)
913
- { return chunk.content[chunk.content.length - 1]; }
914
- if (chunk.intro.length)
915
- { return chunk.intro[chunk.intro.length - 1]; }
916
- } while (chunk = chunk.previous);
917
- if (this.intro.length)
918
- { return this.intro[this.intro.length - 1]; }
919
- return '';
920
- };
921
-
922
- MagicString.prototype.lastLine = function lastLine () {
923
- var lineIndex = this.outro.lastIndexOf(n);
924
- if (lineIndex !== -1)
925
- { return this.outro.substr(lineIndex + 1); }
926
- var lineStr = this.outro;
927
- var chunk = this.lastChunk;
928
- do {
929
- if (chunk.outro.length > 0) {
930
- lineIndex = chunk.outro.lastIndexOf(n);
931
- if (lineIndex !== -1)
932
- { return chunk.outro.substr(lineIndex + 1) + lineStr; }
933
- lineStr = chunk.outro + lineStr;
885
+ if (chunk) {
886
+ chunk.prependRight(content);
887
+ } else {
888
+ this.outro = content + this.outro;
934
889
  }
890
+ return this;
891
+ }
935
892
 
936
- if (chunk.content.length > 0) {
937
- lineIndex = chunk.content.lastIndexOf(n);
938
- if (lineIndex !== -1)
939
- { return chunk.content.substr(lineIndex + 1) + lineStr; }
940
- lineStr = chunk.content + lineStr;
941
- }
893
+ remove(start, end) {
894
+ while (start < 0) start += this.original.length;
895
+ while (end < 0) end += this.original.length;
942
896
 
943
- if (chunk.intro.length > 0) {
944
- lineIndex = chunk.intro.lastIndexOf(n);
945
- if (lineIndex !== -1)
946
- { return chunk.intro.substr(lineIndex + 1) + lineStr; }
947
- lineStr = chunk.intro + lineStr;
948
- }
949
- } while (chunk = chunk.previous);
950
- lineIndex = this.intro.lastIndexOf(n);
951
- if (lineIndex !== -1)
952
- { return this.intro.substr(lineIndex + 1) + lineStr; }
953
- return this.intro + lineStr;
954
- };
897
+ if (start === end) return this;
898
+
899
+ if (start < 0 || end > this.original.length) throw new Error('Character is out of bounds');
900
+ if (start > end) throw new Error('end must be greater than start');
955
901
 
956
- MagicString.prototype.slice = function slice (start, end) {
957
- if ( start === void 0 ) start = 0;
958
- if ( end === void 0 ) end = this.original.length;
902
+ this._split(start);
903
+ this._split(end);
959
904
 
960
- while (start < 0) { start += this.original.length; }
961
- while (end < 0) { end += this.original.length; }
905
+ let chunk = this.byStart[start];
962
906
 
963
- var result = '';
907
+ while (chunk) {
908
+ chunk.intro = '';
909
+ chunk.outro = '';
910
+ chunk.edit('');
964
911
 
965
- // find start chunk
966
- var chunk = this.firstChunk;
967
- while (chunk && (chunk.start > start || chunk.end <= start)) {
968
- // found end chunk before start
969
- if (chunk.start < end && chunk.end >= end) {
970
- return result;
912
+ chunk = end > chunk.end ? this.byStart[chunk.end] : null;
971
913
  }
914
+ return this;
915
+ }
972
916
 
973
- chunk = chunk.next;
917
+ lastChar() {
918
+ if (this.outro.length) return this.outro[this.outro.length - 1];
919
+ let chunk = this.lastChunk;
920
+ do {
921
+ if (chunk.outro.length) return chunk.outro[chunk.outro.length - 1];
922
+ if (chunk.content.length) return chunk.content[chunk.content.length - 1];
923
+ if (chunk.intro.length) return chunk.intro[chunk.intro.length - 1];
924
+ } while ((chunk = chunk.previous));
925
+ if (this.intro.length) return this.intro[this.intro.length - 1];
926
+ return '';
974
927
  }
975
928
 
976
- if (chunk && chunk.edited && chunk.start !== start)
977
- { throw new Error(("Cannot use replaced character " + start + " as slice start anchor.")); }
929
+ lastLine() {
930
+ let lineIndex = this.outro.lastIndexOf(n);
931
+ if (lineIndex !== -1) return this.outro.substr(lineIndex + 1);
932
+ let lineStr = this.outro;
933
+ let chunk = this.lastChunk;
934
+ do {
935
+ if (chunk.outro.length > 0) {
936
+ lineIndex = chunk.outro.lastIndexOf(n);
937
+ if (lineIndex !== -1) return chunk.outro.substr(lineIndex + 1) + lineStr;
938
+ lineStr = chunk.outro + lineStr;
939
+ }
978
940
 
979
- var startChunk = chunk;
980
- while (chunk) {
981
- if (chunk.intro && (startChunk !== chunk || chunk.start === start)) {
982
- result += chunk.intro;
983
- }
941
+ if (chunk.content.length > 0) {
942
+ lineIndex = chunk.content.lastIndexOf(n);
943
+ if (lineIndex !== -1) return chunk.content.substr(lineIndex + 1) + lineStr;
944
+ lineStr = chunk.content + lineStr;
945
+ }
984
946
 
985
- var containsEnd = chunk.start < end && chunk.end >= end;
986
- if (containsEnd && chunk.edited && chunk.end !== end)
987
- { throw new Error(("Cannot use replaced character " + end + " as slice end anchor.")); }
947
+ if (chunk.intro.length > 0) {
948
+ lineIndex = chunk.intro.lastIndexOf(n);
949
+ if (lineIndex !== -1) return chunk.intro.substr(lineIndex + 1) + lineStr;
950
+ lineStr = chunk.intro + lineStr;
951
+ }
952
+ } while ((chunk = chunk.previous));
953
+ lineIndex = this.intro.lastIndexOf(n);
954
+ if (lineIndex !== -1) return this.intro.substr(lineIndex + 1) + lineStr;
955
+ return this.intro + lineStr;
956
+ }
988
957
 
989
- var sliceStart = startChunk === chunk ? start - chunk.start : 0;
990
- var sliceEnd = containsEnd ? chunk.content.length + end - chunk.end : chunk.content.length;
958
+ slice(start = 0, end = this.original.length) {
959
+ while (start < 0) start += this.original.length;
960
+ while (end < 0) end += this.original.length;
991
961
 
992
- result += chunk.content.slice(sliceStart, sliceEnd);
962
+ let result = '';
993
963
 
994
- if (chunk.outro && (!containsEnd || chunk.end === end)) {
995
- result += chunk.outro;
996
- }
964
+ // find start chunk
965
+ let chunk = this.firstChunk;
966
+ while (chunk && (chunk.start > start || chunk.end <= start)) {
967
+ // found end chunk before start
968
+ if (chunk.start < end && chunk.end >= end) {
969
+ return result;
970
+ }
997
971
 
998
- if (containsEnd) {
999
- break;
972
+ chunk = chunk.next;
1000
973
  }
1001
974
 
1002
- chunk = chunk.next;
1003
- }
975
+ if (chunk && chunk.edited && chunk.start !== start)
976
+ throw new Error(`Cannot use replaced character ${start} as slice start anchor.`);
1004
977
 
1005
- return result;
1006
- };
978
+ const startChunk = chunk;
979
+ while (chunk) {
980
+ if (chunk.intro && (startChunk !== chunk || chunk.start === start)) {
981
+ result += chunk.intro;
982
+ }
1007
983
 
1008
- // TODO deprecate this? not really very useful
1009
- MagicString.prototype.snip = function snip (start, end) {
1010
- var clone = this.clone();
1011
- clone.remove(0, start);
1012
- clone.remove(end, clone.original.length);
984
+ const containsEnd = chunk.start < end && chunk.end >= end;
985
+ if (containsEnd && chunk.edited && chunk.end !== end)
986
+ throw new Error(`Cannot use replaced character ${end} as slice end anchor.`);
1013
987
 
1014
- return clone;
1015
- };
988
+ const sliceStart = startChunk === chunk ? start - chunk.start : 0;
989
+ const sliceEnd = containsEnd ? chunk.content.length + end - chunk.end : chunk.content.length;
1016
990
 
1017
- MagicString.prototype._split = function _split (index) {
1018
- if (this.byStart[index] || this.byEnd[index]) { return; }
991
+ result += chunk.content.slice(sliceStart, sliceEnd);
1019
992
 
1020
- var chunk = this.lastSearchedChunk;
1021
- var searchForward = index > chunk.end;
993
+ if (chunk.outro && (!containsEnd || chunk.end === end)) {
994
+ result += chunk.outro;
995
+ }
1022
996
 
1023
- while (chunk) {
1024
- if (chunk.contains(index)) { return this._splitChunk(chunk, index); }
997
+ if (containsEnd) {
998
+ break;
999
+ }
1025
1000
 
1026
- chunk = searchForward ? this.byStart[chunk.end] : this.byEnd[chunk.start];
1027
- }
1028
- };
1001
+ chunk = chunk.next;
1002
+ }
1029
1003
 
1030
- MagicString.prototype._splitChunk = function _splitChunk (chunk, index) {
1031
- if (chunk.edited && chunk.content.length) {
1032
- // zero-length edited chunks are a special case (overlapping replacements)
1033
- var loc = getLocator$1(this.original)(index);
1034
- throw new Error(
1035
- ("Cannot split a chunk that has already been edited (" + (loc.line) + ":" + (loc.column) + " – \"" + (chunk.original) + "\")")
1036
- );
1004
+ return result;
1037
1005
  }
1038
1006
 
1039
- var newChunk = chunk.split(index);
1007
+ // TODO deprecate this? not really very useful
1008
+ snip(start, end) {
1009
+ const clone = this.clone();
1010
+ clone.remove(0, start);
1011
+ clone.remove(end, clone.original.length);
1040
1012
 
1041
- this.byEnd[index] = chunk;
1042
- this.byStart[index] = newChunk;
1043
- this.byEnd[newChunk.end] = newChunk;
1013
+ return clone;
1014
+ }
1044
1015
 
1045
- if (chunk === this.lastChunk) { this.lastChunk = newChunk; }
1016
+ _split(index) {
1017
+ if (this.byStart[index] || this.byEnd[index]) return;
1046
1018
 
1047
- this.lastSearchedChunk = chunk;
1048
- return true;
1049
- };
1019
+ let chunk = this.lastSearchedChunk;
1020
+ const searchForward = index > chunk.end;
1050
1021
 
1051
- MagicString.prototype.toString = function toString () {
1052
- var str = this.intro;
1022
+ while (chunk) {
1023
+ if (chunk.contains(index)) return this._splitChunk(chunk, index);
1053
1024
 
1054
- var chunk = this.firstChunk;
1055
- while (chunk) {
1056
- str += chunk.toString();
1057
- chunk = chunk.next;
1025
+ chunk = searchForward ? this.byStart[chunk.end] : this.byEnd[chunk.start];
1026
+ }
1058
1027
  }
1059
1028
 
1060
- return str + this.outro;
1061
- };
1029
+ _splitChunk(chunk, index) {
1030
+ if (chunk.edited && chunk.content.length) {
1031
+ // zero-length edited chunks are a special case (overlapping replacements)
1032
+ const loc = getLocator$1(this.original)(index);
1033
+ throw new Error(
1034
+ `Cannot split a chunk that has already been edited (${loc.line}:${loc.column} – "${chunk.original}")`
1035
+ );
1036
+ }
1062
1037
 
1063
- MagicString.prototype.isEmpty = function isEmpty () {
1064
- var chunk = this.firstChunk;
1065
- do {
1066
- if (chunk.intro.length && chunk.intro.trim() ||
1067
- chunk.content.length && chunk.content.trim() ||
1068
- chunk.outro.length && chunk.outro.trim())
1069
- { return false; }
1070
- } while (chunk = chunk.next);
1071
- return true;
1072
- };
1038
+ const newChunk = chunk.split(index);
1073
1039
 
1074
- MagicString.prototype.length = function length () {
1075
- var chunk = this.firstChunk;
1076
- var length = 0;
1077
- do {
1078
- length += chunk.intro.length + chunk.content.length + chunk.outro.length;
1079
- } while (chunk = chunk.next);
1080
- return length;
1081
- };
1040
+ this.byEnd[index] = chunk;
1041
+ this.byStart[index] = newChunk;
1042
+ this.byEnd[newChunk.end] = newChunk;
1082
1043
 
1083
- MagicString.prototype.trimLines = function trimLines () {
1084
- return this.trim('[\\r\\n]');
1085
- };
1044
+ if (chunk === this.lastChunk) this.lastChunk = newChunk;
1086
1045
 
1087
- MagicString.prototype.trim = function trim (charType) {
1088
- return this.trimStart(charType).trimEnd(charType);
1089
- };
1046
+ this.lastSearchedChunk = chunk;
1047
+ return true;
1048
+ }
1090
1049
 
1091
- MagicString.prototype.trimEndAborted = function trimEndAborted (charType) {
1092
- var rx = new RegExp((charType || '\\s') + '+$');
1050
+ toString() {
1051
+ let str = this.intro;
1093
1052
 
1094
- this.outro = this.outro.replace(rx, '');
1095
- if (this.outro.length) { return true; }
1053
+ let chunk = this.firstChunk;
1054
+ while (chunk) {
1055
+ str += chunk.toString();
1056
+ chunk = chunk.next;
1057
+ }
1096
1058
 
1097
- var chunk = this.lastChunk;
1059
+ return str + this.outro;
1060
+ }
1098
1061
 
1099
- do {
1100
- var end = chunk.end;
1101
- var aborted = chunk.trimEnd(rx);
1062
+ isEmpty() {
1063
+ let chunk = this.firstChunk;
1064
+ do {
1065
+ if (
1066
+ (chunk.intro.length && chunk.intro.trim()) ||
1067
+ (chunk.content.length && chunk.content.trim()) ||
1068
+ (chunk.outro.length && chunk.outro.trim())
1069
+ )
1070
+ return false;
1071
+ } while ((chunk = chunk.next));
1072
+ return true;
1073
+ }
1102
1074
 
1103
- // if chunk was trimmed, we have a new lastChunk
1104
- if (chunk.end !== end) {
1105
- if (this.lastChunk === chunk) {
1106
- this.lastChunk = chunk.next;
1107
- }
1075
+ length() {
1076
+ let chunk = this.firstChunk;
1077
+ let length = 0;
1078
+ do {
1079
+ length += chunk.intro.length + chunk.content.length + chunk.outro.length;
1080
+ } while ((chunk = chunk.next));
1081
+ return length;
1082
+ }
1108
1083
 
1109
- this.byEnd[chunk.end] = chunk;
1110
- this.byStart[chunk.next.start] = chunk.next;
1111
- this.byEnd[chunk.next.end] = chunk.next;
1112
- }
1084
+ trimLines() {
1085
+ return this.trim('[\\r\\n]');
1086
+ }
1113
1087
 
1114
- if (aborted) { return true; }
1115
- chunk = chunk.previous;
1116
- } while (chunk);
1088
+ trim(charType) {
1089
+ return this.trimStart(charType).trimEnd(charType);
1090
+ }
1117
1091
 
1118
- return false;
1119
- };
1092
+ trimEndAborted(charType) {
1093
+ const rx = new RegExp((charType || '\\s') + '+$');
1120
1094
 
1121
- MagicString.prototype.trimEnd = function trimEnd (charType) {
1122
- this.trimEndAborted(charType);
1123
- return this;
1124
- };
1125
- MagicString.prototype.trimStartAborted = function trimStartAborted (charType) {
1126
- var rx = new RegExp('^' + (charType || '\\s') + '+');
1095
+ this.outro = this.outro.replace(rx, '');
1096
+ if (this.outro.length) return true;
1127
1097
 
1128
- this.intro = this.intro.replace(rx, '');
1129
- if (this.intro.length) { return true; }
1098
+ let chunk = this.lastChunk;
1130
1099
 
1131
- var chunk = this.firstChunk;
1100
+ do {
1101
+ const end = chunk.end;
1102
+ const aborted = chunk.trimEnd(rx);
1132
1103
 
1133
- do {
1134
- var end = chunk.end;
1135
- var aborted = chunk.trimStart(rx);
1104
+ // if chunk was trimmed, we have a new lastChunk
1105
+ if (chunk.end !== end) {
1106
+ if (this.lastChunk === chunk) {
1107
+ this.lastChunk = chunk.next;
1108
+ }
1136
1109
 
1137
- if (chunk.end !== end) {
1138
- // special case...
1139
- if (chunk === this.lastChunk) { this.lastChunk = chunk.next; }
1110
+ this.byEnd[chunk.end] = chunk;
1111
+ this.byStart[chunk.next.start] = chunk.next;
1112
+ this.byEnd[chunk.next.end] = chunk.next;
1113
+ }
1140
1114
 
1141
- this.byEnd[chunk.end] = chunk;
1142
- this.byStart[chunk.next.start] = chunk.next;
1143
- this.byEnd[chunk.next.end] = chunk.next;
1144
- }
1115
+ if (aborted) return true;
1116
+ chunk = chunk.previous;
1117
+ } while (chunk);
1145
1118
 
1146
- if (aborted) { return true; }
1147
- chunk = chunk.next;
1148
- } while (chunk);
1119
+ return false;
1120
+ }
1149
1121
 
1150
- return false;
1151
- };
1122
+ trimEnd(charType) {
1123
+ this.trimEndAborted(charType);
1124
+ return this;
1125
+ }
1126
+ trimStartAborted(charType) {
1127
+ const rx = new RegExp('^' + (charType || '\\s') + '+');
1152
1128
 
1153
- MagicString.prototype.trimStart = function trimStart (charType) {
1154
- this.trimStartAborted(charType);
1155
- return this;
1156
- };
1129
+ this.intro = this.intro.replace(rx, '');
1130
+ if (this.intro.length) return true;
1157
1131
 
1158
- var hasOwnProp = Object.prototype.hasOwnProperty;
1132
+ let chunk = this.firstChunk;
1159
1133
 
1160
- var Bundle$1 = function Bundle(options) {
1161
- if ( options === void 0 ) options = {};
1134
+ do {
1135
+ const end = chunk.end;
1136
+ const aborted = chunk.trimStart(rx);
1162
1137
 
1163
- this.intro = options.intro || '';
1164
- this.separator = options.separator !== undefined ? options.separator : '\n';
1165
- this.sources = [];
1166
- this.uniqueSources = [];
1167
- this.uniqueSourceIndexByFilename = {};
1168
- };
1138
+ if (chunk.end !== end) {
1139
+ // special case...
1140
+ if (chunk === this.lastChunk) this.lastChunk = chunk.next;
1169
1141
 
1170
- Bundle$1.prototype.addSource = function addSource (source) {
1171
- if (source instanceof MagicString) {
1172
- return this.addSource({
1173
- content: source,
1174
- filename: source.filename,
1175
- separator: this.separator
1176
- });
1177
- }
1142
+ this.byEnd[chunk.end] = chunk;
1143
+ this.byStart[chunk.next.start] = chunk.next;
1144
+ this.byEnd[chunk.next.end] = chunk.next;
1145
+ }
1146
+
1147
+ if (aborted) return true;
1148
+ chunk = chunk.next;
1149
+ } while (chunk);
1178
1150
 
1179
- if (!isObject$1(source) || !source.content) {
1180
- throw new Error('bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`');
1151
+ return false;
1181
1152
  }
1182
1153
 
1183
- ['filename', 'indentExclusionRanges', 'separator'].forEach(function (option) {
1184
- if (!hasOwnProp.call(source, option)) { source[option] = source.content[option]; }
1185
- });
1154
+ trimStart(charType) {
1155
+ this.trimStartAborted(charType);
1156
+ return this;
1157
+ }
1186
1158
 
1187
- if (source.separator === undefined) {
1188
- // TODO there's a bunch of this sort of thing, needs cleaning up
1189
- source.separator = this.separator;
1159
+ hasChanged() {
1160
+ return this.original !== this.toString();
1190
1161
  }
1191
1162
 
1192
- if (source.filename) {
1193
- if (!hasOwnProp.call(this.uniqueSourceIndexByFilename, source.filename)) {
1194
- this.uniqueSourceIndexByFilename[source.filename] = this.uniqueSources.length;
1195
- this.uniqueSources.push({ filename: source.filename, content: source.content.original });
1196
- } else {
1197
- var uniqueSource = this.uniqueSources[this.uniqueSourceIndexByFilename[source.filename]];
1198
- if (source.content.original !== uniqueSource.content) {
1199
- throw new Error(("Illegal source: same filename (" + (source.filename) + "), different contents"));
1163
+ replace(searchValue, replacement) {
1164
+ function getReplacement(match, str) {
1165
+ if (typeof replacement === 'string') {
1166
+ return replacement.replace(/\$(\$|&|\d+)/g, (_, i) => {
1167
+ // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#specifying_a_string_as_a_parameter
1168
+ if (i === '$') return '$';
1169
+ if (i === '&') return match[0];
1170
+ const num = +i;
1171
+ if (num < match.length) return match[+i];
1172
+ return `$${i}`;
1173
+ });
1174
+ } else {
1175
+ return replacement(...match, match.index, str, match.groups);
1200
1176
  }
1201
1177
  }
1178
+ function matchAll(re, str) {
1179
+ let match;
1180
+ const matches = [];
1181
+ while ((match = re.exec(str))) {
1182
+ matches.push(match);
1183
+ }
1184
+ return matches;
1185
+ }
1186
+ if (typeof searchValue !== 'string' && searchValue.global) {
1187
+ const matches = matchAll(searchValue, this.original);
1188
+ matches.forEach((match) => {
1189
+ if (match.index != null)
1190
+ this.overwrite(
1191
+ match.index,
1192
+ match.index + match[0].length,
1193
+ getReplacement(match, this.original)
1194
+ );
1195
+ });
1196
+ } else {
1197
+ const match = this.original.match(searchValue);
1198
+ if (match && match.index != null)
1199
+ this.overwrite(
1200
+ match.index,
1201
+ match.index + match[0].length,
1202
+ getReplacement(match, this.original)
1203
+ );
1204
+ }
1205
+ return this;
1202
1206
  }
1207
+ }
1203
1208
 
1204
- this.sources.push(source);
1205
- return this;
1206
- };
1209
+ const hasOwnProp = Object.prototype.hasOwnProperty;
1207
1210
 
1208
- Bundle$1.prototype.append = function append (str, options) {
1209
- this.addSource({
1210
- content: new MagicString(str),
1211
- separator: (options && options.separator) || ''
1212
- });
1211
+ class Bundle$1 {
1212
+ constructor(options = {}) {
1213
+ this.intro = options.intro || '';
1214
+ this.separator = options.separator !== undefined ? options.separator : '\n';
1215
+ this.sources = [];
1216
+ this.uniqueSources = [];
1217
+ this.uniqueSourceIndexByFilename = {};
1218
+ }
1213
1219
 
1214
- return this;
1215
- };
1220
+ addSource(source) {
1221
+ if (source instanceof MagicString) {
1222
+ return this.addSource({
1223
+ content: source,
1224
+ filename: source.filename,
1225
+ separator: this.separator,
1226
+ });
1227
+ }
1216
1228
 
1217
- Bundle$1.prototype.clone = function clone () {
1218
- var bundle = new Bundle$1({
1219
- intro: this.intro,
1220
- separator: this.separator
1221
- });
1229
+ if (!isObject$1(source) || !source.content) {
1230
+ throw new Error(
1231
+ 'bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`'
1232
+ );
1233
+ }
1222
1234
 
1223
- this.sources.forEach(function (source) {
1224
- bundle.addSource({
1225
- filename: source.filename,
1226
- content: source.content.clone(),
1227
- separator: source.separator
1235
+ ['filename', 'indentExclusionRanges', 'separator'].forEach((option) => {
1236
+ if (!hasOwnProp.call(source, option)) source[option] = source.content[option];
1228
1237
  });
1229
- });
1230
1238
 
1231
- return bundle;
1232
- };
1239
+ if (source.separator === undefined) {
1240
+ // TODO there's a bunch of this sort of thing, needs cleaning up
1241
+ source.separator = this.separator;
1242
+ }
1233
1243
 
1234
- Bundle$1.prototype.generateDecodedMap = function generateDecodedMap (options) {
1235
- var this$1$1 = this;
1236
- if ( options === void 0 ) options = {};
1244
+ if (source.filename) {
1245
+ if (!hasOwnProp.call(this.uniqueSourceIndexByFilename, source.filename)) {
1246
+ this.uniqueSourceIndexByFilename[source.filename] = this.uniqueSources.length;
1247
+ this.uniqueSources.push({ filename: source.filename, content: source.content.original });
1248
+ } else {
1249
+ const uniqueSource = this.uniqueSources[this.uniqueSourceIndexByFilename[source.filename]];
1250
+ if (source.content.original !== uniqueSource.content) {
1251
+ throw new Error(`Illegal source: same filename (${source.filename}), different contents`);
1252
+ }
1253
+ }
1254
+ }
1255
+
1256
+ this.sources.push(source);
1257
+ return this;
1258
+ }
1237
1259
 
1238
- var names = [];
1239
- this.sources.forEach(function (source) {
1240
- Object.keys(source.content.storedNames).forEach(function (name) {
1241
- if (!~names.indexOf(name)) { names.push(name); }
1260
+ append(str, options) {
1261
+ this.addSource({
1262
+ content: new MagicString(str),
1263
+ separator: (options && options.separator) || '',
1242
1264
  });
1243
- });
1244
1265
 
1245
- var mappings = new Mappings(options.hires);
1266
+ return this;
1267
+ }
1268
+
1269
+ clone() {
1270
+ const bundle = new Bundle$1({
1271
+ intro: this.intro,
1272
+ separator: this.separator,
1273
+ });
1246
1274
 
1247
- if (this.intro) {
1248
- mappings.advance(this.intro);
1275
+ this.sources.forEach((source) => {
1276
+ bundle.addSource({
1277
+ filename: source.filename,
1278
+ content: source.content.clone(),
1279
+ separator: source.separator,
1280
+ });
1281
+ });
1282
+
1283
+ return bundle;
1249
1284
  }
1250
1285
 
1251
- this.sources.forEach(function (source, i) {
1252
- if (i > 0) {
1253
- mappings.advance(this$1$1.separator);
1254
- }
1286
+ generateDecodedMap(options = {}) {
1287
+ const names = [];
1288
+ this.sources.forEach((source) => {
1289
+ Object.keys(source.content.storedNames).forEach((name) => {
1290
+ if (!~names.indexOf(name)) names.push(name);
1291
+ });
1292
+ });
1255
1293
 
1256
- var sourceIndex = source.filename ? this$1$1.uniqueSourceIndexByFilename[source.filename] : -1;
1257
- var magicString = source.content;
1258
- var locate = getLocator$1(magicString.original);
1294
+ const mappings = new Mappings(options.hires);
1259
1295
 
1260
- if (magicString.intro) {
1261
- mappings.advance(magicString.intro);
1296
+ if (this.intro) {
1297
+ mappings.advance(this.intro);
1262
1298
  }
1263
1299
 
1264
- magicString.firstChunk.eachNext(function (chunk) {
1265
- var loc = locate(chunk.start);
1300
+ this.sources.forEach((source, i) => {
1301
+ if (i > 0) {
1302
+ mappings.advance(this.separator);
1303
+ }
1266
1304
 
1267
- if (chunk.intro.length) { mappings.advance(chunk.intro); }
1305
+ const sourceIndex = source.filename ? this.uniqueSourceIndexByFilename[source.filename] : -1;
1306
+ const magicString = source.content;
1307
+ const locate = getLocator$1(magicString.original);
1268
1308
 
1269
- if (source.filename) {
1270
- if (chunk.edited) {
1271
- mappings.addEdit(
1272
- sourceIndex,
1273
- chunk.content,
1274
- loc,
1275
- chunk.storeName ? names.indexOf(chunk.original) : -1
1276
- );
1309
+ if (magicString.intro) {
1310
+ mappings.advance(magicString.intro);
1311
+ }
1312
+
1313
+ magicString.firstChunk.eachNext((chunk) => {
1314
+ const loc = locate(chunk.start);
1315
+
1316
+ if (chunk.intro.length) mappings.advance(chunk.intro);
1317
+
1318
+ if (source.filename) {
1319
+ if (chunk.edited) {
1320
+ mappings.addEdit(
1321
+ sourceIndex,
1322
+ chunk.content,
1323
+ loc,
1324
+ chunk.storeName ? names.indexOf(chunk.original) : -1
1325
+ );
1326
+ } else {
1327
+ mappings.addUneditedChunk(
1328
+ sourceIndex,
1329
+ chunk,
1330
+ magicString.original,
1331
+ loc,
1332
+ magicString.sourcemapLocations
1333
+ );
1334
+ }
1277
1335
  } else {
1278
- mappings.addUneditedChunk(
1279
- sourceIndex,
1280
- chunk,
1281
- magicString.original,
1282
- loc,
1283
- magicString.sourcemapLocations
1284
- );
1336
+ mappings.advance(chunk.content);
1285
1337
  }
1286
- } else {
1287
- mappings.advance(chunk.content);
1288
- }
1289
1338
 
1290
- if (chunk.outro.length) { mappings.advance(chunk.outro); }
1291
- });
1339
+ if (chunk.outro.length) mappings.advance(chunk.outro);
1340
+ });
1292
1341
 
1293
- if (magicString.outro) {
1294
- mappings.advance(magicString.outro);
1295
- }
1296
- });
1342
+ if (magicString.outro) {
1343
+ mappings.advance(magicString.outro);
1344
+ }
1345
+ });
1297
1346
 
1298
- return {
1299
- file: options.file ? options.file.split(/[/\\]/).pop() : null,
1300
- sources: this.uniqueSources.map(function (source) {
1301
- return options.file ? getRelativePath(options.file, source.filename) : source.filename;
1302
- }),
1303
- sourcesContent: this.uniqueSources.map(function (source) {
1304
- return options.includeContent ? source.content : null;
1305
- }),
1306
- names: names,
1307
- mappings: mappings.raw
1308
- };
1309
- };
1347
+ return {
1348
+ file: options.file ? options.file.split(/[/\\]/).pop() : null,
1349
+ sources: this.uniqueSources.map((source) => {
1350
+ return options.file ? getRelativePath(options.file, source.filename) : source.filename;
1351
+ }),
1352
+ sourcesContent: this.uniqueSources.map((source) => {
1353
+ return options.includeContent ? source.content : null;
1354
+ }),
1355
+ names,
1356
+ mappings: mappings.raw,
1357
+ };
1358
+ }
1310
1359
 
1311
- Bundle$1.prototype.generateMap = function generateMap (options) {
1312
- return new SourceMap(this.generateDecodedMap(options));
1313
- };
1360
+ generateMap(options) {
1361
+ return new SourceMap(this.generateDecodedMap(options));
1362
+ }
1314
1363
 
1315
- Bundle$1.prototype.getIndentString = function getIndentString () {
1316
- var indentStringCounts = {};
1364
+ getIndentString() {
1365
+ const indentStringCounts = {};
1317
1366
 
1318
- this.sources.forEach(function (source) {
1319
- var indentStr = source.content.indentStr;
1367
+ this.sources.forEach((source) => {
1368
+ const indentStr = source.content.indentStr;
1320
1369
 
1321
- if (indentStr === null) { return; }
1370
+ if (indentStr === null) return;
1322
1371
 
1323
- if (!indentStringCounts[indentStr]) { indentStringCounts[indentStr] = 0; }
1324
- indentStringCounts[indentStr] += 1;
1325
- });
1372
+ if (!indentStringCounts[indentStr]) indentStringCounts[indentStr] = 0;
1373
+ indentStringCounts[indentStr] += 1;
1374
+ });
1326
1375
 
1327
- return (
1328
- Object.keys(indentStringCounts).sort(function (a, b) {
1329
- return indentStringCounts[a] - indentStringCounts[b];
1330
- })[0] || '\t'
1331
- );
1332
- };
1376
+ return (
1377
+ Object.keys(indentStringCounts).sort((a, b) => {
1378
+ return indentStringCounts[a] - indentStringCounts[b];
1379
+ })[0] || '\t'
1380
+ );
1381
+ }
1333
1382
 
1334
- Bundle$1.prototype.indent = function indent (indentStr) {
1335
- var this$1$1 = this;
1383
+ indent(indentStr) {
1384
+ if (!arguments.length) {
1385
+ indentStr = this.getIndentString();
1386
+ }
1336
1387
 
1337
- if (!arguments.length) {
1338
- indentStr = this.getIndentString();
1339
- }
1388
+ if (indentStr === '') return this; // noop
1340
1389
 
1341
- if (indentStr === '') { return this; } // noop
1390
+ let trailingNewline = !this.intro || this.intro.slice(-1) === '\n';
1342
1391
 
1343
- var trailingNewline = !this.intro || this.intro.slice(-1) === '\n';
1392
+ this.sources.forEach((source, i) => {
1393
+ const separator = source.separator !== undefined ? source.separator : this.separator;
1394
+ const indentStart = trailingNewline || (i > 0 && /\r?\n$/.test(separator));
1344
1395
 
1345
- this.sources.forEach(function (source, i) {
1346
- var separator = source.separator !== undefined ? source.separator : this$1$1.separator;
1347
- var indentStart = trailingNewline || (i > 0 && /\r?\n$/.test(separator));
1396
+ source.content.indent(indentStr, {
1397
+ exclude: source.indentExclusionRanges,
1398
+ indentStart, //: trailingNewline || /\r?\n$/.test( separator ) //true///\r?\n/.test( separator )
1399
+ });
1348
1400
 
1349
- source.content.indent(indentStr, {
1350
- exclude: source.indentExclusionRanges,
1351
- indentStart: indentStart //: trailingNewline || /\r?\n$/.test( separator ) //true///\r?\n/.test( separator )
1401
+ trailingNewline = source.content.lastChar() === '\n';
1352
1402
  });
1353
1403
 
1354
- trailingNewline = source.content.lastChar() === '\n';
1355
- });
1404
+ if (this.intro) {
1405
+ this.intro =
1406
+ indentStr +
1407
+ this.intro.replace(/^[^\n]/gm, (match, index) => {
1408
+ return index > 0 ? indentStr + match : match;
1409
+ });
1410
+ }
1356
1411
 
1357
- if (this.intro) {
1358
- this.intro =
1359
- indentStr +
1360
- this.intro.replace(/^[^\n]/gm, function (match, index) {
1361
- return index > 0 ? indentStr + match : match;
1362
- });
1412
+ return this;
1363
1413
  }
1364
1414
 
1365
- return this;
1366
- };
1415
+ prepend(str) {
1416
+ this.intro = str + this.intro;
1417
+ return this;
1418
+ }
1367
1419
 
1368
- Bundle$1.prototype.prepend = function prepend (str) {
1369
- this.intro = str + this.intro;
1370
- return this;
1371
- };
1420
+ toString() {
1421
+ const body = this.sources
1422
+ .map((source, i) => {
1423
+ const separator = source.separator !== undefined ? source.separator : this.separator;
1424
+ const str = (i > 0 ? separator : '') + source.content.toString();
1372
1425
 
1373
- Bundle$1.prototype.toString = function toString () {
1374
- var this$1$1 = this;
1426
+ return str;
1427
+ })
1428
+ .join('');
1375
1429
 
1376
- var body = this.sources
1377
- .map(function (source, i) {
1378
- var separator = source.separator !== undefined ? source.separator : this$1$1.separator;
1379
- var str = (i > 0 ? separator : '') + source.content.toString();
1430
+ return this.intro + body;
1431
+ }
1380
1432
 
1381
- return str;
1382
- })
1383
- .join('');
1433
+ isEmpty() {
1434
+ if (this.intro.length && this.intro.trim()) return false;
1435
+ if (this.sources.some((source) => !source.content.isEmpty())) return false;
1436
+ return true;
1437
+ }
1384
1438
 
1385
- return this.intro + body;
1386
- };
1439
+ length() {
1440
+ return this.sources.reduce(
1441
+ (length, source) => length + source.content.length(),
1442
+ this.intro.length
1443
+ );
1444
+ }
1387
1445
 
1388
- Bundle$1.prototype.isEmpty = function isEmpty () {
1389
- if (this.intro.length && this.intro.trim())
1390
- { return false; }
1391
- if (this.sources.some(function (source) { return !source.content.isEmpty(); }))
1392
- { return false; }
1393
- return true;
1394
- };
1446
+ trimLines() {
1447
+ return this.trim('[\\r\\n]');
1448
+ }
1395
1449
 
1396
- Bundle$1.prototype.length = function length () {
1397
- return this.sources.reduce(function (length, source) { return length + source.content.length(); }, this.intro.length);
1398
- };
1450
+ trim(charType) {
1451
+ return this.trimStart(charType).trimEnd(charType);
1452
+ }
1399
1453
 
1400
- Bundle$1.prototype.trimLines = function trimLines () {
1401
- return this.trim('[\\r\\n]');
1402
- };
1454
+ trimStart(charType) {
1455
+ const rx = new RegExp('^' + (charType || '\\s') + '+');
1456
+ this.intro = this.intro.replace(rx, '');
1403
1457
 
1404
- Bundle$1.prototype.trim = function trim (charType) {
1405
- return this.trimStart(charType).trimEnd(charType);
1406
- };
1458
+ if (!this.intro) {
1459
+ let source;
1460
+ let i = 0;
1407
1461
 
1408
- Bundle$1.prototype.trimStart = function trimStart (charType) {
1409
- var rx = new RegExp('^' + (charType || '\\s') + '+');
1410
- this.intro = this.intro.replace(rx, '');
1462
+ do {
1463
+ source = this.sources[i++];
1464
+ if (!source) {
1465
+ break;
1466
+ }
1467
+ } while (!source.content.trimStartAborted(charType));
1468
+ }
1469
+
1470
+ return this;
1471
+ }
1411
1472
 
1412
- if (!this.intro) {
1413
- var source;
1414
- var i = 0;
1473
+ trimEnd(charType) {
1474
+ const rx = new RegExp((charType || '\\s') + '+$');
1475
+
1476
+ let source;
1477
+ let i = this.sources.length - 1;
1415
1478
 
1416
1479
  do {
1417
- source = this.sources[i++];
1480
+ source = this.sources[i--];
1418
1481
  if (!source) {
1482
+ this.intro = this.intro.replace(rx, '');
1419
1483
  break;
1420
1484
  }
1421
- } while (!source.content.trimStartAborted(charType));
1422
- }
1423
-
1424
- return this;
1425
- };
1426
-
1427
- Bundle$1.prototype.trimEnd = function trimEnd (charType) {
1428
- var rx = new RegExp((charType || '\\s') + '+$');
1485
+ } while (!source.content.trimEndAborted(charType));
1429
1486
 
1430
- var source;
1431
- var i = this.sources.length - 1;
1432
-
1433
- do {
1434
- source = this.sources[i--];
1435
- if (!source) {
1436
- this.intro = this.intro.replace(rx, '');
1437
- break;
1438
- }
1439
- } while (!source.content.trimEndAborted(charType));
1440
-
1441
- return this;
1442
- };
1443
-
1444
- const MagicString$1 = MagicString;
1487
+ return this;
1488
+ }
1489
+ }
1445
1490
 
1446
1491
  const ANY_SLASH_REGEX = /[/\\]/;
1447
1492
  function relative(from, to) {
@@ -2296,9 +2341,19 @@ class ExternalModule {
2296
2341
  }
2297
2342
  }
2298
2343
 
2344
+ function getDefaultExportFromCjs (x) {
2345
+ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
2346
+ }
2347
+
2299
2348
  function getAugmentedNamespace(n) {
2300
- if (n.__esModule) return n;
2301
- var a = Object.defineProperty({}, '__esModule', {value: true});
2349
+ var f = n.default;
2350
+ if (typeof f == "function") {
2351
+ var a = function () {
2352
+ return f.apply(this, arguments);
2353
+ };
2354
+ a.prototype = f.prototype;
2355
+ } else a = {};
2356
+ Object.defineProperty(a, '__esModule', {value: true});
2302
2357
  Object.keys(n).forEach(function (k) {
2303
2358
  var d = Object.getOwnPropertyDescriptor(n, k);
2304
2359
  Object.defineProperty(a, k, d.get ? d : {
@@ -2311,6 +2366,8 @@ function getAugmentedNamespace(n) {
2311
2366
  return a;
2312
2367
  }
2313
2368
 
2369
+ var picomatch$1 = {exports: {}};
2370
+
2314
2371
  var utils$3 = {};
2315
2372
 
2316
2373
  const path$1 = require$$0;
@@ -2493,69 +2550,69 @@ var constants$2 = {
2493
2550
 
2494
2551
  (function (exports) {
2495
2552
 
2496
- const path = require$$0;
2497
- const win32 = process.platform === 'win32';
2498
- const {
2499
- REGEX_BACKSLASH,
2500
- REGEX_REMOVE_BACKSLASH,
2501
- REGEX_SPECIAL_CHARS,
2502
- REGEX_SPECIAL_CHARS_GLOBAL
2503
- } = constants$2;
2504
-
2505
- exports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);
2506
- exports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str);
2507
- exports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str);
2508
- exports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\$1');
2509
- exports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/');
2510
-
2511
- exports.removeBackslashes = str => {
2512
- return str.replace(REGEX_REMOVE_BACKSLASH, match => {
2513
- return match === '\\' ? '' : match;
2514
- });
2515
- };
2553
+ const path = require$$0;
2554
+ const win32 = process.platform === 'win32';
2555
+ const {
2556
+ REGEX_BACKSLASH,
2557
+ REGEX_REMOVE_BACKSLASH,
2558
+ REGEX_SPECIAL_CHARS,
2559
+ REGEX_SPECIAL_CHARS_GLOBAL
2560
+ } = constants$2;
2561
+
2562
+ exports.isObject = val => val !== null && typeof val === 'object' && !Array.isArray(val);
2563
+ exports.hasRegexChars = str => REGEX_SPECIAL_CHARS.test(str);
2564
+ exports.isRegexChar = str => str.length === 1 && exports.hasRegexChars(str);
2565
+ exports.escapeRegex = str => str.replace(REGEX_SPECIAL_CHARS_GLOBAL, '\\$1');
2566
+ exports.toPosixSlashes = str => str.replace(REGEX_BACKSLASH, '/');
2567
+
2568
+ exports.removeBackslashes = str => {
2569
+ return str.replace(REGEX_REMOVE_BACKSLASH, match => {
2570
+ return match === '\\' ? '' : match;
2571
+ });
2572
+ };
2516
2573
 
2517
- exports.supportsLookbehinds = () => {
2518
- const segs = process.version.slice(1).split('.').map(Number);
2519
- if (segs.length === 3 && segs[0] >= 9 || (segs[0] === 8 && segs[1] >= 10)) {
2520
- return true;
2521
- }
2522
- return false;
2523
- };
2574
+ exports.supportsLookbehinds = () => {
2575
+ const segs = process.version.slice(1).split('.').map(Number);
2576
+ if (segs.length === 3 && segs[0] >= 9 || (segs[0] === 8 && segs[1] >= 10)) {
2577
+ return true;
2578
+ }
2579
+ return false;
2580
+ };
2524
2581
 
2525
- exports.isWindows = options => {
2526
- if (options && typeof options.windows === 'boolean') {
2527
- return options.windows;
2528
- }
2529
- return win32 === true || path.sep === '\\';
2530
- };
2582
+ exports.isWindows = options => {
2583
+ if (options && typeof options.windows === 'boolean') {
2584
+ return options.windows;
2585
+ }
2586
+ return win32 === true || path.sep === '\\';
2587
+ };
2531
2588
 
2532
- exports.escapeLast = (input, char, lastIdx) => {
2533
- const idx = input.lastIndexOf(char, lastIdx);
2534
- if (idx === -1) return input;
2535
- if (input[idx - 1] === '\\') return exports.escapeLast(input, char, idx - 1);
2536
- return `${input.slice(0, idx)}\\${input.slice(idx)}`;
2537
- };
2589
+ exports.escapeLast = (input, char, lastIdx) => {
2590
+ const idx = input.lastIndexOf(char, lastIdx);
2591
+ if (idx === -1) return input;
2592
+ if (input[idx - 1] === '\\') return exports.escapeLast(input, char, idx - 1);
2593
+ return `${input.slice(0, idx)}\\${input.slice(idx)}`;
2594
+ };
2538
2595
 
2539
- exports.removePrefix = (input, state = {}) => {
2540
- let output = input;
2541
- if (output.startsWith('./')) {
2542
- output = output.slice(2);
2543
- state.prefix = './';
2544
- }
2545
- return output;
2546
- };
2596
+ exports.removePrefix = (input, state = {}) => {
2597
+ let output = input;
2598
+ if (output.startsWith('./')) {
2599
+ output = output.slice(2);
2600
+ state.prefix = './';
2601
+ }
2602
+ return output;
2603
+ };
2547
2604
 
2548
- exports.wrapOutput = (input, state = {}, options = {}) => {
2549
- const prepend = options.contains ? '' : '^';
2550
- const append = options.contains ? '' : '$';
2605
+ exports.wrapOutput = (input, state = {}, options = {}) => {
2606
+ const prepend = options.contains ? '' : '^';
2607
+ const append = options.contains ? '' : '$';
2551
2608
 
2552
- let output = `${prepend}(?:${input})${append}`;
2553
- if (state.negated === true) {
2554
- output = `(?:^(?!${output}).*$)`;
2555
- }
2556
- return output;
2557
- };
2558
- }(utils$3));
2609
+ let output = `${prepend}(?:${input})${append}`;
2610
+ if (state.negated === true) {
2611
+ output = `(?:^(?!${output}).*$)`;
2612
+ }
2613
+ return output;
2614
+ };
2615
+ } (utils$3));
2559
2616
 
2560
2617
  const utils$2 = utils$3;
2561
2618
  const {
@@ -4059,9 +4116,9 @@ const isObject = val => val && typeof val === 'object' && !Array.isArray(val);
4059
4116
  * @api public
4060
4117
  */
4061
4118
 
4062
- const picomatch$1 = (glob, options, returnState = false) => {
4119
+ const picomatch = (glob, options, returnState = false) => {
4063
4120
  if (Array.isArray(glob)) {
4064
- const fns = glob.map(input => picomatch$1(input, options, returnState));
4121
+ const fns = glob.map(input => picomatch(input, options, returnState));
4065
4122
  const arrayMatcher = str => {
4066
4123
  for (const isMatch of fns) {
4067
4124
  const state = isMatch(str);
@@ -4081,8 +4138,8 @@ const picomatch$1 = (glob, options, returnState = false) => {
4081
4138
  const opts = options || {};
4082
4139
  const posix = utils.isWindows(options);
4083
4140
  const regex = isState
4084
- ? picomatch$1.compileRe(glob, options)
4085
- : picomatch$1.makeRe(glob, options, false, true);
4141
+ ? picomatch.compileRe(glob, options)
4142
+ : picomatch.makeRe(glob, options, false, true);
4086
4143
 
4087
4144
  const state = regex.state;
4088
4145
  delete regex.state;
@@ -4090,11 +4147,11 @@ const picomatch$1 = (glob, options, returnState = false) => {
4090
4147
  let isIgnored = () => false;
4091
4148
  if (opts.ignore) {
4092
4149
  const ignoreOpts = { ...options, ignore: null, onMatch: null, onResult: null };
4093
- isIgnored = picomatch$1(opts.ignore, ignoreOpts, returnState);
4150
+ isIgnored = picomatch(opts.ignore, ignoreOpts, returnState);
4094
4151
  }
4095
4152
 
4096
4153
  const matcher = (input, returnObject = false) => {
4097
- const { isMatch, match, output } = picomatch$1.test(input, regex, options, { glob, posix });
4154
+ const { isMatch, match, output } = picomatch.test(input, regex, options, { glob, posix });
4098
4155
  const result = { glob, state, regex, posix, input, output, match, isMatch };
4099
4156
 
4100
4157
  if (typeof opts.onResult === 'function') {
@@ -4144,7 +4201,7 @@ const picomatch$1 = (glob, options, returnState = false) => {
4144
4201
  * @api public
4145
4202
  */
4146
4203
 
4147
- picomatch$1.test = (input, regex, options, { glob, posix } = {}) => {
4204
+ picomatch.test = (input, regex, options, { glob, posix } = {}) => {
4148
4205
  if (typeof input !== 'string') {
4149
4206
  throw new TypeError('Expected input to be a string');
4150
4207
  }
@@ -4165,7 +4222,7 @@ picomatch$1.test = (input, regex, options, { glob, posix } = {}) => {
4165
4222
 
4166
4223
  if (match === false || opts.capture === true) {
4167
4224
  if (opts.matchBase === true || opts.basename === true) {
4168
- match = picomatch$1.matchBase(input, regex, options, posix);
4225
+ match = picomatch.matchBase(input, regex, options, posix);
4169
4226
  } else {
4170
4227
  match = regex.exec(output);
4171
4228
  }
@@ -4188,8 +4245,8 @@ picomatch$1.test = (input, regex, options, { glob, posix } = {}) => {
4188
4245
  * @api public
4189
4246
  */
4190
4247
 
4191
- picomatch$1.matchBase = (input, glob, options, posix = utils.isWindows(options)) => {
4192
- const regex = glob instanceof RegExp ? glob : picomatch$1.makeRe(glob, options);
4248
+ picomatch.matchBase = (input, glob, options, posix = utils.isWindows(options)) => {
4249
+ const regex = glob instanceof RegExp ? glob : picomatch.makeRe(glob, options);
4193
4250
  return regex.test(path.basename(input));
4194
4251
  };
4195
4252
 
@@ -4210,7 +4267,7 @@ picomatch$1.matchBase = (input, glob, options, posix = utils.isWindows(options))
4210
4267
  * @api public
4211
4268
  */
4212
4269
 
4213
- picomatch$1.isMatch = (str, patterns, options) => picomatch$1(patterns, options)(str);
4270
+ picomatch.isMatch = (str, patterns, options) => picomatch(patterns, options)(str);
4214
4271
 
4215
4272
  /**
4216
4273
  * Parse a glob pattern to create the source string for a regular
@@ -4226,8 +4283,8 @@ picomatch$1.isMatch = (str, patterns, options) => picomatch$1(patterns, options)
4226
4283
  * @api public
4227
4284
  */
4228
4285
 
4229
- picomatch$1.parse = (pattern, options) => {
4230
- if (Array.isArray(pattern)) return pattern.map(p => picomatch$1.parse(p, options));
4286
+ picomatch.parse = (pattern, options) => {
4287
+ if (Array.isArray(pattern)) return pattern.map(p => picomatch.parse(p, options));
4231
4288
  return parse(pattern, { ...options, fastpaths: false });
4232
4289
  };
4233
4290
 
@@ -4258,7 +4315,7 @@ picomatch$1.parse = (pattern, options) => {
4258
4315
  * @api public
4259
4316
  */
4260
4317
 
4261
- picomatch$1.scan = (input, options) => scan(input, options);
4318
+ picomatch.scan = (input, options) => scan(input, options);
4262
4319
 
4263
4320
  /**
4264
4321
  * Compile a regular expression from the `state` object returned by the
@@ -4272,7 +4329,7 @@ picomatch$1.scan = (input, options) => scan(input, options);
4272
4329
  * @api public
4273
4330
  */
4274
4331
 
4275
- picomatch$1.compileRe = (state, options, returnOutput = false, returnState = false) => {
4332
+ picomatch.compileRe = (state, options, returnOutput = false, returnState = false) => {
4276
4333
  if (returnOutput === true) {
4277
4334
  return state.output;
4278
4335
  }
@@ -4286,7 +4343,7 @@ picomatch$1.compileRe = (state, options, returnOutput = false, returnState = fal
4286
4343
  source = `^(?!${source}).*$`;
4287
4344
  }
4288
4345
 
4289
- const regex = picomatch$1.toRegex(source, options);
4346
+ const regex = picomatch.toRegex(source, options);
4290
4347
  if (returnState === true) {
4291
4348
  regex.state = state;
4292
4349
  }
@@ -4313,7 +4370,7 @@ picomatch$1.compileRe = (state, options, returnOutput = false, returnState = fal
4313
4370
  * @api public
4314
4371
  */
4315
4372
 
4316
- picomatch$1.makeRe = (input, options = {}, returnOutput = false, returnState = false) => {
4373
+ picomatch.makeRe = (input, options = {}, returnOutput = false, returnState = false) => {
4317
4374
  if (!input || typeof input !== 'string') {
4318
4375
  throw new TypeError('Expected a non-empty string');
4319
4376
  }
@@ -4328,7 +4385,7 @@ picomatch$1.makeRe = (input, options = {}, returnOutput = false, returnState = f
4328
4385
  parsed = parse(input, options);
4329
4386
  }
4330
4387
 
4331
- return picomatch$1.compileRe(parsed, options, returnOutput, returnState);
4388
+ return picomatch.compileRe(parsed, options, returnOutput, returnState);
4332
4389
  };
4333
4390
 
4334
4391
  /**
@@ -4348,7 +4405,7 @@ picomatch$1.makeRe = (input, options = {}, returnOutput = false, returnState = f
4348
4405
  * @api public
4349
4406
  */
4350
4407
 
4351
- picomatch$1.toRegex = (source, options) => {
4408
+ picomatch.toRegex = (source, options) => {
4352
4409
  try {
4353
4410
  const opts = options || {};
4354
4411
  return new RegExp(source, opts.flags || (opts.nocase ? 'i' : ''));
@@ -4363,17 +4420,20 @@ picomatch$1.toRegex = (source, options) => {
4363
4420
  * @return {Object}
4364
4421
  */
4365
4422
 
4366
- picomatch$1.constants = constants;
4423
+ picomatch.constants = constants;
4367
4424
 
4368
4425
  /**
4369
4426
  * Expose "picomatch"
4370
4427
  */
4371
4428
 
4372
- var picomatch_1 = picomatch$1;
4429
+ var picomatch_1 = picomatch;
4430
+
4431
+ (function (module) {
4373
4432
 
4374
- var picomatch = picomatch_1;
4433
+ module.exports = picomatch_1;
4434
+ } (picomatch$1));
4375
4435
 
4376
- const pm = picomatch;
4436
+ const pm = /*@__PURE__*/getDefaultExportFromCjs(picomatch$1.exports);
4377
4437
 
4378
4438
  const extractors = {
4379
4439
  ArrayPattern(names, param) {
@@ -4428,7 +4488,7 @@ const normalizePath = function normalizePath(filename) {
4428
4488
 
4429
4489
  function getMatcherString(id, resolutionBase) {
4430
4490
  if (resolutionBase === false || isAbsolute$1(id) || id.startsWith('*')) {
4431
- return id;
4491
+ return normalizePath(id);
4432
4492
  }
4433
4493
  // resolve('') is valid and will default to process.cwd()
4434
4494
  const basePath = normalizePath(resolve(resolutionBase || ''))
@@ -4438,7 +4498,7 @@ function getMatcherString(id, resolutionBase) {
4438
4498
  // 1. the basePath has been normalized to use /
4439
4499
  // 2. the incoming glob (id) matcher, also uses /
4440
4500
  // otherwise Node will force backslash (\) on windows
4441
- return posix.join(basePath, id);
4501
+ return posix.join(basePath, normalizePath(id));
4442
4502
  }
4443
4503
  const createFilter = function createFilter(include, exclude, options) {
4444
4504
  const resolutionBase = options && options.resolve;
@@ -6866,6 +6926,7 @@ const knownGlobals = {
6866
6926
  getOwnPropertyNames: PF,
6867
6927
  getOwnPropertySymbols: PF,
6868
6928
  getPrototypeOf: PF,
6929
+ hasOwn: PF,
6869
6930
  is: PF,
6870
6931
  isExtensible: PF,
6871
6932
  isFrozen: PF,
@@ -12510,7 +12571,10 @@ class Module {
12510
12571
  return [this.exportShimVariable];
12511
12572
  }
12512
12573
  const name = exportDeclaration.localName;
12513
- const variable = this.traceVariable(name, importerForSideEffects);
12574
+ const variable = this.traceVariable(name, {
12575
+ importerForSideEffects,
12576
+ searchedNamesAndModules
12577
+ });
12514
12578
  if (importerForSideEffects) {
12515
12579
  getOrCreate(importerForSideEffects.sideEffectDependenciesByVariable, variable, () => new Set()).add(this);
12516
12580
  setAlternativeExporterIfCyclic(variable, importerForSideEffects, this);
@@ -12628,7 +12692,7 @@ class Module {
12628
12692
  // By default, `id` is the file name. Custom resolvers and loaders
12629
12693
  // can change that, but it makes sense to use it for the source file name
12630
12694
  const fileName = this.id;
12631
- this.magicString = new MagicString$1(code, {
12695
+ this.magicString = new MagicString(code, {
12632
12696
  filename: (this.excludeFromSourcemap ? null : fileName),
12633
12697
  indentExclusionRanges: []
12634
12698
  });
@@ -12685,7 +12749,7 @@ class Module {
12685
12749
  transformFiles: this.transformFiles
12686
12750
  };
12687
12751
  }
12688
- traceVariable(name, importerForSideEffects) {
12752
+ traceVariable(name, { importerForSideEffects, isExportAllSearch, searchedNamesAndModules } = EMPTY_OBJECT) {
12689
12753
  const localVariable = this.scope.variables.get(name);
12690
12754
  if (localVariable) {
12691
12755
  return localVariable;
@@ -12696,9 +12760,7 @@ class Module {
12696
12760
  if (otherModule instanceof Module && importDeclaration.name === '*') {
12697
12761
  return otherModule.namespace;
12698
12762
  }
12699
- const [declaration] = otherModule.getVariableForExportName(importDeclaration.name, {
12700
- importerForSideEffects: importerForSideEffects || this
12701
- });
12763
+ const [declaration] = getVariableForExportNameRecursive(otherModule, importDeclaration.name, importerForSideEffects || this, isExportAllSearch, searchedNamesAndModules);
12702
12764
  if (!declaration) {
12703
12765
  return this.error(errMissingExport(importDeclaration.name, this.id, otherModule.id), importDeclaration.start);
12704
12766
  }
@@ -12903,7 +12965,10 @@ class Module {
12903
12965
  if (module.info.syntheticNamedExports === name) {
12904
12966
  continue;
12905
12967
  }
12906
- const [variable, indirectExternal] = getVariableForExportNameRecursive(module, name, importerForSideEffects, true, searchedNamesAndModules);
12968
+ const [variable, indirectExternal] = getVariableForExportNameRecursive(module, name, importerForSideEffects, true,
12969
+ // We are creating a copy to handle the case where the same binding is
12970
+ // imported through different namespace reexports gracefully
12971
+ copyNameToModulesMap(searchedNamesAndModules));
12907
12972
  if (module instanceof ExternalModule || indirectExternal) {
12908
12973
  foundExternalDeclarations.add(variable);
12909
12974
  }
@@ -13019,6 +13084,8 @@ function setAlternativeExporterIfCyclic(variable, importer, reexporter) {
13019
13084
  }
13020
13085
  }
13021
13086
  }
13087
+ const copyNameToModulesMap = (searchedNamesAndModules) => searchedNamesAndModules &&
13088
+ new Map(Array.from(searchedNamesAndModules, ([name, modules]) => [name, new Set(modules)]));
13022
13089
 
13023
13090
  function removeJsExtension(name) {
13024
13091
  return name.endsWith('.js') ? name.slice(0, -3) : name;
@@ -14664,7 +14731,7 @@ class Chunk {
14664
14731
  if (namespace.renderFirst())
14665
14732
  hoistedSource += n + rendered;
14666
14733
  else
14667
- magicString.addSource(new MagicString$1(rendered));
14734
+ magicString.addSource(new MagicString(rendered));
14668
14735
  }
14669
14736
  }
14670
14737
  const { renderedExports, removedExports } = module.getRenderedExports();
@@ -16048,6 +16115,20 @@ function addModuleToManualChunk(alias, module, manualChunkAliasByEntry) {
16048
16115
  manualChunkAliasByEntry.set(module, alias);
16049
16116
  }
16050
16117
 
16118
+ // This file was generated. Do not modify manually!
16119
+ 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];
16120
+
16121
+ // This file was generated. Do not modify manually!
16122
+ 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];
16123
+
16124
+ // This file was generated. Do not modify manually!
16125
+ 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";
16126
+
16127
+ // This file was generated. Do not modify manually!
16128
+ 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";
16129
+
16130
+ // These are a run-length and offset encoded representation of the
16131
+
16051
16132
  // Reserved word lists for various dialects of the language
16052
16133
 
16053
16134
  var reservedWords = {
@@ -16072,31 +16153,9 @@ var keywordRelationalOperator = /^in(stanceof)?$/;
16072
16153
 
16073
16154
  // ## Character categories
16074
16155
 
16075
- // Big ugly regular expressions that match characters in the
16076
- // whitespace, identifier, and identifier-start categories. These
16077
- // are only applied when a character is found to actually have a
16078
- // code point above 128.
16079
- // Generated by `bin/generate-identifier-regex.js`.
16080
- 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";
16081
- 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";
16082
-
16083
16156
  var nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]");
16084
16157
  var nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]");
16085
16158
 
16086
- nonASCIIidentifierStartChars = nonASCIIidentifierChars = null;
16087
-
16088
- // These are a run-length and offset encoded representation of the
16089
- // >0xffff code points that are a valid part of identifiers. The
16090
- // offset starts at 0x10000, and each pair of numbers represents an
16091
- // offset to the next range, and then a size of the range. They were
16092
- // generated by bin/generate-identifier-regex.js
16093
-
16094
- // eslint-disable-next-line comma-spacing
16095
- 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];
16096
-
16097
- // eslint-disable-next-line comma-spacing
16098
- 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];
16099
-
16100
16159
  // This has a complexity linear to the value of the code. The
16101
16160
  // assumption is that looking up astral identifier characters is
16102
16161
  // rare.
@@ -16331,6 +16390,13 @@ function wordsRegexp(words) {
16331
16390
  return new RegExp("^(?:" + words.replace(/ /g, "|") + ")$")
16332
16391
  }
16333
16392
 
16393
+ function codePointToString(code) {
16394
+ // UTF-16 Decoding
16395
+ if (code <= 0xFFFF) { return String.fromCharCode(code) }
16396
+ code -= 0x10000;
16397
+ return String.fromCharCode((code >> 10) + 0xD800, (code & 1023) + 0xDC00)
16398
+ }
16399
+
16334
16400
  var loneSurrogate = /(?:[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])/;
16335
16401
 
16336
16402
  // These are used when `options.locations` is on, for the
@@ -16698,6 +16764,7 @@ var pp$9 = Parser.prototype;
16698
16764
 
16699
16765
  var literal = /^(?:'((?:\\.|[^'\\])*?)'|"((?:\\.|[^"\\])*?)")/;
16700
16766
  pp$9.strictDirective = function(start) {
16767
+ if (this.options.ecmaVersion < 5) { return false }
16701
16768
  for (;;) {
16702
16769
  // Try to find string literal.
16703
16770
  skipWhiteSpace.lastIndex = start;
@@ -16800,14 +16867,14 @@ pp$9.unexpected = function(pos) {
16800
16867
  this.raise(pos != null ? pos : this.start, "Unexpected token");
16801
16868
  };
16802
16869
 
16803
- function DestructuringErrors() {
16870
+ var DestructuringErrors = function DestructuringErrors() {
16804
16871
  this.shorthandAssign =
16805
16872
  this.trailingComma =
16806
16873
  this.parenthesizedAssign =
16807
16874
  this.parenthesizedBind =
16808
16875
  this.doubleProto =
16809
16876
  -1;
16810
- }
16877
+ };
16811
16878
 
16812
16879
  pp$9.checkPatternErrors = function(refDestructuringErrors, isAssign) {
16813
16880
  if (!refDestructuringErrors) { return }
@@ -17688,7 +17755,7 @@ pp$8.parseExport = function(node, exports) {
17688
17755
  if (this.options.ecmaVersion >= 11) {
17689
17756
  if (this.eatContextual("as")) {
17690
17757
  node.exported = this.parseModuleExportName();
17691
- this.checkExport(exports, node.exported.name, this.lastTokStart);
17758
+ this.checkExport(exports, node.exported, this.lastTokStart);
17692
17759
  } else {
17693
17760
  node.exported = null;
17694
17761
  }
@@ -17722,7 +17789,7 @@ pp$8.parseExport = function(node, exports) {
17722
17789
  if (node.declaration.type === "VariableDeclaration")
17723
17790
  { this.checkVariableExport(exports, node.declaration.declarations); }
17724
17791
  else
17725
- { this.checkExport(exports, node.declaration.id.name, node.declaration.id.start); }
17792
+ { this.checkExport(exports, node.declaration.id, node.declaration.id.start); }
17726
17793
  node.specifiers = [];
17727
17794
  node.source = null;
17728
17795
  } else { // export { x, y as z } [from '...']
@@ -17754,6 +17821,8 @@ pp$8.parseExport = function(node, exports) {
17754
17821
 
17755
17822
  pp$8.checkExport = function(exports, name, pos) {
17756
17823
  if (!exports) { return }
17824
+ if (typeof name !== "string")
17825
+ { name = name.type === "Identifier" ? name.name : name.value; }
17757
17826
  if (hasOwn(exports, name))
17758
17827
  { this.raiseRecoverable(pos, "Duplicate export '" + name + "'"); }
17759
17828
  exports[name] = true;
@@ -17762,7 +17831,7 @@ pp$8.checkExport = function(exports, name, pos) {
17762
17831
  pp$8.checkPatternExport = function(exports, pat) {
17763
17832
  var type = pat.type;
17764
17833
  if (type === "Identifier")
17765
- { this.checkExport(exports, pat.name, pat.start); }
17834
+ { this.checkExport(exports, pat, pat.start); }
17766
17835
  else if (type === "ObjectPattern")
17767
17836
  { for (var i = 0, list = pat.properties; i < list.length; i += 1)
17768
17837
  {
@@ -17822,7 +17891,7 @@ pp$8.parseExportSpecifiers = function(exports) {
17822
17891
  node.exported = this.eatContextual("as") ? this.parseModuleExportName() : node.local;
17823
17892
  this.checkExport(
17824
17893
  exports,
17825
- node.exported[node.exported.type === "Identifier" ? "name" : "value"],
17894
+ node.exported,
17826
17895
  node.exported.start
17827
17896
  );
17828
17897
  nodes.push(this.finishNode(node, "ExportSpecifier"));
@@ -19812,12 +19881,6 @@ RegExpValidationState.prototype.eat = function eat (ch, forceU) {
19812
19881
  return false
19813
19882
  };
19814
19883
 
19815
- function codePointToString$1(ch) {
19816
- if (ch <= 0xFFFF) { return String.fromCharCode(ch) }
19817
- ch -= 0x10000;
19818
- return String.fromCharCode((ch >> 10) + 0xD800, (ch & 0x03FF) + 0xDC00)
19819
- }
19820
-
19821
19884
  /**
19822
19885
  * Validate the flags part of a given RegExpLiteral.
19823
19886
  *
@@ -20182,9 +20245,9 @@ pp$1.regexp_eatGroupName = function(state) {
20182
20245
  pp$1.regexp_eatRegExpIdentifierName = function(state) {
20183
20246
  state.lastStringValue = "";
20184
20247
  if (this.regexp_eatRegExpIdentifierStart(state)) {
20185
- state.lastStringValue += codePointToString$1(state.lastIntValue);
20248
+ state.lastStringValue += codePointToString(state.lastIntValue);
20186
20249
  while (this.regexp_eatRegExpIdentifierPart(state)) {
20187
- state.lastStringValue += codePointToString$1(state.lastIntValue);
20250
+ state.lastStringValue += codePointToString(state.lastIntValue);
20188
20251
  }
20189
20252
  return true
20190
20253
  }
@@ -20536,7 +20599,7 @@ pp$1.regexp_eatUnicodePropertyName = function(state) {
20536
20599
  var ch = 0;
20537
20600
  state.lastStringValue = "";
20538
20601
  while (isUnicodePropertyNameCharacter(ch = state.current())) {
20539
- state.lastStringValue += codePointToString$1(ch);
20602
+ state.lastStringValue += codePointToString(ch);
20540
20603
  state.advance();
20541
20604
  }
20542
20605
  return state.lastStringValue !== ""
@@ -20551,7 +20614,7 @@ pp$1.regexp_eatUnicodePropertyValue = function(state) {
20551
20614
  var ch = 0;
20552
20615
  state.lastStringValue = "";
20553
20616
  while (isUnicodePropertyValueCharacter(ch = state.current())) {
20554
- state.lastStringValue += codePointToString$1(ch);
20617
+ state.lastStringValue += codePointToString(ch);
20555
20618
  state.advance();
20556
20619
  }
20557
20620
  return state.lastStringValue !== ""
@@ -21334,13 +21397,6 @@ pp.readCodePoint = function() {
21334
21397
  return code
21335
21398
  };
21336
21399
 
21337
- function codePointToString(code) {
21338
- // UTF-16 Decoding
21339
- if (code <= 0xFFFF) { return String.fromCharCode(code) }
21340
- code -= 0x10000;
21341
- return String.fromCharCode((code >> 10) + 0xD800, (code & 1023) + 0xDC00)
21342
- }
21343
-
21344
21400
  pp.readString = function(quote) {
21345
21401
  var out = "", chunkStart = ++this.pos;
21346
21402
  for (;;) {
@@ -21585,7 +21641,7 @@ pp.readWord = function() {
21585
21641
 
21586
21642
  // Acorn is a tiny, fast JavaScript parser written in JavaScript.
21587
21643
 
21588
- var version = "8.7.0";
21644
+ var version = "8.7.1";
21589
21645
 
21590
21646
  Parser.acorn = {
21591
21647
  Parser: Parser,
@@ -21894,7 +21950,7 @@ async function transform(source, module, pluginDriver, warn) {
21894
21950
  getCombinedSourcemap() {
21895
21951
  const combinedMap = collapseSourcemap(id, originalCode, originalSourcemap, sourcemapChain, warn);
21896
21952
  if (!combinedMap) {
21897
- const magicString = new MagicString$1(originalCode);
21953
+ const magicString = new MagicString(originalCode);
21898
21954
  return magicString.generateMap({ hires: true, includeContent: true, source: id });
21899
21955
  }
21900
21956
  if (originalSourcemap !== combinedMap) {
@@ -23026,8 +23082,7 @@ const objectifyOptionWithPresets = (presets, optionName, additionalValues) => (v
23026
23082
  return objectifyOption(value);
23027
23083
  };
23028
23084
  const getOptionWithPreset = (value, presets, optionName, additionalValues) => {
23029
- var _a;
23030
- const presetName = (_a = value) === null || _a === void 0 ? void 0 : _a.preset;
23085
+ const presetName = value === null || value === void 0 ? void 0 : value.preset;
23031
23086
  if (presetName) {
23032
23087
  const preset = presets[presetName];
23033
23088
  if (preset) {
@@ -23755,4 +23810,4 @@ function watch(configs) {
23755
23810
  return emitter;
23756
23811
  }
23757
23812
 
23758
- export { createFilter, defaultOnWarn, defineConfig, ensureArray, fseventsImporter, generatedCodePresets, getAugmentedNamespace, objectifyOption, objectifyOptionWithPresets, picomatch, rollup, rollupInternal, treeshakePresets, version$1 as version, warnUnknownOptions, watch };
23813
+ export { createFilter, defaultOnWarn, defineConfig, ensureArray, fseventsImporter, generatedCodePresets, getAugmentedNamespace, objectifyOption, objectifyOptionWithPresets, picomatch$1 as picomatch, rollup, rollupInternal, treeshakePresets, version$1 as version, warnUnknownOptions, watch };