From 1936e68befa8c82bbfdca4124cbb8d20d93e461c Mon Sep 17 00:00:00 2001 From: Yam Borodetsky Date: Fri, 13 Feb 2026 00:14:54 +0500 Subject: [PATCH 1/3] test(bundle): verify browser bundle avoids node:module --- .../src/utils/load-arktype-bundle.test.ts | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/packages/arkenv/src/utils/load-arktype-bundle.test.ts b/packages/arkenv/src/utils/load-arktype-bundle.test.ts index 9d9f6d10..804dd397 100644 --- a/packages/arkenv/src/utils/load-arktype-bundle.test.ts +++ b/packages/arkenv/src/utils/load-arktype-bundle.test.ts @@ -63,4 +63,47 @@ try { } } }); + + it("should bundle for browser without resolving node:module (issue #791)", () => { + const tempDir = mkdtempSync( + join(tmpdir(), `arkenv-bundle-test-${randomUUID()}`), + ); + + const testFile = join(tempDir, "test.ts"); + const outFile = join(tempDir, "test.js"); + + // Find the package root (arkenv/packages/arkenv) + const projectRoot = process.cwd().includes("packages/arkenv") + ? process.cwd() + : join(process.cwd(), "packages/arkenv"); + + const arkenvDistPath = join(projectRoot, "dist/index.mjs"); + const esbuildPath = join(projectRoot, "../../node_modules/.bin/esbuild"); + + // Create a small script that imports arkenv + writeFileSync( + testFile, + `import arkenv from ${JSON.stringify(arkenvDistPath)}; +console.log(typeof arkenv);`, + ); + + try { + // Bundle with esbuild targeting browser platform + execSync( + `${esbuildPath} ${testFile} --bundle --format=esm --platform=browser --outfile=${outFile}`, + { cwd: projectRoot, stdio: "pipe", encoding: "utf8" }, + ); + } catch (e) { + const error = e as { stdout?: string; stderr?: string; message: string }; + const message = error.stderr || error.stdout || error.message; + throw new Error( + `Browser bundle failed (issue #791): ${message}`, + ); + } finally { + // Cleanup + if (existsSync(tempDir)) { + rmSync(tempDir, { recursive: true, force: true }); + } + } + }); }); From 0df14e6982ce259fb0e9eee7c9e8397be463efb7 Mon Sep 17 00:00:00 2001 From: "autofix-ci[bot]" <114827586+autofix-ci[bot]@users.noreply.github.com> Date: Thu, 12 Feb 2026 19:17:51 +0000 Subject: [PATCH 2/3] [autofix.ci] apply automated fixes --- packages/arkenv/src/utils/load-arktype-bundle.test.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/arkenv/src/utils/load-arktype-bundle.test.ts b/packages/arkenv/src/utils/load-arktype-bundle.test.ts index 804dd397..b903453e 100644 --- a/packages/arkenv/src/utils/load-arktype-bundle.test.ts +++ b/packages/arkenv/src/utils/load-arktype-bundle.test.ts @@ -96,9 +96,7 @@ console.log(typeof arkenv);`, } catch (e) { const error = e as { stdout?: string; stderr?: string; message: string }; const message = error.stderr || error.stdout || error.message; - throw new Error( - `Browser bundle failed (issue #791): ${message}`, - ); + throw new Error(`Browser bundle failed (issue #791): ${message}`); } finally { // Cleanup if (existsSync(tempDir)) { From 3afa902c0789ba05e0ef9a3ada654d6385f43583 Mon Sep 17 00:00:00 2001 From: Yam Borodetsky Date: Fri, 13 Feb 2026 00:29:13 +0500 Subject: [PATCH 3/3] build(arkenv): improve browser compatibility --- packages/arkenv/package.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/arkenv/package.json b/packages/arkenv/package.json index 6ecde919..57ff71cf 100644 --- a/packages/arkenv/package.json +++ b/packages/arkenv/package.json @@ -3,6 +3,9 @@ "type": "module", "version": "0.9.3", "description": "Typesafe environment variables parsing and validation with ArkType", + "browser": { + "node:module": false + }, "main": "./dist/index.cjs", "module": "./dist/index.mjs", "types": "./dist/index.d.mts",