@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
@@ -42,6 +42,7 @@ __export(exports_isolate_types, {
42
42
  TYPE_DEFINITIONS: () => TYPE_DEFINITIONS,
43
43
  TIMERS_TYPES: () => TIMERS_TYPES,
44
44
  TEST_ENV_TYPES: () => TEST_ENV_TYPES,
45
+ SANDBOX_ISOLATE_TYPES: () => SANDBOX_ISOLATE_TYPES,
45
46
  PLAYWRIGHT_TYPES: () => PLAYWRIGHT_TYPES,
46
47
  PATH_TYPES: () => PATH_TYPES,
47
48
  FS_TYPES: () => FS_TYPES,
@@ -2293,7 +2294,7 @@ declare class Locator {
2293
2294
  /** Set input files for a file input */
2294
2295
  setInputFiles(files: string | string[] | { name: string; mimeType: string; buffer: ArrayBuffer | Uint8Array | string }[]): Promise<void>;
2295
2296
  /** Take a screenshot of the element */
2296
- screenshot(options?: { path?: string; type?: "png" | "jpeg"; quality?: number }): Promise<string>;
2297
+ screenshot(options?: { path?: string; type?: "png" | "jpeg"; quality?: number }): Promise<void>;
2297
2298
  /** Drag to another element */
2298
2299
  dragTo(target: Locator): Promise<void>;
2299
2300
  /** Scroll element into view */
@@ -2474,7 +2475,7 @@ declare class IsolatePage {
2474
2475
  /** Fill an input (shorthand) */
2475
2476
  fill(selector: string, value: string): Promise<void>;
2476
2477
  /** Take a screenshot */
2477
- screenshot(options?: { path?: string; fullPage?: boolean; type?: "png" | "jpeg"; quality?: number }): Promise<string>;
2478
+ screenshot(options?: { path?: string; fullPage?: boolean; type?: "png" | "jpeg"; quality?: number }): Promise<void>;
2478
2479
  /** Generate a PDF (Chromium only) */
2479
2480
  pdf(options?: { path?: string; format?: string; landscape?: boolean; margin?: { top?: string; bottom?: string; left?: string; right?: string } }): Promise<string>;
2480
2481
  /** Set the viewport size */
@@ -2513,6 +2514,8 @@ declare class IsolatePage {
2513
2514
  declare class IsolateContext {
2514
2515
  /** Create a new page in this context (requires createPage callback) */
2515
2516
  newPage(): Promise<IsolatePage>;
2517
+ /** Get tracked pages for this context */
2518
+ pages(): Promise<IsolatePage[]>;
2516
2519
  /** Close this context and all its pages */
2517
2520
  close(): Promise<void>;
2518
2521
  /** Clear all cookies */
@@ -2537,18 +2540,10 @@ interface IsolateBrowser {
2537
2540
  permissions?: string[];
2538
2541
  colorScheme?: "light" | "dark" | "no-preference";
2539
2542
  }): Promise<IsolateContext>;
2543
+ /** Get tracked browser contexts */
2544
+ contexts(): Promise<IsolateContext[]>;
2540
2545
  }
2541
2546
 
2542
- /**
2543
- * The default page object.
2544
- */
2545
- declare const page: IsolatePage;
2546
-
2547
- /**
2548
- * The default browser context.
2549
- */
2550
- declare const context: IsolateContext;
2551
-
2552
2547
  /**
2553
2548
  * Browser object for creating new contexts.
2554
2549
  */
@@ -2633,8 +2628,186 @@ interface PlaywrightPageMatchers {
2633
2628
  not: PlaywrightPageMatchers;
2634
2629
  }
2635
2630
  `;
2631
+ var SANDBOX_ISOLATE_TYPES = `
2632
+ declare module "@ricsam/isolate" {
2633
+ export interface NestedModuleImporter {
2634
+ path: string;
2635
+ resolveDir: string;
2636
+ }
2637
+
2638
+ export interface NestedModuleSource {
2639
+ code: string;
2640
+ filename: string;
2641
+ resolveDir: string;
2642
+ static?: boolean;
2643
+ }
2644
+
2645
+ export type NestedModuleResolveResult =
2646
+ | string
2647
+ | NestedModuleSource
2648
+ | null
2649
+ | undefined
2650
+ | Promise<string | NestedModuleSource | null | undefined>;
2651
+
2652
+ export interface NestedFileBindings {
2653
+ readFile?: (path: string) => Promise<ArrayBuffer>;
2654
+ writeFile?: (path: string, data: ArrayBuffer) => Promise<void>;
2655
+ unlink?: (path: string) => Promise<void>;
2656
+ readdir?: (path: string) => Promise<string[]>;
2657
+ mkdir?: (path: string, options?: { recursive?: boolean }) => Promise<void>;
2658
+ rmdir?: (path: string) => Promise<void>;
2659
+ stat?: (
2660
+ path: string,
2661
+ ) => Promise<{ isFile: boolean; isDirectory: boolean; size: number }>;
2662
+ rename?: (from: string, to: string) => Promise<void>;
2663
+ }
2664
+
2665
+ export interface NestedBrowserBindings {
2666
+ createContext?: (options: unknown) => Promise<unknown> | unknown;
2667
+ createPage?: (contextHandle: unknown) => Promise<unknown> | unknown;
2668
+ }
2669
+
2670
+ export interface NestedHostBindings {
2671
+ console?: {
2672
+ onEntry?: (entry: unknown) => void;
2673
+ };
2674
+ fetch?: (request: Request) => Response | Promise<Response>;
2675
+ files?: NestedFileBindings;
2676
+ modules?: {
2677
+ resolve(
2678
+ specifier: string,
2679
+ importer: NestedModuleImporter,
2680
+ ): NestedModuleResolveResult;
2681
+ };
2682
+ tools?: Record<string, (...args: any[]) => unknown>;
2683
+ browser?: unknown;
2684
+ }
2685
+
2686
+ export interface NestedRuntimeDiagnostics {
2687
+ activeRequests: number;
2688
+ activeResources: number;
2689
+ pendingFiles: number;
2690
+ pendingFetches: number;
2691
+ pendingModules: number;
2692
+ pendingTools: number;
2693
+ streamCount: number;
2694
+ lastError?: string;
2695
+ reused?: boolean;
2696
+ lifecycleState: "idle" | "active" | "reloading" | "disposing";
2697
+ }
2698
+
2699
+ export interface NestedBrowserDiagnostics {
2700
+ contexts: number;
2701
+ pages: number;
2702
+ browserConsoleLogs: number;
2703
+ networkRequests: number;
2704
+ networkResponses: number;
2705
+ pageErrors: number;
2706
+ requestFailures: number;
2707
+ collectedData: {
2708
+ browserConsoleLogs: unknown[];
2709
+ pageErrors: unknown[];
2710
+ networkRequests: unknown[];
2711
+ networkResponses: unknown[];
2712
+ requestFailures: unknown[];
2713
+ };
2714
+ }
2715
+
2716
+ export interface NestedRuntimeResourceDiagnostics {
2717
+ runtime: NestedRuntimeDiagnostics;
2718
+ browser?: NestedBrowserDiagnostics;
2719
+ }
2720
+
2721
+ export interface NestedTestDiagnostics {
2722
+ enabled: true;
2723
+ registeredTests: number;
2724
+ lastRun?: unknown;
2725
+ }
2726
+
2727
+ export interface NestedTestRuntimeDiagnostics extends NestedRuntimeResourceDiagnostics {
2728
+ test: NestedTestDiagnostics;
2729
+ }
2730
+
2731
+ export interface NestedHostDiagnostics {
2732
+ runtimes: number;
2733
+ servers: number;
2734
+ connected: boolean;
2735
+ }
2736
+
2737
+ export type NestedRequestResult =
2738
+ | { type: "response"; response: Response }
2739
+ | { type: "websocket"; upgradeData: Record<string, unknown> };
2740
+
2741
+ export interface NestedScriptRuntime {
2742
+ eval(
2743
+ code: string,
2744
+ options?: string | { filename?: string; executionTimeout?: number },
2745
+ ): Promise<void>;
2746
+ dispose(options?: { hard?: boolean; reason?: string }): Promise<void>;
2747
+ diagnostics(): Promise<NestedRuntimeResourceDiagnostics>;
2748
+ events: {
2749
+ on(event: string, handler: (payload: unknown) => void): () => void;
2750
+ emit(event: string, payload: unknown): Promise<void>;
2751
+ };
2752
+ }
2753
+
2754
+ export interface NestedAppServer {
2755
+ handle(
2756
+ request: Request | string,
2757
+ options?: { requestId?: string; metadata?: Record<string, string> },
2758
+ ): Promise<NestedRequestResult>;
2759
+ ws: {
2760
+ open(connectionId: string): Promise<void>;
2761
+ message(connectionId: string, data: string | ArrayBuffer): Promise<void>;
2762
+ close(connectionId: string, code: number, reason: string): Promise<void>;
2763
+ error(connectionId: string, error: Error): Promise<void>;
2764
+ };
2765
+ reload(reason?: string): Promise<void>;
2766
+ dispose(options?: { hard?: boolean; reason?: string }): Promise<void>;
2767
+ diagnostics(): Promise<NestedRuntimeResourceDiagnostics>;
2768
+ }
2769
+
2770
+ export interface NestedTestRuntime {
2771
+ run(
2772
+ code: string,
2773
+ options?: { filename?: string; timeoutMs?: number },
2774
+ ): Promise<unknown>;
2775
+ diagnostics(): Promise<NestedTestRuntimeDiagnostics>;
2776
+ dispose(options?: { hard?: boolean; reason?: string }): Promise<void>;
2777
+ }
2778
+
2779
+ export interface NestedCreateRuntimeOptions {
2780
+ key?: string;
2781
+ bindings?: NestedHostBindings;
2782
+ cwd?: string;
2783
+ executionTimeout?: number;
2784
+ memoryLimitMB?: number;
2785
+ }
2786
+
2787
+ export interface NestedCreateTestRuntimeOptions extends NestedCreateRuntimeOptions {}
2788
+
2789
+ export interface NestedCreateAppServerOptions extends NestedCreateRuntimeOptions {
2790
+ key: string;
2791
+ entry: string;
2792
+ entryFilename?: string;
2793
+ }
2794
+
2795
+ export interface NestedIsolateHost {
2796
+ createRuntime(options?: NestedCreateRuntimeOptions): Promise<NestedScriptRuntime>;
2797
+ createAppServer(options: NestedCreateAppServerOptions): Promise<NestedAppServer>;
2798
+ createTestRuntime(
2799
+ options?: NestedCreateTestRuntimeOptions,
2800
+ ): Promise<NestedTestRuntime>;
2801
+ diagnostics(): Promise<NestedHostDiagnostics>;
2802
+ close(): Promise<void>;
2803
+ }
2804
+
2805
+ export function createIsolateHost(): NestedIsolateHost;
2806
+ }
2807
+ `;
2636
2808
  var TYPE_DEFINITIONS = {
2637
2809
  core: CORE_TYPES,
2810
+ sandboxIsolate: SANDBOX_ISOLATE_TYPES,
2638
2811
  console: CONSOLE_TYPES,
2639
2812
  crypto: CRYPTO_TYPES,
2640
2813
  encoding: ENCODING_TYPES,
@@ -2646,4 +2819,4 @@ var TYPE_DEFINITIONS = {
2646
2819
  playwright: PLAYWRIGHT_TYPES
2647
2820
  };
2648
2821
 
2649
- //# debugId=4C7C616C6AE7C1E764756E2164756E21
2822
+ //# debugId=9BFDB4222A07109064756E2164756E21