@ricsam/isolate 0.0.1 → 0.1.1

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/README.md +243 -34
  2. package/dist/cjs/bridge/diagnostics.cjs +58 -0
  3. package/dist/cjs/bridge/diagnostics.cjs.map +10 -0
  4. package/dist/cjs/bridge/legacy-adapters.cjs +242 -0
  5. package/dist/cjs/bridge/legacy-adapters.cjs.map +10 -0
  6. package/dist/cjs/bridge/request-context.cjs +59 -0
  7. package/dist/cjs/bridge/request-context.cjs.map +10 -0
  8. package/dist/cjs/bridge/runtime-bindings.cjs +367 -0
  9. package/dist/cjs/bridge/runtime-bindings.cjs.map +10 -0
  10. package/dist/cjs/browser/browser-runtime.cjs +157 -0
  11. package/dist/cjs/browser/browser-runtime.cjs.map +10 -0
  12. package/dist/cjs/daemon.cjs +91 -0
  13. package/dist/cjs/daemon.cjs.map +10 -0
  14. package/dist/cjs/files/index.cjs +140 -0
  15. package/dist/cjs/files/index.cjs.map +10 -0
  16. package/dist/cjs/host/create-isolate-host.cjs +235 -0
  17. package/dist/cjs/host/create-isolate-host.cjs.map +10 -0
  18. package/dist/cjs/host/index.cjs +47 -0
  19. package/dist/cjs/host/index.cjs.map +10 -0
  20. package/dist/cjs/index.cjs +55 -0
  21. package/dist/cjs/index.cjs.map +10 -0
  22. package/dist/cjs/internal/client/connection.cjs +1919 -0
  23. package/dist/cjs/internal/client/connection.cjs.map +10 -0
  24. package/dist/cjs/internal/client/index.cjs +48 -0
  25. package/dist/cjs/internal/client/index.cjs.map +10 -0
  26. package/dist/cjs/internal/client/types.cjs +30 -0
  27. package/dist/cjs/internal/client/types.cjs.map +9 -0
  28. package/dist/cjs/internal/console/index.cjs +506 -0
  29. package/dist/cjs/internal/console/index.cjs.map +10 -0
  30. package/dist/cjs/internal/console/utils.cjs +70 -0
  31. package/dist/cjs/internal/console/utils.cjs.map +10 -0
  32. package/dist/cjs/internal/core/index.cjs +2745 -0
  33. package/dist/cjs/internal/core/index.cjs.map +10 -0
  34. package/dist/cjs/internal/crypto/index.cjs +470 -0
  35. package/dist/cjs/internal/crypto/index.cjs.map +10 -0
  36. package/dist/cjs/internal/daemon/callback-fs-handler.cjs +355 -0
  37. package/dist/cjs/internal/daemon/callback-fs-handler.cjs.map +10 -0
  38. package/dist/cjs/internal/daemon/connection.cjs +1952 -0
  39. package/dist/cjs/internal/daemon/connection.cjs.map +10 -0
  40. package/dist/cjs/internal/daemon/daemon.cjs +98 -0
  41. package/dist/cjs/internal/daemon/daemon.cjs.map +10 -0
  42. package/dist/cjs/internal/daemon/index.cjs +145 -0
  43. package/dist/cjs/internal/daemon/index.cjs.map +10 -0
  44. package/dist/cjs/internal/daemon/runtime-pool.cjs +106 -0
  45. package/dist/cjs/internal/daemon/runtime-pool.cjs.map +10 -0
  46. package/dist/cjs/internal/daemon/types.cjs +30 -0
  47. package/dist/cjs/internal/daemon/types.cjs.map +9 -0
  48. package/dist/cjs/internal/encoding/index.cjs +419 -0
  49. package/dist/cjs/internal/encoding/index.cjs.map +10 -0
  50. package/dist/cjs/internal/fetch/consistency/origins.cjs +598 -0
  51. package/dist/cjs/internal/fetch/consistency/origins.cjs.map +10 -0
  52. package/dist/cjs/internal/fetch/index.cjs +2640 -0
  53. package/dist/cjs/internal/fetch/index.cjs.map +10 -0
  54. package/dist/cjs/internal/fetch/stream-state.cjs +256 -0
  55. package/dist/cjs/internal/fetch/stream-state.cjs.map +10 -0
  56. package/dist/cjs/internal/fs/index.cjs +847 -0
  57. package/dist/cjs/internal/fs/index.cjs.map +10 -0
  58. package/dist/cjs/internal/fs/node-adapter.cjs +254 -0
  59. package/dist/cjs/internal/fs/node-adapter.cjs.map +10 -0
  60. package/dist/cjs/internal/module-loader/bundle.cjs +482 -0
  61. package/dist/cjs/internal/module-loader/bundle.cjs.map +10 -0
  62. package/dist/cjs/internal/module-loader/index.cjs +240 -0
  63. package/dist/cjs/internal/module-loader/index.cjs.map +10 -0
  64. package/dist/cjs/internal/module-loader/mappings.cjs +120 -0
  65. package/dist/cjs/internal/module-loader/mappings.cjs.map +10 -0
  66. package/dist/cjs/internal/module-loader/resolve.cjs +177 -0
  67. package/dist/cjs/internal/module-loader/resolve.cjs.map +10 -0
  68. package/dist/cjs/internal/module-loader/strip-types.cjs +236 -0
  69. package/dist/cjs/internal/module-loader/strip-types.cjs.map +10 -0
  70. package/dist/cjs/internal/path/index.cjs +503 -0
  71. package/dist/cjs/internal/path/index.cjs.map +10 -0
  72. package/dist/cjs/internal/playwright/client.cjs +49 -0
  73. package/dist/cjs/internal/playwright/client.cjs.map +10 -0
  74. package/dist/cjs/internal/playwright/handler.cjs +1416 -0
  75. package/dist/cjs/internal/playwright/handler.cjs.map +10 -0
  76. package/dist/cjs/internal/playwright/index.cjs +1289 -0
  77. package/dist/cjs/internal/playwright/index.cjs.map +10 -0
  78. package/dist/cjs/internal/playwright/types.cjs +47 -0
  79. package/dist/cjs/internal/playwright/types.cjs.map +10 -0
  80. package/dist/cjs/internal/protocol/codec.cjs +510 -0
  81. package/dist/cjs/internal/protocol/codec.cjs.map +10 -0
  82. package/dist/cjs/internal/protocol/framing.cjs +141 -0
  83. package/dist/cjs/internal/protocol/framing.cjs.map +10 -0
  84. package/dist/cjs/internal/protocol/index.cjs +110 -0
  85. package/dist/cjs/internal/protocol/index.cjs.map +10 -0
  86. package/dist/cjs/internal/protocol/marshalValue.cjs +518 -0
  87. package/dist/cjs/internal/protocol/marshalValue.cjs.map +10 -0
  88. package/dist/cjs/internal/protocol/serialization.cjs +109 -0
  89. package/dist/cjs/internal/protocol/serialization.cjs.map +10 -0
  90. package/dist/cjs/internal/protocol/types.cjs +181 -0
  91. package/dist/cjs/internal/protocol/types.cjs.map +10 -0
  92. package/dist/cjs/internal/runtime/index.cjs +1235 -0
  93. package/dist/cjs/internal/runtime/index.cjs.map +10 -0
  94. package/dist/cjs/internal/server/index.cjs +223 -0
  95. package/dist/cjs/internal/server/index.cjs.map +10 -0
  96. package/dist/cjs/internal/test-environment/index.cjs +1415 -0
  97. package/dist/cjs/internal/test-environment/index.cjs.map +10 -0
  98. package/dist/cjs/internal/timers/index.cjs +200 -0
  99. package/dist/cjs/internal/timers/index.cjs.map +10 -0
  100. package/dist/cjs/internal/transform/index.cjs +361 -0
  101. package/dist/cjs/internal/transform/index.cjs.map +10 -0
  102. package/dist/cjs/internal/typecheck/index.cjs +60 -0
  103. package/dist/cjs/internal/typecheck/index.cjs.map +10 -0
  104. package/dist/cjs/internal/typecheck/isolate-types.cjs +2614 -0
  105. package/dist/cjs/internal/typecheck/isolate-types.cjs.map +10 -0
  106. package/dist/cjs/internal/typecheck/typecheck.cjs +131 -0
  107. package/dist/cjs/internal/typecheck/typecheck.cjs.map +10 -0
  108. package/dist/cjs/modules/index.cjs +160 -0
  109. package/dist/cjs/modules/index.cjs.map +10 -0
  110. package/dist/cjs/package.json +5 -0
  111. package/dist/cjs/runtime/script-runtime.cjs +97 -0
  112. package/dist/cjs/runtime/script-runtime.cjs.map +10 -0
  113. package/dist/cjs/server/app-server.cjs +158 -0
  114. package/dist/cjs/server/app-server.cjs.map +10 -0
  115. package/dist/cjs/testing/integration-helpers.cjs +127 -0
  116. package/dist/cjs/testing/integration-helpers.cjs.map +10 -0
  117. package/dist/cjs/typecheck/index.cjs +96 -0
  118. package/dist/cjs/typecheck/index.cjs.map +10 -0
  119. package/dist/cjs/types.cjs +30 -0
  120. package/dist/cjs/types.cjs.map +9 -0
  121. package/dist/mjs/bridge/diagnostics.mjs +18 -0
  122. package/dist/mjs/bridge/diagnostics.mjs.map +10 -0
  123. package/dist/mjs/bridge/legacy-adapters.mjs +178 -0
  124. package/dist/mjs/bridge/legacy-adapters.mjs.map +10 -0
  125. package/dist/mjs/bridge/request-context.mjs +19 -0
  126. package/dist/mjs/bridge/request-context.mjs.map +10 -0
  127. package/dist/mjs/bridge/runtime-bindings.mjs +303 -0
  128. package/dist/mjs/bridge/runtime-bindings.mjs.map +10 -0
  129. package/dist/mjs/browser/browser-runtime.mjs +93 -0
  130. package/dist/mjs/browser/browser-runtime.mjs.map +10 -0
  131. package/dist/mjs/daemon.mjs +91 -0
  132. package/dist/mjs/daemon.mjs.map +10 -0
  133. package/dist/mjs/files/index.mjs +76 -0
  134. package/dist/mjs/files/index.mjs.map +10 -0
  135. package/dist/mjs/host/create-isolate-host.mjs +171 -0
  136. package/dist/mjs/host/create-isolate-host.mjs.map +10 -0
  137. package/dist/mjs/host/index.mjs +7 -0
  138. package/dist/mjs/host/index.mjs.map +10 -0
  139. package/dist/mjs/index.mjs +15 -0
  140. package/dist/mjs/index.mjs.map +10 -0
  141. package/dist/mjs/internal/client/connection.mjs +1872 -0
  142. package/dist/mjs/internal/client/connection.mjs.map +10 -0
  143. package/dist/mjs/internal/client/index.mjs +8 -0
  144. package/dist/mjs/internal/client/index.mjs.map +10 -0
  145. package/dist/mjs/internal/client/types.mjs +2 -0
  146. package/dist/mjs/internal/client/types.mjs.map +9 -0
  147. package/dist/mjs/internal/console/index.mjs +442 -0
  148. package/dist/mjs/internal/console/index.mjs.map +10 -0
  149. package/dist/mjs/internal/console/utils.mjs +30 -0
  150. package/dist/mjs/internal/console/utils.mjs.map +10 -0
  151. package/dist/mjs/internal/core/index.mjs +2681 -0
  152. package/dist/mjs/internal/core/index.mjs.map +10 -0
  153. package/dist/mjs/internal/crypto/index.mjs +406 -0
  154. package/dist/mjs/internal/crypto/index.mjs.map +10 -0
  155. package/dist/mjs/internal/daemon/callback-fs-handler.mjs +315 -0
  156. package/dist/mjs/internal/daemon/callback-fs-handler.mjs.map +10 -0
  157. package/dist/mjs/internal/daemon/connection.mjs +1931 -0
  158. package/dist/mjs/internal/daemon/connection.mjs.map +10 -0
  159. package/dist/mjs/internal/daemon/daemon.mjs +98 -0
  160. package/dist/mjs/internal/daemon/daemon.mjs.map +10 -0
  161. package/dist/mjs/internal/daemon/index.mjs +105 -0
  162. package/dist/mjs/internal/daemon/index.mjs.map +10 -0
  163. package/dist/mjs/internal/daemon/runtime-pool.mjs +66 -0
  164. package/dist/mjs/internal/daemon/runtime-pool.mjs.map +10 -0
  165. package/dist/mjs/internal/daemon/types.mjs +2 -0
  166. package/dist/mjs/internal/daemon/types.mjs.map +9 -0
  167. package/dist/mjs/internal/encoding/index.mjs +379 -0
  168. package/dist/mjs/internal/encoding/index.mjs.map +10 -0
  169. package/dist/mjs/internal/fetch/consistency/origins.mjs +558 -0
  170. package/dist/mjs/internal/fetch/consistency/origins.mjs.map +10 -0
  171. package/dist/mjs/internal/fetch/index.mjs +2580 -0
  172. package/dist/mjs/internal/fetch/index.mjs.map +10 -0
  173. package/dist/mjs/internal/fetch/stream-state.mjs +216 -0
  174. package/dist/mjs/internal/fetch/stream-state.mjs.map +10 -0
  175. package/dist/mjs/internal/fs/index.mjs +783 -0
  176. package/dist/mjs/internal/fs/index.mjs.map +10 -0
  177. package/dist/mjs/internal/fs/node-adapter.mjs +190 -0
  178. package/dist/mjs/internal/fs/node-adapter.mjs.map +10 -0
  179. package/dist/mjs/internal/module-loader/bundle.mjs +418 -0
  180. package/dist/mjs/internal/module-loader/bundle.mjs.map +10 -0
  181. package/dist/mjs/internal/module-loader/index.mjs +185 -0
  182. package/dist/mjs/internal/module-loader/index.mjs.map +10 -0
  183. package/dist/mjs/internal/module-loader/mappings.mjs +80 -0
  184. package/dist/mjs/internal/module-loader/mappings.mjs.map +10 -0
  185. package/dist/mjs/internal/module-loader/resolve.mjs +113 -0
  186. package/dist/mjs/internal/module-loader/resolve.mjs.map +10 -0
  187. package/dist/mjs/internal/module-loader/strip-types.mjs +172 -0
  188. package/dist/mjs/internal/module-loader/strip-types.mjs.map +10 -0
  189. package/dist/mjs/internal/path/index.mjs +463 -0
  190. package/dist/mjs/internal/path/index.mjs.map +10 -0
  191. package/dist/mjs/internal/playwright/client.mjs +13 -0
  192. package/dist/mjs/internal/playwright/client.mjs.map +10 -0
  193. package/dist/mjs/internal/playwright/handler.mjs +1378 -0
  194. package/dist/mjs/internal/playwright/handler.mjs.map +10 -0
  195. package/dist/mjs/internal/playwright/index.mjs +1234 -0
  196. package/dist/mjs/internal/playwright/index.mjs.map +10 -0
  197. package/dist/mjs/internal/playwright/types.mjs +7 -0
  198. package/dist/mjs/internal/playwright/types.mjs.map +10 -0
  199. package/dist/mjs/internal/protocol/codec.mjs +470 -0
  200. package/dist/mjs/internal/protocol/codec.mjs.map +10 -0
  201. package/dist/mjs/internal/protocol/framing.mjs +101 -0
  202. package/dist/mjs/internal/protocol/framing.mjs.map +10 -0
  203. package/dist/mjs/internal/protocol/index.mjs +98 -0
  204. package/dist/mjs/internal/protocol/index.mjs.map +10 -0
  205. package/dist/mjs/internal/protocol/marshalValue.mjs +494 -0
  206. package/dist/mjs/internal/protocol/marshalValue.mjs.map +10 -0
  207. package/dist/mjs/internal/protocol/serialization.mjs +69 -0
  208. package/dist/mjs/internal/protocol/serialization.mjs.map +10 -0
  209. package/dist/mjs/internal/protocol/types.mjs +141 -0
  210. package/dist/mjs/internal/protocol/types.mjs.map +10 -0
  211. package/dist/mjs/internal/runtime/index.mjs +1198 -0
  212. package/dist/mjs/internal/runtime/index.mjs.map +10 -0
  213. package/dist/mjs/internal/server/index.mjs +183 -0
  214. package/dist/mjs/internal/server/index.mjs.map +10 -0
  215. package/dist/mjs/internal/test-environment/index.mjs +1351 -0
  216. package/dist/mjs/internal/test-environment/index.mjs.map +10 -0
  217. package/dist/mjs/internal/timers/index.mjs +136 -0
  218. package/dist/mjs/internal/timers/index.mjs.map +10 -0
  219. package/dist/mjs/internal/transform/index.mjs +321 -0
  220. package/dist/mjs/internal/transform/index.mjs.map +10 -0
  221. package/dist/mjs/internal/typecheck/index.mjs +35 -0
  222. package/dist/mjs/internal/typecheck/index.mjs.map +10 -0
  223. package/dist/mjs/internal/typecheck/isolate-types.mjs +2574 -0
  224. package/dist/mjs/internal/typecheck/isolate-types.mjs.map +10 -0
  225. package/dist/mjs/internal/typecheck/typecheck.mjs +91 -0
  226. package/dist/mjs/internal/typecheck/typecheck.mjs.map +10 -0
  227. package/dist/mjs/modules/index.mjs +96 -0
  228. package/dist/mjs/modules/index.mjs.map +10 -0
  229. package/dist/mjs/package.json +5 -0
  230. package/dist/mjs/runtime/script-runtime.mjs +57 -0
  231. package/dist/mjs/runtime/script-runtime.mjs.map +10 -0
  232. package/dist/mjs/server/app-server.mjs +118 -0
  233. package/dist/mjs/server/app-server.mjs.map +10 -0
  234. package/dist/mjs/testing/integration-helpers.mjs +63 -0
  235. package/dist/mjs/testing/integration-helpers.mjs.map +10 -0
  236. package/dist/mjs/typecheck/index.mjs +56 -0
  237. package/dist/mjs/typecheck/index.mjs.map +10 -0
  238. package/dist/mjs/types.mjs +2 -0
  239. package/dist/mjs/types.mjs.map +9 -0
  240. package/dist/types/bridge/diagnostics.d.ts +12 -0
  241. package/dist/types/bridge/legacy-adapters.d.ts +14 -0
  242. package/dist/types/bridge/request-context.d.ts +10 -0
  243. package/dist/types/bridge/runtime-bindings.d.ts +14 -0
  244. package/dist/types/browser/browser-runtime.d.ts +3 -0
  245. package/dist/types/daemon.d.ts +2 -0
  246. package/dist/types/files/index.d.ts +5 -0
  247. package/dist/types/host/create-isolate-host.d.ts +2 -0
  248. package/dist/types/host/index.d.ts +1 -0
  249. package/dist/types/index.d.ts +5 -0
  250. package/dist/types/internal/client/connection.d.ts +9 -0
  251. package/dist/types/internal/client/index.d.ts +8 -0
  252. package/dist/types/internal/client/types.d.ts +198 -0
  253. package/dist/types/internal/console/index.d.ts +108 -0
  254. package/dist/types/internal/console/utils.d.ts +27 -0
  255. package/dist/types/internal/core/index.d.ts +119 -0
  256. package/dist/types/internal/crypto/index.d.ts +18 -0
  257. package/dist/types/internal/daemon/callback-fs-handler.d.ts +28 -0
  258. package/dist/types/internal/daemon/connection.d.ts +9 -0
  259. package/dist/types/internal/daemon/daemon.d.ts +2 -0
  260. package/dist/types/internal/daemon/index.d.ts +14 -0
  261. package/dist/types/internal/daemon/runtime-pool.d.ts +16 -0
  262. package/dist/types/internal/daemon/types.d.ts +211 -0
  263. package/dist/types/internal/encoding/index.d.ts +21 -0
  264. package/dist/types/internal/fetch/consistency/origins.d.ts +179 -0
  265. package/dist/types/internal/fetch/index.d.ts +93 -0
  266. package/dist/types/internal/fetch/stream-state.d.ts +65 -0
  267. package/dist/types/internal/fs/index.d.ts +70 -0
  268. package/dist/types/internal/fs/node-adapter.d.ts +24 -0
  269. package/dist/types/internal/module-loader/bundle.d.ts +33 -0
  270. package/dist/types/internal/module-loader/index.d.ts +30 -0
  271. package/dist/types/internal/module-loader/mappings.d.ts +47 -0
  272. package/dist/types/internal/module-loader/resolve.d.ts +26 -0
  273. package/dist/types/internal/module-loader/strip-types.d.ts +19 -0
  274. package/dist/types/internal/path/index.d.ts +23 -0
  275. package/dist/types/internal/playwright/client.d.ts +7 -0
  276. package/dist/types/internal/playwright/handler.d.ts +44 -0
  277. package/dist/types/internal/playwright/index.d.ts +14 -0
  278. package/dist/types/internal/playwright/types.d.ts +145 -0
  279. package/dist/types/internal/protocol/codec.d.ts +242 -0
  280. package/dist/types/internal/protocol/framing.d.ts +89 -0
  281. package/dist/types/internal/protocol/index.d.ts +10 -0
  282. package/dist/types/internal/protocol/marshalValue.d.ts +79 -0
  283. package/dist/types/internal/protocol/serialization.d.ts +23 -0
  284. package/dist/types/internal/protocol/types.d.ts +996 -0
  285. package/dist/types/internal/runtime/index.d.ts +200 -0
  286. package/dist/types/internal/server/index.d.ts +42 -0
  287. package/dist/types/internal/test-environment/index.d.ts +112 -0
  288. package/dist/types/internal/timers/index.d.ts +22 -0
  289. package/dist/types/internal/transform/index.d.ts +36 -0
  290. package/dist/types/internal/typecheck/index.d.ts +7 -0
  291. package/dist/types/internal/typecheck/isolate-types.d.ts +94 -0
  292. package/dist/types/internal/typecheck/typecheck.d.ts +148 -0
  293. package/dist/types/modules/index.d.ts +2 -0
  294. package/dist/types/runtime/script-runtime.d.ts +6 -0
  295. package/dist/types/server/app-server.d.ts +3 -0
  296. package/dist/types/testing/integration-helpers.d.ts +9 -0
  297. package/dist/types/typecheck/index.d.ts +8 -0
  298. package/dist/types/types.d.ts +233 -0
  299. package/package.json +82 -6
@@ -0,0 +1,518 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropNames = Object.getOwnPropertyNames;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ function __accessProp(key) {
6
+ return this[key];
7
+ }
8
+ var __toCommonJS = (from) => {
9
+ var entry = (__moduleCache ??= new WeakMap).get(from), desc;
10
+ if (entry)
11
+ return entry;
12
+ entry = __defProp({}, "__esModule", { value: true });
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (var key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(entry, key))
16
+ __defProp(entry, key, {
17
+ get: __accessProp.bind(from, key),
18
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
19
+ });
20
+ }
21
+ __moduleCache.set(from, entry);
22
+ return entry;
23
+ };
24
+ var __moduleCache;
25
+ var __returnValue = (v) => v;
26
+ function __exportSetter(name, newValue) {
27
+ this[name] = __returnValue.bind(null, newValue);
28
+ }
29
+ var __export = (target, all) => {
30
+ for (var name in all)
31
+ __defProp(target, name, {
32
+ get: all[name],
33
+ enumerable: true,
34
+ configurable: true,
35
+ set: __exportSetter.bind(all, name)
36
+ });
37
+ };
38
+
39
+ // src/internal/protocol/marshalValue.ts
40
+ var exports_marshalValue = {};
41
+ __export(exports_marshalValue, {
42
+ unmarshalValue: () => unmarshalValue,
43
+ marshalValueSync: () => marshalValueSync,
44
+ marshalValue: () => marshalValue,
45
+ isPromiseRef: () => isPromiseRef,
46
+ isAsyncIteratorRef: () => isAsyncIteratorRef,
47
+ MarshalError: () => MarshalError
48
+ });
49
+ module.exports = __toCommonJS(exports_marshalValue);
50
+ var import_codec = require("./codec.cjs");
51
+
52
+ class MarshalError extends Error {
53
+ constructor(message) {
54
+ super(message);
55
+ this.name = "MarshalError";
56
+ }
57
+ }
58
+ function isPromiseRef(value) {
59
+ return typeof value === "object" && value !== null && value.__type === "PromiseRef";
60
+ }
61
+ function isAsyncIteratorRef(value) {
62
+ return typeof value === "object" && value !== null && value.__type === "AsyncIteratorRef";
63
+ }
64
+ var SUPPORTED_CLASSES = new Set([
65
+ "Date",
66
+ "RegExp",
67
+ "Request",
68
+ "Response",
69
+ "Headers",
70
+ "File",
71
+ "Blob",
72
+ "FormData",
73
+ "URL",
74
+ "Uint8Array",
75
+ "Int8Array",
76
+ "Uint16Array",
77
+ "Int16Array",
78
+ "Uint32Array",
79
+ "Int32Array",
80
+ "Float32Array",
81
+ "Float64Array",
82
+ "BigInt64Array",
83
+ "BigUint64Array",
84
+ "ArrayBuffer",
85
+ "DataView"
86
+ ]);
87
+ function isTypedArray(value) {
88
+ return value instanceof Uint8Array || value instanceof Int8Array || value instanceof Uint16Array || value instanceof Int16Array || value instanceof Uint32Array || value instanceof Int32Array || value instanceof Float32Array || value instanceof Float64Array || value instanceof BigInt64Array || value instanceof BigUint64Array || value instanceof DataView;
89
+ }
90
+ function isAsyncIterable(value) {
91
+ return typeof value === "object" && value !== null && Symbol.asyncIterator in value && typeof value[Symbol.asyncIterator] === "function";
92
+ }
93
+ var MAX_DEPTH = 100;
94
+ async function marshalValue(value, ctx, depth = 0, seen = new WeakSet) {
95
+ if (depth > MAX_DEPTH) {
96
+ throw new MarshalError(`Maximum marshalling depth (${MAX_DEPTH}) exceeded. Possible circular reference.`);
97
+ }
98
+ if (value === null) {
99
+ return null;
100
+ }
101
+ if (value === undefined) {
102
+ return import_codec.createUndefinedRef();
103
+ }
104
+ const type = typeof value;
105
+ if (type === "string" || type === "number" || type === "boolean") {
106
+ return value;
107
+ }
108
+ if (type === "bigint") {
109
+ return import_codec.createBigIntRef(value.toString());
110
+ }
111
+ if (type === "function") {
112
+ if (!ctx?.registerCallback) {
113
+ throw new MarshalError("Cannot marshal function: no registerCallback provided in context");
114
+ }
115
+ const callbackId = ctx.registerCallback(value);
116
+ return import_codec.createCallbackRef(callbackId);
117
+ }
118
+ if (type === "object") {
119
+ const obj = value;
120
+ if (seen.has(obj)) {
121
+ throw new MarshalError("Cannot marshal value: circular reference detected");
122
+ }
123
+ if (obj instanceof Date) {
124
+ return import_codec.createDateRef(obj.getTime());
125
+ }
126
+ if (obj instanceof RegExp) {
127
+ return import_codec.createRegExpRef(obj.source, obj.flags);
128
+ }
129
+ if (obj instanceof URL) {
130
+ return import_codec.createURLRef(obj.href);
131
+ }
132
+ if (typeof Headers !== "undefined" && obj instanceof Headers) {
133
+ const pairs = [];
134
+ obj.forEach((value2, key) => {
135
+ pairs.push([key, value2]);
136
+ });
137
+ return import_codec.createHeadersRef(pairs);
138
+ }
139
+ if (obj instanceof Uint8Array) {
140
+ return import_codec.createUint8ArrayRef(Array.from(obj));
141
+ }
142
+ if (obj instanceof ArrayBuffer) {
143
+ return import_codec.createUint8ArrayRef(Array.from(new Uint8Array(obj)));
144
+ }
145
+ if (isTypedArray(obj)) {
146
+ const u8 = new Uint8Array(obj.buffer, obj.byteOffset, obj.byteLength);
147
+ return import_codec.createUint8ArrayRef(Array.from(u8));
148
+ }
149
+ if (obj instanceof Promise) {
150
+ if (!ctx?.registerPromise) {
151
+ throw new MarshalError("Cannot marshal Promise: no registerPromise provided in context");
152
+ }
153
+ const promiseId = ctx.registerPromise(obj);
154
+ return import_codec.createPromiseRef(promiseId);
155
+ }
156
+ if (isAsyncIterable(obj)) {
157
+ if (!ctx?.registerIterator) {
158
+ throw new MarshalError("Cannot marshal AsyncIterable: no registerIterator provided in context");
159
+ }
160
+ const iterator = obj[Symbol.asyncIterator]();
161
+ const iteratorId = ctx.registerIterator(iterator);
162
+ return import_codec.createAsyncIteratorRef(iteratorId);
163
+ }
164
+ seen.add(obj);
165
+ if (typeof Request !== "undefined" && obj instanceof Request) {
166
+ const req = obj;
167
+ const headers = [];
168
+ req.headers.forEach((value2, key) => {
169
+ headers.push([key, value2]);
170
+ });
171
+ let body = null;
172
+ if (req.body) {
173
+ const cloned = req.clone();
174
+ body = Array.from(new Uint8Array(await cloned.arrayBuffer()));
175
+ }
176
+ return import_codec.createRequestRef(req.url, req.method, headers, body, {
177
+ mode: req.mode,
178
+ credentials: req.credentials,
179
+ cache: req.cache,
180
+ redirect: req.redirect,
181
+ referrer: req.referrer,
182
+ referrerPolicy: req.referrerPolicy,
183
+ integrity: req.integrity
184
+ });
185
+ }
186
+ if (typeof Response !== "undefined" && obj instanceof Response) {
187
+ const res = obj;
188
+ const headers = [];
189
+ res.headers.forEach((value2, key) => {
190
+ headers.push([key, value2]);
191
+ });
192
+ let body = null;
193
+ if (res.body) {
194
+ const cloned = res.clone();
195
+ body = Array.from(new Uint8Array(await cloned.arrayBuffer()));
196
+ }
197
+ return import_codec.createResponseRef(res.status, res.statusText, headers, body);
198
+ }
199
+ if (typeof File !== "undefined" && obj instanceof File) {
200
+ const file = obj;
201
+ const data = Array.from(new Uint8Array(await file.arrayBuffer()));
202
+ return import_codec.createFileRef(file.name, file.type, file.lastModified, data);
203
+ }
204
+ if (typeof Blob !== "undefined" && obj instanceof Blob) {
205
+ const blob = obj;
206
+ if (ctx?.registerBlob) {
207
+ const blobId = ctx.registerBlob(blob);
208
+ return import_codec.createBlobRef(blobId, blob.size, blob.type);
209
+ }
210
+ const data = Array.from(new Uint8Array(await blob.arrayBuffer()));
211
+ return import_codec.createFileRef("", blob.type, Date.now(), data);
212
+ }
213
+ if (typeof FormData !== "undefined" && obj instanceof FormData) {
214
+ const fd = obj;
215
+ const entries = [];
216
+ for (const [key, value2] of fd.entries()) {
217
+ if (typeof value2 === "string") {
218
+ entries.push([key, value2]);
219
+ } else {
220
+ const file = value2;
221
+ const data = Array.from(new Uint8Array(await file.arrayBuffer()));
222
+ const fileRef = import_codec.createFileRef(file.name ?? "", file.type, file.lastModified ?? Date.now(), data);
223
+ entries.push([key, fileRef]);
224
+ }
225
+ }
226
+ return import_codec.createFormDataRef(entries);
227
+ }
228
+ if (Array.isArray(obj)) {
229
+ const result2 = [];
230
+ for (const item of obj) {
231
+ result2.push(await marshalValue(item, ctx, depth + 1, seen));
232
+ }
233
+ return result2;
234
+ }
235
+ const constructorName = obj.constructor?.name;
236
+ if (constructorName && constructorName !== "Object") {
237
+ if (!SUPPORTED_CLASSES.has(constructorName)) {
238
+ throw new MarshalError(`Cannot marshal class instance of type "${constructorName}". ` + `Only plain objects and supported classes are allowed.`);
239
+ }
240
+ }
241
+ const result = {};
242
+ for (const key of Object.keys(obj)) {
243
+ result[key] = await marshalValue(obj[key], ctx, depth + 1, seen);
244
+ }
245
+ return result;
246
+ }
247
+ if (type === "symbol") {
248
+ throw new MarshalError("Cannot marshal Symbol values");
249
+ }
250
+ throw new MarshalError(`Cannot marshal value of type "${type}"`);
251
+ }
252
+ function marshalValueSync(value, ctx, depth = 0, seen = new WeakSet) {
253
+ if (depth > MAX_DEPTH) {
254
+ throw new MarshalError(`Maximum marshalling depth (${MAX_DEPTH}) exceeded. Possible circular reference.`);
255
+ }
256
+ if (value === null) {
257
+ return null;
258
+ }
259
+ if (value === undefined) {
260
+ return import_codec.createUndefinedRef();
261
+ }
262
+ const type = typeof value;
263
+ if (type === "string" || type === "number" || type === "boolean") {
264
+ return value;
265
+ }
266
+ if (type === "bigint") {
267
+ return import_codec.createBigIntRef(value.toString());
268
+ }
269
+ if (type === "function") {
270
+ if (!ctx?.registerCallback) {
271
+ throw new MarshalError("Cannot marshal function: no registerCallback provided in context");
272
+ }
273
+ const callbackId = ctx.registerCallback(value);
274
+ return import_codec.createCallbackRef(callbackId);
275
+ }
276
+ if (type === "object") {
277
+ const obj = value;
278
+ if (seen.has(obj)) {
279
+ throw new MarshalError("Cannot marshal value: circular reference detected");
280
+ }
281
+ if (obj instanceof Date) {
282
+ return import_codec.createDateRef(obj.getTime());
283
+ }
284
+ if (obj instanceof RegExp) {
285
+ return import_codec.createRegExpRef(obj.source, obj.flags);
286
+ }
287
+ if (obj instanceof URL) {
288
+ return import_codec.createURLRef(obj.href);
289
+ }
290
+ if (typeof Headers !== "undefined" && obj instanceof Headers) {
291
+ const pairs = [];
292
+ obj.forEach((value2, key) => {
293
+ pairs.push([key, value2]);
294
+ });
295
+ return import_codec.createHeadersRef(pairs);
296
+ }
297
+ if (obj instanceof Uint8Array) {
298
+ return import_codec.createUint8ArrayRef(Array.from(obj));
299
+ }
300
+ if (obj instanceof ArrayBuffer) {
301
+ return import_codec.createUint8ArrayRef(Array.from(new Uint8Array(obj)));
302
+ }
303
+ if (isTypedArray(obj)) {
304
+ const u8 = new Uint8Array(obj.buffer, obj.byteOffset, obj.byteLength);
305
+ return import_codec.createUint8ArrayRef(Array.from(u8));
306
+ }
307
+ if (obj instanceof Promise) {
308
+ if (!ctx?.registerPromise) {
309
+ throw new MarshalError("Cannot marshal Promise: no registerPromise provided in context");
310
+ }
311
+ const promiseId = ctx.registerPromise(obj);
312
+ return import_codec.createPromiseRef(promiseId);
313
+ }
314
+ if (isAsyncIterable(obj)) {
315
+ if (!ctx?.registerIterator) {
316
+ throw new MarshalError("Cannot marshal AsyncIterable: no registerIterator provided in context");
317
+ }
318
+ const iterator = obj[Symbol.asyncIterator]();
319
+ const iteratorId = ctx.registerIterator(iterator);
320
+ return import_codec.createAsyncIteratorRef(iteratorId);
321
+ }
322
+ seen.add(obj);
323
+ if (typeof Request !== "undefined" && obj instanceof Request) {
324
+ throw new MarshalError("Cannot marshal Request synchronously. Use marshalValue() instead.");
325
+ }
326
+ if (typeof Response !== "undefined" && obj instanceof Response) {
327
+ throw new MarshalError("Cannot marshal Response synchronously. Use marshalValue() instead.");
328
+ }
329
+ if (typeof File !== "undefined" && obj instanceof File) {
330
+ throw new MarshalError("Cannot marshal File synchronously. Use marshalValue() instead.");
331
+ }
332
+ if (typeof Blob !== "undefined" && obj instanceof Blob) {
333
+ throw new MarshalError("Cannot marshal Blob synchronously. Use marshalValue() instead.");
334
+ }
335
+ if (typeof FormData !== "undefined" && obj instanceof FormData) {
336
+ throw new MarshalError("Cannot marshal FormData synchronously. Use marshalValue() instead.");
337
+ }
338
+ if (Array.isArray(obj)) {
339
+ return obj.map((item) => marshalValueSync(item, ctx, depth + 1, seen));
340
+ }
341
+ const constructorName = obj.constructor?.name;
342
+ if (constructorName && constructorName !== "Object") {
343
+ if (!SUPPORTED_CLASSES.has(constructorName)) {
344
+ throw new MarshalError(`Cannot marshal class instance of type "${constructorName}". ` + `Only plain objects and supported classes are allowed.`);
345
+ }
346
+ }
347
+ const result = {};
348
+ for (const key of Object.keys(obj)) {
349
+ result[key] = marshalValueSync(obj[key], ctx, depth + 1, seen);
350
+ }
351
+ return result;
352
+ }
353
+ if (type === "symbol") {
354
+ throw new MarshalError("Cannot marshal Symbol values");
355
+ }
356
+ throw new MarshalError(`Cannot marshal value of type "${type}"`);
357
+ }
358
+ function isRef(value) {
359
+ return typeof value === "object" && value !== null && "__type" in value && typeof value.__type === "string";
360
+ }
361
+ function unmarshalValue(value, ctx, depth = 0) {
362
+ if (depth > MAX_DEPTH) {
363
+ throw new MarshalError(`Maximum unmarshalling depth (${MAX_DEPTH}) exceeded.`);
364
+ }
365
+ if (value === null) {
366
+ return null;
367
+ }
368
+ const type = typeof value;
369
+ if (type === "string" || type === "number" || type === "boolean") {
370
+ return value;
371
+ }
372
+ if (value instanceof Uint8Array) {
373
+ return value;
374
+ }
375
+ if (type === "object") {
376
+ if (isRef(value)) {
377
+ const refType = value.__type;
378
+ switch (refType) {
379
+ case "UndefinedRef":
380
+ return;
381
+ case "DateRef": {
382
+ const ref = value;
383
+ return new Date(ref.timestamp);
384
+ }
385
+ case "RegExpRef": {
386
+ const ref = value;
387
+ return new RegExp(ref.source, ref.flags);
388
+ }
389
+ case "BigIntRef": {
390
+ const ref = value;
391
+ return BigInt(ref.value);
392
+ }
393
+ case "Uint8ArrayRef": {
394
+ const ref = value;
395
+ return new Uint8Array(ref.data);
396
+ }
397
+ case "URLRef": {
398
+ const ref = value;
399
+ return new URL(ref.href);
400
+ }
401
+ case "HeadersRef": {
402
+ const ref = value;
403
+ return new Headers(ref.pairs);
404
+ }
405
+ case "RequestRef": {
406
+ const ref = value;
407
+ const body = ref.body ? new Uint8Array(ref.body) : null;
408
+ const init = {
409
+ method: ref.method,
410
+ headers: ref.headers,
411
+ body
412
+ };
413
+ if (ref.mode)
414
+ init.mode = ref.mode;
415
+ if (ref.credentials)
416
+ init.credentials = ref.credentials;
417
+ if (ref.cache)
418
+ init.cache = ref.cache;
419
+ if (ref.redirect)
420
+ init.redirect = ref.redirect;
421
+ if (ref.referrer)
422
+ init.referrer = ref.referrer;
423
+ if (ref.referrerPolicy)
424
+ init.referrerPolicy = ref.referrerPolicy;
425
+ if (ref.integrity)
426
+ init.integrity = ref.integrity;
427
+ return new Request(ref.url, init);
428
+ }
429
+ case "ResponseRef": {
430
+ const ref = value;
431
+ const body = ref.body ? new Uint8Array(ref.body) : null;
432
+ return new Response(body, {
433
+ status: ref.status,
434
+ statusText: ref.statusText,
435
+ headers: ref.headers
436
+ });
437
+ }
438
+ case "FileRef": {
439
+ const ref = value;
440
+ const data = new Uint8Array(ref.data);
441
+ if (!ref.name) {
442
+ return new Blob([data], { type: ref.type });
443
+ }
444
+ return new File([data], ref.name, {
445
+ type: ref.type,
446
+ lastModified: ref.lastModified
447
+ });
448
+ }
449
+ case "BlobRef": {
450
+ const ref = value;
451
+ if (ctx?.getBlob) {
452
+ const blob = ctx.getBlob(ref.blobId);
453
+ if (blob)
454
+ return blob;
455
+ }
456
+ throw new MarshalError(`Cannot unmarshal BlobRef: no getBlob provided or blob not found`);
457
+ }
458
+ case "FormDataRef": {
459
+ const ref = value;
460
+ const fd = new FormData;
461
+ for (const [key, entry] of ref.entries) {
462
+ if (typeof entry === "string") {
463
+ fd.append(key, entry);
464
+ } else {
465
+ const file = unmarshalValue(entry, ctx, depth + 1);
466
+ fd.append(key, file);
467
+ }
468
+ }
469
+ return fd;
470
+ }
471
+ case "CallbackRef": {
472
+ const ref = value;
473
+ if (!ctx?.getCallback) {
474
+ throw new MarshalError(`Cannot unmarshal CallbackRef: no getCallback provided`);
475
+ }
476
+ const callback = ctx.getCallback(ref.callbackId);
477
+ if (!callback) {
478
+ throw new MarshalError(`Cannot unmarshal CallbackRef: callback ${ref.callbackId} not found`);
479
+ }
480
+ return callback;
481
+ }
482
+ case "PromiseRef": {
483
+ const ref = value;
484
+ if (!ctx?.createPromiseProxy) {
485
+ throw new MarshalError(`Cannot unmarshal PromiseRef: no createPromiseProxy provided`);
486
+ }
487
+ return ctx.createPromiseProxy(ref.promiseId);
488
+ }
489
+ case "AsyncIteratorRef": {
490
+ const ref = value;
491
+ if (!ctx?.createIteratorProxy) {
492
+ throw new MarshalError(`Cannot unmarshal AsyncIteratorRef: no createIteratorProxy provided`);
493
+ }
494
+ const iterator = ctx.createIteratorProxy(ref.iteratorId);
495
+ return {
496
+ [Symbol.asyncIterator]() {
497
+ return iterator;
498
+ }
499
+ };
500
+ }
501
+ default:
502
+ return value;
503
+ }
504
+ }
505
+ if (Array.isArray(value)) {
506
+ return value.map((item) => unmarshalValue(item, ctx, depth + 1));
507
+ }
508
+ const obj = value;
509
+ const result = {};
510
+ for (const key of Object.keys(obj)) {
511
+ result[key] = unmarshalValue(obj[key], ctx, depth + 1);
512
+ }
513
+ return result;
514
+ }
515
+ return value;
516
+ }
517
+
518
+ //# debugId=69B1BB2D7D60D59F64756E2164756E21
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/internal/protocol/marshalValue.ts"],
4
+ "sourcesContent": [
5
+ "/**\n * Value marshalling for custom function arguments and return values.\n *\n * Provides type-preserving serialization for JavaScript types that would\n * otherwise lose fidelity when JSON stringified.\n */\n\nimport {\n type CallbackRef,\n type DateRef,\n type RegExpRef,\n type UndefinedRef,\n type BigIntRef,\n type Uint8ArrayRef,\n type RequestRef,\n type ResponseRef,\n type HeadersRef,\n type FileRef,\n type FormDataRef,\n type URLRef,\n type PromiseRef,\n type AsyncIteratorRef,\n type BlobRef,\n createCallbackRef,\n createDateRef,\n createRegExpRef,\n createUndefinedRef,\n createBigIntRef,\n createUint8ArrayRef,\n createRequestRef,\n createResponseRef,\n createHeadersRef,\n createFileRef,\n createFormDataRef,\n createURLRef,\n createPromiseRef,\n createAsyncIteratorRef,\n createBlobRef,\n} from \"./codec.cjs\";\n\n// ============================================================================\n// Error Types\n// ============================================================================\n\n/**\n * Error thrown when a value cannot be marshalled.\n */\nexport class MarshalError extends Error {\n constructor(message: string) {\n super(message);\n this.name = \"MarshalError\";\n }\n}\n\n// ============================================================================\n// Context Types\n// ============================================================================\n\n/**\n * Context for marshalling values (host → isolate).\n */\nexport interface MarshalContext {\n /** Register a function callback and return its ID */\n registerCallback?: (fn: Function) => number;\n /** Register a Promise and return its ID */\n registerPromise?: (promise: Promise<unknown>) => number;\n /** Register an AsyncIterator and return its ID */\n registerIterator?: (iterator: AsyncIterator<unknown>) => number;\n /** Register a Blob and return its ID */\n registerBlob?: (blob: Blob) => number;\n}\n\n/**\n * Context for unmarshalling values (isolate → host).\n */\nexport interface UnmarshalContext {\n /** Get a callback function by ID */\n getCallback?: (id: number) => ((...args: unknown[]) => unknown) | undefined;\n /** Create a proxy Promise for a PromiseRef */\n createPromiseProxy?: (promiseId: number) => Promise<unknown>;\n /** Create a proxy AsyncIterator for an AsyncIteratorRef */\n createIteratorProxy?: (iteratorId: number) => AsyncIterator<unknown>;\n /** Get a Blob by ID */\n getBlob?: (blobId: number) => Blob | undefined;\n}\n\n// ============================================================================\n// Type Guards for Ref Types\n// ============================================================================\n\n/**\n * Type guard for PromiseRef values.\n */\nexport function isPromiseRef(value: unknown): value is { __type: \"PromiseRef\"; promiseId: number } {\n return (\n typeof value === 'object' &&\n value !== null &&\n (value as { __type?: string }).__type === 'PromiseRef'\n );\n}\n\n/**\n * Type guard for AsyncIteratorRef values.\n */\nexport function isAsyncIteratorRef(value: unknown): value is { __type: \"AsyncIteratorRef\"; iteratorId: number } {\n return (\n typeof value === 'object' &&\n value !== null &&\n (value as { __type?: string }).__type === 'AsyncIteratorRef'\n );\n}\n\n// ============================================================================\n// Supported Class Detection\n// ============================================================================\n\n/**\n * Set of class names that are supported for marshalling.\n */\nconst SUPPORTED_CLASSES = new Set([\n \"Date\",\n \"RegExp\",\n \"Request\",\n \"Response\",\n \"Headers\",\n \"File\",\n \"Blob\",\n \"FormData\",\n \"URL\",\n // Typed arrays are natively supported by msgpack\n \"Uint8Array\",\n \"Int8Array\",\n \"Uint16Array\",\n \"Int16Array\",\n \"Uint32Array\",\n \"Int32Array\",\n \"Float32Array\",\n \"Float64Array\",\n \"BigInt64Array\",\n \"BigUint64Array\",\n \"ArrayBuffer\",\n \"DataView\",\n]);\n\n/**\n * Check if a value is a typed array.\n */\nfunction isTypedArray(value: unknown): value is ArrayBufferView {\n return (\n value instanceof Uint8Array ||\n value instanceof Int8Array ||\n value instanceof Uint16Array ||\n value instanceof Int16Array ||\n value instanceof Uint32Array ||\n value instanceof Int32Array ||\n value instanceof Float32Array ||\n value instanceof Float64Array ||\n value instanceof BigInt64Array ||\n value instanceof BigUint64Array ||\n value instanceof DataView\n );\n}\n\n/**\n * Check if a value is an async iterable (has Symbol.asyncIterator).\n */\nfunction isAsyncIterable(value: unknown): value is AsyncIterable<unknown> {\n return (\n typeof value === \"object\" &&\n value !== null &&\n Symbol.asyncIterator in value &&\n typeof (value as AsyncIterable<unknown>)[Symbol.asyncIterator] === \"function\"\n );\n}\n\n// ============================================================================\n// Marshalling (JavaScript → Refs)\n// ============================================================================\n\nconst MAX_DEPTH = 100;\n\n/**\n * Marshal a JavaScript value to a serializable format.\n *\n * Converts JavaScript types that lose fidelity when JSON stringified into\n * Ref objects that can be reconstructed on the other side.\n *\n * @param value - The value to marshal\n * @param ctx - Optional context for registering callbacks, promises, etc.\n * @param depth - Current recursion depth (used for circular reference detection)\n * @param seen - WeakSet of seen objects (for circular reference detection)\n * @returns The marshalled value (may be async for Request/Response/File/Blob/FormData)\n */\nexport async function marshalValue(\n value: unknown,\n ctx?: MarshalContext,\n depth: number = 0,\n seen: WeakSet<object> = new WeakSet()\n): Promise<unknown> {\n // Check depth limit\n if (depth > MAX_DEPTH) {\n throw new MarshalError(\n `Maximum marshalling depth (${MAX_DEPTH}) exceeded. Possible circular reference.`\n );\n }\n\n // Handle null\n if (value === null) {\n return null;\n }\n\n // Handle undefined\n if (value === undefined) {\n return createUndefinedRef();\n }\n\n // Handle primitives (pass through)\n const type = typeof value;\n if (type === \"string\" || type === \"number\" || type === \"boolean\") {\n return value;\n }\n\n // Handle BigInt\n if (type === \"bigint\") {\n return createBigIntRef((value as bigint).toString());\n }\n\n // Handle functions\n if (type === \"function\") {\n if (!ctx?.registerCallback) {\n throw new MarshalError(\n \"Cannot marshal function: no registerCallback provided in context\"\n );\n }\n const callbackId = ctx.registerCallback(value as Function);\n return createCallbackRef(callbackId);\n }\n\n // Handle objects\n if (type === \"object\") {\n const obj = value as object;\n\n // Check for circular references\n if (seen.has(obj)) {\n throw new MarshalError(\n \"Cannot marshal value: circular reference detected\"\n );\n }\n\n // Handle Date\n if (obj instanceof Date) {\n return createDateRef(obj.getTime());\n }\n\n // Handle RegExp\n if (obj instanceof RegExp) {\n return createRegExpRef(obj.source, obj.flags);\n }\n\n // Handle URL\n if (obj instanceof URL) {\n return createURLRef(obj.href);\n }\n\n // Handle Headers\n if (typeof Headers !== \"undefined\" && obj instanceof Headers) {\n const pairs: [string, string][] = [];\n (obj as Headers).forEach((value, key) => {\n pairs.push([key, value]);\n });\n return createHeadersRef(pairs);\n }\n\n // Handle Uint8Array and ArrayBuffer - wrap in Uint8ArrayRef for JSON compatibility\n if (obj instanceof Uint8Array) {\n return createUint8ArrayRef(Array.from(obj));\n }\n if (obj instanceof ArrayBuffer) {\n return createUint8ArrayRef(Array.from(new Uint8Array(obj)));\n }\n\n // Handle other typed arrays (convert to Uint8ArrayRef)\n if (isTypedArray(obj)) {\n const u8 = new Uint8Array(obj.buffer, obj.byteOffset, obj.byteLength);\n return createUint8ArrayRef(Array.from(u8));\n }\n\n // Handle Promise\n if (obj instanceof Promise) {\n if (!ctx?.registerPromise) {\n throw new MarshalError(\n \"Cannot marshal Promise: no registerPromise provided in context\"\n );\n }\n const promiseId = ctx.registerPromise(obj as Promise<unknown>);\n return createPromiseRef(promiseId);\n }\n\n // Handle AsyncIterable (must check before generic object)\n if (isAsyncIterable(obj)) {\n if (!ctx?.registerIterator) {\n throw new MarshalError(\n \"Cannot marshal AsyncIterable: no registerIterator provided in context\"\n );\n }\n const iterator = (obj as AsyncIterable<unknown>)[Symbol.asyncIterator]();\n const iteratorId = ctx.registerIterator(iterator);\n return createAsyncIteratorRef(iteratorId);\n }\n\n // Mark as seen for circular reference detection\n seen.add(obj);\n\n // Handle Request (async - need to read body)\n if (typeof Request !== \"undefined\" && obj instanceof Request) {\n const req = obj as Request;\n const headers: [string, string][] = [];\n req.headers.forEach((value, key) => {\n headers.push([key, value]);\n });\n let body: number[] | null = null;\n if (req.body) {\n // Clone the request to avoid consuming the body\n const cloned = req.clone();\n body = Array.from(new Uint8Array(await cloned.arrayBuffer()));\n }\n return createRequestRef(req.url, req.method, headers, body, {\n mode: req.mode,\n credentials: req.credentials,\n cache: req.cache,\n redirect: req.redirect,\n referrer: req.referrer,\n referrerPolicy: req.referrerPolicy,\n integrity: req.integrity,\n });\n }\n\n // Handle Response (async - need to read body)\n if (typeof Response !== \"undefined\" && obj instanceof Response) {\n const res = obj as Response;\n const headers: [string, string][] = [];\n res.headers.forEach((value, key) => {\n headers.push([key, value]);\n });\n let body: number[] | null = null;\n if (res.body) {\n // Clone the response to avoid consuming the body\n const cloned = res.clone();\n body = Array.from(new Uint8Array(await cloned.arrayBuffer()));\n }\n return createResponseRef(res.status, res.statusText, headers, body);\n }\n\n // Handle File (async - need to read data)\n if (typeof File !== \"undefined\" && obj instanceof File) {\n const file = obj as File;\n const data = Array.from(new Uint8Array(await file.arrayBuffer()));\n return createFileRef(file.name, file.type, file.lastModified, data);\n }\n\n // Handle Blob (async - need to read data, or use BlobRef if registerBlob provided)\n if (typeof Blob !== \"undefined\" && obj instanceof Blob) {\n const blob = obj as Blob;\n if (ctx?.registerBlob) {\n const blobId = ctx.registerBlob(blob);\n return createBlobRef(blobId, blob.size, blob.type);\n }\n // Inline the blob data as a FileRef without name\n const data = Array.from(new Uint8Array(await blob.arrayBuffer()));\n return createFileRef(\"\", blob.type, Date.now(), data);\n }\n\n // Handle FormData (async - entries may contain Files)\n if (typeof FormData !== \"undefined\" && obj instanceof FormData) {\n const fd = obj as FormData;\n const entries: [string, string | FileRef][] = [];\n for (const [key, value] of fd.entries()) {\n if (typeof value === \"string\") {\n entries.push([key, value]);\n } else {\n // File/Blob - cast to File for type safety\n const file = value as File;\n const data = Array.from(new Uint8Array(await file.arrayBuffer()));\n const fileRef = createFileRef(\n file.name ?? \"\",\n file.type,\n file.lastModified ?? Date.now(),\n data\n );\n entries.push([key, fileRef]);\n }\n }\n return createFormDataRef(entries);\n }\n\n // Handle arrays\n if (Array.isArray(obj)) {\n const result: unknown[] = [];\n for (const item of obj) {\n result.push(await marshalValue(item, ctx, depth + 1, seen));\n }\n return result;\n }\n\n // Handle plain objects\n const constructorName = obj.constructor?.name;\n if (constructorName && constructorName !== \"Object\") {\n if (!SUPPORTED_CLASSES.has(constructorName)) {\n throw new MarshalError(\n `Cannot marshal class instance of type \"${constructorName}\". ` +\n `Only plain objects and supported classes are allowed.`\n );\n }\n }\n\n const result: Record<string, unknown> = {};\n for (const key of Object.keys(obj)) {\n result[key] = await marshalValue(\n (obj as Record<string, unknown>)[key],\n ctx,\n depth + 1,\n seen\n );\n }\n return result;\n }\n\n // Handle symbols (not serializable)\n if (type === \"symbol\") {\n throw new MarshalError(\"Cannot marshal Symbol values\");\n }\n\n // Unknown type\n throw new MarshalError(`Cannot marshal value of type \"${type}\"`);\n}\n\n/**\n * Synchronous marshal for values that don't require async operations.\n * Throws if the value contains Request, Response, File, Blob, or FormData.\n */\nexport function marshalValueSync(\n value: unknown,\n ctx?: MarshalContext,\n depth: number = 0,\n seen: WeakSet<object> = new WeakSet()\n): unknown {\n // Check depth limit\n if (depth > MAX_DEPTH) {\n throw new MarshalError(\n `Maximum marshalling depth (${MAX_DEPTH}) exceeded. Possible circular reference.`\n );\n }\n\n // Handle null\n if (value === null) {\n return null;\n }\n\n // Handle undefined\n if (value === undefined) {\n return createUndefinedRef();\n }\n\n // Handle primitives (pass through)\n const type = typeof value;\n if (type === \"string\" || type === \"number\" || type === \"boolean\") {\n return value;\n }\n\n // Handle BigInt\n if (type === \"bigint\") {\n return createBigIntRef((value as bigint).toString());\n }\n\n // Handle functions\n if (type === \"function\") {\n if (!ctx?.registerCallback) {\n throw new MarshalError(\n \"Cannot marshal function: no registerCallback provided in context\"\n );\n }\n const callbackId = ctx.registerCallback(value as Function);\n return createCallbackRef(callbackId);\n }\n\n // Handle objects\n if (type === \"object\") {\n const obj = value as object;\n\n // Check for circular references\n if (seen.has(obj)) {\n throw new MarshalError(\n \"Cannot marshal value: circular reference detected\"\n );\n }\n\n // Handle Date\n if (obj instanceof Date) {\n return createDateRef(obj.getTime());\n }\n\n // Handle RegExp\n if (obj instanceof RegExp) {\n return createRegExpRef(obj.source, obj.flags);\n }\n\n // Handle URL\n if (obj instanceof URL) {\n return createURLRef(obj.href);\n }\n\n // Handle Headers\n if (typeof Headers !== \"undefined\" && obj instanceof Headers) {\n const pairs: [string, string][] = [];\n (obj as Headers).forEach((value, key) => {\n pairs.push([key, value]);\n });\n return createHeadersRef(pairs);\n }\n\n // Handle Uint8Array and ArrayBuffer - wrap in Uint8ArrayRef for JSON compatibility\n if (obj instanceof Uint8Array) {\n return createUint8ArrayRef(Array.from(obj));\n }\n if (obj instanceof ArrayBuffer) {\n return createUint8ArrayRef(Array.from(new Uint8Array(obj)));\n }\n\n // Handle other typed arrays (convert to Uint8ArrayRef)\n if (isTypedArray(obj)) {\n const u8 = new Uint8Array(obj.buffer, obj.byteOffset, obj.byteLength);\n return createUint8ArrayRef(Array.from(u8));\n }\n\n // Handle Promise\n if (obj instanceof Promise) {\n if (!ctx?.registerPromise) {\n throw new MarshalError(\n \"Cannot marshal Promise: no registerPromise provided in context\"\n );\n }\n const promiseId = ctx.registerPromise(obj as Promise<unknown>);\n return createPromiseRef(promiseId);\n }\n\n // Handle AsyncIterable (must check before generic object)\n if (isAsyncIterable(obj)) {\n if (!ctx?.registerIterator) {\n throw new MarshalError(\n \"Cannot marshal AsyncIterable: no registerIterator provided in context\"\n );\n }\n const iterator = (obj as AsyncIterable<unknown>)[Symbol.asyncIterator]();\n const iteratorId = ctx.registerIterator(iterator);\n return createAsyncIteratorRef(iteratorId);\n }\n\n // Mark as seen for circular reference detection\n seen.add(obj);\n\n // Async types that can't be marshalled synchronously\n if (typeof Request !== \"undefined\" && obj instanceof Request) {\n throw new MarshalError(\n \"Cannot marshal Request synchronously. Use marshalValue() instead.\"\n );\n }\n if (typeof Response !== \"undefined\" && obj instanceof Response) {\n throw new MarshalError(\n \"Cannot marshal Response synchronously. Use marshalValue() instead.\"\n );\n }\n if (typeof File !== \"undefined\" && obj instanceof File) {\n throw new MarshalError(\n \"Cannot marshal File synchronously. Use marshalValue() instead.\"\n );\n }\n if (typeof Blob !== \"undefined\" && obj instanceof Blob) {\n throw new MarshalError(\n \"Cannot marshal Blob synchronously. Use marshalValue() instead.\"\n );\n }\n if (typeof FormData !== \"undefined\" && obj instanceof FormData) {\n throw new MarshalError(\n \"Cannot marshal FormData synchronously. Use marshalValue() instead.\"\n );\n }\n\n // Handle arrays\n if (Array.isArray(obj)) {\n return obj.map((item) => marshalValueSync(item, ctx, depth + 1, seen));\n }\n\n // Handle plain objects\n const constructorName = obj.constructor?.name;\n if (constructorName && constructorName !== \"Object\") {\n if (!SUPPORTED_CLASSES.has(constructorName)) {\n throw new MarshalError(\n `Cannot marshal class instance of type \"${constructorName}\". ` +\n `Only plain objects and supported classes are allowed.`\n );\n }\n }\n\n const result: Record<string, unknown> = {};\n for (const key of Object.keys(obj)) {\n result[key] = marshalValueSync(\n (obj as Record<string, unknown>)[key],\n ctx,\n depth + 1,\n seen\n );\n }\n return result;\n }\n\n // Handle symbols (not serializable)\n if (type === \"symbol\") {\n throw new MarshalError(\"Cannot marshal Symbol values\");\n }\n\n // Unknown type\n throw new MarshalError(`Cannot marshal value of type \"${type}\"`);\n}\n\n// ============================================================================\n// Unmarshalling (Refs → JavaScript)\n// ============================================================================\n\n/**\n * Type guard for checking if a value is a Ref object.\n */\nfunction isRef(value: unknown): value is { __type: string } {\n return (\n typeof value === \"object\" &&\n value !== null &&\n \"__type\" in value &&\n typeof (value as { __type: unknown }).__type === \"string\"\n );\n}\n\n/**\n * Unmarshal a serialized value back to JavaScript types.\n *\n * @param value - The value to unmarshal\n * @param ctx - Optional context for resolving callbacks, promises, etc.\n * @param depth - Current recursion depth\n * @returns The unmarshalled JavaScript value\n */\nexport function unmarshalValue(\n value: unknown,\n ctx?: UnmarshalContext,\n depth: number = 0\n): unknown {\n // Check depth limit\n if (depth > MAX_DEPTH) {\n throw new MarshalError(\n `Maximum unmarshalling depth (${MAX_DEPTH}) exceeded.`\n );\n }\n\n // Handle null\n if (value === null) {\n return null;\n }\n\n // Handle primitives (pass through)\n const type = typeof value;\n if (type === \"string\" || type === \"number\" || type === \"boolean\") {\n return value;\n }\n\n // Handle Uint8Array (msgpack native support)\n if (value instanceof Uint8Array) {\n return value;\n }\n\n // Handle objects\n if (type === \"object\") {\n // Check if it's a Ref type\n if (isRef(value)) {\n const refType = value.__type;\n\n switch (refType) {\n case \"UndefinedRef\":\n return undefined;\n\n case \"DateRef\": {\n const ref = value as DateRef;\n return new Date(ref.timestamp);\n }\n\n case \"RegExpRef\": {\n const ref = value as RegExpRef;\n return new RegExp(ref.source, ref.flags);\n }\n\n case \"BigIntRef\": {\n const ref = value as BigIntRef;\n return BigInt(ref.value);\n }\n\n case \"Uint8ArrayRef\": {\n const ref = value as Uint8ArrayRef;\n return new Uint8Array(ref.data);\n }\n\n case \"URLRef\": {\n const ref = value as URLRef;\n return new URL(ref.href);\n }\n\n case \"HeadersRef\": {\n const ref = value as HeadersRef;\n return new Headers(ref.pairs);\n }\n\n case \"RequestRef\": {\n const ref = value as RequestRef;\n const body = ref.body ? new Uint8Array(ref.body) : null;\n const init: RequestInit = {\n method: ref.method,\n headers: ref.headers,\n body: body as BodyInit | null | undefined,\n };\n if (ref.mode) init.mode = ref.mode as RequestMode;\n if (ref.credentials) init.credentials = ref.credentials as RequestCredentials;\n if (ref.cache) init.cache = ref.cache as RequestCache;\n if (ref.redirect) init.redirect = ref.redirect as RequestRedirect;\n if (ref.referrer) init.referrer = ref.referrer;\n if (ref.referrerPolicy) init.referrerPolicy = ref.referrerPolicy as ReferrerPolicy;\n if (ref.integrity) init.integrity = ref.integrity;\n return new Request(ref.url, init);\n }\n\n case \"ResponseRef\": {\n const ref = value as ResponseRef;\n const body = ref.body ? new Uint8Array(ref.body) : null;\n return new Response(body as BodyInit | null | undefined, {\n status: ref.status,\n statusText: ref.statusText,\n headers: ref.headers,\n });\n }\n\n case \"FileRef\": {\n const ref = value as FileRef;\n const data = new Uint8Array(ref.data);\n // If no name, return as Blob\n if (!ref.name) {\n return new Blob([data as BlobPart], { type: ref.type });\n }\n return new File([data as BlobPart], ref.name, {\n type: ref.type,\n lastModified: ref.lastModified,\n });\n }\n\n case \"BlobRef\": {\n const ref = value as BlobRef;\n if (ctx?.getBlob) {\n const blob = ctx.getBlob(ref.blobId);\n if (blob) return blob;\n }\n // Can't reconstruct without the actual data\n throw new MarshalError(\n `Cannot unmarshal BlobRef: no getBlob provided or blob not found`\n );\n }\n\n case \"FormDataRef\": {\n const ref = value as FormDataRef;\n const fd = new FormData();\n for (const [key, entry] of ref.entries) {\n if (typeof entry === \"string\") {\n fd.append(key, entry);\n } else {\n // FileRef\n const file = unmarshalValue(entry, ctx, depth + 1) as File | Blob;\n fd.append(key, file);\n }\n }\n return fd;\n }\n\n case \"CallbackRef\": {\n const ref = value as CallbackRef;\n if (!ctx?.getCallback) {\n throw new MarshalError(\n `Cannot unmarshal CallbackRef: no getCallback provided`\n );\n }\n const callback = ctx.getCallback(ref.callbackId);\n if (!callback) {\n throw new MarshalError(\n `Cannot unmarshal CallbackRef: callback ${ref.callbackId} not found`\n );\n }\n return callback;\n }\n\n case \"PromiseRef\": {\n const ref = value as PromiseRef;\n if (!ctx?.createPromiseProxy) {\n throw new MarshalError(\n `Cannot unmarshal PromiseRef: no createPromiseProxy provided`\n );\n }\n return ctx.createPromiseProxy(ref.promiseId);\n }\n\n case \"AsyncIteratorRef\": {\n const ref = value as AsyncIteratorRef;\n if (!ctx?.createIteratorProxy) {\n throw new MarshalError(\n `Cannot unmarshal AsyncIteratorRef: no createIteratorProxy provided`\n );\n }\n const iterator = ctx.createIteratorProxy(ref.iteratorId);\n // Return as async iterable\n return {\n [Symbol.asyncIterator]() {\n return iterator;\n },\n };\n }\n\n default:\n // Unknown ref type, return as-is (might be handled by higher level)\n return value;\n }\n }\n\n // Handle arrays\n if (Array.isArray(value)) {\n return value.map((item) => unmarshalValue(item, ctx, depth + 1));\n }\n\n // Handle plain objects (recursively unmarshal values)\n const obj = value as Record<string, unknown>;\n const result: Record<string, unknown> = {};\n for (const key of Object.keys(obj)) {\n result[key] = unmarshalValue(obj[key], ctx, depth + 1);\n }\n return result;\n }\n\n // Pass through unknown types\n return value;\n}\n"
6
+ ],
7
+ "mappings": "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",
8
+ "debugId": "69B1BB2D7D60D59F64756E2164756E21",
9
+ "names": []
10
+ }