@ricsam/isolate 0.1.10 → 0.1.12
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 +257 -18
- package/dist/cjs/bridge/diagnostics.cjs +37 -2
- package/dist/cjs/bridge/diagnostics.cjs.map +3 -3
- package/dist/cjs/bridge/runtime-bindings.cjs +230 -51
- package/dist/cjs/bridge/runtime-bindings.cjs.map +3 -3
- package/dist/cjs/bridge/sandbox-isolate.cjs +464 -0
- package/dist/cjs/bridge/sandbox-isolate.cjs.map +10 -0
- package/dist/cjs/host/create-isolate-host.cjs +130 -25
- package/dist/cjs/host/create-isolate-host.cjs.map +3 -3
- package/dist/cjs/host/nested-host-controller.cjs +369 -0
- package/dist/cjs/host/nested-host-controller.cjs.map +10 -0
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/internal/browser-source.cjs +102 -0
- package/dist/cjs/internal/browser-source.cjs.map +10 -0
- package/dist/cjs/internal/client/connection.cjs +163 -172
- package/dist/cjs/internal/client/connection.cjs.map +3 -3
- package/dist/cjs/internal/daemon/callback-fs-handler.cjs +3 -3
- package/dist/cjs/internal/daemon/callback-fs-handler.cjs.map +3 -3
- package/dist/cjs/internal/daemon/connection.cjs +156 -13
- package/dist/cjs/internal/daemon/connection.cjs.map +3 -3
- package/dist/cjs/internal/playwright/client.cjs +4 -2
- package/dist/cjs/internal/playwright/client.cjs.map +3 -3
- package/dist/cjs/internal/playwright/handler.cjs +298 -25
- package/dist/cjs/internal/playwright/handler.cjs.map +3 -3
- package/dist/cjs/internal/playwright/index.cjs +54 -8
- package/dist/cjs/internal/playwright/index.cjs.map +3 -3
- package/dist/cjs/internal/playwright/types.cjs +3 -1
- package/dist/cjs/internal/playwright/types.cjs.map +3 -3
- package/dist/cjs/internal/protocol/codec.cjs +16 -5
- package/dist/cjs/internal/protocol/codec.cjs.map +3 -3
- package/dist/cjs/internal/protocol/marshalValue.cjs +37 -6
- package/dist/cjs/internal/protocol/marshalValue.cjs.map +3 -3
- package/dist/cjs/internal/protocol/types.cjs +2 -1
- package/dist/cjs/internal/protocol/types.cjs.map +3 -3
- package/dist/cjs/internal/runtime/index.cjs +377 -22
- package/dist/cjs/internal/runtime/index.cjs.map +3 -3
- package/dist/cjs/internal/typecheck/index.cjs +2 -1
- package/dist/cjs/internal/typecheck/index.cjs.map +3 -3
- package/dist/cjs/internal/typecheck/isolate-types.cjs +218 -13
- package/dist/cjs/internal/typecheck/isolate-types.cjs.map +3 -3
- package/dist/cjs/internal/typecheck/typecheck.cjs +2 -3
- package/dist/cjs/internal/typecheck/typecheck.cjs.map +3 -3
- package/dist/cjs/package.json +1 -1
- package/dist/cjs/playwright.cjs +76 -0
- package/dist/cjs/playwright.cjs.map +10 -0
- package/dist/cjs/runtime/namespaced-runtime.cjs +181 -0
- package/dist/cjs/runtime/namespaced-runtime.cjs.map +10 -0
- package/dist/cjs/runtime/script-runtime.cjs +14 -12
- package/dist/cjs/runtime/script-runtime.cjs.map +3 -3
- package/dist/cjs/runtime/test-runtime.cjs +113 -0
- package/dist/cjs/runtime/test-runtime.cjs.map +10 -0
- package/dist/cjs/server/app-server.cjs +16 -9
- package/dist/cjs/server/app-server.cjs.map +3 -3
- package/dist/cjs/typecheck/index.cjs +2 -1
- package/dist/cjs/typecheck/index.cjs.map +3 -3
- package/dist/mjs/bridge/diagnostics.mjs +37 -2
- package/dist/mjs/bridge/diagnostics.mjs.map +3 -3
- package/dist/mjs/bridge/runtime-bindings.mjs +233 -51
- package/dist/mjs/bridge/runtime-bindings.mjs.map +3 -3
- package/dist/mjs/bridge/sandbox-isolate.mjs +424 -0
- package/dist/mjs/bridge/sandbox-isolate.mjs.map +10 -0
- package/dist/mjs/host/create-isolate-host.mjs +132 -25
- package/dist/mjs/host/create-isolate-host.mjs.map +3 -3
- package/dist/mjs/host/nested-host-controller.mjs +333 -0
- package/dist/mjs/host/nested-host-controller.mjs.map +10 -0
- package/dist/mjs/index.mjs.map +1 -1
- package/dist/mjs/internal/browser-source.mjs +62 -0
- package/dist/mjs/internal/browser-source.mjs.map +10 -0
- package/dist/mjs/internal/client/connection.mjs +165 -173
- package/dist/mjs/internal/client/connection.mjs.map +3 -3
- package/dist/mjs/internal/daemon/callback-fs-handler.mjs +3 -3
- package/dist/mjs/internal/daemon/callback-fs-handler.mjs.map +3 -3
- package/dist/mjs/internal/daemon/connection.mjs +156 -13
- package/dist/mjs/internal/daemon/connection.mjs.map +3 -3
- package/dist/mjs/internal/playwright/client.mjs +7 -3
- package/dist/mjs/internal/playwright/client.mjs.map +3 -3
- package/dist/mjs/internal/playwright/handler.mjs +300 -26
- package/dist/mjs/internal/playwright/handler.mjs.map +3 -3
- package/dist/mjs/internal/playwright/index.mjs +59 -9
- package/dist/mjs/internal/playwright/index.mjs.map +3 -3
- package/dist/mjs/internal/playwright/types.mjs +3 -1
- package/dist/mjs/internal/playwright/types.mjs.map +3 -3
- package/dist/mjs/internal/protocol/codec.mjs +16 -5
- package/dist/mjs/internal/protocol/codec.mjs.map +3 -3
- package/dist/mjs/internal/protocol/marshalValue.mjs +38 -6
- package/dist/mjs/internal/protocol/marshalValue.mjs.map +3 -3
- package/dist/mjs/internal/protocol/types.mjs +2 -1
- package/dist/mjs/internal/protocol/types.mjs.map +3 -3
- package/dist/mjs/internal/runtime/index.mjs +377 -22
- package/dist/mjs/internal/runtime/index.mjs.map +3 -3
- package/dist/mjs/internal/typecheck/index.mjs +3 -1
- package/dist/mjs/internal/typecheck/index.mjs.map +3 -3
- package/dist/mjs/internal/typecheck/isolate-types.mjs +218 -13
- package/dist/mjs/internal/typecheck/isolate-types.mjs.map +3 -3
- package/dist/mjs/internal/typecheck/typecheck.mjs +2 -3
- package/dist/mjs/internal/typecheck/typecheck.mjs.map +3 -3
- package/dist/mjs/package.json +1 -1
- package/dist/mjs/playwright.mjs +47 -0
- package/dist/mjs/playwright.mjs.map +10 -0
- package/dist/mjs/runtime/namespaced-runtime.mjs +143 -0
- package/dist/mjs/runtime/namespaced-runtime.mjs.map +10 -0
- package/dist/mjs/runtime/script-runtime.mjs +16 -12
- package/dist/mjs/runtime/script-runtime.mjs.map +3 -3
- package/dist/mjs/runtime/test-runtime.mjs +78 -0
- package/dist/mjs/runtime/test-runtime.mjs.map +10 -0
- package/dist/mjs/server/app-server.mjs +23 -11
- package/dist/mjs/server/app-server.mjs.map +3 -3
- package/dist/mjs/typecheck/index.mjs +2 -1
- package/dist/mjs/typecheck/index.mjs.map +3 -3
- package/dist/types/bridge/diagnostics.d.ts +6 -1
- package/dist/types/bridge/runtime-bindings.d.ts +5 -1
- package/dist/types/bridge/sandbox-isolate.d.ts +21 -0
- package/dist/types/host/nested-host-controller.d.ts +15 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/internal/browser-source.d.ts +10 -0
- package/dist/types/internal/client/types.d.ts +9 -0
- package/dist/types/internal/daemon/types.d.ts +0 -2
- package/dist/types/internal/playwright/client.d.ts +2 -2
- package/dist/types/internal/playwright/handler.d.ts +27 -4
- package/dist/types/internal/playwright/index.d.ts +2 -2
- package/dist/types/internal/playwright/types.d.ts +33 -1
- package/dist/types/internal/protocol/codec.d.ts +12 -2
- package/dist/types/internal/protocol/marshalValue.d.ts +3 -2
- package/dist/types/internal/protocol/types.d.ts +33 -2
- package/dist/types/internal/runtime/index.d.ts +5 -0
- package/dist/types/internal/typecheck/index.d.ts +1 -1
- package/dist/types/internal/typecheck/isolate-types.d.ts +6 -4
- package/dist/types/internal/typecheck/typecheck.d.ts +1 -1
- package/dist/types/playwright.d.ts +26 -0
- package/dist/types/runtime/namespaced-runtime.d.ts +11 -0
- package/dist/types/runtime/script-runtime.d.ts +2 -1
- package/dist/types/runtime/test-runtime.d.ts +4 -0
- package/dist/types/server/app-server.d.ts +2 -1
- package/dist/types/types.d.ts +75 -33
- package/package.json +8 -3
- package/dist/cjs/browser/browser-runtime.cjs +0 -157
- package/dist/cjs/browser/browser-runtime.cjs.map +0 -10
- package/dist/mjs/browser/browser-runtime.mjs +0 -93
- package/dist/mjs/browser/browser-runtime.mjs.map +0 -10
- package/dist/types/browser/browser-runtime.d.ts +0 -3
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ricsam/isolate",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.12",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Unified runtime host for app servers, script runtimes, browser runtimes, module resolution, file bindings, and typechecking",
|
|
6
6
|
"author": "ricsam <oss@ricsam.dev>",
|
|
@@ -37,6 +37,11 @@
|
|
|
37
37
|
"types": "./dist/types/daemon.d.ts",
|
|
38
38
|
"require": "./dist/cjs/daemon.cjs",
|
|
39
39
|
"import": "./dist/mjs/daemon.mjs"
|
|
40
|
+
},
|
|
41
|
+
"./playwright": {
|
|
42
|
+
"types": "./dist/types/playwright.d.ts",
|
|
43
|
+
"require": "./dist/cjs/playwright.cjs",
|
|
44
|
+
"import": "./dist/mjs/playwright.mjs"
|
|
40
45
|
}
|
|
41
46
|
},
|
|
42
47
|
"bin": {
|
|
@@ -56,8 +61,8 @@
|
|
|
56
61
|
"scripts": {
|
|
57
62
|
"build": "bun scripts/build.ts",
|
|
58
63
|
"build:npm": "bun scripts/build.ts",
|
|
59
|
-
"test": "node --test --experimental-strip-types 'src/**/*.test.ts' --test-reporter tap --test-reporter-destination stdout",
|
|
60
|
-
"test:spec": "node --test --experimental-strip-types 'src/**/*.test.ts' --test-reporter spec --test-reporter-destination stdout",
|
|
64
|
+
"test": "node --test --test-concurrency=1 --experimental-strip-types 'src/**/*.test.ts' --test-reporter tap --test-reporter-destination stdout",
|
|
65
|
+
"test:spec": "node --test --test-concurrency=1 --experimental-strip-types 'src/**/*.test.ts' --test-reporter spec --test-reporter-destination stdout",
|
|
61
66
|
"typecheck": "tsc --noEmit"
|
|
62
67
|
},
|
|
63
68
|
"dependencies": {
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
var __create = Object.create;
|
|
2
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
6
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
-
function __accessProp(key) {
|
|
8
|
-
return this[key];
|
|
9
|
-
}
|
|
10
|
-
var __toESMCache_node;
|
|
11
|
-
var __toESMCache_esm;
|
|
12
|
-
var __toESM = (mod, isNodeMode, target) => {
|
|
13
|
-
var canCache = mod != null && typeof mod === "object";
|
|
14
|
-
if (canCache) {
|
|
15
|
-
var cache = isNodeMode ? __toESMCache_node ??= new WeakMap : __toESMCache_esm ??= new WeakMap;
|
|
16
|
-
var cached = cache.get(mod);
|
|
17
|
-
if (cached)
|
|
18
|
-
return cached;
|
|
19
|
-
}
|
|
20
|
-
target = mod != null ? __create(__getProtoOf(mod)) : {};
|
|
21
|
-
const to = isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target;
|
|
22
|
-
for (let key of __getOwnPropNames(mod))
|
|
23
|
-
if (!__hasOwnProp.call(to, key))
|
|
24
|
-
__defProp(to, key, {
|
|
25
|
-
get: __accessProp.bind(mod, key),
|
|
26
|
-
enumerable: true
|
|
27
|
-
});
|
|
28
|
-
if (canCache)
|
|
29
|
-
cache.set(mod, to);
|
|
30
|
-
return to;
|
|
31
|
-
};
|
|
32
|
-
var __toCommonJS = (from) => {
|
|
33
|
-
var entry = (__moduleCache ??= new WeakMap).get(from), desc;
|
|
34
|
-
if (entry)
|
|
35
|
-
return entry;
|
|
36
|
-
entry = __defProp({}, "__esModule", { value: true });
|
|
37
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
38
|
-
for (var key of __getOwnPropNames(from))
|
|
39
|
-
if (!__hasOwnProp.call(entry, key))
|
|
40
|
-
__defProp(entry, key, {
|
|
41
|
-
get: __accessProp.bind(from, key),
|
|
42
|
-
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
__moduleCache.set(from, entry);
|
|
46
|
-
return entry;
|
|
47
|
-
};
|
|
48
|
-
var __moduleCache;
|
|
49
|
-
var __returnValue = (v) => v;
|
|
50
|
-
function __exportSetter(name, newValue) {
|
|
51
|
-
this[name] = __returnValue.bind(null, newValue);
|
|
52
|
-
}
|
|
53
|
-
var __export = (target, all) => {
|
|
54
|
-
for (var name in all)
|
|
55
|
-
__defProp(target, name, {
|
|
56
|
-
get: all[name],
|
|
57
|
-
enumerable: true,
|
|
58
|
-
configurable: true,
|
|
59
|
-
set: __exportSetter.bind(all, name)
|
|
60
|
-
});
|
|
61
|
-
};
|
|
62
|
-
|
|
63
|
-
// src/browser/browser-runtime.ts
|
|
64
|
-
var exports_browser_runtime = {};
|
|
65
|
-
__export(exports_browser_runtime, {
|
|
66
|
-
createBrowserRuntimeAdapter: () => createBrowserRuntimeAdapter
|
|
67
|
-
});
|
|
68
|
-
module.exports = __toCommonJS(exports_browser_runtime);
|
|
69
|
-
var import_node_path = __toESM(require("node:path"));
|
|
70
|
-
var import_client = require("../internal/playwright/client.cjs");
|
|
71
|
-
var import_diagnostics = require("../bridge/diagnostics.cjs");
|
|
72
|
-
var import_runtime_bindings = require("../bridge/runtime-bindings.cjs");
|
|
73
|
-
var import_script_runtime = require("../runtime/script-runtime.cjs");
|
|
74
|
-
function getMimeType(filePath) {
|
|
75
|
-
const ext = import_node_path.default.extname(filePath).toLowerCase();
|
|
76
|
-
const mimeTypes = {
|
|
77
|
-
".png": "image/png",
|
|
78
|
-
".jpg": "image/jpeg",
|
|
79
|
-
".jpeg": "image/jpeg",
|
|
80
|
-
".gif": "image/gif",
|
|
81
|
-
".webp": "image/webp",
|
|
82
|
-
".svg": "image/svg+xml",
|
|
83
|
-
".pdf": "application/pdf",
|
|
84
|
-
".txt": "text/plain",
|
|
85
|
-
".html": "text/html",
|
|
86
|
-
".css": "text/css",
|
|
87
|
-
".js": "application/javascript",
|
|
88
|
-
".json": "application/json"
|
|
89
|
-
};
|
|
90
|
-
return mimeTypes[ext] ?? "application/octet-stream";
|
|
91
|
-
}
|
|
92
|
-
async function createBrowserRuntimeAdapter(createRuntime, options) {
|
|
93
|
-
const diagnostics = import_diagnostics.createRuntimeDiagnostics();
|
|
94
|
-
let runtimeId = options.key ?? "browser-runtime";
|
|
95
|
-
const bindingsAdapter = import_runtime_bindings.createRuntimeBindingsAdapter(options.bindings, () => runtimeId, diagnostics);
|
|
96
|
-
const readFile = options.browser.readFile ? async (filePath) => {
|
|
97
|
-
const buffer = await options.browser.readFile(filePath);
|
|
98
|
-
return {
|
|
99
|
-
name: import_node_path.default.basename(filePath),
|
|
100
|
-
mimeType: getMimeType(filePath),
|
|
101
|
-
buffer
|
|
102
|
-
};
|
|
103
|
-
} : undefined;
|
|
104
|
-
const playwrightHandler = import_client.defaultPlaywrightHandler(options.browser.page, {
|
|
105
|
-
readFile,
|
|
106
|
-
writeFile: options.browser.writeFile,
|
|
107
|
-
createPage: options.browser.createPage,
|
|
108
|
-
createContext: options.browser.createContext
|
|
109
|
-
});
|
|
110
|
-
const runtime = await createRuntime({
|
|
111
|
-
...bindingsAdapter.runtimeOptions,
|
|
112
|
-
cwd: options.cwd,
|
|
113
|
-
memoryLimitMB: options.memoryLimitMB,
|
|
114
|
-
executionTimeout: options.executionTimeout,
|
|
115
|
-
testEnvironment: options.features?.tests ?? false,
|
|
116
|
-
playwright: {
|
|
117
|
-
handler: playwrightHandler,
|
|
118
|
-
console: options.browser.captureConsole ?? false,
|
|
119
|
-
onEvent: options.browser.onEvent
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
runtimeId = runtime.id;
|
|
123
|
-
const scriptRuntime = import_script_runtime.createScriptRuntimeAdapter(runtime, diagnostics, {
|
|
124
|
-
onBeforeDispose: (reason) => bindingsAdapter.abort(reason)
|
|
125
|
-
});
|
|
126
|
-
return {
|
|
127
|
-
async run(code, runOptions) {
|
|
128
|
-
await scriptRuntime.eval(code, {
|
|
129
|
-
filename: runOptions?.filename,
|
|
130
|
-
executionTimeout: runOptions?.timeoutMs
|
|
131
|
-
});
|
|
132
|
-
if (runOptions?.asTestSuite && await runtime.testEnvironment.hasTests()) {
|
|
133
|
-
return {
|
|
134
|
-
tests: await runtime.testEnvironment.runTests(runOptions.timeoutMs)
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
return {};
|
|
138
|
-
},
|
|
139
|
-
async diagnostics() {
|
|
140
|
-
const collectedData = runtime.playwright.getCollectedData();
|
|
141
|
-
return {
|
|
142
|
-
...await scriptRuntime.diagnostics(),
|
|
143
|
-
browserConsoleLogs: collectedData.browserConsoleLogs.length,
|
|
144
|
-
networkRequests: collectedData.networkRequests.length,
|
|
145
|
-
networkResponses: collectedData.networkResponses.length,
|
|
146
|
-
pageErrors: collectedData.pageErrors.length,
|
|
147
|
-
requestFailures: collectedData.requestFailures.length,
|
|
148
|
-
collectedData
|
|
149
|
-
};
|
|
150
|
-
},
|
|
151
|
-
dispose: async (disposeOptions) => {
|
|
152
|
-
await scriptRuntime.dispose(disposeOptions);
|
|
153
|
-
}
|
|
154
|
-
};
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
//# debugId=4537F7187943AFB464756E2164756E21
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/browser/browser-runtime.ts"],
|
|
4
|
-
"sourcesContent": [
|
|
5
|
-
"import path from \"node:path\";\nimport { defaultPlaywrightHandler } from \"../internal/playwright/client.cjs\";\nimport type { RemoteRuntime, RuntimeOptions } from \"../internal/client/index.cjs\";\nimport { createRuntimeDiagnostics } from \"../bridge/diagnostics.cjs\";\nimport { createRuntimeBindingsAdapter } from \"../bridge/runtime-bindings.cjs\";\nimport { createScriptRuntimeAdapter } from \"../runtime/script-runtime.cjs\";\nimport type { BrowserRuntime, BrowserRuntimeDiagnostics, CreateBrowserRuntimeOptions } from \"../types.cjs\";\n\nfunction getMimeType(filePath: string): string {\n const ext = path.extname(filePath).toLowerCase();\n const mimeTypes: Record<string, string> = {\n \".png\": \"image/png\",\n \".jpg\": \"image/jpeg\",\n \".jpeg\": \"image/jpeg\",\n \".gif\": \"image/gif\",\n \".webp\": \"image/webp\",\n \".svg\": \"image/svg+xml\",\n \".pdf\": \"application/pdf\",\n \".txt\": \"text/plain\",\n \".html\": \"text/html\",\n \".css\": \"text/css\",\n \".js\": \"application/javascript\",\n \".json\": \"application/json\",\n };\n return mimeTypes[ext] ?? \"application/octet-stream\";\n}\n\nexport async function createBrowserRuntimeAdapter(\n createRuntime: (options: RuntimeOptions) => Promise<RemoteRuntime>,\n options: CreateBrowserRuntimeOptions,\n): Promise<BrowserRuntime> {\n const diagnostics = createRuntimeDiagnostics();\n let runtimeId = options.key ?? \"browser-runtime\";\n const bindingsAdapter = createRuntimeBindingsAdapter(\n options.bindings,\n () => runtimeId,\n diagnostics,\n );\n const readFile = options.browser.readFile\n ? async (filePath: string) => {\n const buffer = await options.browser.readFile!(filePath);\n return {\n name: path.basename(filePath),\n mimeType: getMimeType(filePath),\n buffer,\n };\n }\n : undefined;\n const playwrightHandler = defaultPlaywrightHandler(options.browser.page as never, {\n readFile,\n writeFile: options.browser.writeFile as never,\n createPage: options.browser.createPage as never,\n createContext: options.browser.createContext as never,\n });\n const runtime = await createRuntime({\n ...bindingsAdapter.runtimeOptions,\n cwd: options.cwd,\n memoryLimitMB: options.memoryLimitMB,\n executionTimeout: options.executionTimeout,\n testEnvironment: options.features?.tests ?? false,\n playwright: {\n handler: playwrightHandler,\n console: options.browser.captureConsole ?? false,\n onEvent: options.browser.onEvent,\n },\n });\n runtimeId = runtime.id;\n const scriptRuntime = createScriptRuntimeAdapter(runtime, diagnostics, {\n onBeforeDispose: (reason) => bindingsAdapter.abort(reason),\n });\n\n return {\n async run(code, runOptions) {\n await scriptRuntime.eval(code, {\n filename: runOptions?.filename,\n executionTimeout: runOptions?.timeoutMs,\n });\n\n if (runOptions?.asTestSuite && (await runtime.testEnvironment.hasTests())) {\n return {\n tests: await runtime.testEnvironment.runTests(runOptions.timeoutMs),\n };\n }\n\n return {};\n },\n async diagnostics(): Promise<BrowserRuntimeDiagnostics> {\n const collectedData = runtime.playwright.getCollectedData();\n return {\n ...(await scriptRuntime.diagnostics()),\n browserConsoleLogs: collectedData.browserConsoleLogs.length,\n networkRequests: collectedData.networkRequests.length,\n networkResponses: collectedData.networkResponses.length,\n pageErrors: collectedData.pageErrors.length,\n requestFailures: collectedData.requestFailures.length,\n collectedData,\n };\n },\n dispose: async (disposeOptions) => {\n await scriptRuntime.dispose(disposeOptions);\n },\n };\n}\n"
|
|
6
|
-
],
|
|
7
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAiB,IAAjB;AACyC,IAAzC;AAEyC,IAAzC;AAC6C,IAA7C;AAC2C,IAA3C;AAGA,SAAS,WAAW,CAAC,UAA0B;AAAA,EAC7C,MAAM,MAAM,yBAAK,QAAQ,QAAQ,EAAE,YAAY;AAAA,EAC/C,MAAM,YAAoC;AAAA,IACxC,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,EACX;AAAA,EACA,OAAO,UAAU,QAAQ;AAAA;AAG3B,eAAsB,2BAA2B,CAC/C,eACA,SACyB;AAAA,EACzB,MAAM,cAAc,4CAAyB;AAAA,EAC7C,IAAI,YAAY,QAAQ,OAAO;AAAA,EAC/B,MAAM,kBAAkB,qDACtB,QAAQ,UACR,MAAM,WACN,WACF;AAAA,EACA,MAAM,WAAW,QAAQ,QAAQ,WAC7B,OAAO,aAAqB;AAAA,IAC1B,MAAM,SAAS,MAAM,QAAQ,QAAQ,SAAU,QAAQ;AAAA,IACvD,OAAO;AAAA,MACL,MAAM,yBAAK,SAAS,QAAQ;AAAA,MAC5B,UAAU,YAAY,QAAQ;AAAA,MAC9B;AAAA,IACF;AAAA,MAEF;AAAA,EACJ,MAAM,oBAAoB,uCAAyB,QAAQ,QAAQ,MAAe;AAAA,IAChF;AAAA,IACA,WAAW,QAAQ,QAAQ;AAAA,IAC3B,YAAY,QAAQ,QAAQ;AAAA,IAC5B,eAAe,QAAQ,QAAQ;AAAA,EACjC,CAAC;AAAA,EACD,MAAM,UAAU,MAAM,cAAc;AAAA,OAC/B,gBAAgB;AAAA,IACnB,KAAK,QAAQ;AAAA,IACb,eAAe,QAAQ;AAAA,IACvB,kBAAkB,QAAQ;AAAA,IAC1B,iBAAiB,QAAQ,UAAU,SAAS;AAAA,IAC5C,YAAY;AAAA,MACV,SAAS;AAAA,MACT,SAAS,QAAQ,QAAQ,kBAAkB;AAAA,MAC3C,SAAS,QAAQ,QAAQ;AAAA,IAC3B;AAAA,EACF,CAAC;AAAA,EACD,YAAY,QAAQ;AAAA,EACpB,MAAM,gBAAgB,iDAA2B,SAAS,aAAa;AAAA,IACrE,iBAAiB,CAAC,WAAW,gBAAgB,MAAM,MAAM;AAAA,EAC3D,CAAC;AAAA,EAED,OAAO;AAAA,SACC,IAAG,CAAC,MAAM,YAAY;AAAA,MAC1B,MAAM,cAAc,KAAK,MAAM;AAAA,QAC7B,UAAU,YAAY;AAAA,QACtB,kBAAkB,YAAY;AAAA,MAChC,CAAC;AAAA,MAED,IAAI,YAAY,eAAgB,MAAM,QAAQ,gBAAgB,SAAS,GAAI;AAAA,QACzE,OAAO;AAAA,UACL,OAAO,MAAM,QAAQ,gBAAgB,SAAS,WAAW,SAAS;AAAA,QACpE;AAAA,MACF;AAAA,MAEA,OAAO,CAAC;AAAA;AAAA,SAEJ,YAAW,GAAuC;AAAA,MACtD,MAAM,gBAAgB,QAAQ,WAAW,iBAAiB;AAAA,MAC1D,OAAO;AAAA,WACD,MAAM,cAAc,YAAY;AAAA,QACpC,oBAAoB,cAAc,mBAAmB;AAAA,QACrD,iBAAiB,cAAc,gBAAgB;AAAA,QAC/C,kBAAkB,cAAc,iBAAiB;AAAA,QACjD,YAAY,cAAc,WAAW;AAAA,QACrC,iBAAiB,cAAc,gBAAgB;AAAA,QAC/C;AAAA,MACF;AAAA;AAAA,IAEF,SAAS,OAAO,mBAAmB;AAAA,MACjC,MAAM,cAAc,QAAQ,cAAc;AAAA;AAAA,EAE9C;AAAA;",
|
|
8
|
-
"debugId": "4537F7187943AFB464756E2164756E21",
|
|
9
|
-
"names": []
|
|
10
|
-
}
|
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
// src/browser/browser-runtime.ts
|
|
2
|
-
import path from "node:path";
|
|
3
|
-
import { defaultPlaywrightHandler } from "../internal/playwright/client.mjs";
|
|
4
|
-
import { createRuntimeDiagnostics } from "../bridge/diagnostics.mjs";
|
|
5
|
-
import { createRuntimeBindingsAdapter } from "../bridge/runtime-bindings.mjs";
|
|
6
|
-
import { createScriptRuntimeAdapter } from "../runtime/script-runtime.mjs";
|
|
7
|
-
function getMimeType(filePath) {
|
|
8
|
-
const ext = path.extname(filePath).toLowerCase();
|
|
9
|
-
const mimeTypes = {
|
|
10
|
-
".png": "image/png",
|
|
11
|
-
".jpg": "image/jpeg",
|
|
12
|
-
".jpeg": "image/jpeg",
|
|
13
|
-
".gif": "image/gif",
|
|
14
|
-
".webp": "image/webp",
|
|
15
|
-
".svg": "image/svg+xml",
|
|
16
|
-
".pdf": "application/pdf",
|
|
17
|
-
".txt": "text/plain",
|
|
18
|
-
".html": "text/html",
|
|
19
|
-
".css": "text/css",
|
|
20
|
-
".js": "application/javascript",
|
|
21
|
-
".json": "application/json"
|
|
22
|
-
};
|
|
23
|
-
return mimeTypes[ext] ?? "application/octet-stream";
|
|
24
|
-
}
|
|
25
|
-
async function createBrowserRuntimeAdapter(createRuntime, options) {
|
|
26
|
-
const diagnostics = createRuntimeDiagnostics();
|
|
27
|
-
let runtimeId = options.key ?? "browser-runtime";
|
|
28
|
-
const bindingsAdapter = createRuntimeBindingsAdapter(options.bindings, () => runtimeId, diagnostics);
|
|
29
|
-
const readFile = options.browser.readFile ? async (filePath) => {
|
|
30
|
-
const buffer = await options.browser.readFile(filePath);
|
|
31
|
-
return {
|
|
32
|
-
name: path.basename(filePath),
|
|
33
|
-
mimeType: getMimeType(filePath),
|
|
34
|
-
buffer
|
|
35
|
-
};
|
|
36
|
-
} : undefined;
|
|
37
|
-
const playwrightHandler = defaultPlaywrightHandler(options.browser.page, {
|
|
38
|
-
readFile,
|
|
39
|
-
writeFile: options.browser.writeFile,
|
|
40
|
-
createPage: options.browser.createPage,
|
|
41
|
-
createContext: options.browser.createContext
|
|
42
|
-
});
|
|
43
|
-
const runtime = await createRuntime({
|
|
44
|
-
...bindingsAdapter.runtimeOptions,
|
|
45
|
-
cwd: options.cwd,
|
|
46
|
-
memoryLimitMB: options.memoryLimitMB,
|
|
47
|
-
executionTimeout: options.executionTimeout,
|
|
48
|
-
testEnvironment: options.features?.tests ?? false,
|
|
49
|
-
playwright: {
|
|
50
|
-
handler: playwrightHandler,
|
|
51
|
-
console: options.browser.captureConsole ?? false,
|
|
52
|
-
onEvent: options.browser.onEvent
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
runtimeId = runtime.id;
|
|
56
|
-
const scriptRuntime = createScriptRuntimeAdapter(runtime, diagnostics, {
|
|
57
|
-
onBeforeDispose: (reason) => bindingsAdapter.abort(reason)
|
|
58
|
-
});
|
|
59
|
-
return {
|
|
60
|
-
async run(code, runOptions) {
|
|
61
|
-
await scriptRuntime.eval(code, {
|
|
62
|
-
filename: runOptions?.filename,
|
|
63
|
-
executionTimeout: runOptions?.timeoutMs
|
|
64
|
-
});
|
|
65
|
-
if (runOptions?.asTestSuite && await runtime.testEnvironment.hasTests()) {
|
|
66
|
-
return {
|
|
67
|
-
tests: await runtime.testEnvironment.runTests(runOptions.timeoutMs)
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
return {};
|
|
71
|
-
},
|
|
72
|
-
async diagnostics() {
|
|
73
|
-
const collectedData = runtime.playwright.getCollectedData();
|
|
74
|
-
return {
|
|
75
|
-
...await scriptRuntime.diagnostics(),
|
|
76
|
-
browserConsoleLogs: collectedData.browserConsoleLogs.length,
|
|
77
|
-
networkRequests: collectedData.networkRequests.length,
|
|
78
|
-
networkResponses: collectedData.networkResponses.length,
|
|
79
|
-
pageErrors: collectedData.pageErrors.length,
|
|
80
|
-
requestFailures: collectedData.requestFailures.length,
|
|
81
|
-
collectedData
|
|
82
|
-
};
|
|
83
|
-
},
|
|
84
|
-
dispose: async (disposeOptions) => {
|
|
85
|
-
await scriptRuntime.dispose(disposeOptions);
|
|
86
|
-
}
|
|
87
|
-
};
|
|
88
|
-
}
|
|
89
|
-
export {
|
|
90
|
-
createBrowserRuntimeAdapter
|
|
91
|
-
};
|
|
92
|
-
|
|
93
|
-
//# debugId=A4C0E177FD1B1FD164756E2164756E21
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/browser/browser-runtime.ts"],
|
|
4
|
-
"sourcesContent": [
|
|
5
|
-
"import path from \"node:path\";\nimport { defaultPlaywrightHandler } from \"../internal/playwright/client.mjs\";\nimport type { RemoteRuntime, RuntimeOptions } from \"../internal/client/index.mjs\";\nimport { createRuntimeDiagnostics } from \"../bridge/diagnostics.mjs\";\nimport { createRuntimeBindingsAdapter } from \"../bridge/runtime-bindings.mjs\";\nimport { createScriptRuntimeAdapter } from \"../runtime/script-runtime.mjs\";\nimport type { BrowserRuntime, BrowserRuntimeDiagnostics, CreateBrowserRuntimeOptions } from \"../types.mjs\";\n\nfunction getMimeType(filePath: string): string {\n const ext = path.extname(filePath).toLowerCase();\n const mimeTypes: Record<string, string> = {\n \".png\": \"image/png\",\n \".jpg\": \"image/jpeg\",\n \".jpeg\": \"image/jpeg\",\n \".gif\": \"image/gif\",\n \".webp\": \"image/webp\",\n \".svg\": \"image/svg+xml\",\n \".pdf\": \"application/pdf\",\n \".txt\": \"text/plain\",\n \".html\": \"text/html\",\n \".css\": \"text/css\",\n \".js\": \"application/javascript\",\n \".json\": \"application/json\",\n };\n return mimeTypes[ext] ?? \"application/octet-stream\";\n}\n\nexport async function createBrowserRuntimeAdapter(\n createRuntime: (options: RuntimeOptions) => Promise<RemoteRuntime>,\n options: CreateBrowserRuntimeOptions,\n): Promise<BrowserRuntime> {\n const diagnostics = createRuntimeDiagnostics();\n let runtimeId = options.key ?? \"browser-runtime\";\n const bindingsAdapter = createRuntimeBindingsAdapter(\n options.bindings,\n () => runtimeId,\n diagnostics,\n );\n const readFile = options.browser.readFile\n ? async (filePath: string) => {\n const buffer = await options.browser.readFile!(filePath);\n return {\n name: path.basename(filePath),\n mimeType: getMimeType(filePath),\n buffer,\n };\n }\n : undefined;\n const playwrightHandler = defaultPlaywrightHandler(options.browser.page as never, {\n readFile,\n writeFile: options.browser.writeFile as never,\n createPage: options.browser.createPage as never,\n createContext: options.browser.createContext as never,\n });\n const runtime = await createRuntime({\n ...bindingsAdapter.runtimeOptions,\n cwd: options.cwd,\n memoryLimitMB: options.memoryLimitMB,\n executionTimeout: options.executionTimeout,\n testEnvironment: options.features?.tests ?? false,\n playwright: {\n handler: playwrightHandler,\n console: options.browser.captureConsole ?? false,\n onEvent: options.browser.onEvent,\n },\n });\n runtimeId = runtime.id;\n const scriptRuntime = createScriptRuntimeAdapter(runtime, diagnostics, {\n onBeforeDispose: (reason) => bindingsAdapter.abort(reason),\n });\n\n return {\n async run(code, runOptions) {\n await scriptRuntime.eval(code, {\n filename: runOptions?.filename,\n executionTimeout: runOptions?.timeoutMs,\n });\n\n if (runOptions?.asTestSuite && (await runtime.testEnvironment.hasTests())) {\n return {\n tests: await runtime.testEnvironment.runTests(runOptions.timeoutMs),\n };\n }\n\n return {};\n },\n async diagnostics(): Promise<BrowserRuntimeDiagnostics> {\n const collectedData = runtime.playwright.getCollectedData();\n return {\n ...(await scriptRuntime.diagnostics()),\n browserConsoleLogs: collectedData.browserConsoleLogs.length,\n networkRequests: collectedData.networkRequests.length,\n networkResponses: collectedData.networkResponses.length,\n pageErrors: collectedData.pageErrors.length,\n requestFailures: collectedData.requestFailures.length,\n collectedData,\n };\n },\n dispose: async (disposeOptions) => {\n await scriptRuntime.dispose(disposeOptions);\n },\n };\n}\n"
|
|
6
|
-
],
|
|
7
|
-
"mappings": ";AAAA;AACA;AAEA;AACA;AACA;AAGA,SAAS,WAAW,CAAC,UAA0B;AAAA,EAC7C,MAAM,MAAM,KAAK,QAAQ,QAAQ,EAAE,YAAY;AAAA,EAC/C,MAAM,YAAoC;AAAA,IACxC,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,SAAS;AAAA,EACX;AAAA,EACA,OAAO,UAAU,QAAQ;AAAA;AAG3B,eAAsB,2BAA2B,CAC/C,eACA,SACyB;AAAA,EACzB,MAAM,cAAc,yBAAyB;AAAA,EAC7C,IAAI,YAAY,QAAQ,OAAO;AAAA,EAC/B,MAAM,kBAAkB,6BACtB,QAAQ,UACR,MAAM,WACN,WACF;AAAA,EACA,MAAM,WAAW,QAAQ,QAAQ,WAC7B,OAAO,aAAqB;AAAA,IAC1B,MAAM,SAAS,MAAM,QAAQ,QAAQ,SAAU,QAAQ;AAAA,IACvD,OAAO;AAAA,MACL,MAAM,KAAK,SAAS,QAAQ;AAAA,MAC5B,UAAU,YAAY,QAAQ;AAAA,MAC9B;AAAA,IACF;AAAA,MAEF;AAAA,EACJ,MAAM,oBAAoB,yBAAyB,QAAQ,QAAQ,MAAe;AAAA,IAChF;AAAA,IACA,WAAW,QAAQ,QAAQ;AAAA,IAC3B,YAAY,QAAQ,QAAQ;AAAA,IAC5B,eAAe,QAAQ,QAAQ;AAAA,EACjC,CAAC;AAAA,EACD,MAAM,UAAU,MAAM,cAAc;AAAA,OAC/B,gBAAgB;AAAA,IACnB,KAAK,QAAQ;AAAA,IACb,eAAe,QAAQ;AAAA,IACvB,kBAAkB,QAAQ;AAAA,IAC1B,iBAAiB,QAAQ,UAAU,SAAS;AAAA,IAC5C,YAAY;AAAA,MACV,SAAS;AAAA,MACT,SAAS,QAAQ,QAAQ,kBAAkB;AAAA,MAC3C,SAAS,QAAQ,QAAQ;AAAA,IAC3B;AAAA,EACF,CAAC;AAAA,EACD,YAAY,QAAQ;AAAA,EACpB,MAAM,gBAAgB,2BAA2B,SAAS,aAAa;AAAA,IACrE,iBAAiB,CAAC,WAAW,gBAAgB,MAAM,MAAM;AAAA,EAC3D,CAAC;AAAA,EAED,OAAO;AAAA,SACC,IAAG,CAAC,MAAM,YAAY;AAAA,MAC1B,MAAM,cAAc,KAAK,MAAM;AAAA,QAC7B,UAAU,YAAY;AAAA,QACtB,kBAAkB,YAAY;AAAA,MAChC,CAAC;AAAA,MAED,IAAI,YAAY,eAAgB,MAAM,QAAQ,gBAAgB,SAAS,GAAI;AAAA,QACzE,OAAO;AAAA,UACL,OAAO,MAAM,QAAQ,gBAAgB,SAAS,WAAW,SAAS;AAAA,QACpE;AAAA,MACF;AAAA,MAEA,OAAO,CAAC;AAAA;AAAA,SAEJ,YAAW,GAAuC;AAAA,MACtD,MAAM,gBAAgB,QAAQ,WAAW,iBAAiB;AAAA,MAC1D,OAAO;AAAA,WACD,MAAM,cAAc,YAAY;AAAA,QACpC,oBAAoB,cAAc,mBAAmB;AAAA,QACrD,iBAAiB,cAAc,gBAAgB;AAAA,QAC/C,kBAAkB,cAAc,iBAAiB;AAAA,QACjD,YAAY,cAAc,WAAW;AAAA,QACrC,iBAAiB,cAAc,gBAAgB;AAAA,QAC/C;AAAA,MACF;AAAA;AAAA,IAEF,SAAS,OAAO,mBAAmB;AAAA,MACjC,MAAM,cAAc,QAAQ,cAAc;AAAA;AAAA,EAE9C;AAAA;",
|
|
8
|
-
"debugId": "A4C0E177FD1B1FD164756E2164756E21",
|
|
9
|
-
"names": []
|
|
10
|
-
}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import type { RemoteRuntime, RuntimeOptions } from "../internal/client/index.ts";
|
|
2
|
-
import type { BrowserRuntime, CreateBrowserRuntimeOptions } from "../types.ts";
|
|
3
|
-
export declare function createBrowserRuntimeAdapter(createRuntime: (options: RuntimeOptions) => Promise<RemoteRuntime>, options: CreateBrowserRuntimeOptions): Promise<BrowserRuntime>;
|