From 299f562903407d746ba0a4a53f92b9758089f31c Mon Sep 17 00:00:00 2001 From: NullVoxPopuli <199018+NullVoxPopuli@users.noreply.github.com> Date: Sat, 10 Jan 2026 11:58:19 -0500 Subject: [PATCH 1/4] Update the default sandbox --- packages/fastboot/src/sandbox.js | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/packages/fastboot/src/sandbox.js b/packages/fastboot/src/sandbox.js index f39685df5..5c801ce79 100644 --- a/packages/fastboot/src/sandbox.js +++ b/packages/fastboot/src/sandbox.js @@ -21,12 +21,32 @@ module.exports = class Sandbox { { sourceMapSupport, console, + fetch, + document, + navigator, setTimeout, clearTimeout, URL, // Convince jQuery not to assume it's in a browser module: { exports: {} }, + + MutationObserver, + ResizeObserver, + AbortController, + ReadableStream: + typeof ReadableStream !== 'undefined' + ? ReadableStream + : require('node:stream/web').ReadableStream, + WritableStream: + typeof WritableStream !== 'undefined' + ? WritableStream + : require('node:stream/web').WritableStream, + TransformStream: + typeof TransformStream !== 'undefined' + ? TransformStream + : require('node:stream/web').TransformStream, + Headers: typeof Headers !== 'undefined' ? Headers : undefined, }, globals ); From c966eeb5c6cdc2958348c194cf2ebf63e5e1695a Mon Sep 17 00:00:00 2001 From: Chris Manson Date: Thu, 10 Sep 2026 23:38:22 +0100 Subject: [PATCH 2/4] add atob to the default sandbox --- packages/fastboot/src/sandbox.js | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/fastboot/src/sandbox.js b/packages/fastboot/src/sandbox.js index 5c801ce79..aa89e8fcf 100644 --- a/packages/fastboot/src/sandbox.js +++ b/packages/fastboot/src/sandbox.js @@ -19,6 +19,7 @@ module.exports = class Sandbox { let sandbox = Object.assign( { + atob, sourceMapSupport, console, fetch, From 4d70fbd1de6f2ed74d72f9c3d78a922328205ca7 Mon Sep 17 00:00:00 2001 From: Chris Manson Date: Thu, 10 Sep 2026 23:41:23 +0100 Subject: [PATCH 3/4] fix lint --- packages/fastboot/src/sandbox.js | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/packages/fastboot/src/sandbox.js b/packages/fastboot/src/sandbox.js index aa89e8fcf..f5d47dda1 100644 --- a/packages/fastboot/src/sandbox.js +++ b/packages/fastboot/src/sandbox.js @@ -36,17 +36,18 @@ module.exports = class Sandbox { ResizeObserver, AbortController, ReadableStream: - typeof ReadableStream !== 'undefined' - ? ReadableStream - : require('node:stream/web').ReadableStream, + typeof ReadableStream !== 'undefined' + ? ReadableStream + : require('node:stream/web').ReadableStream, WritableStream: - typeof WritableStream !== 'undefined' - ? WritableStream - : require('node:stream/web').WritableStream, + typeof WritableStream !== 'undefined' + ? WritableStream + : require('node:stream/web').WritableStream, TransformStream: - typeof TransformStream !== 'undefined' - ? TransformStream - : require('node:stream/web').TransformStream, + typeof TransformStream !== 'undefined' + ? // eslint-disable-next-line no-undef + TransformStream + : require('node:stream/web').TransformStream, Headers: typeof Headers !== 'undefined' ? Headers : undefined, }, globals From 58c9c003b314b293fe6260aeecfc204e0de26b37 Mon Sep 17 00:00:00 2001 From: Chris Manson Date: Thu, 10 Sep 2026 23:45:53 +0100 Subject: [PATCH 4/4] only include supported globals in default sandbox --- packages/fastboot/src/sandbox.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/packages/fastboot/src/sandbox.js b/packages/fastboot/src/sandbox.js index f5d47dda1..352e6a77d 100644 --- a/packages/fastboot/src/sandbox.js +++ b/packages/fastboot/src/sandbox.js @@ -23,8 +23,6 @@ module.exports = class Sandbox { sourceMapSupport, console, fetch, - document, - navigator, setTimeout, clearTimeout, URL, @@ -32,8 +30,6 @@ module.exports = class Sandbox { // Convince jQuery not to assume it's in a browser module: { exports: {} }, - MutationObserver, - ResizeObserver, AbortController, ReadableStream: typeof ReadableStream !== 'undefined'