diff --git a/packages/alias/package.json b/packages/alias/package.json
index 214031d79..3973c79f4 100755
--- a/packages/alias/package.json
+++ b/packages/alias/package.json
@@ -51,7 +51,7 @@
     "alias"
   ],
   "peerDependencies": {
-    "rollup": "^1.20.0||^2.0.0||^3.0.0"
+    "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
   },
   "peerDependenciesMeta": {
     "rollup": {
@@ -65,7 +65,7 @@
     "@rollup/plugin-node-resolve": "^15.0.0",
     "@rollup/plugin-typescript": "^9.0.1",
     "del-cli": "^5.0.0",
-    "rollup": "^3.2.3",
+    "rollup": "^4.0.0-23",
     "typescript": "^4.8.3"
   },
   "types": "./types/index.d.ts",
diff --git a/packages/alias/test/test.mjs b/packages/alias/test/test.mjs
index a4d0781e7..55a67aa0d 100755
--- a/packages/alias/test/test.mjs
+++ b/packages/alias/test/test.mjs
@@ -455,7 +455,7 @@ test('Forwards isEntry and custom options to a custom resolver', (t) => {
       {
         source: 'nonEntry',
         importer: '/src/importer.js',
-        options: { assertions: {}, isEntry: false, custom: { test: 42 } }
+        options: { attributes: {}, isEntry: false, custom: { test: 42 } }
       }
     ]
   ).then((result) => {
@@ -464,7 +464,7 @@ test('Forwards isEntry and custom options to a custom resolver', (t) => {
         'entry-point',
         '/src/importer.js',
         {
-          assertions: {},
+          attributes: {},
           custom: void 0,
           isEntry: true
         }
@@ -473,7 +473,7 @@ test('Forwards isEntry and custom options to a custom resolver', (t) => {
         'non-entry-point',
         '/src/importer.js',
         {
-          assertions: {},
+          attributes: {},
           custom: { test: 42 },
           isEntry: false
         }
@@ -514,7 +514,7 @@ test('Forwards isEntry and custom options to other plugins', (t) => {
         'entry-point',
         '/src/importer.js',
         {
-          assertions: {},
+          attributes: {},
           custom: void 0,
           isEntry: true
         }
@@ -523,7 +523,7 @@ test('Forwards isEntry and custom options to other plugins', (t) => {
         'non-entry-point',
         '/src/importer.js',
         {
-          assertions: {},
+          attributes: {},
           custom: { test: 42 },
           isEntry: false
         }
diff --git a/packages/auto-install/package.json b/packages/auto-install/package.json
index a5c0fd103..c0fa423ee 100755
--- a/packages/auto-install/package.json
+++ b/packages/auto-install/package.json
@@ -53,7 +53,7 @@
     "modules"
   ],
   "peerDependencies": {
-    "rollup": "^1.20.0||^2.0.0||^3.0.0"
+    "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
   },
   "peerDependenciesMeta": {
     "rollup": {
@@ -65,7 +65,7 @@
     "@rollup/plugin-typescript": "^9.0.1",
     "del": "^6.1.1",
     "node-noop": "^1.0.0",
-    "rollup": "^3.2.3",
+    "rollup": "^4.0.0-23",
     "typescript": "^4.8.3"
   },
   "types": "./types/index.d.ts",
diff --git a/packages/babel/package.json b/packages/babel/package.json
index 88e94728e..c37befd2a 100644
--- a/packages/babel/package.json
+++ b/packages/babel/package.json
@@ -55,7 +55,7 @@
   "peerDependencies": {
     "@babel/core": "^7.0.0",
     "@types/babel__core": "^7.1.9",
-    "rollup": "^1.20.0||^2.0.0||^3.0.0"
+    "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
   },
   "peerDependenciesMeta": {
     "rollup": {
@@ -79,7 +79,7 @@
     "@rollup/plugin-json": "^5.0.0",
     "@rollup/plugin-node-resolve": "^15.0.0",
     "@types/babel__core": "^7.1.9",
-    "rollup": "^3.2.3",
+    "rollup": "^4.0.0-23",
     "source-map": "^0.7.4"
   },
   "types": "./types/index.d.ts",
diff --git a/packages/beep/package.json b/packages/beep/package.json
index 4b6c21c73..1d325b794 100644
--- a/packages/beep/package.json
+++ b/packages/beep/package.json
@@ -37,7 +37,7 @@
     "rollup"
   ],
   "peerDependencies": {
-    "rollup": "^1.20.0||^2.0.0||^3.0.0"
+    "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
   },
   "peerDependenciesMeta": {
     "rollup": {
@@ -45,7 +45,7 @@
     }
   },
   "devDependencies": {
-    "rollup": "^3.2.3",
+    "rollup": "^4.0.0-23",
     "strip-ansi": "^7.0.1"
   },
   "types": "types/index.d.ts",
diff --git a/packages/buble/package.json b/packages/buble/package.json
index 7965d3fa2..059fd4a62 100644
--- a/packages/buble/package.json
+++ b/packages/buble/package.json
@@ -53,7 +53,7 @@
     "modules"
   ],
   "peerDependencies": {
-    "rollup": "^1.20.0||^2.0.0||^3.0.0"
+    "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
   },
   "peerDependenciesMeta": {
     "rollup": {
@@ -68,7 +68,7 @@
   "devDependencies": {
     "@rollup/plugin-typescript": "^9.0.1",
     "del-cli": "^5.0.0",
-    "rollup": "^3.2.3",
+    "rollup": "^4.0.0-23",
     "source-map": "^0.7.4",
     "typescript": "^4.8.3"
   },
diff --git a/packages/commonjs/package.json b/packages/commonjs/package.json
index 1cff5476a..e1ba670b0 100644
--- a/packages/commonjs/package.json
+++ b/packages/commonjs/package.json
@@ -54,7 +54,7 @@
     "require"
   ],
   "peerDependencies": {
-    "rollup": "^2.68.0||^3.0.0"
+    "rollup": "^2.68.0||^3.0.0||^4.0.0"
   },
   "peerDependenciesMeta": {
     "rollup": {
@@ -74,7 +74,7 @@
     "@rollup/plugin-node-resolve": "^15.0.0",
     "locate-character": "^2.0.5",
     "require-relative": "^0.8.7",
-    "rollup": "^3.19.0",
+    "rollup": "^4.0.0-23",
     "shx": "^0.3.4",
     "source-map": "^0.7.4",
     "source-map-support": "^0.5.21",
diff --git a/packages/commonjs/src/index.js b/packages/commonjs/src/index.js
index 99a92a8d5..da40131b5 100644
--- a/packages/commonjs/src/index.js
+++ b/packages/commonjs/src/index.js
@@ -306,7 +306,7 @@ export default function commonjs(options = {}) {
       try {
         return transformAndCheckExports.call(this, code, id);
       } catch (err) {
-        return this.error(err, err.loc);
+        return this.error(err, err.pos);
       }
     }
   };
diff --git a/packages/commonjs/src/resolve-require-sources.js b/packages/commonjs/src/resolve-require-sources.js
index 4efd6993d..22d9e3f65 100644
--- a/packages/commonjs/src/resolve-require-sources.js
+++ b/packages/commonjs/src/resolve-require-sources.js
@@ -170,6 +170,7 @@ export function getRequireResolver(extensions, detectCyclesAndConditional, curre
             currentlyResolvingForParent.add(source);
             const resolved =
               (await rollupContext.resolve(source, parentId, {
+                skipSelf: false,
                 custom: { 'node-resolve': { isRequire: true } }
               })) || resolveExtensions(source, parentId, extensions);
             currentlyResolvingForParent.delete(source);
diff --git a/packages/commonjs/src/transform-commonjs.js b/packages/commonjs/src/transform-commonjs.js
index 84280cd1e..892e3b943 100644
--- a/packages/commonjs/src/transform-commonjs.js
+++ b/packages/commonjs/src/transform-commonjs.js
@@ -300,6 +300,9 @@ export default async function transformCommonjs(
               }
               if (!ignoreDynamicRequires) {
                 if (isShorthandProperty(parent)) {
+                  // as key and value are the same object, isReference regards
+                  // both as references, so we need to skip now
+                  skippedNodes.add(parent.value);
                   magicString.prependRight(node.start, 'require: ');
                 }
                 replacedDynamicRequires.push(node);
diff --git a/packages/commonjs/test/fixtures/function/custom-options/_config.js b/packages/commonjs/test/fixtures/function/custom-options/_config.js
index d6b87f3ab..8fe741c1b 100644
--- a/packages/commonjs/test/fixtures/function/custom-options/_config.js
+++ b/packages/commonjs/test/fixtures/function/custom-options/_config.js
@@ -13,12 +13,16 @@ module.exports = {
     plugins: [
       {
         async buildStart() {
-          await this.resolve('./other.js', ID_MAIN, { isEntry: true, custom: { test: 42 } });
+          await this.resolve('./other.js', ID_MAIN, {
+            skipSelf: false,
+            isEntry: true,
+            custom: { test: 42 }
+          });
         },
         buildEnd() {
           assert.deepStrictEqual(resolveIdArgs, [
-            ['other.js', 'main.js', { assertions: {}, custom: { test: 42 }, isEntry: true }],
-            ['main.js', void 0, { assertions: {}, custom: {}, isEntry: true }]
+            ['other.js', 'main.js', { attributes: {}, custom: { test: 42 }, isEntry: true }],
+            ['main.js', void 0, { attributes: {}, custom: {}, isEntry: true }]
           ]);
         },
         resolveId(source, importer, options) {
diff --git a/packages/commonjs/test/snapshots/function.js.md b/packages/commonjs/test/snapshots/function.js.md
index 34d524d8e..c671d8bc3 100644
--- a/packages/commonjs/test/snapshots/function.js.md
+++ b/packages/commonjs/test/snapshots/function.js.md
@@ -1081,7 +1081,24 @@ Generated by [AVA](https://avajs.dev).
 > Snapshot 1
 
     {
-      'generated-lib2.js': `'use strict';␊
+      'main.js': `'use strict';␊
+      ␊
+      var main2 = require('./main2.js');␊
+      ␊
+      /* eslint-disable import/no-dynamic-require, global-require */␊
+      ␊
+      let message;␊
+      ␊
+      for (const index of [1, 2]) {␊
+        try {␊
+          message = main2.createCommonjsRequire("/fixtures/function/dynamic-require-code-splitting")(\`./target${index}.js\`);␊
+        } catch (err) {␊
+          ({ message } = err);␊
+        }␊
+        t.is(message, index.toString());␊
+      }␊
+      `,
+      'main2.js': `'use strict';␊
       ␊
       var target1;␊
       var hasRequiredTarget1;␊
@@ -1211,28 +1228,6 @@ Generated by [AVA](https://avajs.dev).
       ␊
       exports.createCommonjsRequire = createCommonjsRequire;␊
       `,
-      'main.js': `'use strict';␊
-      ␊
-      var lib2 = require('./generated-lib2.js');␊
-      ␊
-      /* eslint-disable import/no-dynamic-require, global-require */␊
-      ␊
-      let message;␊
-      ␊
-      for (const index of [1, 2]) {␊
-        try {␊
-          message = lib2.createCommonjsRequire("/fixtures/function/dynamic-require-code-splitting")(\`./target${index}.js\`);␊
-        } catch (err) {␊
-          ({ message } = err);␊
-        }␊
-        t.is(message, index.toString());␊
-      }␊
-      `,
-      'main2.js': `'use strict';␊
-      ␊
-      require('./generated-lib2.js');␊
-      ␊
-      `,
     }
 
 ## dynamic-require-different-loader
@@ -1511,6 +1506,7 @@ Generated by [AVA](https://avajs.dev).
       ␊
       /* eslint-disable import/no-dynamic-require, global-require */␊
       ␊
+      ␊
       t.is(result, 'submodule');␊
       `,
     }
@@ -3454,6 +3450,9 @@ Generated by [AVA](https://avajs.dev).
       const getGlobalPollution = () => 'foo';␊
       ␊
       // this test makes sure that "submodule" is not wrapped in commonjs␊
+      //   helper due to its use of "typeof module", given that "submodule" has es6 exports.␊
+      // any attempt to wrap it in a function will just fail as it's invalid syntax.␊
+      ␊
       ␊
       t.is(getGlobalPollution(), global.pollution);␊
       `,
@@ -4023,11 +4022,11 @@ Generated by [AVA](https://avajs.dev).
     {
       'main.js': `'use strict';␊
       ␊
-      var other = require('./other-77ad7026.js');␊
+      var other = require('./other.js');␊
       ␊
-      t.is(other.foo, 'foo');␊
+      t.is(other, 'foo');␊
       `,
-      'other-77ad7026.js': `'use strict';␊
+      'other.js': `'use strict';␊
       ␊
       function getDefaultExportFromCjs (x) {␊
       	return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;␊
@@ -4037,15 +4036,7 @@ Generated by [AVA](https://avajs.dev).
       ␊
       var foo = /*@__PURE__*/getDefaultExportFromCjs(other);␊
       ␊
-      exports.foo = foo;␊
-      `,
-      'other.js': `'use strict';␊
-      ␊
-      var other = require('./other-77ad7026.js');␊
-      ␊
-      ␊
-      ␊
-      module.exports = other.foo;␊
+      module.exports = foo;␊
       `,
     }
 
@@ -5124,6 +5115,16 @@ Generated by [AVA](https://avajs.dev).
       	return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;␊
       }␊
       ␊
+      var foo;␊
+      var hasRequiredFoo;␊
+      ␊
+      function requireFoo () {␊
+      	if (hasRequiredFoo) return foo;␊
+      	hasRequiredFoo = 1;␊
+      	foo = 1;␊
+      	return foo;␊
+      }␊
+      ␊
       var multiply;␊
       var hasRequiredMultiply;␊
       ␊
@@ -5136,16 +5137,6 @@ Generated by [AVA](https://avajs.dev).
       	return multiply;␊
       }␊
       ␊
-      var foo;␊
-      var hasRequiredFoo;␊
-      ␊
-      function requireFoo () {␊
-      	if (hasRequiredFoo) return foo;␊
-      	hasRequiredFoo = 1;␊
-      	foo = 1;␊
-      	return foo;␊
-      }␊
-      ␊
       /* eslint-disable global-require */␊
       ␊
       var main = function () {␊
@@ -5930,7 +5921,7 @@ Generated by [AVA](https://avajs.dev).
 > Snapshot 1
 
     {
-      '_virtual/_commonjsHelpers.js': `'use strict';␊
+      'main.js': `'use strict';␊
       ␊
       var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};␊
       ␊
@@ -5938,37 +5929,23 @@ Generated by [AVA](https://avajs.dev).
       	return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;␊
       }␊
       ␊
-      exports.commonjsGlobal = commonjsGlobal;␊
-      exports.getDefaultExportFromCjs = getDefaultExportFromCjs;␊
-      `,
-      'main.js': `'use strict';␊
-      ␊
-      var _commonjsHelpers = require('./_virtual/_commonjsHelpers.js');␊
-      var main$1 = require('./main2.js');␊
-      ␊
-      var mainExports = main$1.__require();␊
-      var main = /*@__PURE__*/_commonjsHelpers.getDefaultExportFromCjs(mainExports);␊
-      ␊
-      module.exports = main;␊
-      `,
-      'main2.js': `'use strict';␊
-      ␊
-      var _commonjsHelpers = require('./_virtual/_commonjsHelpers.js');␊
-      ␊
-      var main;␊
+      var main$1;␊
       var hasRequiredMain;␊
       ␊
       function requireMain () {␊
-      	if (hasRequiredMain) return main;␊
+      	if (hasRequiredMain) return main$1;␊
       	hasRequiredMain = 1;␊
-      	_commonjsHelpers.commonjsGlobal.main = 'main';␊
+      	commonjsGlobal.main = 'main';␊
       	console.log('main');␊
       ␊
-      	main = 'main';␊
-      	return main;␊
+      	main$1 = 'main';␊
+      	return main$1;␊
       }␊
       ␊
-      exports.__require = requireMain;␊
+      var mainExports = requireMain();␊
+      var main = /*@__PURE__*/getDefaultExportFromCjs(mainExports);␊
+      ␊
+      module.exports = main;␊
       `,
     }
 
diff --git a/packages/commonjs/test/snapshots/function.js.snap b/packages/commonjs/test/snapshots/function.js.snap
index 5517bbaaa..afefc2250 100644
Binary files a/packages/commonjs/test/snapshots/function.js.snap and b/packages/commonjs/test/snapshots/function.js.snap differ
diff --git a/packages/commonjs/test/test.js b/packages/commonjs/test/test.js
index fc8d4934c..1367e9a8a 100644
--- a/packages/commonjs/test/test.js
+++ b/packages/commonjs/test/test.js
@@ -509,7 +509,9 @@ test('creates an error with a code frame when parsing fails', async (t) => {
   } catch (error) {
     t.is(
       error.frame,
-      '1: /* eslint-disable */\n2: export const foo = 2,\n                        ^'
+      `1: /* eslint-disable */
+2: export const foo = 2,
+                       ^`
     );
   }
 });
@@ -665,11 +667,17 @@ test('does not affect subsequently created instances when called with `requireRe
   const options = { requireReturnsDefault: 'preferred' };
 
   const instance1 = commonjs(options);
-  const bundle1 = await rollup({ input, plugins: [instance1] });
+  const bundle1 = await rollup({
+    input,
+    plugins: [instance1]
+  });
   const code1 = (await bundle1.generate({})).output[0].code;
 
   const instance2 = commonjs(options);
-  const bundle2 = await rollup({ input, plugins: [instance2] });
+  const bundle2 = await rollup({
+    input,
+    plugins: [instance2]
+  });
   const code2 = (await bundle2.generate({})).output[0].code;
 
   t.is(code1, code2);
@@ -1266,12 +1274,18 @@ test('allows the config to be reused', async (t) => {
       })
     ]
   };
-  let bundle = await rollup({ input: 'foo.js', ...config });
+  let bundle = await rollup({
+    input: 'foo.js',
+    ...config
+  });
   t.deepEqual(
     bundle.cache.modules.map(({ id }) => id),
     ['foo.js']
   );
-  bundle = await rollup({ input: 'bar.js', ...config });
+  bundle = await rollup({
+    input: 'bar.js',
+    ...config
+  });
   t.deepEqual(
     bundle.cache.modules.map(({ id }) => id),
     ['bar.js']
diff --git a/packages/data-uri/package.json b/packages/data-uri/package.json
index 572038398..8e8f30e92 100644
--- a/packages/data-uri/package.json
+++ b/packages/data-uri/package.json
@@ -54,7 +54,7 @@
     "url"
   ],
   "peerDependencies": {
-    "rollup": "^1.20.0||^2.0.0||^3.0.0"
+    "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
   },
   "peerDependenciesMeta": {
     "rollup": {
@@ -66,7 +66,7 @@
   },
   "devDependencies": {
     "@rollup/plugin-typescript": "^9.0.1",
-    "rollup": "^3.2.3",
+    "rollup": "^4.0.0-23",
     "typescript": "^4.8.3"
   },
   "types": "./types/index.d.ts",
diff --git a/packages/dsv/package.json b/packages/dsv/package.json
index c3c0d6a23..b1951fa19 100755
--- a/packages/dsv/package.json
+++ b/packages/dsv/package.json
@@ -41,7 +41,7 @@
     "LICENSE"
   ],
   "peerDependencies": {
-    "rollup": "^1.20.0||^2.0.0||^3.0.0"
+    "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
   },
   "peerDependenciesMeta": {
     "rollup": {
@@ -56,7 +56,7 @@
   },
   "devDependencies": {
     "del-cli": "^5.0.0",
-    "rollup": "^3.2.3"
+    "rollup": "^4.0.0-23"
   },
   "types": "./types/index.d.ts",
   "ava": {
diff --git a/packages/dynamic-import-vars/package.json b/packages/dynamic-import-vars/package.json
index d1ab51a0f..104484fac 100644
--- a/packages/dynamic-import-vars/package.json
+++ b/packages/dynamic-import-vars/package.json
@@ -55,7 +55,7 @@
     "interpolation"
   ],
   "peerDependencies": {
-    "rollup": "^1.20.0||^2.0.0||^3.0.0"
+    "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
   },
   "peerDependenciesMeta": {
     "rollup": {
@@ -72,7 +72,7 @@
   "devDependencies": {
     "acorn": "^8.8.0",
     "prettier": "^2.7.1",
-    "rollup": "^3.2.3"
+    "rollup": "^4.0.0-23"
   },
   "types": "./types/index.d.ts",
   "ava": {
diff --git a/packages/eslint/package.json b/packages/eslint/package.json
index 5faceecc4..21386f6ef 100755
--- a/packages/eslint/package.json
+++ b/packages/eslint/package.json
@@ -54,7 +54,7 @@
     "lint"
   ],
   "peerDependencies": {
-    "rollup": "^1.20.0||^2.0.0||^3.0.0"
+    "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
   },
   "peerDependenciesMeta": {
     "rollup": {
@@ -69,7 +69,7 @@
     "@rollup/plugin-node-resolve": "^15.0.0",
     "@rollup/plugin-typescript": "^9.0.1",
     "@types/eslint": "^8.4.6",
-    "rollup": "^3.2.3",
+    "rollup": "^4.0.0-23",
     "typescript": "^4.8.3"
   },
   "types": "./types/index.d.ts",
diff --git a/packages/esm-shim/package.json b/packages/esm-shim/package.json
index 2512fb204..bae5b4608 100644
--- a/packages/esm-shim/package.json
+++ b/packages/esm-shim/package.json
@@ -52,7 +52,7 @@
     "modules"
   ],
   "peerDependencies": {
-    "rollup": "^2.x || ^3.x"
+    "rollup": "^2.0.0||^3.0.0||^4.0.0"
   },
   "peerDependenciesMeta": {
     "rollup": {
@@ -63,7 +63,7 @@
     "magic-string": "^0.30.0"
   },
   "devDependencies": {
-    "rollup": "^3.0.0-7",
+    "rollup": "^4.0.0-23",
     "typescript": "^4.8.3"
   },
   "types": "./types/index.d.ts"
diff --git a/packages/graphql/package.json b/packages/graphql/package.json
index f4fc4a8d1..5080c4af5 100644
--- a/packages/graphql/package.json
+++ b/packages/graphql/package.json
@@ -55,7 +55,7 @@
   ],
   "peerDependencies": {
     "graphql": ">=0.9.0",
-    "rollup": "^1.20.0||^2.0.0||^3.0.0"
+    "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
   },
   "peerDependenciesMeta": {
     "rollup": {
@@ -69,7 +69,7 @@
   "devDependencies": {
     "@rollup/plugin-buble": "^1.0.0",
     "graphql": "^16.6.0",
-    "rollup": "^3.2.3"
+    "rollup": "^4.0.0-23"
   },
   "types": "./types/index.d.ts",
   "ava": {
diff --git a/packages/html/package.json b/packages/html/package.json
index 22f094b39..a5263cb93 100644
--- a/packages/html/package.json
+++ b/packages/html/package.json
@@ -51,7 +51,7 @@
     "template"
   ],
   "peerDependencies": {
-    "rollup": "^1.20.0||^2.0.0||^3.0.0"
+    "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
   },
   "peerDependenciesMeta": {
     "rollup": {
@@ -61,7 +61,7 @@
   "devDependencies": {
     "@rollup/plugin-typescript": "^9.0.1",
     "postcss": "^8.4.16",
-    "rollup": "^3.2.3",
+    "rollup": "^4.0.0-23",
     "rollup-plugin-postcss": "^4.0.2",
     "typescript": "^4.8.3"
   },
diff --git a/packages/html/test/snapshots/test.js.md b/packages/html/test/snapshots/test.js.md
index 7694ad915..39485f833 100644
--- a/packages/html/test/snapshots/test.js.md
+++ b/packages/html/test/snapshots/test.js.md
@@ -189,13 +189,11 @@ Generated by [AVA](https://avajs.dev).
         names: [
           'batman',
         ],
-        toString: Function {},
       },
       {
         code: 'PLUGIN_WARNING',
         message: 'plugin-html: The output format \'cjs\' is not directly supported. A custom `template` is probably required. Supported formats include: es, esm, iife, umd',
         plugin: 'html',
-        toString: Function {},
       },
     ]
 
diff --git a/packages/html/test/snapshots/test.js.snap b/packages/html/test/snapshots/test.js.snap
index 1fdf4d3a0..8d01f6b5c 100644
Binary files a/packages/html/test/snapshots/test.js.snap and b/packages/html/test/snapshots/test.js.snap differ
diff --git a/packages/image/package.json b/packages/image/package.json
index 9b326366f..70a9d76c6 100644
--- a/packages/image/package.json
+++ b/packages/image/package.json
@@ -50,7 +50,7 @@
     "modules"
   ],
   "peerDependencies": {
-    "rollup": "^1.20.0||^2.0.0||^3.0.0"
+    "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
   },
   "peerDependenciesMeta": {
     "rollup": {
@@ -63,7 +63,7 @@
   },
   "devDependencies": {
     "@rollup/plugin-buble": "^1.0.0",
-    "rollup": "^3.2.3"
+    "rollup": "^4.0.0-23"
   },
   "types": "./types/index.d.ts",
   "ava": {
diff --git a/packages/inject/package.json b/packages/inject/package.json
index 1d73f6198..22b86d1b8 100644
--- a/packages/inject/package.json
+++ b/packages/inject/package.json
@@ -53,7 +53,7 @@
     "modules"
   ],
   "peerDependencies": {
-    "rollup": "^1.20.0||^2.0.0||^3.0.0"
+    "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
   },
   "peerDependenciesMeta": {
     "rollup": {
@@ -69,7 +69,7 @@
     "@rollup/plugin-buble": "^1.0.0",
     "del-cli": "^5.0.0",
     "locate-character": "^2.0.5",
-    "rollup": "^3.2.3",
+    "rollup": "^4.0.0-23",
     "source-map": "^0.7.4",
     "typescript": "^4.8.3"
   },
diff --git a/packages/json/package.json b/packages/json/package.json
index 0ff50380c..cf6d81c14 100755
--- a/packages/json/package.json
+++ b/packages/json/package.json
@@ -53,7 +53,7 @@
     "modules"
   ],
   "peerDependencies": {
-    "rollup": "^1.20.0||^2.0.0||^3.0.0"
+    "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
   },
   "peerDependenciesMeta": {
     "rollup": {
@@ -66,7 +66,7 @@
   "devDependencies": {
     "@rollup/plugin-buble": "^1.0.0",
     "@rollup/plugin-node-resolve": "^15.0.0",
-    "rollup": "^3.2.3",
+    "rollup": "^4.0.0-23",
     "source-map-support": "^0.5.21"
   },
   "types": "./types/index.d.ts",
diff --git a/packages/legacy/package.json b/packages/legacy/package.json
index 88f61a344..e442551c4 100644
--- a/packages/legacy/package.json
+++ b/packages/legacy/package.json
@@ -48,7 +48,7 @@
     "plugin"
   ],
   "peerDependencies": {
-    "rollup": "^1.20.0||^2.0.0||^3.0.0"
+    "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
   },
   "peerDependenciesMeta": {
     "rollup": {
@@ -61,7 +61,7 @@
   "devDependencies": {
     "@rollup/plugin-buble": "^1.0.0",
     "del-cli": "^5.0.0",
-    "rollup": "^3.2.3"
+    "rollup": "^4.0.0-23"
   },
   "types": "./types/index.d.ts",
   "ava": {
diff --git a/packages/multi-entry/package.json b/packages/multi-entry/package.json
index 1d3a7adfe..c5ccb6c61 100755
--- a/packages/multi-entry/package.json
+++ b/packages/multi-entry/package.json
@@ -52,7 +52,7 @@
     "entries"
   ],
   "peerDependencies": {
-    "rollup": "^1.20.0||^2.0.0||^3.0.0"
+    "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
   },
   "peerDependenciesMeta": {
     "rollup": {
@@ -64,7 +64,7 @@
     "matched": "^5.0.1"
   },
   "devDependencies": {
-    "rollup": "^3.2.3"
+    "rollup": "^4.0.0-23"
   },
   "types": "./types/index.d.ts",
   "ava": {
diff --git a/packages/node-resolve/package.json b/packages/node-resolve/package.json
index 02a51b094..38a4d1cc6 100644
--- a/packages/node-resolve/package.json
+++ b/packages/node-resolve/package.json
@@ -53,7 +53,7 @@
     "modules"
   ],
   "peerDependencies": {
-    "rollup": "^2.78.0||^3.0.0"
+    "rollup": "^2.78.0||^3.0.0||^4.0.0"
   },
   "peerDependenciesMeta": {
     "rollup": {
@@ -75,7 +75,7 @@
     "@rollup/plugin-commonjs": "^23.0.0",
     "@rollup/plugin-json": "^5.0.0",
     "es5-ext": "^0.10.62",
-    "rollup": "^3.2.3",
+    "rollup": "^4.0.0-23",
     "source-map": "^0.7.4",
     "string-capitalize": "^1.0.1"
   },
diff --git a/packages/node-resolve/src/index.js b/packages/node-resolve/src/index.js
index e8bc83153..09ce84cd8 100644
--- a/packages/node-resolve/src/index.js
+++ b/packages/node-resolve/src/index.js
@@ -304,6 +304,7 @@ export function nodeResolve(opts = {}) {
           // `moduleSideEffects` information.
           const resolvedResolved = await this.resolve(resolved.id, importer, {
             ...resolveOptions,
+            skipSelf: false,
             custom: { ...custom, 'node-resolve': { ...custom['node-resolve'], resolved, importee } }
           });
           if (resolvedResolved) {
diff --git a/packages/node-resolve/test/snapshots/prefer-builtins.js.md b/packages/node-resolve/test/snapshots/prefer-builtins.js.md
index e7555b12c..5c7fcbdce 100644
--- a/packages/node-resolve/test/snapshots/prefer-builtins.js.md
+++ b/packages/node-resolve/test/snapshots/prefer-builtins.js.md
@@ -15,6 +15,5 @@ Generated by [AVA](https://avajs.dev).
         names: [
           'prefer-builtin',
         ],
-        toString: Function {},
       },
     ]
diff --git a/packages/node-resolve/test/snapshots/prefer-builtins.js.snap b/packages/node-resolve/test/snapshots/prefer-builtins.js.snap
index d6da3e281..2c81c55fc 100644
Binary files a/packages/node-resolve/test/snapshots/prefer-builtins.js.snap and b/packages/node-resolve/test/snapshots/prefer-builtins.js.snap differ
diff --git a/packages/node-resolve/test/snapshots/test.mjs.md b/packages/node-resolve/test/snapshots/test.mjs.md
index f9eda1d17..7eccb2357 100644
--- a/packages/node-resolve/test/snapshots/test.mjs.md
+++ b/packages/node-resolve/test/snapshots/test.mjs.md
@@ -19,7 +19,6 @@ Generated by [AVA](https://avajs.dev).
         code: 'PLUGIN_WARNING',
         message: 'node-resolve: The `customResolveOptions.moduleDirectory` option has been deprecated. Use `moduleDirectories`, which must be an array.',
         plugin: 'node-resolve',
-        toString: Function {},
       },
     ]
 
diff --git a/packages/node-resolve/test/snapshots/test.mjs.snap b/packages/node-resolve/test/snapshots/test.mjs.snap
index 84b2de596..84c150452 100644
Binary files a/packages/node-resolve/test/snapshots/test.mjs.snap and b/packages/node-resolve/test/snapshots/test.mjs.snap differ
diff --git a/packages/node-resolve/test/test.mjs b/packages/node-resolve/test/test.mjs
index dbe574347..9318d4ea4 100755
--- a/packages/node-resolve/test/test.mjs
+++ b/packages/node-resolve/test/test.mjs
@@ -563,13 +563,13 @@ test('passes on "isEntry" flag and original importee', async (t) => {
   });
 
   t.deepEqual(resolveOptions, [
-    ['other.js', 'main.js', { assertions: {}, custom: {}, isEntry: true }],
-    ['main.js', void 0, { assertions: {}, custom: {}, isEntry: true }],
+    ['other.js', 'main.js', { attributes: {}, custom: {}, isEntry: true }],
+    ['main.js', void 0, { attributes: {}, custom: {}, isEntry: true }],
     [
       'other.js',
       'main.js',
       {
-        assertions: {},
+        attributes: {},
         custom: {
           'node-resolve': {
             resolved: {
@@ -586,7 +586,7 @@ test('passes on "isEntry" flag and original importee', async (t) => {
       'main.js',
       void 0,
       {
-        assertions: {},
+        attributes: {},
         custom: {
           'node-resolve': {
             resolved: {
@@ -599,12 +599,12 @@ test('passes on "isEntry" flag and original importee', async (t) => {
         isEntry: true
       }
     ],
-    ['dep.js', 'main.js', { assertions: {}, custom: {}, isEntry: false }],
+    ['dep.js', 'main.js', { attributes: {}, custom: {}, isEntry: false }],
     [
       'dep.js',
       'main.js',
       {
-        assertions: {},
+        attributes: {},
         custom: {
           'node-resolve': {
             resolved: {
@@ -630,7 +630,11 @@ test('passes on custom options', async (t) => {
       {
         name: 'test',
         async buildStart() {
-          await this.resolve('entry/main.js', void 0, { isEntry: false, custom: { test: 42 } });
+          await this.resolve('entry/main.js', void 0, {
+            isEntry: false,
+            skipSelf: false,
+            custom: { test: 42 }
+          });
         },
         resolveId(source, importer, options) {
           resolveOptions.push([
@@ -643,12 +647,12 @@ test('passes on custom options', async (t) => {
     ]
   });
   t.deepEqual(resolveOptions, [
-    ['main.js', void 0, { assertions: {}, custom: { test: 42 }, isEntry: false }],
+    ['main.js', void 0, { attributes: {}, custom: { test: 42 }, isEntry: false }],
     [
       'main.js',
       void 0,
       {
-        assertions: {},
+        attributes: {},
         custom: {
           test: 42,
           'node-resolve': {
@@ -662,12 +666,12 @@ test('passes on custom options', async (t) => {
         isEntry: false
       }
     ],
-    ['other.js', void 0, { assertions: {}, custom: {}, isEntry: true }],
+    ['other.js', void 0, { attributes: {}, custom: {}, isEntry: true }],
     [
       'other.js',
       void 0,
       {
-        assertions: {},
+        attributes: {},
         custom: {
           'node-resolve': {
             resolved: {
diff --git a/packages/pluginutils/package.json b/packages/pluginutils/package.json
index f149e9d4c..b1b25c5d9 100644
--- a/packages/pluginutils/package.json
+++ b/packages/pluginutils/package.json
@@ -53,7 +53,7 @@
     "utils"
   ],
   "peerDependencies": {
-    "rollup": "^1.20.0||^2.0.0||^3.0.0"
+    "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
   },
   "peerDependenciesMeta": {
     "rollup": {
@@ -72,7 +72,7 @@
     "@types/node": "^14.18.30",
     "@types/picomatch": "^2.3.0",
     "acorn": "^8.8.0",
-    "rollup": "^3.2.3",
+    "rollup": "^4.0.0-23",
     "typescript": "^4.8.3"
   },
   "types": "./types/index.d.ts",
diff --git a/packages/replace/package.json b/packages/replace/package.json
index 8d46239f6..771502e3d 100644
--- a/packages/replace/package.json
+++ b/packages/replace/package.json
@@ -53,7 +53,7 @@
     "modules"
   ],
   "peerDependencies": {
-    "rollup": "^1.20.0||^2.0.0||^3.0.0"
+    "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
   },
   "peerDependenciesMeta": {
     "rollup": {
@@ -68,7 +68,7 @@
     "@rollup/plugin-buble": "^1.0.0",
     "del-cli": "^5.0.0",
     "locate-character": "^2.0.5",
-    "rollup": "^3.2.3",
+    "rollup": "^4.0.0-23",
     "source-map": "^0.7.4",
     "typescript": "^4.8.3"
   },
diff --git a/packages/replace/test/snapshots/misc.js.md b/packages/replace/test/snapshots/misc.js.md
index 36e3d388e..cd85f9ef2 100644
--- a/packages/replace/test/snapshots/misc.js.md
+++ b/packages/replace/test/snapshots/misc.js.md
@@ -13,7 +13,6 @@ Generated by [AVA](https://avajs.dev).
         code: 'PLUGIN_WARNING',
         message: '@rollup/plugin-replace: \'preventAssignment\' currently defaults to false. It is recommended to set this option to `true`, as the next major version will default this option to `true`.',
         plugin: 'replace',
-        toString: Function {},
       },
     ]
 
diff --git a/packages/replace/test/snapshots/misc.js.snap b/packages/replace/test/snapshots/misc.js.snap
index 54233216a..73ae474b8 100644
Binary files a/packages/replace/test/snapshots/misc.js.snap and b/packages/replace/test/snapshots/misc.js.snap differ
diff --git a/packages/run/package.json b/packages/run/package.json
index 5235b03bc..875863384 100644
--- a/packages/run/package.json
+++ b/packages/run/package.json
@@ -49,7 +49,7 @@
     "run"
   ],
   "peerDependencies": {
-    "rollup": "^2.0.0||^3.0.0"
+    "rollup": "^2.0.0||^3.0.0||^4.0.0"
   },
   "peerDependenciesMeta": {
     "rollup": {
@@ -62,7 +62,7 @@
   "devDependencies": {
     "@rollup/plugin-typescript": "^9.0.1",
     "del": "^6.1.1",
-    "rollup": "^3.2.3",
+    "rollup": "^4.0.0-23",
     "sinon": "^14.0.0",
     "typescript": "^4.8.3"
   },
diff --git a/packages/strip/package.json b/packages/strip/package.json
index a769da1a2..73406bff5 100644
--- a/packages/strip/package.json
+++ b/packages/strip/package.json
@@ -47,7 +47,7 @@
     "javascript"
   ],
   "peerDependencies": {
-    "rollup": "^1.20.0||^2.0.0||^3.0.0"
+    "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
   },
   "peerDependenciesMeta": {
     "rollup": {
@@ -61,7 +61,7 @@
   },
   "devDependencies": {
     "acorn": "^8.8.0",
-    "rollup": "^3.2.3"
+    "rollup": "^4.0.0-23"
   },
   "types": "./types/index.d.ts",
   "ava": {
diff --git a/packages/sucrase/package.json b/packages/sucrase/package.json
index db07e0acd..871e7abd6 100644
--- a/packages/sucrase/package.json
+++ b/packages/sucrase/package.json
@@ -54,7 +54,7 @@
     "jsx"
   ],
   "peerDependencies": {
-    "rollup": "^2.53.1||^3.0.0"
+    "rollup": "^2.53.1||^3.0.0||^4.0.0"
   },
   "peerDependenciesMeta": {
     "rollup": {
@@ -67,7 +67,7 @@
   },
   "devDependencies": {
     "@rollup/plugin-alias": "^4.0.0",
-    "rollup": "^3.2.3"
+    "rollup": "^4.0.0-23"
   },
   "types": "./types/index.d.ts",
   "ava": {
diff --git a/packages/swc/package.json b/packages/swc/package.json
index 2d4078bfb..60f8ff311 100644
--- a/packages/swc/package.json
+++ b/packages/swc/package.json
@@ -53,8 +53,8 @@
     "modules"
   ],
   "peerDependencies": {
-    "@swc/core": "^1.3.x",
-    "rollup": "^3.x"
+    "@swc/core": "^1.3.0",
+    "rollup": "^3.0.0||^4.0.0"
   },
   "peerDependenciesMeta": {
     "rollup": {
@@ -67,7 +67,7 @@
   },
   "devDependencies": {
     "@swc/core": "^1.3.78",
-    "rollup": "^3.0.0-7",
+    "rollup": "^4.0.0-23",
     "typescript": "^4.8.3"
   },
   "types": "./types/index.d.ts"
diff --git a/packages/terser/package.json b/packages/terser/package.json
index b241c2bf5..f8501fe30 100644
--- a/packages/terser/package.json
+++ b/packages/terser/package.json
@@ -53,7 +53,7 @@
     "modules"
   ],
   "peerDependencies": {
-    "rollup": "^2.x || ^3.x"
+    "rollup": "^2.0.0||^3.0.0||^4.0.0"
   },
   "peerDependenciesMeta": {
     "rollup": {
@@ -67,7 +67,7 @@
   },
   "devDependencies": {
     "@types/serialize-javascript": "^5.0.2",
-    "rollup": "^3.0.0-7",
+    "rollup": "^4.0.0-23",
     "typescript": "^4.8.3"
   },
   "types": "./types/index.d.ts"
diff --git a/packages/typescript/package.json b/packages/typescript/package.json
index c43318c2a..1c12feb9e 100644
--- a/packages/typescript/package.json
+++ b/packages/typescript/package.json
@@ -51,7 +51,7 @@
     "es2015"
   ],
   "peerDependencies": {
-    "rollup": "^2.14.0||^3.0.0",
+    "rollup": "^2.14.0||^3.0.0||^4.0.0",
     "tslib": "*",
     "typescript": ">=3.7.0"
   },
@@ -73,7 +73,7 @@
     "@types/node": "^14.18.30",
     "@types/resolve": "^1.20.2",
     "buble": "^0.20.0",
-    "rollup": "^3.2.3",
+    "rollup": "^4.0.0-23",
     "typescript": "^4.8.3"
   },
   "types": "./types/index.d.ts"
diff --git a/packages/typescript/src/diagnostics/toWarning.ts b/packages/typescript/src/diagnostics/toWarning.ts
index d588472ff..dce6e1bf8 100644
--- a/packages/typescript/src/diagnostics/toWarning.ts
+++ b/packages/typescript/src/diagnostics/toWarning.ts
@@ -1,5 +1,5 @@
 import type typescript from 'typescript';
-import type { RollupWarning } from 'rollup';
+import type { RollupLog } from 'rollup';
 import type { Diagnostic, FormatDiagnosticsHost } from 'typescript';
 
 /**
@@ -14,7 +14,7 @@ export default function diagnosticToWarning(
   const message = ts.flattenDiagnosticMessageText(diagnostic.messageText, '\n');
 
   // Build a Rollup warning object from the diagnostics object.
-  const warning: RollupWarning = {
+  const warning: RollupLog = {
     pluginCode,
     message: `@rollup/plugin-typescript ${pluginCode}: ${message}`
   };
diff --git a/packages/typescript/src/index.ts b/packages/typescript/src/index.ts
index bea3e736d..e39960017 100644
--- a/packages/typescript/src/index.ts
+++ b/packages/typescript/src/index.ts
@@ -2,7 +2,7 @@ import * as path from 'path';
 
 import { createFilter } from '@rollup/pluginutils';
 
-import type { Plugin, RollupOptions, SourceDescription } from 'rollup';
+import type { Plugin, SourceDescription } from 'rollup';
 import type { Watch } from 'typescript';
 
 import type { RollupTypescriptOptions } from '../types';
@@ -55,10 +55,10 @@ export default function typescript(options: RollupTypescriptOptions = {}): Plugi
   return {
     name: 'typescript',
 
-    buildStart(rollupOptions: RollupOptions) {
+    buildStart() {
       emitParsedOptionsErrors(ts, this, parsedOptions);
 
-      preflight({ config: parsedOptions, context: this, rollupOptions, tslib });
+      preflight({ config: parsedOptions, context: this, tslib });
 
       // Fixes a memory leak https://github.com/rollup/plugins/issues/322
       if (this.meta.watchMode !== true) {
diff --git a/packages/typescript/src/preflight.ts b/packages/typescript/src/preflight.ts
index fce693e5e..4aa770765 100644
--- a/packages/typescript/src/preflight.ts
+++ b/packages/typescript/src/preflight.ts
@@ -1,4 +1,4 @@
-import type { PluginContext, RollupOptions } from 'rollup';
+import type { PluginContext } from 'rollup';
 import typescript from 'typescript';
 
 import type { TypeScriptConfig } from './options/tsconfig';
@@ -8,7 +8,6 @@ const { ModuleKind } = typescript;
 interface PreflightOptions {
   config: TypeScriptConfig;
   context: PluginContext;
-  rollupOptions: RollupOptions;
   tslib: any;
 }
 
@@ -31,12 +30,12 @@ const validModules = [
 ];
 
 // eslint-disable-next-line import/prefer-default-export
-export const preflight = ({ config, context, rollupOptions, tslib }: PreflightOptions) => {
+export const preflight = ({ config, context, tslib }: PreflightOptions) => {
   if (!validModules.includes(config.options.module)) {
     context.warn(moduleErrorMessage);
   }
 
-  if (!rollupOptions.preserveModules && tslib === null) {
+  if (tslib === null) {
     context.error(tsLibErrorMessage);
   }
 };
diff --git a/packages/typescript/test/snapshots/tslib.ts.md b/packages/typescript/test/snapshots/tslib.ts.md
index 3c45cf42f..fefa3c392 100644
--- a/packages/typescript/test/snapshots/tslib.ts.md
+++ b/packages/typescript/test/snapshots/tslib.ts.md
@@ -14,7 +14,6 @@ Generated by [AVA](https://avajs.dev).
       path: 'fixtures/joker/tslib.js',
       syscall: 'open',
       watchFiles: [
-        'packages/typescript/test/fixtures/overriding-tslib/main.ts',
         'fixtures/joker/tslib.js',
       ],
       message: 'Could not load fixtures/joker/tslib.js (imported by fixtures/overriding-tslib/main.ts): ENOENT: no such file or directory, open \'fixtures/joker/tslib.js\'',
diff --git a/packages/typescript/test/snapshots/tslib.ts.snap b/packages/typescript/test/snapshots/tslib.ts.snap
index e9e3b8501..64a8ae45e 100644
Binary files a/packages/typescript/test/snapshots/tslib.ts.snap and b/packages/typescript/test/snapshots/tslib.ts.snap differ
diff --git a/packages/typescript/test/snapshots/warnings.ts.md b/packages/typescript/test/snapshots/warnings.ts.md
index a2bcc5acf..0135f2c42 100644
--- a/packages/typescript/test/snapshots/warnings.ts.md
+++ b/packages/typescript/test/snapshots/warnings.ts.md
@@ -13,6 +13,5 @@ Generated by [AVA](https://avajs.dev).
         code: 'PLUGIN_WARNING',
         message: '@rollup/plugin-typescript: Rollup requires that TypeScript produces ES Modules. Unfortunately your configuration specifies a "module" other than "esnext". Unless you know what you\'re doing, please change "module" to "esnext" in the target tsconfig.json file or plugin options.',
         plugin: 'typescript',
-        toString: Function {},
       },
     ]
diff --git a/packages/typescript/test/snapshots/warnings.ts.snap b/packages/typescript/test/snapshots/warnings.ts.snap
index bb1c93a09..ab7aa5684 100644
Binary files a/packages/typescript/test/snapshots/warnings.ts.snap and b/packages/typescript/test/snapshots/warnings.ts.snap differ
diff --git a/packages/typescript/test/test.js b/packages/typescript/test/test.js
index e746680c1..127f98e19 100644
--- a/packages/typescript/test/test.js
+++ b/packages/typescript/test/test.js
@@ -1058,8 +1058,8 @@ test.serial('normalizes resolved ids to avoid duplicate output on windows', asyn
   const files = await getCode(bundle, { format: 'es' }, true);
 
   t.is(files.length, 2);
-  t.true(files[1].fileName.includes('two.js'), files[1].fileName);
-  t.true(files[1].code.includes("import { one } from './one.js';"), files[1].code);
+  t.true(files[0].fileName.includes('two.js'), files[1].fileName);
+  t.true(files[0].code.includes("import { one } from './one.js';"), files[1].code);
 });
 
 test.serial('does it support tsconfig.rootDir for filtering', async (t) => {
diff --git a/packages/url/package.json b/packages/url/package.json
index 9ea52608d..52f2d4294 100644
--- a/packages/url/package.json
+++ b/packages/url/package.json
@@ -49,7 +49,7 @@
     "url"
   ],
   "peerDependencies": {
-    "rollup": "^1.20.0||^2.0.0||^3.0.0"
+    "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
   },
   "peerDependenciesMeta": {
     "rollup": {
@@ -64,7 +64,7 @@
   "devDependencies": {
     "del": "^6.1.1",
     "globby": "^11.1.0",
-    "rollup": "^3.2.3"
+    "rollup": "^4.0.0-23"
   },
   "types": "./types/index.d.ts",
   "ava": {
diff --git a/packages/virtual/package.json b/packages/virtual/package.json
index 07e622c02..1617f129f 100755
--- a/packages/virtual/package.json
+++ b/packages/virtual/package.json
@@ -53,7 +53,7 @@
     "virtual"
   ],
   "peerDependencies": {
-    "rollup": "^1.20.0||^2.0.0||^3.0.0"
+    "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
   },
   "peerDependenciesMeta": {
     "rollup": {
@@ -63,7 +63,7 @@
   "devDependencies": {
     "@rollup/plugin-node-resolve": "^15.0.0",
     "@rollup/plugin-typescript": "^9.0.1",
-    "rollup": "^3.2.3",
+    "rollup": "^4.0.0-23",
     "typescript": "^4.8.3"
   },
   "types": "./types/index.d.ts",
diff --git a/packages/wasm/package.json b/packages/wasm/package.json
index 7e555491b..051e8ee6a 100644
--- a/packages/wasm/package.json
+++ b/packages/wasm/package.json
@@ -55,7 +55,7 @@
     "emscripten"
   ],
   "peerDependencies": {
-    "rollup": "^1.20.0||^2.0.0||^3.0.0"
+    "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
   },
   "peerDependenciesMeta": {
     "rollup": {
@@ -68,7 +68,7 @@
   "devDependencies": {
     "@rollup/plugin-typescript": "^9.0.1",
     "del-cli": "^5.0.0",
-    "rollup": "^3.2.3",
+    "rollup": "^4.0.0-23",
     "source-map": "^0.7.4",
     "typescript": "^4.8.3"
   },
diff --git a/packages/yaml/package.json b/packages/yaml/package.json
index e4d6e2dbc..0aaa04cda 100755
--- a/packages/yaml/package.json
+++ b/packages/yaml/package.json
@@ -49,7 +49,7 @@
     "yaml"
   ],
   "peerDependencies": {
-    "rollup": "^1.20.0||^2.0.0||^3.0.0"
+    "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
   },
   "peerDependenciesMeta": {
     "rollup": {
@@ -64,7 +64,7 @@
   "devDependencies": {
     "@rollup/plugin-node-resolve": "^15.0.0",
     "del-cli": "^5.0.0",
-    "rollup": "^3.2.3",
+    "rollup": "^4.0.0-23",
     "source-map-support": "^0.5.21"
   },
   "types": "./types/index.d.ts",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 4cd256063..8366d8ae8 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -13,7 +13,7 @@ importers:
         version: 2.0.0
       '@rollup/plugin-typescript':
         specifier: ^9.0.1
-        version: 9.0.1(rollup@3.2.3)(typescript@4.8.4)
+        version: 9.0.1(rollup@4.0.0-23)(typescript@4.8.4)
       '@types/conventional-commits-parser':
         specifier: ^3.0.2
         version: 3.0.2
@@ -110,16 +110,16 @@ importers:
     devDependencies:
       '@rollup/plugin-node-resolve':
         specifier: ^15.0.0
-        version: 15.0.0(rollup@3.2.3)
+        version: 15.0.0(rollup@4.0.0-23)
       '@rollup/plugin-typescript':
         specifier: ^9.0.1
-        version: 9.0.1(rollup@3.2.3)(typescript@4.8.4)
+        version: 9.0.1(rollup@4.0.0-23)(typescript@4.8.4)
       del-cli:
         specifier: ^5.0.0
         version: 5.0.0
       rollup:
-        specifier: ^3.2.3
-        version: 3.2.3
+        specifier: ^4.0.0-23
+        version: 4.0.0-23
       typescript:
         specifier: ^4.8.3
         version: 4.8.4
@@ -128,10 +128,10 @@ importers:
     devDependencies:
       '@rollup/plugin-node-resolve':
         specifier: ^15.0.0
-        version: 15.0.0(rollup@3.2.3)
+        version: 15.0.0(rollup@4.0.0-23)
       '@rollup/plugin-typescript':
         specifier: ^9.0.1
-        version: 9.0.1(rollup@3.2.3)(typescript@4.8.4)
+        version: 9.0.1(rollup@4.0.0-23)(typescript@4.8.4)
       del:
         specifier: ^6.1.1
         version: 6.1.1
@@ -139,8 +139,8 @@ importers:
         specifier: ^1.0.0
         version: 1.0.0
       rollup:
-        specifier: ^3.2.3
-        version: 3.2.3
+        specifier: ^4.0.0-23
+        version: 4.0.0-23
       typescript:
         specifier: ^4.8.3
         version: 4.8.4
@@ -152,7 +152,7 @@ importers:
         version: 7.18.6
       '@rollup/pluginutils':
         specifier: ^5.0.1
-        version: 5.0.1(rollup@3.2.3)
+        version: 5.0.1(rollup@4.0.0-23)
     devDependencies:
       '@babel/core':
         specifier: ^7.19.1
@@ -174,16 +174,16 @@ importers:
         version: 7.19.4(@babel/core@7.19.3)
       '@rollup/plugin-json':
         specifier: ^5.0.0
-        version: 5.0.0(rollup@3.2.3)
+        version: 5.0.0(rollup@4.0.0-23)
       '@rollup/plugin-node-resolve':
         specifier: ^15.0.0
-        version: 15.0.0(rollup@3.2.3)
+        version: 15.0.0(rollup@4.0.0-23)
       '@types/babel__core':
         specifier: ^7.1.9
         version: 7.1.19
       rollup:
-        specifier: ^3.2.3
-        version: 3.2.3
+        specifier: ^4.0.0-23
+        version: 4.0.0-23
       source-map:
         specifier: ^0.7.4
         version: 0.7.4
@@ -191,8 +191,8 @@ importers:
   packages/beep:
     devDependencies:
       rollup:
-        specifier: ^3.2.3
-        version: 3.2.3
+        specifier: ^4.0.0-23
+        version: 4.0.0-23
       strip-ansi:
         specifier: ^7.0.1
         version: 7.0.1
@@ -201,7 +201,7 @@ importers:
     dependencies:
       '@rollup/pluginutils':
         specifier: ^5.0.1
-        version: 5.0.1(rollup@3.2.3)
+        version: 5.0.1(rollup@4.0.0-23)
       '@types/buble':
         specifier: ^0.19.2
         version: 0.19.2
@@ -211,13 +211,13 @@ importers:
     devDependencies:
       '@rollup/plugin-typescript':
         specifier: ^9.0.1
-        version: 9.0.1(rollup@3.2.3)(typescript@4.8.4)
+        version: 9.0.1(rollup@4.0.0-23)(typescript@4.8.4)
       del-cli:
         specifier: ^5.0.0
         version: 5.0.0
       rollup:
-        specifier: ^3.2.3
-        version: 3.2.3
+        specifier: ^4.0.0-23
+        version: 4.0.0-23
       source-map:
         specifier: ^0.7.4
         version: 0.7.4
@@ -229,7 +229,7 @@ importers:
     dependencies:
       '@rollup/pluginutils':
         specifier: ^5.0.1
-        version: 5.0.1(rollup@3.20.2)
+        version: 5.0.1(rollup@4.0.0-23)
       commondir:
         specifier: ^1.0.1
         version: 1.0.1
@@ -248,10 +248,10 @@ importers:
     devDependencies:
       '@rollup/plugin-json':
         specifier: ^5.0.0
-        version: 5.0.0(rollup@3.20.2)
+        version: 5.0.0(rollup@4.0.0-23)
       '@rollup/plugin-node-resolve':
         specifier: ^15.0.0
-        version: 15.0.0(rollup@3.20.2)
+        version: 15.0.0(rollup@4.0.0-23)
       locate-character:
         specifier: ^2.0.5
         version: 2.0.5
@@ -259,8 +259,8 @@ importers:
         specifier: ^0.8.7
         version: 0.8.7
       rollup:
-        specifier: ^3.19.0
-        version: 3.20.2
+        specifier: ^4.0.0-23
+        version: 4.0.0-23
       shx:
         specifier: ^0.3.4
         version: 0.3.4
@@ -278,14 +278,14 @@ importers:
     dependencies:
       '@rollup/pluginutils':
         specifier: ^5.0.1
-        version: 5.0.1(rollup@3.2.3)
+        version: 5.0.1(rollup@4.0.0-23)
     devDependencies:
       '@rollup/plugin-typescript':
         specifier: ^9.0.1
-        version: 9.0.1(rollup@3.2.3)(typescript@4.8.4)
+        version: 9.0.1(rollup@4.0.0-23)(typescript@4.8.4)
       rollup:
-        specifier: ^3.2.3
-        version: 3.2.3
+        specifier: ^4.0.0-23
+        version: 4.0.0-23
       typescript:
         specifier: ^4.8.3
         version: 4.8.4
@@ -294,7 +294,7 @@ importers:
     dependencies:
       '@rollup/pluginutils':
         specifier: ^5.0.1
-        version: 5.0.1(rollup@3.2.3)
+        version: 5.0.1(rollup@4.0.0-23)
       '@types/d3-dsv':
         specifier: ^3.0.0
         version: 3.0.0
@@ -309,14 +309,14 @@ importers:
         specifier: ^5.0.0
         version: 5.0.0
       rollup:
-        specifier: ^3.2.3
-        version: 3.2.3
+        specifier: ^4.0.0-23
+        version: 4.0.0-23
 
   packages/dynamic-import-vars:
     dependencies:
       '@rollup/pluginutils':
         specifier: ^5.0.1
-        version: 5.0.1(rollup@3.2.3)
+        version: 5.0.1(rollup@4.0.0-23)
       astring:
         specifier: ^1.8.5
         version: 1.8.5
@@ -337,30 +337,30 @@ importers:
         specifier: ^2.7.1
         version: 2.7.1
       rollup:
-        specifier: ^3.2.3
-        version: 3.2.3
+        specifier: ^4.0.0-23
+        version: 4.0.0-23
 
   packages/eslint:
     dependencies:
       '@rollup/pluginutils':
         specifier: ^5.0.1
-        version: 5.0.1(rollup@3.2.3)
+        version: 5.0.1(rollup@4.0.0-23)
       eslint:
         specifier: ^8.24.0
         version: 8.25.0
     devDependencies:
       '@rollup/plugin-node-resolve':
         specifier: ^15.0.0
-        version: 15.0.0(rollup@3.2.3)
+        version: 15.0.0(rollup@4.0.0-23)
       '@rollup/plugin-typescript':
         specifier: ^9.0.1
-        version: 9.0.1(rollup@3.2.3)(typescript@4.8.4)
+        version: 9.0.1(rollup@4.0.0-23)(typescript@4.8.4)
       '@types/eslint':
         specifier: ^8.4.6
         version: 8.4.6
       rollup:
-        specifier: ^3.2.3
-        version: 3.2.3
+        specifier: ^4.0.0-23
+        version: 4.0.0-23
       typescript:
         specifier: ^4.8.3
         version: 4.8.4
@@ -372,8 +372,8 @@ importers:
         version: 0.30.0
     devDependencies:
       rollup:
-        specifier: ^3.0.0-7
-        version: 3.2.3
+        specifier: ^4.0.0-23
+        version: 4.0.0-23
       typescript:
         specifier: ^4.8.3
         version: 4.8.4
@@ -382,32 +382,32 @@ importers:
     dependencies:
       '@rollup/pluginutils':
         specifier: ^5.0.1
-        version: 5.0.1(rollup@3.2.3)
+        version: 5.0.1(rollup@4.0.0-23)
       graphql-tag:
         specifier: ^2.12.6
         version: 2.12.6(graphql@16.6.0)
     devDependencies:
       '@rollup/plugin-buble':
         specifier: ^1.0.0
-        version: 1.0.0(rollup@3.2.3)
+        version: 1.0.0(rollup@4.0.0-23)
       graphql:
         specifier: ^16.6.0
         version: 16.6.0
       rollup:
-        specifier: ^3.2.3
-        version: 3.2.3
+        specifier: ^4.0.0-23
+        version: 4.0.0-23
 
   packages/html:
     devDependencies:
       '@rollup/plugin-typescript':
         specifier: ^9.0.1
-        version: 9.0.1(rollup@3.2.3)(typescript@4.8.4)
+        version: 9.0.1(rollup@4.0.0-23)(typescript@4.8.4)
       postcss:
         specifier: ^8.4.16
         version: 8.4.17
       rollup:
-        specifier: ^3.2.3
-        version: 3.2.3
+        specifier: ^4.0.0-23
+        version: 4.0.0-23
       rollup-plugin-postcss:
         specifier: ^4.0.2
         version: 4.0.2(postcss@8.4.17)(ts-node@10.9.1)
@@ -419,23 +419,23 @@ importers:
     dependencies:
       '@rollup/pluginutils':
         specifier: ^5.0.1
-        version: 5.0.1(rollup@3.2.3)
+        version: 5.0.1(rollup@4.0.0-23)
       mini-svg-data-uri:
         specifier: ^1.4.4
         version: 1.4.4
     devDependencies:
       '@rollup/plugin-buble':
         specifier: ^1.0.0
-        version: 1.0.0(rollup@3.2.3)
+        version: 1.0.0(rollup@4.0.0-23)
       rollup:
-        specifier: ^3.2.3
-        version: 3.2.3
+        specifier: ^4.0.0-23
+        version: 4.0.0-23
 
   packages/inject:
     dependencies:
       '@rollup/pluginutils':
         specifier: ^5.0.1
-        version: 5.0.1(rollup@3.2.3)
+        version: 5.0.1(rollup@4.0.0-23)
       estree-walker:
         specifier: ^2.0.2
         version: 2.0.2
@@ -445,7 +445,7 @@ importers:
     devDependencies:
       '@rollup/plugin-buble':
         specifier: ^1.0.0
-        version: 1.0.0(rollup@3.2.3)
+        version: 1.0.0(rollup@4.0.0-23)
       del-cli:
         specifier: ^5.0.0
         version: 5.0.0
@@ -453,8 +453,8 @@ importers:
         specifier: ^2.0.5
         version: 2.0.5
       rollup:
-        specifier: ^3.2.3
-        version: 3.2.3
+        specifier: ^4.0.0-23
+        version: 4.0.0-23
       source-map:
         specifier: ^0.7.4
         version: 0.7.4
@@ -466,17 +466,17 @@ importers:
     dependencies:
       '@rollup/pluginutils':
         specifier: ^5.0.1
-        version: 5.0.1(rollup@3.2.3)
+        version: 5.0.1(rollup@4.0.0-23)
     devDependencies:
       '@rollup/plugin-buble':
         specifier: ^1.0.0
-        version: 1.0.0(rollup@3.2.3)
+        version: 1.0.0(rollup@4.0.0-23)
       '@rollup/plugin-node-resolve':
         specifier: ^15.0.0
-        version: 15.0.0(rollup@3.2.3)
+        version: 15.0.0(rollup@4.0.0-23)
       rollup:
-        specifier: ^3.2.3
-        version: 3.2.3
+        specifier: ^4.0.0-23
+        version: 4.0.0-23
       source-map-support:
         specifier: ^0.5.21
         version: 0.5.21
@@ -485,36 +485,36 @@ importers:
     dependencies:
       '@rollup/pluginutils':
         specifier: ^5.0.1
-        version: 5.0.1(rollup@3.2.3)
+        version: 5.0.1(rollup@4.0.0-23)
     devDependencies:
       '@rollup/plugin-buble':
         specifier: ^1.0.0
-        version: 1.0.0(rollup@3.2.3)
+        version: 1.0.0(rollup@4.0.0-23)
       del-cli:
         specifier: ^5.0.0
         version: 5.0.0
       rollup:
-        specifier: ^3.2.3
-        version: 3.2.3
+        specifier: ^4.0.0-23
+        version: 4.0.0-23
 
   packages/multi-entry:
     dependencies:
       '@rollup/plugin-virtual':
         specifier: ^3.0.0
-        version: 3.0.0(rollup@3.2.3)
+        version: 3.0.0(rollup@4.0.0-23)
       matched:
         specifier: ^5.0.1
         version: 5.0.1
     devDependencies:
       rollup:
-        specifier: ^3.2.3
-        version: 3.2.3
+        specifier: ^4.0.0-23
+        version: 4.0.0-23
 
   packages/node-resolve:
     dependencies:
       '@rollup/pluginutils':
         specifier: ^5.0.1
-        version: 5.0.1(rollup@3.2.3)
+        version: 5.0.1(rollup@4.0.0-23)
       '@types/resolve':
         specifier: 1.20.2
         version: 1.20.2
@@ -539,19 +539,19 @@ importers:
         version: 7.19.3(@babel/core@7.19.3)
       '@rollup/plugin-babel':
         specifier: ^6.0.0
-        version: 6.0.0(@babel/core@7.19.3)(rollup@3.2.3)
+        version: 6.0.0(@babel/core@7.19.3)(rollup@4.0.0-23)
       '@rollup/plugin-commonjs':
         specifier: ^23.0.0
-        version: 23.0.0(rollup@3.2.3)
+        version: 23.0.0(rollup@4.0.0-23)
       '@rollup/plugin-json':
         specifier: ^5.0.0
-        version: 5.0.0(rollup@3.2.3)
+        version: 5.0.0(rollup@4.0.0-23)
       es5-ext:
         specifier: ^0.10.62
         version: 0.10.62
       rollup:
-        specifier: ^3.2.3
-        version: 3.2.3
+        specifier: ^4.0.0-23
+        version: 4.0.0-23
       source-map:
         specifier: ^0.7.4
         version: 0.7.4
@@ -573,13 +573,13 @@ importers:
     devDependencies:
       '@rollup/plugin-commonjs':
         specifier: ^23.0.0
-        version: 23.0.0(rollup@3.2.3)
+        version: 23.0.0(rollup@4.0.0-23)
       '@rollup/plugin-node-resolve':
         specifier: ^15.0.0
-        version: 15.0.0(rollup@3.2.3)
+        version: 15.0.0(rollup@4.0.0-23)
       '@rollup/plugin-typescript':
         specifier: ^9.0.1
-        version: 9.0.1(rollup@3.2.3)(typescript@4.8.4)
+        version: 9.0.1(rollup@4.0.0-23)(typescript@4.8.4)
       '@types/node':
         specifier: ^14.18.30
         version: 14.18.31
@@ -590,8 +590,8 @@ importers:
         specifier: ^8.8.0
         version: 8.8.0
       rollup:
-        specifier: ^3.2.3
-        version: 3.2.3
+        specifier: ^4.0.0-23
+        version: 4.0.0-23
       typescript:
         specifier: ^4.8.3
         version: 4.8.4
@@ -600,14 +600,14 @@ importers:
     dependencies:
       '@rollup/pluginutils':
         specifier: ^5.0.1
-        version: 5.0.1(rollup@3.2.3)
+        version: 5.0.1(rollup@4.0.0-23)
       magic-string:
         specifier: ^0.27.0
         version: 0.27.0
     devDependencies:
       '@rollup/plugin-buble':
         specifier: ^1.0.0
-        version: 1.0.0(rollup@3.2.3)
+        version: 1.0.0(rollup@4.0.0-23)
       del-cli:
         specifier: ^5.0.0
         version: 5.0.0
@@ -615,8 +615,8 @@ importers:
         specifier: ^2.0.5
         version: 2.0.5
       rollup:
-        specifier: ^3.2.3
-        version: 3.2.3
+        specifier: ^4.0.0-23
+        version: 4.0.0-23
       source-map:
         specifier: ^0.7.4
         version: 0.7.4
@@ -632,13 +632,13 @@ importers:
     devDependencies:
       '@rollup/plugin-typescript':
         specifier: ^9.0.1
-        version: 9.0.1(rollup@3.2.3)(typescript@4.8.4)
+        version: 9.0.1(rollup@4.0.0-23)(typescript@4.8.4)
       del:
         specifier: ^6.1.1
         version: 6.1.1
       rollup:
-        specifier: ^3.2.3
-        version: 3.2.3
+        specifier: ^4.0.0-23
+        version: 4.0.0-23
       sinon:
         specifier: ^14.0.0
         version: 14.0.1
@@ -650,7 +650,7 @@ importers:
     dependencies:
       '@rollup/pluginutils':
         specifier: ^5.0.1
-        version: 5.0.1(rollup@3.2.3)
+        version: 5.0.1(rollup@4.0.0-23)
       estree-walker:
         specifier: ^2.0.2
         version: 2.0.2
@@ -662,30 +662,30 @@ importers:
         specifier: ^8.8.0
         version: 8.8.0
       rollup:
-        specifier: ^3.2.3
-        version: 3.2.3
+        specifier: ^4.0.0-23
+        version: 4.0.0-23
 
   packages/sucrase:
     dependencies:
       '@rollup/pluginutils':
         specifier: ^5.0.1
-        version: 5.0.1(rollup@3.2.3)
+        version: 5.0.1(rollup@4.0.0-23)
       sucrase:
         specifier: ^3.27.0
         version: 3.28.0
     devDependencies:
       '@rollup/plugin-alias':
         specifier: ^4.0.0
-        version: 4.0.0(rollup@3.2.3)
+        version: 4.0.0(rollup@4.0.0-23)
       rollup:
-        specifier: ^3.2.3
-        version: 3.2.3
+        specifier: ^4.0.0-23
+        version: 4.0.0-23
 
   packages/swc:
     dependencies:
       '@rollup/pluginutils':
         specifier: ^5.0.1
-        version: 5.0.1(rollup@3.2.3)
+        version: 5.0.1(rollup@4.0.0-23)
       smob:
         specifier: ^1.4.0
         version: 1.4.0
@@ -694,8 +694,8 @@ importers:
         specifier: ^1.3.78
         version: 1.3.78
       rollup:
-        specifier: ^3.0.0-7
-        version: 3.2.3
+        specifier: ^4.0.0-23
+        version: 4.0.0-23
       typescript:
         specifier: ^4.8.3
         version: 4.8.4
@@ -716,8 +716,8 @@ importers:
         specifier: ^5.0.2
         version: 5.0.2
       rollup:
-        specifier: ^3.0.0-7
-        version: 3.0.0-7
+        specifier: ^4.0.0-23
+        version: 4.0.0-23
       typescript:
         specifier: ^4.8.3
         version: 4.8.4
@@ -726,7 +726,7 @@ importers:
     dependencies:
       '@rollup/pluginutils':
         specifier: ^5.0.1
-        version: 5.0.1(rollup@3.2.3)
+        version: 5.0.1(rollup@4.0.0-23)
       resolve:
         specifier: ^1.22.1
         version: 1.22.1
@@ -736,10 +736,10 @@ importers:
     devDependencies:
       '@rollup/plugin-buble':
         specifier: ^1.0.0
-        version: 1.0.0(rollup@3.2.3)
+        version: 1.0.0(rollup@4.0.0-23)
       '@rollup/plugin-commonjs':
         specifier: ^23.0.0
-        version: 23.0.0(rollup@3.2.3)
+        version: 23.0.0(rollup@4.0.0-23)
       '@types/node':
         specifier: ^14.18.30
         version: 14.18.31
@@ -750,8 +750,8 @@ importers:
         specifier: ^0.20.0
         version: 0.20.0
       rollup:
-        specifier: ^3.2.3
-        version: 3.2.3
+        specifier: ^4.0.0-23
+        version: 4.0.0-23
       typescript:
         specifier: ^4.8.3
         version: 4.8.4
@@ -760,7 +760,7 @@ importers:
     dependencies:
       '@rollup/pluginutils':
         specifier: ^5.0.1
-        version: 5.0.1(rollup@3.2.3)
+        version: 5.0.1(rollup@4.0.0-23)
       make-dir:
         specifier: ^3.1.0
         version: 3.1.0
@@ -775,20 +775,20 @@ importers:
         specifier: ^11.1.0
         version: 11.1.0
       rollup:
-        specifier: ^3.2.3
-        version: 3.2.3
+        specifier: ^4.0.0-23
+        version: 4.0.0-23
 
   packages/virtual:
     devDependencies:
       '@rollup/plugin-node-resolve':
         specifier: ^15.0.0
-        version: 15.0.0(rollup@3.2.3)
+        version: 15.0.0(rollup@4.0.0-23)
       '@rollup/plugin-typescript':
         specifier: ^9.0.1
-        version: 9.0.1(rollup@3.2.3)(typescript@4.8.4)
+        version: 9.0.1(rollup@4.0.0-23)(typescript@4.8.4)
       rollup:
-        specifier: ^3.2.3
-        version: 3.2.3
+        specifier: ^4.0.0-23
+        version: 4.0.0-23
       typescript:
         specifier: ^4.8.3
         version: 4.8.4
@@ -797,17 +797,17 @@ importers:
     dependencies:
       '@rollup/pluginutils':
         specifier: ^5.0.2
-        version: 5.0.4(rollup@3.2.3)
+        version: 5.0.4(rollup@4.0.0-23)
     devDependencies:
       '@rollup/plugin-typescript':
         specifier: ^9.0.1
-        version: 9.0.1(rollup@3.2.3)(typescript@4.8.4)
+        version: 9.0.1(rollup@4.0.0-23)(typescript@4.8.4)
       del-cli:
         specifier: ^5.0.0
         version: 5.0.0
       rollup:
-        specifier: ^3.2.3
-        version: 3.2.3
+        specifier: ^4.0.0-23
+        version: 4.0.0-23
       source-map:
         specifier: ^0.7.4
         version: 0.7.4
@@ -819,7 +819,7 @@ importers:
     dependencies:
       '@rollup/pluginutils':
         specifier: ^5.0.1
-        version: 5.0.1(rollup@3.2.3)
+        version: 5.0.1(rollup@4.0.0-23)
       js-yaml:
         specifier: ^4.1.0
         version: 4.1.0
@@ -829,13 +829,13 @@ importers:
     devDependencies:
       '@rollup/plugin-node-resolve':
         specifier: ^15.0.0
-        version: 15.0.0(rollup@3.2.3)
+        version: 15.0.0(rollup@4.0.0-23)
       del-cli:
         specifier: ^5.0.0
         version: 5.0.0
       rollup:
-        specifier: ^3.2.3
-        version: 3.2.3
+        specifier: ^4.0.0-23
+        version: 4.0.0-23
       source-map-support:
         specifier: ^0.5.21
         version: 0.5.21
@@ -2230,7 +2230,7 @@ packages:
       '@nodelib/fs.scandir': 2.1.5
       fastq: 1.13.0
 
-  /@rollup/plugin-alias@4.0.0(rollup@3.2.3):
+  /@rollup/plugin-alias@4.0.0(rollup@4.0.0-23):
     resolution: {integrity: sha512-fGRWzM2F6wXnzAqn4Db8SdB/2Ree0u2XOQaaTy9mhqA35NmUzJXevMBUcpZywPF2MIUUAw+SKfWogKxFSPh+Qw==}
     engines: {node: '>=14.0.0'}
     peerDependencies:
@@ -2239,11 +2239,11 @@ packages:
       rollup:
         optional: true
     dependencies:
-      rollup: 3.2.3
+      rollup: 4.0.0-23
       slash: 4.0.0
     dev: true
 
-  /@rollup/plugin-babel@6.0.0(@babel/core@7.19.3)(rollup@3.2.3):
+  /@rollup/plugin-babel@6.0.0(@babel/core@7.19.3)(rollup@4.0.0-23):
     resolution: {integrity: sha512-qM8YIt/2fVxw5O0wUgAeglyC+qx9mg3UtCCLoSqetmQOKipmnQ/X3I0L2sjjb6BswaYpv2tun25lHViU7JPxLQ==}
     engines: {node: '>=14.0.0'}
     peerDependencies:
@@ -2259,10 +2259,10 @@ packages:
       '@babel/core': 7.19.3
       '@babel/helper-module-imports': 7.18.6
       '@rollup/pluginutils': 4.2.1
-      rollup: 3.2.3
+      rollup: 4.0.0-23
     dev: true
 
-  /@rollup/plugin-buble@1.0.0(rollup@3.2.3):
+  /@rollup/plugin-buble@1.0.0(rollup@4.0.0-23):
     resolution: {integrity: sha512-VDbhsNtC4cXZ20+hhilL0hzUskrTZWhF9PTabCOuye1NK5Ht8LZzpM1Q0S/yo0kMArjrFnIb2P4N8d3uEKuxnA==}
     engines: {node: '>=14.0.0'}
     peerDependencies:
@@ -2274,10 +2274,10 @@ packages:
       '@rollup/pluginutils': 4.2.1
       '@types/buble': 0.19.2
       buble: 0.20.0
-      rollup: 3.2.3
+      rollup: 4.0.0-23
     dev: true
 
-  /@rollup/plugin-commonjs@23.0.0(rollup@3.2.3):
+  /@rollup/plugin-commonjs@23.0.0(rollup@4.0.0-23):
     resolution: {integrity: sha512-JbrTRyDNtLQj/rhl7RFUuYXwQ2fac+33oLDAu2k++WD95zweyo28UAomLVA0JMGx4vmCa7Nw4T6k/1F6lelExg==}
     engines: {node: '>=14.0.0'}
     peerDependencies:
@@ -2292,10 +2292,10 @@ packages:
       glob: 8.0.3
       is-reference: 1.2.1
       magic-string: 0.26.7
-      rollup: 3.2.3
+      rollup: 4.0.0-23
     dev: true
 
-  /@rollup/plugin-json@5.0.0(rollup@3.2.3):
+  /@rollup/plugin-json@5.0.0(rollup@4.0.0-23):
     resolution: {integrity: sha512-LsWDA5wJs/ggzakVuKQhZo7HPRcQZgBa3jWIVxQSFxaRToUGNi8ZBh3+k/gQ+1eInVYJgn4WBRCUkmoDrmmGzw==}
     engines: {node: '>=14.0.0'}
     peerDependencies:
@@ -2305,23 +2305,10 @@ packages:
         optional: true
     dependencies:
       '@rollup/pluginutils': 4.2.1
-      rollup: 3.2.3
+      rollup: 4.0.0-23
     dev: true
 
-  /@rollup/plugin-json@5.0.0(rollup@3.20.2):
-    resolution: {integrity: sha512-LsWDA5wJs/ggzakVuKQhZo7HPRcQZgBa3jWIVxQSFxaRToUGNi8ZBh3+k/gQ+1eInVYJgn4WBRCUkmoDrmmGzw==}
-    engines: {node: '>=14.0.0'}
-    peerDependencies:
-      rollup: ^1.20.0||^2.0.0||^3.0.0
-    peerDependenciesMeta:
-      rollup:
-        optional: true
-    dependencies:
-      '@rollup/pluginutils': 4.2.1
-      rollup: 3.20.2
-    dev: true
-
-  /@rollup/plugin-node-resolve@15.0.0(rollup@3.2.3):
+  /@rollup/plugin-node-resolve@15.0.0(rollup@4.0.0-23):
     resolution: {integrity: sha512-iwJbzfTzlzDDQcGmkS7EkCKwe2kSkdBrjX87Fy/KrNjr6UNnLpod0t6X66e502LRe5JJCA4FFqrEscWPnZAkig==}
     engines: {node: '>=14.0.0'}
     peerDependencies:
@@ -2336,28 +2323,10 @@ packages:
       is-builtin-module: 3.2.0
       is-module: 1.0.0
       resolve: 1.22.1
-      rollup: 3.2.3
+      rollup: 4.0.0-23
     dev: true
 
-  /@rollup/plugin-node-resolve@15.0.0(rollup@3.20.2):
-    resolution: {integrity: sha512-iwJbzfTzlzDDQcGmkS7EkCKwe2kSkdBrjX87Fy/KrNjr6UNnLpod0t6X66e502LRe5JJCA4FFqrEscWPnZAkig==}
-    engines: {node: '>=14.0.0'}
-    peerDependencies:
-      rollup: ^2.78.0||^3.0.0
-    peerDependenciesMeta:
-      rollup:
-        optional: true
-    dependencies:
-      '@rollup/pluginutils': 4.2.1
-      '@types/resolve': 1.20.2
-      deepmerge: 4.2.2
-      is-builtin-module: 3.2.0
-      is-module: 1.0.0
-      resolve: 1.22.1
-      rollup: 3.20.2
-    dev: true
-
-  /@rollup/plugin-typescript@9.0.1(rollup@3.2.3)(typescript@4.8.4):
+  /@rollup/plugin-typescript@9.0.1(rollup@4.0.0-23)(typescript@4.8.4):
     resolution: {integrity: sha512-fj+CTk8+HvFCEwwDQdNgWd0lIJVXtMQ0Z3vH/ZgzFSbK2s1zs5wjZrjzrhViTTN+UF49+P69/tybgKRdGHpj/Q==}
     engines: {node: '>=14.0.0'}
     peerDependencies:
@@ -2372,11 +2341,11 @@ packages:
     dependencies:
       '@rollup/pluginutils': 4.2.1
       resolve: 1.22.1
-      rollup: 3.2.3
+      rollup: 4.0.0-23
       typescript: 4.8.4
     dev: true
 
-  /@rollup/plugin-virtual@3.0.0(rollup@3.2.3):
+  /@rollup/plugin-virtual@3.0.0(rollup@4.0.0-23):
     resolution: {integrity: sha512-K9KORe1myM62o0lKkNR4MmCxjwuAXsZEtIHpaILfv4kILXTOrXt/R2ha7PzMcCHPYdnkWPiBZK8ed4Zr3Ll5lQ==}
     engines: {node: '>=14.0.0'}
     peerDependencies:
@@ -2385,7 +2354,7 @@ packages:
       rollup:
         optional: true
     dependencies:
-      rollup: 3.2.3
+      rollup: 4.0.0-23
     dev: false
 
   /@rollup/pluginutils@4.2.1:
@@ -2396,7 +2365,7 @@ packages:
       picomatch: 2.3.1
     dev: true
 
-  /@rollup/pluginutils@5.0.1(rollup@3.2.3):
+  /@rollup/pluginutils@5.0.1(rollup@4.0.0-23):
     resolution: {integrity: sha512-4HaCVEXXuObvcPUaUlLt4faHYHCeQOOWNj8NKFGaRSrw3ZLD0TWeAFZicV9vXjnE2nkNuaVTfTuwAnjR+6uc9A==}
     engines: {node: '>=14.0.0'}
     peerDependencies:
@@ -2408,25 +2377,10 @@ packages:
       '@types/estree': 1.0.0
       estree-walker: 2.0.2
       picomatch: 2.3.1
-      rollup: 3.2.3
+      rollup: 4.0.0-23
     dev: false
 
-  /@rollup/pluginutils@5.0.1(rollup@3.20.2):
-    resolution: {integrity: sha512-4HaCVEXXuObvcPUaUlLt4faHYHCeQOOWNj8NKFGaRSrw3ZLD0TWeAFZicV9vXjnE2nkNuaVTfTuwAnjR+6uc9A==}
-    engines: {node: '>=14.0.0'}
-    peerDependencies:
-      rollup: ^1.20.0||^2.0.0||^3.0.0
-    peerDependenciesMeta:
-      rollup:
-        optional: true
-    dependencies:
-      '@types/estree': 1.0.0
-      estree-walker: 2.0.2
-      picomatch: 2.3.1
-      rollup: 3.20.2
-    dev: false
-
-  /@rollup/pluginutils@5.0.4(rollup@3.2.3):
+  /@rollup/pluginutils@5.0.4(rollup@4.0.0-23):
     resolution: {integrity: sha512-0KJnIoRI8A+a1dqOYLxH8vBf8bphDmty5QvIm2hqm7oFCFYKCAZWWd2hXgMibaPsNDhI0AtpYfQZJG47pt/k4g==}
     engines: {node: '>=14.0.0'}
     peerDependencies:
@@ -2438,9 +2392,86 @@ packages:
       '@types/estree': 1.0.0
       estree-walker: 2.0.2
       picomatch: 2.3.1
-      rollup: 3.2.3
+      rollup: 4.0.0-23
     dev: false
 
+  /@rollup/rollup-android-arm-eabi@4.0.0-23:
+    resolution: {integrity: sha512-bFVjyz+f4ICADXH6NmEthwLa6LeP0oHSlh5UGDZnGptPzAjMH/gQ3Bo1kFzG0p9xUNW22/uwHb9gnrLGQjgSBA==}
+    cpu: [arm]
+    os: [android]
+    requiresBuild: true
+    optional: true
+
+  /@rollup/rollup-android-arm64@4.0.0-23:
+    resolution: {integrity: sha512-iyygT9P3wLXqVnKFE7OpteL32ijdZOnDbJhQ4vsOMfyZyE7ce0fEDMM/VsLirUMHqCH8sQO6lxFq/qBkj3sPLQ==}
+    cpu: [arm64]
+    os: [android]
+    requiresBuild: true
+    optional: true
+
+  /@rollup/rollup-darwin-arm64@4.0.0-23:
+    resolution: {integrity: sha512-2Vnxl0XiBxgyk8BDgkZF/AkP17bB8YpfUg73MjLVHzv4Kls9MHUAQLaanDZzqrsyXZpJb0f2+2oALoDK9+lRuA==}
+    cpu: [arm64]
+    os: [darwin]
+    requiresBuild: true
+    optional: true
+
+  /@rollup/rollup-darwin-x64@4.0.0-23:
+    resolution: {integrity: sha512-xyZ1WHFgp3xttutYFnk5AMqEGK42uSW6elI11tGi6x3OcQG8WkE6Vq2GQnFNoA8dv0QlZZjldFMBYEQ/ksvBPw==}
+    cpu: [x64]
+    os: [darwin]
+    requiresBuild: true
+    optional: true
+
+  /@rollup/rollup-linux-arm-gnueabihf@4.0.0-23:
+    resolution: {integrity: sha512-+eCcJMaejbxvKSBTGMAlYVRk/qYnKENJUvrDVSQGALZPuqALWgI7kdI/MJkfV4aUTyvf5ejb5lkX6/wPoMp38w==}
+    cpu: [arm]
+    os: [linux]
+    requiresBuild: true
+    optional: true
+
+  /@rollup/rollup-linux-arm64-gnu@4.0.0-23:
+    resolution: {integrity: sha512-R4ffdK1hkjqqh8RSYOi06tztZPnbExh8ppNL1m5HgwaQhrmcUd3wgBJScaZXmetHUrunWfShxtbQCdZoTp8A2A==}
+    cpu: [arm64]
+    os: [linux]
+    requiresBuild: true
+    optional: true
+
+  /@rollup/rollup-linux-x64-gnu@4.0.0-23:
+    resolution: {integrity: sha512-ZB7Sl94bhM4sg5ZVOWKg0MfakJ6W4kDTZNUufteK83eTVHDMtGqCDTxBfMOAT3lDgkK+H6b1txaKgSht72Ss8A==}
+    cpu: [x64]
+    os: [linux]
+    requiresBuild: true
+    optional: true
+
+  /@rollup/rollup-linux-x64-musl@4.0.0-23:
+    resolution: {integrity: sha512-LKpQT5+PsXrOUyeuVVvPC1PC0lhSNeBYPF6Q9FgjYosxE+cdFSisU+rCxkRJwYX8fXmcK8/vuMkqPpUP6xCuog==}
+    cpu: [x64]
+    os: [linux]
+    requiresBuild: true
+    optional: true
+
+  /@rollup/rollup-win32-arm64-msvc@4.0.0-23:
+    resolution: {integrity: sha512-pEWZzHhioEt8HrM5PV7YiDbPmrZ8ceWtmoL/7xhvOgQ4xD3SCr5kych1gv1YKuWxLNKVl2S3SanARSvPQVcdog==}
+    cpu: [arm64]
+    os: [win32]
+    requiresBuild: true
+    optional: true
+
+  /@rollup/rollup-win32-ia32-msvc@4.0.0-23:
+    resolution: {integrity: sha512-oPbbAitsulZ1czKOp7KTOdOVgMw9rFt1AC5+vKXCwEp+7rBFDuehX7dWEGyogsgMevW8oMfrQHBjxIj9tdKIkg==}
+    cpu: [ia32]
+    os: [win32]
+    requiresBuild: true
+    optional: true
+
+  /@rollup/rollup-win32-x64-msvc@4.0.0-23:
+    resolution: {integrity: sha512-O4vk4bBXS5Hnla8Mmx1rP+X1SerP0Obl4HqgeluKqon1b8l6kHvS4sXSQuSMw7+VH4NFOEqfV7ES6cObwhSjSA==}
+    cpu: [x64]
+    os: [win32]
+    requiresBuild: true
+    optional: true
+
   /@sindresorhus/is@4.6.0:
     resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==}
     engines: {node: '>=10'}
@@ -7022,26 +7053,22 @@ packages:
       estree-walker: 0.6.1
     dev: true
 
-  /rollup@3.0.0-7:
-    resolution: {integrity: sha512-Hq5hpq9IrR4YfGd4o4zDtsfZnkwoCpjrQ4ZQIZrVF4ryzW6FOgXKBm6N7vJfodIJ6v+51FsqsXD2bxW5wapiuA==}
-    engines: {node: '>=14.18.0', npm: '>=8.0.0'}
-    hasBin: true
-    optionalDependencies:
-      fsevents: 2.3.2
-    dev: true
-
-  /rollup@3.2.3:
-    resolution: {integrity: sha512-qfadtkY5kl0F5e4dXVdj2D+GtOdifasXHFMiL1SMf9ADQDv5Eti6xReef9FKj+iQPR2pvtqWna57s/PjARY4fg==}
-    engines: {node: '>=14.18.0', npm: '>=8.0.0'}
-    hasBin: true
-    optionalDependencies:
-      fsevents: 2.3.2
-
-  /rollup@3.20.2:
-    resolution: {integrity: sha512-3zwkBQl7Ai7MFYQE0y1MeQ15+9jsi7XxfrqwTb/9EK8D9C9+//EBR4M+CuA1KODRaNbFez/lWxA5vhEGZp4MUg==}
-    engines: {node: '>=14.18.0', npm: '>=8.0.0'}
+  /rollup@4.0.0-23:
+    resolution: {integrity: sha512-a5YMr7oRSMsslt101mwitUo1RR2IcS/3tnWB4GZ4zMSg4NskKu6b7HEe6uZdsTGz2JUWL0ahBpdJ/WOz0lyJ1Q==}
+    engines: {node: '>=18.0.0', npm: '>=8.0.0'}
     hasBin: true
     optionalDependencies:
+      '@rollup/rollup-android-arm-eabi': 4.0.0-23
+      '@rollup/rollup-android-arm64': 4.0.0-23
+      '@rollup/rollup-darwin-arm64': 4.0.0-23
+      '@rollup/rollup-darwin-x64': 4.0.0-23
+      '@rollup/rollup-linux-arm-gnueabihf': 4.0.0-23
+      '@rollup/rollup-linux-arm64-gnu': 4.0.0-23
+      '@rollup/rollup-linux-x64-gnu': 4.0.0-23
+      '@rollup/rollup-linux-x64-musl': 4.0.0-23
+      '@rollup/rollup-win32-arm64-msvc': 4.0.0-23
+      '@rollup/rollup-win32-ia32-msvc': 4.0.0-23
+      '@rollup/rollup-win32-x64-msvc': 4.0.0-23
       fsevents: 2.3.2
 
   /run-parallel@1.2.0: