{"_id":"@babylonjs-toolkit/nodepod","_rev":"9-2c21ad40a828af117ed64d1956c99881","name":"@babylonjs-toolkit/nodepod","dist-tags":{"latest":"1.9.18-btk.9"},"versions":{"1.9.18-btk.1":{"name":"@babylonjs-toolkit/nodepod","version":"1.9.18-btk.1","keywords":["node","browser","runtime","sandbox","typescript","virtual-filesystem","polyfill","webcontainer","in-browser","nodejs"],"author":{"url":"https://github.com/R1ck404","name":"R1ck404"},"license":"MIT WITH Commons-Clause","_id":"@babylonjs-toolkit/nodepod@1.9.18-btk.1","maintainers":[{"name":"mackeyk24","email":"MackeyK24@gmail.com"}],"homepage":"https://github.com/R1ck404/Nodepod#readme","bugs":{"url":"https://github.com/R1ck404/Nodepod/issues"},"dist":{"shasum":"10db4773be1e1f230b86a050b92def148275afbf","tarball":"https://registry.npmjs.org/@babylonjs-toolkit/nodepod/-/nodepod-1.9.18-btk.1.tgz","fileCount":460,"integrity":"sha512-P59Rs8W78R+0L2QaWV3GvnMGoDN6rcbDXMMC3sRzyUQ/0sQsCF0mlQjT1s5kP4Zledqe8aX2BqTJ1y5LZG5ouw==","signatures":[{"sig":"MEQCICrSh/Nh6yp53WbYU0qI/+FQDcr4/O4joBYbSH3pZ46KAiA5UvYc6gXc5YzKO0DypSpZk0i+dJhuBt2pNM59dmCKXw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18880668},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0","pnpm":">=9.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/integrations/next.d.ts","default":"./dist/integrations/next.mjs"},"require":{"types":"./dist/integrations/next.d.ts","default":"./dist/integrations/next.cjs"}},"./vite":{"import":{"types":"./dist/integrations/vite.d.ts","default":"./dist/integrations/vite.mjs"},"require":{"types":"./dist/integrations/vite.d.ts","default":"./dist/integrations/vite.cjs"}},"./server":{"import":{"types":"./dist/integrations/server.d.ts","default":"./dist/integrations/server.mjs"},"require":{"types":"./dist/integrations/server.d.ts","default":"./dist/integrations/server.cjs"}},"./headless":{"import":{"types":"./dist/headless.d.ts","default":"./dist/headless.mjs"},"require":{"types":"./dist/headless.d.ts","default":"./dist/headless.cjs"}}},"gitHead":"96b951e8dc7c6d58016c1b990b277dfe9033b9d9","scripts":{"test":"vitest run","bench":"vitest bench","bench:run":"vitest bench --run","build:lib":"vite build --config vite.lib.config.js && node -e \"require('fs').copyFileSync('static/__sw__.js','dist/__sw__.js')\"","test:watch":"vitest","type-check":"tsc --noEmit","build:types":"tsc --project tsconfig.build.json","build:publish":"pnpm run build:lib && pnpm run build:types","prepublishOnly":"pnpm run build:publish","test:browser:perf":"playwright test --config playwright.perf.config.ts"},"_npmUser":{"name":"mackeyk24","email":"MackeyK24@gmail.com"},"repository":{"url":"git+https://github.com/MackeyK24/Nodepod.git","type":"git"},"_npmVersion":"11.13.0","description":"Browser-native Node.js runtime environment","directories":{},"sideEffects":["./src/index.ts","./src/headless.ts","./src/host/browser-host.ts","./src/host/runtime-host.ts","./dist/index.mjs","./dist/index.cjs","./dist/headless.mjs","./dist/headless.cjs"],"_nodeVersion":"24.11.0","dependencies":{"pako":"^2.1.0","acorn":"^8.15.0","brotli":"^1.3.3","comlink":"^4.4.2","acorn-jsx":"^5.3.2","brotli-wasm":"^3.0.1","@noble/hashes":"^1.8.0","resolve.exports":"^2.0.3","set-cookie-parser":"^3.1.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"next":"^16.2.9","vite":"^5.4.0","vitest":"4.0.18","esbuild":"^0.27.2","wa-sqlite":"^1.0.0","http-proxy":"^1.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","@types/pako":"^2.0.4","better-auth":"^1.2.10","better-call":"1.3.7","@playwright/test":"^1.61.1","vite-plugin-wasm":"^3.5.0","vite-plugin-top-level-await":"^1.6.0"},"peerDependencies":{"next":"^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0","vite":"^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0","@xterm/xterm":"^6.0.0","@xterm/addon-fit":"^0.11.0","@xterm/addon-webgl":"^0.19.0","@xterm/addon-serialize":"^0.14.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"@xterm/xterm":{"optional":true},"@xterm/addon-fit":{"optional":true},"@xterm/addon-webgl":{"optional":true},"@xterm/addon-serialize":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodepod_1.9.18-btk.1_1785634035876_0.5909303785463198","host":"s3://npm-registry-packages-npm-production"}},"1.9.18-btk.2":{"name":"@babylonjs-toolkit/nodepod","version":"1.9.18-btk.2","keywords":["node","browser","runtime","sandbox","typescript","virtual-filesystem","polyfill","webcontainer","in-browser","nodejs"],"author":{"url":"https://github.com/R1ck404","name":"R1ck404"},"license":"MIT WITH Commons-Clause","_id":"@babylonjs-toolkit/nodepod@1.9.18-btk.2","maintainers":[{"name":"mackeyk24","email":"MackeyK24@gmail.com"}],"homepage":"https://github.com/R1ck404/Nodepod#readme","bugs":{"url":"https://github.com/R1ck404/Nodepod/issues"},"dist":{"shasum":"da3605ee55ae05d06edf1a009d36b90ca6ef64bc","tarball":"https://registry.npmjs.org/@babylonjs-toolkit/nodepod/-/nodepod-1.9.18-btk.2.tgz","fileCount":460,"integrity":"sha512-UtQZ7Xjwdjd4L7j7vzqBdCxZYs2vKVPZUUaxj97DqOTGun7WBHh93ru+no4Zwo+1QNGv/P+gARXanMbV/XiqmQ==","signatures":[{"sig":"MEUCIEasoFbRXxZ+Qh570M+6faGp11DRsQEpESMvw4zALZ6OAiEA4ULbBjhGCjechF0bMRh+KqWwCRI1WIrJLyhhdC06Iww=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18881336},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0","pnpm":">=9.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/integrations/next.d.ts","default":"./dist/integrations/next.mjs"},"require":{"types":"./dist/integrations/next.d.ts","default":"./dist/integrations/next.cjs"}},"./vite":{"import":{"types":"./dist/integrations/vite.d.ts","default":"./dist/integrations/vite.mjs"},"require":{"types":"./dist/integrations/vite.d.ts","default":"./dist/integrations/vite.cjs"}},"./server":{"import":{"types":"./dist/integrations/server.d.ts","default":"./dist/integrations/server.mjs"},"require":{"types":"./dist/integrations/server.d.ts","default":"./dist/integrations/server.cjs"}},"./headless":{"import":{"types":"./dist/headless.d.ts","default":"./dist/headless.mjs"},"require":{"types":"./dist/headless.d.ts","default":"./dist/headless.cjs"}}},"gitHead":"961b321c48477019c7e96973dd9339b9b778eebf","scripts":{"test":"vitest run","bench":"vitest bench","bench:run":"vitest bench --run","build:lib":"vite build --config vite.lib.config.js && node -e \"require('fs').copyFileSync('static/__sw__.js','dist/__sw__.js')\"","test:watch":"vitest","type-check":"tsc --noEmit","build:types":"tsc --project tsconfig.build.json","build:publish":"pnpm run build:lib && pnpm run build:types","prepublishOnly":"pnpm run build:publish","test:browser:perf":"playwright test --config playwright.perf.config.ts"},"_npmUser":{"name":"mackeyk24","email":"MackeyK24@gmail.com"},"repository":{"url":"git+https://github.com/MackeyK24/Nodepod.git","type":"git"},"_npmVersion":"11.13.0","description":"Browser-native Node.js runtime environment","directories":{},"sideEffects":["./src/index.ts","./src/headless.ts","./src/host/browser-host.ts","./src/host/runtime-host.ts","./dist/index.mjs","./dist/index.cjs","./dist/headless.mjs","./dist/headless.cjs"],"_nodeVersion":"24.11.0","dependencies":{"pako":"^2.1.0","acorn":"^8.15.0","brotli":"^1.3.3","comlink":"^4.4.2","acorn-jsx":"^5.3.2","brotli-wasm":"^3.0.1","@noble/hashes":"^1.8.0","resolve.exports":"^2.0.3","set-cookie-parser":"^3.1.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"next":"^16.2.9","vite":"^5.4.0","vitest":"4.0.18","esbuild":"^0.27.2","wa-sqlite":"^1.0.0","http-proxy":"^1.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","@types/pako":"^2.0.4","better-auth":"^1.2.10","better-call":"1.3.7","@playwright/test":"^1.61.1","vite-plugin-wasm":"^3.5.0","vite-plugin-top-level-await":"^1.6.0"},"peerDependencies":{"next":"^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0","vite":"^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0","@xterm/xterm":"^6.0.0","@xterm/addon-fit":"^0.11.0","@xterm/addon-webgl":"^0.19.0","@xterm/addon-serialize":"^0.14.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"@xterm/xterm":{"optional":true},"@xterm/addon-fit":{"optional":true},"@xterm/addon-webgl":{"optional":true},"@xterm/addon-serialize":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodepod_1.9.18-btk.2_1785636940794_0.6621634554253322","host":"s3://npm-registry-packages-npm-production"}},"1.9.18-btk.3":{"name":"@babylonjs-toolkit/nodepod","version":"1.9.18-btk.3","keywords":["node","browser","runtime","sandbox","typescript","virtual-filesystem","polyfill","webcontainer","in-browser","nodejs"],"author":{"url":"https://github.com/R1ck404","name":"R1ck404"},"license":"MIT WITH Commons-Clause","_id":"@babylonjs-toolkit/nodepod@1.9.18-btk.3","maintainers":[{"name":"mackeyk24","email":"MackeyK24@gmail.com"}],"homepage":"https://github.com/R1ck404/Nodepod#readme","bugs":{"url":"https://github.com/R1ck404/Nodepod/issues"},"dist":{"shasum":"f32cb70e88d65e1fbfadba6eab07c6ea8d5c4c0b","tarball":"https://registry.npmjs.org/@babylonjs-toolkit/nodepod/-/nodepod-1.9.18-btk.3.tgz","fileCount":460,"integrity":"sha512-9HWhEcVcFzTQE8JciKhP/findTvx97rZkfJzSMsopvPh5UZ/Vh1G9jRYe6fISrA4+eWohpt1mG1BXXvdjsZVkg==","signatures":[{"sig":"MEQCIF9H5W8eiXWBqdYnBOymjTc08rYt27B+xFppxr0ugx+FAiAaCyGPTNlKG40yrvG394v63Pm07LEAqqzcFY5rci020w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18882621},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0","pnpm":">=9.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/integrations/next.d.ts","default":"./dist/integrations/next.mjs"},"require":{"types":"./dist/integrations/next.d.ts","default":"./dist/integrations/next.cjs"}},"./vite":{"import":{"types":"./dist/integrations/vite.d.ts","default":"./dist/integrations/vite.mjs"},"require":{"types":"./dist/integrations/vite.d.ts","default":"./dist/integrations/vite.cjs"}},"./server":{"import":{"types":"./dist/integrations/server.d.ts","default":"./dist/integrations/server.mjs"},"require":{"types":"./dist/integrations/server.d.ts","default":"./dist/integrations/server.cjs"}},"./headless":{"import":{"types":"./dist/headless.d.ts","default":"./dist/headless.mjs"},"require":{"types":"./dist/headless.d.ts","default":"./dist/headless.cjs"}}},"gitHead":"e048a509f4c16445dc3a13cfd764c8ed3031eef2","scripts":{"test":"vitest run","bench":"vitest bench","bench:run":"vitest bench --run","build:lib":"vite build --config vite.lib.config.js && node -e \"require('fs').copyFileSync('static/__sw__.js','dist/__sw__.js')\"","test:watch":"vitest","type-check":"tsc --noEmit","build:types":"tsc --project tsconfig.build.json","build:publish":"pnpm run build:lib && pnpm run build:types","prepublishOnly":"pnpm run build:publish","test:browser:perf":"playwright test --config playwright.perf.config.ts"},"_npmUser":{"name":"mackeyk24","email":"MackeyK24@gmail.com"},"repository":{"url":"git+https://github.com/MackeyK24/Nodepod.git","type":"git"},"_npmVersion":"11.13.0","description":"Browser-native Node.js runtime environment","directories":{},"sideEffects":["./src/index.ts","./src/headless.ts","./src/host/browser-host.ts","./src/host/runtime-host.ts","./dist/index.mjs","./dist/index.cjs","./dist/headless.mjs","./dist/headless.cjs"],"_nodeVersion":"24.11.0","dependencies":{"pako":"^2.1.0","acorn":"^8.15.0","brotli":"^1.3.3","comlink":"^4.4.2","acorn-jsx":"^5.3.2","brotli-wasm":"^3.0.1","@noble/hashes":"^1.8.0","resolve.exports":"^2.0.3","set-cookie-parser":"^3.1.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"next":"^16.2.9","vite":"^5.4.0","vitest":"4.0.18","esbuild":"^0.27.2","wa-sqlite":"^1.0.0","http-proxy":"^1.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","@types/pako":"^2.0.4","better-auth":"^1.2.10","better-call":"1.3.7","@playwright/test":"^1.61.1","vite-plugin-wasm":"^3.5.0","vite-plugin-top-level-await":"^1.6.0"},"peerDependencies":{"next":"^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0","vite":"^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0","@xterm/xterm":"^6.0.0","@xterm/addon-fit":"^0.11.0","@xterm/addon-webgl":"^0.19.0","@xterm/addon-serialize":"^0.14.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"@xterm/xterm":{"optional":true},"@xterm/addon-fit":{"optional":true},"@xterm/addon-webgl":{"optional":true},"@xterm/addon-serialize":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodepod_1.9.18-btk.3_1785638843852_0.06207395338232069","host":"s3://npm-registry-packages-npm-production"}},"1.9.18-btk.4":{"name":"@babylonjs-toolkit/nodepod","version":"1.9.18-btk.4","keywords":["node","browser","runtime","sandbox","typescript","virtual-filesystem","polyfill","webcontainer","in-browser","nodejs"],"author":{"url":"https://github.com/R1ck404","name":"R1ck404"},"license":"MIT WITH Commons-Clause","_id":"@babylonjs-toolkit/nodepod@1.9.18-btk.4","maintainers":[{"name":"mackeyk24","email":"MackeyK24@gmail.com"}],"homepage":"https://github.com/R1ck404/Nodepod#readme","bugs":{"url":"https://github.com/R1ck404/Nodepod/issues"},"dist":{"shasum":"6096a4d7e182ba6fa61089d73c55fb94bb28dafc","tarball":"https://registry.npmjs.org/@babylonjs-toolkit/nodepod/-/nodepod-1.9.18-btk.4.tgz","fileCount":460,"integrity":"sha512-28mPnsU9GqWc+qMrzzEgX5dt0IvjS/Q+1k3e26qrSCKcvDVied+iXaH5E2E64zrGEnDqomCtuvMo2+ASV+pS9g==","signatures":[{"sig":"MEQCIHzTtoWx0TeHvXjbcdaam1WOgk+wanUU4dMdOB8gQdGzAiAmPFVqDWMHWOD4KJ61BSOdvcq1OLknDZLjh/uGqwB/Zg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18883188},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0","pnpm":">=9.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/integrations/next.d.ts","default":"./dist/integrations/next.mjs"},"require":{"types":"./dist/integrations/next.d.ts","default":"./dist/integrations/next.cjs"}},"./vite":{"import":{"types":"./dist/integrations/vite.d.ts","default":"./dist/integrations/vite.mjs"},"require":{"types":"./dist/integrations/vite.d.ts","default":"./dist/integrations/vite.cjs"}},"./server":{"import":{"types":"./dist/integrations/server.d.ts","default":"./dist/integrations/server.mjs"},"require":{"types":"./dist/integrations/server.d.ts","default":"./dist/integrations/server.cjs"}},"./headless":{"import":{"types":"./dist/headless.d.ts","default":"./dist/headless.mjs"},"require":{"types":"./dist/headless.d.ts","default":"./dist/headless.cjs"}}},"gitHead":"5182a1b988f599a43c82acb9a7f6b25f70f7ca05","scripts":{"test":"vitest run","bench":"vitest bench","bench:run":"vitest bench --run","build:lib":"vite build --config vite.lib.config.js && node -e \"require('fs').copyFileSync('static/__sw__.js','dist/__sw__.js')\"","test:watch":"vitest","type-check":"tsc --noEmit","build:types":"tsc --project tsconfig.build.json","build:publish":"pnpm run build:lib && pnpm run build:types","prepublishOnly":"pnpm run build:publish","test:browser:perf":"playwright test --config playwright.perf.config.ts"},"_npmUser":{"name":"mackeyk24","email":"MackeyK24@gmail.com"},"repository":{"url":"git+https://github.com/MackeyK24/Nodepod.git","type":"git"},"_npmVersion":"11.13.0","description":"Browser-native Node.js runtime environment","directories":{},"sideEffects":["./src/index.ts","./src/headless.ts","./src/host/browser-host.ts","./src/host/runtime-host.ts","./dist/index.mjs","./dist/index.cjs","./dist/headless.mjs","./dist/headless.cjs"],"_nodeVersion":"24.11.0","dependencies":{"pako":"^2.1.0","acorn":"^8.15.0","brotli":"^1.3.3","comlink":"^4.4.2","acorn-jsx":"^5.3.2","brotli-wasm":"^3.0.1","@noble/hashes":"^1.8.0","resolve.exports":"^2.0.3","set-cookie-parser":"^3.1.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"next":"^16.2.9","vite":"^5.4.0","vitest":"4.0.18","esbuild":"^0.27.2","wa-sqlite":"^1.0.0","http-proxy":"^1.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","@types/pako":"^2.0.4","better-auth":"^1.2.10","better-call":"1.3.7","@playwright/test":"^1.61.1","vite-plugin-wasm":"^3.5.0","vite-plugin-top-level-await":"^1.6.0"},"peerDependencies":{"next":"^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0","vite":"^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0","@xterm/xterm":"^6.0.0","@xterm/addon-fit":"^0.11.0","@xterm/addon-webgl":"^0.19.0","@xterm/addon-serialize":"^0.14.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"@xterm/xterm":{"optional":true},"@xterm/addon-fit":{"optional":true},"@xterm/addon-webgl":{"optional":true},"@xterm/addon-serialize":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodepod_1.9.18-btk.4_1785641950284_0.7607477230060233","host":"s3://npm-registry-packages-npm-production"}},"1.9.18-btk.5":{"name":"@babylonjs-toolkit/nodepod","version":"1.9.18-btk.5","keywords":["node","browser","runtime","sandbox","typescript","virtual-filesystem","polyfill","webcontainer","in-browser","nodejs"],"author":{"url":"https://github.com/R1ck404","name":"R1ck404"},"license":"MIT WITH Commons-Clause","_id":"@babylonjs-toolkit/nodepod@1.9.18-btk.5","maintainers":[{"name":"mackeyk24","email":"MackeyK24@gmail.com"}],"homepage":"https://github.com/R1ck404/Nodepod#readme","bugs":{"url":"https://github.com/R1ck404/Nodepod/issues"},"dist":{"shasum":"05199c15e0fed9abf56b1f5decf8fc24eed748c2","tarball":"https://registry.npmjs.org/@babylonjs-toolkit/nodepod/-/nodepod-1.9.18-btk.5.tgz","fileCount":460,"integrity":"sha512-pO3a9g2r96ytVo6a/UQaxVseIlSeyUuQeoJB/m2uFYDLJ4sQ0yucQsoa+qOmJXWgJNE4ApfI+J6nCP+4hGDPxA==","signatures":[{"sig":"MEUCIQCljSrguqSouxPnDdSPVQMAduD8JstRk+EaBzVFfhhgcQIgay8HYITYTNHx05lqqFRX5JGMHr4cRDbaPg8RV9kRKwg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18884143},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0","pnpm":">=9.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/integrations/next.d.ts","default":"./dist/integrations/next.mjs"},"require":{"types":"./dist/integrations/next.d.ts","default":"./dist/integrations/next.cjs"}},"./vite":{"import":{"types":"./dist/integrations/vite.d.ts","default":"./dist/integrations/vite.mjs"},"require":{"types":"./dist/integrations/vite.d.ts","default":"./dist/integrations/vite.cjs"}},"./server":{"import":{"types":"./dist/integrations/server.d.ts","default":"./dist/integrations/server.mjs"},"require":{"types":"./dist/integrations/server.d.ts","default":"./dist/integrations/server.cjs"}},"./headless":{"import":{"types":"./dist/headless.d.ts","default":"./dist/headless.mjs"},"require":{"types":"./dist/headless.d.ts","default":"./dist/headless.cjs"}}},"gitHead":"15be1008bc4ac1ddc0c7d9a72fa2d2405e6d5ba9","scripts":{"test":"vitest run","bench":"vitest bench","bench:run":"vitest bench --run","build:lib":"vite build --config vite.lib.config.js && node -e \"require('fs').copyFileSync('static/__sw__.js','dist/__sw__.js')\"","test:watch":"vitest","type-check":"tsc --noEmit","build:types":"tsc --project tsconfig.build.json","build:publish":"pnpm run build:lib && pnpm run build:types","prepublishOnly":"pnpm run build:publish","test:browser:perf":"playwright test --config playwright.perf.config.ts"},"_npmUser":{"name":"mackeyk24","email":"MackeyK24@gmail.com"},"repository":{"url":"git+https://github.com/MackeyK24/Nodepod.git","type":"git"},"_npmVersion":"11.13.0","description":"Browser-native Node.js runtime environment","directories":{},"sideEffects":["./src/index.ts","./src/headless.ts","./src/host/browser-host.ts","./src/host/runtime-host.ts","./dist/index.mjs","./dist/index.cjs","./dist/headless.mjs","./dist/headless.cjs"],"_nodeVersion":"24.11.0","dependencies":{"pako":"^2.1.0","acorn":"^8.15.0","brotli":"^1.3.3","comlink":"^4.4.2","acorn-jsx":"^5.3.2","brotli-wasm":"^3.0.1","@noble/hashes":"^1.8.0","resolve.exports":"^2.0.3","set-cookie-parser":"^3.1.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"next":"^16.2.9","vite":"^5.4.0","vitest":"4.0.18","esbuild":"^0.27.2","wa-sqlite":"^1.0.0","http-proxy":"^1.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","@types/pako":"^2.0.4","better-auth":"^1.2.10","better-call":"1.3.7","@playwright/test":"^1.61.1","vite-plugin-wasm":"^3.5.0","vite-plugin-top-level-await":"^1.6.0"},"peerDependencies":{"next":"^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0","vite":"^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0","@xterm/xterm":"^6.0.0","@xterm/addon-fit":"^0.11.0","@xterm/addon-webgl":"^0.19.0","@xterm/addon-serialize":"^0.14.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"@xterm/xterm":{"optional":true},"@xterm/addon-fit":{"optional":true},"@xterm/addon-webgl":{"optional":true},"@xterm/addon-serialize":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodepod_1.9.18-btk.5_1785764480477_0.17995645342795985","host":"s3://npm-registry-packages-npm-production"}},"1.9.18-btk.6":{"name":"@babylonjs-toolkit/nodepod","version":"1.9.18-btk.6","keywords":["node","browser","runtime","sandbox","typescript","virtual-filesystem","polyfill","webcontainer","in-browser","nodejs"],"author":{"url":"https://github.com/R1ck404","name":"R1ck404"},"license":"MIT WITH Commons-Clause","_id":"@babylonjs-toolkit/nodepod@1.9.18-btk.6","maintainers":[{"name":"mackeyk24","email":"MackeyK24@gmail.com"}],"homepage":"https://github.com/R1ck404/Nodepod#readme","bugs":{"url":"https://github.com/R1ck404/Nodepod/issues"},"dist":{"shasum":"3dd0af4b7265cb9382fc2c8fb9626daad0fec6a0","tarball":"https://registry.npmjs.org/@babylonjs-toolkit/nodepod/-/nodepod-1.9.18-btk.6.tgz","fileCount":460,"integrity":"sha512-fkCbmNOH81w2hp5uxUEOMaOwDfY2txqH4fhVZsD8Vdriez4csq1GrTvKb8y2WJsCpid3mFd6qTB2YTqgflJcsw==","signatures":[{"sig":"MEUCIQCFJWJV6FE9PGuCaB6ujX3MZsLJ8537XuLoMdFZ2U2krwIgXKwXszxMyUBNmOWIw/SKu0M3EjtZxBx40Oozy2aG1+4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18926284},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0","pnpm":">=9.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/integrations/next.d.ts","default":"./dist/integrations/next.mjs"},"require":{"types":"./dist/integrations/next.d.ts","default":"./dist/integrations/next.cjs"}},"./vite":{"import":{"types":"./dist/integrations/vite.d.ts","default":"./dist/integrations/vite.mjs"},"require":{"types":"./dist/integrations/vite.d.ts","default":"./dist/integrations/vite.cjs"}},"./server":{"import":{"types":"./dist/integrations/server.d.ts","default":"./dist/integrations/server.mjs"},"require":{"types":"./dist/integrations/server.d.ts","default":"./dist/integrations/server.cjs"}},"./headless":{"import":{"types":"./dist/headless.d.ts","default":"./dist/headless.mjs"},"require":{"types":"./dist/headless.d.ts","default":"./dist/headless.cjs"}}},"gitHead":"c97c926e90a325e9df9d81e1c2822ceee2378151","scripts":{"test":"vitest run","bench":"vitest bench","bench:run":"vitest bench --run","build:lib":"vite build --config vite.lib.config.js && node -e \"require('fs').copyFileSync('static/__sw__.js','dist/__sw__.js')\"","test:watch":"vitest","type-check":"tsc --noEmit","build:types":"tsc --project tsconfig.build.json","build:publish":"pnpm run build:lib && pnpm run build:types","prepublishOnly":"pnpm run build:publish","test:browser:perf":"playwright test --config playwright.perf.config.ts"},"_npmUser":{"name":"mackeyk24","email":"MackeyK24@gmail.com"},"repository":{"url":"git+https://github.com/MackeyK24/Nodepod.git","type":"git"},"_npmVersion":"11.13.0","description":"Browser-native Node.js runtime environment","directories":{},"sideEffects":["./src/index.ts","./src/headless.ts","./src/host/browser-host.ts","./src/host/runtime-host.ts","./dist/index.mjs","./dist/index.cjs","./dist/headless.mjs","./dist/headless.cjs"],"_nodeVersion":"24.11.0","dependencies":{"pako":"^2.1.0","acorn":"^8.15.0","brotli":"^1.3.3","comlink":"^4.4.2","acorn-jsx":"^5.3.2","brotli-wasm":"^3.0.1","@noble/hashes":"^1.8.0","resolve.exports":"^2.0.3","set-cookie-parser":"^3.1.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"next":"^16.2.9","vite":"^5.4.0","vitest":"4.0.18","esbuild":"^0.27.2","wa-sqlite":"^1.0.0","http-proxy":"^1.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","@types/pako":"^2.0.4","better-auth":"^1.2.10","better-call":"1.3.7","@playwright/test":"^1.61.1","vite-plugin-wasm":"^3.5.0","vite-plugin-top-level-await":"^1.6.0"},"peerDependencies":{"next":"^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0","vite":"^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0","@xterm/xterm":"^6.0.0","@xterm/addon-fit":"^0.11.0","@xterm/addon-webgl":"^0.19.0","@xterm/addon-serialize":"^0.14.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"@xterm/xterm":{"optional":true},"@xterm/addon-fit":{"optional":true},"@xterm/addon-webgl":{"optional":true},"@xterm/addon-serialize":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodepod_1.9.18-btk.6_1785803603619_0.24130903823292194","host":"s3://npm-registry-packages-npm-production"}},"1.9.18-btk.7":{"name":"@babylonjs-toolkit/nodepod","version":"1.9.18-btk.7","keywords":["node","browser","runtime","sandbox","typescript","virtual-filesystem","polyfill","webcontainer","in-browser","nodejs"],"author":{"url":"https://github.com/R1ck404","name":"R1ck404"},"license":"MIT WITH Commons-Clause","_id":"@babylonjs-toolkit/nodepod@1.9.18-btk.7","maintainers":[{"name":"mackeyk24","email":"MackeyK24@gmail.com"}],"homepage":"https://github.com/R1ck404/Nodepod#readme","bugs":{"url":"https://github.com/R1ck404/Nodepod/issues"},"dist":{"shasum":"862395c178cc8462e5475c9dbc2139a019d9bd07","tarball":"https://registry.npmjs.org/@babylonjs-toolkit/nodepod/-/nodepod-1.9.18-btk.7.tgz","fileCount":461,"integrity":"sha512-DOJHMQDxqH6OCJ0uNpJ8GbqNlaTx5hqpW5oKoII74giPQGgTc0Jcdb7t3BgU34aIwxgvmsPjseNtV1BVZTJ9eg==","signatures":[{"sig":"MEYCIQDLiKmo2cFxP46iqWhbO+6Tn41xQc8gzZJJwcvVGwRrwQIhAKhEddnGoKyLxSpqsMZ1ov+4hAl+Hupt9nvEAsVU6e57","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18933196},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0","pnpm":">=9.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/integrations/next.d.ts","default":"./dist/integrations/next.mjs"},"require":{"types":"./dist/integrations/next.d.ts","default":"./dist/integrations/next.cjs"}},"./vite":{"import":{"types":"./dist/integrations/vite.d.ts","default":"./dist/integrations/vite.mjs"},"require":{"types":"./dist/integrations/vite.d.ts","default":"./dist/integrations/vite.cjs"}},"./server":{"import":{"types":"./dist/integrations/server.d.ts","default":"./dist/integrations/server.mjs"},"require":{"types":"./dist/integrations/server.d.ts","default":"./dist/integrations/server.cjs"}},"./headless":{"import":{"types":"./dist/headless.d.ts","default":"./dist/headless.mjs"},"require":{"types":"./dist/headless.d.ts","default":"./dist/headless.cjs"}}},"gitHead":"2ea88de567aa59ce93a76a93d9644f456e805c6e","scripts":{"test":"vitest run","bench":"vitest bench","bench:run":"vitest bench --run","build:lib":"vite build --config vite.lib.config.js && node -e \"require('fs').copyFileSync('static/__sw__.js','dist/__sw__.js')\"","test:watch":"vitest","type-check":"tsc --noEmit","build:types":"tsc --project tsconfig.build.json","build:publish":"pnpm run build:lib && pnpm run build:types","prepublishOnly":"pnpm run build:publish","test:browser:perf":"playwright test --config playwright.perf.config.ts"},"_npmUser":{"name":"mackeyk24","email":"MackeyK24@gmail.com"},"repository":{"url":"git+https://github.com/MackeyK24/Nodepod.git","type":"git"},"_npmVersion":"11.13.0","description":"Browser-native Node.js runtime environment","directories":{},"sideEffects":["./src/index.ts","./src/headless.ts","./src/host/browser-host.ts","./src/host/runtime-host.ts","./dist/index.mjs","./dist/index.cjs","./dist/headless.mjs","./dist/headless.cjs"],"_nodeVersion":"24.11.0","dependencies":{"pako":"^2.1.0","acorn":"^8.15.0","brotli":"^1.3.3","comlink":"^4.4.2","acorn-jsx":"^5.3.2","brotli-wasm":"^3.0.1","@noble/hashes":"^1.8.0","resolve.exports":"^2.0.3","set-cookie-parser":"^3.1.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"next":"^16.2.9","vite":"^5.4.0","vitest":"4.0.18","esbuild":"^0.27.2","wa-sqlite":"^1.0.0","http-proxy":"^1.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","@types/pako":"^2.0.4","better-auth":"^1.2.10","better-call":"1.3.7","@playwright/test":"^1.61.1","vite-plugin-wasm":"^3.5.0","vite-plugin-top-level-await":"^1.6.0"},"peerDependencies":{"next":"^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0","vite":"^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0","@xterm/xterm":"^6.0.0","@xterm/addon-fit":"^0.11.0","@xterm/addon-webgl":"^0.19.0","@xterm/addon-serialize":"^0.14.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"@xterm/xterm":{"optional":true},"@xterm/addon-fit":{"optional":true},"@xterm/addon-webgl":{"optional":true},"@xterm/addon-serialize":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodepod_1.9.18-btk.7_1785804801892_0.24437564761499786","host":"s3://npm-registry-packages-npm-production"}},"1.9.18-btk.8":{"name":"@babylonjs-toolkit/nodepod","version":"1.9.18-btk.8","keywords":["node","browser","runtime","sandbox","typescript","virtual-filesystem","polyfill","webcontainer","in-browser","nodejs"],"author":{"url":"https://github.com/R1ck404","name":"R1ck404"},"license":"MIT WITH Commons-Clause","_id":"@babylonjs-toolkit/nodepod@1.9.18-btk.8","maintainers":[{"name":"mackeyk24","email":"MackeyK24@gmail.com"}],"homepage":"https://github.com/R1ck404/Nodepod#readme","bugs":{"url":"https://github.com/R1ck404/Nodepod/issues"},"dist":{"shasum":"70078b882c21122bc148abbbc58641cf8ca8da79","tarball":"https://registry.npmjs.org/@babylonjs-toolkit/nodepod/-/nodepod-1.9.18-btk.8.tgz","fileCount":462,"integrity":"sha512-Pia1QqANVO+bITcbe3y2aUiapH/RVrRKtOYURRwgzhkAwySNjp3KkN4KKIPOBNlF8l5DPD6W4ADojuqgfGC/4Q==","signatures":[{"sig":"MEQCIEuqzHgjDf5eNM2GCfRk1inkV6FLbL/5p2h0VVrSISsYAiAdg1vlkvAEHHogPF85moQSkEPaB3YgJsV61IvWOQyv6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":18935690},"main":"./dist/index.cjs","type":"module","types":"./dist/index.d.ts","module":"./dist/index.mjs","engines":{"node":">=20.0.0","pnpm":">=9.0.0"},"exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"./next":{"import":{"types":"./dist/integrations/next.d.ts","default":"./dist/integrations/next.mjs"},"require":{"types":"./dist/integrations/next.d.ts","default":"./dist/integrations/next.cjs"}},"./vite":{"import":{"types":"./dist/integrations/vite.d.ts","default":"./dist/integrations/vite.mjs"},"require":{"types":"./dist/integrations/vite.d.ts","default":"./dist/integrations/vite.cjs"}},"./server":{"import":{"types":"./dist/integrations/server.d.ts","default":"./dist/integrations/server.mjs"},"require":{"types":"./dist/integrations/server.d.ts","default":"./dist/integrations/server.cjs"}},"./headless":{"import":{"types":"./dist/headless.d.ts","default":"./dist/headless.mjs"},"require":{"types":"./dist/headless.d.ts","default":"./dist/headless.cjs"}}},"gitHead":"d48d122ca8036d623e4b792d0f1ca5b9dc0fd236","scripts":{"test":"vitest run","bench":"vitest bench","bench:run":"vitest bench --run","build:lib":"vite build --config vite.lib.config.js && node -e \"require('fs').copyFileSync('static/__sw__.js','dist/__sw__.js')\"","test:watch":"vitest","type-check":"tsc --noEmit","build:types":"tsc --project tsconfig.build.json","build:publish":"pnpm run build:lib && pnpm run build:types","prepublishOnly":"pnpm run build:publish","test:browser:perf":"playwright test --config playwright.perf.config.ts"},"_npmUser":{"name":"mackeyk24","email":"MackeyK24@gmail.com"},"repository":{"url":"git+https://github.com/MackeyK24/Nodepod.git","type":"git"},"_npmVersion":"11.13.0","description":"Browser-native Node.js runtime environment","directories":{},"sideEffects":["./src/index.ts","./src/headless.ts","./src/host/browser-host.ts","./src/host/runtime-host.ts","./dist/index.mjs","./dist/index.cjs","./dist/headless.mjs","./dist/headless.cjs"],"_nodeVersion":"24.11.0","dependencies":{"pako":"^2.1.0","acorn":"^8.15.0","brotli":"^1.3.3","comlink":"^4.4.2","acorn-jsx":"^5.3.2","brotli-wasm":"^3.0.1","@noble/hashes":"^1.8.0","resolve.exports":"^2.0.3","set-cookie-parser":"^3.1.1"},"_hasShrinkwrap":false,"packageManager":"pnpm@9.15.9","devDependencies":{"next":"^16.2.9","vite":"^5.4.0","vitest":"4.0.18","esbuild":"^0.27.2","wa-sqlite":"^1.0.0","http-proxy":"^1.18.1","typescript":"^5.9.3","@types/node":"^25.0.10","@types/pako":"^2.0.4","better-auth":"^1.2.10","better-call":"1.3.7","@playwright/test":"^1.61.1","vite-plugin-wasm":"^3.5.0","vite-plugin-top-level-await":"^1.6.0"},"peerDependencies":{"next":"^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0","vite":"^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0","@xterm/xterm":"^6.0.0","@xterm/addon-fit":"^0.11.0","@xterm/addon-webgl":"^0.19.0","@xterm/addon-serialize":"^0.14.0"},"peerDependenciesMeta":{"next":{"optional":true},"vite":{"optional":true},"@xterm/xterm":{"optional":true},"@xterm/addon-fit":{"optional":true},"@xterm/addon-webgl":{"optional":true},"@xterm/addon-serialize":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/nodepod_1.9.18-btk.8_1785982397696_0.9979218011745592","host":"s3://npm-registry-packages-npm-production"}},"1.9.18-btk.9":{"name":"@babylonjs-toolkit/nodepod","version":"1.9.18-btk.9","description":"Browser-native Node.js runtime environment","type":"module","license":"MIT WITH Commons-Clause","author":{"name":"R1ck404","url":"https://github.com/R1ck404"},"repository":{"type":"git","url":"git+https://github.com/MackeyK24/Nodepod.git"},"bugs":{"url":"https://github.com/R1ck404/Nodepod/issues"},"homepage":"https://github.com/R1ck404/Nodepod#readme","keywords":["node","browser","runtime","sandbox","typescript","virtual-filesystem","polyfill","webcontainer","in-browser","nodejs"],"engines":{"node":">=20.0.0","pnpm":">=9.0.0"},"packageManager":"pnpm@9.15.9","main":"./dist/index.cjs","module":"./dist/index.mjs","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.mjs"},"require":{"types":"./dist/index.d.ts","default":"./dist/index.cjs"}},"./headless":{"import":{"types":"./dist/headless.d.ts","default":"./dist/headless.mjs"},"require":{"types":"./dist/headless.d.ts","default":"./dist/headless.cjs"}},"./server":{"import":{"types":"./dist/integrations/server.d.ts","default":"./dist/integrations/server.mjs"},"require":{"types":"./dist/integrations/server.d.ts","default":"./dist/integrations/server.cjs"}},"./vite":{"import":{"types":"./dist/integrations/vite.d.ts","default":"./dist/integrations/vite.mjs"},"require":{"types":"./dist/integrations/vite.d.ts","default":"./dist/integrations/vite.cjs"}},"./next":{"import":{"types":"./dist/integrations/next.d.ts","default":"./dist/integrations/next.mjs"},"require":{"types":"./dist/integrations/next.d.ts","default":"./dist/integrations/next.cjs"}}},"sideEffects":["./src/index.ts","./src/headless.ts","./src/host/browser-host.ts","./src/host/runtime-host.ts","./dist/index.mjs","./dist/index.cjs","./dist/headless.mjs","./dist/headless.cjs"],"scripts":{"build:lib":"vite build --config vite.lib.config.js && node -e \"require('fs').copyFileSync('static/__sw__.js','dist/__sw__.js')\"","build:types":"tsc --project tsconfig.build.json","build:publish":"pnpm run build:lib && pnpm run build:types","type-check":"tsc --noEmit","test":"vitest run","test:watch":"vitest","test:browser:perf":"playwright test --config playwright.perf.config.ts","bench":"vitest bench","bench:run":"vitest bench --run","prepublishOnly":"pnpm run build:publish"},"dependencies":{"@noble/hashes":"^1.8.0","acorn":"^8.15.0","acorn-jsx":"^5.3.2","brotli":"^1.3.3","brotli-wasm":"^3.0.1","comlink":"^4.4.2","pako":"^2.1.0","resolve.exports":"^2.0.3","set-cookie-parser":"^3.1.1"},"peerDependencies":{"@xterm/addon-fit":"^0.11.0","@xterm/addon-serialize":"^0.14.0","@xterm/addon-webgl":"^0.19.0","@xterm/xterm":"^6.0.0","next":"^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0","vite":"^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0"},"peerDependenciesMeta":{"@xterm/xterm":{"optional":true},"@xterm/addon-fit":{"optional":true},"@xterm/addon-webgl":{"optional":true},"@xterm/addon-serialize":{"optional":true},"vite":{"optional":true},"next":{"optional":true}},"devDependencies":{"@playwright/test":"^1.61.1","@types/node":"^25.0.10","@types/pako":"^2.0.4","better-auth":"^1.2.10","better-call":"1.3.7","esbuild":"^0.27.2","http-proxy":"^1.18.1","next":"^16.2.9","typescript":"^5.9.3","vite":"^5.4.0","vite-plugin-top-level-await":"^1.6.0","vite-plugin-wasm":"^3.5.0","vitest":"4.0.18","wa-sqlite":"^1.0.0"},"gitHead":"d48d122ca8036d623e4b792d0f1ca5b9dc0fd236","_id":"@babylonjs-toolkit/nodepod@1.9.18-btk.9","_nodeVersion":"24.11.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-7nuFK7mj78bsA7F02ZuBeoo5LnjCB4uMEp95hU2ajWT+JT9asVT5LcSDZQ2JtUIz1QUHMbSAaJudDkAvI24jbA==","shasum":"00e57b68c615ecbcb748ab89f2786aab01b38794","tarball":"https://registry.npmjs.org/@babylonjs-toolkit/nodepod/-/nodepod-1.9.18-btk.9.tgz","fileCount":463,"unpackedSize":18951680,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICoqyaEqQhn/UNzkHYSk/IGMK8gV5gVaONMHkakeTu+nAiEA4slCWbaKfwrHNenP1bD0k4ZDJ1z/nnR4TmIrO2ziJFo="}]},"_npmUser":{"name":"mackeyk24","email":"MackeyK24@gmail.com"},"directories":{},"maintainers":[{"name":"mackeyk24","email":"MackeyK24@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nodepod_1.9.18-btk.9_1786770680875_0.6719805937496295"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-02T01:27:15.712Z","modified":"2026-08-15T05:11:21.355Z","1.9.18-btk.1":"2026-08-02T01:27:16.110Z","1.9.18-btk.2":"2026-08-02T02:15:41.075Z","1.9.18-btk.3":"2026-08-02T02:47:24.155Z","1.9.18-btk.4":"2026-08-02T03:39:10.573Z","1.9.18-btk.5":"2026-08-03T13:41:20.724Z","1.9.18-btk.6":"2026-08-04T00:33:23.879Z","1.9.18-btk.7":"2026-08-04T00:53:22.147Z","1.9.18-btk.8":"2026-08-06T02:13:17.934Z","1.9.18-btk.9":"2026-08-15T05:11:21.154Z"},"bugs":{"url":"https://github.com/R1ck404/Nodepod/issues"},"author":{"name":"R1ck404","url":"https://github.com/R1ck404"},"license":"MIT WITH Commons-Clause","homepage":"https://github.com/R1ck404/Nodepod#readme","keywords":["node","browser","runtime","sandbox","typescript","virtual-filesystem","polyfill","webcontainer","in-browser","nodejs"],"repository":{"type":"git","url":"git+https://github.com/MackeyK24/Nodepod.git"},"description":"Browser-native Node.js runtime environment","maintainers":[{"name":"mackeyk24","email":"MackeyK24@gmail.com"}],"readme":"# nodepod\n\n[![npm](https://img.shields.io/npm/v/@scelar/nodepod.svg)](https://www.npmjs.com/package/@scelar/nodepod)\n[![license](https://img.shields.io/npm/l/@scelar/nodepod.svg)](./LICENSE)\n\nRun Node.js in the browser. Filesystem, shell, npm packages, HTTP servers, no backend required.\n\n```bash\nnpm install @scelar/nodepod\n```\n\n## Getting started\n\nNodepod uses a service worker to route preview iframes and virtual HTTP\nservers. It has to be served from your own origin at `/__sw__.js`,\nbrowsers won't register a SW from `node_modules`.\n\nPick the one-liner for your framework:\n\n### Vite\n\n```typescript\n// vite.config.ts\nimport { defineConfig } from 'vite';\nimport nodepod from '@scelar/nodepod/vite';\n\nexport default defineConfig({\n  plugins: [nodepod()],\n});\n```\n\n### Next.js (App Router, works Next 13 through 16)\n\n```typescript\n// app/__sw__.js/route.ts\nexport { GET } from '@scelar/nodepod/next';\n```\n\nIf you already have a `proxy.ts` (Next 16+) or `middleware.ts` (Next <=15),\ncompose `nodepodProxy` / `nodepodMiddleware` alongside your own handler\ninstead. See [docs/sw-setup.md](./docs/sw-setup.md).\n\n### Any framework with a Fetch-style handler (Hono, Bun, Cloudflare, Elysia, etc.)\n\n```typescript\nimport { serveSW } from '@scelar/nodepod/server';\n\napp.get('/__sw__.js', () => serveSW());\n```\n\n### Express / Fastify / bare `http`\n\n```typescript\nimport { serveSWNode } from '@scelar/nodepod/server';\n\napp.get('/__sw__.js', async (_req, res) => {\n  const { body, headers } = await serveSWNode();\n  for (const [k, v] of Object.entries(headers)) res.setHeader(k, v);\n  res.status(200).send(body);\n});\n```\n\n### Static host (copy the file)\n\nNo server code? Copy the file once into your public directory:\n\n```bash\ncp node_modules/@scelar/nodepod/dist/__sw__.js public/__sw__.js\n```\n\nSee [docs/sw-setup.md](./docs/sw-setup.md) for the full story and how to\ncustomise the URL.\n\n## Usage\n\n```typescript\nimport { Nodepod } from '@scelar/nodepod';\n\nconst nodepod = await Nodepod.boot({\n  files: {\n    '/index.js': 'console.log(\"Hello from the browser!\")',\n  },\n});\n\nconst proc = await nodepod.spawn('node', ['index.js']);\nproc.on('output', (text) => console.log(text));\nawait proc.completion;\n```\n\nIf the service worker isn't reachable at `/__sw__.js`, `boot()` throws a\n`NodepodSWSetupError` with the one-liner for your framework. Pass\n`{ serviceWorker: false }` to skip SW setup entirely (SSR, Node tests).\n\n### Terminal\n\nPlug in xterm.js for an interactive shell:\n\n```typescript\nimport { Terminal } from '@xterm/xterm';\nimport { FitAddon } from '@xterm/addon-fit';\n\nconst terminal = nodepod.createTerminal({ Terminal, FitAddon });\nterminal.attach('#terminal-container');\n```\n\n### npm packages\n\n```typescript\nawait nodepod.packages.install('express');\nconst proc = await nodepod.spawn('node', ['server.js']);\n```\n\nInstalls are lazy by default: packages are downloaded and extracted, and\nmodules are converted on first `require()`. Pass\n`{ transformModules: 'eager' }` to run all transforms at install time instead.\n\n### HTTP servers\n\nWorks with Express, Hono, Vite, and anything that calls `listen()`:\n\n```typescript\nconst nodepod = await Nodepod.boot({\n  files: {\n    '/server.js': `\n      const express = require('express');\n      const app = express();\n      app.get('/', (req, res) => res.json({ ok: true }));\n      app.listen(3000);\n    `,\n  },\n});\n\nawait nodepod.packages.install('express');\nawait nodepod.spawn('node', ['server.js']);\n\nconst response = await nodepod.proxy.handleRequest(3000, 'GET', '/', {});\nconsole.log(response.body.toString()); // {\"ok\":true}\n```\n\n### Snapshots\n\nSave and restore the filesystem:\n\n```typescript\nconst snapshot = await nodepod.snapshot();\n// ... later\nawait nodepod.restore(snapshot);\n```\n\n## Headless mode\n\nSame runtime (VFS, shell, npm, spawn, HTTP) without terminal/preview UI.\nWorks in the browser and in Node/Bun.\n\n```typescript\n// Browser — Web Workers; Service Worker off by default\nimport { Nodepod } from '@scelar/nodepod';\nconst pod = await Nodepod.boot({ headless: true });\nconst res = await pod.request(3000, { path: '/' });\n\n// Node / Bun — worker_threads + localhost HTTP ingress\nimport { Nodepod } from '@scelar/nodepod/headless';\nconst pod = await Nodepod.boot();\nawait fetch(pod.port(3000)!); // http://127.0.0.1:<ingress>/__virtual__/...\n```\n\n## API\n\n### `Nodepod.boot(options?)`\n\n| Option | Type | Description |\n|--------|------|-------------|\n| `files` | `Record<string, string \\| Uint8Array>` | Initial files |\n| `workdir` | `string` | Working directory (default `\"/\"`) |\n| `env` | `Record<string, string>` | Environment variables |\n| `headless` | `boolean` | No UI required; defaults SW/watermark off. Implied by `@scelar/nodepod/headless` |\n| `swUrl` | `string` | Service Worker URL for preview iframes |\n| `serviceWorker` | `boolean` | Register SW (default on in browser UI mode; off in headless) |\n| `watermark` | `boolean` | Show nodepod badge in previews (default `true`, off in headless) |\n| `onServerReady` | `(port, url) => void` | Called when a virtual server starts |\n| `allowedFetchDomains` | `string[] \\| null` | Extra CORS proxy domains. `null` = allow all |\n| `spawnSnapshot` | `\"lean\" \\| \"full\"` | Worker filesystem snapshot mode. Defaults to memory-efficient `\"lean\"` with SharedArrayBuffer and transparently falls back to `\"full\"` without it |\n| `preloadEsbuild` | `boolean` | Warm esbuild during boot. Defaults to `false`; first use initializes it automatically |\n| `sharedVFSBufferSize` | `number` | Capacity of the optional SharedFS mirror, allocated only when `sharedFSBuffer` is first read |\n| `memory` | `MemoryHandlerOptions` | Advanced memory budget/cache overrides. The default soft budget is 400 MB |\n\n### Instance methods\n\n| Method | Description |\n|--------|-------------|\n| `spawn(cmd, args?, opts?)` | Run a command |\n| `packages.install(name, version?, flags?)` | Install an npm package |\n| `createTerminal(opts)` | Create an xterm.js terminal |\n| `request(port, init?)` | Programmatic HTTP to a virtual server (no SW required) |\n| `fs.readFile(path, enc?)` | Read a file |\n| `fs.writeFile(path, data)` | Write a file |\n| `fs.readdir(path)` | List directory |\n| `fs.stat(path)` | File stats |\n| `fs.mkdir(path, opts?)` | Create directory |\n| `fs.rm(path, opts?)` | Remove file/directory |\n| `snapshot()` | Capture filesystem state |\n| `restore(snapshot)` | Restore from snapshot |\n| `proxy.handleRequest(port, method, url, headers, body?)` | Send a request to a virtual server |\n| `port(num)` | Get preview / ingress URL for a port |\n| `setPreviewScript(js)` | Inject JS into preview iframes |\n| `clearPreviewScript()` | Remove injected script |\n| `inspect` | Opt-in live-DOM, layout, console, error, a11y, and best-effort screenshot inspection for an attached preview iframe |\n| `memoryStats()` | Current VFS, process, worker, port, cache, SharedFS, and heap counters |\n| `teardown()` | Terminal, idempotent cleanup of the pod and all owned resources |\n\nKeep one pod for each genuinely active preview and reuse it when project files\nchange. Call `teardown()` when a preview is discarded; operational calls after\nteardown throw. Nodepod performs SQLite, esbuild, package extraction, and lazy\nfilesystem preparation automatically, so application code needs no warm-up API.\n\n### Preview inspection\n\nEnable and attach before navigating a host-owned iframe. The inspector observes\nthe rendered document after JavaScript executes and does not replace a script\ninstalled through `setPreviewScript()`.\n\n```ts\nawait nodepod.inspect.enable();\nnodepod.inspect.attach({ port: 3000, iframe: previewIframe });\npreviewIframe.src = nodepod.port(3000)!;\n\nconst page = await nodepod.inspect.snapshot({\n  port: 3000,\n  include: [\"viewport\", \"errors\", \"console\", \"overflow\", \"a11y\"],\n});\nconst stop = nodepod.inspect.on(\"error\", { port: 3000 }, console.error);\n```\n\nAvailable one-shot methods are `viewport`, `documentSize`, `overflow`, `text`,\n`dom`, `query`, `console`, `errors`, `navigation`, `a11y`, `screenshot`, and\n`snapshot`. `waitUntil: \"networkidle\"` means no instrumented `fetch` or XHR\nrequests for 500ms; it is not a browser DevTools network-idle signal. Screenshot\nreturns an `InspectResult` whose `data.blob` is a PNG `Blob`, ready for\n`URL.createObjectURL(result.data.blob)`. It uses DOM-to-SVG/canvas serialization\nand is best-effort: unsupported CSS, canvas, or cross-origin assets can produce\n`PreviewScreenshotUnavailableError`.\n\n### Process events\n\n`spawn()` returns a `NodepodProcess`:\n\n```typescript\nproc.on('output', (text) => { }); // stdout\nproc.on('error', (text) => { });  // stderr\nproc.on('exit', (code) => { });   // exit code\nawait proc.completion;             // wait for exit\n```\n\n## Polyfills\n\n**Full:** fs, path, events, stream, buffer, process, http, https, net, crypto, zlib, sqlite, url, querystring, util, os, tty, child_process, assert, readline, module, timers, string_decoder, perf_hooks, constants, punycode, worker_threads\n\n**Stubs:** dns, vm, v8, tls, dgram, cluster, http2, inspector, domain, diagnostics_channel, async_hooks\n\n**In development:** Native WASI/WASM loading for napi-rs based packages (rolldown, lightningcss, etc.)\n\n## Why nodepod?\n\nWe built nodepod for [Scelar](https://scelar.com), an AI app builder that takes you from idea to production in minutes. Scelar needed a way to run real Node.js code directly in the browser so users could build, preview, and interact with their apps instantly without waiting for remote servers to spin up. No containers, no cold starts, no infrastructure to manage.\n\nWe open-sourced it because we think running Node in the browser shouldn't be a proprietary black box. If you're building a web IDE, coding playground, AI dev tool, or anything that needs server-side JS in the browser, nodepod is for you.\n\n## Development\n\n```bash\ngit clone https://github.com/ScelarOrg/Nodepod.git\ncd Nodepod\ncorepack enable\npnpm install\npnpm run build:publish   # build library + types\npnpm test                # run tests\n```\n\n### Publishing a new version\n\n```bash\nnpm version patch       # or minor / major\nnpm publish             # auto-builds before publishing\ngit push && git push --tags\n```\n\n### Contributing\n\nContributions are really appreciated. This is a big project and it's hard to maintain and push updates on my own. If you want to help out, feel free to open a PR.\n\nNote that nodepod is not my main focus, [Scelar](https://scelar.com) is. I work on nodepod when I have time for it, so responses to issues and PRs might take a bit.\n\nBefore opening a PR, make sure these pass:\n\n```bash\npnpm run type-check      # 0 TypeScript errors\npnpm run build:publish   # builds cleanly\npnpm test                # tests pass\n```\n\n**Code style:**\n\n- Files are **kebab-case** (`shell-parser.ts`, `memory-volume.ts`). Polyfills match their Node.js module name (`fs.ts`, `crypto.ts`).\n- Classes and types are **PascalCase** (`MemoryVolume`, `ShellResult`). Functions and variables are **camelCase**.\n- Private properties and internal helpers use a **leading underscore** (`_registry`, `_ensureSlot()`).\n- Use **named exports**. Default exports only for polyfills that need to match Node's `module.exports` shape.\n\n**Commit messages** follow conventional commits:\n\n```\nfeat: add readline support\nfix: resolve path edge case in fs.watch\nchore: bump dependencies\n```\n\n**If you're writing a polyfill:**\n\n- Polyfill files live in `src/polyfills/` and must be named after the Node.js module they replace.\n- EventEmitter methods must use `_reg()` for lazy init, never access `this._registry` directly.\n- Polyfills registered in `CORE_MODULES` must not use `async` functions.\n- ESM-to-CJS replacement strings must include trailing semicolons.\n\n## License\n\n[MIT + Commons Clause](./LICENSE). Use it in anything, just don't resell nodepod itself.\n\nBuilt by [@R1ck404](https://github.com/R1ck404), part of [Scelar](https://scelar.com).\n","readmeFilename":"README.md"}