@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.
Files changed (73) hide show
  1. package/README.md +101 -1
  2. package/dist/cjs/bridge/runtime-bindings.cjs +36 -8
  3. package/dist/cjs/bridge/runtime-bindings.cjs.map +3 -3
  4. package/dist/cjs/bridge/sandbox-isolate.cjs +157 -2
  5. package/dist/cjs/bridge/sandbox-isolate.cjs.map +3 -3
  6. package/dist/cjs/host/create-isolate-host.cjs +85 -1
  7. package/dist/cjs/host/create-isolate-host.cjs.map +3 -3
  8. package/dist/cjs/host/nested-host-controller.cjs +95 -5
  9. package/dist/cjs/host/nested-host-controller.cjs.map +3 -3
  10. package/dist/cjs/index.cjs.map +1 -1
  11. package/dist/cjs/internal/browser-source.cjs +16 -5
  12. package/dist/cjs/internal/browser-source.cjs.map +3 -3
  13. package/dist/cjs/internal/client/connection.cjs +20 -9
  14. package/dist/cjs/internal/client/connection.cjs.map +3 -3
  15. package/dist/cjs/internal/daemon/connection.cjs +28 -10
  16. package/dist/cjs/internal/daemon/connection.cjs.map +3 -3
  17. package/dist/cjs/internal/protocol/types.cjs +2 -1
  18. package/dist/cjs/internal/protocol/types.cjs.map +3 -3
  19. package/dist/cjs/internal/runtime/index.cjs +5 -2
  20. package/dist/cjs/internal/runtime/index.cjs.map +3 -3
  21. package/dist/cjs/internal/typecheck/isolate-types.cjs +82 -1
  22. package/dist/cjs/internal/typecheck/isolate-types.cjs.map +3 -3
  23. package/dist/cjs/package.json +1 -1
  24. package/dist/cjs/playwright.cjs +76 -0
  25. package/dist/cjs/playwright.cjs.map +10 -0
  26. package/dist/cjs/runtime/namespaced-runtime.cjs +184 -0
  27. package/dist/cjs/runtime/namespaced-runtime.cjs.map +10 -0
  28. package/dist/cjs/runtime/test-event-subscriptions.cjs +76 -0
  29. package/dist/cjs/runtime/test-event-subscriptions.cjs.map +10 -0
  30. package/dist/cjs/runtime/test-runtime.cjs +26 -3
  31. package/dist/cjs/runtime/test-runtime.cjs.map +3 -3
  32. package/dist/mjs/bridge/runtime-bindings.mjs +36 -8
  33. package/dist/mjs/bridge/runtime-bindings.mjs.map +3 -3
  34. package/dist/mjs/bridge/sandbox-isolate.mjs +157 -2
  35. package/dist/mjs/bridge/sandbox-isolate.mjs.map +3 -3
  36. package/dist/mjs/host/create-isolate-host.mjs +85 -1
  37. package/dist/mjs/host/create-isolate-host.mjs.map +3 -3
  38. package/dist/mjs/host/nested-host-controller.mjs +95 -5
  39. package/dist/mjs/host/nested-host-controller.mjs.map +3 -3
  40. package/dist/mjs/index.mjs.map +1 -1
  41. package/dist/mjs/internal/browser-source.mjs +16 -5
  42. package/dist/mjs/internal/browser-source.mjs.map +3 -3
  43. package/dist/mjs/internal/client/connection.mjs +20 -9
  44. package/dist/mjs/internal/client/connection.mjs.map +3 -3
  45. package/dist/mjs/internal/daemon/connection.mjs +28 -10
  46. package/dist/mjs/internal/daemon/connection.mjs.map +3 -3
  47. package/dist/mjs/internal/protocol/types.mjs +2 -1
  48. package/dist/mjs/internal/protocol/types.mjs.map +3 -3
  49. package/dist/mjs/internal/runtime/index.mjs +5 -2
  50. package/dist/mjs/internal/runtime/index.mjs.map +3 -3
  51. package/dist/mjs/internal/typecheck/isolate-types.mjs +82 -1
  52. package/dist/mjs/internal/typecheck/isolate-types.mjs.map +3 -3
  53. package/dist/mjs/package.json +1 -1
  54. package/dist/mjs/playwright.mjs +47 -0
  55. package/dist/mjs/playwright.mjs.map +10 -0
  56. package/dist/mjs/runtime/namespaced-runtime.mjs +146 -0
  57. package/dist/mjs/runtime/namespaced-runtime.mjs.map +10 -0
  58. package/dist/mjs/runtime/test-event-subscriptions.mjs +36 -0
  59. package/dist/mjs/runtime/test-event-subscriptions.mjs.map +10 -0
  60. package/dist/mjs/runtime/test-runtime.mjs +26 -3
  61. package/dist/mjs/runtime/test-runtime.mjs.map +3 -3
  62. package/dist/types/bridge/sandbox-isolate.d.ts +9 -3
  63. package/dist/types/host/nested-host-controller.d.ts +5 -1
  64. package/dist/types/index.d.ts +1 -1
  65. package/dist/types/internal/browser-source.d.ts +1 -2
  66. package/dist/types/internal/client/types.d.ts +4 -0
  67. package/dist/types/internal/protocol/types.d.ts +8 -1
  68. package/dist/types/internal/typecheck/isolate-types.d.ts +2 -2
  69. package/dist/types/playwright.d.ts +26 -0
  70. package/dist/types/runtime/namespaced-runtime.d.ts +13 -0
  71. package/dist/types/runtime/test-event-subscriptions.d.ts +12 -0
  72. package/dist/types/types.d.ts +51 -3
  73. package/package.json +6 -1
@@ -2,9 +2,9 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/internal/browser-source.ts"],
4
4
  "sourcesContent": [
5
- "import type {\n HostBrowserBindings,\n} from \"../types.cjs\";\n\nexport const ISOLATE_BROWSER_DESCRIPTOR_PROPERTY = \"__isolateBrowserBinding\";\nexport const ISOLATE_BROWSER_DESCRIPTOR_VALUE = \"default\";\n\nexport interface BrowserSource extends HostBrowserBindings {}\n\nexport function isBrowserBindingLike(value: unknown): value is HostBrowserBindings {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n\n const candidate = value as Record<string, unknown>;\n return (\n typeof candidate.createContext === \"function\" ||\n typeof candidate.createPage === \"function\"\n );\n}\n\nexport function isDefaultBrowserDescriptor(value: unknown): boolean {\n return Boolean(\n value &&\n typeof value === \"object\" &&\n (value as Record<string, unknown>)[ISOLATE_BROWSER_DESCRIPTOR_PROPERTY] ===\n ISOLATE_BROWSER_DESCRIPTOR_VALUE,\n );\n}\n\nexport function createBrowserSourceFromBindings(\n browser: HostBrowserBindings | undefined,\n): BrowserSource | undefined {\n if (!browser) {\n return undefined;\n }\n\n return {\n createContext: browser.createContext,\n createPage: browser.createPage,\n };\n}\n\nexport function createBrowserSourceFromUnknown(\n browser: unknown,\n): BrowserSource | undefined {\n if (!isBrowserBindingLike(browser)) {\n return undefined;\n }\n\n return createBrowserSourceFromBindings(browser);\n}\n\nexport function requireBrowserSource(\n source: BrowserSource | undefined,\n operation: string,\n): BrowserSource {\n if (!source?.createContext || !source.createPage) {\n throw new Error(\n `${operation} requires a browser binding with createContext() and createPage().`,\n );\n }\n return source;\n}\n\nexport function cloneBrowserDescriptor(): Record<string, string> {\n return {\n [ISOLATE_BROWSER_DESCRIPTOR_PROPERTY]: ISOLATE_BROWSER_DESCRIPTOR_VALUE,\n };\n}\n"
5
+ "import type {\n HostBrowserBindings,\n} from \"../types.cjs\";\n\nexport const ISOLATE_BROWSER_DESCRIPTOR_PROPERTY = \"__isolateBrowserBinding\";\nexport const ISOLATE_BROWSER_DESCRIPTOR_VALUE = \"default\";\n\nexport type BrowserSource = HostBrowserBindings;\n\nexport function isBrowserBindingLike(value: unknown): value is HostBrowserBindings {\n if (!value || typeof value !== \"object\") {\n return false;\n }\n\n const candidate = value as Record<string, unknown>;\n return (\n typeof candidate.handler === \"function\" ||\n typeof candidate.createContext === \"function\" ||\n typeof candidate.createPage === \"function\"\n );\n}\n\nexport function isDefaultBrowserDescriptor(value: unknown): boolean {\n return Boolean(\n value &&\n typeof value === \"object\" &&\n (value as Record<string, unknown>)[ISOLATE_BROWSER_DESCRIPTOR_PROPERTY] ===\n ISOLATE_BROWSER_DESCRIPTOR_VALUE,\n );\n}\n\nexport function createBrowserSourceFromBindings(\n browser: HostBrowserBindings | undefined,\n): BrowserSource | undefined {\n if (!browser) {\n return undefined;\n }\n\n if (\"handler\" in browser && typeof browser.handler === \"function\") {\n return {\n handler: browser.handler,\n captureConsole: browser.captureConsole,\n onEvent: browser.onEvent,\n };\n }\n\n return {\n createContext: browser.createContext,\n createPage: browser.createPage,\n captureConsole: browser.captureConsole,\n onEvent: browser.onEvent,\n readFile: browser.readFile,\n writeFile: browser.writeFile,\n };\n}\n\nexport function createBrowserSourceFromUnknown(\n browser: unknown,\n): BrowserSource | undefined {\n if (!isBrowserBindingLike(browser)) {\n return undefined;\n }\n\n return createBrowserSourceFromBindings(browser);\n}\n\nexport function requireBrowserSource(\n source: BrowserSource | undefined,\n operation: string,\n): BrowserSource {\n if (!source) {\n throw new Error(\n `${operation} requires a browser binding.`,\n );\n }\n return source;\n}\n\nexport function cloneBrowserDescriptor(): Record<string, string> {\n return {\n [ISOLATE_BROWSER_DESCRIPTOR_PROPERTY]: ISOLATE_BROWSER_DESCRIPTOR_VALUE,\n };\n}\n"
6
6
  ],
7
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIO,IAAM,sCAAsC;AAC5C,IAAM,mCAAmC;AAIzC,SAAS,oBAAoB,CAAC,OAA8C;AAAA,EACjF,IAAI,CAAC,SAAS,OAAO,UAAU,UAAU;AAAA,IACvC,OAAO;AAAA,EACT;AAAA,EAEA,MAAM,YAAY;AAAA,EAClB,OACE,OAAO,UAAU,kBAAkB,cACnC,OAAO,UAAU,eAAe;AAAA;AAI7B,SAAS,0BAA0B,CAAC,OAAyB;AAAA,EAClE,OAAO,QACL,SACE,OAAO,UAAU,YAChB,MAAkC,yCACjC,gCACN;AAAA;AAGK,SAAS,+BAA+B,CAC7C,SAC2B;AAAA,EAC3B,IAAI,CAAC,SAAS;AAAA,IACZ;AAAA,EACF;AAAA,EAEA,OAAO;AAAA,IACL,eAAe,QAAQ;AAAA,IACvB,YAAY,QAAQ;AAAA,EACtB;AAAA;AAGK,SAAS,8BAA8B,CAC5C,SAC2B;AAAA,EAC3B,IAAI,CAAC,qBAAqB,OAAO,GAAG;AAAA,IAClC;AAAA,EACF;AAAA,EAEA,OAAO,gCAAgC,OAAO;AAAA;AAGzC,SAAS,oBAAoB,CAClC,QACA,WACe;AAAA,EACf,IAAI,CAAC,QAAQ,iBAAiB,CAAC,OAAO,YAAY;AAAA,IAChD,MAAM,IAAI,MACR,GAAG,6EACL;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAGF,SAAS,sBAAsB,GAA2B;AAAA,EAC/D,OAAO;AAAA,KACJ,sCAAsC;AAAA,EACzC;AAAA;",
8
- "debugId": "EA4A7B11B383438F64756E2164756E21",
7
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIO,IAAM,sCAAsC;AAC5C,IAAM,mCAAmC;AAIzC,SAAS,oBAAoB,CAAC,OAA8C;AAAA,EACjF,IAAI,CAAC,SAAS,OAAO,UAAU,UAAU;AAAA,IACvC,OAAO;AAAA,EACT;AAAA,EAEA,MAAM,YAAY;AAAA,EAClB,OACE,OAAO,UAAU,YAAY,cAC7B,OAAO,UAAU,kBAAkB,cACnC,OAAO,UAAU,eAAe;AAAA;AAI7B,SAAS,0BAA0B,CAAC,OAAyB;AAAA,EAClE,OAAO,QACL,SACE,OAAO,UAAU,YAChB,MAAkC,yCACjC,gCACN;AAAA;AAGK,SAAS,+BAA+B,CAC7C,SAC2B;AAAA,EAC3B,IAAI,CAAC,SAAS;AAAA,IACZ;AAAA,EACF;AAAA,EAEA,IAAI,aAAa,WAAW,OAAO,QAAQ,YAAY,YAAY;AAAA,IACjE,OAAO;AAAA,MACL,SAAS,QAAQ;AAAA,MACjB,gBAAgB,QAAQ;AAAA,MACxB,SAAS,QAAQ;AAAA,IACnB;AAAA,EACF;AAAA,EAEA,OAAO;AAAA,IACL,eAAe,QAAQ;AAAA,IACvB,YAAY,QAAQ;AAAA,IACpB,gBAAgB,QAAQ;AAAA,IACxB,SAAS,QAAQ;AAAA,IACjB,UAAU,QAAQ;AAAA,IAClB,WAAW,QAAQ;AAAA,EACrB;AAAA;AAGK,SAAS,8BAA8B,CAC5C,SAC2B;AAAA,EAC3B,IAAI,CAAC,qBAAqB,OAAO,GAAG;AAAA,IAClC;AAAA,EACF;AAAA,EAEA,OAAO,gCAAgC,OAAO;AAAA;AAGzC,SAAS,oBAAoB,CAClC,QACA,WACe;AAAA,EACf,IAAI,CAAC,QAAQ;AAAA,IACX,MAAM,IAAI,MACR,GAAG,uCACL;AAAA,EACF;AAAA,EACA,OAAO;AAAA;AAGF,SAAS,sBAAsB,GAA2B;AAAA,EAC/D,OAAO;AAAA,KACJ,sCAAsC;AAAA,EACzC;AAAA;",
8
+ "debugId": "2B1987CA1D9F43BF64756E2164756E21",
9
9
  "names": []
10
10
  }
@@ -214,7 +214,7 @@ async function connect(options = {}) {
214
214
  testEnvCallbacks.onEvent = {
215
215
  callbackId: onEventCallbackId,
216
216
  name: "testEnvironment.onEvent",
217
- type: "sync"
217
+ type: "async"
218
218
  };
219
219
  }
220
220
  testEnvironmentOption = {
@@ -255,6 +255,17 @@ async function connect(options = {}) {
255
255
  id,
256
256
  createRuntime: (runtimeOptions) => createRuntime(state, runtimeOptions, id)
257
257
  }),
258
+ disposeNamespace: async (id, options2) => {
259
+ state.namespacedRuntimes.delete(id);
260
+ const requestId = state.nextRequestId++;
261
+ const request = {
262
+ type: import_protocol.MessageType.DISPOSE_NAMESPACE,
263
+ requestId,
264
+ namespaceId: id,
265
+ reason: typeof options2?.reason === "string" && options2.reason.length > 0 ? options2.reason : undefined
266
+ };
267
+ await sendRequest(state, request);
268
+ },
258
269
  close: async () => {
259
270
  state.closing = true;
260
271
  state.connected = false;
@@ -737,7 +748,7 @@ async function createRuntime(state, options = {}, namespaceId) {
737
748
  testEnvCallbacks.onEvent = {
738
749
  callbackId: onEventCallbackId,
739
750
  name: "testEnvironment.onEvent",
740
- type: "sync"
751
+ type: "async"
741
752
  };
742
753
  }
743
754
  testEnvironmentOption = {
@@ -1167,8 +1178,8 @@ async function createRuntime(state, options = {}, namespaceId) {
1167
1178
  }
1168
1179
  function registerEventCallback(state, handler) {
1169
1180
  const callbackId = state.nextCallbackId++;
1170
- state.callbacks.set(callbackId, (data) => {
1171
- handler(data);
1181
+ state.callbacks.set(callbackId, async (data) => {
1182
+ await handler(data);
1172
1183
  return;
1173
1184
  });
1174
1185
  return callbackId;
@@ -1177,10 +1188,10 @@ function registerConsoleCallbacks(state, callbacks) {
1177
1188
  const registrations = {};
1178
1189
  if (callbacks.onEntry) {
1179
1190
  const callbackId = state.nextCallbackId++;
1180
- state.callbacks.set(callbackId, (entry) => {
1181
- callbacks.onEntry(entry);
1191
+ state.callbacks.set(callbackId, async (entry) => {
1192
+ await callbacks.onEntry(entry);
1182
1193
  });
1183
- registrations.onEntry = { callbackId, name: "onEntry", type: "sync" };
1194
+ registrations.onEntry = { callbackId, name: "onEntry", type: "async" };
1184
1195
  }
1185
1196
  return registrations;
1186
1197
  }
@@ -1478,7 +1489,7 @@ function registerCustomFunctions(state, customFunctions) {
1478
1489
  registerCallback: (fn) => {
1479
1490
  const returnedCallbackId = state.nextCallbackId++;
1480
1491
  state.callbacks.set(returnedCallbackId, async (...args) => {
1481
- const fnResult = await fn(...args);
1492
+ const fnResult = fn(...args);
1482
1493
  const marshalledResult = await import_protocol.marshalValue(fnResult, marshalCtx);
1483
1494
  return addCallbackIdsToRefs(marshalledResult);
1484
1495
  });
@@ -1948,4 +1959,4 @@ function handleClientWsClose(isolateId, payload, state) {
1948
1959
  }
1949
1960
  }
1950
1961
 
1951
- //# debugId=D2E0738CC59A08A764756E2164756E21
1962
+ //# debugId=51CB492CCA4B24A064756E2164756E21