@rollup/wasm-node 4.62.5 → 4.63.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.
package/dist/bin/rollup CHANGED
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env node
2
2
  /*
3
3
  @license
4
- Rollup.js v4.62.5
5
- Thu, 20 Aug 2026 16:59:36 GMT - commit c20402e2d4498a5861a4f49e00b2e7446c9900bb
4
+ Rollup.js v4.63.1
5
+ Fri, 28 Aug 2026 05:58:50 GMT - commit 78bfef0cb94479566f81012fafa372c84b90bd34
6
6
 
7
7
  https://github.com/rollup/rollup
8
8
 
@@ -27,7 +27,7 @@ require('node:perf_hooks');
27
27
  require('node:url');
28
28
  require('../getLogFilter.js');
29
29
 
30
- const help = "rollup version 4.62.5\n=====================================\n\nUsage: rollup [options] <entry file>\n\nOptions:\n\n-c, --config <filename> Use this config file (if argument is used but value\n is unspecified, Rollup will try to load configuration files in\n the following order:\n rollup.config.mjs -> rollup.config.cjs -> rollup.config.js)\n-d, --dir <dirname> Directory for chunks (if absent, prints to stdout)\n-e, --external <ids> Comma-separate list of module IDs to exclude\n-f, --format <format> Type of output (amd, cjs, es, iife, umd, system)\n-g, --globals <pairs> Comma-separate list of `moduleID:Global` pairs\n-h, --help Show this help message\n-i, --input <filename> Input (alternative to <entry file>)\n-m, --sourcemap Generate sourcemap (`-m inline` for inline map)\n-n, --name <name> Name for UMD export\n-o, --file <output> Single output file (if absent, prints to stdout)\n-p, --plugin <plugin> Use the plugin specified (may be repeated)\n-v, --version Show version number\n-w, --watch Watch files in bundle and rebuild on changes\n--amd.autoId Generate the AMD ID based off the chunk name\n--amd.basePath <prefix> Path to prepend to auto generated AMD ID\n--amd.define <name> Function to use in place of `define`\n--amd.forceJsExtensionForImports Use `.js` extension in AMD imports\n--amd.id <id> ID for AMD module (default is anonymous)\n--assetFileNames <pattern> Name pattern for emitted assets\n--banner <text> Code to insert at top of bundle (outside wrapper)\n--chunkFileNames <pattern> Name pattern for emitted secondary chunks\n--compact Minify wrapper code\n--context <variable> Specify top-level `this` value\n--no-dynamicImportInCjs Write external dynamic CommonJS imports as require\n--entryFileNames <pattern> Name pattern for emitted entry chunks\n--environment <values> Settings passed to config file (see example)\n--no-esModule Do not add __esModule property\n--exports <mode> Specify export mode (auto, default, named, none)\n--extend Extend global variable defined by --name\n--no-externalImportAttributes Omit import attributes in \"es\" output\n--no-externalLiveBindings Do not generate code to support live bindings\n--failAfterWarnings Exit with an error if the build produced warnings\n--filterLogs <filter> Filter log messages\n--footer <text> Code to insert at end of bundle (outside wrapper)\n--forceExit Force exit the process when done\n--no-freeze Do not freeze namespace objects\n--generatedCode <preset> Which code features to use (es5/es2015)\n--generatedCode.arrowFunctions Use arrow functions in generated code\n--generatedCode.constBindings Use \"const\" in generated code\n--generatedCode.objectShorthand Use shorthand properties in generated code\n--no-generatedCode.reservedNamesAsProps Always quote reserved names as props\n--generatedCode.symbols Use symbols in generated code\n--hashCharacters <name> Use the specified character set for file hashes\n--no-hoistTransitiveImports Do not hoist transitive imports into entry chunks\n--importAttributesKey <name> Use the specified keyword for import attributes\n--no-indent Don't indent result\n--inlineDynamicImports Create single bundle when using dynamic imports\n--no-interop Do not include interop block\n--intro <text> Code to insert at top of bundle (inside wrapper)\n--logLevel <level> Which kind of logs to display\n--no-makeAbsoluteExternalsRelative Prevent normalization of external imports\n--maxParallelFileOps <value> How many files to read in parallel\n--minifyInternalExports Force or disable minification of internal exports\n--noConflict Generate a noConflict method for UMD globals\n--outro <text> Code to insert at end of bundle (inside wrapper)\n--perf Display performance timings\n--no-preserveEntrySignatures Avoid facade chunks for entry points\n--preserveModules Preserve module structure\n--preserveModulesRoot Put preserved modules under this path at root level\n--preserveSymlinks Do not follow symlinks when resolving files\n--no-reexportProtoFromExternal Ignore `__proto__` in star re-exports\n--no-sanitizeFileName Do not replace invalid characters in file names\n--shimMissingExports Create shim variables for missing exports\n--silent Don't print warnings\n--sourcemapBaseUrl <url> Emit absolute sourcemap URLs with given base\n--sourcemapDebugIds Emit unique debug ids in source and sourcemaps\n--sourcemapExcludeSources Do not include source code in source maps\n--sourcemapFile <file> Specify bundle position for source maps\n--sourcemapFileNames <pattern> Name pattern for emitted sourcemaps\n--stdin=ext Specify file extension used for stdin input\n--no-stdin Do not read \"-\" from stdin\n--no-strict Don't emit `\"use strict\";` in the generated modules\n--strictDeprecations Throw errors for deprecated features\n--no-systemNullSetters Do not replace empty SystemJS setters with `null`\n--no-treeshake Disable tree-shaking optimisations\n--no-treeshake.annotations Ignore pure call annotations\n--treeshake.correctVarValueBeforeDeclaration Deoptimize variables until declared\n--treeshake.manualPureFunctions <names> Manually declare functions as pure\n--no-treeshake.moduleSideEffects Assume modules have no side effects\n--no-treeshake.propertyReadSideEffects Ignore property access side effects\n--no-treeshake.tryCatchDeoptimization Do not turn off try-catch-tree-shaking\n--no-treeshake.unknownGlobalSideEffects Assume unknown globals do not throw\n--validate Validate output\n--waitForBundleInput Wait for bundle input files\n--watch.allowInputInsideOutputPath Whether the input path is allowed to be a\n subpath of the output path\n--watch.buildDelay <number> Throttle watch rebuilds\n--no-watch.clearScreen Do not clear the screen when rebuilding\n--watch.exclude <files> Exclude files from being watched\n--watch.include <files> Limit watching to specified files\n--watch.onBundleEnd <cmd> Shell command to run on `\"BUNDLE_END\"` event\n--watch.onBundleStart <cmd> Shell command to run on `\"BUNDLE_START\"` event\n--watch.onEnd <cmd> Shell command to run on `\"END\"` event\n--watch.onError <cmd> Shell command to run on `\"ERROR\"` event\n--watch.onStart <cmd> Shell command to run on `\"START\"` event\n--watch.skipWrite Do not write files to disk when watching\n\nExamples:\n\n# use settings in config file\nrollup -c\n\n# in config file, process.env.INCLUDE_DEPS === 'true'\n# and process.env.BUILD === 'production'\nrollup -c --environment INCLUDE_DEPS,BUILD:production\n\n# create CommonJS bundle.js from src/main.js\nrollup --format=cjs --file=bundle.js -- src/main.js\n\n# create self-executing IIFE using `window.jQuery`\n# and `window._` as external globals\nrollup -f iife --globals jquery:jQuery,lodash:_ \\\n -i src/app.js -o build/app.js -m build/app.js.map\n\nNotes:\n\n* When piping to stdout, only inline sourcemaps are permitted\n\nFor more information visit https://rollupjs.org\n";
30
+ const help = "rollup version 4.63.1\n=====================================\n\nUsage: rollup [options] <entry file>\n\nOptions:\n\n-c, --config <filename> Use this config file (if argument is used but value\n is unspecified, Rollup will try to load configuration files in\n the following order:\n rollup.config.mjs -> rollup.config.cjs -> rollup.config.js)\n-d, --dir <dirname> Directory for chunks (if absent, prints to stdout)\n-e, --external <ids> Comma-separate list of module IDs to exclude\n-f, --format <format> Type of output (amd, cjs, es, iife, umd, system)\n-g, --globals <pairs> Comma-separate list of `moduleID:Global` pairs\n-h, --help Show this help message\n-i, --input <filename> Input (alternative to <entry file>)\n-m, --sourcemap Generate sourcemap (`-m inline` for inline map)\n-n, --name <name> Name for UMD export\n-o, --file <output> Single output file (if absent, prints to stdout)\n-p, --plugin <plugin> Use the plugin specified (may be repeated)\n-v, --version Show version number\n-w, --watch Watch files in bundle and rebuild on changes\n--amd.autoId Generate the AMD ID based off the chunk name\n--amd.basePath <prefix> Path to prepend to auto generated AMD ID\n--amd.define <name> Function to use in place of `define`\n--amd.forceJsExtensionForImports Use `.js` extension in AMD imports\n--amd.id <id> ID for AMD module (default is anonymous)\n--assetFileNames <pattern> Name pattern for emitted assets\n--banner <text> Code to insert at top of bundle (outside wrapper)\n--chunkFileNames <pattern> Name pattern for emitted secondary chunks\n--compact Minify wrapper code\n--context <variable> Specify top-level `this` value\n--no-dynamicImportInCjs Write external dynamic CommonJS imports as require\n--entryFileNames <pattern> Name pattern for emitted entry chunks\n--environment <values> Settings passed to config file (see example)\n--no-esModule Do not add __esModule property\n--exports <mode> Specify export mode (auto, default, named, none)\n--extend Extend global variable defined by --name\n--no-externalImportAttributes Omit import attributes in \"es\" output\n--no-externalLiveBindings Do not generate code to support live bindings\n--failAfterWarnings Exit with an error if the build produced warnings\n--filterLogs <filter> Filter log messages\n--footer <text> Code to insert at end of bundle (outside wrapper)\n--forceExit Force exit the process when done\n--no-freeze Do not freeze namespace objects\n--generatedCode <preset> Which code features to use (es5/es2015)\n--generatedCode.arrowFunctions Use arrow functions in generated code\n--generatedCode.constBindings Use \"const\" in generated code\n--generatedCode.objectShorthand Use shorthand properties in generated code\n--no-generatedCode.reservedNamesAsProps Always quote reserved names as props\n--generatedCode.symbols Use symbols in generated code\n--hashCharacters <name> Use the specified character set for file hashes\n--no-hoistTransitiveImports Do not hoist transitive imports into entry chunks\n--importAttributesKey <name> Use the specified keyword for import attributes\n--no-indent Don't indent result\n--inlineDynamicImports Create single bundle when using dynamic imports\n--no-interop Do not include interop block\n--intro <text> Code to insert at top of bundle (inside wrapper)\n--logLevel <level> Which kind of logs to display\n--no-makeAbsoluteExternalsRelative Prevent normalization of external imports\n--maxParallelFileOps <value> How many files to read in parallel\n--minifyInternalExports Force or disable minification of internal exports\n--noConflict Generate a noConflict method for UMD globals\n--outro <text> Code to insert at end of bundle (inside wrapper)\n--perf Display performance timings\n--no-preserveEntrySignatures Avoid facade chunks for entry points\n--preserveModules Preserve module structure\n--preserveModulesRoot Put preserved modules under this path at root level\n--preserveSymlinks Do not follow symlinks when resolving files\n--no-reexportProtoFromExternal Ignore `__proto__` in star re-exports\n--no-sanitizeFileName Do not replace invalid characters in file names\n--shimMissingExports Create shim variables for missing exports\n--silent Don't print warnings\n--sourcemapBaseUrl <url> Emit absolute sourcemap URLs with given base\n--sourcemapDebugIds Emit unique debug ids in source and sourcemaps\n--sourcemapExcludeSources Do not include source code in source maps\n--sourcemapFile <file> Specify bundle position for source maps\n--sourcemapFileNames <pattern> Name pattern for emitted sourcemaps\n--stdin=ext Specify file extension used for stdin input\n--no-stdin Do not read \"-\" from stdin\n--no-strict Don't emit `\"use strict\";` in the generated modules\n--strictDeprecations Throw errors for deprecated features\n--no-systemNullSetters Do not replace empty SystemJS setters with `null`\n--no-treeshake Disable tree-shaking optimisations\n--no-treeshake.annotations Ignore pure call annotations\n--treeshake.correctVarValueBeforeDeclaration Deoptimize variables until declared\n--treeshake.manualPureFunctions <names> Manually declare functions as pure\n--no-treeshake.moduleSideEffects Assume modules have no side effects\n--no-treeshake.propertyReadSideEffects Ignore property access side effects\n--no-treeshake.tryCatchDeoptimization Do not turn off try-catch-tree-shaking\n--no-treeshake.unknownGlobalSideEffects Assume unknown globals do not throw\n--validate Validate output\n--waitForBundleInput Wait for bundle input files\n--watch.allowInputInsideOutputPath Whether the input path is allowed to be a\n subpath of the output path\n--watch.buildDelay <number> Throttle watch rebuilds\n--no-watch.clearScreen Do not clear the screen when rebuilding\n--watch.exclude <files> Exclude files from being watched\n--watch.include <files> Limit watching to specified files\n--watch.onBundleEnd <cmd> Shell command to run on `\"BUNDLE_END\"` event\n--watch.onBundleStart <cmd> Shell command to run on `\"BUNDLE_START\"` event\n--watch.onEnd <cmd> Shell command to run on `\"END\"` event\n--watch.onError <cmd> Shell command to run on `\"ERROR\"` event\n--watch.onStart <cmd> Shell command to run on `\"START\"` event\n--watch.skipWrite Do not write files to disk when watching\n\nExamples:\n\n# use settings in config file\nrollup -c\n\n# in config file, process.env.INCLUDE_DEPS === 'true'\n# and process.env.BUILD === 'production'\nrollup -c --environment INCLUDE_DEPS,BUILD:production\n\n# create CommonJS bundle.js from src/main.js\nrollup --format=cjs --file=bundle.js -- src/main.js\n\n# create self-executing IIFE using `window.jQuery`\n# and `window._` as external globals\nrollup -f iife --globals jquery:jQuery,lodash:_ \\\n -i src/app.js -o build/app.js -m build/app.js.map\n\nNotes:\n\n* When piping to stdout, only inline sourcemaps are permitted\n\nFor more information visit https://rollupjs.org\n";
31
31
 
32
32
  /**
33
33
  * @license
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.62.5
4
- Thu, 20 Aug 2026 16:59:36 GMT - commit c20402e2d4498a5861a4f49e00b2e7446c9900bb
3
+ Rollup.js v4.63.1
4
+ Fri, 28 Aug 2026 05:58:50 GMT - commit 78bfef0cb94479566f81012fafa372c84b90bd34
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.62.5
4
- Thu, 20 Aug 2026 16:59:36 GMT - commit c20402e2d4498a5861a4f49e00b2e7446c9900bb
3
+ Rollup.js v4.63.1
4
+ Fri, 28 Aug 2026 05:58:50 GMT - commit 78bfef0cb94479566f81012fafa372c84b90bd34
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
package/dist/es/rollup.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.62.5
4
- Thu, 20 Aug 2026 16:59:36 GMT - commit c20402e2d4498a5861a4f49e00b2e7446c9900bb
3
+ Rollup.js v4.63.1
4
+ Fri, 28 Aug 2026 05:58:50 GMT - commit 78bfef0cb94479566f81012fafa372c84b90bd34
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.62.5
4
- Thu, 20 Aug 2026 16:59:36 GMT - commit c20402e2d4498a5861a4f49e00b2e7446c9900bb
3
+ Rollup.js v4.63.1
4
+ Fri, 28 Aug 2026 05:58:50 GMT - commit 78bfef0cb94479566f81012fafa372c84b90bd34
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
@@ -27,7 +27,7 @@ function _mergeNamespaces(n, m) {
27
27
  return Object.defineProperty(n, Symbol.toStringTag, { value: 'Module' });
28
28
  }
29
29
 
30
- var version = "4.62.5";
30
+ var version = "4.63.1";
31
31
  const pkg = {
32
32
  version: version};
33
33
 
@@ -344,13 +344,27 @@ var Chunk$1 = class Chunk {
344
344
  }
345
345
  };
346
346
  //#endregion
347
+ //#region src/MagicStringError.ts
348
+ /**
349
+ * The single error type thrown by MagicString.
350
+ *
351
+ * Every message is prefixed with `[MagicString]` so its source is obvious at a
352
+ * glance, and is kept short and consistent in tone.
353
+ */
354
+ var MagicStringError = class extends Error {
355
+ name = "MagicStringError";
356
+ constructor(message, options) {
357
+ super(`[MagicString] ${message}`, options);
358
+ }
359
+ };
360
+ //#endregion
347
361
  //#region src/SourceMap.ts
348
362
  function getBtoa() {
349
363
  if (typeof globalThis !== "undefined" && typeof globalThis.btoa === "function") return (str) => globalThis.btoa(unescape(encodeURIComponent(str)));
350
364
  const buffer = globalThis["Buffer"];
351
365
  if (buffer) return (str) => buffer.from(str, "utf-8").toString("base64");
352
366
  return () => {
353
- throw new Error("Unsupported environment: `window.btoa` or `Buffer` should be supported.");
367
+ throw new MagicStringError("unsupported environment: `btoa` or `Buffer` is required");
354
368
  };
355
369
  }
356
370
  const btoa = /* #__PURE__ */ getBtoa();
@@ -579,11 +593,11 @@ var MagicString = class MagicString {
579
593
  },
580
594
  byStart: {
581
595
  writable: true,
582
- value: {}
596
+ value: /* @__PURE__ */ new Map([[0, chunk]])
583
597
  },
584
598
  byEnd: {
585
599
  writable: true,
586
- value: {}
600
+ value: /* @__PURE__ */ new Map([[string.length, chunk]])
587
601
  },
588
602
  filename: {
589
603
  writable: true,
@@ -612,10 +626,12 @@ var MagicString = class MagicString {
612
626
  offset: {
613
627
  writable: true,
614
628
  value: options.offset || 0
629
+ },
630
+ hasMovedChunks: {
631
+ writable: true,
632
+ value: false
615
633
  }
616
634
  });
617
- this.byStart = /* @__PURE__ */ new Map([[0, chunk]]);
618
- this.byEnd = /* @__PURE__ */ new Map([[string.length, chunk]]);
619
635
  }
620
636
  /**
621
637
  * Adds the specified character index (with respect to the original string) to sourcemap mappings, if `hires` is false.
@@ -627,7 +643,7 @@ var MagicString = class MagicString {
627
643
  * Appends the specified content to the end of the string.
628
644
  */
629
645
  append(content) {
630
- if (typeof content !== "string") throw new TypeError("outro content must be a string");
646
+ if (typeof content !== "string") throw new MagicStringError(`content must be a string, got ${typeof content}`);
631
647
  this.outro += content;
632
648
  return this;
633
649
  }
@@ -638,7 +654,7 @@ var MagicString = class MagicString {
638
654
  */
639
655
  appendLeft(index, content) {
640
656
  index = index + this.offset;
641
- if (typeof content !== "string") throw new TypeError("inserted content must be a string");
657
+ if (typeof content !== "string") throw new MagicStringError(`content must be a string, got ${typeof content}`);
642
658
  this._split(index);
643
659
  const chunk = this.byEnd.get(index);
644
660
  if (chunk) chunk.appendLeft(content);
@@ -652,7 +668,7 @@ var MagicString = class MagicString {
652
668
  */
653
669
  appendRight(index, content) {
654
670
  index = index + this.offset;
655
- if (typeof content !== "string") throw new TypeError("inserted content must be a string");
671
+ if (typeof content !== "string") throw new MagicStringError(`content must be a string, got ${typeof content}`);
656
672
  this._split(index);
657
673
  const chunk = this.byStart.get(index);
658
674
  if (chunk) chunk.appendRight(content);
@@ -665,6 +681,7 @@ var MagicString = class MagicString {
665
681
  clone() {
666
682
  const cloned = new MagicString(this.original, {
667
683
  filename: this.filename,
684
+ ignoreList: this.ignoreList,
668
685
  offset: this.offset
669
686
  });
670
687
  let originalChunk = this.firstChunk;
@@ -684,8 +701,10 @@ var MagicString = class MagicString {
684
701
  cloned.lastChunk = clonedChunk;
685
702
  if (this.indentExclusionRanges) cloned.indentExclusionRanges = this.indentExclusionRanges.slice();
686
703
  cloned.sourcemapLocations = new BitSet(this.sourcemapLocations);
704
+ cloned.storedNames = { ...this.storedNames };
687
705
  cloned.intro = this.intro;
688
706
  cloned.outro = this.outro;
707
+ cloned.hasMovedChunks = this.hasMovedChunks;
689
708
  return cloned;
690
709
  }
691
710
  /**
@@ -814,7 +833,7 @@ var MagicString = class MagicString {
814
833
  }
815
834
  /** @internal */
816
835
  insert() {
817
- throw new Error("magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)");
836
+ throw new MagicStringError("insert() is deprecated, use appendLeft() or prependRight()");
818
837
  }
819
838
  /** @internal */
820
839
  insertLeft(index, content) {
@@ -840,12 +859,19 @@ var MagicString = class MagicString {
840
859
  end = end + this.offset;
841
860
  index = index + this.offset;
842
861
  if (start === end) return this;
843
- if (index >= start && index <= end) throw new Error("Cannot move a selection inside itself");
862
+ if (index >= start && index <= end) throw new MagicStringError("cannot move a selection inside itself");
844
863
  this._split(start);
845
864
  this._split(end);
846
865
  this._split(index);
847
866
  const first = this.byStart.get(start);
848
867
  const last = this.byEnd.get(end);
868
+ if (this.hasMovedChunks) {
869
+ let cursor = first;
870
+ while (cursor !== last) {
871
+ cursor = cursor.next;
872
+ if (!cursor || cursor.start < start || cursor.end > end) throw new MagicStringError(`cannot move ${start} to ${end} because an earlier move split that range`);
873
+ }
874
+ }
849
875
  const oldLeft = first.previous;
850
876
  const oldRight = last.next;
851
877
  const newRight = this.byStart.get(index);
@@ -864,6 +890,7 @@ var MagicString = class MagicString {
864
890
  last.next = newRight || null;
865
891
  if (!newLeft) this.firstChunk = first;
866
892
  if (!newRight) this.lastChunk = last;
893
+ this.hasMovedChunks = true;
867
894
  return this;
868
895
  }
869
896
  /**
@@ -893,13 +920,15 @@ var MagicString = class MagicString {
893
920
  update(start, end, content, options) {
894
921
  start = start + this.offset;
895
922
  end = end + this.offset;
896
- if (typeof content !== "string") throw new TypeError("replacement content must be a string");
923
+ if (typeof content !== "string") throw new MagicStringError(`content must be a string, got ${typeof content}`);
897
924
  if (this.original.length !== 0) {
898
925
  while (start < 0) start += this.original.length;
899
926
  while (end < 0) end += this.original.length;
900
927
  }
901
- if (end > this.original.length) throw new Error("end is out of bounds");
902
- if (start === end) throw new Error("Cannot overwrite a zero-length range – use appendLeft or prependRight instead");
928
+ if (start < 0) throw new MagicStringError(`start ${start} is out of bounds`);
929
+ if (end > this.original.length) throw new MagicStringError(`end ${end} is out of bounds`);
930
+ if (start === end) throw new MagicStringError(`cannot overwrite a zero-length range at ${start}, use appendLeft() or prependRight()`);
931
+ if (start > end) throw new MagicStringError(`end must be greater than start (start: ${start}, end: ${end})`);
903
932
  this._split(start);
904
933
  this._split(end);
905
934
  if (options === true) {
@@ -925,7 +954,7 @@ var MagicString = class MagicString {
925
954
  if (first) {
926
955
  let chunk = first;
927
956
  while (chunk !== last) {
928
- if (chunk.next !== this.byStart.get(chunk.end)) throw new Error("Cannot overwrite across a split point");
957
+ if (chunk.next !== this.byStart.get(chunk.end)) throw new MagicStringError("cannot overwrite across a split point");
929
958
  chunk = chunk.next;
930
959
  chunk.edit("", false);
931
960
  }
@@ -941,7 +970,7 @@ var MagicString = class MagicString {
941
970
  * Prepends the string with the specified content.
942
971
  */
943
972
  prepend(content) {
944
- if (typeof content !== "string") throw new TypeError("outro content must be a string");
973
+ if (typeof content !== "string") throw new MagicStringError(`content must be a string, got ${typeof content}`);
945
974
  this.intro = content + this.intro;
946
975
  return this;
947
976
  }
@@ -950,7 +979,7 @@ var MagicString = class MagicString {
950
979
  */
951
980
  prependLeft(index, content) {
952
981
  index = index + this.offset;
953
- if (typeof content !== "string") throw new TypeError("inserted content must be a string");
982
+ if (typeof content !== "string") throw new MagicStringError(`content must be a string, got ${typeof content}`);
954
983
  this._split(index);
955
984
  const chunk = this.byEnd.get(index);
956
985
  if (chunk) chunk.prependLeft(content);
@@ -962,7 +991,7 @@ var MagicString = class MagicString {
962
991
  */
963
992
  prependRight(index, content) {
964
993
  index = index + this.offset;
965
- if (typeof content !== "string") throw new TypeError("inserted content must be a string");
994
+ if (typeof content !== "string") throw new MagicStringError(`content must be a string, got ${typeof content}`);
966
995
  this._split(index);
967
996
  const chunk = this.byStart.get(index);
968
997
  if (chunk) chunk.prependRight(content);
@@ -981,8 +1010,8 @@ var MagicString = class MagicString {
981
1010
  while (end < 0) end += this.original.length;
982
1011
  }
983
1012
  if (start === end) return this;
984
- if (start < 0 || end > this.original.length) throw new Error("Character is out of bounds");
985
- if (start > end) throw new Error("end must be greater than start");
1013
+ if (start < 0 || end > this.original.length) throw new MagicStringError(`range ${start}–${end} is out of bounds`);
1014
+ if (start > end) throw new MagicStringError(`end must be greater than start (start: ${start}, end: ${end})`);
986
1015
  this._split(start);
987
1016
  this._split(end);
988
1017
  let chunk = this.byStart.get(start);
@@ -1005,8 +1034,8 @@ var MagicString = class MagicString {
1005
1034
  while (end < 0) end += this.original.length;
1006
1035
  }
1007
1036
  if (start === end) return this;
1008
- if (start < 0 || end > this.original.length) throw new Error("Character is out of bounds");
1009
- if (start > end) throw new Error("end must be greater than start");
1037
+ if (start < 0 || end > this.original.length) throw new MagicStringError(`range ${start}–${end} is out of bounds`);
1038
+ if (start > end) throw new MagicStringError(`end must be greater than start (start: ${start}, end: ${end})`);
1010
1039
  this._split(start);
1011
1040
  this._split(end);
1012
1041
  let chunk = this.byStart.get(start);
@@ -1072,12 +1101,12 @@ var MagicString = class MagicString {
1072
1101
  if (chunk.start < end && chunk.end >= end) return result;
1073
1102
  chunk = chunk.next;
1074
1103
  }
1075
- if (chunk && chunk.edited && chunk.start !== start) throw new Error(`Cannot use replaced character ${start} as slice start anchor.`);
1104
+ if (chunk && chunk.edited && chunk.start !== start) throw new MagicStringError(`cannot use edited character ${start} as slice start anchor`);
1076
1105
  const startChunk = chunk;
1077
1106
  while (chunk) {
1078
1107
  if (chunk.intro && (startChunk !== chunk || chunk.start === start)) result += chunk.intro;
1079
1108
  const containsEnd = chunk.start < end && chunk.end >= end;
1080
- if (containsEnd && chunk.edited && chunk.end !== end) throw new Error(`Cannot use replaced character ${end} as slice end anchor.`);
1109
+ if (containsEnd && chunk.edited && chunk.end !== end) throw new MagicStringError(`cannot use edited character ${end} as slice end anchor`);
1081
1110
  const sliceStart = startChunk === chunk ? start - chunk.start : 0;
1082
1111
  const sliceEnd = containsEnd ? chunk.content.length + end - chunk.end : chunk.content.length;
1083
1112
  result += chunk.content.slice(sliceStart, sliceEnd);
@@ -1113,7 +1142,7 @@ var MagicString = class MagicString {
1113
1142
  _splitChunk(chunk, index) {
1114
1143
  if (chunk.edited && chunk.content.length) {
1115
1144
  const loc = getLocator(this.original)(index);
1116
- throw new Error(`Cannot split a chunk that has already been edited (${loc.line}:${loc.column} – "${chunk.original}")`);
1145
+ throw new MagicStringError(`cannot split a chunk that has already been edited (${loc.line}:${loc.column} – "${chunk.original}")`);
1117
1146
  }
1118
1147
  const newChunk = chunk.split(index);
1119
1148
  this.byEnd.set(index, chunk);
@@ -1225,7 +1254,19 @@ var MagicString = class MagicString {
1225
1254
  * Indicates if the string has been changed.
1226
1255
  */
1227
1256
  hasChanged() {
1228
- return this.original !== this.toString();
1257
+ if (this.intro || this.outro) return true;
1258
+ let outputIndex = 0;
1259
+ let chunk = this.firstChunk;
1260
+ while (chunk) {
1261
+ if (chunk.intro || chunk.outro) return true;
1262
+ if (!chunk.edited && chunk.start === outputIndex) outputIndex = chunk.end;
1263
+ else {
1264
+ if (!this.original.startsWith(chunk.content, outputIndex)) return true;
1265
+ outputIndex += chunk.content.length;
1266
+ }
1267
+ chunk = chunk.next;
1268
+ }
1269
+ return outputIndex !== this.original.length;
1229
1270
  }
1230
1271
  /** @internal */
1231
1272
  _replaceRegexp(searchValue, replacement) {
@@ -1295,7 +1336,7 @@ var MagicString = class MagicString {
1295
1336
  */
1296
1337
  replaceAll(searchValue, replacement) {
1297
1338
  if (typeof searchValue === "string") return this._replaceAllString(searchValue, replacement);
1298
- if (!searchValue.global) throw new TypeError("MagicString.prototype.replaceAll called with a non-global RegExp argument");
1339
+ if (!searchValue.global) throw new MagicStringError("replaceAll() requires a global RegExp");
1299
1340
  return this._replaceRegexp(searchValue, replacement);
1300
1341
  }
1301
1342
  };
@@ -1326,7 +1367,7 @@ var Bundle$1 = class Bundle {
1326
1367
  filename: source.filename,
1327
1368
  separator: this.separator
1328
1369
  });
1329
- if (!isObject(source) || !source.content) throw new Error("bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`");
1370
+ if (!isObject(source) || !source.content) throw new MagicStringError("addSource() requires a `content` property that is a MagicString");
1330
1371
  [
1331
1372
  "filename",
1332
1373
  "ignoreList",
@@ -1344,7 +1385,7 @@ var Bundle$1 = class Bundle {
1344
1385
  });
1345
1386
  } else {
1346
1387
  const uniqueSource = this.uniqueSources[this.uniqueSourceIndexByFilename[source.filename]];
1347
- if (source.content.original !== uniqueSource.content) throw new Error(`Illegal source: same filename (${source.filename}), different contents`);
1388
+ if (source.content.original !== uniqueSource.content) throw new MagicStringError(`duplicate filename "${source.filename}" with different content, use unique filenames`);
1348
1389
  }
1349
1390
  this.sources.push(source);
1350
1391
  return this;
@@ -1365,6 +1406,8 @@ var Bundle$1 = class Bundle {
1365
1406
  bundle.addSource({
1366
1407
  filename: source.filename,
1367
1408
  content: source.content.clone(),
1409
+ ignoreList: source.ignoreList,
1410
+ indentExclusionRanges: source.indentExclusionRanges,
1368
1411
  separator: source.separator
1369
1412
  });
1370
1413
  });
@@ -1381,7 +1424,7 @@ var Bundle$1 = class Bundle {
1381
1424
  const mappings = new Mappings(options.hires);
1382
1425
  if (this.intro) mappings.advance(this.intro);
1383
1426
  this.sources.forEach((source, i) => {
1384
- if (i > 0) mappings.advance(this.separator);
1427
+ if (i > 0) mappings.advance(source.separator !== void 0 ? source.separator : this.separator);
1385
1428
  const sourceIndex = source.filename ? this.uniqueSourceIndexByFilename[source.filename] : -1;
1386
1429
  const magicString = source.content;
1387
1430
  const locate = getLocator(magicString.original);
@@ -1459,11 +1502,17 @@ var Bundle$1 = class Bundle {
1459
1502
  }
1460
1503
  isEmpty() {
1461
1504
  if (this.intro.length && this.intro.trim()) return false;
1462
- if (this.sources.some((source) => !source.content.isEmpty())) return false;
1505
+ if (this.sources.some((source, i) => {
1506
+ const separator = source.separator !== void 0 ? source.separator : this.separator;
1507
+ return i > 0 && separator.trim() !== "" || !source.content.isEmpty();
1508
+ })) return false;
1463
1509
  return true;
1464
1510
  }
1465
1511
  length() {
1466
- return this.sources.reduce((length, source) => length + source.content.length(), this.intro.length);
1512
+ return this.sources.reduce((length, source, i) => {
1513
+ const separator = source.separator !== void 0 ? source.separator : this.separator;
1514
+ return length + (i > 0 ? separator.length : 0) + source.content.length();
1515
+ }, this.intro.length);
1467
1516
  }
1468
1517
  trimLines() {
1469
1518
  return this.trim("[\\r\\n]");
@@ -9259,7 +9308,7 @@ function requireScan () {
9259
9308
  const opts = options || {};
9260
9309
 
9261
9310
  const length = input.length - 1;
9262
- const scanToEnd = opts.parts === true || opts.scanToEnd === true;
9311
+ const scanToEnd = opts.parts === true || opts.tokens === true || opts.scanToEnd === true;
9263
9312
  const slashes = [];
9264
9313
  const tokens = [];
9265
9314
  const parts = [];
@@ -9393,15 +9442,21 @@ function requireScan () {
9393
9442
  }
9394
9443
 
9395
9444
  if (scanToEnd === true) {
9445
+ let parens = 0;
9446
+
9396
9447
  while (eos() !== true && (code = advance())) {
9397
9448
  if (code === CHAR_BACKWARD_SLASH) {
9398
9449
  backslashes = token.backslashes = true;
9399
- code = advance();
9450
+ advance();
9400
9451
  continue;
9401
9452
  }
9402
9453
 
9403
- if (code === CHAR_RIGHT_PARENTHESES) {
9404
- isGlob = token.isGlob = true;
9454
+ if (code === CHAR_LEFT_PARENTHESES) {
9455
+ parens++;
9456
+ continue;
9457
+ }
9458
+
9459
+ if (code === CHAR_RIGHT_PARENTHESES && --parens === 0) {
9405
9460
  finished = true;
9406
9461
  break;
9407
9462
  }
@@ -9466,14 +9521,21 @@ function requireScan () {
9466
9521
  isGlob = token.isGlob = true;
9467
9522
 
9468
9523
  if (scanToEnd === true) {
9524
+ let parens = 1;
9525
+
9469
9526
  while (eos() !== true && (code = advance())) {
9470
- if (code === CHAR_LEFT_PARENTHESES) {
9527
+ if (code === CHAR_BACKWARD_SLASH) {
9471
9528
  backslashes = token.backslashes = true;
9472
- code = advance();
9529
+ advance();
9530
+ continue;
9531
+ }
9532
+
9533
+ if (code === CHAR_LEFT_PARENTHESES) {
9534
+ parens++;
9473
9535
  continue;
9474
9536
  }
9475
9537
 
9476
- if (code === CHAR_RIGHT_PARENTHESES) {
9538
+ if (code === CHAR_RIGHT_PARENTHESES && --parens === 0) {
9477
9539
  finished = true;
9478
9540
  break;
9479
9541
  }
@@ -9560,7 +9622,7 @@ function requireScan () {
9560
9622
  let prevIndex;
9561
9623
 
9562
9624
  for (let idx = 0; idx < slashes.length; idx++) {
9563
- const n = prevIndex ? prevIndex + 1 : start;
9625
+ const n = prevIndex !== undefined ? prevIndex + 1 : start;
9564
9626
  const i = slashes[idx];
9565
9627
  const value = input.slice(n, i);
9566
9628
  if (opts.tokens) {
@@ -9573,21 +9635,20 @@ function requireScan () {
9573
9635
  depth(tokens[idx]);
9574
9636
  state.maxDepth += tokens[idx].depth;
9575
9637
  }
9576
- if (idx !== 0 || value !== '') {
9638
+ if (i >= start) {
9577
9639
  parts.push(value);
9640
+ prevIndex = i;
9578
9641
  }
9579
- prevIndex = i;
9580
9642
  }
9581
9643
 
9582
- if (prevIndex && prevIndex + 1 < input.length) {
9583
- const value = input.slice(prevIndex + 1);
9584
- parts.push(value);
9644
+ const n = prevIndex !== undefined ? prevIndex + 1 : start;
9645
+ const value = input.slice(n);
9646
+ parts.push(value);
9585
9647
 
9586
- if (opts.tokens) {
9587
- tokens[tokens.length - 1].value = value;
9588
- depth(tokens[tokens.length - 1]);
9589
- state.maxDepth += tokens[tokens.length - 1].depth;
9590
- }
9648
+ if (opts.tokens && prevIndex && prevIndex + 1 < input.length) {
9649
+ tokens[tokens.length - 1].value = value;
9650
+ depth(tokens[tokens.length - 1]);
9651
+ state.maxDepth += tokens[tokens.length - 1].depth;
9591
9652
  }
9592
9653
 
9593
9654
  state.slashes = slashes;
@@ -10776,6 +10837,15 @@ function requireParse () {
10776
10837
  consume('/**', 3);
10777
10838
  }
10778
10839
 
10840
+ // A globstar followed only by balanced closing parens is at the logical end of patterns like
10841
+ // `test(/utils/**)` and `test?(/utils/**)`. Treat it as EOS so the trailing `/**` can match its
10842
+ // parent path, except in negated extglobs where that would change the exclusion semantics.
10843
+ const isEnd = eos() || (
10844
+ state.parens > 0
10845
+ && rest === ')'.repeat(state.parens)
10846
+ && !extglobs.some(extglob => extglob.type === 'negate')
10847
+ );
10848
+
10779
10849
  if (prior.type === 'bos' && eos()) {
10780
10850
  prev.type = 'globstar';
10781
10851
  prev.value += value;
@@ -10786,7 +10856,7 @@ function requireParse () {
10786
10856
  continue;
10787
10857
  }
10788
10858
 
10789
- if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) {
10859
+ if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && isEnd) {
10790
10860
  state.output = state.output.slice(0, -(prior.output + prev.output).length);
10791
10861
  prior.output = `(?:${prior.output}`;
10792
10862
 
@@ -19299,7 +19369,6 @@ class Chunk {
19299
19369
  const usedModules = [];
19300
19370
  let hoistedSource = '';
19301
19371
  const accessedGlobals = new Set();
19302
- const renderedModuleSources = new Map();
19303
19372
  const renderOptions = {
19304
19373
  accessedDocumentCurrentScript: false,
19305
19374
  exportNamesByVariable,
@@ -19329,7 +19398,6 @@ class Chunk {
19329
19398
  if (renderedLength) {
19330
19399
  if (compact && source.lastLine().includes('//'))
19331
19400
  source.append('\n');
19332
- renderedModuleSources.set(module, source);
19333
19401
  magicString.addSource(source);
19334
19402
  usedModules.push(module);
19335
19403
  }
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.62.5
4
- Thu, 20 Aug 2026 16:59:36 GMT - commit c20402e2d4498a5861a4f49e00b2e7446c9900bb
3
+ Rollup.js v4.63.1
4
+ Fri, 28 Aug 2026 05:58:50 GMT - commit 78bfef0cb94479566f81012fafa372c84b90bd34
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.62.5
4
- Thu, 20 Aug 2026 16:59:36 GMT - commit c20402e2d4498a5861a4f49e00b2e7446c9900bb
3
+ Rollup.js v4.63.1
4
+ Fri, 28 Aug 2026 05:58:50 GMT - commit 78bfef0cb94479566f81012fafa372c84b90bd34
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.62.5
4
- Thu, 20 Aug 2026 16:59:36 GMT - commit c20402e2d4498a5861a4f49e00b2e7446c9900bb
3
+ Rollup.js v4.63.1
4
+ Fri, 28 Aug 2026 05:58:50 GMT - commit 78bfef0cb94479566f81012fafa372c84b90bd34
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.62.5
4
- Thu, 20 Aug 2026 16:59:36 GMT - commit c20402e2d4498a5861a4f49e00b2e7446c9900bb
3
+ Rollup.js v4.63.1
4
+ Fri, 28 Aug 2026 05:58:50 GMT - commit 78bfef0cb94479566f81012fafa372c84b90bd34
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
package/dist/parseAst.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.62.5
4
- Thu, 20 Aug 2026 16:59:36 GMT - commit c20402e2d4498a5861a4f49e00b2e7446c9900bb
3
+ Rollup.js v4.63.1
4
+ Fri, 28 Aug 2026 05:58:50 GMT - commit 78bfef0cb94479566f81012fafa372c84b90bd34
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
package/dist/rollup.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.62.5
4
- Thu, 20 Aug 2026 16:59:36 GMT - commit c20402e2d4498a5861a4f49e00b2e7446c9900bb
3
+ Rollup.js v4.63.1
4
+ Fri, 28 Aug 2026 05:58:50 GMT - commit 78bfef0cb94479566f81012fafa372c84b90bd34
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.62.5
4
- Thu, 20 Aug 2026 16:59:36 GMT - commit c20402e2d4498a5861a4f49e00b2e7446c9900bb
3
+ Rollup.js v4.63.1
4
+ Fri, 28 Aug 2026 05:58:50 GMT - commit 78bfef0cb94479566f81012fafa372c84b90bd34
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.62.5
4
- Thu, 20 Aug 2026 16:59:36 GMT - commit c20402e2d4498a5861a4f49e00b2e7446c9900bb
3
+ Rollup.js v4.63.1
4
+ Fri, 28 Aug 2026 05:58:50 GMT - commit 78bfef0cb94479566f81012fafa372c84b90bd34
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.62.5
4
- Thu, 20 Aug 2026 16:59:36 GMT - commit c20402e2d4498a5861a4f49e00b2e7446c9900bb
3
+ Rollup.js v4.63.1
4
+ Fri, 28 Aug 2026 05:58:50 GMT - commit 78bfef0cb94479566f81012fafa372c84b90bd34
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.62.5
4
- Thu, 20 Aug 2026 16:59:36 GMT - commit c20402e2d4498a5861a4f49e00b2e7446c9900bb
3
+ Rollup.js v4.63.1
4
+ Fri, 28 Aug 2026 05:58:50 GMT - commit 78bfef0cb94479566f81012fafa372c84b90bd34
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.62.5
4
- Thu, 20 Aug 2026 16:59:36 GMT - commit c20402e2d4498a5861a4f49e00b2e7446c9900bb
3
+ Rollup.js v4.63.1
4
+ Fri, 28 Aug 2026 05:58:50 GMT - commit 78bfef0cb94479566f81012fafa372c84b90bd34
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
@@ -42,7 +42,7 @@ function _mergeNamespaces(n, m) {
42
42
 
43
43
  const promises__namespace = /*#__PURE__*/_interopNamespaceDefault(promises);
44
44
 
45
- var version = "4.62.5";
45
+ var version = "4.63.1";
46
46
  const package_ = {
47
47
  version: version};
48
48
 
@@ -1309,7 +1309,7 @@ function requireScan () {
1309
1309
  const opts = options || {};
1310
1310
 
1311
1311
  const length = input.length - 1;
1312
- const scanToEnd = opts.parts === true || opts.scanToEnd === true;
1312
+ const scanToEnd = opts.parts === true || opts.tokens === true || opts.scanToEnd === true;
1313
1313
  const slashes = [];
1314
1314
  const tokens = [];
1315
1315
  const parts = [];
@@ -1443,15 +1443,21 @@ function requireScan () {
1443
1443
  }
1444
1444
 
1445
1445
  if (scanToEnd === true) {
1446
+ let parens = 0;
1447
+
1446
1448
  while (eos() !== true && (code = advance())) {
1447
1449
  if (code === CHAR_BACKWARD_SLASH) {
1448
1450
  backslashes = token.backslashes = true;
1449
- code = advance();
1451
+ advance();
1452
+ continue;
1453
+ }
1454
+
1455
+ if (code === CHAR_LEFT_PARENTHESES) {
1456
+ parens++;
1450
1457
  continue;
1451
1458
  }
1452
1459
 
1453
- if (code === CHAR_RIGHT_PARENTHESES) {
1454
- isGlob = token.isGlob = true;
1460
+ if (code === CHAR_RIGHT_PARENTHESES && --parens === 0) {
1455
1461
  finished = true;
1456
1462
  break;
1457
1463
  }
@@ -1516,14 +1522,21 @@ function requireScan () {
1516
1522
  isGlob = token.isGlob = true;
1517
1523
 
1518
1524
  if (scanToEnd === true) {
1525
+ let parens = 1;
1526
+
1519
1527
  while (eos() !== true && (code = advance())) {
1520
- if (code === CHAR_LEFT_PARENTHESES) {
1528
+ if (code === CHAR_BACKWARD_SLASH) {
1521
1529
  backslashes = token.backslashes = true;
1522
- code = advance();
1530
+ advance();
1523
1531
  continue;
1524
1532
  }
1525
1533
 
1526
- if (code === CHAR_RIGHT_PARENTHESES) {
1534
+ if (code === CHAR_LEFT_PARENTHESES) {
1535
+ parens++;
1536
+ continue;
1537
+ }
1538
+
1539
+ if (code === CHAR_RIGHT_PARENTHESES && --parens === 0) {
1527
1540
  finished = true;
1528
1541
  break;
1529
1542
  }
@@ -1610,7 +1623,7 @@ function requireScan () {
1610
1623
  let prevIndex;
1611
1624
 
1612
1625
  for (let idx = 0; idx < slashes.length; idx++) {
1613
- const n = prevIndex ? prevIndex + 1 : start;
1626
+ const n = prevIndex !== undefined ? prevIndex + 1 : start;
1614
1627
  const i = slashes[idx];
1615
1628
  const value = input.slice(n, i);
1616
1629
  if (opts.tokens) {
@@ -1623,21 +1636,20 @@ function requireScan () {
1623
1636
  depth(tokens[idx]);
1624
1637
  state.maxDepth += tokens[idx].depth;
1625
1638
  }
1626
- if (idx !== 0 || value !== '') {
1639
+ if (i >= start) {
1627
1640
  parts.push(value);
1641
+ prevIndex = i;
1628
1642
  }
1629
- prevIndex = i;
1630
1643
  }
1631
1644
 
1632
- if (prevIndex && prevIndex + 1 < input.length) {
1633
- const value = input.slice(prevIndex + 1);
1634
- parts.push(value);
1645
+ const n = prevIndex !== undefined ? prevIndex + 1 : start;
1646
+ const value = input.slice(n);
1647
+ parts.push(value);
1635
1648
 
1636
- if (opts.tokens) {
1637
- tokens[tokens.length - 1].value = value;
1638
- depth(tokens[tokens.length - 1]);
1639
- state.maxDepth += tokens[tokens.length - 1].depth;
1640
- }
1649
+ if (opts.tokens && prevIndex && prevIndex + 1 < input.length) {
1650
+ tokens[tokens.length - 1].value = value;
1651
+ depth(tokens[tokens.length - 1]);
1652
+ state.maxDepth += tokens[tokens.length - 1].depth;
1641
1653
  }
1642
1654
 
1643
1655
  state.slashes = slashes;
@@ -2826,6 +2838,15 @@ function requireParse () {
2826
2838
  consume('/**', 3);
2827
2839
  }
2828
2840
 
2841
+ // A globstar followed only by balanced closing parens is at the logical end of patterns like
2842
+ // `test(/utils/**)` and `test?(/utils/**)`. Treat it as EOS so the trailing `/**` can match its
2843
+ // parent path, except in negated extglobs where that would change the exclusion semantics.
2844
+ const isEnd = eos() || (
2845
+ state.parens > 0
2846
+ && rest === ')'.repeat(state.parens)
2847
+ && !extglobs.some(extglob => extglob.type === 'negate')
2848
+ );
2849
+
2829
2850
  if (prior.type === 'bos' && eos()) {
2830
2851
  prev.type = 'globstar';
2831
2852
  prev.value += value;
@@ -2836,7 +2857,7 @@ function requireParse () {
2836
2857
  continue;
2837
2858
  }
2838
2859
 
2839
- if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && eos()) {
2860
+ if (prior.type === 'slash' && prior.prev.type !== 'bos' && !afterStar && isEnd) {
2840
2861
  state.output = state.output.slice(0, -(prior.output + prev.output).length);
2841
2862
  prior.output = `(?:${prior.output}`;
2842
2863
 
@@ -4513,13 +4534,27 @@ var Chunk$1 = class Chunk {
4513
4534
  }
4514
4535
  };
4515
4536
  //#endregion
4537
+ //#region src/MagicStringError.ts
4538
+ /**
4539
+ * The single error type thrown by MagicString.
4540
+ *
4541
+ * Every message is prefixed with `[MagicString]` so its source is obvious at a
4542
+ * glance, and is kept short and consistent in tone.
4543
+ */
4544
+ var MagicStringError = class extends Error {
4545
+ name = "MagicStringError";
4546
+ constructor(message, options) {
4547
+ super(`[MagicString] ${message}`, options);
4548
+ }
4549
+ };
4550
+ //#endregion
4516
4551
  //#region src/SourceMap.ts
4517
4552
  function getBtoa() {
4518
4553
  if (typeof globalThis !== "undefined" && typeof globalThis.btoa === "function") return (str) => globalThis.btoa(unescape(encodeURIComponent(str)));
4519
4554
  const buffer = globalThis["Buffer"];
4520
4555
  if (buffer) return (str) => buffer.from(str, "utf-8").toString("base64");
4521
4556
  return () => {
4522
- throw new Error("Unsupported environment: `window.btoa` or `Buffer` should be supported.");
4557
+ throw new MagicStringError("unsupported environment: `btoa` or `Buffer` is required");
4523
4558
  };
4524
4559
  }
4525
4560
  const btoa = /* #__PURE__ */ getBtoa();
@@ -4748,11 +4783,11 @@ var MagicString = class MagicString {
4748
4783
  },
4749
4784
  byStart: {
4750
4785
  writable: true,
4751
- value: {}
4786
+ value: /* @__PURE__ */ new Map([[0, chunk]])
4752
4787
  },
4753
4788
  byEnd: {
4754
4789
  writable: true,
4755
- value: {}
4790
+ value: /* @__PURE__ */ new Map([[string.length, chunk]])
4756
4791
  },
4757
4792
  filename: {
4758
4793
  writable: true,
@@ -4781,10 +4816,12 @@ var MagicString = class MagicString {
4781
4816
  offset: {
4782
4817
  writable: true,
4783
4818
  value: options.offset || 0
4819
+ },
4820
+ hasMovedChunks: {
4821
+ writable: true,
4822
+ value: false
4784
4823
  }
4785
4824
  });
4786
- this.byStart = /* @__PURE__ */ new Map([[0, chunk]]);
4787
- this.byEnd = /* @__PURE__ */ new Map([[string.length, chunk]]);
4788
4825
  }
4789
4826
  /**
4790
4827
  * Adds the specified character index (with respect to the original string) to sourcemap mappings, if `hires` is false.
@@ -4796,7 +4833,7 @@ var MagicString = class MagicString {
4796
4833
  * Appends the specified content to the end of the string.
4797
4834
  */
4798
4835
  append(content) {
4799
- if (typeof content !== "string") throw new TypeError("outro content must be a string");
4836
+ if (typeof content !== "string") throw new MagicStringError(`content must be a string, got ${typeof content}`);
4800
4837
  this.outro += content;
4801
4838
  return this;
4802
4839
  }
@@ -4807,7 +4844,7 @@ var MagicString = class MagicString {
4807
4844
  */
4808
4845
  appendLeft(index, content) {
4809
4846
  index = index + this.offset;
4810
- if (typeof content !== "string") throw new TypeError("inserted content must be a string");
4847
+ if (typeof content !== "string") throw new MagicStringError(`content must be a string, got ${typeof content}`);
4811
4848
  this._split(index);
4812
4849
  const chunk = this.byEnd.get(index);
4813
4850
  if (chunk) chunk.appendLeft(content);
@@ -4821,7 +4858,7 @@ var MagicString = class MagicString {
4821
4858
  */
4822
4859
  appendRight(index, content) {
4823
4860
  index = index + this.offset;
4824
- if (typeof content !== "string") throw new TypeError("inserted content must be a string");
4861
+ if (typeof content !== "string") throw new MagicStringError(`content must be a string, got ${typeof content}`);
4825
4862
  this._split(index);
4826
4863
  const chunk = this.byStart.get(index);
4827
4864
  if (chunk) chunk.appendRight(content);
@@ -4834,6 +4871,7 @@ var MagicString = class MagicString {
4834
4871
  clone() {
4835
4872
  const cloned = new MagicString(this.original, {
4836
4873
  filename: this.filename,
4874
+ ignoreList: this.ignoreList,
4837
4875
  offset: this.offset
4838
4876
  });
4839
4877
  let originalChunk = this.firstChunk;
@@ -4853,8 +4891,10 @@ var MagicString = class MagicString {
4853
4891
  cloned.lastChunk = clonedChunk;
4854
4892
  if (this.indentExclusionRanges) cloned.indentExclusionRanges = this.indentExclusionRanges.slice();
4855
4893
  cloned.sourcemapLocations = new BitSet(this.sourcemapLocations);
4894
+ cloned.storedNames = { ...this.storedNames };
4856
4895
  cloned.intro = this.intro;
4857
4896
  cloned.outro = this.outro;
4897
+ cloned.hasMovedChunks = this.hasMovedChunks;
4858
4898
  return cloned;
4859
4899
  }
4860
4900
  /**
@@ -4983,7 +5023,7 @@ var MagicString = class MagicString {
4983
5023
  }
4984
5024
  /** @internal */
4985
5025
  insert() {
4986
- throw new Error("magicString.insert(...) is deprecated. Use prependRight(...) or appendLeft(...)");
5026
+ throw new MagicStringError("insert() is deprecated, use appendLeft() or prependRight()");
4987
5027
  }
4988
5028
  /** @internal */
4989
5029
  insertLeft(index, content) {
@@ -5009,12 +5049,19 @@ var MagicString = class MagicString {
5009
5049
  end = end + this.offset;
5010
5050
  index = index + this.offset;
5011
5051
  if (start === end) return this;
5012
- if (index >= start && index <= end) throw new Error("Cannot move a selection inside itself");
5052
+ if (index >= start && index <= end) throw new MagicStringError("cannot move a selection inside itself");
5013
5053
  this._split(start);
5014
5054
  this._split(end);
5015
5055
  this._split(index);
5016
5056
  const first = this.byStart.get(start);
5017
5057
  const last = this.byEnd.get(end);
5058
+ if (this.hasMovedChunks) {
5059
+ let cursor = first;
5060
+ while (cursor !== last) {
5061
+ cursor = cursor.next;
5062
+ if (!cursor || cursor.start < start || cursor.end > end) throw new MagicStringError(`cannot move ${start} to ${end} because an earlier move split that range`);
5063
+ }
5064
+ }
5018
5065
  const oldLeft = first.previous;
5019
5066
  const oldRight = last.next;
5020
5067
  const newRight = this.byStart.get(index);
@@ -5033,6 +5080,7 @@ var MagicString = class MagicString {
5033
5080
  last.next = newRight || null;
5034
5081
  if (!newLeft) this.firstChunk = first;
5035
5082
  if (!newRight) this.lastChunk = last;
5083
+ this.hasMovedChunks = true;
5036
5084
  return this;
5037
5085
  }
5038
5086
  /**
@@ -5062,13 +5110,15 @@ var MagicString = class MagicString {
5062
5110
  update(start, end, content, options) {
5063
5111
  start = start + this.offset;
5064
5112
  end = end + this.offset;
5065
- if (typeof content !== "string") throw new TypeError("replacement content must be a string");
5113
+ if (typeof content !== "string") throw new MagicStringError(`content must be a string, got ${typeof content}`);
5066
5114
  if (this.original.length !== 0) {
5067
5115
  while (start < 0) start += this.original.length;
5068
5116
  while (end < 0) end += this.original.length;
5069
5117
  }
5070
- if (end > this.original.length) throw new Error("end is out of bounds");
5071
- if (start === end) throw new Error("Cannot overwrite a zero-length range – use appendLeft or prependRight instead");
5118
+ if (start < 0) throw new MagicStringError(`start ${start} is out of bounds`);
5119
+ if (end > this.original.length) throw new MagicStringError(`end ${end} is out of bounds`);
5120
+ if (start === end) throw new MagicStringError(`cannot overwrite a zero-length range at ${start}, use appendLeft() or prependRight()`);
5121
+ if (start > end) throw new MagicStringError(`end must be greater than start (start: ${start}, end: ${end})`);
5072
5122
  this._split(start);
5073
5123
  this._split(end);
5074
5124
  if (options === true) {
@@ -5094,7 +5144,7 @@ var MagicString = class MagicString {
5094
5144
  if (first) {
5095
5145
  let chunk = first;
5096
5146
  while (chunk !== last) {
5097
- if (chunk.next !== this.byStart.get(chunk.end)) throw new Error("Cannot overwrite across a split point");
5147
+ if (chunk.next !== this.byStart.get(chunk.end)) throw new MagicStringError("cannot overwrite across a split point");
5098
5148
  chunk = chunk.next;
5099
5149
  chunk.edit("", false);
5100
5150
  }
@@ -5110,7 +5160,7 @@ var MagicString = class MagicString {
5110
5160
  * Prepends the string with the specified content.
5111
5161
  */
5112
5162
  prepend(content) {
5113
- if (typeof content !== "string") throw new TypeError("outro content must be a string");
5163
+ if (typeof content !== "string") throw new MagicStringError(`content must be a string, got ${typeof content}`);
5114
5164
  this.intro = content + this.intro;
5115
5165
  return this;
5116
5166
  }
@@ -5119,7 +5169,7 @@ var MagicString = class MagicString {
5119
5169
  */
5120
5170
  prependLeft(index, content) {
5121
5171
  index = index + this.offset;
5122
- if (typeof content !== "string") throw new TypeError("inserted content must be a string");
5172
+ if (typeof content !== "string") throw new MagicStringError(`content must be a string, got ${typeof content}`);
5123
5173
  this._split(index);
5124
5174
  const chunk = this.byEnd.get(index);
5125
5175
  if (chunk) chunk.prependLeft(content);
@@ -5131,7 +5181,7 @@ var MagicString = class MagicString {
5131
5181
  */
5132
5182
  prependRight(index, content) {
5133
5183
  index = index + this.offset;
5134
- if (typeof content !== "string") throw new TypeError("inserted content must be a string");
5184
+ if (typeof content !== "string") throw new MagicStringError(`content must be a string, got ${typeof content}`);
5135
5185
  this._split(index);
5136
5186
  const chunk = this.byStart.get(index);
5137
5187
  if (chunk) chunk.prependRight(content);
@@ -5150,8 +5200,8 @@ var MagicString = class MagicString {
5150
5200
  while (end < 0) end += this.original.length;
5151
5201
  }
5152
5202
  if (start === end) return this;
5153
- if (start < 0 || end > this.original.length) throw new Error("Character is out of bounds");
5154
- if (start > end) throw new Error("end must be greater than start");
5203
+ if (start < 0 || end > this.original.length) throw new MagicStringError(`range ${start}–${end} is out of bounds`);
5204
+ if (start > end) throw new MagicStringError(`end must be greater than start (start: ${start}, end: ${end})`);
5155
5205
  this._split(start);
5156
5206
  this._split(end);
5157
5207
  let chunk = this.byStart.get(start);
@@ -5174,8 +5224,8 @@ var MagicString = class MagicString {
5174
5224
  while (end < 0) end += this.original.length;
5175
5225
  }
5176
5226
  if (start === end) return this;
5177
- if (start < 0 || end > this.original.length) throw new Error("Character is out of bounds");
5178
- if (start > end) throw new Error("end must be greater than start");
5227
+ if (start < 0 || end > this.original.length) throw new MagicStringError(`range ${start}–${end} is out of bounds`);
5228
+ if (start > end) throw new MagicStringError(`end must be greater than start (start: ${start}, end: ${end})`);
5179
5229
  this._split(start);
5180
5230
  this._split(end);
5181
5231
  let chunk = this.byStart.get(start);
@@ -5241,12 +5291,12 @@ var MagicString = class MagicString {
5241
5291
  if (chunk.start < end && chunk.end >= end) return result;
5242
5292
  chunk = chunk.next;
5243
5293
  }
5244
- if (chunk && chunk.edited && chunk.start !== start) throw new Error(`Cannot use replaced character ${start} as slice start anchor.`);
5294
+ if (chunk && chunk.edited && chunk.start !== start) throw new MagicStringError(`cannot use edited character ${start} as slice start anchor`);
5245
5295
  const startChunk = chunk;
5246
5296
  while (chunk) {
5247
5297
  if (chunk.intro && (startChunk !== chunk || chunk.start === start)) result += chunk.intro;
5248
5298
  const containsEnd = chunk.start < end && chunk.end >= end;
5249
- if (containsEnd && chunk.edited && chunk.end !== end) throw new Error(`Cannot use replaced character ${end} as slice end anchor.`);
5299
+ if (containsEnd && chunk.edited && chunk.end !== end) throw new MagicStringError(`cannot use edited character ${end} as slice end anchor`);
5250
5300
  const sliceStart = startChunk === chunk ? start - chunk.start : 0;
5251
5301
  const sliceEnd = containsEnd ? chunk.content.length + end - chunk.end : chunk.content.length;
5252
5302
  result += chunk.content.slice(sliceStart, sliceEnd);
@@ -5282,7 +5332,7 @@ var MagicString = class MagicString {
5282
5332
  _splitChunk(chunk, index) {
5283
5333
  if (chunk.edited && chunk.content.length) {
5284
5334
  const loc = getLocator(this.original)(index);
5285
- throw new Error(`Cannot split a chunk that has already been edited (${loc.line}:${loc.column} – "${chunk.original}")`);
5335
+ throw new MagicStringError(`cannot split a chunk that has already been edited (${loc.line}:${loc.column} – "${chunk.original}")`);
5286
5336
  }
5287
5337
  const newChunk = chunk.split(index);
5288
5338
  this.byEnd.set(index, chunk);
@@ -5394,7 +5444,19 @@ var MagicString = class MagicString {
5394
5444
  * Indicates if the string has been changed.
5395
5445
  */
5396
5446
  hasChanged() {
5397
- return this.original !== this.toString();
5447
+ if (this.intro || this.outro) return true;
5448
+ let outputIndex = 0;
5449
+ let chunk = this.firstChunk;
5450
+ while (chunk) {
5451
+ if (chunk.intro || chunk.outro) return true;
5452
+ if (!chunk.edited && chunk.start === outputIndex) outputIndex = chunk.end;
5453
+ else {
5454
+ if (!this.original.startsWith(chunk.content, outputIndex)) return true;
5455
+ outputIndex += chunk.content.length;
5456
+ }
5457
+ chunk = chunk.next;
5458
+ }
5459
+ return outputIndex !== this.original.length;
5398
5460
  }
5399
5461
  /** @internal */
5400
5462
  _replaceRegexp(searchValue, replacement) {
@@ -5464,7 +5526,7 @@ var MagicString = class MagicString {
5464
5526
  */
5465
5527
  replaceAll(searchValue, replacement) {
5466
5528
  if (typeof searchValue === "string") return this._replaceAllString(searchValue, replacement);
5467
- if (!searchValue.global) throw new TypeError("MagicString.prototype.replaceAll called with a non-global RegExp argument");
5529
+ if (!searchValue.global) throw new MagicStringError("replaceAll() requires a global RegExp");
5468
5530
  return this._replaceRegexp(searchValue, replacement);
5469
5531
  }
5470
5532
  };
@@ -5495,7 +5557,7 @@ var Bundle$1 = class Bundle {
5495
5557
  filename: source.filename,
5496
5558
  separator: this.separator
5497
5559
  });
5498
- if (!isObject(source) || !source.content) throw new Error("bundle.addSource() takes an object with a `content` property, which should be an instance of MagicString, and an optional `filename`");
5560
+ if (!isObject(source) || !source.content) throw new MagicStringError("addSource() requires a `content` property that is a MagicString");
5499
5561
  [
5500
5562
  "filename",
5501
5563
  "ignoreList",
@@ -5513,7 +5575,7 @@ var Bundle$1 = class Bundle {
5513
5575
  });
5514
5576
  } else {
5515
5577
  const uniqueSource = this.uniqueSources[this.uniqueSourceIndexByFilename[source.filename]];
5516
- if (source.content.original !== uniqueSource.content) throw new Error(`Illegal source: same filename (${source.filename}), different contents`);
5578
+ if (source.content.original !== uniqueSource.content) throw new MagicStringError(`duplicate filename "${source.filename}" with different content, use unique filenames`);
5517
5579
  }
5518
5580
  this.sources.push(source);
5519
5581
  return this;
@@ -5534,6 +5596,8 @@ var Bundle$1 = class Bundle {
5534
5596
  bundle.addSource({
5535
5597
  filename: source.filename,
5536
5598
  content: source.content.clone(),
5599
+ ignoreList: source.ignoreList,
5600
+ indentExclusionRanges: source.indentExclusionRanges,
5537
5601
  separator: source.separator
5538
5602
  });
5539
5603
  });
@@ -5550,7 +5614,7 @@ var Bundle$1 = class Bundle {
5550
5614
  const mappings = new Mappings(options.hires);
5551
5615
  if (this.intro) mappings.advance(this.intro);
5552
5616
  this.sources.forEach((source, i) => {
5553
- if (i > 0) mappings.advance(this.separator);
5617
+ if (i > 0) mappings.advance(source.separator !== void 0 ? source.separator : this.separator);
5554
5618
  const sourceIndex = source.filename ? this.uniqueSourceIndexByFilename[source.filename] : -1;
5555
5619
  const magicString = source.content;
5556
5620
  const locate = getLocator(magicString.original);
@@ -5628,11 +5692,17 @@ var Bundle$1 = class Bundle {
5628
5692
  }
5629
5693
  isEmpty() {
5630
5694
  if (this.intro.length && this.intro.trim()) return false;
5631
- if (this.sources.some((source) => !source.content.isEmpty())) return false;
5695
+ if (this.sources.some((source, i) => {
5696
+ const separator = source.separator !== void 0 ? source.separator : this.separator;
5697
+ return i > 0 && separator.trim() !== "" || !source.content.isEmpty();
5698
+ })) return false;
5632
5699
  return true;
5633
5700
  }
5634
5701
  length() {
5635
- return this.sources.reduce((length, source) => length + source.content.length(), this.intro.length);
5702
+ return this.sources.reduce((length, source, i) => {
5703
+ const separator = source.separator !== void 0 ? source.separator : this.separator;
5704
+ return length + (i > 0 ? separator.length : 0) + source.content.length();
5705
+ }, this.intro.length);
5636
5706
  }
5637
5707
  trimLines() {
5638
5708
  return this.trim("[\\r\\n]");
@@ -20795,7 +20865,6 @@ class Chunk {
20795
20865
  const usedModules = [];
20796
20866
  let hoistedSource = '';
20797
20867
  const accessedGlobals = new Set();
20798
- const renderedModuleSources = new Map();
20799
20868
  const renderOptions = {
20800
20869
  accessedDocumentCurrentScript: false,
20801
20870
  exportNamesByVariable,
@@ -20825,7 +20894,6 @@ class Chunk {
20825
20894
  if (renderedLength) {
20826
20895
  if (compact && source.lastLine().includes('//'))
20827
20896
  source.append('\n');
20828
- renderedModuleSources.set(module, source);
20829
20897
  magicString.addSource(source);
20830
20898
  usedModules.push(module);
20831
20899
  }
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.62.5
4
- Thu, 20 Aug 2026 16:59:36 GMT - commit c20402e2d4498a5861a4f49e00b2e7446c9900bb
3
+ Rollup.js v4.63.1
4
+ Fri, 28 Aug 2026 05:58:50 GMT - commit 78bfef0cb94479566f81012fafa372c84b90bd34
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  @license
3
- Rollup.js v4.62.5
4
- Thu, 20 Aug 2026 16:59:36 GMT - commit c20402e2d4498a5861a4f49e00b2e7446c9900bb
3
+ Rollup.js v4.63.1
4
+ Fri, 28 Aug 2026 05:58:50 GMT - commit 78bfef0cb94479566f81012fafa372c84b90bd34
5
5
 
6
6
  https://github.com/rollup/rollup
7
7
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rollup/wasm-node",
3
- "version": "4.62.5",
3
+ "version": "4.63.1",
4
4
  "description": "Next-generation ES module bundler with Node wasm",
5
5
  "main": "dist/rollup.js",
6
6
  "module": "dist/es/rollup.js",
@@ -36,12 +36,12 @@
36
36
  "core-js": "We only update manually as every update requires a snapshot update"
37
37
  },
38
38
  "devDependencies": {
39
- "@codemirror/commands": "^6.10.4",
39
+ "@codemirror/commands": "^6.11.0",
40
40
  "@codemirror/lang-javascript": "^6.2.5",
41
41
  "@codemirror/language": "^6.12.4",
42
42
  "@codemirror/search": "^6.7.1",
43
43
  "@codemirror/state": "^6.7.1",
44
- "@codemirror/view": "^6.43.8",
44
+ "@codemirror/view": "^6.43.9",
45
45
  "@emnapi/core": "^1.11.3",
46
46
  "@emnapi/runtime": "^1.11.3",
47
47
  "@eslint/js": "^10.0.1",
@@ -64,7 +64,7 @@
64
64
  "@types/picomatch": "^4.0.3",
65
65
  "@types/semver": "^7.8.0",
66
66
  "@types/yargs-parser": "^21.0.3",
67
- "@vue/language-server": "^3.3.9",
67
+ "@vue/language-server": "^3.3.11",
68
68
  "acorn": "^8.18.0",
69
69
  "acorn-import-assertions": "^1.9.0",
70
70
  "acorn-import-phases": "^1.0.4",
@@ -77,7 +77,7 @@
77
77
  "date-time": "^4.0.0",
78
78
  "es5-shim": "^4.6.7",
79
79
  "es6-shim": "^0.35.8",
80
- "eslint": "^10.8.1",
80
+ "eslint": "^10.9.1",
81
81
  "eslint-config-prettier": "^10.1.8",
82
82
  "eslint-plugin-prettier": "^5.5.6",
83
83
  "eslint-plugin-unicorn": "^73.0.0",
@@ -86,12 +86,12 @@
86
86
  "flru": "^1.0.2",
87
87
  "fs-extra": "^11.4.0",
88
88
  "github-api": "^3.4.0",
89
- "globals": "^17.9.0",
89
+ "globals": "^17.11.0",
90
90
  "husky": "^9.1.7",
91
91
  "is-reference": "^3.0.3",
92
92
  "lint-staged": "^17.3.0",
93
93
  "locate-character": "^3.0.0",
94
- "magic-string": "^1.1.0",
94
+ "magic-string": "^1.2.2",
95
95
  "memfs": "^4.68.1",
96
96
  "mocha": "11.8.0",
97
97
  "nodemon": "^3.1.14",
@@ -99,14 +99,14 @@
99
99
  "nyc": "^18.0.0",
100
100
  "patch-package": "^8.0.1",
101
101
  "picocolors": "^1.1.1",
102
- "picomatch": "^4.0.5",
103
- "pinia": "^4.0.2",
102
+ "picomatch": "^4.0.7",
103
+ "pinia": "^4.0.3",
104
104
  "prettier": "^3.9.6",
105
105
  "prettier-plugin-organize-imports": "^4.3.0",
106
106
  "pretty-bytes": "^7.1.1",
107
107
  "pretty-ms": "^9.3.0",
108
108
  "requirejs": "^2.3.8",
109
- "rollup": "^4.62.4",
109
+ "rollup": "^4.62.5",
110
110
  "rollup-plugin-license": "^3.7.1",
111
111
  "semver": "^7.8.5",
112
112
  "shx": "^0.4.0",
@@ -114,15 +114,15 @@
114
114
  "source-map": "^0.8.0",
115
115
  "source-map-support": "^0.5.21",
116
116
  "systemjs": "^6.15.1",
117
- "terser": "^5.49.2",
117
+ "terser": "^5.50.0",
118
118
  "tslib": "^2.8.1",
119
119
  "typescript": "^5.9.3",
120
- "typescript-eslint": "^8.67.0",
120
+ "typescript-eslint": "^8.68.0",
121
121
  "vite": "^7.3.6",
122
122
  "vitepress": "^1.6.4",
123
123
  "vue": "^3.5.41",
124
124
  "vue-eslint-parser": "^10.4.1",
125
- "vue-tsc": "^3.3.9",
125
+ "vue-tsc": "^3.3.11",
126
126
  "wasm-pack": "^0.15.0",
127
127
  "yargs-parser": "^21.1.1"
128
128
  },