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/README.md +163 -1
- package/dist/index.cjs +70 -9
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.mjs +52 -9
- package/dist/index.mjs.map +1 -1
- package/dist/next-plugin.cjs +56 -0
- package/dist/next-plugin.cjs.map +1 -0
- package/dist/next-plugin.d.ts +62 -0
- package/dist/next-plugin.d.ts.map +1 -0
- package/dist/next-plugin.mjs +30 -0
- package/dist/next-plugin.mjs.map +1 -0
- package/dist/sandbox-helpers.d.ts +29 -6
- package/dist/sandbox-helpers.d.ts.map +1 -1
- package/dist/server-bridge.d.ts +10 -1
- package/dist/server-bridge.d.ts.map +1 -1
- package/dist/vite-plugin.cjs +56 -0
- package/dist/vite-plugin.cjs.map +1 -0
- package/dist/vite-plugin.d.ts +36 -0
- package/dist/vite-plugin.d.ts.map +1 -0
- package/dist/vite-plugin.mjs +30 -0
- package/dist/vite-plugin.mjs.map +1 -0
- package/package.json +21 -1
- package/src/frameworks/next-dev-server.ts +2 -2
- package/src/index.ts +1 -0
- package/src/next-plugin.ts +96 -0
- package/src/sandbox-helpers.ts +101 -9
- package/src/server-bridge.ts +14 -2
- package/src/vite-plugin.ts +76 -0
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';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC5F,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,YAAY,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAChF,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,oBAAoB,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACxH,OAAO,EAAE,oBAAoB,EAAE,cAAc,EAAE,sBAAsB,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC7H,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,YAAY,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,IAAI,MAAM,cAAc,CAAC;AACrC,OAAO,KAAK,IAAI,MAAM,cAAc,CAAC;AACrC,OAAO,KAAK,GAAG,MAAM,aAAa,CAAC;AACnC,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,GAAG,MAAM,aAAa,CAAC;AACnC,OAAO,KAAK,WAAW,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,IAAI,MAAM,cAAc,CAAC;AACrC,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;
|
|
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
|
-
|
|
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 '${
|
|
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(
|
|
10040
|
-
|
|
10041
|
-
|
|
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
|
|
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
|
-
//
|
|
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);
|