@ricsam/isolate 0.1.8 → 0.1.11
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 +172 -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 +203 -51
- package/dist/cjs/bridge/runtime-bindings.cjs.map +3 -3
- package/dist/cjs/bridge/sandbox-isolate.cjs +365 -0
- package/dist/cjs/bridge/sandbox-isolate.cjs.map +10 -0
- package/dist/cjs/host/create-isolate-host.cjs +51 -25
- package/dist/cjs/host/create-isolate-host.cjs.map +3 -3
- package/dist/cjs/host/nested-host-controller.cjs +311 -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 +91 -0
- package/dist/cjs/internal/browser-source.cjs.map +10 -0
- package/dist/cjs/internal/client/connection.cjs +152 -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 +129 -4
- package/dist/cjs/internal/daemon/connection.cjs.map +3 -3
- package/dist/cjs/internal/encoding/index.cjs +27 -4
- package/dist/cjs/internal/encoding/index.cjs.map +3 -3
- package/dist/cjs/internal/fetch/index.cjs +2 -7
- package/dist/cjs/internal/fetch/index.cjs.map +3 -3
- package/dist/cjs/internal/module-loader/bundle.cjs +128 -1
- package/dist/cjs/internal/module-loader/bundle.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.map +2 -2
- 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 +186 -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/modules/index.cjs +6 -1
- package/dist/cjs/modules/index.cjs.map +3 -3
- package/dist/cjs/package.json +1 -1
- 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 +206 -51
- package/dist/mjs/bridge/runtime-bindings.mjs.map +3 -3
- package/dist/mjs/bridge/sandbox-isolate.mjs +325 -0
- package/dist/mjs/bridge/sandbox-isolate.mjs.map +10 -0
- package/dist/mjs/host/create-isolate-host.mjs +53 -25
- package/dist/mjs/host/create-isolate-host.mjs.map +3 -3
- package/dist/mjs/host/nested-host-controller.mjs +275 -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 +51 -0
- package/dist/mjs/internal/browser-source.mjs.map +10 -0
- package/dist/mjs/internal/client/connection.mjs +154 -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 +129 -4
- package/dist/mjs/internal/daemon/connection.mjs.map +3 -3
- package/dist/mjs/internal/encoding/index.mjs +27 -4
- package/dist/mjs/internal/encoding/index.mjs.map +3 -3
- package/dist/mjs/internal/fetch/index.mjs +2 -7
- package/dist/mjs/internal/fetch/index.mjs.map +3 -3
- package/dist/mjs/internal/module-loader/bundle.mjs +129 -2
- package/dist/mjs/internal/module-loader/bundle.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.map +2 -2
- 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 +186 -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/modules/index.mjs +6 -1
- package/dist/mjs/modules/index.mjs.map +3 -3
- package/dist/mjs/package.json +1 -1
- 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 +15 -0
- package/dist/types/host/nested-host-controller.d.ts +11 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/internal/browser-source.d.ts +11 -0
- package/dist/types/internal/client/types.d.ts +5 -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 +25 -1
- 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/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 +33 -33
- package/package.json +3 -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
|
@@ -100,6 +100,7 @@ class ModuleResolverBuilder {
|
|
|
100
100
|
return this;
|
|
101
101
|
}
|
|
102
102
|
async resolve(specifier, importer, context) {
|
|
103
|
+
let nodeModulesError;
|
|
103
104
|
const explicit = this.virtualEntries.get(specifier);
|
|
104
105
|
if (explicit) {
|
|
105
106
|
const raw = typeof explicit.source === "function" ? await explicit.source() : await explicit.source;
|
|
@@ -140,6 +141,7 @@ class ModuleResolverBuilder {
|
|
|
140
141
|
try {
|
|
141
142
|
return await this.getNodeModulesLoader()(specifier, importer);
|
|
142
143
|
} catch (error) {
|
|
144
|
+
nodeModulesError = error;
|
|
143
145
|
if (!this.fallbackLoader) {
|
|
144
146
|
throw error;
|
|
145
147
|
}
|
|
@@ -151,6 +153,9 @@ class ModuleResolverBuilder {
|
|
|
151
153
|
return normalized;
|
|
152
154
|
}
|
|
153
155
|
}
|
|
156
|
+
if (nodeModulesError) {
|
|
157
|
+
throw nodeModulesError;
|
|
158
|
+
}
|
|
154
159
|
throw new Error(`Unable to resolve module: ${specifier}`);
|
|
155
160
|
}
|
|
156
161
|
getNodeModulesLoader() {
|
|
@@ -164,4 +169,4 @@ function createModuleResolver() {
|
|
|
164
169
|
return new ModuleResolverBuilder;
|
|
165
170
|
}
|
|
166
171
|
|
|
167
|
-
//# debugId=
|
|
172
|
+
//# debugId=F4C37D8B8A6E243564756E2164756E21
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/modules/index.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import fs from \"node:fs\";\nimport path from \"node:path\";\nimport { defaultModuleLoader } from \"../internal/module-loader/index.cjs\";\nimport { normalizeExplicitModuleResult } from \"../bridge/legacy-adapters.cjs\";\nimport type { HostCallContext, ModuleResolveResult, ModuleResolver, ModuleResolverFallback, ModuleResolverSourceLoader, ModuleSource } from \"../types.cjs\";\n\nclass ModuleResolverBuilder implements ModuleResolver {\n private readonly nodeModuleMappings: Array<{ from: string; to: string }> = [];\n private readonly virtualEntries = new Map<string, { source: ModuleResolveResult | (() => ModuleResolveResult); options?: Partial<ModuleSource> }>();\n private readonly virtualFiles = new Map<string, { filePath: string; options?: Partial<ModuleSource> }>();\n private readonly sourceTrees: Array<{ prefix: string; loader: ModuleResolverSourceLoader }> = [];\n private fallbackLoader?: ModuleResolverFallback;\n private nodeModulesLoader?: ReturnType<typeof defaultModuleLoader>;\n\n mountNodeModules(virtualMount: string, hostPath: string): ModuleResolver {\n this.nodeModuleMappings.push({ from: hostPath, to: virtualMount });\n this.nodeModulesLoader = undefined;\n return this;\n }\n\n virtual(specifier: string, source: ModuleResolveResult | (() => ModuleResolveResult), options?: Partial<ModuleSource>): ModuleResolver {\n this.virtualEntries.set(specifier, { source, options });\n return this;\n }\n\n virtualFile(specifier: string, filePath: string, options?: Partial<ModuleSource>): ModuleResolver {\n this.virtualFiles.set(specifier, { filePath, options });\n return this;\n }\n\n sourceTree(prefix: string, loader: ModuleResolverSourceLoader): ModuleResolver {\n this.sourceTrees.push({ prefix, loader });\n return this;\n }\n\n fallback(loader: ModuleResolverFallback): ModuleResolver {\n this.fallbackLoader = loader;\n return this;\n }\n\n async resolve(specifier: string, importer: { path: string; resolveDir: string }, context: HostCallContext): Promise<ModuleSource> {\n const explicit = this.virtualEntries.get(specifier);\n if (explicit) {\n const raw = typeof explicit.source === \"function\" ? await explicit.source() : await explicit.source;\n const normalized = await normalizeExplicitModuleResult(specifier, raw, importer.resolveDir);\n if (!normalized) {\n throw new Error(`Virtual module ${specifier} returned no source.`);\n }\n return {\n ...normalized,\n ...explicit.options,\n };\n }\n\n const virtualFile = this.virtualFiles.get(specifier);\n if (virtualFile) {\n const code = fs.readFileSync(virtualFile.filePath, \"utf-8\");\n const fallback = await normalizeExplicitModuleResult(\n specifier,\n {\n code,\n filename: virtualFile.options?.filename ?? path.basename(virtualFile.filePath),\n resolveDir: virtualFile.options?.resolveDir ?? path.posix.dirname(specifier.startsWith(\"/\") ? specifier : `/${specifier}`),\n static: virtualFile.options?.static,\n },\n importer.resolveDir,\n );\n if (!fallback) {\n throw new Error(`Virtual file module ${specifier} returned no source.`);\n }\n return fallback;\n }\n\n for (const sourceTree of this.sourceTrees) {\n if (!specifier.startsWith(sourceTree.prefix)) {\n continue;\n }\n const relativePath = specifier.slice(sourceTree.prefix.length);\n const normalized = await normalizeExplicitModuleResult(specifier, sourceTree.loader(relativePath, context), importer.resolveDir);\n if (normalized) {\n return normalized;\n }\n }\n\n if (this.nodeModuleMappings.length > 0) {\n try {\n return await this.getNodeModulesLoader()(specifier, importer);\n } catch (error) {\n if (!this.fallbackLoader) {\n throw error;\n }\n }\n }\n\n if (this.fallbackLoader) {\n const normalized = await normalizeExplicitModuleResult(specifier, this.fallbackLoader(specifier, importer, context), importer.resolveDir);\n if (normalized) {\n return normalized;\n }\n }\n\n throw new Error(`Unable to resolve module: ${specifier}`);\n }\n\n private getNodeModulesLoader(): ReturnType<typeof defaultModuleLoader> {\n if (!this.nodeModulesLoader) {\n this.nodeModulesLoader = defaultModuleLoader(...this.nodeModuleMappings);\n }\n return this.nodeModulesLoader;\n }\n}\n\nexport function createModuleResolver(): ModuleResolver {\n return new ModuleResolverBuilder();\n}\n"
|
|
5
|
+
"import fs from \"node:fs\";\nimport path from \"node:path\";\nimport { defaultModuleLoader } from \"../internal/module-loader/index.cjs\";\nimport { normalizeExplicitModuleResult } from \"../bridge/legacy-adapters.cjs\";\nimport type { HostCallContext, ModuleResolveResult, ModuleResolver, ModuleResolverFallback, ModuleResolverSourceLoader, ModuleSource } from \"../types.cjs\";\n\nclass ModuleResolverBuilder implements ModuleResolver {\n private readonly nodeModuleMappings: Array<{ from: string; to: string }> = [];\n private readonly virtualEntries = new Map<string, { source: ModuleResolveResult | (() => ModuleResolveResult); options?: Partial<ModuleSource> }>();\n private readonly virtualFiles = new Map<string, { filePath: string; options?: Partial<ModuleSource> }>();\n private readonly sourceTrees: Array<{ prefix: string; loader: ModuleResolverSourceLoader }> = [];\n private fallbackLoader?: ModuleResolverFallback;\n private nodeModulesLoader?: ReturnType<typeof defaultModuleLoader>;\n\n mountNodeModules(virtualMount: string, hostPath: string): ModuleResolver {\n this.nodeModuleMappings.push({ from: hostPath, to: virtualMount });\n this.nodeModulesLoader = undefined;\n return this;\n }\n\n virtual(specifier: string, source: ModuleResolveResult | (() => ModuleResolveResult), options?: Partial<ModuleSource>): ModuleResolver {\n this.virtualEntries.set(specifier, { source, options });\n return this;\n }\n\n virtualFile(specifier: string, filePath: string, options?: Partial<ModuleSource>): ModuleResolver {\n this.virtualFiles.set(specifier, { filePath, options });\n return this;\n }\n\n sourceTree(prefix: string, loader: ModuleResolverSourceLoader): ModuleResolver {\n this.sourceTrees.push({ prefix, loader });\n return this;\n }\n\n fallback(loader: ModuleResolverFallback): ModuleResolver {\n this.fallbackLoader = loader;\n return this;\n }\n\n async resolve(specifier: string, importer: { path: string; resolveDir: string }, context: HostCallContext): Promise<ModuleSource> {\n let nodeModulesError: unknown;\n\n const explicit = this.virtualEntries.get(specifier);\n if (explicit) {\n const raw = typeof explicit.source === \"function\" ? await explicit.source() : await explicit.source;\n const normalized = await normalizeExplicitModuleResult(specifier, raw, importer.resolveDir);\n if (!normalized) {\n throw new Error(`Virtual module ${specifier} returned no source.`);\n }\n return {\n ...normalized,\n ...explicit.options,\n };\n }\n\n const virtualFile = this.virtualFiles.get(specifier);\n if (virtualFile) {\n const code = fs.readFileSync(virtualFile.filePath, \"utf-8\");\n const fallback = await normalizeExplicitModuleResult(\n specifier,\n {\n code,\n filename: virtualFile.options?.filename ?? path.basename(virtualFile.filePath),\n resolveDir: virtualFile.options?.resolveDir ?? path.posix.dirname(specifier.startsWith(\"/\") ? specifier : `/${specifier}`),\n static: virtualFile.options?.static,\n },\n importer.resolveDir,\n );\n if (!fallback) {\n throw new Error(`Virtual file module ${specifier} returned no source.`);\n }\n return fallback;\n }\n\n for (const sourceTree of this.sourceTrees) {\n if (!specifier.startsWith(sourceTree.prefix)) {\n continue;\n }\n const relativePath = specifier.slice(sourceTree.prefix.length);\n const normalized = await normalizeExplicitModuleResult(specifier, sourceTree.loader(relativePath, context), importer.resolveDir);\n if (normalized) {\n return normalized;\n }\n }\n\n if (this.nodeModuleMappings.length > 0) {\n try {\n return await this.getNodeModulesLoader()(specifier, importer);\n } catch (error) {\n nodeModulesError = error;\n if (!this.fallbackLoader) {\n throw error;\n }\n }\n }\n\n if (this.fallbackLoader) {\n const normalized = await normalizeExplicitModuleResult(specifier, this.fallbackLoader(specifier, importer, context), importer.resolveDir);\n if (normalized) {\n return normalized;\n }\n }\n\n if (nodeModulesError) {\n throw nodeModulesError;\n }\n\n throw new Error(`Unable to resolve module: ${specifier}`);\n }\n\n private getNodeModulesLoader(): ReturnType<typeof defaultModuleLoader> {\n if (!this.nodeModulesLoader) {\n this.nodeModulesLoader = defaultModuleLoader(...this.nodeModuleMappings);\n }\n return this.nodeModulesLoader;\n }\n}\n\nexport function createModuleResolver(): ModuleResolver {\n return new ModuleResolverBuilder();\n}\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": "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",
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": "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",
|
|
8
|
+
"debugId": "F4C37D8B8A6E243564756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
package/dist/cjs/package.json
CHANGED
|
@@ -42,6 +42,7 @@ __export(exports_script_runtime, {
|
|
|
42
42
|
createScriptRuntimeAdapter: () => createScriptRuntimeAdapter
|
|
43
43
|
});
|
|
44
44
|
module.exports = __toCommonJS(exports_script_runtime);
|
|
45
|
+
var import_diagnostics = require("../bridge/diagnostics.cjs");
|
|
45
46
|
var import_client = require("../internal/client/index.cjs");
|
|
46
47
|
function createScriptRuntimeAdapter(runtime, diagnostics, options) {
|
|
47
48
|
return {
|
|
@@ -74,24 +75,25 @@ function createScriptRuntimeAdapter(runtime, diagnostics, options) {
|
|
|
74
75
|
diagnostics.lifecycleState = "idle";
|
|
75
76
|
}
|
|
76
77
|
},
|
|
77
|
-
diagnostics: async () =>
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
78
|
+
diagnostics: async () => {
|
|
79
|
+
const runtimeDiagnostics = {
|
|
80
|
+
...diagnostics,
|
|
81
|
+
reused: runtime.reused
|
|
82
|
+
};
|
|
83
|
+
const collectedData = options?.hasBrowser ? runtime.playwright.getCollectedData() : undefined;
|
|
84
|
+
const trackedResources = options?.hasBrowser ? runtime.playwright.getTrackedResources() : undefined;
|
|
85
|
+
return {
|
|
86
|
+
runtime: runtimeDiagnostics,
|
|
87
|
+
browser: collectedData ? import_diagnostics.createBrowserDiagnostics(collectedData, trackedResources) : undefined
|
|
88
|
+
};
|
|
89
|
+
},
|
|
81
90
|
events: {
|
|
82
91
|
on: (event, handler) => runtime.on(event, handler),
|
|
83
92
|
emit: async (event, payload) => {
|
|
84
93
|
runtime.emit(event, payload);
|
|
85
94
|
}
|
|
86
|
-
},
|
|
87
|
-
tests: {
|
|
88
|
-
run: async (testOptions) => await runtime.testEnvironment.runTests(testOptions?.timeoutMs),
|
|
89
|
-
hasTests: async () => await runtime.testEnvironment.hasTests(),
|
|
90
|
-
reset: async () => {
|
|
91
|
-
await runtime.testEnvironment.reset();
|
|
92
|
-
}
|
|
93
95
|
}
|
|
94
96
|
};
|
|
95
97
|
}
|
|
96
98
|
|
|
97
|
-
//# debugId=
|
|
99
|
+
//# debugId=2443EB52C7D4BB8864756E2164756E21
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/runtime/script-runtime.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import type
|
|
5
|
+
"import {\n createBrowserDiagnostics,\n type MutableRuntimeDiagnostics,\n} from \"../bridge/diagnostics.cjs\";\nimport { isBenignDisposeError, type RemoteRuntime } from \"../internal/client/index.cjs\";\nimport type { ScriptRuntime } from \"../types.cjs\";\n\nexport function createScriptRuntimeAdapter(\n runtime: RemoteRuntime,\n diagnostics: MutableRuntimeDiagnostics,\n options?: {\n hasBrowser?: boolean;\n onBeforeDispose?: (reason?: string) => void;\n },\n): ScriptRuntime {\n return {\n async eval(code, evalOptions) {\n const normalizedOptions = typeof evalOptions === \"string\"\n ? { filename: evalOptions }\n : evalOptions;\n diagnostics.lifecycleState = \"active\";\n try {\n await runtime.eval(code, {\n filename: normalizedOptions?.filename,\n executionTimeout: normalizedOptions?.executionTimeout,\n });\n } catch (error) {\n diagnostics.lastError = error instanceof Error ? error.message : String(error);\n throw error;\n } finally {\n diagnostics.lifecycleState = \"idle\";\n }\n },\n async dispose(disposeOptions) {\n diagnostics.lifecycleState = \"disposing\";\n try {\n options?.onBeforeDispose?.(disposeOptions?.reason);\n await runtime.dispose(disposeOptions);\n } catch (error) {\n if (!isBenignDisposeError(error)) {\n diagnostics.lastError = error instanceof Error ? error.message : String(error);\n throw error;\n }\n } finally {\n diagnostics.lifecycleState = \"idle\";\n }\n },\n diagnostics: async () => {\n const runtimeDiagnostics = {\n ...diagnostics,\n reused: runtime.reused,\n };\n const collectedData = options?.hasBrowser\n ? runtime.playwright.getCollectedData()\n : undefined;\n const trackedResources = options?.hasBrowser\n ? runtime.playwright.getTrackedResources()\n : undefined;\n return {\n runtime: runtimeDiagnostics,\n browser: collectedData\n ? createBrowserDiagnostics(collectedData, trackedResources)\n : undefined,\n };\n },\n events: {\n on: (event, handler) => runtime.on(event, handler),\n emit: async (event, payload) => {\n runtime.emit(event, payload);\n },\n },\n };\n}\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGO,IAHP;AAIyD,IAAzD;AAGO,SAAS,0BAA0B,CACxC,SACA,aACA,SAIe;AAAA,EACf,OAAO;AAAA,SACC,KAAI,CAAC,MAAM,aAAa;AAAA,MAC5B,MAAM,oBAAoB,OAAO,gBAAgB,WAC7C,EAAE,UAAU,YAAY,IACxB;AAAA,MACJ,YAAY,iBAAiB;AAAA,MAC7B,IAAI;AAAA,QACF,MAAM,QAAQ,KAAK,MAAM;AAAA,UACvB,UAAU,mBAAmB;AAAA,UAC7B,kBAAkB,mBAAmB;AAAA,QACvC,CAAC;AAAA,QACD,OAAO,OAAO;AAAA,QACd,YAAY,YAAY,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,QAC7E,MAAM;AAAA,gBACN;AAAA,QACA,YAAY,iBAAiB;AAAA;AAAA;AAAA,SAG3B,QAAO,CAAC,gBAAgB;AAAA,MAC5B,YAAY,iBAAiB;AAAA,MAC7B,IAAI;AAAA,QACF,SAAS,kBAAkB,gBAAgB,MAAM;AAAA,QACjD,MAAM,QAAQ,QAAQ,cAAc;AAAA,QACpC,OAAO,OAAO;AAAA,QACd,IAAI,CAAC,mCAAqB,KAAK,GAAG;AAAA,UAChC,YAAY,YAAY,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,UAC7E,MAAM;AAAA,QACR;AAAA,gBACA;AAAA,QACA,YAAY,iBAAiB;AAAA;AAAA;AAAA,IAGjC,aAAa,YAAY;AAAA,MACvB,MAAM,qBAAqB;AAAA,WACtB;AAAA,QACH,QAAQ,QAAQ;AAAA,MAClB;AAAA,MACA,MAAM,gBAAgB,SAAS,aAC3B,QAAQ,WAAW,iBAAiB,IACpC;AAAA,MACJ,MAAM,mBAAmB,SAAS,aAC9B,QAAQ,WAAW,oBAAoB,IACvC;AAAA,MACJ,OAAO;AAAA,QACL,SAAS;AAAA,QACT,SAAS,gBACL,4CAAyB,eAAe,gBAAgB,IACxD;AAAA,MACN;AAAA;AAAA,IAEF,QAAQ;AAAA,MACN,IAAI,CAAC,OAAO,YAAY,QAAQ,GAAG,OAAO,OAAO;AAAA,MACjD,MAAM,OAAO,OAAO,YAAY;AAAA,QAC9B,QAAQ,KAAK,OAAO,OAAO;AAAA;AAAA,IAE/B;AAAA,EACF;AAAA;",
|
|
8
|
+
"debugId": "2443EB52C7D4BB8864756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
function __accessProp(key) {
|
|
6
|
+
return this[key];
|
|
7
|
+
}
|
|
8
|
+
var __toCommonJS = (from) => {
|
|
9
|
+
var entry = (__moduleCache ??= new WeakMap).get(from), desc;
|
|
10
|
+
if (entry)
|
|
11
|
+
return entry;
|
|
12
|
+
entry = __defProp({}, "__esModule", { value: true });
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (var key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(entry, key))
|
|
16
|
+
__defProp(entry, key, {
|
|
17
|
+
get: __accessProp.bind(from, key),
|
|
18
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
__moduleCache.set(from, entry);
|
|
22
|
+
return entry;
|
|
23
|
+
};
|
|
24
|
+
var __moduleCache;
|
|
25
|
+
var __returnValue = (v) => v;
|
|
26
|
+
function __exportSetter(name, newValue) {
|
|
27
|
+
this[name] = __returnValue.bind(null, newValue);
|
|
28
|
+
}
|
|
29
|
+
var __export = (target, all) => {
|
|
30
|
+
for (var name in all)
|
|
31
|
+
__defProp(target, name, {
|
|
32
|
+
get: all[name],
|
|
33
|
+
enumerable: true,
|
|
34
|
+
configurable: true,
|
|
35
|
+
set: __exportSetter.bind(all, name)
|
|
36
|
+
});
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
// src/runtime/test-runtime.ts
|
|
40
|
+
var exports_test_runtime = {};
|
|
41
|
+
__export(exports_test_runtime, {
|
|
42
|
+
createTestRuntimeAdapter: () => createTestRuntimeAdapter
|
|
43
|
+
});
|
|
44
|
+
module.exports = __toCommonJS(exports_test_runtime);
|
|
45
|
+
var import_diagnostics = require("../bridge/diagnostics.cjs");
|
|
46
|
+
var import_runtime_bindings = require("../bridge/runtime-bindings.cjs");
|
|
47
|
+
var import_client = require("../internal/client/index.cjs");
|
|
48
|
+
async function createTestRuntimeAdapter(createRuntime, options, adapterOptions) {
|
|
49
|
+
const diagnostics = import_diagnostics.createRuntimeDiagnostics();
|
|
50
|
+
let runtimeId = options.key ?? "test-runtime";
|
|
51
|
+
const bindingsAdapter = import_runtime_bindings.createRuntimeBindingsAdapter(options.bindings, () => runtimeId, diagnostics, adapterOptions);
|
|
52
|
+
const runtime = await createRuntime({
|
|
53
|
+
...bindingsAdapter.runtimeOptions,
|
|
54
|
+
cwd: options.cwd,
|
|
55
|
+
memoryLimitMB: options.memoryLimitMB,
|
|
56
|
+
executionTimeout: options.executionTimeout,
|
|
57
|
+
testEnvironment: true
|
|
58
|
+
});
|
|
59
|
+
runtimeId = runtime.id;
|
|
60
|
+
let lastRun;
|
|
61
|
+
return {
|
|
62
|
+
async run(code, runOptions) {
|
|
63
|
+
diagnostics.lifecycleState = "active";
|
|
64
|
+
try {
|
|
65
|
+
await runtime.testEnvironment.reset();
|
|
66
|
+
await runtime.eval(code, {
|
|
67
|
+
filename: runOptions?.filename,
|
|
68
|
+
executionTimeout: runOptions?.timeoutMs
|
|
69
|
+
});
|
|
70
|
+
lastRun = await runtime.testEnvironment.runTests(runOptions?.timeoutMs);
|
|
71
|
+
return lastRun;
|
|
72
|
+
} catch (error) {
|
|
73
|
+
diagnostics.lastError = error instanceof Error ? error.message : String(error);
|
|
74
|
+
throw error;
|
|
75
|
+
} finally {
|
|
76
|
+
diagnostics.lifecycleState = "idle";
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
async diagnostics() {
|
|
80
|
+
const runtimeDiagnostics = {
|
|
81
|
+
...diagnostics,
|
|
82
|
+
reused: runtime.reused
|
|
83
|
+
};
|
|
84
|
+
const collectedData = options.bindings.browser ? runtime.playwright.getCollectedData() : undefined;
|
|
85
|
+
const trackedResources = options.bindings.browser ? runtime.playwright.getTrackedResources() : undefined;
|
|
86
|
+
return {
|
|
87
|
+
runtime: runtimeDiagnostics,
|
|
88
|
+
browser: collectedData ? import_diagnostics.createBrowserDiagnostics(collectedData, trackedResources) : undefined,
|
|
89
|
+
test: {
|
|
90
|
+
enabled: true,
|
|
91
|
+
registeredTests: await runtime.testEnvironment.getTestCount(),
|
|
92
|
+
lastRun
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
},
|
|
96
|
+
async dispose(disposeOptions) {
|
|
97
|
+
diagnostics.lifecycleState = "disposing";
|
|
98
|
+
try {
|
|
99
|
+
bindingsAdapter.abort(disposeOptions?.reason);
|
|
100
|
+
await runtime.dispose(disposeOptions);
|
|
101
|
+
} catch (error) {
|
|
102
|
+
if (!import_client.isBenignDisposeError(error)) {
|
|
103
|
+
diagnostics.lastError = error instanceof Error ? error.message : String(error);
|
|
104
|
+
throw error;
|
|
105
|
+
}
|
|
106
|
+
} finally {
|
|
107
|
+
diagnostics.lifecycleState = "idle";
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
//# debugId=C4A9F9798611162364756E2164756E21
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/runtime/test-runtime.ts"],
|
|
4
|
+
"sourcesContent": [
|
|
5
|
+
"import {\n createBrowserDiagnostics,\n createRuntimeDiagnostics,\n} from \"../bridge/diagnostics.cjs\";\nimport {\n createRuntimeBindingsAdapter,\n type RuntimeBindingsAdapterOptions,\n} from \"../bridge/runtime-bindings.cjs\";\nimport type { RemoteRuntime, RuntimeOptions } from \"../internal/client/index.cjs\";\nimport { isBenignDisposeError } from \"../internal/client/index.cjs\";\nimport type {\n CreateTestRuntimeOptions,\n RunResults,\n TestRuntime,\n} from \"../types.cjs\";\n\nexport async function createTestRuntimeAdapter(\n createRuntime: (options: RuntimeOptions) => Promise<RemoteRuntime>,\n options: CreateTestRuntimeOptions,\n adapterOptions?: RuntimeBindingsAdapterOptions,\n): Promise<TestRuntime> {\n const diagnostics = createRuntimeDiagnostics();\n let runtimeId = options.key ?? \"test-runtime\";\n const bindingsAdapter = createRuntimeBindingsAdapter(\n options.bindings,\n () => runtimeId,\n diagnostics,\n adapterOptions,\n );\n const runtime = await createRuntime({\n ...bindingsAdapter.runtimeOptions,\n cwd: options.cwd,\n memoryLimitMB: options.memoryLimitMB,\n executionTimeout: options.executionTimeout,\n testEnvironment: true,\n });\n runtimeId = runtime.id;\n\n let lastRun: RunResults | undefined;\n\n return {\n async run(code, runOptions) {\n diagnostics.lifecycleState = \"active\";\n try {\n await runtime.testEnvironment.reset();\n await runtime.eval(code, {\n filename: runOptions?.filename,\n executionTimeout: runOptions?.timeoutMs,\n });\n lastRun = await runtime.testEnvironment.runTests(runOptions?.timeoutMs);\n return lastRun;\n } catch (error) {\n diagnostics.lastError = error instanceof Error ? error.message : String(error);\n throw error;\n } finally {\n diagnostics.lifecycleState = \"idle\";\n }\n },\n async diagnostics() {\n const runtimeDiagnostics = {\n ...diagnostics,\n reused: runtime.reused,\n };\n const collectedData = options.bindings.browser\n ? runtime.playwright.getCollectedData()\n : undefined;\n const trackedResources = options.bindings.browser\n ? runtime.playwright.getTrackedResources()\n : undefined;\n return {\n runtime: runtimeDiagnostics,\n browser: collectedData\n ? createBrowserDiagnostics(collectedData, trackedResources)\n : undefined,\n test: {\n enabled: true as const,\n registeredTests: await runtime.testEnvironment.getTestCount(),\n lastRun,\n },\n };\n },\n async dispose(disposeOptions) {\n diagnostics.lifecycleState = \"disposing\";\n try {\n bindingsAdapter.abort(disposeOptions?.reason);\n await runtime.dispose(disposeOptions);\n } catch (error) {\n if (!isBenignDisposeError(error)) {\n diagnostics.lastError = error instanceof Error ? error.message : String(error);\n throw error;\n }\n } finally {\n diagnostics.lifecycleState = \"idle\";\n }\n },\n };\n}\n"
|
|
6
|
+
],
|
|
7
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGO,IAHP;AAOO,IAHP;AAKqC,IAArC;AAOA,eAAsB,wBAAwB,CAC5C,eACA,SACA,gBACsB;AAAA,EACtB,MAAM,cAAc,4CAAyB;AAAA,EAC7C,IAAI,YAAY,QAAQ,OAAO;AAAA,EAC/B,MAAM,kBAAkB,qDACtB,QAAQ,UACR,MAAM,WACN,aACA,cACF;AAAA,EACA,MAAM,UAAU,MAAM,cAAc;AAAA,OAC/B,gBAAgB;AAAA,IACnB,KAAK,QAAQ;AAAA,IACb,eAAe,QAAQ;AAAA,IACvB,kBAAkB,QAAQ;AAAA,IAC1B,iBAAiB;AAAA,EACnB,CAAC;AAAA,EACD,YAAY,QAAQ;AAAA,EAEpB,IAAI;AAAA,EAEJ,OAAO;AAAA,SACC,IAAG,CAAC,MAAM,YAAY;AAAA,MAC1B,YAAY,iBAAiB;AAAA,MAC7B,IAAI;AAAA,QACF,MAAM,QAAQ,gBAAgB,MAAM;AAAA,QACpC,MAAM,QAAQ,KAAK,MAAM;AAAA,UACvB,UAAU,YAAY;AAAA,UACtB,kBAAkB,YAAY;AAAA,QAChC,CAAC;AAAA,QACD,UAAU,MAAM,QAAQ,gBAAgB,SAAS,YAAY,SAAS;AAAA,QACtE,OAAO;AAAA,QACP,OAAO,OAAO;AAAA,QACd,YAAY,YAAY,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,QAC7E,MAAM;AAAA,gBACN;AAAA,QACA,YAAY,iBAAiB;AAAA;AAAA;AAAA,SAG3B,YAAW,GAAG;AAAA,MAClB,MAAM,qBAAqB;AAAA,WACtB;AAAA,QACH,QAAQ,QAAQ;AAAA,MAClB;AAAA,MACA,MAAM,gBAAgB,QAAQ,SAAS,UACnC,QAAQ,WAAW,iBAAiB,IACpC;AAAA,MACJ,MAAM,mBAAmB,QAAQ,SAAS,UACtC,QAAQ,WAAW,oBAAoB,IACvC;AAAA,MACJ,OAAO;AAAA,QACL,SAAS;AAAA,QACT,SAAS,gBACL,4CAAyB,eAAe,gBAAgB,IACxD;AAAA,QACJ,MAAM;AAAA,UACJ,SAAS;AAAA,UACT,iBAAiB,MAAM,QAAQ,gBAAgB,aAAa;AAAA,UAC5D;AAAA,QACF;AAAA,MACF;AAAA;AAAA,SAEI,QAAO,CAAC,gBAAgB;AAAA,MAC5B,YAAY,iBAAiB;AAAA,MAC7B,IAAI;AAAA,QACF,gBAAgB,MAAM,gBAAgB,MAAM;AAAA,QAC5C,MAAM,QAAQ,QAAQ,cAAc;AAAA,QACpC,OAAO,OAAO;AAAA,QACd,IAAI,CAAC,mCAAqB,KAAK,GAAG;AAAA,UAChC,YAAY,YAAY,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,UAC7E,MAAM;AAAA,QACR;AAAA,gBACA;AAAA,QACA,YAAY,iBAAiB;AAAA;AAAA;AAAA,EAGnC;AAAA;",
|
|
8
|
+
"debugId": "C4A9F9798611162364756E2164756E21",
|
|
9
|
+
"names": []
|
|
10
|
+
}
|
|
@@ -46,14 +46,14 @@ var import_server = require("../internal/server/index.cjs");
|
|
|
46
46
|
var import_diagnostics = require("../bridge/diagnostics.cjs");
|
|
47
47
|
var import_runtime_bindings = require("../bridge/runtime-bindings.cjs");
|
|
48
48
|
var import_request_context = require("../bridge/request-context.cjs");
|
|
49
|
-
async function createAppServerAdapter(getConnection, options) {
|
|
49
|
+
async function createAppServerAdapter(getConnection, options, adapterOptions) {
|
|
50
50
|
const diagnostics = import_diagnostics.createRuntimeDiagnostics();
|
|
51
51
|
const server = new import_server.IsolateServer({
|
|
52
52
|
namespaceId: options.key,
|
|
53
53
|
getConnection
|
|
54
54
|
});
|
|
55
55
|
let runtimeId = options.key;
|
|
56
|
-
const bindingsAdapter = import_runtime_bindings.createRuntimeBindingsAdapter(options.bindings, () => runtimeId, diagnostics);
|
|
56
|
+
const bindingsAdapter = import_runtime_bindings.createRuntimeBindingsAdapter(options.bindings, () => runtimeId, diagnostics, adapterOptions);
|
|
57
57
|
await server.start({
|
|
58
58
|
entry: options.entry,
|
|
59
59
|
entryFilename: options.entryFilename,
|
|
@@ -61,8 +61,7 @@ async function createAppServerAdapter(getConnection, options) {
|
|
|
61
61
|
...bindingsAdapter.runtimeOptions,
|
|
62
62
|
cwd: options.cwd,
|
|
63
63
|
memoryLimitMB: options.memoryLimitMB,
|
|
64
|
-
executionTimeout: options.executionTimeout
|
|
65
|
-
testEnvironment: options.features?.tests ?? false
|
|
64
|
+
executionTimeout: options.executionTimeout
|
|
66
65
|
},
|
|
67
66
|
onWebSocketCommand: (command) => {
|
|
68
67
|
options.webSockets?.onCommand?.(command);
|
|
@@ -150,11 +149,19 @@ async function createAppServerAdapter(getConnection, options) {
|
|
|
150
149
|
diagnostics.lifecycleState = "idle";
|
|
151
150
|
}
|
|
152
151
|
},
|
|
153
|
-
diagnostics: async () =>
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
152
|
+
diagnostics: async () => {
|
|
153
|
+
const runtimeDiagnostics = {
|
|
154
|
+
...diagnostics,
|
|
155
|
+
reused: server.getRuntime()?.reused
|
|
156
|
+
};
|
|
157
|
+
const collectedData = options.bindings.browser && server.getRuntime() ? server.getRuntime().playwright.getCollectedData() : undefined;
|
|
158
|
+
const trackedResources = options.bindings.browser && server.getRuntime() ? server.getRuntime().playwright.getTrackedResources() : undefined;
|
|
159
|
+
return {
|
|
160
|
+
runtime: runtimeDiagnostics,
|
|
161
|
+
browser: collectedData ? import_diagnostics.createBrowserDiagnostics(collectedData, trackedResources) : undefined
|
|
162
|
+
};
|
|
163
|
+
}
|
|
157
164
|
};
|
|
158
165
|
}
|
|
159
166
|
|
|
160
|
-
//# debugId=
|
|
167
|
+
//# debugId=0D5491EB1041EFC364756E2164756E21
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/server/app-server.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import { IsolateServer } from \"../internal/server/index.cjs\";\nimport type { DaemonConnection } from \"../internal/client/index.cjs\";\nimport {
|
|
5
|
+
"import { IsolateServer } from \"../internal/server/index.cjs\";\nimport type { DaemonConnection } from \"../internal/client/index.cjs\";\nimport {\n createBrowserDiagnostics,\n createRuntimeDiagnostics,\n} from \"../bridge/diagnostics.cjs\";\nimport {\n createRuntimeBindingsAdapter,\n type RuntimeBindingsAdapterOptions,\n} from \"../bridge/runtime-bindings.cjs\";\nimport { withRequestContext } from \"../bridge/request-context.cjs\";\nimport type { AppServer, CreateAppServerOptions, RequestResult } from \"../types.cjs\";\n\nexport async function createAppServerAdapter(\n getConnection: () => Promise<DaemonConnection>,\n options: CreateAppServerOptions,\n adapterOptions?: RuntimeBindingsAdapterOptions,\n): Promise<AppServer> {\n const diagnostics = createRuntimeDiagnostics();\n const server = new IsolateServer({\n namespaceId: options.key,\n getConnection,\n });\n\n let runtimeId = options.key;\n const bindingsAdapter = createRuntimeBindingsAdapter(\n options.bindings,\n () => runtimeId,\n diagnostics,\n adapterOptions,\n );\n await server.start({\n entry: options.entry,\n entryFilename: options.entryFilename,\n runtimeOptions: {\n ...bindingsAdapter.runtimeOptions,\n cwd: options.cwd,\n memoryLimitMB: options.memoryLimitMB,\n executionTimeout: options.executionTimeout,\n },\n onWebSocketCommand: (command) => {\n options.webSockets?.onCommand?.(command);\n },\n });\n runtimeId = server.getRuntime()?.id ?? options.key;\n\n async function handleRequest(request: Request, handleOptions?: { requestId?: string; signal?: AbortSignal; metadata?: Record<string, string> }): Promise<RequestResult> {\n diagnostics.activeRequests += 1;\n diagnostics.lifecycleState = \"active\";\n try {\n return await withRequestContext(\n {\n requestId: handleOptions?.requestId,\n metadata: handleOptions?.metadata,\n signal: handleOptions?.signal ?? request.signal,\n },\n async () => {\n const response = await server.fetch.dispatchRequest(request, {\n signal: handleOptions?.signal,\n requestId: handleOptions?.requestId,\n metadata: handleOptions?.metadata,\n });\n const upgradeRequest = await server.fetch.getUpgradeRequest();\n if (upgradeRequest?.requested) {\n return {\n type: \"websocket\",\n upgradeData: {\n requested: upgradeRequest.requested,\n connectionId: upgradeRequest.connectionId,\n },\n };\n }\n\n return {\n type: \"response\",\n response,\n };\n },\n );\n } catch (error) {\n diagnostics.lastError = error instanceof Error ? error.message : String(error);\n throw error;\n } finally {\n diagnostics.activeRequests -= 1;\n diagnostics.lifecycleState = \"idle\";\n }\n }\n\n return {\n handle: handleRequest,\n ws: {\n open: async (connectionId) => {\n await server.fetch.dispatchWebSocketOpen(connectionId);\n },\n message: async (connectionId, data) => {\n await server.fetch.dispatchWebSocketMessage(connectionId, data);\n },\n close: async (connectionId, code, reason) => {\n await server.fetch.dispatchWebSocketClose(connectionId, code, reason);\n },\n error: async (connectionId, error) => {\n await server.fetch.dispatchWebSocketError(connectionId, error);\n },\n },\n reload: async (reason) => {\n diagnostics.lifecycleState = \"reloading\";\n try {\n bindingsAdapter.reset(reason ? `AppServer.reload(${reason})` : \"AppServer.reload()\");\n await server.reload(reason);\n runtimeId = server.getRuntime()?.id ?? options.key;\n } finally {\n diagnostics.lifecycleState = \"idle\";\n }\n },\n dispose: async (disposeOptions) => {\n diagnostics.lifecycleState = \"disposing\";\n try {\n if (disposeOptions?.hard) {\n const hardDisposeReason = disposeOptions?.reason\n ? `AppServer.dispose(hard): ${disposeOptions.reason}`\n : \"AppServer.dispose(hard)\";\n bindingsAdapter.reset(hardDisposeReason);\n await server.reload(hardDisposeReason);\n bindingsAdapter.abort(hardDisposeReason);\n await server.close(hardDisposeReason);\n return;\n }\n const disposeReason = disposeOptions?.reason\n ? `AppServer.dispose(): ${disposeOptions.reason}`\n : \"AppServer.dispose()\";\n bindingsAdapter.abort(disposeReason);\n await server.close(disposeReason);\n } finally {\n diagnostics.lifecycleState = \"idle\";\n }\n },\n diagnostics: async () => {\n const runtimeDiagnostics = {\n ...diagnostics,\n reused: server.getRuntime()?.reused,\n };\n const collectedData = options.bindings.browser && server.getRuntime()\n ? server.getRuntime()!.playwright.getCollectedData()\n : undefined;\n const trackedResources = options.bindings.browser && server.getRuntime()\n ? server.getRuntime()!.playwright.getTrackedResources()\n : undefined;\n return {\n runtime: runtimeDiagnostics,\n browser: collectedData\n ? createBrowserDiagnostics(collectedData, trackedResources)\n : undefined,\n };\n },\n };\n}\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAA8B,IAA9B;
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": "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",
|
|
8
|
+
"debugId": "0D5491EB1041EFC364756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
|
@@ -68,6 +68,7 @@ function getTypeProfile(input) {
|
|
|
68
68
|
const capabilities = unique([...PROFILE_DEFAULTS[profile] ?? PROFILE_DEFAULTS.backend, ...input?.capabilities ?? []]);
|
|
69
69
|
const include = unique([
|
|
70
70
|
"core",
|
|
71
|
+
"sandboxIsolate",
|
|
71
72
|
...capabilities.flatMap((capability) => CAPABILITY_MAP[capability])
|
|
72
73
|
]);
|
|
73
74
|
return {
|
|
@@ -93,4 +94,4 @@ function typecheck(request) {
|
|
|
93
94
|
}
|
|
94
95
|
var formatTypecheckErrors = import_typecheck.formatTypecheckErrors;
|
|
95
96
|
|
|
96
|
-
//# debugId=
|
|
97
|
+
//# debugId=2BAE6265EC164B2164756E2164756E21
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/typecheck/index.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import { TYPE_DEFINITIONS, formatTypecheckErrors as formatLegacyTypecheckErrors, typecheckIsolateCode } from \"../internal/typecheck/index.cjs\";\nimport type { TypeCapability, TypeProfile, TypeProfileName, TypecheckRequest } from \"../types.cjs\";\n\ntype IncludedType
|
|
5
|
+
"import { TYPE_DEFINITIONS, formatTypecheckErrors as formatLegacyTypecheckErrors, typecheckIsolateCode } from \"../internal/typecheck/index.cjs\";\nimport type { TypeCapability, TypeProfile, TypeProfileName, TypecheckRequest } from \"../types.cjs\";\n\ntype IncludedType =\n | \"core\"\n | \"sandboxIsolate\"\n | \"fetch\"\n | \"fs\"\n | \"console\"\n | \"encoding\"\n | \"timers\"\n | \"testEnvironment\"\n | \"playwright\";\n\nconst CAPABILITY_MAP: Record<TypeCapability, IncludedType[]> = {\n fetch: [\"fetch\"],\n files: [\"fs\"],\n tests: [\"testEnvironment\"],\n browser: [\"playwright\"],\n tools: [],\n console: [\"console\"],\n encoding: [\"encoding\"],\n timers: [\"timers\"],\n};\n\nconst PROFILE_DEFAULTS: Record<TypeProfileName, TypeCapability[]> = {\n backend: [\"console\", \"encoding\", \"fetch\", \"files\", \"timers\"],\n agent: [\"console\", \"encoding\", \"fetch\", \"files\", \"timers\"],\n \"browser-test\": [\"console\", \"encoding\", \"fetch\", \"tests\", \"browser\", \"timers\"],\n};\n\nfunction unique<T>(values: T[]): T[] {\n return [...new Set(values)];\n}\n\nexport function getTypeProfile(input?: {\n profile?: TypeProfileName;\n capabilities?: TypeCapability[];\n}): TypeProfile {\n const profile = input?.profile ?? \"backend\";\n const capabilities = unique([...(PROFILE_DEFAULTS[profile] ?? PROFILE_DEFAULTS.backend), ...(input?.capabilities ?? [])]);\n const include: IncludedType[] = unique([\n \"core\",\n \"sandboxIsolate\",\n ...capabilities.flatMap((capability) => CAPABILITY_MAP[capability]),\n ]) as IncludedType[];\n\n return {\n profile,\n capabilities,\n include,\n files: include\n .map((key) => ({\n name: `isolate-${key}.d.ts`,\n content: TYPE_DEFINITIONS[key as keyof typeof TYPE_DEFINITIONS],\n }))\n .filter((entry) => Boolean(entry.content)) as Array<{ name: string; content: string }>,\n };\n}\n\nexport function typecheck(request: TypecheckRequest) {\n const profile = getTypeProfile({\n profile: request.profile,\n capabilities: request.capabilities,\n });\n\n return typecheckIsolateCode(request.code, {\n include: profile.include,\n libraryTypes: request.libraryTypes,\n compilerOptions: request.compilerOptions as never,\n });\n}\n\nexport const formatTypecheckErrors = formatLegacyTypecheckErrors;\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAA6G,IAA7G;
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAA6G,IAA7G;AAcA,IAAM,iBAAyD;AAAA,EAC7D,OAAO,CAAC,OAAO;AAAA,EACf,OAAO,CAAC,IAAI;AAAA,EACZ,OAAO,CAAC,iBAAiB;AAAA,EACzB,SAAS,CAAC,YAAY;AAAA,EACtB,OAAO,CAAC;AAAA,EACR,SAAS,CAAC,SAAS;AAAA,EACnB,UAAU,CAAC,UAAU;AAAA,EACrB,QAAQ,CAAC,QAAQ;AACnB;AAEA,IAAM,mBAA8D;AAAA,EAClE,SAAS,CAAC,WAAW,YAAY,SAAS,SAAS,QAAQ;AAAA,EAC3D,OAAO,CAAC,WAAW,YAAY,SAAS,SAAS,QAAQ;AAAA,EACzD,gBAAgB,CAAC,WAAW,YAAY,SAAS,SAAS,WAAW,QAAQ;AAC/E;AAEA,SAAS,MAAS,CAAC,QAAkB;AAAA,EACnC,OAAO,CAAC,GAAG,IAAI,IAAI,MAAM,CAAC;AAAA;AAGrB,SAAS,cAAc,CAAC,OAGf;AAAA,EACd,MAAM,UAAU,OAAO,WAAW;AAAA,EAClC,MAAM,eAAe,OAAO,CAAC,GAAI,iBAAiB,YAAY,iBAAiB,SAAU,GAAI,OAAO,gBAAgB,CAAC,CAAE,CAAC;AAAA,EACxH,MAAM,UAA0B,OAAO;AAAA,IACrC;AAAA,IACA;AAAA,IACA,GAAG,aAAa,QAAQ,CAAC,eAAe,eAAe,WAAW;AAAA,EACpE,CAAC;AAAA,EAED,OAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA,OAAO,QACJ,IAAI,CAAC,SAAS;AAAA,MACb,MAAM,WAAW;AAAA,MACjB,SAAS,kCAAiB;AAAA,IAC5B,EAAE,EACD,OAAO,CAAC,UAAU,QAAQ,MAAM,OAAO,CAAC;AAAA,EAC7C;AAAA;AAGK,SAAS,SAAS,CAAC,SAA2B;AAAA,EACnD,MAAM,UAAU,eAAe;AAAA,IAC7B,SAAS,QAAQ;AAAA,IACjB,cAAc,QAAQ;AAAA,EACxB,CAAC;AAAA,EAED,OAAO,sCAAqB,QAAQ,MAAM;AAAA,IACxC,SAAS,QAAQ;AAAA,IACjB,cAAc,QAAQ;AAAA,IACtB,iBAAiB,QAAQ;AAAA,EAC3B,CAAC;AAAA;AAGI,IAAM,wBAAwB;",
|
|
8
|
+
"debugId": "2BAE6265EC164B2164756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
|
@@ -11,8 +11,43 @@ function createRuntimeDiagnostics() {
|
|
|
11
11
|
lifecycleState: "idle"
|
|
12
12
|
};
|
|
13
13
|
}
|
|
14
|
+
function createBrowserDiagnostics(collectedData, trackedResources) {
|
|
15
|
+
const contextIds = new Set;
|
|
16
|
+
const pageIds = new Set;
|
|
17
|
+
for (const entry of collectedData.browserConsoleLogs) {
|
|
18
|
+
contextIds.add(entry.contextId);
|
|
19
|
+
pageIds.add(entry.pageId);
|
|
20
|
+
}
|
|
21
|
+
for (const entry of collectedData.pageErrors) {
|
|
22
|
+
contextIds.add(entry.contextId);
|
|
23
|
+
pageIds.add(entry.pageId);
|
|
24
|
+
}
|
|
25
|
+
for (const entry of collectedData.networkRequests) {
|
|
26
|
+
contextIds.add(entry.contextId);
|
|
27
|
+
pageIds.add(entry.pageId);
|
|
28
|
+
}
|
|
29
|
+
for (const entry of collectedData.networkResponses) {
|
|
30
|
+
contextIds.add(entry.contextId);
|
|
31
|
+
pageIds.add(entry.pageId);
|
|
32
|
+
}
|
|
33
|
+
for (const entry of collectedData.requestFailures) {
|
|
34
|
+
contextIds.add(entry.contextId);
|
|
35
|
+
pageIds.add(entry.pageId);
|
|
36
|
+
}
|
|
37
|
+
return {
|
|
38
|
+
contexts: trackedResources?.contexts.length ?? contextIds.size,
|
|
39
|
+
pages: trackedResources?.pages.length ?? pageIds.size,
|
|
40
|
+
browserConsoleLogs: collectedData.browserConsoleLogs.length,
|
|
41
|
+
networkRequests: collectedData.networkRequests.length,
|
|
42
|
+
networkResponses: collectedData.networkResponses.length,
|
|
43
|
+
pageErrors: collectedData.pageErrors.length,
|
|
44
|
+
requestFailures: collectedData.requestFailures.length,
|
|
45
|
+
collectedData
|
|
46
|
+
};
|
|
47
|
+
}
|
|
14
48
|
export {
|
|
15
|
-
createRuntimeDiagnostics
|
|
49
|
+
createRuntimeDiagnostics,
|
|
50
|
+
createBrowserDiagnostics
|
|
16
51
|
};
|
|
17
52
|
|
|
18
|
-
//# debugId=
|
|
53
|
+
//# debugId=2E700B524D0E914464756E2164756E21
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/bridge/diagnostics.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"import type { RuntimeDiagnostics } from \"../types.mjs\";\n\nexport interface MutableRuntimeDiagnostics extends RuntimeDiagnostics {\n activeRequests: number;\n activeResources: number;\n pendingFiles: number;\n pendingFetches: number;\n pendingModules: number;\n pendingTools: number;\n streamCount: number;\n lifecycleState: \"idle\" | \"active\" | \"reloading\" | \"disposing\";\n}\n\nexport function createRuntimeDiagnostics(): MutableRuntimeDiagnostics {\n return {\n activeRequests: 0,\n activeResources: 0,\n pendingFiles: 0,\n pendingFetches: 0,\n pendingModules: 0,\n pendingTools: 0,\n streamCount: 0,\n lifecycleState: \"idle\",\n };\n}\n"
|
|
5
|
+
"import type { CollectedData } from \"../internal/client/index.mjs\";\nimport type { BrowserDiagnostics, RuntimeDiagnostics } from \"../types.mjs\";\n\nexport interface MutableRuntimeDiagnostics extends RuntimeDiagnostics {\n activeRequests: number;\n activeResources: number;\n pendingFiles: number;\n pendingFetches: number;\n pendingModules: number;\n pendingTools: number;\n streamCount: number;\n lifecycleState: \"idle\" | \"active\" | \"reloading\" | \"disposing\";\n}\n\nexport function createRuntimeDiagnostics(): MutableRuntimeDiagnostics {\n return {\n activeRequests: 0,\n activeResources: 0,\n pendingFiles: 0,\n pendingFetches: 0,\n pendingModules: 0,\n pendingTools: 0,\n streamCount: 0,\n lifecycleState: \"idle\",\n };\n}\n\nexport function createBrowserDiagnostics(\n collectedData: CollectedData,\n trackedResources?: { contexts: string[]; pages: string[] },\n): BrowserDiagnostics {\n const contextIds = new Set<string>();\n const pageIds = new Set<string>();\n for (const entry of collectedData.browserConsoleLogs) {\n contextIds.add(entry.contextId);\n pageIds.add(entry.pageId);\n }\n for (const entry of collectedData.pageErrors) {\n contextIds.add(entry.contextId);\n pageIds.add(entry.pageId);\n }\n for (const entry of collectedData.networkRequests) {\n contextIds.add(entry.contextId);\n pageIds.add(entry.pageId);\n }\n for (const entry of collectedData.networkResponses) {\n contextIds.add(entry.contextId);\n pageIds.add(entry.pageId);\n }\n for (const entry of collectedData.requestFailures) {\n contextIds.add(entry.contextId);\n pageIds.add(entry.pageId);\n }\n\n return {\n contexts: trackedResources?.contexts.length ?? contextIds.size,\n pages: trackedResources?.pages.length ?? pageIds.size,\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"
|
|
6
6
|
],
|
|
7
|
-
"mappings": ";
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": ";AAcO,SAAS,wBAAwB,GAA8B;AAAA,EACpE,OAAO;AAAA,IACL,gBAAgB;AAAA,IAChB,iBAAiB;AAAA,IACjB,cAAc;AAAA,IACd,gBAAgB;AAAA,IAChB,gBAAgB;AAAA,IAChB,cAAc;AAAA,IACd,aAAa;AAAA,IACb,gBAAgB;AAAA,EAClB;AAAA;AAGK,SAAS,wBAAwB,CACtC,eACA,kBACoB;AAAA,EACpB,MAAM,aAAa,IAAI;AAAA,EACvB,MAAM,UAAU,IAAI;AAAA,EACpB,WAAW,SAAS,cAAc,oBAAoB;AAAA,IACpD,WAAW,IAAI,MAAM,SAAS;AAAA,IAC9B,QAAQ,IAAI,MAAM,MAAM;AAAA,EAC1B;AAAA,EACA,WAAW,SAAS,cAAc,YAAY;AAAA,IAC5C,WAAW,IAAI,MAAM,SAAS;AAAA,IAC9B,QAAQ,IAAI,MAAM,MAAM;AAAA,EAC1B;AAAA,EACA,WAAW,SAAS,cAAc,iBAAiB;AAAA,IACjD,WAAW,IAAI,MAAM,SAAS;AAAA,IAC9B,QAAQ,IAAI,MAAM,MAAM;AAAA,EAC1B;AAAA,EACA,WAAW,SAAS,cAAc,kBAAkB;AAAA,IAClD,WAAW,IAAI,MAAM,SAAS;AAAA,IAC9B,QAAQ,IAAI,MAAM,MAAM;AAAA,EAC1B;AAAA,EACA,WAAW,SAAS,cAAc,iBAAiB;AAAA,IACjD,WAAW,IAAI,MAAM,SAAS;AAAA,IAC9B,QAAQ,IAAI,MAAM,MAAM;AAAA,EAC1B;AAAA,EAEA,OAAO;AAAA,IACL,UAAU,kBAAkB,SAAS,UAAU,WAAW;AAAA,IAC1D,OAAO,kBAAkB,MAAM,UAAU,QAAQ;AAAA,IACjD,oBAAoB,cAAc,mBAAmB;AAAA,IACrD,iBAAiB,cAAc,gBAAgB;AAAA,IAC/C,kBAAkB,cAAc,iBAAiB;AAAA,IACjD,YAAY,cAAc,WAAW;AAAA,IACrC,iBAAiB,cAAc,gBAAgB;AAAA,IAC/C;AAAA,EACF;AAAA;",
|
|
8
|
+
"debugId": "2E700B524D0E914464756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|