@ricsam/isolate 0.1.10 → 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.
Files changed (128) hide show
  1. package/README.md +172 -18
  2. package/dist/cjs/bridge/diagnostics.cjs +37 -2
  3. package/dist/cjs/bridge/diagnostics.cjs.map +3 -3
  4. package/dist/cjs/bridge/runtime-bindings.cjs +203 -51
  5. package/dist/cjs/bridge/runtime-bindings.cjs.map +3 -3
  6. package/dist/cjs/bridge/sandbox-isolate.cjs +365 -0
  7. package/dist/cjs/bridge/sandbox-isolate.cjs.map +10 -0
  8. package/dist/cjs/host/create-isolate-host.cjs +51 -25
  9. package/dist/cjs/host/create-isolate-host.cjs.map +3 -3
  10. package/dist/cjs/host/nested-host-controller.cjs +311 -0
  11. package/dist/cjs/host/nested-host-controller.cjs.map +10 -0
  12. package/dist/cjs/index.cjs.map +1 -1
  13. package/dist/cjs/internal/browser-source.cjs +91 -0
  14. package/dist/cjs/internal/browser-source.cjs.map +10 -0
  15. package/dist/cjs/internal/client/connection.cjs +152 -172
  16. package/dist/cjs/internal/client/connection.cjs.map +3 -3
  17. package/dist/cjs/internal/daemon/callback-fs-handler.cjs +3 -3
  18. package/dist/cjs/internal/daemon/callback-fs-handler.cjs.map +3 -3
  19. package/dist/cjs/internal/daemon/connection.cjs +129 -4
  20. package/dist/cjs/internal/daemon/connection.cjs.map +3 -3
  21. package/dist/cjs/internal/playwright/client.cjs +4 -2
  22. package/dist/cjs/internal/playwright/client.cjs.map +3 -3
  23. package/dist/cjs/internal/playwright/handler.cjs +298 -25
  24. package/dist/cjs/internal/playwright/handler.cjs.map +3 -3
  25. package/dist/cjs/internal/playwright/index.cjs +54 -8
  26. package/dist/cjs/internal/playwright/index.cjs.map +3 -3
  27. package/dist/cjs/internal/playwright/types.cjs +3 -1
  28. package/dist/cjs/internal/playwright/types.cjs.map +3 -3
  29. package/dist/cjs/internal/protocol/codec.cjs +16 -5
  30. package/dist/cjs/internal/protocol/codec.cjs.map +3 -3
  31. package/dist/cjs/internal/protocol/marshalValue.cjs +37 -6
  32. package/dist/cjs/internal/protocol/marshalValue.cjs.map +3 -3
  33. package/dist/cjs/internal/protocol/types.cjs.map +2 -2
  34. package/dist/cjs/internal/runtime/index.cjs +377 -22
  35. package/dist/cjs/internal/runtime/index.cjs.map +3 -3
  36. package/dist/cjs/internal/typecheck/index.cjs +2 -1
  37. package/dist/cjs/internal/typecheck/index.cjs.map +3 -3
  38. package/dist/cjs/internal/typecheck/isolate-types.cjs +186 -13
  39. package/dist/cjs/internal/typecheck/isolate-types.cjs.map +3 -3
  40. package/dist/cjs/internal/typecheck/typecheck.cjs +2 -3
  41. package/dist/cjs/internal/typecheck/typecheck.cjs.map +3 -3
  42. package/dist/cjs/package.json +1 -1
  43. package/dist/cjs/runtime/script-runtime.cjs +14 -12
  44. package/dist/cjs/runtime/script-runtime.cjs.map +3 -3
  45. package/dist/cjs/runtime/test-runtime.cjs +113 -0
  46. package/dist/cjs/runtime/test-runtime.cjs.map +10 -0
  47. package/dist/cjs/server/app-server.cjs +16 -9
  48. package/dist/cjs/server/app-server.cjs.map +3 -3
  49. package/dist/cjs/typecheck/index.cjs +2 -1
  50. package/dist/cjs/typecheck/index.cjs.map +3 -3
  51. package/dist/mjs/bridge/diagnostics.mjs +37 -2
  52. package/dist/mjs/bridge/diagnostics.mjs.map +3 -3
  53. package/dist/mjs/bridge/runtime-bindings.mjs +206 -51
  54. package/dist/mjs/bridge/runtime-bindings.mjs.map +3 -3
  55. package/dist/mjs/bridge/sandbox-isolate.mjs +325 -0
  56. package/dist/mjs/bridge/sandbox-isolate.mjs.map +10 -0
  57. package/dist/mjs/host/create-isolate-host.mjs +53 -25
  58. package/dist/mjs/host/create-isolate-host.mjs.map +3 -3
  59. package/dist/mjs/host/nested-host-controller.mjs +275 -0
  60. package/dist/mjs/host/nested-host-controller.mjs.map +10 -0
  61. package/dist/mjs/index.mjs.map +1 -1
  62. package/dist/mjs/internal/browser-source.mjs +51 -0
  63. package/dist/mjs/internal/browser-source.mjs.map +10 -0
  64. package/dist/mjs/internal/client/connection.mjs +154 -173
  65. package/dist/mjs/internal/client/connection.mjs.map +3 -3
  66. package/dist/mjs/internal/daemon/callback-fs-handler.mjs +3 -3
  67. package/dist/mjs/internal/daemon/callback-fs-handler.mjs.map +3 -3
  68. package/dist/mjs/internal/daemon/connection.mjs +129 -4
  69. package/dist/mjs/internal/daemon/connection.mjs.map +3 -3
  70. package/dist/mjs/internal/playwright/client.mjs +7 -3
  71. package/dist/mjs/internal/playwright/client.mjs.map +3 -3
  72. package/dist/mjs/internal/playwright/handler.mjs +300 -26
  73. package/dist/mjs/internal/playwright/handler.mjs.map +3 -3
  74. package/dist/mjs/internal/playwright/index.mjs +59 -9
  75. package/dist/mjs/internal/playwright/index.mjs.map +3 -3
  76. package/dist/mjs/internal/playwright/types.mjs +3 -1
  77. package/dist/mjs/internal/playwright/types.mjs.map +3 -3
  78. package/dist/mjs/internal/protocol/codec.mjs +16 -5
  79. package/dist/mjs/internal/protocol/codec.mjs.map +3 -3
  80. package/dist/mjs/internal/protocol/marshalValue.mjs +38 -6
  81. package/dist/mjs/internal/protocol/marshalValue.mjs.map +3 -3
  82. package/dist/mjs/internal/protocol/types.mjs.map +2 -2
  83. package/dist/mjs/internal/runtime/index.mjs +377 -22
  84. package/dist/mjs/internal/runtime/index.mjs.map +3 -3
  85. package/dist/mjs/internal/typecheck/index.mjs +3 -1
  86. package/dist/mjs/internal/typecheck/index.mjs.map +3 -3
  87. package/dist/mjs/internal/typecheck/isolate-types.mjs +186 -13
  88. package/dist/mjs/internal/typecheck/isolate-types.mjs.map +3 -3
  89. package/dist/mjs/internal/typecheck/typecheck.mjs +2 -3
  90. package/dist/mjs/internal/typecheck/typecheck.mjs.map +3 -3
  91. package/dist/mjs/package.json +1 -1
  92. package/dist/mjs/runtime/script-runtime.mjs +16 -12
  93. package/dist/mjs/runtime/script-runtime.mjs.map +3 -3
  94. package/dist/mjs/runtime/test-runtime.mjs +78 -0
  95. package/dist/mjs/runtime/test-runtime.mjs.map +10 -0
  96. package/dist/mjs/server/app-server.mjs +23 -11
  97. package/dist/mjs/server/app-server.mjs.map +3 -3
  98. package/dist/mjs/typecheck/index.mjs +2 -1
  99. package/dist/mjs/typecheck/index.mjs.map +3 -3
  100. package/dist/types/bridge/diagnostics.d.ts +6 -1
  101. package/dist/types/bridge/runtime-bindings.d.ts +5 -1
  102. package/dist/types/bridge/sandbox-isolate.d.ts +15 -0
  103. package/dist/types/host/nested-host-controller.d.ts +11 -0
  104. package/dist/types/index.d.ts +1 -1
  105. package/dist/types/internal/browser-source.d.ts +11 -0
  106. package/dist/types/internal/client/types.d.ts +5 -0
  107. package/dist/types/internal/daemon/types.d.ts +0 -2
  108. package/dist/types/internal/playwright/client.d.ts +2 -2
  109. package/dist/types/internal/playwright/handler.d.ts +27 -4
  110. package/dist/types/internal/playwright/index.d.ts +2 -2
  111. package/dist/types/internal/playwright/types.d.ts +33 -1
  112. package/dist/types/internal/protocol/codec.d.ts +12 -2
  113. package/dist/types/internal/protocol/marshalValue.d.ts +3 -2
  114. package/dist/types/internal/protocol/types.d.ts +25 -1
  115. package/dist/types/internal/runtime/index.d.ts +5 -0
  116. package/dist/types/internal/typecheck/index.d.ts +1 -1
  117. package/dist/types/internal/typecheck/isolate-types.d.ts +6 -4
  118. package/dist/types/internal/typecheck/typecheck.d.ts +1 -1
  119. package/dist/types/runtime/script-runtime.d.ts +2 -1
  120. package/dist/types/runtime/test-runtime.d.ts +4 -0
  121. package/dist/types/server/app-server.d.ts +2 -1
  122. package/dist/types/types.d.ts +33 -33
  123. package/package.json +3 -3
  124. package/dist/cjs/browser/browser-runtime.cjs +0 -157
  125. package/dist/cjs/browser/browser-runtime.cjs.map +0 -10
  126. package/dist/mjs/browser/browser-runtime.mjs +0 -93
  127. package/dist/mjs/browser/browser-runtime.mjs.map +0 -10
  128. package/dist/types/browser/browser-runtime.d.ts +0 -3
@@ -2240,7 +2240,7 @@ declare class Locator {
2240
2240
  /** Set input files for a file input */
2241
2241
  setInputFiles(files: string | string[] | { name: string; mimeType: string; buffer: ArrayBuffer | Uint8Array | string }[]): Promise<void>;
2242
2242
  /** Take a screenshot of the element */
2243
- screenshot(options?: { path?: string; type?: "png" | "jpeg"; quality?: number }): Promise<string>;
2243
+ screenshot(options?: { path?: string; type?: "png" | "jpeg"; quality?: number }): Promise<void>;
2244
2244
  /** Drag to another element */
2245
2245
  dragTo(target: Locator): Promise<void>;
2246
2246
  /** Scroll element into view */
@@ -2421,7 +2421,7 @@ declare class IsolatePage {
2421
2421
  /** Fill an input (shorthand) */
2422
2422
  fill(selector: string, value: string): Promise<void>;
2423
2423
  /** Take a screenshot */
2424
- screenshot(options?: { path?: string; fullPage?: boolean; type?: "png" | "jpeg"; quality?: number }): Promise<string>;
2424
+ screenshot(options?: { path?: string; fullPage?: boolean; type?: "png" | "jpeg"; quality?: number }): Promise<void>;
2425
2425
  /** Generate a PDF (Chromium only) */
2426
2426
  pdf(options?: { path?: string; format?: string; landscape?: boolean; margin?: { top?: string; bottom?: string; left?: string; right?: string } }): Promise<string>;
2427
2427
  /** Set the viewport size */
@@ -2460,6 +2460,8 @@ declare class IsolatePage {
2460
2460
  declare class IsolateContext {
2461
2461
  /** Create a new page in this context (requires createPage callback) */
2462
2462
  newPage(): Promise<IsolatePage>;
2463
+ /** Get tracked pages for this context */
2464
+ pages(): Promise<IsolatePage[]>;
2463
2465
  /** Close this context and all its pages */
2464
2466
  close(): Promise<void>;
2465
2467
  /** Clear all cookies */
@@ -2484,18 +2486,10 @@ interface IsolateBrowser {
2484
2486
  permissions?: string[];
2485
2487
  colorScheme?: "light" | "dark" | "no-preference";
2486
2488
  }): Promise<IsolateContext>;
2489
+ /** Get tracked browser contexts */
2490
+ contexts(): Promise<IsolateContext[]>;
2487
2491
  }
2488
2492
 
2489
- /**
2490
- * The default page object.
2491
- */
2492
- declare const page: IsolatePage;
2493
-
2494
- /**
2495
- * The default browser context.
2496
- */
2497
- declare const context: IsolateContext;
2498
-
2499
2493
  /**
2500
2494
  * Browser object for creating new contexts.
2501
2495
  */
@@ -2580,8 +2574,186 @@ interface PlaywrightPageMatchers {
2580
2574
  not: PlaywrightPageMatchers;
2581
2575
  }
2582
2576
  `;
2577
+ var SANDBOX_ISOLATE_TYPES = `
2578
+ declare module "@ricsam/isolate" {
2579
+ export interface NestedModuleImporter {
2580
+ path: string;
2581
+ resolveDir: string;
2582
+ }
2583
+
2584
+ export interface NestedModuleSource {
2585
+ code: string;
2586
+ filename: string;
2587
+ resolveDir: string;
2588
+ static?: boolean;
2589
+ }
2590
+
2591
+ export type NestedModuleResolveResult =
2592
+ | string
2593
+ | NestedModuleSource
2594
+ | null
2595
+ | undefined
2596
+ | Promise<string | NestedModuleSource | null | undefined>;
2597
+
2598
+ export interface NestedFileBindings {
2599
+ readFile?: (path: string) => Promise<ArrayBuffer>;
2600
+ writeFile?: (path: string, data: ArrayBuffer) => Promise<void>;
2601
+ unlink?: (path: string) => Promise<void>;
2602
+ readdir?: (path: string) => Promise<string[]>;
2603
+ mkdir?: (path: string, options?: { recursive?: boolean }) => Promise<void>;
2604
+ rmdir?: (path: string) => Promise<void>;
2605
+ stat?: (
2606
+ path: string,
2607
+ ) => Promise<{ isFile: boolean; isDirectory: boolean; size: number }>;
2608
+ rename?: (from: string, to: string) => Promise<void>;
2609
+ }
2610
+
2611
+ export interface NestedBrowserBindings {
2612
+ createContext?: (options: unknown) => Promise<unknown> | unknown;
2613
+ createPage?: (contextHandle: unknown) => Promise<unknown> | unknown;
2614
+ }
2615
+
2616
+ export interface NestedHostBindings {
2617
+ console?: {
2618
+ onEntry?: (entry: unknown) => void;
2619
+ };
2620
+ fetch?: (request: Request) => Response | Promise<Response>;
2621
+ files?: NestedFileBindings;
2622
+ modules?: {
2623
+ resolve(
2624
+ specifier: string,
2625
+ importer: NestedModuleImporter,
2626
+ ): NestedModuleResolveResult;
2627
+ };
2628
+ tools?: Record<string, (...args: any[]) => unknown>;
2629
+ browser?: unknown;
2630
+ }
2631
+
2632
+ export interface NestedRuntimeDiagnostics {
2633
+ activeRequests: number;
2634
+ activeResources: number;
2635
+ pendingFiles: number;
2636
+ pendingFetches: number;
2637
+ pendingModules: number;
2638
+ pendingTools: number;
2639
+ streamCount: number;
2640
+ lastError?: string;
2641
+ reused?: boolean;
2642
+ lifecycleState: "idle" | "active" | "reloading" | "disposing";
2643
+ }
2644
+
2645
+ export interface NestedBrowserDiagnostics {
2646
+ contexts: number;
2647
+ pages: number;
2648
+ browserConsoleLogs: number;
2649
+ networkRequests: number;
2650
+ networkResponses: number;
2651
+ pageErrors: number;
2652
+ requestFailures: number;
2653
+ collectedData: {
2654
+ browserConsoleLogs: unknown[];
2655
+ pageErrors: unknown[];
2656
+ networkRequests: unknown[];
2657
+ networkResponses: unknown[];
2658
+ requestFailures: unknown[];
2659
+ };
2660
+ }
2661
+
2662
+ export interface NestedRuntimeResourceDiagnostics {
2663
+ runtime: NestedRuntimeDiagnostics;
2664
+ browser?: NestedBrowserDiagnostics;
2665
+ }
2666
+
2667
+ export interface NestedTestDiagnostics {
2668
+ enabled: true;
2669
+ registeredTests: number;
2670
+ lastRun?: unknown;
2671
+ }
2672
+
2673
+ export interface NestedTestRuntimeDiagnostics extends NestedRuntimeResourceDiagnostics {
2674
+ test: NestedTestDiagnostics;
2675
+ }
2676
+
2677
+ export interface NestedHostDiagnostics {
2678
+ runtimes: number;
2679
+ servers: number;
2680
+ connected: boolean;
2681
+ }
2682
+
2683
+ export type NestedRequestResult =
2684
+ | { type: "response"; response: Response }
2685
+ | { type: "websocket"; upgradeData: Record<string, unknown> };
2686
+
2687
+ export interface NestedScriptRuntime {
2688
+ eval(
2689
+ code: string,
2690
+ options?: string | { filename?: string; executionTimeout?: number },
2691
+ ): Promise<void>;
2692
+ dispose(options?: { hard?: boolean; reason?: string }): Promise<void>;
2693
+ diagnostics(): Promise<NestedRuntimeResourceDiagnostics>;
2694
+ events: {
2695
+ on(event: string, handler: (payload: unknown) => void): () => void;
2696
+ emit(event: string, payload: unknown): Promise<void>;
2697
+ };
2698
+ }
2699
+
2700
+ export interface NestedAppServer {
2701
+ handle(
2702
+ request: Request | string,
2703
+ options?: { requestId?: string; metadata?: Record<string, string> },
2704
+ ): Promise<NestedRequestResult>;
2705
+ ws: {
2706
+ open(connectionId: string): Promise<void>;
2707
+ message(connectionId: string, data: string | ArrayBuffer): Promise<void>;
2708
+ close(connectionId: string, code: number, reason: string): Promise<void>;
2709
+ error(connectionId: string, error: Error): Promise<void>;
2710
+ };
2711
+ reload(reason?: string): Promise<void>;
2712
+ dispose(options?: { hard?: boolean; reason?: string }): Promise<void>;
2713
+ diagnostics(): Promise<NestedRuntimeResourceDiagnostics>;
2714
+ }
2715
+
2716
+ export interface NestedTestRuntime {
2717
+ run(
2718
+ code: string,
2719
+ options?: { filename?: string; timeoutMs?: number },
2720
+ ): Promise<unknown>;
2721
+ diagnostics(): Promise<NestedTestRuntimeDiagnostics>;
2722
+ dispose(options?: { hard?: boolean; reason?: string }): Promise<void>;
2723
+ }
2724
+
2725
+ export interface NestedCreateRuntimeOptions {
2726
+ key?: string;
2727
+ bindings?: NestedHostBindings;
2728
+ cwd?: string;
2729
+ executionTimeout?: number;
2730
+ memoryLimitMB?: number;
2731
+ }
2732
+
2733
+ export interface NestedCreateTestRuntimeOptions extends NestedCreateRuntimeOptions {}
2734
+
2735
+ export interface NestedCreateAppServerOptions extends NestedCreateRuntimeOptions {
2736
+ key: string;
2737
+ entry: string;
2738
+ entryFilename?: string;
2739
+ }
2740
+
2741
+ export interface NestedIsolateHost {
2742
+ createRuntime(options?: NestedCreateRuntimeOptions): Promise<NestedScriptRuntime>;
2743
+ createAppServer(options: NestedCreateAppServerOptions): Promise<NestedAppServer>;
2744
+ createTestRuntime(
2745
+ options?: NestedCreateTestRuntimeOptions,
2746
+ ): Promise<NestedTestRuntime>;
2747
+ diagnostics(): Promise<NestedHostDiagnostics>;
2748
+ close(): Promise<void>;
2749
+ }
2750
+
2751
+ export function createIsolateHost(): NestedIsolateHost;
2752
+ }
2753
+ `;
2583
2754
  var TYPE_DEFINITIONS = {
2584
2755
  core: CORE_TYPES,
2756
+ sandboxIsolate: SANDBOX_ISOLATE_TYPES,
2585
2757
  console: CONSOLE_TYPES,
2586
2758
  crypto: CRYPTO_TYPES,
2587
2759
  encoding: ENCODING_TYPES,
@@ -2596,6 +2768,7 @@ export {
2596
2768
  TYPE_DEFINITIONS,
2597
2769
  TIMERS_TYPES,
2598
2770
  TEST_ENV_TYPES,
2771
+ SANDBOX_ISOLATE_TYPES,
2599
2772
  PLAYWRIGHT_TYPES,
2600
2773
  PATH_TYPES,
2601
2774
  FS_TYPES,
@@ -2606,4 +2779,4 @@ export {
2606
2779
  CONSOLE_TYPES
2607
2780
  };
2608
2781
 
2609
- //# debugId=515A634E8FBA296A64756E2164756E21
2782
+ //# debugId=7616B2AD7095D88864756E2164756E21