@ricsam/isolate-daemon 0.1.12 → 0.1.14
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/cjs/connection.cjs +453 -750
- package/dist/cjs/connection.cjs.map +3 -3
- package/dist/cjs/daemon.cjs +8 -1
- package/dist/cjs/daemon.cjs.map +3 -3
- package/dist/cjs/package.json +1 -1
- package/dist/mjs/connection.mjs +455 -753
- package/dist/mjs/connection.mjs.map +3 -3
- package/dist/mjs/daemon.mjs +8 -1
- package/dist/mjs/daemon.mjs.map +3 -3
- package/dist/mjs/package.json +1 -1
- package/dist/types/daemon.d.ts +0 -13
- package/dist/types/types.d.ts +11 -19
- package/package.json +1 -1
package/dist/mjs/daemon.mjs
CHANGED
|
@@ -2,6 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
// packages/isolate-daemon/src/daemon.ts
|
|
4
4
|
import { startDaemon } from "./index.mjs";
|
|
5
|
+
process.removeAllListeners("warning");
|
|
6
|
+
process.on("warning", (warning) => {
|
|
7
|
+
if (warning.name === "ExperimentalWarning" && warning.message.includes("stripTypeScriptTypes")) {
|
|
8
|
+
return;
|
|
9
|
+
}
|
|
10
|
+
console.warn(warning);
|
|
11
|
+
});
|
|
5
12
|
function parseArgs(args) {
|
|
6
13
|
const options = {};
|
|
7
14
|
for (let i = 0;i < args.length; i++) {
|
|
@@ -92,4 +99,4 @@ main().catch((err) => {
|
|
|
92
99
|
process.exit(1);
|
|
93
100
|
});
|
|
94
101
|
|
|
95
|
-
//# debugId=
|
|
102
|
+
//# debugId=89D86DBEA3D3548964756E2164756E21
|
package/dist/mjs/daemon.mjs.map
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/daemon.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"#!/usr/bin/env node\n\n/**\n * CLI entry point for the isolate daemon.\n *\n * Usage:\n * isolate-daemon [options]\n *\n * Options:\n * --socket <path> Unix socket path (default: /tmp/isolate-daemon.sock)\n * --host <host> TCP host (default: 127.0.0.1)\n * --port <port> TCP port (default: 47891)\n * --max-isolates <n> Maximum isolates (default: 100)\n * --memory-limit <mb> Default memory limit (default: 128)\n */\n\nimport { startDaemon, type DaemonOptions } from \"./index.mjs\";\n\nfunction parseArgs(args: string[]): Partial<DaemonOptions> {\n const options: Partial<DaemonOptions> = {};\n\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n\n switch (arg) {\n case \"--socket\":\n i++;\n if (args[i]) {\n options.socketPath = args[i];\n }\n break;\n case \"--host\":\n i++;\n if (args[i]) {\n options.host = args[i];\n options.socketPath = undefined; // Use TCP instead\n }\n break;\n case \"--port\": {\n i++;\n const value = args[i];\n if (value !== undefined) {\n options.port = parseInt(value, 10);\n options.socketPath = undefined; // Use TCP instead\n }\n break;\n }\n case \"--max-isolates\": {\n i++;\n const value = args[i];\n if (value !== undefined) {\n options.maxIsolates = parseInt(value, 10);\n }\n break;\n }\n case \"--memory-limit\": {\n i++;\n const value = args[i];\n if (value !== undefined) {\n options.defaultMemoryLimitMB = parseInt(value, 10);\n }\n break;\n }\n case \"--help\":\n case \"-h\":\n console.log(`\nIsolate Daemon - Run isolated-vm runtimes accessible via IPC\n\nUsage:\n isolate-daemon [options]\n\nOptions:\n --socket <path> Unix socket path (default: /tmp/isolate-daemon.sock)\n --host <host> TCP host (default: 127.0.0.1, disables Unix socket)\n --port <port> TCP port (default: 47891, disables Unix socket)\n --max-isolates <n> Maximum isolates (default: 100)\n --memory-limit <mb> Default memory limit in MB (default: 128)\n --help, -h Show this help message\n`);\n process.exit(0);\n default:\n if (arg !== undefined && arg.startsWith(\"-\")) {\n console.error(`Unknown option: ${arg}`);\n process.exit(1);\n }\n }\n }\n\n return options;\n}\n\nasync function main() {\n const options = parseArgs(process.argv.slice(2));\n\n const daemon = await startDaemon(options);\n\n // Handle shutdown signals\n const shutdown = async () => {\n console.log(\"\\nShutting down...\");\n await daemon.close();\n process.exit(0);\n };\n\n process.on(\"SIGINT\", shutdown);\n process.on(\"SIGTERM\", shutdown);\n\n // Log stats periodically\n setInterval(() => {\n const stats = daemon.getStats();\n console.log(\n `[stats] connections: ${stats.activeConnections}, isolates: ${stats.activeIsolates}, total requests: ${stats.totalRequestsProcessed}`\n );\n }, 60000);\n}\n\nmain().catch((err) => {\n console.error(\"Failed to start daemon:\", err);\n process.exit(1);\n});\n"
|
|
5
|
+
"#!/usr/bin/env node\n\n// Suppress the ExperimentalWarning for stripTypeScriptTypes\nprocess.removeAllListeners(\"warning\");\nprocess.on(\"warning\", (warning) => {\n if (\n warning.name === \"ExperimentalWarning\" &&\n warning.message.includes(\"stripTypeScriptTypes\")\n ) {\n return; // Suppress this specific warning\n }\n console.warn(warning);\n});\n\n/**\n * CLI entry point for the isolate daemon.\n *\n * Usage:\n * isolate-daemon [options]\n *\n * Options:\n * --socket <path> Unix socket path (default: /tmp/isolate-daemon.sock)\n * --host <host> TCP host (default: 127.0.0.1)\n * --port <port> TCP port (default: 47891)\n * --max-isolates <n> Maximum isolates (default: 100)\n * --memory-limit <mb> Default memory limit (default: 128)\n */\n\nimport { startDaemon, type DaemonOptions } from \"./index.mjs\";\n\nfunction parseArgs(args: string[]): Partial<DaemonOptions> {\n const options: Partial<DaemonOptions> = {};\n\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n\n switch (arg) {\n case \"--socket\":\n i++;\n if (args[i]) {\n options.socketPath = args[i];\n }\n break;\n case \"--host\":\n i++;\n if (args[i]) {\n options.host = args[i];\n options.socketPath = undefined; // Use TCP instead\n }\n break;\n case \"--port\": {\n i++;\n const value = args[i];\n if (value !== undefined) {\n options.port = parseInt(value, 10);\n options.socketPath = undefined; // Use TCP instead\n }\n break;\n }\n case \"--max-isolates\": {\n i++;\n const value = args[i];\n if (value !== undefined) {\n options.maxIsolates = parseInt(value, 10);\n }\n break;\n }\n case \"--memory-limit\": {\n i++;\n const value = args[i];\n if (value !== undefined) {\n options.defaultMemoryLimitMB = parseInt(value, 10);\n }\n break;\n }\n case \"--help\":\n case \"-h\":\n console.log(`\nIsolate Daemon - Run isolated-vm runtimes accessible via IPC\n\nUsage:\n isolate-daemon [options]\n\nOptions:\n --socket <path> Unix socket path (default: /tmp/isolate-daemon.sock)\n --host <host> TCP host (default: 127.0.0.1, disables Unix socket)\n --port <port> TCP port (default: 47891, disables Unix socket)\n --max-isolates <n> Maximum isolates (default: 100)\n --memory-limit <mb> Default memory limit in MB (default: 128)\n --help, -h Show this help message\n`);\n process.exit(0);\n default:\n if (arg !== undefined && arg.startsWith(\"-\")) {\n console.error(`Unknown option: ${arg}`);\n process.exit(1);\n }\n }\n }\n\n return options;\n}\n\nasync function main() {\n const options = parseArgs(process.argv.slice(2));\n\n const daemon = await startDaemon(options);\n\n // Handle shutdown signals\n const shutdown = async () => {\n console.log(\"\\nShutting down...\");\n await daemon.close();\n process.exit(0);\n };\n\n process.on(\"SIGINT\", shutdown);\n process.on(\"SIGTERM\", shutdown);\n\n // Log stats periodically\n setInterval(() => {\n const stats = daemon.getStats();\n console.log(\n `[stats] connections: ${stats.activeConnections}, isolates: ${stats.activeIsolates}, total requests: ${stats.totalRequestsProcessed}`\n );\n }, 60000);\n}\n\nmain().catch((err) => {\n console.error(\"Failed to start daemon:\", err);\n process.exit(1);\n});\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": ";;;
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": ";;;AA4BA;AAzBA,QAAQ,mBAAmB,SAAS;AACpC,QAAQ,GAAG,WAAW,CAAC,YAAY;AAAA,EACjC,IACE,QAAQ,SAAS,yBACjB,QAAQ,QAAQ,SAAS,sBAAsB,GAC/C;AAAA,IACA;AAAA,EACF;AAAA,EACA,QAAQ,KAAK,OAAO;AAAA,CACrB;AAkBD,SAAS,SAAS,CAAC,MAAwC;AAAA,EACzD,MAAM,UAAkC,CAAC;AAAA,EAEzC,SAAS,IAAI,EAAG,IAAI,KAAK,QAAQ,KAAK;AAAA,IACpC,MAAM,MAAM,KAAK;AAAA,IAEjB,QAAQ;AAAA,WACD;AAAA,QACH;AAAA,QACA,IAAI,KAAK,IAAI;AAAA,UACX,QAAQ,aAAa,KAAK;AAAA,QAC5B;AAAA,QACA;AAAA,WACG;AAAA,QACH;AAAA,QACA,IAAI,KAAK,IAAI;AAAA,UACX,QAAQ,OAAO,KAAK;AAAA,UACpB,QAAQ,aAAa;AAAA,QACvB;AAAA,QACA;AAAA,WACG,UAAU;AAAA,QACb;AAAA,QACA,MAAM,QAAQ,KAAK;AAAA,QACnB,IAAI,UAAU,WAAW;AAAA,UACvB,QAAQ,OAAO,SAAS,OAAO,EAAE;AAAA,UACjC,QAAQ,aAAa;AAAA,QACvB;AAAA,QACA;AAAA,MACF;AAAA,WACK,kBAAkB;AAAA,QACrB;AAAA,QACA,MAAM,QAAQ,KAAK;AAAA,QACnB,IAAI,UAAU,WAAW;AAAA,UACvB,QAAQ,cAAc,SAAS,OAAO,EAAE;AAAA,QAC1C;AAAA,QACA;AAAA,MACF;AAAA,WACK,kBAAkB;AAAA,QACrB;AAAA,QACA,MAAM,QAAQ,KAAK;AAAA,QACnB,IAAI,UAAU,WAAW;AAAA,UACvB,QAAQ,uBAAuB,SAAS,OAAO,EAAE;AAAA,QACnD;AAAA,QACA;AAAA,MACF;AAAA,WACK;AAAA,WACA;AAAA,QACH,QAAQ,IAAI;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAanB;AAAA,QACO,QAAQ,KAAK,CAAC;AAAA;AAAA,QAEd,IAAI,QAAQ,aAAa,IAAI,WAAW,GAAG,GAAG;AAAA,UAC5C,QAAQ,MAAM,mBAAmB,KAAK;AAAA,UACtC,QAAQ,KAAK,CAAC;AAAA,QAChB;AAAA;AAAA,EAEN;AAAA,EAEA,OAAO;AAAA;AAGT,eAAe,IAAI,GAAG;AAAA,EACpB,MAAM,UAAU,UAAU,QAAQ,KAAK,MAAM,CAAC,CAAC;AAAA,EAE/C,MAAM,SAAS,MAAM,YAAY,OAAO;AAAA,EAGxC,MAAM,WAAW,YAAY;AAAA,IAC3B,QAAQ,IAAI;AAAA,iBAAoB;AAAA,IAChC,MAAM,OAAO,MAAM;AAAA,IACnB,QAAQ,KAAK,CAAC;AAAA;AAAA,EAGhB,QAAQ,GAAG,UAAU,QAAQ;AAAA,EAC7B,QAAQ,GAAG,WAAW,QAAQ;AAAA,EAG9B,YAAY,MAAM;AAAA,IAChB,MAAM,QAAQ,OAAO,SAAS;AAAA,IAC9B,QAAQ,IACN,wBAAwB,MAAM,gCAAgC,MAAM,mCAAmC,MAAM,wBAC/G;AAAA,KACC,KAAK;AAAA;AAGV,KAAK,EAAE,MAAM,CAAC,QAAQ;AAAA,EACpB,QAAQ,MAAM,2BAA2B,GAAG;AAAA,EAC5C,QAAQ,KAAK,CAAC;AAAA,CACf;",
|
|
8
|
+
"debugId": "89D86DBEA3D3548964756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
package/dist/mjs/package.json
CHANGED
package/dist/types/daemon.d.ts
CHANGED
|
@@ -1,15 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
/**
|
|
3
|
-
* CLI entry point for the isolate daemon.
|
|
4
|
-
*
|
|
5
|
-
* Usage:
|
|
6
|
-
* isolate-daemon [options]
|
|
7
|
-
*
|
|
8
|
-
* Options:
|
|
9
|
-
* --socket <path> Unix socket path (default: /tmp/isolate-daemon.sock)
|
|
10
|
-
* --host <host> TCP host (default: 127.0.0.1)
|
|
11
|
-
* --port <port> TCP port (default: 47891)
|
|
12
|
-
* --max-isolates <n> Maximum isolates (default: 100)
|
|
13
|
-
* --memory-limit <mb> Default memory limit (default: 128)
|
|
14
|
-
*/
|
|
15
2
|
export {};
|
package/dist/types/types.d.ts
CHANGED
|
@@ -2,11 +2,8 @@
|
|
|
2
2
|
* Internal types for the isolate daemon.
|
|
3
3
|
*/
|
|
4
4
|
import type { Socket } from "node:net";
|
|
5
|
-
import type
|
|
6
|
-
import type { InternalRuntimeHandle } from "@ricsam/isolate-runtime";
|
|
5
|
+
import type { RuntimeHandle } from "@ricsam/isolate-runtime";
|
|
7
6
|
import type { CallbackRegistration } from "@ricsam/isolate-protocol";
|
|
8
|
-
import type { PlaywrightHandle } from "@ricsam/isolate-playwright";
|
|
9
|
-
import type { SourceMap } from "@ricsam/isolate-transform";
|
|
10
7
|
/**
|
|
11
8
|
* Options for starting the daemon.
|
|
12
9
|
*/
|
|
@@ -47,25 +44,11 @@ export interface DaemonStats {
|
|
|
47
44
|
*/
|
|
48
45
|
export interface IsolateInstance {
|
|
49
46
|
isolateId: string;
|
|
50
|
-
runtime:
|
|
47
|
+
runtime: RuntimeHandle;
|
|
51
48
|
ownerConnection: Socket | null;
|
|
52
49
|
callbacks: Map<number, CallbackRegistration>;
|
|
53
50
|
createdAt: number;
|
|
54
51
|
lastActivity: number;
|
|
55
|
-
/** Whether test environment is enabled */
|
|
56
|
-
testEnvironmentEnabled?: boolean;
|
|
57
|
-
/** Playwright handle for event management (if setup) */
|
|
58
|
-
playwrightHandle?: PlaywrightHandle;
|
|
59
|
-
/** Module loader callback ID (if registered) */
|
|
60
|
-
moduleLoaderCallbackId?: number;
|
|
61
|
-
/** Cache of compiled ES modules */
|
|
62
|
-
moduleCache?: Map<string, ivm.Module>;
|
|
63
|
-
/** Map from module to its filename (for tracking importer path) */
|
|
64
|
-
moduleToFilename?: Map<ivm.Module, string>;
|
|
65
|
-
/** Pending callback promises for current eval */
|
|
66
|
-
pendingCallbacks: Promise<unknown>[];
|
|
67
|
-
/** Source maps for error stack trace mapping */
|
|
68
|
-
sourceMaps?: Map<string, SourceMap>;
|
|
69
52
|
/** Functions returned by custom function calls (callable from isolate) */
|
|
70
53
|
returnedCallbacks?: Map<number, Function>;
|
|
71
54
|
/** Promises returned by custom function calls (resolvable from isolate) */
|
|
@@ -96,6 +79,15 @@ export interface CallbackContext {
|
|
|
96
79
|
fetch?: number;
|
|
97
80
|
/** Module loader callback ID */
|
|
98
81
|
moduleLoader?: number;
|
|
82
|
+
/** testEnvironment.onEvent callback ID */
|
|
83
|
+
testEnvironmentOnEvent?: number;
|
|
84
|
+
/** Playwright callback IDs */
|
|
85
|
+
playwright: {
|
|
86
|
+
handlerCallbackId?: number;
|
|
87
|
+
onBrowserConsoleLogCallbackId?: number;
|
|
88
|
+
onNetworkRequestCallbackId?: number;
|
|
89
|
+
onNetworkResponseCallbackId?: number;
|
|
90
|
+
};
|
|
99
91
|
/** FS callback IDs by name */
|
|
100
92
|
fs: {
|
|
101
93
|
readFile?: number;
|