@ricsam/isolate 0.1.11 → 0.1.13
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 +101 -1
- package/dist/cjs/bridge/runtime-bindings.cjs +36 -8
- package/dist/cjs/bridge/runtime-bindings.cjs.map +3 -3
- package/dist/cjs/bridge/sandbox-isolate.cjs +157 -2
- package/dist/cjs/bridge/sandbox-isolate.cjs.map +3 -3
- package/dist/cjs/host/create-isolate-host.cjs +85 -1
- package/dist/cjs/host/create-isolate-host.cjs.map +3 -3
- package/dist/cjs/host/nested-host-controller.cjs +95 -5
- package/dist/cjs/host/nested-host-controller.cjs.map +3 -3
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/internal/browser-source.cjs +16 -5
- package/dist/cjs/internal/browser-source.cjs.map +3 -3
- package/dist/cjs/internal/client/connection.cjs +20 -9
- package/dist/cjs/internal/client/connection.cjs.map +3 -3
- package/dist/cjs/internal/daemon/connection.cjs +28 -10
- package/dist/cjs/internal/daemon/connection.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 +5 -2
- package/dist/cjs/internal/runtime/index.cjs.map +3 -3
- package/dist/cjs/internal/typecheck/isolate-types.cjs +82 -1
- package/dist/cjs/internal/typecheck/isolate-types.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 +184 -0
- package/dist/cjs/runtime/namespaced-runtime.cjs.map +10 -0
- package/dist/cjs/runtime/test-event-subscriptions.cjs +76 -0
- package/dist/cjs/runtime/test-event-subscriptions.cjs.map +10 -0
- package/dist/cjs/runtime/test-runtime.cjs +26 -3
- package/dist/cjs/runtime/test-runtime.cjs.map +3 -3
- package/dist/mjs/bridge/runtime-bindings.mjs +36 -8
- package/dist/mjs/bridge/runtime-bindings.mjs.map +3 -3
- package/dist/mjs/bridge/sandbox-isolate.mjs +157 -2
- package/dist/mjs/bridge/sandbox-isolate.mjs.map +3 -3
- package/dist/mjs/host/create-isolate-host.mjs +85 -1
- package/dist/mjs/host/create-isolate-host.mjs.map +3 -3
- package/dist/mjs/host/nested-host-controller.mjs +95 -5
- package/dist/mjs/host/nested-host-controller.mjs.map +3 -3
- package/dist/mjs/index.mjs.map +1 -1
- package/dist/mjs/internal/browser-source.mjs +16 -5
- package/dist/mjs/internal/browser-source.mjs.map +3 -3
- package/dist/mjs/internal/client/connection.mjs +20 -9
- package/dist/mjs/internal/client/connection.mjs.map +3 -3
- package/dist/mjs/internal/daemon/connection.mjs +28 -10
- package/dist/mjs/internal/daemon/connection.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 +5 -2
- package/dist/mjs/internal/runtime/index.mjs.map +3 -3
- package/dist/mjs/internal/typecheck/isolate-types.mjs +82 -1
- package/dist/mjs/internal/typecheck/isolate-types.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 +146 -0
- package/dist/mjs/runtime/namespaced-runtime.mjs.map +10 -0
- package/dist/mjs/runtime/test-event-subscriptions.mjs +36 -0
- package/dist/mjs/runtime/test-event-subscriptions.mjs.map +10 -0
- package/dist/mjs/runtime/test-runtime.mjs +26 -3
- package/dist/mjs/runtime/test-runtime.mjs.map +3 -3
- package/dist/types/bridge/sandbox-isolate.d.ts +9 -3
- package/dist/types/host/nested-host-controller.d.ts +5 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/internal/browser-source.d.ts +1 -2
- package/dist/types/internal/client/types.d.ts +4 -0
- package/dist/types/internal/protocol/types.d.ts +8 -1
- package/dist/types/internal/typecheck/isolate-types.d.ts +2 -2
- package/dist/types/playwright.d.ts +26 -0
- package/dist/types/runtime/namespaced-runtime.d.ts +13 -0
- package/dist/types/runtime/test-event-subscriptions.d.ts +12 -0
- package/dist/types/types.d.ts +51 -3
- package/package.json +6 -1
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type PlaywrightCallback } from "./internal/playwright/client.ts";
|
|
2
|
+
import type { CollectedData, PlaywrightEvent, PlaywrightFileData, PlaywrightOperation, PlaywrightResult } from "./internal/protocol/index.ts";
|
|
3
|
+
export type PlaywrightSessionHandlerCallback = PlaywrightCallback;
|
|
4
|
+
export interface CreatePlaywrightSessionHandlerOptions<TContext = unknown, TPage = unknown, TContextOptions = unknown> {
|
|
5
|
+
timeout?: number;
|
|
6
|
+
createContext?: (options?: TContextOptions) => Promise<TContext> | TContext;
|
|
7
|
+
createPage?: (context: TContext) => Promise<TPage> | TPage;
|
|
8
|
+
readFile?: (filePath: string) => Promise<PlaywrightFileData> | PlaywrightFileData;
|
|
9
|
+
writeFile?: (filePath: string, data: Buffer) => Promise<void> | void;
|
|
10
|
+
evaluatePredicate?: (predicateId: number, data: unknown) => boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface PlaywrightSessionHandler {
|
|
13
|
+
handler: PlaywrightSessionHandlerCallback;
|
|
14
|
+
getCollectedData(): CollectedData;
|
|
15
|
+
getTrackedResources(): {
|
|
16
|
+
contexts: string[];
|
|
17
|
+
pages: string[];
|
|
18
|
+
};
|
|
19
|
+
clearCollectedData(): void;
|
|
20
|
+
onEvent(callback: (event: PlaywrightEvent) => void): () => void;
|
|
21
|
+
}
|
|
22
|
+
export { DEFAULT_PLAYWRIGHT_HANDLER_META, PLAYWRIGHT_HANDLER_META, } from "./internal/playwright/types.ts";
|
|
23
|
+
export type { BrowserConsoleLogEntry, DefaultPlaywrightHandler, DefaultPlaywrightHandlerMetadata, DefaultPlaywrightHandlerOptions, NetworkRequestInfo, NetworkResponseInfo, PageErrorInfo, PlaywrightCollector, PlaywrightHandlerMetadata, PlaywrightHandle, RequestFailureInfo, } from "./internal/playwright/client.ts";
|
|
24
|
+
export type { CollectedData, PlaywrightEvent, PlaywrightFileData, PlaywrightOperation, PlaywrightResult, };
|
|
25
|
+
export { createPlaywrightHandler, defaultPlaywrightHandler, getDefaultPlaywrightHandlerMetadata, getPlaywrightHandlerMetadata, } from "./internal/playwright/client.ts";
|
|
26
|
+
export declare function createPlaywrightSessionHandler<TContext = unknown, TPage = unknown, TContextOptions = unknown>(options?: CreatePlaywrightSessionHandlerOptions<TContext, TPage, TContextOptions>): PlaywrightSessionHandler;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type MutableRuntimeDiagnostics } from "../bridge/diagnostics.ts";
|
|
2
|
+
import { type RemoteRuntime } from "../internal/client/index.ts";
|
|
3
|
+
import type { TestEventSubscriptions } from "./test-event-subscriptions.ts";
|
|
4
|
+
import type { NamespacedRuntime } from "../types.ts";
|
|
5
|
+
export interface NamespacedRuntimeAdapter extends NamespacedRuntime {
|
|
6
|
+
invalidate(reason?: string): void;
|
|
7
|
+
}
|
|
8
|
+
export declare function createNamespacedRuntimeAdapter(runtime: RemoteRuntime, diagnostics: MutableRuntimeDiagnostics, options: {
|
|
9
|
+
hasBrowser?: boolean;
|
|
10
|
+
abortBindings?: (reason?: string) => void;
|
|
11
|
+
onRelease?: () => void;
|
|
12
|
+
testEvents: TestEventSubscriptions;
|
|
13
|
+
}): NamespacedRuntimeAdapter;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { TestEvent } from "../types.ts";
|
|
2
|
+
interface TestEventApi {
|
|
3
|
+
onEvent(handler: (event: TestEvent) => void): () => void;
|
|
4
|
+
}
|
|
5
|
+
export interface TestEventSubscriptions {
|
|
6
|
+
readonly api: TestEventApi;
|
|
7
|
+
emit(event: TestEvent): void;
|
|
8
|
+
clear(): void;
|
|
9
|
+
setEnsureUsable(ensureUsable?: () => void): void;
|
|
10
|
+
}
|
|
11
|
+
export declare function createTestEventSubscriptions(ensureUsable?: () => void): TestEventSubscriptions;
|
|
12
|
+
export {};
|
package/dist/types/types.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ConsoleEntry as LegacyConsoleEntry, PlaywrightEvent as LegacyPlaywrightEvent, RunResults as LegacyRunResults, TestEvent as LegacyTestEvent } from "./internal/client/index.ts";
|
|
2
|
+
import type { PlaywrightSessionHandlerCallback } from "./playwright.ts";
|
|
2
3
|
export type ConsoleEntry = LegacyConsoleEntry;
|
|
3
4
|
export type RunResults = LegacyRunResults;
|
|
4
5
|
export type TestEvent = LegacyTestEvent;
|
|
@@ -47,14 +48,25 @@ export interface FileBindings {
|
|
|
47
48
|
}>;
|
|
48
49
|
rename?: (from: string, to: string, context: HostCallContext) => Promise<void>;
|
|
49
50
|
}
|
|
50
|
-
|
|
51
|
-
createContext?: (options: unknown, context: HostCallContext) => Promise<any> | any;
|
|
52
|
-
createPage?: (contextHandle: any, context: HostCallContext) => Promise<any> | any;
|
|
51
|
+
interface HostBrowserBindingBase {
|
|
53
52
|
captureConsole?: boolean;
|
|
54
53
|
onEvent?: (event: PlaywrightEvent, context: HostCallContext) => void;
|
|
54
|
+
}
|
|
55
|
+
export interface HostBrowserFactoryBindings extends HostBrowserBindingBase {
|
|
56
|
+
createContext?: (options: unknown, context: HostCallContext) => Promise<any> | any;
|
|
57
|
+
createPage?: (contextHandle: any, context: HostCallContext) => Promise<any> | any;
|
|
55
58
|
readFile?: (path: string, context: HostCallContext) => Promise<Buffer> | Buffer;
|
|
56
59
|
writeFile?: (path: string, data: Buffer, context: HostCallContext) => Promise<void> | void;
|
|
60
|
+
handler?: never;
|
|
61
|
+
}
|
|
62
|
+
export interface HostBrowserHandlerBindings extends HostBrowserBindingBase {
|
|
63
|
+
handler: PlaywrightSessionHandlerCallback;
|
|
64
|
+
createContext?: never;
|
|
65
|
+
createPage?: never;
|
|
66
|
+
readFile?: never;
|
|
67
|
+
writeFile?: never;
|
|
57
68
|
}
|
|
69
|
+
export type HostBrowserBindings = HostBrowserFactoryBindings | HostBrowserHandlerBindings;
|
|
58
70
|
export type ToolHandler = (...args: [...unknown[], HostCallContext]) => unknown | Promise<unknown> | AsyncGenerator<unknown, unknown, unknown>;
|
|
59
71
|
export type ToolBindings = Record<string, ToolHandler>;
|
|
60
72
|
export interface HostBindings {
|
|
@@ -163,6 +175,31 @@ export interface TestRuntime {
|
|
|
163
175
|
hard?: boolean;
|
|
164
176
|
reason?: string;
|
|
165
177
|
}): Promise<void>;
|
|
178
|
+
test: {
|
|
179
|
+
onEvent(handler: (event: TestEvent) => void): () => void;
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
export interface NamespacedRuntime {
|
|
183
|
+
eval(code: string, options?: {
|
|
184
|
+
filename?: string;
|
|
185
|
+
executionTimeout?: number;
|
|
186
|
+
}): Promise<void>;
|
|
187
|
+
runTests(code: string, options?: {
|
|
188
|
+
filename?: string;
|
|
189
|
+
timeoutMs?: number;
|
|
190
|
+
}): Promise<RunResults>;
|
|
191
|
+
diagnostics(): Promise<TestRuntimeDiagnostics>;
|
|
192
|
+
dispose(options?: {
|
|
193
|
+
hard?: boolean;
|
|
194
|
+
reason?: string;
|
|
195
|
+
}): Promise<void>;
|
|
196
|
+
test: {
|
|
197
|
+
onEvent(handler: (event: TestEvent) => void): () => void;
|
|
198
|
+
};
|
|
199
|
+
events: {
|
|
200
|
+
on(event: string, handler: (payload: unknown) => void): () => void;
|
|
201
|
+
emit(event: string, payload: unknown): Promise<void>;
|
|
202
|
+
};
|
|
166
203
|
}
|
|
167
204
|
export interface CreateRuntimeOptions {
|
|
168
205
|
key?: string;
|
|
@@ -171,6 +208,12 @@ export interface CreateRuntimeOptions {
|
|
|
171
208
|
executionTimeout?: number;
|
|
172
209
|
memoryLimitMB?: number;
|
|
173
210
|
}
|
|
211
|
+
export interface CreateNamespacedRuntimeOptions {
|
|
212
|
+
bindings: HostBindings;
|
|
213
|
+
cwd?: string;
|
|
214
|
+
executionTimeout?: number;
|
|
215
|
+
memoryLimitMB?: number;
|
|
216
|
+
}
|
|
174
217
|
export interface CreateTestRuntimeOptions extends CreateRuntimeOptions {
|
|
175
218
|
}
|
|
176
219
|
export interface CreateAppServerOptions extends CreateRuntimeOptions {
|
|
@@ -191,6 +234,10 @@ export interface IsolateHost {
|
|
|
191
234
|
createAppServer(options: CreateAppServerOptions): Promise<AppServer>;
|
|
192
235
|
createRuntime(options: CreateRuntimeOptions): Promise<ScriptRuntime>;
|
|
193
236
|
createTestRuntime(options: CreateTestRuntimeOptions): Promise<TestRuntime>;
|
|
237
|
+
getNamespacedRuntime(key: string, options: CreateNamespacedRuntimeOptions): Promise<NamespacedRuntime>;
|
|
238
|
+
disposeNamespace(key: string, options?: {
|
|
239
|
+
reason?: string;
|
|
240
|
+
}): Promise<void>;
|
|
194
241
|
diagnostics(): Promise<{
|
|
195
242
|
runtimes: number;
|
|
196
243
|
servers: number;
|
|
@@ -231,3 +278,4 @@ export interface TypecheckRequest {
|
|
|
231
278
|
}>;
|
|
232
279
|
compilerOptions?: Record<string, unknown>;
|
|
233
280
|
}
|
|
281
|
+
export {};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ricsam/isolate",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.13",
|
|
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": {
|