almostnode 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -26,6 +26,7 @@ export * as util from './shims/util';
26
26
  export * as npm from './npm';
27
27
  export { PackageManager, install } from './npm';
28
28
  export { ServerBridge, getServerBridge, resetServerBridge } from './server-bridge';
29
+ export type { InitServiceWorkerOptions } from './server-bridge';
29
30
  export { DevServer } from './dev-server';
30
31
  export type { DevServerOptions, ResponseData, HMRUpdate } from './dev-server';
31
32
  export { ViteDevServer } from './frameworks/vite-dev-server';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -5,6 +5,9 @@ import pako from "pako";
5
5
  import { defineCommand, Bash } from "just-bash";
6
6
  import { resolve as resolve$3 } from "resolve.exports";
7
7
  import { wrap, proxy } from "comlink";
8
+ import * as fs$1 from "fs";
9
+ import * as path$1 from "path";
10
+ import { fileURLToPath as fileURLToPath$1 } from "url";
8
11
  let DEMO_PACKAGES, PACKAGE_JSON, DevServer, NextDevServer, PackageManager, Runtime, SANDBOX_SETUP_INSTRUCTIONS, SandboxRuntime, ServerBridge, VirtualFS, ViteDevServer, WorkerRuntime, assert$1, chokidarShim, createContainer, createConvexAppProject, createFsShim, createProcess, createRuntime, esbuildShim, events$1, execute, fseventsShim, generateSandboxFiles, getSandboxHtml, getSandboxVercelConfig, getServerBridge, httpShim, initConvexAppDemo, install, moduleShim, netShim, index, pathShim, perfHooksShim, querystringShim, readdirpShim, resetServerBridge, rollupShim, startConvexAppDevServer, stream, urlShim, utilShim, workerThreadsShim, wsShim;
9
12
  let __tla = (async () => {
10
13
  var _a, _b;
@@ -9925,7 +9928,36 @@ ${code}
9925
9928
  console.log("[createRuntime] Creating main-thread Runtime (same-origin, least secure)");
9926
9929
  return new AsyncRuntimeWrapper(vfs2, runtimeOptions);
9927
9930
  };
9928
- getSandboxHtml = function(justNodeUrl = "https://unpkg.com/almostnode/dist/index.js") {
9931
+ const __dirname$1 = path$1.dirname(fileURLToPath$1(import.meta.url));
9932
+ function getServiceWorkerContent() {
9933
+ try {
9934
+ let swPath = path$1.join(__dirname$1, "__sw__.js");
9935
+ if (fs$1.existsSync(swPath)) {
9936
+ return fs$1.readFileSync(swPath, "utf-8");
9937
+ }
9938
+ swPath = path$1.join(__dirname$1, "../dist/__sw__.js");
9939
+ if (fs$1.existsSync(swPath)) {
9940
+ return fs$1.readFileSync(swPath, "utf-8");
9941
+ }
9942
+ return null;
9943
+ } catch {
9944
+ return null;
9945
+ }
9946
+ }
9947
+ getSandboxHtml = function(options2 = {}) {
9948
+ const opts = typeof options2 === "string" ? {
9949
+ almostnodeUrl: options2
9950
+ } : options2;
9951
+ const almostnodeUrl = opts.almostnodeUrl ?? "https://unpkg.com/almostnode/dist/index.js";
9952
+ const includeServiceWorker = opts.includeServiceWorker ?? true;
9953
+ const serviceWorkerScript = includeServiceWorker ? `
9954
+ // Register service worker for dev server support
9955
+ if ('serviceWorker' in navigator) {
9956
+ navigator.serviceWorker.register('/__sw__.js', { scope: '/' })
9957
+ .then(reg => console.log('[Sandbox] Service worker registered'))
9958
+ .catch(err => console.warn('[Sandbox] Service worker registration failed:', err));
9959
+ }
9960
+ ` : "";
9929
9961
  return `<!DOCTYPE html>
9930
9962
  <html>
9931
9963
  <head>
@@ -9934,7 +9966,8 @@ ${code}
9934
9966
  </head>
9935
9967
  <body>
9936
9968
  <script type="module">
9937
- import { VirtualFS, Runtime } from '${justNodeUrl}';
9969
+ import { VirtualFS, Runtime } from '${almostnodeUrl}';
9970
+ ${serviceWorkerScript}
9938
9971
 
9939
9972
  let vfs = null;
9940
9973
  let runtime = null;
@@ -10036,11 +10069,20 @@ ${code}
10036
10069
  ]
10037
10070
  };
10038
10071
  };
10039
- generateSandboxFiles = function(justNodeUrl) {
10040
- return {
10041
- "index.html": getSandboxHtml(justNodeUrl),
10072
+ generateSandboxFiles = function(options2 = {}) {
10073
+ const opts = typeof options2 === "string" ? {
10074
+ almostnodeUrl: options2
10075
+ } : options2;
10076
+ const includeServiceWorker = opts.includeServiceWorker ?? true;
10077
+ const swContent = includeServiceWorker ? getServiceWorkerContent() : null;
10078
+ const files = {
10079
+ "index.html": getSandboxHtml(opts),
10042
10080
  "vercel.json": JSON.stringify(getSandboxVercelConfig(), null, 2)
10043
10081
  };
10082
+ if (swContent) {
10083
+ files["__sw__.js"] = swContent;
10084
+ }
10085
+ return files;
10044
10086
  };
10045
10087
  SANDBOX_SETUP_INSTRUCTIONS = `
10046
10088
  # Setting up a almostnode Sandbox on Vercel
@@ -10989,11 +11031,12 @@ For more details, see: https://github.com/anthropics/almostnode#sandbox-setup
10989
11031
  };
10990
11032
  }
10991
11033
  }
10992
- async initServiceWorker() {
11034
+ async initServiceWorker(options2) {
10993
11035
  if (!("serviceWorker" in navigator)) {
10994
11036
  throw new Error("Service Workers not supported");
10995
11037
  }
10996
- const registration = await navigator.serviceWorker.register("/__sw__.js", {
11038
+ const swUrl = (options2 == null ? void 0 : options2.swUrl) ?? "/__sw__.js";
11039
+ const registration = await navigator.serviceWorker.register(swUrl, {
10997
11040
  scope: "/"
10998
11041
  });
10999
11042
  const sw = registration.active || registration.waiting || registration.installing;
@@ -13327,8 +13370,8 @@ export default function Head({ children }) {
13327
13370
  React.useEffect(() => {
13328
13371
  const handlePopState = () => {
13329
13372
  setCurrentPath(window.location.pathname);
13330
- // Re-render the page component
13331
- window.location.reload();
13373
+ // Defer reload outside React's update cycle
13374
+ setTimeout(() => window.location.reload(), 0);
13332
13375
  };
13333
13376
 
13334
13377
  window.addEventListener('popstate', handlePopState);