@ricsam/isolate 0.0.1 → 0.1.0

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 (299) hide show
  1. package/dist/cjs/bridge/diagnostics.cjs +58 -0
  2. package/dist/cjs/bridge/diagnostics.cjs.map +10 -0
  3. package/dist/cjs/bridge/legacy-adapters.cjs +242 -0
  4. package/dist/cjs/bridge/legacy-adapters.cjs.map +10 -0
  5. package/dist/cjs/bridge/request-context.cjs +59 -0
  6. package/dist/cjs/bridge/request-context.cjs.map +10 -0
  7. package/dist/cjs/bridge/runtime-bindings.cjs +367 -0
  8. package/dist/cjs/bridge/runtime-bindings.cjs.map +10 -0
  9. package/dist/cjs/browser/browser-runtime.cjs +157 -0
  10. package/dist/cjs/browser/browser-runtime.cjs.map +10 -0
  11. package/dist/cjs/daemon.cjs +91 -0
  12. package/dist/cjs/daemon.cjs.map +10 -0
  13. package/dist/cjs/files/index.cjs +140 -0
  14. package/dist/cjs/files/index.cjs.map +10 -0
  15. package/dist/cjs/host/create-isolate-host.cjs +235 -0
  16. package/dist/cjs/host/create-isolate-host.cjs.map +10 -0
  17. package/dist/cjs/host/index.cjs +47 -0
  18. package/dist/cjs/host/index.cjs.map +10 -0
  19. package/dist/cjs/index.cjs +55 -0
  20. package/dist/cjs/index.cjs.map +10 -0
  21. package/dist/cjs/internal/client/connection.cjs +1919 -0
  22. package/dist/cjs/internal/client/connection.cjs.map +10 -0
  23. package/dist/cjs/internal/client/index.cjs +48 -0
  24. package/dist/cjs/internal/client/index.cjs.map +10 -0
  25. package/dist/cjs/internal/client/types.cjs +30 -0
  26. package/dist/cjs/internal/client/types.cjs.map +9 -0
  27. package/dist/cjs/internal/console/index.cjs +506 -0
  28. package/dist/cjs/internal/console/index.cjs.map +10 -0
  29. package/dist/cjs/internal/console/utils.cjs +70 -0
  30. package/dist/cjs/internal/console/utils.cjs.map +10 -0
  31. package/dist/cjs/internal/core/index.cjs +2745 -0
  32. package/dist/cjs/internal/core/index.cjs.map +10 -0
  33. package/dist/cjs/internal/crypto/index.cjs +470 -0
  34. package/dist/cjs/internal/crypto/index.cjs.map +10 -0
  35. package/dist/cjs/internal/daemon/callback-fs-handler.cjs +355 -0
  36. package/dist/cjs/internal/daemon/callback-fs-handler.cjs.map +10 -0
  37. package/dist/cjs/internal/daemon/connection.cjs +1952 -0
  38. package/dist/cjs/internal/daemon/connection.cjs.map +10 -0
  39. package/dist/cjs/internal/daemon/daemon.cjs +98 -0
  40. package/dist/cjs/internal/daemon/daemon.cjs.map +10 -0
  41. package/dist/cjs/internal/daemon/index.cjs +145 -0
  42. package/dist/cjs/internal/daemon/index.cjs.map +10 -0
  43. package/dist/cjs/internal/daemon/runtime-pool.cjs +106 -0
  44. package/dist/cjs/internal/daemon/runtime-pool.cjs.map +10 -0
  45. package/dist/cjs/internal/daemon/types.cjs +30 -0
  46. package/dist/cjs/internal/daemon/types.cjs.map +9 -0
  47. package/dist/cjs/internal/encoding/index.cjs +419 -0
  48. package/dist/cjs/internal/encoding/index.cjs.map +10 -0
  49. package/dist/cjs/internal/fetch/consistency/origins.cjs +598 -0
  50. package/dist/cjs/internal/fetch/consistency/origins.cjs.map +10 -0
  51. package/dist/cjs/internal/fetch/index.cjs +2640 -0
  52. package/dist/cjs/internal/fetch/index.cjs.map +10 -0
  53. package/dist/cjs/internal/fetch/stream-state.cjs +256 -0
  54. package/dist/cjs/internal/fetch/stream-state.cjs.map +10 -0
  55. package/dist/cjs/internal/fs/index.cjs +847 -0
  56. package/dist/cjs/internal/fs/index.cjs.map +10 -0
  57. package/dist/cjs/internal/fs/node-adapter.cjs +254 -0
  58. package/dist/cjs/internal/fs/node-adapter.cjs.map +10 -0
  59. package/dist/cjs/internal/module-loader/bundle.cjs +482 -0
  60. package/dist/cjs/internal/module-loader/bundle.cjs.map +10 -0
  61. package/dist/cjs/internal/module-loader/index.cjs +240 -0
  62. package/dist/cjs/internal/module-loader/index.cjs.map +10 -0
  63. package/dist/cjs/internal/module-loader/mappings.cjs +120 -0
  64. package/dist/cjs/internal/module-loader/mappings.cjs.map +10 -0
  65. package/dist/cjs/internal/module-loader/resolve.cjs +177 -0
  66. package/dist/cjs/internal/module-loader/resolve.cjs.map +10 -0
  67. package/dist/cjs/internal/module-loader/strip-types.cjs +236 -0
  68. package/dist/cjs/internal/module-loader/strip-types.cjs.map +10 -0
  69. package/dist/cjs/internal/path/index.cjs +503 -0
  70. package/dist/cjs/internal/path/index.cjs.map +10 -0
  71. package/dist/cjs/internal/playwright/client.cjs +49 -0
  72. package/dist/cjs/internal/playwright/client.cjs.map +10 -0
  73. package/dist/cjs/internal/playwright/handler.cjs +1416 -0
  74. package/dist/cjs/internal/playwright/handler.cjs.map +10 -0
  75. package/dist/cjs/internal/playwright/index.cjs +1289 -0
  76. package/dist/cjs/internal/playwright/index.cjs.map +10 -0
  77. package/dist/cjs/internal/playwright/types.cjs +47 -0
  78. package/dist/cjs/internal/playwright/types.cjs.map +10 -0
  79. package/dist/cjs/internal/protocol/codec.cjs +510 -0
  80. package/dist/cjs/internal/protocol/codec.cjs.map +10 -0
  81. package/dist/cjs/internal/protocol/framing.cjs +141 -0
  82. package/dist/cjs/internal/protocol/framing.cjs.map +10 -0
  83. package/dist/cjs/internal/protocol/index.cjs +110 -0
  84. package/dist/cjs/internal/protocol/index.cjs.map +10 -0
  85. package/dist/cjs/internal/protocol/marshalValue.cjs +518 -0
  86. package/dist/cjs/internal/protocol/marshalValue.cjs.map +10 -0
  87. package/dist/cjs/internal/protocol/serialization.cjs +109 -0
  88. package/dist/cjs/internal/protocol/serialization.cjs.map +10 -0
  89. package/dist/cjs/internal/protocol/types.cjs +181 -0
  90. package/dist/cjs/internal/protocol/types.cjs.map +10 -0
  91. package/dist/cjs/internal/runtime/index.cjs +1235 -0
  92. package/dist/cjs/internal/runtime/index.cjs.map +10 -0
  93. package/dist/cjs/internal/server/index.cjs +223 -0
  94. package/dist/cjs/internal/server/index.cjs.map +10 -0
  95. package/dist/cjs/internal/test-environment/index.cjs +1415 -0
  96. package/dist/cjs/internal/test-environment/index.cjs.map +10 -0
  97. package/dist/cjs/internal/timers/index.cjs +200 -0
  98. package/dist/cjs/internal/timers/index.cjs.map +10 -0
  99. package/dist/cjs/internal/transform/index.cjs +361 -0
  100. package/dist/cjs/internal/transform/index.cjs.map +10 -0
  101. package/dist/cjs/internal/typecheck/index.cjs +60 -0
  102. package/dist/cjs/internal/typecheck/index.cjs.map +10 -0
  103. package/dist/cjs/internal/typecheck/isolate-types.cjs +2614 -0
  104. package/dist/cjs/internal/typecheck/isolate-types.cjs.map +10 -0
  105. package/dist/cjs/internal/typecheck/typecheck.cjs +131 -0
  106. package/dist/cjs/internal/typecheck/typecheck.cjs.map +10 -0
  107. package/dist/cjs/modules/index.cjs +160 -0
  108. package/dist/cjs/modules/index.cjs.map +10 -0
  109. package/dist/cjs/package.json +5 -0
  110. package/dist/cjs/runtime/script-runtime.cjs +97 -0
  111. package/dist/cjs/runtime/script-runtime.cjs.map +10 -0
  112. package/dist/cjs/server/app-server.cjs +158 -0
  113. package/dist/cjs/server/app-server.cjs.map +10 -0
  114. package/dist/cjs/testing/integration-helpers.cjs +127 -0
  115. package/dist/cjs/testing/integration-helpers.cjs.map +10 -0
  116. package/dist/cjs/typecheck/index.cjs +96 -0
  117. package/dist/cjs/typecheck/index.cjs.map +10 -0
  118. package/dist/cjs/types.cjs +30 -0
  119. package/dist/cjs/types.cjs.map +9 -0
  120. package/dist/mjs/bridge/diagnostics.mjs +18 -0
  121. package/dist/mjs/bridge/diagnostics.mjs.map +10 -0
  122. package/dist/mjs/bridge/legacy-adapters.mjs +178 -0
  123. package/dist/mjs/bridge/legacy-adapters.mjs.map +10 -0
  124. package/dist/mjs/bridge/request-context.mjs +19 -0
  125. package/dist/mjs/bridge/request-context.mjs.map +10 -0
  126. package/dist/mjs/bridge/runtime-bindings.mjs +303 -0
  127. package/dist/mjs/bridge/runtime-bindings.mjs.map +10 -0
  128. package/dist/mjs/browser/browser-runtime.mjs +93 -0
  129. package/dist/mjs/browser/browser-runtime.mjs.map +10 -0
  130. package/dist/mjs/daemon.mjs +91 -0
  131. package/dist/mjs/daemon.mjs.map +10 -0
  132. package/dist/mjs/files/index.mjs +76 -0
  133. package/dist/mjs/files/index.mjs.map +10 -0
  134. package/dist/mjs/host/create-isolate-host.mjs +171 -0
  135. package/dist/mjs/host/create-isolate-host.mjs.map +10 -0
  136. package/dist/mjs/host/index.mjs +7 -0
  137. package/dist/mjs/host/index.mjs.map +10 -0
  138. package/dist/mjs/index.mjs +15 -0
  139. package/dist/mjs/index.mjs.map +10 -0
  140. package/dist/mjs/internal/client/connection.mjs +1872 -0
  141. package/dist/mjs/internal/client/connection.mjs.map +10 -0
  142. package/dist/mjs/internal/client/index.mjs +8 -0
  143. package/dist/mjs/internal/client/index.mjs.map +10 -0
  144. package/dist/mjs/internal/client/types.mjs +2 -0
  145. package/dist/mjs/internal/client/types.mjs.map +9 -0
  146. package/dist/mjs/internal/console/index.mjs +442 -0
  147. package/dist/mjs/internal/console/index.mjs.map +10 -0
  148. package/dist/mjs/internal/console/utils.mjs +30 -0
  149. package/dist/mjs/internal/console/utils.mjs.map +10 -0
  150. package/dist/mjs/internal/core/index.mjs +2681 -0
  151. package/dist/mjs/internal/core/index.mjs.map +10 -0
  152. package/dist/mjs/internal/crypto/index.mjs +406 -0
  153. package/dist/mjs/internal/crypto/index.mjs.map +10 -0
  154. package/dist/mjs/internal/daemon/callback-fs-handler.mjs +315 -0
  155. package/dist/mjs/internal/daemon/callback-fs-handler.mjs.map +10 -0
  156. package/dist/mjs/internal/daemon/connection.mjs +1931 -0
  157. package/dist/mjs/internal/daemon/connection.mjs.map +10 -0
  158. package/dist/mjs/internal/daemon/daemon.mjs +98 -0
  159. package/dist/mjs/internal/daemon/daemon.mjs.map +10 -0
  160. package/dist/mjs/internal/daemon/index.mjs +105 -0
  161. package/dist/mjs/internal/daemon/index.mjs.map +10 -0
  162. package/dist/mjs/internal/daemon/runtime-pool.mjs +66 -0
  163. package/dist/mjs/internal/daemon/runtime-pool.mjs.map +10 -0
  164. package/dist/mjs/internal/daemon/types.mjs +2 -0
  165. package/dist/mjs/internal/daemon/types.mjs.map +9 -0
  166. package/dist/mjs/internal/encoding/index.mjs +379 -0
  167. package/dist/mjs/internal/encoding/index.mjs.map +10 -0
  168. package/dist/mjs/internal/fetch/consistency/origins.mjs +558 -0
  169. package/dist/mjs/internal/fetch/consistency/origins.mjs.map +10 -0
  170. package/dist/mjs/internal/fetch/index.mjs +2580 -0
  171. package/dist/mjs/internal/fetch/index.mjs.map +10 -0
  172. package/dist/mjs/internal/fetch/stream-state.mjs +216 -0
  173. package/dist/mjs/internal/fetch/stream-state.mjs.map +10 -0
  174. package/dist/mjs/internal/fs/index.mjs +783 -0
  175. package/dist/mjs/internal/fs/index.mjs.map +10 -0
  176. package/dist/mjs/internal/fs/node-adapter.mjs +190 -0
  177. package/dist/mjs/internal/fs/node-adapter.mjs.map +10 -0
  178. package/dist/mjs/internal/module-loader/bundle.mjs +418 -0
  179. package/dist/mjs/internal/module-loader/bundle.mjs.map +10 -0
  180. package/dist/mjs/internal/module-loader/index.mjs +185 -0
  181. package/dist/mjs/internal/module-loader/index.mjs.map +10 -0
  182. package/dist/mjs/internal/module-loader/mappings.mjs +80 -0
  183. package/dist/mjs/internal/module-loader/mappings.mjs.map +10 -0
  184. package/dist/mjs/internal/module-loader/resolve.mjs +113 -0
  185. package/dist/mjs/internal/module-loader/resolve.mjs.map +10 -0
  186. package/dist/mjs/internal/module-loader/strip-types.mjs +172 -0
  187. package/dist/mjs/internal/module-loader/strip-types.mjs.map +10 -0
  188. package/dist/mjs/internal/path/index.mjs +463 -0
  189. package/dist/mjs/internal/path/index.mjs.map +10 -0
  190. package/dist/mjs/internal/playwright/client.mjs +13 -0
  191. package/dist/mjs/internal/playwright/client.mjs.map +10 -0
  192. package/dist/mjs/internal/playwright/handler.mjs +1378 -0
  193. package/dist/mjs/internal/playwright/handler.mjs.map +10 -0
  194. package/dist/mjs/internal/playwright/index.mjs +1234 -0
  195. package/dist/mjs/internal/playwright/index.mjs.map +10 -0
  196. package/dist/mjs/internal/playwright/types.mjs +7 -0
  197. package/dist/mjs/internal/playwright/types.mjs.map +10 -0
  198. package/dist/mjs/internal/protocol/codec.mjs +470 -0
  199. package/dist/mjs/internal/protocol/codec.mjs.map +10 -0
  200. package/dist/mjs/internal/protocol/framing.mjs +101 -0
  201. package/dist/mjs/internal/protocol/framing.mjs.map +10 -0
  202. package/dist/mjs/internal/protocol/index.mjs +98 -0
  203. package/dist/mjs/internal/protocol/index.mjs.map +10 -0
  204. package/dist/mjs/internal/protocol/marshalValue.mjs +494 -0
  205. package/dist/mjs/internal/protocol/marshalValue.mjs.map +10 -0
  206. package/dist/mjs/internal/protocol/serialization.mjs +69 -0
  207. package/dist/mjs/internal/protocol/serialization.mjs.map +10 -0
  208. package/dist/mjs/internal/protocol/types.mjs +141 -0
  209. package/dist/mjs/internal/protocol/types.mjs.map +10 -0
  210. package/dist/mjs/internal/runtime/index.mjs +1198 -0
  211. package/dist/mjs/internal/runtime/index.mjs.map +10 -0
  212. package/dist/mjs/internal/server/index.mjs +183 -0
  213. package/dist/mjs/internal/server/index.mjs.map +10 -0
  214. package/dist/mjs/internal/test-environment/index.mjs +1351 -0
  215. package/dist/mjs/internal/test-environment/index.mjs.map +10 -0
  216. package/dist/mjs/internal/timers/index.mjs +136 -0
  217. package/dist/mjs/internal/timers/index.mjs.map +10 -0
  218. package/dist/mjs/internal/transform/index.mjs +321 -0
  219. package/dist/mjs/internal/transform/index.mjs.map +10 -0
  220. package/dist/mjs/internal/typecheck/index.mjs +35 -0
  221. package/dist/mjs/internal/typecheck/index.mjs.map +10 -0
  222. package/dist/mjs/internal/typecheck/isolate-types.mjs +2574 -0
  223. package/dist/mjs/internal/typecheck/isolate-types.mjs.map +10 -0
  224. package/dist/mjs/internal/typecheck/typecheck.mjs +91 -0
  225. package/dist/mjs/internal/typecheck/typecheck.mjs.map +10 -0
  226. package/dist/mjs/modules/index.mjs +96 -0
  227. package/dist/mjs/modules/index.mjs.map +10 -0
  228. package/dist/mjs/package.json +5 -0
  229. package/dist/mjs/runtime/script-runtime.mjs +57 -0
  230. package/dist/mjs/runtime/script-runtime.mjs.map +10 -0
  231. package/dist/mjs/server/app-server.mjs +118 -0
  232. package/dist/mjs/server/app-server.mjs.map +10 -0
  233. package/dist/mjs/testing/integration-helpers.mjs +63 -0
  234. package/dist/mjs/testing/integration-helpers.mjs.map +10 -0
  235. package/dist/mjs/typecheck/index.mjs +56 -0
  236. package/dist/mjs/typecheck/index.mjs.map +10 -0
  237. package/dist/mjs/types.mjs +2 -0
  238. package/dist/mjs/types.mjs.map +9 -0
  239. package/dist/types/bridge/diagnostics.d.ts +12 -0
  240. package/dist/types/bridge/legacy-adapters.d.ts +14 -0
  241. package/dist/types/bridge/request-context.d.ts +10 -0
  242. package/dist/types/bridge/runtime-bindings.d.ts +14 -0
  243. package/dist/types/browser/browser-runtime.d.ts +3 -0
  244. package/dist/types/daemon.d.ts +2 -0
  245. package/dist/types/files/index.d.ts +5 -0
  246. package/dist/types/host/create-isolate-host.d.ts +2 -0
  247. package/dist/types/host/index.d.ts +1 -0
  248. package/dist/types/index.d.ts +5 -0
  249. package/dist/types/internal/client/connection.d.ts +9 -0
  250. package/dist/types/internal/client/index.d.ts +8 -0
  251. package/dist/types/internal/client/types.d.ts +198 -0
  252. package/dist/types/internal/console/index.d.ts +108 -0
  253. package/dist/types/internal/console/utils.d.ts +27 -0
  254. package/dist/types/internal/core/index.d.ts +119 -0
  255. package/dist/types/internal/crypto/index.d.ts +18 -0
  256. package/dist/types/internal/daemon/callback-fs-handler.d.ts +28 -0
  257. package/dist/types/internal/daemon/connection.d.ts +9 -0
  258. package/dist/types/internal/daemon/daemon.d.ts +2 -0
  259. package/dist/types/internal/daemon/index.d.ts +14 -0
  260. package/dist/types/internal/daemon/runtime-pool.d.ts +16 -0
  261. package/dist/types/internal/daemon/types.d.ts +211 -0
  262. package/dist/types/internal/encoding/index.d.ts +21 -0
  263. package/dist/types/internal/fetch/consistency/origins.d.ts +179 -0
  264. package/dist/types/internal/fetch/index.d.ts +93 -0
  265. package/dist/types/internal/fetch/stream-state.d.ts +65 -0
  266. package/dist/types/internal/fs/index.d.ts +70 -0
  267. package/dist/types/internal/fs/node-adapter.d.ts +24 -0
  268. package/dist/types/internal/module-loader/bundle.d.ts +33 -0
  269. package/dist/types/internal/module-loader/index.d.ts +30 -0
  270. package/dist/types/internal/module-loader/mappings.d.ts +47 -0
  271. package/dist/types/internal/module-loader/resolve.d.ts +26 -0
  272. package/dist/types/internal/module-loader/strip-types.d.ts +19 -0
  273. package/dist/types/internal/path/index.d.ts +23 -0
  274. package/dist/types/internal/playwright/client.d.ts +7 -0
  275. package/dist/types/internal/playwright/handler.d.ts +44 -0
  276. package/dist/types/internal/playwright/index.d.ts +14 -0
  277. package/dist/types/internal/playwright/types.d.ts +145 -0
  278. package/dist/types/internal/protocol/codec.d.ts +242 -0
  279. package/dist/types/internal/protocol/framing.d.ts +89 -0
  280. package/dist/types/internal/protocol/index.d.ts +10 -0
  281. package/dist/types/internal/protocol/marshalValue.d.ts +79 -0
  282. package/dist/types/internal/protocol/serialization.d.ts +23 -0
  283. package/dist/types/internal/protocol/types.d.ts +996 -0
  284. package/dist/types/internal/runtime/index.d.ts +200 -0
  285. package/dist/types/internal/server/index.d.ts +42 -0
  286. package/dist/types/internal/test-environment/index.d.ts +112 -0
  287. package/dist/types/internal/timers/index.d.ts +22 -0
  288. package/dist/types/internal/transform/index.d.ts +36 -0
  289. package/dist/types/internal/typecheck/index.d.ts +7 -0
  290. package/dist/types/internal/typecheck/isolate-types.d.ts +94 -0
  291. package/dist/types/internal/typecheck/typecheck.d.ts +148 -0
  292. package/dist/types/modules/index.d.ts +2 -0
  293. package/dist/types/runtime/script-runtime.d.ts +6 -0
  294. package/dist/types/server/app-server.d.ts +3 -0
  295. package/dist/types/testing/integration-helpers.d.ts +9 -0
  296. package/dist/types/typecheck/index.d.ts +8 -0
  297. package/dist/types/types.d.ts +233 -0
  298. package/package.json +74 -6
  299. package/README.md +0 -45
@@ -0,0 +1,200 @@
1
+ export { normalizeEntryFilename } from "../protocol/index.ts";
2
+ import type { DispatchRequestOptions, UpgradeRequest, WebSocketCommand, ClientWebSocketCommand } from "../fetch/index.ts";
3
+ import type { FsOptions } from "../fs/index.ts";
4
+ import type { RunResults } from "../test-environment/index.ts";
5
+ import type { NetworkRequestInfo, NetworkResponseInfo, BrowserConsoleLogEntry, PageErrorInfo, RequestFailureInfo } from "../playwright/index.ts";
6
+ import type { EvalOptions as ProtocolEvalOptions, PlaywrightOptions as ProtocolPlaywrightOptions, BaseRuntimeOptions } from "../protocol/index.ts";
7
+ import { type MarshalContext } from "../protocol/index.ts";
8
+ export type { ConsoleCallbacks, ConsoleEntry, FetchCallback, FetchRequestInit, ModuleLoaderCallback, CustomFunction, CustomFunctionDefinition, CustomFunctions, DispatchOptions, } from "../protocol/index.ts";
9
+ export type EvalOptions = ProtocolEvalOptions;
10
+ export type PlaywrightOptions = ProtocolPlaywrightOptions;
11
+ /**
12
+ * Options for customizing how custom function return values are marshalled.
13
+ * Used by the daemon to support returned callbacks/promises/iterators via IPC.
14
+ */
15
+ export interface CustomFunctionsMarshalOptions {
16
+ /** Factory to create a MarshalContext for registering returned callbacks/promises/iterators */
17
+ createMarshalContext: () => MarshalContext;
18
+ /** Post-processor to add callback IDs to PromiseRef/AsyncIteratorRef values */
19
+ addCallbackIdsToRefs: (value: unknown) => unknown;
20
+ /** Handler for numeric callback IDs from marshalled refs (CallbackRef, PromiseRef, AsyncIteratorRef) */
21
+ invokeCallback: (callbackId: number, args: unknown[]) => Promise<unknown>;
22
+ }
23
+ /**
24
+ * Options for creating a runtime.
25
+ * Extends BaseRuntimeOptions and adds runtime-specific fs type.
26
+ */
27
+ export interface RuntimeOptions<T extends Record<string, any[]> = Record<string, unknown[]>> extends BaseRuntimeOptions<T> {
28
+ /**
29
+ * File system options.
30
+ * Note: For local runtime, this uses FsOptions with getDirectory returning a FileSystemHandler.
31
+ * For remote runtime (isolate-client), use FileSystemCallbacks instead.
32
+ */
33
+ fs?: FsOptions;
34
+ /**
35
+ * Optional marshal options for custom functions.
36
+ * When provided, enables MarshalContext-based marshalling for returned values.
37
+ * Used by the daemon for IPC proxying of callbacks/promises/iterators.
38
+ */
39
+ customFunctionsMarshalOptions?: CustomFunctionsMarshalOptions;
40
+ }
41
+ /**
42
+ * Runtime fetch handle - provides access to fetch/serve operations.
43
+ */
44
+ export interface RuntimeFetchHandle {
45
+ /** Dispatch HTTP request to serve() handler */
46
+ dispatchRequest(request: Request, options?: DispatchRequestOptions): Promise<Response>;
47
+ /** Check if isolate requested WebSocket upgrade */
48
+ getUpgradeRequest(): UpgradeRequest | null;
49
+ /** Dispatch WebSocket open event to isolate */
50
+ dispatchWebSocketOpen(connectionId: string): void;
51
+ /** Dispatch WebSocket message event to isolate */
52
+ dispatchWebSocketMessage(connectionId: string, message: string | ArrayBuffer): void;
53
+ /** Dispatch WebSocket close event to isolate */
54
+ dispatchWebSocketClose(connectionId: string, code: number, reason: string): void;
55
+ /** Dispatch WebSocket error event to isolate */
56
+ dispatchWebSocketError(connectionId: string, error: Error): void;
57
+ /** Register callback for WebSocket commands from isolate */
58
+ onWebSocketCommand(callback: (cmd: WebSocketCommand) => void): () => void;
59
+ /** Check if serve() has been called */
60
+ hasServeHandler(): boolean;
61
+ /** Check if there are active WebSocket connections */
62
+ hasActiveConnections(): boolean;
63
+ /** Dispatch open event to a client WebSocket in the isolate */
64
+ dispatchClientWebSocketOpen(socketId: string, protocol: string, extensions: string): void;
65
+ /** Dispatch message event to a client WebSocket in the isolate */
66
+ dispatchClientWebSocketMessage(socketId: string, data: string | ArrayBuffer): void;
67
+ /** Dispatch close event to a client WebSocket in the isolate */
68
+ dispatchClientWebSocketClose(socketId: string, code: number, reason: string, wasClean: boolean): void;
69
+ /** Dispatch error event to a client WebSocket in the isolate */
70
+ dispatchClientWebSocketError(socketId: string): void;
71
+ /** Register callback for client WebSocket commands from isolate */
72
+ onClientWebSocketCommand(callback: (cmd: ClientWebSocketCommand) => void): () => void;
73
+ /** Register callback for events emitted from isolate code */
74
+ onEvent(callback: (event: string, payload: unknown) => void): () => void;
75
+ /** Dispatch an event into the isolate (calls __on listeners) */
76
+ dispatchEvent(event: string, payload: unknown): void;
77
+ }
78
+ /**
79
+ * Runtime timers handle - provides access to timer operations.
80
+ * Timers fire automatically based on real time.
81
+ */
82
+ export interface RuntimeTimersHandle {
83
+ /** Clear all pending timers */
84
+ clearAll(): void;
85
+ }
86
+ /**
87
+ * Runtime console handle - provides access to console state.
88
+ */
89
+ export interface RuntimeConsoleHandle {
90
+ /** Reset all console state (timers, counters, group depth) */
91
+ reset(): void;
92
+ /** Get console.time() timers */
93
+ getTimers(): Map<string, number>;
94
+ /** Get console.count() counters */
95
+ getCounters(): Map<string, number>;
96
+ /** Get current console.group() nesting depth */
97
+ getGroupDepth(): number;
98
+ }
99
+ /**
100
+ * Runtime test environment handle - provides access to test execution.
101
+ */
102
+ export interface RuntimeTestEnvironmentHandle {
103
+ /** Run all registered tests */
104
+ runTests(timeout?: number): Promise<RunResults>;
105
+ /** Check if any tests are registered */
106
+ hasTests(): boolean;
107
+ /** Get count of registered tests */
108
+ getTestCount(): number;
109
+ /** Reset test state */
110
+ reset(): void;
111
+ }
112
+ /**
113
+ * Runtime playwright handle - provides access to browser data collection.
114
+ */
115
+ export interface RuntimePlaywrightHandle {
116
+ /** Get collected browser data (console logs, network requests/responses) */
117
+ getCollectedData(): CollectedData;
118
+ /** Clear collected browser data */
119
+ clearCollectedData(): void;
120
+ }
121
+ /**
122
+ * Collected browser data from playwright.
123
+ */
124
+ export interface CollectedData {
125
+ /** Browser console logs (from the page, not sandbox) */
126
+ browserConsoleLogs: BrowserConsoleLogEntry[];
127
+ pageErrors: PageErrorInfo[];
128
+ networkRequests: NetworkRequestInfo[];
129
+ networkResponses: NetworkResponseInfo[];
130
+ requestFailures: RequestFailureInfo[];
131
+ }
132
+ /**
133
+ * Runtime handle - the main interface for interacting with the isolate.
134
+ */
135
+ export interface RuntimeHandle {
136
+ /** Unique runtime identifier */
137
+ readonly id: string;
138
+ /** Execute code as ES module (supports top-level await) */
139
+ eval(code: string, filenameOrOptions?: string | EvalOptions): Promise<void>;
140
+ /** Dispose all resources */
141
+ dispose(): Promise<void>;
142
+ /** Clear module cache and source maps (used for namespace pooling/reuse) */
143
+ clearModuleCache(): void;
144
+ /**
145
+ * Array of pending callback promises. Push promises here to have them
146
+ * awaited after each eval() call completes. Used by daemon for IPC flush.
147
+ * For standalone use this array stays empty (callbacks are synchronous).
148
+ */
149
+ readonly pendingCallbacks: Promise<unknown>[];
150
+ /** Fetch handle - access to fetch/serve operations */
151
+ readonly fetch: RuntimeFetchHandle;
152
+ /** Timers handle - access to timer operations */
153
+ readonly timers: RuntimeTimersHandle;
154
+ /** Console handle - access to console state */
155
+ readonly console: RuntimeConsoleHandle;
156
+ /** Test environment handle - access to test execution (throws if not enabled) */
157
+ readonly testEnvironment: RuntimeTestEnvironmentHandle;
158
+ /** Playwright handle - access to playwright operations (throws if not configured) */
159
+ readonly playwright: RuntimePlaywrightHandle;
160
+ }
161
+ /**
162
+ * Create a fully configured isolated-vm runtime
163
+ *
164
+ * Sets up all WHATWG APIs: fetch, fs, console, crypto, encoding, timers
165
+ *
166
+ * @example
167
+ * const runtime = await createRuntime({
168
+ * console: { log: (...args) => console.log("[isolate]", ...args) },
169
+ * fetch: async (request) => fetch(request),
170
+ * });
171
+ *
172
+ * await runtime.eval(`
173
+ * console.log("Hello from sandbox!");
174
+ * const response = await fetch("https://example.com");
175
+ * `);
176
+ *
177
+ * await runtime.dispose();
178
+ */
179
+ export declare function createRuntime<T extends Record<string, any[]> = Record<string, unknown[]>>(options?: RuntimeOptions<T>): Promise<RuntimeHandle>;
180
+ export { setupCore } from "../core/index.ts";
181
+ export type { CoreHandle, SetupCoreOptions } from "../core/index.ts";
182
+ export { setupConsole } from "../console/index.ts";
183
+ export { simpleConsoleHandler, type SimpleConsoleCallbacks, } from "../console/utils.ts";
184
+ export type { ConsoleHandle, ConsoleOptions, ConsoleEntry as ConsoleEntryFromConsole, } from "../console/index.ts";
185
+ export { setupCrypto } from "../crypto/index.ts";
186
+ export type { CryptoHandle } from "../crypto/index.ts";
187
+ export { setupEncoding } from "../encoding/index.ts";
188
+ export type { EncodingHandle } from "../encoding/index.ts";
189
+ export { setupFetch } from "../fetch/index.ts";
190
+ export type { FetchHandle, FetchOptions, WebSocketCommand, UpgradeRequest, ClientWebSocketCommand, } from "../fetch/index.ts";
191
+ export { setupFs, createNodeFileSystemHandler } from "../fs/index.ts";
192
+ export type { FsHandle, FsOptions, FileSystemHandler, NodeFileSystemHandlerOptions, } from "../fs/index.ts";
193
+ export { setupPath } from "../path/index.ts";
194
+ export type { PathHandle, PathOptions } from "../path/index.ts";
195
+ export { setupTimers } from "../timers/index.ts";
196
+ export type { TimersHandle } from "../timers/index.ts";
197
+ export { setupTestEnvironment, runTests, hasTests, getTestCount, } from "../test-environment/index.ts";
198
+ export type { TestEnvironmentHandle, TestEnvironmentOptions, RunResults, TestResult, TestInfo, TestError, TestEvent, SuiteInfo, SuiteResult, } from "../test-environment/index.ts";
199
+ export { setupPlaywright, createPlaywrightHandler, defaultPlaywrightHandler, getDefaultPlaywrightHandlerMetadata, } from "../playwright/index.ts";
200
+ export type { PlaywrightHandle, PlaywrightSetupOptions, PlaywrightCallback, PlaywrightEvent, NetworkRequestInfo, NetworkResponseInfo, BrowserConsoleLogEntry, PageErrorInfo, RequestFailureInfo, } from "../playwright/index.ts";
@@ -0,0 +1,42 @@
1
+ import type { DaemonConnection, DispatchOptions, RemoteRuntime, RuntimeOptions, UpgradeRequest, WebSocketCommand } from "../client/index.ts";
2
+ export interface IsolateServerOptions {
3
+ namespaceId: string;
4
+ getConnection: () => Promise<DaemonConnection>;
5
+ }
6
+ export interface IsolateServerStartOptions {
7
+ runtimeOptions: RuntimeOptions;
8
+ entry: string;
9
+ entryFilename?: string;
10
+ onWebSocketCommand?: (cmd: WebSocketCommand) => void;
11
+ }
12
+ export interface IsolateServerFetch {
13
+ dispatchRequest(request: Request, options?: DispatchOptions): Promise<Response>;
14
+ getUpgradeRequest(): Promise<UpgradeRequest | null>;
15
+ dispatchWebSocketOpen(connectionId: string): Promise<void>;
16
+ dispatchWebSocketMessage(connectionId: string, message: string | ArrayBuffer): Promise<void>;
17
+ dispatchWebSocketClose(connectionId: string, code: number, reason: string): Promise<void>;
18
+ dispatchWebSocketError(connectionId: string, error: Error): Promise<void>;
19
+ hasServeHandler(): Promise<boolean>;
20
+ hasActiveConnections(): Promise<boolean>;
21
+ }
22
+ export declare class IsolateServer {
23
+ private readonly namespaceId;
24
+ private readonly getConnection;
25
+ private runtime;
26
+ private lastStartOptions;
27
+ private lifecycleLock;
28
+ private closed;
29
+ readonly fetch: IsolateServerFetch;
30
+ constructor(options: IsolateServerOptions);
31
+ start(options: IsolateServerStartOptions): Promise<void>;
32
+ reload(): Promise<void>;
33
+ close(): Promise<void>;
34
+ getRuntime(): RemoteRuntime | null;
35
+ private withLifecycleLock;
36
+ private buildRuntimeOptions;
37
+ private createAndInitializeRuntime;
38
+ private disposeRuntime;
39
+ private ensureStarted;
40
+ private getActiveRuntime;
41
+ private dispatchRequestWithRetry;
42
+ }
@@ -0,0 +1,112 @@
1
+ import type ivm from "isolated-vm";
2
+ export interface TestEnvironmentOptions {
3
+ /** Receive test lifecycle events */
4
+ onEvent?: (event: TestEvent) => void;
5
+ /** Timeout for individual tests (ms) */
6
+ testTimeout?: number;
7
+ }
8
+ export type TestEvent = {
9
+ type: "runStart";
10
+ testCount: number;
11
+ suiteCount: number;
12
+ } | {
13
+ type: "suiteStart";
14
+ suite: SuiteInfo;
15
+ } | {
16
+ type: "suiteEnd";
17
+ suite: SuiteResult;
18
+ } | {
19
+ type: "testStart";
20
+ test: TestInfo;
21
+ } | {
22
+ type: "testEnd";
23
+ test: TestResult;
24
+ } | {
25
+ type: "runEnd";
26
+ results: RunResults;
27
+ };
28
+ export interface SuiteInfo {
29
+ name: string;
30
+ /** Ancestry path: ["outer", "inner"] */
31
+ path: string[];
32
+ /** Full display name: "outer > inner" */
33
+ fullName: string;
34
+ /** Nesting depth (0 for root-level suites) */
35
+ depth: number;
36
+ }
37
+ export interface SuiteResult extends SuiteInfo {
38
+ passed: number;
39
+ failed: number;
40
+ skipped: number;
41
+ todo: number;
42
+ duration: number;
43
+ }
44
+ export interface TestInfo {
45
+ name: string;
46
+ /** Suite ancestry */
47
+ suitePath: string[];
48
+ /** Full display name: "suite > test name" */
49
+ fullName: string;
50
+ }
51
+ export interface TestResult extends TestInfo {
52
+ status: "pass" | "fail" | "skip" | "todo";
53
+ duration: number;
54
+ error?: TestError;
55
+ }
56
+ export interface TestError {
57
+ message: string;
58
+ stack?: string;
59
+ /** For assertion failures */
60
+ expected?: unknown;
61
+ actual?: unknown;
62
+ /** e.g., "toBe", "toEqual", "toContain" */
63
+ matcherName?: string;
64
+ }
65
+ export interface RunResults {
66
+ passed: number;
67
+ failed: number;
68
+ skipped: number;
69
+ todo: number;
70
+ total: number;
71
+ duration: number;
72
+ success: boolean;
73
+ suites: SuiteResult[];
74
+ tests: TestResult[];
75
+ }
76
+ export interface TestEnvironmentHandle {
77
+ dispose(): void;
78
+ }
79
+ /**
80
+ * Setup test environment primitives in an isolated-vm context
81
+ *
82
+ * Provides Jest/Vitest-compatible test primitives:
83
+ * - describe, test, it
84
+ * - beforeEach, afterEach, beforeAll, afterAll
85
+ * - expect matchers
86
+ *
87
+ * @example
88
+ * const handle = await setupTestEnvironment(context, {
89
+ * onEvent: (event) => console.log(event),
90
+ * });
91
+ *
92
+ * await context.eval(`
93
+ * describe("my tests", () => {
94
+ * test("example", () => {
95
+ * expect(1 + 1).toBe(2);
96
+ * });
97
+ * });
98
+ * `);
99
+ */
100
+ export declare function setupTestEnvironment(context: ivm.Context, options?: TestEnvironmentOptions): Promise<TestEnvironmentHandle>;
101
+ /**
102
+ * Run tests in the context and return results
103
+ */
104
+ export declare function runTests(context: ivm.Context): Promise<RunResults>;
105
+ /**
106
+ * Check if any tests are registered
107
+ */
108
+ export declare function hasTests(context: ivm.Context): boolean;
109
+ /**
110
+ * Get the count of registered tests
111
+ */
112
+ export declare function getTestCount(context: ivm.Context): number;
@@ -0,0 +1,22 @@
1
+ import ivm from "isolated-vm";
2
+ export interface TimersHandle {
3
+ /** Clear all pending timers */
4
+ clearAll(): void;
5
+ /** Dispose the timers handle */
6
+ dispose(): void;
7
+ }
8
+ /**
9
+ * Setup timer APIs in an isolated-vm context
10
+ *
11
+ * Injects setTimeout, setInterval, clearTimeout, clearInterval
12
+ *
13
+ * Uses real time - timers fire automatically based on actual elapsed time.
14
+ *
15
+ * @example
16
+ * const handle = await setupTimers(context);
17
+ * await context.eval(`
18
+ * setTimeout(() => console.log("hello"), 1000);
19
+ * `);
20
+ * // Timer will fire automatically after 1 second
21
+ */
22
+ export declare function setupTimers(context: ivm.Context): Promise<TimersHandle>;
@@ -0,0 +1,36 @@
1
+ export interface SourceMap {
2
+ version: number;
3
+ sources: string[];
4
+ sourcesContent?: string[];
5
+ mappings: string;
6
+ names: string[];
7
+ file?: string;
8
+ }
9
+ export interface TransformResult {
10
+ code: string;
11
+ sourceMap?: SourceMap;
12
+ }
13
+ /**
14
+ * Transform user entry code:
15
+ * 1. Find import/body boundary
16
+ * 2. Validate body (on original code)
17
+ * 3. Strip TypeScript types from full code
18
+ * 4. Split at boundary, elide unused imports, clean blank lines
19
+ * 5. Wrap body in `export default async function() { ... }`
20
+ */
21
+ export declare function transformEntryCode(code: string, filename: string): Promise<TransformResult>;
22
+ /**
23
+ * Transform module code:
24
+ * 1. Strip TypeScript types from full code
25
+ * 2. Elide unused imports (line-preserving)
26
+ * 3. Return with identity source map
27
+ */
28
+ export declare function transformModuleCode(code: string, filename: string): Promise<TransformResult>;
29
+ /**
30
+ * Compute SHA-256 content hash for caching.
31
+ */
32
+ export declare function contentHash(code: string): string;
33
+ /**
34
+ * Map error stack traces through stored source maps back to original code.
35
+ */
36
+ export declare function mapErrorStack(stack: string, sourceMaps: Map<string, SourceMap>): string;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * ./index.ts
3
+ *
4
+ * Type definitions and type-checking utilities for isolated-vm V8 sandbox code.
5
+ */
6
+ export { CORE_TYPES, CONSOLE_TYPES, CRYPTO_TYPES, ENCODING_TYPES, FETCH_TYPES, FS_TYPES, PATH_TYPES, TEST_ENV_TYPES, TIMERS_TYPES, PLAYWRIGHT_TYPES, TYPE_DEFINITIONS, type TypeDefinitionKey, } from "./isolate-types.ts";
7
+ export { typecheckIsolateCode, formatTypecheckErrors, type TypecheckResult, type TypecheckError, type TypecheckOptions, type LibraryTypes, type LibraryTypeFile, } from "./typecheck.ts";